Merge "[RONs] convert ColorizedFgsCoordinatorTest to kotlin" into main
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index ac756ea..e5c059e 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -84,7 +84,7 @@
         "android.view.inputmethod.flags-aconfig-java",
         "android.webkit.flags-aconfig-java",
         "android.widget.flags-aconfig-java",
-        "android.xr.flags-aconfig-java",
+        "android.xr.flags-aconfig-java-export",
         "art_exported_aconfig_flags_lib",
         "backstage_power_flags_lib",
         "backup_flags_lib",
@@ -848,6 +848,7 @@
         "//apex_available:platform",
         "com.android.nfcservices",
         "com.android.permission",
+        "com.android.extservices",
     ],
 }
 
@@ -988,15 +989,22 @@
 // XR
 aconfig_declarations {
     name: "android.xr.flags-aconfig",
-    package: "android.xr",
     container: "system",
+    exportable: true,
+    package: "android.xr",
     srcs: ["core/java/android/content/pm/xr.aconfig"],
 }
 
 java_aconfig_library {
-    name: "android.xr.flags-aconfig-java",
+    name: "android.xr.flags-aconfig-java-export",
     aconfig_declarations: "android.xr.flags-aconfig",
     defaults: ["framework-minus-apex-aconfig-java-defaults"],
+    min_sdk_version: "30",
+    mode: "exported",
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.permission",
+    ],
 }
 
 // android.app
diff --git a/Android.bp b/Android.bp
index 9d3b64d..303fa2c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -583,6 +583,7 @@
         "documents-ui-compat-config",
         "calendar-provider-compat-config",
         "contacts-provider-platform-compat-config",
+        "SystemUI-core-compat-config",
     ] + select(soong_config_variable("ANDROID", "release_crashrecovery_module"), {
         "true": [],
         default: [
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
index 4b9d736..aaf6986 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
@@ -673,10 +673,16 @@
 
         this.job = job;
 
-        final String bnNamespace = namespace == null ? "" :  "@" + namespace + "@";
-        this.batteryName = this.sourceTag != null
-                ? bnNamespace + this.sourceTag + ":" + job.getService().getPackageName()
-                : bnNamespace + job.getService().flattenToShortString();
+        StringBuilder batteryName = new StringBuilder();
+        if (namespace != null) {
+            batteryName.append("@").append(namespace).append("@");
+        }
+        if (sourceTag != null) {
+            batteryName.append(sourceTag).append(":").append(job.getService().getPackageName());
+        } else {
+            batteryName.append(job.getService().flattenToShortString());
+        }
+        this.batteryName = batteryName.toString();
 
         final String componentPackage = job.getService().getPackageName();
         mIsProxyJob = !this.sourcePackageName.equals(componentPackage);
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 9871d71..ab8131b 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
@@ -264,6 +264,8 @@
     @GuardedBy("mCarrierPrivilegedLock")
     private boolean mHaveCarrierPrivilegedApps;
 
+    private final boolean mHasFeatureTelephonySubscription;
+
     /** List of carrier-privileged apps that should be excluded from standby */
     @GuardedBy("mCarrierPrivilegedLock")
     private List<String> mCarrierPrivilegedApps;
@@ -603,6 +605,8 @@
         mContext = mInjector.getContext();
         mHandler = new AppStandbyHandler(mInjector.getLooper());
         mPackageManager = mContext.getPackageManager();
+        mHasFeatureTelephonySubscription = mPackageManager.hasSystemFeature(
+                PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION);
 
         DeviceStateReceiver deviceStateReceiver = new DeviceStateReceiver();
         IntentFilter deviceStates = new IntentFilter(BatteryManager.ACTION_CHARGING);
@@ -1515,7 +1519,7 @@
         }
 
         // Check this last, as it can be the most expensive check
-        if (isCarrierApp(packageName)) {
+        if (mHasFeatureTelephonySubscription && isCarrierApp(packageName)) {
             return STANDBY_BUCKET_EXEMPTED;
         }
 
diff --git a/api/OWNERS b/api/OWNERS
index 965093c..f2bcf13 100644
--- a/api/OWNERS
+++ b/api/OWNERS
@@ -9,4 +9,4 @@
 per-file Android.bp = file:platform/build/soong:/OWNERS #{LAST_RESORT_SUGGESTION}
 
 # For metalava team to disable lint checks in platform
-per-file Android.bp = aurimas@google.com,emberrose@google.com
+per-file Android.bp = aurimas@google.com
diff --git a/cmds/am/am.sh b/cmds/am/am.sh
index 76ec214..f099be3 100755
--- a/cmds/am/am.sh
+++ b/cmds/am/am.sh
@@ -1,11 +1,10 @@
 #!/system/bin/sh
 
-# set to top-app process group
-settaskprofile $$ SCHED_SP_TOP_APP >/dev/null 2>&1 || true
-
 if [ "$1" != "instrument" ] ; then
     cmd activity "$@"
 else
+    # set to top-app process group for instrument
+    settaskprofile $$ SCHED_SP_TOP_APP >/dev/null 2>&1 || true
     base=/system
     export CLASSPATH=$base/framework/am.jar
     exec app_process $base/bin com.android.commands.am.Am "$@"
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
index 6310d32..696bc82 100644
--- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
+++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
@@ -18,6 +18,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.UserIdInt;
+import android.app.ActivityManager;
 import android.app.backup.BackupManager;
 import android.app.backup.BackupManagerMonitor;
 import android.app.backup.BackupProgress;
@@ -73,6 +74,8 @@
             "Error: Could not access the backup transport.  Is the system running?";
     private static final String PM_NOT_RUNNING_ERR =
             "Error: Could not access the Package Manager.  Is the system running?";
+    private static final String INVALID_USER_ID_ERR_TEMPLATE =
+            "Error: Invalid user id (%d).\n";
 
     private String[] mArgs;
     private int mNextArg;
@@ -104,6 +107,11 @@
         mArgs = args;
         mNextArg = 0;
         int userId = parseUserId();
+        if (userId < 0) {
+            System.err.printf(INVALID_USER_ID_ERR_TEMPLATE, userId);
+            return;
+        }
+
         String op = nextArg();
         Slog.v(TAG, "Running " + op + " for user:" + userId);
 
@@ -955,12 +963,15 @@
 
     private int parseUserId() {
         String arg = nextArg();
-        if ("--user".equals(arg)) {
-            return UserHandle.parseUserArg(nextArg());
-        } else {
+        if (!"--user".equals(arg)) {
             mNextArg--;
             return UserHandle.USER_SYSTEM;
         }
+        int userId = UserHandle.parseUserArg(nextArg());
+        if (userId == UserHandle.USER_CURRENT) {
+            userId = ActivityManager.getCurrentUser();
+        }
+        return userId;
     }
 
     private static void showUsage() {
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index b43905b..844e52c 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -441,7 +441,7 @@
             numEvents = mBootAnimation->mDisplayEventReceiver->getEvents(buffer, kBufferSize);
             for (size_t i = 0; i < static_cast<size_t>(numEvents); i++) {
                 const auto& event = buffer[i];
-                if (event.header.type == DisplayEventReceiver::DISPLAY_EVENT_HOTPLUG) {
+                if (event.header.type == DisplayEventType::DISPLAY_EVENT_HOTPLUG) {
                     SLOGV("Hotplug received");
 
                     if (!event.hotplug.connected) {
diff --git a/cmds/idmap2/Android.bp b/cmds/idmap2/Android.bp
index d9ff190..f6bee52 100644
--- a/cmds/idmap2/Android.bp
+++ b/cmds/idmap2/Android.bp
@@ -348,6 +348,7 @@
         "idmap2d/aidl/core/android/os/FabricatedOverlayInternal.aidl",
         "idmap2d/aidl/core/android/os/FabricatedOverlayInternalEntry.aidl",
         "idmap2d/aidl/core/android/os/FabricatedOverlayInfo.aidl",
+        "idmap2d/aidl/core/android/os/OverlayConstraint.aidl",
     ],
     path: "idmap2d/aidl/core/",
 }
diff --git a/cmds/idmap2/idmap2/Create.cpp b/cmds/idmap2/idmap2/Create.cpp
index d5f1b89..d949401 100644
--- a/cmds/idmap2/idmap2/Create.cpp
+++ b/cmds/idmap2/idmap2/Create.cpp
@@ -35,6 +35,7 @@
 using android::idmap2::CommandLineOptions;
 using android::idmap2::Error;
 using android::idmap2::Idmap;
+using android::idmap2::IdmapConstraints;
 using android::idmap2::OverlayResourceContainer;
 using android::idmap2::Result;
 using android::idmap2::TargetResourceContainer;
@@ -104,8 +105,10 @@
     return Error("failed to load apk overlay '%s'", overlay_apk_path.c_str());
   }
 
+  // TODO(b/371801644): Add command-line support for RRO constraints.
+  auto constraints = std::make_unique<const IdmapConstraints>();
   const auto idmap = Idmap::FromContainers(**target, **overlay, overlay_name, fulfilled_policies,
-                                           !ignore_overlayable);
+                                           !ignore_overlayable, std::move(constraints));
   if (!idmap) {
     return Error(idmap.GetError(), "failed to create idmap");
   }
diff --git a/cmds/idmap2/idmap2/CreateMultiple.cpp b/cmds/idmap2/idmap2/CreateMultiple.cpp
index 2608c69..70a2ed1 100644
--- a/cmds/idmap2/idmap2/CreateMultiple.cpp
+++ b/cmds/idmap2/idmap2/CreateMultiple.cpp
@@ -39,6 +39,7 @@
 using android::idmap2::CommandLineOptions;
 using android::idmap2::Error;
 using android::idmap2::Idmap;
+using android::idmap2::IdmapConstraints;
 using android::idmap2::OverlayResourceContainer;
 using android::idmap2::Result;
 using android::idmap2::TargetResourceContainer;
@@ -115,8 +116,11 @@
         continue;
       }
 
+      // TODO(b/371801644): Add command-line support for RRO constraints.
+      auto constraints = std::make_unique<const IdmapConstraints>();
       const auto idmap =
-          Idmap::FromContainers(**target, **overlay, "", fulfilled_policies, !ignore_overlayable);
+          Idmap::FromContainers(**target, **overlay, "", fulfilled_policies, !ignore_overlayable,
+                                std::move(constraints));
       if (!idmap) {
         LOG(WARNING) << "failed to create idmap";
         continue;
diff --git a/cmds/idmap2/idmap2d/Idmap2Service.cpp b/cmds/idmap2/idmap2d/Idmap2Service.cpp
index 6902d6d..2495c55 100644
--- a/cmds/idmap2/idmap2d/Idmap2Service.cpp
+++ b/cmds/idmap2/idmap2d/Idmap2Service.cpp
@@ -46,6 +46,8 @@
 using android::idmap2::BinaryStreamVisitor;
 using android::idmap2::FabricatedOverlayContainer;
 using android::idmap2::Idmap;
+using android::idmap2::IdmapConstraint;
+using android::idmap2::IdmapConstraints;
 using android::idmap2::IdmapHeader;
 using android::idmap2::OverlayResourceContainer;
 using android::idmap2::PrettyPrintVisitor;
@@ -74,6 +76,18 @@
   return static_cast<PolicyBitmask>(arg);
 }
 
+std::unique_ptr<const IdmapConstraints> ConvertAidlConstraintsToIdmapConstraints(
+        const std::vector<android::os::OverlayConstraint>& constraints) {
+  auto idmapConstraints = std::make_unique<IdmapConstraints>();
+  for (const auto& constraint : constraints) {
+    IdmapConstraint idmapConstraint{};
+    idmapConstraint.constraint_type = constraint.type;
+    idmapConstraint.constraint_value = constraint.value;
+    idmapConstraints->constraints.insert(idmapConstraint);
+  }
+  return idmapConstraints;
+}
+
 }  // namespace
 
 namespace android::os {
@@ -113,6 +127,7 @@
 Status Idmap2Service::verifyIdmap(const std::string& target_path, const std::string& overlay_path,
                                   const std::string& overlay_name, int32_t fulfilled_policies,
                                   bool enforce_overlayable, int32_t user_id ATTRIBUTE_UNUSED,
+                                  const std::vector<os::OverlayConstraint>& constraints,
                                   bool* _aidl_return) {
   SYSTRACE << "Idmap2Service::verifyIdmap " << overlay_path;
   assert(_aidl_return);
@@ -120,12 +135,19 @@
   const std::string idmap_path = Idmap::CanonicalIdmapPathFor(kIdmapCacheDir, overlay_path);
   std::ifstream fin(idmap_path);
   const std::unique_ptr<const IdmapHeader> header = IdmapHeader::FromBinaryStream(fin);
+  const std::unique_ptr<const IdmapConstraints> oldConstraints =
+          IdmapConstraints::FromBinaryStream(fin);
   fin.close();
   if (!header) {
     *_aidl_return = false;
     LOG(WARNING) << "failed to parse idmap header of '" << idmap_path << "'";
     return ok();
   }
+  if (!oldConstraints) {
+    *_aidl_return = false;
+    LOG(WARNING) << "failed to parse idmap constraints of '" << idmap_path << "'";
+    return ok();
+  }
 
   const auto target = GetTargetContainer(target_path);
   if (!target) {
@@ -145,7 +167,10 @@
       header->IsUpToDate(*GetPointer(*target), **overlay, overlay_name,
                          ConvertAidlArgToPolicyBitmask(fulfilled_policies), enforce_overlayable);
 
-  *_aidl_return = static_cast<bool>(up_to_date);
+  std::unique_ptr<const IdmapConstraints> newConstraints =
+          ConvertAidlConstraintsToIdmapConstraints(constraints);
+
+  *_aidl_return = static_cast<bool>(up_to_date && (*oldConstraints == *newConstraints));
   if (!up_to_date) {
     LOG(WARNING) << "idmap '" << idmap_path
                  << "' not up to date : " << up_to_date.GetErrorMessage();
@@ -156,6 +181,7 @@
 Status Idmap2Service::createIdmap(const std::string& target_path, const std::string& overlay_path,
                                   const std::string& overlay_name, int32_t fulfilled_policies,
                                   bool enforce_overlayable, int32_t user_id ATTRIBUTE_UNUSED,
+                                  const std::vector<os::OverlayConstraint>& constraints,
                                   std::optional<std::string>* _aidl_return) {
   assert(_aidl_return);
   SYSTRACE << "Idmap2Service::createIdmap " << target_path << " " << overlay_path;
@@ -186,8 +212,11 @@
     return error("failed to load apk overlay '%s'" + overlay_path);
   }
 
+  std::unique_ptr<const IdmapConstraints> idmapConstraints =
+          ConvertAidlConstraintsToIdmapConstraints(constraints);
   const auto idmap = Idmap::FromContainers(*GetPointer(*target), **overlay, overlay_name,
-                                           policy_bitmask, enforce_overlayable);
+                                           policy_bitmask, enforce_overlayable,
+                                           std::move(idmapConstraints));
   if (!idmap) {
     return error(idmap.GetErrorMessage());
   }
diff --git a/cmds/idmap2/idmap2d/Idmap2Service.h b/cmds/idmap2/idmap2d/Idmap2Service.h
index 272ec6b..344a77f 100644
--- a/cmds/idmap2/idmap2d/Idmap2Service.h
+++ b/cmds/idmap2/idmap2d/Idmap2Service.h
@@ -20,6 +20,7 @@
 #include <android-base/unique_fd.h>
 #include <android/os/BnIdmap2.h>
 #include <android/os/FabricatedOverlayInfo.h>
+#include <android/os/OverlayConstraint.h>
 #include <binder/BinderService.h>
 #include <idmap2/ResourceContainer.h>
 #include <idmap2/Result.h>
@@ -49,11 +50,13 @@
   binder::Status verifyIdmap(const std::string& target_path, const std::string& overlay_path,
                              const std::string& overlay_name, int32_t fulfilled_policies,
                              bool enforce_overlayable, int32_t user_id,
+                             const std::vector<os::OverlayConstraint>& constraints,
                              bool* _aidl_return) override;
 
   binder::Status createIdmap(const std::string& target_path, const std::string& overlay_path,
                              const std::string& overlay_name, int32_t fulfilled_policies,
                              bool enforce_overlayable, int32_t user_id,
+                             const std::vector<os::OverlayConstraint>& constraints,
                              std::optional<std::string>* _aidl_return) override;
 
   binder::Status createFabricatedOverlay(
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/cmds/idmap2/idmap2d/aidl/core/android/os/OverlayConstraint.aidl
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to cmds/idmap2/idmap2d/aidl/core/android/os/OverlayConstraint.aidl
index 29335c5..8fce3d6 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/cmds/idmap2/idmap2d/aidl/core/android/os/OverlayConstraint.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package android.os;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
-
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+/**
+ * @hide
+ */
+parcelable OverlayConstraint {
+    int type;
+    int value;
+}
\ No newline at end of file
diff --git a/cmds/idmap2/idmap2d/aidl/services/android/os/IIdmap2.aidl b/cmds/idmap2/idmap2d/aidl/services/android/os/IIdmap2.aidl
index 2bbfba9..4f4f075 100644
--- a/cmds/idmap2/idmap2d/aidl/services/android/os/IIdmap2.aidl
+++ b/cmds/idmap2/idmap2d/aidl/services/android/os/IIdmap2.aidl
@@ -18,6 +18,7 @@
 
 import android.os.FabricatedOverlayInfo;
 import android.os.FabricatedOverlayInternal;
+import android.os.OverlayConstraint;
 
 /**
  * @hide
@@ -30,13 +31,15 @@
                       @utf8InCpp String overlayName,
                       int fulfilledPolicies,
                       boolean enforceOverlayable,
-                      int userId);
+                      int userId,
+                      in OverlayConstraint[] constraints);
   @nullable @utf8InCpp String createIdmap(@utf8InCpp String targetApkPath,
                                           @utf8InCpp String overlayApkPath,
                                           @utf8InCpp String overlayName,
                                           int fulfilledPolicies,
                                           boolean enforceOverlayable,
-                                          int userId);
+                                          int userId,
+                                          in OverlayConstraint[] constraints);
 
   @nullable FabricatedOverlayInfo createFabricatedOverlay(in FabricatedOverlayInternal overlay);
   boolean deleteFabricatedOverlay(@utf8InCpp String path);
diff --git a/cmds/idmap2/include/idmap2/BinaryStreamVisitor.h b/cmds/idmap2/include/idmap2/BinaryStreamVisitor.h
index 57af1b6..3009293 100644
--- a/cmds/idmap2/include/idmap2/BinaryStreamVisitor.h
+++ b/cmds/idmap2/include/idmap2/BinaryStreamVisitor.h
@@ -32,6 +32,7 @@
   ~BinaryStreamVisitor() override = default;
   void visit(const Idmap& idmap) override;
   void visit(const IdmapHeader& header) override;
+  void visit(const IdmapConstraints& constraints) override;
   void visit(const IdmapData& data) override;
   void visit(const IdmapData::Header& header) override;
 
diff --git a/cmds/idmap2/include/idmap2/Idmap.h b/cmds/idmap2/include/idmap2/Idmap.h
index b0ba019..1f15daf 100644
--- a/cmds/idmap2/include/idmap2/Idmap.h
+++ b/cmds/idmap2/include/idmap2/Idmap.h
@@ -17,10 +17,11 @@
 /*
  * # idmap file format (current version)
  *
- * idmap                      := header data*
+ * idmap                      := header constraints_count constraint* data*
  * header                     := magic version target_crc overlay_crc fulfilled_policies
  *                               enforce_overlayable target_path overlay_path overlay_name
  *                               debug_info
+ * constraints                := constraint_type constraint_value
  * data                       := data_header target_entries target_inline_entries
                                  target_inline_entry_value* config* overlay_entries string_pool
  * data_header                := target_entry_count target_inline_entry_count
@@ -67,6 +68,9 @@
  * value_type                       := <uint8_t>
  * value_data                       := <uint32_t>
  * version                          := <uint32_t>
+ * constraints_count                := <uint32_t>
+ * constraint_type                  := <uint32_t>
+ * constraint_value                 := <uint32_t>
  */
 
 #ifndef IDMAP2_INCLUDE_IDMAP2_IDMAP_H_
@@ -76,6 +80,7 @@
 #include <memory>
 #include <string>
 #include <string_view>
+#include <unordered_set>
 #include <vector>
 
 #include "android-base/macros.h"
@@ -171,6 +176,33 @@
   friend Idmap;
   DISALLOW_COPY_AND_ASSIGN(IdmapHeader);
 };
+
+struct IdmapConstraint {
+  // Constraint type can be TYPE_DISPLAY_ID or TYP_DEVICE_ID, please refer
+  // to ConstraintType in OverlayConstraint.java
+  uint32_t constraint_type;
+  uint32_t constraint_value;
+
+  bool operator==(const IdmapConstraint&) const = default;
+};
+
+struct IdmapConstraints {
+  static std::unique_ptr<const IdmapConstraints> FromBinaryStream(std::istream& stream);
+
+  struct Hash {
+    static std::size_t operator()(const IdmapConstraint& constraint) {
+      return std::hash<int>()(constraint.constraint_type) * 31
+              + std::hash<int>()(constraint.constraint_value);
+    }
+  };
+
+  bool operator == (const IdmapConstraints& constraints) const = default;
+
+  void accept(Visitor* v) const;
+
+  std::unordered_set<IdmapConstraint, Hash> constraints;
+};
+
 class IdmapData {
  public:
   class Header {
@@ -286,12 +318,16 @@
   static Result<std::unique_ptr<const Idmap>> FromContainers(
       const TargetResourceContainer& target, const OverlayResourceContainer& overlay,
       const std::string& overlay_name, const PolicyBitmask& fulfilled_policies,
-      bool enforce_overlayable);
+      bool enforce_overlayable, std::unique_ptr<const IdmapConstraints>&& constraints);
 
   const std::unique_ptr<const IdmapHeader>& GetHeader() const {
     return header_;
   }
 
+  const std::unique_ptr<const IdmapConstraints>& GetConstraints() const {
+    return constraints_;
+  }
+
   const std::vector<std::unique_ptr<const IdmapData>>& GetData() const {
     return data_;
   }
@@ -302,6 +338,7 @@
   Idmap() = default;
 
   std::unique_ptr<const IdmapHeader> header_;
+  std::unique_ptr<const IdmapConstraints> constraints_;
   std::vector<std::unique_ptr<const IdmapData>> data_;
 
   DISALLOW_COPY_AND_ASSIGN(Idmap);
@@ -312,6 +349,7 @@
   virtual ~Visitor() = default;
   virtual void visit(const Idmap& idmap) = 0;
   virtual void visit(const IdmapHeader& header) = 0;
+  virtual void visit(const IdmapConstraints& constraints) = 0;
   virtual void visit(const IdmapData& data) = 0;
   virtual void visit(const IdmapData::Header& header) = 0;
 };
diff --git a/cmds/idmap2/include/idmap2/PrettyPrintVisitor.h b/cmds/idmap2/include/idmap2/PrettyPrintVisitor.h
index ed18d9c..033ef85 100644
--- a/cmds/idmap2/include/idmap2/PrettyPrintVisitor.h
+++ b/cmds/idmap2/include/idmap2/PrettyPrintVisitor.h
@@ -36,6 +36,7 @@
   ~PrettyPrintVisitor() override = default;
   void visit(const Idmap& idmap) override;
   void visit(const IdmapHeader& header) override;
+  void visit(const IdmapConstraints& constraints) override;
   void visit(const IdmapData& data) override;
   void visit(const IdmapData::Header& header) override;
 
diff --git a/cmds/idmap2/include/idmap2/RawPrintVisitor.h b/cmds/idmap2/include/idmap2/RawPrintVisitor.h
index 849ba11..bd27c0d 100644
--- a/cmds/idmap2/include/idmap2/RawPrintVisitor.h
+++ b/cmds/idmap2/include/idmap2/RawPrintVisitor.h
@@ -37,6 +37,7 @@
   ~RawPrintVisitor() override = default;
   void visit(const Idmap& idmap) override;
   void visit(const IdmapHeader& header) override;
+  void visit(const IdmapConstraints& constraints) override;
   void visit(const IdmapData& data) override;
   void visit(const IdmapData::Header& header) override;
 
diff --git a/cmds/idmap2/libidmap2/BinaryStreamVisitor.cpp b/cmds/idmap2/libidmap2/BinaryStreamVisitor.cpp
index 00ef0c7..b029aea 100644
--- a/cmds/idmap2/libidmap2/BinaryStreamVisitor.cpp
+++ b/cmds/idmap2/libidmap2/BinaryStreamVisitor.cpp
@@ -63,6 +63,14 @@
   WriteString(header.GetDebugInfo());
 }
 
+void BinaryStreamVisitor::visit(const IdmapConstraints& constraints) {
+  Write32(static_cast<uint32_t>(constraints.constraints.size()));
+  for (const auto& constraint : constraints.constraints) {
+    Write32(constraint.constraint_type);
+    Write32(constraint.constraint_value);
+  }
+}
+
 void BinaryStreamVisitor::visit(const IdmapData& data) {
   for (const auto& target_entry : data.GetTargetEntries()) {
     Write32(target_entry.target_id);
diff --git a/cmds/idmap2/libidmap2/Idmap.cpp b/cmds/idmap2/libidmap2/Idmap.cpp
index 7680109..556ca22 100644
--- a/cmds/idmap2/libidmap2/Idmap.cpp
+++ b/cmds/idmap2/libidmap2/Idmap.cpp
@@ -182,6 +182,26 @@
   return Unit{};
 }
 
+std::unique_ptr<const IdmapConstraints> IdmapConstraints::FromBinaryStream(std::istream& stream) {
+    auto idmap_constraints = std::make_unique<IdmapConstraints>();
+    uint32_t count = 0;
+    if (!Read32(stream, &count)) {
+        return nullptr;
+    }
+    for (size_t i = 0; i < count; i++) {
+        IdmapConstraint constraint{};
+        if (!Read32(stream, &constraint.constraint_type)) {
+            return nullptr;
+        }
+        if (!Read32(stream, &constraint.constraint_value)) {
+            return nullptr;
+        }
+        idmap_constraints->constraints.insert(constraint);
+    }
+
+    return idmap_constraints;
+}
+
 std::unique_ptr<const IdmapData::Header> IdmapData::Header::FromBinaryStream(std::istream& stream) {
   std::unique_ptr<IdmapData::Header> idmap_data_header(new IdmapData::Header());
   if (!Read32(stream, &idmap_data_header->target_entry_count) ||
@@ -315,6 +335,10 @@
   if (!idmap->header_) {
     return Error("failed to parse idmap header");
   }
+  idmap->constraints_ = IdmapConstraints::FromBinaryStream(stream);
+  if (!idmap->constraints_) {
+    return Error("failed to parse idmap constraints");
+  }
 
   // idmap version 0x01 does not specify the number of data blocks that follow
   // the idmap header; assume exactly one data block
@@ -374,10 +398,9 @@
 }
 
 Result<std::unique_ptr<const Idmap>> Idmap::FromContainers(const TargetResourceContainer& target,
-                                                           const OverlayResourceContainer& overlay,
-                                                           const std::string& overlay_name,
-                                                           const PolicyBitmask& fulfilled_policies,
-                                                           bool enforce_overlayable) {
+    const OverlayResourceContainer& overlay, const std::string& overlay_name,
+    const PolicyBitmask& fulfilled_policies, bool enforce_overlayable,
+    std::unique_ptr<const IdmapConstraints>&& constraints) {
   SYSTRACE << "Idmap::FromApkAssets";
   std::unique_ptr<IdmapHeader> header(new IdmapHeader());
   header->magic_ = kIdmapMagic;
@@ -424,6 +447,11 @@
   header->debug_info_ = log_info.GetString();
   idmap->header_ = std::move(header);
   idmap->data_.push_back(std::move(*idmap_data));
+  if (constraints == nullptr) {
+    idmap->constraints_ = std::make_unique<IdmapConstraints>();
+  } else {
+    idmap->constraints_ = std::move(constraints);
+  }
 
   return {std::move(idmap)};
 }
@@ -433,6 +461,11 @@
   v->visit(*this);
 }
 
+void IdmapConstraints::accept(Visitor* v) const {
+  assert(v != nullptr);
+  v->visit(*this);
+}
+
 void IdmapData::Header::accept(Visitor* v) const {
   assert(v != nullptr);
   v->visit(*this);
@@ -447,6 +480,7 @@
 void Idmap::accept(Visitor* v) const {
   assert(v != nullptr);
   header_->accept(v);
+  constraints_->accept(v);
   v->visit(*this);
   auto end = data_.cend();
   for (auto iter = data_.cbegin(); iter != end; ++iter) {
diff --git a/cmds/idmap2/libidmap2/PrettyPrintVisitor.cpp b/cmds/idmap2/libidmap2/PrettyPrintVisitor.cpp
index eb94582..0ec31f4 100644
--- a/cmds/idmap2/libidmap2/PrettyPrintVisitor.cpp
+++ b/cmds/idmap2/libidmap2/PrettyPrintVisitor.cpp
@@ -58,6 +58,19 @@
   if (auto overlay = OverlayResourceContainer::FromPath(header.GetOverlayPath())) {
     overlay_ = std::move(*overlay);
   }
+}
+
+void PrettyPrintVisitor::visit(const IdmapConstraints& constraints) {
+  stream_ << "Constraints:" << '\n';
+  if (constraints.constraints.empty()) {
+    stream_ << TAB << "None\n";
+  } else {
+    for (const IdmapConstraint& constraint : constraints.constraints) {
+      stream_ << TAB
+              << base::StringPrintf("Type: %d, Value: %d\n", constraint.constraint_type,
+                                    constraint.constraint_value);
+    }
+  }
 
   stream_ << "Mapping:" << '\n';
 }
diff --git a/cmds/idmap2/libidmap2/RawPrintVisitor.cpp b/cmds/idmap2/libidmap2/RawPrintVisitor.cpp
index 9d04a7f..41a3da3 100644
--- a/cmds/idmap2/libidmap2/RawPrintVisitor.cpp
+++ b/cmds/idmap2/libidmap2/RawPrintVisitor.cpp
@@ -55,6 +55,14 @@
   }
 }
 
+void RawPrintVisitor::visit(const IdmapConstraints &idmapConstraints) {
+  print(static_cast<uint32_t>(idmapConstraints.constraints.size()), "constraints count");
+  for (const auto& constraint : idmapConstraints.constraints) {
+    print(constraint.constraint_type, "constraint type");
+    print(constraint.constraint_value, "constraint value");
+  }
+}
+
 void RawPrintVisitor::visit(const IdmapData& data ATTRIBUTE_UNUSED) {
   for (auto& target_entry : data.GetTargetEntries()) {
     Result<std::string> target_name(Error(""));
diff --git a/cmds/idmap2/self_targeting/SelfTargeting.cpp b/cmds/idmap2/self_targeting/SelfTargeting.cpp
index 7f9c468..26888ab 100644
--- a/cmds/idmap2/self_targeting/SelfTargeting.cpp
+++ b/cmds/idmap2/self_targeting/SelfTargeting.cpp
@@ -31,6 +31,7 @@
 using PolicyFlags = android::ResTable_overlayable_policy_header::PolicyFlags;
 using android::idmap2::BinaryStreamVisitor;
 using android::idmap2::Idmap;
+using android::idmap2::IdmapConstraints;
 using android::idmap2::OverlayResourceContainer;
 
 namespace android::self_targeting {
@@ -155,9 +156,10 @@
     // Overlay self target process. Only allow self-targeting types.
     const auto fulfilled_policies = GetFulfilledPolicy(isSystem, isVendor, isProduct,
                                                        isTargetSignature, isOdm, isOem);
-
+    auto constraints = std::make_unique<const IdmapConstraints>();
     const auto idmap = Idmap::FromContainers(**target, **overlay, overlayName,
-                                             fulfilled_policies, true /* enforce_overlayable */);
+                                             fulfilled_policies, true /* enforce_overlayable */,
+                                             std::move(constraints));
     if (!idmap) {
         out_err = base::StringPrintf("Failed to create idmap because of %s",
                                      idmap.GetErrorMessage().c_str());
diff --git a/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp b/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp
index f1eeab9..76cccb5 100644
--- a/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp
+++ b/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp
@@ -58,6 +58,8 @@
   ASSERT_EQ(idmap1->GetData().size(), 1U);
   ASSERT_EQ(idmap1->GetData().size(), idmap2->GetData().size());
 
+  ASSERT_EQ(idmap1->GetConstraints()->constraints, idmap2->GetConstraints()->constraints);
+
   const std::vector<std::unique_ptr<const IdmapData>>& data_blocks1 = idmap1->GetData();
   ASSERT_EQ(data_blocks1.size(), 1U);
   const std::unique_ptr<const IdmapData>& data1 = data_blocks1[0];
diff --git a/cmds/idmap2/tests/Idmap2BinaryTests.cpp b/cmds/idmap2/tests/Idmap2BinaryTests.cpp
index 5a7fcd5..760bbb3 100644
--- a/cmds/idmap2/tests/Idmap2BinaryTests.cpp
+++ b/cmds/idmap2/tests/Idmap2BinaryTests.cpp
@@ -105,6 +105,7 @@
   fin.close();
 
   ASSERT_TRUE(idmap);
+  ASSERT_EQ((*idmap)->GetConstraints()->constraints.size(), 0);
   ASSERT_IDMAP(**idmap, GetTargetApkPath(), GetOverlayApkPath());
 
   unlink(GetIdmapPath().c_str());
diff --git a/cmds/idmap2/tests/IdmapTests.cpp b/cmds/idmap2/tests/IdmapTests.cpp
index 7093614..4de2a6b 100644
--- a/cmds/idmap2/tests/IdmapTests.cpp
+++ b/cmds/idmap2/tests/IdmapTests.cpp
@@ -68,7 +68,7 @@
   std::unique_ptr<const IdmapHeader> header = IdmapHeader::FromBinaryStream(stream);
   ASSERT_THAT(header, NotNull());
   ASSERT_EQ(header->GetMagic(), 0x504d4449U);
-  ASSERT_EQ(header->GetVersion(), 10);
+  ASSERT_EQ(header->GetVersion(), 11);
   ASSERT_EQ(header->GetTargetCrc(), 0x1234U);
   ASSERT_EQ(header->GetOverlayCrc(), 0x5678U);
   ASSERT_EQ(header->GetFulfilledPolicies(), 0x11);
@@ -96,6 +96,19 @@
   ASSERT_FALSE(Idmap::FromBinaryStream(stream));
 }
 
+TEST(IdmapTests, CreateIdmapConstraintsFromBinaryStream) {
+  std::string raw(reinterpret_cast<const char*>(kIdmapRawData), kIdmapRawDataLen);
+  std::istringstream stream(raw);
+  std::unique_ptr<const IdmapHeader> header = IdmapHeader::FromBinaryStream(stream);
+  std::unique_ptr<const IdmapConstraints> constraints = IdmapConstraints::FromBinaryStream(stream);
+  ASSERT_THAT(constraints, NotNull());
+  ASSERT_EQ(constraints->constraints.size(), 2);
+  IdmapConstraint constraint1{.constraint_type = 0, .constraint_value = 1};
+  IdmapConstraint constraint2{.constraint_type = 1, .constraint_value = 2};
+  ASSERT_NE(constraints->constraints.find(constraint1), constraints->constraints.end());
+  ASSERT_NE(constraints->constraints.find(constraint2), constraints->constraints.end());
+}
+
 TEST(IdmapTests, CreateIdmapDataHeaderFromBinaryStream) {
   const size_t offset = kIdmapRawDataOffset;
   std::string raw(reinterpret_cast<const char*>(kIdmapRawData + offset), kIdmapRawDataLen - offset);
@@ -143,7 +156,7 @@
 
   ASSERT_THAT(idmap->GetHeader(), NotNull());
   ASSERT_EQ(idmap->GetHeader()->GetMagic(), 0x504d4449U);
-  ASSERT_EQ(idmap->GetHeader()->GetVersion(), 10);
+  ASSERT_EQ(idmap->GetHeader()->GetVersion(), 11);
   ASSERT_EQ(idmap->GetHeader()->GetTargetCrc(), 0x1234U);
   ASSERT_EQ(idmap->GetHeader()->GetOverlayCrc(), 0x5678U);
   ASSERT_EQ(idmap->GetHeader()->GetFulfilledPolicies(), kIdmapRawDataPolicies);
@@ -195,16 +208,17 @@
   auto overlay = OverlayResourceContainer::FromPath(overlay_apk_path);
   ASSERT_TRUE(overlay);
 
+  auto constraints = std::make_unique<const IdmapConstraints>();
   auto idmap_result = Idmap::FromContainers(
       **target, **overlay, TestConstants::OVERLAY_NAME_ALL_POLICIES, PolicyFlags::PUBLIC,
-      /* enforce_overlayable */ true);
+      /* enforce_overlayable */ true, std::move(constraints));
   ASSERT_TRUE(idmap_result) << idmap_result.GetErrorMessage();
   auto& idmap = *idmap_result;
   ASSERT_THAT(idmap, NotNull());
 
   ASSERT_THAT(idmap->GetHeader(), NotNull());
   ASSERT_EQ(idmap->GetHeader()->GetMagic(), 0x504d4449U);
-  ASSERT_EQ(idmap->GetHeader()->GetVersion(), 10);
+  ASSERT_EQ(idmap->GetHeader()->GetVersion(), 11);
   ASSERT_EQ(idmap->GetHeader()->GetTargetCrc(), android::idmap2::TestConstants::TARGET_CRC);
   ASSERT_EQ(idmap->GetHeader()->GetOverlayCrc(), android::idmap2::TestConstants::OVERLAY_CRC);
   ASSERT_EQ(idmap->GetHeader()->GetFulfilledPolicies(), PolicyFlags::PUBLIC);
@@ -238,9 +252,10 @@
   auto overlay = OverlayResourceContainer::FromPath(overlay_apk_path);
   ASSERT_TRUE(overlay);
 
+  auto constraints = std::make_unique<const IdmapConstraints>();
   auto idmap_result = Idmap::FromContainers(
       **target, **overlay, TestConstants::OVERLAY_NAME_DEFAULT, PolicyFlags::PUBLIC,
-      /* enforce_overlayable */ true);
+      /* enforce_overlayable */ true, std::move(constraints));
   ASSERT_TRUE(idmap_result) << idmap_result.GetErrorMessage();
   auto& idmap = *idmap_result;
   ASSERT_THAT(idmap, NotNull());
@@ -296,8 +311,9 @@
   auto overlay = OverlayResourceContainer::FromPath(tf.path);
   ASSERT_TRUE(overlay);
 
+  auto constraints = std::make_unique<const IdmapConstraints>();
   auto idmap_result = Idmap::FromContainers(**target, **overlay, "SandTheme", PolicyFlags::PUBLIC,
-                                            /* enforce_overlayable */ true);
+                                            /* enforce_overlayable */ true, std::move(constraints));
   ASSERT_TRUE(idmap_result) << idmap_result.GetErrorMessage();
   auto& idmap = *idmap_result;
   ASSERT_THAT(idmap, NotNull());
@@ -341,13 +357,17 @@
   ASSERT_TRUE(overlay);
 
   {
+    auto constraints = std::make_unique<const IdmapConstraints>();
     auto idmap_result = Idmap::FromContainers(**target, **overlay, "", PolicyFlags::PUBLIC,
-                                              /* enforce_overlayable */ true);
+                                              /* enforce_overlayable */ true,
+                                              std::move(constraints));
     ASSERT_FALSE(idmap_result);
   }
   {
+    auto constraints = std::make_unique<const IdmapConstraints>();
     auto idmap_result = Idmap::FromContainers(**target, **overlay, "unknown", PolicyFlags::PUBLIC,
-                                              /* enforce_overlayable */ true);
+                                              /* enforce_overlayable */ true,
+                                              std::move(constraints));
     ASSERT_FALSE(idmap_result);
   }
 }
@@ -362,9 +382,10 @@
   auto overlay = OverlayResourceContainer::FromPath(overlay_apk_path);
   ASSERT_TRUE(overlay);
 
+  auto constraints = std::make_unique<const IdmapConstraints>();
   auto idmap_result = Idmap::FromContainers(
       **target, **overlay, TestConstants::OVERLAY_NAME_DEFAULT, PolicyFlags::PUBLIC,
-      /* enforce_overlayable */ true);
+      /* enforce_overlayable */ true, std::move(constraints));
   ASSERT_TRUE(idmap_result) << idmap_result.GetErrorMessage();
   auto& idmap = *idmap_result;
   ASSERT_THAT(idmap, NotNull());
@@ -634,6 +655,10 @@
     stream_ << "TestVisitor::visit(IdmapHeader)" << '\n';
   }
 
+  void visit(const IdmapConstraints& idmap ATTRIBUTE_UNUSED) override {
+    stream_ << "TestVisitor::visit(IdmapConstraints)" << '\n';
+  }
+
   void visit(const IdmapData& idmap ATTRIBUTE_UNUSED) override {
     stream_ << "TestVisitor::visit(IdmapData)" << '\n';
   }
@@ -659,6 +684,7 @@
 
   ASSERT_EQ(test_stream.str(),
             "TestVisitor::visit(IdmapHeader)\n"
+            "TestVisitor::visit(IdmapConstraints)\n"
             "TestVisitor::visit(Idmap)\n"
             "TestVisitor::visit(IdmapData::Header)\n"
             "TestVisitor::visit(IdmapData)\n");
diff --git a/cmds/idmap2/tests/PrettyPrintVisitorTests.cpp b/cmds/idmap2/tests/PrettyPrintVisitorTests.cpp
index 3d3d82a..2f42f79 100644
--- a/cmds/idmap2/tests/PrettyPrintVisitorTests.cpp
+++ b/cmds/idmap2/tests/PrettyPrintVisitorTests.cpp
@@ -42,8 +42,10 @@
   auto overlay = OverlayResourceContainer::FromPath(overlay_apk_path);
   ASSERT_TRUE(overlay);
 
+  auto constraints = std::make_unique<const IdmapConstraints>();
   const auto idmap = Idmap::FromContainers(**target, **overlay, TestConstants::OVERLAY_NAME_DEFAULT,
-                                           PolicyFlags::PUBLIC, /* enforce_overlayable */ true);
+                                           PolicyFlags::PUBLIC, /* enforce_overlayable */ true,
+                                           std::move(constraints));
   ASSERT_TRUE(idmap);
 
   std::stringstream stream;
diff --git a/cmds/idmap2/tests/RawPrintVisitorTests.cpp b/cmds/idmap2/tests/RawPrintVisitorTests.cpp
index 7fae1c6..d5aafe6 100644
--- a/cmds/idmap2/tests/RawPrintVisitorTests.cpp
+++ b/cmds/idmap2/tests/RawPrintVisitorTests.cpp
@@ -55,8 +55,10 @@
   auto overlay = OverlayResourceContainer::FromPath(overlay_apk_path);
   ASSERT_TRUE(overlay);
 
+  auto constraints = std::make_unique<const IdmapConstraints>();
   const auto idmap = Idmap::FromContainers(**target, **overlay, TestConstants::OVERLAY_NAME_DEFAULT,
-                                           PolicyFlags::PUBLIC, /* enforce_overlayable */ true);
+                                           PolicyFlags::PUBLIC, /* enforce_overlayable */ true,
+                                           std::move(constraints));
   ASSERT_TRUE(idmap);
 
   std::stringstream stream;
@@ -64,7 +66,7 @@
   (*idmap)->accept(&visitor);
 
   ASSERT_CONTAINS_REGEX(ADDRESS "504d4449  magic\n", stream.str());
-  ASSERT_CONTAINS_REGEX(ADDRESS "0000000a  version\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "0000000b  version\n", stream.str());
   ASSERT_CONTAINS_REGEX(
       StringPrintf(ADDRESS "%s  target crc\n", android::idmap2::TestConstants::TARGET_CRC_STRING),
       stream.str());
@@ -73,6 +75,7 @@
       stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000001  fulfilled policies: public\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000001  enforce overlayable\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "00000000  constraints count\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000004  target entry count", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000000  target inline entry count", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000000  target inline entry value count", stream.str());
@@ -113,7 +116,7 @@
   (*idmap)->accept(&visitor);
 
   ASSERT_CONTAINS_REGEX(ADDRESS "504d4449  magic\n", stream.str());
-  ASSERT_CONTAINS_REGEX(ADDRESS "0000000a  version\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "0000000b  version\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00001234  target crc\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00005678  overlay crc\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000011  fulfilled policies: public|signature\n", stream.str());
@@ -124,6 +127,11 @@
   ASSERT_CONTAINS_REGEX(ADDRESS "........  overlay path: overlayX.apk\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "0000000b  overlay name size\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "........  overlay name: OverlayName\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "00000002  constraints count\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "00000000  constraint type\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "00000001  constraint value\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "00000001  constraint type\n", stream.str());
+  ASSERT_CONTAINS_REGEX(ADDRESS "00000002  constraint value\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000003  target entry count\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000001  target inline entry count\n", stream.str());
   ASSERT_CONTAINS_REGEX(ADDRESS "00000001  target inline entry value count", stream.str());
diff --git a/cmds/idmap2/tests/TestHelpers.h b/cmds/idmap2/tests/TestHelpers.h
index 2b4ebd1..6f645bd 100644
--- a/cmds/idmap2/tests/TestHelpers.h
+++ b/cmds/idmap2/tests/TestHelpers.h
@@ -34,7 +34,7 @@
     0x49, 0x44, 0x4d, 0x50,
 
     // 0x4: version
-    0x0a, 0x00, 0x00, 0x00,
+    0x0b, 0x00, 0x00, 0x00,
 
     // 0x8: target crc
     0x34, 0x12, 0x00, 0x00,
@@ -73,131 +73,147 @@
     // 0x4c string contents "debug\0\0\0" (padded to word alignment)
     0x64, 0x65, 0x62, 0x75, 0x67, 0x00, 0x00, 0x00,
 
-    // DATA HEADER
-    // 0x54: target_entry_count
-    0x03, 0x00, 0x00, 0x00,
+    // CONSTRAINTS
+    // 0x54: constraints_count
+    0x02, 0x00, 0x00, 0x00,
 
-    // 0x58: target_inline_entry_count
+    // 0x58: constraint_type
+    0x00, 0x00, 0x00, 0x00,
+
+    // 0x5c: constraint_value
     0x01, 0x00, 0x00, 0x00,
 
-    // 0x5c: target_inline_entry_value_count
+    // 0x60: constraint_type
+    0x01, 0x00, 0x00, 0x00,
+
+    // 0x64: constraint_value
+    0x02, 0x00, 0x00, 0x00,
+
+    // DATA HEADER
+    // 0x68: target_entry_count
+    0x03, 0x00, 0x00, 0x00,
+
+    // 0x6c: target_inline_entry_count
+    0x01, 0x00, 0x00, 0x00,
+
+    // 0x70: target_inline_entry_value_count
     0x01, 0x00, 0x00, 0x00,
 
     // 0x60: config_count
     0x01, 0x00, 0x00, 0x00,
 
-    // 0x64: overlay_entry_count
+    // 0x74: overlay_entry_count
     0x03, 0x00, 0x00, 0x00,
 
-    // 0x68: string_pool_offset
+    // 0x78: string_pool_offset
     0x00, 0x00, 0x00, 0x00,
 
     // TARGET ENTRIES
-    // 0x6c: target id (0x7f020000)
+    // 0x7c: target id (0x7f020000)
     0x00, 0x00, 0x02, 0x7f,
-    // 0x70: target id (0x7f030000)
+    // 0x80: target id (0x7f030000)
     0x00, 0x00, 0x03, 0x7f,
-    // 0x74: target id (0x7f030002)
+    // 0x84: target id (0x7f030002)
     0x02, 0x00, 0x03, 0x7f,
 
-    // 0x78: overlay_id (0x7f020000)
+    // 0x88: overlay_id (0x7f020000)
     0x00, 0x00, 0x02, 0x7f,
-    // 0x7c: overlay_id (0x7f030000)
+    // 0x8c: overlay_id (0x7f030000)
     0x00, 0x00, 0x03, 0x7f,
-    // 0x80: overlay_id (0x7f030001)
+    // 0x90: overlay_id (0x7f030001)
     0x01, 0x00, 0x03, 0x7f,
 
     // INLINE TARGET ENTRIES
 
-    // 0x84: target_id
+    // 0x94: target_id
     0x00, 0x00, 0x04, 0x7f,
 
-    // 0x88: start value index
+    // 0x98: start value index
     0x00, 0x00, 0x00, 0x00,
 
-    // 0x8c: value count
+    // 0x9c: value count
     0x01, 0x00, 0x00, 0x00,
 
     // INLINE TARGET ENTRY VALUES
 
-    // 0x90: config index
+    // 0xa0: config index
     0x00, 0x00, 0x00, 0x00,
 
-    // 0x94: Res_value::size (value ignored by idmap)
+    // 0xa4: Res_value::size (value ignored by idmap)
     0x08, 0x00,
 
-    // 0x98: Res_value::res0 (value ignored by idmap)
+    // 0xa8: Res_value::res0 (value ignored by idmap)
     0x00,
 
-    // 0x9c: Res_value::dataType (TYPE_INT_HEX)
+    // 0xac: Res_value::dataType (TYPE_INT_HEX)
     0x11,
 
-    // 0xa0: Res_value::data
+    // 0xb0: Res_value::data
     0x78, 0x56, 0x34, 0x12,
 
     // CONFIGURATIONS
 
-    // 0xa4: ConfigDescription
+    // 0xb4: ConfigDescription
     // size
     0x40, 0x00, 0x00, 0x00,
-    // 0xa8: imsi
+    // 0xb8: imsi
     0x00, 0x00, 0x00, 0x00,
-    // 0xac: locale
+    // 0xbc: locale
     0x00, 0x00, 0x00, 0x00,
-    // 0xb0: screenType
+    // 0xc0: screenType
     0x02, 0x00, 0xe0, 0x01,
-    // 0xb4: input
+    // 0xc4: input
     0x00, 0x00, 0x00, 0x00,
-    // 0xb8: screenSize
+    // 0xc8: screenSize
     0x00, 0x00, 0x00, 0x00,
-    // 0xbc: version
+    // 0xcc: version
     0x07, 0x00, 0x00, 0x00,
-    // 0xc0: screenConfig
+    // 0xd0: screenConfig
     0x00, 0x00, 0x00, 0x00,
-    // 0xc4: screenSizeDp
+    // 0xd4: screenSizeDp
     0x00, 0x00, 0x00, 0x00,
-    // 0xc8: localeScript
+    // 0xd8: localeScript
     0x00, 0x00, 0x00, 0x00,
-    // 0xcc: localVariant(1)
+    // 0xdc: localVariant(1)
     0x00, 0x00, 0x00, 0x00,
-    // 0xd0: localVariant(2)
+    // 0xe0: localVariant(2)
     0x00, 0x00, 0x00, 0x00,
-    // 0xd4: screenConfig2
+    // 0xe4: screenConfig2
     0x00, 0x00, 0x00, 0x00,
-    // 0xd8: localeScriptWasComputed
+    // 0xe8: localeScriptWasComputed
     0x00,
-    // 0xd9: localeNumberingSystem(1)
+    // 0xe9: localeNumberingSystem(1)
     0x00, 0x00, 0x00, 0x00,
-    // 0xdd: localeNumberingSystem(2)
+    // 0xed: localeNumberingSystem(2)
     0x00, 0x00, 0x00, 0x00,
 
-    // 0xe1: padding
+    // 0xf1: padding
     0x00, 0x00, 0x00,
 
     // OVERLAY ENTRIES
-    // 0xe4: 0x7f020000 -> ...
+    // 0xf4: 0x7f020000 -> ...
     0x00, 0x00, 0x02, 0x7f,
-    // 0xe8: 0x7f030000 -> ...
+    // 0xf8: 0x7f030000 -> ...
     0x00, 0x00, 0x03, 0x7f,
-    // 0xec: 0x7f030001 -> ...
+    // 0xfc: 0x7f030001 -> ...
     0x01, 0x00, 0x03, 0x7f,
 
-    // 0xf0: ... -> 0x7f020000
+    // 0x100: ... -> 0x7f020000
     0x00, 0x00, 0x02, 0x7f,
-    // 0xf4: ... -> 0x7f030000
+    // 0x104: ... -> 0x7f030000
     0x00, 0x00, 0x03, 0x7f,
-    // 0xf8: ... -> 0x7f030002
+    // 0x108: ... -> 0x7f030002
     0x02, 0x00, 0x03, 0x7f,
 
-    // 0xfc: string pool
+    // 0x10c: string pool
     // string length,
     0x04, 0x00, 0x00, 0x00,
 
-    // 0x100 string contents "test"
+    // 0x110 string contents "test"
     0x74, 0x65, 0x73, 0x74};
 
 constexpr unsigned int kIdmapRawDataLen = std::size(kIdmapRawData);
-const unsigned int kIdmapRawDataOffset = 0x54;
+const unsigned int kIdmapRawDataOffset = 0x68;
 const unsigned int kIdmapRawDataTargetCrc = 0x1234;
 const unsigned int kIdmapRawOverlayCrc = 0x5678;
 const unsigned int kIdmapRawDataPolicies = 0x11;
diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp
index 9ff1161..a432819 100644
--- a/cmds/screencap/screencap.cpp
+++ b/cmds/screencap/screencap.cpp
@@ -37,13 +37,13 @@
 #include <ui/GraphicTypes.h>
 #include <ui/PixelFormat.h>
 
-#include "utils/Errors.h"
 #include "screencap_utils.h"
+#include "utils/Errors.h"
 
 using namespace android;
 
-#define COLORSPACE_UNKNOWN    0
-#define COLORSPACE_SRGB       1
+#define COLORSPACE_UNKNOWN 0
+#define COLORSPACE_SRGB 1
 #define COLORSPACE_DISPLAY_P3 2
 
 void usage(const char* pname, ftl::Optional<DisplayId> displayIdOpt) {
@@ -62,13 +62,13 @@
 )",
             pname,
             displayIdOpt
-                .transform([](DisplayId id) {
-                    return std::string(ftl::Concat(
-                    " (If the id is not given, it defaults to ", id.value,')'
-                    ).str());
-                })
-                .value_or(std::string())
-                .c_str());
+                    .transform([](DisplayId id) {
+                        return std::string(ftl::Concat(" (If the id is not given, it defaults to ",
+                                                       id.value, ')')
+                                                   .str());
+                    })
+                    .value_or(std::string())
+                    .c_str());
 }
 
 // For options that only exist in long-form. Anything in the
@@ -87,8 +87,7 @@
                                               LongOpts::HintForSeamless},
                                              {0, 0, 0, 0}};
 
-static int32_t flinger2bitmapFormat(PixelFormat f)
-{
+static int32_t flinger2bitmapFormat(PixelFormat f) {
     switch (f) {
         case PIXEL_FORMAT_RGB_565:
             return ANDROID_BITMAP_FORMAT_RGB_565;
@@ -97,8 +96,7 @@
     }
 }
 
-static uint32_t dataSpaceToInt(ui::Dataspace d)
-{
+static uint32_t dataSpaceToInt(ui::Dataspace d) {
     switch (d) {
         case ui::Dataspace::V0_SRGB:
             return COLORSPACE_SRGB;
@@ -112,25 +110,20 @@
 static status_t notifyMediaScanner(const char* fileName) {
     std::string filePath("file://");
     filePath.append(fileName);
-    char *cmd[] = {
-        (char*) "am",
-        (char*) "broadcast",
-        (char*) "-a",
-        (char*) "android.intent.action.MEDIA_SCANNER_SCAN_FILE",
-        (char*) "-d",
-        &filePath[0],
-        nullptr
-    };
+    char* cmd[] = {(char*)"am", (char*)"broadcast",
+                   (char*)"-a", (char*)"android.intent.action.MEDIA_SCANNER_SCAN_FILE",
+                   (char*)"-d", &filePath[0],
+                   nullptr};
 
     int status;
     int pid = fork();
-    if (pid < 0){
+    if (pid < 0) {
         fprintf(stderr, "Unable to fork in order to send intent for media scanner.\n");
         return UNKNOWN_ERROR;
     }
-    if (pid == 0){
+    if (pid == 0) {
         int fd = open("/dev/null", O_WRONLY);
-        if (fd < 0){
+        if (fd < 0) {
             fprintf(stderr, "Unable to open /dev/null for media scanner stdout redirection.\n");
             exit(1);
         }
@@ -216,31 +209,33 @@
         info.height = buffer->getHeight();
         info.stride = buffer->getStride() * bytesPerPixel(buffer->getPixelFormat());
 
-        int result;
+        int bitmapResult;
 
         if (gainmapBase) {
-            result = ABitmap_compressWithGainmap(&info, static_cast<ADataSpace>(dataspace), base,
-                                                 gainmapBase, captureResults.hdrSdrRatio, *format,
-                                                 100, &fd,
-                                                 [](void* fdPtr, const void* data,
-                                                    size_t size) -> bool {
-                                                     int bytesWritten =
-                                                             write(*static_cast<int*>(fdPtr), data,
-                                                                   size);
-                                                     return bytesWritten == size;
-                                                 });
+            bitmapResult =
+                    ABitmap_compressWithGainmap(&info, static_cast<ADataSpace>(dataspace), base,
+                                                gainmapBase, captureResults.hdrSdrRatio, *format,
+                                                100, &fd,
+                                                [](void* fdPtr, const void* data,
+                                                   size_t size) -> bool {
+                                                    int bytesWritten =
+                                                            write(*static_cast<int*>(fdPtr), data,
+                                                                  size);
+                                                    return bytesWritten == size;
+                                                });
         } else {
-            result = AndroidBitmap_compress(&info, static_cast<int32_t>(dataspace), base, *format,
-                                            100, &fd,
-                                            [](void* fdPtr, const void* data, size_t size) -> bool {
-                                                int bytesWritten = write(*static_cast<int*>(fdPtr),
-                                                                         data, size);
-                                                return bytesWritten == size;
-                                            });
+            bitmapResult =
+                    AndroidBitmap_compress(&info, static_cast<int32_t>(dataspace), base, *format,
+                                           100, &fd,
+                                           [](void* fdPtr, const void* data, size_t size) -> bool {
+                                               int bytesWritten =
+                                                       write(*static_cast<int*>(fdPtr), data, size);
+                                               return bytesWritten == size;
+                                           });
         }
 
-        if (result != ANDROID_BITMAP_RESULT_SUCCESS) {
-            fprintf(stderr, "Failed to compress (error code: %d)\n", result);
+        if (bitmapResult != ANDROID_BITMAP_RESULT_SUCCESS) {
+            fprintf(stderr, "Failed to compress (error code: %d)\n", bitmapResult);
         }
 
         if (fn != NULL) {
@@ -258,9 +253,9 @@
         write(fd, &f, 4);
         write(fd, &c, 4);
         size_t Bpp = bytesPerPixel(f);
-        for (size_t y=0 ; y<h ; y++) {
-            write(fd, base, w*Bpp);
-            base = (void *)((char *)base + s*Bpp);
+        for (size_t y = 0; y < h; y++) {
+            write(fd, base, w * Bpp);
+            base = (void*)((char*)base + s * Bpp);
         }
     }
     close(fd);
@@ -276,10 +271,9 @@
     return 0;
 }
 
-int main(int argc, char** argv)
-{
+int main(int argc, char** argv) {
     const std::vector<PhysicalDisplayId> physicalDisplays =
-        SurfaceComposerClient::getPhysicalDisplayIds();
+            SurfaceComposerClient::getPhysicalDisplayIds();
 
     if (physicalDisplays.empty()) {
         fprintf(stderr, "Failed to get ID for any displays.\n");
@@ -352,9 +346,9 @@
     std::string suffix;
 
     if (argc == 1) {
-        std::string_view filename = { argv[0] };
+        std::string_view filename = {argv[0]};
         if (filename.ends_with(".png")) {
-            baseName = filename.substr(0, filename.size()-4);
+            baseName = filename.substr(0, filename.size() - 4);
             suffix = ".png";
             png = true;
         } else if (filename.ends_with(".jpeg")) {
diff --git a/cmds/svc/src/com/android/commands/svc/OWNERS b/cmds/svc/src/com/android/commands/svc/OWNERS
index d5a5d7b..a901dfd 100644
--- a/cmds/svc/src/com/android/commands/svc/OWNERS
+++ b/cmds/svc/src/com/android/commands/svc/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 48448
-per-file NfcCommand.java = file:platform/packages/apps/Nfc:/OWNERS
+per-file NfcCommand.java = file:platform/packages/modules/Nfc:/OWNERS
diff --git a/cmds/uinput/tests/Android.bp b/cmds/uinput/tests/Android.bp
index e728bd2..516de33 100644
--- a/cmds/uinput/tests/Android.bp
+++ b/cmds/uinput/tests/Android.bp
@@ -18,3 +18,17 @@
         "device-tests",
     ],
 }
+
+android_ravenwood_test {
+    name: "UinputTestsRavenwood",
+    srcs: [
+        "src/**/*.java",
+    ],
+    static_libs: [
+        "androidx.test.runner",
+        "frameworks-base-testutils",
+        "platform-test-annotations",
+        "truth",
+        "uinput",
+    ],
+}
diff --git a/core/api/current.txt b/core/api/current.txt
index dd60677..d4ed533 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -2419,6 +2419,7 @@
     field public static final int accessibilityActionScrollRight = 16908347; // 0x102003b
     field public static final int accessibilityActionScrollToPosition = 16908343; // 0x1020037
     field public static final int accessibilityActionScrollUp = 16908344; // 0x1020038
+    field @FlaggedApi("android.view.accessibility.a11y_selection_api") public static final int accessibilityActionSetExtendedSelection;
     field public static final int accessibilityActionSetProgress = 16908349; // 0x102003d
     field public static final int accessibilityActionShowOnScreen = 16908342; // 0x1020036
     field public static final int accessibilityActionShowTextSuggestions = 16908376; // 0x1020058
@@ -38774,7 +38775,7 @@
   }
 
   public static final class Telephony.Carriers implements android.provider.BaseColumns {
-    field @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") public static final String ALWAYS_ON = "always_on";
+    field public static final String ALWAYS_ON = "always_on";
     field public static final String APN = "apn";
     field public static final String AUTH_TYPE = "authtype";
     field @Deprecated public static final String BEARER = "bearer";
@@ -38788,8 +38789,8 @@
     field public static final String MMSPORT = "mmsport";
     field public static final String MMSPROXY = "mmsproxy";
     field @Deprecated public static final String MNC = "mnc";
-    field @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") public static final String MTU_V4 = "mtu_v4";
-    field @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") public static final String MTU_V6 = "mtu_v6";
+    field public static final String MTU_V4 = "mtu_v4";
+    field public static final String MTU_V6 = "mtu_v6";
     field @Deprecated public static final String MVNO_MATCH_DATA = "mvno_match_data";
     field @Deprecated public static final String MVNO_TYPE = "mvno_type";
     field public static final String NAME = "name";
@@ -38805,8 +38806,8 @@
     field public static final String SUBSCRIPTION_ID = "sub_id";
     field public static final String TYPE = "type";
     field public static final String USER = "user";
-    field @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") public static final String USER_EDITABLE = "user_editable";
-    field @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") public static final String USER_VISIBLE = "user_visible";
+    field public static final String USER_EDITABLE = "user_editable";
+    field public static final String USER_VISIBLE = "user_visible";
   }
 
   public static final class Telephony.Mms implements android.provider.Telephony.BaseMmsColumns {
@@ -47776,7 +47777,7 @@
     method public int getProxyPort();
     method public int getRoamingProtocol();
     method public String getUser();
-    method @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") public boolean isAlwaysOn();
+    method public boolean isAlwaysOn();
     method public boolean isEnabled();
     method public boolean isPersistent();
     method public void writeToParcel(@NonNull android.os.Parcel, int);
@@ -47818,7 +47819,7 @@
   public static class ApnSetting.Builder {
     ctor public ApnSetting.Builder();
     method public android.telephony.data.ApnSetting build();
-    method @FlaggedApi("com.android.internal.telephony.flags.apn_setting_field_support_flag") @NonNull public android.telephony.data.ApnSetting.Builder setAlwaysOn(boolean);
+    method @NonNull public android.telephony.data.ApnSetting.Builder setAlwaysOn(boolean);
     method @NonNull public android.telephony.data.ApnSetting.Builder setApnName(@Nullable String);
     method @NonNull public android.telephony.data.ApnSetting.Builder setApnTypeBitmask(int);
     method @NonNull public android.telephony.data.ApnSetting.Builder setAuthType(int);
@@ -56266,6 +56267,7 @@
     method public android.view.accessibility.AccessibilityNodeInfo getParent();
     method @Nullable public android.view.accessibility.AccessibilityNodeInfo getParent(int);
     method public android.view.accessibility.AccessibilityNodeInfo.RangeInfo getRangeInfo();
+    method @FlaggedApi("android.view.accessibility.a11y_selection_api") @Nullable public android.view.accessibility.AccessibilityNodeInfo.Selection getSelection();
     method @Nullable public CharSequence getStateDescription();
     method @FlaggedApi("android.view.accessibility.supplemental_description") @Nullable public CharSequence getSupplementalDescription();
     method public CharSequence getText();
@@ -56374,6 +56376,7 @@
     method public void setScreenReaderFocusable(boolean);
     method public void setScrollable(boolean);
     method public void setSelected(boolean);
+    method @FlaggedApi("android.view.accessibility.a11y_selection_api") public void setSelection(@Nullable android.view.accessibility.AccessibilityNodeInfo.Selection);
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View);
     method public void setSource(android.view.View, int);
@@ -56406,6 +56409,7 @@
     field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
     field @FlaggedApi("android.view.accessibility.granular_scrolling") public static final String ACTION_ARGUMENT_SCROLL_AMOUNT_FLOAT = "android.view.accessibility.action.ARGUMENT_SCROLL_AMOUNT_FLOAT";
     field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+    field @FlaggedApi("android.view.accessibility.a11y_selection_api") public static final String ACTION_ARGUMENT_SELECTION_PARCELABLE = "android.view.accessibility.action.ARGUMENT_SELECTION_PARCELABLE";
     field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
     field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
     field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
@@ -56503,6 +56507,7 @@
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_TO_POSITION;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_UP;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT;
+    field @FlaggedApi("android.view.accessibility.a11y_selection_api") @NonNull public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_EXTENDED_SELECTION;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_PROGRESS;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_TEXT;
@@ -56588,6 +56593,26 @@
     field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
   }
 
+  @FlaggedApi("android.view.accessibility.a11y_selection_api") public static final class AccessibilityNodeInfo.Selection implements android.os.Parcelable {
+    ctor public AccessibilityNodeInfo.Selection(@NonNull android.view.accessibility.AccessibilityNodeInfo.SelectionPosition, @NonNull android.view.accessibility.AccessibilityNodeInfo.SelectionPosition);
+    method public int describeContents();
+    method @NonNull public android.view.accessibility.AccessibilityNodeInfo.SelectionPosition getEnd();
+    method @NonNull public android.view.accessibility.AccessibilityNodeInfo.SelectionPosition getStart();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityNodeInfo.Selection> CREATOR;
+  }
+
+  @FlaggedApi("android.view.accessibility.a11y_selection_api") public static final class AccessibilityNodeInfo.SelectionPosition implements android.os.Parcelable {
+    ctor public AccessibilityNodeInfo.SelectionPosition(@NonNull android.view.accessibility.AccessibilityNodeInfo, int);
+    ctor public AccessibilityNodeInfo.SelectionPosition(@NonNull android.view.View, int);
+    ctor public AccessibilityNodeInfo.SelectionPosition(@NonNull android.view.View, int, int);
+    method public int describeContents();
+    method @Nullable public android.view.accessibility.AccessibilityNodeInfo getNode();
+    method public int getOffset();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityNodeInfo.SelectionPosition> CREATOR;
+  }
+
   public static final class AccessibilityNodeInfo.TouchDelegateInfo implements android.os.Parcelable {
     ctor public AccessibilityNodeInfo.TouchDelegateInfo(@NonNull java.util.Map<android.graphics.Region,android.view.View>);
     method public int describeContents();
diff --git a/core/api/lint-baseline.txt b/core/api/lint-baseline.txt
index e71dffa..577113b 100644
--- a/core/api/lint-baseline.txt
+++ b/core/api/lint-baseline.txt
@@ -1,3 +1,4 @@
+
 // Baseline format: 1.0
 BroadcastBehavior: android.app.AlarmManager#ACTION_NEXT_ALARM_CLOCK_CHANGED:
     Field 'ACTION_NEXT_ALARM_CLOCK_CHANGED' is missing @BroadcastBehavior
@@ -243,8 +244,6 @@
     Field 'ACTION_SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED' is missing @BroadcastBehavior
 BroadcastBehavior: android.telephony.euicc.EuiccManager#ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE:
     Field 'ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE' is missing @BroadcastBehavior
-
-
 DeprecationMismatch: android.accounts.AccountManager#newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, String[], boolean, String, String, String[], android.os.Bundle):
     Method android.accounts.AccountManager.newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, String[], boolean, String, String, String[], android.os.Bundle): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match
 DeprecationMismatch: android.app.Activity#enterPictureInPictureMode():
@@ -381,8 +380,6 @@
     Method android.webkit.WebViewDatabase.hasFormData(): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match
 DeprecationMismatch: javax.microedition.khronos.egl.EGL10#eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]):
     Method javax.microedition.khronos.egl.EGL10.eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]): @Deprecated annotation (present) and @deprecated doc tag (not present) do not match
-
-
 FlaggedApiLiteral: android.Manifest.permission#BIND_APP_FUNCTION_SERVICE:
     @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER).
 FlaggedApiLiteral: android.Manifest.permission#BIND_TV_AD_SERVICE:
@@ -405,26 +402,22 @@
     @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.content.pm.Flags.FLAG_SDK_LIB_INDEPENDENCE).
 FlaggedApiLiteral: android.R.attr#supplementalDescription:
     @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_SUPPLEMENTAL_DESCRIPTION).
+FlaggedApiLiteral: android.R.id#accessibilityActionSetExtendedSelection:
+    @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_SELECTION_API).
 FlaggedApiLiteral: android.accessibilityservice.AccessibilityService#OVERLAY_RESULT_INTERNAL_ERROR:
     @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS).
 FlaggedApiLiteral: android.accessibilityservice.AccessibilityService#OVERLAY_RESULT_INVALID:
     @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS).
 FlaggedApiLiteral: android.accessibilityservice.AccessibilityService#OVERLAY_RESULT_SUCCESS:
     @FlaggedApi contains a string literal, but should reference the field generated by aconfig (android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS).
-
-
 InvalidNullabilityOverride: android.app.Notification.TvExtender#extend(android.app.Notification.Builder) parameter #0:
     Invalid nullability on parameter `builder` in method `extend`. Parameters of overrides cannot be NonNull if the super parameter is unannotated.
 InvalidNullabilityOverride: android.media.midi.MidiUmpDeviceService#onBind(android.content.Intent) parameter #0:
     Invalid nullability on parameter `intent` in method `onBind`. Parameters of overrides cannot be NonNull if the super parameter is unannotated.
-
-
 KotlinOperator: android.graphics.Matrix44#get(int, int):
     Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
 KotlinOperator: android.graphics.Matrix44#set(int, int, float):
     Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
-
-
 MissingGetterMatchingBuilder: android.os.RemoteCallbackList.Builder#setInterfaceDiedCallback(android.os.RemoteCallbackList.Builder.InterfaceDiedCallback<E>):
     android.os.RemoteCallbackList does not declare a `getInterfaceDiedCallback()` method matching method android.os.RemoteCallbackList.Builder.setInterfaceDiedCallback(android.os.RemoteCallbackList.Builder.InterfaceDiedCallback<E>)
 RequiresPermission: android.accounts.AccountManager#getAccountsByTypeAndFeatures(String, String[], android.accounts.AccountManagerCallback<android.accounts.Account[]>, android.os.Handler):
@@ -1117,14 +1110,10 @@
     Method 'setBlockNetworkLoads' documentation mentions permissions without declaring @RequiresPermission
 RequiresPermission: android.webkit.WebSettings#setGeolocationEnabled(boolean):
     Method 'setGeolocationEnabled' documentation mentions permissions without declaring @RequiresPermission
-
-
 Todo: android.hardware.camera2.params.StreamConfigurationMap:
     Documentation mentions 'TODO'
 Todo: android.provider.ContactsContract.RawContacts#newEntityIterator(android.database.Cursor):
     Documentation mentions 'TODO'
-
-
 UnflaggedApi: android.R.color#on_surface_disabled_material:
     New API must be flagged with @FlaggedApi: field android.R.color.on_surface_disabled_material
 UnflaggedApi: android.R.color#outline_disabled_material:
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 9a848d4..76cce74 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -3436,7 +3436,7 @@
     method public void close();
     method @NonNull public android.content.Context createContext();
     method @NonNull public android.companion.virtual.audio.VirtualAudioDevice createVirtualAudioDevice(@NonNull android.hardware.display.VirtualDisplay, @Nullable java.util.concurrent.Executor, @Nullable android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback);
-    method @FlaggedApi("android.companion.virtual.flags.virtual_camera") @NonNull public android.companion.virtual.camera.VirtualCamera createVirtualCamera(@NonNull android.companion.virtual.camera.VirtualCameraConfig);
+    method @NonNull public android.companion.virtual.camera.VirtualCamera createVirtualCamera(@NonNull android.companion.virtual.camera.VirtualCameraConfig);
     method @Deprecated @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@IntRange(from=1) int, @IntRange(from=1) int, @IntRange(from=1) int, @Nullable android.view.Surface, int, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
     method @Nullable public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull android.hardware.display.VirtualDisplayConfig, @Nullable java.util.concurrent.Executor, @Nullable android.hardware.display.VirtualDisplay.Callback);
     method @NonNull public android.hardware.input.VirtualDpad createVirtualDpad(@NonNull android.hardware.input.VirtualDpadConfig);
@@ -3499,7 +3499,7 @@
     field public static final int POLICY_TYPE_ACTIVITY = 3; // 0x3
     field public static final int POLICY_TYPE_AUDIO = 1; // 0x1
     field @FlaggedApi("android.companion.virtualdevice.flags.activity_control_api") public static final int POLICY_TYPE_BLOCKED_ACTIVITY = 6; // 0x6
-    field @FlaggedApi("android.companion.virtual.flags.virtual_camera") public static final int POLICY_TYPE_CAMERA = 5; // 0x5
+    field public static final int POLICY_TYPE_CAMERA = 5; // 0x5
     field public static final int POLICY_TYPE_CLIPBOARD = 4; // 0x4
     field @FlaggedApi("android.companion.virtualdevice.flags.default_device_camera_access_policy") public static final int POLICY_TYPE_DEFAULT_DEVICE_CAMERA_ACCESS = 7; // 0x7
     field public static final int POLICY_TYPE_RECENTS = 2; // 0x2
@@ -3577,18 +3577,18 @@
 
 package android.companion.virtual.camera {
 
-  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCamera implements java.io.Closeable {
+  public final class VirtualCamera implements java.io.Closeable {
     method public void close();
     method @NonNull public android.companion.virtual.camera.VirtualCameraConfig getConfig();
   }
 
-  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public interface VirtualCameraCallback {
+  public interface VirtualCameraCallback {
     method public default void onProcessCaptureRequest(int, long);
     method public void onStreamClosed(int);
     method public void onStreamConfigured(int, @NonNull android.view.Surface, @IntRange(from=1) int, @IntRange(from=1) int, int);
   }
 
-  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCameraConfig implements android.os.Parcelable {
+  public final class VirtualCameraConfig implements android.os.Parcelable {
     method public int describeContents();
     method public int getLensFacing();
     method @NonNull public String getName();
@@ -3602,7 +3602,7 @@
     field public static final int SENSOR_ORIENTATION_90 = 90; // 0x5a
   }
 
-  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public static final class VirtualCameraConfig.Builder {
+  public static final class VirtualCameraConfig.Builder {
     ctor public VirtualCameraConfig.Builder(@NonNull String);
     method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder addStreamConfig(@IntRange(from=1) int, @IntRange(from=1) int, int, @IntRange(from=1) int);
     method @NonNull public android.companion.virtual.camera.VirtualCameraConfig build();
@@ -3611,7 +3611,7 @@
     method @NonNull public android.companion.virtual.camera.VirtualCameraConfig.Builder setVirtualCameraCallback(@NonNull java.util.concurrent.Executor, @NonNull android.companion.virtual.camera.VirtualCameraCallback);
   }
 
-  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCameraStreamConfig implements android.os.Parcelable {
+  public final class VirtualCameraStreamConfig implements android.os.Parcelable {
     method public int describeContents();
     method public int getFormat();
     method @IntRange(from=1) public int getHeight();
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 5453e73..9e9e3c2 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -942,7 +942,7 @@
 
 package android.companion.virtual.camera {
 
-  @FlaggedApi("android.companion.virtual.flags.virtual_camera") public final class VirtualCamera implements java.io.Closeable {
+  public final class VirtualCamera implements java.io.Closeable {
     method @NonNull public String getId();
   }
 
@@ -1806,17 +1806,17 @@
   }
 
   public class InputSettings {
-    method @FlaggedApi("com.android.hardware.input.keyboard_a11y_bounce_keys_flag") public static int getAccessibilityBounceKeysThreshold(@NonNull android.content.Context);
-    method @FlaggedApi("com.android.hardware.input.keyboard_a11y_slow_keys_flag") public static int getAccessibilitySlowKeysThreshold(@NonNull android.content.Context);
+    method public static int getAccessibilityBounceKeysThreshold(@NonNull android.content.Context);
+    method public static int getAccessibilitySlowKeysThreshold(@NonNull android.content.Context);
     method @FlaggedApi("com.android.input.flags.keyboard_repeat_keys") public static int getRepeatKeysDelay(@NonNull android.content.Context);
     method @FlaggedApi("com.android.input.flags.keyboard_repeat_keys") public static int getRepeatKeysTimeout(@NonNull android.content.Context);
     method @FlaggedApi("com.android.hardware.input.keyboard_a11y_mouse_keys") public static boolean isAccessibilityMouseKeysEnabled(@NonNull android.content.Context);
-    method @FlaggedApi("com.android.hardware.input.keyboard_a11y_sticky_keys_flag") public static boolean isAccessibilityStickyKeysEnabled(@NonNull android.content.Context);
+    method public static boolean isAccessibilityStickyKeysEnabled(@NonNull android.content.Context);
     method @FlaggedApi("com.android.input.flags.keyboard_repeat_keys") public static boolean isRepeatKeysEnabled(@NonNull android.content.Context);
-    method @FlaggedApi("com.android.hardware.input.keyboard_a11y_bounce_keys_flag") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityBounceKeysThreshold(@NonNull android.content.Context, int);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityBounceKeysThreshold(@NonNull android.content.Context, int);
     method @FlaggedApi("com.android.hardware.input.keyboard_a11y_mouse_keys") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityMouseKeysEnabled(@NonNull android.content.Context, boolean);
-    method @FlaggedApi("com.android.hardware.input.keyboard_a11y_slow_keys_flag") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilitySlowKeysThreshold(@NonNull android.content.Context, int);
-    method @FlaggedApi("com.android.hardware.input.keyboard_a11y_sticky_keys_flag") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityStickyKeysEnabled(@NonNull android.content.Context, boolean);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilitySlowKeysThreshold(@NonNull android.content.Context, int);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setAccessibilityStickyKeysEnabled(@NonNull android.content.Context, boolean);
     method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static void setMaximumObscuringOpacityForTouch(@NonNull android.content.Context, @FloatRange(from=0, to=1) float);
     method @FlaggedApi("com.android.input.flags.keyboard_repeat_keys") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setRepeatKeysDelay(@NonNull android.content.Context, int);
     method @FlaggedApi("com.android.input.flags.keyboard_repeat_keys") @RequiresPermission(android.Manifest.permission.WRITE_SETTINGS) public static void setRepeatKeysEnabled(@NonNull android.content.Context, boolean);
diff --git a/core/java/android/accessibilityservice/OWNERS b/core/java/android/accessibilityservice/OWNERS
index 1265dfa..dac64f4 100644
--- a/core/java/android/accessibilityservice/OWNERS
+++ b/core/java/android/accessibilityservice/OWNERS
@@ -1,4 +1,7 @@
-# Bug component: 44215
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 44215.
 
 # Android Accessibility Framework owners
 include /services/accessibility/OWNERS
\ No newline at end of file
diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java
index 82c746a..b8c20bd 100644
--- a/core/java/android/app/ActivityOptions.java
+++ b/core/java/android/app/ActivityOptions.java
@@ -2230,6 +2230,16 @@
         return mLaunchCookie;
     }
 
+    /**
+     * Set the ability for the current transition/animation to work cross-task.
+     * @param allowTaskOverride true to allow cross-task use, otherwise false.
+     *
+     * @hide
+     */
+    public ActivityOptions setOverrideTaskTransition(boolean allowTaskOverride) {
+        this.mOverrideTaskTransition = allowTaskOverride;
+        return this;
+    }
 
     /** @hide */
     public boolean getOverrideTaskTransition() {
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index efcd278..458c171 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -3067,7 +3067,7 @@
         new AppOpInfo.Builder(OP_ESTABLISH_VPN_MANAGER, OPSTR_ESTABLISH_VPN_MANAGER,
                 "ESTABLISH_VPN_MANAGER").setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
         new AppOpInfo.Builder(OP_ACCESS_RESTRICTED_SETTINGS, OPSTR_ACCESS_RESTRICTED_SETTINGS,
-                "ACCESS_RESTRICTED_SETTINGS").setDefaultMode(AppOpsManager.MODE_ALLOWED)
+                "ACCESS_RESTRICTED_SETTINGS").setDefaultMode(AppOpsManager.MODE_DEFAULT)
             .setDisableReset(true).setRestrictRead(true).build(),
         new AppOpInfo.Builder(OP_RECEIVE_AMBIENT_TRIGGER_AUDIO, OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO,
                 "RECEIVE_SOUNDTRIGGER_AUDIO").setDefaultMode(AppOpsManager.MODE_ALLOWED)
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 2dead56..f2e7e85 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -17,7 +17,6 @@
 package android.app;
 
 import static android.app.PropertyInvalidatedCache.MODULE_SYSTEM;
-import static android.app.PropertyInvalidatedCache.createSystemCacheKey;
 import static android.app.admin.DevicePolicyResources.Drawables.Style.SOLID_COLORED;
 import static android.app.admin.DevicePolicyResources.Drawables.Style.SOLID_NOT_COLORED;
 import static android.app.admin.DevicePolicyResources.Drawables.WORK_PROFILE_ICON;
@@ -1146,12 +1145,16 @@
         }
     }
 
-    private static final String CACHE_KEY_PACKAGES_FOR_UID_PROPERTY =
-            createSystemCacheKey("get_packages_for_uid");
-    private static final PropertyInvalidatedCache<Integer, GetPackagesForUidResult>
-            mGetPackagesForUidCache =
-            new PropertyInvalidatedCache<Integer, GetPackagesForUidResult>(
-                1024, CACHE_KEY_PACKAGES_FOR_UID_PROPERTY) {
+    private static final String CACHE_KEY_PACKAGES_FOR_UID_API = "get_packages_for_uid";
+
+    /** @hide */
+    @VisibleForTesting
+    public static final PropertyInvalidatedCache<Integer, GetPackagesForUidResult>
+            sGetPackagesForUidCache = new PropertyInvalidatedCache<>(
+                new PropertyInvalidatedCache.Args(MODULE_SYSTEM)
+                .maxEntries(1024).api(CACHE_KEY_PACKAGES_FOR_UID_API).cacheNulls(true),
+                CACHE_KEY_PACKAGES_FOR_UID_API, null) {
+
                 @Override
                 public GetPackagesForUidResult recompute(Integer uid) {
                     try {
@@ -1170,17 +1173,17 @@
 
     @Override
     public String[] getPackagesForUid(int uid) {
-        return mGetPackagesForUidCache.query(uid).value();
+        return sGetPackagesForUidCache.query(uid).value();
     }
 
     /** @hide */
     public static void disableGetPackagesForUidCache() {
-        mGetPackagesForUidCache.disableLocal();
+        sGetPackagesForUidCache.disableLocal();
     }
 
     /** @hide */
     public static void invalidateGetPackagesForUidCache() {
-        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_PACKAGES_FOR_UID_PROPERTY);
+        sGetPackagesForUidCache.invalidateCache();
     }
 
     @Override
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index bc01f93..6fedcbe 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -121,6 +121,7 @@
     void deleteNotificationChannelGroup(String pkg, String channelGroupId);
     NotificationChannelGroup getNotificationChannelGroup(String pkg, String channelGroupId);
     ParceledListSlice getNotificationChannelGroups(String pkg);
+    ParceledListSlice getNotificationChannelGroupsWithoutChannels(String pkg);
     boolean onlyHasDefaultChannel(String pkg, int uid);
     boolean areChannelsBypassingDnd();
     ParceledListSlice getNotificationChannelsBypassingDnd(String pkg, int uid);
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index dce15b8..0ca4a32 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -11204,10 +11204,15 @@
      * </pre>
      *
      *
-     *
+     * <p>
      * NOTE: The progress bar layout will be mirrored for RTL layout.
+     * </p>
+     *
+     * <p>
      * NOTE: The extras set by {@link Notification.Builder#setProgress} will be overridden by
-     * the values set on this style object when the notification is built.
+     * the values set on this style object when the notification is built.  Therefore, that method
+     * is not used with this style.
+     * </p>
      *
      */
     @FlaggedApi(Flags.FLAG_API_RICH_ONGOING)
@@ -11370,7 +11375,7 @@
             if (mProgressPoints == null) {
                 mProgressPoints = new ArrayList<>();
             }
-            if (point.getPosition() >= 0) {
+            if (point.getPosition() > 0) {
                 mProgressPoints.add(point);
 
                 if (mProgressPoints.size() > MAX_PROGRESS_POINT_LIMIT) {
@@ -11379,7 +11384,7 @@
                 }
 
             } else {
-                Log.w(TAG, "Dropped the point. The position is a negative integer.");
+                Log.w(TAG, "Dropped the point. The position is a negative or zero integer.");
             }
 
             return this;
@@ -11893,7 +11898,9 @@
                 final List<Point> points = new ArrayList<>();
                 for (Point point : mProgressPoints) {
                     final int position = point.getPosition();
-                    if (position < 0 || position > totalLength) continue;
+                    // The points at start/end aren't supposed to show in the progress bar.
+                    // Therefore those are also dropped here.
+                    if (position <= 0 || position >= totalLength) continue;
                     points.add(sanitizePoint(point, backgroundColor, defaultProgressColor));
                     if (points.size() == MAX_PROGRESS_POINT_LIMIT) {
                         break;
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 6e31779..00f896d 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -69,12 +69,14 @@
 import android.service.notification.ZenModeConfig;
 import android.service.notification.ZenPolicy;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.Log;
 import android.util.LruCache;
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.notification.NotificationChannelGroupsHelper;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -1396,11 +1398,23 @@
      * The channel group must belong to your package, or null will be returned.
      */
     public NotificationChannelGroup getNotificationChannelGroup(String channelGroupId) {
-        INotificationManager service = service();
-        try {
-            return service.getNotificationChannelGroup(mContext.getPackageName(), channelGroupId);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
+        if (Flags.nmBinderPerfCacheChannels()) {
+            String pkgName = mContext.getPackageName();
+            // getNotificationChannelGroup may only be called by the same package.
+            List<NotificationChannel> channelList = mNotificationChannelListCache.query(
+                    new NotificationChannelQuery(pkgName, pkgName, mContext.getUserId()));
+            Map<String, NotificationChannelGroup> groupHeaders =
+                    mNotificationChannelGroupsCache.query(pkgName);
+            return NotificationChannelGroupsHelper.getGroupWithChannels(channelGroupId, channelList,
+                    groupHeaders, /* includeDeleted= */ false);
+        } else {
+            INotificationManager service = service();
+            try {
+                return service.getNotificationChannelGroup(mContext.getPackageName(),
+                        channelGroupId);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
         }
     }
 
@@ -1408,17 +1422,27 @@
      * Returns all notification channel groups belonging to the calling app.
      */
     public List<NotificationChannelGroup> getNotificationChannelGroups() {
-        INotificationManager service = service();
-        try {
-            final ParceledListSlice<NotificationChannelGroup> parceledList =
-                    service.getNotificationChannelGroups(mContext.getPackageName());
-            if (parceledList != null) {
-                return parceledList.getList();
+        if (Flags.nmBinderPerfCacheChannels()) {
+            String pkgName = mContext.getPackageName();
+            List<NotificationChannel> channelList = mNotificationChannelListCache.query(
+                    new NotificationChannelQuery(pkgName, pkgName, mContext.getUserId()));
+            Map<String, NotificationChannelGroup> groupHeaders =
+                    mNotificationChannelGroupsCache.query(pkgName);
+            return NotificationChannelGroupsHelper.getGroupsWithChannels(channelList, groupHeaders,
+                    NotificationChannelGroupsHelper.Params.forAllGroups());
+        } else {
+            INotificationManager service = service();
+            try {
+                final ParceledListSlice<NotificationChannelGroup> parceledList =
+                        service.getNotificationChannelGroups(mContext.getPackageName());
+                if (parceledList != null) {
+                    return parceledList.getList();
+                }
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
             }
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
+            return new ArrayList<>();
         }
-        return new ArrayList<>();
     }
 
     /**
@@ -1448,9 +1472,11 @@
         }
     }
 
-    private static final String NOTIFICATION_CHANNEL_CACHE_API = "getNotificationChannel";
-    private static final String NOTIFICATION_CHANNEL_LIST_CACHE_NAME = "getNotificationChannels";
-    private static final int NOTIFICATION_CHANNEL_CACHE_SIZE = 10;
+    private static final String NOTIFICATION_CHANNELS_CACHE_API = "getNotificationChannels";
+    private static final int NOTIFICATION_CHANNELS_CACHE_SIZE = 10;
+    private static final String NOTIFICATION_CHANNEL_GROUPS_CACHE_API =
+            "getNotificationChannelGroups";
+    private static final int NOTIFICATION_CHANNEL_GROUPS_CACHE_SIZE = 10;
 
     private final IpcDataCache.QueryHandler<NotificationChannelQuery, List<NotificationChannel>>
             mNotificationChannelListQueryHandler = new IpcDataCache.QueryHandler<>() {
@@ -1480,8 +1506,8 @@
 
     private final IpcDataCache<NotificationChannelQuery, List<NotificationChannel>>
             mNotificationChannelListCache =
-            new IpcDataCache<>(NOTIFICATION_CHANNEL_CACHE_SIZE, IpcDataCache.MODULE_SYSTEM,
-                    NOTIFICATION_CHANNEL_CACHE_API, NOTIFICATION_CHANNEL_LIST_CACHE_NAME,
+            new IpcDataCache<>(NOTIFICATION_CHANNELS_CACHE_SIZE, IpcDataCache.MODULE_SYSTEM,
+                    NOTIFICATION_CHANNELS_CACHE_API, NOTIFICATION_CHANNELS_CACHE_API,
                     mNotificationChannelListQueryHandler);
 
     private record NotificationChannelQuery(
@@ -1489,13 +1515,52 @@
             String targetPkg,
             int userId) {}
 
+    private final IpcDataCache.QueryHandler<String, Map<String, NotificationChannelGroup>>
+            mNotificationChannelGroupsQueryHandler = new IpcDataCache.QueryHandler<>() {
+                @Override
+                public Map<String, NotificationChannelGroup> apply(String pkg) {
+                    INotificationManager service = service();
+                    Map<String, NotificationChannelGroup> groups = new ArrayMap<>();
+                    try {
+                        final ParceledListSlice<NotificationChannelGroup> parceledList =
+                                service.getNotificationChannelGroupsWithoutChannels(pkg);
+                        if (parceledList != null) {
+                            for (NotificationChannelGroup group : parceledList.getList()) {
+                                groups.put(group.getId(), group);
+                            }
+                        }
+                    } catch (RemoteException e) {
+                        throw e.rethrowFromSystemServer();
+                    }
+                    return groups;
+                }
+
+                @Override
+                public boolean shouldBypassCache(@NonNull String query) {
+                    // Other locations should also not be querying the cache in the first place if
+                    // the flag is not enabled, but this is an extra precaution.
+                    if (!Flags.nmBinderPerfCacheChannels()) {
+                        Log.wtf(TAG,
+                                "shouldBypassCache called when nm_binder_perf_cache_channels off");
+                        return true;
+                    }
+                    return false;
+                }
+            };
+
+    private final IpcDataCache<String, Map<String, NotificationChannelGroup>>
+            mNotificationChannelGroupsCache = new IpcDataCache<>(
+            NOTIFICATION_CHANNEL_GROUPS_CACHE_SIZE, IpcDataCache.MODULE_SYSTEM,
+            NOTIFICATION_CHANNEL_GROUPS_CACHE_API, NOTIFICATION_CHANNEL_GROUPS_CACHE_API,
+            mNotificationChannelGroupsQueryHandler);
+
     /**
      * @hide
      */
     public static void invalidateNotificationChannelCache() {
         if (Flags.nmBinderPerfCacheChannels()) {
             IpcDataCache.invalidateCache(IpcDataCache.MODULE_SYSTEM,
-                    NOTIFICATION_CHANNEL_CACHE_API);
+                    NOTIFICATION_CHANNELS_CACHE_API);
         } else {
             // if we are here, we have failed to flag something
             Log.wtf(TAG, "invalidateNotificationChannelCache called without flag");
@@ -1503,14 +1568,28 @@
     }
 
     /**
+     * @hide
+     */
+    public static void invalidateNotificationChannelGroupCache() {
+        if (Flags.nmBinderPerfCacheChannels()) {
+            IpcDataCache.invalidateCache(IpcDataCache.MODULE_SYSTEM,
+                    NOTIFICATION_CHANNEL_GROUPS_CACHE_API);
+        } else {
+            // if we are here, we have failed to flag something
+            Log.wtf(TAG, "invalidateNotificationChannelGroupCache called without flag");
+        }
+    }
+
+    /**
      * For testing only: running tests with a cache requires marking the cache's property for
      * testing, as test APIs otherwise cannot invalidate the cache. This must be called after
      * calling PropertyInvalidatedCache.setTestMode(true).
      * @hide
      */
     @VisibleForTesting
-    public void setChannelCacheToTestMode() {
+    public void setChannelCachesToTestMode() {
         mNotificationChannelListCache.testPropertyName();
+        mNotificationChannelGroupsCache.testPropertyName();
     }
 
     /**
diff --git a/core/java/android/app/PropertyInvalidatedCache.java b/core/java/android/app/PropertyInvalidatedCache.java
index bfb33f2b..c573161 100644
--- a/core/java/android/app/PropertyInvalidatedCache.java
+++ b/core/java/android/app/PropertyInvalidatedCache.java
@@ -1163,6 +1163,17 @@
     }
 
     /**
+     * Return the current cache nonce.
+     * @hide
+     */
+    @VisibleForTesting
+    public long getNonce() {
+        synchronized (mLock) {
+            return mNonce.getNonce();
+        }
+    }
+
+    /**
      * Complete key prefixes.
      */
     private static final String PREFIX_TEST = CACHE_KEY_PREFIX + "." + MODULE_TEST + ".";
@@ -1314,7 +1325,7 @@
 
     /**
      * Burst a property name into module and api.  Throw if the key is invalid.  This method is
-     * used in to transition legacy cache constructors to the args constructor.
+     * used to transition legacy cache constructors to the Args constructor.
      */
     private static Args argsFromProperty(@NonNull String name) {
         throwIfInvalidCacheKey(name);
@@ -1327,6 +1338,15 @@
     }
 
     /**
+     * Return the API porting of a legacy property.  This method is used to transition caches to
+     * the Args constructor.
+     * @hide
+     */
+    public static String apiFromProperty(@NonNull String name) {
+        return argsFromProperty(name).mApi;
+    }
+
+    /**
      * Make a new property invalidated cache.  This constructor names the cache after the
      * property name.  New clients should prefer the constructor that takes an explicit
      * cache name.
@@ -2036,11 +2056,11 @@
     }
 
     /**
-     * Disable all caches in the local process.  This is primarily useful for testing when
-     * the test needs to bypass the cache or when the test is for a server, and the test
-     * process does not have privileges to write SystemProperties. Once disabled it is not
-     * possible to re-enable caching in the current process.  If a client wants to
-     * temporarily disable caching, use the corking mechanism.
+     * Disable all caches in the local process.  This is primarily useful for testing when the
+     * test needs to bypass the cache or when the test is for a server, and the test process does
+     * not have privileges to write the nonce. Once disabled it is not possible to re-enable
+     * caching in the current process.  See {@link #testPropertyName} for a more focused way to
+     * bypass caches when the test is for a server.
      * @hide
      */
     public static void disableForTestMode() {
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 076f856..9574824 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -297,6 +297,16 @@
             "android.wallpaper.lockscreen_layout_changed";
 
     /**
+     * Command for {@link #sendWallpaperCommand}:  Include the tap position within the wallpaper
+     * focal area.The x and y arguments are the absolute tap coordinates, already scaled to match
+     * the wallpaper's dimensions.
+     *
+     * @hide
+     */
+    public static final String COMMAND_LOCKSCREEN_TAP =
+            "android.wallpaper.lockscreen_tap";
+
+    /**
      * Extra passed back from setWallpaper() giving the new wallpaper's assigned ID.
      * @hide
      */
diff --git a/core/java/android/app/appfunctions/AppFunctionManager.java b/core/java/android/app/appfunctions/AppFunctionManager.java
index 0a3891f..a66d59b 100644
--- a/core/java/android/app/appfunctions/AppFunctionManager.java
+++ b/core/java/android/app/appfunctions/AppFunctionManager.java
@@ -27,6 +27,7 @@
 import android.annotation.RequiresPermission;
 import android.annotation.SystemService;
 import android.annotation.UserHandleAware;
+import android.app.appfunctions.AppFunctionManagerHelper.AppFunctionNotFoundException;
 import android.app.appsearch.AppSearchManager;
 import android.content.Context;
 import android.os.CancellationSignal;
@@ -325,8 +326,28 @@
             return;
         }
 
+        // Wrap the callback to convert AppFunctionNotFoundException to IllegalArgumentException
+        // to match the documentation.
+        OutcomeReceiver<Boolean, Exception> callbackWithExceptionInterceptor =
+                new OutcomeReceiver<>() {
+                    @Override
+                    public void onResult(@NonNull Boolean result) {
+                        callback.onResult(result);
+                    }
+
+                    @Override
+                    public void onError(@NonNull Exception exception) {
+                        if (exception instanceof AppFunctionNotFoundException) {
+                            exception = new IllegalArgumentException(exception);
+                        }
+                        callback.onError(exception);
+                    }
+                };
+
         AppFunctionManagerHelper.isAppFunctionEnabled(
-                functionIdentifier, targetPackage, appSearchManager, executor, callback);
+                functionIdentifier, targetPackage, appSearchManager, executor,
+                callbackWithExceptionInterceptor);
+
     }
 
     private static class CallbackWrapper extends IAppFunctionEnabledCallback.Stub {
diff --git a/core/java/android/app/appfunctions/AppFunctionManagerHelper.java b/core/java/android/app/appfunctions/AppFunctionManagerHelper.java
index cc3ca03..83abc04 100644
--- a/core/java/android/app/appfunctions/AppFunctionManagerHelper.java
+++ b/core/java/android/app/appfunctions/AppFunctionManagerHelper.java
@@ -60,8 +60,8 @@
      * <p>If operation fails, the callback's {@link OutcomeReceiver#onError} is called with errors:
      *
      * <ul>
-     *   <li>{@link IllegalArgumentException}, if the function is not found or the caller does not
-     *       have access to it.
+     *   <li>{@link AppFunctionNotFoundException}, if the function is not found or the caller does
+     *       not have access to it.
      * </ul>
      *
      * @param functionIdentifier the identifier of the app function to check (unique within the
@@ -216,7 +216,7 @@
     private static @NonNull Exception failedResultToException(
             @NonNull AppSearchResult appSearchResult) {
         return switch (appSearchResult.getResultCode()) {
-            case AppSearchResult.RESULT_INVALID_ARGUMENT -> new IllegalArgumentException(
+            case AppSearchResult.RESULT_INVALID_ARGUMENT -> new AppFunctionNotFoundException(
                     appSearchResult.getErrorMessage());
             case AppSearchResult.RESULT_IO_ERROR -> new IOException(
                     appSearchResult.getErrorMessage());
@@ -225,4 +225,15 @@
             default -> new IllegalStateException(appSearchResult.getErrorMessage());
         };
     }
+
+    /**
+     * Throws when the app function is not found.
+     *
+     * @hide
+     */
+    public static class AppFunctionNotFoundException extends RuntimeException {
+        private AppFunctionNotFoundException(@NonNull String errorMessage) {
+            super(errorMessage);
+        }
+    }
 }
diff --git a/core/java/android/companion/CompanionDeviceManager.java b/core/java/android/companion/CompanionDeviceManager.java
index 566e78a..2b0e941 100644
--- a/core/java/android/companion/CompanionDeviceManager.java
+++ b/core/java/android/companion/CompanionDeviceManager.java
@@ -277,6 +277,23 @@
      */
     public static final int MESSAGE_ONEWAY_TO_WEARABLE = 0x43847987; // +TOW
 
+
+    /** @hide */
+    @IntDef(flag = true, prefix = { "TRANSPORT_FLAG_" }, value = {
+            TRANSPORT_FLAG_EXTEND_PATCH_DIFF,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface TransportFlags {}
+
+    /**
+     * A security flag that allows transports to be attached to devices that may be more vulnerable
+     * due to infrequent updates. Can only be used for associations with
+     * {@link AssociationRequest#DEVICE_PROFILE_WEARABLE_SENSING} device profile.
+     *
+     * @hide
+     */
+    public static final int TRANSPORT_FLAG_EXTEND_PATCH_DIFF = 1;
+
     /**
      * Callback for applications to receive updates about and the outcome of
      * {@link AssociationRequest} issued via {@code associate()} call.
@@ -1452,7 +1469,52 @@
             }
 
             try {
-                final Transport transport = new Transport(associationId, in, out);
+                final Transport transport = new Transport(associationId, in, out, 0);
+                mTransports.put(associationId, transport);
+                transport.start();
+            } catch (IOException e) {
+                throw new RuntimeException("Failed to attach transport", e);
+            }
+        }
+    }
+
+    /**
+     * Attach a bidirectional communication stream to be used as a transport channel for
+     * transporting system data between associated devices. Flags can be provided to further
+     * customize the behavior of the transport.
+     *
+     * @param associationId id of the associated device.
+     * @param in Already connected stream of data incoming from remote
+     *           associated device.
+     * @param out Already connected stream of data outgoing to remote associated
+     *            device.
+     * @param flags Flags to customize transport behavior.
+     * @throws DeviceNotAssociatedException Thrown if the associationId was not previously
+     * associated with this app.
+     *
+     * @see #buildPermissionTransferUserConsentIntent(int)
+     * @see #startSystemDataTransfer(int, Executor, OutcomeReceiver)
+     * @see #detachSystemDataTransport(int)
+     *
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.DELIVER_COMPANION_MESSAGES)
+    public void attachSystemDataTransport(int associationId,
+            @NonNull InputStream in,
+            @NonNull OutputStream out,
+            @TransportFlags int flags) throws DeviceNotAssociatedException {
+        if (mService == null) {
+            Log.w(TAG, "CompanionDeviceManager service is not available.");
+            return;
+        }
+
+        synchronized (mTransports) {
+            if (mTransports.contains(associationId)) {
+                detachSystemDataTransport(associationId);
+            }
+
+            try {
+                final Transport transport = new Transport(associationId, in, out, flags);
                 mTransports.put(associationId, transport);
                 transport.start();
             } catch (IOException e) {
@@ -1931,16 +1993,22 @@
         private final int mAssociationId;
         private final InputStream mRemoteIn;
         private final OutputStream mRemoteOut;
+        private final int mFlags;
 
         private InputStream mLocalIn;
         private OutputStream mLocalOut;
 
         private volatile boolean mStopped;
 
-        public Transport(int associationId, InputStream remoteIn, OutputStream remoteOut) {
+        Transport(int associationId, InputStream remoteIn, OutputStream remoteOut) {
+            this(associationId, remoteIn, remoteOut, 0);
+        }
+
+        Transport(int associationId, InputStream remoteIn, OutputStream remoteOut, int flags) {
             mAssociationId = associationId;
             mRemoteIn = remoteIn;
             mRemoteOut = remoteOut;
+            mFlags = flags;
         }
 
         public void start() throws IOException {
@@ -1957,7 +2025,7 @@
 
             try {
                 mService.attachSystemDataTransport(mContext.getOpPackageName(),
-                        mContext.getUserId(), mAssociationId, remoteFd);
+                        mContext.getUserId(), mAssociationId, remoteFd, mFlags);
             } catch (RemoteException e) {
                 throw new IOException("Failed to configure transport", e);
             }
diff --git a/core/java/android/companion/ICompanionDeviceManager.aidl b/core/java/android/companion/ICompanionDeviceManager.aidl
index a2b7dd9..787e8b6 100644
--- a/core/java/android/companion/ICompanionDeviceManager.aidl
+++ b/core/java/android/companion/ICompanionDeviceManager.aidl
@@ -113,7 +113,7 @@
         in ISystemDataTransferCallback callback);
 
     @EnforcePermission("DELIVER_COMPANION_MESSAGES")
-    void attachSystemDataTransport(String packageName, int userId, int associationId, in ParcelFileDescriptor fd);
+    void attachSystemDataTransport(String packageName, int userId, int associationId, in ParcelFileDescriptor fd, int flags);
 
     @EnforcePermission("DELIVER_COMPANION_MESSAGES")
     void detachSystemDataTransport(String packageName, int userId, int associationId);
diff --git a/core/java/android/companion/virtual/VirtualDeviceManager.java b/core/java/android/companion/virtual/VirtualDeviceManager.java
index 252db82..ab52db4 100644
--- a/core/java/android/companion/virtual/VirtualDeviceManager.java
+++ b/core/java/android/companion/virtual/VirtualDeviceManager.java
@@ -37,8 +37,8 @@
 import android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback;
 import android.companion.virtual.camera.VirtualCamera;
 import android.companion.virtual.camera.VirtualCameraConfig;
-import android.companion.virtual.flags.Flags;
 import android.companion.virtual.sensor.VirtualSensor;
+import android.companion.virtualdevice.flags.Flags;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -624,7 +624,7 @@
          * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_TRUSTED
          * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
+        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
         public void goToSleep() {
             mVirtualDeviceInternal.goToSleep();
         }
@@ -642,7 +642,7 @@
          * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_TRUSTED
          * @see DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
+        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
         public void wakeUp() {
             mVirtualDeviceInternal.wakeUp();
         }
@@ -838,7 +838,7 @@
          * @see #removeActivityPolicyExemption(ActivityPolicyExemption)
          * @see #setDevicePolicy
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
         public void addActivityPolicyExemption(@NonNull ActivityPolicyExemption exemption) {
             mVirtualDeviceInternal.addActivityPolicyExemption(Objects.requireNonNull(exemption));
         }
@@ -853,7 +853,7 @@
          * @see #addActivityPolicyExemption(ActivityPolicyExemption)
          * @see #setDevicePolicy
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
         public void removeActivityPolicyExemption(@NonNull ActivityPolicyExemption exemption) {
             mVirtualDeviceInternal.removeActivityPolicyExemption(Objects.requireNonNull(exemption));
         }
@@ -875,7 +875,7 @@
          * @see VirtualDeviceParams#POLICY_TYPE_RECENTS
          * @see VirtualDeviceParams#POLICY_TYPE_ACTIVITY
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
         public void setDevicePolicy(
                 @VirtualDeviceParams.DynamicDisplayPolicyType int policyType,
                 @VirtualDeviceParams.DevicePolicy int devicePolicy,
@@ -1037,10 +1037,10 @@
          * @see android.view.InputDevice#SOURCE_ROTARY_ENCODER
          */
         @NonNull
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_VIRTUAL_ROTARY)
+        @FlaggedApi(Flags.FLAG_VIRTUAL_ROTARY)
         public VirtualRotaryEncoder createVirtualRotaryEncoder(
                 @NonNull VirtualRotaryEncoderConfig config) {
-            if (!android.companion.virtualdevice.flags.Flags.virtualRotary()) {
+            if (!Flags.virtualRotary()) {
                 throw new UnsupportedOperationException("Virtual rotary support not enabled");
             }
             return mVirtualDeviceInternal.createVirtualRotaryEncoder(config);
@@ -1084,12 +1084,7 @@
          * @see VirtualDeviceParams#POLICY_TYPE_CAMERA
          */
         @NonNull
-        @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
         public VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) {
-            if (!Flags.virtualCamera()) {
-                throw new UnsupportedOperationException(
-                        "Flag is not enabled: %s".formatted(Flags.FLAG_VIRTUAL_CAMERA));
-            }
             return mVirtualDeviceInternal.createVirtualCamera(Objects.requireNonNull(config));
         }
 
@@ -1252,7 +1247,7 @@
          * @see VirtualDeviceParams#POLICY_TYPE_ACTIVITY
          * @see VirtualDevice#addActivityPolicyExemption(ActivityPolicyExemption)
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
         default void onActivityLaunchBlocked(int displayId, @NonNull ComponentName componentName,
                 @NonNull UserHandle user, @Nullable IntentSender intentSender) {}
 
@@ -1268,7 +1263,7 @@
          * @see Display#FLAG_SECURE
          * @see WindowManager.LayoutParams#FLAG_SECURE
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
         default void onSecureWindowShown(int displayId, @NonNull ComponentName componentName,
                 @NonNull UserHandle user) {}
 
@@ -1284,7 +1279,7 @@
          * @see Display#FLAG_SECURE
          * @see WindowManager.LayoutParams#FLAG_SECURE
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+        @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
         default void onSecureWindowHidden(int displayId) {}
     }
 
diff --git a/core/java/android/companion/virtual/VirtualDeviceParams.java b/core/java/android/companion/virtual/VirtualDeviceParams.java
index 95dee9b..6994947 100644
--- a/core/java/android/companion/virtual/VirtualDeviceParams.java
+++ b/core/java/android/companion/virtual/VirtualDeviceParams.java
@@ -29,12 +29,12 @@
 import android.annotation.RequiresPermission;
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
-import android.companion.virtual.flags.Flags;
 import android.companion.virtual.sensor.IVirtualSensorCallback;
 import android.companion.virtual.sensor.VirtualSensor;
 import android.companion.virtual.sensor.VirtualSensorCallback;
 import android.companion.virtual.sensor.VirtualSensorConfig;
 import android.companion.virtual.sensor.VirtualSensorDirectChannelCallback;
+import android.companion.virtualdevice.flags.Flags;
 import android.content.ComponentName;
 import android.content.Context;
 import android.hardware.display.VirtualDisplayConfig;
@@ -279,7 +279,6 @@
      *
      * @see Context#getDeviceId
      */
-    @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
     public static final int POLICY_TYPE_CAMERA = 5;
 
     /**
@@ -296,7 +295,7 @@
      * </ul>
      */
     // TODO(b/333443509): Link to POLICY_TYPE_ACTIVITY
-    @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
+    @FlaggedApi(Flags.FLAG_ACTIVITY_CONTROL_API)
     public static final int POLICY_TYPE_BLOCKED_ACTIVITY = 6;
 
     /**
@@ -310,8 +309,7 @@
      *
      * @see Context#DEVICE_ID_DEFAULT
      */
-    @FlaggedApi(android.companion.virtualdevice.flags.Flags
-            .FLAG_DEFAULT_DEVICE_CAMERA_ACCESS_POLICY)
+    @FlaggedApi(Flags.FLAG_DEFAULT_DEVICE_CAMERA_ACCESS_POLICY)
     public static final int POLICY_TYPE_DEFAULT_DEVICE_CAMERA_ACCESS = 7;
 
     private final int mLockState;
@@ -407,7 +405,7 @@
      *
      * @see Builder#setDimDuration(Duration)
      */
-    @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
+    @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
     public @NonNull Duration getDimDuration() {
         return Duration.ofMillis(mDimDuration);
     }
@@ -417,7 +415,7 @@
      *
      * @see Builder#setDimDuration(Duration)
      */
-    @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
+    @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
     public @NonNull Duration getScreenOffTimeout() {
         return Duration.ofMillis(mScreenOffTimeout);
     }
@@ -876,7 +874,7 @@
          * @see android.hardware.display.DisplayManager#VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR
          * @see #setScreenOffTimeout
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
+        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
         @NonNull
         public Builder setDimDuration(@NonNull Duration dimDuration) {
             if (Objects.requireNonNull(dimDuration).compareTo(Duration.ZERO) < 0) {
@@ -901,7 +899,7 @@
          * @see #setDimDuration
          * @see VirtualDeviceManager.VirtualDevice#goToSleep()
          */
-        @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
+        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
         @NonNull
         public Builder setScreenOffTimeout(@NonNull Duration screenOffTimeout) {
             if (Objects.requireNonNull(screenOffTimeout).compareTo(Duration.ZERO) < 0) {
@@ -1311,15 +1309,11 @@
                 mScreenOffTimeout = INFINITE_TIMEOUT;
             }
 
-            if (!Flags.virtualCamera()) {
-                mDevicePolicies.delete(POLICY_TYPE_CAMERA);
-            }
-
-            if (!android.companion.virtualdevice.flags.Flags.defaultDeviceCameraAccessPolicy()) {
+            if (!Flags.defaultDeviceCameraAccessPolicy()) {
                 mDevicePolicies.delete(POLICY_TYPE_DEFAULT_DEVICE_CAMERA_ACCESS);
             }
 
-            if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+            if (!Flags.activityControlApi()) {
                 mDevicePolicies.delete(POLICY_TYPE_BLOCKED_ACTIVITY);
             }
 
diff --git a/core/java/android/companion/virtual/camera/VirtualCamera.java b/core/java/android/companion/virtual/camera/VirtualCamera.java
index ece048d..b7bcc29 100644
--- a/core/java/android/companion/virtual/camera/VirtualCamera.java
+++ b/core/java/android/companion/virtual/camera/VirtualCamera.java
@@ -16,14 +16,12 @@
 
 package android.companion.virtual.camera;
 
-import android.annotation.FlaggedApi;
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
 import android.companion.virtual.IVirtualDevice;
 import android.companion.virtual.VirtualDeviceManager;
 import android.companion.virtual.VirtualDeviceParams;
-import android.companion.virtual.flags.Flags;
 import android.hardware.camera2.CameraDevice;
 import android.os.RemoteException;
 
@@ -51,7 +49,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
 public final class VirtualCamera implements Closeable {
 
     private final IVirtualDevice mVirtualDevice;
diff --git a/core/java/android/companion/virtual/camera/VirtualCameraCallback.java b/core/java/android/companion/virtual/camera/VirtualCameraCallback.java
index c894de4..d326be8 100644
--- a/core/java/android/companion/virtual/camera/VirtualCameraCallback.java
+++ b/core/java/android/companion/virtual/camera/VirtualCameraCallback.java
@@ -16,11 +16,9 @@
 
 package android.companion.virtual.camera;
 
-import android.annotation.FlaggedApi;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
-import android.companion.virtual.flags.Flags;
 import android.graphics.ImageFormat;
 import android.view.Surface;
 
@@ -34,7 +32,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
 public interface VirtualCameraCallback {
 
     /**
diff --git a/core/java/android/companion/virtual/camera/VirtualCameraConfig.java b/core/java/android/companion/virtual/camera/VirtualCameraConfig.java
index 769b658..6c88ec9 100644
--- a/core/java/android/companion/virtual/camera/VirtualCameraConfig.java
+++ b/core/java/android/companion/virtual/camera/VirtualCameraConfig.java
@@ -18,14 +18,12 @@
 
 import static java.util.Objects.requireNonNull;
 
-import android.annotation.FlaggedApi;
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.companion.virtual.VirtualDevice;
-import android.companion.virtual.flags.Flags;
 import android.graphics.ImageFormat;
 import android.graphics.PixelFormat;
 import android.hardware.camera2.CameraMetadata;
@@ -47,7 +45,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
 public final class VirtualCameraConfig implements Parcelable {
 
     private static final int LENS_FACING_UNKNOWN = -1;
@@ -198,7 +195,6 @@
      *     VirtualCameraCallback)}
      * <li>A lens facing must be set with {@link #setLensFacing(int)}
      */
-    @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
     public static final class Builder {
 
         private final String mName;
diff --git a/core/java/android/companion/virtual/camera/VirtualCameraStreamConfig.java b/core/java/android/companion/virtual/camera/VirtualCameraStreamConfig.java
index 6ab66b3..be49880 100644
--- a/core/java/android/companion/virtual/camera/VirtualCameraStreamConfig.java
+++ b/core/java/android/companion/virtual/camera/VirtualCameraStreamConfig.java
@@ -16,11 +16,9 @@
 
 package android.companion.virtual.camera;
 
-import android.annotation.FlaggedApi;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
-import android.companion.virtual.flags.Flags;
 import android.graphics.ImageFormat;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -35,7 +33,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA)
 public final class VirtualCameraStreamConfig implements Parcelable {
     // TODO(b/310857519): Check if we should increase the fps upper limit in future.
     static final int MAX_FPS_UPPER_LIMIT = 60;
diff --git a/core/java/android/companion/virtual/flags/flags.aconfig b/core/java/android/companion/virtual/flags/flags.aconfig
index 1cf4282..fcdb02a 100644
--- a/core/java/android/companion/virtual/flags/flags.aconfig
+++ b/core/java/android/companion/virtual/flags/flags.aconfig
@@ -11,13 +11,6 @@
 container: "system"
 
 flag {
-     namespace: "virtual_devices"
-     name: "virtual_camera_service_discovery"
-     description: "Enable discovery of the Virtual Camera HAL without a VINTF entry"
-     bug: "305170199"
-}
-
-flag {
     namespace: "virtual_devices"
     name: "virtual_display_insets"
     description: "APIs for specifying virtual display insets (via cutout)"
@@ -34,13 +27,6 @@
 }
 
 flag {
-     namespace: "virtual_devices"
-     name: "camera_device_awareness"
-     description: "Enable device awareness in camera service"
-     bug: "305170199"
-}
-
-flag {
     name: "virtual_rotary"
     is_exported: true
     namespace: "virtual_devices"
@@ -49,14 +35,6 @@
 }
 
 flag {
-    namespace: "virtual_devices"
-    name: "device_aware_drm"
-    description: "Makes MediaDrm APIs device-aware"
-    bug: "303535376"
-    is_fixed_read_only: true
-}
-
-flag {
      namespace: "virtual_devices"
      name: "enforce_remote_device_opt_out_on_all_virtual_displays"
      description: "Respect canDisplayOnRemoteDevices on all virtual displays"
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 8378695..3391e79 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -3334,7 +3334,7 @@
      * this case, only one of these can be returned directly by the function;
      * which of these that is returned is arbitrarily decided by the system.
      *
-     * <p>If you know the Intent your are registering for is sticky, you can
+     * <p>If you know the Intent you are registering for is sticky, you can
      * supply null for your <var>receiver</var>.  In this case, no receiver is
      * registered -- the function simply returns the sticky Intent that
      * matches <var>filter</var>.  In the case of multiple matches, the same
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 0312ad7..0387561 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -8181,7 +8181,7 @@
     /**
      * Create an intent from a URI.  This URI may encode the action,
      * category, and other intent fields, if it was returned by
-     * {@link #toUri}.  If the Intent was not generate by toUri(), its data
+     * {@link #toUri}.  If the Intent was not generated by toUri(), its data
      * will be the entire URI and its action will be ACTION_VIEW.
      *
      * <p>The URI given here must not be relative -- that is, it must include
diff --git a/core/java/android/content/om/IOverlayManager.aidl b/core/java/android/content/om/IOverlayManager.aidl
index 122ab48..d865ba7 100644
--- a/core/java/android/content/om/IOverlayManager.aidl
+++ b/core/java/android/content/om/IOverlayManager.aidl
@@ -16,10 +16,13 @@
 
 package android.content.om;
 
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayIdentifier;
 import android.content.om.OverlayInfo;
 import android.content.om.OverlayManagerTransaction;
 
+import java.util.List;
+
 /**
  * Api for getting information about overlay packages.
  *
@@ -103,6 +106,22 @@
     boolean setEnabled(in String packageName, in boolean enable, in int userId);
 
     /**
+     * Enable an overlay package for a specific set of constraints. In case of multiple constraints,
+     * the overlay would be enabled when any of the given constraints are satisfied.
+     *
+     * Re-enabling an overlay with new constraints updates the constraints for the overlay.
+     *
+     * The caller must pass the actor requirements specified in the class comment.
+     *
+     * @param packageName the name of the overlay package to enable.
+     * @param user The user for which to change the overlay.
+     * @param constraints list of {@link OverlayConstraint} for enabling the overlay.
+     * @return true if the system successfully registered the request, false otherwise.
+     */
+    boolean enableWithConstraints(in String packageName, in int userId,
+            in List<OverlayConstraint> constraints);
+
+    /**
      * Request that an overlay package is enabled and any other overlay packages with the same
      * target package are disabled.
      *
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/core/java/android/content/om/OverlayConstraint.aidl
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to core/java/android/content/om/OverlayConstraint.aidl
index 29335c5..95aac80 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/core/java/android/content/om/OverlayConstraint.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,6 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package android.content.om;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
-
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+parcelable OverlayConstraint;
diff --git a/core/java/android/content/om/OverlayConstraint.java b/core/java/android/content/om/OverlayConstraint.java
new file mode 100644
index 0000000..c1902de
--- /dev/null
+++ b/core/java/android/content/om/OverlayConstraint.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.content.om;
+
+import android.annotation.IntDef;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Constraint for enabling a RRO. Currently this can be a displayId or a deviceId, i.e.,
+ * the overlay would be applied only when a target package is running on the given displayId
+ * or deviceId.
+ *
+ * @hide
+ */
+public final class OverlayConstraint implements Parcelable {
+
+    /**
+     * Constraint type for enabling a RRO for a specific display id. For contexts associated with
+     * the default display, this would be {@link android.view.Display#DEFAULT_DISPLAY}, and
+     * for contexts associated with a virtual display, this would be the id of the virtual display.
+     */
+    public static final int TYPE_DISPLAY_ID = 0;
+
+    /**
+     * Constraint type for enabling a RRO for a specific device id. For contexts associated with
+     * the default device, this would be {@link android.content.Context#DEVICE_ID_DEFAULT}, and
+     * for contexts associated with virtual device, this would be the id of the virtual device.
+     */
+    public static final int TYPE_DEVICE_ID = 1;
+
+    @IntDef(prefix = "TYPE_", value = {
+            TYPE_DISPLAY_ID,
+            TYPE_DEVICE_ID,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @interface ConstraintType {
+    }
+
+    @ConstraintType
+    private final int mType;
+    private final int mValue;
+
+    public OverlayConstraint(int type, int value) {
+        if (type != TYPE_DEVICE_ID && type != TYPE_DISPLAY_ID) {
+            throw new IllegalArgumentException(
+                    "Type must be either TYPE_DISPLAY_ID or TYPE_DEVICE_ID");
+        }
+        if (value < 0) {
+            throw new IllegalArgumentException("Value must be greater than 0");
+        }
+        this.mType = type;
+        this.mValue = value;
+    }
+
+    private OverlayConstraint(Parcel in) {
+        this(in.readInt(), in.readInt());
+    }
+
+    /**
+     * Returns the type of the constraint.
+     */
+    public int getType() {
+        return mType;
+    }
+
+    /**
+     * Returns the value of the constraint.
+     */
+    public int getValue() {
+        return mValue;
+    }
+
+    @Override
+    public String toString() {
+        return "{type: " + typeToString(mType) + ", value: " + mValue + "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof OverlayConstraint that)) {
+            return false;
+        }
+        return mType == that.mType && mValue == that.mValue;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mType, mValue);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
+        dest.writeInt(mType);
+        dest.writeInt(mValue);
+    }
+
+    public static final Creator<OverlayConstraint> CREATOR = new Creator<>() {
+        @Override
+        public OverlayConstraint createFromParcel(Parcel in) {
+            return new OverlayConstraint(in);
+        }
+
+        @Override
+        public OverlayConstraint[] newArray(int size) {
+            return new OverlayConstraint[size];
+        }
+    };
+
+    /**
+     * Returns a string description for a list of constraints.
+     */
+    public static String constraintsToString(final List<OverlayConstraint> overlayConstraints) {
+        if (overlayConstraints == null || overlayConstraints.isEmpty()) {
+            return "None";
+        }
+        return "[" + TextUtils.join(",", overlayConstraints) + "]";
+    }
+
+    private static String typeToString(@ConstraintType int type) {
+        return type == TYPE_DEVICE_ID ? "DEVICE_ID" : "DISPLAY_ID";
+    }
+}
diff --git a/core/java/android/content/om/OverlayInfo.java b/core/java/android/content/om/OverlayInfo.java
index 2e89856..4977c820 100644
--- a/core/java/android/content/om/OverlayInfo.java
+++ b/core/java/android/content/om/OverlayInfo.java
@@ -30,6 +30,9 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -230,12 +233,17 @@
     private OverlayIdentifier mIdentifierCached;
 
     /**
-     *
      * @hide
      */
     public final boolean isFabricated;
 
     /**
+     * @hide
+     */
+    @NonNull
+    public final List<OverlayConstraint> constraints;
+
+    /**
      * Create a new OverlayInfo based on source with an updated state.
      *
      * @param source the source OverlayInfo to base the new instance on
@@ -246,7 +254,8 @@
     public OverlayInfo(@NonNull OverlayInfo source, @State int state) {
         this(source.packageName, source.overlayName, source.targetPackageName,
                 source.targetOverlayableName, source.category, source.baseCodePath, state,
-                source.userId, source.priority, source.isMutable, source.isFabricated);
+                source.userId, source.priority, source.isMutable, source.isFabricated,
+                source.constraints);
     }
 
     /** @hide */
@@ -264,6 +273,17 @@
             @NonNull String targetPackageName, @Nullable String targetOverlayableName,
             @Nullable String category, @NonNull String baseCodePath, int state, int userId,
             int priority, boolean isMutable, boolean isFabricated) {
+        this(packageName, overlayName, targetPackageName, targetOverlayableName, category,
+                baseCodePath, state, userId, priority, isMutable, isFabricated,
+                Collections.emptyList() /* constraints */);
+    }
+
+    /** @hide */
+    public OverlayInfo(@NonNull String packageName, @Nullable String overlayName,
+            @NonNull String targetPackageName, @Nullable String targetOverlayableName,
+            @Nullable String category, @NonNull String baseCodePath, int state, int userId,
+            int priority, boolean isMutable, boolean isFabricated,
+            @NonNull List<OverlayConstraint> constraints) {
         this.packageName = packageName;
         this.overlayName = overlayName;
         this.targetPackageName = targetPackageName;
@@ -275,6 +295,7 @@
         this.priority = priority;
         this.isMutable = isMutable;
         this.isFabricated = isFabricated;
+        this.constraints = constraints;
         ensureValidState();
     }
 
@@ -291,6 +312,7 @@
         priority = source.readInt();
         isMutable = source.readBoolean();
         isFabricated = source.readBoolean();
+        constraints = Arrays.asList(source.createTypedArray(OverlayConstraint.CREATOR));
         ensureValidState();
     }
 
@@ -395,6 +417,17 @@
         return mIdentifierCached;
     }
 
+    /**
+     * Returns the currently applied constraints (if any) for the overlay. An overlay
+     * may have constraints only when it is enabled.
+     *
+     * @hide
+     */
+    @NonNull
+    public List<OverlayConstraint> getConstraints() {
+        return constraints;
+    }
+
     @SuppressWarnings("ConstantConditions")
     private void ensureValidState() {
         if (packageName == null) {
@@ -406,6 +439,9 @@
         if (baseCodePath == null) {
             throw new IllegalArgumentException("baseCodePath must not be null");
         }
+        if (constraints == null) {
+            throw new IllegalArgumentException("constraints must not be null");
+        }
         switch (state) {
             case STATE_UNKNOWN:
             case STATE_MISSING_TARGET:
@@ -439,20 +475,21 @@
         dest.writeInt(priority);
         dest.writeBoolean(isMutable);
         dest.writeBoolean(isFabricated);
+        dest.writeTypedArray(constraints.toArray(new OverlayConstraint[0]), flags);
     }
 
     public static final @NonNull Parcelable.Creator<OverlayInfo> CREATOR =
-            new Parcelable.Creator<OverlayInfo>() {
-        @Override
-        public OverlayInfo createFromParcel(Parcel source) {
-            return new OverlayInfo(source);
-        }
+            new Parcelable.Creator<>() {
+                @Override
+                public OverlayInfo createFromParcel(Parcel source) {
+                    return new OverlayInfo(source);
+                }
 
-        @Override
-        public OverlayInfo[] newArray(int size) {
-            return new OverlayInfo[size];
-        }
-    };
+                @Override
+                public OverlayInfo[] newArray(int size) {
+                    return new OverlayInfo[size];
+                }
+            };
 
     /**
      * Return true if this overlay is enabled, i.e. should be used to overlay
@@ -461,6 +498,7 @@
      * Disabled overlay packages are installed but are currently not in use.
      *
      * @return true if the overlay is enabled, else false.
+     *
      * @hide
      */
     @SystemApi
@@ -479,6 +517,7 @@
      * debugging purposes.
      *
      * @return a human readable String representing the state.
+     *
      * @hide
      */
     public static String stateToString(@State int state) {
@@ -522,6 +561,7 @@
                 : targetOverlayableName.hashCode());
         result = prime * result + ((category == null) ? 0 : category.hashCode());
         result = prime * result + ((baseCodePath == null) ? 0 : baseCodePath.hashCode());
+        result = prime * result + (constraints.isEmpty() ? 0 : constraints.hashCode());
         return result;
     }
 
@@ -566,7 +606,7 @@
         if (!baseCodePath.equals(other.baseCodePath)) {
             return false;
         }
-        return true;
+        return Objects.equals(constraints, other.constraints);
     }
 
     /**
@@ -584,6 +624,7 @@
                 + ", targetOverlayable=" + targetOverlayableName
                 + ", state=" + state + " (" + stateToString(state) + "),"
                 + ", userId=" + userId
+                + ", constraints=" + OverlayConstraint.constraintsToString(constraints)
                 + " }";
     }
 }
diff --git a/core/java/android/content/om/OverlayManager.java b/core/java/android/content/om/OverlayManager.java
index 6db7dfe..fd9bfa2 100644
--- a/core/java/android/content/om/OverlayManager.java
+++ b/core/java/android/content/om/OverlayManager.java
@@ -59,7 +59,6 @@
 public class OverlayManager {
 
     private final IOverlayManager mService;
-    private final Context mContext;
     private final OverlayManagerImpl mOverlayManagerImpl;
 
     /**
@@ -137,7 +136,6 @@
      */
     @SuppressLint("ReferencesHidden")
     public OverlayManager(@NonNull Context context, @Nullable IOverlayManager service) {
-        mContext = context;
         mService = service;
         mOverlayManagerImpl = new OverlayManagerImpl(context);
     }
@@ -161,7 +159,7 @@
      * @param packageName the name of the overlay package to enable.
      * @param user The user for which to change the overlay.
      *
-     * @throws SecurityException when caller is not allowed to enable {@param packageName}
+     * @throws SecurityException when caller is not allowed to enable {@code packageName}
      * @throws IllegalStateException when enabling fails otherwise
      *
      * @hide
@@ -196,7 +194,7 @@
      * @param enable {@code false} if the overlay should be turned off.
      * @param user The user for which to change the overlay.
      *
-     * @throws SecurityException when caller is not allowed to enable/disable {@param packageName}
+     * @throws SecurityException when caller is not allowed to enable/disable {@code packageName}
      * @throws IllegalStateException when enabling/disabling fails otherwise
      *
      * @hide
@@ -220,6 +218,43 @@
     }
 
     /**
+     * Enable an overlay package for a specific set of constraints. In case of multiple constraints,
+     * the overlay would be enabled when any of the given constraints are satisfied.
+     *
+     * Re-enabling an overlay with new constraints updates the constraints for the overlay.
+     *
+     * The caller must pass the actor requirements specified in the class comment.
+     *
+     * @param packageName the name of the overlay package to enable.
+     * @param user The user for which to change the overlay.
+     * @param constraints list of {@link OverlayConstraint} for enabling the overlay.
+     *
+     * @throws SecurityException when caller is not allowed to enable {@code packageName}
+     * @throws IllegalStateException when enabling fails otherwise
+     *
+     * @see OverlayConstraint
+     *
+     * @hide
+     */
+    @RequiresPermission(anyOf = {
+            "android.permission.INTERACT_ACROSS_USERS",
+            "android.permission.INTERACT_ACROSS_USERS_FULL"
+    })
+    public void enableWithConstraints(@NonNull final String packageName, @NonNull UserHandle user,
+            @Nullable final List<OverlayConstraint> constraints)
+            throws SecurityException, IllegalStateException {
+        try {
+            if (!mService.enableWithConstraints(packageName, user.getIdentifier(), constraints)) {
+                throw new IllegalStateException("enableWithConstraints failed");
+            }
+        } catch (SecurityException e) {
+            rethrowSecurityException(e);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Returns information about the overlay with the given package name for
      * the specified user.
      *
@@ -299,7 +334,6 @@
     @RequiresPermission(anyOf = {
             "android.permission.INTERACT_ACROSS_USERS",
     })
-    @NonNull
     public void invalidateCachesForOverlay(@NonNull final String targetPackageName,
             @NonNull UserHandle user) {
         try {
diff --git a/core/java/android/content/om/OverlayManagerTransaction.java b/core/java/android/content/om/OverlayManagerTransaction.java
index 87b2e93..f9eb5e0 100644
--- a/core/java/android/content/om/OverlayManagerTransaction.java
+++ b/core/java/android/content/om/OverlayManagerTransaction.java
@@ -18,8 +18,6 @@
 
 import static android.annotation.SystemApi.Client.SYSTEM_SERVER;
 
-import static com.android.internal.util.Preconditions.checkNotNull;
-
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -29,13 +27,15 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.UserHandle;
+import android.text.TextUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.util.Objects;
 
 /**
@@ -106,7 +106,9 @@
             final OverlayIdentifier overlay = source.readParcelable(null, android.content.om.OverlayIdentifier.class);
             final int userId = source.readInt();
             final Bundle extras = source.readBundle(null);
-            mRequests.add(new Request(request, overlay, userId, extras));
+            OverlayConstraint[] constraints = source.createTypedArray(OverlayConstraint.CREATOR);
+            mRequests.add(new Request(request, overlay, userId, extras,
+                    Arrays.asList(constraints)));
         }
         mSelfTargeting = false;
     }
@@ -115,6 +117,7 @@
      * Get the iterator of requests
      *
      * @return the iterator of request
+     *
      * @hide
      */
     @SuppressLint("ReferencesHidden")
@@ -145,6 +148,8 @@
         @IntDef(prefix = "TYPE_", value = {
                 TYPE_SET_ENABLED,
                 TYPE_SET_DISABLED,
+                TYPE_REGISTER_FABRICATED,
+                TYPE_UNREGISTER_FABRICATED,
         })
         @Retention(RetentionPolicy.SOURCE)
         @interface RequestType {}
@@ -166,23 +171,51 @@
         @Nullable
         public final Bundle extras;
 
+        /**
+         * @hide
+         */
+        @NonNull
+        public final List<OverlayConstraint> constraints;
+
         public Request(@RequestType final int type, @NonNull final OverlayIdentifier overlay,
                 final int userId) {
-            this(type, overlay, userId, null /* extras */);
+            this(type, overlay, userId, null /* extras */,
+                    Collections.emptyList() /* constraints */);
         }
 
         public Request(@RequestType final int type, @NonNull final OverlayIdentifier overlay,
                 final int userId, @Nullable Bundle extras) {
+            this(type, overlay, userId, extras, Collections.emptyList() /* constraints */);
+        }
+
+        /**
+         * @hide
+         */
+        public Request(@RequestType final int type, @NonNull final OverlayIdentifier overlay,
+                final int userId, @NonNull List<OverlayConstraint> constraints) {
+            this(type, overlay, userId, null /* extras */, constraints);
+        }
+
+        /**
+         * @hide
+         */
+        public Request(@RequestType final int type, @NonNull final OverlayIdentifier overlay,
+                final int userId, @Nullable Bundle extras,
+                @NonNull List<OverlayConstraint> constraints) {
             this.type = type;
             this.overlay = overlay;
             this.userId = userId;
             this.extras = extras;
+            Objects.requireNonNull(constraints);
+            this.constraints = constraints;
         }
 
         @Override
         public String toString() {
-            return String.format(Locale.US, "Request{type=0x%02x (%s), overlay=%s, userId=%d}",
-                    type, typeToString(), overlay, userId);
+            return TextUtils.formatSimple(
+                    "Request{type=0x%02x (%s), overlay=%s, userId=%d, constraints=%s}",
+                    type, typeToString(), overlay, userId,
+                    OverlayConstraint.constraintsToString(constraints));
         }
 
         /**
@@ -205,6 +238,7 @@
     /**
      * Builder class for OverlayManagerTransaction objects.
      * TODO(b/269197647): mark the API used by the systemUI.
+     *
      * @hide
      */
     public static final class Builder {
@@ -238,11 +272,27 @@
         /**
          * @hide
          */
+        public Builder setEnabled(@NonNull OverlayIdentifier overlay, boolean enable,
+                @NonNull List<OverlayConstraint> constraints) {
+            return setEnabled(overlay, enable, UserHandle.myUserId(), constraints);
+        }
+
+        /**
+         * @hide
+         */
         public Builder setEnabled(@NonNull OverlayIdentifier overlay, boolean enable, int userId) {
-            checkNotNull(overlay);
+            return setEnabled(overlay, enable, userId, Collections.emptyList() /* constraints */);
+        }
+
+        /**
+         * @hide
+         */
+        public Builder setEnabled(@NonNull OverlayIdentifier overlay, boolean enable, int userId,
+                @NonNull List<OverlayConstraint> constraints) {
+            Objects.requireNonNull(overlay);
             @Request.RequestType final int type =
                 enable ? Request.TYPE_SET_ENABLED : Request.TYPE_SET_DISABLED;
-            mRequests.add(new Request(type, overlay, userId));
+            mRequests.add(new Request(type, overlay, userId, constraints));
             return this;
         }
 
@@ -251,6 +301,7 @@
          * applications to overlay on itself resources. The overlay target is itself, or the Android
          * package, and the work range is only in caller application.
          * @param selfTargeting whether the overlay is self-targeting, the default is false.
+         *
          * @hide
          */
         public Builder setSelfTargeting(boolean selfTargeting) {
@@ -324,23 +375,24 @@
             dest.writeParcelable(req.overlay, flags);
             dest.writeInt(req.userId);
             dest.writeBundle(req.extras);
+            dest.writeTypedArray(req.constraints.toArray(new OverlayConstraint[0]), flags);
         }
     }
 
     @NonNull
     public static final Parcelable.Creator<OverlayManagerTransaction> CREATOR =
-            new Parcelable.Creator<OverlayManagerTransaction>() {
+            new Parcelable.Creator<>() {
 
-        @Override
-        public OverlayManagerTransaction createFromParcel(Parcel source) {
-            return new OverlayManagerTransaction(source);
-        }
+                @Override
+                public OverlayManagerTransaction createFromParcel(Parcel source) {
+                    return new OverlayManagerTransaction(source);
+                }
 
-        @Override
-        public OverlayManagerTransaction[] newArray(int size) {
-            return new OverlayManagerTransaction[size];
-        }
-    };
+                @Override
+                public OverlayManagerTransaction[] newArray(int size) {
+                    return new OverlayManagerTransaction[size];
+                }
+            };
 
     private static Request generateRegisterFabricatedOverlayRequest(
             @NonNull FabricatedOverlay overlay) {
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 37f3f17..e645060 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -1643,6 +1643,19 @@
     public static final long OVERRIDE_ENABLE_INSETS_DECOUPLED_CONFIGURATION = 327313645L;
 
     /**
+     * When the override is enabled, the activity receives configuration coupled with caption bar
+     * insets. Normally, caption bar insets are decoupled from configuration.
+     *
+     * <p>Override applies only if the activity targets SDK level 34 or earlier version.
+     *
+     * @hide
+     */
+    @ChangeId
+    @Overridable
+    @Disabled
+    public static final long OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS = 388014743L;
+
+    /**
      * Optional set of a certificates identifying apps that are allowed to embed this activity. From
      * the "knownActivityEmbeddingCerts" attribute.
      */
diff --git a/core/java/android/content/pm/LauncherActivityInfo.java b/core/java/android/content/pm/LauncherActivityInfo.java
index bb91a37..760224f 100644
--- a/core/java/android/content/pm/LauncherActivityInfo.java
+++ b/core/java/android/content/pm/LauncherActivityInfo.java
@@ -213,6 +213,14 @@
     }
 
     /**
+     * Returns whether this activity supports (and can be launched in) multiple instances.
+     * @hide
+     */
+    public boolean supportsMultiInstance() {
+        return mInternal.supportsMultiInstance();
+    }
+
+    /**
      * Check whether the {@code sequence} is visible to the user or not.
      * <p>
      * Return {@code false} when one of these conditions are satisfied:
diff --git a/core/java/android/content/pm/LauncherActivityInfoInternal.java b/core/java/android/content/pm/LauncherActivityInfoInternal.java
index 5aac97d..3bb3879 100644
--- a/core/java/android/content/pm/LauncherActivityInfoInternal.java
+++ b/core/java/android/content/pm/LauncherActivityInfoInternal.java
@@ -32,19 +32,24 @@
     @NonNull private ComponentName mComponentName;
     @NonNull private IncrementalStatesInfo mIncrementalStatesInfo;
     @NonNull private UserHandle mUser;
+    private boolean mSupportsMultiInstance;
 
     /**
      * @param info ActivityInfo from which to create the LauncherActivityInfo.
      * @param incrementalStatesInfo The package's states.
      * @param user The user the activity info belongs to.
+     * @param supportsMultiInstance Whether the activity supports multi-instance as declared in its
+     *                              app manifest
      */
     public LauncherActivityInfoInternal(@NonNull ActivityInfo info,
             @NonNull IncrementalStatesInfo incrementalStatesInfo,
-            @NonNull UserHandle user) {
+            @NonNull UserHandle user,
+            boolean supportsMultiInstance) {
         mActivityInfo = info;
         mComponentName = new ComponentName(info.packageName, info.name);
         mIncrementalStatesInfo = incrementalStatesInfo;
         mUser = user;
+        mSupportsMultiInstance = supportsMultiInstance;
     }
 
     public LauncherActivityInfoInternal(Parcel source) {
@@ -52,6 +57,7 @@
         mComponentName = new ComponentName(mActivityInfo.packageName, mActivityInfo.name);
         mIncrementalStatesInfo = source.readTypedObject(IncrementalStatesInfo.CREATOR);
         mUser = source.readTypedObject(UserHandle.CREATOR);
+        mSupportsMultiInstance = source.readBoolean();
     }
 
     public ComponentName getComponentName() {
@@ -70,6 +76,10 @@
         return mIncrementalStatesInfo;
     }
 
+    public boolean supportsMultiInstance() {
+        return mSupportsMultiInstance;
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -80,6 +90,7 @@
         dest.writeTypedObject(mActivityInfo, flags);
         dest.writeTypedObject(mIncrementalStatesInfo, flags);
         dest.writeTypedObject(mUser, flags);
+        dest.writeBoolean(mSupportsMultiInstance);
     }
 
     public static final @android.annotation.NonNull Creator<LauncherActivityInfoInternal> CREATOR =
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index 1724d9f..2e07a99 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -77,7 +77,6 @@
 import android.window.IDumpCallback;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.infra.AndroidFuture;
 import com.android.internal.util.function.pooled.PooledLambda;
 
 import java.io.IOException;
@@ -92,7 +91,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
 
 /**
@@ -793,18 +791,8 @@
     public List<LauncherActivityInfo> getActivityList(String packageName, UserHandle user) {
         logErrorForInvalidProfileAccess(user);
         try {
-            final List<LauncherActivityInfo> activityList = convertToActivityList(
-                    mService.getLauncherActivities(
-                            mContext.getPackageName(),
-                            packageName,
-                            user
-                    ), user);
-            if (activityList.isEmpty()) {
-                // b/350144057
-                Log.d(TAG, "getActivityList: No launchable activities found for"
-                        + "packageName=" + packageName + ", user=" + user);
-            }
-            return activityList;
+            return convertToActivityList(mService.getLauncherActivities(mContext.getPackageName(),
+                    packageName, user), user);
         } catch (RemoteException re) {
             throw re.rethrowFromSystemServer();
         }
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 0369b7d9..6ae2df2 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -16,6 +16,7 @@
 
 package android.content.pm;
 
+import static android.app.PropertyInvalidatedCache.MODULE_SYSTEM;
 import static android.content.pm.SigningInfo.AppSigningSchemeVersion;
 import static android.media.audio.Flags.FLAG_FEATURE_SPATIAL_AUDIO_HEADTRACKING_LOW_LATENCY;
 
@@ -11659,11 +11660,22 @@
         }
     }
 
-    private static final PropertyInvalidatedCache<ApplicationInfoQuery, ApplicationInfo>
-            sApplicationInfoCache =
-            new PropertyInvalidatedCache<ApplicationInfoQuery, ApplicationInfo>(
-                    2048, PermissionManager.CACHE_KEY_PACKAGE_INFO_CACHE,
-                    "getApplicationInfo") {
+    private static String packageInfoApi() {
+        return PropertyInvalidatedCache.apiFromProperty(
+            PermissionManager.CACHE_KEY_PACKAGE_INFO_CACHE);
+    }
+
+    // The maximum number of entries to keep in the packageInfo and applicationInfo caches.
+    private final static int MAX_INFO_CACHE_ENTRIES = 2048;
+
+    /** @hide */
+    @VisibleForTesting
+    public static final PropertyInvalidatedCache<ApplicationInfoQuery, ApplicationInfo>
+            sApplicationInfoCache = new PropertyInvalidatedCache<>(
+                new PropertyInvalidatedCache.Args(MODULE_SYSTEM)
+                .maxEntries(MAX_INFO_CACHE_ENTRIES).api(packageInfoApi()).cacheNulls(true),
+                "getApplicationInfo", null) {
+
                 @Override
                 public ApplicationInfo recompute(ApplicationInfoQuery query) {
                     return getApplicationInfoAsUserUncached(
@@ -11749,10 +11761,11 @@
     }
 
     private static final PropertyInvalidatedCache<PackageInfoQuery, PackageInfo>
-            sPackageInfoCache =
-            new PropertyInvalidatedCache<PackageInfoQuery, PackageInfo>(
-                    2048, PermissionManager.CACHE_KEY_PACKAGE_INFO_CACHE,
-                    "getPackageInfo") {
+            sPackageInfoCache = new PropertyInvalidatedCache<>(
+                new PropertyInvalidatedCache.Args(MODULE_SYSTEM)
+                .maxEntries(MAX_INFO_CACHE_ENTRIES).api(packageInfoApi()).cacheNulls(true),
+                "getPackageInfo", null) {
+
                 @Override
                 public PackageInfo recompute(PackageInfoQuery query) {
                     return getPackageInfoAsUserUncached(
diff --git a/core/java/android/content/res/flags.aconfig b/core/java/android/content/res/flags.aconfig
index e24f1a8..88fbdad 100644
--- a/core/java/android/content/res/flags.aconfig
+++ b/core/java/android/content/res/flags.aconfig
@@ -76,6 +76,14 @@
 }
 
 flag {
+    name: "rro_constraints"
+    is_exported: false
+    namespace: "resource_manager"
+    description: "Feature flag for setting constraints for a RRO"
+    bug: "371801644"
+}
+
+flag {
     name: "rro_control_for_android_no_overlayable"
     is_exported: true
     namespace: "resource_manager"
@@ -129,4 +137,15 @@
     namespace: "resource_manager"
     description: "flag always meant to be false, for testing resource flagging within cts tests"
     bug: "377974898"
-}
\ No newline at end of file
+}
+
+flag {
+    name: "use_new_aconfig_storage"
+    is_exported: true
+    namespace: "resource_manager"
+    description: "Retrieve flag values from new Aconfig flag storage in AconfigFlags.java"
+    bug: "352348353"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index ca3e3d2..6ec7004 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -358,8 +358,7 @@
             CameraInfo cameraInfo);
 
     private static int getDevicePolicyFromContext(Context context) {
-        if (context.getDeviceId() == DEVICE_ID_DEFAULT
-                || !android.companion.virtual.flags.Flags.virtualCamera()) {
+        if (context.getDeviceId() == DEVICE_ID_DEFAULT) {
             return DEVICE_POLICY_DEFAULT;
         }
 
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index bfaff94..bcb7ebf 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -67,6 +67,7 @@
 import android.os.HandlerExecutor;
 import android.os.HandlerThread;
 import android.os.IBinder;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.ServiceSpecificException;
@@ -591,8 +592,7 @@
 
     /** @hide */
     public int getDevicePolicyFromContext(@NonNull Context context) {
-        if (context.getDeviceId() == DEVICE_ID_DEFAULT
-                || !android.companion.virtual.flags.Flags.virtualCamera()) {
+        if (context.getDeviceId() == DEVICE_ID_DEFAULT) {
             return DEVICE_POLICY_DEFAULT;
         }
 
@@ -1705,7 +1705,9 @@
             return ICameraService.ROTATION_OVERRIDE_NONE;
         }
 
-        if (context != null) {
+        // Isolated process does not have access to ActivityTaskManager service, which is used
+        // indirectly in `ActivityManager.getAppTasks()`.
+        if (context != null && !Process.isIsolated()) {
             final ActivityManager activityManager = context.getSystemService(ActivityManager.class);
             if (activityManager != null) {
                 for (ActivityManager.AppTask appTask : activityManager.getAppTasks()) {
@@ -2576,11 +2578,6 @@
 
         private boolean shouldHideCamera(int currentDeviceId, int devicePolicy,
                 DeviceCameraInfo info) {
-            if (!android.companion.virtualdevice.flags.Flags.cameraDeviceAwareness()) {
-                // Don't hide any cameras if the device-awareness feature flag is disabled.
-                return false;
-            }
-
             if (devicePolicy == DEVICE_POLICY_DEFAULT && info.mDeviceId == DEVICE_ID_DEFAULT) {
                 // Don't hide default-device cameras for a default-policy virtual device.
                 return false;
diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java
index fded882..d891916 100644
--- a/core/java/android/hardware/display/DisplayManager.java
+++ b/core/java/android/hardware/display/DisplayManager.java
@@ -641,6 +641,9 @@
      * is triggered whenever the properties of a {@link android.view.Display}, such as size,
      * state, density are modified.
      *
+     * This event is not triggered for refresh rate changes as they can change very often.
+     * To monitor refresh rate changes, subscribe to {@link EVENT_TYPE_DISPLAY_REFRESH_RATE}.
+     *
      * @see #registerDisplayListener(DisplayListener, Handler, long)
      *
      */
@@ -839,6 +842,9 @@
      * Registers a display listener to receive notifications about when
      * displays are added, removed or changed.
      *
+     * We encourage to use {@link #registerDisplayListener(Executor, long, DisplayListener)}
+     * instead to subscribe for explicit events of interest
+     *
      * @param listener The listener to register.
      * @param handler The handler on which the listener should be invoked, or null
      * if the listener should be invoked on the calling thread's looper.
@@ -847,7 +853,9 @@
      */
     public void registerDisplayListener(DisplayListener listener, Handler handler) {
         registerDisplayListener(listener, handler, EVENT_TYPE_DISPLAY_ADDED
-                | EVENT_TYPE_DISPLAY_CHANGED | EVENT_TYPE_DISPLAY_REMOVED);
+                | EVENT_TYPE_DISPLAY_CHANGED
+                | EVENT_TYPE_DISPLAY_REFRESH_RATE
+                | EVENT_TYPE_DISPLAY_REMOVED);
     }
 
     /**
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java
index b5715ed..339dbf2 100644
--- a/core/java/android/hardware/display/DisplayManagerGlobal.java
+++ b/core/java/android/hardware/display/DisplayManagerGlobal.java
@@ -1766,29 +1766,23 @@
         }
 
         if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_CHANGED) != 0) {
-            // For backward compatibility, a client subscribing to
-            // DisplayManager.EVENT_FLAG_DISPLAY_CHANGED will be enrolled to both Basic and
-            // RR changes
-            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED
-                    | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE;
+            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED;
         }
 
-        if ((eventFlags
-                & DisplayManager.EVENT_TYPE_DISPLAY_REMOVED) != 0) {
+        if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_REMOVED) != 0) {
             baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_REMOVED;
         }
 
-        if (Flags.displayListenerPerformanceImprovements()) {
-            if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_REFRESH_RATE) != 0) {
-                baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE;
-            }
+        if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_REFRESH_RATE) != 0) {
+            baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE;
+        }
 
+        if (Flags.displayListenerPerformanceImprovements()) {
             if ((eventFlags & DisplayManager.EVENT_TYPE_DISPLAY_STATE) != 0) {
                 baseEventMask |= INTERNAL_EVENT_FLAG_DISPLAY_STATE;
             }
         }
 
-
         return baseEventMask;
     }
 }
diff --git a/core/java/android/hardware/input/IInputManager.aidl b/core/java/android/hardware/input/IInputManager.aidl
index 7fc7e4d..1c2150f 100644
--- a/core/java/android/hardware/input/IInputManager.aidl
+++ b/core/java/android/hardware/input/IInputManager.aidl
@@ -34,6 +34,7 @@
 import android.hardware.input.TouchCalibration;
 import android.os.CombinedVibration;
 import android.hardware.input.IInputSensorEventListener;
+import android.hardware.input.IKeyEventActivityListener;
 import android.hardware.input.InputSensorInfo;
 import android.hardware.input.KeyGlyphMap;
 import android.hardware.lights.Light;
@@ -213,6 +214,16 @@
 
     void unregisterBatteryListener(int deviceId, IInputDeviceBatteryListener listener);
 
+    @EnforcePermission("LISTEN_FOR_KEY_ACTIVITY")
+    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = "
+            + "android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY)")
+    boolean registerKeyEventActivityListener(IKeyEventActivityListener listener);
+
+    @EnforcePermission("LISTEN_FOR_KEY_ACTIVITY")
+    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = "
+            + "android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY)")
+    boolean unregisterKeyEventActivityListener(IKeyEventActivityListener listener);
+
     // Get the bluetooth address of an input device if known, returning null if it either is not
     // connected via bluetooth or if the address cannot be determined.
     @EnforcePermission("BLUETOOTH")
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/core/java/android/hardware/input/IKeyEventActivityListener.aidl
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to core/java/android/hardware/input/IKeyEventActivityListener.aidl
index 29335c5..b3097d4 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/core/java/android/hardware/input/IKeyEventActivityListener.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package android.hardware.input;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
-
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+/** @hide */
+oneway interface IKeyEventActivityListener
+{
+    void onKeyEventActivity();
+}
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index cf41e13..49db54d 100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -19,7 +19,6 @@
 import static com.android.input.flags.Flags.FLAG_INPUT_DEVICE_VIEW_BEHAVIOR_API;
 import static com.android.input.flags.Flags.FLAG_DEVICE_ASSOCIATIONS;
 import static com.android.hardware.input.Flags.enableCustomizableInputGestures;
-import static com.android.hardware.input.Flags.keyboardLayoutPreviewFlag;
 import static com.android.hardware.input.Flags.keyboardGlyphMap;
 
 import android.Manifest;
@@ -966,9 +965,6 @@
     @Nullable
     public Drawable getKeyboardLayoutPreview(@Nullable KeyboardLayout keyboardLayout, int width,
             int height) {
-        if (!keyboardLayoutPreviewFlag()) {
-            return null;
-        }
         PhysicalKeyLayout keyLayout = new PhysicalKeyLayout(
                 mGlobal.getKeyCharacterMap(keyboardLayout), keyboardLayout);
         return new KeyboardLayoutPreviewDrawable(mContext, keyLayout, width, height);
@@ -1403,9 +1399,6 @@
     @RequiresPermission(Manifest.permission.MONITOR_STICKY_MODIFIER_STATE)
     public void registerStickyModifierStateListener(@NonNull Executor executor,
             @NonNull StickyModifierStateListener listener) throws IllegalArgumentException {
-        if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
-            return;
-        }
         mGlobal.registerStickyModifierStateListener(executor, listener);
     }
 
@@ -1419,9 +1412,6 @@
     @RequiresPermission(Manifest.permission.MONITOR_STICKY_MODIFIER_STATE)
     public void unregisterStickyModifierStateListener(
             @NonNull StickyModifierStateListener listener) {
-        if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
-            return;
-        }
         mGlobal.unregisterStickyModifierStateListener(listener);
     }
 
@@ -1776,4 +1766,41 @@
          */
         boolean isKeyGestureSupported(@KeyGestureEvent.KeyGestureType int gestureType);
     }
+
+    /** @hide */
+    public interface KeyEventActivityListener {
+        /**
+         * Reports a change for user activeness.
+         *
+         * This listener will be triggered any time a user presses a key.
+         */
+        void onKeyEventActivity();
+    }
+
+
+    /**
+     * Registers a listener for updates to key event activeness
+     *
+     * @param listener to be registered
+     * @return true if listener registered successfully
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY)
+    public boolean registerKeyEventActivityListener(@NonNull KeyEventActivityListener listener) {
+        return mGlobal.registerKeyEventActivityListener(listener);
+    }
+
+    /**
+     * Unregisters a listener for updates to key event activeness
+     *
+     * @param listener to be unregistered
+     * @return true if listener unregistered successfully, also returns true if
+     * invoked but listener was not present
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY)
+    public boolean unregisterKeyEventActivityListener(@NonNull KeyEventActivityListener listener) {
+        return mGlobal.unregisterKeyEventActivityListener(listener);
+    }
+
 }
diff --git a/core/java/android/hardware/input/InputManagerGlobal.java b/core/java/android/hardware/input/InputManagerGlobal.java
index e794161..a9a45ae 100644
--- a/core/java/android/hardware/input/InputManagerGlobal.java
+++ b/core/java/android/hardware/input/InputManagerGlobal.java
@@ -26,6 +26,7 @@
 import android.hardware.input.InputManager.InputDeviceBatteryListener;
 import android.hardware.input.InputManager.InputDeviceListener;
 import android.hardware.input.InputManager.KeyGestureEventHandler;
+import android.hardware.input.InputManager.KeyEventActivityListener;
 import android.hardware.input.InputManager.KeyGestureEventListener;
 import android.hardware.input.InputManager.KeyboardBacklightListener;
 import android.hardware.input.InputManager.OnTabletModeChangedListener;
@@ -124,6 +125,13 @@
     @Nullable
     private IKeyGestureEventListener mKeyGestureEventListener;
 
+    private final Object mKeyEventActivityLock = new Object();
+    @GuardedBy("mKeyEventActivityLock")
+    private ArrayList<KeyEventActivityListener> mKeyEventActivityListeners;
+    @GuardedBy("mKeyEventActivityLock")
+    @Nullable
+    private IKeyEventActivityListener mKeyEventActivityListener;
+
     private final Object mKeyGestureEventHandlerLock = new Object();
     @GuardedBy("mKeyGestureEventHandlerLock")
     @Nullable
@@ -1257,6 +1265,63 @@
         }
     }
 
+    private class LocalKeyEventActivityListener extends IKeyEventActivityListener.Stub {
+        @Override
+        public void onKeyEventActivity() {
+            synchronized (mKeyEventActivityLock) {
+                final int numListeners = mKeyEventActivityListeners.size();
+                for (int i = 0; i < numListeners; i++) {
+                    KeyEventActivityListener listener = mKeyEventActivityListeners.get(i);
+                    listener.onKeyEventActivity();
+                }
+            }
+        }
+    }
+
+    boolean registerKeyEventActivityListener(@NonNull KeyEventActivityListener listener) {
+        Objects.requireNonNull(listener, "listener should not be null");
+        boolean success = false;
+        synchronized (mKeyEventActivityLock) {
+            if (mKeyEventActivityListener == null) {
+                mKeyEventActivityListeners = new ArrayList<>();
+                mKeyEventActivityListener = new LocalKeyEventActivityListener();
+
+                try {
+                    success = mIm.registerKeyEventActivityListener(mKeyEventActivityListener);
+                } catch (RemoteException e) {
+                    throw e.rethrowFromSystemServer();
+                }
+            }
+            if (mKeyEventActivityListeners.contains(listener)) {
+                throw new IllegalArgumentException("Listener has already been registered!");
+            }
+            mKeyEventActivityListeners.add(listener);
+            return success;
+        }
+    }
+
+    boolean unregisterKeyEventActivityListener(@NonNull KeyEventActivityListener listener) {
+        Objects.requireNonNull(listener, "listener should not be null");
+
+        boolean success = true;
+        synchronized (mKeyEventActivityLock) {
+            if (mKeyEventActivityListeners == null) {
+                return success;
+            }
+            mKeyEventActivityListeners.remove(listener);
+            if (mKeyEventActivityListeners.isEmpty()) {
+                try {
+                    success = mIm.unregisterKeyEventActivityListener(mKeyEventActivityListener);
+                } catch (RemoteException e) {
+                    throw e.rethrowFromSystemServer();
+                }
+                mKeyEventActivityListeners = null;
+                mKeyEventActivityListener = null;
+            }
+        }
+        return success;
+    }
+
     /**
      * Sets the keyboard layout override for the specified input device. This will set the
      * keyboard layout as the default for the input device irrespective of the underlying IME
diff --git a/core/java/android/hardware/input/InputSettings.java b/core/java/android/hardware/input/InputSettings.java
index af40188..3d4b885 100644
--- a/core/java/android/hardware/input/InputSettings.java
+++ b/core/java/android/hardware/input/InputSettings.java
@@ -16,15 +16,9 @@
 
 package android.hardware.input;
 
-import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG;
 import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_MOUSE_KEYS;
-import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG;
-import static com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG;
 import static com.android.hardware.input.Flags.enableCustomizableInputGestures;
-import static com.android.hardware.input.Flags.keyboardA11yBounceKeysFlag;
 import static com.android.hardware.input.Flags.keyboardA11yMouseKeys;
-import static com.android.hardware.input.Flags.keyboardA11ySlowKeysFlag;
-import static com.android.hardware.input.Flags.keyboardA11yStickyKeysFlag;
 import static com.android.hardware.input.Flags.mouseScrollingAcceleration;
 import static com.android.hardware.input.Flags.mouseReverseVerticalScrolling;
 import static com.android.hardware.input.Flags.mouseSwapPrimaryButton;
@@ -871,21 +865,6 @@
     }
 
     /**
-     * Whether Accessibility bounce keys feature is enabled.
-     *
-     * <p>
-     * Bounce keys’ is an accessibility feature to aid users who have physical disabilities,
-     * that allows the user to configure the device to ignore rapid, repeated keypresses of the
-     * same key.
-     * </p>
-     *
-     * @hide
-     */
-    public static boolean isAccessibilityBounceKeysFeatureEnabled() {
-        return keyboardA11yBounceKeysFlag();
-    }
-
-    /**
      * Whether Accessibility bounce keys is enabled.
      *
      * <p>
@@ -912,11 +891,7 @@
      * @hide
      */
     @TestApi
-    @FlaggedApi(FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG)
     public static int getAccessibilityBounceKeysThreshold(@NonNull Context context) {
-        if (!isAccessibilityBounceKeysFeatureEnabled()) {
-            return 0;
-        }
         return Settings.Secure.getIntForUser(context.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_BOUNCE_KEYS, 0, UserHandle.USER_CURRENT);
     }
@@ -936,13 +911,9 @@
      * @hide
      */
     @TestApi
-    @FlaggedApi(FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG)
     @RequiresPermission(Manifest.permission.WRITE_SETTINGS)
     public static void setAccessibilityBounceKeysThreshold(@NonNull Context context,
             int thresholdTimeMillis) {
-        if (!isAccessibilityBounceKeysFeatureEnabled()) {
-            return;
-        }
         if (thresholdTimeMillis < 0
                 || thresholdTimeMillis > MAX_ACCESSIBILITY_BOUNCE_KEYS_THRESHOLD_MILLIS) {
             throw new IllegalArgumentException(
@@ -955,21 +926,6 @@
     }
 
     /**
-     * Whether Accessibility slow keys feature flags is enabled.
-     *
-     * <p>
-     * 'Slow keys' is an accessibility feature to aid users who have physical disabilities, that
-     * allows the user to specify the duration for which one must press-and-hold a key before the
-     * system accepts the keypress.
-     * </p>
-     *
-     * @hide
-     */
-    public static boolean isAccessibilitySlowKeysFeatureFlagEnabled() {
-        return keyboardA11ySlowKeysFlag();
-    }
-
-    /**
      * Whether Accessibility slow keys is enabled.
      *
      * <p>
@@ -996,11 +952,7 @@
      * @hide
      */
     @TestApi
-    @FlaggedApi(FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG)
     public static int getAccessibilitySlowKeysThreshold(@NonNull Context context) {
-        if (!isAccessibilitySlowKeysFeatureFlagEnabled()) {
-            return 0;
-        }
         return Settings.Secure.getIntForUser(context.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_SLOW_KEYS, 0, UserHandle.USER_CURRENT);
     }
@@ -1020,13 +972,9 @@
      * @hide
      */
     @TestApi
-    @FlaggedApi(FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG)
     @RequiresPermission(Manifest.permission.WRITE_SETTINGS)
     public static void setAccessibilitySlowKeysThreshold(@NonNull Context context,
             int thresholdTimeMillis) {
-        if (!isAccessibilitySlowKeysFeatureFlagEnabled()) {
-            return;
-        }
         if (thresholdTimeMillis < 0
                 || thresholdTimeMillis > MAX_ACCESSIBILITY_SLOW_KEYS_THRESHOLD_MILLIS) {
             throw new IllegalArgumentException(
@@ -1039,23 +987,6 @@
     }
 
     /**
-     * Whether Accessibility sticky keys feature is enabled.
-     *
-     * <p>
-     * 'Sticky keys' is an accessibility feature that assists users who have physical
-     * disabilities or help users reduce repetitive strain injury. It serializes keystrokes
-     * instead of pressing multiple keys at a time, allowing the user to press and release a
-     * modifier key, such as Shift, Ctrl, Alt, or any other modifier key, and have it remain
-     * active until any other key is pressed.
-     * </p>
-     *
-     * @hide
-     */
-    public static boolean isAccessibilityStickyKeysFeatureEnabled() {
-        return keyboardA11yStickyKeysFlag();
-    }
-
-    /**
      * Whether Accessibility sticky keys is enabled.
      *
      * <p>
@@ -1069,11 +1000,7 @@
      * @hide
      */
     @TestApi
-    @FlaggedApi(FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG)
     public static boolean isAccessibilityStickyKeysEnabled(@NonNull Context context) {
-        if (!isAccessibilityStickyKeysFeatureEnabled()) {
-            return false;
-        }
         return Settings.Secure.getIntForUser(context.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_STICKY_KEYS, 0, UserHandle.USER_CURRENT) != 0;
     }
@@ -1092,13 +1019,9 @@
      * @hide
      */
     @TestApi
-    @FlaggedApi(FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG)
     @RequiresPermission(Manifest.permission.WRITE_SETTINGS)
     public static void setAccessibilityStickyKeysEnabled(@NonNull Context context,
             boolean enabled) {
-        if (!isAccessibilityStickyKeysFeatureEnabled()) {
-            return;
-        }
         Settings.Secure.putIntForUser(context.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_STICKY_KEYS, enabled ? 1 : 0,
                 UserHandle.USER_CURRENT);
diff --git a/core/java/android/hardware/input/input_framework.aconfig b/core/java/android/hardware/input/input_framework.aconfig
index 23722ed..6c2ce36 100644
--- a/core/java/android/hardware/input/input_framework.aconfig
+++ b/core/java/android/hardware/input/input_framework.aconfig
@@ -8,35 +8,6 @@
 
 flag {
     namespace: "input_native"
-    name: "keyboard_layout_preview_flag"
-    description: "Controls whether a preview will be shown in Settings when selecting a physical keyboard layout"
-    bug: "293579375"
-}
-
-
-flag {
-    namespace: "input_native"
-    name: "keyboard_a11y_sticky_keys_flag"
-    description: "Controls if the sticky keys accessibility feature for physical keyboard is available to the user"
-    bug: "294546335"
-}
-
-flag {
-    namespace: "input_native"
-    name: "keyboard_a11y_bounce_keys_flag"
-    description: "Controls if the bounce keys accessibility feature for physical keyboard is available to the user"
-    bug: "294546335"
-}
-
-flag {
-    namespace: "input_native"
-    name: "keyboard_a11y_slow_keys_flag"
-    description: "Controls if the slow keys accessibility feature for physical keyboard is available to the user"
-    bug: "294546335"
-}
-
-flag {
-    namespace: "input_native"
     name: "keyboard_glyph_map"
     description: "Allows system to provide keyboard specific key drawables and shortcuts via config files"
     bug: "345440920"
@@ -233,3 +204,12 @@
     description: "Key Event Activity Detection"
     bug: "356412905"
 }
+
+flag {
+   name: "enable_backup_and_restore_for_input_gestures"
+   namespace: "input"
+   description: "Adds backup and restore support for custom input gestures"
+   bug: "382184249"
+   is_fixed_read_only: true
+}
+
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 4c9e73c..a528ba4 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -1725,10 +1725,22 @@
             return "SettingsObserver{mShowImeWithHardKeyboard=" + mShowImeWithHardKeyboard  + "}";
         }
     }
+
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     private SettingsObserver mSettingsObserver;
 
     /**
+     * Checks whether the IME should be shown when a hardware keyboard is connected, as configured
+     * through {@link Settings.Secure#SHOW_IME_WITH_HARD_KEYBOARD}, for testing purposes only.
+     *
+     * @hide
+     */
+    @VisibleForTesting
+    public final boolean getShouldShowImeWithHardKeyboardForTesting() {
+        return mSettingsObserver.shouldShowImeWithHardKeyboard();
+    }
+
+    /**
      * You can call this to customize the theme used by your IME's window.
      * This theme should typically be one that derives from
      * {@link android.R.style#Theme_InputMethod}, which is the default theme
@@ -4454,7 +4466,7 @@
      *
      * @hide
      */
-    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
+    @VisibleForTesting
     public final boolean isImeNavigationBarShownForTesting() {
         return mNavigationBarController.isShown();
     }
diff --git a/media/java/android/media/Image.java b/core/java/android/media/Image.java
similarity index 100%
rename from media/java/android/media/Image.java
rename to core/java/android/media/Image.java
diff --git a/media/java/android/media/ImageReader.java b/core/java/android/media/ImageReader.java
similarity index 100%
rename from media/java/android/media/ImageReader.java
rename to core/java/android/media/ImageReader.java
diff --git a/media/java/android/media/ImageUtils.java b/core/java/android/media/ImageUtils.java
similarity index 100%
rename from media/java/android/media/ImageUtils.java
rename to core/java/android/media/ImageUtils.java
diff --git a/media/java/android/media/ImageWriter.java b/core/java/android/media/ImageWriter.java
similarity index 100%
rename from media/java/android/media/ImageWriter.java
rename to core/java/android/media/ImageWriter.java
diff --git a/media/java/android/media/PublicFormatUtils.java b/core/java/android/media/PublicFormatUtils.java
similarity index 100%
rename from media/java/android/media/PublicFormatUtils.java
rename to core/java/android/media/PublicFormatUtils.java
diff --git a/core/java/android/os/BaseBundle.java b/core/java/android/os/BaseBundle.java
index e79b2e7..2604454 100644
--- a/core/java/android/os/BaseBundle.java
+++ b/core/java/android/os/BaseBundle.java
@@ -45,7 +45,8 @@
  * {@link PersistableBundle} subclass.
  */
 @android.ravenwood.annotation.RavenwoodKeepWholeClass
-public class BaseBundle {
+@SuppressWarnings("HiddenSuperclass")
+public class BaseBundle implements Parcel.ClassLoaderProvider {
     /** @hide */
     protected static final String TAG = "Bundle";
     static final boolean DEBUG = false;
@@ -311,8 +312,9 @@
 
     /**
      * Return the ClassLoader currently associated with this Bundle.
+     * @hide
      */
-    ClassLoader getClassLoader() {
+    public ClassLoader getClassLoader() {
         return mClassLoader;
     }
 
@@ -426,6 +428,9 @@
             if ((mFlags & Bundle.FLAG_VERIFY_TOKENS_PRESENT) != 0) {
                 Intent.maybeMarkAsMissingCreatorToken(object);
             }
+        } else if (object instanceof Bundle) {
+            Bundle bundle = (Bundle) object;
+            bundle.setClassLoaderSameAsContainerBundleWhenRetrievedFirstTime(this);
         }
         return (clazz != null) ? clazz.cast(object) : (T) object;
     }
@@ -499,7 +504,7 @@
         int[] numLazyValues = new int[]{0};
         try {
             parcelledData.readArrayMap(map, count, !parcelledByNative,
-                    /* lazy */ ownsParcel, mClassLoader, numLazyValues);
+                    /* lazy */ ownsParcel, this, numLazyValues);
         } catch (BadParcelableException e) {
             if (sShouldDefuse) {
                 Log.w(TAG, "Failed to parse Bundle, but defusing quietly", e);
diff --git a/core/java/android/os/BatteryUsageStats.java b/core/java/android/os/BatteryUsageStats.java
index 86b8fad..739908e 100644
--- a/core/java/android/os/BatteryUsageStats.java
+++ b/core/java/android/os/BatteryUsageStats.java
@@ -827,12 +827,12 @@
                         parser.getAttributeLong(null, XML_ATTR_DURATION));
                 builder.setBatteryCapacity(
                         parser.getAttributeDouble(null, XML_ATTR_BATTERY_CAPACITY));
-                builder.setDischargePercentage(
+                builder.addDischargePercentage(
                         parser.getAttributeInt(null, XML_ATTR_DISCHARGE_PERCENT));
-                builder.setDischargedPowerRange(
+                builder.addDischargedPowerRange(
                         parser.getAttributeDouble(null, XML_ATTR_DISCHARGE_LOWER),
                         parser.getAttributeDouble(null, XML_ATTR_DISCHARGE_UPPER));
-                builder.setDischargeDurationMs(
+                builder.addDischargeDurationMs(
                         parser.getAttributeLong(null, XML_ATTR_DISCHARGE_DURATION));
                 builder.setBatteryTimeRemainingMs(
                         parser.getAttributeLong(null, XML_ATTR_BATTERY_REMAINING));
@@ -1044,23 +1044,22 @@
         }
 
         /**
-         * Sets the battery discharge amount since BatteryStats reset as percentage of the full
-         * charge.
+         * Accumulates the battery discharge amount as percentage of the full charge. Can exceed 100
          */
         @NonNull
-        public Builder setDischargePercentage(int dischargePercentage) {
-            mDischargePercentage = dischargePercentage;
+        public Builder addDischargePercentage(int dischargePercentage) {
+            mDischargePercentage += dischargePercentage;
             return this;
         }
 
         /**
-         * Sets the estimated battery discharge range.
+         * Accumulates the estimated battery discharge range.
          */
         @NonNull
-        public Builder setDischargedPowerRange(double dischargedPowerLowerBoundMah,
+        public Builder addDischargedPowerRange(double dischargedPowerLowerBoundMah,
                 double dischargedPowerUpperBoundMah) {
-            mDischargedPowerLowerBoundMah = dischargedPowerLowerBoundMah;
-            mDischargedPowerUpperBoundMah = dischargedPowerUpperBoundMah;
+            mDischargedPowerLowerBoundMah += dischargedPowerLowerBoundMah;
+            mDischargedPowerUpperBoundMah += dischargedPowerUpperBoundMah;
             return this;
         }
 
@@ -1068,8 +1067,8 @@
          * Sets the total battery discharge time, in milliseconds.
          */
         @NonNull
-        public Builder setDischargeDurationMs(long durationMs) {
-            mDischargeDurationMs = durationMs;
+        public Builder addDischargeDurationMs(long durationMs) {
+            mDischargeDurationMs += durationMs;
             return this;
         }
 
diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java
index a24dc57..c0591e6 100644
--- a/core/java/android/os/Bundle.java
+++ b/core/java/android/os/Bundle.java
@@ -141,6 +141,8 @@
         STRIPPED.putInt("STRIPPED", 1);
     }
 
+    private boolean isFirstRetrievedFromABundle = false;
+
     /**
      * Constructs a new, empty Bundle.
      */
@@ -382,7 +384,15 @@
         bundle.unparcel();
         mOwnsLazyValues = false;
         bundle.mOwnsLazyValues = false;
-        mMap.putAll(bundle.mMap);
+        int N = bundle.mMap.size();
+        for (int i = 0; i < N; i++) {
+            String key = bundle.mMap.keyAt(i);
+            Object value = bundle.mMap.valueAt(i);
+            if (value instanceof Bundle) {
+                ((Bundle) value).isFirstRetrievedFromABundle = true;
+            }
+            mMap.put(key, value);
+        }
 
         // FD and Binders state is now known if and only if both bundles already knew
         if ((bundle.mFlags & FLAG_HAS_FDS) != 0) {
@@ -592,6 +602,8 @@
         mFlags &= ~FLAG_HAS_BINDERS_KNOWN;
         if (intentClass != null && intentClass.isInstance(value)) {
             setHasIntent(true);
+        } else if (value instanceof Bundle) {
+            ((Bundle) value).isFirstRetrievedFromABundle = true;
         }
     }
 
@@ -793,6 +805,9 @@
      */
     public void putBundle(@Nullable String key, @Nullable Bundle value) {
         unparcel();
+        if (value != null) {
+            value.isFirstRetrievedFromABundle = true;
+        }
         mMap.put(key, value);
     }
 
@@ -1020,7 +1035,9 @@
             return null;
         }
         try {
-            return (Bundle) o;
+            Bundle bundle = (Bundle) o;
+            bundle.setClassLoaderSameAsContainerBundleWhenRetrievedFirstTime(this);
+            return bundle;
         } catch (ClassCastException e) {
             typeWarning(key, o, "Bundle", e);
             return null;
@@ -1028,6 +1045,21 @@
     }
 
     /**
+     * Set the ClassLoader of a bundle to its container bundle. This is necessary so that when a
+     * bundle's ClassLoader is changed, it can be propagated to its children. Do this only when it
+     * is retrieved from the container bundle first time though. Once it is accessed outside of its
+     * container, its ClassLoader should no longer be changed by its container anymore.
+     *
+     * @param containerBundle the bundle this bundle is retrieved from.
+     */
+    void setClassLoaderSameAsContainerBundleWhenRetrievedFirstTime(BaseBundle containerBundle) {
+        if (!isFirstRetrievedFromABundle) {
+            setClassLoader(containerBundle.getClassLoader());
+            isFirstRetrievedFromABundle = true;
+        }
+    }
+
+    /**
      * Returns the value associated with the given key, or {@code null} if
      * no mapping of the desired type exists for the given key or a {@code null}
      * value is explicitly associated with the key.
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index e589347..49d3f06 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -46,6 +46,7 @@
 import android.util.SparseIntArray;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ArrayUtils;
 
 import dalvik.annotation.optimization.CriticalNative;
@@ -4661,7 +4662,7 @@
      * @hide
      */
     @Nullable
-    public Object readLazyValue(@Nullable ClassLoader loader) {
+    private Object readLazyValue(@Nullable ClassLoaderProvider loaderProvider) {
         int start = dataPosition();
         int type = readInt();
         if (isLengthPrefixed(type)) {
@@ -4672,12 +4673,17 @@
             int end = MathUtils.addOrThrow(dataPosition(), objectLength);
             int valueLength = end - start;
             setDataPosition(end);
-            return new LazyValue(this, start, valueLength, type, loader);
+            return new LazyValue(this, start, valueLength, type, loaderProvider);
         } else {
-            return readValue(type, loader, /* clazz */ null);
+            return readValue(type, getClassLoader(loaderProvider), /* clazz */ null);
         }
     }
 
+    @Nullable
+    private static ClassLoader getClassLoader(@Nullable ClassLoaderProvider loaderProvider) {
+        return loaderProvider == null ? null : loaderProvider.getClassLoader();
+    }
+
 
     private static final class LazyValue implements BiFunction<Class<?>, Class<?>[], Object> {
         /**
@@ -4691,7 +4697,12 @@
         private final int mPosition;
         private final int mLength;
         private final int mType;
-        @Nullable private final ClassLoader mLoader;
+        // this member is set when a bundle that includes a LazyValue is unparceled. But it is used
+        // when apply method is called. Between these 2 events, the bundle's ClassLoader could have
+        // changed. Let the bundle be a ClassLoaderProvider allows the bundle provides its current
+        // ClassLoader at the time apply method is called.
+        @NonNull
+        private final ClassLoaderProvider mLoaderProvider;
         @Nullable private Object mObject;
 
         /**
@@ -4702,12 +4713,13 @@
          */
         @Nullable private volatile Parcel mSource;
 
-        LazyValue(Parcel source, int position, int length, int type, @Nullable ClassLoader loader) {
+        LazyValue(Parcel source, int position, int length, int type,
+                @NonNull ClassLoaderProvider loaderProvider) {
             mSource = requireNonNull(source);
             mPosition = position;
             mLength = length;
             mType = type;
-            mLoader = loader;
+            mLoaderProvider = loaderProvider;
         }
 
         @Override
@@ -4720,7 +4732,8 @@
                         int restore = source.dataPosition();
                         try {
                             source.setDataPosition(mPosition);
-                            mObject = source.readValue(mLoader, clazz, itemTypes);
+                            mObject = source.readValue(mLoaderProvider.getClassLoader(), clazz,
+                                    itemTypes);
                         } finally {
                             source.setDataPosition(restore);
                         }
@@ -4758,6 +4771,12 @@
             return Parcel.hasFileDescriptors(mObject);
         }
 
+        /** @hide */
+        @VisibleForTesting
+        public ClassLoader getClassLoader() {
+            return mLoaderProvider.getClassLoader();
+        }
+
         @Override
         public String toString() {
             return (mSource != null)
@@ -4793,7 +4812,8 @@
                 return Objects.equals(mObject, value.mObject);
             }
             // Better safely fail here since this could mean we get different objects.
-            if (!Objects.equals(mLoader, value.mLoader)) {
+            if (!Objects.equals(mLoaderProvider.getClassLoader(),
+                    value.mLoaderProvider.getClassLoader())) {
                 return false;
             }
             // Otherwise compare metadata prior to comparing payload.
@@ -4807,10 +4827,24 @@
         @Override
         public int hashCode() {
             // Accessing mSource first to provide memory barrier for mObject
-            return Objects.hash(mSource == null, mObject, mLoader, mType, mLength);
+            return Objects.hash(mSource == null, mObject, mLoaderProvider.getClassLoader(), mType,
+                    mLength);
         }
     }
 
+    /**
+     * Provides a ClassLoader.
+     * @hide
+     */
+    public interface ClassLoaderProvider {
+        /**
+         * Returns a ClassLoader.
+         *
+         * @return ClassLoader
+         */
+        ClassLoader getClassLoader();
+    }
+
     /** Same as {@link #readValue(ClassLoader, Class, Class[])} without any item types. */
     private <T> T readValue(int type, @Nullable ClassLoader loader, @Nullable Class<T> clazz) {
         // Avoids allocating Class[0] array
@@ -5551,8 +5585,8 @@
     }
 
     private void readArrayMapInternal(@NonNull ArrayMap<? super String, Object> outVal,
-            int size, @Nullable ClassLoader loader) {
-        readArrayMap(outVal, size, /* sorted */ true, /* lazy */ false, loader, null);
+            int size, @Nullable ClassLoaderProvider loaderProvider) {
+        readArrayMap(outVal, size, /* sorted */ true, /* lazy */ false, loaderProvider, null);
     }
 
     /**
@@ -5566,11 +5600,12 @@
      * @hide
      */
     void readArrayMap(ArrayMap<? super String, Object> map, int size, boolean sorted,
-            boolean lazy, @Nullable ClassLoader loader, int[] lazyValueCount) {
+            boolean lazy, @Nullable ClassLoaderProvider loaderProvider, int[] lazyValueCount) {
         ensureWithinMemoryLimit(SIZE_COMPLEX_TYPE, size);
         while (size > 0) {
             String key = readString();
-            Object value = (lazy) ? readLazyValue(loader) : readValue(loader);
+            Object value = (lazy) ? readLazyValue(loaderProvider) : readValue(
+                    getClassLoader(loaderProvider));
             if (value instanceof LazyValue) {
                 lazyValueCount[0]++;
             }
@@ -5591,12 +5626,12 @@
      */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     public void readArrayMap(@NonNull ArrayMap<? super String, Object> outVal,
-            @Nullable ClassLoader loader) {
+            @Nullable ClassLoaderProvider loaderProvider) {
         final int N = readInt();
         if (N < 0) {
             return;
         }
-        readArrayMapInternal(outVal, N, loader);
+        readArrayMapInternal(outVal, N, loaderProvider);
     }
 
     /**
diff --git a/core/java/android/os/PerfettoTrackEventExtra.java b/core/java/android/os/PerfettoTrackEventExtra.java
index 72b909e6..adb98aa 100644
--- a/core/java/android/os/PerfettoTrackEventExtra.java
+++ b/core/java/android/os/PerfettoTrackEventExtra.java
@@ -43,6 +43,12 @@
                 }
             };
     private static final AtomicLong sNamedTrackId = new AtomicLong();
+    private static final Supplier<Flow> sFlowSupplier = Flow::new;
+    private static final Supplier<BuilderImpl> sBuilderSupplier = BuilderImpl::new;
+    private static final Supplier<FieldInt64> sFieldInt64Supplier = FieldInt64::new;
+    private static final Supplier<FieldDouble> sFieldDoubleSupplier = FieldDouble::new;
+    private static final Supplier<FieldString> sFieldStringSupplier = FieldString::new;
+    private static final Supplier<FieldNested> sFieldNestedSupplier = FieldNested::new;
 
     private CounterInt64 mCounterInt64;
     private CounterDouble mCounterDouble;
@@ -139,13 +145,8 @@
 
         /**
          * Sets the event name for the track event.
-         *
-         * @param eventName can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code eventName} should be the string itself.
-         * @param args format arguments if {@code eventName} is specified.
          */
-        Builder setEventName(String eventName, Object... args);
+        Builder setEventName(String eventName);
 
         /**
          * Adds a debug arg with key {@code name} and value {@code val}.
@@ -164,13 +165,8 @@
 
         /**
          * Adds a debug arg with key {@code name} and value {@code val}.
-         *
-         * @param val can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code val} should be the string itself.
-         * @param args format arguments if {@code val} is specified.
          */
-        Builder addArg(String name, String val, Object... args);
+        Builder addArg(String name, String val);
 
         /**
          * Adds a flow with {@code id}.
@@ -185,68 +181,38 @@
         /**
          * Adds the events to a named track instead of the thread track where the
          * event occurred.
-         *
-         * @param name can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code name} should be the string itself.
-         * @param args format arguments if {@code name} is specified.
          */
-        Builder usingNamedTrack(long parentUuid, String name, Object... args);
+        Builder usingNamedTrack(long parentUuid, String name);
 
         /**
          * Adds the events to a process scoped named track instead of the thread track where the
          * event occurred.
-         *
-         * @param name can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code name} should be the string itself.
-         * @param args format arguments if {@code name} is specified.
          */
-        Builder usingProcessNamedTrack(String name, Object... args);
+        Builder usingProcessNamedTrack(String name);
 
         /**
          * Adds the events to a thread scoped named track instead of the thread track where the
          * event occurred.
-         *
-         * @param name can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code name} should be the string itself.
-         * @param args format arguments if {@code name} is specified.
          */
-        Builder usingThreadNamedTrack(long tid, String name, Object... args);
+        Builder usingThreadNamedTrack(long tid, String name);
 
         /**
          * Adds the events to a counter track instead. This is required for
          * setting counter values.
-         *
-         * @param name can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code name} should be the string itself.
-         * @param args format arguments if {@code name} is specified.
          */
-        Builder usingCounterTrack(long parentUuid, String name, Object... args);
+        Builder usingCounterTrack(long parentUuid, String name);
 
         /**
          * Adds the events to a process scoped counter track instead. This is required for
          * setting counter values.
-         *
-         * @param name can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code name} should be the string itself.
-         * @param args format arguments if {@code eventName} is specified.
          */
-        Builder usingProcessCounterTrack(String name, Object... args);
+        Builder usingProcessCounterTrack(String name);
 
         /**
          * Adds the events to a thread scoped counter track instead. This is required for
          * setting counter values.
-         *
-         * @param name can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code name} should be the string itself.
-         * @param args format arguments if {@code name} is specified.
          */
-        Builder usingThreadCounterTrack(long tid, String name, Object... args);
+        Builder usingThreadCounterTrack(long tid, String name);
 
         /**
          * Sets a long counter value on the event.
@@ -272,13 +238,8 @@
 
         /**
          * Adds a proto field with field id {@code id} and value {@code val}.
-         *
-         * @param val can contain a format string specifier, in which case, the
-         * {@code args} are the format arguments. If no {@code args} are provided,
-         * the {@code val} should be the string itself.
-         * @param args format arguments if {@code val} is specified.
          */
-        Builder addField(long id, String val, Object... args);
+        Builder addField(long id, String val);
 
         /**
          * Begins a proto field with field
@@ -317,7 +278,7 @@
             return this;
         }
         @Override
-        public Builder setEventName(String eventName, Object... args) {
+        public Builder setEventName(String eventName) {
             return this;
         }
         @Override
@@ -333,7 +294,7 @@
             return this;
         }
         @Override
-        public Builder addArg(String name, String val, Object... args) {
+        public Builder addArg(String name, String val) {
             return this;
         }
         @Override
@@ -345,27 +306,27 @@
             return this;
         }
         @Override
-        public Builder usingNamedTrack(long parentUuid, String name, Object... args) {
+        public Builder usingNamedTrack(long parentUuid, String name) {
             return this;
         }
         @Override
-        public Builder usingProcessNamedTrack(String name, Object... args) {
+        public Builder usingProcessNamedTrack(String name) {
             return this;
         }
         @Override
-        public Builder usingThreadNamedTrack(long tid, String name, Object... args) {
+        public Builder usingThreadNamedTrack(long tid, String name) {
             return this;
         }
         @Override
-        public Builder usingCounterTrack(long parentUuid, String name, Object... args) {
+        public Builder usingCounterTrack(long parentUuid, String name) {
             return this;
         }
         @Override
-        public Builder usingProcessCounterTrack(String name, Object... args) {
+        public Builder usingProcessCounterTrack(String name) {
             return this;
         }
         @Override
-        public Builder usingThreadCounterTrack(long tid, String name, Object... args) {
+        public Builder usingThreadCounterTrack(long tid, String name) {
             return this;
         }
         @Override
@@ -385,7 +346,7 @@
             return this;
         }
         @Override
-        public Builder addField(long id, String val, Object... args) {
+        public Builder addField(long id, String val) {
             return this;
         }
         @Override
@@ -443,7 +404,6 @@
 
         private BuilderImpl() {
             mExtra = sTrackEventExtra.get();
-
             mNamedTrackCache = mExtra.mNamedTrackCache;
             mCounterTrackCache = mExtra.mCounterTrackCache;
             mArgInt64Cache = mExtra.mArgInt64Cache;
@@ -482,6 +442,7 @@
             mFieldStringCache.reset();
             mFieldNestedCache.reset();
             mBuilderCache.reset();
+            mFlowCache.reset();
 
             mExtra.reset();
             // Reset after on init in case the thread created builders without calling emit
@@ -489,8 +450,8 @@
         }
 
         @Override
-        public Builder setEventName(String eventName, Object... args) {
-            mEventName = toString(eventName, args);
+        public Builder setEventName(String eventName) {
+            mEventName = eventName;
             return this;
         }
 
@@ -534,14 +495,14 @@
         }
 
         @Override
-        public Builder addArg(String name, String val, Object... args) {
+        public Builder addArg(String name, String val) {
             checkParent();
             ArgString arg = mArgStringCache.get(name.hashCode());
             if (arg == null || !arg.getName().equals(name)) {
                 arg = new ArgString(name);
                 mArgStringCache.put(name.hashCode(), arg);
             }
-            arg.setValue(toString(val, args));
+            arg.setValue(val);
             mExtra.addPerfettoPointer(arg);
             return this;
         }
@@ -549,7 +510,7 @@
         @Override
         public Builder addFlow(int id) {
             checkParent();
-            Flow flow = mFlowCache.get(Flow::new);
+            Flow flow = mFlowCache.get(sFlowSupplier);
             flow.setProcessFlow(id);
             mExtra.addPerfettoPointer(flow);
             return this;
@@ -558,16 +519,15 @@
         @Override
         public Builder addTerminatingFlow(int id) {
             checkParent();
-            Flow flow = mFlowCache.get(Flow::new);
+            Flow flow = mFlowCache.get(sFlowSupplier);
             flow.setProcessTerminatingFlow(id);
             mExtra.addPerfettoPointer(flow);
             return this;
         }
 
         @Override
-        public Builder usingNamedTrack(long parentUuid, String name, Object... args) {
+        public Builder usingNamedTrack(long parentUuid, String name) {
             checkParent();
-            name = toString(name, args);
 
             NamedTrack track = mNamedTrackCache.get(name.hashCode());
             if (track == null || !track.getName().equals(name)) {
@@ -579,19 +539,18 @@
         }
 
         @Override
-        public Builder usingProcessNamedTrack(String name, Object... args) {
-            return usingNamedTrack(PerfettoTrace.getProcessTrackUuid(), name, args);
+        public Builder usingProcessNamedTrack(String name) {
+            return usingNamedTrack(PerfettoTrace.getProcessTrackUuid(), name);
         }
 
         @Override
-        public Builder usingThreadNamedTrack(long tid, String name, Object... args) {
-            return usingNamedTrack(PerfettoTrace.getThreadTrackUuid(tid), name, args);
+        public Builder usingThreadNamedTrack(long tid, String name) {
+            return usingNamedTrack(PerfettoTrace.getThreadTrackUuid(tid), name);
         }
 
         @Override
-        public Builder usingCounterTrack(long parentUuid, String name, Object... args) {
+        public Builder usingCounterTrack(long parentUuid, String name) {
             checkParent();
-            name = toString(name, args);
 
             CounterTrack track = mCounterTrackCache.get(name.hashCode());
             if (track == null || !track.getName().equals(name)) {
@@ -603,13 +562,13 @@
         }
 
         @Override
-        public Builder usingProcessCounterTrack(String name, Object... args) {
-            return usingCounterTrack(PerfettoTrace.getProcessTrackUuid(), name, args);
+        public Builder usingProcessCounterTrack(String name) {
+            return usingCounterTrack(PerfettoTrace.getProcessTrackUuid(), name);
         }
 
         @Override
-        public Builder usingThreadCounterTrack(long tid, String name, Object... args) {
-            return usingCounterTrack(PerfettoTrace.getThreadTrackUuid(tid), name, args);
+        public Builder usingThreadCounterTrack(long tid, String name) {
+            return usingCounterTrack(PerfettoTrace.getThreadTrackUuid(tid), name);
         }
 
         @Override
@@ -631,7 +590,7 @@
         @Override
         public Builder addField(long id, long val) {
             checkContainer();
-            FieldInt64 field = mFieldInt64Cache.get(FieldInt64::new);
+            FieldInt64 field = mFieldInt64Cache.get(sFieldInt64Supplier);
             field.setValue(id, val);
             mCurrentContainer.addField(field);
             return this;
@@ -640,17 +599,17 @@
         @Override
         public Builder addField(long id, double val) {
             checkContainer();
-            FieldDouble field = mFieldDoubleCache.get(FieldDouble::new);
+            FieldDouble field = mFieldDoubleCache.get(sFieldDoubleSupplier);
             field.setValue(id, val);
             mCurrentContainer.addField(field);
             return this;
         }
 
         @Override
-        public Builder addField(long id, String val, Object... args) {
+        public Builder addField(long id, String val) {
             checkContainer();
-            FieldString field = mFieldStringCache.get(FieldString::new);
-            field.setValue(id, toString(val, args));
+            FieldString field = mFieldStringCache.get(sFieldStringSupplier);
+            field.setValue(id, val);
             mCurrentContainer.addField(field);
             return this;
         }
@@ -660,7 +619,7 @@
             checkParent();
             mProto.clearFields();
             mExtra.addPerfettoPointer(mProto);
-            return mBuilderCache.get(BuilderImpl::new).initInternal(this, mProto);
+            return mBuilderCache.get(sBuilderSupplier).initInternal(this, mProto);
         }
 
         @Override
@@ -674,10 +633,10 @@
         @Override
         public Builder beginNested(long id) {
             checkContainer();
-            FieldNested field = mFieldNestedCache.get(FieldNested::new);
+            FieldNested field = mFieldNestedCache.get(sFieldNestedSupplier);
             field.setId(id);
             mCurrentContainer.addField(field);
-            return mBuilderCache.get(BuilderImpl::new).initInternal(this, field);
+            return mBuilderCache.get(sBuilderSupplier).initInternal(this, field);
         }
 
         @Override
@@ -688,10 +647,6 @@
             return mParent;
         }
 
-        private static String toString(String val, Object... args) {
-            return args == null || args.length == 0 ? val : String.format(val, args);
-        }
-
         private Builder initInternal(Builder parent, FieldContainer container) {
             mParent = parent;
             mCurrentContainer = container;
@@ -727,7 +682,7 @@
      * Start a {@link Builder} to build a {@link PerfettoTrackEventExtra}.
      */
     public static Builder builder() {
-        return sTrackEventExtra.get().mBuilderCache.get(BuilderImpl::new).initInternal(null, null);
+        return sTrackEventExtra.get().mBuilderCache.get(sBuilderSupplier).initInternal(null, null);
     }
 
     /**
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 5129af6..b03a51b 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -16,6 +16,8 @@
 
 package android.os;
 
+import static android.app.PropertyInvalidatedCache.MODULE_SYSTEM;
+
 import android.Manifest.permission;
 import android.annotation.CallbackExecutor;
 import android.annotation.CurrentTimeMillisLong;
@@ -1186,17 +1188,23 @@
         }
     }
 
-    private static final String CACHE_KEY_IS_POWER_SAVE_MODE_PROPERTY =
-            PropertyInvalidatedCache.createSystemCacheKey("is_power_save_mode");
+    private static final String CACHE_KEY_IS_POWER_SAVE_MODE_API = "is_power_save_mode";
 
-    private static final String CACHE_KEY_IS_INTERACTIVE_PROPERTY =
-            PropertyInvalidatedCache.createSystemCacheKey("is_interactive");
+    private static final String CACHE_KEY_IS_INTERACTIVE_API = "is_interactive";
 
     private static final int MAX_CACHE_ENTRIES = 1;
 
+    private static PropertyInvalidatedCache.Args getCacheArgs(String api) {
+        return new PropertyInvalidatedCache.Args(MODULE_SYSTEM)
+                .maxEntries(MAX_CACHE_ENTRIES)
+                .isolateUids(false)
+                .cacheNulls(false)
+                .api(api);
+    }
+
     private final PropertyInvalidatedCache<Void, Boolean> mPowerSaveModeCache =
-            new PropertyInvalidatedCache<Void, Boolean>(MAX_CACHE_ENTRIES,
-                CACHE_KEY_IS_POWER_SAVE_MODE_PROPERTY) {
+            new PropertyInvalidatedCache<>(getCacheArgs(CACHE_KEY_IS_POWER_SAVE_MODE_API),
+                    CACHE_KEY_IS_POWER_SAVE_MODE_API, null) {
                 @Override
                 public Boolean recompute(Void query) {
                     try {
@@ -1208,8 +1216,8 @@
             };
 
     private final PropertyInvalidatedCache<Integer, Boolean> mInteractiveCache =
-            new PropertyInvalidatedCache<Integer, Boolean>(MAX_CACHE_ENTRIES,
-                CACHE_KEY_IS_INTERACTIVE_PROPERTY) {
+            new PropertyInvalidatedCache<>(getCacheArgs(CACHE_KEY_IS_INTERACTIVE_API),
+                    CACHE_KEY_IS_INTERACTIVE_API, null) {
                 @Override
                 public Boolean recompute(Integer displayId) {
                     try {
@@ -4322,13 +4330,13 @@
      * @hide
      */
     public static void invalidatePowerSaveModeCaches() {
-        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_IS_POWER_SAVE_MODE_PROPERTY);
+        PropertyInvalidatedCache.invalidateCache(MODULE_SYSTEM, CACHE_KEY_IS_POWER_SAVE_MODE_API);
     }
 
     /**
      * @hide
      */
     public static void invalidateIsInteractiveCaches() {
-        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_IS_INTERACTIVE_PROPERTY);
+        PropertyInvalidatedCache.invalidateCache(MODULE_SYSTEM, CACHE_KEY_IS_INTERACTIVE_API);
     }
 }
diff --git a/core/java/android/os/TestLooperManager.java b/core/java/android/os/TestLooperManager.java
index 2d9d025..1a54f4d 100644
--- a/core/java/android/os/TestLooperManager.java
+++ b/core/java/android/os/TestLooperManager.java
@@ -159,7 +159,7 @@
      */
     public void execute(Message message) {
         checkReleased();
-        if (Looper.myLooper() == mLooper) {
+        if (mLooper.isCurrentThread()) {
             // This is being called from the thread it should be executed on, we can just dispatch.
             message.target.dispatchMessage(message);
         } else {
diff --git a/core/java/android/os/health/SystemHealthManager.java b/core/java/android/os/health/SystemHealthManager.java
index 9d0e221..a8a22f6 100644
--- a/core/java/android/os/health/SystemHealthManager.java
+++ b/core/java/android/os/health/SystemHealthManager.java
@@ -473,17 +473,31 @@
             }
         }
 
-        final HealthStats[] results = new HealthStats[uids.length];
-        if (result.bundle != null) {
-            HealthStatsParceler[] parcelers = result.bundle.getParcelableArray(
-                    IBatteryStats.KEY_UID_SNAPSHOTS, HealthStatsParceler.class);
-            if (parcelers != null && parcelers.length == uids.length) {
-                for (int i = 0; i < parcelers.length; i++) {
-                    results[i] = parcelers[i].getHealthStats();
+        switch (result.resultCode) {
+            case IBatteryStats.RESULT_OK: {
+                final HealthStats[] results = new HealthStats[uids.length];
+                if (result.bundle != null) {
+                    HealthStatsParceler[] parcelers = result.bundle.getParcelableArray(
+                            IBatteryStats.KEY_UID_SNAPSHOTS, HealthStatsParceler.class);
+                    if (parcelers != null && parcelers.length == uids.length) {
+                        for (int i = 0; i < parcelers.length; i++) {
+                            results[i] = parcelers[i].getHealthStats();
+                        }
+                    }
                 }
+                return results;
             }
+            case IBatteryStats.RESULT_SECURITY_EXCEPTION: {
+                throw new SecurityException(result.bundle != null
+                        ? result.bundle.getString(IBatteryStats.KEY_EXCEPTION_MESSAGE) : null);
+            }
+            case IBatteryStats.RESULT_RUNTIME_EXCEPTION: {
+                throw new RuntimeException(result.bundle != null
+                        ? result.bundle.getString(IBatteryStats.KEY_EXCEPTION_MESSAGE) : null);
+            }
+            default:
+                throw new RuntimeException("Error code: " + result.resultCode);
         }
-        return results;
     }
 
     /**
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 91ad22f..24f8672 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -22,6 +22,7 @@
 import static android.app.AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE;
 import static android.app.AppOpsManager.OP_READ_EXTERNAL_STORAGE;
 import static android.app.AppOpsManager.OP_READ_MEDIA_IMAGES;
+import static android.app.PropertyInvalidatedCache.MODULE_SYSTEM;
 import static android.content.ContentResolver.DEPRECATE_DATA_PREFIX;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.os.UserHandle.PER_USER_RANGE;
@@ -44,6 +45,7 @@
 import android.app.AppGlobals;
 import android.app.AppOpsManager;
 import android.app.PendingIntent;
+import android.app.PropertyInvalidatedCache;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -269,14 +271,15 @@
     public static final int FLAG_STORAGE_SDK = IInstalld.FLAG_STORAGE_SDK;
 
     /** {@hide} */
-    @IntDef(prefix = "FLAG_STORAGE_",  value = {
+    @IntDef(prefix = "FLAG_STORAGE_", value = {
             FLAG_STORAGE_DE,
             FLAG_STORAGE_CE,
             FLAG_STORAGE_EXTERNAL,
             FLAG_STORAGE_SDK,
     })
     @Retention(RetentionPolicy.SOURCE)
-    public @interface StorageFlags {}
+    public @interface StorageFlags {
+    }
 
     /** {@hide} */
     public static final int FLAG_FOR_WRITE = 1 << 8;
@@ -309,6 +312,44 @@
     @GuardedBy("mDelegates")
     private final ArrayList<StorageEventListenerDelegate> mDelegates = new ArrayList<>();
 
+    static record VolumeListQuery(int mUserId, String mPackageName, int mFlags) {
+    }
+
+    private static final PropertyInvalidatedCache.QueryHandler<VolumeListQuery, StorageVolume[]>
+            sVolumeListQuery = new PropertyInvalidatedCache.QueryHandler<>() {
+                @androidx.annotation.Nullable
+                @Override
+                public StorageVolume[] apply(@androidx.annotation.NonNull VolumeListQuery query) {
+                    final IStorageManager storageManager = IStorageManager.Stub.asInterface(
+                            ServiceManager.getService("mount"));
+                    if (storageManager == null) {
+                        // negative results won't be cached, so we will just try again next time
+                        return null;
+                    }
+                    try {
+                        return storageManager.getVolumeList(
+                                query.mUserId, query.mPackageName, query.mFlags);
+                    } catch (RemoteException e) {
+                        throw e.rethrowFromSystemServer();
+                    }
+                }
+            };
+
+    // Generally, the userId and packageName parameters stay pretty constant, but flags may change
+    // regularly; we have observed some processes hitting 10+ variations.
+    private static final int VOLUME_LIST_CACHE_MAX = 16;
+
+    private static final PropertyInvalidatedCache<VolumeListQuery, StorageVolume[]>
+            sVolumeListCache = new PropertyInvalidatedCache<>(
+                    new PropertyInvalidatedCache.Args(MODULE_SYSTEM).cacheNulls(false)
+                    .api("getVolumeList").maxEntries(VOLUME_LIST_CACHE_MAX), "getVolumeList",
+                    sVolumeListQuery);
+
+    /** {@hide} */
+    public static void invalidateVolumeListCache() {
+        sVolumeListCache.invalidateCache();
+    }
+
     private class StorageEventListenerDelegate extends IStorageEventListener.Stub {
         final Executor mExecutor;
         final StorageEventListener mListener;
@@ -395,7 +436,8 @@
 
     private class ObbActionListener extends IObbActionListener.Stub {
         @SuppressWarnings("hiding")
-        private SparseArray<ObbListenerDelegate> mListeners = new SparseArray<ObbListenerDelegate>();
+        private SparseArray<ObbListenerDelegate> mListeners =
+                new SparseArray<ObbListenerDelegate>();
 
         @Override
         public void onObbResult(String filename, int nonce, int status) {
@@ -477,10 +519,10 @@
      *
      * @param looper The {@link android.os.Looper} which events will be received on.
      *
-     * <p>Applications can get instance of this class by calling
-     * {@link android.content.Context#getSystemService(java.lang.String)} with an argument
-     * of {@link android.content.Context#STORAGE_SERVICE}.
-     *
+     *               <p>Applications can get instance of this class by calling
+     *               {@link android.content.Context#getSystemService(java.lang.String)} with an
+     *               argument
+     *               of {@link android.content.Context#STORAGE_SERVICE}.
      * @hide
      */
     @UnsupportedAppUsage
@@ -488,15 +530,16 @@
         mContext = context;
         mResolver = context.getContentResolver();
         mLooper = looper;
-        mStorageManager = IStorageManager.Stub.asInterface(ServiceManager.getServiceOrThrow("mount"));
+        mStorageManager = IStorageManager.Stub.asInterface(
+                ServiceManager.getServiceOrThrow("mount"));
         mAppOps = mContext.getSystemService(AppOpsManager.class);
     }
 
     /**
      * Registers a {@link android.os.storage.StorageEventListener StorageEventListener}.
      *
-     * @param listener A {@link android.os.storage.StorageEventListener StorageEventListener} object.
-     *
+     * @param listener A {@link android.os.storage.StorageEventListener StorageEventListener}
+     *                 object.
      * @hide
      */
     @UnsupportedAppUsage
@@ -516,14 +559,14 @@
     /**
      * Unregisters a {@link android.os.storage.StorageEventListener StorageEventListener}.
      *
-     * @param listener A {@link android.os.storage.StorageEventListener StorageEventListener} object.
-     *
+     * @param listener A {@link android.os.storage.StorageEventListener StorageEventListener}
+     *                 object.
      * @hide
      */
     @UnsupportedAppUsage
     public void unregisterListener(StorageEventListener listener) {
         synchronized (mDelegates) {
-            for (Iterator<StorageEventListenerDelegate> i = mDelegates.iterator(); i.hasNext();) {
+            for (Iterator<StorageEventListenerDelegate> i = mDelegates.iterator(); i.hasNext(); ) {
                 final StorageEventListenerDelegate delegate = i.next();
                 if (delegate.mListener == listener) {
                     try {
@@ -558,7 +601,8 @@
          * {@link StorageManager#getStorageVolumes()} to observe the latest
          * value.
          */
-        public void onStateChanged(@NonNull StorageVolume volume) { }
+        public void onStateChanged(@NonNull StorageVolume volume) {
+        }
     }
 
     /**
@@ -592,7 +636,7 @@
      */
     public void unregisterStorageVolumeCallback(@NonNull StorageVolumeCallback callback) {
         synchronized (mDelegates) {
-            for (Iterator<StorageEventListenerDelegate> i = mDelegates.iterator(); i.hasNext();) {
+            for (Iterator<StorageEventListenerDelegate> i = mDelegates.iterator(); i.hasNext(); ) {
                 final StorageEventListenerDelegate delegate = i.next();
                 if (delegate.mCallback == callback) {
                     try {
@@ -628,8 +672,8 @@
 
     /**
      * Query if a USB Mass Storage (UMS) host is connected.
-     * @return true if UMS host is connected.
      *
+     * @return true if UMS host is connected.
      * @hide
      */
     @Deprecated
@@ -640,8 +684,8 @@
 
     /**
      * Query if a USB Mass Storage (UMS) is enabled on the device.
-     * @return true if UMS host is enabled.
      *
+     * @return true if UMS host is enabled.
      * @hide
      */
     @Deprecated
@@ -663,11 +707,11 @@
      * That is, shared UID applications can attempt to mount any other
      * application's OBB that shares its UID.
      *
-     * @param rawPath the path to the OBB file
-     * @param key must be <code>null</code>. Previously, some Android device
-     *            implementations accepted a non-<code>null</code> key to mount
-     *            an encrypted OBB file. However, this never worked reliably and
-     *            is no longer supported.
+     * @param rawPath  the path to the OBB file
+     * @param key      must be <code>null</code>. Previously, some Android device
+     *                 implementations accepted a non-<code>null</code> key to mount
+     *                 an encrypted OBB file. However, this never worked reliably and
+     *                 is no longer supported.
      * @param listener will receive the success or failure of the operation
      * @return whether the mount call was successfully queued or not
      */
@@ -739,9 +783,9 @@
      * application's OBB that shares its UID.
      * <p>
      *
-     * @param rawPath path to the OBB file
-     * @param force whether to kill any programs using this in order to unmount
-     *            it
+     * @param rawPath  path to the OBB file
+     * @param force    whether to kill any programs using this in order to unmount
+     *                 it
      * @param listener will receive the success or failure of the operation
      * @return whether the unmount call was successfully queued or not
      */
@@ -781,7 +825,7 @@
      *
      * @param rawPath path to OBB image
      * @return absolute path to mounted OBB image data or <code>null</code> if
-     *         not mounted or exception encountered trying to read status
+     * not mounted or exception encountered trying to read status
      */
     public String getMountedObbPath(String rawPath) {
         Preconditions.checkNotNull(rawPath, "rawPath cannot be null");
@@ -899,7 +943,7 @@
      * {@link #UUID_DEFAULT}.
      *
      * @throws IOException when the storage device hosting the given path isn't
-     *             present, or when it doesn't have a valid UUID.
+     *                     present, or when it doesn't have a valid UUID.
      */
     public @NonNull UUID getUuidForPath(@NonNull File path) throws IOException {
         Preconditions.checkNotNull(path);
@@ -1172,8 +1216,8 @@
     /**
      * This is not the API you're looking for.
      *
-     * @see PackageManager#getPrimaryStorageCurrentVolume()
      * @hide
+     * @see PackageManager#getPrimaryStorageCurrentVolume()
      */
     public String getPrimaryStorageUuid() {
         try {
@@ -1186,8 +1230,8 @@
     /**
      * This is not the API you're looking for.
      *
-     * @see PackageManager#movePrimaryStorage(VolumeInfo)
      * @hide
+     * @see PackageManager#movePrimaryStorage(VolumeInfo)
      */
     public void setPrimaryStorageUuid(String volumeUuid, IPackageMoveObserver callback) {
         try {
@@ -1216,7 +1260,7 @@
         // resolve the actual volume name
         if (Objects.equals(volumeName, MediaStore.VOLUME_EXTERNAL)) {
             try (Cursor c = mContext.getContentResolver().query(uri,
-                    new String[] { MediaStore.MediaColumns.VOLUME_NAME }, null, null)) {
+                    new String[]{MediaStore.MediaColumns.VOLUME_NAME}, null, null)) {
                 if (c.moveToFirst()) {
                     volumeName = c.getString(0);
                 }
@@ -1275,6 +1319,7 @@
 
     /**
      * Gets the state of a volume via its mountpoint.
+     *
      * @hide
      */
     @Deprecated
@@ -1308,7 +1353,7 @@
      * Return the list of shared/external storage volumes currently available to
      * the calling user and the user it shares media with. Please refer to
      * <a href="https://source.android.com/compatibility/12/android-12-cdd#95_multi-user_support">
-     *     multi-user support</a> for more details.
+     * multi-user support</a> for more details.
      *
      * <p>
      * This is similar to {@link StorageManager#getStorageVolumes()} except that the result also
@@ -1353,7 +1398,7 @@
     public static Pair<String, Long> getPrimaryStoragePathAndSize() {
         return Pair.create(null,
                 FileUtils.roundStorageSize(Environment.getDataDirectory().getTotalSpace()
-                    + Environment.getRootDirectory().getTotalSpace()));
+                        + Environment.getRootDirectory().getTotalSpace()));
     }
 
     /** {@hide} */
@@ -1389,8 +1434,6 @@
     /** {@hide} */
     @UnsupportedAppUsage
     public static @NonNull StorageVolume[] getVolumeList(int userId, int flags) {
-        final IStorageManager storageManager = IStorageManager.Stub.asInterface(
-                ServiceManager.getService("mount"));
         try {
             String packageName = ActivityThread.currentOpPackageName();
             if (packageName == null) {
@@ -1406,7 +1449,7 @@
                 }
                 packageName = packageNames[0];
             }
-            return storageManager.getVolumeList(userId, packageName, flags);
+            return sVolumeListCache.query(new VolumeListQuery(userId, packageName, flags));
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -1414,6 +1457,7 @@
 
     /**
      * Returns list of paths for all mountable volumes.
+     *
      * @hide
      */
     @Deprecated
@@ -1605,7 +1649,7 @@
      * <p>
      * This is only intended to be called by UserManagerService, as part of creating a user.
      *
-     * @param userId ID of the user
+     * @param userId    ID of the user
      * @param ephemeral whether the user is ephemeral
      * @throws RuntimeException on error.  The user's keys already existing is considered an error.
      * @hide
@@ -1711,7 +1755,8 @@
         return false;
     }
 
-    /** {@hide}
+    /**
+     * {@hide}
      * Is this device encrypted?
      * <p>
      * Note: all devices launching with Android 10 (API level 29) or later are
@@ -1724,8 +1769,10 @@
         return RoSystemProperties.CRYPTO_ENCRYPTED;
     }
 
-    /** {@hide}
+    /**
+     * {@hide}
      * Does this device have file-based encryption (FBE) enabled?
+     *
      * @return true if the device has file-based encryption enabled.
      */
     public static boolean isFileEncrypted() {
@@ -1759,8 +1806,8 @@
     }
 
     /**
-     * @deprecated disabled now that FUSE has been replaced by sdcardfs
      * @hide
+     * @deprecated disabled now that FUSE has been replaced by sdcardfs
      */
     @Deprecated
     public static File maybeTranslateEmulatedPathToInternal(File path) {
@@ -1790,6 +1837,7 @@
 
     /**
      * Check that given app holds both permission and appop.
+     *
      * @hide
      */
     public static boolean checkPermissionAndAppOp(Context context, boolean enforce, int pid,
@@ -1800,6 +1848,7 @@
 
     /**
      * Check that given app holds both permission and appop but do not noteOp.
+     *
      * @hide
      */
     public static boolean checkPermissionAndCheckOp(Context context, boolean enforce,
@@ -1810,6 +1859,7 @@
 
     /**
      * Check that given app holds both permission and appop.
+     *
      * @hide
      */
     private static boolean checkPermissionAndAppOp(Context context, boolean enforce, int pid,
@@ -1877,7 +1927,9 @@
                 // Legacy apps technically have the access granted by this op,
                 // even when the op is denied
                 if ((mAppOps.checkOpNoThrow(OP_LEGACY_STORAGE, uid,
-                        packageName) == AppOpsManager.MODE_ALLOWED)) return true;
+                        packageName) == AppOpsManager.MODE_ALLOWED)) {
+                    return true;
+                }
 
                 if (enforce) {
                     throw new SecurityException("Op " + AppOpsManager.opToName(op) + " "
@@ -1924,7 +1976,7 @@
             return true;
         }
         if (mode == AppOpsManager.MODE_DEFAULT && mContext.checkPermission(
-                  MANAGE_EXTERNAL_STORAGE, pid, uid) == PERMISSION_GRANTED) {
+                MANAGE_EXTERNAL_STORAGE, pid, uid) == PERMISSION_GRANTED) {
             return true;
         }
         // If app doesn't have MANAGE_EXTERNAL_STORAGE, then check if it has requested granular
@@ -1936,7 +1988,7 @@
     @VisibleForTesting
     public @NonNull ParcelFileDescriptor openProxyFileDescriptor(
             int mode, ProxyFileDescriptorCallback callback, Handler handler, ThreadFactory factory)
-                    throws IOException {
+            throws IOException {
         Preconditions.checkNotNull(callback);
         MetricsLogger.count(mContext, "storage_open_proxy_file_descriptor", 1);
         // Retry is needed because the mount point mFuseAppLoop is using may be unmounted before
@@ -1987,7 +2039,7 @@
     /** {@hide} */
     public @NonNull ParcelFileDescriptor openProxyFileDescriptor(
             int mode, ProxyFileDescriptorCallback callback)
-                    throws IOException {
+            throws IOException {
         return openProxyFileDescriptor(mode, callback, null, null);
     }
 
@@ -2006,19 +2058,18 @@
      * you're willing to decrypt on-demand, but where you want to avoid
      * persisting the cleartext version.
      *
-     * @param mode The desired access mode, must be one of
-     *            {@link ParcelFileDescriptor#MODE_READ_ONLY},
-     *            {@link ParcelFileDescriptor#MODE_WRITE_ONLY}, or
-     *            {@link ParcelFileDescriptor#MODE_READ_WRITE}
+     * @param mode     The desired access mode, must be one of
+     *                 {@link ParcelFileDescriptor#MODE_READ_ONLY},
+     *                 {@link ParcelFileDescriptor#MODE_WRITE_ONLY}, or
+     *                 {@link ParcelFileDescriptor#MODE_READ_WRITE}
      * @param callback Callback to process file operation requests issued on
-     *            returned file descriptor.
-     * @param handler Handler that invokes callback methods.
+     *                 returned file descriptor.
+     * @param handler  Handler that invokes callback methods.
      * @return Seekable ParcelFileDescriptor.
-     * @throws IOException
      */
     public @NonNull ParcelFileDescriptor openProxyFileDescriptor(
             int mode, ProxyFileDescriptorCallback callback, Handler handler)
-                    throws IOException {
+            throws IOException {
         Preconditions.checkNotNull(handler);
         return openProxyFileDescriptor(mode, callback, handler, null);
     }
@@ -2050,10 +2101,10 @@
      * </p>
      *
      * @param storageUuid the UUID of the storage volume that you're interested
-     *            in. The UUID for a specific path can be obtained using
-     *            {@link #getUuidForPath(File)}.
+     *                    in. The UUID for a specific path can be obtained using
+     *                    {@link #getUuidForPath(File)}.
      * @throws IOException when the storage device isn't present, or when it
-     *             doesn't support cache quotas.
+     *                     doesn't support cache quotas.
      * @see #getCacheSizeBytes(UUID)
      */
     @WorkerThread
@@ -2085,10 +2136,10 @@
      * </p>
      *
      * @param storageUuid the UUID of the storage volume that you're interested
-     *            in. The UUID for a specific path can be obtained using
-     *            {@link #getUuidForPath(File)}.
+     *                    in. The UUID for a specific path can be obtained using
+     *                    {@link #getUuidForPath(File)}.
      * @throws IOException when the storage device isn't present, or when it
-     *             doesn't support cache quotas.
+     *                     doesn't support cache quotas.
      * @see #getCacheQuotaBytes(UUID)
      */
     @WorkerThread
@@ -2106,7 +2157,7 @@
 
 
     /** @hide */
-    @IntDef(prefix = { "MOUNT_MODE_" }, value = {
+    @IntDef(prefix = {"MOUNT_MODE_"}, value = {
             MOUNT_MODE_EXTERNAL_NONE,
             MOUNT_MODE_EXTERNAL_DEFAULT,
             MOUNT_MODE_EXTERNAL_INSTALLER,
@@ -2115,16 +2166,19 @@
     })
     @Retention(RetentionPolicy.SOURCE)
     /** @hide */
-    public @interface MountMode {}
+    public @interface MountMode {
+    }
 
     /**
      * No external storage should be mounted.
+     *
      * @hide
      */
     @SystemApi
     public static final int MOUNT_MODE_EXTERNAL_NONE = IVold.REMOUNT_MODE_NONE;
     /**
      * Default external storage should be mounted.
+     *
      * @hide
      */
     @SystemApi
@@ -2132,12 +2186,14 @@
     /**
      * Mount mode for package installers which should give them access to
      * all obb dirs in addition to their package sandboxes
+     *
      * @hide
      */
     @SystemApi
     public static final int MOUNT_MODE_EXTERNAL_INSTALLER = IVold.REMOUNT_MODE_INSTALLER;
     /**
      * The lower file system should be bind mounted directly on external storage
+     *
      * @hide
      */
     @SystemApi
@@ -2146,6 +2202,7 @@
     /**
      * Use the regular scoped storage filesystem, but Android/ should be writable.
      * Used to support the applications hosting DownloadManager and the MTP server.
+     *
      * @hide
      */
     @SystemApi
@@ -2164,10 +2221,10 @@
      * this flag to take effect.
      * </p>
      *
+     * @hide
      * @see #getAllocatableBytes(UUID, int)
      * @see #allocateBytes(UUID, long, int)
      * @see #allocateBytes(FileDescriptor, long, int)
-     * @hide
      */
     @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE)
     @SystemApi
@@ -2194,6 +2251,7 @@
      * freeable cached space when determining allocatable space.
      *
      * Intended for use with {@link #getAllocatableBytes()}.
+     *
      * @hide
      */
     public static final int FLAG_ALLOCATE_NON_CACHE_ONLY = 1 << 3;
@@ -2203,12 +2261,13 @@
      * cached space when determining allocatable space.
      *
      * Intended for use with {@link #getAllocatableBytes()}.
+     *
      * @hide
      */
     public static final int FLAG_ALLOCATE_CACHE_ONLY = 1 << 4;
 
     /** @hide */
-    @IntDef(flag = true, prefix = { "FLAG_ALLOCATE_" }, value = {
+    @IntDef(flag = true, prefix = {"FLAG_ALLOCATE_"}, value = {
             FLAG_ALLOCATE_AGGRESSIVE,
             FLAG_ALLOCATE_DEFY_ALL_RESERVED,
             FLAG_ALLOCATE_DEFY_HALF_RESERVED,
@@ -2216,7 +2275,8 @@
             FLAG_ALLOCATE_CACHE_ONLY,
     })
     @Retention(RetentionPolicy.SOURCE)
-    public @interface AllocateFlags {}
+    public @interface AllocateFlags {
+    }
 
     /**
      * Return the maximum number of new bytes that your app can allocate for
@@ -2246,15 +2306,15 @@
      * </p>
      *
      * @param storageUuid the UUID of the storage volume where you're
-     *            considering allocating disk space, since allocatable space can
-     *            vary widely depending on the underlying storage device. The
-     *            UUID for a specific path can be obtained using
-     *            {@link #getUuidForPath(File)}.
+     *                    considering allocating disk space, since allocatable space can
+     *                    vary widely depending on the underlying storage device. The
+     *                    UUID for a specific path can be obtained using
+     *                    {@link #getUuidForPath(File)}.
      * @return the maximum number of new bytes that the calling app can allocate
-     *         using {@link #allocateBytes(UUID, long)} or
-     *         {@link #allocateBytes(FileDescriptor, long)}.
+     * using {@link #allocateBytes(UUID, long)} or
+     * {@link #allocateBytes(FileDescriptor, long)}.
      * @throws IOException when the storage device isn't present, or when it
-     *             doesn't support allocating space.
+     *                     doesn't support allocating space.
      */
     @WorkerThread
     public @BytesLong long getAllocatableBytes(@NonNull UUID storageUuid)
@@ -2297,12 +2357,12 @@
      * more than once every 60 seconds.
      *
      * @param storageUuid the UUID of the storage volume where you'd like to
-     *            allocate disk space. The UUID for a specific path can be
-     *            obtained using {@link #getUuidForPath(File)}.
-     * @param bytes the number of bytes to allocate.
+     *                    allocate disk space. The UUID for a specific path can be
+     *                    obtained using {@link #getUuidForPath(File)}.
+     * @param bytes       the number of bytes to allocate.
      * @throws IOException when the storage device isn't present, or when it
-     *             doesn't support allocating space, or if the device had
-     *             trouble allocating the requested space.
+     *                     doesn't support allocating space, or if the device had
+     *                     trouble allocating the requested space.
      * @see #getAllocatableBytes(UUID)
      */
     @WorkerThread
@@ -2332,10 +2392,9 @@
      * These mount modes specify different views and access levels for
      * different apps on external storage.
      *
+     * @return {@code MountMode} for the given uid and packageName.
      * @params uid UID of the application
      * @params packageName name of the package
-     * @return {@code MountMode} for the given uid and packageName.
-     *
      * @hide
      */
     @RequiresPermission(android.Manifest.permission.WRITE_MEDIA_STORAGE)
@@ -2366,15 +2425,15 @@
      * (such as when recording a video) you should avoid calling this method
      * more than once every 60 seconds.
      *
-     * @param fd the open file that you'd like to allocate disk space for.
+     * @param fd    the open file that you'd like to allocate disk space for.
      * @param bytes the number of bytes to allocate. This is the desired final
-     *            size of the open file. If the open file is smaller than this
-     *            requested size, it will be extended without modifying any
-     *            existing contents. If the open file is larger than this
-     *            requested size, it will be truncated.
+     *              size of the open file. If the open file is smaller than this
+     *              requested size, it will be extended without modifying any
+     *              existing contents. If the open file is larger than this
+     *              requested size, it will be truncated.
      * @throws IOException when the storage device isn't present, or when it
-     *             doesn't support allocating space, or if the device had
-     *             trouble allocating the requested space.
+     *                     doesn't support allocating space, or if the device had
+     *                     trouble allocating the requested space.
      * @see #isAllocationSupported(FileDescriptor)
      * @see Environment#isExternalStorageEmulated(File)
      */
@@ -2499,13 +2558,14 @@
 
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = { "QUOTA_TYPE_" }, value = {
+    @IntDef(prefix = {"QUOTA_TYPE_"}, value = {
             QUOTA_TYPE_MEDIA_NONE,
             QUOTA_TYPE_MEDIA_AUDIO,
             QUOTA_TYPE_MEDIA_VIDEO,
             QUOTA_TYPE_MEDIA_IMAGE,
     })
-    public @interface QuotaType {}
+    public @interface QuotaType {
+    }
 
     private static native boolean setQuotaProjectId(String path, long projectId);
 
@@ -2532,15 +2592,13 @@
      * The default platform user of this API is the MediaProvider process, which is
      * responsible for managing all of external storage.
      *
-     * @param path the path to the file for which we should update the quota type
+     * @param path      the path to the file for which we should update the quota type
      * @param quotaType the quota type of the file; this is based on the
      *                  {@code QuotaType} constants, eg
      *                  {@code StorageManager.QUOTA_TYPE_MEDIA_AUDIO}
-     *
      * @throws IllegalArgumentException if {@code quotaType} does not correspond to a valid
      *                                  quota type.
      * @throws IOException              if the quota type could not be updated.
-     *
      * @hide
      */
     @SystemApi
@@ -2616,7 +2674,6 @@
      * permissions of a directory to what they should anyway be.
      *
      * @param path the path for which we should fix up the permissions
-     *
      * @hide
      */
     public void fixupAppDir(@NonNull File path) {
@@ -2822,11 +2879,12 @@
      * @hide
      */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = { "APP_IO_BLOCKED_REASON_" }, value = {
-                APP_IO_BLOCKED_REASON_TRANSCODING,
-                APP_IO_BLOCKED_REASON_UNKNOWN,
+    @IntDef(prefix = {"APP_IO_BLOCKED_REASON_"}, value = {
+            APP_IO_BLOCKED_REASON_TRANSCODING,
+            APP_IO_BLOCKED_REASON_UNKNOWN,
     })
-    public @interface AppIoBlockedReason {}
+    public @interface AppIoBlockedReason {
+    }
 
     /**
      * Notify the system that an app with {@code uid} and {@code tid} is blocked on an IO request on
@@ -2839,10 +2897,9 @@
      * {@link android.Manifest.permission#WRITE_MEDIA_STORAGE} permission.
      *
      * @param volumeUuid the UUID of the storage volume that the app IO is blocked on
-     * @param uid the UID of the app blocked on IO
-     * @param tid the tid of the app blocked on IO
-     * @param reason the reason the app is blocked on IO
-     *
+     * @param uid        the UID of the app blocked on IO
+     * @param tid        the tid of the app blocked on IO
+     * @param reason     the reason the app is blocked on IO
      * @hide
      */
     @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@@ -2866,10 +2923,9 @@
      * {@link android.Manifest.permission#WRITE_MEDIA_STORAGE} permission.
      *
      * @param volumeUuid the UUID of the storage volume that the app IO is resumed on
-     * @param uid the UID of the app resuming IO
-     * @param tid the tid of the app resuming IO
-     * @param reason the reason the app is resuming IO
-     *
+     * @param uid        the UID of the app resuming IO
+     * @param tid        the tid of the app resuming IO
+     * @param reason     the reason the app is resuming IO
      * @hide
      */
     @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@@ -2890,10 +2946,9 @@
      * {@link android.Manifest.permission#WRITE_MEDIA_STORAGE} permission.
      *
      * @param volumeUuid the UUID of the storage volume to check IO blocked status
-     * @param uid the UID of the app to check IO blocked status
-     * @param tid the tid of the app to check IO blocked status
-     * @param reason the reason to check IO blocked status for
-     *
+     * @param uid        the UID of the app to check IO blocked status
+     * @param tid        the tid of the app to check IO blocked status
+     * @param reason     the reason to check IO blocked status for
      * @hide
      */
     @TestApi
@@ -2962,7 +3017,6 @@
      * information is available, -1 is returned.
      *
      * @return Percentage of the remaining useful lifetime of the internal storage device.
-     *
      * @hide
      */
     @FlaggedApi(Flags.FLAG_STORAGE_LIFETIME_API)
diff --git a/core/java/android/permission/flags.aconfig b/core/java/android/permission/flags.aconfig
index a480a3b..daa5584 100644
--- a/core/java/android/permission/flags.aconfig
+++ b/core/java/android/permission/flags.aconfig
@@ -499,3 +499,11 @@
     description: "Collect sqlite performance metrics for discrete ops."
     bug: "377584611"
 }
+
+flag {
+    name: "app_ops_service_handler_fix"
+    is_fixed_read_only: true
+    namespace: "permissions"
+    description: "Use IoThread handler for AppOpsService background/IO work."
+    bug: "394380603"
+}
diff --git a/core/java/android/provider/DocumentsProvider.java b/core/java/android/provider/DocumentsProvider.java
index 5b527c7..1b65a88 100644
--- a/core/java/android/provider/DocumentsProvider.java
+++ b/core/java/android/provider/DocumentsProvider.java
@@ -1124,12 +1124,13 @@
         }
 
         final Uri documentUri = extraUri;
-        final String authority = documentUri.getAuthority();
+        final String authorityWithoutUserId = getAuthorityWithoutUserId(documentUri.getAuthority());
         final String documentId = DocumentsContract.getDocumentId(documentUri);
 
-        if (!mAuthority.equals(authority)) {
+        if (!mAuthority.equals(authorityWithoutUserId)) {
             throw new SecurityException(
-                    "Requested authority " + authority + " doesn't match provider " + mAuthority);
+                    "Requested authority " + authorityWithoutUserId + " doesn't match provider "
+                            + mAuthority);
         }
 
         if (METHOD_IS_CHILD_DOCUMENT.equals(method)) {
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 3cd7a00..6707098 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -10269,6 +10269,16 @@
         public static final String DOZE_ALWAYS_ON = "doze_always_on";
 
         /**
+         * Indicates whether ambient wallpaper is visible with AOD.
+         * <p>
+         * Type: int (0 for false, 1 for true)
+         *
+         * @hide
+         */
+        public static final String DOZE_ALWAYS_ON_WALLPAPER_ENABLED =
+                "doze_always_on_wallpaper_enabled";
+
+        /**
          * Whether the device should pulse on pick up gesture.
          * @hide
          */
@@ -13006,6 +13016,24 @@
         public static final String STYLUS_POINTER_ICON_ENABLED = "stylus_pointer_icon_enabled";
 
         /**
+         * Toggle for whether to redact OTP notification while connected to wifi. Defaults to
+         * false/0.
+         * @hide
+         */
+        @Readable
+        public static final String REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI =
+                "redact_otp_on_wifi";
+
+        /**
+         * Toggle for whether to immediately redact OTP notifications, or require the device to be
+         * locked for 10 minutes. Defaults to false/0
+         * @hide
+         */
+        @Readable
+        public static final String REDACT_OTP_NOTIFICATION_IMMEDIATELY =
+                "remove_otp_redaction_delay";
+
+        /**
          * These entries are considered common between the personal and the managed profile,
          * since the managed profile doesn't get to change them.
          */
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index 6eaef78f..f7f4eec 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -17,7 +17,6 @@
 package android.provider;
 
 import android.Manifest;
-import android.annotation.FlaggedApi;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
@@ -50,7 +49,6 @@
 import android.util.Patterns;
 
 import com.android.internal.telephony.SmsApplication;
-import com.android.internal.telephony.flags.Flags;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -3196,7 +3194,6 @@
          * See 3GPP TS 23.501 section 5.6.13
          * <P>Type: INTEGER</P>
          */
-        @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
         public static final String ALWAYS_ON = "always_on";
 
         /**
@@ -3307,7 +3304,6 @@
          * connected, in bytes.
          * <p>Type: INTEGER </p>
          */
-        @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
         public static final String MTU_V4 = "mtu_v4";
 
         /**
@@ -3315,7 +3311,6 @@
          * connected, in bytes.
          * <p>Type: INTEGER </p>
          */
-        @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
         public static final String MTU_V6 = "mtu_v6";
 
         /**
@@ -3338,14 +3333,12 @@
          * {@code true} if this APN visible to the user, {@code false} otherwise.
          * <p>Type: INTEGER (boolean)</p>
          */
-        @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
         public static final String USER_VISIBLE = "user_visible";
 
         /**
          * {@code true} if the user allowed to edit this APN, {@code false} otherwise.
          * <p>Type: INTEGER (boolean)</p>
          */
-        @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
         public static final String USER_EDITABLE = "user_editable";
 
         /**
diff --git a/core/java/android/security/flags.aconfig b/core/java/android/security/flags.aconfig
index 792e6ff..3a3ea18 100644
--- a/core/java/android/security/flags.aconfig
+++ b/core/java/android/security/flags.aconfig
@@ -126,6 +126,16 @@
 }
 
 flag {
+    name: "internal_log_event_listener"
+    namespace: "hardware_backed_security"
+    description: "Use internal callback to gather SecurityMonitor logs."
+    bug: "389732143"
+    metadata {
+      purpose: PURPOSE_BUGFIX
+    }
+}
+
+flag {
     name: "protect_device_config_flags"
     namespace: "psap_ai"
     description: "Feature flag to limit adb shell to allowlisted flags"
diff --git a/core/java/android/service/dreams/DreamManagerInternal.java b/core/java/android/service/dreams/DreamManagerInternal.java
index e9bb28c..ad022c5 100644
--- a/core/java/android/service/dreams/DreamManagerInternal.java
+++ b/core/java/android/service/dreams/DreamManagerInternal.java
@@ -60,6 +60,12 @@
     public abstract boolean canStartDreaming(boolean isScreenOn);
 
     /**
+     * Whether or not the device is currently in the user's "when to dream" state, ex.
+     * docked & charging.
+     */
+    public abstract boolean dreamConditionActive();
+
+    /**
      * Register a {@link DreamManagerStateListener}, which will be called when there are changes to
      * dream state.
      *
diff --git a/core/java/android/service/notification/Adjustment.java b/core/java/android/service/notification/Adjustment.java
index 1f1427d..505db30 100644
--- a/core/java/android/service/notification/Adjustment.java
+++ b/core/java/android/service/notification/Adjustment.java
@@ -225,9 +225,9 @@
     public static final int TYPE_CONTENT_RECOMMENDATION = 4;
 
     /**
-     * Data type: String, the classification type of this notification. The OS may display
-     * notifications differently depending on the type, and may change the alerting level of the
-     * notification.
+     * Data type: String, a summarization of the text of the notification, or, if provided for
+     * a group summary, a summarization of the text of all of the notificatrions in the group.
+     * Send this key with a null value to remove an existing summarization.
      */
     @FlaggedApi(android.app.Flags.FLAG_NM_SUMMARIZATION)
     public static final String KEY_SUMMARIZATION = "key_summarization";
diff --git a/core/java/android/view/FrameMetrics.java b/core/java/android/view/FrameMetrics.java
index 58b2a67..a4fc342 100644
--- a/core/java/android/view/FrameMetrics.java
+++ b/core/java/android/view/FrameMetrics.java
@@ -259,19 +259,20 @@
         int FRAME_DEADLINE = 9;
         int FRAME_START_TIME = 10;
         int FRAME_INTERVAL = 11;
-        int SYNC_QUEUED = 12;
-        int SYNC_START = 13;
-        int ISSUE_DRAW_COMMANDS_START = 14;
-        int SWAP_BUFFERS = 15;
-        int FRAME_COMPLETED = 16;
-        int DEQUEUE_BUFFER_DURATION = 17;
-        int QUEUE_BUFFER_DURATION = 18;
-        int GPU_COMPLETED = 19;
-        int SWAP_BUFFERS_COMPLETED = 20;
-        int DISPLAY_PRESENT_TIME = 21;
-        int COMMAND_SUBMISSION_COMPLETED = 22;
+        int WORKLOAD_TARGET = 12;
+        int SYNC_QUEUED = 13;
+        int SYNC_START = 14;
+        int ISSUE_DRAW_COMMANDS_START = 15;
+        int SWAP_BUFFERS = 16;
+        int FRAME_COMPLETED = 17;
+        int DEQUEUE_BUFFER_DURATION = 18;
+        int QUEUE_BUFFER_DURATION = 19;
+        int GPU_COMPLETED = 20;
+        int SWAP_BUFFERS_COMPLETED = 21;
+        int DISPLAY_PRESENT_TIME = 22;
+        int COMMAND_SUBMISSION_COMPLETED = 23;
 
-        int FRAME_STATS_COUNT = 23; // must always be last and in sync with
+        int FRAME_STATS_COUNT = 24; // must always be last and in sync with
                                     // FrameInfoIndex::NumIndexes in libs/hwui/FrameInfo.h
     }
 
diff --git a/core/java/android/view/InputEventConsistencyVerifier.java b/core/java/android/view/InputEventConsistencyVerifier.java
index 195896d..0e78bfd 100644
--- a/core/java/android/view/InputEventConsistencyVerifier.java
+++ b/core/java/android/view/InputEventConsistencyVerifier.java
@@ -180,7 +180,7 @@
             final MotionEvent motionEvent = (MotionEvent)event;
             if (motionEvent.isTouchEvent()) {
                 onTouchEvent(motionEvent, nestingLevel);
-            } else if ((motionEvent.getSource() & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) {
+            } else if (motionEvent.isFromSource(InputDevice.SOURCE_TRACKBALL)) {
                 onTrackballEvent(motionEvent, nestingLevel);
             } else {
                 onGenericMotionEvent(motionEvent, nestingLevel);
diff --git a/core/java/android/view/InputEventReceiver.java b/core/java/android/view/InputEventReceiver.java
index 1c36eaf..9c1f134 100644
--- a/core/java/android/view/InputEventReceiver.java
+++ b/core/java/android/view/InputEventReceiver.java
@@ -290,9 +290,15 @@
     @SuppressWarnings("unused")
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     private void dispatchInputEvent(int seq, InputEvent event) {
-        Trace.traceBegin(Trace.TRACE_TAG_INPUT, "dispatchInputEvent " + getShortDescription(event));
+        if (Trace.isTagEnabled(Trace.TRACE_TAG_INPUT)) {
+            // This 'if' block is an optimization - without it, 'getShortDescription' will be
+            // called unconditionally, which is expensive.
+            Trace.traceBegin(Trace.TRACE_TAG_INPUT,
+                    "dispatchInputEvent " + getShortDescription(event));
+        }
         mSeqMap.put(event.getSequenceNumber(), seq);
         onInputEvent(event);
+        // If tracing is not enabled, `traceEnd` is a no-op (so we don't need to guard it with 'if')
         Trace.traceEnd(Trace.TRACE_TAG_INPUT);
     }
 
diff --git a/core/java/android/view/InsetsSourceConsumer.java b/core/java/android/view/InsetsSourceConsumer.java
index e8e6621..945975a 100644
--- a/core/java/android/view/InsetsSourceConsumer.java
+++ b/core/java/android/view/InsetsSourceConsumer.java
@@ -32,6 +32,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.Nullable;
+import android.graphics.Insets;
 import android.graphics.Matrix;
 import android.graphics.Point;
 import android.graphics.Rect;
@@ -168,8 +169,9 @@
             // Reset the applier to the default one which has the most lightweight implementation.
             setSurfaceParamsApplier(InsetsAnimationControlRunner.SurfaceParamsApplier.DEFAULT);
         } else {
-            if (lastControl != null && InsetsSource.getInsetSide(lastControl.getInsetsHint())
-                    != InsetsSource.getInsetSide(control.getInsetsHint())) {
+            if (lastControl != null && !Insets.NONE.equals(lastControl.getInsetsHint())
+                    && InsetsSource.getInsetSide(lastControl.getInsetsHint())
+                            != InsetsSource.getInsetSide(control.getInsetsHint())) {
                 // The source has been moved to a different side. The coordinates are stale.
                 // Canceling existing animation if there is any.
                 cancelTypes[0] |= mType;
diff --git a/core/java/android/view/RoundScrollbarRenderer.java b/core/java/android/view/RoundScrollbarRenderer.java
index 5e1eada..331e345 100644
--- a/core/java/android/view/RoundScrollbarRenderer.java
+++ b/core/java/android/view/RoundScrollbarRenderer.java
@@ -20,6 +20,7 @@
 
 import static java.lang.Math.sin;
 
+import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Paint;
@@ -40,9 +41,9 @@
 
     // The range of the scrollbar position represented as an angle in degrees.
     private static final float SCROLLBAR_ANGLE_RANGE = 28.8f;
-    private static final float MAX_SCROLLBAR_ANGLE_SWIPE = 26.3f; // 90%
-    private static final float MIN_SCROLLBAR_ANGLE_SWIPE = 3.1f; // 10%
-    private static final float THUMB_WIDTH_DP = 4f;
+    private static final float MAX_SCROLLBAR_ANGLE_SWIPE = 0.7f * SCROLLBAR_ANGLE_RANGE;
+    private static final float MIN_SCROLLBAR_ANGLE_SWIPE = 0.3f * SCROLLBAR_ANGLE_RANGE;
+    private static final float GAP_BETWEEN_TRACK_AND_THUMB_DP = 3f;
     private static final float OUTER_PADDING_DP = 2f;
     private static final int DEFAULT_THUMB_COLOR = 0xFFFFFFFF;
     private static final int DEFAULT_TRACK_COLOR = 0x4CFFFFFF;
@@ -57,14 +58,16 @@
     private final RectF mRect = new RectF();
     private final View mParent;
     private final float mInset;
+    private final float mGapBetweenThumbAndTrackPx;
+    private final boolean mUseRefactoredRoundScrollbar;
 
     private float mPreviousMaxScroll = 0;
     private float mMaxScrollDiff = 0;
     private float mPreviousCurrentScroll = 0;
     private float mCurrentScrollDiff = 0;
     private float mThumbStrokeWidthAsDegrees = 0;
+    private float mGapBetweenTrackAndThumbAsDegrees = 0;
     private boolean mDrawToLeft;
-    private boolean mUseRefactoredRoundScrollbar;
 
     public RoundScrollbarRenderer(View parent) {
         // Paints for the round scrollbar.
@@ -80,16 +83,17 @@
 
         mParent = parent;
 
+        Resources resources = parent.getContext().getResources();
         // Fetch the resource indicating the thickness of CircularDisplayMask, rounding in the same
         // way WindowManagerService.showCircularMask does. The scroll bar is inset by this amount so
         // that it doesn't get clipped.
         int maskThickness =
-                parent.getContext()
-                        .getResources()
-                        .getDimensionPixelSize(
-                                com.android.internal.R.dimen.circular_display_mask_thickness);
+                resources.getDimensionPixelSize(
+                        com.android.internal.R.dimen.circular_display_mask_thickness);
 
-        float thumbWidth = dpToPx(THUMB_WIDTH_DP);
+        float thumbWidth =
+                resources.getDimensionPixelSize(com.android.internal.R.dimen.round_scrollbar_width);
+        mGapBetweenThumbAndTrackPx = dpToPx(GAP_BETWEEN_TRACK_AND_THUMB_DP);
         mThumbPaint.setStrokeWidth(thumbWidth);
         mTrackPaint.setStrokeWidth(thumbWidth);
         mInset = thumbWidth / 2 + maskThickness;
@@ -175,7 +179,6 @@
         }
     }
 
-    /** Returns true if horizontal bounds are updated */
     private void updateBounds(Rect bounds) {
         mRect.set(
                 bounds.left + mInset,
@@ -184,6 +187,8 @@
                 bounds.bottom - mInset);
         mThumbStrokeWidthAsDegrees =
                 getVertexAngle((mRect.right - mRect.left) / 2f, mThumbPaint.getStrokeWidth() / 2f);
+        mGapBetweenTrackAndThumbAsDegrees =
+                getVertexAngle((mRect.right - mRect.left) / 2f, mGapBetweenThumbAndTrackPx);
     }
 
     private float computeSweepAngle(float scrollExtent, float maxScroll) {
@@ -262,20 +267,22 @@
                 // The highest point of the top track on a vertical scale. Here the thumb width is
                 // reduced to account for the arc formed by ROUND stroke style
                 -SCROLLBAR_ANGLE_RANGE / 2f - mThumbStrokeWidthAsDegrees,
-                // The lowest point of the top track on a vertical scale. Here the thumb width is
-                // reduced twice to (a) account for the arc formed by ROUND stroke style (b) gap
-                // between thumb and top track
-                thumbStartAngle - mThumbStrokeWidthAsDegrees * 2,
+                // The lowest point of the top track on a vertical scale. It's reduced by
+                // (a) angular distance for the arc formed by ROUND stroke style
+                // (b) gap between thumb and top track
+                thumbStartAngle - mThumbStrokeWidthAsDegrees - mGapBetweenTrackAndThumbAsDegrees,
                 alpha);
         // Draws the thumb
         drawArc(canvas, thumbStartAngle, thumbSweepAngle, mThumbPaint);
         // Draws the bottom arc
         drawTrack(
                 canvas,
-                // The highest point of the bottom track on a vertical scale. Here the thumb width
-                // is added twice to (a) account for the arc formed by ROUND stroke style (b) gap
-                // between thumb and bottom track
-                (thumbStartAngle + thumbSweepAngle) + mThumbStrokeWidthAsDegrees * 2,
+                // The highest point of the bottom track on a vertical scale. Following added to it
+                // (a) angular distance for the arc formed by ROUND stroke style
+                // (b) gap between thumb and top track
+                (thumbStartAngle + thumbSweepAngle)
+                        + mThumbStrokeWidthAsDegrees
+                        + mGapBetweenTrackAndThumbAsDegrees,
                 // The lowest point of the top track on a vertical scale. Here the thumb width is
                 // added to account for the arc formed by ROUND stroke style
                 SCROLLBAR_ANGLE_RANGE / 2f + mThumbStrokeWidthAsDegrees,
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index e361ac7..0903d22 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -162,8 +162,6 @@
             float cornerRadius);
     private static native void nativeSetClientDrawnCornerRadius(long transactionObj,
             long nativeObject, float clientDrawnCornerRadius);
-    private static native void nativeSetClientDrawnShadows(long transactionObj,
-            long nativeObject, float clientDrawnShadows);
     private static native void nativeSetBackgroundBlurRadius(long transactionObj, long nativeObject,
             int blurRadius);
     private static native void nativeSetLayerStack(long transactionObj, long nativeObject,
@@ -3695,35 +3693,6 @@
         }
 
         /**
-         * Disables shadows of a {@link SurfaceControl}. When the radius set by
-         * {@link Transaction#setClientDrawnShadows(SurfaceControl, float)} is equal to
-         * clientDrawnShadowRadius the shadows drawn by SurfaceFlinger is disabled.
-         *
-         * @param sc SurfaceControl
-         * @param clientDrawnShadowRadius Shadow radius drawn by the client
-         * @return Itself.
-         * @hide
-         */
-        @NonNull
-        public Transaction setClientDrawnShadows(@NonNull SurfaceControl sc,
-                                                        float clientDrawnShadowRadius) {
-            checkPreconditions(sc);
-            if (SurfaceControlRegistry.sCallStackDebuggingEnabled) {
-                SurfaceControlRegistry.getProcessInstance().checkCallStackDebugging(
-                        "setClientDrawnShadows", this, sc,
-                        "clientDrawnShadowRadius=" + clientDrawnShadowRadius);
-            }
-            if (Flags.ignoreCornerRadiusAndShadows()) {
-                nativeSetClientDrawnShadows(mNativeObject, sc.mNativeObject,
-                                                        clientDrawnShadowRadius);
-            } else {
-                Log.w(TAG, "setClientDrawnShadows was called but"
-                            + "ignore_corner_radius_and_shadows flag is disabled");
-            }
-            return this;
-        }
-
-        /**
          * Sets the background blur radius of the {@link SurfaceControl}.
          *
          * @param sc SurfaceControl.
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 949b667..7e0818a 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -2836,7 +2836,9 @@
                             } else {
                                 predecessor.next = next;
                             }
-                            target.recycle();
+                            if (!target.isRecycled()) {
+                                target.recycle();
+                            }
                             target = next;
                             continue;
                         }
@@ -9050,6 +9052,10 @@
             return target;
         }
 
+        public boolean isRecycled() {
+            return child == null;
+        }
+
         public void recycle() {
             if (child == null) {
                 throw new IllegalStateException("already recycled once");
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 900f22d..80b4f2c 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -133,6 +133,7 @@
 import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
 import static com.android.text.flags.Flags.disableHandwritingInitiatorForIme;
 import static com.android.window.flags.Flags.enableBufferTransformHintFromDisplay;
+import static com.android.window.flags.Flags.enableWindowContextResourcesUpdateOnConfigChange;
 import static com.android.window.flags.Flags.predictiveBackSwipeEdgeNoneApi;
 import static com.android.window.flags.Flags.setScPropertiesInClient;
 
@@ -272,6 +273,8 @@
 import android.window.ScreenCapture;
 import android.window.SurfaceSyncGroup;
 import android.window.WindowOnBackInvokedDispatcher;
+import android.window.WindowTokenClient;
+import android.window.WindowTokenClientController;
 
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
@@ -6609,7 +6612,19 @@
             mActivityConfigCallback.onConfigurationChanged(overrideConfig, newDisplayId,
                     activityWindowInfo);
         } else {
-            // There is no activity callback - update the configuration right away.
+            if (enableWindowContextResourcesUpdateOnConfigChange()) {
+                // There is no activity callback - update resources for window token, if needed.
+                final IBinder windowContextToken = mContext.getWindowContextToken();
+                if (windowContextToken instanceof WindowTokenClient) {
+                    WindowTokenClientController.getInstance().onWindowConfigurationChanged(
+                            windowContextToken,
+                            mLastReportedMergedConfiguration.getMergedConfiguration(),
+                            newDisplayId == INVALID_DISPLAY
+                                    ? mDisplay.getDisplayId()
+                                    : newDisplayId
+                    );
+                }
+            }
             updateConfiguration(newDisplayId);
         }
         mForceNextConfigUpdate = false;
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 101d5c9..db699d7 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -625,6 +625,12 @@
     int TRANSIT_FLAG_PHYSICAL_DISPLAY_SWITCH = (1 << 14); // 0x4000
 
     /**
+     * Transition flag: Indicates that aod is showing hidden by entering doze
+     * @hide
+     */
+    int TRANSIT_FLAG_AOD_APPEARING = (1 << 15); // 0x8000
+
+    /**
      * @hide
      */
     @IntDef(flag = true, prefix = { "TRANSIT_FLAG_" }, value = {
@@ -643,6 +649,7 @@
             TRANSIT_FLAG_KEYGUARD_OCCLUDING,
             TRANSIT_FLAG_KEYGUARD_UNOCCLUDING,
             TRANSIT_FLAG_PHYSICAL_DISPLAY_SWITCH,
+            TRANSIT_FLAG_AOD_APPEARING,
     })
     @Retention(RetentionPolicy.SOURCE)
     @interface TransitionFlags {}
@@ -659,7 +666,8 @@
             (TRANSIT_FLAG_KEYGUARD_GOING_AWAY
             | TRANSIT_FLAG_KEYGUARD_APPEARING
             | TRANSIT_FLAG_KEYGUARD_OCCLUDING
-            | TRANSIT_FLAG_KEYGUARD_UNOCCLUDING);
+            | TRANSIT_FLAG_KEYGUARD_UNOCCLUDING
+            | TRANSIT_FLAG_AOD_APPEARING);
 
     /**
      * Remove content mode: Indicates remove content mode is currently not defined.
@@ -1523,15 +1531,6 @@
      */
     @TestApi
     static boolean hasWindowExtensionsEnabled() {
-        if (!Flags.enableWmExtensionsForAllFlag() && ACTIVITY_EMBEDDING_GUARD_WITH_ANDROID_15) {
-            // Since enableWmExtensionsForAllFlag, HAS_WINDOW_EXTENSIONS_ON_DEVICE is now true
-            // on all devices by default as a build file property.
-            // Until finishing flag ramp up, only return true when
-            // ACTIVITY_EMBEDDING_GUARD_WITH_ANDROID_15 is false, which is set per device by
-            // OEMs.
-            return false;
-        }
-
         if (!HAS_WINDOW_EXTENSIONS_ON_DEVICE) {
             return false;
         }
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index 8a10979..578b7b6 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -541,6 +541,22 @@
             "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
 
     /**
+     * Argument for specifying the extended selection.
+     *
+     * <p><strong>Type:</strong> {@link AccessibilityNodeInfo.Selection}<br>
+     * <strong>Actions:</strong>
+     *
+     * <ul>
+     *   <li>{@link AccessibilityAction#ACTION_SET_EXTENDED_SELECTION}
+     * </ul>
+     *
+     * @see AccessibilityAction#ACTION_SET_EXTENDED_SELECTION
+     */
+    @FlaggedApi(Flags.FLAG_A11Y_SELECTION_API)
+    public static final String ACTION_ARGUMENT_SELECTION_PARCELABLE =
+            "android.view.accessibility.action.ARGUMENT_SELECTION_PARCELABLE";
+
+    /**
      * Argument for whether when moving at granularity to extend the selection
      * or to move it otherwise.
      * <p>
@@ -1146,6 +1162,8 @@
 
     private int mConnectionId = UNDEFINED_CONNECTION_ID;
 
+    private Selection mSelection;
+
     private RangeInfo mRangeInfo;
     private CollectionInfo mCollectionInfo;
     private CollectionItemInfo mCollectionItemInfo;
@@ -2660,6 +2678,56 @@
     }
 
     /**
+     * Sets the extended selection, which is a representation of selection that spans multiple nodes
+     * that exist within the subtree of the node defining selection.
+     *
+     * <p><b>Note:</b> The start and end {@link SelectionPosition} of the provided {@link Selection}
+     * should be constructed with {@code this} node or a descendant of it.
+     *
+     * <p><b>Note:</b> {@link AccessibilityNodeInfo#setFocusable} and {@link
+     * AccessibilityNodeInfo#setFocused} should both be called with {@code true} before setting the
+     * selection in order to make {@code this} node a candidate to contain a selection.
+     *
+     * <p><b>Note:</b> Cannot be called from an AccessibilityService. This class is made immutable
+     * before being delivered to an AccessibilityService.
+     *
+     * @param selection The extended selection within the node's subtree, or {@code null} if no
+     *     selection exists.
+     * @see AccessibilityNodeInfo.AccessibilityAction#ACTION_SET_EXTENDED_SELECTION
+     * @throws IllegalStateException If called from an AccessibilityService
+     */
+    @FlaggedApi(Flags.FLAG_A11Y_SELECTION_API)
+    public void setSelection(@Nullable Selection selection) {
+        enforceNotSealed();
+        mSelection = selection;
+    }
+
+    /**
+     * Gets the extended selection, which is a representation of selection that spans multiple nodes
+     * that exist within the subtree of the node defining selection.
+     *
+     * <p><b>Note:</b> The start and end {@link SelectionPosition} of the provided {@link Selection}
+     * should be constructed with {@code this} node or a descendant of it.
+     *
+     * <p><b>Note:</b> In order for a node to be a candidate to contain a selection, {@link
+     * AccessibilityNodeInfo#isFocusable()} ()} and {@link AccessibilityNodeInfo#isFocused()} should
+     * both be return with {@code true}.
+     *
+     * @return The extended selection within the node's subtree, or {@code null} if no selection
+     *     exists.
+     */
+    @FlaggedApi(Flags.FLAG_A11Y_SELECTION_API)
+    public @Nullable Selection getSelection() {
+        if (mSelection != null) {
+            mSelection.getStart().setWindowId(mWindowId);
+            mSelection.getStart().setConnectionId(mConnectionId);
+            mSelection.getEnd().setWindowId(mWindowId);
+            mSelection.getEnd().setConnectionId(mConnectionId);
+        }
+        return mSelection;
+    }
+
+    /**
      * Gets whether this node is visible to the user.
      * <p>
      * Between {@link Build.VERSION_CODES#JELLY_BEAN API 16} and
@@ -4168,6 +4236,15 @@
      *         there is no text selection and no cursor.
      */
     public int getTextSelectionStart() {
+        if (Flags.a11ySelectionApi()) {
+            Selection current = getSelection();
+            if ((current != null)
+                    && current.getStart().usesNode(this)
+                    && current.getEnd().usesNode(this)) {
+                return current.getStart().getOffset();
+            }
+            return UNDEFINED_SELECTION_INDEX;
+        }
         return mTextSelectionStart;
     }
 
@@ -4183,6 +4260,15 @@
      *         there is no text selection and no cursor.
      */
     public int getTextSelectionEnd() {
+        if (Flags.a11ySelectionApi()) {
+            Selection current = getSelection();
+            if ((current != null)
+                    && current.getStart().usesNode(this)
+                    && current.getEnd().usesNode(this)) {
+                return current.getEnd().getOffset();
+            }
+            return UNDEFINED_SELECTION_INDEX;
+        }
         return mTextSelectionEnd;
     }
 
@@ -4201,6 +4287,13 @@
      */
     public void setTextSelection(int start, int end) {
         enforceNotSealed();
+        if (Flags.a11ySelectionApi()) {
+            Selection selection =
+                    new Selection(
+                            new SelectionPosition(this, start), new SelectionPosition(this, end));
+            setSelection(selection);
+            return;
+        }
         mTextSelectionStart = start;
         mTextSelectionEnd = end;
     }
@@ -4875,6 +4968,10 @@
             nonDefaultFields |= bitAt(fieldIndex);
         }
         fieldIndex++;
+        if (!Objects.equals(mSelection, DEFAULT.mSelection)) {
+            nonDefaultFields |= bitAt(fieldIndex);
+        }
+        fieldIndex++;
         if (mChecked != DEFAULT.mChecked) {
             nonDefaultFields |= bitAt(fieldIndex);
         }
@@ -5055,6 +5152,9 @@
             parcel.writeLong(mLeashedParentNodeId);
         }
         if (isBitSet(nonDefaultFields, fieldIndex++)) {
+            mSelection.writeToParcel(parcel, flags);
+        }
+        if (isBitSet(nonDefaultFields, fieldIndex++)) {
             parcel.writeInt(mChecked);
         }
         if (isBitSet(nonDefaultFields, fieldIndex++)) {
@@ -5172,6 +5272,17 @@
         ExtraRenderingInfo ti = other.mExtraRenderingInfo;
         mExtraRenderingInfo = (ti == null) ? null
                 : new ExtraRenderingInfo(ti);
+
+        if (Flags.a11ySelectionApi()) {
+            if (other.getSelection() != null) {
+                SelectionPosition sps = other.getSelection().getStart();
+                SelectionPosition spe = other.getSelection().getEnd();
+                mSelection =
+                        new Selection(
+                                new SelectionPosition(sps.mSourceNodeId, sps.getOffset()),
+                                new SelectionPosition(spe.mSourceNodeId, spe.getOffset()));
+            }
+        }
     }
 
     /**
@@ -5344,6 +5455,9 @@
             mLeashedParentNodeId = parcel.readLong();
         }
         if (isBitSet(nonDefaultFields, fieldIndex++)) {
+            mSelection = Selection.CREATOR.createFromParcel(parcel);
+        }
+        if (isBitSet(nonDefaultFields, fieldIndex++)) {
             mChecked = parcel.readInt();
         }
         if (isBitSet(nonDefaultFields, fieldIndex++)) {
@@ -5495,6 +5609,9 @@
                 if (action == R.id.accessibilityActionScrollInDirection) {
                     return "ACTION_SCROLL_IN_DIRECTION";
                 }
+                if (action == R.id.accessibilityActionSetExtendedSelection) {
+                    return "ACTION_SET_EXTENDED_SELECTION";
+                }
                 return "ACTION_UNKNOWN";
             }
         }
@@ -5696,6 +5813,271 @@
     }
 
     /**
+     * A class which defines either the start or end of a selection that can span across multiple
+     * AccessibilityNodeInfo objects.
+     *
+     * @see AccessibilityNodeInfo.Selection
+     */
+    @FlaggedApi(Flags.FLAG_A11Y_SELECTION_API)
+    public static final class SelectionPosition implements Parcelable {
+
+        private final int mOffset;
+        private final long mSourceNodeId;
+        private int mConnectionId;
+        private int mWindowId;
+
+        /**
+         * Instantiates a new SelectionPosition.
+         *
+         * @param node The {@link AccessibilityNodeInfo} for the node of this selection.
+         * @param offset The offset for a {@link SelectionPosition} within {@code view}'s text
+         *     content, which should be a value between 0 and the length of {@code view}'s text.
+         */
+        public SelectionPosition(@NonNull AccessibilityNodeInfo node, int offset) {
+            this(node.mSourceNodeId, offset);
+        }
+
+        /**
+         * Instantiates a new SelectionPosition.
+         *
+         * @param view The {@link View} containing the virtual descendant associated with the
+         *     selection position.
+         * @param offset The offset for a selection position within {@code view}'s text content,
+         *     which should be a value between 0 and the length of {@code view}'s text.
+         */
+        public SelectionPosition(@NonNull View view, int offset) {
+            this(
+                    makeNodeId(
+                            view.getAccessibilityViewId(), AccessibilityNodeProvider.HOST_VIEW_ID),
+                    offset);
+        }
+
+        /**
+         * Instantiates a new {@link SelectionPosition}.
+         *
+         * @param view The view whose virtual descendant is associated with the selection position.
+         * @param virtualDescendantId The ID of the virtual descendant within {@code view}'s virtual
+         *     subtree that contains the selection position.
+         * @param offset The offset for a selection position within the virtual descendant's text
+         *     content, which should be a value between 0 and the length of the descendant's text.
+         * @see AccessibilityNodeProvider
+         */
+        public SelectionPosition(@NonNull View view, int virtualDescendantId, int offset) {
+            this(makeNodeId(view.getAccessibilityViewId(), virtualDescendantId), offset);
+        }
+
+        private SelectionPosition(long sourceNodeId, int offset) {
+            mOffset = offset;
+            mSourceNodeId = sourceNodeId;
+        }
+
+        private SelectionPosition(Parcel in) {
+            mOffset = in.readInt();
+            mSourceNodeId = in.readLong();
+        }
+
+        private void setWindowId(int windowId) {
+            mWindowId = windowId;
+        }
+
+        private void setConnectionId(int connectionId) {
+            mConnectionId = connectionId;
+        }
+
+        /**
+         * Gets the node for {@code this} {@link SelectionPosition}
+         * <br>
+         * <strong>Note:</strong> This api can only be called from {@link AccessibilityService}.
+         *
+         * @return The node associated with {@code this} {@link SelectionPosition}
+         */
+        public @Nullable AccessibilityNodeInfo getNode() {
+            return getNodeForAccessibilityId(mConnectionId, mWindowId, mSourceNodeId);
+        }
+
+        /**
+         * Gets the offset for {@code this} {@link SelectionPosition}.
+         *
+         * @return A value from 0 to the length of {@link #getNode()}'s content representing the
+         *     offset of the {@link SelectionPosition}
+         */
+        public int getOffset() {
+            return mOffset;
+        }
+
+        private boolean usesNode(@NonNull AccessibilityNodeInfo node) {
+            return this.mSourceNodeId == node.mSourceNodeId
+                    && this.mConnectionId == node.mConnectionId
+                    && this.mWindowId == node.mWindowId;
+        }
+
+        @Override
+        public boolean equals(Object other) {
+            if (other == null) {
+                return false;
+            }
+
+            if (other == this) {
+                return true;
+            }
+
+            if (getClass() != other.getClass()) {
+                return false;
+            }
+
+            SelectionPosition rhs = (SelectionPosition) other;
+            if (getOffset() != rhs.getOffset()) {
+                return false;
+            }
+
+            return mSourceNodeId == rhs.mSourceNodeId;
+        }
+
+        @Override
+        public int hashCode() {
+            final long prime = 877;
+            long result = 1;
+
+            if (mOffset != 0) {
+                result *= mOffset;
+            }
+
+            if (mSourceNodeId != UNDEFINED_NODE_ID) {
+                result *= mSourceNodeId;
+            }
+
+            return Long.hashCode(result * prime);
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void writeToParcel(@NonNull Parcel dest, int flags) {
+            dest.writeInt(mOffset);
+            dest.writeLong(mSourceNodeId);
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        /**
+         * @see android.os.Parcelable.Creator
+         */
+        @NonNull
+        public static final Creator<SelectionPosition> CREATOR =
+                new Creator<SelectionPosition>() {
+                    @Override
+                    public SelectionPosition createFromParcel(Parcel in) {
+                        return new SelectionPosition(in);
+                    }
+
+                    @Override
+                    public SelectionPosition[] newArray(int size) {
+                        return new SelectionPosition[size];
+                    }
+                };
+    }
+
+    /**
+     * Represents a selection of content that may extend across more than one {@link
+     * AccessibilityNodeInfo} instance.
+     *
+     * @see AccessibilityNodeInfo.SelectionPosition
+     */
+    @FlaggedApi(Flags.FLAG_A11Y_SELECTION_API)
+    public static final class Selection implements Parcelable {
+
+        private final SelectionPosition mStart;
+        private final SelectionPosition mEnd;
+
+        /**
+         * Instantiates a new Selection.
+         *
+         * @param start The start of the extended selection.
+         * @param end The end of the extended selection.
+         */
+        public Selection(@NonNull SelectionPosition start, @NonNull SelectionPosition end) {
+            this.mStart = start;
+            this.mEnd = end;
+        }
+
+        private Selection(Parcel in) {
+            mStart = SelectionPosition.CREATOR.createFromParcel(in);
+            mEnd = SelectionPosition.CREATOR.createFromParcel(in);
+        }
+
+        /**
+         * @return The start of the extended selection.
+         */
+        public @NonNull SelectionPosition getStart() {
+            return mStart;
+        }
+
+        /**
+         * @return The end of the extended selection.
+         */
+        public @NonNull SelectionPosition getEnd() {
+            return mEnd;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (obj == null) {
+                return false;
+            }
+
+            if (obj == this) {
+                return true;
+            }
+
+            if (getClass() != obj.getClass()) {
+                return false;
+            }
+
+            Selection rhs = (Selection) obj;
+            return getStart().equals(rhs.getStart()) && getEnd().equals(rhs.getEnd());
+        }
+
+        @Override
+        public int hashCode() {
+            final int prime = 17;
+            return prime * getStart().hashCode() * getEnd().hashCode();
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void writeToParcel(@NonNull Parcel dest, int flags) {
+            mStart.writeToParcel(dest, flags);
+            mEnd.writeToParcel(dest, flags);
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        /**
+         * @see android.os.Parcelable.Creator
+         */
+        @NonNull
+        public static final Creator<Selection> CREATOR =
+                new Creator<Selection>() {
+                    @Override
+                    public Selection createFromParcel(Parcel in) {
+                        return new Selection(in);
+                    }
+
+                    @Override
+                    public Selection[] newArray(int size) {
+                        return new Selection[size];
+                    }
+                };
+    }
+
+    /**
      * A class defining an action that can be performed on an {@link AccessibilityNodeInfo}.
      * Each action has a unique id that is mandatory and optional data.
      * <p>
@@ -6419,6 +6801,29 @@
         @NonNull public static final AccessibilityAction ACTION_SHOW_TEXT_SUGGESTIONS =
                 new AccessibilityAction(R.id.accessibilityActionShowTextSuggestions);
 
+        /**
+         * Action to set the extended selection. Performing this action with no arguments clears the
+         * selection.
+         *
+         * <p><strong>Arguments:</strong> {@link
+         * AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_PARCELABLE
+         * AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_PARCELABLE}<br>
+         * <strong>Example:</strong> <code><pre><p>
+         *  Bundle arguments = new Bundle();
+         *  Selection selection = new Selection(null, null);
+         *  arguments.setParcelable(
+         *          AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_PARCELABLE, selection);
+         *  info.performAction(
+         *          AccessibilityAction.ACTION_SET_EXTENDED_SELECTION.getId(), arguments);
+         * </pre></code>
+         *
+         * @see AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_PARCELABLE
+         */
+        @FlaggedApi(Flags.FLAG_A11Y_SELECTION_API)
+        @NonNull
+        public static final AccessibilityAction ACTION_SET_EXTENDED_SELECTION =
+                new AccessibilityAction(R.id.accessibilityActionSetExtendedSelection);
+
         private final int mActionId;
         private final CharSequence mLabel;
 
diff --git a/core/java/android/view/accessibility/OWNERS b/core/java/android/view/accessibility/OWNERS
index f62b33f..799ef00 100644
--- a/core/java/android/view/accessibility/OWNERS
+++ b/core/java/android/view/accessibility/OWNERS
@@ -1,4 +1,7 @@
-# Bug component: 44215
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 44215.
 
 # Android Accessibility Framework owners
 include /services/accessibility/OWNERS
diff --git a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
index 37f393e..49a11ca 100644
--- a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
+++ b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
@@ -28,6 +28,14 @@
 }
 
 flag {
+    name: "a11y_is_visited_api"
+    namespace: "accessibility"
+    description: "Adds an API to indicate whether a URL has been visited or not."
+    bug: "391469786"
+    is_exported: true
+}
+
+flag {
     name: "a11y_overlay_callbacks"
     is_exported: true
     namespace: "accessibility"
diff --git a/core/java/android/view/contentcapture/MainContentCaptureSession.java b/core/java/android/view/contentcapture/MainContentCaptureSession.java
index 2fb78c0..b66020b 100644
--- a/core/java/android/view/contentcapture/MainContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/MainContentCaptureSession.java
@@ -57,6 +57,7 @@
 import android.view.ViewStructure;
 import android.view.autofill.AutofillId;
 import android.view.contentcapture.ViewNode.ViewStructureImpl;
+import android.view.contentcapture.flags.Flags;
 import android.view.contentprotection.ContentProtectionEventProcessor;
 import android.view.inputmethod.BaseInputConnection;
 
@@ -1008,6 +1009,9 @@
                     }
                 }
                 internalNotifyViewTreeEvent(sessionId, /* started= */ false);
+                if (Flags.flushAfterEachFrame()) {
+                    internalNotifySessionFlushEvent(sessionId);
+                }
             }
         } finally {
             Trace.traceEnd(Trace.TRACE_TAG_VIEW);
diff --git a/core/java/android/view/contentcapture/flags/content_capture_flags.aconfig b/core/java/android/view/contentcapture/flags/content_capture_flags.aconfig
index e7bc004..8c98fa4 100644
--- a/core/java/android/view/contentcapture/flags/content_capture_flags.aconfig
+++ b/core/java/android/view/contentcapture/flags/content_capture_flags.aconfig
@@ -15,3 +15,14 @@
     bug: "380381249"
     is_exported: true
 }
+
+flag {
+    name: "flush_after_each_frame"
+    namespace: "pixel_state_server"
+    description: "Feature flag to send a flush event after each frame"
+    bug: "380381249"
+    is_fixed_read_only: true
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 0fb8042..56f0415 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -3778,8 +3778,32 @@
             ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_CLIENT_VIEW_SERVED);
 
             if (Flags.refactorInsetsController()) {
-                mCurRootView.getInsetsController().hide(WindowInsets.Type.ime(),
-                        false /* fromIme */, statsToken);
+                synchronized (mH) {
+                    Handler vh = rootView.getHandler();
+                    if (vh == null) {
+                        // If the view doesn't have a handler, something has changed out from
+                        // under us.
+                        ImeTracker.forLogging().onFailed(statsToken,
+                                ImeTracker.PHASE_CLIENT_VIEW_HANDLER_AVAILABLE);
+                        return;
+                    }
+                    ImeTracker.forLogging().onProgress(statsToken,
+                        ImeTracker.PHASE_CLIENT_VIEW_HANDLER_AVAILABLE);
+
+                    if (vh.getLooper() != Looper.myLooper()) {
+                        // The view is running on a different thread than our own, so
+                        // we need to reschedule our work for over there.
+                        if (DEBUG) {
+                            Log.v(TAG, "Close current input: reschedule hide to view thread");
+                        }
+                        final var viewRootImpl = mCurRootView;
+                        vh.post(() -> viewRootImpl.getInsetsController().hide(
+                                WindowInsets.Type.ime(), false /* fromIme */, statsToken));
+                    } else {
+                        mCurRootView.getInsetsController().hide(WindowInsets.Type.ime(),
+                                false /* fromIme */, statsToken);
+                    }
+                }
             } else {
                 IInputMethodManagerGlobalInvoker.hideSoftInput(
                         mClient,
diff --git a/core/java/android/widget/Button.java b/core/java/android/widget/Button.java
index eb3b768..2864aaa 100644
--- a/core/java/android/widget/Button.java
+++ b/core/java/android/widget/Button.java
@@ -223,7 +223,7 @@
 
     private static int getButtonDefaultStyleRes() {
         if (sUseWearMaterial3Style != null && sUseWearMaterial3Style) {
-            return com.android.internal.R.style.Widget_DeviceDefault_Button_WearMaterial3;
+            return com.android.internal.R.style.Widget_Material3_Button;
         }
         return 0;
     }
diff --git a/core/java/android/window/ConfigurationDispatcher.java b/core/java/android/window/ConfigurationDispatcher.java
new file mode 100644
index 0000000..b8f0da1
--- /dev/null
+++ b/core/java/android/window/ConfigurationDispatcher.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.window;
+
+import android.annotation.NonNull;
+import android.content.ComponentCallbacks;
+import android.content.res.Configuration;
+
+/**
+ * Indicates a {@link android.content.Context} could propagate the
+ * {@link android.content.res.Configuration} from the server side and users may listen to the
+ * updates through {@link android.content.Context#registerComponentCallbacks(ComponentCallbacks)}.
+ *
+ * @hide
+ */
+public interface ConfigurationDispatcher {
+
+    /**
+     * Called when there's configuration update from the server side.
+     */
+    void dispatchConfigurationChanged(@NonNull Configuration configuration);
+
+    /**
+     * Indicates that if this dispatcher should report the change even if it's not
+     * {@link Configuration#diffPublicOnly}.
+     */
+    default boolean shouldReportPrivateChanges() {
+        return false;
+    }
+}
diff --git a/core/java/android/window/DesktopModeFlags.java b/core/java/android/window/DesktopModeFlags.java
index 7852460..d43469f 100644
--- a/core/java/android/window/DesktopModeFlags.java
+++ b/core/java/android/window/DesktopModeFlags.java
@@ -55,7 +55,10 @@
             Flags::enableDesktopAppLaunchAlttabTransitionsBugfix, true),
     ENABLE_DESKTOP_APP_LAUNCH_TRANSITIONS_BUGFIX(Flags::enableDesktopAppLaunchTransitionsBugfix,
             true),
+    ENABLE_DESKTOP_CLOSE_SHORTCUT_BUGFIX(Flags::enableDesktopCloseShortcutBugfix, false),
     ENABLE_DESKTOP_COMPAT_UI_VISIBILITY_STATUS(Flags::enableCompatUiVisibilityStatus, true),
+    ENABLE_DESKTOP_INDICATOR_IN_SEPARATE_THREAD_BUGFIX(
+            Flags::enableDesktopIndicatorInSeparateThreadBugfix, false),
     ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX(
             Flags::enableDesktopRecentsTransitionsCornersBugfix, false),
     ENABLE_DESKTOP_SKIP_COMPAT_UI_EDUCATION_IN_DESKTOP_MODE_BUGFIX(
diff --git a/core/java/android/window/TaskFragmentCreationParams.java b/core/java/android/window/TaskFragmentCreationParams.java
index 89327fe..bc5ad50 100644
--- a/core/java/android/window/TaskFragmentCreationParams.java
+++ b/core/java/android/window/TaskFragmentCreationParams.java
@@ -24,6 +24,7 @@
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.TestApi;
+import android.content.pm.ActivityInfo;
 import android.content.pm.ActivityInfo.ScreenOrientation;
 import android.graphics.Rect;
 import android.os.IBinder;
@@ -112,12 +113,21 @@
      */
     private final @ScreenOrientation int mOverrideOrientation;
 
+    /**
+     * {@link android.content.pm.ActivityInfo.Config} mask that specifies which
+     * configuration changes should trigger TaskFragment info change callbacks.
+     *
+     * @see android.content.pm.ActivityInfo.Config
+     */
+    private final @ActivityInfo.Config int mConfigurationChangeMask;
+
     private TaskFragmentCreationParams(
             @NonNull TaskFragmentOrganizerToken organizer, @NonNull IBinder fragmentToken,
             @NonNull IBinder ownerToken, @NonNull Rect initialRelativeBounds,
             @WindowingMode int windowingMode, @Nullable IBinder pairedPrimaryFragmentToken,
             @Nullable IBinder pairedActivityToken, boolean allowTransitionWhenEmpty,
-            @ScreenOrientation int overrideOrientation) {
+            @ScreenOrientation int overrideOrientation,
+            @ActivityInfo.Config int configurationChangeMask) {
         if (pairedPrimaryFragmentToken != null && pairedActivityToken != null) {
             throw new IllegalArgumentException("pairedPrimaryFragmentToken and"
                     + " pairedActivityToken should not be set at the same time.");
@@ -131,6 +141,7 @@
         mPairedActivityToken = pairedActivityToken;
         mAllowTransitionWhenEmpty = allowTransitionWhenEmpty;
         mOverrideOrientation = overrideOrientation;
+        mConfigurationChangeMask = configurationChangeMask;
     }
 
     @NonNull
@@ -186,6 +197,11 @@
         return mOverrideOrientation;
     }
 
+    /** @hide */
+    public @ActivityInfo.Config int getConfigurationChangeMask() {
+        return mConfigurationChangeMask;
+    }
+
     private TaskFragmentCreationParams(Parcel in) {
         mOrganizer = TaskFragmentOrganizerToken.CREATOR.createFromParcel(in);
         mFragmentToken = in.readStrongBinder();
@@ -196,6 +212,7 @@
         mPairedActivityToken = in.readStrongBinder();
         mAllowTransitionWhenEmpty = in.readBoolean();
         mOverrideOrientation = in.readInt();
+        mConfigurationChangeMask = in.readInt();
     }
 
     /** @hide */
@@ -210,6 +227,7 @@
         dest.writeStrongBinder(mPairedActivityToken);
         dest.writeBoolean(mAllowTransitionWhenEmpty);
         dest.writeInt(mOverrideOrientation);
+        dest.writeInt(mConfigurationChangeMask);
     }
 
     @NonNull
@@ -238,6 +256,7 @@
                 + " pairedActivityToken=" + mPairedActivityToken
                 + " allowTransitionWhenEmpty=" + mAllowTransitionWhenEmpty
                 + " overrideOrientation=" + mOverrideOrientation
+                + " configurationChangeMask=" + mConfigurationChangeMask
                 + "}";
     }
 
@@ -275,6 +294,8 @@
 
         private @ScreenOrientation int mOverrideOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
 
+        private @ActivityInfo.Config int mConfigurationChangeMask = 0;
+
         public Builder(@NonNull TaskFragmentOrganizerToken organizer,
                 @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) {
             mOrganizer = organizer;
@@ -369,12 +390,30 @@
             return this;
         }
 
+        /**
+         * Sets {@link android.content.pm.ActivityInfo.Config} mask that specifies which
+         * configuration changes should trigger TaskFragment info change callbacks.
+         *
+         * Only system organizers are allowed to configure this value. This value is ignored for
+         * non-system organizers.
+         *
+         * @see android.content.pm.ActivityInfo.Config
+         * @hide
+         */
+        @NonNull
+        public Builder setConfigurationChangeMask(
+                @ActivityInfo.Config int configurationChangeMask) {
+            mConfigurationChangeMask = configurationChangeMask;
+            return this;
+        }
+
         /** Constructs the options to create TaskFragment with. */
         @NonNull
         public TaskFragmentCreationParams build() {
             return new TaskFragmentCreationParams(mOrganizer, mFragmentToken, mOwnerToken,
                     mInitialRelativeBounds, mWindowingMode, mPairedPrimaryFragmentToken,
-                    mPairedActivityToken, mAllowTransitionWhenEmpty, mOverrideOrientation);
+                    mPairedActivityToken, mAllowTransitionWhenEmpty, mOverrideOrientation,
+                    mConfigurationChangeMask);
         }
     }
 }
diff --git a/core/java/android/window/TransitionInfo.java b/core/java/android/window/TransitionInfo.java
index ddbf9e4..cf21e50 100644
--- a/core/java/android/window/TransitionInfo.java
+++ b/core/java/android/window/TransitionInfo.java
@@ -29,6 +29,7 @@
 import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_UNSPECIFIED;
 import static android.view.WindowManager.TRANSIT_CHANGE;
 import static android.view.WindowManager.TRANSIT_CLOSE;
+import static android.view.WindowManager.TRANSIT_FLAG_AOD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY;
 import static android.view.WindowManager.TRANSIT_NONE;
@@ -405,7 +406,8 @@
      */
     public boolean hasChangesOrSideEffects() {
         return !mChanges.isEmpty() || isKeyguardGoingAway()
-                || (mFlags & TRANSIT_FLAG_KEYGUARD_APPEARING) != 0;
+                || (mFlags & TRANSIT_FLAG_KEYGUARD_APPEARING) != 0
+                || (mFlags & TRANSIT_FLAG_AOD_APPEARING) != 0;
     }
 
     /**
@@ -1289,12 +1291,13 @@
             return options;
         }
 
-        /** Make options for a scale-up animation. */
+        /** Make options for a scale-up animation with task override option */
         @NonNull
         public static AnimationOptions makeScaleUpAnimOptions(int startX, int startY, int width,
-                int height) {
+                int height, boolean overrideTaskTransition) {
             AnimationOptions options = new AnimationOptions(ANIM_SCALE_UP);
             options.mTransitionBounds.set(startX, startY, startX + width, startY + height);
+            options.mOverrideTaskTransition = overrideTaskTransition;
             return options;
         }
 
diff --git a/core/java/android/window/WindowContext.java b/core/java/android/window/WindowContext.java
index 84a8b8f..778ccaf 100644
--- a/core/java/android/window/WindowContext.java
+++ b/core/java/android/window/WindowContext.java
@@ -17,8 +17,6 @@
 
 import static android.view.WindowManagerImpl.createWindowContextWindowManager;
 
-import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
-
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UiContext;
@@ -46,7 +44,8 @@
  * @hide
  */
 @UiContext
-public class WindowContext extends ContextWrapper implements WindowProvider {
+public class WindowContext extends ContextWrapper implements WindowProvider,
+        ConfigurationDispatcher {
     private final WindowManager mWindowManager;
     @WindowManager.LayoutParams.WindowType
     private final int mType;
@@ -155,7 +154,7 @@
     }
 
     /** Dispatch {@link Configuration} to each {@link ComponentCallbacks}. */
-    @VisibleForTesting(visibility = PACKAGE)
+    @Override
     public void dispatchConfigurationChanged(@NonNull Configuration newConfig) {
         mCallbacksController.dispatchConfigurationChanged(newConfig);
     }
@@ -170,4 +169,10 @@
     public Bundle getWindowContextOptions() {
         return mOptions;
     }
+
+    @Override
+    public boolean shouldReportPrivateChanges() {
+        // Always dispatch config changes to WindowContext.
+        return true;
+    }
 }
diff --git a/core/java/android/window/WindowContextController.java b/core/java/android/window/WindowContextController.java
index 1e2f454..d31e43f 100644
--- a/core/java/android/window/WindowContextController.java
+++ b/core/java/android/window/WindowContextController.java
@@ -86,7 +86,6 @@
      * @param token The token used to attach to a window manager node. It is usually from
      *              {@link Context#getWindowContextToken()}.
      */
-    @VisibleForTesting
     public WindowContextController(@NonNull WindowTokenClient token) {
         mToken = token;
     }
diff --git a/core/java/android/window/WindowProviderService.java b/core/java/android/window/WindowProviderService.java
index c81c9ec..8468867 100644
--- a/core/java/android/window/WindowProviderService.java
+++ b/core/java/android/window/WindowProviderService.java
@@ -49,9 +49,11 @@
  *
  * @hide
  */
+@SuppressWarnings("HiddenSuperclass")
 @TestApi
 @UiContext
-public abstract class WindowProviderService extends Service implements WindowProvider {
+public abstract class WindowProviderService extends Service implements WindowProvider,
+        ConfigurationDispatcher {
 
     private static final String TAG = WindowProviderService.class.getSimpleName();
 
@@ -240,4 +242,14 @@
         mController.detachIfNeeded();
         mCallbacksController.clearCallbacks();
     }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @hide
+     */
+    @Override
+    public void dispatchConfigurationChanged(@NonNull Configuration configuration) {
+        onConfigurationChanged(configuration);
+    }
 }
diff --git a/core/java/android/window/WindowTokenClient.java b/core/java/android/window/WindowTokenClient.java
index a551fe7..9b296c8 100644
--- a/core/java/android/window/WindowTokenClient.java
+++ b/core/java/android/window/WindowTokenClient.java
@@ -106,8 +106,8 @@
      * @param newConfig the updated {@link Configuration}
      * @param newDisplayId the updated {@link android.view.Display} ID
      */
-    @VisibleForTesting(visibility = PACKAGE)
     @MainThread
+    @VisibleForTesting(visibility = PACKAGE)
     public void onConfigurationChanged(Configuration newConfig, int newDisplayId) {
         onConfigurationChanged(newConfig, newDisplayId, true /* shouldReportConfigChange */);
     }
@@ -121,8 +121,6 @@
                 newDisplayId, true /* shouldReportConfigChange */).recycleOnUse());
     }
 
-    // TODO(b/192048581): rewrite this method based on WindowContext and WindowProviderService
-    //  are inherited from WindowProvider.
     /**
      * Called when {@link Configuration} updates from the server side receive.
      *
@@ -169,7 +167,7 @@
         CompatibilityInfo.applyOverrideIfNeeded(newConfig);
         final boolean displayChanged;
         final boolean shouldUpdateResources;
-        final int diff;
+        final int publicDiff;
         final Configuration currentConfig;
 
         synchronized (mConfiguration) {
@@ -177,7 +175,7 @@
             shouldUpdateResources = shouldUpdateResources(this, mConfiguration,
                     newConfig, newConfig /* overrideConfig */, displayChanged,
                     null /* configChanged */);
-            diff = mConfiguration.diffPublicOnly(newConfig);
+            publicDiff = mConfiguration.diffPublicOnly(newConfig);
             currentConfig = mShouldDumpConfigForIme ? new Configuration(mConfiguration) : null;
             if (shouldUpdateResources) {
                 mConfiguration.setTo(newConfig);
@@ -200,17 +198,15 @@
             // TODO(ag/9789103): update resource manager logic to track non-activity tokens
             mResourcesManager.updateResourcesForActivity(this, newConfig, newDisplayId);
 
-            if (shouldReportConfigChange && context instanceof WindowContext) {
-                final WindowContext windowContext = (WindowContext) context;
-                windowContext.dispatchConfigurationChanged(newConfig);
+            if (shouldReportConfigChange && context instanceof ConfigurationDispatcher dispatcher) {
+                // Updating resources implies some fields of configuration are updated despite they
+                // are public or not.
+                if (dispatcher.shouldReportPrivateChanges() || publicDiff != 0) {
+                    dispatcher.dispatchConfigurationChanged(newConfig);
+                }
             }
 
-            if (shouldReportConfigChange && diff != 0
-                    && context instanceof WindowProviderService) {
-                final WindowProviderService windowProviderService = (WindowProviderService) context;
-                windowProviderService.onConfigurationChanged(newConfig);
-            }
-            freeTextLayoutCachesIfNeeded(diff);
+            freeTextLayoutCachesIfNeeded(publicDiff);
             if (mShouldDumpConfigForIme) {
                 if (!shouldReportConfigChange) {
                     Log.d(TAG, "Only apply configuration update to Resources because "
@@ -219,7 +215,7 @@
                             + ", config=" + context.getResources().getConfiguration()
                             + ", display ID=" + context.getDisplayId() + "\n"
                             + Debug.getCallers(5));
-                } else if (diff == 0) {
+                } else if (publicDiff == 0) {
                     Log.d(TAG, "Configuration not dispatch to IME because configuration has no "
                             + " public difference with updated config. "
                             + " Current config=" + context.getResources().getConfiguration()
diff --git a/core/java/android/window/WindowTokenClientController.java b/core/java/android/window/WindowTokenClientController.java
index fcd7dfb..72278d9 100644
--- a/core/java/android/window/WindowTokenClientController.java
+++ b/core/java/android/window/WindowTokenClientController.java
@@ -25,7 +25,9 @@
 import android.app.servertransaction.WindowContextInfoChangeItem;
 import android.app.servertransaction.WindowContextWindowRemovalItem;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.os.Bundle;
+import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.util.ArraySet;
@@ -50,6 +52,7 @@
     private final Object mLock = new Object();
     private final IApplicationThread mAppThread = ActivityThread.currentActivityThread()
             .getApplicationThread();
+    private final Handler mHandler = ActivityThread.currentActivityThread().getHandler();
 
     /** Attached {@link WindowTokenClient}. */
     @GuardedBy("mLock")
@@ -257,6 +260,20 @@
         }
     }
 
+    /** Propagates the configuration change to the client token. */
+    public void onWindowConfigurationChanged(@NonNull IBinder clientToken,
+            @NonNull Configuration config, int displayId) {
+        final WindowTokenClient windowTokenClient = getWindowTokenClientIfAttached(clientToken);
+        if (windowTokenClient != null) {
+            // Let's make sure it's called on the main thread!
+            if (mHandler.getLooper().isCurrentThread()) {
+                windowTokenClient.onConfigurationChanged(config, displayId);
+            } else {
+                windowTokenClient.postOnConfigurationChanged(config, displayId);
+            }
+        }
+    }
+
     @Nullable
     private WindowTokenClient getWindowTokenClientIfAttached(@NonNull IBinder clientToken) {
         if (!(clientToken instanceof WindowTokenClient windowTokenClient)) {
diff --git a/core/java/android/window/flags/lse_desktop_experience.aconfig b/core/java/android/window/flags/lse_desktop_experience.aconfig
index d413ba0..f84a483 100644
--- a/core/java/android/window/flags/lse_desktop_experience.aconfig
+++ b/core/java/android/window/flags/lse_desktop_experience.aconfig
@@ -572,6 +572,13 @@
 }
 
 flag {
+    name: "enable_display_reconnect_interaction"
+    namespace: "lse_desktop_experience"
+    description: "Enables new interaction that occurs when a display is reconnected."
+    bug: "365873835"
+}
+
+flag {
     name: "show_desktop_experience_dev_option"
     namespace: "lse_desktop_experience"
     description: "Replace the freeform windowing dev options with a desktop experience one."
@@ -670,6 +677,17 @@
 }
 
 flag {
+    name: "enable_window_context_resources_update_on_config_change"
+    namespace: "lse_desktop_experience"
+    description: "Updates window context resources before the view receives the config change callback."
+    bug: "394527409"
+    is_fixed_read_only: true
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
+
+flag {
     name: "enable_desktop_tab_tearing_minimize_animation_bugfix"
     namespace: "lse_desktop_experience"
     description: "Enabling a minimize animation when a new window is opened via tab tearing and the Desktop Windowing open windows limit is reached."
@@ -677,4 +695,24 @@
     metadata {
         purpose: PURPOSE_BUGFIX
     }
-}
\ No newline at end of file
+}
+
+flag {
+    name: "enable_desktop_close_shortcut_bugfix"
+    namespace: "lse_desktop_experience"
+    description: "Fix the window-close keyboard shortcut in Desktop Mode."
+    bug: "394599430"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
+
+flag {
+    name: "enable_desktop_indicator_in_separate_thread_bugfix"
+    namespace: "lse_desktop_experience"
+    description: "Enables running visual indicator view operations in ShellDesktopThread."
+    bug: "366413536"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/core/java/android/window/flags/window_surfaces.aconfig b/core/java/android/window/flags/window_surfaces.aconfig
index 8ff2e6a..d866b0e 100644
--- a/core/java/android/window/flags/window_surfaces.aconfig
+++ b/core/java/android/window/flags/window_surfaces.aconfig
@@ -106,3 +106,15 @@
     is_exported: true
     bug: "293949943"
 }
+
+flag {
+    namespace: "window_surfaces"
+    name: "fix_hide_overlay_api"
+    description: "Application that calls setHideOverlayWindows() shouldn't hide its own windows, this flag gate the fix of this issue."
+    is_fixed_read_only: true
+    is_exported: true
+    bug: "359424300"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig
index ac6625b..54d0eef 100644
--- a/core/java/android/window/flags/windowing_sdk.aconfig
+++ b/core/java/android/window/flags/windowing_sdk.aconfig
@@ -55,14 +55,6 @@
 
 flag {
     namespace: "windowing_sdk"
-    name: "enable_wm_extensions_for_all_flag"
-    description: "Whether to enable WM Extensions for all devices"
-    bug: "306666082"
-    is_fixed_read_only: true
-}
-
-flag {
-    namespace: "windowing_sdk"
     name: "activity_embedding_animation_customization_flag"
     description: "Whether the animation customization feature for AE is enabled"
     bug: "293658614"
diff --git a/core/java/com/android/internal/accessibility/OWNERS b/core/java/com/android/internal/accessibility/OWNERS
index 1265dfa..dac64f4 100644
--- a/core/java/com/android/internal/accessibility/OWNERS
+++ b/core/java/com/android/internal/accessibility/OWNERS
@@ -1,4 +1,7 @@
-# Bug component: 44215
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 44215.
 
 # Android Accessibility Framework owners
 include /services/accessibility/OWNERS
\ No newline at end of file
diff --git a/core/java/com/android/internal/app/AlertController.java b/core/java/com/android/internal/app/AlertController.java
index 5d4c408..4fad6d5 100644
--- a/core/java/com/android/internal/app/AlertController.java
+++ b/core/java/com/android/internal/app/AlertController.java
@@ -258,7 +258,7 @@
 
     private int getAlertDialogDefStyleRes() {
         if (sUseWearMaterial3Style) {
-            return com.android.internal.R.style.AlertDialog_DeviceDefault_WearMaterial3;
+            return com.android.internal.R.style.AlertDialog_Material3;
         }
         return 0;
     }
diff --git a/core/java/com/android/internal/app/IAppOpsCallback.aidl b/core/java/com/android/internal/app/IAppOpsCallback.aidl
deleted file mode 100644
index 3a9525c..0000000
--- a/core/java/com/android/internal/app/IAppOpsCallback.aidl
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2013 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.app;
-
-// This interface is also used by native code, so must
-// be kept in sync with frameworks/native/libs/permission/include/binder/IAppOpsCallback.h
-oneway interface IAppOpsCallback {
-    void opChanged(int op, int uid, String packageName, String persistentDeviceId);
-}
diff --git a/core/java/com/android/internal/app/IBatteryStats.aidl b/core/java/com/android/internal/app/IBatteryStats.aidl
index a5e166b..5f1a641 100644
--- a/core/java/com/android/internal/app/IBatteryStats.aidl
+++ b/core/java/com/android/internal/app/IBatteryStats.aidl
@@ -35,8 +35,20 @@
 
 interface IBatteryStats {
     /** @hide */
+    const int RESULT_OK = 0;
+
+    /** @hide */
+    const int RESULT_RUNTIME_EXCEPTION = 1;
+
+    /** @hide */
+    const int RESULT_SECURITY_EXCEPTION = 2;
+
+    /** @hide */
     const String KEY_UID_SNAPSHOTS = "uid_snapshots";
 
+    /** @hide */
+    const String KEY_EXCEPTION_MESSAGE = "exception";
+
     // These first methods are also called by native code, so must
     // be kept in sync with frameworks/native/libs/binder/include_batterystats/batterystats/IBatteryStats.h
     @EnforcePermission("UPDATE_DEVICE_STATS")
diff --git a/core/java/com/android/internal/content/om/OverlayManagerImpl.java b/core/java/com/android/internal/content/om/OverlayManagerImpl.java
index 5d4e6a0..4b33652 100644
--- a/core/java/com/android/internal/content/om/OverlayManagerImpl.java
+++ b/core/java/com/android/internal/content/om/OverlayManagerImpl.java
@@ -21,7 +21,6 @@
 import static android.content.om.OverlayManagerTransaction.Request.TYPE_REGISTER_FABRICATED;
 import static android.content.om.OverlayManagerTransaction.Request.TYPE_UNREGISTER_FABRICATED;
 
-import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
 import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE;
 import static com.android.internal.content.om.OverlayConfig.DEFAULT_PRIORITY;
 
@@ -85,7 +84,6 @@
      *
      * @param context the context to create overlay environment
      */
-    @VisibleForTesting(visibility = PACKAGE)
     public OverlayManagerImpl(@NonNull Context context) {
         mContext = Objects.requireNonNull(context);
 
diff --git a/core/java/com/android/internal/graphics/palette/OWNERS b/core/java/com/android/internal/graphics/palette/OWNERS
index 731dca9..df86725 100644
--- a/core/java/com/android/internal/graphics/palette/OWNERS
+++ b/core/java/com/android/internal/graphics/palette/OWNERS
@@ -1,3 +1,2 @@
-# Bug component: 484670

-dupin@google.com

-jamesoleary@google.com
\ No newline at end of file
+# Bug component: 484670
+dupin@google.com
diff --git a/core/java/com/android/internal/jank/Cuj.java b/core/java/com/android/internal/jank/Cuj.java
index 7c5335c..9085bbe 100644
--- a/core/java/com/android/internal/jank/Cuj.java
+++ b/core/java/com/android/internal/jank/Cuj.java
@@ -306,8 +306,15 @@
     /** Track work utility view animation shrinking when scrolling down app list. */
     public static final int CUJ_LAUNCHER_WORK_UTILITY_VIEW_SHRINK = 127;
 
+    /**
+     * Track task transitions
+     *
+     * <p>Tracking starts and ends with the animation.</p>
+     */
+    public static final int CUJ_DEFAULT_TASK_TO_TASK_ANIMATION = 128;
+
     // When adding a CUJ, update this and make sure to also update CUJ_TO_STATSD_INTERACTION_TYPE.
-    @VisibleForTesting static final int LAST_CUJ = CUJ_LAUNCHER_WORK_UTILITY_VIEW_SHRINK;
+    @VisibleForTesting static final int LAST_CUJ = CUJ_DEFAULT_TASK_TO_TASK_ANIMATION;
 
     /** @hide */
     @IntDef({
@@ -426,7 +433,8 @@
             CUJ_DESKTOP_MODE_APP_LAUNCH_FROM_ICON,
             CUJ_DESKTOP_MODE_KEYBOARD_QUICK_SWITCH_APP_LAUNCH,
             CUJ_LAUNCHER_WORK_UTILITY_VIEW_EXPAND,
-            CUJ_LAUNCHER_WORK_UTILITY_VIEW_SHRINK
+            CUJ_LAUNCHER_WORK_UTILITY_VIEW_SHRINK,
+            CUJ_DEFAULT_TASK_TO_TASK_ANIMATION
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface CujType {}
@@ -556,6 +564,7 @@
         CUJ_TO_STATSD_INTERACTION_TYPE[CUJ_DESKTOP_MODE_KEYBOARD_QUICK_SWITCH_APP_LAUNCH] = FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__DESKTOP_MODE_KEYBOARD_QUICK_SWITCH_APP_LAUNCH;
         CUJ_TO_STATSD_INTERACTION_TYPE[CUJ_LAUNCHER_WORK_UTILITY_VIEW_EXPAND] = FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_WORK_UTILITY_VIEW_EXPAND;
         CUJ_TO_STATSD_INTERACTION_TYPE[CUJ_LAUNCHER_WORK_UTILITY_VIEW_SHRINK] = FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_WORK_UTILITY_VIEW_SHRINK;
+        CUJ_TO_STATSD_INTERACTION_TYPE[CUJ_DEFAULT_TASK_TO_TASK_ANIMATION] = FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__DEFAULT_TASK_TO_TASK_ANIMATION;
     }
 
     private Cuj() {
@@ -806,6 +815,8 @@
                 return "LAUNCHER_WORK_UTILITY_VIEW_EXPAND";
             case CUJ_LAUNCHER_WORK_UTILITY_VIEW_SHRINK:
                 return "LAUNCHER_WORK_UTILITY_VIEW_SHRINK";
+            case CUJ_DEFAULT_TASK_TO_TASK_ANIMATION:
+                return "CUJ_DEFAULT_TASK_TO_TASK_ANIMATION";
         }
         return "UNKNOWN";
     }
diff --git a/core/java/com/android/internal/os/BatteryStatsHistory.java b/core/java/com/android/internal/os/BatteryStatsHistory.java
index 036faef..85794d4 100644
--- a/core/java/com/android/internal/os/BatteryStatsHistory.java
+++ b/core/java/com/android/internal/os/BatteryStatsHistory.java
@@ -77,7 +77,7 @@
     private static final String TAG = "BatteryStatsHistory";
 
     // Current on-disk Parcel version. Must be updated when the format of the parcelable changes
-    private static final int VERSION = 212;
+    private static final int VERSION = 213;
 
     // Part of initial delta int that specifies the time delta.
     static final int DELTA_TIME_MASK = 0x7ffff;
@@ -109,10 +109,27 @@
     static final int STATE_BATTERY_PLUG_MASK = 0x00000003;
     static final int STATE_BATTERY_PLUG_SHIFT = 24;
 
+    // Pieces of data that are packed into the battery level int
+    static final int BATTERY_LEVEL_LEVEL_MASK = 0xFF000000;
+    static final int BATTERY_LEVEL_LEVEL_SHIFT = 24;
+    static final int BATTERY_LEVEL_TEMP_MASK = 0x00FF8000;
+    static final int BATTERY_LEVEL_TEMP_SHIFT = 15;
+    static final int BATTERY_LEVEL_VOLT_MASK = 0x00007FFC;
+    static final int BATTERY_LEVEL_VOLT_SHIFT = 2;
+    // Flag indicating that the voltage and temperature deltas are too large to
+    // store in the battery level int and full volt/temp values are instead
+    // stored in a following int.
+    static final int BATTERY_LEVEL_OVERFLOW_FLAG = 0x00000002;
     // We use the low bit of the battery state int to indicate that we have full details
     // from a battery level change.
     static final int BATTERY_LEVEL_DETAILS_FLAG = 0x00000001;
 
+    // Pieces of data that are packed into the extended battery level int
+    static final int BATTERY_LEVEL2_TEMP_MASK = 0xFFFF0000;
+    static final int BATTERY_LEVEL2_TEMP_SHIFT = 16;
+    static final int BATTERY_LEVEL2_VOLT_MASK = 0x0000FFFF;
+    static final int BATTERY_LEVEL2_VOLT_SHIFT = 0;
+
     // Flag in history tag index: indicates that this is the first occurrence of this tag,
     // therefore the tag value is written in the parcel
     static final int TAG_FIRST_OCCURRENCE_FLAG = 0x8000;
@@ -1808,12 +1825,22 @@
 
         Battery level int: if A in the first token is set,
         31              23              15               7             0
-        █L|L|L|L|L|L|L|T█T|T|T|T|T|T|T|T█T|V|V|V|V|V|V|V█V|V|V|V|V|V|V|D█
+        █L|L|L|L|L|L|L|L█T|T|T|T|T|T|T|T█T|V|V|V|V|V|V|V█V|V|V|V|V|V|E|D█
 
         D: indicates that extra history details follow.
-        V: the battery voltage.
-        T: the battery temperature.
-        L: the battery level (out of 100).
+        E: indicates that the voltage delta or temperature delta is too large to fit in the
+           respective V or T field of this int. If this flag is set, an extended battery level
+           int containing the complete voltage and temperature values immediately follows.
+        V: the signed battery voltage delta in millivolts.
+        T: the signed battery temperature delta in tenths of a degree Celsius.
+        L: the signed battery level delta (out of 100).
+
+        Extended battery level int: if E in the battery level int is set,
+        31              23              15               7             0
+        █T|T|T|T|T|T|T|T█T|T|T|T|T|T|T|T█V|V|V|V|V|V|V|V█V|V|V|V|V|V|V|V█
+
+        V: the current battery voltage (complete 16-bit value, not a delta).
+        T: the current battery temperature (complete 16-bit value, not a delta).
 
         State change int: if B in the first token is set,
         31              23              15               7             0
@@ -1869,7 +1896,7 @@
 
         int extensionFlags = 0;
         final long deltaTime = cur.time - last.time;
-        final int lastBatteryLevelInt = buildBatteryLevelInt(last);
+        int batteryLevelInt = buildBatteryLevelInt(cur, last);
         final int lastStateInt = buildStateInt(last);
 
         int deltaTimeToken;
@@ -1881,7 +1908,6 @@
             deltaTimeToken = (int) deltaTime;
         }
         int firstToken = deltaTimeToken | (cur.states & BatteryStatsHistory.DELTA_STATE_MASK);
-        int batteryLevelInt = buildBatteryLevelInt(cur);
 
         if (cur.batteryLevel < mLastHistoryStepLevel || mLastHistoryStepLevel == 0) {
             cur.stepDetails = mStepDetailsCalculator.getHistoryStepDetails();
@@ -1894,7 +1920,7 @@
             mLastHistoryStepLevel = cur.batteryLevel;
         }
 
-        final boolean batteryLevelIntChanged = batteryLevelInt != lastBatteryLevelInt;
+        final boolean batteryLevelIntChanged = batteryLevelInt != 0;
         if (batteryLevelIntChanged) {
             firstToken |= BatteryStatsHistory.DELTA_BATTERY_LEVEL_FLAG;
         }
@@ -1948,10 +1974,21 @@
             }
         }
         if (batteryLevelIntChanged) {
+            boolean overflow = (batteryLevelInt & BATTERY_LEVEL_OVERFLOW_FLAG) != 0;
+            int extendedBatteryLevelInt = 0;
+
             dest.writeInt(batteryLevelInt);
+            if (overflow) {
+                extendedBatteryLevelInt = buildExtendedBatteryLevelInt(cur);
+                dest.writeInt(extendedBatteryLevelInt);
+            }
+
             if (DEBUG) {
                 Slog.i(TAG, "WRITE DELTA: batteryToken=0x"
                         + Integer.toHexString(batteryLevelInt)
+                        + (overflow
+                                ? " batteryToken2=0x" + Integer.toHexString(extendedBatteryLevelInt)
+                                : "")
                         + " batteryLevel=" + cur.batteryLevel
                         + " batteryTemp=" + cur.batteryTemperature
                         + " batteryVolt=" + (int) cur.batteryVoltage);
@@ -2049,16 +2086,43 @@
         }
     }
 
-    private int buildBatteryLevelInt(HistoryItem h) {
-        int bits = 0;
-        bits = setBitField(bits, h.batteryLevel, 25, 0xfe000000 /* 7F << 25 */);
-        bits = setBitField(bits, h.batteryTemperature, 15, 0x01ff8000 /* 3FF << 15 */);
-        short voltage = (short) h.batteryVoltage;
-        if (voltage == -1) {
-            voltage = 0x3FFF;
+    private boolean signedValueFits(int value, int mask, int shift) {
+        mask >>>= shift;
+        // The original value can only be restored if all of the lost
+        // high-order bits match the MSB of the packed value. Extract both the
+        // MSB and the lost bits, and check if they match (i.e. they are all
+        // zeros or all ones).
+        int msbAndLostBitsMask = ~(mask >>> 1);
+        int msbAndLostBits = value & msbAndLostBitsMask;
+
+        return msbAndLostBits == 0 || msbAndLostBits == msbAndLostBitsMask;
+    }
+
+    private int buildBatteryLevelInt(HistoryItem cur, HistoryItem prev) {
+        final int levelDelta = (int) cur.batteryLevel - (int) prev.batteryLevel;
+        final int tempDelta = (int) cur.batteryTemperature - (int) prev.batteryTemperature;
+        final int voltDelta = (int) cur.batteryVoltage - (int) prev.batteryVoltage;
+        final boolean overflow =
+                !signedValueFits(tempDelta, BATTERY_LEVEL_TEMP_MASK, BATTERY_LEVEL_VOLT_SHIFT)
+                || !signedValueFits(voltDelta, BATTERY_LEVEL_VOLT_MASK, BATTERY_LEVEL_TEMP_SHIFT);
+
+        int batt = 0;
+        batt |= (levelDelta << BATTERY_LEVEL_LEVEL_SHIFT) & BATTERY_LEVEL_LEVEL_MASK;
+        if (overflow) {
+            batt |= BATTERY_LEVEL_OVERFLOW_FLAG;
+        } else {
+            batt |= (tempDelta << BATTERY_LEVEL_TEMP_SHIFT) & BATTERY_LEVEL_TEMP_MASK;
+            batt |= (voltDelta << BATTERY_LEVEL_VOLT_SHIFT) & BATTERY_LEVEL_VOLT_MASK;
         }
-        bits = setBitField(bits, voltage, 1, 0x00007ffe /* 3FFF << 1 */);
-        return bits;
+
+        return batt;
+    }
+
+    private int buildExtendedBatteryLevelInt(HistoryItem cur) {
+        int battExt = 0;
+        battExt |= (cur.batteryTemperature << BATTERY_LEVEL2_TEMP_SHIFT) & BATTERY_LEVEL2_TEMP_MASK;
+        battExt |= (cur.batteryVoltage << BATTERY_LEVEL2_VOLT_SHIFT) & BATTERY_LEVEL2_VOLT_MASK;
+        return battExt;
     }
 
     private int buildStateInt(HistoryItem h) {
diff --git a/core/java/com/android/internal/os/BatteryStatsHistoryIterator.java b/core/java/com/android/internal/os/BatteryStatsHistoryIterator.java
index ee897cd..0d5d876 100644
--- a/core/java/com/android/internal/os/BatteryStatsHistoryIterator.java
+++ b/core/java/com/android/internal/os/BatteryStatsHistoryIterator.java
@@ -150,11 +150,21 @@
         final int batteryLevelInt;
         if ((firstToken & BatteryStatsHistory.DELTA_BATTERY_LEVEL_FLAG) != 0) {
             batteryLevelInt = src.readInt();
-            readBatteryLevelInt(batteryLevelInt, cur);
             cur.numReadInts += 1;
+            final boolean overflow =
+                    (batteryLevelInt & BatteryStatsHistory.BATTERY_LEVEL_OVERFLOW_FLAG) != 0;
+            int extendedBatteryLevelInt = 0;
+            if (overflow) {
+                extendedBatteryLevelInt = src.readInt();
+                cur.numReadInts += 1;
+            }
+            readBatteryLevelInts(batteryLevelInt, extendedBatteryLevelInt, cur);
             if (DEBUG) {
                 Slog.i(TAG, "READ DELTA: batteryToken=0x"
                         + Integer.toHexString(batteryLevelInt)
+                        + (overflow
+                                ? " batteryToken2=0x" + Integer.toHexString(extendedBatteryLevelInt)
+                                : "")
                         + " batteryLevel=" + cur.batteryLevel
                         + " batteryTemp=" + cur.batteryTemperature
                         + " batteryVolt=" + (int) cur.batteryVoltage);
@@ -312,15 +322,43 @@
         return true;
     }
 
-    private static void readBatteryLevelInt(int batteryLevelInt, BatteryStats.HistoryItem out) {
-        out.batteryLevel = (byte) ((batteryLevelInt & 0xfe000000) >>> 25);
-        out.batteryTemperature = (short) ((batteryLevelInt & 0x01ff8000) >>> 15);
-        int voltage = ((batteryLevelInt & 0x00007ffe) >>> 1);
-        if (voltage == 0x3FFF) {
-            voltage = -1;
-        }
+    private static int extractSignedBitField(int bits, int mask, int shift) {
+        mask >>>= shift;
+        bits >>>= shift;
+        int value = bits & mask;
+        int msbMask = mask ^ (mask >>> 1);
+        // Sign extend with MSB
+        if ((value & msbMask) != 0) value |= ~mask;
+        return value;
+    }
 
-        out.batteryVoltage = (short) voltage;
+    private static void readBatteryLevelInts(int batteryInt, int extendedBatteryInt,
+            BatteryStats.HistoryItem out) {
+
+        out.batteryLevel += extractSignedBitField(
+                batteryInt,
+                BatteryStatsHistory.BATTERY_LEVEL_LEVEL_MASK,
+                BatteryStatsHistory.BATTERY_LEVEL_LEVEL_SHIFT);
+
+        if ((batteryInt & BatteryStatsHistory.BATTERY_LEVEL_OVERFLOW_FLAG) == 0) {
+            out.batteryTemperature += extractSignedBitField(
+                    batteryInt,
+                    BatteryStatsHistory.BATTERY_LEVEL_TEMP_MASK,
+                    BatteryStatsHistory.BATTERY_LEVEL_TEMP_SHIFT);
+            out.batteryVoltage += extractSignedBitField(
+                    batteryInt,
+                    BatteryStatsHistory.BATTERY_LEVEL_VOLT_MASK,
+                    BatteryStatsHistory.BATTERY_LEVEL_VOLT_SHIFT);
+        } else {
+            out.batteryTemperature = (short) extractSignedBitField(
+                    extendedBatteryInt,
+                    BatteryStatsHistory.BATTERY_LEVEL2_TEMP_MASK,
+                    BatteryStatsHistory.BATTERY_LEVEL2_TEMP_SHIFT);
+            out.batteryVoltage = (short) extractSignedBitField(
+                    extendedBatteryInt,
+                    BatteryStatsHistory.BATTERY_LEVEL2_VOLT_MASK,
+                    BatteryStatsHistory.BATTERY_LEVEL2_VOLT_SHIFT);
+        }
     }
 
     /**
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index e60879e..38dc198 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -429,6 +429,27 @@
                     null /*dependentPackages*/, null /*dependencies*/, false /*isNative*/));
         }
 
+        if (Flags.enableMediaAndLocationPreload()) {
+            // As these libraries are technically optional and not necessarily inherited from
+            // base_system.mk, only cache them if they exist.
+            final String mediaJarPath = "/system/framework/com.android.media.remotedisplay.jar";
+            if (new File(mediaJarPath).exists()) {
+                libs.add(new SharedLibraryInfo(
+                        mediaJarPath, null /*packageName*/,
+                        null /*codePaths*/, null /*name*/, 0 /*version*/,
+                        SharedLibraryInfo.TYPE_BUILTIN, null /*declaringPackage*/,
+                        null /*dependentPackages*/, null /*dependencies*/, false /*isNative*/));
+            }
+            final String locationJarPath = "/system/framework/com.android.location.provider.jar";
+            if (new File(locationJarPath).exists()) {
+                libs.add(new SharedLibraryInfo(
+                        locationJarPath, null /*packageName*/,
+                        null /*codePaths*/, null /*name*/, 0 /*version*/,
+                        SharedLibraryInfo.TYPE_BUILTIN, null /*declaringPackage*/,
+                        null /*dependentPackages*/, null /*dependencies*/, false /*isNative*/));
+            }
+        }
+
         // WindowManager Extensions is an optional shared library that is required for WindowManager
         // Jetpack to fully function. Since it is a widely used library, preload it to improve apps
         // startup performance.
diff --git a/core/java/com/android/internal/os/flags.aconfig b/core/java/com/android/internal/os/flags.aconfig
index 25a9fbc..32cde50 100644
--- a/core/java/com/android/internal/os/flags.aconfig
+++ b/core/java/com/android/internal/os/flags.aconfig
@@ -53,6 +53,13 @@
 }
 
 flag {
+    name: "enable_media_and_location_preload"
+    namespace: "system_performance"
+    description: "Enables zygote preload of non-BCP media and location libraries."
+    bug: "241474956"
+}
+
+flag {
     name: "use_transaction_codes_for_unknown_methods"
     namespace: "stability"
     description: "Use transaction codes when the method names is unknown"
diff --git a/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java b/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java
index 445dac7..21d000d 100644
--- a/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java
+++ b/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java
@@ -16,6 +16,7 @@
 
 package com.android.internal.pm.pkg.component;
 
+import static android.provider.flags.Flags.newStoragePublicApi;
 import static com.android.internal.pm.pkg.parsing.ParsingUtils.ANDROID_RES_NAMESPACE;
 
 import android.aconfig.DeviceProtos;
@@ -27,6 +28,7 @@
 import android.content.res.Flags;
 import android.os.Environment;
 import android.os.Process;
+import android.os.flagging.AconfigPackage;
 import android.util.ArrayMap;
 import android.util.Slog;
 import android.util.Xml;
@@ -43,6 +45,7 @@
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * A class that manages a cache of all device feature flags and their default + override values.
@@ -58,7 +61,8 @@
     private static final String OVERRIDE_PREFIX = "device_config_overrides/";
     private static final String STAGED_PREFIX = "staged/";
 
-    private final ArrayMap<String, Boolean> mFlagValues = new ArrayMap<>();
+    private final Map<String, Boolean> mFlagValues = new ArrayMap<>();
+    private final Map<String, AconfigPackage> mAconfigPackages = new ConcurrentHashMap<>();
 
     public AconfigFlags() {
         if (!Flags.manifestFlagging()) {
@@ -67,21 +71,31 @@
             }
             return;
         }
-        final var defaultFlagProtoFiles =
-                (Process.myUid() == Process.SYSTEM_UID) ? DeviceProtos.parsedFlagsProtoPaths()
-                        : Arrays.asList(DeviceProtos.PATHS);
-        for (String fileName : defaultFlagProtoFiles) {
-            try (var inputStream = new FileInputStream(fileName)) {
-                loadAconfigDefaultValues(inputStream.readAllBytes());
-            } catch (IOException e) {
-                Slog.e(LOG_TAG, "Failed to read Aconfig values from " + fileName, e);
+
+        if (useNewStorage()) {
+            Slog.i(LOG_TAG, "Using new flag storage");
+        } else {
+            Slog.i(LOG_TAG, "Using OLD proto flag storage");
+            final var defaultFlagProtoFiles =
+                    (Process.myUid() == Process.SYSTEM_UID) ? DeviceProtos.parsedFlagsProtoPaths()
+                            : Arrays.asList(DeviceProtos.PATHS);
+            for (String fileName : defaultFlagProtoFiles) {
+                try (var inputStream = new FileInputStream(fileName)) {
+                    loadAconfigDefaultValues(inputStream.readAllBytes());
+                } catch (IOException e) {
+                    Slog.w(LOG_TAG, "Failed to read Aconfig values from " + fileName, e);
+                }
+            }
+            if (Process.myUid() == Process.SYSTEM_UID) {
+                // Server overrides are only accessible to the system, no need to even try loading
+                // them in user processes.
+                loadServerOverrides();
             }
         }
-        if (Process.myUid() == Process.SYSTEM_UID) {
-            // Server overrides are only accessible to the system, no need to even try loading them
-            // in user processes.
-            loadServerOverrides();
-        }
+    }
+
+    private static boolean useNewStorage() {
+        return newStoragePublicApi() && Flags.useNewAconfigStorage();
     }
 
     private void loadServerOverrides() {
@@ -200,7 +214,40 @@
      */
     @Nullable
     public Boolean getFlagValue(@NonNull String flagPackageAndName) {
-        Boolean value = mFlagValues.get(flagPackageAndName);
+        if (useNewStorage()) {
+            return getFlagValueFromNewStorage(flagPackageAndName);
+        } else {
+            Boolean value = mFlagValues.get(flagPackageAndName);
+            if (DEBUG) {
+                Slog.v(LOG_TAG, "Aconfig flag value for " + flagPackageAndName + " = " + value);
+            }
+            return value;
+        }
+    }
+
+    private Boolean getFlagValueFromNewStorage(String flagPackageAndName) {
+        int index = flagPackageAndName.lastIndexOf('.');
+        if (index < 0) {
+            Slog.e(LOG_TAG, "Unable to parse package name from " + flagPackageAndName);
+            return null;
+        }
+        String flagPackage = flagPackageAndName.substring(0, index);
+        String flagName = flagPackageAndName.substring(index + 1);
+        Boolean value = null;
+        AconfigPackage aconfigPackage = mAconfigPackages.computeIfAbsent(flagPackage, p -> {
+            try {
+                return AconfigPackage.load(p);
+            } catch (Exception e) {
+                Slog.e(LOG_TAG, "Failed to load aconfig package " + p, e);
+                return null;
+            }
+        });
+        if (aconfigPackage != null) {
+            // Default value is false for when the flag is not found.
+            // Note: Unlike with the old storage, with AconfigPackage, we don't have a way to
+            // know if the flag is not found or if it's found but the value is false.
+            value = aconfigPackage.getBooleanFlagValue(flagName, false);
+        }
         if (DEBUG) {
             Slog.v(LOG_TAG, "Aconfig flag value for " + flagPackageAndName + " = " + value);
         }
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 270cf08..e20a52b 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -231,6 +231,7 @@
     private int mLastRightInset = 0;
     @UnsupportedAppUsage
     private int mLastLeftInset = 0;
+    private WindowInsets mLastInsets = null;
     private boolean mLastHasTopStableInset = false;
     private boolean mLastHasBottomStableInset = false;
     private boolean mLastHasRightStableInset = false;
@@ -1100,6 +1101,7 @@
             mLastWindowFlags = attrs.flags;
 
             if (insets != null) {
+                mLastInsets = insets;
                 mLastForceConsumingTypes = insets.getForceConsumingTypes();
                 mLastForceConsumingOpaqueCaptionBar = insets.isForceConsumingOpaqueCaptionBar();
 
@@ -1176,6 +1178,7 @@
                     mForceWindowDrawsBarBackgrounds, requestedVisibleTypes);
         }
 
+        int consumingTypes = 0;
         // When we expand the window with FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS or
         // mForceWindowDrawsBarBackgrounds, we still need to ensure that the rest of the view
         // hierarchy doesn't notice it, unless they've explicitly asked for it.
@@ -1186,43 +1189,47 @@
         //
         // Note: Once the app uses the R+ Window.setDecorFitsSystemWindows(false) API we no longer
         // consume insets because they might no longer set SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION.
-        boolean hideNavigation = (sysUiVisibility & SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0
+        final boolean hideNavigation = (sysUiVisibility & SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0
                 || (requestedVisibleTypes & WindowInsets.Type.navigationBars()) == 0;
-        boolean decorFitsSystemWindows = mWindow.mDecorFitsSystemWindows;
-        boolean forceConsumingNavBar =
+        final boolean decorFitsSystemWindows = mWindow.mDecorFitsSystemWindows;
+
+        final boolean fitsNavBar =
+                (sysUiVisibility & SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) == 0
+                        && decorFitsSystemWindows
+                        && !hideNavigation;
+        final boolean forceConsumingNavBar =
                 ((mForceWindowDrawsBarBackgrounds || mDrawLegacyNavigationBarBackgroundHandled)
                         && (attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) == 0
-                        && (sysUiVisibility & SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) == 0
-                        && decorFitsSystemWindows
-                        && !hideNavigation)
+                        && fitsNavBar)
                 || ((mLastForceConsumingTypes & WindowInsets.Type.navigationBars()) != 0
                         && hideNavigation);
-
-        boolean consumingNavBar =
-                ((attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0
-                        && (sysUiVisibility & SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) == 0
-                        && decorFitsSystemWindows
-                        && !hideNavigation)
+        final boolean consumingNavBar =
+                ((attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0 && fitsNavBar)
                 || forceConsumingNavBar;
+        if (consumingNavBar) {
+            consumingTypes |= WindowInsets.Type.navigationBars();
+        }
 
-        // If we didn't request fullscreen layout, but we still got it because of the
-        // mForceWindowDrawsBarBackgrounds flag, also consume top inset.
+        // If the fullscreen layout was not requested, but still received because of the
+        // mForceWindowDrawsBarBackgrounds flag, also consume status bar.
         // If we should always consume system bars, only consume that if the app wanted to go to
         // fullscreen, as otherwise we can expect the app to handle it.
-        boolean fullscreen = (sysUiVisibility & SYSTEM_UI_FLAG_FULLSCREEN) != 0
+        final boolean fullscreen = (sysUiVisibility & SYSTEM_UI_FLAG_FULLSCREEN) != 0
                 || (attrs.flags & FLAG_FULLSCREEN) != 0;
         final boolean hideStatusBar = fullscreen
                 || (requestedVisibleTypes & WindowInsets.Type.statusBars()) == 0;
-        boolean consumingStatusBar =
-                ((sysUiVisibility & SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) == 0
-                        && decorFitsSystemWindows
-                        && (attrs.flags & FLAG_LAYOUT_IN_SCREEN) == 0
-                        && (attrs.flags & FLAG_LAYOUT_INSET_DECOR) == 0
-                        && mForceWindowDrawsBarBackgrounds
-                        && mLastTopInset != 0)
+        if (((sysUiVisibility & SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) == 0
+                && decorFitsSystemWindows
+                && (attrs.flags & FLAG_LAYOUT_IN_SCREEN) == 0
+                && (attrs.flags & FLAG_LAYOUT_INSET_DECOR) == 0
+                && mForceWindowDrawsBarBackgrounds
+                && mLastTopInset != 0)
                 || ((mLastForceConsumingTypes & WindowInsets.Type.statusBars()) != 0
-                        && hideStatusBar);
+                        && hideStatusBar)) {
+            consumingTypes |= WindowInsets.Type.statusBars();
+        }
 
+        // Decide if caption bar need to be consumed
         final boolean hideCaptionBar = fullscreen
                 || (requestedVisibleTypes & WindowInsets.Type.captionBar()) == 0;
         final boolean consumingCaptionBar =
@@ -1237,22 +1244,23 @@
                         && mLastForceConsumingOpaqueCaptionBar
                         && isOpaqueCaptionBar;
 
-        final int consumedTop =
-                (consumingStatusBar || consumingCaptionBar || consumingOpaqueCaptionBar)
-                        ? mLastTopInset : 0;
-        int consumedRight = consumingNavBar ? mLastRightInset : 0;
-        int consumedBottom = consumingNavBar ? mLastBottomInset : 0;
-        int consumedLeft = consumingNavBar ? mLastLeftInset : 0;
+        if (consumingCaptionBar || consumingOpaqueCaptionBar) {
+            consumingTypes |= WindowInsets.Type.captionBar();
+        }
+
+        final Insets consumedInsets = mLastInsets != null
+                ? mLastInsets.getInsets(consumingTypes) : Insets.NONE;
 
         if (mContentRoot != null
                 && mContentRoot.getLayoutParams() instanceof MarginLayoutParams) {
             MarginLayoutParams lp = (MarginLayoutParams) mContentRoot.getLayoutParams();
-            if (lp.topMargin != consumedTop || lp.rightMargin != consumedRight
-                    || lp.bottomMargin != consumedBottom || lp.leftMargin != consumedLeft) {
-                lp.topMargin = consumedTop;
-                lp.rightMargin = consumedRight;
-                lp.bottomMargin = consumedBottom;
-                lp.leftMargin = consumedLeft;
+            if (lp.topMargin != consumedInsets.top || lp.rightMargin != consumedInsets.right
+                    || lp.bottomMargin != consumedInsets.bottom || lp.leftMargin !=
+                    consumedInsets.left) {
+                lp.topMargin = consumedInsets.top;
+                lp.rightMargin = consumedInsets.right;
+                lp.bottomMargin = consumedInsets.bottom;
+                lp.leftMargin = consumedInsets.left;
                 mContentRoot.setLayoutParams(lp);
 
                 if (insets == null) {
@@ -1261,11 +1269,8 @@
                     requestApplyInsets();
                 }
             }
-            if (insets != null && (consumedLeft > 0
-                    || consumedTop > 0
-                    || consumedRight > 0
-                    || consumedBottom > 0)) {
-                insets = insets.inset(consumedLeft, consumedTop, consumedRight, consumedBottom);
+            if (insets != null && !Insets.NONE.equals(consumedInsets)) {
+                insets = insets.inset(consumedInsets);
             }
         }
 
diff --git a/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java b/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
index b7e68ba..260619e 100644
--- a/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
+++ b/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
@@ -23,6 +23,7 @@
 import android.content.res.Resources;
 import android.database.ContentObserver;
 import android.os.Handler;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.provider.DeviceConfig;
 import android.provider.Settings;
@@ -160,8 +161,13 @@
     }
 
     public boolean areNavigationButtonForcedVisible() {
-        return Settings.Secure.getIntForUser(mContext.getContentResolver(),
-                Settings.Secure.USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) == 0;
+        String SUWTheme = SystemProperties.get("setupwizard.theme", "");
+        boolean isExpressiveThemeEnabled = SUWTheme.equals("glif_expressive")
+                || SUWTheme.equals("glif_expressive_light");
+        // The back gesture is enabled if using the expressive theme
+        return !isExpressiveThemeEnabled
+                && Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                    Settings.Secure.USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) == 0;
     }
 
     private float getUnscaledInset(Resources userRes) {
diff --git a/core/java/com/android/internal/protolog/IProtoLogConfigurationService.aidl b/core/java/com/android/internal/protolog/IProtoLogConfigurationService.aidl
index ce94828..a6f0b30 100644
--- a/core/java/com/android/internal/protolog/IProtoLogConfigurationService.aidl
+++ b/core/java/com/android/internal/protolog/IProtoLogConfigurationService.aidl
@@ -41,11 +41,11 @@
  * {@hide}
  */
 interface IProtoLogConfigurationService {
-    interface IRegisterClientArgs {
-        String[] getGroups();
-        boolean[] getGroupsDefaultLogcatStatus();
-        String getViewerConfigFile();
+    parcelable RegisterClientArgs {
+        String[] groups;
+        boolean[] groupsDefaultLogcatStatus;
+        String viewerConfigFile;
     }
 
-    void registerClient(IProtoLogClient client, IRegisterClientArgs args);
+    oneway void registerClient(IProtoLogClient client, in RegisterClientArgs args);
 }
\ No newline at end of file
diff --git a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java
index 05a33fe..93be3b0 100644
--- a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java
+++ b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java
@@ -62,7 +62,7 @@
 import android.util.proto.ProtoOutputStream;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.protolog.ProtoLogConfigurationServiceImpl.RegisterClientArgs;
+import com.android.internal.protolog.IProtoLogConfigurationService.RegisterClientArgs;
 import com.android.internal.protolog.common.ILogger;
 import com.android.internal.protolog.common.IProtoLog;
 import com.android.internal.protolog.common.IProtoLogGroup;
@@ -160,19 +160,25 @@
         Objects.requireNonNull(mConfigurationService,
                 "A null ProtoLog Configuration Service was provided!");
 
-        try {
-            var args = createConfigurationServiceRegisterClientArgs();
+        mBackgroundLoggingService.execute(() -> {
+            try {
+                var args = createConfigurationServiceRegisterClientArgs();
 
-            final var groupArgs = mLogGroups.values().stream()
-                    .map(group -> new RegisterClientArgs
-                            .GroupConfig(group.name(), group.isLogToLogcat()))
-                    .toArray(RegisterClientArgs.GroupConfig[]::new);
-            args.setGroups(groupArgs);
+                args.groups = new String[mLogGroups.size()];
+                args.groupsDefaultLogcatStatus = new boolean[mLogGroups.size()];
 
-            mConfigurationService.registerClient(this, args);
-        } catch (RemoteException e) {
-            throw new RuntimeException("Failed to register ProtoLog client");
-        }
+                var groups = mLogGroups.values().stream().toList();
+                for (var i = 0; i < groups.size(); i++) {
+                    var group = groups.get(i);
+                    args.groups[i] = group.name();
+                    args.groupsDefaultLogcatStatus[i] = group.isLogToLogcat();
+                }
+
+                mConfigurationService.registerClient(this, args);
+            } catch (RemoteException e) {
+                throw new RuntimeException("Failed to register ProtoLog client");
+            }
+        });
     }
 
     /**
diff --git a/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java
index 1f9df3c..d9c54d6 100644
--- a/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java
+++ b/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java
@@ -22,7 +22,7 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.protolog.ProtoLogConfigurationServiceImpl.RegisterClientArgs;
+import com.android.internal.protolog.IProtoLogConfigurationService.RegisterClientArgs;
 import com.android.internal.protolog.common.ILogger;
 import com.android.internal.protolog.common.IProtoLogGroup;
 
@@ -104,8 +104,9 @@
     @NonNull
     @Override
     protected RegisterClientArgs createConfigurationServiceRegisterClientArgs() {
-        return new RegisterClientArgs()
-                .setViewerConfigFile(mViewerConfigFilePath);
+        var args = new RegisterClientArgs();
+        args.viewerConfigFile = mViewerConfigFilePath;
+        return args;
     }
 
     /**
diff --git a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java
index 23f7c2a..f83359d 100644
--- a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java
+++ b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java
@@ -134,74 +134,6 @@
         mDataSource = datasource;
     }
 
-    public static class RegisterClientArgs extends IRegisterClientArgs.Stub {
-        /**
-         * The viewer config file to be registered for this client ProtoLog process.
-         */
-        @Nullable
-        private String mViewerConfigFile = null;
-        /**
-         * The list of all groups that this client protolog process supports and might trace.
-         */
-        @NonNull
-        private String[] mGroups = new String[0];
-        /**
-         * The default logcat status of the ProtoLog client. True is logging to logcat, false
-         * otherwise. The indices should match the indices in {@link mGroups}.
-         */
-        @NonNull
-        private boolean[] mLogcatStatus = new boolean[0];
-
-        public record GroupConfig(@NonNull String group, boolean logToLogcat) {}
-
-        /**
-         * Specify groups to register with this client that will be used for protologging in this
-         * process.
-         * @param groups to register with this client.
-         * @return self
-         */
-        public RegisterClientArgs setGroups(GroupConfig... groups) {
-            mGroups = new String[groups.length];
-            mLogcatStatus = new boolean[groups.length];
-
-            for (int i = 0; i < groups.length; i++) {
-                mGroups[i] = groups[i].group;
-                mLogcatStatus[i] = groups[i].logToLogcat;
-            }
-
-            return this;
-        }
-
-        /**
-         * Set the viewer config file that the logs in this process are using.
-         * @param viewerConfigFile The file path of the viewer config.
-         * @return self
-         */
-        public RegisterClientArgs setViewerConfigFile(@NonNull String viewerConfigFile) {
-            mViewerConfigFile = viewerConfigFile;
-
-            return this;
-        }
-
-        @Override
-        @NonNull
-        public String[] getGroups() {
-            return mGroups;
-        }
-
-        @Override
-        @NonNull
-        public boolean[] getGroupsDefaultLogcatStatus() {
-            return mLogcatStatus;
-        }
-
-        @Nullable
-        @Override
-        public String getViewerConfigFile() {
-            return mViewerConfigFile;
-        }
-    }
-
     @FunctionalInterface
     public interface ViewerConfigFileTracer {
         /**
@@ -216,16 +148,16 @@
     }
 
     @Override
-    public void registerClient(@NonNull IProtoLogClient client, @NonNull IRegisterClientArgs args)
+    public void registerClient(@NonNull IProtoLogClient client, @NonNull RegisterClientArgs args)
             throws RemoteException {
         client.asBinder().linkToDeath(() -> onClientBinderDeath(client), /* flags */ 0);
 
-        final String viewerConfigFile = args.getViewerConfigFile();
+        final String viewerConfigFile = args.viewerConfigFile;
         if (viewerConfigFile != null) {
             registerViewerConfigFile(client, viewerConfigFile);
         }
 
-        registerGroups(client, args.getGroups(), args.getGroupsDefaultLogcatStatus());
+        registerGroups(client, args.groups, args.groupsDefaultLogcatStatus);
     }
 
     @Override
diff --git a/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java
index ebb07a04..39b01fb 100644
--- a/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java
+++ b/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java
@@ -19,7 +19,7 @@
 import android.annotation.NonNull;
 import android.os.ServiceManager;
 
-import com.android.internal.protolog.ProtoLogConfigurationServiceImpl.RegisterClientArgs;
+import com.android.internal.protolog.IProtoLogConfigurationService.RegisterClientArgs;
 import com.android.internal.protolog.common.IProtoLogGroup;
 
 public class UnprocessedPerfettoProtoLogImpl extends PerfettoProtoLogImpl {
diff --git a/core/java/com/android/internal/protolog/WmProtoLogGroups.java b/core/java/com/android/internal/protolog/WmProtoLogGroups.java
index 4bd5d24..5edc2fb 100644
--- a/core/java/com/android/internal/protolog/WmProtoLogGroups.java
+++ b/core/java/com/android/internal/protolog/WmProtoLogGroups.java
@@ -100,6 +100,8 @@
     WM_DEBUG_TPL(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
     WM_DEBUG_EMBEDDED_WINDOWS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
             Consts.TAG_WM),
+    WM_DEBUG_PRESENTATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+            Consts.TAG_WM),
     TEST_GROUP(true, true, false, "WindowManagerProtoLogTest");
 
     private final boolean mEnabled;
diff --git a/core/java/com/android/internal/security/TEST_MAPPING b/core/java/com/android/internal/security/TEST_MAPPING
index 5bd9d2e..be50beb 100644
--- a/core/java/com/android/internal/security/TEST_MAPPING
+++ b/core/java/com/android/internal/security/TEST_MAPPING
@@ -6,10 +6,6 @@
     {
       "name": "UpdatableSystemFontTest",
       "file_patterns": ["VerityUtils\\.java"]
-    },
-    {
-      "name": "CtsApkVerityInstallHostTestCases",
-      "file_patterns": ["VerityUtils\\.java"]
     }
   ],
   "postsubmit": [
diff --git a/core/java/com/android/internal/util/RateLimitingCache.java b/core/java/com/android/internal/util/RateLimitingCache.java
index 9916076..956d5d6 100644
--- a/core/java/com/android/internal/util/RateLimitingCache.java
+++ b/core/java/com/android/internal/util/RateLimitingCache.java
@@ -17,6 +17,8 @@
 package com.android.internal.util;
 
 import android.os.SystemClock;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * A speed/rate limiting cache that's used to cache a value to be returned as long as period hasn't
@@ -30,6 +32,12 @@
  * and then the cached value is returned for the remainder of the period. It uses a simple fixed
  * window method to track rate. Use a window and count appropriate for bursts of calls and for
  * high latency/cost of the AIDL call.
+ * <p>
+ * This class is thread-safe. When multiple threads call get(), they will all fetch a new value
+ * if the cached value is stale. This is to prevent a slow getting thread from blocking other
+ * threads from getting a fresh value. In such circumsntaces it's possible to exceed
+ * <code>count</code> calls in a given period by up to the number of threads that are concurrently
+ * attempting to get a fresh value minus one.
  *
  * @param <Value> The type of the return value
  * @hide
@@ -37,12 +45,11 @@
 @android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RateLimitingCache<Value> {
 
-    private volatile Value mCurrentValue;
-    private volatile long mLastTimestamp; // Can be last fetch time or window start of fetch time
     private final long mPeriodMillis; // window size
     private final int mLimit; // max per window
-    private int mCount = 0; // current count within window
-    private long mRandomOffset; // random offset to avoid batching of AIDL calls at window boundary
+    // random offset to avoid batching of AIDL calls at window boundary
+    private final long mRandomOffset;
+    private final AtomicReference<CachedValue> mCachedValue = new AtomicReference();
 
     /**
      * The interface to fetch the actual value, if the cache is null or expired.
@@ -56,6 +63,12 @@
         V fetchValue();
     }
 
+    class CachedValue {
+        Value value;
+        long timestamp;
+        AtomicInteger count; // current count within window
+    }
+
     /**
      * Create a speed limiting cache that returns the same value until periodMillis has passed
      * and then fetches a new value via the {@link ValueFetcher}.
@@ -83,6 +96,8 @@
         mLimit = count;
         if (mLimit > 1 && periodMillis > 1) {
             mRandomOffset = (long) (Math.random() * (periodMillis / 2));
+        } else {
+            mRandomOffset = 0;
         }
     }
 
@@ -102,34 +117,39 @@
      * @return the cached or latest value
      */
     public Value get(ValueFetcher<Value> query) {
-        // If the value never changes
-        if (mPeriodMillis < 0 && mLastTimestamp != 0) {
-            return mCurrentValue;
+        CachedValue cached = mCachedValue.get();
+
+        // If the value never changes and there is a previous cached value, return it
+        if (mPeriodMillis < 0 && cached != null && cached.timestamp != 0) {
+            return cached.value;
         }
 
-        synchronized (this) {
-            // Get the current time and add a random offset to avoid colliding with other
-            // caches with similar harmonic window boundaries
-            final long now = getTime() + mRandomOffset;
-            final boolean newWindow = now - mLastTimestamp >= mPeriodMillis;
-            if (newWindow || mCount < mLimit) {
-                // Fetch a new value
-                mCurrentValue = query.fetchValue();
-
-                // If rate limiting, set timestamp to start of this window
-                if (mLimit > 1) {
-                    mLastTimestamp = now - (now % mPeriodMillis);
-                } else {
-                    mLastTimestamp = now;
-                }
-
-                if (newWindow) {
-                    mCount = 1;
-                } else {
-                    mCount++;
-                }
+        // Get the current time and add a random offset to avoid colliding with other
+        // caches with similar harmonic window boundaries
+        final long now = getTime() + mRandomOffset;
+        final boolean newWindow = cached == null || now - cached.timestamp >= mPeriodMillis;
+        if (newWindow || cached.count.getAndIncrement() < mLimit) {
+            // Fetch a new value
+            Value freshValue = query.fetchValue();
+            long freshTimestamp = now;
+            // If rate limiting, set timestamp to start of this window
+            if (mLimit > 1) {
+                freshTimestamp = now - (now % mPeriodMillis);
             }
-            return mCurrentValue;
+
+            CachedValue freshCached = new CachedValue();
+            freshCached.value = freshValue;
+            freshCached.timestamp = freshTimestamp;
+            if (newWindow) {
+                freshCached.count = new AtomicInteger(1);
+            } else {
+                freshCached.count = cached.count;
+            }
+
+            // If we fail to CAS then it means that another thread beat us to it.
+            // In this case we don't override their work.
+            mCachedValue.compareAndSet(cached, freshCached);
         }
+        return mCachedValue.get().value;
     }
 }
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 9a5849a..641ecc9 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -399,7 +399,9 @@
     @RemotableViewMethod(asyncImpl = "setIsCollapsedAsync")
     public void setIsCollapsed(boolean isCollapsed) {
         mIsCollapsed = isCollapsed;
-        mMessagingLinearLayout.setMaxDisplayedLines(isCollapsed ? 1 : Integer.MAX_VALUE);
+        mMessagingLinearLayout.setMaxDisplayedLines(isCollapsed
+                ? TextUtils.isEmpty(mSummarizedContent) ? 1 : 2
+                : Integer.MAX_VALUE);
         updateExpandButton();
         updateContentEndPaddings();
     }
@@ -448,7 +450,7 @@
 
         List<MessagingMessage> newMessagingMessages;
         mSummarizedContent = extras.getCharSequence(Notification.EXTRA_SUMMARIZED_CONTENT);
-        if (mSummarizedContent != null && mIsCollapsed) {
+        if (!TextUtils.isEmpty(mSummarizedContent) && mIsCollapsed) {
             Notification.MessagingStyle.Message summary =
                     new Notification.MessagingStyle.Message(mSummarizedContent,  0, "");
             newMessagingMessages = createMessages(List.of(summary), false, usePrecomputedText);
@@ -1162,7 +1164,7 @@
                 nameOverride = mNameReplacement;
             }
             newGroup.setShowingAvatar(!mIsOneToOne && !mIsCollapsed);
-            newGroup.setSingleLine(mIsCollapsed);
+            newGroup.setSingleLine(mIsCollapsed && TextUtils.isEmpty(mSummarizedContent));
             newGroup.setSender(sender, nameOverride);
             newGroup.setSending(groupIndex == (groups.size() - 1) && showSpinner);
             mGroups.add(newGroup);
@@ -1462,7 +1464,6 @@
                 maxHeight = Math.max(maxHeight,
                         child.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
             }
-
             maxHeight = Math.max(maxHeight, getSuggestedMinimumHeight());
             if (maxHeight != getMeasuredHeight()) {
                 setMeasuredDimension(getMeasuredWidth(), maxHeight);
diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java
index 90ab660..e9d920c 100644
--- a/core/java/com/android/internal/widget/MessagingLayout.java
+++ b/core/java/com/android/internal/widget/MessagingLayout.java
@@ -198,7 +198,8 @@
                 /* isHistoric= */true, usePrecomputedText);
         List<MessagingMessage> newMessagingMessages;
         mSummarizedContent = extras.getCharSequence(Notification.EXTRA_SUMMARIZED_CONTENT);
-        if (mSummarizedContent != null && mIsCollapsed) {
+        if (!TextUtils.isEmpty(mSummarizedContent) && mIsCollapsed) {
+            mMessagingLinearLayout.setMaxDisplayedLines(2);
             Notification.MessagingStyle.Message summary =
                     new Notification.MessagingStyle.Message(mSummarizedContent,  0, "");
             newMessagingMessages = createMessages(List.of(summary), false, usePrecomputedText);
@@ -488,7 +489,7 @@
             if (sender != mUser && mNameReplacement != null) {
                 nameOverride = mNameReplacement;
             }
-            newGroup.setSingleLine(mIsCollapsed);
+            newGroup.setSingleLine(mIsCollapsed && TextUtils.isEmpty(mSummarizedContent));
             newGroup.setShowingAvatar(!mIsCollapsed);
             newGroup.setSender(sender, nameOverride);
             newGroup.setSending(groupIndex == (groups.size() - 1) && showSpinner);
diff --git a/core/java/com/android/internal/widget/NotificationProgressBar.java b/core/java/com/android/internal/widget/NotificationProgressBar.java
index 5e82772..c0fe0d1 100644
--- a/core/java/com/android/internal/widget/NotificationProgressBar.java
+++ b/core/java/com/android/internal/widget/NotificationProgressBar.java
@@ -64,6 +64,7 @@
         NotificationProgressDrawable.BoundsChangeListener {
     private static final String TAG = "NotificationProgressBar";
     private static final boolean DEBUG = false;
+    private static final float FADED_OPACITY = 0.5f;
 
     private NotificationProgressDrawable mNotificationProgressDrawable;
     private final Rect mProgressDrawableBounds = new Rect();
@@ -83,7 +84,7 @@
 
     /** @see R.styleable#NotificationProgressBar_trackerHeight */
     private final int mTrackerHeight;
-    private int mTrackerWidth;
+    private int mTrackerDrawWidth = 0;
     private int mTrackerPos;
     private final Matrix mMatrix = new Matrix();
     private Matrix mTrackerDrawMatrix = null;
@@ -157,7 +158,7 @@
         } else {
             // TODO: b/372908709 - maybe don't rerun the entire calculation every time the
             //  progress model is updated? For example, if the segments and parts aren't changed,
-            //  there is no need to call `processAndConvertToViewParts` again.
+            //  there is no need to call `processModelAndConvertToViewParts` again.
 
             final int progress = mProgressModel.getProgress();
             final int progressMax = mProgressModel.getProgressMax();
@@ -286,8 +287,11 @@
     private void configureTrackerBounds() {
         // Reset the tracker draw matrix to null
         mTrackerDrawMatrix = null;
+        mTrackerDrawWidth = 0;
 
-        if (mTracker == null || mTrackerHeight <= 0) {
+        if (mTracker == null) return;
+        if (mTrackerHeight <= 0) {
+            mTrackerDrawWidth = mTracker.getIntrinsicWidth();
             return;
         }
 
@@ -306,14 +310,14 @@
         if (dWidth > maxDWidth) {
             scale = (float) mTrackerHeight / (float) dHeight;
             dx = (maxDWidth * scale - dWidth * scale) * 0.5f;
-            mTrackerWidth = (int) (maxDWidth * scale);
+            mTrackerDrawWidth = (int) (maxDWidth * scale);
         } else if (dHeight > maxDHeight) {
             scale = (float) mTrackerHeight * 0.5f / (float) dWidth;
             dy = (maxDHeight * scale - dHeight * scale) * 0.5f;
-            mTrackerWidth = mTrackerHeight / 2;
+            mTrackerDrawWidth = mTrackerHeight / 2;
         } else {
             scale = (float) mTrackerHeight / (float) dHeight;
-            mTrackerWidth = (int) (dWidth * scale);
+            mTrackerDrawWidth = (int) (dWidth * scale);
         }
 
         mTrackerDrawMatrix.setScale(scale, scale);
@@ -449,7 +453,8 @@
                 segSegGap,
                 segPointGap,
                 pointRadius,
-                mHasTrackerIcon
+                mHasTrackerIcon,
+                mTrackerDrawWidth
         );
 
         final float segmentMinWidth = mNotificationProgressDrawable.getSegmentMinWidth();
@@ -465,7 +470,6 @@
                     segmentMinWidth,
                     pointRadius,
                     progressFraction,
-                    width,
                     isStyledByProgress,
                     progressGap
             );
@@ -493,8 +497,8 @@
                         pointRadius,
                         mHasTrackerIcon,
                         segmentMinWidth,
-                        isStyledByProgress
-                );
+                        isStyledByProgress,
+                        mTrackerDrawWidth);
             } catch (NotEnoughWidthToFitAllPartsException ex) {
                 Log.w(TAG, "Failed to stretch and rescale segments with single segment fallback",
                         ex);
@@ -522,8 +526,8 @@
                         pointRadius,
                         mHasTrackerIcon,
                         segmentMinWidth,
-                        isStyledByProgress
-                );
+                        isStyledByProgress,
+                        mTrackerDrawWidth);
             } catch (NotEnoughWidthToFitAllPartsException ex) {
                 Log.w(TAG,
                         "Failed to stretch and rescale segments with single segments and no points",
@@ -537,16 +541,20 @@
                     mParts,
                     mProgressDrawableParts,
                     progressFraction,
-                    width,
                     isStyledByProgress,
                     progressGap);
         }
 
+        // Extend the first and last segments to fill the entire width.
+        p.first.getFirst().setStart(0);
+        p.first.getLast().setEnd(width);
+
         if (DEBUG) {
             Log.d(TAG, "Updating NotificationProgressDrawable parts");
         }
         mNotificationProgressDrawable.setParts(p.first);
-        mAdjustedProgressFraction = p.second / width;
+        mAdjustedProgressFraction =
+                (p.second - mTrackerDrawWidth / 2F) / (width - mTrackerDrawWidth);
     }
 
     private void updateTrackerAndBarPos(int w, int h) {
@@ -607,7 +615,7 @@
         int available = w - mPaddingLeft - mPaddingRight;
         final int trackerWidth = tracker.getIntrinsicWidth();
         final int trackerHeight = tracker.getIntrinsicHeight();
-        available -= ((mTrackerHeight <= 0) ? trackerWidth : mTrackerWidth);
+        available -= mTrackerDrawWidth;
 
         final int trackerPos = (int) (progressFraction * available + 0.5f);
 
@@ -672,7 +680,7 @@
         canvas.translate(mPaddingLeft + mTrackerPos, mPaddingTop);
 
         if (mTrackerHeight > 0) {
-            canvas.clipRect(0, 0, mTrackerWidth, mTrackerHeight);
+            canvas.clipRect(0, 0, mTrackerDrawWidth, mTrackerHeight);
         }
 
         if (mTrackerDrawMatrix != null) {
@@ -751,6 +759,7 @@
             throw new IllegalArgumentException("Invalid progress : " + progress);
         }
 
+
         for (ProgressStyle.Point point : points) {
             final int pos = point.getPosition();
             if (pos < 0 || pos > progressMax) {
@@ -758,6 +767,19 @@
             }
         }
 
+        // There should be no points at start or end. If there are, drop them with a warning.
+        points.removeIf(point -> {
+            final int pos = point.getPosition();
+            if (pos == 0) {
+                Log.w(TAG, "Dropping point at start");
+                return true;
+            } else if (pos == progressMax) {
+                Log.w(TAG, "Dropping point at end");
+                return true;
+            }
+            return false;
+        });
+
         final Map<Integer, ProgressStyle.Segment> startToSegmentMap = generateStartToSegmentMap(
                 segments);
         final Map<Integer, ProgressStyle.Point> positionToPointMap = generatePositionToPointMap(
@@ -830,12 +852,12 @@
     }
 
     /**
-     * Get a color with an opacity that's 50% of the input color.
+     * Get a color that's the input color with opacity updated to FADED_OPACITY.
      */
     @ColorInt
     static int getFadedColor(@ColorInt int color) {
         return Color.argb(
-                (int) (Color.alpha(color) * 0.5f + 0.5f),
+                (int) (Color.alpha(color) * FADED_OPACITY + 0.5f),
                 Color.red(color),
                 Color.green(color),
                 Color.blue(color));
@@ -891,12 +913,14 @@
             float segSegGap,
             float segPointGap,
             float pointRadius,
-            boolean hasTrackerIcon
-    ) {
+            boolean hasTrackerIcon,
+            int trackerDrawWidth) {
         List<DrawablePart> drawableParts = new ArrayList<>();
 
-        // generally, we will start drawing at (x, y) and end at (x+w, y)
-        float x = (float) 0;
+        float available = totalWidth - trackerDrawWidth;
+        // Generally, we will start the first segment at (x+trackerDrawWidth/2, y) and end the last
+        // segment at (x+w-trackerDrawWidth/2, y)
+        float x = trackerDrawWidth / 2F;
 
         final int nParts = parts.size();
         for (int iPart = 0; iPart < nParts; iPart++) {
@@ -904,15 +928,14 @@
             final Part prevPart = iPart == 0 ? null : parts.get(iPart - 1);
             final Part nextPart = iPart + 1 == nParts ? null : parts.get(iPart + 1);
             if (part instanceof Segment segment) {
-                final float segWidth = segment.mFraction * totalWidth;
+                final float segWidth = segment.mFraction * available;
                 // Advance the start position to account for a point immediately prior.
-                final float startOffset = getSegStartOffset(prevPart, pointRadius, segPointGap,
-                        iPart == 1);
+                final float startOffset = getSegStartOffset(prevPart, pointRadius, segPointGap);
                 final float start = x + startOffset;
                 // Retract the end position to account for the padding and a point immediately
                 // after.
                 final float endOffset = getSegEndOffset(segment, nextPart, pointRadius, segPointGap,
-                        segSegGap, iPart == nParts - 2, hasTrackerIcon);
+                        segSegGap, hasTrackerIcon);
                 final float end = x + segWidth - endOffset;
 
                 drawableParts.add(new DrawableSegment(start, end, segment.mColor, segment.mFaded));
@@ -927,16 +950,6 @@
                 final float pointWidth = 2 * pointRadius;
                 float start = x - pointRadius;
                 float end = x + pointRadius;
-                // Only shift the points right at the start/end.
-                // For the points close to the start/end, the segment minimum width requirement
-                // would take care of shifting them to be within the bounds.
-                if (iPart == 0) {
-                    start = 0;
-                    end = pointWidth;
-                } else if (iPart == nParts - 1) {
-                    start = totalWidth - pointWidth;
-                    end = totalWidth;
-                }
 
                 drawableParts.add(new DrawablePoint(start, end, point.mColor));
             }
@@ -945,16 +958,13 @@
         return drawableParts;
     }
 
-    private static float getSegStartOffset(Part prevPart, float pointRadius, float segPointGap,
-            boolean isSecondPart) {
+    private static float getSegStartOffset(Part prevPart, float pointRadius, float segPointGap) {
         if (!(prevPart instanceof Point)) return 0F;
-        final float pointOffset = isSecondPart ? pointRadius : 0;
-        return pointOffset + pointRadius + segPointGap;
+        return pointRadius + segPointGap;
     }
 
     private static float getSegEndOffset(Segment seg, Part nextPart, float pointRadius,
-            float segPointGap, float segSegGap, boolean isSecondToLastPart,
-            boolean hasTrackerIcon) {
+            float segPointGap, float segSegGap, boolean hasTrackerIcon) {
         if (nextPart == null) return 0F;
         if (nextPart instanceof Segment nextSeg) {
             if (!seg.mFaded && nextSeg.mFaded) {
@@ -964,8 +974,7 @@
             return segSegGap;
         }
 
-        final float pointOffset = isSecondToLastPart ? pointRadius : 0;
-        return segPointGap + pointRadius + pointOffset;
+        return segPointGap + pointRadius;
     }
 
     /**
@@ -980,7 +989,6 @@
             float segmentMinWidth,
             float pointRadius,
             float progressFraction,
-            float totalWidth,
             boolean isStyledByProgress,
             float progressGap
     ) throws NotEnoughWidthToFitAllPartsException {
@@ -1003,7 +1011,6 @@
                     parts,
                     drawableParts,
                     progressFraction,
-                    totalWidth,
                     isStyledByProgress,
                     progressGap);
         }
@@ -1056,7 +1063,6 @@
                 parts,
                 drawableParts,
                 progressFraction,
-                totalWidth,
                 isStyledByProgress,
                 progressGap);
     }
@@ -1071,11 +1077,12 @@
             List<Part> parts,
             List<DrawablePart> drawableParts,
             float progressFraction,
-            float totalWidth,
             boolean isStyledByProgress,
             float progressGap
     ) {
-        if (progressFraction == 1) return new Pair<>(drawableParts, totalWidth);
+        if (progressFraction == 1) {
+            return new Pair<>(drawableParts, drawableParts.getLast().getEnd());
+        }
 
         int iPartFirstSegmentToStyle = -1;
         int iPartSegmentToSplit = -1;
@@ -1162,14 +1169,15 @@
             float pointRadius,
             boolean hasTrackerIcon,
             float segmentMinWidth,
-            boolean isStyledByProgress
+            boolean isStyledByProgress,
+            int trackerDrawWidth
     ) throws NotEnoughWidthToFitAllPartsException {
         List<Part> parts = processModelAndConvertToViewParts(segments, points, progress,
                 progressMax);
         List<DrawablePart> drawableParts = processPartsAndConvertToDrawableParts(parts, totalWidth,
-                segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                segSegGap, segPointGap, pointRadius, hasTrackerIcon, trackerDrawWidth);
         return maybeStretchAndRescaleSegments(parts, drawableParts, segmentMinWidth, pointRadius,
-                getProgressFraction(progressMax, progress), totalWidth, isStyledByProgress,
+                getProgressFraction(progressMax, progress), isStyledByProgress,
                 hasTrackerIcon ? 0F : segSegGap);
     }
 
@@ -1193,7 +1201,7 @@
          * <p>
          * <pre>
          *     When mFaded is set to true, a combination of the following is done to the segment:
-         *       1. The drawing color is mColor with opacity updated to 50%.
+         *       1. The drawing color is mColor with opacity updated to FADED_OPACITY.
          *       2. The gap between faded and non-faded segments is:
          *          - the segment-segment gap, when there is no tracker icon
          *          - 0, when there is tracker icon
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index a2f4ca2..06702e2 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -42,6 +42,8 @@
 
         "-DU_USING_ICU_NAMESPACE=0",
 
+        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
+
         "-Wall",
         "-Werror",
         "-Wextra",
@@ -132,6 +134,10 @@
                 "android_app_ActivityThread.cpp",
                 "android_app_NativeActivity.cpp",
                 "android_app_admin_SecurityLog.cpp",
+                "android_media_ImageReader.cpp",
+                "android_media_ImageWriter.cpp",
+                "android_media_PublicFormatUtils.cpp",
+                "android_media_Utils.cpp",
                 "android_opengl_EGL14.cpp",
                 "android_opengl_EGL15.cpp",
                 "android_opengl_EGLExt.cpp",
@@ -529,3 +535,35 @@
         "vintf",
     ],
 }
+
+cc_library_shared {
+    name: "libmedia_jni_utils",
+    srcs: [
+        ":libgui_frame_event_aidl",
+        "android_media_Utils.cpp",
+    ],
+
+    header_libs: [
+        "libgui_headers",
+    ],
+
+    shared_libs: [
+        "liblog",
+        "libui",
+        "libutils",
+    ],
+
+    include_dirs: [
+        "system/media/camera/include",
+    ],
+
+    export_include_dirs: ["."],
+
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wno-error=deprecated-declarations",
+        "-Wunused",
+        "-Wunreachable-code",
+    ],
+}
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 5c0b720..b2b8263 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -102,7 +102,10 @@
 extern int register_android_media_AudioProductStrategies(JNIEnv *env);
 extern int register_android_media_AudioVolumeGroups(JNIEnv *env);
 extern int register_android_media_AudioVolumeGroupChangeHandler(JNIEnv *env);
+extern int register_android_media_ImageReader(JNIEnv *env);
+extern int register_android_media_ImageWriter(JNIEnv *env);
 extern int register_android_media_MicrophoneInfo(JNIEnv *env);
+extern int register_android_media_PublicFormatUtils(JNIEnv *env);
 extern int register_android_media_ToneGenerator(JNIEnv *env);
 extern int register_android_media_audio_common_AidlConversion(JNIEnv* env);
 extern int register_android_media_midi(JNIEnv *env);
@@ -1658,8 +1661,11 @@
         REG_JNI(register_android_media_AudioProductStrategies),
         REG_JNI(register_android_media_AudioVolumeGroups),
         REG_JNI(register_android_media_AudioVolumeGroupChangeHandler),
+        REG_JNI(register_android_media_ImageReader),
+        REG_JNI(register_android_media_ImageWriter),
         REG_JNI(register_android_media_MediaMetrics),
         REG_JNI(register_android_media_MicrophoneInfo),
+        REG_JNI(register_android_media_PublicFormatUtils),
         REG_JNI(register_android_media_RemoteDisplay),
         REG_JNI(register_android_media_ToneGenerator),
         REG_JNI(register_android_media_audio_common_AidlConversion),
diff --git a/core/jni/android_content_res_ObbScanner.cpp b/core/jni/android_content_res_ObbScanner.cpp
index 760037f..5b412ab1 100644
--- a/core/jni/android_content_res_ObbScanner.cpp
+++ b/core/jni/android_content_res_ObbScanner.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "ObbScanner"
 
diff --git a/core/jni/android_graphics_BLASTBufferQueue.cpp b/core/jni/android_graphics_BLASTBufferQueue.cpp
index 10d6d33..a526783 100644
--- a/core/jni/android_graphics_BLASTBufferQueue.cpp
+++ b/core/jni/android_graphics_BLASTBufferQueue.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "BLASTBufferQueue"
 
diff --git a/core/jni/android_graphics_GraphicBuffer.cpp b/core/jni/android_graphics_GraphicBuffer.cpp
index d5765f1..61dbb32 100644
--- a/core/jni/android_graphics_GraphicBuffer.cpp
+++ b/core/jni/android_graphics_GraphicBuffer.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "GraphicBuffer"
 
diff --git a/core/jni/android_graphics_SurfaceTexture.cpp b/core/jni/android_graphics_SurfaceTexture.cpp
index 8dd63cc..93d1e2e 100644
--- a/core/jni/android_graphics_SurfaceTexture.cpp
+++ b/core/jni/android_graphics_SurfaceTexture.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #undef LOG_TAG
 #define LOG_TAG "SurfaceTexture"
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index 4240614..003ebc0 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -14,6 +14,7 @@
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "Camera-JNI"
diff --git a/core/jni/android_hardware_HardwareBuffer.cpp b/core/jni/android_hardware_HardwareBuffer.cpp
index 2ea2158d..c8059f3 100644
--- a/core/jni/android_hardware_HardwareBuffer.cpp
+++ b/core/jni/android_hardware_HardwareBuffer.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "HardwareBuffer"
 
diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp
index 56ea52d..2864a57 100644
--- a/core/jni/android_hardware_SensorManager.cpp
+++ b/core/jni/android_hardware_SensorManager.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 #define LOG_TAG "SensorManager"
 
 #include <nativehelper/JNIHelp.h>
diff --git a/core/jni/android_hardware_camera2_CameraMetadata.cpp b/core/jni/android_hardware_camera2_CameraMetadata.cpp
index a098737..7629faa 100644
--- a/core/jni/android_hardware_camera2_CameraMetadata.cpp
+++ b/core/jni/android_hardware_camera2_CameraMetadata.cpp
@@ -14,6 +14,7 @@
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 // #define LOG_NDEBUG 0
 #include <memory>
diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp
index 82570be8..828f2eb 100644
--- a/core/jni/android_hardware_camera2_DngCreator.cpp
+++ b/core/jni/android_hardware_camera2_DngCreator.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "DngCreator_JNI"
diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp
index f1c4913..a3de6fb 100644
--- a/core/jni/android_hardware_input_InputWindowHandle.cpp
+++ b/core/jni/android_hardware_input_InputWindowHandle.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "InputWindowHandle"
 
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index 5a18392..102edc9 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index 3d9a19e..2ba6bc4 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -14,6 +14,7 @@
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 
diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp
index 5d4d1ce..3fc1a02 100644
--- a/core/jni/android_media_AudioTrack.cpp
+++ b/core/jni/android_media_AudioTrack.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 //#define LOG_NDEBUG 0
 
 #define LOG_TAG "AudioTrack-JNI"
diff --git a/core/jni/android_media_AudioVolumeGroupCallback.cpp b/core/jni/android_media_AudioVolumeGroupCallback.cpp
index cb4ddbd..d130a4b 100644
--- a/core/jni/android_media_AudioVolumeGroupCallback.cpp
+++ b/core/jni/android_media_AudioVolumeGroupCallback.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 
diff --git a/media/jni/android_media_ImageReader.cpp b/core/jni/android_media_ImageReader.cpp
similarity index 99%
rename from media/jni/android_media_ImageReader.cpp
rename to core/jni/android_media_ImageReader.cpp
index effa92c..20b9c57 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/core/jni/android_media_ImageReader.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "ImageReader_JNI"
diff --git a/media/jni/android_media_ImageWriter.cpp b/core/jni/android_media_ImageWriter.cpp
similarity index 99%
rename from media/jni/android_media_ImageWriter.cpp
rename to core/jni/android_media_ImageWriter.cpp
index 93deb51..1357dd8 100644
--- a/media/jni/android_media_ImageWriter.cpp
+++ b/core/jni/android_media_ImageWriter.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "ImageWriter_JNI"
diff --git a/media/jni/android_media_PublicFormatUtils.cpp b/core/jni/android_media_PublicFormatUtils.cpp
similarity index 100%
rename from media/jni/android_media_PublicFormatUtils.cpp
rename to core/jni/android_media_PublicFormatUtils.cpp
diff --git a/core/jni/android_media_RemoteDisplay.cpp b/core/jni/android_media_RemoteDisplay.cpp
index 3b517f1..cf96f02 100644
--- a/core/jni/android_media_RemoteDisplay.cpp
+++ b/core/jni/android_media_RemoteDisplay.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "RemoteDisplay"
 
diff --git a/core/jni/android_media_ToneGenerator.cpp b/core/jni/android_media_ToneGenerator.cpp
index cc4657d..3c590c3 100644
--- a/core/jni/android_media_ToneGenerator.cpp
+++ b/core/jni/android_media_ToneGenerator.cpp
@@ -14,6 +14,7 @@
  ** See the License for the specific language governing permissions and
  ** limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "ToneGenerator"
 #include <stdio.h>
diff --git a/media/jni/android_media_Utils.cpp b/core/jni/android_media_Utils.cpp
similarity index 100%
rename from media/jni/android_media_Utils.cpp
rename to core/jni/android_media_Utils.cpp
diff --git a/media/jni/android_media_Utils.h b/core/jni/android_media_Utils.h
similarity index 100%
rename from media/jni/android_media_Utils.h
rename to core/jni/android_media_Utils.h
diff --git a/core/jni/android_opengl_EGL14.cpp b/core/jni/android_opengl_EGL14.cpp
index 917d283..7e9beef 100644
--- a/core/jni/android_opengl_EGL14.cpp
+++ b/core/jni/android_opengl_EGL14.cpp
@@ -632,7 +632,7 @@
     if (producer == NULL)
         goto not_valid_surface;
 
-    window = new android::Surface(producer, true);
+    window = android::sp<android::Surface>::make(producer, true);
 
     if (window == NULL)
         goto not_valid_surface;
diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp
index 734b5f4..8060e62 100644
--- a/core/jni/android_os_HwBinder.cpp
+++ b/core/jni/android_os_HwBinder.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "android_os_HwBinder"
diff --git a/core/jni/android_os_HwBlob.cpp b/core/jni/android_os_HwBlob.cpp
index e554b44..df579af 100644
--- a/core/jni/android_os_HwBlob.cpp
+++ b/core/jni/android_os_HwBlob.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "android_os_HwBlob"
diff --git a/core/jni/android_os_HwParcel.cpp b/core/jni/android_os_HwParcel.cpp
index c786652..727455c 100644
--- a/core/jni/android_os_HwParcel.cpp
+++ b/core/jni/android_os_HwParcel.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "android_os_HwParcel"
diff --git a/core/jni/android_os_HwRemoteBinder.cpp b/core/jni/android_os_HwRemoteBinder.cpp
index d2d7213..3b56709 100644
--- a/core/jni/android_os_HwRemoteBinder.cpp
+++ b/core/jni/android_os_HwRemoteBinder.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 //#define LOG_NDEBUG 0
 #define LOG_TAG "JHwRemoteBinder"
diff --git a/core/jni/android_os_MessageQueue.cpp b/core/jni/android_os_MessageQueue.cpp
index 30d9ea1..d5d5521 100644
--- a/core/jni/android_os_MessageQueue.cpp
+++ b/core/jni/android_os_MessageQueue.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "MessageQueue-JNI"
 
diff --git a/core/jni/android_tracing_PerfettoDataSource.cpp b/core/jni/android_tracing_PerfettoDataSource.cpp
index fec2898..ea896e1 100644
--- a/core/jni/android_tracing_PerfettoDataSource.cpp
+++ b/core/jni/android_tracing_PerfettoDataSource.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "NativeJavaPerfettoDs"
 
@@ -489,4 +490,4 @@
     return 0;
 }
 
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp
index 639f5bf..a0c8f30 100644
--- a/core/jni/android_util_Binder.cpp
+++ b/core/jni/android_util_Binder.cpp
@@ -13,9 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 #define LOG_TAG "JavaBinder"
-//#define LOG_NDEBUG 0
+// #define LOG_NDEBUG 0
 
 #include "android_util_Binder.h"
 
@@ -478,7 +477,7 @@
         if (b) return b;
 
         // b/360067751: constructor may trigger GC, so call outside lock
-        b = new JavaBBinder(env, obj);
+        b = sp<JavaBBinder>::make(env, obj);
 
         {
             AutoMutex _l(mLock);
@@ -645,11 +644,17 @@
         } else {
             mObject = env->NewGlobalRef(object);
         }
+    }
+
+    void onFirstRef() override {
+        T::onFirstRef();
+
+        sp<RecipientList<T>> list = mList.promote();
         // These objects manage their own lifetimes so are responsible for final bookkeeping.
         // The list holds a strong reference to this object.
         LOG_DEATH_FREEZE("%s Adding JavaRecipient %p to RecipientList %p", logPrefix<T>(), this,
                          list.get());
-        list->add(this);
+        list->add(sp<JavaRecipient>::fromExisting(this));
     }
 
     void clearReference() {
@@ -657,7 +662,7 @@
         if (list != NULL) {
             LOG_DEATH_FREEZE("%s Removing JavaRecipient %p from RecipientList %p", logPrefix<T>(),
                              this, list.get());
-            list->remove(this);
+            list->remove(sp<JavaRecipient>::fromExisting(this));
         } else {
             LOG_DEATH_FREEZE("%s clearReference() on JavaRecipient %p but RecipientList wp purged",
                              logPrefix<T>(), this);
@@ -939,7 +944,7 @@
     // Frozen state change callbacks for mObject. Reference counted only because
     // JavaFrozenStateChangeCallback hold a weak reference that can be
     // temporarily promoted.
-    sp<FrozenStateChangeCallbackList> mFrozenStateChangCallbackList;
+    sp<FrozenStateChangeCallbackList> mFrozenStateChangeCallbackList;
 };
 
 BinderProxyNativeData* getBPNativeData(JNIEnv* env, jobject obj) {
@@ -964,8 +969,8 @@
     }
 
     BinderProxyNativeData* nativeData = new BinderProxyNativeData();
-    nativeData->mOrgue = new DeathRecipientList;
-    nativeData->mFrozenStateChangCallbackList = new FrozenStateChangeCallbackList;
+    nativeData->mOrgue = sp<DeathRecipientList>::make();
+    nativeData->mFrozenStateChangeCallbackList = sp<FrozenStateChangeCallbackList>::make();
     nativeData->mObject = val;
 
     jobject object = env->CallStaticObjectMethod(gBinderProxyOffsets.mClass,
@@ -1571,8 +1576,8 @@
     LOG_DEATH_FREEZE("linkToDeath: binder=%p recipient=%p\n", target, recipient);
 
     if (!target->localBinder()) {
-        DeathRecipientList* list = nd->mOrgue.get();
-        sp<JavaDeathRecipient> jdr = new JavaDeathRecipient(env, recipient, list);
+        sp<DeathRecipientList> list = nd->mOrgue;
+        sp<JavaDeathRecipient> jdr = sp<JavaDeathRecipient>::make(env, recipient, list);
         status_t err = target->linkToDeath(jdr, NULL, flags);
         if (err != NO_ERROR) {
             // Failure adding the death recipient, so clear its reference
@@ -1648,7 +1653,7 @@
     LOG_DEATH_FREEZE("addFrozenStateChangeCallback: binder=%p callback=%p\n", target, callback);
 
     if (!target->localBinder()) {
-        FrozenStateChangeCallbackList* list = nd->mFrozenStateChangCallbackList.get();
+        sp<FrozenStateChangeCallbackList> list = nd->mFrozenStateChangeCallbackList;
         auto jfscc = sp<JavaFrozenStateChangeCallback>::make(env, callback, list);
         status_t err = target->addFrozenStateChangeCallback(jfscc);
         if (err != NO_ERROR) {
@@ -1682,7 +1687,7 @@
         status_t err = NAME_NOT_FOUND;
 
         // If we find the matching callback, proceed to unlink using that
-        FrozenStateChangeCallbackList* list = nd->mFrozenStateChangCallbackList.get();
+        FrozenStateChangeCallbackList* list = nd->mFrozenStateChangeCallbackList.get();
         sp<JavaRecipient<IBinder::FrozenStateChangeCallback> > origJFSCC = list->find(callback);
         LOG_DEATH_FREEZE("   removeFrozenStateChangeCallback found list %p and JFSCC %p", list,
                          origJFSCC.get());
@@ -1715,7 +1720,7 @@
     BinderProxyNativeData * nativeData = (BinderProxyNativeData *) rawNativeData;
     LOG_DEATH_FREEZE("Destroying BinderProxy: binder=%p drl=%p fsccl=%p\n",
                      nativeData->mObject.get(), nativeData->mOrgue.get(),
-                     nativeData->mFrozenStateChangCallbackList.get());
+                     nativeData->mFrozenStateChangeCallbackList.get());
     delete nativeData;
     IPCThreadState::self()->flushCommands();
 }
diff --git a/core/jni/android_view_CompositionSamplingListener.cpp b/core/jni/android_view_CompositionSamplingListener.cpp
index 59c01dc..28616a0 100644
--- a/core/jni/android_view_CompositionSamplingListener.cpp
+++ b/core/jni/android_view_CompositionSamplingListener.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "CompositionSamplingListener"
 
diff --git a/core/jni/android_view_DisplayEventReceiver.cpp b/core/jni/android_view_DisplayEventReceiver.cpp
index 7ff1f8c..31b9fd1 100644
--- a/core/jni/android_view_DisplayEventReceiver.cpp
+++ b/core/jni/android_view_DisplayEventReceiver.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "DisplayEventReceiver"
 
@@ -283,6 +284,8 @@
                             displayId.value, modeId);
         ALOGV("receiver %p ~ Returned from Mode Rejected handler.", this);
     }
+
+    mMessageQueue->raiseAndClearException(env, "dispatchModeRejected");
 }
 
 void NativeDisplayEventReceiver::dispatchFrameRateOverrides(
@@ -313,7 +316,7 @@
         ALOGV("receiver %p ~ Returned from FrameRateOverride handler.", this);
     }
 
-    mMessageQueue->raiseAndClearException(env, "dispatchModeChanged");
+    mMessageQueue->raiseAndClearException(env, "dispatchFrameRateOverrides");
 }
 
 void NativeDisplayEventReceiver::dispatchHdcpLevelsChanged(PhysicalDisplayId displayId,
diff --git a/core/jni/android_view_InputEventReceiver.cpp b/core/jni/android_view_InputEventReceiver.cpp
index 6272fb1..535bfd2 100644
--- a/core/jni/android_view_InputEventReceiver.cpp
+++ b/core/jni/android_view_InputEventReceiver.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "InputEventReceiver"
 #define ATRACE_TAG ATRACE_TAG_INPUT
diff --git a/core/jni/android_view_InputEventSender.cpp b/core/jni/android_view_InputEventSender.cpp
index 88b02ba..01309b7 100644
--- a/core/jni/android_view_InputEventSender.cpp
+++ b/core/jni/android_view_InputEventSender.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "InputEventSender"
 
diff --git a/core/jni/android_view_InputQueue.cpp b/core/jni/android_view_InputQueue.cpp
index 50d2cbe..17165d8 100644
--- a/core/jni/android_view_InputQueue.cpp
+++ b/core/jni/android_view_InputQueue.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "InputQueue"
 
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index ac6298d..312c206 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "Surface"
 
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 6f69e40..b99b0ef 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "SurfaceControl"
 #define LOG_NDEBUG 0
@@ -1121,14 +1122,6 @@
     transaction->setClientDrawnCornerRadius(ctrl, clientDrawnCornerRadius);
 }
 
-static void nativeSetClientDrawnShadows(JNIEnv* env, jclass clazz, jlong transactionObj,
-                                        jlong nativeObject, jfloat clientDrawnShadowRadius) {
-    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
-
-    SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl*>(nativeObject);
-    transaction->setClientDrawnShadowRadius(ctrl, clientDrawnShadowRadius);
-}
-
 static void nativeSetBackgroundBlurRadius(JNIEnv* env, jclass clazz, jlong transactionObj,
          jlong nativeObject, jint blurRadius) {
     auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
@@ -2565,8 +2558,6 @@
             (void*)nativeSetCornerRadius },
     {"nativeSetClientDrawnCornerRadius", "(JJF)V",
             (void*) nativeSetClientDrawnCornerRadius },
-    {"nativeSetClientDrawnShadows", "(JJF)V",
-            (void*) nativeSetClientDrawnShadows },
     {"nativeSetBackgroundBlurRadius", "(JJI)V",
             (void*)nativeSetBackgroundBlurRadius },
     {"nativeSetLayerStack", "(JJI)V",
diff --git a/core/jni/android_view_SurfaceControlHdrLayerInfoListener.cpp b/core/jni/android_view_SurfaceControlHdrLayerInfoListener.cpp
index 443f99a..09cb811 100644
--- a/core/jni/android_view_SurfaceControlHdrLayerInfoListener.cpp
+++ b/core/jni/android_view_SurfaceControlHdrLayerInfoListener.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "SurfaceControlHdrLayerInfoListener"
 
diff --git a/core/jni/android_view_SurfaceSession.cpp b/core/jni/android_view_SurfaceSession.cpp
index 0aac07d..6ad109e 100644
--- a/core/jni/android_view_SurfaceSession.cpp
+++ b/core/jni/android_view_SurfaceSession.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "SurfaceSession"
 
diff --git a/core/jni/android_view_TextureView.cpp b/core/jni/android_view_TextureView.cpp
index 391f515..21fe1f0 100644
--- a/core/jni/android_view_TextureView.cpp
+++ b/core/jni/android_view_TextureView.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #include "jni.h"
 #include <nativehelper/JNIHelp.h>
diff --git a/core/jni/android_view_TunnelModeEnabledListener.cpp b/core/jni/android_view_TunnelModeEnabledListener.cpp
index d9ab957..fd78a94 100644
--- a/core/jni/android_view_TunnelModeEnabledListener.cpp
+++ b/core/jni/android_view_TunnelModeEnabledListener.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "TunnelModeEnabledListener"
 
diff --git a/core/jni/android_window_InputTransferToken.cpp b/core/jni/android_window_InputTransferToken.cpp
index 5bcea9b..f92d128 100644
--- a/core/jni/android_window_InputTransferToken.cpp
+++ b/core/jni/android_window_InputTransferToken.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "InputTransferToken"
 
@@ -137,4 +138,4 @@
     return err;
 }
 
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/core/jni/android_window_ScreenCapture.cpp b/core/jni/android_window_ScreenCapture.cpp
index 5657fa1..7b085b1 100644
--- a/core/jni/android_window_ScreenCapture.cpp
+++ b/core/jni/android_window_ScreenCapture.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "ScreenCapture"
 // #define LOG_NDEBUG 0
diff --git a/core/jni/android_window_WindowInfosListener.cpp b/core/jni/android_window_WindowInfosListener.cpp
index c39d5e2..30846ef 100644
--- a/core/jni/android_window_WindowInfosListener.cpp
+++ b/core/jni/android_window_WindowInfosListener.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #define LOG_TAG "WindowInfosListener"
 
diff --git a/core/jni/com_google_android_gles_jni_EGLImpl.cpp b/core/jni/com_google_android_gles_jni_EGLImpl.cpp
index 5aea848..75330be 100644
--- a/core/jni/com_google_android_gles_jni_EGLImpl.cpp
+++ b/core/jni/com_google_android_gles_jni_EGLImpl.cpp
@@ -14,6 +14,7 @@
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
+#undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code
 
 #include <nativehelper/JNIHelp.h>
 #include <android_runtime/AndroidRuntime.h>
diff --git a/core/proto/android/nfc/OWNERS b/core/proto/android/nfc/OWNERS
index ca16721..36823ae 100644
--- a/core/proto/android/nfc/OWNERS
+++ b/core/proto/android/nfc/OWNERS
@@ -1 +1 @@
-include platform/packages/apps/Nfc:/OWNERS
\ No newline at end of file
+include platform/packages/modules/Nfc:/OWNERS
\ No newline at end of file
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index c9f4cdc..5104988 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -9385,6 +9385,10 @@
             android:permission="android.permission.BIND_JOB_SERVICE">
         </service>
 
+        <service android:name="com.android.server.security.UpdateCertificateRevocationStatusJobService"
+            android:permission="android.permission.BIND_JOB_SERVICE">
+        </service>
+
         <service android:name="com.android.server.pm.PackageManagerShellCommandDataLoader"
             android:exported="false">
             <intent-filter>
diff --git a/core/res/res/drawable/ic_notification_summarization.xml b/core/res/res/drawable/ic_notification_summarization.xml
new file mode 100644
index 0000000..de905fa
--- /dev/null
+++ b/core/res/res/drawable/ic_notification_summarization.xml
@@ -0,0 +1,23 @@
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="16dp"
+    android:height="16dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path android:fillColor="#ffffff" android:pathData="M354,673L480,597L606,674L573,530L684,434L538,421L480,285L422,420L276,433L387,530L354,673ZM233,840L298,559L80,370L368,345L480,80L592,345L880,370L662,559L727,840L480,691L233,840ZM480,490L480,490L480,490L480,490L480,490L480,490L480,490L480,490L480,490L480,490Z"/>
+</vector>
\ No newline at end of file
diff --git a/core/res/res/layout/alert_dialog_watch.xml b/core/res/res/layout/alert_dialog_watch.xml
index cb81fc5..c78f839 100644
--- a/core/res/res/layout/alert_dialog_watch.xml
+++ b/core/res/res/layout/alert_dialog_watch.xml
@@ -103,7 +103,7 @@
                     <!-- Positive Button -->
                     <Button
                         android:id="@+id/button1"
-                        style="@*android:style/Widget.DeviceDefault.Button.Filled"
+                        style="@*android:style/Widget.Material3.Button.Filled"
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
                         android:layout_gravity="center"
@@ -111,7 +111,7 @@
                     <!--Neutral Button -->
                     <Button
                         android:id="@+id/button3"
-                        style="@*android:style/Widget.DeviceDefault.Button.WearMaterial3"
+                        style="@*android:style/Widget.Material3.Button"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_gravity="center"
@@ -119,7 +119,7 @@
                     <!-- Negative Button -->
                     <Button
                         android:id="@+id/button2"
-                        style="@*android:style/Widget.DeviceDefault.Button.WearMaterial3"
+                        style="@*android:style/Widget.Material3.Button"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="4dp"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 1c7ce89..5da0924 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Ontspeld"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Ontspeld <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Appinligting"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direktedelingteikens"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Appvoorstelle"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Applys"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Begin tans demonstrasie …"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Stel toestel tans terug …"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-paneel links"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-paneel regs"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-paneel middel"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Outoklik-tipe instellingspaneel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Linksklik"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Onderbreek"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posisie"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"het \'n prent gestuur"</string>
@@ -2255,7 +2270,7 @@
     <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Deur jou IT-admin geblokkeer"</string>
     <string name="resolver_cant_share_with_work_apps_explanation" msgid="9071442683080586643">"Hierdie inhoud kan nie met werkprogramme gedeel word nie"</string>
     <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Hierdie inhoud kan nie met werkprogramme oopgemaak word nie"</string>
-    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Hierdie inhoud kan nie met persoonlike programme gedeel word nie"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Hierdie inhoud kan nie met persoonlike apps gedeel word nie"</string>
     <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Hierdie inhoud kan nie met persoonlike programme oopgemaak word nie"</string>
     <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Werkapps is onderbreek"</string>
     <string name="resolver_switch_on_work" msgid="4527096360772311894">"Hervat"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Jou vingerafdrukke kan nie meer herken word nie. Stel Vingerafdrukslot weer op."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-toestel is ingeprop wanneer dit gesluit is"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-toestel is ingeprop wanneer jou Android gesluit is. Om die toestel te gebruik, moet jy eers jou Android ontsluit en dan weer die USB-toestel insit om dit te gebruik."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Verdagte USB-aktiwiteit"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-datasein is gedeaktiveer."</string>
 </resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 0f5fee4..c55f1c6 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ንቀል"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ንቀል"</string>
     <string name="app_info" msgid="6113278084877079851">"የመተግበሪያ መረጃ"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"የቀጥታ ማጋራት ዒላማዎች"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"የመተግበሪያ አስተያየቶች"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"የመተግበሪያ ዝርዝር"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"ከDpad በስተግራ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"ከDpad በስተቀኝ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"የDpad ማዕከል"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"የራስ-ሰር ጠቅ ማድረግ ትየባ ቅንብሮች ፓነል"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"የግራ ጠቅታ"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ባለበት አቁም"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"አቀማመጥ"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ወደ የRESTRICTED ባልዲ ተከትቷል"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>፦"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"አንድ ምስል ልከዋል"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ካርታዎች"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"መተግበሪያዎች"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ከእንግዲህ የጣት አሻራዎችዎ ሊለዩ አይችሉም። በጣት አሻራ መክፈቻን እንደገና ያዋቅሩ።"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ሲቆለፍ የUSB መሣሪያ ተሰክቷል።"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android ሲቆለፍ የUSB መሣሪያ ተሰክቷል። መሣሪያ ለመጠቀም እባክዎ መጀመሪያ Androidን ይክፈቱ እና ከዚያም እሱን ለመጠቀም የUSB መሣሪያ እንደገና ያስገቡ።"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"አጠራጣሪ የUSB እንቅስቃሴ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"የUSB የውሂብ ምልክት ተሰናክሏል።"</string>
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 6871291..f542d439b 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -1016,7 +1016,7 @@
     <string name="lockscreen_password_wrong" msgid="8605355913868947490">"أعد المحاولة"</string>
     <string name="lockscreen_storage_locked" msgid="634993789186443380">"فتح القفل للوصول إلى جميع الميزات والبيانات"</string>
     <string name="faceunlock_multiple_failures" msgid="681991538434031708">"تم تجاوز الحد الأقصى لعدد محاولات فتح الجهاز ببصمة الوجه"</string>
-    <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"‏لا تتوفر شريحة SIM."</string>
+    <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"‏لا تتوفر شريحة SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="3986843848305639161">"‏لا تتوفر شريحة SIM في الجهاز اللوحي."</string>
     <string name="lockscreen_missing_sim_message" product="tv" msgid="3903140876952198273">"‏لا تتوفر شريحة SIM في جهاز Android TV."</string>
     <string name="lockscreen_missing_sim_message" product="default" msgid="6184187634180854181">"‏لا تتوفر شريحة SIM في الهاتف."</string>
@@ -1468,7 +1468,7 @@
     <string name="select_keyboard_layout_notification_message" msgid="8835158247369158154">"انقر لاختيار لغة وتنسيق"</string>
     <string name="fast_scroll_alphabet" msgid="8854435958703888376">" أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"</string>
     <string name="fast_scroll_numeric_alphabet" msgid="2529539945421557329">" 0123456789 أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"</string>
-    <string name="alert_windows_notification_channel_group_name" msgid="6063891141815714246">"إظهار فوق التطبيقات الأخرى"</string>
+    <string name="alert_windows_notification_channel_group_name" msgid="6063891141815714246">"الظهور فوق التطبيقات الأخرى"</string>
     <string name="alert_windows_notification_channel_name" msgid="3437528564303192620">"جارٍ عرض <xliff:g id="NAME">%s</xliff:g> فوق تطبيقات أخرى"</string>
     <string name="alert_windows_notification_title" msgid="6331662751095228536">"يتم عرض <xliff:g id="NAME">%s</xliff:g> فوق التطبيقات الأخرى."</string>
     <string name="alert_windows_notification_message" msgid="6538171456970725333">"إذا كنت لا تريد أن يستخدم <xliff:g id="NAME">%s</xliff:g> هذه الميزة، فانقر لفتح الإعدادات، ثم اختر إيقافها."</string>
@@ -2092,6 +2092,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"إزالة تثبيت"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"إزالة تثبيت <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"معلومات عن التطبيق"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"أهداف المشاركة المباشرة"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"التطبيقات المقترَحة"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"قائمة التطبيقات"</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>
@@ -2246,6 +2249,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"زرّ الاتجاه لليسار"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"زرّ الاتجاه لليمين"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"الزرّ المركزي"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"لوحة إعدادات نوع النقر التلقائي"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"النقر بالزر الأيسر"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"إيقاف مؤقت"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"تعديل الموضع"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"تم وضع <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> في الحزمة \"محظورة\"."</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"هذا المستخدم أرسل صورة"</string>
@@ -2520,4 +2535,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"‏خرائط Google"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"التطبيقات"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"لم يعد بالإمكان التعرّف على بصمات أصابعك. يجب ضبط ميزة \"فتح الجهاز ببصمة الإصبع\" مجددًا."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"‏تم توصيل جهاز USB عندما كان الجهاز مقفلاً"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"‏تم توصيل جهاز USB عندما كان جهاز Android مقفلاً. لاستخدام الجهاز، يُرجى فتح قفل جهاز Android أولاً ثم إعادة إدخال جهاز USB لاستخدامه."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"‏نشاط مريب في جهاز USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"‏تم إيقاف مؤشر بيانات USB."</string>
 </resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 48895bc..b8afd2e 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"আনপিন"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>ক আনপিন কৰক"</string>
     <string name="app_info" msgid="6113278084877079851">"এপ্ সম্পৰ্কীয় তথ্য"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"পোনপটীয়াকৈ কৰা শ্বেয়াৰৰ লক্ষ্য"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"এপৰ পৰামৰ্শ"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"এপৰ সূচী"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"ডিপেডৰ বাওঁফালৰ বুটাম"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"ডিপেডৰ সোঁফালৰ বুটাম"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"ডিপেডৰ মাজৰ বুটাম"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"প্ৰকাৰৰ ছেটিঙৰ পেনেলত স্বয়ংক্ৰিয়ভাৱে ক্লিক কৰক"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"বাওঁফালৰ ক্লিক"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"পজ কৰক"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"স্থান"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ক সীমাবদ্ধ বাকেটটোত ৰখা হৈছে"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"এখন প্ৰতিচ্ছবি পঠিয়াইছে"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"মেপ"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"এপ্লিকেশ্বন"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"আপোনাৰ ফিংগাৰপ্ৰিণ্ট আৰু চিনাক্ত কৰিব নোৱাৰি। ফিংগাৰপ্ৰিণ্ট আনলক পুনৰ ছেট আপ কৰক।"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"লক হৈ থাকোঁতে USB ডিভাইচ প্লাগ ইন কৰা হৈছে"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android লক হৈ থাকোঁতে USB ডিভাইচ প্লাগ ইন কৰা হৈছে। ডিভাইচ ব্যৱহাৰ কৰিবলৈ অনুগ্ৰহ কৰি প্ৰথমে Android আনলক কৰক আৰু তাৰ পাছত USB ডিভাইচটো ব্যৱহাৰ কৰিবলৈ সেইটো পুনৰ ভৰাওক।"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"সন্দেহজনক USBৰ কাৰ্যকলাপ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ডেটা ছিগনেল অক্ষম কৰা হৈছে।"</string>
 </resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 9084407..affa569 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Çıxarın"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"İşarələməyin: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Tətbiq haqqında"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Birbaşa paylaşım hədəfləri"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Tətbiq təklifləri"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Tətbiq siyahısı"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo başlayır…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Cihaz sıfırlanır…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad Sola"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad Sağa"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad Mərkəzə"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Avtomatik klikləmə növü üzrə ayarlar paneli"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Sola klik"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Durdurun"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Mövqe"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"şəkil göndərdi"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Xəritə"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Tətbiqlər"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Barmaq izlərinizi artıq tanımaq mümkün deyil. Barmaqla Kilidaçmanı yenidən ayarlayın."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Kilidli olduqda USB cihazı qoşulu olur"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android kilidləndikdə USB cihazı qoşulu olur. Cihazdan istifadə etmək üçün əvvəlcə Android-i kiliddən çıxarın və sonra USB cihazını yenidən taxaraq ondan istifadə edin."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Şübhəli USB fəaliyyəti"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB data siqnalı deaktiv edilib."</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 2abb7f4..3acc8df 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Otkači"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Otkači aplikaciju <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informacije o aplikaciji"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Ciljevi direktnog deljenja"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Predlozi aplikacija"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista aplikacija"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Pokrećemo demonstraciju..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetujemo uređaj..."</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"nalevo na D-pad-u"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"nadesno na D-pad-u"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"centar na D-pad-u"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Okno sa podešavanjima tipa automatskog klika"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Levi klik"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Kliknite desnim tasterom"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dvaput kliknite"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Prevucite"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Skrolujte"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pauziraj"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozicija"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"je poslao/la sliku"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mape"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Otisci prstiju više ne mogu da se prepoznaju. Ponovo podesite otključavanje otiskom prsta."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB uređaj je priključen kada je Android zaključan"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB uređaj je priključen kada je Android zaključan. Da biste koristili uređaj, prvo otključajte Android, pa ponovo ubacite USB uređaj da biste ga koristili."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Sumnjiva USB aktivnost"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Signal za prenos podataka sa USB-a je onemogućen."</string>
 </resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 7f57c87..7c827bb 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -2090,6 +2090,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Адмацаваць"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Адмацаваць праграму \"<xliff:g id="LABEL">%1$s</xliff:g>\""</string>
     <string name="app_info" msgid="6113278084877079851">"Звесткі аб праграме"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Адрасаты для прамога абагульвання"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Прапановы праграм"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Спіс праграм"</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>
@@ -2244,6 +2247,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Улева на панэлі кіравання"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Управа на панэлі кіравання"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"У цэнтр на панэлі кіравання"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Панэль налад тыпу аўтаматычнага націскання"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Націсканне левай клавішай мышы"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Націсканне правай кнопкай мышы"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Двайное націсканне"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Перацягванне"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Гартанне"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Прыпыніць"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Пазіцыя"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" дададзены ў АБМЕЖАВАНУЮ групу"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"адпраўлены відарыс"</string>
@@ -2518,4 +2529,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карты"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Праграмы"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Вашы адбіткі пальцаў больш не распазнаюцца. Паўторна наладзьце разблакіроўку адбіткам пальца."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-прылада падключана, калі прылада заблакіравана"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-прылада падключана, калі прылада Android заблакіравана. Каб выкарыстоўваць прыладу, разблакіруйце прыладу Android і паўторна ўстаўце USB-прыладу."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Падазроная актыўнасць на USB-прыладзе"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Сігнал даных USB адключаны."</string>
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 6bff361..c3a2712 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Освобождаване"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Премахване на фиксирането на <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Информация за приложението"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Цели за директно споделяне"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Предложения за приложения"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Списък с приложения"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Контролен пад – ляво"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Контролен пад – дясно"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Контролен пад – център"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Панел с настройки за типа на автоматичното кликване"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Кликване с ляв бутон"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Пауза"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Позиция"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакетът <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е поставен в ОГРАНИЧЕНИЯ контейнер"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"изпратено изображение"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карти"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Приложения"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Отпечатъците ви вече не могат да бъдат разпознати. Настройте отново „Отключване с отпечатък“."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB устройството е свързано, когато устройството е заключено"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB устройството е включено, когато устройството с Android е заключено. За да използвате устройството, първо отключете Android и след това поставете отново USB устройството."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Подозрителна активност на USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Сигналът за данни през USB е деактивиран."</string>
 </resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 82d1da3..f6492c5 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"আনপিন করুন"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> অ্যাপ আনপিন করুন"</string>
     <string name="app_info" msgid="6113278084877079851">"অ্যাপের তথ্য"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"সরাসরি টার্গেট শেয়ার করুন"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"অ্যাপ সাজেশন"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"অ্যাপ তালিকা"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"ডিপ্যাড (Dpad)-এর বাঁদিকে"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"ডিপ্যাড (Dpad)-এর ডানদিকে"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"ডিপ্যাড (Dpad)-এর মাঝখানে"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"অটোক্লিক টাইপ সেটিংস প্যানেল"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"বাঁদিকের বোতামে ক্লিক করুন"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"পজ করুন"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"পজিশন"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> সীমাবদ্ধ গ্রুপে অন্তর্ভুক্ত করা হয়েছে"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"একটি ছবি পাঠানো হয়েছে"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ম্যাপ"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"অ্যাপ্লিকেশন"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"আপনার ফিঙ্গারপ্রিন্ট আর শনাক্ত করা যাবে না। \'ফিঙ্গারপ্রিন্ট আনলক\' ফিচার আবার সেট-আপ করুন।"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"লক থাকাকালীন USB ডিভাইস প্লাগ-ইন করা হয়েছে"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android লক থাকাকালীন USB ডিভাইস প্লাগ-ইন করা হয়েছে। ডিভাইস ব্যবহার করতে, প্রথমে Android আনলক করুন এবং তারপর সেটি ব্যবহার করতে USB ডিভাইস আবার যোগ করুন।"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"সন্দেহজনক USB অ্যাক্টিভিটি"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ডেটা সিগন্যাল বন্ধ করা হয়েছে।"</string>
 </resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index d055f76..3ff85ac 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Otkači"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Otkači aplikaciju <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informacije o aplikaciji"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Ciljevi direktnog dijeljenja"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Prijedlozi aplikacija"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista aplikacija"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Pokretanje demonstracije…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Vraćanje uređaja na početne postavke…"</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Upravljač lijevo"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Upravljač desno"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Upravljač sredina"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Ploča postavki vrste automatskog klika"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Lijevi klik"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Desni klik"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dvostruki klik"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Povuci"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Pomakni se"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pauziraj"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Položaj"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"je poslao/la sliku"</string>
@@ -2256,7 +2267,7 @@
     <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Blokirao je vaš IT administrator"</string>
     <string name="resolver_cant_share_with_work_apps_explanation" msgid="9071442683080586643">"Ovaj sadržaj nije moguće dijeliti pomoću poslovnih aplikacija"</string>
     <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Ovaj sadržaj nije moguće otvoriti pomoću poslovnih aplikacija"</string>
-    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Ovaj sadržaj nije moguće dijeliti pomoću ličnih aplikacija"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Ovaj sadržaj nije moguće dijeliti s ličnim aplikacijama"</string>
     <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Ovaj sadržaj nije moguće otvoriti pomoću ličnih aplikacija"</string>
     <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Poslovne aplikacije su pauzirane"</string>
     <string name="resolver_switch_on_work" msgid="4527096360772311894">"Ponovo pokreni"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mape"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vaši otisci prstiju se više ne mogu prepoznavati. Ponovo postavite otključavanje otiskom prsta."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB uređaj je priključen dok je uređaj bio zaključan"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB uređaj je priključen dok je Android bio zaključan. Da koristite uređaj, prvo otključajte Android, a zatim ponovo umetnite USB uređaj da ga koristite."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Sumnjiva aktivnost USB-a"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Podatkovni signal USB-a je onemogućen."</string>
 </resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 2b0e6fc..9b61887 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"No fixis"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"No fixis <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informació de l\'app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Destinataris de la compartició directa"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Suggeriments d\'aplicacions"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Llista d\'aplicacions"</string>
     <string name="negative_duration" msgid="1938335096972945232">"-<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"S\'està iniciant la demostració…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"S\'està restablint el dispositiu…"</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Creu direccional: esquerra"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Creu direccional: dreta"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Creu direccional: centre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Tauler de configuració del tipus de clic automàtic"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic esquerre"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Posa en pausa"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posició"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ha enviat una imatge"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicacions"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Les teves empremtes digitals ja no es poden reconèixer. Torna a configurar Desbloqueig amb empremta digital."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"S\'ha connectat un dispositiu USB quan el dispositiu estava bloquejat"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"El dispositiu USB està connectat quan Android està bloquejat. Per utilitzar el dispositiu, primer desbloqueja Android i, a continuació, torna a inserir el dispositiu USB per utilitzar-lo."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Activitat USB sospitosa"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"El senyal de dades per USB s\'ha desactivat."</string>
 </resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index e8f75f3..9c8cc9a 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -2090,6 +2090,12 @@
     <string name="unpin_target" msgid="3963318576590204447">"Odepnout"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Odepnout: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"O aplikaci"</string>
+    <!-- no translation found for shortcut_group_a11y_title (2992150163811583865) -->
+    <skip />
+    <!-- no translation found for suggested_apps_group_a11y_title (2804876567839501831) -->
+    <skip />
+    <!-- no translation found for all_apps_group_a11y_title (7020352520224108745) -->
+    <skip />
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Spouštění ukázky…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetování zařízení…"</string>
@@ -2244,6 +2250,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad doleva"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad doprava"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad střed"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel nastavení typu automatického kliknutí"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Kliknutí levým"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pozastavit"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozice"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"posílá obrázek"</string>
@@ -2518,4 +2536,12 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapy"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikace"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vaše otisky prstů se nedaří rozpoznat. Nastavte odemknutí otiskem prstu znovu."</string>
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_title (468577168569874967) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_text (6695268246267993166) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_title (3461195995882871461) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_text (6537085605929303187) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 288053e..1b96dbb 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Frigør"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Frigør <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Appinfo"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Personer/grupper, der skal deles direkte med"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Appforslag"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Appliste"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Starter demoen…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Nulstiller enheden…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-pad, venstre"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-pad, højre"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-pad, midten"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel med indstillinger for type af automatisk klik"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Venstreklik"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Sæt på pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Placering"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"sendte et billede"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kort"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Dine fingeraftryk kan ikke længere genkendes. Konfigurer fingeroplåsning igen."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-enheden er tilsluttet, når Android er låst"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-enheden er tilsluttet, når Android er låst. Hvis du vil bruge enheden, skal du først låse Android op og derefter tilslutte USB-enheden."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Mistænkelig USB-aktivitet"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-datasignalet er blevet deaktiveret."</string>
 </resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 10659eb..73e7b9a 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -2042,7 +2042,7 @@
     <string name="app_suspended_title" msgid="888873445010322650">"App nicht verfügbar"</string>
     <string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> ist momentan nicht verfügbar. Dies wird über die App \"<xliff:g id="APP_NAME_1">%2$s</xliff:g>\" verwaltet."</string>
     <string name="app_suspended_more_details" msgid="211260942831587014">"Weitere Informationen"</string>
-    <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"App-Pausierung aufheben"</string>
+    <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Pausierung der App aufheben"</string>
     <string name="work_mode_off_title" msgid="6367463960165135829">"Geschäftliche Apps nicht mehr pausieren?"</string>
     <string name="work_mode_turn_on" msgid="5316648862401307800">"Nicht mehr pausieren"</string>
     <string name="work_mode_emergency_call_button" msgid="6818855962881612322">"Notruf"</string>
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Markierung entfernen"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> loslösen"</string>
     <string name="app_info" msgid="6113278084877079851">"App-Informationen"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"„Direct Share“-Ziele"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App-Vorschläge"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"App-Liste"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo wird gestartet…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Gerät wird zurückgesetzt…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Steuerkreuz nach links"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Steuerkreuz nach rechts"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Steuerkreuz Mitte"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Bereich mit Einstellungen für automatische Klicks"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Linksklick"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausieren"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"hat ein Bild gesendet"</string>
@@ -2253,9 +2268,9 @@
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Private Ansicht"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Geschäftliche Ansicht"</string>
     <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Von deinem IT-Administrator blockiert"</string>
-    <string name="resolver_cant_share_with_work_apps_explanation" msgid="9071442683080586643">"Diese Art von Inhalt kann nicht über geschäftliche Apps geteilt werden"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="9071442683080586643">"Dieser Inhalt kann nicht über geschäftliche Apps geteilt werden"</string>
     <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Diese Art von Inhalt kann nicht mit geschäftlichen Apps geöffnet werden"</string>
-    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Diese Art von Inhalt kann nicht über private Apps geteilt werden"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Dieser Inhalt kann nicht über private Apps geteilt werden"</string>
     <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Diese Art von Inhalt kann nicht mit privaten Apps geöffnet werden"</string>
     <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Geschäftliche Apps sind pausiert"</string>
     <string name="resolver_switch_on_work" msgid="4527096360772311894">"Nicht mehr pausieren"</string>
@@ -2428,7 +2443,7 @@
     <string name="connected_display_thermally_unavailable_notification_content" msgid="9205758199439955949">"Dein Gerät ist zu heiß und kann den Bildschirm erst spiegeln, wenn es abgekühlt ist"</string>
     <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual Screen"</string>
     <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual Screen ist aktiviert"</string>
-    <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> nutzt zum Anzeigen von Inhalten beide Displays"</string>
+    <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> nutzt beide Displays zum Anzeigen von Inhalten"</string>
     <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Gerät ist zu warm"</string>
     <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Dual Screen ist nicht verfügbar, weil dein Smartphone zu warm ist"</string>
     <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen ist nicht verfügbar"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Anwendungen"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Deine Fingerabdrücke können nicht mehr erkannt werden. Bitte richte die Entsperrung per Fingerabdruck neu ein."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-Gerät wurde angeschlossen, als das Android-Gerät gesperrt war"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Das USB-Gerät wurde angeschlossen, als das Android-Gerät gesperrt war. Du musst erst das Android-Gerät entsperren und dann das USB-Gerät noch einmal anschließen, damit du es verwenden kannst."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Verdächtige USB-Aktivitäten"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-Datensignal wurde deaktiviert."</string>
 </resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 77a13ed..25a787c 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Ξεκαρφίτσωμα"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Ξεκαρφίτσωμα <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Πληροφορίες εφαρμογής"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Στοχευόμενοι χρήστες για Άμεση κοινή χρήση"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Προτεινόμενες εφαρμογές"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Λίστα εφαρμογών"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad αριστερά"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad δεξιά"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad κέντρο"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Πλαίσιο ρυθμίσεων τύπου αυτόματου κλικ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Αριστερό κλικ"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Παύση"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Θέση"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Το πακέτο <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> τοποθετήθηκε στον κάδο ΠΕΡΙΟΡΙΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ."</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"έστειλε μια εικόνα"</string>
@@ -2255,7 +2270,7 @@
     <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Αποκλείστηκε από τον διαχειριστή IT"</string>
     <string name="resolver_cant_share_with_work_apps_explanation" msgid="9071442683080586643">"Δεν είναι δυνατή η κοινοποίηση αυτού του περιεχομένου με εφαρμογές εργασιών"</string>
     <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Δεν είναι δυνατό το άνοιγμα αυτού του περιεχομένου με εφαρμογές εργασιών"</string>
-    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Δεν είναι δυνατή η κοινοποίηση αυτού του περιεχομένου με προσωπικές εφαρμογές"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Δεν είναι δυνατή η κοινοποίηση αυτού του περιεχομένου σε προσωπικές εφαρμογές"</string>
     <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Δεν είναι δυνατό το άνοιγμα αυτού του περιεχομένου με προσωπικές εφαρμογές"</string>
     <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Οι εφαρμογές εργασιών τέθηκαν σε παύση"</string>
     <string name="resolver_switch_on_work" msgid="4527096360772311894">"Αναίρεση παύσης"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Χάρτες"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Εφαρμογές"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Δεν είναι δυνατή πλέον η αναγνώριση των δακτυλικών αποτυπωμάτων σας. Ρυθμίστε ξανά τη λειτουργία Ξεκλείδωμα με δακτυλικό αποτύπωμα."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Σύνδεση συσκευής USB σε κατάσταση κλειδώματος"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Η συσκευή USB είναι συνδεδεμένη, όταν το Android είναι κλειδωμένο. Για να χρησιμοποιήσετε τη συσκευή, ξεκλειδώστε πρώτα το Android και, στη συνέχεια, επανατοποθετήστε τη συσκευή USB για να τη χρησιμοποιήσετε."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Ύποπτη δραστηριότητα USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Το σήμα δεδομένων USB έχει απενεργοποιηθεί."</string>
 </resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 667f978..886beff 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Unpin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Unpin <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"App info"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direct share targets"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App suggestions"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"App list"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Starting demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetting device…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad left"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad right"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad centre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Autoclick type settings panel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Left-click"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"sent an image"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Your fingerprints can no longer be recognised. Set up Fingerprint Unlock again."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB device plugged in when locked"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB device is plugged in when Android is locked. To use the device, please unlock Android first and then reinsert the USB device to use it."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Suspicious USB activity"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB data signal has been disabled."</string>
 </resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index fc4b8af..33bbc6f 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Unpin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Unpin <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"App info"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direct share targets"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App suggestions"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"App list"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Starting demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetting device…"</string>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad Left"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad Right"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad Center"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Autoclick type settings panel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Left click"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Right click"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Double click"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Drag"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Scroll"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"sent an image"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Your fingerprints can no longer be recognized. Set up Fingerprint Unlock again."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB device plugged in when locked"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB device is plugged in when Android is locked. To use device, please unlock Android first and then reinsert USB device to use it."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Suspicious USB activity"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB data signal has been disabled."</string>
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 4dcece1..f0a9c2a 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Unpin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Unpin <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"App info"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direct share targets"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App suggestions"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"App list"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Starting demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetting device…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad left"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad right"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad centre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Autoclick type settings panel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Left-click"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"sent an image"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Your fingerprints can no longer be recognised. Set up Fingerprint Unlock again."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB device plugged in when locked"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB device is plugged in when Android is locked. To use the device, please unlock Android first and then reinsert the USB device to use it."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Suspicious USB activity"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB data signal has been disabled."</string>
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index a1f6f76..8fcb412 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Unpin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Unpin <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"App info"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direct share targets"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App suggestions"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"App list"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Starting demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetting device…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad left"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad right"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad centre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Autoclick type settings panel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Left-click"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"sent an image"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Your fingerprints can no longer be recognised. Set up Fingerprint Unlock again."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB device plugged in when locked"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB device is plugged in when Android is locked. To use the device, please unlock Android first and then reinsert the USB device to use it."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Suspicious USB activity"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB data signal has been disabled."</string>
 </resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index f34aa97..f46a4d4 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Dejar de fijar"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Dejar de fijar <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Información de apps"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Objetivos de uso compartido directo"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugerencias de aplicaciones"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista de apps"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Iniciando demostración…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Restableciendo dispositivo…"</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Pad direccional: izquierda"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Pad direccional: derecha"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Pad direccional: centro"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel de configuración del tipo de clic automático"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic izquierdo"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausar"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posición"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Se colocó <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> en el bucket RESTRICTED"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"envió una imagen"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicaciones"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Ya no se pueden reconocer tus huellas dactilares. Vuelve a configurar el Desbloqueo con huellas dactilares."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Dispositivo USB conectado cuando el dispositivo está bloqueado"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"El dispositivo USB está conectado cuando Android está bloqueado. Para usar el dispositivo, primero desbloquea Android y, luego, vuelve a insertar el dispositivo USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Actividad de USB sospechosa"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Se inhabilitó la señal de datos por USB."</string>
 </resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 612d86f..d594897 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"No fijar"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"No fijar <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Información de la app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Objetivos de compartición directa"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugerencias de aplicaciones"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista de aplicaciones"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Iniciando demostración…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Restableciendo dispositivo…"</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Cruceta: izquierda"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Cruceta: derecha"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Cruceta: centro"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel de ajustes del tipo de clic automático"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic izquierdo"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausar"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posición"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ha enviado una imagen"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicaciones"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Tus huellas digitales ya no pueden reconocerse. Vuelve a configurar Desbloqueo con huella digital."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Dispositivo USB conectado con el dispositivo bloqueado"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"El dispositivo USB está conectado cuando Android está bloqueado. Para usar el dispositivo, desbloquea Android primero y, a continuación, vuelve a insertar el dispositivo USB para usarlo."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Actividad USB sospechosa"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"La señal de datos USB se ha inhabilitado."</string>
 </resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 6d54489..5e961f4 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -318,7 +318,7 @@
     <string name="foreground_service_tap_for_details" msgid="9078123626015586751">"Aku ja andmekasutuse üksikasjade nägemiseks puudutage"</string>
     <string name="foreground_service_multiple_separator" msgid="5002287361849863168">"<xliff:g id="LEFT_SIDE">%1$s</xliff:g>, <xliff:g id="RIGHT_SIDE">%2$s</xliff:g>"</string>
     <string name="safeMode" msgid="8974401416068943888">"Turvarežiim"</string>
-    <string name="android_system_label" msgid="5974767339591067210">"Android-süsteem"</string>
+    <string name="android_system_label" msgid="5974767339591067210">"Androidi süsteem"</string>
     <string name="user_owner_label" msgid="8628726904184471211">"Lülitu isiklikule profiilile"</string>
     <string name="managed_profile_label" msgid="7316778766973512382">"Lülitu tööprofiilile"</string>
     <string name="user_owner_app_label" msgid="1553595155465750298">"Lülita <xliff:g id="APP_NAME">%1$s</xliff:g> isiklikule profiilile"</string>
@@ -1055,7 +1055,7 @@
     <string name="lockscreen_glogin_submit_button" msgid="3590556636347843733">"Logi sisse"</string>
     <string name="lockscreen_glogin_invalid_input" msgid="4369219936865697679">"Vale kasutajanimi või parool."</string>
     <string name="lockscreen_glogin_account_recovery_hint" msgid="1683405808525090649">"Kas unustasite oma kasutajanime või parooli?\nKülastage aadressi "<b>"google.com/accounts/recovery"</b>"."</string>
-    <string name="lockscreen_glogin_checking_password" msgid="2607271802803381645">"Kontrollimine ..."</string>
+    <string name="lockscreen_glogin_checking_password" msgid="2607271802803381645">"Kontrollimine..."</string>
     <string name="lockscreen_unlock_label" msgid="4648257878373307582">"Ava"</string>
     <string name="lockscreen_sound_on_label" msgid="1660281470535492430">"Heli sisse"</string>
     <string name="lockscreen_sound_off_label" msgid="2331496559245450053">"Heli välja"</string>
@@ -1509,7 +1509,7 @@
     <string name="ext_media_move_failure_message" msgid="4197306718121869335">"Proovige sisu uuesti teisaldada"</string>
     <string name="ext_media_status_removed" msgid="241223931135751691">"Eemaldatud"</string>
     <string name="ext_media_status_unmounted" msgid="8145812017295835941">"Väljutatud"</string>
-    <string name="ext_media_status_checking" msgid="159013362442090347">"Kontrollimine ..."</string>
+    <string name="ext_media_status_checking" msgid="159013362442090347">"Kontrollimine..."</string>
     <string name="ext_media_status_mounted" msgid="3459448555811203459">"Valmis"</string>
     <string name="ext_media_status_mounted_ro" msgid="1974809199760086956">"Kirjutuskaitstud"</string>
     <string name="ext_media_status_bad_removal" msgid="508448566481406245">"Eemaldamine polnud turvaline"</string>
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Vabasta"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Vabasta <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Rakenduse teave"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Otsejagamise sihtmärgid"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Rakenduste soovitused"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Rakenduste loend"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo käivitamine …"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Seadme lähtestamine …"</string>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Suunaklahvistiku vasaknool"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Suunaklahvistiku paremnool"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Suunaklahvistiku keskmine nupp"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Automaatkliki tüübi seadete paneel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Vasakklikk"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Paremklikk"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Topeltklikk"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Lohista"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Keri"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Peata"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Asukoht"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"saatis kujutise"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Rakendused"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Teie sõrmejälgi ei saa enam tuvastada. Seadistage sõrmejäljega avamine uuesti."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-seade ühendati, kui seade oli lukus"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-seade ühendati, kui Android oli lukustatud. Seadme kasutamiseks avage esmalt Android ja ühendage siis USB-seade uuesti, et seda kasutada."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Kahtlane tegevus USB-ga"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB andmesignaal on keelatud."</string>
 </resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index bba775f..0e450d1 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Kendu aingura"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Kendu aingura <xliff:g id="LABEL">%1$s</xliff:g> aplikazioari"</string>
     <string name="app_info" msgid="6113278084877079851">"Aplikazioari buruzko informazioa"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Partekatze zuzenen helburuak"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Aplikazioen iradokizunak"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Aplikazioen zerrenda"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demoa abiarazten…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Gailua berrezartzen…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Norabide-kontrolagailuko ezkerreko botoia"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Norabide-kontrolagailuko eskuineko botoia"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Norabide-kontrolagailuko erdiko botoia"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Automatikoki klik egiteko eginbide motaren ezarpenen panela"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Egin klik ezkerreko botoiarekin"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausatu"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Ezarri posizioan"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"erabiltzaileak irudi bat bidali du"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikazioak"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Zure hatz-markak ez dira ezagutzen jada. Konfiguratu berriro hatz-marka bidez desblokeatzeko eginbidea."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB bidezko gailua blokeatuta zegoen bitartean entxufatu da"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB bidezko gailua entxufatuta dago Android blokeatuta dagoenean. Gailua erabiltzeko, desblokeatu Android eta entxufatu berriro USB bidezko gailua hura erabiltzeko."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"USB bidezko jarduera susmagarriak"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB bidezko datu-seinalea desgaitu da."</string>
 </resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index e8e0f48..4334713 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"برداشتن سنجاق"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"برداشتن سنجاق <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"اطلاعات برنامه"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"هدف‌های هم‌رسانی مستقیم"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"پیشنهادهای برنامه"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"فهرست برنامه"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"پد کنترل چپ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"پد کنترل راست"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"پد کنترل وسط"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"پانل تنظیمات نوع کلیک خودکار"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"کلیک چپ"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"کلیک راست"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"دوکلیک کردن"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"کشیدن"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"پیمایش"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"توقف موقت"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"موقعیت"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> در سطل «محدودشده» قرار گرفت"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"تصویری ارسال کرد"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"نقشه"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"برنامه‌ها"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"اثر انگشتانتان دیگر قابل‌شناسایی نیست. «قفل‌گشایی با اثر انگشت» را دوباره راه‌اندازی کنید."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"‏دستگاه USB هنگام قفل بودن وصل شده است"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"‏دستگاه USB هنگام قفل بودن Android متصل شده است. برای استفاده از دستگاه، لطفاً ابتدا قفل Android را باز کنید و سپس دستگاه USB را دوباره وارد کنید."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"‏فعالیت مشکوک USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"‏نشانِ داده USB غیرفعال شده است."</string>
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 5da5844..5e3913e 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Irrota"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Irrota <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Sovellustiedot"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Suorajaon vastaanottajat"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sovellusehdotukset"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Sovelluslista"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Aloitetaan esittelyä…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Palautetaan asetuksia…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Suuntanäppäimistö: vasen painike"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Suuntanäppäimistö: oikea painike"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Suuntanäppäimistö: keskipainike"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Automaattisen klikkaustyypin asetuspaneeli"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Ykköspainike"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Keskeytä"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Sijainti"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"lähetti kuvan"</string>
@@ -2470,7 +2485,7 @@
     <string name="satellite_manual_selection_state_popup_cancel" msgid="973605633339469252">"Takaisin"</string>
     <string name="unarchival_session_app_label" msgid="6811856981546348205">"Odottaa…"</string>
     <string name="satellite_sos_available_notification_title" msgid="5396708154268096124">"Satellite SOS on nyt käytettävissä"</string>
-    <string name="satellite_sos_available_notification_summary" msgid="1727088812951848330">"Voit lähettää viestin hätäkeskukseen, jos sinulla ei ole mobiili‑ tai Wi-Fi-verkkoyhteyttä. Google Messages täytyy valita oletusviestisovellukseksi."</string>
+    <string name="satellite_sos_available_notification_summary" msgid="1727088812951848330">"Voit lähettää viestin hätäkeskukseen, jos sinulla ei ole mobiili‑ tai Wi-Fi-verkkoyhteyttä. Google Messagesin on oltava oletustekstiviestisovelluksesi."</string>
     <string name="satellite_sos_not_supported_notification_title" msgid="2659100983227637285">"Satellite SOS ei tueta"</string>
     <string name="satellite_sos_not_supported_notification_summary" msgid="1071762454665310549">"Satellite SOS ei tueta tällä laitteella"</string>
     <string name="satellite_sos_not_provisioned_notification_title" msgid="8564738683795406715">"Satellite SOS ei ole otettu käyttöön"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Sovellukset"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Sormenjälkiäsi ei voi enää tunnistaa. Ota sormenjälkiavaus uudelleen käyttöön."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-laite kytkettynä, kun lukitus on päällä"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-laite on kytkettynä, kun Android on lukittu. Jos haluat käyttää laitetta, avaa ensin Androidin lukitus ja kytke USB-laite uudelleen."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Epäilyttävää USB-toimintaa"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-datasignaali on poistettu käytöstä."</string>
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 9d81f4f..6ef3e21 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Annuler l\'épinglage"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Annuler l\'épinglage de <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Détails de l\'appli"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Cibles du partage direct"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Applis suggérées"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Liste d\'applis"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Démarrage de la démonstration en cours…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Réinitialisation de l\'appareil en cours…"</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Pavé directionnel – gauche"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Pavé directionnel – droite"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Pavé directionnel – centre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panneau de configuration des paramètres de type clic automatique"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic gauche"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g> :"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"a envoyé une image"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vos empreintes digitales ne peuvent plus être reconnues. Reconfigurez le Déverrouillage par empreinte digitale."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"L\'appareil USB est branché quand Android est verrouillé"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"L\'appareil USB est branché quand Android est verrouillé. Pour utiliser l\'appareil, veuillez d\'abord déverrouiller Android, puis réinsérer l\'appareil USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Activité USB suspecte"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Le signal de données USB a été désactivé."</string>
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 9ef2758..4fd8601 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Retirer"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Retirer <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Infos sur l\'appli"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Cibles de partage direct"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Suggestions d\'applications"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Liste des applications"</string>
     <string name="negative_duration" msgid="1938335096972945232">"− <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Lancement de la démo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Réinitialisation…"</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Pavé directionnel - Gauche"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Pavé directionnel - Droite"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Pavé directionnel - Centre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panneau des paramètres du type de clic automatique"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic gauche"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g> :"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"a envoyé une image"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vos empreintes ne peuvent plus être reconnues. Reconfigurez le déverrouillage par empreinte digitale."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Appareil USB branché alors que l\'appareil Android est verrouillé"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"L\'appareil USB est branché alors que l\'appareil Android est verrouillé. Pour utiliser l\'appareil, veuillez d\'abord déverrouiller Android, puis brancher à nouveau l\'appareil USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Activité USB suspecte"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Le signal de données USB a été désactivé."</string>
 </resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 6f677e3..4ce3fc3 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Deixar de fixar"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Deixar de fixar a <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Información da app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Destinatarios da función de compartir directamente"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Suxestións de aplicacións"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista de aplicacións"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Iniciando demostración…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Restablecendo dispositivo…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Cruceta: esquerda"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Cruceta: dereita"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Cruceta: centro"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel de configuración do tipo de clic automático"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic co botón esquerdo do rato"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausa"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posición"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"enviouse unha imaxe"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapas"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicacións"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Xa non se recoñecen as túas impresións dixitais. Configura de novo o desbloqueo dactilar."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Dispositivo USB conectado cando Android está bloqueado"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"O dispositivo USB está conectado cando Android está bloqueado. Para usalo, primeiro desbloquea Android e despois volve inserir o dispositivo USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Actividade USB sospeitosa"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Desactivouse o indicador de datos USB."</string>
 </resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 75ce468..fcba3fe 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"અનપિન કરો"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>ને અનપિન કરો"</string>
     <string name="app_info" msgid="6113278084877079851">"ઍપની માહિતી"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"સીધા શેર કરવાના લક્ષ્યો"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ઍપના સૂચનો"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ઍપની સૂચિ"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"ડી-પૅડ ડાબે"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"ડી-પૅડ જમણે"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"ડી-પૅડ મધ્યમાં"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ઑટોક્લિક પ્રકારના સેટિંગની પૅનલ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ડાબું ક્લિક કરો"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"રાઇટ ક્લિક કરો"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"બે વાર ક્લિક કરો"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ખેંચો"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"સ્ક્રોલ કરો"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"થોભાવો"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"સ્થિતિ"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ને પ્રતિબંધિત સમૂહમાં મૂકવામાં આવ્યું છે"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"છબી મોકલી"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ઍપ્લિકેશનો"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"તમારી ફિંગરપ્રિન્ટને હવેથી ઓળખી શકાશે નહીં. ફિંગરપ્રિન્ટ અનલૉક સુવિધાનું ફરી સેટઅપ કરો."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"લૉક કરેલું હોય ત્યારે USB ડિવાઇસ પ્લગ-ઇન હોય છે"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android લૉક હોય ત્યારે USB ડિવાઇસ પ્લગ-ઇન હોય છે. ડિવાઇસનો ઉપયોગ કરવા માટે, કૃપા કરીને પહેલા Android અનલૉક કરો અને પછી USB ડિવાઇસનો ઉપયોગ કરવા માટે તેને ફરી શામેલ કરો."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"શંકાસ્પદ USB ઍક્ટિવિટી"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ડેટા સિગ્નલ બંધ કરવામાં આવ્યું છે."</string>
 </resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index d750b39..66f0ced 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -329,7 +329,7 @@
     <string name="permgroupdesc_location" msgid="1995955142118450685">"इस डिवाइस की जगह तक पहुंचने दें"</string>
     <string name="permgrouplab_calendar" msgid="6426860926123033230">"कैलेंडर"</string>
     <string name="permgroupdesc_calendar" msgid="6762751063361489379">"आपके कैलेंडर को ऐक्सेस करने की अनुमति"</string>
-    <string name="permgrouplab_sms" msgid="795737735126084874">"मैसेज (एसएमएस)"</string>
+    <string name="permgrouplab_sms" msgid="795737735126084874">"एसएमएस"</string>
     <string name="permgroupdesc_sms" msgid="5726462398070064542">"मैसेज (एसएमएस) भेजें और देखें"</string>
     <string name="permgrouplab_storage" msgid="17339216290379241">"फ़ाइल"</string>
     <string name="permgroupdesc_storage" msgid="5378659041354582769">"अपने डिवाइस में मौजूद फ़ाइलों का ऐक्सेस दें"</string>
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"अनपिन करें"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> को अनपिन करें"</string>
     <string name="app_info" msgid="6113278084877079851">"ऐप्लिकेशन की जानकारी"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"सीधे तौर पर कॉन्टेंट शेयर करने के लिए चुने गए लोग या ग्रुप"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"सुझाए गए ऐप्लिकेशन"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ऐप्लिकेशन की सूची"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"डी-पैड का बाईं ओर वाला बटन"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"डी-पैड का दाईं ओर वाला बटन"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"डी-पैड का बीच वाला बटन"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"अपने-आप क्लिक होने की सुविधा वाली सेटिंग का पैनल"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"लेफ़्ट क्लिक करें"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"राइट क्लिक करें"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"दो बार क्लिक करें"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"खींचें और छोड़ें"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"स्क्रोल करें"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"रोकें"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"पोज़िशन"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> को प्रतिबंधित बकेट में रखा गया है"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"एक इमेज भेजी गई"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"मैप"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ऐप्लिकेशन"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"अब आपके फ़िंगरप्रिंट की पहचान नहीं की जा सकती. फ़िंगरप्रिंट अनलॉक की सुविधा को दोबारा सेट अप करें."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"यूएसबी डिवाइस को, Android डिवाइस के लॉक होने के दौरान प्लग इन किया गया"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"यूएसबी डिवाइस को, Android डिवाइस के लॉक होने के दौरान प्लग इन किया गया. यूएसबी डिवाइस का इस्तेमाल करने के लिए, कृपया पहले Android डिवाइस को अनलॉक करें. इसके बाद, यूएसबी को फिर से इंसर्ट करें."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"यूएसबी से कोई संदिग्ध गतिविधि की गई"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"यूएसबी से डेटा सिग्नल भेजने की प्रोसेस बंद कर दी गई है."</string>
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 58de41e..aadf118 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Otkvači"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Otkvači sudionika <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informacije o aplikaciji"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Osoba/skupina za izravno dijeljenje"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Prijedlozi aplikacija"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Popis aplikacija"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Pokretanje demo-načina..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Vraćanje uređaja na zadano…"</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Lijevo na plohi za smjerove"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Desno na plohi za smjerove"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"U središtu plohe za smjerove"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Ploča postavki vrste automatskog klika"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Lijevi klik"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Desni klik"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dvostruki klik"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Povuci"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Pomakni se"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pauziraj"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozicija"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"šalje sliku"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Karte"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vaši se otisci prstiju više ne prepoznaju. Ponovo postavite otključavanje otiskom prsta."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB uređaj priključen je kada je zaključan"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB uređaj priključen je kad je Android zaključan. Da biste upotrebljavali uređaj, najprije otključajte Android, a zatim ponovno umetnite USB uređaj da biste ga upotrebljavali."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Sumnjiva aktivnost USB-a"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB podatkovni signal je onemogućen."</string>
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index f42567e..39a4cfc 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Feloldás"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> rögzítésének feloldása"</string>
     <string name="app_info" msgid="6113278084877079851">"Alkalmazásinfó"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Közvetlen megosztási lehetőségek"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Alkalmazásjavaslatok"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Alkalmazáslista"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Bemutató indítása…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Eszköz visszaállítása…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-pad – balra"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-pad – jobbra"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-pad – középre"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Automatikus kattintás típusának beállításai panel"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Kattintás bal egérgombbal"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Szüneteltetés"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozíció"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"képet küldött"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Térkép"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Alkalmazások"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Az ujjlenyomata már nem ismerhető fel. Állítsa be újra a Feloldás ujjlenyomattal funkciót."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-eszköz zárolt állapotban csatlakoztatva"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Az USB-eszköz csatlakoztatása az Android rendszer zárolt állapotában történt. Az eszköz használatához először oldja fel az Android zárolását, majd helyezze be újra az USB-eszközt."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Gyanús USB-tevékenység"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Az USB-adatjel le lett tiltva."</string>
 </resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index e3fa611..f4b83f2 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -2088,6 +2088,12 @@
     <string name="unpin_target" msgid="3963318576590204447">"Ապամրացնել"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Ապամրացնել <xliff:g id="LABEL">%1$s</xliff:g> հավելվածը"</string>
     <string name="app_info" msgid="6113278084877079851">"Հավելվածի մասին"</string>
+    <!-- no translation found for shortcut_group_a11y_title (2992150163811583865) -->
+    <skip />
+    <!-- no translation found for suggested_apps_group_a11y_title (2804876567839501831) -->
+    <skip />
+    <!-- no translation found for all_apps_group_a11y_title (7020352520224108745) -->
+    <skip />
     <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>
@@ -2242,6 +2248,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad-ի «Ձախ» կոճակ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad-ի «Աջ» կոճակ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad-ի «Կենտրոն» կոճակ"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Ավտոմատ սեղմման տեսակի կարգավորումների վահանակ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Ձախ սեղմում"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Դադարեցնել"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Դիրքը"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> փաթեթը գցվեց ՍԱՀՄԱՆԱՓԱԿՎԱԾ զամբյուղի մեջ"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>՝"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"օգտատերը պատկեր է ուղարկել"</string>
@@ -2516,4 +2534,12 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Քարտեզներ"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Հավելվածներ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Ձեր մատնահետքերն այլևս չեն կարող ճանաչվել։ Նորից կարգավորեք մատնահետքով ապակողպումը։"</string>
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_title (468577168569874967) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_text (6695268246267993166) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_title (3461195995882871461) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_text (6537085605929303187) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 5f60ba2..ce9a7f6 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Lepas pin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Lepas sematan <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Info aplikasi"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Target berbagi langsung"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Saran aplikasi"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Daftar aplikasi"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Memulai demo..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Mereset perangkat..."</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad Kiri"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad Kanan"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad Tengah"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel setelan jenis klik otomatis"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Klik kiri"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Jeda"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posisi"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"mengirim gambar"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikasi"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Sidik jari Anda tidak dapat dikenali lagi. Siapkan Buka dengan Sidik Jari lagi."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Perangkat USB dicolokkan saat terkunci"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Perangkat USB dicolokkan saat Android terkunci. Untuk menggunakan perangkat, buka kunci Android terlebih dahulu, lalu pasang kembali perangkat USB untuk menggunakannya."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Aktivitas USB yang mencurigakan"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Sinyal data USB telah dinonaktifkan."</string>
 </resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index 9256742..b80efc7 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Losa"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Losa <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Forritsupplýsingar"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Deila beint með"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Tillögð forrit"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Forritalisti"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Byrjar kynningu…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Endurstillir tækið…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Vinstrihnappur stýriflatar"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Hægrihnappur stýriflatar"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Miðjuhnappur stýriflatar"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Stillingasvæði fyrir tegund sjálfvirks smells"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Vinstrismellur"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Hlé"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Staðsetning"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"sendi mynd"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kort"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Forrit"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Ekki er lengur hægt að bera kennsl á fingraförin þín. Settu fingrafarskenni upp aftur."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-tæki stungið í samband á meðan tæki var læst"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-tæki stungið í samband á meðan Android-tækið var læst. Byrjaðu á því að taka Android-tækið úr lás og stingdu síðan USB-tækinu í samband til að nota það."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Grunsamleg USB-virkni"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Slökkt var á USB-gagnamerki."</string>
 </resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 3700620..3ca9f7f 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -333,11 +333,11 @@
     <string name="permgrouplab_sms" msgid="795737735126084874">"SMS"</string>
     <string name="permgroupdesc_sms" msgid="5726462398070064542">"Possono inviare e visualizzare SMS"</string>
     <string name="permgrouplab_storage" msgid="17339216290379241">"File"</string>
-    <string name="permgroupdesc_storage" msgid="5378659041354582769">"accedere ai file sul tuo dispositivo"</string>
+    <string name="permgroupdesc_storage" msgid="5378659041354582769">"Possono accedere ai file sul tuo dispositivo"</string>
     <string name="permgrouplab_readMediaAural" msgid="1858331312624942053">"Musica e audio"</string>
-    <string name="permgroupdesc_readMediaAural" msgid="7565467343667089595">"accedere a musica e audio sul tuo dispositivo"</string>
+    <string name="permgroupdesc_readMediaAural" msgid="7565467343667089595">"Possono accedere a musica e audio sul tuo dispositivo"</string>
     <string name="permgrouplab_readMediaVisual" msgid="4724874717811908660">"Foto e video"</string>
-    <string name="permgroupdesc_readMediaVisual" msgid="4080463241903508688">"accedere a foto e video sul tuo dispositivo"</string>
+    <string name="permgroupdesc_readMediaVisual" msgid="4080463241903508688">"Possono accedere a foto e video sul tuo dispositivo"</string>
     <string name="permgrouplab_microphone" msgid="2480597427667420076">"Microfono"</string>
     <string name="permgroupdesc_microphone" msgid="1047786732792487722">"Possono registrare audio"</string>
     <string name="permgrouplab_activityRecognition" msgid="3324466667921775766">"Attività fisica"</string>
@@ -345,7 +345,7 @@
     <string name="permgrouplab_camera" msgid="9090413408963547706">"Fotocamera"</string>
     <string name="permgroupdesc_camera" msgid="7585150538459320326">"Possono scattare foto e registrare video"</string>
     <string name="permgrouplab_nearby_devices" msgid="5529147543651181991">"Dispositivi nelle vicinanze"</string>
-    <string name="permgroupdesc_nearby_devices" msgid="3213561597116913508">"rilevare e connettersi a dispositivi nelle vicinanze"</string>
+    <string name="permgroupdesc_nearby_devices" msgid="3213561597116913508">"Possono rilevare e connettersi a dispositivi nelle vicinanze"</string>
     <string name="permgrouplab_calllog" msgid="7926834372073550288">"Registri chiamate"</string>
     <string name="permgroupdesc_calllog" msgid="2026996642917801803">"Possono leggere e modificare il registro chiamate del telefono"</string>
     <string name="permgrouplab_phone" msgid="570318944091926620">"Telefono"</string>
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Stacca"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Sblocca <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informazioni app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Target di condivisione diretta"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App suggerite"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Elenco di app"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Avvio della demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Reset del dispositivo…"</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-pad - Sinistra"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-pad - Destra"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-pad - Centro"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Riquadro impostazioni del tipo di clic automatico"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic sinistro"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Clic con il tasto destro del mouse"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Doppio clic"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Trascina"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Scorri"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Metti in pausa"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posizione"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ha inviato un\'immagine"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applicazioni"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Non è più possibile riconoscere le tue impronte. Riconfigura lo Sblocco con l\'Impronta."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Dispositivo USB collegato quando bloccato"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Il dispositivo USB è collegato quando Android è bloccato. Per usare il dispositivo, sblocca prima Android e poi reinserisci il dispositivo USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Attività USB sospetta"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"L\'indicatore di dati USB è stato disattivato."</string>
 </resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index cbc989e..cfa0987 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -1786,7 +1786,7 @@
     <string name="hearing_aids_feature_name" msgid="1125892105105852542">"מכשירי שמיעה"</string>
     <string name="hearing_device_status_disconnected" msgid="497547752953543832">"מנותק"</string>
     <string name="hearing_device_status_connected" msgid="2149385149669918764">"מחובר"</string>
-    <string name="hearing_device_status_active" msgid="4770378695482566032">"פעיל"</string>
+    <string name="hearing_device_status_active" msgid="4770378695482566032">"מצב פעיל"</string>
     <string name="hearing_device_status_loading" msgid="5717083847663109747">"בטעינה"</string>
     <string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"לחצני עוצמת הקול נלחצו בלחיצה ארוכה. שירות <xliff:g id="SERVICE_NAME">%1$s</xliff:g> הופעל."</string>
     <string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"לחצני עוצמת הקול נלחצו בלחיצה ארוכה. שירות <xliff:g id="SERVICE_NAME">%1$s</xliff:g> הושבת."</string>
@@ -2089,6 +2089,12 @@
     <string name="unpin_target" msgid="3963318576590204447">"ביטול הצמדה"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"ביטול ההצמדה של <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"פרטי האפליקציה"</string>
+    <!-- no translation found for shortcut_group_a11y_title (2992150163811583865) -->
+    <skip />
+    <!-- no translation found for suggested_apps_group_a11y_title (2804876567839501831) -->
+    <skip />
+    <!-- no translation found for all_apps_group_a11y_title (7020352520224108745) -->
+    <skip />
     <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>
@@ -2243,6 +2249,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"‏לחצן שמאלי ב-Dpad"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"‏לחצן ימני ב-Dpad"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"‏לחצן אמצעי ב-Dpad"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"חלונית ההגדרות של סוג הקליק האוטומטי"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"לחיצה שמאלית"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"השהיה"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"מיקום"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> התווספה לקטגוריה \'מוגבל\'"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"נשלחה תמונה"</string>
@@ -2517,4 +2535,12 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"מפות"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"אפליקציות"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"טביעות האצבע שלך נשחקו ואי אפשר לזהות אותן. צריך להגדיר \'פתיחה בטביעת אצבע\' מחדש."</string>
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_title (468577168569874967) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_text (6695268246267993166) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_title (3461195995882871461) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_text (6537085605929303187) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 51dca22..ad770aa 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"固定を解除"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> の固定を解除"</string>
     <string name="app_info" msgid="6113278084877079851">"アプリ情報"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"ダイレクト シェア ターゲット"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"アプリの候補"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"アプリリスト"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-pad: 左"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-pad: 右"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-pad: 中央"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"自動クリックの種類の設定パネル"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"左クリック"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"右クリック"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ダブルクリック"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ドラッグ"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"スクロール"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"一時停止"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"位置"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> は RESTRICTED バケットに移動しました。"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"画像を送信しました"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"マップ"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"アプリ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"指紋を認識できなくなりました。指紋認証をもう一度設定してください。"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ロック状態で USB デバイスが接続されました"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android がロックされている状態で USB デバイスが接続されています。デバイスを使用するには、まず Android のロックを解除してから、USB デバイスを再挿入してください。"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"不審な USB アクティビティ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB データシグナルが無効になっています。"</string>
 </resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 2411c8c..481c422 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ჩამაგრების მოხსნა"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>-ის ჩამაგრების მოხსნა"</string>
     <string name="app_info" msgid="6113278084877079851">"აპის შესახებ"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"პირდაპირი გაზიარების მიზნები"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"აპის შეთავაზებები"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"აპების სია"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad მარცხნივ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad მარჯვნივ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad ცენტრი"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ავტოდაწკაპუნების ტიპის პარამეტრების არე"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"მარცხენა დაწკაპუნება"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"მარჯვენა დაწკაპუნება"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ორმაგი დაწკაპუნება"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ჩავლება"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"გადაადგილება"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"პაუზა"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"პოზიცია"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> მოთავსდა კალათაში „შეზღუდული“"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"გაიგზავნა სურათი"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"აპლიკაციები"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"თქვენი თითის ანაბეჭდის ამოცნობა ვეღარ ხერხდება. ხელახლა დააყენეთ ანაბეჭდით განბლოკვა."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB მოწყობილობა ჩართულია, როდესაც ჩაკეტილია"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB მოწყობილობა ჩართულია, როდესაც Android ჩაკეტილია. მოწყობილობის გამოსაყენებლად ჯერ განბლოკეთ Android და შემდეგ ხელახლა ჩადეთ USB მოწყობილობა მის გამოსაყენებლად."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"საეჭვო USB აქტივობა"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB მონაცემთა სიგნალი გამორთულია."</string>
 </resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 3f3881b..70412be 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Босату"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> босату"</string>
     <string name="app_info" msgid="6113278084877079851">"Қолданба ақпараты"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Тікелей бөлісу опциялары"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Қолданба ұсыныстары"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Қолданбалар тізімі"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Сол жақ Dpad түймесі"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Оң жақ Dpad түймесі"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Ортаңғы Dpad түймесі"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Автоматты басу түрі параметрлері панелі"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Сол жағын басу"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Кідірту"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Орналастыру"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ШЕКТЕЛГЕН себетке салынды."</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"сурет жіберілді"</string>
@@ -2252,7 +2267,7 @@
     <string name="resolver_work_tab" msgid="2690019516263167035">"Жұмыс"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Жеке көру"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Жұмыс деректерін көру"</string>
-    <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Әкімшіңіз бөгеген"</string>
+    <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Әкімшіңіз блоктаған"</string>
     <string name="resolver_cant_share_with_work_apps_explanation" msgid="9071442683080586643">"Бұл контентті жұмыс қолданбаларымен бөлісу мүмкін емес."</string>
     <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Бұл контентті жұмыс қолданбаларымен ашу мүмкін емес."</string>
     <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Бұл контентті жеке қолданбалармен бөлісу мүмкін емес."</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Қолданбалар"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Саусағыңыздың іздері бұдан былай танылмайды. Саусақ ізімен ашу функциясын қайта реттеу"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB құрылғысы құлыптаулы кезде жалғанған"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB құрылғысы Android құрылғысы құлыптаулы кезде жалғанған. Құрылғыны пайдалану үшін алдымен Android құрылғысының құлпын ашып, содан кейін USB құрылғысын қайта енгізіңіз."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"USB-ге қатысты күдікті әрекет"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB дерек сигналы өшірілді."</string>
 </resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 0ad4f09d..fdd522b 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"មិនខ្ទាស់"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"ដកខ្ទាស់ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"ព័ត៌មាន​កម្មវិធី"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"គោលដៅចែករំលែកដោយផ្ទាល់"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ការណែនាំកម្មវិធី"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"បញ្ជីកម្មវិធី"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ឆ្វេង"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ស្ដាំ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad កណ្ដាល"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ផ្ទាំងការកំណត់ប្រភេទចុចស្វ័យប្រវត្តិ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ចុចម៉ៅស៍ខាងឆ្វេង"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"ចុចម៉ៅស៍ខាងស្ដាំ"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ចុចពីរដង"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"អូស"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"រំកិល"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ផ្អាក"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"ទីតាំង"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ត្រូវបានដាក់​ទៅក្នុងធុង​ដែលបានដាក់កំហិត"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>៖"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"បាន​ផ្ញើរូបភាព"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ផែនទី"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"កម្មវិធី"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"លែងអាចសម្គាល់ស្នាមម្រាមដៃរបស់អ្នកបានទៀតហើយ។ សូមរៀបចំការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃម្ដងទៀត។"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"បានដោតឧបករណ៍ USB នៅពេលជាប់សោ"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"ឧបករណ៍ USB ត្រូវបានដោត នៅពេល Android ត្រូវបានចាក់សោ។ ដើម្បីប្រើឧបករណ៍ សូមដោះសោ Android ជាមុនសិន បន្ទាប់មកដោតឧបករណ៍ USB ឡើងវិញ ដើម្បីប្រើប្រាស់វា។"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"សកម្មភាព USB ដែលគួរឱ្យសង្ស័យ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"សញ្ញាទិន្នន័យ USB ត្រូវបានបិទ។"</string>
 </resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index c65dd27..887938c 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ಅನ್‌ಪಿನ್"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ಅನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡಿ"</string>
     <string name="app_info" msgid="6113278084877079851">"ಆ್ಯಪ್ ಮಾಹಿತಿ"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"ನೇರ ಹಂಚಿಕೊಳ್ಳುವಿಕೆ ಟಾರ್ಗೆಟ್‌ಗಳು"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ಆ್ಯಪ್ ಸಲಹೆಗಳು"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ಆ್ಯಪ್ ಪಟ್ಟಿ"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ನ ಎಡಭಾಗದ ಬಟನ್"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ನ ಬಲಭಾಗದ ಬಟನ್"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad ನ ಮಧ್ಯದ ಬಟನ್"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ಆಟೋಕ್ಲಿಕ್ ಪ್ರಕಾರದ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪ್ಯಾನೆಲ್"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ಎಡ-ಕ್ಲಿಕ್"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"ಬಲ-ಕ್ಲಿಕ್"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ಡಬಲ್‌ ಕ್ಲಿಕ್"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ವಿರಾಮಗೊಳಿಸಿ"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"ಸ್ಥಾನ"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ಅನ್ನು ನಿರ್ಬಂಧಿತ ಬಕೆಟ್‌ಗೆ ಹಾಕಲಾಗಿದೆ"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ಚಿತ್ರವನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌ಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ಗುರುತಿಸಲಾಗುವುದಿಲ್ಲ. ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಸೆಟಪ್ ಮಾಡಿ."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ಲಾಕ್ ಆಗಿರುವಾಗ USB ಸಾಧನವನ್ನು ಪ್ಲಗ್-ಇನ್ ಮಾಡಲಾಗುತ್ತದೆ"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android ಲಾಕ್ ಆಗಿರುವಾಗ USB ಸಾಧನವನ್ನು ಪ್ಲಗ್-ಇನ್ ಮಾಡಲಾಗುತ್ತದೆ. ಸಾಧನವನ್ನು ಬಳಸಲು, ಮೊದಲು Android ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ ಮತ್ತು ನಂತರ ಅದನ್ನು ಬಳಸಲು USB ಸಾಧನವನ್ನು ಪುನಃ ಸೇರಿಸಿ."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"ಅನುಮಾನಾಸ್ಪದ USB ಚಟುವಟಿಕೆ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ಡೇಟಾ ಸಿಗ್ನಲ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index a52da3c..fc39271 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"고정 해제"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> 고정 해제"</string>
     <string name="app_info" msgid="6113278084877079851">"앱 정보"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"직접 공유 타겟"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"앱 제안"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"앱 목록"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"방향 패드 왼쪽"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"방향 패드 오른쪽"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"방향 패드 가운데"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"자동 클릭 유형 설정 패널"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"왼쪽 클릭"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"일시중지"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"위치"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 항목이 RESTRICTED 버킷으로 이동함"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"이미지 보냄"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"지도"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"애플리케이션"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"지문을 더 이상 인식할 수 없습니다. 지문 잠금 해제를 다시 설정하세요."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"잠금 상태에서 USB 기기가 연결됨"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android가 잠겨 있는 상태에서 USB 기기가 연결되었습니다. 기기를 사용하려면 먼저 Android를 잠금 해제한 다음 USB 기기를 다시 삽입하세요."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"의심스러운 USB 활동"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB 데이터 신호가 사용 중지됨"</string>
 </resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index ff743fc..f8c0022 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Кадоодон алып коюу"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> бошотуу"</string>
     <string name="app_info" msgid="6113278084877079851">"Колдонмо тууралуу"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Түздөн-түз бөлүшүлгөндөрдү алуучулар"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Сунушталган колдонмолор"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Колдонмолордун тизмеси"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad\'дын сол баскычы"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad\'дын оң баскычы"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad\'дын ортоңку баскычы"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Авточыкылдатуу түрүнүн параметрлеринин панели"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Сол баскычын чыкылдатуу"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Тындыруу"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Орду"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ЧЕКТЕЛГЕН чакага коюлган"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"сүрөт жөнөттү"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карталар"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Колдонмолор"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Манжаңыздын изи мындан ары таанылбайт. Манжа изи менен ачуу функциясын кайрадан тууралаңыз."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB түзмөк Android кулпуланып турганда туташтырылды"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB түзмөк Android кулпуланганда туташтырылды. Түзмөктү колдонуу үчүн алгач Android\'дин кулпусун ачып, USB түзмөктү кайрадан сайыңыз."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"USB\'ге байланыштуу шектүү аракет"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB сигналы өчүрүлдү."</string>
 </resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 6f32d87..429f3f7 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ຖອນປັກໝຸດ"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"ຖອດປັກມຸດ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"ຂໍ້ມູນແອັບ"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"ເປົ້າໝາຍການແບ່ງປັນໂດຍກົງ"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ການແນະນຳແອັບ"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ລາຍຊື່ແອັບ"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ຊ້າຍ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ຂວາ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad ກາງ"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ແຜງການຕັ້ງຄ່າປະເພດການຄລິກອັດຕະໂນມັດ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ຄລິກຊ້າຍ"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"ຄລິກຂວາ"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ຄລິກສອງເທື່ອ"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ລາກ"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"ເລື່ອນ"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ຢຸດຊົ່ວຄາວ"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"ຕຳແໜ່ງ"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ຖືກວາງໄວ້ໃນກະຕ່າ \"ຈຳກັດ\" ແລ້ວ"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ສົ່ງຮູບແລ້ວ"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ແຜນທີ່"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ແອັບພລິເຄຊັນ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ລະບົບບໍ່ສາມາດຈຳແນກລາຍນິ້ວມືຂອງທ່ານໄດ້ອີກຕໍ່ໄປ. ກະລຸນາຕັ້ງຄ່າການປົດລັອກດ້ວຍລາຍນິ້ວມືອີກຄັ້ງ."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ທ່ານສຽບອຸປະກອນ USB ໃນຂະນະທີ່ລັອກຢູ່"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"ທ່ານສຽບອຸປະກອນ USB ໃນຂະນະທີ່ Android ລັອກຢູ່. ເພື່ອໃຊ້ອຸປະກອນ, ກະລຸນາປົດລັອກ Android ກ່ອນແລ້ວຈຶ່ງສຽບອຸປະກອນ USB ອີກຄັ້ງເພື່ອນຳໃຊ້."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"ການເຄື່ອນໄຫວຂອງ USB ທີ່ໜ້າສົງໄສ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"ສັນຍານຂໍ້ມູນຂອງ USB ຖືກປິດການນຳໃຊ້."</string>
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 71ddb09..3ca681b 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -2090,6 +2090,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Atsegti"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Atsegti <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Programos informacija"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Tiesioginio bendrinimo paskirties vietos"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Siūlomos programos"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Programų sąrašas"</string>
     <string name="negative_duration" msgid="1938335096972945232">"–<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Paleidžiama demonstracinė versija…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Įrenginys nustatomas iš naujo…"</string>
@@ -2244,6 +2247,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Valdymo pultas – kairėn"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Valdymo pultas – dešinėn"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Valdymo pultas – centras"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Automatinio paspaudimo tipo nustatymų skydelis"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Spustelėti kairiuoju klavišu"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Spustelėti dešiniuoju klavišu"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dukart spustelėti"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Vilkti"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Slinkti"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pristabdyti"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozicija"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"išsiuntė vaizdą"</string>
@@ -2518,4 +2529,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Žemėlapiai"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Programos"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Nebegalima atpažinti jūsų piršto atspaudų. Dar kartą nustatykite atrakinimą piršto atspaudu."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB įrenginys prijungtas, kai užrakintas"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB įrenginys prijungtas, kai „Android“ užrakintas. Jei norite naudoti įrenginį, pirmiausia atrakinkite „Android“, tada vėl įkiškite USB įrenginį, kad galėtumėte jį naudoti."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Įtartina USB veikla"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB duomenų signalas išjungtas."</string>
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index a643b98..1e7ffd1 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Atspraust"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Atspraust lietotni <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Lietotnes informācija"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Tiešās kopīgošanas adresāti"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Ieteicamās lietotnes"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lietotņu saraksts"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Notiek demonstrācijas palaišana..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Notiek ierīces atiestatīšana..."</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Virzienu slēdzis — pa kreisi"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Virzienu slēdzis — pa labi"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Virzienu slēdzis — centrs"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Automātiskās klikšķināšanas veida iestatījumu panelis"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Noklikšķināt ar peles kreiso pogu"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pārtraukt"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozīcija"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"nosūtīts attēls"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Lietojumprogrammas"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Jūsu pirkstu nospiedumus vairs nevar atpazīt. Vēlreiz iestatiet autorizāciju ar pirksta nospiedumu."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB ierīce tika pievienota, kad Android ierīce bija bloķēta"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB ierīce tika pievienota, kad Android ierīce bija bloķēta. Lai izmantotu ierīci, vispirms atbloķējiet Android ierīci un pēc tam atkārtoti pievienojiet USB ierīci."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Aizdomīgas darbības ar USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB datu signāls ir atspējots."</string>
 </resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index f2de857..c1a7c1d 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Откачете"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Откачи <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Информации за апликација"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Директни цели на споделување"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Предлози за апликации"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Список со апликации"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Навигациско копче за налево"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Навигациско копче за надесно"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Навигациско копче за средина"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Табла со поставки за вид автоматско кликнување"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Кликни со лево копче"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Паузирај"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Позиционирај"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е ставен во корпата ОГРАНИЧЕНИ"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"испрати слика"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карти"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Апликации"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Вашите отпечатоци веќе не може да се препознаат. Поставете „Отклучување со отпечаток“ повторно."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-уредот е приклучен кога е заклучен"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-уредот е приклучен кога Android е заклучен. За да го користите уредот, прво отклучете го Android, па вметнете го USB-уредот повторно за да го користите."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Сомнителна активност на USB-уредот"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Сигналот со податоци преку USB е оневозможен."</string>
 </resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 85dd336..5c31433 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"അൺപിൻ ചെയ്യുക"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> അൺപിൻ ചെയ്യുക"</string>
     <string name="app_info" msgid="6113278084877079851">"ആപ്പ് വിവരം"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"നേരിട്ടുള്ള പങ്കിടൽ ടാർഗറ്റുകൾ"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ആപ്പ് നിർദ്ദേശങ്ങൾ"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ആപ്പ് ലിസ്റ്റ്"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ലെഫ്റ്റ്"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad റൈറ്റ്"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad സെന്റർ"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ഓട്ടോക്ലിക്ക് തരം ക്രമീകരണ പാനല്‍"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ഇടത് ക്ലിക്ക്"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"വലത്-ക്ലിക്ക്"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ഡബിൾ ക്ലിക്ക്"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"വലിച്ചിടുക"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"സ്‌ക്രോൾ ചെയ്യുക"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"താൽക്കാലികമായി നിർത്തുക"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"സ്ഥാനം"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> നിയന്ത്രിത ബക്കറ്റിലേക്ക് നീക്കി"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ചിത്രം അയച്ചു"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ആപ്പുകൾ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റുകൾ ഇനി തിരിച്ചറിയാനാകില്ല. ഫിംഗർപ്രിന്റ് അൺലോക്ക് വീണ്ടും സജ്ജീകരിക്കുക."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ലോക്കായിരിക്കുമ്പോഴാണ് USB ഉപകരണം പ്ലഗ്-ഇൻ ചെയ്തത്"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android ലോക്കായിരിക്കുമ്പോഴാണ് USB ഉപകരണം പ്ലഗ്-ഇൻ ചെയ്തത്. ഉപകരണം ഉപയോഗിക്കാൻ ആദ്യം Android അൺലോക്ക് ചെയ്യുക, ശേഷം USB ഉപകരണം വീണ്ടും ഇൻസേർട്ട് ചെയ്ത് ഉപയോഗിക്കുക."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"സംശയാസ്പദമായ USB ആക്റ്റിവിറ്റി"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ഡാറ്റാ സിഗ്‌നൽ പ്രവർത്തനരഹിതമാക്കി."</string>
 </resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 2c4b9f4..24637fa 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Unpin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>-г тогтоосныг болиулах"</string>
     <string name="app_info" msgid="6113278084877079851">"Аппын мэдээлэл"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Шууд хуваалцах сонголтууд"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Санал болгож буй аппууд"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Аппын жагсаалт"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad зүүн"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad баруун"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad гол"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Автомат товшилтын төрлийн тохиргооны түр зуурын самбар"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Зүүн талыг товших"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Түр зогсоох"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Байрлал"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>-г ХЯЗГААРЛАСАН сагс руу орууллаа"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"зураг илгээсэн"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Газрын зураг"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Аппликэйшн"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Таны хурууны хээг цаашид таних боломжгүй. Хурууны хээгээр түгжээ тайлахыг дахин тохируулна уу."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Түгжээтэй үед USB төхөөрөмж залгаатай байна"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android-г түгжсэн үед USB төхөөрөмж залгаатай байна. Төхөөрөмжийг ашиглахын тулд эхлээд Android-н түгжээг тайлж, дараа нь USB төхөөрөмжийг ашиглахын тулд дахин оруулна уу."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"USB-н сэжигтэй үйл ажиллагаа"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-н өгөгдлийн дохиог идэвхгүй болгосон."</string>
 </resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index e9dfef8..0717eb9 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -2042,7 +2042,7 @@
     <string name="app_suspended_title" msgid="888873445010322650">"अ‍ॅप उपलब्ध नाही"</string>
     <string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> आत्ता उपलब्ध नाही. हे <xliff:g id="APP_NAME_1">%2$s</xliff:g> कडून व्यवस्थापित केले जाते."</string>
     <string name="app_suspended_more_details" msgid="211260942831587014">"अधिक जाणून घ्या"</string>
-    <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"अ‍ॅप उघडा"</string>
+    <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"अ‍ॅप पुन्हा सुरू करा"</string>
     <string name="work_mode_off_title" msgid="6367463960165135829">"वर्क ॲप्स पुन्हा सुरू करायची?"</string>
     <string name="work_mode_turn_on" msgid="5316648862401307800">"पुन्हा सुरू करा"</string>
     <string name="work_mode_emergency_call_button" msgid="6818855962881612322">"आणीबाणी"</string>
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"अनपिन करा"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ला अनपिन करा"</string>
     <string name="app_info" msgid="6113278084877079851">"अ‍ॅप माहिती"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"थेट शेअर करण्यासंबंधी लक्ष्ये"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"अ‍ॅप सूचना"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"अ‍ॅप सूची"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad डावीकडील"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad चे उजवीकडील"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad चे मधले"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ऑटोक्लिक प्रकाराचे सेटिंग्ज पॅनल"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"लेफ्ट क्लिक करा"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"राइट क्लिक करा"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"डबल क्लिक करा"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ड्रॅग करा"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"स्क्रोल करा"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"थांबवा"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"स्थिती"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> हे प्रतिबंधित बादलीमध्ये ठेवण्यात आले आहे"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"इमेज पाठवली आहे"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"अ‍ॅप्लिकेशन"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"तुमची फिंगरप्रिंट यापुढे ओळखता येणार नाहीत. फिंगरप्रिंट अनलॉक पुन्हा सेट करा."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"लॉक केलेले असताना USB डिव्हाइस प्लग इन केले आहे"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android लॉक केलेले असताना USB डिव्हाइस प्लग इन केले आहे. डिव्हाइस वापरण्यासाठी, कृपया सर्वप्रथम Android अनलॉक करा आणि त्यानंतर USB डिव्हाइस वापरण्यासाठी ते पुन्हा घाला."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"संशयास्पद USB ॲक्टिव्हिटी"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB डेटा सिग्नल बंद करण्यात आला आहे."</string>
 </resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 5cb9def..5cac65d 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Nyahsemat"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Nyahsemat <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Maklumat apl"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Sasaran perkongsian langsung"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Cadangan apl"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Senarai apl"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Memulakan tunjuk cara…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Menetapkan semula peranti…"</string>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad Kiri"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad Kanan"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad Tengah"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel tetapan jenis autoklik"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Klik kiri"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Klik kanan"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Klik dua kali"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Seret"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Tatal"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Jeda"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Kedudukan"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"menghantar imej"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikasi"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Cap jari anda tidak dapat dicam lagi. Sediakan semula Buka Kunci Cap Jari."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Peranti USB dipalamkan apabila dikunci"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Peranti USB dipalamkan apabila Android dikunci. Untuk menggunakan peranti, sila buka kunci Android dahulu, kemudian masukkan semula peranti USB untuk menggunakan peranti itu."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Aktiviti USB yang mencurigakan"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Isyarat data USB telah dilumpuhkan."</string>
 </resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 0a51d1e..10bcd1b 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ဖြုတ်ပါ"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ကို ပင်ဖြုတ်ရန်"</string>
     <string name="app_info" msgid="6113278084877079851">"အက်ပ်အချက်အလက်"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"တိုက်ရိုက်မျှဝေသည့် ပစ်မှတ်များ"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"အက်ပ်အကြံပြုချက်များ"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"အက်ပ်စာရင်း"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ဘယ်"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ညာ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad အလယ်"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"အော်တိုနှိပ်ခြင်း အမျိုးအစား ဆက်တင်အကန့်"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ဘယ်ကလစ်"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ခဏရပ်ရန်"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"နေရာ"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ကို တားမြစ်ထားသော သိမ်းဆည်းမှုအတွင်းသို့ ထည့်ပြီးပါပြီ"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>-"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ပုံပို့ထားသည်"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"အပလီကေးရှင်းများ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"သင့်လက်ဗွေများကို မသိရှိနိုင်တော့ပါ။ ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ထပ်မံစနစ်ထည့်သွင်းပါ။"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"လော့ခ်ချထားချိန်တွင် USB စက်ကို ပလတ်တပ်ထားခြင်း"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android လော့ခ်ချထားချိန်တွင် USB စက်ကို ပလတ်တပ်ထားသည်။ စက်သုံးရန်အတွက် Android ကို အရင်ဖွင့်ပြီး USB စက်ပြန်ထည့်ကာ သုံးပါ။"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"သံသယဖြစ်ဖွယ် USB လုပ်ဆောင်ချက်"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ဒေတာအချက်ပြမှုကို ပိတ်လိုက်ပါပြီ။"</string>
 </resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 6bd4598..800f118 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Løsne"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Løsne <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Info om appen"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direkte delingsmål"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Appforslag"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Appliste"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Starter demo …"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Tilbakestiller enheten …"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Venstre på styrepilene"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Høyre på styrepilene"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Midt på styrepilene"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Innstillingspanel for type autoklikk"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Venstreklikk"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Sett på pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Plassér"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"har sendt et bilde"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apper"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Fingeravtrykkene dine kan ikke gjenkjennes lenger. Konfigurer opplåsing med fingeravtrykk på nytt."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-enheten er koblet til når den er låst"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-enheten er koblet til når Android er låst. Før du kan bruke enheten, må du låse opp Android og så sette inn USB-enheten på nytt."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Mistenkelig USB-aktivitet"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-datasignalet er slått av."</string>
 </resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index b94c2f6..ce0c67e 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -351,7 +351,7 @@
     <string name="permgroupdesc_phone" msgid="270048070781478204">"फोन कलहरू गर्नुहोस् र व्यवस्थापन गर्नुहोस्"</string>
     <string name="permgrouplab_sensors" msgid="9134046949784064495">"बडी सेन्सरहरू"</string>
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"तपाईंको महत्त्वपूर्ण संकेत बारे सेन्सर डेटा पहुँच गर्नुहोस्"</string>
-    <string name="permgrouplab_notifications" msgid="5472972361980668884">"सूचनाहरू"</string>
+    <string name="permgrouplab_notifications" msgid="5472972361980668884">"नोटिफिकेसनहरू"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"सूचनाहरू देखाउनुहोस्"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"विन्डो सामग्रीको पुनःबहाली गर्नुहोस्।"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"तपाईँको अन्तरक्रिया भइरहेको विन्डोको सामग्रीको निरीक्षण गर्नुहोस्।"</string>
@@ -877,7 +877,7 @@
     <string name="policylab_disableKeyguardFeatures" msgid="5071855750149949741">"स्क्रिन लकका केही सुविधा असक्षम पार्ने"</string>
     <string name="policydesc_disableKeyguardFeatures" msgid="6641673177041195957">"स्क्रिन लकका केही सुविधाहरूको प्रयोगमा रोक लगाउन।"</string>
   <string-array name="phoneTypes">
-    <item msgid="8996339953292723951">"गृह"</item>
+    <item msgid="8996339953292723951">"घर"</item>
     <item msgid="7740243458912727194">"मोबाइल"</item>
     <item msgid="8526146065496663766">"काम गर्नुहोस्"</item>
     <item msgid="8150904584178569699">"कार्य फ्याक्स"</item>
@@ -887,19 +887,19 @@
     <item msgid="6216981255272016212">" कस्टम"</item>
   </string-array>
   <string-array name="emailAddressTypes">
-    <item msgid="7786349763648997741">"गृह"</item>
+    <item msgid="7786349763648997741">"घर"</item>
     <item msgid="435564470865989199">"काम"</item>
     <item msgid="4199433197875490373">"अन्य"</item>
     <item msgid="3233938986670468328">" कस्टम"</item>
   </string-array>
   <string-array name="postalAddressTypes">
-    <item msgid="3861463339764243038">"गृह"</item>
+    <item msgid="3861463339764243038">"घर"</item>
     <item msgid="5472578890164979109">"काम"</item>
     <item msgid="5718921296646594739">"अन्य"</item>
     <item msgid="5523122236731783179">" कस्टम"</item>
   </string-array>
   <string-array name="imAddressTypes">
-    <item msgid="588088543406993772">"गृह"</item>
+    <item msgid="588088543406993772">"घर"</item>
     <item msgid="5503060422020476757">"काम"</item>
     <item msgid="2530391194653760297">"अन्य"</item>
     <item msgid="7640927178025203330">" कस्टम"</item>
@@ -920,7 +920,7 @@
     <item msgid="8293711853624033835">"Jabber"</item>
   </string-array>
     <string name="phoneTypeCustom" msgid="5120365721260686814">" कस्टम"</string>
-    <string name="phoneTypeHome" msgid="3880132427643623588">"गृह"</string>
+    <string name="phoneTypeHome" msgid="3880132427643623588">"घर"</string>
     <string name="phoneTypeMobile" msgid="1178852541462086735">"मोबाइल"</string>
     <string name="phoneTypeWork" msgid="6604967163358864607">"काम"</string>
     <string name="phoneTypeFaxWork" msgid="6757519896109439123">"कार्य फ्याक्स"</string>
@@ -945,16 +945,16 @@
     <string name="eventTypeAnniversary" msgid="4684702412407916888">"वार्षिक समारोह"</string>
     <string name="eventTypeOther" msgid="530671238533887997">"अन्य"</string>
     <string name="emailTypeCustom" msgid="1809435350482181786">" कस्टम"</string>
-    <string name="emailTypeHome" msgid="1597116303154775999">"गृह"</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="postalTypeHome" msgid="7562272480949727912">"गृह"</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="imTypeHome" msgid="6996507981044278216">"गृह"</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>
@@ -986,7 +986,7 @@
     <string name="relationTypeSister" msgid="3721676005094140671">"बहिनी"</string>
     <string name="relationTypeSpouse" msgid="6916682664436031703">"पति-पत्नी"</string>
     <string name="sipAddressTypeCustom" msgid="6283889809842649336">" कस्टम"</string>
-    <string name="sipAddressTypeHome" msgid="5918441930656878367">"गृह"</string>
+    <string name="sipAddressTypeHome" msgid="5918441930656878367">"घर"</string>
     <string name="sipAddressTypeWork" msgid="7873967986701216770">"काम गर्नुहोस्"</string>
     <string name="sipAddressTypeOther" msgid="6317012577345187275">"अन्य"</string>
     <string name="quick_contacts_not_available" msgid="1262709196045052223">"यो सम्पर्क हेर्न कुनै पनि एप फेला परेन।"</string>
@@ -1408,7 +1408,7 @@
     <string name="install_carrier_app_notification_button" msgid="6257740533102594290">"एप डाउनलोड गर्नुहोस्"</string>
     <string name="carrier_app_notification_title" msgid="5815477368072060250">"नयाँ SIM घुसाइयो"</string>
     <string name="carrier_app_notification_text" msgid="6567057546341958637">"यसलाई सेटअप गर्न ट्याप गर्नुहोस्"</string>
-    <string name="time_zone_change_notification_title" msgid="5232503069219193218">"तपाईंको प्रामाणिक समय परिवर्तन गरिएको छ"</string>
+    <string name="time_zone_change_notification_title" msgid="5232503069219193218">"तपाईंको प्रामाणिक समय परिवर्तन भएको छ"</string>
     <string name="time_zone_change_notification_body" msgid="6135793674904665585">"तपाईं अहिले <xliff:g id="TIME_ZONE_DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="TIME_ZONE_OFFSET">%2$s</xliff:g>) मा हुनुहुन्छ"</string>
     <string name="time_picker_dialog_title" msgid="9053376764985220821">"समय मिलाउनुहोस्"</string>
     <string name="date_picker_dialog_title" msgid="5030520449243071926">"मिति मिलाउनुहोस्"</string>
@@ -1758,7 +1758,7 @@
     <string name="accessibility_shortcut_single_service_warning" msgid="6363127705112844257">"केही सेकेन्डसम्म दुवै भोल्युम की थिचिराख्नुले <xliff:g id="SERVICE">%1$s</xliff:g> नामक पहुँचसम्बन्धी सुविधा  सक्रिय गर्छ। यसले तपाईंको यन्त्रले काम गर्ने तरिका परिवर्तन गर्न सक्छ।\n\nतपाईं सेटिङ &gt; पहुँचमा गई यो सर्टकटमार्फत अर्को सुविधा खुल्ने बनाउन सक्नुहुन्छ।"</string>
     <string name="accessibility_shortcut_on" msgid="5463618449556111344">"सक्रिय गर्नुहोस्"</string>
     <string name="accessibility_shortcut_off" msgid="3651336255403648739">"सक्रिय नगर्नुहोस्"</string>
-    <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"सक्रिय"</string>
+    <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"अन छ"</string>
     <string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"निष्क्रिय"</string>
     <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई तपाईंको डिभाइस पूर्ण रूपमा नियन्त्रण गर्न दिने हो?"</string>
     <string name="accessibility_service_warning_description" msgid="291674995220940133">"एक्सेसिबिलिटीसम्बन्धी आवश्यकतामा सहयोग गर्ने एपको पूर्ण नियन्त्रण गर्न दिनु उपयुक्त हुन्छ तर अधिकांश एपका हकमा यस्तो नियन्त्रण उपयुक्त हुँदैन।"</string>
@@ -2088,6 +2088,12 @@
     <string name="unpin_target" msgid="3963318576590204447">"अनपिन गर्नुहोस्"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> लाई अनपिन गर्नुहोस्"</string>
     <string name="app_info" msgid="6113278084877079851">"एपका बारे जानकारी"</string>
+    <!-- no translation found for shortcut_group_a11y_title (2992150163811583865) -->
+    <skip />
+    <!-- no translation found for suggested_apps_group_a11y_title (2804876567839501831) -->
+    <skip />
+    <!-- no translation found for all_apps_group_a11y_title (7020352520224108745) -->
+    <skip />
     <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>
@@ -2182,12 +2188,12 @@
     <string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"यस सूचनालाई कम महत्त्वपूर्ण ठानी यसका लागि साइलेन्ट मोड सेट गरिएको छ। प्रतिक्रिया दिन ट्याप गर्नुहोस्।"</string>
     <string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"यस सूचनालाई धेरै महत्त्वपूर्ण सूचनाका रूपमा सेट गरिएको छ। प्रतिक्रिया दिन ट्याप गर्नुहोस्।"</string>
     <string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"यस सूचनालाई कम महत्त्वपूर्ण सूचनाका रूपमा सेट गरिएको छ। प्रतिक्रिया दिन ट्याप गर्नुहोस्।"</string>
-    <string name="nas_upgrade_notification_title" msgid="8436359459300146555">"परिष्कृत सूचनाहरू"</string>
-    <string name="nas_upgrade_notification_content" msgid="5157550369837103337">"अब परिष्कृत सूचनाहरू नामक सुविधाले कारबाही तथा जवाफहरूसम्बन्धी सुझाव देखाउँछ। Android को एड्याप्टिभ सूचनाहरू नामक सुविधाले अब उप्रान्त काम गर्दैन।"</string>
+    <string name="nas_upgrade_notification_title" msgid="8436359459300146555">"परिष्कृत नोटिफिकेसनहरू"</string>
+    <string name="nas_upgrade_notification_content" msgid="5157550369837103337">"अब परिष्कृत नोटिफिकेसनहरू नामक सुविधाले कारबाही तथा जवाफहरूसम्बन्धी सुझाव देखाउँछ। Android को एड्याप्टिभ नोटिफिकेसनहरू नामक सुविधाले अब उप्रान्त काम गर्दैन।"</string>
     <string name="nas_upgrade_notification_enable_action" msgid="3046406808378726874">"ठिक छ"</string>
     <string name="nas_upgrade_notification_disable_action" msgid="3794833210043497982">"अफ गर्नुहोस्"</string>
     <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"थप जान्नुहोस्"</string>
-    <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android १२ मा Android को एड्याप्टिभ सूचनाहरू नामक सुविधालाई परिष्कृत सूचनाहरू नामक सुविधाले प्रतिस्थापन गरेको छ। यो सुविधाले कारबाही तथा जवाफसम्बन्धी सुझाव देखाउँछ र तपाईंका सूचनाहरू व्यवस्थित गर्छ।\n\nपरिष्कृत सूचनाहरू नामक सुविधाले सूचनामा उल्लिखित सम्पर्क व्यक्तिको नाम र म्यासेज जस्ता व्यक्तिगत जानकारीलगायतका सामग्री हेर्न तथा प्रयोग गर्न सक्छ। यो सुविधाले फोन उठाउने तथा \'बाधा नपुऱ्याउनुहोस्\' मोड नियन्त्रण गर्ने कार्यसहित सूचनाहरू हटाउने वा सूचनाहरूको जवाफ दिने कार्य पनि गर्न सक्छ।"</string>
+    <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android १२ मा Android को एड्याप्टिभ नोटिफिकेसनहरू नामक सुविधालाई परिष्कृत नोटिफिकेसनहरू नामक सुविधाले प्रतिस्थापन गरेको छ। यो सुविधाले कारबाही तथा जवाफसम्बन्धी सुझाव देखाउँछ र तपाईंका नोटिफिकेसनहरू व्यवस्थित गर्छ।\n\nपरिष्कृत नोटिफिकेसनहरू नामक सुविधाले नोटिफिकेसनमा उल्लिखित सम्पर्क व्यक्तिको नाम र म्यासेज जस्ता व्यक्तिगत जानकारीलगायतका सामग्री हेर्न तथा प्रयोग गर्न सक्छ। यो सुविधाले फोन उठाउने तथा \'बाधा नपुऱ्याउनुहोस्\' मोड नियन्त्रण गर्ने कार्यसहित नोटिफिकेसनहरू हटाउने वा नोटिफिकेसनहरूको जवाफ दिने कार्य पनि गर्न सक्छ।"</string>
     <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"दिनचर्या मोडको जानकारीमूलक सूचना"</string>
     <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ब्याट्री सेभर अन गरिएको छ"</string>
     <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ब्याट्रीको आयु बढाउन ब्याट्रीको खपत कम गरिँदै छ"</string>
@@ -2225,7 +2231,7 @@
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"होम"</string>
     <string name="accessibility_system_action_back_label" msgid="4205361367345537608">"पछाडि फर्कनुहोस्"</string>
     <string name="accessibility_system_action_recents_label" msgid="4782875610281649728">"हालसालैका एपहरू"</string>
-    <string name="accessibility_system_action_notifications_label" msgid="6083767351772162010">"सूचनाहरू"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="6083767351772162010">"नोटिफिकेसनहरू"</string>
     <string name="accessibility_system_action_quick_settings_label" msgid="4583900123506773783">"द्रुत सेटिङहरू"</string>
     <string name="accessibility_system_action_power_dialog_label" msgid="8095341821683910781">"पावर संवाद"</string>
     <string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"लक स्क्रिन"</string>
@@ -2242,6 +2248,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad को बायाँको बटन"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad को दायाँको बटन"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad को बिचको बटन"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"अटोक्लिकको प्रकारसम्बन्धी सेटिङको प्यानल"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"बायाँ क्लिक गर्नुहोस्"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"पज गर्नुहोस्"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"स्थिति"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> लाई प्रतिबन्धित बाल्टीमा राखियो"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"फोटो पठाइयो"</string>
@@ -2516,4 +2534,12 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"नक्सा"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"एपहरू"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"तपाईंको फिंगरप्रिन्ट अब पहिचान गर्न सकिँदैन। फिंगरप्रिन्ट अनलक फेरि सेटअप गर्नुहोस्।"</string>
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_title (468577168569874967) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_text (6695268246267993166) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_title (3461195995882871461) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_text (6537085605929303187) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 52d9106..3466641 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Losmaken"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> losmaken"</string>
     <string name="app_info" msgid="6113278084877079851">"App-info"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Doelen voor direct delen"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"App-suggesties"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"App-lijst"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo starten…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Apparaat resetten…"</string>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-pad links"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-pad rechts"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-pad midden"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Deelvenster met instellingen voor het type automatisch klikken"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Klikken met de linkermuisknop"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Klikken met de rechtermuisknop"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dubbelklikken"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Slepen"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Scrollen"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pauzeren"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Positie"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"heeft een afbeelding gestuurd"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kaarten"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Je vingerafdrukken worden niet meer herkend. Stel Ontgrendelen met vingerafdruk opnieuw in."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-apparaat aangesloten terwijl vergrendeld"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Het USB-apparaat is aangesloten terwijl Android is vergrendeld. Als je het apparaat wilt gebruiken, ontgrendel je eerst Android en plaats je het USB-apparaat opnieuw om het te gebruiken."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Verdachte USB-activiteit"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-gegevenssignaal is uitgezet."</string>
 </resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index ba2560f..418231f 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -2042,7 +2042,7 @@
     <string name="app_suspended_title" msgid="888873445010322650">"ଆପ୍‌ ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="app_suspended_default_message" msgid="6451215678552004172">"ବର୍ତ୍ତମାନ <xliff:g id="APP_NAME_0">%1$s</xliff:g> ଉପଲବ୍ଧ ନାହିଁ। ଏହା <xliff:g id="APP_NAME_1">%2$s</xliff:g> ଦ୍ଵାରା ପରିଚାଳିତ ହେଉଛି।"</string>
     <string name="app_suspended_more_details" msgid="211260942831587014">"ଅଧିକ ଜାଣନ୍ତୁ"</string>
-    <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ଆପ୍ ଅନପଜ୍ କରନ୍ତୁ"</string>
+    <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ଆପ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ"</string>
     <string name="work_mode_off_title" msgid="6367463960165135829">"ୱାର୍କ ଆପ୍ସକୁ ପୁଣି ଚାଲୁ କରିବେ?"</string>
     <string name="work_mode_turn_on" msgid="5316648862401307800">"ପୁଣି ଚାଲୁ କରନ୍ତୁ"</string>
     <string name="work_mode_emergency_call_button" msgid="6818855962881612322">"ଜରୁରୀକାଳୀନ"</string>
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ଅନପିନ୍ କରନ୍ତୁ"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>ରେ ଅନ୍‌ପିନ୍ କରନ୍ତୁ"</string>
     <string name="app_info" msgid="6113278084877079851">"ଆପ୍‍ ସୂଚନା"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"ଡାଇରେକ୍ଟ ସେୟାର ଟାର୍ଗେଟ"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ଆପ ପରାମର୍ଶ"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ଆପ ତାଲିକା"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ବାମ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ଡାହାଣ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad କେନ୍ଦ୍ର"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ଅଟୋକ୍ଲିକ ପ୍ରକାର ସେଟିଂସ ପେନେଲ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ବାମ ବଟନ କ୍ଲିକ କରନ୍ତୁ"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ବିରତ କରନ୍ତୁ"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"ସ୍ଥିତି"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>କୁ ପ୍ରତିବନ୍ଧିତ ବକେଟରେ ରଖାଯାଇଛି"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ଏକ ଛବି ପଠାଯାଇଛି"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ଆପ୍ଲିକେସନ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ଆପଣଙ୍କ ଟିପଚିହ୍ନକୁ ଆଉ ଚିହ୍ନଟ କରାଯାଇପାରିବ ନାହିଁ। ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ପୁଣି ସେଟ ଅପ କରନ୍ତୁ।"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ଲକ ଥିବା ସମୟରେ USB ଡିଭାଇସ ପ୍ଲଗ ଇନ ହୋଇଛି"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android ଲକ ଥିବାବେଳେ USB ଡିଭାଇସ ପ୍ଲଗ ଇନ ହୋଇଥାଏ। ଡିଭାଇସ ବ୍ୟବହାର କରିବାକୁ, ଦୟାକରି ପ୍ରଥମେ Android ଅନଲକ କରନ୍ତୁ ଏବଂ ତାପରେ ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ USB ଡିଭାଇସ ପୁଣି ଭର୍ତ୍ତି କରନ୍ତୁ।"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"ସନ୍ଦେହଜନକ USB କାର୍ଯ୍ୟକଳାପ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ଡାଟା ସିଗନାଲକୁ ଅକ୍ଷମ କରାଯାଇଛି।"</string>
 </resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 2d2f9c0..26769a6 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"ਅਨਪਿੰਨ ਕਰੋ"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ਨੂੰ ਅਨਪਿੰਨ ਕਰੋ"</string>
     <string name="app_info" msgid="6113278084877079851">"ਐਪ ਜਾਣਕਾਰੀ"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"ਸਿੱਧੇ ਤੌਰ \'ਤੇ ਸਾਂਝਾ ਕਰਨ ਲਈ ਟਾਰਗੇਟ ਗਰੁੱਪ"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ਐਪ ਸੁਝਾਅ"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ਐਪ ਸੂਚੀ"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ਦਾ ਖੱਬੇ ਪਾਸੇ ਵਾਲਾ ਬਟਨ"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ਦਾ ਸੱਜੇ ਪਾਸੇ ਵਾਲਾ ਬਟਨ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad ਦਾ ਵਿਚਕਾਰਲਾ ਬਟਨ"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ਸਵੈ-ਕਲਿੱਕ ਟਾਈਪ ਸੈਟਿੰਗ ਪੈਨਲ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ਖੱਬਾ-ਕਲਿੱਕ ਦਬਾਓ"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"ਸੱਜਾ-ਕਲਿੱਕ ਦਬਾਓ"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ਡਬਲ ਕਲਿੱਕ ਕਰੋ"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ਘਸੀਟੋ"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"ਸਕ੍ਰੋਲ ਕਰੋ"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"ਰੋਕੋ"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"ਸਥਿਤੀ"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਖਾਨੇ ਵਿੱਚ ਪਾਇਆ ਗਿਆ ਹੈ"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ਚਿੱਤਰ ਭੇਜਿਆ ਗਿਆ"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ਐਪਲੀਕੇਸ਼ਨਾਂ"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੀ ਹੁਣ ਪਛਾਣ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਦੁਬਾਰਾ ਸੈੱਟਅੱਪ ਕਰੋ।"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"ਲਾਕ ਹੋਣ \'ਤੇ USB ਡੀਵਾਈਸ ਨੂੰ ਪਲੱਗ-ਇਨ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android ਲਾਕ ਹੋਣ \'ਤੇ USB ਡੀਵਾਈਸ ਨੂੰ ਪਲੱਗ-ਇਨ ਕੀਤਾ ਗਿਆ। ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਪਹਿਲਾਂ Android ਨੂੰ ਅਣਲਾਕ ਕਰੋ ਅਤੇ ਫਿਰ USB ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਉਸਨੂੰ ਦੁਬਾਰਾ ਲਗਾਓ।"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"ਸ਼ੱਕੀ USB ਸਰਗਰਮੀ"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB ਡਾਟਾ ਸਿਗਨਲ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।"</string>
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 810aa32..e091700 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -2090,6 +2090,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Odepnij"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Odepnij: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"O aplikacji"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Odbiorcy udostępniania bezpośredniego"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugestie aplikacji"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista aplikacji"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Uruchamiam tryb demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetuję urządzenie…"</string>
@@ -2244,6 +2247,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad – w lewo"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad – w prawo"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad – środek"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel ustawień typu automatycznego kliknięcia"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Kliknięcie lewym przyciskiem"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Wstrzymaj"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozycja"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"wysłano obraz"</string>
@@ -2518,4 +2533,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapy"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacje"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Nie można już rozpoznać Twoich odcisków palców. Skonfiguruj ponownie odblokowywanie odciskiem palca."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Podłączono urządzenie USB przy zablokowanym urządzeniu"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Podłączono urządzenie USB, gdy Android był zablokowany. Aby używać urządzenia USB, najpierw odblokuj Androida, a potem podłącz je ponownie."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Podejrzana aktywność przez USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Sygnał danych z urządzenia USB został wyłączony."</string>
 </resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 79314f7..06b43cb 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Liberar guia"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Liberar <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informações do app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Destinos de compartilhamento direto"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugestões de apps"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista de apps"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Iniciando demonstração…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Redefinindo dispositivo…"</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Botão direcional: para a esquerda"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Botão direcional: para a direita"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Botão direcional: centro"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Painel de configurações do tipo de clique automático"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Botão esquerdo"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Clicar com o botão direito do mouse"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Clicar duas vezes"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Arrastar"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Rolar"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausar"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posição"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"enviou uma imagem"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapas"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"As impressões digitais não são mais reconhecidas. Configure o Desbloqueio por impressão digital de novo."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"O dispositivo USB foi conectado com o Android bloqueado"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"O dispositivo USB foi conectado com o Android bloqueado. Para usá-lo, primeiro desbloqueie o Android e, em seguida, reconecte o dispositivo USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Atividade suspeita do USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"O indicador de dados USB foi desativado."</string>
 </resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index af76e3f..f48c326 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Soltar"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Soltar <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Info. da app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Segmentações de partilha direta"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugestões de apps"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista de apps"</string>
     <string name="negative_duration" msgid="1938335096972945232">"-<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"A iniciar a demonstração…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"A repor o dispositivo…"</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Teclado direcional: para a esquerda"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Teclado direcional: para a direita"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Teclado direcional: centrar"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Painel de definições do tipo de clique automático"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clicar com o botão esquerdo do rato"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Clicar com o botão direito do rato"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Clicar duas vezes"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Arrastar"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Deslocar"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausar"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posição"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"enviou uma imagem"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicações"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Já não é possível reconhecer as suas impressões digitais. Configure o Desbloqueio por impressão digital novamente."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Dispositivo USB ligado quando bloqueado"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"O dispositivo USB está ligado quando o Android está bloqueado. Para usar o dispositivo, desbloqueie primeiro o Android e, de seguida, volte a inserir o dispositivo USB para o usar."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Atividade USB suspeita"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"O sinal de dados USB foi desativado."</string>
 </resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 79314f7..06b43cb 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Liberar guia"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Liberar <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informações do app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Destinos de compartilhamento direto"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugestões de apps"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista de apps"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Iniciando demonstração…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Redefinindo dispositivo…"</string>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Botão direcional: para a esquerda"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Botão direcional: para a direita"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Botão direcional: centro"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Painel de configurações do tipo de clique automático"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Botão esquerdo"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Clicar com o botão direito do mouse"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Clicar duas vezes"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Arrastar"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Rolar"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausar"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posição"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"enviou uma imagem"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapas"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"As impressões digitais não são mais reconhecidas. Configure o Desbloqueio por impressão digital de novo."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"O dispositivo USB foi conectado com o Android bloqueado"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"O dispositivo USB foi conectado com o Android bloqueado. Para usá-lo, primeiro desbloqueie o Android e, em seguida, reconecte o dispositivo USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Atividade suspeita do USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"O indicador de dados USB foi desativado."</string>
 </resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 0fcd12b..73f532a 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -267,7 +267,7 @@
     <string name="global_action_power_options" msgid="1185286119330160073">"Alimentare"</string>
     <string name="global_action_restart" msgid="4678451019561687074">"Repornește"</string>
     <string name="global_action_emergency" msgid="1387617624177105088">"Urgență"</string>
-    <string name="global_action_bug_report" msgid="5127867163044170003">"Raport despre erori"</string>
+    <string name="global_action_bug_report" msgid="5127867163044170003">"Raport de eroare"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Încheie sesiunea"</string>
     <string name="global_action_screenshot" msgid="2610053466156478564">"Instantaneu"</string>
     <string name="bugreport_title" msgid="8549990811777373050">"Raport de eroare"</string>
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Anulează fixarea"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Anulează fixarea pentru <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informații despre aplicație"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Destinații de distribuire directă"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Sugestii de aplicații"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista cu aplicații"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Se pornește demonstrația…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Se resetează dispozitivul…"</string>
@@ -2243,6 +2246,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad stânga"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad dreapta"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad centru"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panoul de setări pentru clicul automat"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Clic stânga"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Întrerupe"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Poziție"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"a trimis o imagine"</string>
@@ -2517,4 +2532,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicații"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"E posibil ca amprentele tale să nu mai fie recunoscute. Configurează din nou Deblocarea cu amprenta."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Dispozitiv USB conectat când Android este blocat"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Dispozitivul USB este conectat când dispozitivul Android este blocat. Pentru a folosi dispozitivul, deblochează mai întâi dispozitivul Android, apoi reconectează dispozitivul USB pentru a-l folosi."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Activitate suspectă a dispozitivului USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Semnalul de date USB a fost dezactivat."</string>
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 8517703..e0e0807 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -2090,6 +2090,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Открепить"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Открепить приложение \"<xliff:g id="LABEL">%1$s</xliff:g>\""</string>
     <string name="app_info" msgid="6113278084877079851">"О приложении"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Получатели Direct Share"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Рекомендуемые приложения"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Список приложений"</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>
@@ -2244,6 +2247,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"D-pad – влево"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"D-pad – вправо"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"D-pad – по центру"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Панель настроек типа автонажатия"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Нажать левую кнопку"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Нажать правую кнопку"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Нажать дважды"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Перетащить"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Прокрутить"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Приостановить"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Положение"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Приложение \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" помещено в категорию с ограниченным доступом."</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"Отправлено изображение"</string>
@@ -2518,4 +2529,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карты"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Приложения"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Ваши отпечатки больше не распознаются. Настройте разблокировку по отпечатку пальца снова."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Разблокируйте экран"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Устройство Android заблокировано. Чтобы использовать USB-устройство, переподключите его после разблокировки экрана."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Обнаружено подозрительное USB-устройство"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Передача данных по USB отключена."</string>
 </resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 863f0cc..45dd5df 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -2088,6 +2088,12 @@
     <string name="unpin_target" msgid="3963318576590204447">"ගලවන්න"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ඇමුණුම ඉවත් කරන්න"</string>
     <string name="app_info" msgid="6113278084877079851">"යෙදුම් තොරතුරු"</string>
+    <!-- no translation found for shortcut_group_a11y_title (2992150163811583865) -->
+    <skip />
+    <!-- no translation found for suggested_apps_group_a11y_title (2804876567839501831) -->
+    <skip />
+    <!-- no translation found for all_apps_group_a11y_title (7020352520224108745) -->
+    <skip />
     <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>
@@ -2242,6 +2248,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad වම"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad දකුණ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad මැද"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ස්වයං ක්ලික් ආකාර සැකසීම් පැනලය"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"වම්පස ක්ලිකය"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"විරාම කරන්න"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"ස්ථානය"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> අවහිර කළ බාල්දියට දමා ඇත"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"රූපයක් එව්වා"</string>
@@ -2516,4 +2534,12 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"සිතියම්"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"යෙදුම්"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ඔබේ ඇඟිලි සලකුණු තවදුරටත් හඳුනාගත නොහැක. ඇඟිලි සලකුණු අගුළු හැරීම නැවත පිහිටුවන්න."</string>
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_title (468577168569874967) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_text (6695268246267993166) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_title (3461195995882871461) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_text (6537085605929303187) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 9d7d520..d675978 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -75,7 +75,7 @@
     <string name="CLIRDefaultOffNextCallOff" msgid="2491576172356463443">"V predvolenom nastavení nie je identifikácia volajúceho obmedzená. Ďalší hovor: Bez obmedzenia"</string>
     <string name="page_size_compat_apk_warning" msgid="2982396798449041224">"Táto aplikácia nie je kompatibilná s režimom 16 kB. Nepodarilo sa skontrolovať zarovnanie súboru APK. Táto aplikácia bude spustená v režime kompatibilnom s veľkosťou stránky. Ak chcete dosiahnuť najlepšiu kompatibilitu, znova skompilujte aplikáciu s podporou 16 kB. Viac sa dozviete na &lt;a href=\"https://developer.android.com/16kb-page-size\"&gt;https://developer.android.com/16kb-page-size&lt;/a&gt;."</string>
     <string name="page_size_compat_elf_warning" msgid="6753874059564812651">"Táto aplikácia nie je kompatibilná s režimom 16 kB. Nepodarilo sa skontrolovať zarovnanie formátu ELF. Táto aplikácia bude spustená v režime kompatibilnom s veľkosťou stránky. Ak chcete dosiahnuť najlepšiu kompatibilitu, znova skompilujte aplikáciu s podporou 16 kB. Viac sa dozviete na &lt;a href=\"https://developer.android.com/16kb-page-size\"&gt;https://developer.android.com/16kb-page-size&lt;/a&gt;."</string>
-    <string name="page_size_compat_apk_and_elf_warning" msgid="7628675779500605390">"Táto aplikácia nie je kompatibilná s režimom 16 kB. Nepodarilo sa skontrolovať zarovnanie súboru APK a formátu ELF. Táto aplikácia bude spustená v režime kompatibilnom s veľkosťou stránky. Ak chcete dosiahnuť najlepšiu kompatibilitu, znova skompilujte aplikáciu s podporou 16 kB. Viac sa dozviete na &lt;a href=\"https://developer.android.com/16kb-page-size\"&gt;https://developer.android.com/16kb-page-size&lt;/a&gt;."</string>
+    <string name="page_size_compat_apk_and_elf_warning" msgid="7628675779500605390">"Táto aplikácia nie je kompatibilná s 16 kB stránkovaním. Kontrola zarovnania v súboroch APK a ELF sa nepodarila. Aplikácia pobeží v režime kompatibility s veľkosťou stránky. Pre optimálnu kompatibilitu aplikáciu prekompilujte s podporou 16 kB stránkovania. Viac sa dozviete na &lt;a href=\"https://developer.android.com/16kb-page-size\"&gt;https://developer.android.com/16kb-page-size&lt;/a&gt;."</string>
     <string name="serviceNotProvisioned" msgid="8289333510236766193">"Služba nie je poskytovaná."</string>
     <string name="CLIRPermanent" msgid="166443681876381118">"Nemôžete meniť nastavenie identifikácie volajúcich."</string>
     <string name="auto_data_switch_title" msgid="3286350716870518297">"Dátové pripojenie bolo prepnuté na operátora <xliff:g id="CARRIERDISPLAY">%s</xliff:g>"</string>
@@ -2090,6 +2090,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Uvoľniť"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Odopnúť <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informácie o aplikácii"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Ciele priameho zdieľania"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Návrhy aplikácií"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Zoznam aplikácií"</string>
     <string name="negative_duration" msgid="1938335096972945232">"-<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Spúšťa sa ukážka…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Resetuje sa zariadenie…"</string>
@@ -2244,6 +2247,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Stlačiť tlačidlo doľava krížového ovládača"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Stlačiť tlačidlo doprava krížového ovládača"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Stlačiť stredné tlačidlo krížového ovládača"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel nastavení typu automatického kliknutia"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Kliknutie ľavým tlačidlom"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Kliknúť pravým tlačidlom"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dvakrát kliknúť"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Presunúť"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Posúvať"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pozastaviť"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozícia"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"odoslal(a) obrázok"</string>
@@ -2518,4 +2529,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapy"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikácie"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vaše odtlačky prstov sa už nedajú rozpoznať. Znova nastavte odomknutie odtlačkom prsta."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Zariadenie USB bolo pripojené počas uzamknutia"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Zariadenie USB bolo pripojené, keď bolo zariadenie s Androidom uzamknuté. Ak chcete dané zariadenie používať, najprv odomknite zariadenie s Androidom a potom znova vložte zariadenie USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Podozrivá aktivita cez USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Dátový signál cez USB bol deaktivovaný."</string>
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 2776e1c..0136f5f8 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -278,7 +278,7 @@
     <string name="bugreport_option_full_title" msgid="7681035745950045690">"Celotno poročilo"</string>
     <string name="bugreport_option_full_summary" msgid="1975130009258435885">"To možnost uporabite za najmanj motenj sistema, če je naprava neodzivna ali prepočasna oziroma ko potrebujete vse razdelke poročila. Ne omogoča vnosa več podrobnosti ali snemanja dodatnih posnetkov zaslona."</string>
     <string name="bugreport_countdown" msgid="6418620521782120755">"{count,plural, =1{Posnetek zaslona za poročilo o napakah bo narejen čez # sekundo.}one{Posnetek zaslona za poročilo o napakah bo narejen čez # sekundo.}two{Posnetek zaslona za poročilo o napakah bo narejen čez # sekundi.}few{Posnetek zaslona za poročilo o napakah bo narejen čez # sekunde.}other{Posnetek zaslona za poročilo o napakah bo narejen čez # sekund.}}"</string>
-    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Posnetek zaslona s poročilom o napakah je izdelan"</string>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Posnetek zaslona s poročilom je ustvarjen"</string>
     <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Izdelava posnetka zaslona s poročilom o napakah ni uspela"</string>
     <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>
@@ -1014,7 +1014,7 @@
     <string name="lockscreen_password_wrong" msgid="8605355913868947490">"Poskusite znova"</string>
     <string name="lockscreen_storage_locked" msgid="634993789186443380">"Odklenite za dostop do vseh funkcij in podatkov"</string>
     <string name="faceunlock_multiple_failures" msgid="681991538434031708">"Presegli ste dovoljeno število poskusov odklepanja z obrazom"</string>
-    <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"Ni kartice SIM."</string>
+    <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"Ni kartice SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="3986843848305639161">"V tabličnem računalniku ni kartice SIM."</string>
     <string name="lockscreen_missing_sim_message" product="tv" msgid="3903140876952198273">"V napravi Android TV ni kartice SIM."</string>
     <string name="lockscreen_missing_sim_message" product="default" msgid="6184187634180854181">"V telefonu ni kartice SIM."</string>
@@ -2090,6 +2090,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Odpenjanje"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Odpni aplikacijo <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Podatki o aplikacijah"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Naslovniki neposrednega deljenja"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Predlagane aplikacije"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Seznam aplikacij"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Začenjanje predstavitve …"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Ponastavljanje naprave …"</string>
@@ -2244,6 +2247,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Smerni gumb levo"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Smerni gumb desno"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Smerni gumb sredina"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Podokno z nastavitvami vrste samodejnega klika"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Levi klik"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Desni klik"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Dvoklik"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Vlečenje"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Drsenje"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Začasna zaustavitev"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Položaj"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"je poslal(-a) sliko"</string>
@@ -2518,4 +2529,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Zemljevidi"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Vaših prstnih odtisov ni več mogoče prepoznati. Znova nastavite odklepanje s prstnim odtisom."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Naprava USB je bila priključena pri zaklenjenem Androidu"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Naprava USB je bila priključena pri zaklenjenem Androidu. Če želite uporabljati napravo, najprej odklenite Android in nato znova vstavite napravo USB, da jo boste lahko uporabljali."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Sumljiva dejavnost USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Podatkovni signal USB je bil onemogočen."</string>
 </resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index 19be600..37aa8bf 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Zhgozhdo"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Zhgozhdoje <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Informacioni mbi aplikacionin"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Objektivat e ndarjes së drejtpërdrejtë"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Aplikacionet e sugjeruara"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Lista e aplikacioneve"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Po nis demonstrimin..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Po rivendos pajisjen…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Majtas në bllokun e drejtimit"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Djathtas në bllokun e drejtimit"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Qendra e bllokut të drejtimit"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Paneli i cilësimeve për llojin e klikimit automatik"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Klikimi majtas"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Vendos në pauzë"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Pozicioni"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"dërgoi një imazh"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacionet"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Gjurmët e tua të gishtave nuk mund të njihen më. Konfiguro përsëri \"Shkyçjen me gjurmën e gishtit\"."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Pajisja USB është e futur kur është e kyçur"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Pajisja USB është e futur kur Android është i kyçur. Për ta përdorur pajisjen, shkyç fillimisht Android dhe më pas fut përsëri pajisjen USB për ta përdorur."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Aktivitet i dyshimtë i USB-së"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Sinjali i të dhënave të USB-së është çaktivizuar."</string>
 </resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index c286a65..a4f0e55 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -2089,6 +2089,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Откачи"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Откачи апликацију <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Информације о апликацији"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Циљеви директног дељења"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Предлози апликација"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Листа апликација"</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>
@@ -2243,6 +2246,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"налево на D-pad-у"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"надесно на D-pad-у"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"центар на D-pad-у"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Окно са подешавањима типа аутоматског клика"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Леви клик"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"Кликните десним тастером"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"Двапут кликните"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"Превуците"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"Скролујте"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Паузирај"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Позиција"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> је додат у сегмент ОГРАНИЧЕНО"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"је послао/ла слику"</string>
@@ -2517,4 +2528,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Мапе"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Апликације"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Отисци прстију више не могу да се препознају. Поново подесите откључавање отиском прста."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB уређај је прикључен када је Android закључан"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB уређај је прикључен када је Android закључан. Да бисте користили уређај, прво откључајте Android, па поново убаците USB уређај да бисте га користили."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Сумњива USB активност"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Сигнал за пренос података са USB-а је онемогућен."</string>
 </resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index a2fcd23..e56097f 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Lossa"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Lossa <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Appinformation"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Personer/grupper att dela direkt med"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Appförslag"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Applista"</string>
     <string name="negative_duration" msgid="1938335096972945232">"-<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo startas …"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Enheten återställs …"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Styrkors, vänster"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Styrkors, höger"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Styrkors, mitten"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Inställningspanel för typ av automatiskt klick"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Vänsterklick"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pausa"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Position"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"har skickat en bild"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Appar"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Det går inte längre att känna igen dina fingeravtryck. Ställ in fingeravtryckslås igen."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB-enhet ansluten när enheten är låst"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB-enheten är ansluten när Android är låst. Om du vill använda enheten måste du först låsa upp Android och sedan sätta i USB-enheten igen."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Misstänkt USB-aktivitet"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB-datasignalen har inaktiverats."</string>
 </resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 93233d9..03a581a 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Bandua"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Bandua <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Maelezo ya programu"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Chaguo za kutuma maudhui moja kwa moja"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Mapendekezo ya programu"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Orodha ya programu"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Inaanzisha onyesho..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Inaweka upya kifaa..."</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Kitufe cha kushoto cha Dpad"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Kitufe cha kulia cha Dpad"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Kitufe cha katikati cha Dpad"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Kidirisha cha mipangilio ya aina ya kubofya kiotomatiki"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Bofya kushoto"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Sitisha"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Nafasi"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"alituma picha"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Ramani"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Programu"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Alama zako za vidole hazitambuliki tena. Weka tena mipangilio ya Kufungua kwa Alama ya Kidole."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Kifaa cha USB kimechomekwa wakati Android imefungwa"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Kifaa cha USB huchomekwa wakati Android imefungwa. Tafadhali fungua kwanza Android kisha uweke upya kifaa cha USB ili ukitumie."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Shughuli za USB za kutilia shaka"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Kiashiria cha data cha USB kimezimwa."</string>
 </resources>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 8c5acd4..16c021e 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"பின்னை அகற்று"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> ஐப் பின் நீக்கு"</string>
     <string name="app_info" msgid="6113278084877079851">"ஆப்ஸ் தகவல்"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"நேரடிப் பகிர்வு இலக்குகள்"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ஆப்ஸ் பரிந்துரைகள்"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ஆப்ஸ் பட்டியல்"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"இடது திசை காட்டும் பட்டன்"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"வலது திசை காட்டும் பட்டன்"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"மையப் பகுதியைக் காட்டும் பட்டன்"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ஆட்டோ கிளிக் வகை அமைப்புகள் பேனல்"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"இடது கிளிக்"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"இடைநிறுத்து"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"நிலை"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> என்பதை வரம்பிடப்பட்ட பக்கெட்திற்குள் சேர்க்கப்பட்டது"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"படம் அனுப்பப்பட்டது"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ஆப்ஸ்"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"உங்கள் கைரேகைகளை இனி அடையாளம் காண முடியாது. கைரேகை அன்லாக் அம்சத்தை மீண்டும் அமையுங்கள்."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"பூட்டப்பட்டிருக்கும்போது USB சாதனம் செருகப்பட்டது"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android பூட்டப்பட்டிருக்கும்போது USB சாதனம் செருகப்பட்டது. சாதனத்தைப் பயன்படுத்த, முதலில் Androidடைத் திறக்கவும், பின்னர் USB சாதனத்தைப் பயன்படுத்த அதை மீண்டும் செருகவும்."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"சந்தேகத்திற்குரிய USB செயல்பாடு"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB தரவு சிக்னல் முடக்கப்பட்டுள்ளது."</string>
 </resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 8333b0b..c565618 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"అన్‌‌పిన్‌ ‌చేయి"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>ను అన్‌పిన్ చేయి"</string>
     <string name="app_info" msgid="6113278084877079851">"యాప్ సమాచారం"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"టార్గెట్‌లను నేరుగా షేర్ చేయడం"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"యాప్ సూచనలు"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"యాప్ లిస్ట్"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ఎడమవైపున"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad కుడివైపున"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"DPad మధ్యన"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"ఆటో-క్లిక్ టైప్ సెట్టింగ్‌ల ప్యానెల్"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"ఎడమ క్లిక్"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"పాజ్ చేయండి"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"స్థానం"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> పరిమితం చేయబడిన బకెట్‌లో ఉంచబడింది"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ఇమేజ్‌ను పంపారు"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"అప్లికేషన్‌లు"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"మీ వేలిముద్రలను ఇకపై గుర్తించడం సాధ్యం కాదు. వేలిముద్ర అన్‌లాక్‌ను మళ్లీ సెటప్ చేయండి."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"లాక్ చేసి ఉన్నప్పుడు USB డివైజ్ ప్లగ్-ఇన్ అయి ఉంది"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android లాక్ అయినప్పుడు USB డివైజ్ ప్లగ్-ఇన్ చేయబడింది. డివైజ్‌ను ఉపయోగించడానికి, దయచేసి ముందుగా Androidను అన్‌లాక్ చేసి, ఆ తర్వాత, USB డివైజ్‌ను ఉపయోగించడానికి దాన్ని మళ్లీ ఇన్‌సర్ట్ చేయండి."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"USB యాక్టివిటీ అనుమానాస్పదంగా ఉంది"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB డేటా సిగ్నల్ డిజేబుల్ అయింది."</string>
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 8f82525..f4a3651 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"เลิกปักหมุด"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"เลิกปักหมุด <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"ข้อมูลแอป"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"เป้าหมายการแชร์โดยตรง"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"คำแนะนำเกี่ยวกับแอป"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"รายการแอป"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad ซ้าย"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad ขวา"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad กึ่งกลาง"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"แผงการตั้งค่าประเภทการคลิกอัตโนมัติ"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"คลิกซ้าย"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"คลิกขวา"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"ดับเบิลคลิก"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"ลาก"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"เลื่อน"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"หยุดชั่วคราว"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"วางตำแหน่ง"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"ใส่ <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ในที่เก็บข้อมูลที่ถูกจำกัดแล้ว"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ส่งรูปภาพ"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"แผนที่"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"แอปพลิเคชัน"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"ระบบจะไม่จดจำลายนิ้วมือของคุณอีกต่อไป ตั้งค่าการปลดล็อกด้วยลายนิ้วมืออีกครั้ง"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"เสียบอุปกรณ์ USB ขณะล็อกอยู่"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"คุณเสียบอุปกรณ์ USB ขณะ Android ล็อกอยู่ หากต้องการใช้อุปกรณ์ โปรดปลดล็อก Android ก่อนแล้วจึงเสียบอุปกรณ์ USB อีกครั้งเพื่อใช้งาน"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"กิจกรรม USB ที่น่าสงสัย"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"สัญญาณข้อมูล USB ปิดอยู่"</string>
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 092e15c..8782970 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"I-unpin"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"I-unpin ang <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Impormasyon ng app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Mga target ng direktang pagbabahagi"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Mga iminumungkahing app"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Listahan ng app"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Sinisimulan ang demo…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Nire-reset ang device…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad Left"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad Right"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad Center"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Panel ng mga setting ng uri ng autoclick"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Mag-left click"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"I-pause"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Posisyon"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"nagpadala ng larawan"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mga Mapa"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Mga Application"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Hindi na makikilala ang iyong mga fingerprint. I-set up ulit ang Pag-unlock Gamit ang Fingerprint."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Nakasaksak ang USB device kapag naka-lock"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Nakasaksak ang USB device kapag naka-lock ang Android. Para magamit ang device, paki-unlock muna ang Android at pagkatapos ay isaksak ulit ang USB device para magamit ito."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Kahina-hinalang aktibidad sa USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Na-disable ang data signal ng USB."</string>
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index e04ad55..7048a83 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Sabitlemeyi kaldır"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> uygulamasının sabitlemesini kaldır"</string>
     <string name="app_info" msgid="6113278084877079851">"Uygulama bilgileri"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Doğrudan paylaşım hedefleri"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Önerilen uygulamalar"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Uygulama listesi"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo başlatılıyor…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Cihaz sıfırlanıyor…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad Sol"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad Sağ"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad Orta"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Otomatik tıklama türü ayarları paneli"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Sol tıklama"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Duraklatma"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Konum"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"bir resim gönderildi"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Haritalar"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Uygulamalar"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Parmak izleriniz artık tanınamıyor. Parmak İzi Kilidi\'ni tekrar kurun."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB cihazı, Android kilitliyken takıldı"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB cihazı, Android kilitliyken takıldı. Cihazı kullanmak için lütfen önce Android\'in kilidini açın, ardından USB cihazını yeniden takın."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Şüpheli USB etkinliği"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB veri sinyali devre dışı bırakıldı."</string>
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index a788473..a366990 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -2090,6 +2090,12 @@
     <string name="unpin_target" msgid="3963318576590204447">"Відкріпити"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Відкріпити додаток <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Про додатки"</string>
+    <!-- no translation found for shortcut_group_a11y_title (2992150163811583865) -->
+    <skip />
+    <!-- no translation found for suggested_apps_group_a11y_title (2804876567839501831) -->
+    <skip />
+    <!-- no translation found for all_apps_group_a11y_title (7020352520224108745) -->
+    <skip />
     <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>
@@ -2244,6 +2250,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Кнопка \"вліво\" панелі керування"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Кнопка \"вправо\" панелі керування"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Центральна кнопка панелі керування"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Панель налаштувань типу автоматичного натискання"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Натиснути лівою кнопкою миші"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Призупинити"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Змінити позицію"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" додано в сегмент з обмеженнями"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"надіслано зображення"</string>
@@ -2435,7 +2453,7 @@
     <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Функція Dual Screen недоступна, оскільки телефон сильно нагрівається"</string>
     <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Функція Dual Screen недоступна"</string>
     <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"Функція Dual Screen недоступна, оскільки ввімкнено режим енергозбереження. Її можна вимкнути в налаштуваннях."</string>
-    <string name="device_state_notification_settings_button" msgid="691937505741872749">"Перейти до налаштувань"</string>
+    <string name="device_state_notification_settings_button" msgid="691937505741872749">"Відкрити налаштування"</string>
     <string name="device_state_notification_turn_off_button" msgid="6327161707661689232">"Вимкнути"</string>
     <string name="keyboard_layout_notification_selected_title" msgid="1202560174252421219">"Клавіатуру \"<xliff:g id="DEVICE_NAME">%s</xliff:g>\" налаштовано"</string>
     <string name="keyboard_layout_notification_one_selected_message" msgid="4314216053129257197">"Вибрано розкладку клавіатури \"<xliff:g id="LAYOUT_1">%s</xliff:g>\". Натисніть, щоб змінити."</string>
@@ -2518,4 +2536,12 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карти"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Додатки"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Ваші відбитки пальців більше не розпізнаються. Налаштуйте розблокування відбитком пальця повторно."</string>
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_title (468577168569874967) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_plugged_in_when_locked_notification_text (6695268246267993166) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_title (3461195995882871461) -->
+    <skip />
+    <!-- no translation found for usb_apm_usb_suspicious_activity_notification_text (6537085605929303187) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 7f3a2ef..b725a12 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"پن ہٹائیں"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g> سے پن ہٹائیں"</string>
     <string name="app_info" msgid="6113278084877079851">"ایپ کی معلومات"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"براہ راست اشتراک کے اہداف"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"ایپ کی تجاویز"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"ایپ کی فہرست"</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>
@@ -2242,6 +2245,14 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"‏Dpad بائیں کریں"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"‏Dpad دائیں کریں"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"‏Dpad سینٹر"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"خودکار کلک کی قسم کی ترتیبات کا پینل"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"بایاں کلک کریں"</string>
+    <string name="accessibility_autoclick_right_click" msgid="4353495816526181293">"دایاں کلک کریں"</string>
+    <string name="accessibility_autoclick_double_click" msgid="2103826849116176478">"دو بار کلک کریں"</string>
+    <string name="accessibility_autoclick_drag" msgid="1499559489796843224">"گھسیٹیں"</string>
+    <string name="accessibility_autoclick_scroll" msgid="3499385943728726933">"اسکرول کریں"</string>
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"موقوف کریں"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"پوزیشن"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> کو پابند کردہ بکٹ میں رکھ دیا گیا ہے"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"ایک تصویر بھیجی"</string>
@@ -2516,4 +2527,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"نقشے"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ایپلیکیشنز"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"آپ کے فنگر پرنٹس کو مزید پہچانا نہیں جا سکتا۔ فنگر پرنٹ اَن لاک کو دوبارہ سیٹ اپ کریں۔"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"‏مقفل ہونے پر USB آلہ پلگ ان ہوتا ہے"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"‏‫Android کے مقفل ہونے پر USB آلہ پلگ ان ہوتا ہے۔ آلہ استعمال کرنے کے لیے، براہ کرم پہلے Android کو غیر مقفل کریں اور پھر اسے استعمال کرنے کے لیے USB آلہ کو دوبارہ داخل کریں۔"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"‏‫USB کی مشکوک سرگرمی"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"‏‫USB ڈیٹا سگنل کو غیر فعال کر دیا گیا ہے۔"</string>
 </resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 9f24b98..a834669 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Yechib olish"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Yechib olish: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Ilova haqida"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Direct Share nishonlari"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Ilova takliflari"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Ilovalar roʻyxati"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Demo boshlanmoqda…"</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Qurilma asl holatga qaytarilmoqda…"</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad – chapga"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad – oʻngga"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad – markazga"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Avtomatik klik turi sozlamalari paneli"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Chap klik"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Pauza"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Joylashuvi"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"rasm yuborildi"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Xaritalar"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Ilovalar"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Barmoq izlaringiz endi tanilmaydi. Barmoq izi bilan ochishni qayta sozlang."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Qulflanganida USB qurilma quvvat manbasiga ulandi"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Android qulflanganda USB qurilma quvvat manbasiga ulandi. Qurilmani ishlatish uchun avval Android qulfini oching va keyin uni ishlatish uchun USB qurilmani qayta kiriting."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Shubhali USB faoliyati"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB maʼlumotlar signali faolsizlantirilgan."</string>
 </resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 678f3e0..c07ff1d 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Bỏ ghim"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Bỏ ghim <xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Thông tin ứng dụng"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Mục tiêu chia sẻ trực tiếp"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Ứng dụng đề xuất"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Danh sách ứng dụng"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Đang bắt đầu bản trình diễn..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Đang đặt lại thiết bị..."</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Chuyển sang trái bằng bàn phím di chuyển"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Chuyển sang phải bằng bàn phím di chuyển"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Căn giữa bằng bàn phím di chuyển"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Bảng cài đặt loại tự động nhấp"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Nhấp chuột trái"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Tạm dừng"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Vị trí"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"đã gửi hình ảnh"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Bản đồ"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Ứng dụng"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Hệ thống không nhận dạng được vân tay của bạn. Hãy thiết lập lại tính năng Mở khoá bằng vân tay."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Thiết bị USB được cắm khi thiết bị Android đang khoá"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Thiết bị USB đã được cắm khi thiết bị Android đang khoá. Để sử dụng thiết bị USB, trước tiên, hãy mở khoá thiết bị Android rồi cắm lại thiết bị USB."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Hoạt động đáng ngờ liên quan đến USB"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Tín hiệu dữ liệu qua USB đã bị tắt."</string>
 </resources>
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/res/layout/input_view.xml b/core/res/res/values-w225dp/dimens.xml
similarity index 65%
copy from services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/res/layout/input_view.xml
copy to core/res/res/values-w225dp/dimens.xml
index f229270..0cd3293 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/res/layout/input_view.xml
+++ b/core/res/res/values-w225dp/dimens.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2022 The Android Open Source Project
+  ~ Copyright 2025 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
   ~ You may obtain a copy of the License at
   ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~      https://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,9 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/input"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"/>
\ No newline at end of file
+<resources>
+    <!-- The width of the round scrollbar -->
+    <dimen name="round_scrollbar_width">6dp</dimen>
+</resources>
diff --git a/core/res/res/values-watch/config.xml b/core/res/res/values-watch/config.xml
index 4ff3f88..ef5875e 100644
--- a/core/res/res/values-watch/config.xml
+++ b/core/res/res/values-watch/config.xml
@@ -110,4 +110,8 @@
             tap power gesture from triggering the selected target action.
     -->
     <integer name="config_doubleTapPowerGestureMode">0</integer>
+
+    <!-- By default ActivityOptions#makeScaleUpAnimation is only used between activities. This
+     config enables OEMs to support its usage across tasks.-->
+    <bool name="config_enableCrossTaskScaleUpAnimation">true</bool>
 </resources>
diff --git a/core/res/res/values-watch/styles_device_defaults.xml b/core/res/res/values-watch/styles_device_defaults.xml
index d8d424a..fb7dbb0 100644
--- a/core/res/res/values-watch/styles_device_defaults.xml
+++ b/core/res/res/values-watch/styles_device_defaults.xml
@@ -37,55 +37,6 @@
         <item name="layout">@layout/watch_base_error_dialog</item>
     </style>
 
-    <!--  Button Styles  -->
-    <!-- Material Button - Filled (primary colored) -->
-    <style name="Widget.DeviceDefault.Button.Filled" parent="Widget.DeviceDefault.Button.WearMaterial3">
-        <item name="android:background">@drawable/btn_background_material_filled_watch</item>
-        <item name="textAppearance">@style/TextAppearance.Widget.Button.Material.Filled</item>
-    </style>
-
-    <!-- Material Button - Filled Tonal (Override system default button styles) -->
-    <style name="Widget.DeviceDefault.Button.WearMaterial3">
-        <item name="background">@drawable/btn_background_material_filled_tonal_watch</item>
-        <item name="textAppearance">@style/TextAppearance.Widget.Button.Material</item>
-        <item name="minHeight">@dimen/btn_material_height</item>
-        <item name="maxWidth">@dimen/btn_material_width</item>
-        <item name="android:paddingStart">@dimen/btn_horizontal_edge_padding</item>
-        <item name="android:paddingEnd">@dimen/btn_horizontal_edge_padding</item>
-        <item name="android:drawablePadding">@dimen/btn_drawable_padding</item>
-        <item name="android:maxLines">2</item>
-        <item name="android:ellipsize">end</item>
-        <item name="android:breakStrategy">simple</item>
-        <item name="stateListAnimator">@anim/button_state_list_anim_material</item>
-        <item name="focusable">true</item>
-        <item name="clickable">true</item>
-        <item name="gravity">center_vertical</item>
-    </style>
-
-    <!-- Wear Material3 Button - Outlined -->
-    <style name="Widget.DeviceDefault.Button.Outlined" parent="Widget.DeviceDefault.Button.WearMaterial3">
-        <item name="android:background">@drawable/btn_background_material_outlined_watch</item>
-    </style>
-
-    <!-- Wear Material3 Button - Text -->
-    <style name="Widget.DeviceDefault.Button.Text" parent="Widget.DeviceDefault.Button.WearMaterial3">
-        <item name="android:background">@drawable/btn_background_material_text_watch</item>
-    </style>
-
-    <!--  Wear Material3 AlertDialog Styles  -->
-    <style name="AlertDialog.DeviceDefault.WearMaterial3">
-        <item name="layout">@layout/alert_dialog_watch</item>
-    </style>
-
-    <!-- Wear Material3 Progress Bar style: progressed ring.-->
-    <style name="Widget.DeviceDefault.ProgressBar.WearMaterial3">
-        <item name="indeterminateOnly">false</item>
-        <item name="progressDrawable">@drawable/progress_ring_watch</item>
-        <item name="minHeight">@dimen/progress_bar_height</item>
-        <item name="maxHeight">@dimen/progress_bar_height</item>
-        <item name="mirrorForRtl">true</item>
-    </style>
-
     <style name="Widget.DeviceDefault.ProgressBar" parent="Widget.Material.ProgressBar">
         <!-- Allow determinate option -->
         <item name="indeterminateOnly">false</item>
diff --git a/core/res/res/values-watch/styles_material3.xml b/core/res/res/values-watch/styles_material3.xml
new file mode 100644
index 0000000..3b5007a
--- /dev/null
+++ b/core/res/res/values-watch/styles_material3.xml
@@ -0,0 +1,61 @@
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<resources>
+    <style name="Widget.Material3" parent="Widget.DeviceDefault"/>
+
+    <!--  Wear Material3 Button Styles  -->
+    <style name="Widget.Material3.Button">
+        <item name="background">@drawable/btn_background_material_filled_tonal_watch</item>
+        <item name="textAppearance">@style/TextAppearance.Widget.Material3.Button</item>
+        <item name="minHeight">@dimen/btn_material_height</item>
+        <item name="maxWidth">@dimen/btn_material_width</item>
+        <item name="android:paddingStart">@dimen/btn_horizontal_edge_padding</item>
+        <item name="android:paddingEnd">@dimen/btn_horizontal_edge_padding</item>
+        <item name="android:drawablePadding">@dimen/btn_drawable_padding</item>
+        <item name="android:maxLines">2</item>
+        <item name="android:ellipsize">end</item>
+        <item name="android:breakStrategy">simple</item>
+        <item name="stateListAnimator">@anim/button_state_list_anim_material</item>
+        <item name="focusable">true</item>
+        <item name="clickable">true</item>
+        <item name="gravity">center_vertical</item>
+    </style>
+
+    <!-- Wear Material3 Button - Filled (primary colored) -->
+    <style name="Widget.Material3.Button.Filled">
+        <item name="android:background">@drawable/btn_background_material_filled_watch</item>
+        <item name="textAppearance">@style/TextAppearance.Widget.Material3.Button.Filled</item>
+    </style>
+
+    <!-- Wear Material3 Button - Filled Tonal (Override system default button styles) -->
+    <style name="Widget.Material3.Button.FilledTonal"/>
+
+    <!-- Wear Material3 Button - Outlined -->
+    <style name="Widget.Material3.Button.Outlined">
+        <item name="android:background">@drawable/btn_background_material_outlined_watch</item>
+    </style>
+
+    <!-- Wear Material3 Button - Text -->
+    <style name="Widget.Material3.Button.Text">
+        <item name="android:background">@drawable/btn_background_material_text_watch</item>
+    </style>
+
+    <!--  Wear Material3 AlertDialog Styles  -->
+    <style name="AlertDialog.Material3">
+        <item name="layout">@layout/alert_dialog_watch</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 7888f47..c746d3c 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -1409,7 +1409,7 @@
     <string name="carrier_app_notification_title" msgid="5815477368072060250">"已插入新 SIM 卡"</string>
     <string name="carrier_app_notification_text" msgid="6567057546341958637">"点按即可进行设置"</string>
     <string name="time_zone_change_notification_title" msgid="5232503069219193218">"您的时区已更改"</string>
-    <string name="time_zone_change_notification_body" msgid="6135793674904665585">"您现在位于<xliff:g id="TIME_ZONE_DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="TIME_ZONE_OFFSET">%2$s</xliff:g>)"</string>
+    <string name="time_zone_change_notification_body" msgid="6135793674904665585">"您当前所处的时区是<xliff:g id="TIME_ZONE_DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="TIME_ZONE_OFFSET">%2$s</xliff:g>)"</string>
     <string name="time_picker_dialog_title" msgid="9053376764985220821">"设置时间"</string>
     <string name="date_picker_dialog_title" msgid="5030520449243071926">"设置日期"</string>
     <string name="date_time_set" msgid="4603445265164486816">"设置"</string>
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"取消置顶"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"取消置顶<xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"应用信息"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"直接分享目标"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"应用建议"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"应用列表"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"向左方向键"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"向右方向键"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"方向键中心"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"自动点击类型设置面板"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"点击鼠标左键"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"暂停"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"位置"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已被放入受限存储分区"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"发送了一张图片"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"地图"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"应用"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"系统无法再识别您的指纹。请重新设置“指纹解锁”功能。"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"锁定时插入了 USB 设备"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"在 Android 设备锁定时插入了 USB 设备。如需使用 USB 设备,请先解锁 Android 设备,然后重新插入 USB 设备才能使用 USB 设备。"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"可疑的 USB 活动"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB 数据信号已停用。"</string>
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 0fb351d..c6b952c 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"取消固定"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"取消將<xliff:g id="LABEL">%1$s</xliff:g>置頂"</string>
     <string name="app_info" msgid="6113278084877079851">"應用程式資料"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"直接分享對象"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"應用程式建議"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"應用程式清單"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"十字鍵向左鍵"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"十字鍵向右鍵"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"十字鍵中心鍵"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"自動點擊類型設定面板"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"按一下左鍵"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"暫停"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"位置"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已納入受限制的儲存區"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"已傳送圖片"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"地圖"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"應用程式"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"無法再辨識你的指紋。請重新設定「指紋解鎖」功能。"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"USB 裝置插入時已鎖定"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"USB 裝置插入時,Android 已鎖定。如要使用裝置,請先解鎖 Android,然後重新插入 USB 裝置,才能使用。"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"可疑的 USB 活動"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB 資料訊號已停用。"</string>
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 9e83ce8..ca0402a 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"取消固定"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"將「<xliff:g id="LABEL">%1$s</xliff:g>」取消固定"</string>
     <string name="app_info" msgid="6113278084877079851">"應用程式資訊"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"直接分享目標"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"應用程式建議"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"應用程式清單"</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>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Dpad 向左移"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Dpad 向右移"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Dpad 置中"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"自動點選類型設定面板"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"按滑鼠左鍵"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"暫停"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"位置"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"已將「<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>」移入受限制的值區"</string>
     <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"傳送了一張圖片"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"地圖"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"應用程式"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"系統無法再辨識你的指紋,請重新設定「指紋解鎖」。"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"在鎖定時插入 USB 裝置"</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"在 Android 裝置鎖定時插入 USB 裝置。如要使用 USB 裝置,請先解鎖 Android 裝置再重新插入。"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"可疑的 USB 活動"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"USB 資料信號已停用。"</string>
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index a282779..96d6b57 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -2088,6 +2088,9 @@
     <string name="unpin_target" msgid="3963318576590204447">"Susa ukuphina"</string>
     <string name="unpin_specific_target" msgid="3859828252160908146">"Susa ukuphina ku-<xliff:g id="LABEL">%1$s</xliff:g>"</string>
     <string name="app_info" msgid="6113278084877079851">"Ulwazi nge-app"</string>
+    <string name="shortcut_group_a11y_title" msgid="2992150163811583865">"Qondisa ofuna ukwabelana nabo"</string>
+    <string name="suggested_apps_group_a11y_title" msgid="2804876567839501831">"Iziphakamiso ze-app"</string>
+    <string name="all_apps_group_a11y_title" msgid="7020352520224108745">"Uhlu lwama-app"</string>
     <string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="demo_starting_message" msgid="6577581216125805905">"Iqalisa i-demo..."</string>
     <string name="demo_restarting_message" msgid="1160053183701746766">"Isetha kabusha idivayisi..."</string>
@@ -2242,6 +2245,18 @@
     <string name="accessibility_system_action_dpad_left_label" msgid="6557647179116479152">"Ngakwesokunxele se-Dpad"</string>
     <string name="accessibility_system_action_dpad_right_label" msgid="9180196950365804081">"Ngakwesokudla se-Dpad"</string>
     <string name="accessibility_system_action_dpad_center_label" msgid="8149791419358224893">"Isikhungo se-Dpad"</string>
+    <string name="accessibility_autoclick_type_settings_panel_title" msgid="7354373370578758696">"Iphaneli yamasethingi ohlobo lokuchofoza ngokuzenzekelayo"</string>
+    <string name="accessibility_autoclick_left_click" msgid="2301793352260551080">"Chofoza kwesokunxele"</string>
+    <!-- no translation found for accessibility_autoclick_right_click (4353495816526181293) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_double_click (2103826849116176478) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_drag (1499559489796843224) -->
+    <skip />
+    <!-- no translation found for accessibility_autoclick_scroll (3499385943728726933) -->
+    <skip />
+    <string name="accessibility_autoclick_pause" msgid="3272200156172573568">"Misa"</string>
+    <string name="accessibility_autoclick_position" msgid="2933660969907663545">"Indawo"</string>
     <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="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
     <string name="conversation_single_line_image_placeholder" msgid="6983271082911936900">"uthumele isithombe"</string>
@@ -2516,4 +2531,8 @@
     <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Amamephu"</string>
     <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Ama-application"</string>
     <string name="fingerprint_loe_notification_msg" msgid="3927447270148854546">"Isigxivizo somunwe wakho ngeke zisakwazi ukubonwa. Setha Ukuvula Ngesigxivizo Somunwe futhi."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_title" msgid="468577168569874967">"Idivayisi ye-USB iyapulagwa uma i-Android ikhiyiwe."</string>
+    <string name="usb_apm_usb_plugged_in_when_locked_notification_text" msgid="6695268246267993166">"Idivayisi ye-USB iyapulagwa uma i-Android ikhiyiwe. Ukuze usebenzisa idivayisi, sicela uvule i-Android kuqala bese uphinde ufake idivayisi ye-USB ukuze uyisebenzise."</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_title" msgid="3461195995882871461">"Umsebenzi we-USB osolisayo"</string>
+    <string name="usb_apm_usb_suspicious_activity_notification_text" msgid="6537085605929303187">"Isignali yedatha ye-USB ivaliwe."</string>
 </resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 9f731fe..17acf9a 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1214,6 +1214,9 @@
             3 - Really go to sleep and go home (don't doze)
             4 - Go to home
             5 - Dismiss IME if shown. Otherwise go to home
+            6 - Lock if keyguard enabled or go to sleep (doze)
+            7 - Dream if possible or go to sleep (doze)
+            8 - Go to glanceable hub or dream if possible, or sleep if neither is available (doze)
     -->
     <integer name="config_shortPressOnPowerBehavior">1</integer>
 
@@ -3259,6 +3262,14 @@
          as private. {@see android.view.Display#FLAG_PRIVATE} -->
     <integer-array translatable="false" name="config_localPrivateDisplayPorts"></integer-array>
 
+    <!-- Controls if local secondary displays should be able to steal focus and become top display.
+         Value specified in the array represents physical port address of each display and displays
+         in this list due to flag dependencies will be marked with the following flags:
+         {@see android.view.Display#FLAG_STEAL_TOP_FOCUS_DISABLED}
+         {@see android.view.Display#FLAG_OWN_FOCUS} -->
+    <integer-array translatable="false" name="config_localNotStealTopFocusDisplayPorts">
+    </integer-array>
+
     <!-- The default mode for the default display. One of the following values (See Display.java):
              0 - COLOR_MODE_DEFAULT
              7 - COLOR_MODE_SRGB
@@ -7245,6 +7256,9 @@
     <!-- Wear devices: An intent action that is used for remote intent. -->
     <string name="config_wearRemoteIntentAction" translatable="false" />
 
+    <!-- Whether the current device's internal display can host desktop sessions.  -->
+    <bool name="config_canInternalDisplayHostDesktops">false</bool>
+
     <!-- Whether desktop mode is supported on the current device  -->
     <bool name="config_isDesktopModeSupported">false</bool>
 
@@ -7337,4 +7351,23 @@
     <!-- Array containing the notification assistant service adjustments that are not supported by
      default on this device-->
     <string-array translatable="false" name="config_notificationDefaultUnsupportedAdjustments" />
+
+    <!-- Preference name of bugreport-->
+    <string name="prefs_bugreport" translatable="false">bugreports</string>
+
+    <!-- key value of warning state stored in bugreport preference-->
+    <string name="key_warning_state" translatable="false">warning-state</string>
+
+    <!-- Bugreport warning dialog state unknown-->
+    <integer name="bugreport_state_unknown">0</integer>
+
+    <!-- Bugreport warning dialog state shows the warning dialog-->
+    <integer name="bugreport_state_show">1</integer>
+
+    <!-- Bugreport warning dialog state skips the warning dialog-->
+    <integer name="bugreport_state_hide">2</integer>
+
+    <!-- By default ActivityOptions#makeScaleUpAnimation is only used between activities. This
+         config enables OEMs to support its usage across tasks.-->
+    <bool name="config_enableCrossTaskScaleUpAnimation">false</bool>
 </resources>
diff --git a/core/res/res/values/config_telephony.xml b/core/res/res/values/config_telephony.xml
index 965c69d..f2ec56c 100644
--- a/core/res/res/values/config_telephony.xml
+++ b/core/res/res/values/config_telephony.xml
@@ -512,4 +512,9 @@
     </integer-array>
     <java-symbol type="array" name="config_verizon_satellite_enabled_tagids" />
 
+    <!-- Telephony config for un-supported network capabilities in string array
+         format. Refer to getNetworkCapabilityFromString() in DataUtils.java for available
+         capabilities. -->
+    <string-array name="config_unsupported_network_capabilities" translatable="false"></string-array>
+    <java-symbol type="array" name="config_unsupported_network_capabilities" />
 </resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 484e8ef..e9d87e4 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -431,15 +431,18 @@
     <!-- The minimum height of the notification content (even when there's only one line of text) -->
     <dimen name="notification_2025_content_min_height">40dp</dimen>
 
-    <!-- Height of a headerless notification with one or two lines -->
-    <!-- 16 * 2 (margins) + 40 (min content height) = 72 (notification) -->
+    <!-- Max height of a collapsed (headerless) notification with a summarization -->
+    <dimen name="notification_collapsed_height_with_summarization">156dp</dimen>
+
+    <!-- Max height of a collapsed (headerless) notification with one or two lines -->
+    <!-- 16 * 2 (margins) + 48 (min content height) = 72 (notification) -->
     <dimen name="notification_2025_min_height">72dp</dimen>
 
     <!-- Height of a headerless notification with one line -->
     <!-- 16 * 2 (margins) + 24 (1 line) = 56 (notification) -->
     <dimen name="notification_headerless_min_height">56dp</dimen>
 
-    <!-- Height of a small two-line notification -->
+    <!-- Max height of a collapsed two-line notification -->
     <!-- 20 * 2 (margins) + 24 * 2 (2 lines) = 88 (notification) -->
     <dimen name="notification_min_height">88dp</dimen>
 
@@ -782,6 +785,9 @@
          aliasing effects). This is only used on circular displays. -->
     <dimen name="circular_display_mask_thickness">1px</dimen>
 
+    <!-- The width of the round scrollbar -->
+    <dimen name="round_scrollbar_width">5dp</dimen>
+
     <dimen name="lock_pattern_dot_line_width">22dp</dimen>
     <dimen name="lock_pattern_dot_size">14dp</dimen>
     <dimen name="lock_pattern_dot_size_activated">30dp</dimen>
diff --git a/core/res/res/values/ids.xml b/core/res/res/values/ids.xml
index 3b39a65..5b5ef09 100644
--- a/core/res/res/values/ids.xml
+++ b/core/res/res/values/ids.xml
@@ -157,6 +157,9 @@
   <!-- Accessibility action identifier for {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction#ACTION_CONTEXT_CLICK}. -->
   <item type="id" name="accessibilityActionContextClick" />
 
+  <!-- Accessibility action identifier for {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction#ACTION_SET_EXTENDED_SELECTION}. -->
+  <item type="id" name="accessibilityActionSetExtendedSelection" />
+
   <item type="id" name="remote_input_tag" />
   <item type="id" name="pending_intent_tag" />
   <item type="id" name="remote_checked_change_listener_tag" />
diff --git a/core/res/res/values/public-staging.xml b/core/res/res/values/public-staging.xml
index 2d411d0..e3137e2 100644
--- a/core/res/res/values/public-staging.xml
+++ b/core/res/res/values/public-staging.xml
@@ -129,6 +129,8 @@
   <staging-public-group type="id" first-id="0x01b20000">
     <!-- @FlaggedApi(android.appwidget.flags.Flags.FLAG_ENGAGEMENT_METRICS) -->
     <public name="remoteViewsMetricsId"/>
+    <!-- @FlaggedApi("android.view.accessibility.a11y_selection_api")  -->
+    <public name="accessibilityActionSetExtendedSelection"/>
   </staging-public-group>
 
   <staging-public-group type="style" first-id="0x01b10000">
diff --git a/core/res/res/values/styles_device_defaults.xml b/core/res/res/values/styles_device_defaults.xml
index 326afba..3b2f244 100644
--- a/core/res/res/values/styles_device_defaults.xml
+++ b/core/res/res/values/styles_device_defaults.xml
@@ -43,11 +43,6 @@
         <item name="textAppearance">?attr/textAppearanceButton</item>
         <item name="textColor">@color/btn_colored_text_material</item>
     </style>
-    <style name="Widget.DeviceDefault.Button.WearMaterial3"/>
-    <style name="Widget.DeviceDefault.Button.WearMaterial3.Filled"/>
-    <style name="Widget.DeviceDefault.Button.WearMaterial3.FilledTonal"/>
-    <style name="Widget.DeviceDefault.Button.WearMaterial3.Outlined"/>
-    <style name="Widget.DeviceDefault.Button.WearMaterial3.Text"/>
     <style name="Widget.DeviceDefault.TextView" parent="Widget.Material.TextView" />
     <style name="Widget.DeviceDefault.CheckedTextView" parent="Widget.Material.CheckedTextView"/>
     <style name="Widget.DeviceDefault.AutoCompleteTextView" parent="Widget.Material.AutoCompleteTextView"/>
@@ -64,7 +59,6 @@
     <style name="Widget.DeviceDefault.ProgressBar.Small" parent="Widget.Material.ProgressBar.Small"/>
     <style name="Widget.DeviceDefault.ProgressBar.Small.Title" parent="Widget.Material.ProgressBar.Small.Title"/>
     <style name="Widget.DeviceDefault.ProgressBar.Large" parent="Widget.Material.ProgressBar.Large"/>
-    <style name="Widget.DeviceDefault.ProgressBar.WearMaterial3"/>
     <style name="Widget.DeviceDefault.SeekBar" parent="Widget.Material.SeekBar"/>
     <style name="Widget.DeviceDefault.RatingBar" parent="Widget.Material.RatingBar"/>
     <style name="Widget.DeviceDefault.RatingBar.Indicator" parent="Widget.Material.RatingBar.Indicator"/>
@@ -435,7 +429,6 @@
     <!-- AlertDialog Styles -->
     <style name="AlertDialog.DeviceDefault" parent="AlertDialog.Material"/>
     <style name="AlertDialog.DeviceDefault.Light" parent="AlertDialog.Material.Light"/>
-    <style name="AlertDialog.DeviceDefault.WearMaterial3"/>
 
     <!-- Animation Styles -->
     <style name="Animation.DeviceDefault.Activity" parent="Animation.Material.Activity"/>
diff --git a/core/res/res/values/styles_watch.xml b/core/res/res/values/styles_watch.xml
index 3cf1f9b..61811cd 100644
--- a/core/res/res/values/styles_watch.xml
+++ b/core/res/res/values/styles_watch.xml
@@ -16,12 +16,12 @@
 
 <resources>
     <!-- TextAppearance for Wear Material3 Button - Filled  -->
-    <style name="TextAppearance.Widget.Button.Material.Filled">
+    <style name="TextAppearance.Widget.Material3.Button.Filled">
         <item name="textColor">@color/btn_material_filled_content_color_watch</item>
     </style>
 
     <!-- TextAppearance for Wear Material3 Button - Filled Tonal  -->
-    <style name="TextAppearance.Widget.Button.Material" parent="TextAppearance.DeviceDefault">
+    <style name="TextAppearance.Widget.Material3.Button" parent="TextAppearance.DeviceDefault">
         <item name="android:fontFamily">font-family-flex-device-default</item>
         <item name="android:fontVariationSettings">"'wdth' 90, 'wght' 500, 'ROND' 100, 'opsz' 15, 'GRAD' 0"</item>
         <item name="textSize">@dimen/btn_textSize</item>
@@ -29,6 +29,8 @@
         <item name="lineHeight">@dimen/btn_lineHeight</item>
     </style>
 
+    <!--  TODO(b/383898608): remove following 3 styles once UX design is settled.  -->
+    <!--  Following 3 button styles are used in layout that uses icon button.  -->
     <style name="Widget.DeviceDefault.Button.ButtonBar.AlertDialog.WearMaterial3" parent="Widget.DeviceDefault.Button">
         <item name="android:textSize">0sp</item>
         <item name="android:gravity">center</item>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 800f98d..da6fb3b 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -430,6 +430,7 @@
   <java-symbol type="bool" name="config_enableProximityService" />
   <java-symbol type="bool" name="config_enableVirtualDeviceManager" />
   <java-symbol type="array" name="config_localPrivateDisplayPorts" />
+  <java-symbol type="array" name="config_localNotStealTopFocusDisplayPorts" />
   <java-symbol type="integer" name="config_defaultDisplayDefaultColorMode" />
   <java-symbol type="bool" name="config_enableAppWidgetService" />
   <java-symbol type="dimen" name="config_pictureInPictureMinAspectRatio" />
@@ -585,6 +586,7 @@
   <java-symbol type="dimen" name="accessibility_magnification_indicator_width" />
   <java-symbol type="dimen" name="circular_display_mask_thickness" />
   <java-symbol type="dimen" name="user_icon_size" />
+  <java-symbol type="dimen" name="round_scrollbar_width" />
 
   <java-symbol type="string" name="add_account_button_label" />
   <java-symbol type="string" name="addToDictionary" />
@@ -5752,6 +5754,9 @@
   <!-- Whether the developer option for desktop mode is supported on the current device  -->
   <java-symbol type="bool" name="config_isDesktopModeDevOptionSupported" />
 
+  <!-- Whether the current device's internal display can host desktop sessions.  -->
+  <java-symbol type="bool" name="config_canInternalDisplayHostDesktops" />
+
   <!-- Maximum number of active tasks on a given Desktop Windowing session. Set to 0 for unlimited. -->
   <java-symbol type="integer" name="config_maxDesktopWindowingActiveTasks"/>
 
@@ -5840,11 +5845,16 @@
   <!-- Default toggle for fp screen of unlcok-->
   <java-symbol type="bool" name="config_screen_off_udfps_default_on" />
 
-  <!-- Style for Wear Material3 Button. Will only be used for sdk 36 or above. -->
-  <java-symbol type="style" name="Widget.DeviceDefault.Button.WearMaterial3" />
+  <!-- Style for Material3. Will only be used for sdk 36 or above. -->
+  <java-symbol type="style" name="Widget.Material3" />
+  <java-symbol type="style" name="Widget.Material3.Button" />
+  <java-symbol type="style" name="Widget.Material3.Button.Filled" />
+  <java-symbol type="style" name="Widget.Material3.Button.FilledTonal" />
+  <java-symbol type="style" name="Widget.Material3.Button.Outlined" />
+  <java-symbol type="style" name="Widget.Material3.Button.Text" />
 
-  <!-- Style for Wear Material3 AlertDialog. Will only be used for sdk 36 or above. -->
-  <java-symbol type="style" name="AlertDialog.DeviceDefault.WearMaterial3" />
+  <!-- Style for Material3 AlertDialog. Will only be used for sdk 36 or above. -->
+  <java-symbol type="style" name="AlertDialog.Material3" />
 
   <java-symbol type="bool" name="config_allowNormalBrightnessForDozePolicy" />
 
@@ -5888,10 +5898,22 @@
   <java-symbol type="bool" name="config_deviceSupportsWifiUsd" />
 
   <java-symbol type="array" name="config_notificationDefaultUnsupportedAdjustments" />
+  <java-symbol type="drawable" name="ic_notification_summarization" />
+  <java-symbol type="dimen" name="notification_collapsed_height_with_summarization" />
 
   <!-- Advanced Protection Service USB feature -->
   <java-symbol type="string" name="usb_apm_usb_plugged_in_when_locked_notification_title" />
   <java-symbol type="string" name="usb_apm_usb_plugged_in_when_locked_notification_text" />
   <java-symbol type="string" name="usb_apm_usb_suspicious_activity_notification_title" />
   <java-symbol type="string" name="usb_apm_usb_suspicious_activity_notification_text" />
+
+  <java-symbol type="string" name="prefs_bugreport" />
+  <java-symbol type="string" name="key_warning_state" />
+  <java-symbol type="integer" name="bugreport_state_unknown" />
+  <java-symbol type="integer" name="bugreport_state_show" />
+  <java-symbol type="integer" name="bugreport_state_hide" />
+
+  <!-- Enable OEMs to support scale up anim across tasks.-->
+  <java-symbol type="bool" name="config_enableCrossTaskScaleUpAnimation" />
+
 </resources>
diff --git a/core/tests/coretests/src/android/app/NotificationManagerTest.java b/core/tests/coretests/src/android/app/NotificationManagerTest.java
index 9b97c8f..d816039 100644
--- a/core/tests/coretests/src/android/app/NotificationManagerTest.java
+++ b/core/tests/coretests/src/android/app/NotificationManagerTest.java
@@ -51,6 +51,7 @@
 
 import java.time.Instant;
 import java.time.InstantSource;
+import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(AndroidJUnit4.class)
@@ -72,7 +73,7 @@
 
         // Caches must be in test mode in order to be used in tests.
         PropertyInvalidatedCache.setTestMode(true);
-        mNotificationManager.setChannelCacheToTestMode();
+        mNotificationManager.setChannelCachesToTestMode();
     }
 
     @After
@@ -347,8 +348,8 @@
         when(mNotificationManager.mBackendService.getNotificationChannels(any(), any(),
                 anyInt())).thenReturn(new ParceledListSlice<>(List.of(exampleChannel())));
 
-        // ask for channels 100 times without invalidating the cache
-        for (int i = 0; i < 100; i++) {
+        // ask for channels 5 times without invalidating the cache
+        for (int i = 0; i < 5; i++) {
             List<NotificationChannel> unused = mNotificationManager.getNotificationChannels();
         }
 
@@ -440,6 +441,86 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
+    public void getNotificationChannelGroup_cachedUntilInvalidated() throws Exception {
+        // Data setup: group has some channels in it
+        NotificationChannelGroup g1 = new NotificationChannelGroup("g1", "group one");
+
+        NotificationChannel nc1 = new NotificationChannel("nc1", "channel one",
+                NotificationManager.IMPORTANCE_DEFAULT);
+        nc1.setGroup("g1");
+        NotificationChannel nc2 = new NotificationChannel("nc2", "channel two",
+                NotificationManager.IMPORTANCE_DEFAULT);
+        nc2.setGroup("g1");
+
+        NotificationManager.invalidateNotificationChannelCache();
+        NotificationManager.invalidateNotificationChannelGroupCache();
+        when(mNotificationManager.mBackendService.getNotificationChannelGroupsWithoutChannels(
+                any())).thenReturn(new ParceledListSlice<>(List.of(g1)));
+
+        // getting notification channel groups also involves looking for channels
+        when(mNotificationManager.mBackendService.getNotificationChannels(any(), any(), anyInt()))
+                .thenReturn(new ParceledListSlice<>(List.of(nc1, nc2)));
+
+        // ask for group 5 times without invalidating the cache
+        for (int i = 0; i < 5; i++) {
+            NotificationChannelGroup unused = mNotificationManager.getNotificationChannelGroup(
+                    "g1");
+        }
+
+        // invalidate group cache but not channels cache; then ask for groups again
+        NotificationManager.invalidateNotificationChannelGroupCache();
+        NotificationChannelGroup receivedG1 = mNotificationManager.getNotificationChannelGroup(
+                "g1");
+
+        verify(mNotificationManager.mBackendService, times(1))
+                .getNotificationChannels(any(), any(), anyInt());
+        verify(mNotificationManager.mBackendService,
+                times(2)).getNotificationChannelGroupsWithoutChannels(any());
+
+        // Also confirm that we got sensible information in the return value
+        assertThat(receivedG1).isNotNull();
+        assertThat(receivedG1.getChannels()).hasSize(2);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
+    public void getNotificationChannelGroups_cachedUntilInvalidated() throws Exception {
+        NotificationChannelGroup g1 = new NotificationChannelGroup("g1", "group one");
+        NotificationChannelGroup g2 = new NotificationChannelGroup("g2", "group two");
+        NotificationChannel nc1 = new NotificationChannel("nc1", "channel one",
+                NotificationManager.IMPORTANCE_DEFAULT);
+        nc1.setGroup("g1");
+
+        NotificationManager.invalidateNotificationChannelCache();
+        NotificationManager.invalidateNotificationChannelGroupCache();
+        when(mNotificationManager.mBackendService.getNotificationChannelGroupsWithoutChannels(
+                any())).thenReturn(new ParceledListSlice<>(List.of(g1, g2)));
+        when(mNotificationManager.mBackendService.getNotificationChannels(any(), any(), anyInt()))
+                .thenReturn(new ParceledListSlice<>(List.of(nc1)));
+
+        // ask for groups 5 times without invalidating the cache
+        for (int i = 0; i < 5; i++) {
+            List<NotificationChannelGroup> unused =
+                    mNotificationManager.getNotificationChannelGroups();
+        }
+
+        // invalidate group cache; ask again
+        NotificationManager.invalidateNotificationChannelGroupCache();
+        List<NotificationChannelGroup> result = mNotificationManager.getNotificationChannelGroups();
+
+        verify(mNotificationManager.mBackendService,
+                times(2)).getNotificationChannelGroupsWithoutChannels(any());
+
+        NotificationChannelGroup expectedG1 = g1.clone();
+        expectedG1.setChannels(List.of(nc1));
+        NotificationChannelGroup expectedG2 = g2.clone();
+        expectedG2.setChannels(new ArrayList<>());
+
+        assertThat(result).containsExactly(expectedG1, expectedG2);
+    }
+
+    @Test
     @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
     public void areAutomaticZenRulesUserManaged_handheld_isTrue() {
         PackageManager pm = mock(PackageManager.class);
diff --git a/core/tests/coretests/src/android/app/NotificationTest.java b/core/tests/coretests/src/android/app/NotificationTest.java
index ca6ad6f..f89e441 100644
--- a/core/tests/coretests/src/android/app/NotificationTest.java
+++ b/core/tests/coretests/src/android/app/NotificationTest.java
@@ -2532,6 +2532,46 @@
 
     @Test
     @EnableFlags(Flags.FLAG_API_RICH_ONGOING)
+    public void progressStyle_addProgressPoint_dropsZeroPoints() {
+        // GIVEN
+        final Notification.ProgressStyle progressStyle = new Notification.ProgressStyle();
+        // Points should not be a negative integer.
+        progressStyle
+                .addProgressPoint(new Notification.ProgressStyle.Point(0));
+
+        // THEN
+        assertThat(progressStyle.getProgressPoints()).isEmpty();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_API_RICH_ONGOING)
+    public void progressStyle_setProgressPoint_dropsZeroPoints() {
+        // GIVEN
+        final Notification.ProgressStyle progressStyle = new Notification.ProgressStyle();
+        // Points should not be a negative integer.
+        progressStyle
+                .setProgressPoints(List.of(new Notification.ProgressStyle.Point(0)));
+
+        // THEN
+        assertThat(progressStyle.getProgressPoints()).isEmpty();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_API_RICH_ONGOING)
+    public void progressStyle_createProgressModel_ignoresPointsAtMax() {
+        // GIVEN
+        final Notification.ProgressStyle progressStyle = new Notification.ProgressStyle();
+        progressStyle.addProgressSegment(new Notification.ProgressStyle.Segment(100));
+        // Points should not larger than progress maximum.
+        progressStyle
+                .addProgressPoint(new Notification.ProgressStyle.Point(100));
+
+        // THEN
+        assertThat(progressStyle.createProgressModel(Color.BLUE, Color.RED).getPoints()).isEmpty();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_API_RICH_ONGOING)
     public void progressStyle_createProgressModel_ignoresPointsExceedingMax() {
         // GIVEN
         final Notification.ProgressStyle progressStyle = new Notification.ProgressStyle();
@@ -2573,14 +2613,14 @@
         // THEN
         assertThat(progressStyle.createProgressModel(defaultProgressColor, backgroundColor)
                 .getPoints()).isEqualTo(
-                        List.of(new Notification.ProgressStyle.Point(0)
-                                .setColor(expectedProgressColor),
-                                new Notification.ProgressStyle.Point(20)
+                        List.of(new Notification.ProgressStyle.Point(20)
                                 .setColor(expectedProgressColor),
                                 new Notification.ProgressStyle.Point(50)
                                 .setColor(expectedProgressColor),
                                 new Notification.ProgressStyle.Point(70)
-                                .setColor(expectedProgressColor)
+                                .setColor(expectedProgressColor),
+                                new Notification.ProgressStyle.Point(80)
+                                        .setColor(expectedProgressColor)
                         )
         );
     }
diff --git a/core/tests/coretests/src/android/content/IntentTest.java b/core/tests/coretests/src/android/content/IntentTest.java
index fdfb0c3..fa1948d 100644
--- a/core/tests/coretests/src/android/content/IntentTest.java
+++ b/core/tests/coretests/src/android/content/IntentTest.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertTrue;
 
 import android.os.Binder;
+import android.os.Bundle;
 import android.os.IBinder;
 import android.os.Parcel;
 import android.platform.test.annotations.Presubmit;
@@ -238,4 +239,42 @@
         // Not all keys from intent are kept - clip data keys are dropped.
         assertFalse(intent.getExtraIntentKeys().containsAll(originalIntentKeys));
     }
+
+    @Test
+    public void testSetIntentExtrasClassLoaderEffectiveAfterExtraBundleUnparcel() {
+        Intent intent = new Intent();
+        intent.putExtra("bundle", new Bundle());
+
+        final Parcel parcel = Parcel.obtain();
+        intent.writeToParcel(parcel, 0);
+        parcel.setDataPosition(0);
+        final Intent target = new Intent();
+        target.readFromParcel(parcel);
+        target.collectExtraIntentKeys();
+        ClassLoader cl = new ClassLoader() {
+        };
+        target.setExtrasClassLoader(cl);
+        assertThat(target.getBundleExtra("bundle").getClassLoader()).isEqualTo(cl);
+    }
+
+    @Test
+    public void testBundlePutAllClassLoader() {
+        Intent intent = new Intent();
+        Bundle b1 = new Bundle();
+        b1.putBundle("bundle", new Bundle());
+        intent.putExtra("b1", b1);
+        final Parcel parcel = Parcel.obtain();
+        intent.writeToParcel(parcel, 0);
+        parcel.setDataPosition(0);
+        final Intent target = new Intent();
+        target.readFromParcel(parcel);
+
+        ClassLoader cl = new ClassLoader() {
+        };
+        target.setExtrasClassLoader(cl);
+        Bundle b2 = new Bundle();
+        b2.putAll(target.getBundleExtra("b1"));
+        assertThat(b2.getBundle("bundle").getClassLoader()).isEqualTo(cl);
+    }
+
 }
diff --git a/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java b/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java
index 8fa5103..dc2f0a6 100644
--- a/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java
+++ b/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java
@@ -307,8 +307,10 @@
         assertEquals(DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_ADDED,
                 mDisplayManagerGlobal
                         .mapFiltersToInternalEventFlag(DisplayManager.EVENT_TYPE_DISPLAY_ADDED, 0));
-        assertEquals(DISPLAY_CHANGE_EVENTS, mDisplayManagerGlobal
-                .mapFiltersToInternalEventFlag(DisplayManager.EVENT_TYPE_DISPLAY_CHANGED, 0));
+        assertEquals(DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED,
+                mDisplayManagerGlobal
+                        .mapFiltersToInternalEventFlag(DisplayManager.EVENT_TYPE_DISPLAY_CHANGED,
+                                0));
         assertEquals(DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_REMOVED,
                 mDisplayManagerGlobal.mapFiltersToInternalEventFlag(
                         DisplayManager.EVENT_TYPE_DISPLAY_REMOVED, 0));
diff --git a/core/tests/coretests/src/android/hardware/input/InputFlagsTest.java b/core/tests/coretests/src/android/hardware/input/InputFlagsTest.java
deleted file mode 100644
index b4f1dee..0000000
--- a/core/tests/coretests/src/android/hardware/input/InputFlagsTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.hardware.input;
-
-import static com.android.hardware.input.Flags.keyboardA11yStickyKeysFlag;
-import static com.android.hardware.input.Flags.keyboardLayoutPreviewFlag;
-
-import android.platform.test.annotations.Presubmit;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.filters.SmallTest;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Tests for {@link com.android.hardware.input.Flags}
- *
- * Build/Install/Run:
- *  atest FrameworksCoreTests:InputFlagsTest
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-@Presubmit
-public class InputFlagsTest {
-
-    /**
-     * Test that the flags work
-     */
-    @Test
-    public void testFlags() {
-        // No crash when accessing the flag.
-        keyboardLayoutPreviewFlag();
-        keyboardA11yStickyKeysFlag();
-    }
-}
-
diff --git a/core/tests/coretests/src/android/hardware/input/OWNERS b/core/tests/coretests/src/android/hardware/input/OWNERS
deleted file mode 100644
index 3f8a602..0000000
--- a/core/tests/coretests/src/android/hardware/input/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-include /core/java/android/hardware/input/OWNERS
-
diff --git a/core/tests/coretests/src/android/os/PerfettoTraceTest.java b/core/tests/coretests/src/android/os/PerfettoTraceTest.java
index 91efacf..c5c2554 100644
--- a/core/tests/coretests/src/android/os/PerfettoTraceTest.java
+++ b/core/tests/coretests/src/android/os/PerfettoTraceTest.java
@@ -249,7 +249,7 @@
 
 
         PerfettoTrace.end(FOO_CATEGORY)
-                .usingThreadNamedTrack(Process.myTid(), "%s-%s", "bar", "stool")
+                .usingThreadNamedTrack(Process.myTid(), "bar")
                 .emit();
 
         Trace trace = Trace.parseFrom(session.close());
@@ -281,7 +281,7 @@
         assertThat(hasTrackUuid).isTrue();
         assertThat(mCategoryNames).contains(FOO);
         assertThat(mTrackNames).contains(FOO);
-        assertThat(mTrackNames).contains("bar-stool");
+        assertThat(mTrackNames).contains("bar");
     }
 
     @Test
@@ -339,7 +339,7 @@
 
         PerfettoTrace.counter(FOO_CATEGORY, 3.14)
                 .usingCounterTrack(PerfettoTrace.getThreadTrackUuid(Process.myTid()),
-                                   "%s-%s", "bar", "stool").emit();
+                                   "bar").emit();
 
         Trace trace = Trace.parseFrom(session.close());
 
@@ -370,7 +370,7 @@
         assertThat(hasCounterValue).isTrue();
         assertThat(hasDoubleCounterValue).isTrue();
         assertThat(mTrackNames).contains(FOO);
-        assertThat(mTrackNames).contains("bar-stool");
+        assertThat(mTrackNames).contains("bar");
     }
 
     @Test
@@ -383,7 +383,7 @@
         PerfettoTrace.counter(FOO_CATEGORY, 16).usingProcessCounterTrack(FOO).emit();
 
         PerfettoTrace.counter(FOO_CATEGORY, 3.14)
-                .usingThreadCounterTrack(Process.myTid(), "%s-%s", "bar", "stool").emit();
+                .usingThreadCounterTrack(Process.myTid(), "bar").emit();
 
         Trace trace = Trace.parseFrom(session.close());
 
@@ -414,7 +414,7 @@
         assertThat(hasCounterValue).isTrue();
         assertThat(hasDoubleCounterValue).isTrue();
         assertThat(mTrackNames).contains(FOO);
-        assertThat(mTrackNames).contains("bar-stool");
+        assertThat(mTrackNames).contains("bar");
     }
 
     @Test
diff --git a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
index 45d66e8..e6361e1 100644
--- a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
@@ -123,15 +123,21 @@
     @Test
     public void testSetControl_cancelAnimation() {
         InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
-            final InsetsSourceControl newControl = new InsetsSourceControl(mConsumer.getControl());
+            final int[] cancelTypes = {0};
 
-            // Change the side of the insets hint.
-            newControl.setInsetsHint(Insets.of(0, 0, 0, 100));
+            // Change the side of the insets hint from NONE to BOTTOM.
+            final InsetsSourceControl newControl1 = new InsetsSourceControl(mConsumer.getControl());
+            newControl1.setInsetsHint(Insets.of(0, 0, 0, 100));
+            mConsumer.setControl(newControl1, new int[1], new int[1], cancelTypes, new int[1]);
 
-            int[] cancelTypes = {0};
-            mConsumer.setControl(newControl, new int[1], new int[1], cancelTypes, new int[1]);
+            assertEquals("The animation must not be cancelled", 0, cancelTypes[0]);
 
-            assertEquals(statusBars(), cancelTypes[0]);
+            // Change the side of the insets hint from BOTTOM to TOP.
+            final InsetsSourceControl newControl2 = new InsetsSourceControl(mConsumer.getControl());
+            newControl2.setInsetsHint(Insets.of(0, 100, 0, 0));
+            mConsumer.setControl(newControl2, new int[1], new int[1], cancelTypes, new int[1]);
+
+            assertEquals("The animation must be cancelled", statusBars(), cancelTypes[0]);
         });
 
     }
diff --git a/core/tests/coretests/src/android/view/WindowManagerTests.java b/core/tests/coretests/src/android/view/WindowManagerTests.java
index 211d768..b32aa46 100644
--- a/core/tests/coretests/src/android/view/WindowManagerTests.java
+++ b/core/tests/coretests/src/android/view/WindowManagerTests.java
@@ -16,9 +16,6 @@
 
 package android.view;
 
-import static com.android.window.flags.Flags.FLAG_ENABLE_WM_EXTENSIONS_FOR_ALL_FLAG;
-
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeTrue;
 
@@ -47,19 +44,8 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Test
-    public void testHasWindowExtensionsEnabled_flagDisabled() {
-        mSetFlagsRule.disableFlags(FLAG_ENABLE_WM_EXTENSIONS_FOR_ALL_FLAG);
-
-        // Before FLAG_ENABLE_WM_EXTENSIONS_FOR_ALL_FLAG, Extensions are always bundled with AE.
-        assertEquals(isActivityEmbeddingEnableForAll(),
-                WindowManager.hasWindowExtensionsEnabled());
-    }
-
-    @Test
-    public void testHasWindowExtensionsEnabled_flagEnabled() {
-        mSetFlagsRule.enableFlags(FLAG_ENABLE_WM_EXTENSIONS_FOR_ALL_FLAG);
-
-        // Extensions should be enabled on all devices.
+    public void testHasWindowExtensionsEnabled() {
+        // Extensions should be enabled on all phones/tablets.
         assertTrue(WindowManager.hasWindowExtensionsEnabled());
     }
 
diff --git a/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java b/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java
index 3b0eab4..cc5c6af 100644
--- a/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java
+++ b/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java
@@ -46,7 +46,7 @@
     // The number of fields tested in the corresponding CTS AccessibilityNodeInfoTest:
     // See fullyPopulateAccessibilityNodeInfo, assertEqualsAccessibilityNodeInfo,
     // and assertAccessibilityNodeInfoCleared in that class.
-    private static final int NUM_MARSHALLED_PROPERTIES = 47;
+    private static final int NUM_MARSHALLED_PROPERTIES = 48;
 
     /**
      * The number of properties that are purposely not marshalled
diff --git a/core/tests/coretests/src/android/view/contentcapture/MainContentCaptureSessionTest.java b/core/tests/coretests/src/android/view/contentcapture/MainContentCaptureSessionTest.java
index b42bcee..5f89f9c 100644
--- a/core/tests/coretests/src/android/view/contentcapture/MainContentCaptureSessionTest.java
+++ b/core/tests/coretests/src/android/view/contentcapture/MainContentCaptureSessionTest.java
@@ -36,11 +36,15 @@
 import android.graphics.Insets;
 import android.os.Handler;
 import android.os.RemoteException;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 import android.util.SparseArray;
 import android.view.View;
 import android.view.autofill.AutofillId;
+import android.view.contentcapture.flags.Flags;
 import android.view.contentprotection.ContentProtectionEventProcessor;
 
 import androidx.test.core.app.ApplicationProvider;
@@ -90,6 +94,8 @@
 
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     @Mock private IContentCaptureManager mMockSystemServerInterface;
 
     @Mock private ContentProtectionEventProcessor mMockContentProtectionEventProcessor;
@@ -407,6 +413,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_FLUSH_AFTER_EACH_FRAME)
     @SuppressWarnings("GuardedBy")
     public void notifyContentCaptureEvents_started_ContentCaptureEnabled_ProtectionEnabled()
             throws RemoteException {
@@ -434,6 +441,34 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_FLUSH_AFTER_EACH_FRAME)
+    @SuppressWarnings("GuardedBy")
+    public void notifyContentCaptureEvents_started_ContentCaptureEnabled_ProtectionEnabled_Flush()
+            throws RemoteException {
+        ContentCaptureOptions options =
+                createOptions(
+                        /* enableContentCaptureReceiver= */ true,
+                        /* enableContentProtectionReceiver= */ true);
+        MainContentCaptureSession session = createSession(options);
+        session.mDirectServiceInterface = mMockContentCaptureDirectManager;
+
+        session.onSessionStarted(0x2, null);
+        // Override the processor for interaction verification.
+        session.mContentProtectionEventProcessor = mMockContentProtectionEventProcessor;
+        notifyContentCaptureEvents(session);
+        mTestableLooper.processAllMessages();
+
+        // Force flush will happen twice.
+        verify(mMockContentCaptureDirectManager, times(1))
+                .sendEvents(any(), eq(FLUSH_REASON_VIEW_TREE_APPEARING), any());
+        verify(mMockContentCaptureDirectManager, times(1))
+                .sendEvents(any(), eq(FLUSH_REASON_VIEW_TREE_APPEARED), any());
+        // 5 view events + 2 view tree events + 1 flush event
+        verify(mMockContentProtectionEventProcessor, times(8)).processEvent(any());
+        assertThat(session.mEvents).isEmpty();
+    }
+
+    @Test
     public void notifyViewAppearedBelowMaximumBufferSize() throws RemoteException {
         ContentCaptureOptions options =
                 createOptions(
diff --git a/core/tests/coretests/src/android/window/ConfigurationDispatcherTest.kt b/core/tests/coretests/src/android/window/ConfigurationDispatcherTest.kt
new file mode 100644
index 0000000..e8e8a2e
--- /dev/null
+++ b/core/tests/coretests/src/android/window/ConfigurationDispatcherTest.kt
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.window
+
+import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW
+import android.content.ContextWrapper
+import android.content.res.Configuration
+import android.content.res.Configuration.ORIENTATION_PORTRAIT
+import android.platform.test.annotations.Presubmit
+import android.view.Display.DEFAULT_DISPLAY
+import androidx.test.filters.SmallTest
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+/**
+ * Test to verify [ConfigurationDispatcher]
+ *
+ * Build/Install/Run:
+ * atest FrameworksCoreTests:ConfigurationDispatcherTest
+ */
+@SmallTest
+@Presubmit
+@RunWith(Parameterized::class)
+class ConfigurationDispatcherTest(private val shouldReportPrivateChanges: Boolean) {
+
+    /**
+     * Verifies [ConfigurationDispatcher.shouldReportPrivateChanges].
+     */
+    @Test
+    fun testConfigurationDispatcher() {
+        val receiver = TestConfigurationReceiver(shouldReportPrivateChanges)
+        val config = Configuration().apply {
+            orientation = ORIENTATION_PORTRAIT
+        }
+
+        // Verify public config field change
+        receiver.windowToken.onConfigurationChangedInner(receiver, config, DEFAULT_DISPLAY, true)
+
+        assertThat(receiver.receivedConfig).isEqualTo(config)
+
+        // Clear the config value
+        receiver.receivedConfig.unset()
+
+        // Verify private config field change
+        config.windowConfiguration.windowingMode = WINDOWING_MODE_MULTI_WINDOW
+
+        receiver.windowToken.onConfigurationChangedInner(receiver, config, DEFAULT_DISPLAY, true)
+
+        assertThat(receiver.receivedConfig).isEqualTo(
+            if (shouldReportPrivateChanges) {
+                config
+            } else {
+                Configuration.EMPTY
+            }
+        )
+    }
+
+    /**
+     * Test [android.content.Context] to implement [ConfigurationDispatcher] for testing.
+     *
+     * @param shouldReportPrivateChanges used to override
+     * [ConfigurationDispatcher.shouldReportPrivateChanges] for testing,
+     */
+    private class TestConfigurationReceiver(
+        private val shouldReportPrivateChanges: Boolean
+    ) : ContextWrapper(null), ConfigurationDispatcher {
+        val windowToken = WindowTokenClient()
+        val receivedConfig = Configuration()
+
+        init {
+            windowToken.attachContext(this)
+        }
+
+        override fun dispatchConfigurationChanged(configuration: Configuration) {
+            receivedConfig.setTo(configuration)
+        }
+
+        override fun shouldReportPrivateChanges(): Boolean {
+            return shouldReportPrivateChanges
+        }
+
+        override fun getDisplayId(): Int {
+            return DEFAULT_DISPLAY
+        }
+    }
+
+    companion object {
+        @Parameterized.Parameters(name = "shouldReportPrivateChange={0}")
+        @JvmStatic
+        fun data(): Collection<Any> {
+            return listOf(true, false)
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/tests/coretests/src/android/window/WindowTokenClientControllerTest.java b/core/tests/coretests/src/android/window/WindowTokenClientControllerTest.java
index 84ff40f..116dc12 100644
--- a/core/tests/coretests/src/android/window/WindowTokenClientControllerTest.java
+++ b/core/tests/coretests/src/android/window/WindowTokenClientControllerTest.java
@@ -266,4 +266,25 @@
 
         verify(mWindowTokenClient).onWindowTokenRemoved();
     }
+
+    @Test
+    public void testOnWindowConfigurationChanged_propagatedToCorrectToken() throws RemoteException {
+        doReturn(mWindowContextInfo).when(mWindowManagerService)
+                .attachWindowContextToDisplayContent(any(), any(), anyInt());
+
+        mController.onWindowConfigurationChanged(mWindowTokenClient, mConfiguration,
+                DEFAULT_DISPLAY + 1);
+
+        // Not propagated before attaching
+        verify(mWindowTokenClient, never()).onConfigurationChanged(mConfiguration,
+                DEFAULT_DISPLAY + 1);
+
+        assertTrue(mController.attachToDisplayContent(mWindowTokenClient, DEFAULT_DISPLAY));
+
+        mController.onWindowConfigurationChanged(mWindowTokenClient, mConfiguration,
+                DEFAULT_DISPLAY + 1);
+
+        // Now that's attached, propagating it.
+        verify(mWindowTokenClient).postOnConfigurationChanged(mConfiguration, DEFAULT_DISPLAY + 1);
+    }
 }
diff --git a/core/tests/coretests/src/com/android/internal/util/RateLimitingCacheTest.java b/core/tests/coretests/src/com/android/internal/util/RateLimitingCacheTest.java
index 7734148..82d90fc 100644
--- a/core/tests/coretests/src/com/android/internal/util/RateLimitingCacheTest.java
+++ b/core/tests/coretests/src/com/android/internal/util/RateLimitingCacheTest.java
@@ -18,9 +18,16 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.os.SystemClock;
+import android.platform.test.annotations.Presubmit;
 
 import androidx.test.runner.AndroidJUnit4;
 
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.CountDownLatch;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,6 +35,7 @@
 /**
  * Test the RateLimitingCache class.
  */
+@Presubmit
 @RunWith(AndroidJUnit4.class)
 public class RateLimitingCacheTest {
 
@@ -38,7 +46,7 @@
         mCounter = -1;
     }
 
-    RateLimitingCache.ValueFetcher<Integer> mFetcher = () -> {
+    private final RateLimitingCache.ValueFetcher<Integer> mFetcher = () -> {
         return ++mCounter;
     };
 
@@ -120,6 +128,143 @@
     }
 
     /**
+     * Exercises concurrent access to the cache.
+     */
+    @Test
+    public void testMultipleThreads() throws InterruptedException {
+        final long periodMillis = 1000;
+        final int maxCountPerPeriod = 10;
+        final RateLimitingCache<Integer> s =
+                new RateLimitingCache<>(periodMillis, maxCountPerPeriod);
+
+        Thread t1 = new Thread(() -> {
+            for (int i = 0; i < 100; i++) {
+                s.get(mFetcher);
+            }
+        });
+        Thread t2 = new Thread(() -> {
+            for (int i = 0; i < 100; i++) {
+                s.get(mFetcher);
+            }
+        });
+
+        final long startTimeMillis = SystemClock.elapsedRealtime();
+        t1.start();
+        t2.start();
+        t1.join();
+        t2.join();
+        final long endTimeMillis = SystemClock.elapsedRealtime();
+
+        final long periodsElapsed = 1 + ((endTimeMillis - startTimeMillis) / periodMillis);
+        final long expected = Math.min(100 + 100, periodsElapsed * maxCountPerPeriod) - 1;
+        assertEquals(mCounter, expected);
+    }
+
+    /**
+     * Multiple threads calling get() on the cache while the cached value is stale are allowed
+     * to fetch, regardless of the rate limiting.
+     * This is to prevent a slow getting thread from blocking other threads from getting a fresh
+     * value.
+     */
+    @Test
+    public void testMultipleThreads_oneThreadIsSlow() throws InterruptedException {
+        final long periodMillis = 1000;
+        final int maxCountPerPeriod = 1;
+        final RateLimitingCache<Integer> s =
+                new RateLimitingCache<>(periodMillis, maxCountPerPeriod);
+
+        final CountDownLatch latch1 = new CountDownLatch(2);
+        final CountDownLatch latch2 = new CountDownLatch(1);
+        final AtomicInteger counter = new AtomicInteger();
+        final RateLimitingCache.ValueFetcher<Integer> fetcher = () -> {
+            latch1.countDown();
+            try {
+                latch2.await();
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+            return counter.incrementAndGet();
+        };
+
+        Thread t1 = new Thread(() -> {
+            for (int i = 0; i < 100; i++) {
+                s.get(fetcher);
+            }
+        });
+        Thread t2 = new Thread(() -> {
+            for (int i = 0; i < 100; i++) {
+                s.get(fetcher);
+            }
+        });
+
+        t1.start();
+        t2.start();
+        // Both threads should be admitted to fetch because there is no fresh cached value,
+        // even though this exceeds the rate limit of at most 1 call per period.
+        // Wait for both threads to be fetching.
+        latch1.await();
+        // Allow the fetcher to return.
+        latch2.countDown();
+        // Wait for both threads to finish their fetches.
+        t1.join();
+        t2.join();
+
+        assertEquals(counter.get(), 2);
+    }
+
+    /**
+     * Even if multiple threads race to refresh the cache, only one thread gets to set a new value.
+     * This ensures, among other things, that the cache never returns values that were fetched out
+     * of order.
+     */
+    @Test
+    public void testMultipleThreads_cachedValueNeverGoesBackInTime() throws InterruptedException {
+        final long periodMillis = 10;
+        final int maxCountPerPeriod = 3;
+        final RateLimitingCache<Integer> s =
+                new RateLimitingCache<>(periodMillis, maxCountPerPeriod);
+        final AtomicInteger counter = new AtomicInteger();
+        final RateLimitingCache.ValueFetcher<Integer> fetcher = () -> {
+            // Note that this fetcher has a side effect, which is strictly not allowed for
+            // RateLimitingCache users, but we make an exception for the purpose of this test.
+            return counter.incrementAndGet();
+        };
+
+        // Make three threads that spin on getting from the cache
+        final AtomicBoolean shouldRun = new AtomicBoolean(true);
+        Runnable worker = new Runnable() {
+            @Override
+            public void run() {
+                while (shouldRun.get()) {
+                    s.get(fetcher);
+                }
+            }
+        };
+        Thread t1 = new Thread(worker);
+        Thread t2 = new Thread(worker);
+        Thread t3 = new Thread(worker);
+        t1.start();
+        t2.start();
+        t3.start();
+
+        // Get values until a sufficiently convincing high value while ensuring that values are
+        // monotonically non-decreasing.
+        int lastSeen = 0;
+        while (lastSeen < 10000) {
+            int value = s.get(fetcher);
+            if (value < lastSeen) {
+                fail("Unexpectedly saw decreasing value " + value + " after " + lastSeen);
+            }
+            lastSeen = value;
+        }
+
+        shouldRun.set(false);
+        t1.join();
+        t2.join();
+        t3.join();
+    }
+
+    /**
      * Helper to make repeated calls every 5 millis to verify the number of expected fetches for
      * the given parameters.
      * @param cache the cache object
@@ -140,7 +285,8 @@
     }
 
     private static class TestRateLimitingCache<Value> extends RateLimitingCache<Value> {
-        private long mTime;
+        // Start at a non-zero time to avoid confusion with uninitialized state.
+        private long mTime = 1;
 
         public TestRateLimitingCache(long periodMillis) {
             super(periodMillis);
diff --git a/core/tests/coretests/src/com/android/internal/widget/NotificationProgressBarTest.java b/core/tests/coretests/src/com/android/internal/widget/NotificationProgressBarTest.java
index 9baa31f..282886a 100644
--- a/core/tests/coretests/src/com/android/internal/widget/NotificationProgressBarTest.java
+++ b/core/tests/coretests/src/com/android/internal/widget/NotificationProgressBarTest.java
@@ -121,18 +121,20 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 300, Color.RED)));
+                List.of(new DrawableSegment(10, 310, Color.RED)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -141,14 +143,14 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedRed = 0x80FF0000;
         expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 300, fadedRed, true)));
+                List.of(new DrawableSegment(10, 310, fadedRed, true)));
 
-        assertThat(p.second).isEqualTo(0);
+        assertThat(p.second).isEqualTo(10);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -168,18 +170,20 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 300, Color.RED)));
+                List.of(new DrawableSegment(10, 310, Color.RED)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -188,9 +192,9 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
-        assertThat(p.second).isEqualTo(300);
+        assertThat(p.second).isEqualTo(310);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -219,6 +223,42 @@
                 progressMax);
     }
 
+    @Test
+    public void processAndConvertToParts_pointPositionIsZero() {
+        List<ProgressStyle.Segment> segments = new ArrayList<>();
+        segments.add(new ProgressStyle.Segment(100).setColor(Color.RED));
+        List<ProgressStyle.Point> points = new ArrayList<>();
+        points.add(new ProgressStyle.Point(0).setColor(Color.RED));
+        int progress = 50;
+        int progressMax = 100;
+
+        List<Part> parts = NotificationProgressBar.processModelAndConvertToViewParts(segments,
+                points, progress, progressMax);
+
+        // Point at the start is dropped.
+        List<Part> expectedParts = new ArrayList<>(List.of(new Segment(1f, Color.RED)));
+
+        assertThat(parts).isEqualTo(expectedParts);
+    }
+
+    @Test
+    public void processAndConvertToParts_pointPositionAtMax() {
+        List<ProgressStyle.Segment> segments = new ArrayList<>();
+        segments.add(new ProgressStyle.Segment(100).setColor(Color.RED));
+        List<ProgressStyle.Point> points = new ArrayList<>();
+        points.add(new ProgressStyle.Point(100).setColor(Color.RED));
+        int progress = 50;
+        int progressMax = 100;
+
+        List<Part> parts = NotificationProgressBar.processModelAndConvertToViewParts(segments,
+                points, progress, progressMax);
+
+        // Point at the end is dropped.
+        List<Part> expectedParts = new ArrayList<>(List.of(new Segment(1f, Color.RED)));
+
+        assertThat(parts).isEqualTo(expectedParts);
+    }
+
     @Test(expected = IllegalArgumentException.class)
     public void processAndConvertToParts_pointPositionAboveMax() {
         List<ProgressStyle.Segment> segments = new ArrayList<>();
@@ -249,18 +289,20 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 300, Color.BLUE)));
+                List.of(new DrawableSegment(10, 310, Color.BLUE)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -269,15 +311,15 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedBlue = 0x800000FF;
         expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 180, Color.BLUE),
-                        new DrawableSegment(180, 300, fadedBlue, true)));
+                List.of(new DrawableSegment(10, 190, Color.BLUE),
+                        new DrawableSegment(190, 310, fadedBlue, true)));
 
-        assertThat(p.second).isEqualTo(180);
+        assertThat(p.second).isEqualTo(190);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -299,19 +341,21 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 146, Color.RED),
-                        new DrawableSegment(150, 300, Color.GREEN)));
+                List.of(new DrawableSegment(10, 156, Color.RED),
+                        new DrawableSegment(160, 310, Color.GREEN)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -319,15 +363,15 @@
         boolean isStyledByProgress = true;
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedGreen = 0x8000FF00;
-        expectedDrawableParts = new ArrayList<>(List.of(new DrawableSegment(0, 146, Color.RED),
-                new DrawableSegment(150, 180, Color.GREEN),
-                new DrawableSegment(180, 300, fadedGreen, true)));
+        expectedDrawableParts = new ArrayList<>(List.of(new DrawableSegment(10, 156, Color.RED),
+                new DrawableSegment(160, 190, Color.GREEN),
+                new DrawableSegment(190, 310, fadedGreen, true)));
 
-        assertThat(p.second).isEqualTo(180);
+        assertThat(p.second).isEqualTo(190);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -353,10 +397,12 @@
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = false;
+        int trackerDrawWidth = 0;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
                 List.of(new DrawableSegment(0, 146, Color.RED),
@@ -368,7 +414,7 @@
         boolean isStyledByProgress = true;
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedGreen = 0x8000FF00;
@@ -409,26 +455,28 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 35, Color.BLUE),
-                        new DrawablePoint(39, 51, Color.RED),
-                        new DrawableSegment(55, 65, Color.BLUE),
-                        new DrawablePoint(69, 81, Color.BLUE),
-                        new DrawableSegment(85, 170, Color.BLUE),
-                        new DrawablePoint(174, 186, Color.BLUE),
-                        new DrawableSegment(190, 215, Color.BLUE),
-                        new DrawablePoint(219, 231, Color.YELLOW),
-                        new DrawableSegment(235, 300, Color.BLUE)));
+                List.of(new DrawableSegment(10, 45, Color.BLUE),
+                        new DrawablePoint(49, 61, Color.RED),
+                        new DrawableSegment(65, 75, Color.BLUE),
+                        new DrawablePoint(79, 91, Color.BLUE),
+                        new DrawableSegment(95, 180, Color.BLUE),
+                        new DrawablePoint(184, 196, Color.BLUE),
+                        new DrawableSegment(200, 225, Color.BLUE),
+                        new DrawablePoint(229, 241, Color.YELLOW),
+                        new DrawableSegment(245, 310, Color.BLUE)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -437,23 +485,23 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedBlue = 0x800000FF;
         int fadedYellow = 0x80FFFF00;
         expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 34.219177F, Color.BLUE),
-                        new DrawablePoint(38.219177F, 50.219177F, Color.RED),
-                        new DrawableSegment(54.219177F, 70.21918F, Color.BLUE),
-                        new DrawablePoint(74.21918F, 86.21918F, Color.BLUE),
-                        new DrawableSegment(90.21918F, 172.38356F, Color.BLUE),
-                        new DrawablePoint(176.38356F, 188.38356F, Color.BLUE),
-                        new DrawableSegment(192.38356F, 217.0137F, fadedBlue, true),
-                        new DrawablePoint(221.0137F, 233.0137F, fadedYellow),
-                        new DrawableSegment(237.0137F, 300F, fadedBlue, true)));
+                List.of(new DrawableSegment(10, 44.219177F, Color.BLUE),
+                        new DrawablePoint(48.219177F, 60.219177F, Color.RED),
+                        new DrawableSegment(64.219177F, 80.21918F, Color.BLUE),
+                        new DrawablePoint(84.21918F, 96.21918F, Color.BLUE),
+                        new DrawableSegment(100.21918F, 182.38356F, Color.BLUE),
+                        new DrawablePoint(186.38356F, 198.38356F, Color.BLUE),
+                        new DrawableSegment(202.38356F, 227.0137F, fadedBlue, true),
+                        new DrawablePoint(231.0137F, 243.0137F, fadedYellow),
+                        new DrawableSegment(247.0137F, 310F, fadedBlue, true)));
 
-        assertThat(p.second).isEqualTo(182.38356F);
+        assertThat(p.second).isEqualTo(192.38356F);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -488,25 +536,29 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
+
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 35, Color.RED), new DrawablePoint(39, 51, Color.RED),
-                        new DrawableSegment(55, 65, Color.RED),
-                        new DrawablePoint(69, 81, Color.BLUE),
-                        new DrawableSegment(85, 146, Color.RED),
-                        new DrawableSegment(150, 170, Color.GREEN),
-                        new DrawablePoint(174, 186, Color.BLUE),
-                        new DrawableSegment(190, 215, Color.GREEN),
-                        new DrawablePoint(219, 231, Color.YELLOW),
-                        new DrawableSegment(235, 300, Color.GREEN)));
+                List.of(new DrawableSegment(10, 45, Color.RED),
+                        new DrawablePoint(49, 61, Color.RED),
+                        new DrawableSegment(65, 75, Color.RED),
+                        new DrawablePoint(79, 91, Color.BLUE),
+                        new DrawableSegment(95, 156, Color.RED),
+                        new DrawableSegment(160, 180, Color.GREEN),
+                        new DrawablePoint(184, 196, Color.BLUE),
+                        new DrawableSegment(200, 225, Color.GREEN),
+                        new DrawablePoint(229, 241, Color.YELLOW),
+                        new DrawableSegment(245, 310, Color.GREEN)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -515,99 +567,24 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedGreen = 0x8000FF00;
         int fadedYellow = 0x80FFFF00;
         expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 34.095238F, Color.RED),
-                        new DrawablePoint(38.095238F, 50.095238F, Color.RED),
-                        new DrawableSegment(54.095238F, 70.09524F, Color.RED),
-                        new DrawablePoint(74.09524F, 86.09524F, Color.BLUE),
-                        new DrawableSegment(90.09524F, 148.9524F, Color.RED),
-                        new DrawableSegment(152.95238F, 172.7619F, Color.GREEN),
-                        new DrawablePoint(176.7619F, 188.7619F, Color.BLUE),
-                        new DrawableSegment(192.7619F, 217.33333F, fadedGreen, true),
-                        new DrawablePoint(221.33333F, 233.33333F, fadedYellow),
-                        new DrawableSegment(237.33333F, 299.99997F, fadedGreen, true)));
+                List.of(new DrawableSegment(10, 44.095238F, Color.RED),
+                        new DrawablePoint(48.095238F, 60.095238F, Color.RED),
+                        new DrawableSegment(64.095238F, 80.09524F, Color.RED),
+                        new DrawablePoint(84.09524F, 96.09524F, Color.BLUE),
+                        new DrawableSegment(100.09524F, 158.9524F, Color.RED),
+                        new DrawableSegment(162.95238F, 182.7619F, Color.GREEN),
+                        new DrawablePoint(186.7619F, 198.7619F, Color.BLUE),
+                        new DrawableSegment(202.7619F, 227.33333F, fadedGreen, true),
+                        new DrawablePoint(231.33333F, 243.33333F, fadedYellow),
+                        new DrawableSegment(247.33333F, 309.99997F, fadedGreen, true)));
 
-        assertThat(p.second).isEqualTo(182.7619F);
-        assertThat(p.first).isEqualTo(expectedDrawableParts);
-    }
-
-    @Test
-    public void processAndConvertToParts_multipleSegmentsWithPointsAtStartAndEnd()
-            throws NotEnoughWidthToFitAllPartsException {
-        List<ProgressStyle.Segment> segments = new ArrayList<>();
-        segments.add(new ProgressStyle.Segment(50).setColor(Color.RED));
-        segments.add(new ProgressStyle.Segment(50).setColor(Color.GREEN));
-        List<ProgressStyle.Point> points = new ArrayList<>();
-        points.add(new ProgressStyle.Point(0).setColor(Color.RED));
-        points.add(new ProgressStyle.Point(25).setColor(Color.BLUE));
-        points.add(new ProgressStyle.Point(60).setColor(Color.BLUE));
-        points.add(new ProgressStyle.Point(100).setColor(Color.YELLOW));
-        int progress = 60;
-        int progressMax = 100;
-
-        List<Part> parts = NotificationProgressBar.processModelAndConvertToViewParts(segments,
-                points, progress, progressMax);
-
-        List<Part> expectedParts = new ArrayList<>(
-                List.of(new Point(Color.RED),
-                        new Segment(0.25f, Color.RED),
-                        new Point(Color.BLUE),
-                        new Segment(0.25f, Color.RED),
-                        new Segment(0.10f, Color.GREEN),
-                        new Point(Color.BLUE),
-                        new Segment(0.4f, Color.GREEN),
-                        new Point(Color.YELLOW)));
-
-        assertThat(parts).isEqualTo(expectedParts);
-
-        float drawableWidth = 300;
-        float segSegGap = 4;
-        float segPointGap = 4;
-        float pointRadius = 6;
-        boolean hasTrackerIcon = true;
-
-        List<DrawablePart> drawableParts =
-                NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
-
-        List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawablePoint(0, 12, Color.RED),
-                        new DrawableSegment(16, 65, Color.RED),
-                        new DrawablePoint(69, 81, Color.BLUE),
-                        new DrawableSegment(85, 146, Color.RED),
-                        new DrawableSegment(150, 170, Color.GREEN),
-                        new DrawablePoint(174, 186, Color.BLUE),
-                        new DrawableSegment(190, 284, Color.GREEN),
-                        new DrawablePoint(288, 300, Color.YELLOW)));
-
-        assertThat(drawableParts).isEqualTo(expectedDrawableParts);
-
-        float segmentMinWidth = 16;
-        boolean isStyledByProgress = true;
-
-        Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
-                parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
-
-        // Colors with 50% opacity
-        int fadedGreen = 0x8000FF00;
-        int fadedYellow = 0x80FFFF00;
-        expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawablePoint(0, 12, Color.RED),
-                        new DrawableSegment(16, 65, Color.RED),
-                        new DrawablePoint(69, 81, Color.BLUE),
-                        new DrawableSegment(85, 146, Color.RED),
-                        new DrawableSegment(150, 170, Color.GREEN),
-                        new DrawablePoint(174, 186, Color.BLUE),
-                        new DrawableSegment(190, 284, fadedGreen, true),
-                        new DrawablePoint(288, 300, fadedYellow)));
-
-        assertThat(p.second).isEqualTo(180);
+        assertThat(p.second).isEqualTo(192.7619F);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -644,27 +621,29 @@
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, -7, Color.RED),
-                        new DrawablePoint(-3, 9, Color.RED),
-                        new DrawableSegment(13, 65, Color.RED),
-                        new DrawablePoint(69, 81, Color.BLUE),
-                        new DrawableSegment(85, 146, Color.RED),
-                        new DrawableSegment(150, 170, Color.GREEN),
-                        new DrawablePoint(174, 186, Color.BLUE),
-                        new DrawableSegment(190, 287, Color.GREEN),
-                        new DrawablePoint(291, 303, Color.YELLOW),
-                        new DrawableSegment(307, 300, Color.GREEN)));
+                List.of(new DrawableSegment(10, 3, Color.RED),
+                        new DrawablePoint(7, 19, Color.RED),
+                        new DrawableSegment(23, 75, Color.RED),
+                        new DrawablePoint(79, 91, Color.BLUE),
+                        new DrawableSegment(95, 156, Color.RED),
+                        new DrawableSegment(160, 180, Color.GREEN),
+                        new DrawablePoint(184, 196, Color.BLUE),
+                        new DrawableSegment(200, 297, Color.GREEN),
+                        new DrawablePoint(301, 313, Color.YELLOW),
+                        new DrawableSegment(317, 310, Color.GREEN)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -673,24 +652,24 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         // Colors with 50% opacity
         int fadedGreen = 0x8000FF00;
         int fadedYellow = 0x80FFFF00;
         expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 16, Color.RED),
-                        new DrawablePoint(20, 32, Color.RED),
-                        new DrawableSegment(36, 78.02409F, Color.RED),
-                        new DrawablePoint(82.02409F, 94.02409F, Color.BLUE),
-                        new DrawableSegment(98.02409F, 146.55421F, Color.RED),
-                        new DrawableSegment(150.55421F, 169.44579F, Color.GREEN),
-                        new DrawablePoint(173.44579F, 185.44579F, Color.BLUE),
-                        new DrawableSegment(189.44579F, 264, fadedGreen, true),
-                        new DrawablePoint(268, 280, fadedYellow),
-                        new DrawableSegment(284, 300, fadedGreen, true)));
+                List.of(new DrawableSegment(10, 26, Color.RED),
+                        new DrawablePoint(30, 42, Color.RED),
+                        new DrawableSegment(46, 88.02409F, Color.RED),
+                        new DrawablePoint(92.02409F, 104.02409F, Color.BLUE),
+                        new DrawableSegment(108.02409F, 156.55421F, Color.RED),
+                        new DrawableSegment(160.55421F, 179.44579F, Color.GREEN),
+                        new DrawablePoint(183.44579F, 195.44579F, Color.BLUE),
+                        new DrawableSegment(199.44579F, 274, fadedGreen, true),
+                        new DrawablePoint(278, 290, fadedYellow),
+                        new DrawableSegment(294, 310, fadedGreen, true)));
 
-        assertThat(p.second).isEqualTo(179.44579F);
+        assertThat(p.second).isEqualTo(189.44579F);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -711,31 +690,38 @@
                 points, progress, progressMax);
 
         List<Part> expectedParts = new ArrayList<>(
-                List.of(new Segment(0.15f, Color.RED), new Point(Color.RED),
-                        new Segment(0.10f, Color.RED), new Point(Color.BLUE),
-                        new Segment(0.25f, Color.RED), new Segment(0.25f, Color.GREEN),
-                        new Point(Color.YELLOW), new Segment(0.25f, Color.GREEN)));
+                List.of(new Segment(0.15f, Color.RED),
+                        new Point(Color.RED),
+                        new Segment(0.10f, Color.RED),
+                        new Point(Color.BLUE),
+                        new Segment(0.25f, Color.RED),
+                        new Segment(0.25f, Color.GREEN),
+                        new Point(Color.YELLOW),
+                        new Segment(0.25f, Color.GREEN)));
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 35, Color.RED), new DrawablePoint(39, 51, Color.RED),
-                        new DrawableSegment(55, 65, Color.RED),
-                        new DrawablePoint(69, 81, Color.BLUE),
-                        new DrawableSegment(85, 146, Color.RED),
-                        new DrawableSegment(150, 215, Color.GREEN),
-                        new DrawablePoint(219, 231, Color.YELLOW),
-                        new DrawableSegment(235, 300, Color.GREEN)));
+                List.of(new DrawableSegment(10, 45, Color.RED),
+                        new DrawablePoint(49, 61, Color.RED),
+                        new DrawableSegment(65, 75, Color.RED),
+                        new DrawablePoint(79, 91, Color.BLUE),
+                        new DrawableSegment(95, 156, Color.RED),
+                        new DrawableSegment(160, 225, Color.GREEN),
+                        new DrawablePoint(229, 241, Color.YELLOW),
+                        new DrawableSegment(245, 310, Color.GREEN)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -744,34 +730,34 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
         expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 34.296295F, Color.RED),
-                        new DrawablePoint(38.296295F, 50.296295F, Color.RED),
-                        new DrawableSegment(54.296295F, 70.296295F, Color.RED),
-                        new DrawablePoint(74.296295F, 86.296295F, Color.BLUE),
-                        new DrawableSegment(90.296295F, 149.62962F, Color.RED),
-                        new DrawableSegment(153.62962F, 216.8148F, Color.GREEN),
-                        new DrawablePoint(220.81482F, 232.81482F, Color.YELLOW),
-                        new DrawableSegment(236.81482F, 300, Color.GREEN)));
+                List.of(new DrawableSegment(10, 44.296295F, Color.RED),
+                        new DrawablePoint(48.296295F, 60.296295F, Color.RED),
+                        new DrawableSegment(64.296295F, 80.296295F, Color.RED),
+                        new DrawablePoint(84.296295F, 96.296295F, Color.BLUE),
+                        new DrawableSegment(100.296295F, 159.62962F, Color.RED),
+                        new DrawableSegment(163.62962F, 226.8148F, Color.GREEN),
+                        new DrawablePoint(230.81482F, 242.81482F, Color.YELLOW),
+                        new DrawableSegment(246.81482F, 310, Color.GREEN)));
 
-        assertThat(p.second).isEqualTo(182.9037F);
+        assertThat(p.second).isEqualTo(192.9037F);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
-    // The only difference from the `zeroWidthDrawableSegment` test below is the longer
+    // The only difference from the `segmentWidthAtMin` test below is the longer
     // segmentMinWidth (= 16dp).
     @Test
-    public void maybeStretchAndRescaleSegments_negativeWidthDrawableSegment()
+    public void maybeStretchAndRescaleSegments_segmentWidthBelowMin()
             throws NotEnoughWidthToFitAllPartsException {
         List<ProgressStyle.Segment> segments = new ArrayList<>();
-        segments.add(new ProgressStyle.Segment(100).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(200).setColor(Color.BLUE));
+        segments.add(new ProgressStyle.Segment(100).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(300).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(400).setColor(Color.BLUE));
         List<ProgressStyle.Point> points = new ArrayList<>();
-        points.add(new ProgressStyle.Point(0).setColor(Color.BLUE));
+        points.add(new ProgressStyle.Point(200).setColor(Color.BLUE));
         int progress = 1000;
         int progressMax = 1000;
 
@@ -779,28 +765,32 @@
                 points, progress, progressMax);
 
         List<Part> expectedParts = new ArrayList<>(
-                List.of(new Point(Color.BLUE), new Segment(0.1f, Color.BLUE),
-                        new Segment(0.2f, Color.BLUE), new Segment(0.3f, Color.BLUE),
+                List.of(new Segment(0.2f, Color.BLUE),
+                        new Point(Color.BLUE),
+                        new Segment(0.1f, Color.BLUE),
+                        new Segment(0.3f, Color.BLUE),
                         new Segment(0.4f, Color.BLUE)));
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 200;
+        float drawableWidth = 220;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawablePoint(0, 12, Color.BLUE),
-                        new DrawableSegment(16, 16, Color.BLUE),
-                        new DrawableSegment(20, 56, Color.BLUE),
-                        new DrawableSegment(60, 116, Color.BLUE),
-                        new DrawableSegment(120, 200, Color.BLUE)));
+                List.of(new DrawableSegment(10, 40, Color.BLUE),
+                        new DrawablePoint(44, 56, Color.BLUE),
+                        new DrawableSegment(60, 66, Color.BLUE),
+                        new DrawableSegment(70, 126, Color.BLUE),
+                        new DrawableSegment(130, 210, Color.BLUE)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -809,30 +799,31 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                200, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
-        expectedDrawableParts = new ArrayList<>(List.of(new DrawablePoint(0, 12, Color.BLUE),
-                new DrawableSegment(16, 32, Color.BLUE),
-                new DrawableSegment(36, 69.41936F, Color.BLUE),
-                new DrawableSegment(73.41936F, 124.25807F, Color.BLUE),
-                new DrawableSegment(128.25807F, 200, Color.BLUE)));
+        expectedDrawableParts = new ArrayList<>(
+                List.of(new DrawableSegment(10, 38.81356F, Color.BLUE),
+                        new DrawablePoint(42.81356F, 54.81356F, Color.BLUE),
+                        new DrawableSegment(58.81356F, 74.81356F, Color.BLUE),
+                        new DrawableSegment(78.81356F, 131.42374F, Color.BLUE),
+                        new DrawableSegment(135.42374F, 210, Color.BLUE)));
 
-        assertThat(p.second).isEqualTo(200);
+        assertThat(p.second).isEqualTo(210);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
-    // The only difference from the `negativeWidthDrawableSegment` test above is the shorter
+    // The only difference from the `segmentWidthBelowMin` test above is the shorter
     // segmentMinWidth (= 10dp).
     @Test
-    public void maybeStretchAndRescaleSegments_zeroWidthDrawableSegment()
+    public void maybeStretchAndRescaleSegments_segmentWidthAtMin()
             throws NotEnoughWidthToFitAllPartsException {
         List<ProgressStyle.Segment> segments = new ArrayList<>();
-        segments.add(new ProgressStyle.Segment(100).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(200).setColor(Color.BLUE));
+        segments.add(new ProgressStyle.Segment(100).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(300).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(400).setColor(Color.BLUE));
         List<ProgressStyle.Point> points = new ArrayList<>();
-        points.add(new ProgressStyle.Point(0).setColor(Color.BLUE));
+        points.add(new ProgressStyle.Point(200).setColor(Color.BLUE));
         int progress = 1000;
         int progressMax = 1000;
 
@@ -840,28 +831,32 @@
                 points, progress, progressMax);
 
         List<Part> expectedParts = new ArrayList<>(
-                List.of(new Point(Color.BLUE), new Segment(0.1f, Color.BLUE),
-                        new Segment(0.2f, Color.BLUE), new Segment(0.3f, Color.BLUE),
+                List.of(new Segment(0.2f, Color.BLUE),
+                        new Point(Color.BLUE),
+                        new Segment(0.1f, Color.BLUE),
+                        new Segment(0.3f, Color.BLUE),
                         new Segment(0.4f, Color.BLUE)));
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 200;
+        float drawableWidth = 220;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawablePoint(0, 12, Color.BLUE),
-                        new DrawableSegment(16, 16, Color.BLUE),
-                        new DrawableSegment(20, 56, Color.BLUE),
-                        new DrawableSegment(60, 116, Color.BLUE),
-                        new DrawableSegment(120, 200, Color.BLUE)));
+                List.of(new DrawableSegment(10, 40, Color.BLUE),
+                        new DrawablePoint(44, 56, Color.BLUE),
+                        new DrawableSegment(60, 66, Color.BLUE),
+                        new DrawableSegment(70, 126, Color.BLUE),
+                        new DrawableSegment(130, 210, Color.BLUE)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -870,15 +865,16 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                200, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
-        expectedDrawableParts = new ArrayList<>(List.of(new DrawablePoint(0, 12, Color.BLUE),
-                new DrawableSegment(16, 26, Color.BLUE),
-                new DrawableSegment(30, 64.169014F, Color.BLUE),
-                new DrawableSegment(68.169014F, 120.92958F, Color.BLUE),
-                new DrawableSegment(124.92958F, 200, Color.BLUE)));
+        expectedDrawableParts = new ArrayList<>(
+                List.of(new DrawableSegment(10, 39.411766F, Color.BLUE),
+                        new DrawablePoint(43.411766F, 55.411766F, Color.BLUE),
+                        new DrawableSegment(59.411766F, 69.411766F, Color.BLUE),
+                        new DrawableSegment(73.411766F, 128.05884F, Color.BLUE),
+                        new DrawableSegment(132.05882F, 210, Color.BLUE)));
 
-        assertThat(p.second).isEqualTo(200);
+        assertThat(p.second).isEqualTo(210);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -886,12 +882,12 @@
     public void maybeStretchAndRescaleSegments_noStretchingNecessary()
             throws NotEnoughWidthToFitAllPartsException {
         List<ProgressStyle.Segment> segments = new ArrayList<>();
-        segments.add(new ProgressStyle.Segment(200).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(100).setColor(Color.BLUE));
+        segments.add(new ProgressStyle.Segment(200).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(300).setColor(Color.BLUE));
         segments.add(new ProgressStyle.Segment(400).setColor(Color.BLUE));
         List<ProgressStyle.Point> points = new ArrayList<>();
-        points.add(new ProgressStyle.Point(0).setColor(Color.BLUE));
+        points.add(new ProgressStyle.Point(100).setColor(Color.BLUE));
         int progress = 1000;
         int progressMax = 1000;
 
@@ -899,28 +895,32 @@
                 points, progress, progressMax);
 
         List<Part> expectedParts = new ArrayList<>(
-                List.of(new Point(Color.BLUE), new Segment(0.2f, Color.BLUE),
-                        new Segment(0.1f, Color.BLUE), new Segment(0.3f, Color.BLUE),
+                List.of(new Segment(0.1f, Color.BLUE),
+                        new Point(Color.BLUE),
+                        new Segment(0.2f, Color.BLUE),
+                        new Segment(0.3f, Color.BLUE),
                         new Segment(0.4f, Color.BLUE)));
 
         assertThat(parts).isEqualTo(expectedParts);
 
-        float drawableWidth = 200;
+        float drawableWidth = 220;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawablePoint(0, 12, Color.BLUE),
-                        new DrawableSegment(16, 36, Color.BLUE),
-                        new DrawableSegment(40, 56, Color.BLUE),
-                        new DrawableSegment(60, 116, Color.BLUE),
-                        new DrawableSegment(120, 200, Color.BLUE)));
+                List.of(new DrawableSegment(10, 20, Color.BLUE),
+                        new DrawablePoint(24, 36, Color.BLUE),
+                        new DrawableSegment(40, 66, Color.BLUE),
+                        new DrawableSegment(70, 126, Color.BLUE),
+                        new DrawableSegment(130, 210, Color.BLUE)));
 
         assertThat(drawableParts).isEqualTo(expectedDrawableParts);
 
@@ -929,9 +929,9 @@
 
         Pair<List<DrawablePart>, Float> p = NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                200, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
 
-        assertThat(p.second).isEqualTo(200);
+        assertThat(p.second).isEqualTo(210);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -951,10 +951,10 @@
         segments.add(new ProgressStyle.Segment(10).setColor(Color.GREEN));
         segments.add(new ProgressStyle.Segment(10).setColor(Color.RED));
         List<ProgressStyle.Point> points = new ArrayList<>();
-        points.add(new ProgressStyle.Point(0).setColor(orange));
         points.add(new ProgressStyle.Point(1).setColor(Color.BLUE));
+        points.add(new ProgressStyle.Point(10).setColor(orange));
         points.add(new ProgressStyle.Point(55).setColor(Color.BLUE));
-        points.add(new ProgressStyle.Point(100).setColor(orange));
+        points.add(new ProgressStyle.Point(90).setColor(orange));
         int progress = 50;
         int progressMax = 100;
 
@@ -962,10 +962,10 @@
                 points, progress, progressMax);
 
         List<Part> expectedParts = new ArrayList<>(
-                List.of(new Point(orange),
-                        new Segment(0.01f, orange),
+                List.of(new Segment(0.01f, orange),
                         new Point(Color.BLUE),
                         new Segment(0.09f, orange),
+                        new Point(orange),
                         new Segment(0.1f, Color.YELLOW),
                         new Segment(0.1f, Color.BLUE),
                         new Segment(0.1f, Color.GREEN),
@@ -976,21 +976,23 @@
                         new Segment(0.1f, Color.YELLOW),
                         new Segment(0.1f, Color.BLUE),
                         new Segment(0.1f, Color.GREEN),
-                        new Segment(0.1f, Color.RED),
-                        new Point(orange)));
+                        new Point(orange),
+                        new Segment(0.1f, Color.RED)));
 
         assertThat(parts).isEqualTo(expectedParts);
 
         // For the list of ProgressStyle.Part used in this test, 300 is the minimum width.
-        float drawableWidth = 299;
+        float drawableWidth = 319;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         List<DrawablePart> drawableParts =
                 NotificationProgressBar.processPartsAndConvertToDrawableParts(
-                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon);
+                        parts, drawableWidth, segSegGap, segPointGap, pointRadius, hasTrackerIcon,
+                        trackerDrawWidth);
 
         // Skips the validation of the intermediate list of DrawableParts.
 
@@ -999,7 +1001,7 @@
 
         NotificationProgressBar.maybeStretchAndRescaleSegments(
                 parts, drawableParts, segmentMinWidth, pointRadius, (float) progress / progressMax,
-                300, isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
+                isStyledByProgress, hasTrackerIcon ? 0 : segSegGap);
     }
 
     @Test
@@ -1015,11 +1017,12 @@
         int progress = 60;
         int progressMax = 100;
 
-        float drawableWidth = 300;
+        float drawableWidth = 320;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         float segmentMinWidth = 16;
         boolean isStyledByProgress = true;
@@ -1036,24 +1039,24 @@
                         pointRadius,
                         hasTrackerIcon,
                         segmentMinWidth,
-                        isStyledByProgress
-                );
+                        isStyledByProgress,
+                        trackerDrawWidth);
 
         // Colors with 50% opacity
         int fadedBlue = 0x800000FF;
         int fadedYellow = 0x80FFFF00;
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 34.219177F, Color.BLUE),
-                        new DrawablePoint(38.219177F, 50.219177F, Color.RED),
-                        new DrawableSegment(54.219177F, 70.21918F, Color.BLUE),
-                        new DrawablePoint(74.21918F, 86.21918F, Color.BLUE),
-                        new DrawableSegment(90.21918F, 172.38356F, Color.BLUE),
-                        new DrawablePoint(176.38356F, 188.38356F, Color.BLUE),
-                        new DrawableSegment(192.38356F, 217.0137F, fadedBlue, true),
-                        new DrawablePoint(221.0137F, 233.0137F, fadedYellow),
-                        new DrawableSegment(237.0137F, 300F, fadedBlue, true)));
+                List.of(new DrawableSegment(10, 44.219177F, Color.BLUE),
+                        new DrawablePoint(48.219177F, 60.219177F, Color.RED),
+                        new DrawableSegment(64.219177F, 80.21918F, Color.BLUE),
+                        new DrawablePoint(84.21918F, 96.21918F, Color.BLUE),
+                        new DrawableSegment(100.21918F, 182.38356F, Color.BLUE),
+                        new DrawablePoint(186.38356F, 198.38356F, Color.BLUE),
+                        new DrawableSegment(202.38356F, 227.0137F, fadedBlue, true),
+                        new DrawablePoint(231.0137F, 243.0137F, fadedYellow),
+                        new DrawableSegment(247.0137F, 310F, fadedBlue, true)));
 
-        assertThat(p.second).isEqualTo(182.38356F);
+        assertThat(p.second).isEqualTo(192.38356F);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 
@@ -1065,11 +1068,12 @@
         int progress = 60;
         int progressMax = 100;
 
-        float drawableWidth = 100;
+        float drawableWidth = 120;
         float segSegGap = 4;
         float segPointGap = 4;
         float pointRadius = 6;
         boolean hasTrackerIcon = true;
+        int trackerDrawWidth = 20;
 
         float segmentMinWidth = 16;
         boolean isStyledByProgress = true;
@@ -1086,16 +1090,16 @@
                         pointRadius,
                         hasTrackerIcon,
                         segmentMinWidth,
-                        isStyledByProgress
-                );
+                        isStyledByProgress,
+                        trackerDrawWidth);
 
-        // Colors with 50%f opacity
+        // Colors with 50% opacity
         int fadedBlue = 0x800000FF;
         List<DrawablePart> expectedDrawableParts = new ArrayList<>(
-                List.of(new DrawableSegment(0, 60.000004F, Color.BLUE),
-                        new DrawableSegment(60.000004F, 100, fadedBlue, true)));
+                List.of(new DrawableSegment(10, 70F, Color.BLUE),
+                        new DrawableSegment(70F, 110, fadedBlue, true)));
 
-        assertThat(p.second).isWithin(1e-5f).of(60);
+        assertThat(p.second).isEqualTo(70);
         assertThat(p.first).isEqualTo(expectedDrawableParts);
     }
 }
diff --git a/core/tests/coretests/src/com/android/internal/widget/NotificationProgressModelTest.java b/core/tests/coretests/src/com/android/internal/widget/NotificationProgressModelTest.java
index e1f5b1c..140d268 100644
--- a/core/tests/coretests/src/com/android/internal/widget/NotificationProgressModelTest.java
+++ b/core/tests/coretests/src/com/android/internal/widget/NotificationProgressModelTest.java
@@ -90,7 +90,7 @@
                 new Notification.ProgressStyle.Segment(50).setColor(Color.YELLOW),
                 new Notification.ProgressStyle.Segment(50).setColor(Color.LTGRAY));
         final List<Notification.ProgressStyle.Point> points = List.of(
-                new Notification.ProgressStyle.Point(0).setColor(Color.RED),
+                new Notification.ProgressStyle.Point(1).setColor(Color.RED),
                 new Notification.ProgressStyle.Point(20).setColor(Color.BLUE));
         final NotificationProgressModel savedModel = new NotificationProgressModel(segments,
                 points,
@@ -121,7 +121,7 @@
                 new Notification.ProgressStyle.Segment(50).setColor(Color.YELLOW),
                 new Notification.ProgressStyle.Segment(50).setColor(Color.YELLOW));
         final List<Notification.ProgressStyle.Point> points = List.of(
-                new Notification.ProgressStyle.Point(0).setColor(Color.RED),
+                new Notification.ProgressStyle.Point(1).setColor(Color.RED),
                 new Notification.ProgressStyle.Point(20).setColor(Color.BLUE));
         final NotificationProgressModel savedModel = new NotificationProgressModel(segments,
                 points,
diff --git a/data/etc/OWNERS b/data/etc/OWNERS
index 85dae63..712042f 100644
--- a/data/etc/OWNERS
+++ b/data/etc/OWNERS
@@ -5,7 +5,6 @@
 hackbod@google.com
 jeffv@google.com
 jsharkey@android.com
-jsharkey@google.com
 lorenzo@google.com
 yamasani@google.com
 
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index dfded73..0c4ea79 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -102,6 +102,10 @@
 
     private static volatile int sDefaultDensity = -1;
 
+    /**
+     * This id is not authoritative and can be duplicated if an ashmem bitmap is decoded from a
+     * parcel.
+     */
     private long mId;
 
     /**
diff --git a/graphics/java/android/graphics/FrameInfo.java b/graphics/java/android/graphics/FrameInfo.java
index 8f12828..7d236d2 100644
--- a/graphics/java/android/graphics/FrameInfo.java
+++ b/graphics/java/android/graphics/FrameInfo.java
@@ -95,7 +95,8 @@
 
     // Must be the last one
     // This value must be in sync with `UI_THREAD_FRAME_INFO_SIZE` in FrameInfo.h
-    private static final int FRAME_INFO_SIZE = FRAME_INTERVAL + 1;
+    // In calculating size, + 1 for Flags, and + 1 for WorkloadTarget from FrameInfo.h
+    private static final int FRAME_INFO_SIZE = FRAME_INTERVAL + 2;
 
     /** checkstyle */
     public void setVsync(long intendedVsync, long usedVsync, long frameTimelineVsyncId,
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java
index 76eb207..8e04855 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java
@@ -126,7 +126,10 @@
                 return state.getIdentifier();
             }
         }
-        return INVALID_DEVICE_STATE_IDENTIFIER;
+
+        // If RDMV2 flag is enabled but not properly configured, let's fall back to RDMV1 if
+        // possible.
+        return getRdmV1Identifier(currentSupportedDeviceStates);
     }
 
     public WindowAreaComponentImpl(@NonNull Context context) {
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/area/WindowAreaComponentImplTests.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/area/WindowAreaComponentImplTests.java
index d677fef..b7983bd 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/area/WindowAreaComponentImplTests.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/area/WindowAreaComponentImplTests.java
@@ -143,13 +143,20 @@
     }
 
     @Test
+    public void testFallsBackToRdmV1() {
+        // Test that if we try to get RDMV2 but it's not available, that we get RDMV1 if it is
+        // available.
+        final List<DeviceState> supportedStates = new ArrayList<>();
+        supportedStates.add(REAR_DISPLAY_STATE_V1);
+        assertEquals(REAR_DISPLAY_STATE_V1.getIdentifier(),
+                WindowAreaComponentImpl.getRdmV2Identifier(supportedStates));
+    }
+
+    @Test
     public void testRdmV2Identifier_whenStateIsProperlyConfigured() {
         final List<DeviceState> supportedStates = new ArrayList<>();
 
         supportedStates.add(REAR_DISPLAY_STATE_V1);
-        assertEquals(INVALID_DEVICE_STATE_IDENTIFIER,
-                WindowAreaComponentImpl.getRdmV2Identifier(supportedStates));
-
         supportedStates.add(REAR_DISPLAY_STATE_V2);
         assertEquals(REAR_DISPLAY_STATE_V2.getIdentifier(),
                 WindowAreaComponentImpl.getRdmV2Identifier(supportedStates));
diff --git a/libs/WindowManager/Shell/OWNERS b/libs/WindowManager/Shell/OWNERS
index 394093c6..ab2f3ef 100644
--- a/libs/WindowManager/Shell/OWNERS
+++ b/libs/WindowManager/Shell/OWNERS
@@ -1,7 +1,7 @@
-xutan@google.com
+jorgegil@google.com
 pbdr@google.com
 pragyabajoria@google.com
 
 # Give submodule owners in shell resource approval
-per-file res*/*/*.xml = atsjenk@google.com, hwwang@google.com, jorgegil@google.com, lbill@google.com, madym@google.com, vaniadesmonda@google.com, pbdr@google.com, tkachenkoi@google.com, mpodolian@google.com, liranb@google.com, pragyabajoria@google.com, uysalorhan@google.com, gsennton@google.com, mattsziklay@google.com, mdehaini@google.com
+per-file res*/*/*.xml = atsjenk@google.com, hwwang@google.com, lbill@google.com, madym@google.com, vaniadesmonda@google.com, pbdr@google.com, mpodolian@google.com, liranb@google.com, pragyabajoria@google.com, uysalorhan@google.com, gsennton@google.com, mattsziklay@google.com, mdehaini@google.com
 per-file res*/*/tv_*.xml = bronger@google.com
diff --git a/libs/WindowManager/Shell/aconfig/multitasking.aconfig b/libs/WindowManager/Shell/aconfig/multitasking.aconfig
index 13d0169..a08f88a 100644
--- a/libs/WindowManager/Shell/aconfig/multitasking.aconfig
+++ b/libs/WindowManager/Shell/aconfig/multitasking.aconfig
@@ -177,3 +177,10 @@
     description: "Factor task-view state tracking out of taskviewtransitions"
     bug: "384976265"
 }
+
+flag {
+    name: "enable_bubble_bar_on_phones"
+    namespace: "multitasking"
+    description: "Try out bubble bar on phones"
+    bug: "394869612"
+}
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerBubbleBarTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerBubbleBarTest.kt
index bce6c59..a32ec22 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerBubbleBarTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerBubbleBarTest.kt
@@ -61,7 +61,6 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.whenever
 import java.util.Optional
@@ -133,7 +132,7 @@
                 mainExecutor,
                 bgExecutor,
             )
-        bubbleController.asBubbles().setSysuiProxy(Mockito.mock(SysuiProxy::class.java))
+        bubbleController.asBubbles().setSysuiProxy(mock<SysuiProxy>())
 
         shellInit.init()
 
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerTest.kt
index cec67f2..cb229c9 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleControllerTest.kt
@@ -19,12 +19,17 @@
 import android.content.Context
 import android.content.Intent
 import android.content.pm.LauncherApps
-import android.content.pm.PackageManager
+import android.content.pm.ShortcutInfo
+import android.content.res.Resources
+import android.graphics.Rect
 import android.graphics.drawable.Icon
 import android.os.Handler
 import android.os.UserHandle
 import android.os.UserManager
 import android.view.IWindowManager
+import android.view.InsetsSource
+import android.view.InsetsState
+import android.view.WindowInsets
 import android.view.WindowManager
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -33,19 +38,22 @@
 import com.android.internal.logging.testing.UiEventLoggerFake
 import com.android.internal.protolog.ProtoLog
 import com.android.internal.statusbar.IStatusBarService
+import com.android.wm.shell.R
 import com.android.wm.shell.ShellTaskOrganizer
+import com.android.wm.shell.bubbles.Bubbles.BubbleExpandListener
 import com.android.wm.shell.bubbles.Bubbles.SysuiProxy
 import com.android.wm.shell.bubbles.storage.BubblePersistentRepository
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayImeController
 import com.android.wm.shell.common.DisplayInsetsController
+import com.android.wm.shell.common.DisplayLayout
 import com.android.wm.shell.common.FloatingContentCoordinator
+import com.android.wm.shell.common.ImeListener
 import com.android.wm.shell.common.SyncTransactionQueue
 import com.android.wm.shell.common.TaskStackListenerImpl
 import com.android.wm.shell.common.TestShellExecutor
 import com.android.wm.shell.common.TestSyncExecutor
 import com.android.wm.shell.draganddrop.DragAndDropController
-import com.android.wm.shell.recents.RecentTasksController
 import com.android.wm.shell.shared.TransactionPool
 import com.android.wm.shell.sysui.ShellCommandHandler
 import com.android.wm.shell.sysui.ShellController
@@ -53,18 +61,20 @@
 import com.android.wm.shell.taskview.TaskViewRepository
 import com.android.wm.shell.taskview.TaskViewTransitions
 import com.android.wm.shell.transition.Transitions
-import com.android.wm.shell.unfold.UnfoldAnimationController
 import com.google.common.truth.Truth.assertThat
+import com.google.common.util.concurrent.MoreExecutors.directExecutor
+import java.util.Optional
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.kotlin.argumentCaptor
 import org.mockito.kotlin.mock
+import org.mockito.kotlin.verify
 import org.mockito.kotlin.whenever
-import java.util.Optional
 
-/** Tests for [BubbleControllerTest] */
+/** Tests for [BubbleController] */
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class BubbleControllerTest {
@@ -79,6 +89,10 @@
     private lateinit var bgExecutor: TestShellExecutor
     private lateinit var bubbleData: BubbleData
     private lateinit var eduController: BubbleEducationController
+    private lateinit var displayController: DisplayController
+    private lateinit var displayImeController: DisplayImeController
+    private lateinit var displayInsetsController: DisplayInsetsController
+    private lateinit var imeListener: ImeListener
 
     @Before
     fun setUp() {
@@ -94,18 +108,26 @@
 
         // Tests don't have permission to add our window to windowManager, so we mock it :(
         val windowManager = mock<WindowManager>()
-        val realWindowManager = context.getSystemService(WindowManager::class.java)
+        val realWindowManager = context.getSystemService(WindowManager::class.java)!!
         // But we do want the metrics from the real one
         whenever(windowManager.currentWindowMetrics)
             .thenReturn(realWindowManager.currentWindowMetrics)
+        whenever(windowManager.defaultDisplay).thenReturn(realWindowManager.defaultDisplay)
 
         bubblePositioner = BubblePositioner(context, windowManager)
-        bubblePositioner.setShowingInBubbleBar(true)
 
-        bubbleData = BubbleData(
-            context, bubbleLogger, bubblePositioner, eduController,
-            mainExecutor, bgExecutor
-        )
+        bubbleData =
+            BubbleData(
+                context,
+                bubbleLogger,
+                bubblePositioner,
+                eduController,
+                mainExecutor,
+                bgExecutor
+            )
+        displayController = mock<DisplayController>()
+        displayImeController = mock<DisplayImeController>()
+        displayInsetsController = mock<DisplayInsetsController>()
 
         bubbleController =
             createBubbleController(
@@ -116,9 +138,16 @@
                 mainExecutor,
                 bgExecutor,
             )
-        bubbleController.asBubbles().setSysuiProxy(Mockito.mock(SysuiProxy::class.java))
+        bubbleController.asBubbles().setSysuiProxy(mock<SysuiProxy>())
         // Flush so that proxy gets set
         mainExecutor.flushAll()
+
+        whenever(displayController.getDisplayLayout(anyInt()))
+            .thenReturn(DisplayLayout(context, realWindowManager.defaultDisplay))
+        val insetsChangedListenerCaptor = argumentCaptor<ImeListener>()
+        verify(displayInsetsController)
+            .addInsetsChangedListener(anyInt(), insetsChangedListenerCaptor.capture())
+        imeListener = insetsChangedListenerCaptor.lastValue
     }
 
     @After
@@ -140,13 +169,152 @@
 
         assertThat(bubbleController.hasBubbles()).isTrue()
         assertThat(bubbleData.getAnyBubbleWithKey(expectedKey)).isNotNull()
-        assertThat(bubbleData.getAnyBubbleWithKey(expectedKey)!!.isNoteBubble).isTrue()
+        assertThat(bubbleData.getAnyBubbleWithKey(expectedKey)!!.isNote).isTrue()
     }
 
+    @Test
+    fun onDeviceLocked_expanded_imeHidden_shouldCollapseImmediately() {
+        val bubble = createBubble("key")
+        bubblePositioner.setImeVisible(false, 0)
+        getInstrumentation().runOnMainSync {
+            bubbleController.inflateAndAdd(
+                bubble,
+                /* suppressFlyout= */ true,
+                /* showInShade= */ true
+            )
+        }
+        assertThat(bubbleData.hasBubbles()).isTrue()
 
-    fun createBubbleController(
+        // expand and lock the device
+        getInstrumentation().runOnMainSync {
+            bubbleController.expandStackAndSelectBubble(bubble)
+            assertThat(bubbleData.isExpanded).isTrue()
+            bubbleController.onStatusBarStateChanged(/* isShade= */ false)
+        }
+        // verify that we collapsed immediately, since the IME is hidden
+        assertThat(bubbleData.isExpanded).isFalse()
+    }
+
+    @Test
+    fun onDeviceLocked_expanded_imeVisible_shouldHideImeBeforeCollapsing() {
+        val bubble = createBubble("key")
+        getInstrumentation().runOnMainSync {
+            bubbleController.inflateAndAdd(
+                bubble,
+                /* suppressFlyout= */ true,
+                /* showInShade= */ true
+            )
+        }
+        assertThat(bubbleData.hasBubbles()).isTrue()
+
+        // expand and show the IME. then lock the device
+        val imeVisibleInsetsState = createFakeInsetsState(imeVisible = true)
+        getInstrumentation().runOnMainSync {
+            bubbleController.expandStackAndSelectBubble(bubble)
+            assertThat(bubbleData.isExpanded).isTrue()
+            imeListener.insetsChanged(imeVisibleInsetsState)
+            assertThat(bubblePositioner.isImeVisible).isTrue()
+            bubbleController.onStatusBarStateChanged(/* isShade= */ false)
+        }
+        // check that we haven't actually started collapsing because we weren't notified yet that
+        // the IME is hidden
+        assertThat(bubbleData.isExpanded).isTrue()
+        // collapsing while the device is locked goes through display ime controller
+        verify(displayImeController).hideImeForBubblesWhenLocked(anyInt())
+
+        // notify that the IME was hidden
+        val imeHiddenInsetsState = createFakeInsetsState(imeVisible = false)
+        getInstrumentation().runOnMainSync { imeListener.insetsChanged(imeHiddenInsetsState) }
+        assertThat(bubblePositioner.isImeVisible).isFalse()
+        // bubbles should be collapsed now
+        assertThat(bubbleData.isExpanded).isFalse()
+    }
+
+    @Test
+    fun onDeviceLocked_whileHidingImeDuringCollapse() {
+        val bubble = createBubble("key")
+        val expandListener = FakeBubbleExpandListener()
+        bubbleController.setExpandListener(expandListener)
+
+        getInstrumentation().runOnMainSync {
+            bubbleController.inflateAndAdd(
+                bubble,
+                /* suppressFlyout= */ true,
+                /* showInShade= */ true
+            )
+        }
+        assertThat(bubbleData.hasBubbles()).isTrue()
+
+        // expand
+        getInstrumentation().runOnMainSync {
+            bubbleController.expandStackAndSelectBubble(bubble)
+            assertThat(bubbleData.isExpanded).isTrue()
+            mainExecutor.flushAll()
+        }
+
+        assertThat(expandListener.bubblesExpandedState).isEqualTo(mapOf("key" to true))
+
+        // show the IME
+        val imeVisibleInsetsState = createFakeInsetsState(imeVisible = true)
+        getInstrumentation().runOnMainSync { imeListener.insetsChanged(imeVisibleInsetsState) }
+
+        assertThat(bubblePositioner.isImeVisible).isTrue()
+
+        // collapse the stack
+        getInstrumentation().runOnMainSync { bubbleController.collapseStack() }
+        assertThat(bubbleData.isExpanded).isFalse()
+        // since we started to collapse while the IME was visible, we will wait to be notified that
+        // the IME is hidden before completing the collapse. check that the expand listener was not
+        // yet called
+        assertThat(expandListener.bubblesExpandedState).isEqualTo(mapOf("key" to true))
+
+        // lock the device during this state
+        getInstrumentation().runOnMainSync {
+            bubbleController.onStatusBarStateChanged(/* isShade= */ false)
+        }
+        verify(displayImeController).hideImeForBubblesWhenLocked(anyInt())
+
+        // notify that the IME is hidden
+        val imeHiddenInsetsState = createFakeInsetsState(imeVisible = false)
+        getInstrumentation().runOnMainSync { imeListener.insetsChanged(imeHiddenInsetsState) }
+        assertThat(bubblePositioner.isImeVisible).isFalse()
+        // verify the collapse action completed
+        assertThat(expandListener.bubblesExpandedState).isEqualTo(mapOf("key" to false))
+    }
+
+    private fun createBubble(key: String): Bubble {
+        val icon = Icon.createWithResource(context.resources, R.drawable.bubble_ic_overflow_button)
+        val shortcutInfo = ShortcutInfo.Builder(context, "fakeId").setIcon(icon).build()
+        val bubble =
+            Bubble(
+                key,
+                shortcutInfo,
+                /* desiredHeight= */ 0,
+                Resources.ID_NULL,
+                "title",
+                /* taskId= */ 0,
+                "locus",
+                /* isDismissable= */ true,
+                directExecutor(),
+                directExecutor()
+            ) {}
+        return bubble
+    }
+
+    private fun createFakeInsetsState(imeVisible: Boolean): InsetsState {
+        val insetsState = InsetsState()
+        if (imeVisible) {
+            insetsState
+                .getOrCreateSource(InsetsSource.ID_IME, WindowInsets.Type.ime())
+                .setFrame(Rect(0, 100, 100, 200))
+                .setVisible(true)
+        }
+        return insetsState
+    }
+
+    private fun createBubbleController(
         bubbleData: BubbleData,
-        windowManager: WindowManager?,
+        windowManager: WindowManager,
         bubbleLogger: BubbleLogger,
         bubblePositioner: BubblePositioner,
         mainExecutor: TestShellExecutor,
@@ -159,7 +327,7 @@
                 context,
                 shellInit,
                 shellCommandHandler,
-                mock<DisplayInsetsController>(),
+                displayInsetsController,
                 mainExecutor,
             )
         val surfaceSynchronizer = { obj: Runnable -> obj.run() }
@@ -172,60 +340,62 @@
                 BubblePersistentRepository(context),
             )
 
-        val shellTaskOrganizer = ShellTaskOrganizer(
-            Mockito.mock<ShellInit>(ShellInit::class.java),
-            ShellCommandHandler(),
-            null,
-            Optional.empty<UnfoldAnimationController>(),
-            Optional.empty<RecentTasksController>(),
-            TestSyncExecutor()
-        )
+        val shellTaskOrganizer =
+            ShellTaskOrganizer(
+                mock<ShellInit>(),
+                ShellCommandHandler(),
+                null,
+                Optional.empty(),
+                Optional.empty(),
+                TestSyncExecutor()
+            )
 
-        val resizeChecker: ResizabilityChecker =
-            object : ResizabilityChecker {
-                override fun isResizableActivity(
-                    intent: Intent?,
-                    packageManager: PackageManager, key: String
-                ): Boolean {
-                    return true
-                }
-            }
+        val resizeChecker = ResizabilityChecker { _, _, _ -> true }
 
-        val bubbleController = BubbleController(
-            context,
-            shellInit,
-            shellCommandHandler,
-            shellController,
-            bubbleData,
-            surfaceSynchronizer,
-            FloatingContentCoordinator(),
-            bubbleDataRepository,
-            mock<IStatusBarService>(),
-            windowManager,
-            mock<DisplayInsetsController>(),
-            mock<DisplayImeController>(),
-            mock<UserManager>(),
-            mock<LauncherApps>(),
-            bubbleLogger,
-            mock<TaskStackListenerImpl>(),
-            shellTaskOrganizer,
-            bubblePositioner,
-            mock<DisplayController>(),
-            Optional.empty(),
-            mock<DragAndDropController>(),
-            mainExecutor,
-            mock<Handler>(),
-            bgExecutor,
-            mock<TaskViewRepository>(),
-            mock<TaskViewTransitions>(),
-            mock<Transitions>(),
-            SyncTransactionQueue(TransactionPool(), mainExecutor),
-            mock<IWindowManager>(),
-            resizeChecker,
-        )
+        val bubbleController =
+            BubbleController(
+                context,
+                shellInit,
+                shellCommandHandler,
+                shellController,
+                bubbleData,
+                surfaceSynchronizer,
+                FloatingContentCoordinator(),
+                bubbleDataRepository,
+                mock<IStatusBarService>(),
+                windowManager,
+                displayInsetsController,
+                displayImeController,
+                mock<UserManager>(),
+                mock<LauncherApps>(),
+                bubbleLogger,
+                mock<TaskStackListenerImpl>(),
+                shellTaskOrganizer,
+                bubblePositioner,
+                displayController,
+                Optional.empty(),
+                mock<DragAndDropController>(),
+                mainExecutor,
+                mock<Handler>(),
+                bgExecutor,
+                mock<TaskViewRepository>(),
+                mock<TaskViewTransitions>(),
+                mock<Transitions>(),
+                SyncTransactionQueue(TransactionPool(), mainExecutor),
+                mock<IWindowManager>(),
+                resizeChecker,
+            )
         bubbleController.setInflateSynchronously(true)
         bubbleController.onInit()
 
         return bubbleController
     }
-}
\ No newline at end of file
+
+    private class FakeBubbleExpandListener : BubbleExpandListener {
+        val bubblesExpandedState = mutableMapOf<String, Boolean>()
+
+        override fun onBubbleExpandChanged(isExpanding: Boolean, key: String) {
+            bubblesExpandedState[key] = isExpanding
+        }
+    }
+}
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleStackViewTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleStackViewTest.kt
index 9d445f0..e865111 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleStackViewTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleStackViewTest.kt
@@ -50,10 +50,10 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito
 import org.mockito.kotlin.any
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.never
+import org.mockito.kotlin.spy
 import org.mockito.kotlin.verify
 import java.util.concurrent.Semaphore
 import java.util.concurrent.TimeUnit
@@ -635,7 +635,7 @@
 
     @Test
     fun removeFromWindow_stopMonitoringSwipeUpGesture() {
-        bubbleStackView = Mockito.spy(bubbleStackView)
+        bubbleStackView = spy(bubbleStackView)
         InstrumentationRegistry.getInstrumentation().runOnMainSync {
             // No way to add to window in the test environment right now so just pretend
             bubbleStackView.onDetachedFromWindow()
@@ -685,7 +685,6 @@
             expandedViewManager,
             bubbleTaskViewFactory,
             positioner,
-            bubbleLogger,
             bubbleStackView,
             null,
             iconFactory,
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskTest.kt
index 77aee98..4168686 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskTest.kt
@@ -327,7 +327,6 @@
             expandedViewManager,
             bubbleTaskViewFactory,
             bubblePositioner,
-            bubbleLogger,
             bubbleStackView,
             null /* layerView */,
             iconFactory,
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/FakeBubbleFactory.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/FakeBubbleFactory.kt
index 7501786..af33a8d 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/FakeBubbleFactory.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/FakeBubbleFactory.kt
@@ -45,10 +45,10 @@
                         .inflate(R.layout.bubble_bar_expanded_view, null, false /* attachToRoot */)
                         as BubbleBarExpandedView)
                     .apply {
+                        this.bubbleLogger = bubbleLogger
                         initialize(
                             expandedViewManager,
                             bubblePositioner,
-                            bubbleLogger,
                             false, /* isOverflow */
                             bubbleTaskView,
                             mainExecutor,
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/UiEventSubjectTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/UiEventSubjectTest.kt
index af238d0..3499ee3 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/UiEventSubjectTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/UiEventSubjectTest.kt
@@ -29,7 +29,8 @@
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito.mock
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
 import org.mockito.kotlin.whenever
 
 /** Test for [UiEventSubject] */
@@ -130,10 +131,10 @@
     }
 
     private fun createBubble(appUid: Int, packageName: String, instanceId: InstanceId): Bubble {
-        return mock(Bubble::class.java).apply {
-            whenever(getAppUid()).thenReturn(appUid)
-            whenever(getPackageName()).thenReturn(packageName)
-            whenever(getInstanceId()).thenReturn(instanceId)
+        return mock<Bubble>() {
+            on { getAppUid() } doReturn appUid
+            on { getPackageName() } doReturn packageName
+            on { getInstanceId() } doReturn instanceId
         }
     }
 
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelperTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelperTest.kt
index 68b3d88..56cee42 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelperTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelperTest.kt
@@ -358,7 +358,7 @@
 
     private fun createOverflow(): BubbleOverflow {
         val overflow = BubbleOverflow(context, bubblePositioner)
-        overflow.initializeForBubbleBar(expandedViewManager, bubblePositioner, bubbleLogger)
+        overflow.initializeForBubbleBar(expandedViewManager, bubblePositioner)
         return overflow
     }
 
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewTest.kt
index 037bd22..1440873 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewTest.kt
@@ -114,10 +114,10 @@
         bubbleExpandedView = inflater.inflate(
             R.layout.bubble_bar_expanded_view, null, false /* attachToRoot */
         ) as BubbleBarExpandedView
+        bubbleExpandedView.bubbleLogger = BubbleLogger(uiEventLoggerFake)
         bubbleExpandedView.initialize(
             expandedViewManager,
             positioner,
-            BubbleLogger(uiEventLoggerFake),
             false /* isOverflow */,
             bubbleTaskView,
             mainExecutor,
@@ -279,7 +279,6 @@
         expandedView.initialize(
             expandedViewManager,
             positioner,
-            BubbleLogger(uiEventLoggerFake),
             false /* isOverflow */,
             taskView,
             mainExecutor,
@@ -321,7 +320,6 @@
         expandedView.initialize(
             expandedViewManager,
             positioner,
-            BubbleLogger(uiEventLoggerFake),
             false /* isOverflow */,
             taskView,
             mainExecutor,
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt
index c022a29..7b583137 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt
@@ -73,7 +73,6 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito.mock
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.whenever
 
@@ -127,7 +126,7 @@
                 mainExecutor,
                 bgExecutor,
             )
-        bubbleController.asBubbles().setSysuiProxy(mock(SysuiProxy::class.java))
+        bubbleController.asBubbles().setSysuiProxy(mock<SysuiProxy>())
         // Flush so that proxy gets set
         mainExecutor.flushAll()
 
diff --git a/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml
index ce24275..05c1e09 100644
--- a/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml
+++ b/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml
@@ -13,20 +13,10 @@
   ~ 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="128dp"
-    android:height="4dp"
-    android:viewportWidth="128"
-    android:viewportHeight="4"
-    >
-    <group>
-        <clip-path
-            android:pathData="M2 0H126C127.105 0 128 0.895431 128 2C128 3.10457 127.105 4 126 4H2C0.895431 4 0 3.10457 0 2C0 0.895431 0.895431 0 2 0Z"
-            />
-        <path
-            android:pathData="M0 0V4H128V0"
-            android:fillColor="@android:color/black"
-            />
-    </group>
-</vector>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@android:color/black"/>
+    <corners android:radius="2dp"/>
+    <size android:height="4dp"/>
+</shape>
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_app_handle.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_app_handle.xml
index 1d1cdfa..9451fd4 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_app_handle.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_app_handle.xml
@@ -20,7 +20,7 @@
     android:id="@+id/desktop_mode_caption"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:gravity="center_horizontal">
+    android:gravity="center">
 
     <com.android.wm.shell.windowdecor.HandleImageButton
         android:id="@+id/caption_handle"
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml
index b1fedce..477d207 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml
@@ -41,29 +41,21 @@
             android:id="@+id/application_icon"
             android:layout_width="@dimen/desktop_mode_caption_icon_radius"
             android:layout_height="@dimen/desktop_mode_caption_icon_radius"
-            android:layout_marginStart="12dp"
+            android:layout_marginStart="10dp"
             android:layout_marginEnd="12dp"
             android:contentDescription="@string/app_icon_text"
             android:importantForAccessibility="no"/>
 
-        <TextView
+        <com.android.wm.shell.windowdecor.MarqueedTextView
             android:id="@+id/application_name"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
             tools:text="Gmail"
-            android:textColor="@androidprv:color/materialColorOnSurface"
-            android:textSize="14sp"
-            android:textFontWeight="500"
-            android:lineHeight="20dp"
-            android:textStyle="normal"
-            android:layout_weight="1"/>
+            style="@style/DesktopModeHandleMenuActionButtonTextView"/>
 
         <com.android.wm.shell.windowdecor.HandleMenuImageButton
             android:id="@+id/collapse_menu_button"
-            android:layout_width="32dp"
-            android:layout_height="32dp"
-            android:padding="4dp"
-            android:layout_marginEnd="14dp"
+            android:layout_width="16dp"
+            android:layout_height="16dp"
+            android:layout_marginEnd="16dp"
             android:layout_marginStart="14dp"
             android:contentDescription="@string/collapse_menu_text"
             android:src="@drawable/ic_baseline_expand_more_24"
@@ -85,40 +77,55 @@
 
         <ImageButton
             android:id="@+id/fullscreen_button"
-            android:layout_marginEnd="4dp"
+            android:paddingStart="16dp"
+            android:paddingEnd="12dp"
             android:contentDescription="@string/fullscreen_text"
             android:src="@drawable/desktop_mode_ic_handle_menu_fullscreen"
             android:tint="@androidprv:color/materialColorOnSurface"
-            android:layout_weight="1"
             style="@style/DesktopModeHandleMenuWindowingButton"/>
 
+        <Space
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1"/>
+
         <ImageButton
             android:id="@+id/split_screen_button"
-            android:layout_marginStart="4dp"
-            android:layout_marginEnd="4dp"
+            android:paddingStart="14dp"
+            android:paddingEnd="14dp"
             android:contentDescription="@string/split_screen_text"
             android:src="@drawable/desktop_mode_ic_handle_menu_splitscreen"
             android:tint="@androidprv:color/materialColorOnSurface"
-            android:layout_weight="1"
             style="@style/DesktopModeHandleMenuWindowingButton"/>
 
+        <Space
+            android:id="@+id/floating_button_space"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1"/>
+
         <ImageButton
             android:id="@+id/floating_button"
-            android:layout_marginStart="4dp"
-            android:layout_marginEnd="4dp"
+            android:paddingStart="14dp"
+            android:paddingEnd="14dp"
             android:contentDescription="@string/float_button_text"
             android:src="@drawable/desktop_mode_ic_handle_menu_floating"
             android:tint="@androidprv:color/materialColorOnSurface"
-            android:layout_weight="1"
             style="@style/DesktopModeHandleMenuWindowingButton"/>
 
+        <Space
+            android:id="@+id/desktop_button_space"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1"/>
+
         <ImageButton
             android:id="@+id/desktop_button"
-            android:layout_marginStart="4dp"
+            android:paddingStart="12dp"
+            android:paddingEnd="16dp"
             android:contentDescription="@string/desktop_text"
             android:src="@drawable/desktop_mode_ic_handle_menu_desktop"
             android:tint="@androidprv:color/materialColorOnSurface"
-            android:layout_weight="1"
             style="@style/DesktopModeHandleMenuWindowingButton"/>
 
     </LinearLayout>
@@ -133,37 +140,33 @@
         android:elevation="@dimen/desktop_mode_handle_menu_pill_elevation"
         android:background="@drawable/desktop_mode_decor_handle_menu_background">
 
-        <Button
+        <com.android.wm.shell.windowdecor.HandleMenuActionButton
             android:id="@+id/screenshot_button"
             android:contentDescription="@string/screenshot_text"
             android:text="@string/screenshot_text"
-            android:drawableStart="@drawable/desktop_mode_ic_handle_menu_screenshot"
-            android:drawableTint="@androidprv:color/materialColorOnSurface"
+            android:src="@drawable/desktop_mode_ic_handle_menu_screenshot"
             style="@style/DesktopModeHandleMenuActionButton"/>
 
-        <Button
+        <com.android.wm.shell.windowdecor.HandleMenuActionButton
             android:id="@+id/new_window_button"
             android:contentDescription="@string/new_window_text"
             android:text="@string/new_window_text"
-            android:drawableStart="@drawable/desktop_mode_ic_handle_menu_new_window"
-            android:drawableTint="@androidprv:color/materialColorOnSurface"
-            style="@style/DesktopModeHandleMenuActionButton" />
+            android:src="@drawable/desktop_mode_ic_handle_menu_new_window"
+            style="@style/DesktopModeHandleMenuActionButton"/>
 
-        <Button
+        <com.android.wm.shell.windowdecor.HandleMenuActionButton
             android:id="@+id/manage_windows_button"
             android:contentDescription="@string/manage_windows_text"
             android:text="@string/manage_windows_text"
-            android:drawableStart="@drawable/desktop_mode_ic_handle_menu_manage_windows"
-            android:drawableTint="@androidprv:color/materialColorOnSurface"
-            style="@style/DesktopModeHandleMenuActionButton" />
+            android:src="@drawable/desktop_mode_ic_handle_menu_manage_windows"
+            style="@style/DesktopModeHandleMenuActionButton"/>
 
-        <Button
+        <com.android.wm.shell.windowdecor.HandleMenuActionButton
             android:id="@+id/change_aspect_ratio_button"
             android:contentDescription="@string/change_aspect_ratio_text"
             android:text="@string/change_aspect_ratio_text"
-            android:drawableStart="@drawable/desktop_mode_ic_handle_menu_change_aspect_ratio"
-            android:drawableTint="@androidprv:color/materialColorOnSurface"
-            style="@style/DesktopModeHandleMenuActionButton" />
+            android:src="@drawable/desktop_mode_ic_handle_menu_change_aspect_ratio"
+            style="@style/DesktopModeHandleMenuActionButton"/>
     </LinearLayout>
 
     <LinearLayout
@@ -176,22 +179,22 @@
         android:elevation="@dimen/desktop_mode_handle_menu_pill_elevation"
         android:background="@drawable/desktop_mode_decor_handle_menu_background">
 
-        <Button
+        <com.android.wm.shell.windowdecor.HandleMenuActionButton
             android:id="@+id/open_in_app_or_browser_button"
-            android:layout_weight="1"
             android:contentDescription="@string/open_in_browser_text"
             android:text="@string/open_in_browser_text"
-            android:drawableStart="@drawable/desktop_mode_ic_handle_menu_open_in_browser"
-            android:drawableTint="@androidprv:color/materialColorOnSurface"
-            style="@style/DesktopModeHandleMenuActionButton"/>
+            android:src="@drawable/desktop_mode_ic_handle_menu_open_in_browser"
+            style="@style/DesktopModeHandleMenuActionButton"
+            android:layout_width="0dp"
+            android:layout_weight="1"/>
 
         <ImageButton
             android:id="@+id/open_by_default_button"
             android:layout_width="20dp"
             android:layout_height="20dp"
             android:layout_gravity="end|center_vertical"
+            android:layout_marginStart="8dp"
             android:layout_marginEnd="16dp"
-            android:layout_marginStart="10dp"
             android:contentDescription="@string/open_by_default_settings_text"
             android:src="@drawable/desktop_mode_ic_handle_menu_open_by_default_settings"
             android:tint="@androidprv:color/materialColorOnSurface"/>
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml
new file mode 100644
index 0000000..379f4e9
--- /dev/null
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2025 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/action_button"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="start|center_vertical"
+    android:paddingHorizontal="16dp"
+    android:clickable="true"
+    android:focusable="true"
+    android:orientation="horizontal"
+    android:background="?android:attr/selectableItemBackground">
+
+    <ImageView
+        android:id="@+id/image"
+        android:contentDescription="@+id/label"
+        style="@style/DesktopModeHandleMenuActionButtonImage"/>
+
+    <com.android.wm.shell.windowdecor.MarqueedTextView
+        android:id="@+id/label"
+        style="@style/DesktopModeHandleMenuActionButtonTextView"/>
+</LinearLayout>
diff --git a/libs/WindowManager/Shell/res/values-af/strings.xml b/libs/WindowManager/Shell/res/values-af/strings.xml
index 13e5f34..5444c26 100644
--- a/libs/WindowManager/Shell/res/values-af/strings.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Links 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Links 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Volskerm regs"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Ruil apps om"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Volskerm bo"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Bo 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Bo 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Stel terug"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Spring na links"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Spring na regs"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Verander grootte van linkerkantse venster"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Verander grootte van regterkantse venster"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimeer of stel venstergrootte terug"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Gaan na deelskermmodus"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Gaan na werkskermvenstermodus"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Verander grootte van linkerkantse venster"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Verander grootte van regterkantse venster"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimeer of stel venstergrootte terug"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimeer of stel venstergrootte terug"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimeer appvenster"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Maak By Verstek Oop-instellings"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Kies hoe om webskakels vir hierdie app oop te maak"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"In die app"</string>
diff --git a/libs/WindowManager/Shell/res/values-am/strings.xml b/libs/WindowManager/Shell/res/values-am/strings.xml
index 14a79aa..f3bc29d 100644
--- a/libs/WindowManager/Shell/res/values-am/strings.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ግራ 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ግራ 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"የቀኝ ሙሉ ማያ ገፅ"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"መተግበሪያዎችን ይቀያይሩ"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"የላይ ሙሉ ማያ ገፅ"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ከላይ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ከላይ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ወደነበረበት መልስ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ወደ ግራ አሳድግ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ወደ ቀኝ አሳድግ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"የመተግበሪያ መስኮትን ወደ ግራ መጠን ቀይር"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"የመተግበሪያ መስኮትን ወደ ቀኝ መጠን ቀይር"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ወደ የተከፈለ ማያ ገፅ ሁነታ ግባ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ወደ የዴስክቶፕ መስኮት ሁነታ ግባ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"መስኮትን ወደ ግራ መጠን ቀይር"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"መስኮትን ወደ ቀኝ መጠን ቀይር"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"የመተግበሪያ መስኮትን አሳንስ"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"በነባሪ ቅንብሮች ክፈት"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ለዚህ የድር መተግበሪያ አገናኙን እንዴት እንደሚከፍቱ ይምረጡ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"በመተግበሪያው ውስጥ"</string>
diff --git a/libs/WindowManager/Shell/res/values-ar/strings.xml b/libs/WindowManager/Shell/res/values-ar/strings.xml
index 206a8de..60f27cf 100644
--- a/libs/WindowManager/Shell/res/values-ar/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ar/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ضبط حجم النافذة اليسرى ليكون ٥٠%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ضبط حجم النافذة اليسرى ليكون ٣٠%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"عرض النافذة اليمنى بملء الشاشة"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"تبديل التطبيقات"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"عرض النافذة العلوية بملء الشاشة"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ضبط حجم النافذة العلوية ليكون ٧٠%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ضبط حجم النافذة العلوية ليكون ٥٠%"</string>
@@ -126,7 +125,7 @@
     <string name="float_button_text" msgid="9221657008391364581">"نافذة عائمة"</string>
     <string name="select_text" msgid="5139083974039906583">"اختيار"</string>
     <string name="screenshot_text" msgid="1477704010087786671">"لقطة شاشة"</string>
-    <string name="open_in_browser_text" msgid="9181692926376072904">"فتح في المتصفِّح"</string>
+    <string name="open_in_browser_text" msgid="9181692926376072904">"الفتح في المتصفِّح"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"فتح في التطبيق"</string>
     <string name="new_window_text" msgid="6318648868380652280">"نافذة جديدة"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"إدارة النوافذ"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"استعادة"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"المحاذاة إلى اليسار"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"المحاذاة إلى اليمين"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"تغيير حجم نافذة التطبيق بمحاذاتها إلى اليمين"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"تغيير حجم نافذة التطبيق بمحاذاتها إلى اليسار"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"تكبير حجم النافذة أو استعادته"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"تفعيل \"وضع تقسيم الشاشة\""</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"تفعيل وضع عرض المحتوى في النافذة الحالية على سطح المكتب"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"تغيير حجم النافذة بمحاذاتها إلى اليمين"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"تغيير حجم النافذة بمحاذاتها إلى اليسار"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"تكبير حجم النافذة أو استعادته"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"تكبير حجم النافذة أو استعادته"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"تصغير نافذة التطبيق"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"إعدادات الفتح تلقائيًا"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"اختيار طريقة فتح روابط الويب لهذا التطبيق"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"في التطبيق"</string>
diff --git a/libs/WindowManager/Shell/res/values-as/strings.xml b/libs/WindowManager/Shell/res/values-as/strings.xml
index 28acb10..0f43347 100644
--- a/libs/WindowManager/Shell/res/values-as/strings.xml
+++ b/libs/WindowManager/Shell/res/values-as/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"বাওঁফালৰ স্ক্ৰীনখন ৫০% কৰক"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"বাওঁফালৰ স্ক্ৰীনখন ৩০% কৰক"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"সোঁফালৰ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"এপ্‌সমূহ সলনাসলনি কৰক"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"শীৰ্ষ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"শীর্ষ স্ক্ৰীনখন ৭০% কৰক"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"শীর্ষ স্ক্ৰীনখন ৫০% কৰক"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"পুনঃস্থাপন কৰক"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"বাওঁফাললৈ স্নেপ কৰক"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"সোঁফাললৈ স্নেপ কৰক"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"বাওঁফালে এপ্‌ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"সোঁফালে এপ্‌ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"বিভাজিত-স্ক্ৰীন ম’ড দিয়ক"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ডেস্কটপ ৱিণ্ড’ইং ম’ড দিয়ক"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"সোঁফাললৈ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"বাওঁফাললৈ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"এপ্‌ ৱিণ্ড’ মিনিমাইজ কৰক"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ডিফ’ল্ট ছেটিং খোলক"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"এই এপ্‌টোৰ বাবে কিদৰে ৱেব লিংক খুলিব পাৰি সেয়া বাছনি কৰক"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"এপ্‌টোত"</string>
diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml
index 5181930..aced354 100644
--- a/libs/WindowManager/Shell/res/values-az/strings.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Sol 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Sol 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Sağ tam ekran"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Tətbiqləri dəyişin"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Yuxarı tam ekran"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Yuxarı 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Yuxarı 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Bərpa edin"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Sola tərəf çəkin"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Sağa tərəf çəkin"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Tətbiq pəncərəsinin ölçüsünü sola dəyişin"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Tətbiq pəncərəsinin ölçüsünü sağa dəyişin"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Pəncərə ölçüsünü artırın və ya bərpa edin"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Bölünmüş ekran rejiminə daxil olun"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Masaüstü pəncərə rejiminə daxil olun"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Pəncərə ölçüsünü sola dəyişin"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Pəncərə ölçüsünü sağa dəyişin"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Pəncərə ölçüsünü artırın və ya bərpa edin"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Pəncərə ölçüsünü artırın və ya bərpa edin"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Tətbiq pəncərəsini kiçildin"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Defolt ayarlarla açın"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Bu tətbiq üçün veb-linklərin necə açılacağını seçin"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Tətbiqdə"</string>
diff --git a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
index 207ac27..b07c612 100644
--- a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Levi ekran 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Levi ekran 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Režim celog ekrana za donji ekran"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Zamenite mesta aplikacijama"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Režim celog ekrana za gornji ekran"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Gornji ekran 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gornji ekran 50%"</string>
@@ -126,11 +125,11 @@
     <string name="float_button_text" msgid="9221657008391364581">"Plutajuće"</string>
     <string name="select_text" msgid="5139083974039906583">"Izaberite"</string>
     <string name="screenshot_text" msgid="1477704010087786671">"Snimak ekrana"</string>
-    <string name="open_in_browser_text" msgid="9181692926376072904">"Otvorite u pregledaču"</string>
+    <string name="open_in_browser_text" msgid="9181692926376072904">"Otvori u pregledaču"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"Otvorite u aplikaciji"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Novi prozor"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"Upravljajte prozorima"</string>
-    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Promenite razmeru"</string>
+    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Promeni razmeru"</string>
     <string name="close_text" msgid="4986518933445178928">"Zatvorite"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Zatvorite meni"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Otvorite meni"</string>
@@ -139,30 +138,20 @@
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Aplikacija ne može da se premesti ovde"</string>
     <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Imerzivne"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Vrati"</string>
-    <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Uvećajte"</string>
+    <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Uvećaj"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Vratite"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Prikačite levo"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Prikačite desno"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Promenite veličinu prozora aplikacije nalevo"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Promenite veličinu prozora aplikacije nadesno"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Uvećajte ili vratite veličinu prozora"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Uđite u režim podeljenog ekrana"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Uđite u režim prozora na računaru"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Promenite veličinu prozora nalevo"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Promenite veličinu prozora nadesno"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Uvećajte ili vratite veličinu prozora"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Uvećajte ili vratite veličinu prozora"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Umanjite prozor aplikacije"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Podešavanje Podrazumevano otvaraj"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Odaberite način otvaranja veb-linkova za ovu aplikaciju"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"U aplikaciji"</string>
diff --git a/libs/WindowManager/Shell/res/values-be/strings.xml b/libs/WindowManager/Shell/res/values-be/strings.xml
index abaa834..4c2950b 100644
--- a/libs/WindowManager/Shell/res/values-be/strings.xml
+++ b/libs/WindowManager/Shell/res/values-be/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Левы экран – 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Левы экран – 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Правы экран – поўнаэкранны рэжым"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Пераключыць праграмы"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Верхні экран – поўнаэкранны рэжым"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Верхні экран – 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Верхні экран – 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Аднавіць"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Размясціць злева"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Размясціць справа"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Змяніць памер акна (злева)"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Змяніць памер акна (справа)"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Разгарнуць акно ці аднавіць яго памер"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Уключыць рэжым падзеленага экрана"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Уключыць рэжым вокнаў працоўнага стала"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Змяніць памер акна і перамясціць да левага краю"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Змяніць памер акна і перамясціць да правага краю"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Разгарнуць акно ці аднавіць яго памер"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Разгарнуць акно ці аднавіць яго памер"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Згарнуць акно праграмы"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Налады параметра \"Адкрываць стандартна\""</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Выберыце, як гэта праграма будзе адкрываць вэб-спасылкі"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"У праграме"</string>
diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml
index e7feb5b..fcc4d83 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Ляв екран: 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Ляв екран: 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Десен екран: Показване на цял екран"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Размяна на приложенията"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Горен екран: Показване на цял екран"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Горен екран: 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Горен екран: 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Възстановяване"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Прилепване наляво"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Прилепване надясно"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Преоразмеряване на прозореца на приложението наляво"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Преоразмеряване на прозореца на приложението надясно"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Увеличаване или възстановяване на размера на прозореца"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Активиране на режима за разделен екран"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Активиране на режима за настолни компютри"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Преоразмеряване на прозореца наляво"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Преоразмеряване на прозореца надясно"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Увеличаване или възстановяване на размера на прозореца"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Увеличаване или възстановяване на размера на прозореца"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Намаляване на прозореца на приложението"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Отваряне на настройките по подразбиране"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Изберете как да се отварят уеб връзките за това приложение"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"В приложението"</string>
diff --git a/libs/WindowManager/Shell/res/values-bn/strings.xml b/libs/WindowManager/Shell/res/values-bn/strings.xml
index f4f8877..b2c435e 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"৫০% বাকি আছে"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"৩০% বাকি আছে"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"ডান দিকের অংশ নিয়ে পূর্ণ স্ক্রিন"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"অ্যাপ পাল্টান"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"উপর দিকের অংশ নিয়ে পূর্ণ স্ক্রিন"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"শীর্ষ ৭০%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"শীর্ষ ৫০%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ফিরিয়ে আনুন"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"বাঁদিকে স্ন্যাপ করুন"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ডানদিকে স্ন্যাপ করুন"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"বাঁদিকে অ্যাপ উইন্ডো রিসাইজ করুন"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ডানদিকে অ্যাপ উইন্ডো রিসাইজ করুন"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"উইন্ডো সাইজ বড় বা রিস্টোর করুন"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"স্প্লিট স্ক্রিন মোডে প্রবেশ করুন"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ডেস্কটপ উইন্ডোইং মোডে প্রবেশ করুন"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"বাঁদিকে উইন্ডো রিসাইজ করুন"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ডানদিকে উইন্ডো রিসাইজ করুন"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"উইন্ডো সাইজ বড় বা রিস্টোর করুন"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"উইন্ডো সাইজ বড় বা রিস্টোর করুন"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"অ্যাপ উইন্ডো ছোট করুন"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ডিফল্ট হিসেবে থাকা সেটিংস খুলুন"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"এই অ্যাপের জন্য কীভাবে ওয়েব লিঙ্ক খুলবেন তা বেছে নিন"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"অ্যাপের মধ্যে"</string>
diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml
index 8982d61..8c1619c 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Lijevo 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Lijevo 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Desno cijeli ekran"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Zamjena aplikacija"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Gore cijeli ekran"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Gore 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gore 50%"</string>
@@ -139,30 +138,20 @@
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Ne možete premjestiti aplikaciju ovdje"</string>
     <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Uvjerljivo"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Vraćanje"</string>
-    <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Maksimiziranje"</string>
+    <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Maksimiziraj"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Vraćanje"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Pomicanje ulijevo"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Pomicanje udesno"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Promjena veličine prozora aplikacije lijevo"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Promjena veličine prozora aplikacije desno"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimiziranje ili vraćanje veličine prozora"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Pokretanje načina rada podijeljenog ekrana"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Pokretanje načina rada s prozorima na radnoj površini"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Promjena veličine prozora i poravnanje lijevo"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Promjena veličine prozora i poravnanje desno"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimiziranje ili vraćanje veličine prozora"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimiziranje ili vraćanje veličine prozora"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimiziranje prozora aplikacije"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Otvaranje prema zadanim postavkama"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Odaberite način otvaranja web linkova za ovu aplikaciju"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"U aplikaciji"</string>
diff --git a/libs/WindowManager/Shell/res/values-ca/strings.xml b/libs/WindowManager/Shell/res/values-ca/strings.xml
index 1623954..37802f4 100644
--- a/libs/WindowManager/Shell/res/values-ca/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ca/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Pantalla esquerra al 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Pantalla esquerra al 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Pantalla dreta completa"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Canvia les aplicacions"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Pantalla superior completa"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Pantalla superior al 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Pantalla superior al 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaura"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ajusta a l\'esquerra"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ajusta a la dreta"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Canvia la mida de la finestra de l\'aplicació a l\'esquerra"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Canvia la mida de la finestra de l\'aplicació a la dreta"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximitza o restaura la mida de la finestra"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Entra al mode de pantalla dividida"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Entra al mode d\'enfinestrament a l\'escriptori"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Canvia la mida de la finestra a l\'esquerra"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Canvia la mida de la finestra a la dreta"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximitza o restaura la mida de la finestra"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximitza o restaura la mida de la finestra"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimitza la finestra de l\'aplicació"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Configuració d\'obertura predeterminada"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Tria com vols obrir els enllaços web per a aquesta aplicació"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"A l\'aplicació"</string>
diff --git a/libs/WindowManager/Shell/res/values-cs/strings.xml b/libs/WindowManager/Shell/res/values-cs/strings.xml
index f6ac59c..c4514eb 100644
--- a/libs/WindowManager/Shell/res/values-cs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-cs/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50 % vlevo"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30 % vlevo"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Pravá část na celou obrazovku"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Zaměnit aplikace"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Horní část na celou obrazovku"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70 % nahoře"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % nahoře"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Obnovit"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Přichytit vlevo"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Přichytit vpravo"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Změnit velikost okna aplikace vlevo"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Změnit velikost okna aplikace vpravo"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximalizovat nebo obnovit velikost okna"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Přechod do režimu rozdělené obrazovky"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Přejít do režimu okenního systému pro počítače"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Přichytit okno vlevo"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Přichytit okno vpravo"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximalizovat nebo obnovit velikost okna"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximalizovat nebo obnovit velikost okna"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimalizovat okno aplikace"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Otevírat podle výchozího nastavení"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Určete, jak se v této aplikaci mají otevírat webové odkazy"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"V aplikaci"</string>
diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml
index 2cf725e..e662a16 100644
--- a/libs/WindowManager/Shell/res/values-da/strings.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Venstre 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Venstre 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Vis højre del i fuld skærm"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Byt apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Vis øverste del i fuld skærm"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Øverste 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Øverste 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Gendan"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Fastgør til venstre"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Fastgør til højre"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Juster størrelsen på appvinduet til venstre"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Juster størrelsen på appvinduet til højre"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimer eller gendan vinduesstørrelse"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Åbn opdelt skærm"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Åbn tilstanden for vinduer på computeren"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Juster størrelsen på vinduet til venstre"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Juster størrelsen på vinduet til højre"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimer eller gendan vinduesstørrelse"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimer eller gendan vinduesstørrelse"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimer appvindue"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Indstillinger for automatisk åbning"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Vælg, hvordan denne app skal åben weblinks"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"I appen"</string>
diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml
index d7ee8a0..7b21719 100644
--- a/libs/WindowManager/Shell/res/values-de/strings.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50 % links"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30 % links"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Vollbild rechts"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Apps austauschen"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Vollbild oben"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70 % oben"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % oben"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Wiederherstellen"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Links andocken"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Rechts andocken"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Größe des linken App-Fensters anpassen"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Größe des rechten App-Fensters anpassen"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Fenstergröße maximieren oder wiederherstellen"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Splitscreen-Modus aktivieren"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Desktop-Fenstermodus aktivieren"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Fenstergröße links anpassen"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Fenstergröße rechts anpassen"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Fenstergröße maximieren oder wiederherstellen"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Fenstergröße maximieren oder wiederherstellen"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"App-Fenster minimieren"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Einstellungen für die Option „Standardmäßig öffnen“"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Festlegen, wie Weblinks für diese App geöffnet werden"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"In der App"</string>
diff --git a/libs/WindowManager/Shell/res/values-el/strings.xml b/libs/WindowManager/Shell/res/values-el/strings.xml
index 4ba68b4..eb45a31 100644
--- a/libs/WindowManager/Shell/res/values-el/strings.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Αριστερή 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Αριστερή 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Δεξιά πλήρης οθόνη"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Εναλλαγή εφαρμογών"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Πάνω πλήρης οθόνη"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Πάνω 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Πάνω 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Επαναφορά"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Κούμπωμα αριστερά"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Κούμπωμα δεξιά"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Αλλαγή μεγέθους παραθύρου εφαρμογής αριστερά"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Αλλαγή μεγέθους παραθύρου εφαρμογής δεξιά"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Είσοδος στη λειτουργία διαχωρισμού οθόνης"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Είσοδος στη λειτουργία προσαρμογής σε παράθυρο υπολογιστή"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Αλλαγή μεγέθους παραθύρου προς τα αριστερά"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Αλλαγή μεγέθους παραθύρου προς τα δεξιά"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Ελαχιστοποίηση παραθύρου εφαρμογής"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Άνοιγμα ρυθμίσεων από προεπιλογή"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Επιλογή τρόπου ανοίγματος συνδέσμων ιστού για την εφαρμογή"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Στην εφαρμογή"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
index 8b1a14f..8dc27da 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Left 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Left 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Right full screen"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Swap apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Top full screen"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Top 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Top 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restore"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Snap left"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Snap right"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Resize app window left"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Resize app window right"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximise or restore window size"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Enter split-screen mode"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Enter desktop windowing mode"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Resize window to left"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Resize window to right"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximise or restore window size"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximise or restore window size"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimise app window"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Open by default settings"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Choose how to open web links for this app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"In the app"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index 8b1a14f..8dc27da 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Left 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Left 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Right full screen"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Swap apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Top full screen"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Top 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Top 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restore"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Snap left"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Snap right"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Resize app window left"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Resize app window right"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximise or restore window size"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Enter split-screen mode"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Enter desktop windowing mode"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Resize window to left"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Resize window to right"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximise or restore window size"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximise or restore window size"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimise app window"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Open by default settings"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Choose how to open web links for this app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"In the app"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
index 8b1a14f..8dc27da 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Left 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Left 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Right full screen"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Swap apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Top full screen"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Top 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Top 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restore"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Snap left"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Snap right"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Resize app window left"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Resize app window right"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximise or restore window size"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Enter split-screen mode"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Enter desktop windowing mode"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Resize window to left"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Resize window to right"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximise or restore window size"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximise or restore window size"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimise app window"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Open by default settings"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Choose how to open web links for this app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"In the app"</string>
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index c8fa76e..24c2bed 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Izquierda: 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Izquierda: 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Pantalla derecha completa"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Intercambiar apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Pantalla superior completa"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Superior: 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Superior: 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restablecer"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ajustar a la izquierda"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ajustar a la derecha"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ajustar el tamaño de la ventana de la app hacia la izquierda"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ajustar el tamaño de la ventana de la app hacia la derecha"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar o restablecer el tamaño de la ventana"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Activar el modo de pantalla dividida"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Ingresar al modo ventana de computadora"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ajustar el tamaño de la ventana hacia la izquierda"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ajustar el tamaño de la ventana hacia la derecha"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar o restablecer el tamaño de la ventana"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizar o restablecer el tamaño de la ventana"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizar ventana de la app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Abrir con la configuración predeterminada"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Elige cómo abrir vínculos web para esta app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"En la app"</string>
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index f36135e..dd9635d 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Izquierda 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Izquierda 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Pantalla derecha completa"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Cambiar aplicaciones"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Pantalla superior completa"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Superior 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Superior 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurar"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Acoplar a la izquierda"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Acoplar a la derecha"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Cambiar tamaño de la ventana de la aplicación izquierda"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Cambiar tamaño de la ventana de la aplicación derecha"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar o restaurar tamaño de la ventana"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Activar modo Pantalla dividida"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Activar modo Escritorio basado en ventanas"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Cambiar tamaño de la ventana a la izquierda"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Cambiar tamaño de la ventana a la derecha"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar o restaurar tamaño de la ventana"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizar o restaurar tamaño de la ventana"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizar ventana de la aplicación"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Abrir con los ajustes predeterminados"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Elige cómo quieres abrir los enlaces web de esta aplicación"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"En la aplicación"</string>
diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml
index 28943a7..56b5f0b 100644
--- a/libs/WindowManager/Shell/res/values-et/strings.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Vasak: 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Vasak: 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Parem täisekraan"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Rakenduste vahetamine"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Ülemine täisekraan"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Ülemine: 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Ülemine: 50%"</string>
@@ -126,7 +125,7 @@
     <string name="float_button_text" msgid="9221657008391364581">"Hõljuv"</string>
     <string name="select_text" msgid="5139083974039906583">"Vali"</string>
     <string name="screenshot_text" msgid="1477704010087786671">"Ekraanipilt"</string>
-    <string name="open_in_browser_text" msgid="9181692926376072904">"Avamine brauseris"</string>
+    <string name="open_in_browser_text" msgid="9181692926376072904">"Ava brauseris"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"Ava rakenduses"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Uus aken"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"Akende haldamine"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Taasta"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Tõmmake vasakule"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Tõmmake paremale"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Rakenduse akna suuruse muutmine vasakul"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Rakenduse akna suuruse muutmine paremal"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Akna suuruse maksimeerimine või taastamine"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Poolitatud ekraani režiimi sisenemine"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Töölaua akende kuvamise režiimi sisenemine"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Akna suuruse muutmine, vasakule"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Akna suuruse muutmine, paremale"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Akna suuruse maksimeerimine või taastamine"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Akna suuruse maksimeerimine või taastamine"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Rakenduse akna minimeerimine"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Avamisviisi vaikeseaded"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Valige, kuidas avada selle rakenduse puhul veebilinke"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Rakenduses"</string>
diff --git a/libs/WindowManager/Shell/res/values-eu/strings.xml b/libs/WindowManager/Shell/res/values-eu/strings.xml
index b77d0eb..9898af0 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Ezarri ezkerraldea % 50en"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Ezarri ezkerraldea % 30en"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Ezarri eskuinaldea pantaila osoan"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Aldatu aplikazioz"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Ezarri goialdea pantaila osoan"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Ezarri goialdea % 70en"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Ezarri goialdea % 50en"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Leheneratu"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ezarri ezkerrean"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ezarri eskuinean"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Aldatu aplikazioaren leihoaren tamaina eta eraman ezkerrera"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Aldatu aplikazioaren leihoaren tamaina eta eraman eskuinera"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizatu edo leheneratu leihoaren tamaina"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Sartu pantaila zatituaren moduan"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Sartu ordenagailuan leihoak erabiltzeko moduan"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Aldatu leihoaren tamaina eta eraman ezkerrera"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Aldatu leihoaren tamaina eta eraman eskuinera"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizatu edo leheneratu leihoaren tamaina"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizatu edo leheneratu leihoaren tamaina"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizatu aplikazioaren leihoa"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Modu lehenetsian irekitzearen ezarpenak"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Aukeratu nola ireki sareko estekak aplikazio honetan"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Aplikazioan"</string>
diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml
index fba9aa2..22ef61f 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"٪۵۰ چپ"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"٪۳۰ چپ"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"تمام‌صفحه راست"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"جابه‌جا کردن برنامه‌ها"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"تمام‌صفحه بالا"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"٪۷۰ بالا"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"٪۵۰ بالا"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"بازیابی کردن"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"کشیدن به‌چپ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"کشیدن به‌راست"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"تغییر اندازه پنجره برنامه در چپ"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"تغییر اندازه پنجره برنامه در راست"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"بیشینه‌سازی یا بازیابی اندازه پنجره"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ورود به حالت صفحه تقسیم‌شده"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"رفتن به حالت پردازش پنجره‌ای میز کار"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"تغییر اندازه پنجره به چپ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"تغییر اندازه پنجره به راست"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"بیشینه‌سازی یا بازیابی اندازه پنجره"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"بیشینه‌سازی یا بازیابی اندازه پنجره"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"کمینه‌سازی پنجره برنامه"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"تنظیمات باز کردن به‌طور پیش‌فرض"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"انتخاب روش باز کردن پیوندهای وب مربوط به این برنامه"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"در برنامه"</string>
diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml
index 06ff6e7..b23c833 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Vasen 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Vasen 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Oikea koko näytölle"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Vaihda sovellusta"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Yläosa koko näytölle"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Yläosa 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Yläosa 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Palauta"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Siirrä vasemmalle"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Siirrä oikealle"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Muuta vasemmanpuoleisen sovellusikkunan kokoa"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Muuta oikeanpuoleisen sovellusikkunan kokoa"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Suurenna ikkuna tai palauta ikkunan koko"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Avaa kahtia jaettu näyttö"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Siirry työpöydän ikkunointitilaan"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Muuta vasemmanpuoleisen ikkunan kokoa"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Muuta vasemmanpuoleisen ikkunan kokoa"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Suurenna ikkuna tai palauta ikkunan koko"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Suurenna ikkuna tai palauta ikkunan koko"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Pienennä sovellusikkuna"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Avaa oletusasetusten mukaan"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Valitse, miten verkkolinkit avataan tässä sovelluksessa"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Sovelluksessa"</string>
diff --git a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
index 08ff1d3..34b5b0a 100644
--- a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50 % à la gauche"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30 % à la gauche"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Plein écran à la droite"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Permuter des applis"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Plein écran dans le haut"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70 % dans le haut"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % dans le haut"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurer"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Épingler à gauche"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Épingler à droite"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionner la fenêtre de l\'appli à gauche"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionner la fenêtre de l\'appli à droite"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Agrandir ou restaurer la taille de la fenêtre"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Entrer en mode Écran divisé"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Entrer en mode Fenêtrage bureau"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionner la fenêtre vers la gauche"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionner la fenêtre vers la droite"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Agrandir ou restaurer la taille de la fenêtre"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Agrandir ou restaurer la taille de la fenêtre"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Réduire la fenêtre de l\'appli"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Ouvrir les paramètres par défaut"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Choisissez comment ouvrir les liens Web pour cette appli"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Dans l\'appli"</string>
diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml
index 9ced5c7..be41bba 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Écran de gauche à 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Écran de gauche à 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Écran de droite en plein écran"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Échanger les applis"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Écran du haut en plein écran"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Écran du haut à 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Écran du haut à 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurer"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ancrer à gauche"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ancrer à droite"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionner la fenêtre de l\'appli vers la gauche"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionner la fenêtre de l\'appli vers la droite"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Agrandir ou restaurer la taille de la fenêtre"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Passer en mode Écran partagé"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Activer le mode fenêtrage du bureau"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionner la fenêtre vers la gauche"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionner la fenêtre vers la droite"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Agrandir ou restaurer la taille de la fenêtre"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Agrandir ou restaurer la taille de la fenêtre"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Réduire la fenêtre de l\'application"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Ouvrir les paramètres par défaut"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Choisir comment ouvrir les liens Web pour cette appli"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Dans l\'application"</string>
diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml
index b967784..aa2f639 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50 % á esquerda"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30 % á esquerda"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Pantalla completa á dereita"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Cambiar as aplicacións"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Pantalla completa arriba"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70 % arriba"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50 % arriba"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurar"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Axustar á esquerda"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Axustar á dereita"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Axustar o tamaño da ventá da aplicación á esquerda"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Axustar o tamaño da ventá da aplicación á dereita"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar ou restaurar o tamaño da ventá"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Entrar no modo de pantalla dividida"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Entrar no modo de ventás do ordenador"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Axustar o tamaño da ventá á esquerda"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Axustar o tamaño da ventá á dereita"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar ou restaurar o tamaño da ventá"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizar ou restaurar o tamaño da ventá"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizar a ventá da aplicación"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Abrir coa configuración predeterminada"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Escoller como abrir as ligazóns web para esta aplicación"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Na aplicación"</string>
diff --git a/libs/WindowManager/Shell/res/values-gu/strings.xml b/libs/WindowManager/Shell/res/values-gu/strings.xml
index d8c422f..dcd5738 100644
--- a/libs/WindowManager/Shell/res/values-gu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gu/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ડાબે 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ડાબે 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"જમણી સ્ક્રીન સ્ક્રીન"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ઍપને સ્વૉપ કરો"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"શીર્ષ પૂર્ણ સ્ક્રીન"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"શીર્ષ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"શીર્ષ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"રિસ્ટોર કરો"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ડાબે સ્નૅપ કરો"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"જમણે સ્નૅપ કરો"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ડાબી બાજુથી ઍપની વિન્ડોનું કદ બદલો"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"જમણી બાજુથી ઍપની વિન્ડોનું કદ બદલો"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"વિન્ડોનું કદ મહત્તમ કરો અથવા રિસ્ટોર કરો"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"સ્ક્રીન-વિભાજન મોડ દાખલ કરો"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ડેસ્કટૉપ વિન્ડો મોડ દાખલ કરો"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ડાબી બાજુ વિન્ડોનું કદ બદલો"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"જમણી બાજુ વિન્ડોનું કદ બદલો"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"વિન્ડોનું કદ મહત્તમ કરો અથવા રિસ્ટોર કરો"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"વિન્ડોનું કદ મહત્તમ કરો અથવા રિસ્ટોર કરો"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ઍપની વિન્ડોને નાની કરો"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"\'ડિફૉલ્ટ તરીકે ખોલો\' સેટિંગ"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"આ ઍપ માટે વેબ લિંક ખોલવાની રીત પસંદ કરો"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ઍપમાં"</string>
diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml
index f8215af..4bf2d92 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"बाईं स्क्रीन को 50% बनाएं"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"बाईं स्क्रीन को 30% बनाएं"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"दाईं स्क्रीन को फ़ुल स्क्रीन बनाएं"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ऐप्लिकेशन स्वैप करें"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ऊपर की स्क्रीन को फ़ुल स्क्रीन बनाएं"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ऊपर की स्क्रीन को 70% बनाएं"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ऊपर की स्क्रीन को 50% बनाएं"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"पहले जैसा करें"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"बाईं ओर स्नैप करें"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"दाईं ओर स्नैप करें"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ऐप्लिकेशन विंडो का साइज़ बाईं ओर से बदलें"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ऐप्लिकेशन विंडो का साइज़ दाईं ओर से बदलें"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"स्प्लिट स्क्रीन मोड में चालू करें"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"डेस्कटॉप विंडो मोड में जाएं"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"विंडो का साइज़ बाईं ओर से बदलें"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"विंडो का साइज़ दाईं ओर से बढ़ाएं"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ऐप्लिकेशन की विंडो को छोटा करें"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"डिफ़ॉल्ट सेटिंग के हिसाब से खोलें"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"इस ऐप्लिकेशन के लिए वेब लिंक खोलने का तरीका चुनें"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ऐप्लिकेशन में"</string>
diff --git a/libs/WindowManager/Shell/res/values-hr/strings.xml b/libs/WindowManager/Shell/res/values-hr/strings.xml
index 7f29c05..157822c 100644
--- a/libs/WindowManager/Shell/res/values-hr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hr/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Lijevi zaslon na 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Lijevi zaslon na 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Desni zaslon u cijeli zaslon"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Zamijeni aplikacije"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Gornji zaslon u cijeli zaslon"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Gornji zaslon na 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gornji zaslon na 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Vrati"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Poravnaj lijevo"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Poravnaj desno"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Promijeni veličinu prozora aplikacije ulijevo"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Promijeni veličinu prozora aplikacije udesno"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimiziraj ili vrati veličinu prozora"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Pokreni način podijeljenog zaslona"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Pokreni način prikaza u prozorima na računalu"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Promijeni veličinu prozora ulijevo"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Promijeni veličinu prozora udesno"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimiziraj ili vrati veličinu prozora"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimiziraj ili vrati veličinu prozora"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimiziraj prozor aplikacije"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Otvori prema zadanim postavkama"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Odaberite način otvaranja web-veza za ovu aplikaciju"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"U aplikaciji"</string>
diff --git a/libs/WindowManager/Shell/res/values-hu/strings.xml b/libs/WindowManager/Shell/res/values-hu/strings.xml
index 76e7579..546a465 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Bal oldali 50%-ra"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Bal oldali 30%-ra"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Jobb oldali teljes képernyőre"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Váltás az alkalmazások között"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Felső teljes képernyőre"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Felső 70%-ra"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Felső 50%-ra"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Visszaállítás"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Balra igazítás"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Jobbra igazítás"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Alkalmazásablak átméretezése balra"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Alkalmazásablak átméretezése jobbra"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Ablak teljes méretre állítása vagy visszaállítása"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Belépés osztott képernyős módba"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Asztali ablakkezelési mód indítása"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ablak átméretezése balra"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ablak átméretezése jobbra"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Ablak teljes méretre állítása vagy visszaállítása"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Ablak teljes méretre állítása vagy visszaállítása"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Alkalmazásablak kis méretre állítása"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Alapértelmezett beállítások megnyitása"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Az app webes linkjeinek megnyitásához használt módszer"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Az alkalmazásban"</string>
diff --git a/libs/WindowManager/Shell/res/values-hy/strings.xml b/libs/WindowManager/Shell/res/values-hy/strings.xml
index 0eb75c7..39a395f 100644
--- a/libs/WindowManager/Shell/res/values-hy/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hy/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Ձախ էկրանը՝ 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Ձախ էկրանը՝ 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Աջ էկրանը՝ լիաէկրան"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Հավելվածները տեղերով փոխել"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Վերևի էկրանը՝ լիաէկրան"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Վերևի էկրանը՝ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Վերևի էկրանը՝ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Վերականգնել"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ամրացնել ձախ կողմում"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ամրացնել աջ կողմում"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ձգել հավելվածի պատուհանը դեպի ձախ"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ձգել հավելվածի պատուհանը դեպի աջ"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Ծավալել կամ վերականգնել պատուհանի չափսը"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Մտնել էկրանի տրոհման ռեժիմ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Մտնել համակարգչի ռեժիմ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ձգել պատուհանը դեպի ձախ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ձգել պատուհանը դեպի աջ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Ծավալել կամ վերականգնել պատուհանի չափսը"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Ծավալել կամ վերականգնել պատուհանի չափսը"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Ծալել հավելվածի պատուհանը"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Բացել կարգավորումներն ըստ կանխադրման"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Ընտրեք՝ ինչպես բացել այս հավելվածի վեբ հղումները"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Հավելվածում"</string>
diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml
index 813e978..09ce525 100644
--- a/libs/WindowManager/Shell/res/values-in/strings.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Kiri 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Kiri 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Layar penuh di kanan"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Ganti Aplikasi"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Layar penuh di atas"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Atas 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Atas 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Pulihkan"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Maksimalkan ke kiri"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Maksimalkan ke kanan"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ubah ukuran jendela aplikasi ke kiri"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ubah ukuran jendela aplikasi ke kanan"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimalkan atau pulihkan ukuran jendela"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Masuk ke mode layar terpisah"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Masuk ke mode windowing desktop"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ubah ukuran jendela ke kiri"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ubah ukuran jendela ke kanan"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimalkan atau pulihkan ukuran jendela"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimalkan atau pulihkan ukuran jendela"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimalkan jendela aplikasi"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Buka dengan setelan default"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Pilih cara membuka link web untuk aplikasi ini"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Di aplikasi"</string>
diff --git a/libs/WindowManager/Shell/res/values-is/strings.xml b/libs/WindowManager/Shell/res/values-is/strings.xml
index 98d6809..61c1d0e 100644
--- a/libs/WindowManager/Shell/res/values-is/strings.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Vinstri 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Vinstri 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Hægri á öllum skjánum"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Skipta á milli forrita"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Efri á öllum skjánum"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Efri 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Efri 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Endurheimta"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Smella til vinstri"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Smella til hægri"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Breyta stærð forritsglugga til vinstri"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Breyta stærð forritsglugga til hægri"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Hámarka eða endurheimta stærð glugga"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Skipta skjánum"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Opna gluggastillingu í tölvu"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Breyta stærð glugga til vinstri"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Breyta stærð glugga til hægri"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Hámarka eða endurheimta stærð glugga"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Hámarka eða endurheimta stærð glugga"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Lágmarka stærð forritsglugga"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Stillingar sjálfvirkrar opnunar"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Veldu hvernig veftenglar opnast í forritinu"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Í forritinu"</string>
diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml
index 4217e8d..fab259e 100644
--- a/libs/WindowManager/Shell/res/values-it/strings.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Schermata sinistra al 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Schermata sinistra al 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Schermata destra a schermo intero"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Scambia app"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Schermata superiore a schermo intero"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Schermata superiore al 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Schermata superiore al 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Ripristina"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Aggancia a sinistra"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Aggancia a destra"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ridimensiona la finestra dell\'app a sinistra"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ridimensiona la finestra dell\'app a destra"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Ingrandisci o ripristina le dimensioni della finestra"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Attiva la modalità schermo diviso"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Attiva la modalità finestre del desktop"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ridimensiona la finestra a sinistra"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ridimensiona la finestra a destra"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Ingrandisci o ripristina le dimensioni della finestra"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Ingrandisci o ripristina le dimensioni della finestra"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Riduci a icona la finestra dell\'app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Apri in base alle impostazioni predefinite"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Scegli come aprire i link web per questa app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"All\'interno dell\'app"</string>
diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml
index 1cd89a6..b164b11 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"שמאלה 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"שמאלה 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"מסך ימני מלא"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"מעבר בין אפליקציות"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"מסך עליון מלא"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"עליון 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"עליון 50%"</string>
@@ -130,7 +129,7 @@
     <string name="open_in_app_text" msgid="2874590745116268525">"פתיחה באפליקציה"</string>
     <string name="new_window_text" msgid="6318648868380652280">"חלון חדש"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"ניהול החלונות"</string>
-    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"שינוי של יחס גובה-רוחב"</string>
+    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"שינוי יחס הגובה-רוחב"</string>
     <string name="close_text" msgid="4986518933445178928">"סגירה"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"סגירת התפריט"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"פתיחת התפריט"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"שחזור"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"הצמדה לשמאל"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"הצמדה לימין"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"שינוי הגודל של חלון האפליקציה שמשמאל"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"שינוי הגודל של חלון האפליקציה שמימין"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"שחזור של גודל החלון או הגדלת החלון"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"כניסה למצב מסך מפוצל"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"כניסה למצב שינוי הגודל של החלונות בממשק המחשב"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"שינוי גודל החלון שמשמאל"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"שינוי גודל החלון שמימין"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"שחזור של גודל החלון או הגדלת החלון"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"שחזור של גודל החלון או הגדלת החלון"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"מזעור החלון של האפליקציה"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"הגדרות לפתיחה כברירת מחדל"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"כאן בוחרים איך לפתוח באפליקציה הזו קישורים לדפי אינטרנט"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"באפליקציה"</string>
diff --git a/libs/WindowManager/Shell/res/values-ja/strings.xml b/libs/WindowManager/Shell/res/values-ja/strings.xml
index 3d169e0..3fe2a51 100644
--- a/libs/WindowManager/Shell/res/values-ja/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ja/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"左 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"左 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"右全画面"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"アプリを切り替える"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"上部全画面"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"上 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"上 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"復元"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"左にスナップ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"右にスナップ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"アプリ ウィンドウを左側にサイズ変更する"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"アプリ ウィンドウを右側にサイズ変更する"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ウィンドウを最大化する、またはウィンドウを元のサイズに戻す"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"分割画面モードに切り替える"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"デスクトップ ウィンドウ モードに切り替える"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ウィンドウを左側にサイズ変更する"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ウィンドウを右側にサイズ変更する"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ウィンドウを最大化する、またはウィンドウを元のサイズに戻す"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ウィンドウを最大化する、またはウィンドウを元のサイズに戻す"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"アプリ ウィンドウを最小化する"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"デフォルトの設定で開く"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"このアプリのウェブリンクを開く方法を選択"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"アプリ内"</string>
diff --git a/libs/WindowManager/Shell/res/values-ka/strings.xml b/libs/WindowManager/Shell/res/values-ka/strings.xml
index 02e0f32..1be19af 100644
--- a/libs/WindowManager/Shell/res/values-ka/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ka/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"მარცხენა ეკრანი — 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"მარცხენა ეკრანი — 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"მარჯვენა ნაწილის სრულ ეკრანზე გაშლა"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"აპების გადართვა"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ზედა ნაწილის სრულ ეკრანზე გაშლა"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ზედა ეკრანი — 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ზედა ეკრანი — 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"აღდგენა"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"მარცხნივ გადატანა"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"მარჯვნივ გადატანა"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"აპის მარცხენა ფანჯრის ზომის შეცვლა"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"აპის მარჯვენა ფანჯრის ზომის შეცვლა"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ფანჯრის მაქსიმალურ ზომამდე გაზრდა ან აღდგენა"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"გაყოფილი ეკრანის რეჟიმში შესვლა"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"დესკტოპის ფანჯრის რეჟიმში შესვლა"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ფანჯრის ზომის შეცვლა მარცხნივ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ფანჯრის ზომის შეცვლა მარჯვნივ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ფანჯრის მაქსიმალურ ზომამდე გაზრდა ან აღდგენა"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ფანჯრის მაქსიმალურ ზომამდე გაზრდა ან აღდგენა"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"აპის ფანჯრის ზომის შემცირება"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"პარამეტრების ნაგულისხმევად გახსნა"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ამ აპისთვის ვებ ბმულების გახსნის წესის არჩევა"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"აპში"</string>
diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml
index 61c331d..5bd8519 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50% сол жақта"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30% сол жақта"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Оң жағын толық экранға шығару"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Қолданбаларды ауыстыру"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Жоғарғы жағын толық экранға шығару"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70% жоғарғы жақта"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% жоғарғы жақта"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Қалпына келтіру"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Солға тіркеу"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Оңға тіркеу"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Қолданба терезесінің өлшемін сол жақтан өзгерту"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Қолданба терезесінің өлшемін оң жақтан өзгерту"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Терезе өлшемін ұлғайту не қалпына келтіру"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Экранды бөлу режиміне өту"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Жұмыс үстелінің терезе режиміне өту"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Терезе өлшемін сол жаққа өзгерту"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Терезе өлшемін оң жаққа өзгерту"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Терезе өлшемін ұлғайту не қалпына келтіру"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Терезе өлшемін ұлғайту не қалпына келтіру"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Қолданба терезесін кішірейту"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Әдепкісінше ашу параметрлері"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Осы қолданбадағы веб-сілтемелерді ашу жолын таңдаңыз"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Қолданбада"</string>
diff --git a/libs/WindowManager/Shell/res/values-km/strings.xml b/libs/WindowManager/Shell/res/values-km/strings.xml
index 4ab4a64..f511897 100644
--- a/libs/WindowManager/Shell/res/values-km/strings.xml
+++ b/libs/WindowManager/Shell/res/values-km/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ឆ្វេង 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ឆ្វេង 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"អេក្រង់ពេញខាងស្តាំ"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ប្ដូរកម្មវិធី"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"អេក្រង់ពេញខាងលើ"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ខាងលើ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ខាងលើ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ស្ដារ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ផ្លាស់ទីទៅឆ្វេង"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ផ្លាស់ទីទៅស្ដាំ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ប្ដូរទំហំវិនដូកម្មវិធីទៅឆ្វេង"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ប្ដូរទំហំវិនដូកម្មវិធីទៅស្ដាំ"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ចូលទៅមុខងារ​បំបែក​អេក្រង់"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ចូលទៅមុខងារវិនដូកុំព្យូទ័រ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ប្ដូរទំហំវិនដូទៅឆ្វេង"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ប្ដូរទំហំវិនដូទៅស្ដាំ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"បង្រួមវិនដូកម្មវិធី"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ការកំណត់បើកតាមលំនាំដើម"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ជ្រើសរើសរបៀបបើកតំណបណ្ដាញសម្រាប់កម្មវិធីនេះ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"នៅក្នុងកម្មវិធី"</string>
diff --git a/libs/WindowManager/Shell/res/values-kn/strings.xml b/libs/WindowManager/Shell/res/values-kn/strings.xml
index c4ce890..3bd5527 100644
--- a/libs/WindowManager/Shell/res/values-kn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kn/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50% ಎಡಕ್ಕೆ"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30% ಎಡಕ್ಕೆ"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"ಬಲ ಫುಲ್ ಸ್ಕ್ರೀನ್"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ಆ್ಯಪ್‌ಗಳನ್ನು ಸ್ವ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ಮೇಲಿನ ಫುಲ್ ಸ್ಕ್ರೀನ್"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70% ಮೇಲಕ್ಕೆ"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% ಮೇಲಕ್ಕೆ"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ಮರುಸ್ಥಾಪಿಸಿ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ಎಡಕ್ಕೆ ಸ್ನ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ಬಲಕ್ಕೆ ಸ್ನ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ಆ್ಯಪ್ ವಿಂಡೋ ಎಡ"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ಆ್ಯಪ್ ವಿಂಡೋ ಬಲ"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಿ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ಡೆಸ್ಕ್‌ಟಾಪ್ ವಿಂಡೋಯಿಂಗ್ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಿ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ವಿಂಡೋವನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ವಿಂಡೋವನ್ನು ಬಲಕ್ಕೆ ಸರಿಸಿ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ಆ್ಯಪ್ ವಿಂಡೋವನ್ನು ಮಿನಿಮೈಜ್ ಮಾಡಿ"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ಡೀಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಂದ ತೆರೆಯಿರಿ"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ಈ ಆ್ಯಪ್‌ಗೆ ವೆಬ್ ಲಿಂಕ್‌ಗಳನ್ನು ಹೇಗೆ ತೆರೆಯಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ಆ್ಯಪ್‌ನಲ್ಲಿ"</string>
diff --git a/libs/WindowManager/Shell/res/values-ko/strings.xml b/libs/WindowManager/Shell/res/values-ko/strings.xml
index 13c7009..65add57 100644
--- a/libs/WindowManager/Shell/res/values-ko/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ko/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"왼쪽 화면 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"왼쪽 화면 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"오른쪽 화면 전체화면"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"앱 전환"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"위쪽 화면 전체화면"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"위쪽 화면 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"위쪽 화면 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"복원"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"왼쪽으로 맞추기"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"오른쪽으로 맞추기"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"앱 창 크기 왼쪽으로 조절"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"앱 창 크기 오른쪽으로 조절"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"창 최대화 또는 크기 복원"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"화면 분할 모드 시작"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"데스크톱 창 모드 시작"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"창 크기 왼쪽으로 조절"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"창 크기 오른쪽으로 조절"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"창 최대화 또는 크기 복원"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"창 최대화 또는 크기 복원"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"앱 창 최소화"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"기본값으로 열기 설정"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"이 앱에서 웹 링크를 여는 방법을 선택하세요"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"앱에서"</string>
diff --git a/libs/WindowManager/Shell/res/values-ky/strings.xml b/libs/WindowManager/Shell/res/values-ky/strings.xml
index eb990f1..96c2226 100644
--- a/libs/WindowManager/Shell/res/values-ky/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ky/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Сол жактагы экранды 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Сол жактагы экранды 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Оң жактагы экранды толук экран режимине өткөрүү"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Колдонмолорду алмаштыруу"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Үстүнкү экранды толук экран режимине өткөрүү"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Үстүнкү экранды 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Үстүнкү экранды 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Калыбына келтирүү"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Солго жылдыруу"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Оңго жылдыруу"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Колдонмонун терезесинин өлчөмүн солго өзгөртүү"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Колдонмонун терезесинин өлчөмүн оңго өзгөртүү"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Экранды бөлүү режимине өтүү"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Иш тактанын терезелери режимине өтүү"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Терезенин өлчөмүн солго өзгөртүү"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Терезенин өлчөмүн оңго өзгөртүү"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Колдонмонун терезесин кичирейтүү"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Демейки шартта ачылуучу шилтемелердин параметрлери"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Колдонмодо шилтемелер кантип ачыларын тандаңыз"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Колдонмодо"</string>
diff --git a/libs/WindowManager/Shell/res/values-lo/strings.xml b/libs/WindowManager/Shell/res/values-lo/strings.xml
index 50164c0..9337efc 100644
--- a/libs/WindowManager/Shell/res/values-lo/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lo/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ຊ້າຍ 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ຊ້າຍ 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"ເຕັມໜ້າຈໍຂວາ"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ສະຫຼັບແອັບ"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ເຕັມໜ້າຈໍເທິງສຸດ"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ເທິງສຸດ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ເທິງສຸດ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ກູ້ຄືນ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ແນບຊ້າຍ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ແນບຂວາ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ປັບຂະໜາດໜ້າຈໍແອັບໄປທາງຊ້າຍ"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ປັບຂະໜາດໜ້າຈໍແອັບໄປທາງຂວາ"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ເຂົ້າສູ່ໂໝດແບ່ງໜ້າຈໍ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ເຂົ້າສູ່ໂໝດໜ້າຈໍເດັສທັອບ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ປັບຂະໜາດໜ້າຈໍໄປທາງຊ້າຍ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ປັບຂະໜາດໜ້າຈໍໄປທາງຂວາ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ຫຍໍ້ໜ້າຈໍແອັບ"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ເປີດຕາມການຕັ້ງຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ເລືອກວິທີເປີດລິ້ງເວັບສຳລັບແອັບນີ້"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ໃນແອັບ"</string>
diff --git a/libs/WindowManager/Shell/res/values-lt/strings.xml b/libs/WindowManager/Shell/res/values-lt/strings.xml
index c807971..ede2564 100644
--- a/libs/WindowManager/Shell/res/values-lt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lt/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Kairysis ekranas 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Kairysis ekranas 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Dešinysis ekranas viso ekrano režimu"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Programų keitimas"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Viršutinis ekranas viso ekrano režimu"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Viršutinis ekranas 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Viršutinis ekranas 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Atkurti"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Pritraukti kairėje"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Pritraukti dešinėje"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Pakeisti programos lango dydį kairėje"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Pakeisti programos lango dydį dešinėje"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Padidinti arba atkurti lango dydį"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Išskaidyto ekrano režimo įjungimas"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Įjungti darbalaukio pateikimo lange režimą"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Pakeisti lango dydį kairėje"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Pakeisti lango dydį dešinėje"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Padidinti arba atkurti lango dydį"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Padidinti arba atkurti lango dydį"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Sumažinti programos langą"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Atidaryti pagal numatytuosius nustatymus"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Pasirinkite, kaip atidaryti šios programos žiniatinklio nuorodas"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Programoje"</string>
diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml
index a5547b0..24a969b 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Pa kreisi 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Pa kreisi 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Labā daļa pa visu ekrānu"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Apmainīt lietotnes"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Augšdaļa pa visu ekrānu"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Augšdaļa 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Augšdaļa 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Atjaunot"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Piestiprināt pa kreisi"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Piestiprināt pa labi"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Mainīt lietotnes loga lielumu uz kreiso pusi"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Mainīt lietotnes loga lielumu uz labo pusi"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimizēt vai atjaunot loga lielumu"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Ieslēgt ekrāna sadalīšanas režīmu"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Ieslēgt darbvirsmas logu režīmu"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Mainīt loga lielumu uz kreiso pusi"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Mainīt loga lielumu uz labo pusi"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimizēt vai atjaunot loga lielumu"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimizēt vai atjaunot loga lielumu"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizēt lietotnes logu"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Atvērt pēc noklusējuma iestatījumiem"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Izvēlieties, kā atvērt šajā lietotnē norādītās saites"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Lietotnē"</string>
diff --git a/libs/WindowManager/Shell/res/values-mk/strings.xml b/libs/WindowManager/Shell/res/values-mk/strings.xml
index 01136c3..f7177ac 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Левиот 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Левиот 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Десниот на цел екран"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Менувајте апликации"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Горниот на цел екран"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Горниот 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Горниот 50%"</string>
@@ -135,7 +134,7 @@
     <string name="collapse_menu_text" msgid="7515008122450342029">"Затворете го менито"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Отвори го менито"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Максимизирај го екранот"</string>
-    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Промени ја големината"</string>
+    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Промени ја гол."</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Апликацијата не може да се премести овде"</string>
     <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Реалистично"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Врати"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Врати"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Фотографирај лево"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Фотографирај десно"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Променете ја големината на прозорецот на апликацијата одлево"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Променете ја големината на прозорецот на апликацијата оддесно"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Максимизирајте или вратете ја големината на прозорецот"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Влезете во „Режим на поделен екран“"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Влезете во „Режим со прозорци на работната површина“"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Променете ја големината на прозорецот налево"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Променете ја големината на прозорецот надесно"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Максимизирајте или вратете ја големината на прозорецот"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Максимизирајте или вратете ја големината на прозорецот"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Минимизирајте го прозорецот на апликацијата"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Отвори според стандардните поставки"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Изберете како да се отвораат линковите за апликацијава"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Во апликацијата"</string>
diff --git a/libs/WindowManager/Shell/res/values-ml/strings.xml b/libs/WindowManager/Shell/res/values-ml/strings.xml
index c2a942d..89215b6 100644
--- a/libs/WindowManager/Shell/res/values-ml/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ml/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ഇടത് 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ഇടത് 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"വലത് പൂർണ്ണ സ്ക്രീൻ"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ആപ്പുകൾ സ്വാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"മുകളിൽ പൂർണ്ണ സ്ക്രീൻ"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"മുകളിൽ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"മുകളിൽ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"പുനഃസ്ഥാപിക്കുക"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ഇടതുവശത്തേക്ക് സ്‌നാപ്പ് ചെയ്യുക"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"വലതുവശത്തേക്ക് സ്‌നാപ്പ് ചെയ്യുക"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ഇടത് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"വലത് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"വിന്‍ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"സ്പ്ലിറ്റ് സ്ക്രീൻ മോഡിൽ പ്രവേശിക്കുക"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ഡെസ്ക്ടോപ്പ് വിൻഡോയിംഗ് മോഡിൽ പ്രവേശിക്കുക"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ഇടത്തേക്ക് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"വലത്തേക്ക് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"വിന്‍ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"വിന്‍ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ആപ്പ് വിന്‍ഡോ ചെറുതാക്കുക"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ഡിഫോൾട്ട് ക്രമീകരണം ഉപയോഗിച്ച് തുറക്കുക"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ഈ ആപ്പിനായി വെബ് ലിങ്കുകൾ എങ്ങനെ തുറക്കണമെന്ന് തിരഞ്ഞെടുക്കൂ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ആപ്പിൽ"</string>
diff --git a/libs/WindowManager/Shell/res/values-mn/strings.xml b/libs/WindowManager/Shell/res/values-mn/strings.xml
index 8914e1f..b38026c 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Зүүн 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Зүүн 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Баруун талын бүтэн дэлгэц"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Аппуудыг солих"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Дээд талын бүтэн дэлгэц"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Дээд 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Дээд 50%"</string>
@@ -130,7 +129,7 @@
     <string name="open_in_app_text" msgid="2874590745116268525">"Аппад нээх"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Шинэ цонх"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"Windows-г удирдах"</string>
-    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Харьцааг өөрчлөх"</string>
+    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Аспектын харьцааг өөрчлөх"</string>
     <string name="close_text" msgid="4986518933445178928">"Хаах"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Цэсийг хаах"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Цэсийг нээх"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Сэргээх"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Зүүн тийш зэрэгцүүлэх"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Баруун тийш зэрэгцүүлэх"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Аппын цонхны хэмжээг зүүн тал руу өөрчлөх"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Аппын цонхны хэмжээг баруун тал руу өөрчлөх"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Цонхны хэмжээг томруулах эсвэл сэргээх"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Дэлгэц хуваах горимд орох"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Дэлгэцийн цонхны горимд орох"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Цонхны хэмжээг зүүн тал руу өөрчлөх"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Цонхны хэмжээг баруун тал руу өөрчлөх"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Цонхны хэмжээг томруулах эсвэл сэргээх"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Цонхны хэмжээг томруулах эсвэл сэргээх"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Аппын цонхыг жижгэрүүлэх"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Өгөгдмөл тохиргоогоор нээх"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Энэ аппад веб холбоосыг хэрхэн нээхийг сонгоно уу"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Аппад"</string>
diff --git a/libs/WindowManager/Shell/res/values-mr/strings.xml b/libs/WindowManager/Shell/res/values-mr/strings.xml
index 8159479..d9c1d1f 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"डावी 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"डावी 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"उजवी फुल स्क्रीन"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"अ‍ॅप्स स्वॅप करा"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"शीर्ष फुल स्क्रीन"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"शीर्ष 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"शीर्ष 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"रिस्टोअर करा"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"डावीकडे स्नॅप करा"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"उजवीकडे स्नॅप करा"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"अ‍ॅप विंडोचा डावीकडून आकार बदला"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"अ‍ॅप विंडोचा उजवीकडून आकार बदला"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"स्प्लिट स्क्रीन मोड एंटर करा"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"डेस्कटॉप विंडोइंग मोड एंटर करा"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"अ‍ॅप विंडोचा डावीकडे आकार बदला"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"अ‍ॅप विंडोचा उजवीकडे आकार बदला"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"अ‍ॅप विंडो लहान करा"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"बाय डीफॉल्ट सेटिंग्ज उघडा"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"या अ‍ॅपसाठीच्या वेब लिंक कशा उघडाव्यात हे निवडा"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ॲपमध्ये"</string>
diff --git a/libs/WindowManager/Shell/res/values-ms/strings.xml b/libs/WindowManager/Shell/res/values-ms/strings.xml
index 56b2c2c..a54ef14 100644
--- a/libs/WindowManager/Shell/res/values-ms/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ms/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Kiri 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Kiri 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Skrin penuh kanan"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Tukar Apl"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Skrin penuh atas"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Atas 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Atas 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Pulihkan"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Autojajar ke kiri"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Autojajar ke kanan"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Butang kiri ubah saiz tetingkap apl"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Butang kanan ubah saiz tetingkap apl"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimumkan atau pulihkan saiz tetingkap"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Masuki mod skrin pisah"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Masuki mod tetingkap desktop"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ubah saiz tetingkap ke sebelah kiri"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ubah saiz tetingkap ke sebelah kanan"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimumkan atau pulihkan saiz tetingkap"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimumkan atau pulihkan saiz tetingkap"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimumkan tetingkap apl"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Buka tetapan secara lalai"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Pilih cara membuka pautan web untuk apl ini"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Pada apl"</string>
diff --git a/libs/WindowManager/Shell/res/values-my/strings.xml b/libs/WindowManager/Shell/res/values-my/strings.xml
index b749b67..1f4db6d 100644
--- a/libs/WindowManager/Shell/res/values-my/strings.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ဘယ်ဘက် မျက်နှာပြင် ၅၀%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ဘယ်ဘက် မျက်နှာပြင် ၃၀%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"ညာဘက် မျက်နှာပြင်အပြည့်"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"အက်ပ်ပြောင်းရန်"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"အပေါ်ဘက် မျက်နှာပြင်အပြည့်"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"အပေါ်ဘက် မျက်နှာပြင် ၇၀%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"အပေါ်ဘက် မျက်နှာပြင် ၅၀%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ပြန်ပြောင်းရန်"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ဘယ်တွင် ချဲ့ရန်"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ညာတွင် ချဲ့ရန်"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"အက်ပ်ဝင်းဒိုး ဘယ်ဘက်ကို အရွယ်ပြင်ရန်"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"အက်ပ်ဝင်းဒိုး ညာဘက်ကို အရွယ်ပြင်ရန်"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"မျက်နှာပြင်ခွဲပြခြင်းမုဒ်သို့ ဝင်ရန်"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ဒက်စ်တော့ ဝင်းဒိုးမုဒ်သို့ ဝင်ရန်"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ဝင်းဒိုးကို ဘယ်ဘက်သို့ အရွယ်ပြင်ရန်"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ဝင်းဒိုးကို ညာဘက်သို့ အရွယ်ပြင်ရန်"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"အက်ပ်ဝင်းဒိုးကို ချုံ့ရန်"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"မူရင်းဆက်တင်ဖြင့် ဖွင့်ရန်"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ဤအက်ပ်အတွက် ဝဘ်လင့်ခ်များ မည်သို့ဖွင့်မည်ကို ရွေးပါ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"အက်ပ်တွင်"</string>
diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml
index 86aa196..586a50f 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Sett størrelsen på den venstre delen av skjermen til 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Sett størrelsen på den venstre delen av skjermen til 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Utvid den høyre delen av skjermen til hele skjermen"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Bytt apper"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Utvid den øverste delen av skjermen til hele skjermen"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Sett størrelsen på den øverste delen av skjermen til 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Sett størrelsen på den øverste delen av skjermen til 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Gjenopprett"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Fest til venstre"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Fest til høyre"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Endre størrelsen på appvinduet til venstre"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Endre størrelsen på appvinduet til høyre"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimer eller gjenopprett størrelsen på vinduet"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Start modusen for delt skjerm"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Start vindusmodus for skrivebordet"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Endre størrelsen på vinduet til venstre"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Endre størrelsen på vinduet til høyre"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimer eller gjenopprett størrelsen på vinduet"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimer eller gjenopprett størrelsen på vinduet"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimer appvinduet"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Innstillinger for åpning som standard"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Velg hvordan nettlinker skal åpnes for denne appen"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"I appen"</string>
diff --git a/libs/WindowManager/Shell/res/values-ne/strings.xml b/libs/WindowManager/Shell/res/values-ne/strings.xml
index bc45b0f..f66fb1d 100644
--- a/libs/WindowManager/Shell/res/values-ne/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ne/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"बायाँ भाग ५०%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"बायाँ भाग ३०%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"दायाँ भाग फुल स्क्रिन"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"एपहरू अदलबदल गर्नुहोस्"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"माथिल्लो भाग फुल स्क्रिन"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"माथिल्लो भाग ७०%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"माथिल्लो भाग ५०%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"रिस्टोर गर्नुहोस्"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"बायाँतिर स्न्याप गर्नुहोस्"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"दायाँतिर स्न्याप गर्नुहोस्"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"एपको विन्डोको आकार बदलेर बायाँतिर लैजानुहोस्"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"एपको विन्डोको आकार बदलेर दायाँतिर लैजानुहोस्"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"स्प्लिट स्क्रिन मोड प्रयोग गर्नुहोस्"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"डेस्कटप विन्डोइङ मोड प्रयोग गर्नुहोस्"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"विन्डोको आकार बदलेर बायाँतिर लैजानुहोस्"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"विन्डोको आकार बदलेर दायाँतिर लैजानुहोस्"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"एपको विन्डो मिनिमाइज गर्नुहोस्"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"डिफल्ट सेटिङअनुसार खोल्नुहोस्"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"यो एपका वेब लिंकहरू खोल्ने तरिका छनौट गर्नुहोस्"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"एपमा"</string>
diff --git a/libs/WindowManager/Shell/res/values-nl/strings.xml b/libs/WindowManager/Shell/res/values-nl/strings.xml
index 80c588f..20bc65a 100644
--- a/libs/WindowManager/Shell/res/values-nl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nl/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Linkerscherm 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Linkerscherm 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Rechterscherm op volledig scherm"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Apps wisselen"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Bovenste scherm op volledig scherm"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Bovenste scherm 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Bovenste scherm 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Herstellen"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Links uitlijnen"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Rechts uitlijnen"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Formaat van app-venster naar links aanpassen"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Formaat van app-venster naar rechts aanpassen"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Formaat van venster maximaliseren of herstellen"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Modus voor gesplitst scherm openen"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Modus voor desktopvensterfuncties openen"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Formaat van venster naar links aanpassen"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Formaat van venster naar rechts aanpassen"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Formaat van venster maximaliseren of herstellen"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Formaat van venster maximaliseren of herstellen"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"App-venster minimaliseren"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Instellingen voor Standaard openen"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Kies hoe je weblinks voor deze app wilt openen"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"In de app"</string>
diff --git a/libs/WindowManager/Shell/res/values-or/strings.xml b/libs/WindowManager/Shell/res/values-or/strings.xml
index b16092e..edb5208 100644
--- a/libs/WindowManager/Shell/res/values-or/strings.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ବାମ ପଟକୁ 50% କରନ୍ତୁ"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ବାମ ପଟେ 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"ଡାହାଣ ପଟକୁ ପୂର୍ଣ୍ଣ ସ୍କ୍ରୀନ୍‍ କରନ୍ତୁ"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ଆପ୍ସ ସ୍ୱାପ କରନ୍ତୁ"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ଉପର ଆଡ଼କୁ ପୂର୍ଣ୍ଣ ସ୍କ୍ରୀନ୍‍ କରନ୍ତୁ"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ଉପର ଆଡ଼କୁ 70% କରନ୍ତୁ"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ଉପର ଆଡ଼କୁ 50% କରନ୍ତୁ"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ବାମରେ ସ୍ନାପ କରନ୍ତୁ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ଡାହାଣରେ ସ୍ନାପ କରନ୍ତୁ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ଆପ ୱିଣ୍ଡୋ ରିସାଇଜ କରିବା ପାଇଁ ବାମ ବଟନ"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ଆପ ୱିଣ୍ଡୋ ରିସାଇଜ କରିବା ପାଇଁ ଡାହାଣ ବଟନ"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ ମୋଡରେ ପ୍ରବେଶ କରନ୍ତୁ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ଡେସ୍କଟପ ୱିଣ୍ଡୋଇଂ ମୋଡରେ ପ୍ରବେଶ କରନ୍ତୁ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ବାମପଟକୁ ୱିଣ୍ଡୋ ରିସାଇଜ କରନ୍ତୁ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ଡାହାଣପଟକୁ ୱିଣ୍ଡୋ ରିସାଇଜ କରନ୍ତୁ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ଆପ ୱିଣ୍ଡୋକୁ ମିନିମାଇଜ କରନ୍ତୁ"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ଡିଫଲ୍ଟ ସେଟିଂସକୁ ଖୋଲନ୍ତୁ"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ଏହି ଆପ ପାଇଁ ୱେବ ଲିଙ୍କଗୁଡ଼ିକୁ କିପରି ଖୋଲିବେ, ତାହା ବାଛନ୍ତୁ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ଆପରେ"</string>
diff --git a/libs/WindowManager/Shell/res/values-pa/strings.xml b/libs/WindowManager/Shell/res/values-pa/strings.xml
index 6015e93d..29de4c4 100644
--- a/libs/WindowManager/Shell/res/values-pa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pa/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ਖੱਬੇ 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ਖੱਬੇ 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"ਸੱਜੇ ਪੂਰੀ ਸਕ੍ਰੀਨ"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ਐਪਾਂ ਨੂੰ ਸਵੈਪ ਕਰੋ"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ਉੱਪਰ ਪੂਰੀ ਸਕ੍ਰੀਨ"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ਉੱਪਰ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ਉੱਪਰ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ਮੁੜ-ਬਹਾਲ ਕਰੋ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ਖੱਬੇ ਪਾਸੇ ਸਨੈਪ ਕਰੋ"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"ਸੱਜੇ ਪਾਸੇ ਸਨੈਪ ਕਰੋ"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ਐਪ ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਬਦਲ ਕੇ ਖੱਬੇ ਪਾਸੇ ਕਰੋ"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ਐਪ ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਬਦਲ ਕੇ ਸੱਜੇ ਪਾਸੇ ਕਰੋ"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਵਧਾਓ ਜਾਂ ਮੁੜ-ਬਹਾਲ ਕਰੋ"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਵੋ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ਡੈਸਕਟਾਪ ਵਿੰਡੋ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਵੋ"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਬਦਲ ਕੇ ਖੱਬੇ ਪਾਸੇ ਕਰੋ"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਬਦਲ ਕੇ ਸੱਜੇ ਪਾਸੇ ਕਰੋ"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਵਧਾਓ ਜਾਂ ਮੁੜ-ਬਹਾਲ ਕਰੋ"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ਵਿੰਡੋ ਦਾ ਆਕਾਰ ਵਧਾਓ ਜਾਂ ਮੁੜ-ਬਹਾਲ ਕਰੋ"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ਐਪ ਵਿੰਡੋ ਨੂੰ ਛੋਟਾ ਕਰੋ"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਸੈਟਿੰਗਾਂ ਮੁਤਾਬਕ ਖੋਲ੍ਹੋ"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ਇਸ ਐਪ ਲਈ ਵੈੱਬ ਲਿੰਕਾਂ ਨੂੰ ਖੋਲ੍ਹਣ ਦਾ ਤਰੀਕਾ ਚੁਣੋ"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ਐਪ ਵਿੱਚ"</string>
diff --git a/libs/WindowManager/Shell/res/values-pl/strings.xml b/libs/WindowManager/Shell/res/values-pl/strings.xml
index d06603f..47ee80e 100644
--- a/libs/WindowManager/Shell/res/values-pl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pl/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50% lewej części ekranu"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30% lewej części ekranu"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Prawa część ekranu na pełnym ekranie"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Zamień aplikacje"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Górna część ekranu na pełnym ekranie"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70% górnej części ekranu"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% górnej części ekranu"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Przywróć"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Przyciągnij do lewej"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Przyciągnij do prawej"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Zmień rozmiar okna aplikacji po lewej"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Zmień rozmiar okna aplikacji po prawej"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Zmaksymalizuj lub przywróć rozmiar okna"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Włącz tryb podzielonego ekranu"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Włącz tryb okien na pulpicie"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Zmień rozmiar okna do lewej"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Zmień rozmiar okna do prawej"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Zmaksymalizuj lub przywróć rozmiar okna"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Zmaksymalizuj lub przywróć rozmiar okna"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Zminimalizuj okno aplikacji"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Ustawienia domyślnego otwierania"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Wybierz, gdzie chcesz otwierać linki z tej aplikacji"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"W aplikacji"</string>
diff --git a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
index d881abab..0a3ea70 100644
--- a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Esquerda a 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Esquerda a 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Lado direito em tela cheia"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Trocar apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Parte superior em tela cheia"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Parte superior a 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Parte superior a 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurar"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ajustar à esquerda"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ajustar à direita"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionar janela do app para a esquerda"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionar janela do app para a direita"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar ou restaurar o tamanho da janela"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Entrar no modo de tela dividida"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Entrar no modo de janela do computador"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionar janela para a esquerda"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionar janela para a direita"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar ou restaurar o tamanho da janela"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizar ou restaurar o tamanho da janela"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizar janela do app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Configurações \"Abrir por padrão\""</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Escolha como abrir links da Web para este app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"No app"</string>
diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
index dcbec86..c9d196b 100644
--- a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"50% no ecrã esquerdo"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"30% no ecrã esquerdo"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Ecrã direito inteiro"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Trocar apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Ecrã superior inteiro"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"70% no ecrã superior"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"50% no ecrã superior"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurar"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Encaixar à esquerda"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Encaixar à direita"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionar janela da app para a esquerda"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionar janela da app para a direita"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar ou restaurar tamanho da janela"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Aceder ao modo de ecrã dividido"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Aceder ao modo de janelas de computador"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionar janela para a esquerda"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionar janela para a direita"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar ou restaurar tamanho da janela"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizar ou restaurar tamanho da janela"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizar janela da app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Definições de Abrir por predefinição"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Escolha como abrir links da Web para esta app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Na app"</string>
diff --git a/libs/WindowManager/Shell/res/values-pt/strings.xml b/libs/WindowManager/Shell/res/values-pt/strings.xml
index d881abab..0a3ea70 100644
--- a/libs/WindowManager/Shell/res/values-pt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Esquerda a 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Esquerda a 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Lado direito em tela cheia"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Trocar apps"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Parte superior em tela cheia"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Parte superior a 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Parte superior a 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restaurar"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ajustar à esquerda"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ajustar à direita"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionar janela do app para a esquerda"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionar janela do app para a direita"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar ou restaurar o tamanho da janela"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Entrar no modo de tela dividida"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Entrar no modo de janela do computador"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionar janela para a esquerda"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionar janela para a direita"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar ou restaurar o tamanho da janela"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizar ou restaurar o tamanho da janela"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizar janela do app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Configurações \"Abrir por padrão\""</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Escolha como abrir links da Web para este app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"No app"</string>
diff --git a/libs/WindowManager/Shell/res/values-ro/strings.xml b/libs/WindowManager/Shell/res/values-ro/strings.xml
index 3039950..a3313b6 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Partea stângă: 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Partea stângă: 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Partea dreaptă pe ecran complet"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Comută între aplicații"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Partea de sus pe ecran complet"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Partea de sus: 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Partea de sus: 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restabilește"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Trage la stânga"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Trage la dreapta"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionează fereastra aplicației la stânga"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionează fereastra aplicației la dreapta"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizează sau restabilește dimensiunea ferestrei"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Accesează modul ecran împărțit"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Accesează modul de windowing pe desktop"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionează fereastra la stânga"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionează fereastra la dreapta"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizează sau restabilește dimensiunea ferestrei"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximizează sau restabilește dimensiunea ferestrei"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizează fereastra aplicației"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Setări de deschidere în mod prestabilit"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Alege modul de deschidere a linkurilor web pentru aplicație"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"În aplicație"</string>
diff --git a/libs/WindowManager/Shell/res/values-ru/strings.xml b/libs/WindowManager/Shell/res/values-ru/strings.xml
index 1fc0e6f..5b20b2b 100644
--- a/libs/WindowManager/Shell/res/values-ru/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ru/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Левый на 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Левый на 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Правый во весь экран"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Поменять приложения местами"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Верхний во весь экран"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Верхний на 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Верхний на 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Восстановить"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Привязать слева"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Привязать справа"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Растянуть окно приложения влево"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Растянуть окно приложения вправо"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Развернуть окно или восстановить его размер"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Перейти в режим разделения экрана"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Перейти в режим компьютера"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Растянуть окно влево"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Растянуть окно вправо"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Развернуть окно или восстановить его размер"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Развернуть окно или восстановить его размер"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Свернуть окно приложения"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Настройки, регулирующие, как по умолчанию открываются ссылки"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Выберите, где будут открываться ссылки из этого приложения"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"В приложении"</string>
diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml
index f1116c0..f0ef1d1 100644
--- a/libs/WindowManager/Shell/res/values-si/strings.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"වම් 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"වම් 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"දකුණු පූර්ණ තිරය"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"යෙදුම් හුවමාරු කරන්න"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ඉහළම පූර්ණ තිරය"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ඉහළම 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ඉහළම 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ප්‍රතිසාධනය කරන්න"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"වමට ස්නැප් කරන්න"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"දකුණට ස්නැප් කරන්න"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"යෙදුම් කවුළුව වමට ප්‍රතිප්‍රමාණ කරන්න"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"යෙදුම් කවුළුව දකුණට ප්‍රතිප්‍රමාණ කරන්න"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"කවුළු ප්‍රමාණය උපරිම කරන්න හෝ ප්‍රතිසාධනය කරන්න"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"බෙදුම් තිර මාදිලියට ඇතුළු වන්න"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ඩෙස්ක්ටොප කවුළුකරණ මාදිලියට ඇතුළු වන්න"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"කවුළුව වමට ප්‍රතිප්‍රමාණ කරන්න"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"කවුළුව දකුණට ප්‍රතිප්‍රමාණ කරන්න"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"කවුළු ප්‍රමාණය උපරිම කරන්න හෝ ප්‍රතිසාධනය කරන්න"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"කවුළු ප්‍රමාණය උපරිම කරන්න හෝ ප්‍රතිසාධනය කරන්න"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"යෙදුම් කවුළුව අවම කරන්න"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"පෙරනිමි සැකසීම් මඟින් විවෘත කරන්න"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"මෙම යෙදුම සඳහා වෙබ් සබැඳි විවෘත කරන ආකාරය තෝරා ගන්න"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"යෙදුම තුළ"</string>
diff --git a/libs/WindowManager/Shell/res/values-sk/strings.xml b/libs/WindowManager/Shell/res/values-sk/strings.xml
index a6c7343..688c217 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Ľavá – 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Ľavá – 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Pravá– na celú obrazovku"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Vymeniť aplikácie"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Horná – na celú obrazovku"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Horná – 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Horná – 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Obnoviť"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Prichytiť vľavo"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Prichytiť vpravo"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Zmeniť veľkosť okna aplikácie vľavo"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Zmeniť veľkosť okna aplikácie vpravo"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximalizovať alebo obnoviť veľkosť okna"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Spustiť režim rozdelenej obrazovky"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Prejsť na režim okien na pracovnej ploche"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Zmeniť veľkosť okna vľavo"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Zmeniť veľkosť okna vpravo"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximalizovať alebo obnoviť veľkosť okna"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximalizovať alebo obnoviť veľkosť okna"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimalizovať okno aplikácie"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Otvárať podľa predvolených nastavení"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Vyberte, ako sa majú v tejto aplikácii otvárať webové odkazy"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"V aplikácii"</string>
diff --git a/libs/WindowManager/Shell/res/values-sl/strings.xml b/libs/WindowManager/Shell/res/values-sl/strings.xml
index 02ced0d..69eb3e3 100644
--- a/libs/WindowManager/Shell/res/values-sl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sl/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Levi 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Levi 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Desni v celozaslonski način"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Zamenjava aplikacij"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Zgornji v celozaslonski način"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Zgornji 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Zgornji 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Obnovi"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Pripni levo"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Pripni desno"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Sprememba velikosti okna aplikacije na levi"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Sprememba velikosti okna aplikacije na desni"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Povečava ali obnovitev velikosti okna"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Vklop načina razdeljenega zaslona"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Vklop načina prikaza v oknu na namizju"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Sprememba velikosti okna na levi"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Sprememba velikosti okna na desni"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Povečava ali obnovitev velikosti okna"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Povečava ali obnovitev velikosti okna"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Pomanjšava okna aplikacije"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Nastavitve privzetega odpiranja"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Izberite način odpiranja spletnih povezav za to aplikacijo"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"V aplikaciji"</string>
diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml
index fe03feb..fcb0aa6 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Majtas 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Majtas 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Ekrani i plotë djathtas"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Ndërro aplikacionet"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Ekrani i plotë lart"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Lart 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Lart 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Restauro"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Zhvendos majtas"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Zhvendos djathtas"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ndrysho përmasat e dritares së aplikacionit majtas"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ndrysho përmasat e dritares së aplikacionit djathtas"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimizo ose restauro madhësinë e dritares"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Hyr në modalitetin e ekranit të ndarë"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Hyr në modalitetin e dritareve në desktop"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ndrysho përmasat e dritares në të majtë"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ndrysho përmasat e dritares në të djathtë"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimizo ose restauro madhësinë e dritares"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maksimizo ose restauro madhësinë e dritares"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimizo dritaren e aplikacionit"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Hap sipas cilësimeve të parazgjedhura"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Zgjidh si do t\'i hapësh lidhjet e uebit për këtë aplikacion"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Në aplikacion"</string>
diff --git a/libs/WindowManager/Shell/res/values-sr/strings.xml b/libs/WindowManager/Shell/res/values-sr/strings.xml
index e3cb1f3..6a2ffcd 100644
--- a/libs/WindowManager/Shell/res/values-sr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sr/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Леви екран 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Леви екран 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Режим целог екрана за доњи екран"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Замените места апликацијама"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Режим целог екрана за горњи екран"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Горњи екран 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Горњи екран 50%"</string>
@@ -126,11 +125,11 @@
     <string name="float_button_text" msgid="9221657008391364581">"Плутајуће"</string>
     <string name="select_text" msgid="5139083974039906583">"Изаберите"</string>
     <string name="screenshot_text" msgid="1477704010087786671">"Снимак екрана"</string>
-    <string name="open_in_browser_text" msgid="9181692926376072904">"Отворите у прегледачу"</string>
+    <string name="open_in_browser_text" msgid="9181692926376072904">"Отвори у прегледачу"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"Отворите у апликацији"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Нови прозор"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"Управљајте прозорима"</string>
-    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Промените размеру"</string>
+    <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Промени размеру"</string>
     <string name="close_text" msgid="4986518933445178928">"Затворите"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Затворите мени"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Отворите мени"</string>
@@ -139,30 +138,20 @@
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Апликација не може да се премести овде"</string>
     <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Имерзивне"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Врати"</string>
-    <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Увећајте"</string>
+    <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Увећај"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Вратите"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Прикачите лево"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Прикачите десно"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Промените величину прозора апликације налево"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Промените величину прозора апликације надесно"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Увећајте или вратите величину прозора"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Уђите у режим подељеног екрана"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Уђите у режим прозора на рачунару"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Промените величину прозора налево"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Промените величину прозора надесно"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Увећајте или вратите величину прозора"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Увећајте или вратите величину прозора"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Умањите прозор апликације"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Подешавање Подразумевано отварај"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Одаберите начин отварања веб-линкова за ову апликацију"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"У апликацији"</string>
diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml
index 29f4aab..a9df476 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Vänster 50 %"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Vänster 30 %"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Helskärm på höger skärm"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Byt appar"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Helskärm på övre skärm"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Övre 70 %"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Övre 50 %"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Återställ"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Fäst till vänster"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Fäst till höger"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ändra storlek på appfönstret åt vänster"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ändra storlek på appfönstret åt höger"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximera eller återställ fönsterstorleken"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Starta läget för delad skärm"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Starta datorläget"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ändra storlek på fönstret åt vänster"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ändra storlek på fönstret åt höger"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximera eller återställ fönsterstorleken"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Maximera eller återställ fönsterstorleken"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Minimera appfönstret"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Inställningar för Öppna som standard"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Välj hur webblänkar ska öppnas för den här appen"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"I appen"</string>
diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml
index 6471e3b..a3c9a0d 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Kushoto 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Kushoto 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Skrini nzima ya kulia"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Badilisha Programu"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Skrini nzima ya juu"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Juu 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Juu 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Rejesha"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Telezesha kushoto"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Telezesha kulia"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Badilisha ukubwa wa dirisha la programu kushoto"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Badilisha ukubwa wa dirisha la programu kulia"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Panua au urejeshe ukubwa wa dirisha"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Ingia katika hali ya skrini iliyogawanywa"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Ingia katika hali ya madirisha ya kompyuta ya mezani"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Badilisha ukubwa wa dirisha kushoto"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Badilisha ukubwa wa dirisha kulia"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Panua au urejeshe ukubwa wa dirisha"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Panua au urejeshe ukubwa wa dirisha"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Punguza dirisha la programu"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Fungua kwa mipangilio chaguomsingi"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Chagua jinsi ya kufungua viungo vya wavuti vya programu hii"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Kwenye programu"</string>
diff --git a/libs/WindowManager/Shell/res/values-ta/strings.xml b/libs/WindowManager/Shell/res/values-ta/strings.xml
index 03e55c8..b1b8c7f 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"இடது புறம் 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"இடது புறம் 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"வலது புறம் முழுத் திரை"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ஆப்ஸை மாற்றும்"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"மேற்புறம் முழுத் திரை"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"மேலே 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"மேலே 50%"</string>
@@ -126,7 +125,7 @@
     <string name="float_button_text" msgid="9221657008391364581">"மிதக்கும் சாளரம்"</string>
     <string name="select_text" msgid="5139083974039906583">"தேர்ந்தெடுக்கும்"</string>
     <string name="screenshot_text" msgid="1477704010087786671">"ஸ்கிரீன்ஷாட்"</string>
-    <string name="open_in_browser_text" msgid="9181692926376072904">"உலாவியில் திறக்கும்"</string>
+    <string name="open_in_browser_text" msgid="9181692926376072904">"பிரவுசரில் திற"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"ஆப்ஸில் திறக்கும்"</string>
     <string name="new_window_text" msgid="6318648868380652280">"புதிய சாளரம்"</string>
     <string name="manage_windows_text" msgid="5567366688493093920">"சாளரங்களை நிர்வகிக்கலாம்"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"மீட்டெடுக்கும்"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"இடதுபுறம் நகர்த்தும்"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"வலதுபுறம் நகர்த்தும்"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ஆப்ஸ் சாளரத்தின் இடதுபுறத்தில் அளவை மாற்றும்"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ஆப்ஸ் சாளரத்தின் வலதுபுறத்தில் அளவை மாற்றும்"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"திரைப் பிரிப்புப் பயன்முறையில் உள்நுழையும்"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"டெஸ்க்டாப் சாளரப் பயன்முறையில் உள்நுழையும்"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"சாளரத்தை இடதுபுறமாக அளவு மாற்றும்"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"சாளரத்தை வலதுபுறமாக அளவு மாற்றும்"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ஆப்ஸ் சாளரத்தைச் சிறிதாக்கும்"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"இயல்பாக அமைப்புகளைத் திறக்கும்"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"இந்த ஆப்ஸில் வலை இணைப்புகளைத் திறக்கும் வழிமுறையைத் தேர்வுசெய்யுங்கள்"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ஆப்ஸில்"</string>
diff --git a/libs/WindowManager/Shell/res/values-te/strings.xml b/libs/WindowManager/Shell/res/values-te/strings.xml
index af8abaa..932f831 100644
--- a/libs/WindowManager/Shell/res/values-te/strings.xml
+++ b/libs/WindowManager/Shell/res/values-te/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ఎడమవైపు 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ఎడమవైపు 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"కుడివైపు ఫుల్-స్క్రీన్‌"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"యాప్‌లను మార్చండి"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"ఎగువ ఫుల్-స్క్రీన్‌"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ఎగువ 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ఎగువ 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"రీస్టోర్ చేయండి"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"ఎడమ వైపున స్నాప్ చేయండి"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"కుడి వైపున స్నాప్ చేయండి"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"యాప్ విండో ఎడమ వైపు సైజ్ మార్చండి"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"యాప్ విండో కుడి వైపు సైజ్ మార్చండి"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"విండో సైజ్‌ను మ్యాగ్జిమైజ్ చేయండి లేదా రీస్టోర్ చేయండి"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"స్ప్లిట్ స్క్రీన్ మోడ్‌ను ఉపయోగించండి"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"డెస్క్‌టాప్ విండోయింగ్ మోడ్‌ను ఎంటర్ చేయండి"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"విండో ఎడమ వైపునకు సైజ్‌ను మార్చండి"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"విండో కుడి వైపునకు సైజ్‌ను మార్చండి"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"విండో సైజ్‌ను మ్యాగ్జిమైజ్ చేయండి లేదా రీస్టోర్ చేయండి"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"విండో సైజ్‌ను మ్యాగ్జిమైజ్ చేయండి లేదా రీస్టోర్ చేయండి"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"యాప్ విండోను కుదించండి"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"ఆటోమేటిక్ సెట్టింగ్‌ల ద్వారా తెరవండి"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"ఈ యాప్‌నకు సంబంధించిన వెబ్ లింక్‌లను ఎలా తెరవాలో ఎంచుకోండి"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"యాప్‌లో"</string>
diff --git a/libs/WindowManager/Shell/res/values-th/strings.xml b/libs/WindowManager/Shell/res/values-th/strings.xml
index 565b4ee..e157474 100644
--- a/libs/WindowManager/Shell/res/values-th/strings.xml
+++ b/libs/WindowManager/Shell/res/values-th/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"ซ้าย 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"ซ้าย 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"เต็มหน้าจอทางขวา"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"สลับแอป"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"เต็มหน้าจอด้านบน"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"ด้านบน 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"ด้านบน 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"คืนค่า"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"จัดพอดีกับทางซ้าย"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"จัดพอดีกับทางขวา"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ปรับขนาดหน้าต่างแอปไปทางซ้าย"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ปรับขนาดหน้าต่างแอปไปทางขวา"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ขยายหรือคืนค่าขนาดหน้าต่าง"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"เข้าสู่โหมดแยกหน้าจอ"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"เข้าสู่โหมดหน้าต่างเดสก์ท็อป"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ปรับขนาดหน้าต่างไปทางซ้าย"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ปรับขนาดหน้าต่างไปทางขวา"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ขยายหรือคืนค่าขนาดหน้าต่าง"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ขยายหรือคืนค่าขนาดหน้าต่าง"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ย่อหน้าต่างแอป"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"เปิดตามการตั้งค่าเริ่มต้น"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"เลือกวิธีเปิดเว็บลิงก์สำหรับแอปนี้"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ในแอป"</string>
diff --git a/libs/WindowManager/Shell/res/values-tl/strings.xml b/libs/WindowManager/Shell/res/values-tl/strings.xml
index e8cb1d2..7f29704 100644
--- a/libs/WindowManager/Shell/res/values-tl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tl/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Gawing 50% ang nasa kaliwa"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Gawing 30% ang nasa kaliwa"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"I-full screen ang nasa kanan"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Pagpalitin ang Mga App"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"I-full screen ang nasa itaas"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Gawing 70% ang nasa itaas"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Gawing 50% ang nasa itaas"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"I-restore"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"I-snap pakaliwa"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"I-snap pakanan"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"I-resize pakaliwa ang window ng app"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"I-resize pakanan ang window ng app"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"I-maximize o i-restore ang laki ng window"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Pumunta sa split screen mode"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Pumunta sa desktop windowing mode"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"I-resize pakaliwa ang window"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"I-resize pakanan ang window"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"I-maximize o i-restore ang laki ng window"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"I-maximize o i-restore ang laki ng window"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"I-minimize ang window ng app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Buksan sa pamamagitan ng mga default na setting"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Piliin kung paano magbukas ng web link para sa app na ito"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Sa app"</string>
diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml
index 8d12e54..6a5d1ab 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Solda %50"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Solda %30"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Sağda tam ekran"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Uygulamaların Yerini Değiştir"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Üstte tam ekran"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Üstte %70"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Üstte %50"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Geri yükle"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Sola tuttur"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Sağa tuttur"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Uygulama penceresini sola yeniden boyutlandır"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Uygulama penceresini sağa yeniden boyutlandır"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Bölünmüş ekran moduna gir"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Masaüstü pencereleme moduna gir"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Pencereyi sola yeniden boyutlandır"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Pencereyi sağa yeniden boyutlandır"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Uygulama penceresini küçült"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Varsayılan olarak açma ayarları"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Bu uygulama için web bağlantılarının nasıl açılacağını seçin"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Uygulamada"</string>
diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml
index 66d8a62..7f4e91d 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Ліве вікно на 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Ліве вікно на 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Праве вікно на весь екран"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Поміняти додатки місцями"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Верхнє вікно на весь екран"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Верхнє вікно на 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Верхнє вікно на 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Відновити"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Закріпити ліворуч"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Закріпити праворуч"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Змінити розмір вікна додатка ліворуч"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Змінити розмір вікна додатка праворуч"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Розгорнути вікно або відновити його розмір"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Увімкнути режим розділення екрана"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Увімкнути режим вікон для комп’ютера"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Змінити розмір вікна ліворуч"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Змінити розмір вікна праворуч"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Розгорнути вікно або відновити його розмір"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Розгорнути вікно або відновити його розмір"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Згорнути вікно додатка"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Налаштування \"Відкривати за умовчанням\""</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Виберіть, як відкривати вебпосилання в цьому додатку"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"У додатку"</string>
diff --git a/libs/WindowManager/Shell/res/values-ur/strings.xml b/libs/WindowManager/Shell/res/values-ur/strings.xml
index 653ba0e6..f461d40 100644
--- a/libs/WindowManager/Shell/res/values-ur/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ur/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"بائیں %50"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"بائیں %30"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"دائیں فل اسکرین"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"ایپس سویپ کریں"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"بالائی فل اسکرین"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"اوپر %70"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"اوپر %50"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"بحال کریں"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"دائیں منتقل کریں"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"بائیں منتقل کریں"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"دائیں طرف ایپ ونڈو کا سائز تبدیل کریں"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ایپ ونڈو کا سائز بائیں طرف تبدیل کریں"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"سپلٹ اسکرین موڈ میں داخل ہوں"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"ڈیسک ٹاپ ونڈو وضع میں داخل ہوں"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"دائیں طرف ونڈو کا سائز تبدیل کریں"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ونڈو کا سائز بائیں طرف تبدیل کریں"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"ایپ ونڈو کو چھوٹا کریں"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"بطور ڈیفالٹ ترتیبات کھولیں"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"اس ایپ کے لیے ویب لنکس کھولنے کا طریقہ منتخب کریں"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"ایپ میں"</string>
diff --git a/libs/WindowManager/Shell/res/values-uz/strings.xml b/libs/WindowManager/Shell/res/values-uz/strings.xml
index 63d82bf..7c6a2a2 100644
--- a/libs/WindowManager/Shell/res/values-uz/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uz/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Chapda 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Chapda 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"O‘ngda to‘liq ekran"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Ilovalarni almashtirish"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Tepada to‘liq ekran"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Tepada 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Tepada 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Tiklash"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Chapga tortish"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Oʻngga tortish"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ilova chap oynasi oʻlchamini oʻzgartirish"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ilova oʻng oynasi oʻlchamini oʻzgartirish"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Oyna oʻlchamini kengaytirish yoki asliga qaytarish"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Ajratilgan ekran rejimiga kirish"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Kompyuter rejimiga kirish"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Oyna oʻlchamini chapga oʻzgartirish"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Oyna oʻlchamini oʻngga oʻzgartirish"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Oyna oʻlchamini kengaytirish yoki asliga qaytarish"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Oyna oʻlchamini kengaytirish yoki asliga qaytarish"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Ilova oynasini kichraytirish"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Birlamchi sozlamalar asosida ochish"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Bu ilovalardagi veb havolalar qanday ochilishini tanlang"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Ilovada"</string>
diff --git a/libs/WindowManager/Shell/res/values-vi/strings.xml b/libs/WindowManager/Shell/res/values-vi/strings.xml
index f1b728b..e7cacc3 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Trái 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Trái 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Toàn màn hình bên phải"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Hoán đổi ứng dụng"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Toàn màn hình phía trên"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Trên 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Trên 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Khôi phục"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Di chuyển nhanh sang trái"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Di chuyển nhanh sang phải"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Đổi kích thước và chuyển cửa sổ ứng dụng sang trái"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Đổi kích thước và chuyển cửa sổ ứng dụng sang phải"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Phóng to hoặc khôi phục kích thước cửa sổ"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Mở chế độ chia đôi màn hình"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Mở chế độ cửa sổ trên máy tính"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Đổi kích thước và chuyển cửa sổ sang trái"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Đổi kích thước và chuyển cửa sổ sang phải"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Phóng to hoặc khôi phục kích thước cửa sổ"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Phóng to hoặc khôi phục kích thước cửa sổ"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Thu nhỏ cửa sổ ứng dụng"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Mở các chế độ cài đặt theo mặc định"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Chọn cách mở đường liên kết trang web cho ứng dụng này"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Trong ứng dụng"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
index 5437808..562a0ee0 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"左侧 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"左侧 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"右侧全屏"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"交换应用位置"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"顶部全屏"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"顶部 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"顶部 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"恢复"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"贴靠左侧"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"贴靠右侧"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"调整应用窗口大小并贴靠左侧"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"调整应用窗口大小并贴靠右侧"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"将窗口最大化或恢复大小"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"进入分屏模式"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"进入桌面设备窗口化模式"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"调整窗口大小并贴靠左侧"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"调整窗口大小并贴靠右侧"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"将窗口最大化或恢复大小"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"将窗口最大化或恢复大小"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"将应用窗口最小化"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"默认打开设置"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"选择如何打开此应用中的网页链接"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"在此应用内"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
index 938024d..eecd9f2 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"左邊 50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"左邊 30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"右邊全螢幕"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"切換應用程式"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"頂部全螢幕"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"頂部 70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"頂部 50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"還原"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"貼齊左邊"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"貼齊右邊"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"調整左邊應用程式視窗大小"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"調整右邊應用程式視窗大小"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"將視窗放到最大或者還原視窗大小"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"進入分割螢幕模式"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"進入桌面視窗模式"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"將視窗移去左邊調整大小"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"將視窗移去右邊調整大小"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"將視窗放到最大或者還原視窗大小"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"將視窗放到最大或者還原視窗大小"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"將應用程式視窗縮到最細"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"採用預設設定打開"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"選擇此應用程式開啟網絡連結的方式"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"在應用程式內"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
index 3a5a87d..c157c193 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"以 50% 的螢幕空間顯示左側畫面"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"以 30% 的螢幕空間顯示左側畫面"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"以全螢幕顯示右側畫面"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"切換應用程式"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"以全螢幕顯示頂端畫面"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"以 70% 的螢幕空間顯示頂端畫面"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"以 50% 的螢幕空間顯示頂端畫面"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"還原"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"靠左對齊"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"靠右對齊"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"調整應用程式視窗大小並向左貼齊"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"調整應用程式視窗大小並向右貼齊"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"將視窗最大化或還原大小"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"進入分割畫面模式"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"進入電腦視窗化模式"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"調整應用程式視窗大小並向左貼齊"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"調整應用程式視窗大小並向右貼齊"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"將視窗最大化或還原大小"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"將視窗最大化或還原大小"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"將應用程式視窗最小化"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"開啟連結的預設設定"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"選擇如何開啟這個應用程式的網頁連結"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"使用應用程式"</string>
diff --git a/libs/WindowManager/Shell/res/values-zu/strings.xml b/libs/WindowManager/Shell/res/values-zu/strings.xml
index cba8e04..a7ba6d2 100644
--- a/libs/WindowManager/Shell/res/values-zu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zu/strings.xml
@@ -43,8 +43,7 @@
     <string name="accessibility_action_divider_left_50" msgid="3488317024557521561">"Kwesokunxele ngo-50%"</string>
     <string name="accessibility_action_divider_left_30" msgid="6023611335723838727">"Kwesokunxele ngo-30%"</string>
     <string name="accessibility_action_divider_right_full" msgid="3408505054325944903">"Isikrini esigcwele esingakwesokudla"</string>
-    <!-- no translation found for accessibility_action_divider_swap (7026003137401725787) -->
-    <skip />
+    <string name="accessibility_action_divider_swap" msgid="7026003137401725787">"Shintsha ama-app"</string>
     <string name="accessibility_action_divider_top_full" msgid="3495871951082107594">"Isikrini esigcwele esiphezulu"</string>
     <string name="accessibility_action_divider_top_70" msgid="1779164068887875474">"Okuphezulu okungu-70%"</string>
     <string name="accessibility_action_divider_top_50" msgid="8649582798829048946">"Okuphezulu okungu-50%"</string>
@@ -143,26 +142,16 @@
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Buyisela"</string>
     <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Chofoza kwesobunxele"</string>
     <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Chofoza kwesokudla"</string>
-    <!-- no translation found for desktop_mode_a11y_action_snap_left (2932955411661734668) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_snap_right (4577032451624261787) -->
-    <skip />
-    <!-- no translation found for desktop_mode_a11y_action_maximize_restore (8026037983417986686) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_split_screen_mode_button_text (7182959681057464802) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_talkback_desktop_mode_button_text (1230110046930843630) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_left_text (500309467459084564) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_snap_right_text (7010831426654467163) -->
-    <skip />
-    <!-- no translation found for maximize_menu_talkback_action_maximize_restore_text (4942610897847934859) -->
-    <skip />
-    <!-- no translation found for maximize_button_talkback_action_maximize_restore_text (4122441323153198455) -->
-    <skip />
-    <!-- no translation found for minimize_button_talkback_action_maximize_restore_text (8890767445425625935) -->
-    <skip />
+    <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Shintsha usayizi we-app yewindi ngakwesokunxele"</string>
+    <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Shintsha usayizi we-app yewindi ngakwesokudla"</string>
+    <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Khulisa noma buyisela usayizi wewindi"</string>
+    <string name="app_handle_menu_talkback_split_screen_mode_button_text" msgid="7182959681057464802">"Faka imodi yokuhlukanisa isikrini"</string>
+    <string name="app_handle_menu_talkback_desktop_mode_button_text" msgid="1230110046930843630">"Faka imodi yokwenza iwindi yedeskithophu"</string>
+    <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Shintsha usayizi wewindi ngakwesokunxele"</string>
+    <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Shintsha usayizi wewindi ngakwesokudla"</string>
+    <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Khulisa noma buyisela usayizi wewindi"</string>
+    <string name="maximize_button_talkback_action_maximize_restore_text" msgid="4122441323153198455">"Khulisa noma buyisela usayizi wewindi"</string>
+    <string name="minimize_button_talkback_action_maximize_restore_text" msgid="8890767445425625935">"Nciphisa iwindi le-app"</string>
     <string name="open_by_default_settings_text" msgid="2526548548598185500">"Vula amasethingi ngokuzenzakalela"</string>
     <string name="open_by_default_dialog_subheader_text" msgid="1729599730664063881">"Khetha indlela yokuvula amalinki ewebhu ale app"</string>
     <string name="open_by_default_dialog_in_app_text" msgid="6978022419634199806">"Ku-app"</string>
diff --git a/libs/WindowManager/Shell/res/values/attrs.xml b/libs/WindowManager/Shell/res/values/attrs.xml
index fbb5caa..4ba0468 100644
--- a/libs/WindowManager/Shell/res/values/attrs.xml
+++ b/libs/WindowManager/Shell/res/values/attrs.xml
@@ -23,4 +23,11 @@
     <declare-styleable name="MessageState">
         <attr name="state_task_focused" format="boolean"/>
     </declare-styleable>
+
+    <declare-styleable name="HandleMenuActionButton">
+        <attr name="android:text" format="string" />
+        <attr name="android:textColor" format="color" />
+        <attr name="android:src" format="reference" />
+        <attr name="android:drawableTint" format="color" />
+    </declare-styleable>
 </resources>
diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml
index e23d572..96e008e 100644
--- a/libs/WindowManager/Shell/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/res/values/dimen.xml
@@ -570,7 +570,7 @@
     <dimen name="desktop_mode_handle_menu_corner_radius">26dp</dimen>
 
     <!-- The radius of the caption menu icon. -->
-    <dimen name="desktop_mode_caption_icon_radius">24dp</dimen>
+    <dimen name="desktop_mode_caption_icon_radius">32dp</dimen>
 
     <!-- The radius of the caption menu shadow. -->
     <dimen name="desktop_mode_handle_menu_shadow_radius">2dp</dimen>
diff --git a/libs/WindowManager/Shell/res/values/strings.xml b/libs/WindowManager/Shell/res/values/strings.xml
index a2231dd..1b7daa8 100644
--- a/libs/WindowManager/Shell/res/values/strings.xml
+++ b/libs/WindowManager/Shell/res/values/strings.xml
@@ -290,7 +290,7 @@
     <!-- Accessibility text for the handle fullscreen button [CHAR LIMIT=NONE] -->
     <string name="fullscreen_text">Fullscreen</string>
     <!-- Accessibility text for the handle desktop button [CHAR LIMIT=NONE] -->
-    <string name="desktop_text">Desktop Mode</string>
+    <string name="desktop_text">Desktop View</string>
     <!-- Accessibility text for the handle split screen button [CHAR LIMIT=NONE] -->
     <string name="split_screen_text">Split Screen</string>
     <!-- Accessibility text for the handle more options button [CHAR LIMIT=NONE] -->
@@ -316,7 +316,7 @@
     <!-- Accessibility text for the handle menu close menu button [CHAR LIMIT=NONE] -->
     <string name="collapse_menu_text">Close Menu</string>
     <!-- Accessibility text for the App Header's App Chip [CHAR LIMIT=NONE] -->
-    <string name="desktop_mode_app_header_chip_text">Open Menu</string>
+    <string name="desktop_mode_app_header_chip_text"><xliff:g id="app_name" example="Chrome">%1$s</xliff:g> (Desktop View)</string>
     <!-- Maximize menu maximize button string. -->
     <string name="desktop_mode_maximize_menu_maximize_text">Maximize Screen</string>
     <!-- Maximize menu snap buttons string. -->
@@ -342,10 +342,10 @@
     <!-- Accessibility text for the Maximize Menu's snap maximize/restore [CHAR LIMIT=NONE] -->
     <string name="desktop_mode_a11y_action_maximize_restore">Maximize or restore window size</string>
 
-    <!-- Accessibility action replacement for caption handle menu split screen button [CHAR LIMIT=NONE] -->
-    <string name="app_handle_menu_talkback_split_screen_mode_button_text">Enter split screen mode</string>
-    <!-- Accessibility action replacement for caption handle menu enter desktop mode button [CHAR LIMIT=NONE] -->
-    <string name="app_handle_menu_talkback_desktop_mode_button_text">Enter desktop windowing mode</string>
+    <!-- Accessibility action replacement for caption handle app chip buttons [CHAR LIMIT=NONE] -->
+    <string name="app_handle_chip_accessibility_announce">Open Menu</string>
+    <!-- Accessibility action replacement for caption handle menu buttons [CHAR LIMIT=NONE] -->
+    <string name="app_handle_menu_accessibility_announce">Enter <xliff:g id="windowing_mode" example="Desktop View">%1$s</xliff:g></string>
     <!-- Accessibility action replacement for maximize menu enter snap left button [CHAR LIMIT=NONE] -->
     <string name="maximize_menu_talkback_action_snap_left_text">Resize window to left</string>
     <!-- Accessibility action replacement for maximize menu enter snap right button [CHAR LIMIT=NONE] -->
diff --git a/libs/WindowManager/Shell/res/values/styles.xml b/libs/WindowManager/Shell/res/values/styles.xml
index 4ebb7dc..637b47a 100644
--- a/libs/WindowManager/Shell/res/values/styles.xml
+++ b/libs/WindowManager/Shell/res/values/styles.xml
@@ -43,20 +43,32 @@
     <style name="DesktopModeHandleMenuActionButton">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">52dp</item>
-        <item name="android:gravity">start|center_vertical</item>
-        <item name="android:paddingStart">16dp</item>
-        <item name="android:paddingEnd">0dp</item>
-        <item name="android:textSize">14sp</item>
-        <item name="android:textFontWeight">500</item>
         <item name="android:textColor">@androidprv:color/materialColorOnSurface</item>
-        <item name="android:drawablePadding">16dp</item>
-        <item name="android:background">?android:selectableItemBackground</item>
+        <item name="android:drawableTint">@androidprv:color/materialColorOnSurface</item>
     </style>
 
+    <style name="DesktopModeHandleMenuActionButtonImage">
+       <item name="android:layout_width">20dp</item>
+       <item name="android:layout_height">20dp</item>
+       <item name="android:layout_marginEnd">16dp</item>
+   </style>
+
+    <style name="DesktopModeHandleMenuActionButtonTextView">
+       <item name="android:layout_width">0dp</item>
+       <item name="android:layout_height">wrap_content</item>
+       <item name="android:layout_weight">1</item>
+       <item name="android:textSize">14sp</item>
+       <item name="android:lineHeight">20sp</item>
+       <item name="android:textFontWeight">500</item>
+       <item name="android:textColor">@androidprv:color/materialColorOnSurface</item>
+       <item name="android:ellipsize">marquee</item>
+       <item name="android:scrollHorizontally">true</item>
+       <item name="android:singleLine">true</item>
+   </style>
+
     <style name="DesktopModeHandleMenuWindowingButton">
         <item name="android:layout_width">48dp</item>
         <item name="android:layout_height">48dp</item>
-        <item name="android:padding">14dp</item>
         <item name="android:scaleType">fitCenter</item>
         <item name="android:background">?android:selectableItemBackgroundBorderless</item>
     </style>
diff --git a/libs/WindowManager/Shell/shared/res/values/dimen.xml b/libs/WindowManager/Shell/shared/res/values/dimen.xml
index 0b1f76f..d280083 100644
--- a/libs/WindowManager/Shell/shared/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/shared/res/values/dimen.xml
@@ -17,4 +17,23 @@
 <resources>
     <dimen name="floating_dismiss_icon_size">32dp</dimen>
     <dimen name="floating_dismiss_background_size">96dp</dimen>
+
+    <!-- Bubble drag zone dimensions -->
+    <dimen name="drag_zone_dismiss_fold">140dp</dimen>
+    <dimen name="drag_zone_dismiss_tablet">200dp</dimen>
+    <dimen name="drag_zone_bubble_fold">140dp</dimen>
+    <dimen name="drag_zone_bubble_tablet">200dp</dimen>
+    <dimen name="drag_zone_full_screen_width">512dp</dimen>
+    <dimen name="drag_zone_full_screen_height">44dp</dimen>
+    <dimen name="drag_zone_desktop_window_width">880dp</dimen>
+    <dimen name="drag_zone_desktop_window_height">300dp</dimen>
+    <dimen name="drag_zone_desktop_window_expanded_view_width">200dp</dimen>
+    <dimen name="drag_zone_desktop_window_expanded_view_height">350dp</dimen>
+    <dimen name="drag_zone_split_from_bubble_height">100dp</dimen>
+    <dimen name="drag_zone_split_from_bubble_width">60dp</dimen>
+    <dimen name="drag_zone_h_split_from_expanded_view_width">60dp</dimen>
+    <dimen name="drag_zone_v_split_from_expanded_view_width">200dp</dimen>
+    <dimen name="drag_zone_v_split_from_expanded_view_height_tablet">285dp</dimen>
+    <dimen name="drag_zone_v_split_from_expanded_view_height_fold_tall">150dp</dimen>
+    <dimen name="drag_zone_v_split_from_expanded_view_height_fold_short">100dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DragZoneFactory.kt b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DragZoneFactory.kt
index c2eef33..909e9d2 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DragZoneFactory.kt
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DragZoneFactory.kt
@@ -16,11 +16,15 @@
 
 package com.android.wm.shell.shared.bubbles
 
+import android.content.Context
 import android.graphics.Rect
+import androidx.annotation.DimenRes
+import com.android.wm.shell.shared.R
 import com.android.wm.shell.shared.bubbles.DragZoneFactory.SplitScreenModeChecker.SplitScreenMode
 
 /** A class for creating drag zones for dragging bubble objects or dragging into bubbles. */
 class DragZoneFactory(
+    private val context: Context,
     private val deviceConfig: DeviceConfig,
     private val splitScreenModeChecker: SplitScreenModeChecker,
     private val desktopWindowModeChecker: DesktopWindowModeChecker,
@@ -29,23 +33,65 @@
     private val windowBounds: Rect
         get() = deviceConfig.windowBounds
 
-    // TODO b/393172431: move these to xml
-    private val dismissDragZoneSize = if (deviceConfig.isSmallTablet) 140 else 200
-    private val bubbleDragZoneTabletSize = 200
-    private val bubbleDragZoneFoldableSize = 140
-    private val fullScreenDragZoneWidth = 512
-    private val fullScreenDragZoneHeight = 44
-    private val desktopWindowDragZoneWidth = 880
-    private val desktopWindowDragZoneHeight = 300
-    private val desktopWindowFromExpandedViewDragZoneWidth = 200
-    private val desktopWindowFromExpandedViewDragZoneHeight = 350
-    private val splitFromBubbleDragZoneHeight = 100
-    private val splitFromBubbleDragZoneWidth = 60
-    private val hSplitFromExpandedViewDragZoneWidth = 60
-    private val vSplitFromExpandedViewDragZoneWidth = 200
-    private val vSplitFromExpandedViewDragZoneHeightTablet = 285
-    private val vSplitFromExpandedViewDragZoneHeightFold = 150
-    private val vUnevenSplitFromExpandedViewDragZoneHeight = 96
+    private var dismissDragZoneSize = 0
+    private var bubbleDragZoneTabletSize = 0
+    private var bubbleDragZoneFoldableSize = 0
+    private var fullScreenDragZoneWidth = 0
+    private var fullScreenDragZoneHeight = 0
+    private var desktopWindowDragZoneWidth = 0
+    private var desktopWindowDragZoneHeight = 0
+    private var desktopWindowFromExpandedViewDragZoneWidth = 0
+    private var desktopWindowFromExpandedViewDragZoneHeight = 0
+    private var splitFromBubbleDragZoneHeight = 0
+    private var splitFromBubbleDragZoneWidth = 0
+    private var hSplitFromExpandedViewDragZoneWidth = 0
+    private var vSplitFromExpandedViewDragZoneWidth = 0
+    private var vSplitFromExpandedViewDragZoneHeightTablet = 0
+    private var vSplitFromExpandedViewDragZoneHeightFoldTall = 0
+    private var vSplitFromExpandedViewDragZoneHeightFoldShort = 0
+
+    init {
+        onConfigurationUpdated()
+    }
+
+    /** Updates all dimensions after a configuration change. */
+    fun onConfigurationUpdated() {
+        dismissDragZoneSize =
+            if (deviceConfig.isSmallTablet) {
+                context.resolveDimension(R.dimen.drag_zone_dismiss_fold)
+            } else {
+                context.resolveDimension(R.dimen.drag_zone_dismiss_tablet)
+            }
+        bubbleDragZoneTabletSize = context.resolveDimension(R.dimen.drag_zone_bubble_tablet)
+        bubbleDragZoneFoldableSize = context.resolveDimension(R.dimen.drag_zone_bubble_fold)
+        fullScreenDragZoneWidth = context.resolveDimension(R.dimen.drag_zone_full_screen_width)
+        fullScreenDragZoneHeight = context.resolveDimension(R.dimen.drag_zone_full_screen_height)
+        desktopWindowDragZoneWidth =
+            context.resolveDimension(R.dimen.drag_zone_desktop_window_width)
+        desktopWindowDragZoneHeight =
+            context.resolveDimension(R.dimen.drag_zone_desktop_window_height)
+        desktopWindowFromExpandedViewDragZoneWidth =
+            context.resolveDimension(R.dimen.drag_zone_desktop_window_expanded_view_width)
+        desktopWindowFromExpandedViewDragZoneHeight =
+            context.resolveDimension(R.dimen.drag_zone_desktop_window_expanded_view_height)
+        splitFromBubbleDragZoneHeight =
+            context.resolveDimension(R.dimen.drag_zone_split_from_bubble_height)
+        splitFromBubbleDragZoneWidth =
+            context.resolveDimension(R.dimen.drag_zone_split_from_bubble_width)
+        hSplitFromExpandedViewDragZoneWidth =
+            context.resolveDimension(R.dimen.drag_zone_h_split_from_expanded_view_width)
+        vSplitFromExpandedViewDragZoneWidth =
+            context.resolveDimension(R.dimen.drag_zone_v_split_from_expanded_view_width)
+        vSplitFromExpandedViewDragZoneHeightTablet =
+            context.resolveDimension(R.dimen.drag_zone_v_split_from_expanded_view_height_tablet)
+        vSplitFromExpandedViewDragZoneHeightFoldTall =
+            context.resolveDimension(R.dimen.drag_zone_v_split_from_expanded_view_height_fold_tall)
+        vSplitFromExpandedViewDragZoneHeightFoldShort =
+            context.resolveDimension(R.dimen.drag_zone_v_split_from_expanded_view_height_fold_short)
+    }
+
+    private fun Context.resolveDimension(@DimenRes dimension: Int) =
+        resources.getDimensionPixelSize(dimension)
 
     /**
      * Creates the list of drag zones for the dragged object.
@@ -58,11 +104,11 @@
         when (draggedObject) {
             is DraggedObject.BubbleBar -> {
                 dragZones.add(createDismissDragZone())
-                dragZones.addAll(createBubbleDragZones())
+                dragZones.addAll(createBubbleHalfScreenDragZones())
             }
             is DraggedObject.Bubble -> {
                 dragZones.add(createDismissDragZone())
-                dragZones.addAll(createBubbleDragZones())
+                dragZones.addAll(createBubbleCornerDragZones())
                 dragZones.add(createFullScreenDragZone())
                 if (shouldShowDesktopWindowDragZones()) {
                     dragZones.add(createDesktopWindowDragZoneForBubble())
@@ -80,7 +126,7 @@
                 } else {
                     dragZones.addAll(createSplitScreenDragZonesForExpandedViewOnTablet())
                 }
-                createBubbleDragZonesForExpandedView()
+                dragZones.addAll(createBubbleHalfScreenDragZones())
             }
         }
         return dragZones
@@ -98,7 +144,7 @@
         )
     }
 
-    private fun createBubbleDragZones(): List<DragZone> {
+    private fun createBubbleCornerDragZones(): List<DragZone> {
         val dragZoneSize =
             if (deviceConfig.isSmallTablet) {
                 bubbleDragZoneFoldableSize
@@ -124,7 +170,7 @@
         )
     }
 
-    private fun createBubbleDragZonesForExpandedView(): List<DragZone> {
+    private fun createBubbleHalfScreenDragZones(): List<DragZone> {
         return listOf(
             DragZone.Bubble.Left(
                 bounds = Rect(0, 0, windowBounds.right / 2, windowBounds.bottom),
@@ -360,7 +406,7 @@
                                     fullScreenDragZoneHeight,
                                     splitZoneLeft + fullScreenDragZoneWidth,
                                     fullScreenDragZoneHeight +
-                                        vSplitFromExpandedViewDragZoneHeightFold
+                                        vSplitFromExpandedViewDragZoneHeightFoldTall
                                 ),
                         ),
                         DragZone.Split.Bottom(
@@ -370,12 +416,32 @@
                                     windowBounds.bottom / 2,
                                     splitZoneLeft + fullScreenDragZoneWidth,
                                     windowBounds.bottom / 2 +
-                                        vSplitFromExpandedViewDragZoneHeightFold
+                                        vSplitFromExpandedViewDragZoneHeightFoldTall
                                 ),
                         )
                     )
-                // TODO b/393172431: add this zone when it's defined
-                SplitScreenMode.SPLIT_10_90 -> listOf()
+                SplitScreenMode.SPLIT_10_90 ->
+                    listOf(
+                        DragZone.Split.Top(
+                            bounds =
+                                Rect(
+                                    0,
+                                    0,
+                                    windowBounds.right,
+                                    vSplitFromExpandedViewDragZoneHeightFoldShort
+                                ),
+                        ),
+                        DragZone.Split.Bottom(
+                            bounds =
+                                Rect(
+                                    splitZoneLeft,
+                                    vSplitFromExpandedViewDragZoneHeightFoldShort,
+                                    splitZoneLeft + fullScreenDragZoneWidth,
+                                    vSplitFromExpandedViewDragZoneHeightFoldShort +
+                                        vSplitFromExpandedViewDragZoneHeightFoldTall
+                                ),
+                        )
+                    )
                 SplitScreenMode.SPLIT_90_10 ->
                     listOf(
                         DragZone.Split.Top(
@@ -385,7 +451,7 @@
                                     fullScreenDragZoneHeight,
                                     splitZoneLeft + fullScreenDragZoneWidth,
                                     fullScreenDragZoneHeight +
-                                        vUnevenSplitFromExpandedViewDragZoneHeight
+                                        vSplitFromExpandedViewDragZoneHeightFoldTall
                                 ),
                         ),
                         DragZone.Split.Bottom(
@@ -393,7 +459,7 @@
                                 Rect(
                                     0,
                                     windowBounds.bottom -
-                                        vUnevenSplitFromExpandedViewDragZoneHeight,
+                                        vSplitFromExpandedViewDragZoneHeightFoldShort,
                                     windowBounds.right,
                                     windowBounds.bottom
                                 ),
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DropTargetManager.kt b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DropTargetManager.kt
new file mode 100644
index 0000000..29ce8d9
--- /dev/null
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/bubbles/DropTargetManager.kt
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.shared.bubbles
+
+/**
+ * Manages animating drop targets in response to dragging bubble icons or bubble expanded views
+ * across different drag zones.
+ */
+class DropTargetManager(
+    private val isLayoutRtl: Boolean,
+    private val dragZoneChangedListener: DragZoneChangedListener
+) {
+
+    private var state: DragState? = null
+
+    /** Must be called when a drag gesture is starting. */
+    fun onDragStarted(draggedObject: DraggedObject, dragZones: List<DragZone>) {
+        val state = DragState(dragZones, draggedObject)
+        dragZoneChangedListener.onInitialDragZoneSet(state.initialDragZone)
+        this.state = state
+    }
+
+    /** Called when the user drags to a new location. */
+    fun onDragUpdated(x: Int, y: Int) {
+        val state = state ?: return
+        val oldDragZone = state.currentDragZone
+        val newDragZone = state.getMatchingDragZone(x = x, y = y)
+        state.currentDragZone = newDragZone
+        if (oldDragZone != newDragZone) {
+            dragZoneChangedListener.onDragZoneChanged(from = oldDragZone, to = newDragZone)
+        }
+    }
+
+    /** Called when the drag ended. */
+    fun onDragEnded() {
+        state = null
+    }
+
+    /** Stores the current drag state. */
+    private inner class DragState(
+        private val dragZones: List<DragZone>,
+        draggedObject: DraggedObject
+    ) {
+        val initialDragZone =
+            if (draggedObject.initialLocation.isOnLeft(isLayoutRtl)) {
+                dragZones.filterIsInstance<DragZone.Bubble.Left>().first()
+            } else {
+                dragZones.filterIsInstance<DragZone.Bubble.Right>().first()
+            }
+        var currentDragZone: DragZone = initialDragZone
+
+        fun getMatchingDragZone(x: Int, y: Int): DragZone {
+            return dragZones.firstOrNull { it.contains(x, y) } ?: currentDragZone
+        }
+    }
+
+    /** An interface to be notified when drag zones change. */
+    interface DragZoneChangedListener {
+        /** An initial drag zone was set. Called when a drag starts. */
+        fun onInitialDragZoneSet(dragZone: DragZone)
+        /** Called when the object was dragged to a different drag zone. */
+        fun onDragZoneChanged(from: DragZone, to: DragZone)
+    }
+}
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt
index 835456b..126ab3d 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt
@@ -18,9 +18,13 @@
 
 import android.app.TaskInfo
 import android.content.Context
+import android.content.pm.ActivityInfo
+import android.content.pm.ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED
+import android.content.pm.ActivityInfo.OVERRIDE_ENABLE_INSETS_DECOUPLED_CONFIGURATION
+import android.content.pm.ActivityInfo.OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS
 import android.window.DesktopModeFlags
 import com.android.internal.R
-import java.util.ArrayList
+import com.android.window.flags.Flags
 
 /**
  * Class to decide whether to apply app compat policies in desktop mode.
@@ -46,11 +50,29 @@
         numActivities: Int, isTopActivityNoDisplay: Boolean, isActivityStackTransparent: Boolean) =
         DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODALS_POLICY.isTrue
                 && ((isSystemUiTask(packageName)
-                || isPartOfDefaultHomePackage(packageName)
+                || isPartOfDefaultHomePackageOrNoHomeAvailable(packageName)
                 || isTransparentTask(isActivityStackTransparent, numActivities))
                 && !isTopActivityNoDisplay)
 
     /**
+     * Whether the caption insets should be excluded from configuration for system to handle.
+     *
+     * The treatment is enabled when all the of the following is true:
+     * * Any flags to forcibly consume caption insets are enabled.
+     * * Top activity have configuration coupled with insets.
+     * * Task is not resizeable or [ActivityInfo.OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS]
+     * is enabled.
+     */
+    fun shouldExcludeCaptionFromAppBounds(taskInfo: TaskInfo): Boolean =
+        Flags.excludeCaptionFromAppBounds()
+                && isAnyForceConsumptionFlagsEnabled()
+                && taskInfo.topActivityInfo?.let {
+            isInsetsCoupledWithConfiguration(it) && (!taskInfo.isResizeable || it.isChangeEnabled(
+                OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS
+            ))
+        } ?: false
+
+    /**
      * Returns true if all activities in a tasks stack are transparent. If there are no activities
      * will return false.
      */
@@ -63,8 +85,17 @@
     private fun isSystemUiTask(packageName: String?) = packageName == systemUiPackage
 
     /**
-     * Returns true if the tasks base activity is part of the default home package.
+     * Returns true if the tasks base activity is part of the default home package, or there is
+     * currently no default home package available.
      */
-    private fun isPartOfDefaultHomePackage(packageName: String?) =
-        packageName != null && packageName == defaultHomePackage
+    private fun isPartOfDefaultHomePackageOrNoHomeAvailable(packageName: String?) =
+        defaultHomePackage == null || (packageName != null && packageName == defaultHomePackage)
+
+    private fun isAnyForceConsumptionFlagsEnabled(): Boolean =
+        DesktopModeFlags.ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION_ALWAYS.isTrue
+            || DesktopModeFlags.ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION.isTrue
+
+    private fun isInsetsCoupledWithConfiguration(info: ActivityInfo): Boolean =
+        !(info.isChangeEnabled(OVERRIDE_ENABLE_INSETS_DECOUPLED_CONFIGURATION)
+                || info.isChangeEnabled(INSETS_DECOUPLED_CONFIGURATION_ENFORCED))
 }
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
index 2586bd6..643c150 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
@@ -220,6 +220,13 @@
     }
 
     /**
+     * Return {@code true} if the current device can host desktop sessions on its internal display.
+     */
+    public static boolean canInternalDisplayHostDesktops(@NonNull Context context) {
+        return context.getResources().getBoolean(R.bool.config_canInternalDisplayHostDesktops);
+    }
+
+    /**
      * Return {@code true} if desktop mode dev option should be shown on current device
      */
     public static boolean canShowDesktopModeDevOption(@NonNull Context context) {
@@ -231,21 +238,24 @@
      * Return {@code true} if desktop mode dev option should be shown on current device
      */
     public static boolean canShowDesktopExperienceDevOption(@NonNull Context context) {
-        return Flags.showDesktopExperienceDevOption() && isDeviceEligibleForDesktopMode(context);
+        return Flags.showDesktopExperienceDevOption()
+                && isInternalDisplayEligibleToHostDesktops(context);
     }
 
     /** Returns if desktop mode dev option should be enabled if there is no user override. */
     public static boolean shouldDevOptionBeEnabledByDefault(Context context) {
-        return isDeviceEligibleForDesktopMode(context) && Flags.enableDesktopWindowingMode();
+        return isInternalDisplayEligibleToHostDesktops(context)
+                && Flags.enableDesktopWindowingMode();
     }
 
     /**
      * Return {@code true} if desktop mode is enabled and can be entered on the current device.
      */
     public static boolean canEnterDesktopMode(@NonNull Context context) {
-        return (isDeviceEligibleForDesktopMode(context)
-                && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODE.isTrue())
-                || isDesktopModeEnabledByDevOption(context);
+        return (isInternalDisplayEligibleToHostDesktops(context)
+                && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODE.isTrue()
+                && (isDesktopModeSupported(context) || !enforceDeviceRestrictions())
+                || isDesktopModeEnabledByDevOption(context));
     }
 
     /**
@@ -313,10 +323,11 @@
     }
 
     /**
-     * Return {@code true} if desktop mode is unrestricted and is supported in the device.
+     * Return {@code true} if desktop sessions is unrestricted and can be host for the device's
+     * internal display.
      */
-    public static boolean isDeviceEligibleForDesktopMode(@NonNull Context context) {
-        return !enforceDeviceRestrictions() || isDesktopModeSupported(context) || (
+    public static boolean isInternalDisplayEligibleToHostDesktops(@NonNull Context context) {
+        return !enforceDeviceRestrictions() || canInternalDisplayHostDesktops(context) || (
                 Flags.enableDesktopModeThroughDevOption() && isDesktopModeDevOptionSupported(
                         context));
     }
@@ -325,7 +336,7 @@
      * Return {@code true} if the developer option for desktop mode is unrestricted and is supported
      * in the device.
      *
-     * Note that, if {@link #isDeviceEligibleForDesktopMode(Context)} is true, then
+     * Note that, if {@link #isInternalDisplayEligibleToHostDesktops(Context)} is true, then
      * {@link #isDeviceEligibleForDesktopModeDevOption(Context)} is also true.
      */
     private static boolean isDeviceEligibleForDesktopModeDevOption(@NonNull Context context) {
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/draganddrop/DragAndDropConstants.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/draganddrop/DragAndDropConstants.java
index 4127adc..12938db 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/draganddrop/DragAndDropConstants.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/draganddrop/DragAndDropConstants.java
@@ -24,4 +24,9 @@
      * ignore drag events.
      */
     public static final String EXTRA_DISALLOW_HIT_REGION = "DISALLOW_HIT_REGION";
+
+    /**
+     * An Intent extra that Launcher can use to specify the {@link android.content.pm.ShortcutInfo}
+     */
+    public static final String EXTRA_SHORTCUT_INFO = "EXTRA_SHORTCUT_INFO";
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java
index c1dadad..5bd8d86 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java
@@ -357,9 +357,9 @@
 
     void showBadge() {
         Bitmap appBadgeBitmap = mBubble.getAppBadge();
-        final boolean isAppLaunchIntent = (mBubble instanceof Bubble)
-                && ((Bubble) mBubble).isAppLaunchIntent();
-        if (appBadgeBitmap == null || isAppLaunchIntent) {
+        final boolean showAppBadge = (mBubble instanceof Bubble)
+                && ((Bubble) mBubble).showAppBadge();
+        if (appBadgeBitmap == null || !showAppBadge) {
             mAppIcon.setVisibility(GONE);
             return;
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
index d77c177..d948928 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
@@ -54,9 +54,9 @@
 import com.android.wm.shell.Flags;
 import com.android.wm.shell.bubbles.bar.BubbleBarExpandedView;
 import com.android.wm.shell.bubbles.bar.BubbleBarLayerView;
+import com.android.wm.shell.common.ComponentUtils;
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread;
 import com.android.wm.shell.shared.annotations.ShellMainThread;
-import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper;
 import com.android.wm.shell.shared.bubbles.BubbleInfo;
 import com.android.wm.shell.shared.bubbles.ParcelableFlyoutMessage;
 import com.android.wm.shell.taskview.TaskView;
@@ -78,11 +78,19 @@
     /** A string prefix used in note bubbles' {@link #mKey}. */
     public static final String KEY_NOTE_BUBBLE = "key_note_bubble";
 
-    /** Whether the bubble is an app bubble. */
-    private final boolean mIsAppBubble;
+    /** The possible types a bubble may be. */
+    public enum BubbleType {
+        /** Chat is from a notification. */
+        TYPE_CHAT,
+        /** Notes are from the note taking API. */
+        TYPE_NOTE,
+        /** Shortcuts from bubble anything, based on {@link ShortcutInfo}. */
+        TYPE_SHORTCUT,
+        /** Apps are from bubble anything. */
+        TYPE_APP,
+    }
 
-    /** Whether the bubble is a notetaking bubble. */
-    private final boolean mIsNoteBubble;
+    private final BubbleType mType;
 
     private final String mKey;
     @Nullable
@@ -221,7 +229,6 @@
      * Create a bubble with limited information based on given {@link ShortcutInfo}.
      * Note: Currently this is only being used when the bubble is persisted to disk.
      */
-    @VisibleForTesting(visibility = PRIVATE)
     public Bubble(@NonNull final String key, @NonNull final ShortcutInfo shortcutInfo,
             final int desiredHeight, final int desiredHeightResId, @Nullable final String title,
             int taskId, @Nullable final String locus, boolean isDismissable,
@@ -248,16 +255,15 @@
         mBgExecutor = bgExecutor;
         mTaskId = taskId;
         mBubbleMetadataFlagListener = listener;
-        mIsAppBubble = false;
-        mIsNoteBubble = false;
+        // TODO (b/394085999) read/write type to xml
+        mType = BubbleType.TYPE_CHAT;
     }
 
     private Bubble(
             Intent intent,
             UserHandle user,
             @Nullable Icon icon,
-            boolean isAppBubble,
-            boolean isNoteBubble,
+            BubbleType type,
             String key,
             @ShellMainThread Executor mainExecutor,
             @ShellBackgroundThread Executor bgExecutor) {
@@ -266,8 +272,7 @@
         mFlags = 0;
         mUser = user;
         mIcon = icon;
-        mIsAppBubble = isAppBubble;
-        mIsNoteBubble = isNoteBubble;
+        mType = type;
         mKey = key;
         mShowBubbleUpdateDot = false;
         mMainExecutor = mainExecutor;
@@ -278,6 +283,29 @@
         mPackageName = intent.getPackage();
     }
 
+    private Bubble(
+            PendingIntent intent,
+            UserHandle user,
+            String key,
+            @ShellMainThread Executor mainExecutor,
+            @ShellBackgroundThread Executor bgExecutor) {
+        mGroupKey = null;
+        mLocusId = null;
+        mFlags = 0;
+        mUser = user;
+        mIcon = null;
+        mType = BubbleType.TYPE_APP;
+        mKey = key;
+        mShowBubbleUpdateDot = false;
+        mMainExecutor = mainExecutor;
+        mBgExecutor = bgExecutor;
+        mTaskId = INVALID_TASK_ID;
+        mPendingIntent = intent;
+        mIntent = null;
+        mDesiredHeight = Integer.MAX_VALUE;
+        mPackageName = ComponentUtils.getPackageName(intent);
+    }
+
     private Bubble(ShortcutInfo info, @ShellMainThread Executor mainExecutor,
             @ShellBackgroundThread Executor bgExecutor) {
         mGroupKey = null;
@@ -285,8 +313,7 @@
         mFlags = 0;
         mUser = info.getUserHandle();
         mIcon = info.getIcon();
-        mIsAppBubble = false;
-        mIsNoteBubble = false;
+        mType = BubbleType.TYPE_SHORTCUT;
         mKey = getBubbleKeyForShortcut(info);
         mShowBubbleUpdateDot = false;
         mMainExecutor = mainExecutor;
@@ -310,8 +337,7 @@
         mFlags = 0;
         mUser = user;
         mIcon = icon;
-        mIsAppBubble = true;
-        mIsNoteBubble = false;
+        mType = BubbleType.TYPE_APP;
         mKey = key;
         mShowBubbleUpdateDot = false;
         mMainExecutor = mainExecutor;
@@ -322,15 +348,23 @@
         mPackageName = task.baseActivity.getPackageName();
     }
 
-    /** Creates a notetaking bubble. */
+    /** Creates a note taking bubble. */
     public static Bubble createNotesBubble(Intent intent, UserHandle user, @Nullable Icon icon,
             @ShellMainThread Executor mainExecutor, @ShellBackgroundThread Executor bgExecutor) {
         return new Bubble(intent,
                 user,
                 icon,
-                /* isAppBubble= */ true,
-                /* isNoteBubble= */ true,
-                /* key= */ getNoteBubbleKeyForApp(intent.getPackage(), user),
+                BubbleType.TYPE_NOTE,
+                getNoteBubbleKeyForApp(intent.getPackage(), user),
+                mainExecutor, bgExecutor);
+    }
+
+    /** Creates an app bubble. */
+    public static Bubble createAppBubble(PendingIntent intent, UserHandle user,
+            @ShellMainThread Executor mainExecutor, @ShellBackgroundThread Executor bgExecutor) {
+        return new Bubble(intent,
+                user,
+                /* key= */ getAppBubbleKeyForApp(ComponentUtils.getPackageName(intent), user),
                 mainExecutor, bgExecutor);
     }
 
@@ -340,9 +374,8 @@
         return new Bubble(intent,
                 user,
                 icon,
-                /* isAppBubble= */ true,
-                /* isNoteBubble= */ false,
-                /* key= */ getAppBubbleKeyForApp(intent.getPackage(), user),
+                BubbleType.TYPE_APP,
+                getAppBubbleKeyForApp(intent.getPackage(), user),
                 mainExecutor, bgExecutor);
     }
 
@@ -400,13 +433,15 @@
         return KEY_APP_BUBBLE + ":" + taskInfo.taskId;
     }
 
+    /**
+     * Creates a chat bubble based on a notification (contents of {@link BubbleEntry}.
+     */
     @VisibleForTesting(visibility = PRIVATE)
     public Bubble(@NonNull final BubbleEntry entry,
             final Bubbles.BubbleMetadataFlagListener listener,
             final Bubbles.PendingIntentCanceledListener intentCancelListener,
             @ShellMainThread Executor mainExecutor, @ShellBackgroundThread Executor bgExecutor) {
-        mIsAppBubble = false;
-        mIsNoteBubble = false;
+        mType = BubbleType.TYPE_CHAT;
         mKey = entry.getKey();
         mGroupKey = entry.getGroupKey();
         mLocusId = entry.getLocusId();
@@ -436,7 +471,7 @@
                 getTitle(),
                 getAppName(),
                 isImportantConversation(),
-                !isAppLaunchIntent(),
+                showAppBadge(),
                 getParcelableFlyoutMessage());
     }
 
@@ -673,7 +708,6 @@
      * @param expandedViewManager the bubble expanded view manager.
      * @param taskViewFactory the task view factory used to create the task view for the bubble.
      * @param positioner the bubble positioner.
-     * @param bubbleLogger log bubble metrics.
      * @param stackView the view the bubble is added to, iff showing as floating.
      * @param layerView the layer the bubble is added to, iff showing in the bubble bar.
      * @param iconFactory the icon factory used to create images for the bubble.
@@ -683,7 +717,6 @@
             BubbleExpandedViewManager expandedViewManager,
             BubbleTaskViewFactory taskViewFactory,
             BubblePositioner positioner,
-            BubbleLogger bubbleLogger,
             @Nullable BubbleStackView stackView,
             @Nullable BubbleBarLayerView layerView,
             BubbleIconFactory iconFactory,
@@ -698,7 +731,6 @@
                     expandedViewManager,
                     taskViewFactory,
                     positioner,
-                    bubbleLogger,
                     stackView,
                     layerView,
                     iconFactory,
@@ -720,7 +752,6 @@
                     expandedViewManager,
                     taskViewFactory,
                     positioner,
-                    bubbleLogger,
                     stackView,
                     layerView,
                     iconFactory,
@@ -1005,13 +1036,6 @@
     }
 
     /**
-     * Whether this bubble is conversation
-     */
-    public boolean isConversation() {
-        return null != mShortcutInfo;
-    }
-
-    /**
      * Sets whether this notification should be suppressed in the shade.
      */
     @VisibleForTesting
@@ -1128,14 +1152,10 @@
     }
 
     /**
-     * Whether this bubble represents the full app, i.e. the intent used is the launch
-     * intent for an app. In this case we don't show a badge on the icon.
+     * Whether an app badge should be shown for this bubble.
      */
-    public boolean isAppLaunchIntent() {
-        if (BubbleAnythingFlagHelper.enableCreateAnyBubble() && mIntent != null) {
-            return mIntent.hasCategory("android.intent.category.LAUNCHER");
-        }
-        return false;
+    public boolean showAppBadge() {
+        return isChat() || isShortcut() || isNote();
     }
 
     /**
@@ -1162,17 +1182,31 @@
     }
 
     /**
-     * Returns whether this bubble is from an app (as well as notetaking) versus a notification.
+     * Returns whether this bubble is a conversation from the notification API.
      */
-    public boolean isAppBubble() {
-        return mIsAppBubble;
+    public boolean isChat() {
+        return mType == BubbleType.TYPE_CHAT;
     }
 
     /**
-     * Returns whether this bubble is specific from the notetaking API.
+     * Returns whether this bubble is a note from the note taking API.
      */
-    public boolean isNoteBubble() {
-        return mIsNoteBubble;
+    public boolean isNote() {
+        return mType == BubbleType.TYPE_NOTE;
+    }
+
+    /**
+     * Returns whether this bubble is a shortcut.
+     */
+    public boolean isShortcut() {
+        return mType == BubbleType.TYPE_SHORTCUT;
+    }
+
+    /**
+     * Returns whether this bubble is an app.
+     */
+    public boolean isApp() {
+        return mType == BubbleType.TYPE_APP;
     }
 
     /** Creates open app settings intent */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
index 10efd8e..f51023f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
@@ -22,6 +22,7 @@
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+import static android.view.WindowManager.TRANSIT_CHANGE;
 
 import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES;
 import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
@@ -46,6 +47,7 @@
 import android.app.PendingIntent;
 import android.app.TaskInfo;
 import android.content.BroadcastReceiver;
+import android.content.ClipDescription;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -118,6 +120,7 @@
 import com.android.wm.shell.shared.bubbles.BubbleBarUpdate;
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider;
 import com.android.wm.shell.shared.bubbles.DeviceConfig;
+import com.android.wm.shell.shared.draganddrop.DragAndDropConstants;
 import com.android.wm.shell.sysui.ConfigurationChangeListener;
 import com.android.wm.shell.sysui.ShellCommandHandler;
 import com.android.wm.shell.sysui.ShellController;
@@ -791,15 +794,21 @@
     public void setBubbleBarLocation(BubbleBarLocation bubbleBarLocation,
             @BubbleBarLocation.UpdateSource int source) {
         if (isShowingAsBubbleBar()) {
+            updateExpandedViewForBubbleBarLocation(bubbleBarLocation, source);
+            BubbleBarUpdate bubbleBarUpdate = new BubbleBarUpdate();
+            bubbleBarUpdate.bubbleBarLocation = bubbleBarLocation;
+            mBubbleStateListener.onBubbleStateChange(bubbleBarUpdate);
+        }
+    }
+
+    private void updateExpandedViewForBubbleBarLocation(BubbleBarLocation bubbleBarLocation,
+            @BubbleBarLocation.UpdateSource int source) {
+        if (isShowingAsBubbleBar()) {
             BubbleBarLocation previousLocation = mBubblePositioner.getBubbleBarLocation();
             mBubblePositioner.setBubbleBarLocation(bubbleBarLocation);
             if (mLayerView != null && !mLayerView.isExpandedViewDragged()) {
                 mLayerView.updateExpandedView();
             }
-            BubbleBarUpdate bubbleBarUpdate = new BubbleBarUpdate();
-            bubbleBarUpdate.bubbleBarLocation = bubbleBarLocation;
-            mBubbleStateListener.onBubbleStateChange(bubbleBarUpdate);
-
             logBubbleBarLocationIfChanged(bubbleBarLocation, previousLocation, source);
         }
     }
@@ -872,11 +881,20 @@
     }
 
     @Override
-    public void onItemDroppedOverBubbleBarDragZone(BubbleBarLocation location, Intent appIntent,
-            UserHandle userHandle) {
-        if (isShowingAsBubbleBar() && BubbleAnythingFlagHelper.enableCreateAnyBubble()) {
-            hideBubbleBarExpandedViewDropTarget();
-            expandStackAndSelectBubble(appIntent, userHandle, location);
+    public void onItemDroppedOverBubbleBarDragZone(@NonNull BubbleBarLocation location,
+            Intent itemIntent) {
+        hideBubbleBarExpandedViewDropTarget();
+        ShortcutInfo shortcutInfo = (ShortcutInfo) itemIntent
+                .getExtra(DragAndDropConstants.EXTRA_SHORTCUT_INFO);
+        if (shortcutInfo != null) {
+            expandStackAndSelectBubble(shortcutInfo, location);
+            return;
+        }
+        UserHandle user = (UserHandle) itemIntent.getExtra(Intent.EXTRA_USER);
+        PendingIntent pendingIntent = (PendingIntent) itemIntent
+                .getExtra(ClipDescription.EXTRA_PENDING_INTENT);
+        if (pendingIntent != null && user != null) {
+            expandStackAndSelectBubble(pendingIntent, user, location);
         }
     }
 
@@ -1028,7 +1046,7 @@
             registerBroadcastReceiver();
             if (isShowingAsBubbleBar()) {
                 mBubbleData.getOverflow().initializeForBubbleBar(
-                        mExpandedViewManager, mBubblePositioner, mLogger);
+                        mExpandedViewManager, mBubblePositioner);
             } else {
                 mBubbleData.getOverflow().initialize(
                         mExpandedViewManager, mStackView, mBubblePositioner);
@@ -1236,7 +1254,6 @@
                     mExpandedViewManager,
                     mBubbleTaskViewFactory,
                     mBubblePositioner,
-                    mLogger,
                     mStackView,
                     mLayerView,
                     mBubbleIconFactory,
@@ -1248,7 +1265,6 @@
                     mExpandedViewManager,
                     mBubbleTaskViewFactory,
                     mBubblePositioner,
-                    mLogger,
                     mStackView,
                     mLayerView,
                     mBubbleIconFactory,
@@ -1508,16 +1524,24 @@
      * Expands and selects a bubble created or found via the provided shortcut info.
      *
      * @param info the shortcut info for the bubble.
+     * @param bubbleBarLocation optional location in case bubble bar should be repositioned.
      */
-    public void expandStackAndSelectBubble(ShortcutInfo info) {
+    public void expandStackAndSelectBubble(ShortcutInfo info,
+            @Nullable BubbleBarLocation bubbleBarLocation) {
         if (!BubbleAnythingFlagHelper.enableCreateAnyBubble()) return;
+        BubbleBarLocation updateLocation = isShowingAsBubbleBar() ? bubbleBarLocation : null;
+        if (updateLocation != null) {
+            updateExpandedViewForBubbleBarLocation(updateLocation,
+                    BubbleBarLocation.UpdateSource.APP_ICON_DRAG);
+        }
         Bubble b = mBubbleData.getOrCreateBubble(info); // Removes from overflow
         ProtoLog.v(WM_SHELL_BUBBLES, "expandStackAndSelectBubble - shortcut=%s", info);
         if (b.isInflated()) {
-            mBubbleData.setSelectedBubbleAndExpandStack(b);
+            mBubbleData.setSelectedBubbleAndExpandStack(b, updateLocation);
         } else {
             b.enable(Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE);
-            inflateAndAdd(b, /* suppressFlyout= */ true, /* showInShade= */ false);
+            inflateAndAdd(b, /* suppressFlyout= */ true, /* showInShade= */ false,
+                    updateLocation);
         }
     }
 
@@ -1526,14 +1550,8 @@
      *
      * @param intent the intent for the bubble.
      */
-    public void expandStackAndSelectBubble(Intent intent, UserHandle user,
-            @Nullable BubbleBarLocation bubbleBarLocation) {
+    public void expandStackAndSelectBubble(Intent intent, UserHandle user) {
         if (!BubbleAnythingFlagHelper.enableCreateAnyBubble()) return;
-        if (bubbleBarLocation != null) {
-            //TODO (b/388894910) combine location update with the setSelectedBubbleAndExpandStack &
-            // fix bubble bar flicking
-            setBubbleBarLocation(bubbleBarLocation, BubbleBarLocation.UpdateSource.APP_ICON_DRAG);
-        }
         Bubble b = mBubbleData.getOrCreateBubble(intent, user); // Removes from overflow
         ProtoLog.v(WM_SHELL_BUBBLES, "expandStackAndSelectBubble - intent=%s", intent);
         if (b.isInflated()) {
@@ -1545,23 +1563,54 @@
     }
 
     /**
+     * Expands and selects a bubble created or found for this app.
+     *
+     * @param pendingIntent     the intent for the bubble.
+     * @param bubbleBarLocation optional location in case bubble bar should be repositioned.
+     */
+    public void expandStackAndSelectBubble(PendingIntent pendingIntent, UserHandle user,
+            @Nullable BubbleBarLocation bubbleBarLocation) {
+        if (!BubbleAnythingFlagHelper.enableCreateAnyBubble()) return;
+        BubbleBarLocation updateLocation = isShowingAsBubbleBar() ? bubbleBarLocation : null;
+        if (updateLocation != null) {
+            updateExpandedViewForBubbleBarLocation(updateLocation,
+                    BubbleBarLocation.UpdateSource.APP_ICON_DRAG);
+        }
+        Bubble b = mBubbleData.getOrCreateBubble(pendingIntent, user);
+        ProtoLog.v(WM_SHELL_BUBBLES, "expandStackAndSelectBubble - pendingIntent=%s",
+                pendingIntent);
+        if (b.isInflated()) {
+            mBubbleData.setSelectedBubbleAndExpandStack(b, updateLocation);
+        } else {
+            b.enable(Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE);
+            inflateAndAdd(b, /* suppressFlyout= */ true, /* showInShade= */ false, updateLocation);
+        }
+    }
+
+    /**
      * Expands and selects a bubble created from a running task in a different mode.
      *
      * @param taskInfo the task.
+     * @param dragData optional information about the task when it is being dragged into a bubble
      */
-    public void expandStackAndSelectBubble(ActivityManager.RunningTaskInfo taskInfo) {
+    public void expandStackAndSelectBubble(ActivityManager.RunningTaskInfo taskInfo,
+            @Nullable BubbleTransitions.DragData dragData) {
         if (!BubbleAnythingFlagHelper.enableBubbleToFullscreen()) return;
         Bubble b = mBubbleData.getOrCreateBubble(taskInfo); // Removes from overflow
         ProtoLog.v(WM_SHELL_BUBBLES, "expandStackAndSelectBubble - intent=%s", taskInfo.taskId);
         if (b.isInflated()) {
             mBubbleData.setSelectedBubbleAndExpandStack(b);
+            if (dragData != null && dragData.getPendingWct() != null) {
+                mTransitions.startTransition(TRANSIT_CHANGE,
+                        dragData.getPendingWct(), /* handler= */ null);
+            }
         } else {
             b.enable(Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE);
             // Lazy init stack view when a bubble is created
             ensureBubbleViewsAndWindowCreated();
             mBubbleTransitions.startConvertToBubble(b, taskInfo, mExpandedViewManager,
-                    mBubbleTaskViewFactory, mBubblePositioner, mLogger, mStackView, mLayerView,
-                    mBubbleIconFactory, mInflateSynchronously);
+                    mBubbleTaskViewFactory, mBubblePositioner, mStackView, mLayerView,
+                    mBubbleIconFactory, dragData, mInflateSynchronously);
         }
     }
 
@@ -1771,7 +1820,6 @@
                         mExpandedViewManager,
                         mBubbleTaskViewFactory,
                         mBubblePositioner,
-                        mLogger,
                         mStackView,
                         mLayerView,
                         mBubbleIconFactory,
@@ -1835,7 +1883,6 @@
                     mExpandedViewManager,
                     mBubbleTaskViewFactory,
                     mBubblePositioner,
-                    mLogger,
                     mStackView,
                     mLayerView,
                     mBubbleIconFactory,
@@ -1908,16 +1955,26 @@
 
     @VisibleForTesting
     public void inflateAndAdd(Bubble bubble, boolean suppressFlyout, boolean showInShade) {
+        inflateAndAdd(bubble, suppressFlyout, showInShade, /* bubbleBarLocation= */ null);
+    }
+
+    /**
+     * Inflates and adds a bubble. Updates Bubble Bar location if bubbles
+     * are shown in the Bubble Bar and the location is not null.
+     */
+    @VisibleForTesting
+    public void inflateAndAdd(Bubble bubble, boolean suppressFlyout, boolean showInShade,
+            @Nullable BubbleBarLocation bubbleBarLocation) {
         // Lazy init stack view when a bubble is created
         ensureBubbleViewsAndWindowCreated();
         bubble.setInflateSynchronously(mInflateSynchronously);
         bubble.inflate(
-                b -> mBubbleData.notificationEntryUpdated(b, suppressFlyout, showInShade),
+                b -> mBubbleData.notificationEntryUpdated(b, suppressFlyout, showInShade,
+                        bubbleBarLocation),
                 mContext,
                 mExpandedViewManager,
                 mBubbleTaskViewFactory,
                 mBubblePositioner,
-                mLogger,
                 mStackView,
                 mLayerView,
                 mBubbleIconFactory,
@@ -2247,7 +2304,8 @@
             ProtoLog.d(WM_SHELL_BUBBLES, "mBubbleDataListener#applyUpdate:"
                     + " added=%s removed=%b updated=%s orderChanged=%b expansionChanged=%b"
                     + " expanded=%b selectionChanged=%b selected=%s"
-                    + " suppressed=%s unsupressed=%s shouldShowEducation=%b showOverflowChanged=%b",
+                    + " suppressed=%s unsupressed=%s shouldShowEducation=%b showOverflowChanged=%b"
+                    + " bubbleBarLocation=%s",
                     update.addedBubble != null ? update.addedBubble.getKey() : "null",
                     !update.removedBubbles.isEmpty(),
                     update.updatedBubble != null ? update.updatedBubble.getKey() : "null",
@@ -2256,7 +2314,9 @@
                     update.selectedBubble != null ? update.selectedBubble.getKey() : "null",
                     update.suppressedBubble != null ? update.suppressedBubble.getKey() : "null",
                     update.unsuppressedBubble != null ? update.unsuppressedBubble.getKey() : "null",
-                    update.shouldShowEducation, update.showOverflowChanged);
+                    update.shouldShowEducation, update.showOverflowChanged,
+                    update.mBubbleBarLocation != null ? update.mBubbleBarLocation.toString()
+                            : "null");
 
             ensureBubbleViewsAndWindowCreated();
 
@@ -2761,13 +2821,13 @@
 
         @Override
         public void showShortcutBubble(ShortcutInfo info) {
-            mMainExecutor.execute(() -> mController.expandStackAndSelectBubble(info));
+            mMainExecutor.execute(() -> mController
+                    .expandStackAndSelectBubble(info, /* bubbleBarLocation = */ null));
         }
 
         @Override
         public void showAppBubble(Intent intent, UserHandle user) {
-            mMainExecutor.execute(() -> mController.expandStackAndSelectBubble(intent,
-                    user, /* bubbleBarLocation = */ null));
+            mMainExecutor.execute(() -> mController.expandStackAndSelectBubble(intent, user));
         }
 
         @Override
@@ -2890,7 +2950,7 @@
                     mShortcutIdToBubble.put(b.getShortcutId(), b);
                     updateBubbleSuppressedState(b);
 
-                    if (b.isNoteBubble()) {
+                    if (b.isNote()) {
                         mNoteBubbleTaskIds.put(b.getKey(), b.getTaskId());
                     }
                 }
@@ -2988,9 +3048,10 @@
 
         @Override
         public void expandStackAndSelectBubble(ShortcutInfo info) {
-            mMainExecutor.execute(() -> {
-                BubbleController.this.expandStackAndSelectBubble(info);
-            });
+            mMainExecutor.execute(() ->
+                    BubbleController.this
+                            .expandStackAndSelectBubble(info, /* bubbleBarLocation = */ null)
+            );
         }
 
         @Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java
index 96d0f6d..abcdb7e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java
@@ -43,6 +43,7 @@
 import com.android.wm.shell.bubbles.Bubbles.DismissReason;
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread;
 import com.android.wm.shell.shared.annotations.ShellMainThread;
+import com.android.wm.shell.shared.bubbles.BubbleBarLocation;
 import com.android.wm.shell.shared.bubbles.BubbleBarUpdate;
 import com.android.wm.shell.shared.bubbles.RemovedBubble;
 
@@ -91,6 +92,8 @@
         @Nullable Bubble suppressedBubble;
         @Nullable Bubble unsuppressedBubble;
         @Nullable String suppressedSummaryGroup;
+        @Nullable
+        BubbleBarLocation mBubbleBarLocation;
         // Pair with Bubble and @DismissReason Integer
         final List<Pair<Bubble, Integer>> removedBubbles = new ArrayList<>();
 
@@ -116,6 +119,7 @@
                     || unsuppressedBubble != null
                     || suppressedSummaryChanged
                     || suppressedSummaryGroup != null
+                    || mBubbleBarLocation != null
                     || showOverflowChanged;
         }
 
@@ -169,6 +173,7 @@
             }
             bubbleBarUpdate.showOverflowChanged = showOverflowChanged;
             bubbleBarUpdate.showOverflow = !overflowBubbles.isEmpty();
+            bubbleBarUpdate.bubbleBarLocation = mBubbleBarLocation;
             return bubbleBarUpdate;
         }
 
@@ -396,8 +401,23 @@
      * {@link #setExpanded(boolean)} immediately after, which will generate 2 separate updates.
      */
     public void setSelectedBubbleAndExpandStack(BubbleViewProvider bubble) {
+        setSelectedBubbleAndExpandStack(bubble, /* bubbleBarLocation = */ null);
+    }
+
+    /**
+     * Sets the selected bubble and expands it. Also updates bubble bar location if the
+     * bubbleBarLocation is not {@code null}
+     *
+     * <p>This dispatches a single state update for 3 changes and should be used instead of
+     * calling {@link BubbleController#setBubbleBarLocation(BubbleBarLocation, int)} followed by
+     * {@link #setSelectedBubbleAndExpandStack(BubbleViewProvider)} immediately after, which will
+     * generate 2 separate updates.
+     */
+    public void setSelectedBubbleAndExpandStack(BubbleViewProvider bubble,
+            @Nullable BubbleBarLocation bubbleBarLocation) {
         setSelectedBubbleInternal(bubble);
         setExpandedInternal(true);
+        mStateChange.mBubbleBarLocation = bubbleBarLocation;
         dispatchPendingChanges();
     }
 
@@ -471,6 +491,16 @@
         return bubbleToReturn;
     }
 
+    Bubble getOrCreateBubble(PendingIntent pendingIntent, UserHandle user) {
+        String bubbleKey = Bubble.getAppBubbleKeyForApp(pendingIntent.getCreatorPackage(), user);
+        Bubble bubbleToReturn = findAndRemoveBubbleFromOverflow(bubbleKey);
+        if (bubbleToReturn == null) {
+            bubbleToReturn = Bubble.createAppBubble(pendingIntent, user, mMainExecutor,
+                    mBgExecutor);
+        }
+        return bubbleToReturn;
+    }
+
     Bubble getOrCreateBubble(TaskInfo taskInfo) {
         UserHandle user = UserHandle.of(mCurrentUserId);
         String bubbleKey = Bubble.getAppBubbleKeyForTask(taskInfo);
@@ -503,13 +533,25 @@
     }
 
     /**
+     * Calls {@link #notificationEntryUpdated(Bubble, boolean, boolean, BubbleBarLocation)} passing
+     * {@code null} for bubbleBarLocation.
+     *
+     * @see #notificationEntryUpdated(Bubble, boolean, boolean, BubbleBarLocation)
+     */
+    void notificationEntryUpdated(Bubble bubble, boolean suppressFlyout, boolean showInShade) {
+        notificationEntryUpdated(bubble, suppressFlyout, showInShade, /* bubbleBarLocation = */
+                null);
+    }
+
+    /**
      * When this method is called it is expected that all info in the bubble has completed loading.
      * @see Bubble#inflate(BubbleViewInfoTask.Callback, Context, BubbleExpandedViewManager,
      * BubbleTaskViewFactory, BubblePositioner, BubbleLogger, BubbleStackView,
      * com.android.wm.shell.bubbles.bar.BubbleBarLayerView,
      * com.android.launcher3.icons.BubbleIconFactory, boolean)
      */
-    void notificationEntryUpdated(Bubble bubble, boolean suppressFlyout, boolean showInShade) {
+    void notificationEntryUpdated(Bubble bubble, boolean suppressFlyout, boolean showInShade,
+            @Nullable BubbleBarLocation bubbleBarLocation) {
         mPendingBubbles.remove(bubble.getKey()); // No longer pending once we're here
         Bubble prevBubble = getBubbleInStackWithKey(bubble.getKey());
         suppressFlyout |= !bubble.isTextChanged();
@@ -557,6 +599,7 @@
                 doSuppress(bubble);
             }
         }
+        mStateChange.mBubbleBarLocation = bubbleBarLocation;
         dispatchPendingChanges();
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEducationController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEducationController.kt
index bd47082..ed23986 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEducationController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEducationController.kt
@@ -83,4 +83,4 @@
 
 /** Convenience extension method to check if the bubble is a conversation bubble */
 private val BubbleViewProvider.isConversationBubble: Boolean
-    get() = if (this is Bubble) isConversation else false
+    get() = if (this is Bubble) isChat else false
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
index ad9ab7a..3f607a9 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
@@ -227,10 +227,11 @@
                             MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS);
 
                     final boolean isShortcutBubble = (mBubble.hasMetadataShortcutId()
-                            || (mBubble.getShortcutInfo() != null
+                            || (mBubble.isShortcut()
                             && BubbleAnythingFlagHelper.enableCreateAnyBubble()));
 
-                    if (mBubble.isAppBubble()) {
+                    // TODO - currently based on type, really it's what the "launch item" is.
+                    if (mBubble.isApp() || mBubble.isNote()) {
                         Context context =
                                 mContext.createContextAsUser(
                                         mBubble.getUser(), Context.CONTEXT_RESTRICTED);
@@ -284,7 +285,7 @@
             // The taskId is saved to use for removeTask, preventing appearance in recent tasks.
             mTaskId = taskId;
 
-            if (mBubble != null && mBubble.isNoteBubble()) {
+            if (mBubble != null && mBubble.isNote()) {
                 // Let the controller know sooner what the taskId is.
                 mManager.setNoteBubbleTaskId(mBubble.getKey(), mTaskId);
             }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleLogger.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleLogger.java
index 00b2f15..831f227 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleLogger.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleLogger.java
@@ -20,6 +20,8 @@
 import com.android.internal.logging.UiEventLogger;
 import com.android.internal.util.FrameworkStatsLog;
 
+import javax.inject.Inject;
+
 /**
  * Implementation of UiEventLogger for logging bubble UI events.
  *
@@ -169,6 +171,7 @@
         }
     }
 
+    @Inject
     public BubbleLogger(UiEventLogger uiEventLogger) {
         mUiEventLogger = uiEventLogger;
     }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflow.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflow.kt
index 086c919..d94f844 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflow.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleOverflow.kt
@@ -73,13 +73,11 @@
     fun initializeForBubbleBar(
         expandedViewManager: BubbleExpandedViewManager,
         positioner: BubblePositioner,
-        bubbleLogger: BubbleLogger,
     ) {
         createBubbleBarExpandedView()
             .initialize(
                 expandedViewManager,
                 positioner,
-                bubbleLogger,
                 /* isOverflow= */ true,
                 /* bubbleTaskView= */ null,
                 /* mainExecutor= */ null,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
index 3babc0d..dad627f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
@@ -1385,16 +1385,16 @@
     /**
      * Whether the selected bubble is conversation bubble
      */
-    private boolean isConversationBubble() {
+    private boolean isChat() {
         BubbleViewProvider bubble = mBubbleData.getSelectedBubble();
-        return bubble instanceof Bubble && ((Bubble) bubble).isConversation();
+        return bubble instanceof Bubble && ((Bubble) bubble).isChat();
     }
 
     /**
      * Whether the educational view should show for the expanded view "manage" menu.
      */
     private boolean shouldShowManageEdu() {
-        if (!isConversationBubble()) {
+        if (!isChat()) {
             // We only show user education for conversation bubbles right now
             return false;
         }
@@ -1441,7 +1441,7 @@
      * Whether education view should show for the collapsed stack.
      */
     private boolean shouldShowStackEdu() {
-        if (!isConversationBubble()) {
+        if (!isChat()) {
             // We only show user education for conversation bubbles right now
             return false;
         }
@@ -1976,7 +1976,7 @@
             return;
         }
 
-        if (firstBubble && bubble.isNoteBubble() && !mPositioner.hasUserModifiedDefaultPosition()) {
+        if (firstBubble && bubble.isNote() && !mPositioner.hasUserModifiedDefaultPosition()) {
             // If it's an note bubble and we don't have a previous resting position, update the
             // controllers to use the default position for the note bubble (it'd be different from
             // the position initialized with the controllers originally).
@@ -3322,20 +3322,16 @@
         // name and icon.
         if (show) {
             final Bubble bubble = mBubbleData.getBubbleInStackWithKey(mExpandedBubble.getKey());
-            if (bubble != null && !bubble.isAppBubble()) {
-                // Setup options for non app bubbles
+            if (bubble != null && bubble.isChat()) {
+                // Setup options for chat bubbles
                 mManageDontBubbleView.setVisibility(VISIBLE);
                 mManageSettingsIcon.setImageBitmap(bubble.getRawAppBadge());
                 mManageSettingsText.setText(getResources().getString(
                         R.string.bubbles_app_settings, bubble.getAppName()));
                 mManageSettingsView.setVisibility(VISIBLE);
             } else {
-                // Setup options for app bubbles
-                // App bubbles have no conversations
-                // so we don't show the option to not bubble conversation
+                // Not a chat bubble, so don't show conversation / notification settings
                 mManageDontBubbleView.setVisibility(GONE);
-                // App bubbles are not notification based
-                // so we don't show the option to go to notification settings
                 mManageSettingsView.setVisibility(GONE);
             }
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewHelper.java
index 0d89bb2..e47ac61 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewHelper.java
@@ -100,6 +100,7 @@
 
             // TODO: I notice inconsistencies in lifecycle
             // Post to keep the lifecycle normal
+            // TODO - currently based on type, really it's what the "launch item" is.
             mParentView.post(() -> {
                 ProtoLog.d(WM_SHELL_BUBBLES, "onInitialized: calling startActivity, bubble=%s",
                         getBubbleKey());
@@ -108,23 +109,32 @@
                     options.setPendingIntentBackgroundActivityStartMode(
                             MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS);
                     final boolean isShortcutBubble = (mBubble.hasMetadataShortcutId()
-                            || (mBubble.getShortcutInfo() != null
+                            || (mBubble.isShortcut()
                             && BubbleAnythingFlagHelper.enableCreateAnyBubble()));
                     if (mBubble.getPreparingTransition() != null) {
                         mBubble.getPreparingTransition().surfaceCreated();
-                    } else if (mBubble.isAppBubble()) {
+                    } else if (mBubble.isApp() || mBubble.isNote()) {
                         Context context =
                                 mContext.createContextAsUser(
                                         mBubble.getUser(), Context.CONTEXT_RESTRICTED);
-                        PendingIntent pi = PendingIntent.getActivity(
-                                context,
-                                /* requestCode= */ 0,
-                                mBubble.getIntent()
-                                        .addFlags(FLAG_ACTIVITY_MULTIPLE_TASK),
-                                PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
-                                /* options= */ null);
-                        mTaskView.startActivity(pi, /* fillInIntent= */ null, options,
-                                launchBounds);
+                        Intent fillInIntent = null;
+                        //first try get pending intent from the bubble
+                        PendingIntent pi = mBubble.getPendingIntent();
+                        if (pi == null) {
+                            // if null - create new one
+                            pi = PendingIntent.getActivity(
+                                    context,
+                                    /* requestCode= */ 0,
+                                    mBubble.getIntent()
+                                            .addFlags(FLAG_ACTIVITY_MULTIPLE_TASK),
+                                    PendingIntent.FLAG_IMMUTABLE
+                                            | PendingIntent.FLAG_UPDATE_CURRENT,
+                                    /* options= */ null);
+                        } else {
+                            fillInIntent = new Intent(pi.getIntent());
+                            fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
+                        }
+                        mTaskView.startActivity(pi, fillInIntent, options, launchBounds);
                     } else if (isShortcutBubble) {
                         options.setLaunchedFromBubble(true);
                         options.setApplyActivityFlagsForBubbles(true);
@@ -167,7 +177,7 @@
             // The taskId is saved to use for removeTask, preventing appearance in recent tasks.
             mTaskId = taskId;
 
-            if (mBubble != null && mBubble.isNoteBubble()) {
+            if (mBubble != null && mBubble.isNote()) {
                 // Let the controller know sooner what the taskId is.
                 mExpandedViewManager.setNoteBubbleTaskId(mBubble.getKey(), mTaskId);
             }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java
index 48b83ce..28227a1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java
@@ -22,6 +22,8 @@
 import static android.view.View.INVISIBLE;
 import static android.view.WindowManager.TRANSIT_CHANGE;
 
+import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManager;
@@ -90,13 +92,12 @@
      */
     public BubbleTransition startConvertToBubble(Bubble bubble, TaskInfo taskInfo,
             BubbleExpandedViewManager expandedViewManager, BubbleTaskViewFactory factory,
-            BubblePositioner positioner, BubbleLogger logger, BubbleStackView stackView,
+            BubblePositioner positioner, BubbleStackView stackView,
             BubbleBarLayerView layerView, BubbleIconFactory iconFactory,
-            boolean inflateSync) {
-        ConvertToBubble convert = new ConvertToBubble(bubble, taskInfo, mContext,
-                expandedViewManager, factory, positioner, logger, stackView, layerView, iconFactory,
-                inflateSync);
-        return convert;
+            DragData dragData, boolean inflateSync) {
+        return new ConvertToBubble(bubble, taskInfo, mContext,
+                expandedViewManager, factory, positioner, stackView, layerView, iconFactory,
+                dragData, inflateSync);
     }
 
     /**
@@ -150,6 +151,39 @@
     }
 
     /**
+     * Information about the task when it is being dragged to a bubble
+     */
+    public static class DragData {
+        private final Rect mBounds;
+        private final WindowContainerTransaction mPendingWct;
+
+        /**
+         * @param bounds bounds of the dragged task when the drag was released
+         * @param wct pending operations to be applied when finishing the drag
+         */
+        public DragData(@Nullable Rect bounds, @Nullable WindowContainerTransaction wct) {
+            mBounds = bounds;
+            mPendingWct = wct;
+        }
+
+        /**
+         * @return bounds of the dragged task when the drag was released
+         */
+        @Nullable
+        public Rect getBounds() {
+            return mBounds;
+        }
+
+        /**
+         * @return pending operations to be applied when finishing the drag
+         */
+        @Nullable
+        public WindowContainerTransaction getPendingWct() {
+            return mPendingWct;
+        }
+    }
+
+    /**
      * BubbleTransition that coordinates the process of a non-bubble task becoming a bubble. The
      * steps are as follows:
      *
@@ -168,6 +202,7 @@
     class ConvertToBubble implements Transitions.TransitionHandler, BubbleTransition {
         final BubbleBarLayerView mLayerView;
         Bubble mBubble;
+        @Nullable DragData mDragData;
         IBinder mTransition;
         Transitions.TransitionFinishCallback mFinishCb;
         WindowContainerTransaction mFinishWct = null;
@@ -182,11 +217,13 @@
 
         ConvertToBubble(Bubble bubble, TaskInfo taskInfo, Context context,
                 BubbleExpandedViewManager expandedViewManager, BubbleTaskViewFactory factory,
-                BubblePositioner positioner, BubbleLogger logger, BubbleStackView stackView,
-                BubbleBarLayerView layerView, BubbleIconFactory iconFactory, boolean inflateSync) {
+                BubblePositioner positioner, BubbleStackView stackView,
+                BubbleBarLayerView layerView, BubbleIconFactory iconFactory,
+                @Nullable DragData dragData, boolean inflateSync) {
             mBubble = bubble;
             mTaskInfo = taskInfo;
             mLayerView = layerView;
+            mDragData = dragData;
             mBubble.setInflateSynchronously(inflateSync);
             mBubble.setPreparingTransition(this);
             mBubble.inflate(
@@ -195,7 +232,6 @@
                     expandedViewManager,
                     factory,
                     positioner,
-                    logger,
                     stackView,
                     layerView,
                     iconFactory,
@@ -210,6 +246,9 @@
             final Rect launchBounds = new Rect();
             mLayerView.getExpandedViewRestBounds(launchBounds);
             WindowContainerTransaction wct = new WindowContainerTransaction();
+            if (mDragData != null && mDragData.getPendingWct() != null) {
+                wct.merge(mDragData.getPendingWct(), true);
+            }
             if (mTaskInfo.getWindowingMode() == WINDOWING_MODE_MULTI_WINDOW) {
                 if (mTaskInfo.getParentTaskId() != INVALID_TASK_ID) {
                     wct.reparent(mTaskInfo.token, null, true);
@@ -228,7 +267,7 @@
                 state.mVisible = true;
             }
             mTaskViewTransitions.enqueueExternal(tv.getController(), () -> {
-                mTransition = mTransitions.startTransition(TRANSIT_CHANGE, wct, this);
+                mTransition = mTransitions.startTransition(TRANSIT_CONVERT_TO_BUBBLE, wct, this);
                 return mTransition;
             });
         }
@@ -294,6 +333,11 @@
             }
             mFinishCb = finishCallback;
 
+            if (mDragData != null && mDragData.getBounds() != null) {
+                // Override start bounds with the dragged task bounds
+                mStartBounds.set(mDragData.getBounds());
+            }
+
             // Now update state (and talk to launcher) in parallel with snapshot stuff
             mBubbleData.notificationEntryUpdated(mBubble, /* suppressFlyout= */ true,
                     /* showInShade= */ false);
@@ -305,6 +349,13 @@
                     mStartBounds.left - info.getRoot(0).getOffset().x,
                     mStartBounds.top - info.getRoot(0).getOffset().y);
             startTransaction.setLayer(mSnapshot, Integer.MAX_VALUE);
+
+            BubbleBarExpandedView bbev = mBubble.getBubbleBarExpandedView();
+            if (bbev != null) {
+                // Corners get reset during the animation. Add them back
+                startTransaction.setCornerRadius(mSnapshot, bbev.getRestingCornerRadius());
+            }
+
             startTransaction.apply();
 
             mTaskViewTransitions.onExternalDone(transition);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTask.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTask.java
index 96b6043..d78f459c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTask.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTask.java
@@ -73,7 +73,6 @@
     private final WeakReference<BubbleExpandedViewManager> mExpandedViewManager;
     private final WeakReference<BubbleTaskViewFactory> mTaskViewFactory;
     private final WeakReference<BubblePositioner> mPositioner;
-    private final WeakReference<BubbleLogger> mBubbleLogger;
     private final WeakReference<BubbleStackView> mStackView;
     private final WeakReference<BubbleBarLayerView> mLayerView;
     private final BubbleIconFactory mIconFactory;
@@ -95,7 +94,6 @@
             BubbleExpandedViewManager expandedViewManager,
             BubbleTaskViewFactory taskViewFactory,
             BubblePositioner positioner,
-            BubbleLogger bubbleLogger,
             @Nullable BubbleStackView stackView,
             @Nullable BubbleBarLayerView layerView,
             BubbleIconFactory factory,
@@ -108,7 +106,6 @@
         mExpandedViewManager = new WeakReference<>(expandedViewManager);
         mTaskViewFactory = new WeakReference<>(taskViewFactory);
         mPositioner = new WeakReference<>(positioner);
-        mBubbleLogger = new WeakReference<>(bubbleLogger);
         mStackView = new WeakReference<>(stackView);
         mLayerView = new WeakReference<>(layerView);
         mIconFactory = factory;
@@ -224,7 +221,7 @@
                 ProtoLog.v(WM_SHELL_BUBBLES, "Task initializing bubble bar expanded view key=%s",
                         mBubble.getKey());
                 viewInfo.bubbleBarExpandedView.initialize(mExpandedViewManager.get(),
-                        mPositioner.get(), mBubbleLogger.get(), false /* isOverflow */,
+                        mPositioner.get(), false /* isOverflow */,
                         viewInfo.taskView, mMainExecutor, mBgExecutor,
                         new RegionSamplingProvider() {
                             @Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskLegacy.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskLegacy.java
index c1da94c..06e02a1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskLegacy.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleViewInfoTaskLegacy.java
@@ -78,7 +78,6 @@
     private WeakReference<BubbleExpandedViewManager> mExpandedViewManager;
     private WeakReference<BubbleTaskViewFactory> mTaskViewFactory;
     private WeakReference<BubblePositioner> mPositioner;
-    private WeakReference<BubbleLogger>  mBubbleLogger;
     private WeakReference<BubbleStackView> mStackView;
     private WeakReference<BubbleBarLayerView> mLayerView;
     private BubbleIconFactory mIconFactory;
@@ -96,7 +95,6 @@
             BubbleExpandedViewManager expandedViewManager,
             BubbleTaskViewFactory taskViewFactory,
             BubblePositioner positioner,
-            BubbleLogger bubbleLogger,
             @Nullable BubbleStackView stackView,
             @Nullable BubbleBarLayerView layerView,
             BubbleIconFactory factory,
@@ -109,7 +107,6 @@
         mExpandedViewManager = new WeakReference<>(expandedViewManager);
         mTaskViewFactory = new WeakReference<>(taskViewFactory);
         mPositioner = new WeakReference<>(positioner);
-        mBubbleLogger = new WeakReference<>(bubbleLogger);
         mStackView = new WeakReference<>(stackView);
         mLayerView = new WeakReference<>(layerView);
         mIconFactory = factory;
@@ -127,9 +124,8 @@
         }
         if (mLayerView.get() != null) {
             return BubbleViewInfo.populateForBubbleBar(mContext.get(), mExpandedViewManager.get(),
-                    mTaskViewFactory.get(), mPositioner.get(), mBubbleLogger.get(),
-                    mLayerView.get(), mIconFactory, mBubble, mSkipInflation, mMainExecutor,
-                    mBackgroundExecutor);
+                    mTaskViewFactory.get(), mPositioner.get(), mLayerView.get(), mIconFactory,
+                    mBubble, mSkipInflation, mMainExecutor, mBackgroundExecutor);
         } else {
             return BubbleViewInfo.populate(mContext.get(), mExpandedViewManager.get(),
                     mTaskViewFactory.get(), mPositioner.get(), mStackView.get(), mIconFactory,
@@ -191,7 +187,6 @@
                 BubbleExpandedViewManager expandedViewManager,
                 BubbleTaskViewFactory taskViewFactory,
                 BubblePositioner positioner,
-                BubbleLogger bubbleLogger,
                 BubbleBarLayerView layerView,
                 BubbleIconFactory iconFactory,
                 Bubble b,
@@ -205,7 +200,7 @@
                 LayoutInflater inflater = LayoutInflater.from(c);
                 info.bubbleBarExpandedView = (BubbleBarExpandedView) inflater.inflate(
                         R.layout.bubble_bar_expanded_view, layerView, false /* attachToRoot */);
-                info.bubbleBarExpandedView.initialize(expandedViewManager, positioner, bubbleLogger,
+                info.bubbleBarExpandedView.initialize(expandedViewManager, positioner,
                         false /* isOverflow */, bubbleTaskView, mainExecutor, backgroundExecutor,
                         new RegionSamplingProvider() {
                             @Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/ResizabilityChecker.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/ResizabilityChecker.kt
index 1ccc05d..6b3a72f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/ResizabilityChecker.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/ResizabilityChecker.kt
@@ -22,7 +22,7 @@
 /**
  * Interface to check whether the activity backed by a specific intent is resizable.
  */
-interface ResizabilityChecker {
+fun interface ResizabilityChecker {
 
     /**
      * Returns whether the provided intent represents a resizable activity.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarDragListener.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarDragListener.kt
index afe5c87..3ff80b5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarDragListener.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarDragListener.kt
@@ -18,7 +18,6 @@
 
 import android.content.Intent
 import android.graphics.Rect
-import android.os.UserHandle
 import com.android.wm.shell.shared.bubbles.BubbleBarLocation
 
 /** Controller that takes care of the bubble bar drag events. */
@@ -31,11 +30,7 @@
     fun onItemDraggedOutsideBubbleBarDropZone()
 
     /** Called when the drop event happens over the bubble bar drop zone. */
-    fun onItemDroppedOverBubbleBarDragZone(
-        location: BubbleBarLocation,
-        intent: Intent,
-        userHandle: UserHandle
-    )
+    fun onItemDroppedOverBubbleBarDragZone(location: BubbleBarLocation, itemIntent: Intent)
 
     /**
      * Returns mapping of the bubble bar locations to the corresponding
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java
index ac5b9c9..6798a88 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedView.java
@@ -53,6 +53,8 @@
 import java.util.concurrent.Executor;
 import java.util.function.Supplier;
 
+import javax.inject.Inject;
+
 /** Expanded view of a bubble when it's part of the bubble bar. */
 public class BubbleBarExpandedView extends FrameLayout implements BubbleTaskViewHelper.Listener {
     /**
@@ -107,7 +109,6 @@
     private Bubble mBubble;
     private BubbleExpandedViewManager mManager;
     private BubblePositioner mPositioner;
-    private BubbleLogger mBubbleLogger;
     private boolean mIsOverflow;
     private BubbleTaskViewHelper mBubbleTaskViewHelper;
     private BubbleBarMenuViewController mMenuViewController;
@@ -177,6 +178,12 @@
         VISIBLE
     }
 
+    // Ideally this would be package private, but we have to set this in a fake for test and we
+    // don't yet have dagger set up for tests, so have to set manually
+    @VisibleForTesting
+    @Inject
+    public BubbleLogger bubbleLogger;
+
     public BubbleBarExpandedView(Context context) {
         this(context, null);
     }
@@ -218,7 +225,6 @@
     /** Initializes the view, must be called before doing anything else. */
     public void initialize(BubbleExpandedViewManager expandedViewManager,
             BubblePositioner positioner,
-            BubbleLogger bubbleLogger,
             boolean isOverflow,
             @Nullable BubbleTaskView bubbleTaskView,
             @Nullable Executor mainExecutor,
@@ -226,7 +232,6 @@
             @Nullable RegionSamplingProvider regionSamplingProvider) {
         mManager = expandedViewManager;
         mPositioner = positioner;
-        mBubbleLogger = bubbleLogger;
         mIsOverflow = isOverflow;
         mMainExecutor = mainExecutor;
         mBackgroundExecutor = backgroundExecutor;
@@ -290,20 +295,20 @@
                 if (mListener != null) {
                     mListener.onUnBubbleConversation(bubble.getKey());
                 }
-                mBubbleLogger.log(bubble, BubbleLogger.Event.BUBBLE_BAR_APP_MENU_OPT_OUT);
+                bubbleLogger.log(bubble, BubbleLogger.Event.BUBBLE_BAR_APP_MENU_OPT_OUT);
             }
 
             @Override
             public void onOpenAppSettings(Bubble bubble) {
                 mManager.collapseStack();
                 mContext.startActivityAsUser(bubble.getSettingsIntent(mContext), bubble.getUser());
-                mBubbleLogger.log(bubble, BubbleLogger.Event.BUBBLE_BAR_APP_MENU_GO_TO_SETTINGS);
+                bubbleLogger.log(bubble, BubbleLogger.Event.BUBBLE_BAR_APP_MENU_GO_TO_SETTINGS);
             }
 
             @Override
             public void onDismissBubble(Bubble bubble) {
                 mManager.dismissBubble(bubble, Bubbles.DISMISS_USER_GESTURE);
-                mBubbleLogger.log(bubble, BubbleLogger.Event.BUBBLE_BAR_BUBBLE_DISMISSED_APP_MENU);
+                bubbleLogger.log(bubble, BubbleLogger.Event.BUBBLE_BAR_BUBBLE_DISMISSED_APP_MENU);
             }
 
             @Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
index aa42de6..e3b0872 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
@@ -524,8 +524,8 @@
      * Skips logging if it is {@link BubbleOverflow}.
      */
     private void logBubbleEvent(BubbleLogger.Event event) {
-        if (mExpandedBubble != null && mExpandedBubble instanceof Bubble bubble) {
-            mBubbleLogger.log(bubble, event);
+        if (mExpandedBubble != null && mExpandedBubble instanceof Bubble) {
+            mBubbleLogger.log((Bubble) mExpandedBubble, event);
         }
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarMenuViewController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarMenuViewController.java
index 5f437d4..b7761ec 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarMenuViewController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarMenuViewController.java
@@ -222,7 +222,7 @@
         Resources resources = mContext.getResources();
         int tintColor = mContext.getColor(com.android.internal.R.color.materialColorOnSurface);
 
-        if (bubble.isConversation()) {
+        if (bubble.isChat()) {
             // Don't bubble conversation action
             menuActions.add(new BubbleBarMenuView.MenuAction(
                     Icon.createWithResource(mContext, R.drawable.bubble_ic_stop_bubble),
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMComponent.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMComponent.java
index 151dc43..ed5bebb 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMComponent.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMComponent.java
@@ -23,6 +23,7 @@
 import com.android.wm.shell.appzoomout.AppZoomOut;
 import com.android.wm.shell.back.BackAnimation;
 import com.android.wm.shell.bubbles.Bubbles;
+import com.android.wm.shell.bubbles.bar.BubbleBarExpandedView;
 import com.android.wm.shell.desktopmode.DesktopMode;
 import com.android.wm.shell.displayareahelper.DisplayAreaHelper;
 import com.android.wm.shell.keyguard.KeyguardTransitions;
@@ -72,6 +73,8 @@
         getShell().onInit();
     }
 
+    // Interfaces provided to SysUI
+
     @WMSingleton
     ShellInterface getShell();
 
@@ -116,4 +119,9 @@
 
     @WMSingleton
     Optional<AppZoomOut> getAppZoomOut();
+
+    // Injector methods to support field injection
+
+    /** Injector method for {@link BubbleBarExpandedView}. */
+    void inject(BubbleBarExpandedView bubbleBarExpandedView);
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
index 43f1a10..0e6481b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
@@ -581,12 +581,15 @@
             ShellTaskOrganizer shellTaskOrganizer,
             SyncTransactionQueue syncQueue,
             Optional<RecentTasksController> recentTasksOptional,
-            Optional<WindowDecorViewModel> windowDecorViewModelOptional) {
+            Optional<WindowDecorViewModel> windowDecorViewModelOptional,
+            Optional<DesktopWallpaperActivityTokenProvider>
+                    desktopWallpaperActivityTokenProviderOptional) {
         if (fullscreenTaskListener.isPresent()) {
             return fullscreenTaskListener.get();
         } else {
             return new FullscreenTaskListener(shellInit, shellTaskOrganizer, syncQueue,
-                    recentTasksOptional, windowDecorViewModelOptional);
+                    recentTasksOptional, windowDecorViewModelOptional,
+                    desktopWallpaperActivityTokenProviderOptional);
         }
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index b2b99d6..35475c7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -134,6 +134,7 @@
 import com.android.wm.shell.shared.TransactionPool;
 import com.android.wm.shell.shared.annotations.ShellAnimationThread;
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread;
+import com.android.wm.shell.shared.annotations.ShellDesktopThread;
 import com.android.wm.shell.shared.annotations.ShellMainThread;
 import com.android.wm.shell.shared.desktopmode.DesktopModeCompatPolicy;
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
@@ -750,6 +751,7 @@
             MultiInstanceHelper multiInstanceHelper,
             @ShellMainThread ShellExecutor mainExecutor,
             @ShellMainThread Handler mainHandler,
+            @ShellDesktopThread ShellExecutor desktopExecutor,
             Optional<DesktopTasksLimiter> desktopTasksLimiter,
             Optional<RecentTasksController> recentTasksController,
             InteractionJankMonitor interactionJankMonitor,
@@ -789,6 +791,7 @@
                 recentsTransitionHandler,
                 multiInstanceHelper,
                 mainExecutor,
+                desktopExecutor,
                 desktopTasksLimiter,
                 recentTasksController.orElse(null),
                 interactionJankMonitor,
@@ -914,12 +917,16 @@
             Context context,
             Transitions transitions,
             RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer,
-            InteractionJankMonitor interactionJankMonitor) {
+            @DynamicOverride DesktopUserRepositories desktopUserRepositories,
+            InteractionJankMonitor interactionJankMonitor,
+            Optional<BubbleController> bubbleController) {
         return ENABLE_DESKTOP_WINDOWING_ENTER_TRANSITIONS_BUGFIX.isTrue()
                 ? new SpringDragToDesktopTransitionHandler(
-                        context, transitions, rootTaskDisplayAreaOrganizer, interactionJankMonitor)
+                context, transitions, rootTaskDisplayAreaOrganizer, desktopUserRepositories,
+                interactionJankMonitor, bubbleController)
                 : new DefaultDragToDesktopTransitionHandler(
-                        context, transitions, rootTaskDisplayAreaOrganizer, interactionJankMonitor);
+                        context, transitions, rootTaskDisplayAreaOrganizer, desktopUserRepositories,
+                        interactionJankMonitor, bubbleController);
     }
 
     @WMSingleton
@@ -1303,7 +1310,8 @@
             WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
             DesktopWindowingEducationTooltipController desktopWindowingEducationTooltipController,
             @ShellMainThread CoroutineScope applicationScope,
-            @ShellBackgroundThread MainCoroutineDispatcher backgroundDispatcher) {
+            @ShellBackgroundThread MainCoroutineDispatcher backgroundDispatcher,
+            DesktopModeUiEventLogger desktopModeUiEventLogger) {
         return new AppHandleEducationController(
                 context,
                 appHandleEducationFilter,
@@ -1311,7 +1319,8 @@
                 windowDecorCaptionHandleRepository,
                 desktopWindowingEducationTooltipController,
                 applicationScope,
-                backgroundDispatcher);
+                backgroundDispatcher,
+                desktopModeUiEventLogger);
     }
 
     @WMSingleton
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt
index b96b9d2..b9cb32d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt
@@ -149,7 +149,25 @@
         @UiEvent(doc = "Enter multi-instance by using the New Window button")
         DESKTOP_WINDOW_MULTI_INSTANCE_NEW_WINDOW_CLICK(2069),
         @UiEvent(doc = "Enter multi-instance by clicking an icon in the Manage Windows menu")
-        DESKTOP_WINDOW_MULTI_INSTANCE_MANAGE_WINDOWS_ICON_CLICK(2070);
+        DESKTOP_WINDOW_MULTI_INSTANCE_MANAGE_WINDOWS_ICON_CLICK(2070),
+        @UiEvent(doc = "Education tooltip on the app handle is shown")
+        APP_HANDLE_EDUCATION_TOOLTIP_SHOWN(2097),
+        @UiEvent(doc = "Education tooltip on the app handle is clicked")
+        APP_HANDLE_EDUCATION_TOOLTIP_CLICKED(2098),
+        @UiEvent(doc = "Education tooltip on the app handle is dismissed by the user")
+        APP_HANDLE_EDUCATION_TOOLTIP_DISMISSED(2099),
+        @UiEvent(doc = "Enter desktop mode education tooltip on the app handle menu is shown")
+        ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_SHOWN(2100),
+        @UiEvent(doc = "Enter desktop mode education tooltip on the app handle menu is clicked")
+        ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_CLICKED(2101),
+        @UiEvent(doc = "Enter desktop mode education tooltip is dismissed by the user")
+        ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_DISMISSED(2102),
+        @UiEvent(doc = "Exit desktop mode education tooltip on the app header menu is shown")
+        EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_SHOWN(2103),
+        @UiEvent(doc = "Exit desktop mode education tooltip on the app header menu is clicked")
+        EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_CLICKED(2104),
+        @UiEvent(doc = "Exit desktop mode education tooltip is dismissed by the user")
+        EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_DISMISSED(2105);
 
         override fun getId(): Int = mId
     }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUtils.kt
index 9019134..9b850de6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUtils.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUtils.kt
@@ -18,8 +18,10 @@
 
 package com.android.wm.shell.desktopmode
 
+import android.annotation.DimenRes
 import android.app.ActivityManager.RunningTaskInfo
 import android.app.TaskInfo
+import android.content.Context
 import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
 import android.content.pm.ActivityInfo.isFixedOrientationLandscape
 import android.content.pm.ActivityInfo.isFixedOrientationPortrait
@@ -28,6 +30,7 @@
 import android.graphics.Rect
 import android.os.SystemProperties
 import android.util.Size
+import com.android.wm.shell.R
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayLayout
 
@@ -53,10 +56,12 @@
  * aspect ratio, orientation and resizability to calculate an area this is compatible with the
  * applications previous configuration.
  */
+@JvmOverloads
 fun calculateInitialBounds(
     displayLayout: DisplayLayout,
     taskInfo: RunningTaskInfo,
     scale: Float = DESKTOP_MODE_INITIAL_BOUNDS_SCALE,
+    captionInsets: Int = 0,
 ): Rect {
     val screenBounds = Rect(0, 0, displayLayout.width(), displayLayout.height())
     val appAspectRatio = calculateAspectRatio(taskInfo)
@@ -92,7 +97,7 @@
                 } else {
                     // If activity is unresizeable, regardless of orientation, calculate maximum
                     // size (within the ideal size) maintaining original aspect ratio.
-                    maximizeSizeGivenAspectRatio(taskInfo, idealSize, appAspectRatio)
+                    maximizeSizeGivenAspectRatio(taskInfo, idealSize, appAspectRatio, captionInsets)
                 }
             }
             ORIENTATION_PORTRAIT -> {
@@ -119,11 +124,17 @@
                             taskInfo,
                             Size(customPortraitWidthForLandscapeApp, idealSize.height),
                             appAspectRatio,
+                            captionInsets,
                         )
                     } else {
                         // For portrait unresizeable activities, calculate maximum size (within the
                         // ideal size) maintaining original aspect ratio.
-                        maximizeSizeGivenAspectRatio(taskInfo, idealSize, appAspectRatio)
+                        maximizeSizeGivenAspectRatio(
+                            taskInfo,
+                            idealSize,
+                            appAspectRatio,
+                            captionInsets,
+                        )
                     }
                 }
             }
@@ -148,11 +159,16 @@
     } else {
         // if non-resizable then calculate max bounds according to aspect ratio
         val activityAspectRatio = calculateAspectRatio(taskInfo)
+        val captionInsets =
+            taskInfo.configuration.windowConfiguration.appBounds?.let {
+                it.top - taskInfo.configuration.windowConfiguration.bounds.top
+            } ?: 0
         val newSize =
             maximizeSizeGivenAspectRatio(
                 taskInfo,
                 Size(stableBounds.width(), stableBounds.height()),
                 activityAspectRatio,
+                captionInsets,
             )
         return centerInArea(newSize, stableBounds, stableBounds.left, stableBounds.top)
     }
@@ -166,8 +182,9 @@
     taskInfo: RunningTaskInfo,
     targetArea: Size,
     aspectRatio: Float,
+    captionInsets: Int = 0,
 ): Size {
-    val targetHeight = targetArea.height
+    val targetHeight = targetArea.height - captionInsets
     val targetWidth = targetArea.width
     val finalHeight: Int
     val finalWidth: Int
@@ -191,13 +208,18 @@
             finalHeight = (finalWidth / aspectRatio).toInt()
         }
     }
-    return Size(finalWidth, finalHeight)
+    return Size(finalWidth, finalHeight + captionInsets)
 }
 
 /** Calculates the aspect ratio of an activity from its fullscreen bounds. */
 fun calculateAspectRatio(taskInfo: RunningTaskInfo): Float {
-    if (taskInfo.appCompatTaskInfo.topActivityAppBounds.isEmpty) return 1f
-    val appBounds = taskInfo.appCompatTaskInfo.topActivityAppBounds
+    val appBounds =
+        if (taskInfo.appCompatTaskInfo.topActivityAppBounds.isEmpty) {
+            taskInfo.configuration.windowConfiguration.appBounds
+                ?: taskInfo.configuration.windowConfiguration.bounds
+        } else {
+            taskInfo.appCompatTaskInfo.topActivityAppBounds
+        }
     return maxOf(appBounds.height(), appBounds.width()) /
         minOf(appBounds.height(), appBounds.width()).toFloat()
 }
@@ -233,6 +255,13 @@
     return taskBounds == stableBounds
 }
 
+/** Returns the app header height in desktop mode in pixels. */
+fun getAppHeaderHeight(context: Context): Int =
+    context.resources.getDimensionPixelSize(getAppHeaderHeightId())
+
+/** Returns the resource id of the app header height in desktop mode. */
+@DimenRes fun getAppHeaderHeightId(): Int = R.dimen.desktop_mode_freeform_decor_caption_height
+
 /**
  * Calculates the desired initial bounds for applications in desktop windowing. This is done as a
  * scale of the screen bounds.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java
index 27aed17..aecbf1a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java
@@ -18,9 +18,6 @@
 
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
-import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-import static android.view.WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 
 import static com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.IndicatorType.NO_INDICATOR;
 import static com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.IndicatorType.TO_DESKTOP_INDICATOR;
@@ -28,37 +25,27 @@
 import static com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_LEFT_INDICATOR;
 import static com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_RIGHT_INDICATOR;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.RectEvaluator;
-import android.animation.ValueAnimator;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.PixelFormat;
 import android.graphics.PointF;
 import android.graphics.Rect;
 import android.graphics.Region;
-import android.graphics.drawable.LayerDrawable;
-import android.util.DisplayMetrics;
 import android.view.SurfaceControl;
-import android.view.SurfaceControlViewHost;
-import android.view.View;
-import android.view.WindowManager;
-import android.view.WindowlessWindowManager;
-import android.view.animation.DecelerateInterpolator;
+import android.window.DesktopModeFlags;
 
 import androidx.annotation.VisibleForTesting;
 
 import com.android.internal.policy.SystemBarUtils;
-import com.android.window.flags.Flags;
 import com.android.wm.shell.R;
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
 import com.android.wm.shell.common.DisplayController;
 import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.common.ShellExecutor;
 import com.android.wm.shell.common.SyncTransactionQueue;
+import com.android.wm.shell.shared.annotations.ShellDesktopThread;
+import com.android.wm.shell.shared.annotations.ShellMainThread;
 import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper;
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider;
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
@@ -115,37 +102,54 @@
         }
     }
 
+    private final VisualIndicatorViewContainer mVisualIndicatorViewContainer;
+
     private final Context mContext;
     private final DisplayController mDisplayController;
-    private final RootTaskDisplayAreaOrganizer mRootTdaOrganizer;
     private final ActivityManager.RunningTaskInfo mTaskInfo;
-    private final SurfaceControl mTaskSurface;
-    private final @Nullable BubbleDropTargetBoundsProvider mBubbleBoundsProvider;
-    private SurfaceControl mLeash;
 
-    private final SyncTransactionQueue mSyncQueue;
-    private SurfaceControlViewHost mViewHost;
-
-    private View mView;
     private IndicatorType mCurrentType;
-    private DragStartState mDragStartState;
-    private boolean mIsReleased;
+    private final DragStartState mDragStartState;
 
-    public DesktopModeVisualIndicator(SyncTransactionQueue syncQueue,
+    public DesktopModeVisualIndicator(@ShellDesktopThread ShellExecutor desktopExecutor,
+            @ShellMainThread ShellExecutor mainExecutor,
+            SyncTransactionQueue syncQueue,
             ActivityManager.RunningTaskInfo taskInfo, DisplayController displayController,
             Context context, SurfaceControl taskSurface,
             RootTaskDisplayAreaOrganizer taskDisplayAreaOrganizer,
             DragStartState dragStartState,
             @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider) {
-        mSyncQueue = syncQueue;
+        SurfaceControl.Builder builder = new SurfaceControl.Builder();
+        taskDisplayAreaOrganizer.attachToDisplayArea(taskInfo.displayId, builder);
+        mVisualIndicatorViewContainer = new VisualIndicatorViewContainer(
+                DesktopModeFlags.ENABLE_DESKTOP_INDICATOR_IN_SEPARATE_THREAD_BUGFIX.isTrue()
+                        ? desktopExecutor : mainExecutor,
+                mainExecutor, builder, syncQueue, bubbleBoundsProvider);
         mTaskInfo = taskInfo;
         mDisplayController = displayController;
         mContext = context;
-        mTaskSurface = taskSurface;
-        mRootTdaOrganizer = taskDisplayAreaOrganizer;
-        mBubbleBoundsProvider = bubbleBoundsProvider;
         mCurrentType = NO_INDICATOR;
         mDragStartState = dragStartState;
+        mVisualIndicatorViewContainer.createView(
+                mContext,
+                mDisplayController.getDisplay(mTaskInfo.displayId),
+                mDisplayController.getDisplayLayout(mTaskInfo.displayId),
+                mTaskInfo,
+                taskSurface
+        );
+    }
+
+    /** Start the fade out animation, running the callback on the main thread once it is done. */
+    public void fadeOutIndicator(
+            @NonNull Runnable callback) {
+        mVisualIndicatorViewContainer.fadeOutIndicator(
+                mDisplayController.getDisplayLayout(mTaskInfo.displayId), mCurrentType, callback
+        );
+    }
+
+    /** Release the visual indicator view and its viewhost. */
+    public void releaseVisualIndicator() {
+        mVisualIndicatorViewContainer.releaseVisualIndicator();
     }
 
     /**
@@ -202,7 +206,10 @@
             }
         }
         if (mDragStartState != DragStartState.DRAGGED_INTENT) {
-            transitionIndicator(result);
+            mVisualIndicatorViewContainer.transitionIndicator(
+                    mTaskInfo, mDisplayController, mCurrentType, result
+            );
+            mCurrentType = result;
         }
         return result;
     }
@@ -283,338 +290,8 @@
                 layout.width(), layout.height());
     }
 
-    /**
-     * Create a fullscreen indicator with no animation
-     */
-    private void createView() {
-        if (mIsReleased) return;
-        final SurfaceControl.Transaction t = new SurfaceControl.Transaction();
-        final Resources resources = mContext.getResources();
-        final DisplayMetrics metrics = resources.getDisplayMetrics();
-        final int screenWidth;
-        final int screenHeight;
-        if (Flags.enableBugFixesForSecondaryDisplay()) {
-            final DisplayLayout displayLayout =
-                    mDisplayController.getDisplayLayout(mTaskInfo.displayId);
-            screenWidth = displayLayout.width();
-            screenHeight = displayLayout.height();
-        } else {
-            screenWidth = metrics.widthPixels;
-            screenHeight = metrics.heightPixels;
-        }
-        mView = new View(mContext);
-        final SurfaceControl.Builder builder = new SurfaceControl.Builder();
-        mRootTdaOrganizer.attachToDisplayArea(mTaskInfo.displayId, builder);
-        mLeash = builder
-                .setName("Desktop Mode Visual Indicator")
-                .setContainerLayer()
-                .setCallsite("DesktopModeVisualIndicator.createView")
-                .build();
-        t.show(mLeash);
-        final WindowManager.LayoutParams lp =
-                new WindowManager.LayoutParams(screenWidth, screenHeight, TYPE_APPLICATION,
-                        FLAG_NOT_FOCUSABLE, PixelFormat.TRANSPARENT);
-        lp.setTitle("Desktop Mode Visual Indicator");
-        lp.setTrustedOverlay();
-        lp.inputFeatures |= INPUT_FEATURE_NO_INPUT_CHANNEL;
-        final WindowlessWindowManager windowManager = new WindowlessWindowManager(
-                mTaskInfo.configuration, mLeash,
-                /* hostInputToken= */ null);
-        mViewHost = new SurfaceControlViewHost(mContext,
-                mDisplayController.getDisplay(mTaskInfo.displayId), windowManager,
-                "DesktopModeVisualIndicator");
-        mViewHost.setView(mView, lp);
-        // We want this indicator to be behind the dragged task, but in front of all others.
-        t.setRelativeLayer(mLeash, mTaskSurface, -1);
-
-        mSyncQueue.runInSync(transaction -> {
-            transaction.merge(t);
-            t.close();
-        });
-    }
-
     @VisibleForTesting
     Rect getIndicatorBounds() {
-        return mView.getBackground().getBounds();
-    }
-
-    /**
-     * Fade indicator in as provided type. Animator fades it in while expanding the bounds outwards.
-     */
-    private void fadeInIndicator(IndicatorType type) {
-        mView.setBackgroundResource(R.drawable.desktop_windowing_transition_background);
-        final VisualIndicatorAnimator animator = VisualIndicatorAnimator
-                .fadeBoundsIn(mView, type,
-                        mDisplayController.getDisplayLayout(mTaskInfo.displayId),
-                        mBubbleBoundsProvider);
-        animator.start();
-        mCurrentType = type;
-    }
-
-    /**
-     * Fade out indicator without fully releasing it. Animator fades it out while shrinking bounds.
-     *
-     * @param finishCallback called when animation ends or gets cancelled
-     */
-    void fadeOutIndicator(@Nullable Runnable finishCallback) {
-        if (mCurrentType == NO_INDICATOR) {
-            // In rare cases, fade out can be requested before the indicator has determined its
-            // initial type and started animating in. In this case, no animator is needed.
-            finishCallback.run();
-            return;
-        }
-        final VisualIndicatorAnimator animator = VisualIndicatorAnimator
-                .fadeBoundsOut(mView, mCurrentType,
-                        mDisplayController.getDisplayLayout(mTaskInfo.displayId),
-                        mBubbleBoundsProvider);
-        animator.start();
-        if (finishCallback != null) {
-            animator.addListener(new AnimatorListenerAdapter() {
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    finishCallback.run();
-                }
-            });
-        }
-        mCurrentType = NO_INDICATOR;
-    }
-
-    /**
-     * Takes existing indicator and animates it to bounds reflecting a new indicator type.
-     */
-    private void transitionIndicator(IndicatorType newType) {
-        if (mCurrentType == newType) return;
-        if (mView == null) {
-            createView();
-        }
-        if (mCurrentType == NO_INDICATOR) {
-            fadeInIndicator(newType);
-        } else if (newType == NO_INDICATOR) {
-            fadeOutIndicator(/* finishCallback= */ null);
-        } else {
-            final VisualIndicatorAnimator animator = VisualIndicatorAnimator.animateIndicatorType(
-                    mView, mDisplayController.getDisplayLayout(mTaskInfo.displayId), mCurrentType,
-                    newType, mBubbleBoundsProvider);
-            mCurrentType = newType;
-            animator.start();
-        }
-    }
-
-    /**
-     * Release the indicator and its components when it is no longer needed.
-     */
-    public void releaseVisualIndicator(SurfaceControl.Transaction t) {
-        mIsReleased = true;
-        if (mViewHost == null) return;
-        if (mViewHost != null) {
-            mViewHost.release();
-            mViewHost = null;
-        }
-
-        if (mLeash != null) {
-            t.remove(mLeash);
-            mLeash = null;
-        }
-    }
-
-    /**
-     * Animator for Desktop Mode transitions which supports bounds and alpha animation.
-     */
-    private static class VisualIndicatorAnimator extends ValueAnimator {
-        private static final int FULLSCREEN_INDICATOR_DURATION = 200;
-        private static final float FULLSCREEN_SCALE_ADJUSTMENT_PERCENT = 0.015f;
-        private static final float INDICATOR_FINAL_OPACITY = 0.35f;
-        private static final int MAXIMUM_OPACITY = 255;
-
-        /**
-         * Determines how this animator will interact with the view's alpha:
-         * Fade in, fade out, or no change to alpha
-         */
-        private enum AlphaAnimType {
-            ALPHA_FADE_IN_ANIM, ALPHA_FADE_OUT_ANIM, ALPHA_NO_CHANGE_ANIM
-        }
-
-        private final View mView;
-        private final Rect mStartBounds;
-        private final Rect mEndBounds;
-        private final RectEvaluator mRectEvaluator;
-
-        private VisualIndicatorAnimator(View view, Rect startBounds,
-                Rect endBounds) {
-            mView = view;
-            mStartBounds = new Rect(startBounds);
-            mEndBounds = endBounds;
-            setFloatValues(0, 1);
-            mRectEvaluator = new RectEvaluator(new Rect());
-        }
-
-        private static VisualIndicatorAnimator fadeBoundsIn(
-                @NonNull View view, IndicatorType type, @NonNull DisplayLayout displayLayout,
-                @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider) {
-            final Rect endBounds = getIndicatorBounds(displayLayout, type, bubbleBoundsProvider);
-            final Rect startBounds = getMinBounds(endBounds);
-            view.getBackground().setBounds(startBounds);
-
-            final VisualIndicatorAnimator animator = new VisualIndicatorAnimator(
-                    view, startBounds, endBounds);
-            animator.setInterpolator(new DecelerateInterpolator());
-            setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_FADE_IN_ANIM);
-            return animator;
-        }
-
-        private static VisualIndicatorAnimator fadeBoundsOut(
-                @NonNull View view, IndicatorType type, @NonNull DisplayLayout displayLayout,
-                @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider) {
-            final Rect startBounds = getIndicatorBounds(displayLayout, type, bubbleBoundsProvider);
-            final Rect endBounds = getMinBounds(startBounds);
-            view.getBackground().setBounds(startBounds);
-
-            final VisualIndicatorAnimator animator = new VisualIndicatorAnimator(
-                    view, startBounds, endBounds);
-            animator.setInterpolator(new DecelerateInterpolator());
-            setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_FADE_OUT_ANIM);
-            return animator;
-        }
-
-        /**
-         * Create animator for visual indicator changing type (i.e., fullscreen to freeform,
-         * freeform to split, etc.)
-         *
-         * @param view                 the view for this indicator
-         * @param displayLayout        information about the display the transitioning task is
-         *                             currently on
-         * @param origType             the original indicator type
-         * @param newType              the new indicator type
-         * @param bubbleBoundsProvider provides bounds for bubbles indicators
-         */
-        private static VisualIndicatorAnimator animateIndicatorType(@NonNull View view,
-                @NonNull DisplayLayout displayLayout, IndicatorType origType, IndicatorType newType,
-                @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider) {
-            final Rect startBounds = getIndicatorBounds(displayLayout, origType,
-                    bubbleBoundsProvider);
-            final Rect endBounds = getIndicatorBounds(displayLayout, newType, bubbleBoundsProvider);
-            final VisualIndicatorAnimator animator = new VisualIndicatorAnimator(
-                    view, startBounds, endBounds);
-            animator.setInterpolator(new DecelerateInterpolator());
-            setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_NO_CHANGE_ANIM);
-            return animator;
-        }
-
-        /** Calculates the bounds the indicator should have when fully faded in. */
-        private static Rect getIndicatorBounds(DisplayLayout layout, IndicatorType type,
-                @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider) {
-            final Rect desktopStableBounds = new Rect();
-            layout.getStableBounds(desktopStableBounds);
-            final int padding = desktopStableBounds.top;
-            switch (type) {
-                case TO_FULLSCREEN_INDICATOR:
-                    desktopStableBounds.top += padding;
-                    desktopStableBounds.bottom -= padding;
-                    desktopStableBounds.left += padding;
-                    desktopStableBounds.right -= padding;
-                    return desktopStableBounds;
-                case TO_DESKTOP_INDICATOR:
-                    final float adjustmentPercentage = 1f
-                            - DesktopTasksController.DESKTOP_MODE_INITIAL_BOUNDS_SCALE;
-                    return new Rect((int) (adjustmentPercentage * desktopStableBounds.width() / 2),
-                            (int) (adjustmentPercentage * desktopStableBounds.height() / 2),
-                            (int) (desktopStableBounds.width()
-                                    - (adjustmentPercentage * desktopStableBounds.width() / 2)),
-                            (int) (desktopStableBounds.height()
-                                    - (adjustmentPercentage * desktopStableBounds.height() / 2)));
-                case TO_SPLIT_LEFT_INDICATOR:
-                    return new Rect(padding, padding,
-                            desktopStableBounds.width() / 2 - padding,
-                            desktopStableBounds.height());
-                case TO_SPLIT_RIGHT_INDICATOR:
-                    return new Rect(desktopStableBounds.width() / 2 + padding, padding,
-                            desktopStableBounds.width() - padding,
-                            desktopStableBounds.height());
-                case TO_BUBBLE_LEFT_INDICATOR:
-                    if (bubbleBoundsProvider == null) {
-                        return new Rect();
-                    }
-                    return bubbleBoundsProvider.getBubbleBarExpandedViewDropTargetBounds(
-                            /* onLeft= */ true);
-                case TO_BUBBLE_RIGHT_INDICATOR:
-                    if (bubbleBoundsProvider == null) {
-                        return new Rect();
-                    }
-                    return bubbleBoundsProvider.getBubbleBarExpandedViewDropTargetBounds(
-                            /* onLeft= */ false);
-                default:
-                    throw new IllegalArgumentException("Invalid indicator type provided.");
-            }
-        }
-
-        /**
-         * Add necessary listener for animation of indicator
-         */
-        private static void setupIndicatorAnimation(@NonNull VisualIndicatorAnimator animator,
-                AlphaAnimType animType) {
-            animator.addUpdateListener(a -> {
-                if (animator.mView != null) {
-                    animator.updateBounds(a.getAnimatedFraction(), animator.mView);
-                    if (animType == AlphaAnimType.ALPHA_FADE_IN_ANIM) {
-                        animator.updateIndicatorAlpha(a.getAnimatedFraction(), animator.mView);
-                    } else if (animType == AlphaAnimType.ALPHA_FADE_OUT_ANIM) {
-                        animator.updateIndicatorAlpha(1 - a.getAnimatedFraction(), animator.mView);
-                    }
-                } else {
-                    animator.cancel();
-                }
-            });
-            animator.addListener(new AnimatorListenerAdapter() {
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    animator.mView.getBackground().setBounds(animator.mEndBounds);
-                }
-            });
-            animator.setDuration(FULLSCREEN_INDICATOR_DURATION);
-        }
-
-        /**
-         * Update bounds of view based on current animation fraction.
-         * Use of delta is to animate bounds independently, in case we need to
-         * run multiple animations simultaneously.
-         *
-         * @param fraction fraction to use, compared against previous fraction
-         * @param view     the view to update
-         */
-        private void updateBounds(float fraction, View view) {
-            if (mStartBounds.equals(mEndBounds)) {
-                return;
-            }
-            final Rect currentBounds = mRectEvaluator.evaluate(fraction, mStartBounds, mEndBounds);
-            view.getBackground().setBounds(currentBounds);
-        }
-
-        /**
-         * Fade in the fullscreen indicator
-         *
-         * @param fraction current animation fraction
-         */
-        private void updateIndicatorAlpha(float fraction, View view) {
-            final LayerDrawable drawable = (LayerDrawable) view.getBackground();
-            drawable.findDrawableByLayerId(R.id.indicator_stroke)
-                    .setAlpha((int) (MAXIMUM_OPACITY * fraction));
-            drawable.findDrawableByLayerId(R.id.indicator_solid)
-                    .setAlpha((int) (MAXIMUM_OPACITY * fraction * INDICATOR_FINAL_OPACITY));
-        }
-
-        /**
-         * Return the minimum bounds of a visual indicator, to be used at the end of fading out
-         * and the start of fading in.
-         */
-        private static Rect getMinBounds(Rect maxBounds) {
-            return new Rect((int) (maxBounds.left
-                    + (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.width())),
-                    (int) (maxBounds.top
-                            + (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.height())),
-                    (int) (maxBounds.right
-                            - (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.width())),
-                    (int) (maxBounds.bottom
-                            - (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.height())));
-        }
+        return mVisualIndicatorViewContainer.getIndicatorBounds();
     }
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
index 8cf7cbd..c42d8dd 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
@@ -41,7 +41,6 @@
 import android.os.IBinder
 import android.os.SystemProperties
 import android.os.UserHandle
-import android.util.Size
 import android.view.Display.DEFAULT_DISPLAY
 import android.view.DragEvent
 import android.view.MotionEvent
@@ -117,6 +116,7 @@
 import com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_NOT_RUNNING
 import com.android.wm.shell.shared.TransitionUtil
 import com.android.wm.shell.shared.annotations.ExternalThread
+import com.android.wm.shell.shared.annotations.ShellDesktopThread
 import com.android.wm.shell.shared.annotations.ShellMainThread
 import com.android.wm.shell.shared.desktopmode.DesktopModeCompatPolicy
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
@@ -177,6 +177,7 @@
     private val recentsTransitionHandler: RecentsTransitionHandler,
     private val multiInstanceHelper: MultiInstanceHelper,
     @ShellMainThread private val mainExecutor: ShellExecutor,
+    @ShellDesktopThread private val desktopExecutor: ShellExecutor,
     private val desktopTasksLimiter: Optional<DesktopTasksLimiter>,
     private val recentTasksController: RecentTasksController?,
     private val interactionJankMonitor: InteractionJankMonitor,
@@ -203,26 +204,19 @@
     private var userId: Int
     private val desktopModeShellCommandHandler: DesktopModeShellCommandHandler =
         DesktopModeShellCommandHandler(this)
-    private val mOnAnimationFinishedCallback =
-        Consumer<SurfaceControl.Transaction> { t: SurfaceControl.Transaction ->
-            visualIndicator?.releaseVisualIndicator(t)
-            visualIndicator = null
-        }
+    private val mOnAnimationFinishedCallback = { releaseVisualIndicator() }
     private val dragToDesktopStateListener =
         object : DragToDesktopStateListener {
-            override fun onCommitToDesktopAnimationStart(tx: SurfaceControl.Transaction) {
-                removeVisualIndicator(tx)
+            override fun onCommitToDesktopAnimationStart() {
+                removeVisualIndicator()
             }
 
-            override fun onCancelToDesktopAnimationEnd(tx: SurfaceControl.Transaction) {
-                removeVisualIndicator(tx)
+            override fun onCancelToDesktopAnimationEnd() {
+                removeVisualIndicator()
             }
 
-            private fun removeVisualIndicator(tx: SurfaceControl.Transaction) {
-                visualIndicator?.fadeOutIndicator {
-                    visualIndicator?.releaseVisualIndicator(tx)
-                    visualIndicator = null
-                }
+            private fun removeVisualIndicator() {
+                visualIndicator?.fadeOutIndicator { releaseVisualIndicator() }
             }
         }
 
@@ -344,10 +338,22 @@
             DesktopModeFlags.INCLUDE_TOP_TRANSPARENT_FULLSCREEN_TASK_IN_DESKTOP_HEURISTIC
                 .isTrue() && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODALS_POLICY.isTrue()
         ) {
+            logV(
+                "isDesktopModeShowing: hasVisibleTasks=%s hasTopTransparentFullscreenTask=%s hasMinimizedPip=%s",
+                hasVisibleTasks,
+                hasTopTransparentFullscreenTask,
+                hasMinimizedPip,
+            )
             return hasVisibleTasks || hasTopTransparentFullscreenTask || hasMinimizedPip
         } else if (Flags.enableDesktopWindowingPip()) {
+            logV(
+                "isDesktopModeShowing: hasVisibleTasks=%s hasMinimizedPip=%s",
+                hasVisibleTasks,
+                hasMinimizedPip,
+            )
             return hasVisibleTasks || hasMinimizedPip
         }
+        logV("isDesktopModeShowing: hasVisibleTasks=%s", hasVisibleTasks)
         return hasVisibleTasks
     }
 
@@ -1223,7 +1229,6 @@
             // and toggle to the stable bounds.
             desktopTilingDecorViewModel.removeTaskIfTiled(taskInfo.displayId, taskInfo.taskId)
             taskRepository.saveBoundsBeforeMaximize(taskInfo.taskId, currentTaskBounds)
-
             destinationBounds.set(calculateMaximizeBounds(displayLayout, taskInfo))
         }
 
@@ -1288,23 +1293,6 @@
         )
     }
 
-    private fun getMaximizeBounds(taskInfo: RunningTaskInfo, stableBounds: Rect): Rect {
-        if (taskInfo.isResizeable) {
-            // if resizable then expand to entire stable bounds (full display minus insets)
-            return Rect(stableBounds)
-        } else {
-            // if non-resizable then calculate max bounds according to aspect ratio
-            val activityAspectRatio = calculateAspectRatio(taskInfo)
-            val newSize =
-                maximizeSizeGivenAspectRatio(
-                    taskInfo,
-                    Size(stableBounds.width(), stableBounds.height()),
-                    activityAspectRatio,
-                )
-            return centerInArea(newSize, stableBounds, stableBounds.left, stableBounds.top)
-        }
-    }
-
     private fun isMaximizedToStableBoundsEdges(
         taskInfo: RunningTaskInfo,
         stableBounds: Rect,
@@ -1666,11 +1654,16 @@
     private fun addWallpaperActivity(displayId: Int, wct: WindowContainerTransaction) {
         logV("addWallpaperActivity")
         if (ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER.isTrue()) {
+
+            // If the wallpaper activity for this display already exists, let's reorder it to top.
+            val wallpaperActivityToken = desktopWallpaperActivityTokenProvider.getToken(displayId)
+            if (wallpaperActivityToken != null) {
+                wct.reorder(wallpaperActivityToken, /* onTop= */ true)
+                return
+            }
+
             val intent = Intent(context, DesktopWallpaperActivity::class.java)
-            if (
-                desktopWallpaperActivityTokenProvider.getToken(displayId) == null &&
-                    Flags.enablePerDisplayDesktopWallpaperActivity()
-            ) {
+            if (Flags.enablePerDisplayDesktopWallpaperActivity()) {
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                 intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
             }
@@ -1775,13 +1768,8 @@
     }
 
     fun releaseVisualIndicator() {
-        val t = SurfaceControl.Transaction()
-        visualIndicator?.releaseVisualIndicator(t)
+        visualIndicator?.releaseVisualIndicator()
         visualIndicator = null
-        syncQueue.runInSync { transaction ->
-            transaction.merge(t)
-            t.close()
-        }
     }
 
     override fun getContext(): Context = context
@@ -2385,7 +2373,16 @@
     ): Rect {
         val bounds =
             if (ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS.isTrue) {
-                calculateInitialBounds(displayLayout, taskInfo)
+                // If caption insets should be excluded from app bounds, ensure caption insets
+                // are excluded from the ideal initial bounds when scaling non-resizeable apps.
+                // Caption insets stay fixed and don't scale with bounds.
+                val captionInsets =
+                    if (desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(taskInfo)) {
+                        getAppHeaderHeight(context)
+                    } else {
+                        0
+                    }
+                calculateInitialBounds(displayLayout, taskInfo, captionInsets = captionInsets)
             } else {
                 calculateDefaultDesktopTaskBounds(displayLayout)
             }
@@ -2682,15 +2679,22 @@
     }
 
     /** Requests a task be transitioned from whatever mode it's in to a bubble. */
-    fun requestFloat(taskInfo: RunningTaskInfo) {
+    @JvmOverloads
+    fun requestFloat(taskInfo: RunningTaskInfo, left: Boolean? = null) {
         val isDragging = dragToDesktopTransitionHandler.inProgress
         val shouldRequestFloat =
             taskInfo.isFullscreen || taskInfo.isFreeform || isDragging || taskInfo.isMultiWindow
         if (!shouldRequestFloat) return
         if (isDragging) {
             releaseVisualIndicator()
+            val cancelState =
+                if (left == true) DragToDesktopTransitionHandler.CancelState.CANCEL_BUBBLE_LEFT
+                else DragToDesktopTransitionHandler.CancelState.CANCEL_BUBBLE_RIGHT
+            dragToDesktopTransitionHandler.cancelDragToDesktopTransition(cancelState)
         } else {
-            bubbleController.ifPresent { it.expandStackAndSelectBubble(taskInfo) }
+            bubbleController.ifPresent {
+                it.expandStackAndSelectBubble(taskInfo, /* dragData= */ null)
+            }
         }
     }
 
@@ -2743,6 +2747,8 @@
         val indicator =
             visualIndicator
                 ?: DesktopModeVisualIndicator(
+                    desktopExecutor,
+                    mainExecutor,
                     syncQueue,
                     taskInfo,
                     displayController,
@@ -2968,10 +2974,11 @@
                 )
                 requestSplit(taskInfo, leftOrTop = false)
             }
-            IndicatorType.TO_BUBBLE_LEFT_INDICATOR,
+            IndicatorType.TO_BUBBLE_LEFT_INDICATOR -> {
+                requestFloat(taskInfo, left = true)
+            }
             IndicatorType.TO_BUBBLE_RIGHT_INDICATOR -> {
-                // TODO(b/388851898): move to bubble
-                cancelDragToDesktop(taskInfo)
+                requestFloat(taskInfo, left = false)
             }
         }
         return indicatorType
@@ -3084,6 +3091,7 @@
                     ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS
                 pendingIntentLaunchFlags =
                     Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK
+                splashScreenStyle = SPLASH_SCREEN_STYLE_ICON
             }
         if (windowingMode == WINDOWING_MODE_FULLSCREEN) {
             dragAndDropFullscreenCookie = Binder()
@@ -3092,7 +3100,12 @@
         val wct = WindowContainerTransaction()
         wct.sendPendingIntent(launchIntent, null, opts.toBundle())
         if (windowingMode == WINDOWING_MODE_FREEFORM) {
-            desktopModeDragAndDropTransitionHandler.handleDropEvent(wct)
+            if (DesktopModeFlags.ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX.isTrue()) {
+                // TODO b/376389593: Use a custom tab tearing transition/animation
+                startLaunchTransition(TRANSIT_OPEN, wct, launchingTaskId = null)
+            } else {
+                desktopModeDragAndDropTransitionHandler.handleDropEvent(wct)
+            }
         } else {
             transitions.startTransition(TRANSIT_OPEN, wct, null)
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopUserRepositories.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopUserRepositories.kt
index a5ba661..c10752d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopUserRepositories.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopUserRepositories.kt
@@ -90,6 +90,11 @@
         return desktopRepoByUserId.getOrCreate(profileId)
     }
 
+    fun getUserIdForProfile(profileId: Int): Int {
+        if (userIdToProfileIdsMap[userId]?.contains(profileId) == true) return userId
+        else return profileId
+    }
+
     /** Dumps [DesktopRepository] for each user. */
     fun dump(pw: PrintWriter, prefix: String) {
         desktopRepoByUserId.forEach { key, value ->
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DisplayDeskState.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DisplayDeskState.aidl
new file mode 100644
index 0000000..59add47
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DisplayDeskState.aidl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode;
+
+/**
+ * Defines the state of desks on a display whose ID is `displayId`, which is:
+ * - `canCreateDesks`: whether it's possible to create new desks on this display.
+ * - `activeDeskId`: the currently active desk Id, or `-1` if none is active.
+ * - `deskId`: the list of desk Ids of the available desks on this display.
+ */
+parcelable DisplayDeskState {
+    int displayId;
+    boolean canCreateDesk;
+    int activeDeskId;
+    int[] deskIds;
+}
+
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt
index 2ac76f3..fc29498 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt
@@ -37,6 +37,8 @@
 import com.android.internal.protolog.ProtoLog
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer
 import com.android.wm.shell.animation.FloatProperties
+import com.android.wm.shell.bubbles.BubbleController
+import com.android.wm.shell.bubbles.BubbleTransitions
 import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_CANCEL_DRAG_TO_DESKTOP
 import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_END_DRAG_TO_DESKTOP
 import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP
@@ -49,10 +51,12 @@
 import com.android.wm.shell.shared.split.SplitScreenConstants.SplitPosition
 import com.android.wm.shell.splitscreen.SplitScreenController
 import com.android.wm.shell.transition.Transitions
+import com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE
 import com.android.wm.shell.transition.Transitions.TransitionHandler
 import com.android.wm.shell.windowdecor.MoveToDesktopAnimator
 import com.android.wm.shell.windowdecor.MoveToDesktopAnimator.Companion.DRAG_FREEFORM_SCALE
 import com.android.wm.shell.windowdecor.OnTaskResizeAnimationListener
+import java.util.Optional
 import java.util.function.Supplier
 import kotlin.math.max
 
@@ -70,7 +74,9 @@
     private val context: Context,
     private val transitions: Transitions,
     private val taskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
+    private val desktopUserRepositories: DesktopUserRepositories,
     protected val interactionJankMonitor: InteractionJankMonitor,
+    private val bubbleController: Optional<BubbleController>,
     protected val transactionSupplier: Supplier<SurfaceControl.Transaction>,
 ) : TransitionHandler {
 
@@ -127,15 +133,18 @@
                 pendingIntentCreatorBackgroundActivityStartMode =
                     ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED
             }
-        val taskUser = UserHandle.of(taskInfo.userId)
+        // If we are launching home for a profile of a user, just use the [userId] of that user
+        // instead of the [profileId] to create the context.
+        val userToLaunchWith =
+            UserHandle.of(desktopUserRepositories.getUserIdForProfile(taskInfo.userId))
         val pendingIntent =
             PendingIntent.getActivityAsUser(
-                context.createContextAsUser(taskUser, /* flags= */ 0),
+                context.createContextAsUser(userToLaunchWith, /* flags= */ 0),
                 /* requestCode= */ 0,
                 launchHomeIntent,
                 FLAG_MUTABLE or FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT or FILL_IN_COMPONENT,
                 options.toBundle(),
-                taskUser,
+                userToLaunchWith,
             )
         val wct = WindowContainerTransaction()
         // The app that is being dragged into desktop mode might cause new transitions, make this
@@ -237,6 +246,20 @@
             state.startTransitionFinishCb?.onTransitionFinished(/* wct= */ null)
             requestSplitFromScaledTask(splitPosition, wct)
             clearState()
+        } else if (
+            state.draggedTaskChange != null &&
+                (cancelState == CancelState.CANCEL_BUBBLE_LEFT ||
+                    cancelState == CancelState.CANCEL_BUBBLE_RIGHT)
+        ) {
+            if (!bubbleController.isPresent) {
+                startCancelAnimation()
+            } else {
+                // Animation is handled by BubbleController
+                val wct = WindowContainerTransaction()
+                restoreWindowOrder(wct, state)
+                // TODO(b/388851898): pass along information about left or right side
+                requestBubbleFromScaledTask(wct)
+            }
         } else {
             // There's no dragged task, this can happen when the "cancel" happened too quickly
             // before the "start" transition is even ready (like on a fling gesture). The
@@ -254,20 +277,25 @@
     ) {
         val state = requireTransitionState()
         val taskInfo = state.draggedTaskChange?.taskInfo ?: error("Expected non-null taskInfo")
+        val animatedTaskBounds = getAnimatedTaskBounds()
+        requestSplitSelect(wct, taskInfo, splitPosition, animatedTaskBounds)
+    }
+
+    private fun getAnimatedTaskBounds(): Rect {
+        val state = requireTransitionState()
+        val taskInfo = state.draggedTaskChange?.taskInfo ?: error("Expected non-null taskInfo")
         val taskBounds = Rect(taskInfo.configuration.windowConfiguration.bounds)
         val taskScale = state.dragAnimator.scale
         val scaledWidth = taskBounds.width() * taskScale
         val scaledHeight = taskBounds.height() * taskScale
         val dragPosition = PointF(state.dragAnimator.position)
         state.dragAnimator.cancelAnimator()
-        val animatedTaskBounds =
-            Rect(
-                dragPosition.x.toInt(),
-                dragPosition.y.toInt(),
-                (dragPosition.x + scaledWidth).toInt(),
-                (dragPosition.y + scaledHeight).toInt(),
-            )
-        requestSplitSelect(wct, taskInfo, splitPosition, animatedTaskBounds)
+        return Rect(
+            dragPosition.x.toInt(),
+            dragPosition.y.toInt(),
+            (dragPosition.x + scaledWidth).toInt(),
+            (dragPosition.y + scaledHeight).toInt(),
+        )
     }
 
     private fun requestSplitSelect(
@@ -290,6 +318,25 @@
         splitScreenController.requestEnterSplitSelect(taskInfo, wct, splitPosition, taskBounds)
     }
 
+    private fun requestBubbleFromScaledTask(wct: WindowContainerTransaction) {
+        // TODO(b/391928049): update density once we can drag from desktop to bubble
+        val state = requireTransitionState()
+        val taskInfo = state.draggedTaskChange?.taskInfo ?: error("Expected non-null taskInfo")
+        val taskBounds = getAnimatedTaskBounds()
+        state.dragAnimator.cancelAnimator()
+        requestBubble(wct, taskInfo, taskBounds)
+    }
+
+    private fun requestBubble(
+        wct: WindowContainerTransaction,
+        taskInfo: RunningTaskInfo,
+        taskBounds: Rect = Rect(taskInfo.configuration.windowConfiguration.bounds),
+    ) {
+        val controller =
+            bubbleController.orElseThrow { IllegalStateException("BubbleController not set") }
+        controller.expandStackAndSelectBubble(taskInfo, BubbleTransitions.DragData(taskBounds, wct))
+    }
+
     override fun startAnimation(
         transition: IBinder,
         info: TransitionInfo,
@@ -442,6 +489,16 @@
             state.startTransitionFinishTransaction?.apply()
             state.startTransitionFinishCb?.onTransitionFinished(/* wct= */ null)
             requestSplitSelect(wct, taskInfo, splitPosition)
+        } else if (
+            state.cancelState == CancelState.CANCEL_BUBBLE_LEFT ||
+                state.cancelState == CancelState.CANCEL_BUBBLE_RIGHT
+        ) {
+            val taskInfo =
+                state.draggedTaskChange?.taskInfo ?: error("Expected non-null task info.")
+            val wct = WindowContainerTransaction()
+            restoreWindowOrder(wct)
+            // TODO(b/388851898): pass along information about left or right side
+            requestBubble(wct, taskInfo)
         }
         return true
     }
@@ -472,6 +529,13 @@
             clearState()
             return
         }
+        // In case of bubble animation, finish the initial desktop drag animation, but keep the
+        // current animation running and have bubbles take over
+        if (info.type == TRANSIT_CONVERT_TO_BUBBLE) {
+            state.startTransitionFinishCb?.onTransitionFinished(/* wct= */ null)
+            clearState()
+            return
+        }
         val isCancelTransition =
             info.type == TRANSIT_DESKTOP_MODE_CANCEL_DRAG_TO_DESKTOP &&
                 transition == state.cancelTransitionToken &&
@@ -578,7 +642,7 @@
                 startPosition.y.toInt() + unscaledStartHeight,
             )
 
-        dragToDesktopStateListener?.onCommitToDesktopAnimationStart(startTransaction)
+        dragToDesktopStateListener?.onCommitToDesktopAnimationStart()
         // Accept the merge by applying the merging transaction (applied by #showResizeVeil)
         // and finish callback. Show the veil and position the task at the first frame before
         // starting the final animation.
@@ -709,7 +773,7 @@
                 addListener(
                     object : AnimatorListenerAdapter() {
                         override fun onAnimationEnd(animation: Animator) {
-                            dragToDesktopStateListener?.onCancelToDesktopAnimationEnd(tx)
+                            dragToDesktopStateListener?.onCancelToDesktopAnimationEnd()
                             // Start the cancel transition to restore order.
                             startCancelDragToDesktopTransition()
                         }
@@ -802,9 +866,9 @@
     )
 
     interface DragToDesktopStateListener {
-        fun onCommitToDesktopAnimationStart(tx: SurfaceControl.Transaction)
+        fun onCommitToDesktopAnimationStart()
 
-        fun onCancelToDesktopAnimationEnd(tx: SurfaceControl.Transaction)
+        fun onCancelToDesktopAnimationEnd()
     }
 
     sealed class TransitionState {
@@ -865,6 +929,10 @@
         CANCEL_SPLIT_LEFT,
         /** A cancel event where the task will request to enter split on the right side. */
         CANCEL_SPLIT_RIGHT,
+        /** A cancel event where the task will request to bubble on the left side. */
+        CANCEL_BUBBLE_LEFT,
+        /** A cancel event where the task will request to bubble on the right side. */
+        CANCEL_BUBBLE_RIGHT,
     }
 
     companion object {
@@ -881,7 +949,9 @@
     context: Context,
     transitions: Transitions,
     taskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
+    desktopUserRepositories: DesktopUserRepositories,
     interactionJankMonitor: InteractionJankMonitor,
+    bubbleController: Optional<BubbleController>,
     transactionSupplier: Supplier<SurfaceControl.Transaction> = Supplier {
         SurfaceControl.Transaction()
     },
@@ -890,7 +960,9 @@
         context,
         transitions,
         taskDisplayAreaOrganizer,
+        desktopUserRepositories,
         interactionJankMonitor,
+        bubbleController,
         transactionSupplier,
     ) {
 
@@ -917,7 +989,9 @@
     context: Context,
     transitions: Transitions,
     taskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
+    desktopUserRepositories: DesktopUserRepositories,
     interactionJankMonitor: InteractionJankMonitor,
+    bubbleController: Optional<BubbleController>,
     transactionSupplier: Supplier<SurfaceControl.Transaction> = Supplier {
         SurfaceControl.Transaction()
     },
@@ -926,7 +1000,9 @@
         context,
         transitions,
         taskDisplayAreaOrganizer,
+        desktopUserRepositories,
         interactionJankMonitor,
+        bubbleController,
         transactionSupplier,
     ) {
 
@@ -1005,7 +1081,7 @@
         val startBoundsWithOffset =
             Rect(startBounds).apply { offset(startPosition.x.toInt(), startPosition.y.toInt()) }
 
-        dragToDesktopStateListener?.onCommitToDesktopAnimationStart(startTransaction)
+        dragToDesktopStateListener?.onCommitToDesktopAnimationStart()
         // Accept the merge by applying the merging transaction (applied by #showResizeVeil)
         // and finish callback. Show the veil and position the task at the first frame before
         // starting the final animation.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandler.java
index f7f87ed..5ae1fca 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandler.java
@@ -50,9 +50,11 @@
 import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource;
 import com.android.wm.shell.transition.Transitions;
 
+import kotlin.Unit;
+import kotlin.jvm.functions.Function0;
+
 import java.util.ArrayList;
 import java.util.List;
-import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 
@@ -69,7 +71,7 @@
     @ShellMainThread
     private final Handler mHandler;
     private final List<IBinder> mPendingTransitionTokens = new ArrayList<>();
-    private Consumer<SurfaceControl.Transaction> mOnAnimationFinishedCallback;
+    private Function0<Unit> mOnAnimationFinishedCallback;
     private final Supplier<SurfaceControl.Transaction> mTransactionSupplier;
     private Point mPosition;
 
@@ -106,7 +108,7 @@
      */
     public void startTransition(@NonNull DesktopModeTransitionSource transitionSource,
             @NonNull WindowContainerTransaction wct, Point position,
-            Consumer<SurfaceControl.Transaction> onAnimationEndCallback) {
+            Function0<Unit> onAnimationEndCallback) {
         mPosition = position;
         mOnAnimationFinishedCallback = onAnimationEndCallback;
         final IBinder token = mTransitions.startTransition(getExitTransitionType(transitionSource),
@@ -192,7 +194,7 @@
                 @Override
                 public void onAnimationEnd(Animator animation) {
                     if (mOnAnimationFinishedCallback != null) {
-                        mOnAnimationFinishedCallback.accept(finishT);
+                        mOnAnimationFinishedCallback.invoke();
                     }
                     mInteractionJankMonitor.end(Cuj.CUJ_DESKTOP_MODE_EXIT_MODE);
                     mTransitions.getMainExecutor().execute(
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopTaskListener.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopTaskListener.aidl
index 6002a4d..7ed1581 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopTaskListener.aidl
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopTaskListener.aidl
@@ -16,27 +16,56 @@
 
 package com.android.wm.shell.desktopmode;
 
+import com.android.wm.shell.desktopmode.DisplayDeskState;
+
 /**
  * Allows external processes to register a listener in WMShell to get updates about desktop task
  * state.
  */
-interface IDesktopTaskListener {
+oneway interface IDesktopTaskListener {
+
+    /**
+     * Called once when the listener first gets connected to initialize it with the current state of
+     * desks in Shell.
+     */
+    void onListenerConnected(in DisplayDeskState[] displayDeskStates);
 
     /** Desktop tasks visibility has changed. Visible if at least 1 task is visible. */
-    oneway void onTasksVisibilityChanged(int displayId, int visibleTasksCount);
+    void onTasksVisibilityChanged(int displayId, int visibleTasksCount);
 
     /** @deprecated this is no longer supported. */
-    oneway void onStashedChanged(int displayId, boolean stashed);
+    void onStashedChanged(int displayId, boolean stashed);
 
     /**
      * Shows taskbar corner radius when running desktop tasks are updated if
      * [hasTasksRequiringTaskbarRounding] is true.
      */
-    oneway void onTaskbarCornerRoundingUpdate(boolean hasTasksRequiringTaskbarRounding);
+    void onTaskbarCornerRoundingUpdate(boolean hasTasksRequiringTaskbarRounding);
 
     /** Entering desktop mode transition is started, send the signal with transition duration. */
-    oneway void onEnterDesktopModeTransitionStarted(int transitionDuration);
+    void onEnterDesktopModeTransitionStarted(int transitionDuration);
 
     /** Exiting desktop mode transition is started, send the signal with transition duration. */
-    oneway void onExitDesktopModeTransitionStarted(int transitionDuration);
+    void onExitDesktopModeTransitionStarted(int transitionDuration);
+
+    /**
+     * Called when the conditions that allow the creation of a new desk on the display whose ID is
+     * `displayId` changes to `canCreateDesks`. It's also called when a new display is added.
+     */
+    void onCanCreateDesksChanged(int displayId, boolean canCreateDesks);
+
+    /** Called when a desk whose ID is `deskId` is added to the display whose ID is `displayId`. */
+    void onDeskAdded(int displayId, int deskId);
+
+    /**
+     * Called when a desk whose ID is `deskId` is removed from the display whose ID is `displayId`.
+     */
+    void onDeskRemoved(int displayId, int deskId);
+
+    /**
+     * Called when the active desk changes on the display whose ID is `displayId`.
+     * If `newActiveDesk` is -1, it means a desk is no longer active on the display.
+     * If `oldActiveDesk` is -1, it means a desk was not active on the display.
+     */
+    void onActiveDeskChanged(int displayId, int newActiveDesk, int oldActiveDesk);
 }
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
index afdda8f..47b3ae8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
@@ -3,7 +3,6 @@
 jorgegil@google.com
 madym@google.com
 pbdr@google.com
-tkachenkoi@google.com
 vaniadesmonda@google.com
 pragyabajoria@google.com
 uysalorhan@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt
new file mode 100644
index 0000000..9625e48
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt
@@ -0,0 +1,490 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode
+
+import android.animation.Animator
+import android.animation.AnimatorListenerAdapter
+import android.animation.RectEvaluator
+import android.animation.ValueAnimator
+import android.app.ActivityManager
+import android.content.Context
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.drawable.LayerDrawable
+import android.view.Display
+import android.view.SurfaceControl
+import android.view.SurfaceControlViewHost
+import android.view.View
+import android.view.WindowManager
+import android.view.WindowlessWindowManager
+import android.view.animation.DecelerateInterpolator
+import com.android.internal.annotations.VisibleForTesting
+import com.android.window.flags.Flags
+import com.android.wm.shell.R
+import com.android.wm.shell.common.DisplayController
+import com.android.wm.shell.common.DisplayLayout
+import com.android.wm.shell.common.ShellExecutor
+import com.android.wm.shell.common.SyncTransactionQueue
+import com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.IndicatorType
+import com.android.wm.shell.shared.annotations.ShellDesktopThread
+import com.android.wm.shell.shared.annotations.ShellMainThread
+import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider
+import com.android.wm.shell.windowdecor.WindowDecoration.SurfaceControlViewHostFactory
+
+/**
+ * Container for the view / viewhost of the indicator, ensuring it is created / animated off the
+ * main thread.
+ */
+private class VisualIndicatorViewContainer
+@JvmOverloads
+constructor(
+    @ShellDesktopThread private val desktopExecutor: ShellExecutor,
+    @ShellMainThread private val mainExecutor: ShellExecutor,
+    private val indicatorBuilder: SurfaceControl.Builder,
+    private val syncQueue: SyncTransactionQueue,
+    private val surfaceControlViewHostFactory: SurfaceControlViewHostFactory =
+        object : SurfaceControlViewHostFactory {},
+    private val bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+) {
+    @VisibleForTesting var indicatorView: View? = null
+    private var indicatorViewHost: SurfaceControlViewHost? = null
+    // Below variables and the SyncTransactionQueue are the only variables that should
+    // be accessed from shell main thread. Everything else should be used exclusively
+    // from the desktop thread.
+    private var indicatorLeash: SurfaceControl? = null
+    private var isReleased = false
+
+    /** Create a fullscreen indicator with no animation */
+    @ShellMainThread
+    fun createView(
+        context: Context,
+        display: Display,
+        layout: DisplayLayout,
+        taskInfo: ActivityManager.RunningTaskInfo,
+        taskSurface: SurfaceControl,
+    ) {
+        if (isReleased) return
+        desktopExecutor.execute {
+            val resources = context.resources
+            val metrics = resources.displayMetrics
+            val screenWidth: Int
+            val screenHeight: Int
+            if (Flags.enableBugFixesForSecondaryDisplay()) {
+                screenWidth = layout.width()
+                screenHeight = layout.height()
+            } else {
+                screenWidth = metrics.widthPixels
+                screenHeight = metrics.heightPixels
+            }
+            indicatorView = View(context)
+            val leash =
+                indicatorBuilder
+                    .setName("Desktop Mode Visual Indicator")
+                    .setContainerLayer()
+                    .setCallsite("DesktopModeVisualIndicator.createView")
+                    .build()
+            val lp =
+                WindowManager.LayoutParams(
+                    screenWidth,
+                    screenHeight,
+                    WindowManager.LayoutParams.TYPE_APPLICATION,
+                    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
+                    PixelFormat.TRANSPARENT,
+                )
+            lp.title = "Desktop Mode Visual Indicator"
+            lp.setTrustedOverlay()
+            lp.inputFeatures =
+                lp.inputFeatures or WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL
+            val windowManager =
+                WindowlessWindowManager(
+                    taskInfo.configuration,
+                    leash,
+                    /* hostInputTransferToken= */ null,
+                )
+            indicatorViewHost =
+                surfaceControlViewHostFactory.create(
+                    context,
+                    display,
+                    windowManager,
+                    "VisualIndicatorViewContainer",
+                )
+            indicatorView?.let { indicatorViewHost?.setView(it, lp) }
+            showIndicator(taskSurface, leash)
+        }
+    }
+
+    private fun showIndicator(taskSurface: SurfaceControl, leash: SurfaceControl) {
+        mainExecutor.execute {
+            indicatorLeash = leash
+            val t = SurfaceControl.Transaction()
+            t.show(indicatorLeash)
+            // We want this indicator to be behind the dragged task, but in front of all others.
+            t.setRelativeLayer(indicatorLeash, taskSurface, -1)
+            syncQueue.runInSync { transaction: SurfaceControl.Transaction ->
+                transaction.merge(t)
+                t.close()
+            }
+        }
+    }
+
+    @VisibleForTesting
+    fun getIndicatorBounds(): Rect {
+        return indicatorView?.background?.getBounds() ?: Rect()
+    }
+
+    /**
+     * Takes existing indicator and animates it to bounds reflecting a new indicator type. Should
+     * only be called from the main thread.
+     */
+    @ShellMainThread
+    fun transitionIndicator(
+        taskInfo: ActivityManager.RunningTaskInfo,
+        displayController: DisplayController,
+        currentType: IndicatorType,
+        newType: IndicatorType,
+    ) {
+        if (currentType == newType || isReleased) return
+        desktopExecutor.execute {
+            val layout =
+                displayController.getDisplayLayout(taskInfo.displayId)
+                    ?: error("Expected to find DisplayLayout for taskId${taskInfo.taskId}.")
+            if (currentType == IndicatorType.NO_INDICATOR) {
+                fadeInIndicator(layout, newType)
+            } else if (newType == IndicatorType.NO_INDICATOR) {
+                fadeOutIndicator(layout, currentType, /* finishCallback= */ null)
+            } else {
+                val animStartType = IndicatorType.valueOf(currentType.name)
+                val animator =
+                    indicatorView?.let {
+                        VisualIndicatorAnimator.animateIndicatorType(
+                            it,
+                            layout,
+                            animStartType,
+                            newType,
+                            bubbleBoundsProvider,
+                        )
+                    } ?: return@execute
+                animator.start()
+            }
+        }
+    }
+
+    /**
+     * Fade indicator in as provided type. Animator fades it in while expanding the bounds outwards.
+     */
+    @VisibleForTesting
+    fun fadeInIndicator(layout: DisplayLayout, type: IndicatorType) {
+        desktopExecutor.assertCurrentThread()
+        indicatorView?.let {
+            it.setBackgroundResource(R.drawable.desktop_windowing_transition_background)
+            val animator =
+                VisualIndicatorAnimator.fadeBoundsIn(it, type, layout, bubbleBoundsProvider)
+            animator.start()
+        }
+    }
+
+    /**
+     * Fade out indicator without fully releasing it. Animator fades it out while shrinking bounds.
+     *
+     * @param finishCallback called when animation ends or gets cancelled
+     */
+    fun fadeOutIndicator(
+        layout: DisplayLayout,
+        currentType: IndicatorType,
+        finishCallback: Runnable?,
+    ) {
+        if (currentType == IndicatorType.NO_INDICATOR) {
+            // In rare cases, fade out can be requested before the indicator has determined its
+            // initial type and started animating in. In this case, no animator is needed.
+            finishCallback?.run()
+            return
+        }
+        desktopExecutor.execute {
+            indicatorView?.let {
+                val animStartType = IndicatorType.valueOf(currentType.name)
+                val animator =
+                    VisualIndicatorAnimator.fadeBoundsOut(
+                        it,
+                        animStartType,
+                        layout,
+                        bubbleBoundsProvider,
+                    )
+                animator.addListener(
+                    object : AnimatorListenerAdapter() {
+                        override fun onAnimationEnd(animation: Animator) {
+                            if (finishCallback != null) {
+                                mainExecutor.execute(finishCallback)
+                            }
+                        }
+                    }
+                )
+                animator.start()
+            }
+        }
+    }
+
+    /** Release the indicator and its components when it is no longer needed. */
+    @ShellMainThread
+    fun releaseVisualIndicator() {
+        if (isReleased) return
+        desktopExecutor.execute {
+            indicatorViewHost?.release()
+            indicatorViewHost = null
+        }
+        indicatorLeash?.let {
+            val tx = SurfaceControl.Transaction()
+            tx.remove(it)
+            indicatorLeash = null
+            syncQueue.runInSync { transaction: SurfaceControl.Transaction ->
+                transaction.merge(tx)
+                tx.close()
+            }
+        }
+        isReleased = true
+    }
+
+    /**
+     * Animator for Desktop Mode transitions which supports bounds and alpha animation. Functions
+     * should only be called from the desktop executor.
+     */
+    @VisibleForTesting
+    class VisualIndicatorAnimator(view: View, startBounds: Rect, endBounds: Rect) :
+        ValueAnimator() {
+        /**
+         * Determines how this animator will interact with the view's alpha: Fade in, fade out, or
+         * no change to alpha
+         */
+        private enum class AlphaAnimType {
+            ALPHA_FADE_IN_ANIM,
+            ALPHA_FADE_OUT_ANIM,
+            ALPHA_NO_CHANGE_ANIM,
+        }
+
+        private val indicatorView: View = view
+        @VisibleForTesting val indicatorStartBounds = Rect(startBounds)
+        @VisibleForTesting val indicatorEndBounds = endBounds
+        private val mRectEvaluator: RectEvaluator
+
+        init {
+            setFloatValues(0f, 1f)
+            mRectEvaluator = RectEvaluator(Rect())
+        }
+
+        /**
+         * Update bounds of view based on current animation fraction. Use of delta is to animate
+         * bounds independently, in case we need to run multiple animations simultaneously.
+         *
+         * @param fraction fraction to use, compared against previous fraction
+         * @param view the view to update
+         */
+        @ShellDesktopThread
+        private fun updateBounds(fraction: Float, view: View?) {
+            if (indicatorStartBounds == indicatorEndBounds) {
+                return
+            }
+            val currentBounds =
+                mRectEvaluator.evaluate(fraction, indicatorStartBounds, indicatorEndBounds)
+            view?.background?.bounds = currentBounds
+        }
+
+        /**
+         * Fade in the fullscreen indicator
+         *
+         * @param fraction current animation fraction
+         */
+        @ShellDesktopThread
+        private fun updateIndicatorAlpha(fraction: Float, view: View?) {
+            val drawable = view?.background as LayerDrawable
+            drawable.findDrawableByLayerId(R.id.indicator_stroke).alpha =
+                (MAXIMUM_OPACITY * fraction).toInt()
+            drawable.findDrawableByLayerId(R.id.indicator_solid).alpha =
+                (MAXIMUM_OPACITY * fraction * INDICATOR_FINAL_OPACITY).toInt()
+        }
+
+        companion object {
+            private const val FULLSCREEN_INDICATOR_DURATION = 200
+            private const val FULLSCREEN_SCALE_ADJUSTMENT_PERCENT = 0.015f
+            private const val INDICATOR_FINAL_OPACITY = 0.35f
+            private const val MAXIMUM_OPACITY = 255
+
+            @ShellDesktopThread
+            fun fadeBoundsIn(
+                view: View,
+                type: IndicatorType,
+                displayLayout: DisplayLayout,
+                bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+            ): VisualIndicatorAnimator {
+                val endBounds = getIndicatorBounds(displayLayout, type, bubbleBoundsProvider)
+                val startBounds = getMinBounds(endBounds)
+                view.background.bounds = startBounds
+
+                val animator = VisualIndicatorAnimator(view, startBounds, endBounds)
+                animator.interpolator = DecelerateInterpolator()
+                setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_FADE_IN_ANIM)
+                return animator
+            }
+
+            @ShellDesktopThread
+            fun fadeBoundsOut(
+                view: View,
+                type: IndicatorType,
+                displayLayout: DisplayLayout,
+                bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+            ): VisualIndicatorAnimator {
+                val startBounds = getIndicatorBounds(displayLayout, type, bubbleBoundsProvider)
+                val endBounds = getMinBounds(startBounds)
+                view.background.bounds = startBounds
+
+                val animator = VisualIndicatorAnimator(view, startBounds, endBounds)
+                animator.interpolator = DecelerateInterpolator()
+                setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_FADE_OUT_ANIM)
+                return animator
+            }
+
+            /**
+             * Create animator for visual indicator changing type (i.e., fullscreen to freeform,
+             * freeform to split, etc.)
+             *
+             * @param view the view for this indicator
+             * @param displayLayout information about the display the transitioning task is
+             *   currently on
+             * @param origType the original indicator type
+             * @param newType the new indicator type
+             * @param desktopExecutor: the executor for the ShellDesktopThread; should be the only
+             *   thread this function runs on
+             */
+            @ShellDesktopThread
+            fun animateIndicatorType(
+                view: View,
+                displayLayout: DisplayLayout,
+                origType: IndicatorType,
+                newType: IndicatorType,
+                bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+            ): VisualIndicatorAnimator {
+                val startBounds = getIndicatorBounds(displayLayout, origType, bubbleBoundsProvider)
+                val endBounds = getIndicatorBounds(displayLayout, newType, bubbleBoundsProvider)
+                val animator = VisualIndicatorAnimator(view, startBounds, endBounds)
+                animator.interpolator = DecelerateInterpolator()
+                setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_NO_CHANGE_ANIM)
+                return animator
+            }
+
+            /** Calculates the bounds the indicator should have when fully faded in. */
+            private fun getIndicatorBounds(
+                layout: DisplayLayout,
+                type: IndicatorType,
+                bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+            ): Rect {
+                val desktopStableBounds = Rect()
+                layout.getStableBounds(desktopStableBounds)
+                val padding = desktopStableBounds.top
+                when (type) {
+                    IndicatorType.TO_FULLSCREEN_INDICATOR -> {
+                        desktopStableBounds.top += padding
+                        desktopStableBounds.bottom -= padding
+                        desktopStableBounds.left += padding
+                        desktopStableBounds.right -= padding
+                        return desktopStableBounds
+                    }
+
+                    IndicatorType.TO_DESKTOP_INDICATOR -> {
+                        val adjustmentPercentage =
+                            (1f - DesktopTasksController.DESKTOP_MODE_INITIAL_BOUNDS_SCALE)
+                        return Rect(
+                            (adjustmentPercentage * desktopStableBounds.width() / 2).toInt(),
+                            (adjustmentPercentage * desktopStableBounds.height() / 2).toInt(),
+                            (desktopStableBounds.width() -
+                                    (adjustmentPercentage * desktopStableBounds.width() / 2))
+                                .toInt(),
+                            (desktopStableBounds.height() -
+                                    (adjustmentPercentage * desktopStableBounds.height() / 2))
+                                .toInt(),
+                        )
+                    }
+
+                    IndicatorType.TO_SPLIT_LEFT_INDICATOR ->
+                        return Rect(
+                            padding,
+                            padding,
+                            desktopStableBounds.width() / 2 - padding,
+                            desktopStableBounds.height(),
+                        )
+
+                    IndicatorType.TO_SPLIT_RIGHT_INDICATOR ->
+                        return Rect(
+                            desktopStableBounds.width() / 2 + padding,
+                            padding,
+                            desktopStableBounds.width() - padding,
+                            desktopStableBounds.height(),
+                        )
+                    IndicatorType.TO_BUBBLE_LEFT_INDICATOR ->
+                        return bubbleBoundsProvider?.getBubbleBarExpandedViewDropTargetBounds(
+                            /* onLeft= */ true
+                        ) ?: Rect()
+                    IndicatorType.TO_BUBBLE_RIGHT_INDICATOR ->
+                        return bubbleBoundsProvider?.getBubbleBarExpandedViewDropTargetBounds(
+                            /* onLeft= */ false
+                        ) ?: Rect()
+                    else -> throw IllegalArgumentException("Invalid indicator type provided.")
+                }
+            }
+
+            /** Add necessary listener for animation of indicator */
+            private fun setupIndicatorAnimation(
+                animator: VisualIndicatorAnimator,
+                animType: AlphaAnimType,
+            ) {
+                animator.addUpdateListener { a: ValueAnimator ->
+                    animator.updateBounds(a.animatedFraction, animator.indicatorView)
+                    if (animType == AlphaAnimType.ALPHA_FADE_IN_ANIM) {
+                        animator.updateIndicatorAlpha(a.animatedFraction, animator.indicatorView)
+                    } else if (animType == AlphaAnimType.ALPHA_FADE_OUT_ANIM) {
+                        animator.updateIndicatorAlpha(
+                            1 - a.animatedFraction,
+                            animator.indicatorView,
+                        )
+                    }
+                }
+                animator.addListener(
+                    object : AnimatorListenerAdapter() {
+                        override fun onAnimationEnd(animation: Animator) {
+                            animator.indicatorView.background.bounds = animator.indicatorEndBounds
+                        }
+                    }
+                )
+                animator.setDuration(FULLSCREEN_INDICATOR_DURATION.toLong())
+            }
+
+            /**
+             * Return the minimum bounds of a visual indicator, to be used at the end of fading out
+             * and the start of fading in.
+             */
+            private fun getMinBounds(maxBounds: Rect): Rect {
+                return Rect(
+                    (maxBounds.left + (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.width()))
+                        .toInt(),
+                    (maxBounds.top + (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.height()))
+                        .toInt(),
+                    (maxBounds.right - (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.width()))
+                        .toInt(),
+                    (maxBounds.bottom - (FULLSCREEN_SCALE_ADJUSTMENT_PERCENT * maxBounds.height()))
+                        .toInt(),
+                )
+            }
+        }
+    }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/desktopwallpaperactivity/DesktopWallpaperActivityTokenProvider.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/desktopwallpaperactivity/DesktopWallpaperActivityTokenProvider.kt
index 2bd7a98..2a8a347 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/desktopwallpaperactivity/DesktopWallpaperActivityTokenProvider.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/desktopwallpaperactivity/DesktopWallpaperActivityTokenProvider.kt
@@ -20,6 +20,9 @@
 import android.util.SparseBooleanArray
 import android.view.Display.DEFAULT_DISPLAY
 import android.window.WindowContainerToken
+import androidx.core.util.forEach
+import com.android.internal.protolog.ProtoLog
+import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
 
 /** Provides per display window container tokens for [DesktopWallpaperActivity]. */
 class DesktopWallpaperActivityTokenProvider {
@@ -28,6 +31,7 @@
     private val wallpaperActivityVisByDisplayId = SparseBooleanArray()
 
     fun setToken(token: WindowContainerToken, displayId: Int = DEFAULT_DISPLAY) {
+        logV("Setting desktop wallpaper activity token for display %s", displayId)
         wallpaperActivityTokenByDisplayId[displayId] = token
     }
 
@@ -36,9 +40,19 @@
     }
 
     fun removeToken(displayId: Int = DEFAULT_DISPLAY) {
+        logV("Remove desktop wallpaper activity token for display %s", displayId)
         wallpaperActivityTokenByDisplayId.delete(displayId)
     }
 
+    fun removeToken(token: WindowContainerToken) {
+        wallpaperActivityTokenByDisplayId.forEach { displayId, value ->
+            if (value == token) {
+                logV("Remove desktop wallpaper activity token for display %s", displayId)
+                wallpaperActivityTokenByDisplayId.delete(displayId)
+            }
+        }
+    }
+
     fun setWallpaperActivityIsVisible(
         isVisible: Boolean = false,
         displayId: Int = DEFAULT_DISPLAY,
@@ -50,4 +64,12 @@
         return wallpaperActivityTokenByDisplayId[displayId] != null &&
             wallpaperActivityVisByDisplayId.get(displayId, false)
     }
+
+    private fun logV(msg: String, vararg arguments: Any?) {
+        ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+    }
+
+    companion object {
+        private const val TAG = "DesktopWallpaperActivityTokenProvider"
+    }
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt
index 5d83556..f664514 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt
@@ -26,6 +26,8 @@
 import com.android.window.flags.Flags
 import com.android.wm.shell.R
 import com.android.wm.shell.desktopmode.CaptionState
+import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger
+import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum
 import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository
 import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread
@@ -62,6 +64,7 @@
     private val windowingEducationViewController: DesktopWindowingEducationTooltipController,
     @ShellMainThread private val applicationCoroutineScope: CoroutineScope,
     @ShellBackgroundThread private val backgroundDispatcher: MainCoroutineDispatcher,
+    private val desktopModeUiEventLogger: DesktopModeUiEventLogger,
 ) {
     private lateinit var openHandleMenuCallback: (Int) -> Unit
     private lateinit var toDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit
@@ -171,6 +174,7 @@
 
     private fun showEducation(captionState: CaptionState) {
         val appHandleBounds = (captionState as CaptionState.AppHandle).globalAppHandleBounds
+        val taskInfo = captionState.runningTaskInfo
         val tooltipGlobalCoordinates =
             Point(appHandleBounds.left + appHandleBounds.width() / 2, appHandleBounds.bottom)
         // Populate information important to inflate app handle education tooltip.
@@ -188,22 +192,34 @@
                 arrowDirection =
                     DesktopWindowingEducationTooltipController.TooltipArrowDirection.UP,
                 onEducationClickAction = {
-                    openHandleMenuCallback(captionState.runningTaskInfo.taskId)
+                    openHandleMenuCallback(taskInfo.taskId)
+                    desktopModeUiEventLogger.log(
+                        taskInfo,
+                        DesktopUiEventEnum.APP_HANDLE_EDUCATION_TOOLTIP_CLICKED,
+                    )
                 },
                 onDismissAction = {
-                    // TODO: b/341320146 - Log previous tooltip was dismissed
+                    desktopModeUiEventLogger.log(
+                        taskInfo,
+                        DesktopUiEventEnum.APP_HANDLE_EDUCATION_TOOLTIP_DISMISSED,
+                    )
                 },
             )
 
         windowingEducationViewController.showEducationTooltip(
             tooltipViewConfig = appHandleTooltipConfig,
-            taskId = captionState.runningTaskInfo.taskId,
+            taskId = taskInfo.taskId,
+        )
+        desktopModeUiEventLogger.log(
+            taskInfo,
+            DesktopUiEventEnum.APP_HANDLE_EDUCATION_TOOLTIP_SHOWN,
         )
     }
 
     /** Show tooltip that points to windowing image button in app handle menu */
     private suspend fun showWindowingImageButtonTooltip(captionState: CaptionState.AppHandle) {
         val appInfoPillHeight = getSize(R.dimen.desktop_mode_handle_menu_app_info_pill_height)
+        val taskInfo = captionState.runningTaskInfo
         val windowingOptionPillHeight =
             getSize(R.dimen.desktop_mode_handle_menu_windowing_pill_height)
         val appHandleMenuWidth =
@@ -245,24 +261,36 @@
                     DesktopWindowingEducationTooltipController.TooltipArrowDirection.HORIZONTAL,
                 onEducationClickAction = {
                     toDesktopModeCallback(
-                        captionState.runningTaskInfo.taskId,
+                        taskInfo.taskId,
                         DesktopModeTransitionSource.APP_HANDLE_MENU_BUTTON,
                     )
+                    desktopModeUiEventLogger.log(
+                        taskInfo,
+                        DesktopUiEventEnum.ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_CLICKED,
+                    )
                 },
                 onDismissAction = {
-                    // TODO: b/341320146 - Log previous tooltip was dismissed
+                    desktopModeUiEventLogger.log(
+                        taskInfo,
+                        DesktopUiEventEnum.ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_DISMISSED,
+                    )
                 },
             )
 
         windowingEducationViewController.showEducationTooltip(
-            taskId = captionState.runningTaskInfo.taskId,
+            taskId = taskInfo.taskId,
             tooltipViewConfig = windowingImageButtonTooltipConfig,
         )
+        desktopModeUiEventLogger.log(
+            taskInfo,
+            DesktopUiEventEnum.ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_SHOWN,
+        )
     }
 
     /** Show tooltip that points to app chip button and educates user on how to exit desktop mode */
     private suspend fun showExitWindowingTooltip(captionState: CaptionState.AppHeader) {
         val globalAppChipBounds = captionState.globalAppChipBounds
+        val taskInfo = captionState.runningTaskInfo
         val tooltipGlobalCoordinates =
             Point(
                 if (isRtl()) {
@@ -287,16 +315,27 @@
                 arrowDirection =
                     DesktopWindowingEducationTooltipController.TooltipArrowDirection.HORIZONTAL,
                 onDismissAction = {
-                    // TODO: b/341320146 - Log previous tooltip was dismissed
+                    desktopModeUiEventLogger.log(
+                        taskInfo,
+                        DesktopUiEventEnum.EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_DISMISSED,
+                    )
                 },
                 onEducationClickAction = {
-                    openHandleMenuCallback(captionState.runningTaskInfo.taskId)
+                    openHandleMenuCallback(taskInfo.taskId)
+                    desktopModeUiEventLogger.log(
+                        taskInfo,
+                        DesktopUiEventEnum.EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_CLICKED,
+                    )
                 },
             )
         windowingEducationViewController.showEducationTooltip(
-            taskId = captionState.runningTaskInfo.taskId,
+            taskId = taskInfo.taskId,
             tooltipViewConfig = exitWindowingTooltipConfig,
         )
+        desktopModeUiEventLogger.log(
+            taskInfo,
+            DesktopUiEventEnum.EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_SHOWN,
+        )
     }
 
     /**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java
index ea0f09a..b3c1a92 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java
@@ -47,7 +47,6 @@
 import android.graphics.Rect;
 import android.graphics.Region;
 import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
 import android.view.DragEvent;
 import android.view.SurfaceControl;
 import android.view.View;
@@ -70,6 +69,7 @@
 import com.android.wm.shell.common.split.SplitScreenUtils;
 import com.android.wm.shell.protolog.ShellProtoLogGroup;
 import com.android.wm.shell.shared.animation.Interpolators;
+import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper;
 import com.android.wm.shell.shared.bubbles.BubbleBarLocation;
 import com.android.wm.shell.splitscreen.SplitScreenController;
 
@@ -413,6 +413,8 @@
     }
 
     private void updateDropZoneSizesForSingleTask() {
+        resetDropZoneTranslations();
+
         final LinearLayout.LayoutParams dropZoneView1 =
                 (LayoutParams) mDropZoneView1.getLayoutParams();
         final LinearLayout.LayoutParams dropZoneView2 =
@@ -427,6 +429,19 @@
         mDropZoneView2.setLayoutParams(dropZoneView2);
     }
 
+    /** Zeroes out translationX and translationY on all drop zone views. */
+    void resetDropZoneTranslations() {
+        setDropZoneTranslations(0, 0);
+    }
+
+    /** Sets translationX and translationY on all drop zone views. */
+    void setDropZoneTranslations(int x, int y) {
+        mDropZoneView1.setTranslationX(x);
+        mDropZoneView1.setTranslationY(y);
+        mDropZoneView2.setTranslationX(x);
+        mDropZoneView2.setTranslationY(y);
+    }
+
     /**
      * Sets the size of the two drop zones based on the provided bounds. The divider sits between
      * the views and its size is included in the calculations.
@@ -435,6 +450,15 @@
      * @param bounds2 bounds to apply to the second dropzone view, null if split in half.
      */
     private void updateDropZoneSizes(Rect bounds1, Rect bounds2) {
+        if (bounds1 == null || bounds2 == null) {
+            // We're entering 50:50 split screen from a single app, no need for any translations.
+            resetDropZoneTranslations();
+        } else {
+            // We're already in split, so align our drop zones to match the left/top app edge. This
+            // is necessary because the left/top app can be offscreen.
+            setDropZoneTranslations(bounds1.left, bounds1.top);
+        }
+
         final int halfDivider = mDividerSize / 2;
         final LinearLayout.LayoutParams dropZoneView1 =
                 (LayoutParams) mDropZoneView1.getLayoutParams();
@@ -603,8 +627,7 @@
     @Nullable
     private BubbleBarLocation getBubbleBarLocation(int x, int y) {
         Intent appData = mSession.appData;
-        if (appData == null || appData.getExtra(Intent.EXTRA_INTENT) == null
-                || appData.getExtra(Intent.EXTRA_USER) == null) {
+        if (appData == null) {
             // there is no app data, so drop event over the bubble bar can not be handled
             return null;
         }
@@ -662,11 +685,10 @@
         // Process the drop exclusive by DropTarget OR by the BubbleBar
         if (mCurrentTarget != null) {
             mPolicy.onDropped(mCurrentTarget, hideTaskToken);
-        } else if (appData != null && mCurrentBubbleBarTarget != null) {
-            Intent appIntent = (Intent) appData.getExtra(Intent.EXTRA_INTENT);
-            UserHandle user = (UserHandle) appData.getExtra(Intent.EXTRA_USER);
+        } else if (appData != null && mCurrentBubbleBarTarget != null
+                && BubbleAnythingFlagHelper.enableCreateAnyBubble()) {
             mBubbleBarDragListener.onItemDroppedOverBubbleBarDragZone(mCurrentBubbleBarTarget,
-                    appIntent, user);
+                    appData);
         }
 
         // Start animating the drop UI out with the drag surface
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS
index 83b5bf6..44d46ee 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS
@@ -4,7 +4,6 @@
 madym@google.com
 nmusgrave@google.com
 pbdr@google.com
-tkachenkoi@google.com
 vaniadesmonda@google.com
 pragyabajoria@google.com
 uysalorhan@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java
index d2ceb67..ef216b1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java
@@ -30,6 +30,8 @@
 import com.android.internal.protolog.ProtoLog;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.common.SyncTransactionQueue;
+import com.android.wm.shell.desktopmode.DesktopWallpaperActivity;
+import com.android.wm.shell.desktopmode.desktopwallpaperactivity.DesktopWallpaperActivityTokenProvider;
 import com.android.wm.shell.protolog.ShellProtoLogGroup;
 import com.android.wm.shell.recents.RecentTasksController;
 import com.android.wm.shell.sysui.ShellInit;
@@ -57,23 +59,30 @@
     private final SyncTransactionQueue mSyncQueue;
     private final Optional<RecentTasksController> mRecentTasksOptional;
     private final Optional<WindowDecorViewModel> mWindowDecorViewModelOptional;
+    private final Optional<DesktopWallpaperActivityTokenProvider>
+            mDesktopWallpaperActivityTokenProviderOptional;
+
     /**
      * This constructor is used by downstream products.
      */
     public FullscreenTaskListener(SyncTransactionQueue syncQueue) {
         this(null /* shellInit */, null /* shellTaskOrganizer */, syncQueue, Optional.empty(),
-                Optional.empty());
+                Optional.empty(), Optional.empty());
     }
 
     public FullscreenTaskListener(ShellInit shellInit,
             ShellTaskOrganizer shellTaskOrganizer,
             SyncTransactionQueue syncQueue,
             Optional<RecentTasksController> recentTasksOptional,
-            Optional<WindowDecorViewModel> windowDecorViewModelOptional) {
+            Optional<WindowDecorViewModel> windowDecorViewModelOptional,
+            Optional<DesktopWallpaperActivityTokenProvider>
+                    desktopWallpaperActivityTokenProviderOptional) {
         mShellTaskOrganizer = shellTaskOrganizer;
         mSyncQueue = syncQueue;
         mRecentTasksOptional = recentTasksOptional;
         mWindowDecorViewModelOptional = windowDecorViewModelOptional;
+        mDesktopWallpaperActivityTokenProviderOptional =
+                desktopWallpaperActivityTokenProviderOptional;
         // Note: Some derivative FullscreenTaskListener implementations do not use ShellInit
         if (shellInit != null) {
             shellInit.addInitCallback(this::onInit, this);
@@ -162,6 +171,12 @@
                 taskInfo.taskId);
         mTasks.remove(taskInfo.taskId);
         mWindowDecorViewModelOptional.ifPresent(v -> v.onTaskVanished(taskInfo));
+        mDesktopWallpaperActivityTokenProviderOptional.ifPresent(
+                provider -> {
+                    if (DesktopWallpaperActivity.isWallpaperTask(taskInfo)) {
+                        provider.removeToken(taskInfo.getToken());
+                    }
+                });
         if (Transitions.ENABLE_SHELL_TRANSITIONS) return;
         if (mWindowDecorViewModelOptional.isPresent()) {
             mWindowDecorViewModelOptional.get().destroyWindowDecoration(taskInfo);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java
index d666126..c0a0f46 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java
@@ -22,6 +22,7 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.service.dreams.Flags.dismissDreamOnKeyguardDismiss;
 import static android.view.WindowManager.KEYGUARD_VISIBILITY_TRANSIT_FLAGS;
+import static android.view.WindowManager.TRANSIT_FLAG_AOD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_LOCKED;
@@ -200,7 +201,8 @@
                     transition, info, startTransaction, finishTransaction, finishCallback);
         }
 
-        if ((info.getFlags() & TRANSIT_FLAG_KEYGUARD_APPEARING) != 0) {
+        if ((info.getFlags() & TRANSIT_FLAG_KEYGUARD_APPEARING) != 0
+                || (info.getFlags() & TRANSIT_FLAG_AOD_APPEARING) != 0) {
             return startAnimation(mAppearTransition, "appearing",
                     transition, info, startTransaction, finishTransaction, finishCallback);
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
index 0264820..c4d065f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.graphics.Matrix;
 import android.graphics.Rect;
-import android.graphics.RectF;
 import android.view.Choreographer;
 import android.view.SurfaceControl;
 
@@ -29,99 +28,19 @@
  * Abstracts the common operations on {@link SurfaceControl.Transaction} for PiP transition.
  */
 public class PipSurfaceTransactionHelper {
-    /** for {@link #scale(SurfaceControl.Transaction, SurfaceControl, Rect, Rect)} operation */
     private final Matrix mTmpTransform = new Matrix();
     private final float[] mTmpFloat9 = new float[9];
-    private final RectF mTmpSourceRectF = new RectF();
-    private final RectF mTmpDestinationRectF = new RectF();
     private final Rect mTmpDestinationRect = new Rect();
 
-    private int mCornerRadius;
-    private int mShadowRadius;
+    private final int mCornerRadius;
+    private final int mShadowRadius;
 
     public PipSurfaceTransactionHelper(Context context) {
-        onDensityOrFontScaleChanged(context);
-    }
-
-    /**
-     * Called when display size or font size of settings changed
-     *
-     * @param context the current context
-     */
-    public void onDensityOrFontScaleChanged(Context context) {
         mCornerRadius = context.getResources().getDimensionPixelSize(R.dimen.pip_corner_radius);
         mShadowRadius = context.getResources().getDimensionPixelSize(R.dimen.pip_shadow_radius);
     }
 
     /**
-     * Operates the alpha on a given transaction and leash
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper alpha(SurfaceControl.Transaction tx, SurfaceControl leash,
-            float alpha) {
-        tx.setAlpha(leash, alpha);
-        return this;
-    }
-
-    /**
-     * Operates the crop (and position) on a given transaction and leash
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper crop(SurfaceControl.Transaction tx, SurfaceControl leash,
-            Rect destinationBounds) {
-        tx.setWindowCrop(leash, destinationBounds.width(), destinationBounds.height())
-                .setPosition(leash, destinationBounds.left, destinationBounds.top);
-        return this;
-    }
-
-    /**
-     * Operates the scale (setMatrix) on a given transaction and leash
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper scale(SurfaceControl.Transaction tx, SurfaceControl leash,
-            Rect sourceBounds, Rect destinationBounds) {
-        mTmpDestinationRectF.set(destinationBounds);
-        return scale(tx, leash, sourceBounds, mTmpDestinationRectF, 0 /* degrees */);
-    }
-
-    /**
-     * Operates the scale (setMatrix) on a given transaction and leash
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper scale(SurfaceControl.Transaction tx, SurfaceControl leash,
-            Rect sourceBounds, RectF destinationBounds) {
-        return scale(tx, leash, sourceBounds, destinationBounds, 0 /* degrees */);
-    }
-
-    /**
-     * Operates the scale (setMatrix) on a given transaction and leash
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper scale(SurfaceControl.Transaction tx, SurfaceControl leash,
-            Rect sourceBounds, Rect destinationBounds, float degrees) {
-        mTmpDestinationRectF.set(destinationBounds);
-        return scale(tx, leash, sourceBounds, mTmpDestinationRectF, degrees);
-    }
-
-    /**
-     * Operates the scale (setMatrix) on a given transaction and leash, along with a rotation.
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper scale(SurfaceControl.Transaction tx, SurfaceControl leash,
-            Rect sourceBounds, RectF destinationBounds, float degrees) {
-        mTmpSourceRectF.set(sourceBounds);
-        // We want the matrix to position the surface relative to the screen coordinates so offset
-        // the source to 0,0
-        mTmpSourceRectF.offsetTo(0, 0);
-        mTmpDestinationRectF.set(destinationBounds);
-        mTmpTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
-        mTmpTransform.postRotate(degrees,
-                mTmpDestinationRectF.centerX(), mTmpDestinationRectF.centerY());
-        tx.setMatrix(leash, mTmpTransform, mTmpFloat9);
-        return this;
-    }
-
-    /**
      * Operates the scale (setMatrix) on a given transaction and leash
      * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
      */
@@ -205,19 +124,6 @@
     }
 
     /**
-     * Resets the scale (setMatrix) on a given transaction and leash if there's any
-     *
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper resetScale(SurfaceControl.Transaction tx,
-            SurfaceControl leash,
-            Rect destinationBounds) {
-        tx.setMatrix(leash, Matrix.IDENTITY_MATRIX, mTmpFloat9)
-                .setPosition(leash, destinationBounds.left, destinationBounds.top);
-        return this;
-    }
-
-    /**
      * Operates the round corner radius on a given transaction and leash
      * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
      */
@@ -228,18 +134,6 @@
     }
 
     /**
-     * Operates the round corner radius on a given transaction and leash, scaled by bounds
-     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
-     */
-    public PipSurfaceTransactionHelper round(SurfaceControl.Transaction tx, SurfaceControl leash,
-            Rect fromBounds, Rect toBounds) {
-        final float scale = (float) (Math.hypot(fromBounds.width(), fromBounds.height())
-                / Math.hypot(toBounds.width(), toBounds.height()));
-        tx.setCornerRadius(leash, mCornerRadius * scale);
-        return this;
-    }
-
-    /**
      * Operates the shadow radius on a given transaction and leash
      * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
      */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipAppIconOverlay.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipAppIconOverlay.java
index b4cf890..88ac865 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipAppIconOverlay.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipAppIconOverlay.java
@@ -26,6 +26,7 @@
 import android.graphics.Matrix;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
+import android.hardware.HardwareBuffer;
 import android.util.TypedValue;
 import android.view.SurfaceControl;
 
@@ -39,7 +40,6 @@
 
     private final Context mContext;
     private final int mAppIconSizePx;
-    private final Rect mAppBounds;
     private final int mOverlayHalfSize;
     private final Matrix mTmpTransform = new Matrix();
     private final float[] mTmpFloat9 = new float[9];
@@ -56,10 +56,6 @@
         final int overlaySize = getOverlaySize(appBounds, destinationBounds);
         mOverlayHalfSize = overlaySize >> 1;
 
-        // When the activity is in the secondary split, make sure the scaling center is not
-        // offset.
-        mAppBounds = new Rect(0, 0, appBounds.width(), appBounds.height());
-
         mBitmap = Bitmap.createBitmap(overlaySize, overlaySize, Bitmap.Config.ARGB_8888);
         prepareAppIconOverlay(appIcon);
         mLeash = new SurfaceControl.Builder()
@@ -85,12 +81,17 @@
 
     @Override
     public void attach(SurfaceControl.Transaction tx, SurfaceControl parentLeash) {
+        final HardwareBuffer buffer = mBitmap.getHardwareBuffer();
         tx.show(mLeash);
         tx.setLayer(mLeash, Integer.MAX_VALUE);
-        tx.setBuffer(mLeash, mBitmap.getHardwareBuffer());
+        tx.setBuffer(mLeash, buffer);
         tx.setAlpha(mLeash, 0f);
         tx.reparent(mLeash, parentLeash);
         tx.apply();
+        // Cleanup the bitmap and buffer after setting up the leash
+        mBitmap.recycle();
+        mBitmap = null;
+        buffer.close();
     }
 
     @Override
@@ -108,16 +109,6 @@
                 .setAlpha(mLeash, fraction < 0.5f ? 0 : (fraction - 0.5f) * 2);
     }
 
-
-
-    @Override
-    public void detach(SurfaceControl.Transaction tx) {
-        super.detach(tx);
-        if (mBitmap != null && !mBitmap.isRecycled()) {
-            mBitmap.recycle();
-        }
-    }
-
     private void prepareAppIconOverlay(Drawable appIcon) {
         final Canvas canvas = new Canvas();
         canvas.setBitmap(mBitmap);
@@ -139,6 +130,8 @@
                 mOverlayHalfSize + mAppIconSizePx / 2);
         appIcon.setBounds(appIconBounds);
         appIcon.draw(canvas);
+        Bitmap oldBitmap = mBitmap;
         mBitmap = mBitmap.copy(Bitmap.Config.HARDWARE, false /* mutable */);
+        oldBitmap.recycle();
     }
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
index bb9b479..a57b4b9 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
@@ -72,7 +72,6 @@
 import com.android.wm.shell.pip2.animation.PipEnterAnimator;
 import com.android.wm.shell.pip2.animation.PipExpandAnimator;
 import com.android.wm.shell.shared.TransitionUtil;
-import com.android.wm.shell.shared.pip.PipContentOverlay;
 import com.android.wm.shell.sysui.ShellInit;
 import com.android.wm.shell.transition.Transitions;
 
@@ -422,7 +421,7 @@
         final Rect destinationBounds = pipChange.getEndAbsBounds();
         final SurfaceControl swipePipToHomeOverlay = mPipTransitionState.getSwipePipToHomeOverlay();
         if (swipePipToHomeOverlay != null) {
-            final int overlaySize = PipContentOverlay.PipAppIconOverlay.getOverlaySize(
+            final int overlaySize = PipAppIconOverlay.getOverlaySize(
                     mPipTransitionState.getSwipePipToHomeAppBounds(), destinationBounds);
             // It is possible we reparent the PIP activity to a new PIP task (in multi-activity
             // apps), so we should also reparent the overlay to the final PIP task.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java
index 8ad2e1d..7751741 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java
@@ -29,6 +29,7 @@
 import static android.view.WindowManager.TRANSIT_PIP;
 import static android.view.WindowManager.TRANSIT_SLEEP;
 import static android.view.WindowManager.TRANSIT_TO_FRONT;
+import static android.window.DesktopModeFlags.ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX;
 import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP;
 import static android.window.TransitionInfo.FLAG_TRANSLUCENT;
 
@@ -46,6 +47,7 @@
 import android.app.ActivityTaskManager;
 import android.app.IApplicationThread;
 import android.app.PendingIntent;
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
 import android.graphics.Rect;
@@ -73,6 +75,7 @@
 import com.android.internal.os.IResultReceiver;
 import com.android.internal.protolog.ProtoLog;
 import com.android.wm.shell.Flags;
+import com.android.wm.shell.R;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.common.ShellExecutor;
 import com.android.wm.shell.common.pip.PipUtils;
@@ -317,7 +320,7 @@
                     "RecentsTransitionHandler.mergeAnimation: no controller found");
             return;
         }
-        controller.merge(info, startT, mergeTarget, finishCallback);
+        controller.merge(info, startT, finishT, mergeTarget, finishCallback);
     }
 
     @Override
@@ -912,7 +915,8 @@
          * before any unhandled transitions.
          */
         @SuppressLint("NewApi")
-        void merge(TransitionInfo info, SurfaceControl.Transaction t, IBinder mergeTarget,
+        void merge(TransitionInfo info, SurfaceControl.Transaction startT,
+                SurfaceControl.Transaction finishT, IBinder mergeTarget,
                 Transitions.TransitionFinishCallback finishCallback) {
             if (mFinishCB == null) {
                 ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
@@ -1072,8 +1076,8 @@
                     Slog.e(TAG, "Returning to recents without closing any opening tasks.");
                 }
                 // Setup may hide it initially since it doesn't know that overview was still active.
-                t.show(recentsOpening.getLeash());
-                t.setAlpha(recentsOpening.getLeash(), 1.f);
+                startT.show(recentsOpening.getLeash());
+                startT.setAlpha(recentsOpening.getLeash(), 1.f);
                 mState = STATE_NORMAL;
             }
             boolean didMergeThings = false;
@@ -1142,31 +1146,31 @@
                         mOpeningTasks.add(pausingTask);
                         // Setup hides opening tasks initially, so make it visible again (since we
                         // are already showing it).
-                        t.show(change.getLeash());
-                        t.setAlpha(change.getLeash(), 1.f);
+                        startT.show(change.getLeash());
+                        startT.setAlpha(change.getLeash(), 1.f);
                     } else if (isLeaf) {
                         // We are receiving new opening leaf tasks, so convert to onTasksAppeared.
                         final RemoteAnimationTarget target = TransitionUtil.newTarget(
-                                change, layer, info, t, mLeashMap);
+                                change, layer, info, startT, mLeashMap);
                         appearedTargets[nextTargetIdx++] = target;
                         // reparent into the original `mInfo` since that's where we are animating.
                         final TransitionInfo.Root root = TransitionUtil.getRootFor(change, mInfo);
                         final boolean wasClosing = closingIdx >= 0;
-                        t.reparent(target.leash, root.getLeash());
-                        t.setPosition(target.leash,
+                        startT.reparent(target.leash, root.getLeash());
+                        startT.setPosition(target.leash,
                                 change.getStartAbsBounds().left - root.getOffset().x,
                                 change.getStartAbsBounds().top - root.getOffset().y);
-                        t.setLayer(target.leash, layer);
+                        startT.setLayer(target.leash, layer);
                         if (wasClosing) {
                             // App was previously visible and is closing
-                            t.show(target.leash);
-                            t.setAlpha(target.leash, 1f);
+                            startT.show(target.leash);
+                            startT.setAlpha(target.leash, 1f);
                             // Also override the task alpha as it was set earlier when dispatching
                             // the transition and setting up the leash to hide the
-                            t.setAlpha(change.getLeash(), 1f);
+                            startT.setAlpha(change.getLeash(), 1f);
                         } else {
                             // Hide the animation leash, let the listener show it
-                            t.hide(target.leash);
+                            startT.hide(target.leash);
                         }
                         ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                                 "  opening new leaf taskId=%d wasClosing=%b",
@@ -1175,10 +1179,10 @@
                     } else {
                         ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                                 "  opening new taskId=%d", change.getTaskInfo().taskId);
-                        t.setLayer(change.getLeash(), layer);
+                        startT.setLayer(change.getLeash(), layer);
                         // Setup hides opening tasks initially, so make it visible since recents
                         // is only animating the leafs.
-                        t.show(change.getLeash());
+                        startT.show(change.getLeash());
                         mOpeningTasks.add(new TaskState(change, null));
                     }
                 }
@@ -1194,7 +1198,7 @@
                 // Activity only transition, so consume the merge as it doesn't affect the rest of
                 // recents.
                 Slog.d(TAG, "Got an activity only transition during recents, so apply directly");
-                mergeActivityOnly(info, t);
+                mergeActivityOnly(info, startT);
             } else if (!didMergeThings) {
                 // Didn't recognize anything in incoming transition so don't merge it.
                 Slog.w(TAG, "Don't know how to merge this transition, foundRecentsClosing="
@@ -1206,7 +1210,10 @@
                 return;
             }
             // At this point, we are accepting the merge.
-            t.apply();
+            startT.apply();
+            // Since we're accepting the merge, update the finish transaction so that changes via
+            // that transaction will be applied on top of those of the merged transitions
+            mFinishTransaction = finishT;
             // not using the incoming anim-only surfaces
             info.releaseAnimSurfaces();
             if (appearedTargets != null) {
@@ -1349,6 +1356,8 @@
                     wct.reorder(mPausingTasks.get(i).mToken, true /* onTop */);
                     t.show(mPausingTasks.get(i).mTaskSurface);
                 }
+                setCornerRadiusForFreeformTasks(
+                        mRecentTasksController.getContext(), t, mPausingTasks);
                 if (!mKeyguardLocked && mRecentsTask != null) {
                     wct.restoreTransientOrder(mRecentsTask);
                 }
@@ -1386,6 +1395,8 @@
                 for (int i = 0; i < mOpeningTasks.size(); ++i) {
                     t.show(mOpeningTasks.get(i).mTaskSurface);
                 }
+                setCornerRadiusForFreeformTasks(
+                        mRecentTasksController.getContext(), t, mOpeningTasks);
                 for (int i = 0; i < mPausingTasks.size(); ++i) {
                     cleanUpPausingOrClosingTask(mPausingTasks.get(i), wct, t, sendUserLeaveHint);
                 }
@@ -1446,6 +1457,11 @@
                             wct.clear();
 
                             if (Flags.enableRecentsBookendTransition()) {
+                                // Notify the mixers of the pending finish
+                                for (int i = 0; i < mMixers.size(); ++i) {
+                                    mMixers.get(i).handleFinishRecents(returningToApp, wct, t);
+                                }
+
                                 // In this case, we've already started the PIP transition, so we can
                                 // clean up immediately
                                 mPendingRunnerFinishCb = runnerFinishCb;
@@ -1505,6 +1521,27 @@
             }
         }
 
+        private static void setCornerRadiusForFreeformTasks(
+                Context context,
+                SurfaceControl.Transaction t,
+                ArrayList<TaskState> tasks) {
+            if (!ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX.isTrue()) {
+                return;
+            }
+            int cornerRadius = getCornerRadius(context);
+            for (int i = 0; i < tasks.size(); ++i) {
+                TaskState task = tasks.get(i);
+                if (task.mTaskInfo != null && task.mTaskInfo.isFreeform()) {
+                    t.setCornerRadius(task.mTaskSurface, cornerRadius);
+                }
+            }
+        }
+
+        private static int getCornerRadius(Context context) {
+            return context.getResources().getDimensionPixelSize(
+                    R.dimen.desktop_windowing_freeform_rounded_corner_radius);
+        }
+
         private boolean allAppsAreTranslucent(ArrayList<TaskState> tasks) {
             if (tasks == null) {
                 return false;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index 6f7d992..a799b7f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -34,6 +34,7 @@
 import static android.window.TransitionInfo.FLAG_IS_DISPLAY;
 import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER;
 
+import static com.android.window.flags.Flags.enableFullScreenWindowOnRemovingSplitScreenStageBugfix;
 import static com.android.window.flags.Flags.enableNonDefaultDisplaySplit;
 import static com.android.wm.shell.Flags.enableFlexibleSplit;
 import static com.android.wm.shell.Flags.enableFlexibleTwoAppSplit;
@@ -908,6 +909,11 @@
         }
         options = options != null ? options : new Bundle();
         addActivityOptions(options, null);
+        ActivityManager.RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(taskId);
+        if (enableFullScreenWindowOnRemovingSplitScreenStageBugfix() && taskInfo != null
+                && taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM) {
+            prepareTasksForSplitScreen(new int[] {taskId}, wct);
+        }
         wct.startTask(taskId, options);
         mSplitTransitions.startFullscreenTransition(wct, remoteTransition);
     }
@@ -1669,8 +1675,8 @@
     void prepareExitSplitScreen(@StageType int stageToTop,
             @NonNull WindowContainerTransaction wct, @ExitReason int exitReason) {
         if (!isSplitActive()) return;
-        ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "prepareExitSplitScreen: stageToTop=%s",
-                stageTypeToString(stageToTop));
+        ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "prepareExitSplitScreen: stageToTop=%s reason=%s",
+                stageTypeToString(stageToTop), exitReasonToString(exitReason));
         if (enableFlexibleSplit()) {
             mStageOrderOperator.getActiveStages().stream()
                     .filter(stage -> stage.getId() != stageToTop)
@@ -2853,14 +2859,6 @@
                     prepareExitSplitScreen(dismissTop, out, EXIT_REASON_APP_FINISHED);
                     mSplitTransitions.setDismissTransition(transition, dismissTop,
                             EXIT_REASON_APP_FINISHED);
-                } else if (isOpening && !mPausingTasks.isEmpty()) {
-                    // One of the splitting task is opening while animating the split pair in
-                    // recents, which means to dismiss the split pair to this task.
-                    int dismissTop = getStageType(stage) == STAGE_TYPE_MAIN
-                            ? STAGE_TYPE_MAIN : STAGE_TYPE_SIDE;
-                    prepareExitSplitScreen(dismissTop, out, EXIT_REASON_APP_FINISHED);
-                    mSplitTransitions.setDismissTransition(transition, dismissTop,
-                            EXIT_REASON_APP_FINISHED);
                 } else if (!isSplitScreenVisible() && isOpening) {
                     // If split is running in the background and the trigger task is appearing into
                     // split, prepare to enter split screen.
@@ -3389,12 +3387,14 @@
         TransitionInfo.Change sideChild = null;
         StageTaskListener firstAppStage = null;
         StageTaskListener secondAppStage = null;
+        boolean foundPausingTask = false;
         final WindowContainerTransaction evictWct = new WindowContainerTransaction();
         for (int iC = 0; iC < info.getChanges().size(); ++iC) {
             final TransitionInfo.Change change = info.getChanges().get(iC);
             final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
             if (taskInfo == null || !taskInfo.hasParentTask()) continue;
             if (mPausingTasks.contains(taskInfo.taskId)) {
+                foundPausingTask = true;
                 continue;
             }
             StageTaskListener stage = getStageOfTask(taskInfo);
@@ -3437,9 +3437,9 @@
                             prepareExitSplitScreen(dismissTop, cancelWct, EXIT_REASON_UNKNOWN);
                             logExit(EXIT_REASON_UNKNOWN);
                         });
-                Log.w(TAG, splitFailureMessage("startPendingEnterAnimation",
-                        "launched 2 tasks in split, but didn't receive "
-                        + "2 tasks in transition. Possibly one of them failed to launch"));
+                Log.w(TAG, splitFailureMessage("startPendingEnterAnimation", "launched 2 tasks in "
+                        + "split, but didn't receive 2 tasks in transition. Possibly one of them "
+                        + "failed to launch (foundPausingTask=" + foundPausingTask + ")"));
                 if (mRecentTasks.isPresent() && mainChild != null) {
                     mRecentTasks.get().removeSplitPair(mainChild.getTaskInfo().taskId);
                 }
@@ -3794,6 +3794,7 @@
 
     /** Call this when the recents animation canceled during split-screen. */
     public void onRecentsInSplitAnimationCanceled() {
+        ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "onRecentsInSplitAnimationCanceled");
         mPausingTasks.clear();
         setSplitsVisible(false);
 
@@ -3803,31 +3804,10 @@
         mTaskOrganizer.applyTransaction(wct);
     }
 
-    public void onRecentsInSplitAnimationFinishing(boolean returnToApp,
-            @NonNull WindowContainerTransaction finishWct,
-            @NonNull SurfaceControl.Transaction finishT) {
-        if (!Flags.enableRecentsBookendTransition()) {
-            // The non-bookend recents transition case will be handled by
-            // RecentsMixedTransition wrapping the finish callback and calling
-            // onRecentsInSplitAnimationFinish()
-            return;
-        }
-
-        onRecentsInSplitAnimationFinishInner(returnToApp, finishWct, finishT);
-    }
-
-    /** Call this when the recents animation during split-screen finishes. */
-    public void onRecentsInSplitAnimationFinish(@NonNull WindowContainerTransaction finishWct,
-            @NonNull SurfaceControl.Transaction finishT) {
-        if (Flags.enableRecentsBookendTransition()) {
-            // The bookend recents transition case will be handled by
-            // onRecentsInSplitAnimationFinishing above
-            return;
-        }
-
-        // Check if the recent transition is finished by returning to the current
-        // split, so we can restore the divider bar.
-        boolean returnToApp = false;
+    /**
+     * Returns whether the given WCT is reordering any of the split tasks to top.
+     */
+    public boolean wctIsReorderingSplitToTop(@NonNull WindowContainerTransaction finishWct) {
         for (int i = 0; i < finishWct.getHierarchyOps().size(); ++i) {
             final WindowContainerTransaction.HierarchyOp op =
                     finishWct.getHierarchyOps().get(i);
@@ -3842,14 +3822,14 @@
             }
             if (op.getType() == HIERARCHY_OP_TYPE_REORDER && op.getToTop()
                     && anyStageContainsContainer) {
-                returnToApp = true;
+                return true;
             }
         }
-        onRecentsInSplitAnimationFinishInner(returnToApp, finishWct, finishT);
+        return false;
     }
 
-    /** Call this when the recents animation during split-screen finishes. */
-    public void onRecentsInSplitAnimationFinishInner(boolean returnToApp,
+    /** Called when the recents animation during split-screen finishes. */
+    public void onRecentsInSplitAnimationFinishing(boolean returnToApp,
             @NonNull WindowContainerTransaction finishWct,
             @NonNull SurfaceControl.Transaction finishT) {
         ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "onRecentsInSplitAnimationFinish: returnToApp=%b",
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
index 28bba2e..01428e6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
@@ -39,9 +39,12 @@
 import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS;
 import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_UNSPECIFIED;
 import static android.view.WindowManager.TRANSIT_CHANGE;
+import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
+import static android.view.WindowManager.TRANSIT_OPEN;
 import static android.view.WindowManager.TRANSIT_RELAUNCH;
 import static android.view.WindowManager.TRANSIT_TO_BACK;
+import static android.view.WindowManager.TRANSIT_TO_FRONT;
 import static android.window.TransitionInfo.FLAG_CROSS_PROFILE_OWNER_THUMBNAIL;
 import static android.window.TransitionInfo.FLAG_CROSS_PROFILE_WORK_THUMBNAIL;
 import static android.window.TransitionInfo.FLAG_DISPLAY_HAS_ALERT_WINDOWS;
@@ -55,6 +58,7 @@
 import static android.window.TransitionInfo.FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT;
 import static android.window.TransitionInfo.FLAG_TRANSLUCENT;
 
+import static com.android.internal.jank.Cuj.CUJ_DEFAULT_TASK_TO_TASK_ANIMATION;
 import static com.android.internal.policy.TransitionAnimation.DEFAULT_APP_TRANSITION_DURATION;
 import static com.android.internal.policy.TransitionAnimation.WALLPAPER_TRANSITION_CHANGE;
 import static com.android.internal.policy.TransitionAnimation.WALLPAPER_TRANSITION_CLOSE;
@@ -101,6 +105,7 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.jank.InteractionJankMonitor;
 import com.android.internal.policy.ScreenDecorationsUtils;
 import com.android.internal.policy.TransitionAnimation;
 import com.android.internal.protolog.ProtoLog;
@@ -144,6 +149,8 @@
 
     private Drawable mEnterpriseThumbnailDrawable;
 
+    final InteractionJankMonitor mInteractionJankMonitor;
+
     private BroadcastReceiver mEnterpriseResourceUpdatedReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -161,7 +168,8 @@
             @NonNull TransactionPool transactionPool,
             @NonNull ShellExecutor mainExecutor, @NonNull Handler mainHandler,
             @NonNull ShellExecutor animExecutor,
-            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer) {
+            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer,
+            @NonNull InteractionJankMonitor interactionJankMonitor) {
         mDisplayController = displayController;
         mTransactionPool = transactionPool;
         mContext = context;
@@ -173,6 +181,7 @@
         mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
         shellInit.addInitCallback(this::onInit, this);
         mRootTDAOrganizer = rootTDAOrganizer;
+        mInteractionJankMonitor = interactionJankMonitor;
     }
 
     private void onInit() {
@@ -321,8 +330,17 @@
         final ArrayList<Animator> animations = new ArrayList<>();
         mAnimations.put(transition, animations);
 
+        final boolean isTaskTransition = isTaskTransition(info);
+        if (isTaskTransition) {
+            mInteractionJankMonitor.begin(info.getRoot(0).getLeash(), mContext,
+                    mMainHandler, CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
+        }
+
         final Runnable onAnimFinish = () -> {
             if (!animations.isEmpty()) return;
+            if (isTaskTransition) {
+                mInteractionJankMonitor.end(CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
+            }
             mAnimations.remove(transition);
             finishCallback.onTransitionFinished(null /* wct */);
         };
@@ -451,6 +469,17 @@
             final int type = getTransitionTypeFromInfo(info);
             Animation a = loadAnimation(type, info, change, wallpaperTransit, isDreamTransition);
             if (a != null) {
+                final int displayId = isTask ? change.getTaskInfo().displayId
+                        : info.getRoot(TransitionUtil.rootIndexFor(change, info))
+                                .getDisplayId();
+                final Context displayContext =
+                        mDisplayController.getDisplayContext(displayId);
+                if (displayContext != null
+                        && displayContext.getResources().getConfiguration().isScreenRound()) {
+                    // ensure that any animation on a round display is using rounded corners
+                    a.setHasRoundedCorners(true);
+                }
+
                 if (isTask) {
                     final boolean isTranslucent = (change.getFlags() & FLAG_TRANSLUCENT) != 0;
                     if (!isTranslucent && TransitionUtil.isOpenOrCloseMode(mode)
@@ -504,11 +533,6 @@
 
                 final float cornerRadius;
                 if (a.hasRoundedCorners()) {
-                    final int displayId = isTask ? change.getTaskInfo().displayId
-                            : info.getRoot(TransitionUtil.rootIndexFor(change, info))
-                                    .getDisplayId();
-                    final Context displayContext =
-                            mDisplayController.getDisplayContext(displayId);
                     cornerRadius = displayContext == null ? 0
                             : ScreenDecorationsUtils.getWindowCornerRadius(displayContext);
                 } else {
@@ -672,6 +696,30 @@
     }
 
     /**
+     * A task transition is defined as a transition where there is exaclty one open/to_front task
+     * and one close/to_back task. Nothing else is allowed to be included in the transition
+     */
+    public static boolean isTaskTransition(@NonNull TransitionInfo info) {
+        if (info.getChanges().size() != 2) {
+            return false;
+        }
+        boolean hasOpeningTask = false;
+        boolean hasClosingTask = false;
+
+        for (int i = info.getChanges().size() - 1; i >= 0; --i) {
+            final TransitionInfo.Change change = info.getChanges().get(i);
+            if (change.getTaskInfo() == null) {
+                // A non-task is in the transition
+                return false;
+            }
+            int mode = change.getMode();
+            hasOpeningTask |= mode == TRANSIT_OPEN || mode == TRANSIT_TO_FRONT;
+            hasClosingTask |= mode == TRANSIT_CLOSE || mode == TRANSIT_TO_BACK;
+        }
+        return hasOpeningTask && hasClosingTask;
+    }
+
+    /**
      * Does `info` only contain translucent visibility changes (CHANGEs are ignored). We select
      * different animations and z-orders for these
      */
@@ -980,4 +1028,10 @@
                 || animType == ANIM_CLIP_REVEAL || animType == ANIM_OPEN_CROSS_PROFILE_APPS
                 || animType == ANIM_FROM_STYLE;
     }
+
+    @Override
+    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
+                              @Nullable SurfaceControl.Transaction finishTransaction) {
+        mInteractionJankMonitor.cancel(CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
+    }
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RecentsMixedTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RecentsMixedTransition.java
index f40dc8a..1e926c5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RecentsMixedTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RecentsMixedTransition.java
@@ -159,9 +159,17 @@
             // If pair-to-pair switching, the post-recents clean-up isn't needed.
             wct = wct != null ? wct : new WindowContainerTransaction();
             if (mAnimType != ANIM_TYPE_PAIR_TO_PAIR) {
-                // TODO(b/346588978): Only called if !enableRecentsBookendTransition(), can remove
-                // once that rolls out
-                mSplitHandler.onRecentsInSplitAnimationFinish(wct, finishTransaction);
+                // We've dispatched to the mLeftoversHandler to handle the rest of the transition
+                // and called onRecentsInSplitAnimationStart(), but if the recents handler is not
+                // actually handling the transition, then onRecentsInSplitAnimationFinishing()
+                // won't actually get called by the recents handler.  In such cases, we still need
+                // to clean up after the changes from the start call.
+                boolean splitNotifiedByRecents = mRecentsHandler == mLeftoversHandler;
+                if (!splitNotifiedByRecents) {
+                    mSplitHandler.onRecentsInSplitAnimationFinishing(
+                            mSplitHandler.wctIsReorderingSplitToTop(wct),
+                            wct, finishTransaction);
+                }
             } else {
                 // notify pair-to-pair recents animation finish
                 mSplitHandler.onRecentsPairToPairAnimationFinish(wct);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
index c90f6cf..e28a7fa 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
@@ -77,6 +77,7 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.jank.InteractionJankMonitor;
 import com.android.internal.protolog.ProtoLog;
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
 import com.android.wm.shell.ShellTaskOrganizer;
@@ -196,6 +197,9 @@
     /** Transition type for app compat reachability. */
     public static final int TRANSIT_MOVE_LETTERBOX_REACHABILITY = TRANSIT_FIRST_CUSTOM + 23;
 
+    /** Transition type for converting a task to a bubble. */
+    public static final int TRANSIT_CONVERT_TO_BUBBLE = TRANSIT_FIRST_CUSTOM + 24;
+
     /** Transition type for desktop mode transitions. */
     public static final int TRANSIT_DESKTOP_MODE_TYPES =
             WindowManager.TRANSIT_FIRST_CUSTOM + 100;
@@ -335,7 +339,8 @@
         mDisplayController = displayController;
         mPlayerImpl = new TransitionPlayerImpl();
         mDefaultTransitionHandler = new DefaultTransitionHandler(context, shellInit,
-                displayController, pool, mainExecutor, mainHandler, animExecutor, rootTDAOrganizer);
+                displayController, pool, mainExecutor, mainHandler, animExecutor, rootTDAOrganizer,
+                InteractionJankMonitor.getInstance());
         mRemoteTransitionHandler = new RemoteTransitionHandler(mMainExecutor);
         mShellCommandHandler = shellCommandHandler;
         mShellController = shellController;
@@ -1867,6 +1872,7 @@
             case TRANSIT_MINIMIZE -> "MINIMIZE";
             case TRANSIT_START_RECENTS_TRANSITION -> "START_RECENTS_TRANSITION";
             case TRANSIT_END_RECENTS_TRANSITION -> "END_RECENTS_TRANSITION";
+            case TRANSIT_CONVERT_TO_BUBBLE -> "CONVERT_TO_BUBBLE";
             default -> "";
         };
         if (typeStr.isEmpty()) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
index e8d18c4..1cc04b4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
@@ -911,7 +911,7 @@
         private boolean mIsCustomHeaderGesture;
         private boolean mIsResizeGesture;
         private boolean mIsDragging;
-        private boolean mTouchscreenInUse;
+        private boolean mLongClickDisabled;
         private int mDragPointerId = -1;
         private MotionEvent mMotionEvent;
 
@@ -997,10 +997,12 @@
             mMotionEvent = e;
             final int id = v.getId();
             final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(mTaskId);
-            if ((e.getSource() & SOURCE_TOUCHSCREEN) == SOURCE_TOUCHSCREEN) {
-                mTouchscreenInUse = e.getActionMasked() != ACTION_UP
-                        && e.getActionMasked() != ACTION_CANCEL;
-            }
+            final boolean touchscreenSource =
+                    (e.getSource() & SOURCE_TOUCHSCREEN) == SOURCE_TOUCHSCREEN;
+            // Disable long click during events from a non-touchscreen source
+            mLongClickDisabled = !touchscreenSource && e.getActionMasked() != ACTION_UP
+                    && e.getActionMasked() != ACTION_CANCEL;
+
             if (id != R.id.caption_handle && id != R.id.desktop_mode_caption
                     && id != R.id.open_menu_button && id != R.id.close_window
                     && id != R.id.maximize_window && id != R.id.minimize_window) {
@@ -1070,7 +1072,7 @@
         @Override
         public boolean onLongClick(View v) {
             final int id = v.getId();
-            if (id == R.id.maximize_window && mTouchscreenInUse) {
+            if (id == R.id.maximize_window && !mLongClickDisabled) {
                 final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(mTaskId);
                 moveTaskToFront(decoration.mTaskInfo);
                 if (decoration.isMaximizeMenuActive()) {
@@ -1712,7 +1714,8 @@
                         mWindowDecorViewHostSupplier,
                         mMultiInstanceHelper,
                         mWindowDecorCaptionHandleRepository,
-                        mDesktopModeEventLogger);
+                        mDesktopModeEventLogger,
+                        mDesktopModeCompatPolicy);
         mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration);
 
         final TaskPositioner taskPositioner = mTaskPositionerFactory.create(
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
index 7e75e40..3fb9463 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
@@ -94,6 +94,7 @@
 import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository;
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread;
 import com.android.wm.shell.shared.annotations.ShellMainThread;
+import com.android.wm.shell.shared.desktopmode.DesktopModeCompatPolicy;
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
 import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource;
 import com.android.wm.shell.shared.multiinstance.ManageWindowsViewContainer;
@@ -191,6 +192,7 @@
     private final HandleMenuFactory mHandleMenuFactory;
     private final AppToWebGenericLinksParser mGenericLinksParser;
     private final AssistContentRequester mAssistContentRequester;
+    private final DesktopModeCompatPolicy mDesktopModeCompatPolicy;
 
     // Hover state for the maximize menu and button. The menu will remain open as long as either of
     // these is true. See {@link #onMaximizeHoverStateChanged()}.
@@ -232,7 +234,8 @@
             @NonNull WindowDecorViewHostSupplier<WindowDecorViewHost> windowDecorViewHostSupplier,
             MultiInstanceHelper multiInstanceHelper,
             WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
-            DesktopModeEventLogger desktopModeEventLogger) {
+            DesktopModeEventLogger desktopModeEventLogger,
+            DesktopModeCompatPolicy desktopModeCompatPolicy) {
         this (context, userContext, displayController, taskResourceLoader, splitScreenController,
                 desktopUserRepositories, taskOrganizer, taskInfo, taskSurface, handler,
                 mainExecutor, mainDispatcher, bgScope, bgExecutor, choreographer, syncQueue,
@@ -245,7 +248,8 @@
                 windowDecorViewHostSupplier,
                 DefaultMaximizeMenuFactory.INSTANCE,
                 DefaultHandleMenuFactory.INSTANCE, multiInstanceHelper,
-                windowDecorCaptionHandleRepository, desktopModeEventLogger);
+                windowDecorCaptionHandleRepository, desktopModeEventLogger,
+                desktopModeCompatPolicy);
     }
 
     DesktopModeWindowDecoration(
@@ -280,7 +284,8 @@
             HandleMenuFactory handleMenuFactory,
             MultiInstanceHelper multiInstanceHelper,
             WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
-            DesktopModeEventLogger desktopModeEventLogger) {
+            DesktopModeEventLogger desktopModeEventLogger,
+            DesktopModeCompatPolicy desktopModeCompatPolicy) {
         super(context, userContext, displayController, taskOrganizer, taskInfo,
                 taskSurface, surfaceControlBuilderSupplier, surfaceControlTransactionSupplier,
                 windowContainerTransactionSupplier, surfaceControlSupplier,
@@ -305,6 +310,7 @@
         mDesktopUserRepositories = desktopUserRepositories;
         mTaskResourceLoader = taskResourceLoader;
         mTaskResourceLoader.onWindowDecorCreated(taskInfo);
+        mDesktopModeCompatPolicy = desktopModeCompatPolicy;
     }
 
     /**
@@ -507,7 +513,8 @@
                 applyStartTransactionOnDraw, shouldSetTaskVisibilityPositionAndCrop,
                 mIsStatusBarVisible, mIsKeyguardVisibleAndOccluded, inFullImmersive,
                 mDisplayController.getInsetsState(taskInfo.displayId), hasGlobalFocus,
-                displayExclusionRegion, mIsRecentsTransitionRunning);
+                displayExclusionRegion, mIsRecentsTransitionRunning,
+                mDesktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(taskInfo));
 
         final WindowDecorLinearLayout oldRootView = mResult.mRootView;
         final SurfaceControl oldDecorationSurface = mDecorationContainerSurface;
@@ -891,7 +898,8 @@
             @NonNull InsetsState displayInsetsState,
             boolean hasGlobalFocus,
             @NonNull Region displayExclusionRegion,
-            boolean shouldIgnoreCornerRadius) {
+            boolean shouldIgnoreCornerRadius,
+            boolean shouldExcludeCaptionFromAppBounds) {
         final int captionLayoutId = getDesktopModeWindowDecorLayoutId(taskInfo.getWindowingMode());
         final boolean isAppHeader =
                 captionLayoutId == R.layout.desktop_mode_app_header;
@@ -951,15 +959,23 @@
                 }
             } else {
                 if (ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION.isTrue()) {
-                    // Force-consume the caption bar insets when the app tries to hide the caption.
-                    // This improves app compatibility of immersive apps.
-                    relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING;
+                    if (shouldExcludeCaptionFromAppBounds) {
+                        relayoutParams.mShouldSetAppBounds = true;
+                    } else {
+                        // Force-consume the caption bar insets when the app tries to hide the
+                        // caption. This improves app compatibility of immersive apps.
+                        relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING;
+                    }
                 }
             }
             if (ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION_ALWAYS.isTrue()) {
-                // Always force-consume the caption bar insets for maximum app compatibility,
-                // including non-immersive apps that just don't handle caption insets properly.
-                relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR;
+                if (shouldExcludeCaptionFromAppBounds) {
+                    relayoutParams.mShouldSetAppBounds = true;
+                } else {
+                    // Always force-consume the caption bar insets for maximum app compatibility,
+                    // including non-immersive apps that just don't handle caption insets properly.
+                    relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR;
+                }
             }
             if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()
                     && inFullImmersiveMode) {
@@ -1098,8 +1114,10 @@
         final float menuRight = menuLeft + menuWidth;
         final float menuBottom = menuTop + menuHeight;
 
-        // If the menu is out of screen bounds, shift it up/left as needed
-        if (menuRight > displayWidth) {
+        // If the menu is out of screen bounds, shift it as needed
+        if (menuLeft < 0) {
+            menuLeft = 0;
+        } else if (menuRight > displayWidth) {
             menuLeft = (displayWidth - menuWidth);
         }
         if (menuBottom > displayHeight) {
@@ -1745,7 +1763,7 @@
     private static int getCaptionHeightIdStatic(@WindowingMode int windowingMode) {
         return windowingMode == WINDOWING_MODE_FULLSCREEN
                 ? com.android.internal.R.dimen.status_bar_height_default
-                : R.dimen.desktop_mode_freeform_decor_caption_height;
+                : DesktopModeUtils.getAppHeaderHeightId();
     }
 
     private int getCaptionHeight(@WindowingMode int windowingMode) {
@@ -1843,7 +1861,8 @@
                         windowDecorViewHostSupplier,
                 MultiInstanceHelper multiInstanceHelper,
                 WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
-                DesktopModeEventLogger desktopModeEventLogger) {
+                DesktopModeEventLogger desktopModeEventLogger,
+                DesktopModeCompatPolicy desktopModeCompatPolicy) {
             return new DesktopModeWindowDecoration(
                     context,
                     userContext,
@@ -1868,7 +1887,8 @@
                     windowDecorViewHostSupplier,
                     multiInstanceHelper,
                     windowDecorCaptionHandleRepository,
-                    desktopModeEventLogger);
+                    desktopModeEventLogger,
+                    desktopModeCompatPolicy);
         }
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FixedAspectRatioTaskPositionerDecorator.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FixedAspectRatioTaskPositionerDecorator.kt
index ab30d61..cfd0688 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FixedAspectRatioTaskPositionerDecorator.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FixedAspectRatioTaskPositionerDecorator.kt
@@ -20,6 +20,7 @@
 import android.graphics.PointF
 import android.graphics.Rect
 import com.android.internal.annotations.VisibleForTesting
+import com.android.wm.shell.desktopmode.calculateAspectRatio
 import com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_BOTTOM
 import com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_LEFT
 import com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_RIGHT
@@ -27,8 +28,6 @@
 import com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_UNDEFINED
 import com.android.wm.shell.windowdecor.DragPositioningCallback.CtrlType
 import kotlin.math.abs
-import kotlin.math.max
-import kotlin.math.min
 
 /**
  * [AbstractTaskPositionerDecorator] implementation for validating the coordinates associated with a
@@ -59,8 +58,7 @@
         lastValidPoint.set(x, y)
         val startingBoundWidth = lastRepositionedBounds.width()
         val startingBoundHeight = lastRepositionedBounds.height()
-        startingAspectRatio = max(startingBoundWidth, startingBoundHeight).toFloat() /
-                min(startingBoundWidth, startingBoundHeight).toFloat()
+        startingAspectRatio = calculateAspectRatio(windowDecoration.mTaskInfo)
         isTaskPortrait = startingBoundWidth <= startingBoundHeight
 
         lastRepositionedBounds.set(
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
index 1d95649..ff50672 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
@@ -35,9 +35,10 @@
 import android.view.View
 import android.view.WindowInsets.Type.systemBars
 import android.view.WindowManager
-import android.widget.Button
 import android.widget.ImageButton
 import android.widget.ImageView
+import android.widget.LinearLayout
+import android.widget.Space
 import android.widget.TextView
 import android.window.DesktopModeFlags
 import android.window.SurfaceSyncGroup
@@ -473,7 +474,7 @@
         @VisibleForTesting
         val appIconView = appInfoPill.requireViewById<ImageView>(R.id.application_icon)
         @VisibleForTesting
-        val appNameView = appInfoPill.requireViewById<TextView>(R.id.application_name)
+        val appNameView = appInfoPill.requireViewById<MarqueedTextView>(R.id.application_name)
 
         // Windowing Pill.
         private val windowingPill = rootView.requireViewById<View>(R.id.windowing_pill)
@@ -482,21 +483,28 @@
         private val splitscreenBtn = windowingPill.requireViewById<ImageButton>(
             R.id.split_screen_button)
         private val floatingBtn = windowingPill.requireViewById<ImageButton>(R.id.floating_button)
+        private val floatingBtnSpace = windowingPill.requireViewById<Space>(
+            R.id.floating_button_space)
+
         private val desktopBtn = windowingPill.requireViewById<ImageButton>(R.id.desktop_button)
+        private val desktopBtnSpace = windowingPill.requireViewById<Space>(
+            R.id.desktop_button_space)
 
         // More Actions Pill.
         private val moreActionsPill = rootView.requireViewById<View>(R.id.more_actions_pill)
-        private val screenshotBtn = moreActionsPill.requireViewById<Button>(R.id.screenshot_button)
-        private val newWindowBtn = moreActionsPill.requireViewById<Button>(R.id.new_window_button)
+        private val screenshotBtn = moreActionsPill.requireViewById<HandleMenuActionButton>(
+            R.id.screenshot_button)
+        private val newWindowBtn = moreActionsPill.requireViewById<HandleMenuActionButton>(
+            R.id.new_window_button)
         private val manageWindowBtn = moreActionsPill
-            .requireViewById<Button>(R.id.manage_windows_button)
+            .requireViewById<HandleMenuActionButton>(R.id.manage_windows_button)
         private val changeAspectRatioBtn = moreActionsPill
-            .requireViewById<Button>(R.id.change_aspect_ratio_button)
+            .requireViewById<HandleMenuActionButton>(R.id.change_aspect_ratio_button)
 
         // Open in Browser/App Pill.
         private val openInAppOrBrowserPill = rootView.requireViewById<View>(
             R.id.open_in_app_or_browser_pill)
-        private val openInAppOrBrowserBtn = openInAppOrBrowserPill.requireViewById<Button>(
+        private val openInAppOrBrowserBtn = openInAppOrBrowserPill.requireViewById<View>(
             R.id.open_in_app_or_browser_button)
         private val openByDefaultBtn = openInAppOrBrowserPill.requireViewById<ImageButton>(
             R.id.open_by_default_button)
@@ -540,17 +548,35 @@
                 return@setOnTouchListener true
             }
 
-            with(context.resources) {
-                // Update a11y read out to say "double tap to enter desktop windowing mode"
+            with(context) {
+                // Update a11y announcement out to say "double tap to enter Fullscreen"
                 ViewCompat.replaceAccessibilityAction(
-                    desktopBtn, ACTION_CLICK,
-                    getString(R.string.app_handle_menu_talkback_desktop_mode_button_text), null
+                    fullscreenBtn, ACTION_CLICK,
+                    getString(
+                        R.string.app_handle_menu_accessibility_announce,
+                        getString(R.string.fullscreen_text)
+                    ),
+                    null,
                 )
 
-                // Update a11y read out to say "double tap to enter split screen mode"
+                // Update a11y announcement out to say "double tap to enter Desktop View"
+                ViewCompat.replaceAccessibilityAction(
+                    desktopBtn, ACTION_CLICK,
+                    getString(
+                        R.string.app_handle_menu_accessibility_announce,
+                        getString(R.string.desktop_text)
+                    ),
+                    null,
+                )
+
+                // Update a11y announcement to say "double tap to enter Split Screen"
                 ViewCompat.replaceAccessibilityAction(
                     splitscreenBtn, ACTION_CLICK,
-                    getString(R.string.app_handle_menu_talkback_split_screen_mode_button_text), null
+                    getString(
+                        R.string.app_handle_menu_accessibility_announce,
+                        getString(R.string.split_screen_text)
+                    ),
+                    null,
                 )
             }
         }
@@ -658,6 +684,7 @@
                 this.taskInfo = this@HandleMenuView.taskInfo
             }
             appNameView.setTextColor(style.textColor)
+            appNameView.startMarquee()
         }
 
         private fun bindWindowingPill(style: MenuStyle) {
@@ -665,6 +692,7 @@
 
             if (!BubbleAnythingFlagHelper.enableBubbleToFullscreen()) {
                 floatingBtn.visibility = View.GONE
+                floatingBtnSpace.visibility = View.GONE
             }
 
             fullscreenBtn.isSelected = taskInfo.isFullscreen
@@ -693,11 +721,17 @@
             ).forEach {
                 val button = it.first
                 val shouldShow = it.second
-                button.apply {
-                    isGone = !shouldShow
+
+                val buttonRoot = button.requireViewById<LinearLayout>(R.id.action_button)
+                val label = buttonRoot.requireViewById<MarqueedTextView>(R.id.label)
+                val image = buttonRoot.requireViewById<ImageView>(R.id.image)
+
+                button.isGone = !shouldShow
+                label.apply {
                     setTextColor(style.textColor)
-                    compoundDrawableTintList = ColorStateList.valueOf(style.textColor)
+                    startMarquee()
                 }
+                image.imageTintList = ColorStateList.valueOf(style.textColor)
             }
         }
 
@@ -712,12 +746,17 @@
             } else {
                 getString(R.string.open_in_browser_text)
             }
-            openInAppOrBrowserBtn.apply {
+
+            val label = openInAppOrBrowserBtn.requireViewById<MarqueedTextView>(R.id.label)
+            val image = openInAppOrBrowserBtn.requireViewById<ImageView>(R.id.image)
+            openInAppOrBrowserBtn.contentDescription = btnText
+            label.apply {
                 text = btnText
-                contentDescription = btnText
                 setTextColor(style.textColor)
-                compoundDrawableTintList = ColorStateList.valueOf(style.textColor)
+                startMarquee()
             }
+            image.imageTintList = ColorStateList.valueOf(style.textColor)
+
             openByDefaultBtn.isGone = isBrowserApp
             openByDefaultBtn.imageTintList = ColorStateList.valueOf(style.textColor)
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuActionButton.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuActionButton.kt
new file mode 100644
index 0000000..4b2e473
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuActionButton.kt
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.wm.shell.windowdecor
+
+import android.annotation.ColorInt
+import android.annotation.IdRes
+import android.content.Context
+import android.content.res.ColorStateList
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.widget.ImageView
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.core.content.withStyledAttributes
+import androidx.core.view.isGone
+import com.android.wm.shell.R
+
+/**
+ * Button-like component used to display the "Additional options" elements of the Handle menu window
+ *  decoration.
+ *
+ * The possible options for which this button is used for are "Screenshot", "New Window", "Manage
+ * Windows" and "Change Aspect Ratio".
+ */
+class HandleMenuActionButton @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet? = null,
+    defStyleAttr: Int = 0
+) : LinearLayout(context, attrs, defStyleAttr) {
+
+    private val rootElement: LinearLayout
+    private val iconView: ImageView
+    private val textView: MarqueedTextView
+
+    init {
+        val view = LayoutInflater.from(context).inflate(
+            R.layout.desktop_mode_window_decor_handle_menu_action_button, this, true)
+        rootElement = findViewById(R.id.action_button)
+        iconView = findViewById(R.id.image)
+        textView = findViewById(R.id.label)
+
+        context.withStyledAttributes(attrs, R.styleable.HandleMenuActionButton) {
+            textView.text = getString(R.styleable.HandleMenuActionButton_android_text)
+            textView.setTextColor(getColor(R.styleable.HandleMenuActionButton_android_textColor, 0))
+            iconView.setImageResource(getResourceId(
+                R.styleable.HandleMenuActionButton_android_src, 0))
+            iconView.imageTintList = getColorStateList(
+                R.styleable.HandleMenuActionButton_android_drawableTint)
+        }
+    }
+
+    /**
+     * Sets a listener to be invoked when this view is clicked.
+     *
+     * @param l the [OnClickListener] that receives click events.
+     */
+    override fun setOnClickListener(l: OnClickListener?) {
+        rootElement.setOnClickListener(l)
+    }
+
+    /**
+     * Sets the text color for the text inside the button.
+     *
+     * @param color the color to set for the text, as a color integer.
+     */
+    fun setTextColor(@ColorInt color: Int) {
+        textView.setTextColor(color)
+    }
+
+    /**
+     * Sets the icon for the button using a resource ID.
+     *
+     * @param resourceId the resource ID of the drawable to set as the icon.
+     */
+    fun setIconResource(@IdRes resourceId: Int) {
+        iconView.setImageResource(resourceId)
+    }
+
+    /**
+     * Sets the text to display inside the button.
+     *
+     * @param text the text to display.
+     */
+    fun setText(text: CharSequence?) {
+        textView.text = text
+    }
+
+    /**
+     * Sets the tint color for the icon.
+     *
+     * @param color the color to use for the tint, as a color integer.
+     */
+    fun setDrawableTint(@ColorInt color: Int) {
+        iconView.imageTintList = ColorStateList.valueOf(color)
+    }
+
+    /**
+     * Gets or sets the tint applied to the icon.
+     *
+     * @return The [ColorStateList] representing the tint, or null if no tint is applied.
+     */
+    var compoundDrawableTintList: ColorStateList?
+        get() = iconView.imageTintList
+        set(value) {
+            iconView.imageTintList = value
+        }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuAnimator.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuAnimator.kt
index 470e5a1..75f90bb 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuAnimator.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuAnimator.kt
@@ -327,7 +327,7 @@
                 }
 
         // Open in Browser Button Opacity Animation
-        val button = openInAppOrBrowserPill.requireViewById<Button>(R.id.open_in_app_or_browser_button)
+        val button = openInAppOrBrowserPill.requireViewById<View>(R.id.open_in_app_or_browser_button)
         animators +=
                 ObjectAnimator.ofFloat(button, ALPHA, 1f).apply {
                     startDelay = BODY_ALPHA_OPEN_DELAY
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MarqueedTextView.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MarqueedTextView.kt
new file mode 100644
index 0000000..733b622
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MarqueedTextView.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.wm.shell.windowdecor
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.TextView
+
+/** A custom [TextView] that allows better control over marquee animation used to ellipsize text. */
+class MarqueedTextView @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet? = null,
+    defStyleAttr: Int = android.R.attr.textViewStyle
+) : TextView(context, attrs, defStyleAttr) {
+
+    /**
+     * Starts marquee animation if the layout attributes for this object include
+     * `android:ellipsize=marquee`, `android:singleLine=true`, and
+     * `android:scrollHorizontally=true`.
+     */
+    override public fun startMarquee() {
+        super.startMarquee()
+    }
+
+    /**
+     * Must always return [true] since [TextView.startMarquee()] requires view to be selected or
+     * focused in order to start the marquee animation.
+     *
+     * We are not using [TextView.setSelected()] as this would dispatch undesired accessibility
+     * events.
+     */
+    override fun isSelected() : Boolean {
+        return true
+    }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt
index be3ea4e..38accce 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt
@@ -291,13 +291,24 @@
             requireViewById(R.id.maximize_menu_snap_container) as View
         private val snapWindowText =
             requireViewById(R.id.maximize_menu_snap_window_text) as TextView
-        private val snapRightButton =
-            requireViewById(R.id.maximize_menu_snap_right_button) as Button
-        private val snapLeftButton =
-            requireViewById(R.id.maximize_menu_snap_left_button) as Button
         private val snapButtonsLayout =
             requireViewById(R.id.maximize_menu_snap_menu_layout)
 
+        // If layout direction is RTL, maximize menu will be mirrored, switching the order of the
+        // snap right/left buttons.
+        val isRtl: Boolean =
+            (context.resources.configuration.layoutDirection == View.LAYOUT_DIRECTION_RTL)
+        private val snapRightButton = if (isRtl) {
+            requireViewById(R.id.maximize_menu_snap_left_button) as Button
+        } else {
+            requireViewById(R.id.maximize_menu_snap_right_button) as Button
+        }
+        private val snapLeftButton = if (isRtl) {
+            requireViewById(R.id.maximize_menu_snap_right_button) as Button
+        } else {
+            requireViewById(R.id.maximize_menu_snap_left_button) as Button
+        }
+
         private val decorThemeUtil = DecorThemeUtil(context)
 
         private val outlineRadius = context.resources
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt
index 07496eb..a9c2e68 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt
@@ -199,7 +199,7 @@
                 // TODO(b/383069173): Render drag indicator(s)
 
                 t.setPosition(
-                    desktopWindowDecoration.mTaskSurface,
+                    desktopWindowDecoration.leash,
                     repositionTaskBounds.left.toFloat(),
                     repositionTaskBounds.top.toFloat(),
                 )
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/OWNERS
index 3f828f5..9924025 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/OWNERS
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/OWNERS
@@ -1,3 +1,2 @@
-jorgegil@google.com
 mattsziklay@google.com
 mdehaini@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
index 3fcb093..25dadfd 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
@@ -302,7 +302,11 @@
         Trace.endSection();
 
         Trace.beginSection("WindowDecoration#relayout-updateViewHost");
-        outResult.mRootView.setPadding(0, params.mCaptionTopPadding, 0, 0);
+        outResult.mRootView.setPadding(
+                outResult.mRootView.getPaddingLeft(),
+                params.mCaptionTopPadding,
+                outResult.mRootView.getPaddingRight(),
+                outResult.mRootView.getPaddingBottom());
         final Rect localCaptionBounds = new Rect(
                 outResult.mCaptionX,
                 outResult.mCaptionY,
@@ -470,8 +474,8 @@
         }
 
         final WindowDecorationInsets newInsets = new WindowDecorationInsets(
-                mTaskInfo.token, mOwner, captionInsetsRect, boundingRects,
-                params.mInsetSourceFlags, params.mIsInsetSource);
+                mTaskInfo.token, mOwner, captionInsetsRect, taskBounds, boundingRects,
+                params.mInsetSourceFlags, params.mIsInsetSource, params.mShouldSetAppBounds);
         if (!newInsets.equals(mWindowDecorationInsets)) {
             // Add or update this caption as an insets source.
             mWindowDecorationInsets = newInsets;
@@ -793,8 +797,8 @@
         final int captionHeight = loadDimensionPixelSize(mContext.getResources(), captionHeightId);
         final Rect captionInsets = new Rect(0, 0, 0, captionHeight);
         final WindowDecorationInsets newInsets = new WindowDecorationInsets(mTaskInfo.token,
-                mOwner, captionInsets, null /* boundingRets */, 0 /* flags */,
-                true /* shouldAddCaptionInset */);
+                mOwner, captionInsets, null  /* taskFrame */,  null /* boundingRects */,
+                0 /* flags */, true /* shouldAddCaptionInset */, false /* excludedFromAppBounds */);
         if (!newInsets.equals(mWindowDecorationInsets)) {
             mWindowDecorationInsets = newInsets;
             mWindowDecorationInsets.update(wct);
@@ -825,6 +829,7 @@
         boolean mApplyStartTransactionOnDraw;
         boolean mSetTaskVisibilityPositionAndCrop;
         boolean mHasGlobalFocus;
+        boolean mShouldSetAppBounds;
 
         void reset() {
             mLayoutResId = Resources.ID_NULL;
@@ -848,6 +853,7 @@
             mWindowDecorConfig = null;
             mAsyncViewHost = false;
             mHasGlobalFocus = false;
+            mShouldSetAppBounds = false;
         }
 
         boolean hasInputFeatureSpy() {
@@ -905,7 +911,6 @@
         }
     }
 
-    @VisibleForTesting
     public interface SurfaceControlViewHostFactory {
         default SurfaceControlViewHost create(Context c, Display d, WindowlessWindowManager wmm) {
             return new SurfaceControlViewHost(c, d, wmm, "WindowDecoration");
@@ -921,19 +926,23 @@
         private final WindowContainerToken mToken;
         private final Binder mOwner;
         private final Rect mFrame;
+        private final Rect mTaskFrame;
         private final Rect[] mBoundingRects;
         private final @InsetsSource.Flags int mFlags;
         private final boolean mShouldAddCaptionInset;
+        private final boolean mExcludedFromAppBounds;
 
         private WindowDecorationInsets(WindowContainerToken token, Binder owner, Rect frame,
-                Rect[] boundingRects, @InsetsSource.Flags int flags,
-                boolean shouldAddCaptionInset) {
+                Rect taskFrame, Rect[] boundingRects, @InsetsSource.Flags int flags,
+                boolean shouldAddCaptionInset, boolean excludedFromAppBounds) {
             mToken = token;
             mOwner = owner;
             mFrame = frame;
+            mTaskFrame = taskFrame;
             mBoundingRects = boundingRects;
             mFlags = flags;
             mShouldAddCaptionInset = shouldAddCaptionInset;
+            mExcludedFromAppBounds = excludedFromAppBounds;
         }
 
         void update(WindowContainerTransaction wct) {
@@ -942,12 +951,20 @@
                         mFlags);
                 wct.addInsetsSource(mToken, mOwner, INDEX, mandatorySystemGestures(), mFrame,
                         mBoundingRects, 0 /* flags */);
+                if (mExcludedFromAppBounds) {
+                    final Rect appBounds = new Rect(mTaskFrame);
+                    appBounds.top += mFrame.height();
+                    wct.setAppBounds(mToken, appBounds);
+                }
             }
         }
 
         void remove(WindowContainerTransaction wct) {
             wct.removeInsetsSource(mToken, mOwner, INDEX, captionBar());
             wct.removeInsetsSource(mToken, mOwner, INDEX, mandatorySystemGestures());
+            if (mExcludedFromAppBounds) {
+                wct.setAppBounds(mToken, new Rect());
+            }
         }
 
         @Override
@@ -956,9 +973,11 @@
             if (!(o instanceof WindowDecoration.WindowDecorationInsets that)) return false;
             return Objects.equals(mToken, that.mToken) && Objects.equals(mOwner,
                     that.mOwner) && Objects.equals(mFrame, that.mFrame)
+                    && Objects.equals(mTaskFrame, that.mTaskFrame)
                     && Objects.deepEquals(mBoundingRects, that.mBoundingRects)
                     && mFlags == that.mFlags
-                    && mShouldAddCaptionInset == that.mShouldAddCaptionInset;
+                    && mShouldAddCaptionInset == that.mShouldAddCaptionInset
+                    && mExcludedFromAppBounds == that.mExcludedFromAppBounds;
         }
 
         @Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
index bc2be90..90c865e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
@@ -228,23 +228,29 @@
             }
         }
 
-        with(context.resources) {
-            // Update a11y read out to say "double tap to maximize or restore window size"
-            ViewCompat.replaceAccessibilityAction(
-                maximizeWindowButton,
-                AccessibilityActionCompat.ACTION_CLICK,
-                getString(R.string.maximize_button_talkback_action_maximize_restore_text),
-                null
-            )
+        // Update a11y announcement to say "double tap to open menu"
+        ViewCompat.replaceAccessibilityAction(
+            openMenuButton,
+            AccessibilityActionCompat.ACTION_CLICK,
+            context.getString(R.string.app_handle_chip_accessibility_announce),
+            null
+        )
 
-            // Update a11y read out to say "double tap to minimize app window"
-            ViewCompat.replaceAccessibilityAction(
-                minimizeWindowButton,
-                AccessibilityActionCompat.ACTION_CLICK,
-                getString(R.string.minimize_button_talkback_action_maximize_restore_text),
-                null
-            )
-        }
+        // Update a11y announcement to say "double tap to maximize or restore window size"
+        ViewCompat.replaceAccessibilityAction(
+            maximizeWindowButton,
+            AccessibilityActionCompat.ACTION_CLICK,
+            context.getString(R.string.maximize_button_talkback_action_maximize_restore_text),
+            null
+        )
+
+        // Update a11y announcement out to say "double tap to minimize app window"
+        ViewCompat.replaceAccessibilityAction(
+            minimizeWindowButton,
+            AccessibilityActionCompat.ACTION_CLICK,
+            context.getString(R.string.minimize_button_talkback_action_maximize_restore_text),
+            null
+        )
     }
 
     override fun bindData(data: HeaderData) {
@@ -260,6 +266,8 @@
     /** Sets the app's name in the header. */
     fun setAppName(name: CharSequence) {
         appNameTextView.text = name
+        openMenuButton.contentDescription =
+            context.getString(R.string.desktop_mode_app_header_chip_text, name)
     }
 
     /** Sets the app's icon in the header. */
diff --git a/libs/WindowManager/Shell/tests/OWNERS b/libs/WindowManager/Shell/tests/OWNERS
index 19829e7..bac8e50 100644
--- a/libs/WindowManager/Shell/tests/OWNERS
+++ b/libs/WindowManager/Shell/tests/OWNERS
@@ -12,7 +12,6 @@
 jorgegil@google.com
 vaniadesmonda@google.com
 pbdr@google.com
-tkachenkoi@google.com
 mpodolian@google.com
 jeremysim@google.com
 peanutbutter@google.com
diff --git a/libs/WindowManager/Shell/tests/flicker/bubble/AndroidTestTemplate.xml b/libs/WindowManager/Shell/tests/flicker/bubble/AndroidTestTemplate.xml
index 02b2cec..ae73dae 100644
--- a/libs/WindowManager/Shell/tests/flicker/bubble/AndroidTestTemplate.xml
+++ b/libs/WindowManager/Shell/tests/flicker/bubble/AndroidTestTemplate.xml
@@ -53,10 +53,12 @@
         <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/>
         <option name="run-command" value="settings put system show_touches 1"/>
         <option name="run-command" value="settings put system pointer_location 1"/>
+        <option name="run-command" value="settings put secure glanceable_hub_enabled 0"/>
         <option name="teardown-command"
                 value="settings delete secure show_ime_with_hard_keyboard"/>
         <option name="teardown-command" value="settings delete system show_touches"/>
         <option name="teardown-command" value="settings delete system pointer_location"/>
+        <option name="teardown-command" value="settings delete secure glanceable_hub_enabled"/>
         <option name="teardown-command"
                 value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/>
     </target_preparer>
diff --git a/libs/WindowManager/Shell/tests/unittest/Android.bp b/libs/WindowManager/Shell/tests/unittest/Android.bp
index 91be5f5..bf5e374 100644
--- a/libs/WindowManager/Shell/tests/unittest/Android.bp
+++ b/libs/WindowManager/Shell/tests/unittest/Android.bp
@@ -64,6 +64,7 @@
         "platform-test-annotations",
         "flag-junit",
         "platform-parametric-runner-lib",
+        "platform-compat-test-rules",
     ],
 
     libs: [
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java
index ffcc344..7a7d88b 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java
@@ -572,6 +572,22 @@
         assertThat(update.shouldShowEducation).isTrue();
     }
 
+    /** Verifies that the update should contain the bubble bar location. */
+    @Test
+    public void test_shouldUpdateBubbleBarLocation() {
+        // Setup
+        mBubbleData.setListener(mListener);
+
+        // Test
+        mBubbleData.notificationEntryUpdated(mBubbleA1, /* suppressFlyout */ true, /* showInShade */
+                true, BubbleBarLocation.LEFT);
+
+        // Verify
+        verifyUpdateReceived();
+        BubbleData.Update update = mUpdateCaptor.getValue();
+        assertThat(update.mBubbleBarLocation).isEqualTo(BubbleBarLocation.LEFT);
+    }
+
     /**
      * Verifies that the update shouldn't show the user education, if the education is required but
      * the bubble should auto-expand
@@ -1367,6 +1383,20 @@
     }
 
     @Test
+    public void setSelectedBubbleAndExpandStackWithLocation() {
+        sendUpdatedEntryAtTime(mEntryA1, 1000);
+        sendUpdatedEntryAtTime(mEntryA2, 2000);
+        mBubbleData.setListener(mListener);
+
+        mBubbleData.setSelectedBubbleAndExpandStack(mBubbleA1, BubbleBarLocation.LEFT);
+
+        verifyUpdateReceived();
+        assertSelectionChangedTo(mBubbleA1);
+        assertExpandedChangedTo(true);
+        assertLocationChangedTo(BubbleBarLocation.LEFT);
+    }
+
+    @Test
     public void testShowOverflowChanged_hasOverflowBubbles() {
         assertThat(mBubbleData.getOverflowBubbles()).isEmpty();
         sendUpdatedEntryAtTime(mEntryA1, 1000);
@@ -1450,6 +1480,12 @@
         assertWithMessage("selectedBubble").that(update.selectedBubble).isEqualTo(bubble);
     }
 
+    private void assertLocationChangedTo(BubbleBarLocation location) {
+        BubbleData.Update update = mUpdateCaptor.getValue();
+        assertWithMessage("locationChanged").that(update.mBubbleBarLocation)
+                .isEqualTo(location);
+    }
+
     private void assertExpandedChangedTo(boolean expected) {
         BubbleData.Update update = mUpdateCaptor.getValue();
         assertWithMessage("expandedChanged").that(update.expandedChanged).isTrue();
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleOverflowTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleOverflowTest.java
index a1d4a1a..094af96 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleOverflowTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleOverflowTest.java
@@ -26,7 +26,6 @@
 
 import androidx.test.filters.SmallTest;
 
-import com.android.internal.logging.testing.UiEventLoggerFake;
 import com.android.wm.shell.ShellTestCase;
 
 import org.junit.Before;
@@ -46,7 +45,6 @@
     private TestableBubblePositioner mPositioner;
     private BubbleOverflow mOverflow;
     private BubbleExpandedViewManager mExpandedViewManager;
-    private BubbleLogger mBubbleLogger;
 
     @Mock
     private BubbleController mBubbleController;
@@ -60,7 +58,6 @@
         mExpandedViewManager = BubbleExpandedViewManager.fromBubbleController(mBubbleController);
         mPositioner = new TestableBubblePositioner(mContext,
                 mContext.getSystemService(WindowManager.class));
-        mBubbleLogger = new BubbleLogger(new UiEventLoggerFake());
         when(mBubbleController.getPositioner()).thenReturn(mPositioner);
         when(mBubbleController.getStackView()).thenReturn(mBubbleStackView);
 
@@ -80,7 +77,7 @@
 
     @Test
     public void test_initialize_forBubbleBar() {
-        mOverflow.initializeForBubbleBar(mExpandedViewManager, mPositioner, mBubbleLogger);
+        mOverflow.initializeForBubbleBar(mExpandedViewManager, mPositioner);
 
         assertThat(mOverflow.getBubbleBarExpandedView()).isNotNull();
         assertThat(mOverflow.getExpandedView()).isNull();
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTest.java
index dca5fc4..2c0ced4 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTest.java
@@ -22,18 +22,22 @@
 import static org.junit.Assert.assertNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.Notification;
 import android.app.PendingIntent;
+import android.app.TaskInfo;
+import android.content.ComponentName;
 import android.content.Intent;
 import android.content.pm.ShortcutInfo;
 import android.content.res.Resources;
 import android.graphics.drawable.Icon;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.service.notification.NotificationListenerService;
 import android.service.notification.StatusBarNotification;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
@@ -60,13 +64,17 @@
     @Mock
     private StatusBarNotification mSbn;
     @Mock
+    private NotificationListenerService.Ranking mRanking;
+    @Mock
     private ShellExecutor mMainExecutor;
     @Mock
     private ShellExecutor mBgExecutor;
 
-    private BubbleEntry mBubbleEntry;
     private Bundle mExtras;
-    private Bubble mBubble;
+
+    // This entry / bubble are set up with PendingIntent / Icon API for chat
+    private BubbleEntry mBubbleEntry;
+    private Bubble mChatBubble;
 
     @Mock
     private Bubbles.BubbleMetadataFlagListener mBubbleMetadataFlagListener;
@@ -83,11 +91,16 @@
                 PendingIntent.getActivity(mContext, 0, target, PendingIntent.FLAG_MUTABLE),
                 Icon.createWithResource(mContext, R.drawable.bubble_ic_create_bubble))
                 .build();
+        ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
+                .setId("shortcutId")
+                .build();
         when(mSbn.getNotification()).thenReturn(mNotif);
         when(mNotif.getBubbleMetadata()).thenReturn(metadata);
         when(mSbn.getKey()).thenReturn("mock");
-        mBubbleEntry = new BubbleEntry(mSbn, null, true, false, false, false);
-        mBubble = new Bubble(mBubbleEntry, mBubbleMetadataFlagListener, null, mMainExecutor,
+        when(mRanking.getConversationShortcutInfo()).thenReturn(shortcutInfo);
+
+        mBubbleEntry = new BubbleEntry(mSbn, mRanking, true, false, false, false);
+        mChatBubble = new Bubble(mBubbleEntry, mBubbleMetadataFlagListener, null, mMainExecutor,
                 mBgExecutor);
     }
 
@@ -152,42 +165,113 @@
 
     @Test
     public void testBubbleMetadataFlagListener_change_notified() {
-        assertThat(mBubble.showInShade()).isTrue();
+        assertThat(mChatBubble.showInShade()).isTrue();
 
-        mBubble.setSuppressNotification(true);
+        mChatBubble.setSuppressNotification(true);
 
-        assertThat(mBubble.showInShade()).isFalse();
+        assertThat(mChatBubble.showInShade()).isFalse();
 
-        verify(mBubbleMetadataFlagListener).onBubbleMetadataFlagChanged(mBubble);
+        verify(mBubbleMetadataFlagListener).onBubbleMetadataFlagChanged(mChatBubble);
     }
 
     @Test
     public void testBubbleMetadataFlagListener_noChange_doesntNotify() {
-        assertThat(mBubble.showInShade()).isTrue();
+        assertThat(mChatBubble.showInShade()).isTrue();
 
-        mBubble.setSuppressNotification(false);
+        mChatBubble.setSuppressNotification(false);
 
         verify(mBubbleMetadataFlagListener, never()).onBubbleMetadataFlagChanged(any());
     }
 
     @Test
-    public void testBubbleIsConversation_hasConversationShortcut() {
-        Bubble bubble = createBubbleWithShortcut();
-        assertThat(bubble.getShortcutInfo()).isNotNull();
-        assertThat(bubble.isConversation()).isTrue();
+    public void testBubbleType_conversationShortcut() {
+        Bubble bubble = createChatBubble(true /* useShortcut */);
+        assertThat(bubble.isChat()).isTrue();
     }
 
     @Test
-    public void testBubbleIsConversation_hasNoShortcut() {
-        Bubble bubble = new Bubble(mBubbleEntry, mBubbleMetadataFlagListener, null, mMainExecutor,
-                mBgExecutor);
-        assertThat(bubble.getShortcutInfo()).isNull();
-        assertThat(bubble.isConversation()).isFalse();
+    public void testBubbleType_conversationPendingIntent() {
+        Bubble bubble = createChatBubble(false /* useShortcut */);
+        assertThat(bubble.isChat()).isTrue();
+    }
+
+    @Test
+    public void testBubbleType_note() {
+        Bubble bubble = Bubble.createNotesBubble(createIntent(), UserHandle.of(0),
+                mock(Icon.class),
+                mMainExecutor, mBgExecutor);
+        assertThat(bubble.isNote()).isTrue();
+    }
+
+    @Test
+    public void testBubbleType_shortcut() {
+        ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
+                .setId("mockShortcutId")
+                .build();
+        Bubble bubble = Bubble.createShortcutBubble(shortcutInfo, mMainExecutor, mBgExecutor);
+        assertThat(bubble.isShortcut()).isTrue();
+    }
+
+    @Test
+    public void testBubbleType_intent() {
+        Bubble bubble = Bubble.createAppBubble(createIntent(), UserHandle.of(0),
+                mock(Icon.class),
+                mMainExecutor, mBgExecutor);
+        assertThat(bubble.isApp()).isTrue();
+    }
+
+    @Test
+    public void testBubbleType_taskId() {
+        TaskInfo info = mock(TaskInfo.class);
+        ComponentName componentName = mock(ComponentName.class);
+        when(componentName.getPackageName()).thenReturn(mContext.getPackageName());
+        info.taskId = 1;
+        info.baseActivity = componentName;
+        Bubble bubble = Bubble.createTaskBubble(info, UserHandle.of(0),
+                mock(Icon.class),
+                mMainExecutor, mBgExecutor);
+        assertThat(bubble.isApp()).isTrue();
+    }
+
+    @Test
+    public void testShowAppBadge_chat() {
+        Bubble bubble = createChatBubble(true /* useShortcut */);
+        assertThat(bubble.isChat()).isTrue();
+        assertThat(bubble.showAppBadge()).isTrue();
+    }
+
+    @Test
+    public void testShowAppBadge_note() {
+        Bubble bubble = Bubble.createNotesBubble(createIntent(), UserHandle.of(0),
+                mock(Icon.class),
+                mMainExecutor, mBgExecutor);
+        assertThat(bubble.isNote()).isTrue();
+        assertThat(bubble.showAppBadge()).isTrue();
+    }
+
+    @Test
+    public void testShowAppBadge_app() {
+        Bubble bubble = Bubble.createAppBubble(createIntent(), UserHandle.of(0),
+                mock(Icon.class),
+                mMainExecutor, mBgExecutor);
+        assertThat(bubble.isApp()).isTrue();
+        assertThat(bubble.showAppBadge()).isFalse();
+    }
+
+    @Test
+    public void testShowAppBadge_shortcut() {
+        ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
+                .setId("mockShortcutId")
+                .build();
+        Bubble bubble = Bubble.createShortcutBubble(shortcutInfo,
+                mMainExecutor, mBgExecutor);
+        assertThat(bubble.isShortcut()).isTrue();
+        assertThat(bubble.showAppBadge()).isTrue();
     }
 
     @Test
     public void testBubbleAsBubbleBarBubble_withShortcut() {
-        Bubble bubble = createBubbleWithShortcut();
+        Bubble bubble = createChatBubble(true /* useShortcut */);
         BubbleInfo bubbleInfo = bubble.asBubbleBarBubble();
 
         assertThat(bubble.getShortcutInfo()).isNotNull();
@@ -199,7 +283,7 @@
     }
 
     @Test
-    public void testBubbleAsBubbleBarBubble_withoutShortcut() {
+    public void testBubbleAsBubbleBarBubble_withIntent() {
         Intent intent = new Intent(mContext, BubblesTestActivity.class);
         intent.setPackage(mContext.getPackageName());
         Bubble bubble = Bubble.createAppBubble(intent, new UserHandle(1 /* userId */),
@@ -213,12 +297,23 @@
         assertThat(bubbleInfo.getPackageName()).isEqualTo(bubble.getPackageName());
     }
 
-    private Bubble createBubbleWithShortcut() {
-        ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
-                .setId("mockShortcutId")
-                .build();
-        return new Bubble("mockKey", shortcutInfo, 10, Resources.ID_NULL,
-                "mockTitle", 0 /* taskId */, "mockLocus", true /* isDismissible */,
-                mMainExecutor, mBgExecutor, mBubbleMetadataFlagListener);
+    private Intent createIntent() {
+        Intent intent = new Intent(mContext, BubblesTestActivity.class);
+        intent.setPackage(mContext.getPackageName());
+        return intent;
+    }
+
+    private Bubble createChatBubble(boolean useShortcut) {
+        if (useShortcut) {
+            ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
+                    .setId("mockShortcutId")
+                    .build();
+            return new Bubble("mockKey", shortcutInfo, 10, Resources.ID_NULL,
+                    "mockTitle", 0 /* taskId */, "mockLocus", true /* isDismissible */,
+                    mMainExecutor, mBgExecutor, mBubbleMetadataFlagListener);
+        } else {
+            return new Bubble(mBubbleEntry, mBubbleMetadataFlagListener, null, mMainExecutor,
+                    mBgExecutor);
+        }
     }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTransitionsTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTransitionsTest.java
index 9d0ddbc..b5911bf 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTransitionsTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleTransitionsTest.java
@@ -17,6 +17,10 @@
 
 import static android.view.WindowManager.TRANSIT_CHANGE;
 
+import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
@@ -31,12 +35,14 @@
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
+import android.graphics.Rect;
 import android.os.IBinder;
 import android.view.SurfaceControl;
 import android.view.ViewRootImpl;
 import android.window.IWindowContainerToken;
 import android.window.TransitionInfo;
 import android.window.WindowContainerToken;
+import android.window.WindowContainerTransaction;
 
 import androidx.test.filters.SmallTest;
 
@@ -65,6 +71,10 @@
  */
 @SmallTest
 public class BubbleTransitionsTest extends ShellTestCase {
+
+    private static final int FULLSCREEN_TASK_WIDTH = 200;
+    private static final int FULLSCREEN_TASK_HEIGHT = 100;
+
     @Mock
     private BubbleData mBubbleData;
     @Mock
@@ -78,8 +88,6 @@
     @Mock
     private BubblePositioner mBubblePositioner;
     @Mock
-    private BubbleLogger mBubbleLogger;
-    @Mock
     private BubbleStackView mStackView;
     @Mock
     private BubbleBarLayerView mLayerView;
@@ -119,10 +127,7 @@
 
     private ActivityManager.RunningTaskInfo setupBubble() {
         ActivityManager.RunningTaskInfo taskInfo = new ActivityManager.RunningTaskInfo();
-        final IWindowContainerToken itoken = mock(IWindowContainerToken.class);
-        final IBinder asBinder = mock(IBinder.class);
-        when(itoken.asBinder()).thenReturn(asBinder);
-        WindowContainerToken token = new WindowContainerToken(itoken);
+        WindowContainerToken token = createMockToken();
         taskInfo.token = token;
         final TaskView tv = mock(TaskView.class);
         final TaskViewTaskController tvtc = mock(TaskViewTaskController.class);
@@ -133,13 +138,32 @@
         return taskInfo;
     }
 
+    private TransitionInfo setupFullscreenTaskTransition(ActivityManager.RunningTaskInfo taskInfo) {
+        final TransitionInfo info = new TransitionInfo(TRANSIT_CONVERT_TO_BUBBLE, 0);
+        final TransitionInfo.Change chg = new TransitionInfo.Change(taskInfo.token,
+                mock(SurfaceControl.class));
+        chg.setTaskInfo(taskInfo);
+        chg.setMode(TRANSIT_CHANGE);
+        chg.setStartAbsBounds(new Rect(0, 0, FULLSCREEN_TASK_WIDTH, FULLSCREEN_TASK_HEIGHT));
+        info.addChange(chg);
+        info.addRoot(new TransitionInfo.Root(0, mock(SurfaceControl.class), 0, 0));
+        return info;
+    }
+
+    private WindowContainerToken createMockToken() {
+        final IWindowContainerToken itoken = mock(IWindowContainerToken.class);
+        final IBinder asBinder = mock(IBinder.class);
+        when(itoken.asBinder()).thenReturn(asBinder);
+        return new WindowContainerToken(itoken);
+    }
+
     @Test
     public void testConvertToBubble() {
         // Basic walk-through of convert-to-bubble transition stages
         ActivityManager.RunningTaskInfo taskInfo = setupBubble();
         final BubbleTransitions.BubbleTransition bt = mBubbleTransitions.startConvertToBubble(
                 mBubble, taskInfo, mExpandedViewManager, mTaskViewFactory, mBubblePositioner,
-                mBubbleLogger, mStackView, mLayerView, mIconFactory, false);
+                mStackView, mLayerView, mIconFactory, null, false);
         final BubbleTransitions.ConvertToBubble ctb = (BubbleTransitions.ConvertToBubble) bt;
         ctb.onInflated(mBubble);
         when(mLayerView.canExpandView(any())).thenReturn(true);
@@ -148,13 +172,7 @@
         // Ensure we are communicating with the taskviewtransitions queue
         assertTrue(mTaskViewTransitions.hasPending());
 
-        final TransitionInfo info = new TransitionInfo(TRANSIT_CHANGE, 0);
-        final TransitionInfo.Change chg = new TransitionInfo.Change(taskInfo.token,
-                mock(SurfaceControl.class));
-        chg.setTaskInfo(taskInfo);
-        chg.setMode(TRANSIT_CHANGE);
-        info.addChange(chg);
-        info.addRoot(new TransitionInfo.Root(0, mock(SurfaceControl.class), 0, 0));
+        final TransitionInfo info = setupFullscreenTaskTransition(taskInfo);
         SurfaceControl.Transaction startT = mock(SurfaceControl.Transaction.class);
         SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class);
         final boolean[] finishCalled = new boolean[]{false};
@@ -165,6 +183,8 @@
         ctb.startAnimation(ctb.mTransition, info, startT, finishT, finishCb);
         assertFalse(mTaskViewTransitions.hasPending());
 
+        verify(startT).setPosition(any(), eq(0f), eq(0f));
+
         verify(mBubbleData).notificationEntryUpdated(eq(mBubble), anyBoolean(), anyBoolean());
         ctb.continueExpand();
 
@@ -181,6 +201,46 @@
     }
 
     @Test
+    public void testConvertToBubble_drag() {
+        ActivityManager.RunningTaskInfo taskInfo = setupBubble();
+
+        Rect draggedTaskBounds = new Rect(10, 20, 30, 40);
+        WindowContainerTransaction pendingWct = new WindowContainerTransaction();
+        WindowContainerToken pendingDragOpToken = createMockToken();
+        pendingWct.reorder(pendingDragOpToken, /* onTop= */ false);
+
+        BubbleTransitions.DragData dragData = new BubbleTransitions.DragData(
+                draggedTaskBounds, pendingWct
+        );
+
+        final BubbleTransitions.BubbleTransition bt = mBubbleTransitions.startConvertToBubble(
+                mBubble, taskInfo, mExpandedViewManager, mTaskViewFactory, mBubblePositioner,
+                mStackView, mLayerView, mIconFactory, dragData, false);
+        final BubbleTransitions.ConvertToBubble ctb = (BubbleTransitions.ConvertToBubble) bt;
+
+        ArgumentCaptor<WindowContainerTransaction> wctCaptor = ArgumentCaptor.forClass(
+                WindowContainerTransaction.class);
+        ctb.onInflated(mBubble);
+        verify(mTransitions).startTransition(anyInt(), wctCaptor.capture(), eq(ctb));
+
+        // Verify that the WCT has the pending operation from drag data
+        WindowContainerTransaction transitionWct = wctCaptor.getValue();
+        assertThat(transitionWct.getHierarchyOps().stream().anyMatch(op -> op.getType()
+                == WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER
+                && op.getContainer() == pendingDragOpToken.asBinder())).isTrue();
+
+        final TransitionInfo info = setupFullscreenTaskTransition(taskInfo);
+        SurfaceControl.Transaction startT = mock(SurfaceControl.Transaction.class);
+        SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class);
+        Transitions.TransitionFinishCallback finishCb = wct -> {};
+        ctb.startAnimation(ctb.mTransition, info, startT, finishT, finishCb);
+
+        // Verify that dragged task bounds are used for the position
+        verify(startT).setPosition(any(), eq((float) draggedTaskBounds.left),
+                eq((float) draggedTaskBounds.top));
+    }
+
+    @Test
     public void testConvertFromBubble() {
         ActivityManager.RunningTaskInfo taskInfo = setupBubble();
         final BubbleTransitions.BubbleTransition bt = mBubbleTransitions.startConvertFromBubble(
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/WindowSessionSupplierTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/WindowSessionSupplierTest.kt
index 33e8d78..7b7d96c 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/WindowSessionSupplierTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/WindowSessionSupplierTest.kt
@@ -19,6 +19,7 @@
 import android.testing.AndroidTestingRunner
 import android.view.IWindowSession
 import androidx.test.filters.SmallTest
+import com.android.wm.shell.ShellTestCase
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -30,10 +31,10 @@
  */
 @RunWith(AndroidTestingRunner::class)
 @SmallTest
-class WindowSessionSupplierTest {
+class WindowSessionSupplierTest : ShellTestCase() {
 
     @Test
-    fun `InputChannelSupplier supplies an InputChannel`() {
+    fun `WindowSessionSupplierTest supplies an IWindowSession`() {
         val supplier = WindowSessionSupplier()
         SuppliersUtilsTest.assertSupplierProvidesValue(supplier) {
             it is IWindowSession
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopActivityOrientationChangeHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopActivityOrientationChangeHandlerTest.kt
index d6b13610..70a30a3 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopActivityOrientationChangeHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopActivityOrientationChangeHandlerTest.kt
@@ -113,7 +113,7 @@
                 .strictness(Strictness.LENIENT)
                 .spyStatic(DesktopModeStatus::class.java)
                 .startMocking()
-        doReturn(true).`when` { DesktopModeStatus.isDeviceEligibleForDesktopMode(any()) }
+        doReturn(true).`when` { DesktopModeStatus.canEnterDesktopMode(any()) }
 
         testScope = CoroutineScope(Dispatchers.Unconfined + SupervisorJob())
         shellInit = spy(ShellInit(testExecutor))
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeKeyGestureHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeKeyGestureHandlerTest.kt
index 403d468..d510570 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeKeyGestureHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeKeyGestureHandlerTest.kt
@@ -30,7 +30,6 @@
 import android.window.DisplayAreaInfo
 import androidx.test.filters.SmallTest
 import com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer
-import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
 import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
 import com.android.dx.mockito.inline.extended.StaticMockitoSession
 import com.android.hardware.input.Flags.FLAG_USE_KEY_GESTURE_EVENT_HANDLER
@@ -48,7 +47,6 @@
 import com.android.wm.shell.desktopmode.DesktopModeEventLogger.Companion.MinimizeReason
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFreeformTask
 import com.android.wm.shell.desktopmode.common.ToggleTaskSizeInteraction
-import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
 import com.android.wm.shell.sysui.ShellInit
 import com.android.wm.shell.transition.FocusTransitionObserver
 import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModel
@@ -107,12 +105,7 @@
     @Before
     fun setUp() {
         Dispatchers.setMain(StandardTestDispatcher())
-        mockitoSession =
-            mockitoSession()
-                .strictness(Strictness.LENIENT)
-                .spyStatic(DesktopModeStatus::class.java)
-                .startMocking()
-        doReturn(true).`when` { DesktopModeStatus.isDeviceEligibleForDesktopMode(any()) }
+        mockitoSession = mockitoSession().strictness(Strictness.LENIENT).startMocking()
 
         testScope = CoroutineScope(Dispatchers.Unconfined + SupervisorJob())
         shellInit = spy(ShellInit(testExecutor))
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt
index a657553..20d50aa 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt
@@ -23,19 +23,19 @@
 import android.platform.test.annotations.EnableFlags
 import android.testing.AndroidTestingRunner
 import android.testing.TestableLooper.RunWithLooper
+import android.view.Display
 import android.view.SurfaceControl
 import androidx.test.filters.SmallTest
 import com.android.internal.policy.SystemBarUtils
-import com.android.modules.utils.testing.ExtendedMockitoRule
 import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE
 import com.android.wm.shell.R
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer
 import com.android.wm.shell.ShellTestCase
+import com.android.wm.shell.TestShellExecutor
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayLayout
 import com.android.wm.shell.common.SyncTransactionQueue
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider
-import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Rule
@@ -59,27 +59,25 @@
 
     @JvmField @Rule val animatorTestRule = AnimatorTestRule(this)
 
-    @JvmField
-    @Rule
-    val extendedMockitoRule =
-        ExtendedMockitoRule.Builder(this).mockStatic(DesktopModeStatus::class.java).build()!!
-
     private lateinit var taskInfo: RunningTaskInfo
     @Mock private lateinit var syncQueue: SyncTransactionQueue
     @Mock private lateinit var displayController: DisplayController
+    @Mock private lateinit var display: Display
     @Mock private lateinit var taskSurface: SurfaceControl
     @Mock private lateinit var taskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer
     @Mock private lateinit var displayLayout: DisplayLayout
     @Mock private lateinit var bubbleBoundsProvider: BubbleDropTargetBoundsProvider
 
     private lateinit var visualIndicator: DesktopModeVisualIndicator
+    private val desktopExecutor = TestShellExecutor()
+    private val mainExecutor = TestShellExecutor()
 
     @Before
     fun setUp() {
-        whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true)
         whenever(displayLayout.width()).thenReturn(DISPLAY_BOUNDS.width())
         whenever(displayLayout.height()).thenReturn(DISPLAY_BOUNDS.height())
         whenever(displayLayout.stableInsets()).thenReturn(STABLE_INSETS)
+        whenever(displayController.getDisplay(anyInt())).thenReturn(display)
         whenever(displayController.getDisplayLayout(anyInt())).thenReturn(displayLayout)
         whenever(displayController.getDisplay(anyInt())).thenReturn(mContext.display)
         whenever(bubbleBoundsProvider.getBubbleBarExpandedViewDropTargetBounds(any()))
@@ -255,7 +253,14 @@
         com.android.wm.shell.Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE,
     )
     fun testDefaultIndicatorWithNoDesktop() {
-        whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(false)
+        mContext.orCreateTestableResources.addOverride(
+            com.android.internal.R.bool.config_isDesktopModeSupported,
+            false,
+        )
+        mContext.orCreateTestableResources.addOverride(
+            com.android.internal.R.bool.config_isDesktopModeDevOptionSupported,
+            false,
+        )
 
         // Fullscreen to center, no desktop indicator
         createVisualIndicator(DesktopModeVisualIndicator.DragStartState.FROM_FULLSCREEN)
@@ -306,7 +311,11 @@
         whenever(bubbleBoundsProvider.getBubbleBarExpandedViewDropTargetBounds(/* onLeft= */ true))
             .thenReturn(dropTargetBounds)
         createVisualIndicator(DesktopModeVisualIndicator.DragStartState.FROM_FULLSCREEN)
+        desktopExecutor.flushAll()
+        mainExecutor.flushAll()
         visualIndicator.updateIndicatorType(PointF(100f, 1500f))
+        desktopExecutor.flushAll()
+        mainExecutor.flushAll()
 
         animatorTestRule.advanceTimeBy(200)
 
@@ -323,7 +332,11 @@
         whenever(bubbleBoundsProvider.getBubbleBarExpandedViewDropTargetBounds(/* onLeft= */ false))
             .thenReturn(dropTargetBounds)
         createVisualIndicator(DesktopModeVisualIndicator.DragStartState.FROM_FULLSCREEN)
+        desktopExecutor.flushAll()
+        mainExecutor.flushAll()
         visualIndicator.updateIndicatorType(PointF(2300f, 1500f))
+        desktopExecutor.flushAll()
+        mainExecutor.flushAll()
 
         animatorTestRule.advanceTimeBy(200)
 
@@ -333,6 +346,8 @@
     private fun createVisualIndicator(dragStartState: DesktopModeVisualIndicator.DragStartState) {
         visualIndicator =
             DesktopModeVisualIndicator(
+                desktopExecutor,
+                mainExecutor,
                 syncQueue,
                 taskInfo,
                 displayController,
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
index bffbb99b..f6464b5 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
@@ -29,12 +29,14 @@
 import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW
 import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
 import android.content.ComponentName
+import android.content.Context
 import android.content.Intent
 import android.content.pm.ActivityInfo
 import android.content.pm.ActivityInfo.CONFIG_DENSITY
 import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
 import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
 import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
+import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
 import android.content.res.Configuration.ORIENTATION_LANDSCAPE
 import android.content.res.Configuration.ORIENTATION_PORTRAIT
@@ -50,6 +52,8 @@
 import android.platform.test.annotations.DisableFlags
 import android.platform.test.annotations.EnableFlags
 import android.platform.test.flag.junit.FlagsParameterization
+import android.testing.TestableContext
+import android.view.Display
 import android.view.Display.DEFAULT_DISPLAY
 import android.view.DragEvent
 import android.view.Gravity
@@ -146,6 +150,7 @@
 import com.android.wm.shell.transition.Transitions
 import com.android.wm.shell.transition.Transitions.ENABLE_SHELL_TRANSITIONS
 import com.android.wm.shell.transition.Transitions.TransitionHandler
+import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModelTestsBase.Companion.HOME_LAUNCHER_PACKAGE_NAME
 import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration
 import com.android.wm.shell.windowdecor.tiling.DesktopTilingDecorViewModel
 import com.google.common.truth.Truth.assertThat
@@ -170,7 +175,6 @@
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
 import org.mockito.ArgumentMatchers.isA
 import org.mockito.ArgumentMatchers.isNull
 import org.mockito.Mock
@@ -186,7 +190,6 @@
 import org.mockito.kotlin.argThat
 import org.mockito.kotlin.argumentCaptor
 import org.mockito.kotlin.atLeastOnce
-import org.mockito.kotlin.capture
 import org.mockito.kotlin.eq
 import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
@@ -209,6 +212,7 @@
     @Mock lateinit var shellController: ShellController
     @Mock lateinit var displayController: DisplayController
     @Mock lateinit var displayLayout: DisplayLayout
+    @Mock lateinit var display: Display
     @Mock lateinit var shellTaskOrganizer: ShellTaskOrganizer
     @Mock lateinit var syncQueue: SyncTransactionQueue
     @Mock lateinit var rootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer
@@ -256,6 +260,8 @@
     @Mock private lateinit var desksOrganizer: DesksOrganizer
     @Mock private lateinit var userProfileContexts: UserProfileContexts
     @Mock private lateinit var desksTransitionsObserver: DesksTransitionObserver
+    @Mock private lateinit var packageManager: PackageManager
+    @Mock private lateinit var mockDisplayContext: Context
 
     private lateinit var controller: DesktopTasksController
     private lateinit var shellInit: ShellInit
@@ -265,8 +271,10 @@
     private lateinit var recentsTransitionStateListener: RecentsTransitionStateListener
     private lateinit var testScope: CoroutineScope
     private lateinit var desktopModeCompatPolicy: DesktopModeCompatPolicy
+    private lateinit var spyContext: TestableContext
 
     private val shellExecutor = TestShellExecutor()
+    private val bgExecutor = TestShellExecutor()
 
     // Mock running tasks are registered here so we can get the list from mock shell task organizer
     private val runningTasks = mutableListOf<RunningTaskInfo>()
@@ -281,6 +289,7 @@
     private val UNRESIZABLE_LANDSCAPE_BOUNDS = Rect(25, 449, 1575, 1611)
     private val UNRESIZABLE_PORTRAIT_BOUNDS = Rect(830, 75, 1730, 1275)
     private val wallpaperToken = MockToken().token()
+    private val homeComponentName = ComponentName(HOME_LAUNCHER_PACKAGE_NAME, /* class */ "")
 
     @Before
     fun setUp() {
@@ -291,9 +300,10 @@
                 .spyStatic(DesktopModeStatus::class.java)
                 .spyStatic(Toast::class.java)
                 .startMocking()
-        doReturn(true).`when` { DesktopModeStatus.isDeviceEligibleForDesktopMode(any()) }
+        doReturn(true).`when` { DesktopModeStatus.canEnterDesktopMode(any()) }
 
         testScope = CoroutineScope(Dispatchers.Unconfined + SupervisorJob())
+        spyContext = spy(mContext)
         shellInit = spy(ShellInit(testExecutor))
         userRepositories =
             DesktopUserRepositories(
@@ -315,12 +325,14 @@
                 mContext,
                 mockHandler,
             )
-        desktopModeCompatPolicy = DesktopModeCompatPolicy(context)
+        desktopModeCompatPolicy = spy(DesktopModeCompatPolicy(spyContext))
 
         whenever(shellTaskOrganizer.getRunningTasks(anyInt())).thenAnswer { runningTasks }
         whenever(transitions.startTransition(anyInt(), any(), isNull())).thenAnswer { Binder() }
         whenever(enterDesktopTransitionHandler.moveToDesktop(any(), any())).thenAnswer { Binder() }
         whenever(displayController.getDisplayLayout(anyInt())).thenReturn(displayLayout)
+        whenever(displayController.getDisplayContext(anyInt())).thenReturn(mockDisplayContext)
+        whenever(displayController.getDisplay(anyInt())).thenReturn(display)
         whenever(displayLayout.getStableBounds(any())).thenAnswer { i ->
             (i.arguments.first() as Rect).set(STABLE_BOUNDS)
         }
@@ -362,9 +374,9 @@
 
         shellInit.init()
 
-        val captor = ArgumentCaptor.forClass(RecentsTransitionStateListener::class.java)
+        val captor = argumentCaptor<RecentsTransitionStateListener>()
         verify(recentsTransitionHandler).addTransitionStateListener(captor.capture())
-        recentsTransitionStateListener = captor.value
+        recentsTransitionStateListener = captor.firstValue
 
         controller.taskbarDesktopTaskListener = taskbarDesktopTaskListener
 
@@ -373,6 +385,9 @@
         taskRepository = userRepositories.current
         taskRepository.addDesk(displayId = DEFAULT_DISPLAY, deskId = DEFAULT_DISPLAY)
         taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = DEFAULT_DISPLAY)
+
+        spyContext.setMockPackageManager(packageManager)
+        whenever(packageManager.getHomeActivities(ArrayList())).thenReturn(homeComponentName)
     }
 
     private fun createController() =
@@ -400,6 +415,7 @@
             recentsTransitionHandler,
             multiInstanceHelper,
             shellExecutor,
+            bgExecutor,
             Optional.of(desktopTasksLimiter),
             recentTasksController,
             mockInteractionJankMonitor,
@@ -440,7 +456,7 @@
     fun doesAnyTaskRequireTaskbarRounding_toggleResizeOfFreeFormTask_returnTrue() {
         val task1 = setUpFreeformTask()
 
-        val argumentCaptor = ArgumentCaptor.forClass(Boolean::class.java)
+        val argumentCaptor = argumentCaptor<Boolean>()
         controller.toggleDesktopTaskSize(
             task1,
             ToggleTaskSizeInteraction(
@@ -460,7 +476,7 @@
                 STABLE_BOUNDS.height(),
                 displayController,
             )
-        assertThat(argumentCaptor.value).isTrue()
+        assertThat(argumentCaptor.firstValue).isTrue()
     }
 
     @Test
@@ -475,7 +491,7 @@
         val stableBounds = Rect().apply { displayLayout.getStableBounds(this) }
         val task1 = setUpFreeformTask(bounds = stableBounds, active = true)
 
-        val argumentCaptor = ArgumentCaptor.forClass(Boolean::class.java)
+        val argumentCaptor = argumentCaptor<Boolean>()
         controller.toggleDesktopTaskSize(
             task1,
             ToggleTaskSizeInteraction(
@@ -496,7 +512,7 @@
                 eq(displayController),
                 anyOrNull(),
             )
-        assertThat(argumentCaptor.value).isFalse()
+        assertThat(argumentCaptor.firstValue).isFalse()
     }
 
     @Test
@@ -546,6 +562,7 @@
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun showDesktopApps_allAppsInvisible_bringsToFront_desktopWallpaperEnabled() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val task1 = setUpFreeformTask()
         val task2 = setUpFreeformTask()
         markTaskHidden(task1)
@@ -580,7 +597,7 @@
         val wct =
             getLatestWct(type = TRANSIT_TO_FRONT, handlerClass = OneShotRemoteHandler::class.java)
         // Wallpaper is moved to front.
-        wct.assertPendingIntentAt(index = 0, desktopWallpaperIntent)
+        wct.assertReorderAt(index = 0, wallpaperToken)
         // Desk is activated.
         verify(desksOrganizer).activateDesk(wct, deskId)
     }
@@ -782,6 +799,7 @@
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun showDesktopApps_appsAlreadyVisible_bringsToFront_desktopWallpaperEnabled() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val task1 = setUpFreeformTask()
         val task2 = setUpFreeformTask()
         markTaskVisible(task1)
@@ -824,7 +842,8 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
-    fun showDesktopApps_someAppsInvisible_reordersAll_desktopWallpaperEnabled() {
+    fun showDesktopApps_someAppsInvisible_desktopWallpaperEnabled_reordersOnlyFreeformTasks() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val task1 = setUpFreeformTask()
         val task2 = setUpFreeformTask()
         markTaskHidden(task1)
@@ -841,6 +860,24 @@
         wct.assertReorderAt(index = 2, task2)
     }
 
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
+    fun showDesktopApps_someAppsInvisible_desktopWallpaperEnabled_reordersAll() {
+        val task1 = setUpFreeformTask()
+        val task2 = setUpFreeformTask()
+        markTaskHidden(task1)
+        markTaskVisible(task2)
+
+        controller.showDesktopApps(DEFAULT_DISPLAY, RemoteTransition(TestRemoteTransition()))
+
+        val wct =
+            getLatestWct(type = TRANSIT_TO_FRONT, handlerClass = OneShotRemoteHandler::class.java)
+        assertThat(wct.hierarchyOps).hasSize(3)
+        // Expect order to be from bottom: wallpaper intent, task1, task2
+        wct.assertReorderAt(index = 0, wallpaperToken)
+        wct.assertReorderAt(index = 1, task1)
+        wct.assertReorderAt(index = 2, task2)
+    }
+
     @Test
     @DisableFlags(
         Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
@@ -859,9 +896,9 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
-    fun showDesktopApps_noActiveTasks_addDesktopWallpaper_desktopWallpaperEnabled() {
-        whenever(transitions.startTransition(eq(TRANSIT_TO_FRONT), any(), anyOrNull()))
-            .thenReturn(Binder())
+    fun showDesktopApps_noActiveTasks_desktopWallpaperEnabled_addsDesktopWallpaper() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
+
         controller.showDesktopApps(DEFAULT_DISPLAY, RemoteTransition(TestRemoteTransition()))
 
         val wct =
@@ -870,10 +907,18 @@
     }
 
     @Test
-    @DisableFlags(
-        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
-        Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
-    )
+    @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
+    fun showDesktopApps_noActiveTasks_desktopWallpaperEnabled_reordersDesktopWallpaper() {
+        controller.showDesktopApps(DEFAULT_DISPLAY, RemoteTransition(TestRemoteTransition()))
+
+        val wct =
+            getLatestWct(type = TRANSIT_TO_FRONT, handlerClass = OneShotRemoteHandler::class.java)
+        wct.assertReorderAt(index = 0, wallpaperToken)
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun showDesktopApps_twoDisplays_bringsToFrontOnlyOneDisplay_desktopWallpaperDisabled() {
         taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY)
         val homeTaskDefaultDisplay = setUpHomeTask(DEFAULT_DISPLAY)
@@ -898,6 +943,7 @@
     fun showDesktopApps_twoDisplays_bringsToFrontOnlyOneDisplay_desktopWallpaperEnabled() {
         whenever(transitions.startTransition(eq(TRANSIT_TO_FRONT), any(), anyOrNull()))
             .thenReturn(Binder())
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY)
         val homeTaskDefaultDisplay = setUpHomeTask(DEFAULT_DISPLAY)
         val taskDefaultDisplay = setUpFreeformTask(DEFAULT_DISPLAY)
@@ -990,6 +1036,7 @@
     /** TODO: b/362720497 - add multi-desk version when minimization is implemented. */
     @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun showDesktopApps_desktopWallpaperEnabled_dontReorderMinimizedTask() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val homeTask = setUpHomeTask()
         val freeformTask = setUpFreeformTask()
         val minimizedTask = setUpFreeformTask()
@@ -1303,6 +1350,50 @@
     }
 
     @Test
+    fun addMoveToDesktopChanges_excludeCaptionFromAppBounds_nonResizableLandscape() {
+        setUpLandscapeDisplay()
+        val task =
+            setUpFullscreenTask(
+                isResizable = false,
+                screenOrientation = SCREEN_ORIENTATION_LANDSCAPE,
+            )
+        whenever(desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(task)).thenReturn(true)
+        val initialAspectRatio = calculateAspectRatio(task)
+        val wct = WindowContainerTransaction()
+        controller.addMoveToDesktopChanges(wct, task)
+
+        val finalBounds = findBoundsChange(wct, task)
+        val captionInsets = getAppHeaderHeight(context)
+        finalBounds!!.top += captionInsets
+        val finalAspectRatio =
+            maxOf(finalBounds.height(), finalBounds.width()) /
+                minOf(finalBounds.height(), finalBounds.width()).toFloat()
+        assertThat(finalAspectRatio).isWithin(FLOAT_TOLERANCE).of(initialAspectRatio)
+    }
+
+    @Test
+    fun addMoveToDesktopChanges_excludeCaptionFromAppBounds_nonResizablePortrait() {
+        setUpLandscapeDisplay()
+        val task =
+            setUpFullscreenTask(
+                isResizable = false,
+                screenOrientation = SCREEN_ORIENTATION_PORTRAIT,
+            )
+        whenever(desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(task)).thenReturn(true)
+        val initialAspectRatio = calculateAspectRatio(task)
+        val wct = WindowContainerTransaction()
+        controller.addMoveToDesktopChanges(wct, task)
+
+        val finalBounds = findBoundsChange(wct, task)
+        val captionInsets = getAppHeaderHeight(context)
+        finalBounds!!.top += captionInsets
+        val finalAspectRatio =
+            maxOf(finalBounds.height(), finalBounds.width()) /
+                minOf(finalBounds.height(), finalBounds.width()).toFloat()
+        assertThat(finalAspectRatio).isWithin(FLOAT_TOLERANCE).of(initialAspectRatio)
+    }
+
+    @Test
     fun launchIntent_taskInDesktopMode_transitionStarted() {
         setUpLandscapeDisplay()
         val freeformTask = setUpFreeformTask()
@@ -1524,6 +1615,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun moveTaskToDesktop_desktopWallpaperEnabled_nonRunningTask_launchesInFreeform() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val task = createTaskInfo(1)
         whenever(shellTaskOrganizer.getRunningTaskInfo(anyInt())).thenReturn(null)
         whenever(recentTasksController.findTaskInBackground(anyInt())).thenReturn(task)
@@ -1691,7 +1783,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun moveBackgroundTaskToDesktop_remoteTransition_usesOneShotHandler() {
-        val transitionHandlerArgCaptor = ArgumentCaptor.forClass(TransitionHandler::class.java)
+        val transitionHandlerArgCaptor = argumentCaptor<TransitionHandler>()
         whenever(transitions.startTransition(anyInt(), any(), transitionHandlerArgCaptor.capture()))
             .thenReturn(Binder())
 
@@ -1706,12 +1798,12 @@
 
         verify(desktopModeEnterExitTransitionListener)
             .onEnterDesktopModeTransitionStarted(FREEFORM_ANIMATION_DURATION)
-        assertIs<OneShotRemoteHandler>(transitionHandlerArgCaptor.value)
+        assertIs<OneShotRemoteHandler>(transitionHandlerArgCaptor.firstValue)
     }
 
     @Test
     fun moveRunningTaskToDesktop_remoteTransition_usesOneShotHandler() {
-        val transitionHandlerArgCaptor = ArgumentCaptor.forClass(TransitionHandler::class.java)
+        val transitionHandlerArgCaptor = argumentCaptor<TransitionHandler>()
         whenever(transitions.startTransition(anyInt(), any(), transitionHandlerArgCaptor.capture()))
             .thenReturn(Binder())
 
@@ -1723,7 +1815,7 @@
 
         verify(desktopModeEnterExitTransitionListener)
             .onEnterDesktopModeTransitionStarted(FREEFORM_ANIMATION_DURATION)
-        assertIs<OneShotRemoteHandler>(transitionHandlerArgCaptor.value)
+        assertIs<OneShotRemoteHandler>(transitionHandlerArgCaptor.firstValue)
     }
 
     @Test
@@ -1757,6 +1849,7 @@
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun moveRunningTaskToDesktop_otherFreeformTasksBroughtToFront_desktopWallpaperEnabled() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val freeformTask = setUpFreeformTask()
         val fullscreenTask = setUpFullscreenTask()
         markTaskHidden(freeformTask)
@@ -1783,6 +1876,7 @@
     @EnableFlags(
         Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
         Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
+        Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
     )
     fun moveRunningTaskToDesktop_desktopWallpaperEnabled_multiDesksEnabled() {
         val freeformTask = setUpFreeformTask()
@@ -1795,7 +1889,7 @@
         )
 
         val wct = getLatestEnterDesktopWct()
-        wct.assertPendingIntentAt(index = 0, desktopWallpaperIntent)
+        wct.assertReorderAt(index = 0, wallpaperToken)
         verify(desksOrganizer).moveTaskToDesk(wct, deskId = 0, fullscreenTask)
         verify(desksOrganizer).activateDesk(wct, deskId = 0)
         verify(desktopModeEnterExitTransitionListener)
@@ -1922,6 +2016,7 @@
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun moveRunningTaskToDesktop_desktopWallpaperEnabled_bringsTasksOverLimit_dontShowBackTask() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val freeformTasks = (1..MAX_TASK_LIMIT).map { _ -> setUpFreeformTask() }
         val newTask = setUpFullscreenTask()
         val homeTask = setUpHomeTask()
@@ -2179,26 +2274,26 @@
     fun moveTaskToFront_remoteTransition_usesOneshotHandler() {
         setUpHomeTask()
         val freeformTasks = List(MAX_TASK_LIMIT) { setUpFreeformTask() }
-        val transitionHandlerArgCaptor = ArgumentCaptor.forClass(TransitionHandler::class.java)
+        val transitionHandlerArgCaptor = argumentCaptor<TransitionHandler>()
         whenever(transitions.startTransition(anyInt(), any(), transitionHandlerArgCaptor.capture()))
             .thenReturn(Binder())
 
         controller.moveTaskToFront(freeformTasks[0], RemoteTransition(TestRemoteTransition()))
 
-        assertIs<OneShotRemoteHandler>(transitionHandlerArgCaptor.value)
+        assertIs<OneShotRemoteHandler>(transitionHandlerArgCaptor.firstValue)
     }
 
     @Test
     fun moveTaskToFront_bringsTasksOverLimit_remoteTransition_usesWindowLimitHandler() {
         setUpHomeTask()
         val freeformTasks = List(MAX_TASK_LIMIT + 1) { setUpFreeformTask() }
-        val transitionHandlerArgCaptor = ArgumentCaptor.forClass(TransitionHandler::class.java)
+        val transitionHandlerArgCaptor = argumentCaptor<TransitionHandler>()
         whenever(transitions.startTransition(anyInt(), any(), transitionHandlerArgCaptor.capture()))
             .thenReturn(Binder())
 
         controller.moveTaskToFront(freeformTasks[0], RemoteTransition(TestRemoteTransition()))
 
-        assertThat(transitionHandlerArgCaptor.value)
+        assertThat(transitionHandlerArgCaptor.firstValue)
             .isInstanceOf(DesktopWindowLimitRemoteHandler::class.java)
     }
 
@@ -2673,9 +2768,9 @@
 
         controller.minimizeTask(task, MinimizeReason.MINIMIZE_BUTTON)
 
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startMinimizedModeTransition(captor.capture())
-        captor.value.hierarchyOps.none { hop ->
+        captor.firstValue.hierarchyOps.none { hop ->
             hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
         }
     }
@@ -2714,9 +2809,9 @@
 
         controller.minimizeTask(task, MinimizeReason.MINIMIZE_BUTTON)
 
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startPipTransition(captor.capture())
-        captor.value.hierarchyOps.none { hop ->
+        captor.firstValue.hierarchyOps.none { hop ->
             hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
         }
     }
@@ -2730,9 +2825,9 @@
 
         controller.minimizeTask(task, MinimizeReason.MINIMIZE_BUTTON)
 
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startMinimizedModeTransition(captor.capture())
-        captor.value.hierarchyOps.none { hop -> hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK }
+        captor.firstValue.hierarchyOps.none { hop -> hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK }
     }
 
     @Test
@@ -2746,10 +2841,10 @@
         // The only active task is being minimized.
         controller.minimizeTask(task, MinimizeReason.MINIMIZE_BUTTON)
 
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startMinimizedModeTransition(captor.capture())
         // Adds remove wallpaper operation
-        captor.value.assertReorderAt(index = 0, wallpaperToken, toTop = false)
+        captor.firstValue.assertReorderAt(index = 0, wallpaperToken, toTop = false)
     }
 
     @Test
@@ -2763,9 +2858,9 @@
         // The only active task is already minimized.
         controller.minimizeTask(task, MinimizeReason.MINIMIZE_BUTTON)
 
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startMinimizedModeTransition(captor.capture())
-        captor.value.hierarchyOps.none { hop ->
+        captor.firstValue.hierarchyOps.none { hop ->
             hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
         }
     }
@@ -2780,9 +2875,9 @@
 
         controller.minimizeTask(task1, MinimizeReason.MINIMIZE_BUTTON)
 
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startMinimizedModeTransition(captor.capture())
-        captor.value.hierarchyOps.none { hop ->
+        captor.firstValue.hierarchyOps.none { hop ->
             hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
         }
     }
@@ -2800,10 +2895,10 @@
         // task1 is the only visible task as task2 is minimized.
         controller.minimizeTask(task1, MinimizeReason.MINIMIZE_BUTTON)
         // Adds remove wallpaper operation
-        val captor = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startMinimizedModeTransition(captor.capture())
         // Adds remove wallpaper operation
-        captor.value.assertReorderAt(index = 0, wallpaperToken, toTop = false)
+        captor.firstValue.assertReorderAt(index = 0, wallpaperToken, toTop = false)
     }
 
     @Test
@@ -2942,6 +3037,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun handleRequest_fullscreenTask_noTasks_enforceDesktop_freeformDisplay_returnFreeformWCT() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         whenever(DesktopModeStatus.enterDesktopByDefaultOnFreeformDisplay(context)).thenReturn(true)
         val tda = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)!!
         tda.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FREEFORM
@@ -3073,6 +3169,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun handleRequest_freeformTask_desktopWallpaperEnabled_freeformNotVisible_reorderedToTop() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val freeformTask1 = setUpFreeformTask()
         val freeformTask2 = createFreeformTask()
 
@@ -3107,7 +3204,9 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun handleRequest_freeformTask_desktopWallpaperEnabled_noOtherTasks_reorderedToTop() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val task = createFreeformTask()
+
         val result = controller.handleRequest(Binder(), createTransition(task))
 
         assertNotNull(result, "Should handle request")
@@ -3135,6 +3234,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun handleRequest_freeformTask_dskWallpaperEnabled_freeformOnOtherDisplayOnly_reorderedToTop() {
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null)
         val taskDefaultDisplay = createFreeformTask(displayId = DEFAULT_DISPLAY)
         // Second display task
         createFreeformTask(displayId = SECOND_DISPLAY)
@@ -4124,7 +4224,6 @@
                 shouldLetterbox = true,
             )
         setUpLandscapeDisplay()
-
         spyController.onDragPositioningEndThroughStatusBar(PointF(800f, 1280f), task, mockSurface)
         val wct = getLatestDragToDesktopWct()
         assertThat(findBoundsChange(wct, task)).isEqualTo(UNRESIZABLE_PORTRAIT_BOUNDS)
@@ -4591,7 +4690,7 @@
 
         controller.enterSplit(DEFAULT_DISPLAY, leftOrTop = false)
 
-        val wctArgument = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val wctArgument = argumentCaptor<WindowContainerTransaction>()
         verify(splitScreenController)
             .requestEnterSplitSelect(
                 eq(task2),
@@ -4599,9 +4698,9 @@
                 eq(SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT),
                 eq(task2.configuration.windowConfiguration.bounds),
             )
-        assertThat(wctArgument.value.hierarchyOps).hasSize(1)
+        assertThat(wctArgument.firstValue.hierarchyOps).hasSize(1)
         // Removes wallpaper activity when leaving desktop
-        wctArgument.value.assertReorderAt(index = 0, wallpaperToken, toTop = false)
+        wctArgument.firstValue.assertReorderAt(index = 0, wallpaperToken, toTop = false)
     }
 
     @Test
@@ -4616,7 +4715,7 @@
 
         controller.enterSplit(DEFAULT_DISPLAY, leftOrTop = false)
 
-        val wctArgument = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val wctArgument = argumentCaptor<WindowContainerTransaction>()
         verify(splitScreenController)
             .requestEnterSplitSelect(
                 eq(task2),
@@ -4625,7 +4724,7 @@
                 eq(task2.configuration.windowConfiguration.bounds),
             )
         // Does not remove wallpaper activity, as desktop still has visible desktop tasks
-        assertThat(wctArgument.value.hierarchyOps).isEmpty()
+        assertThat(wctArgument.firstValue.hierarchyOps).isEmpty()
     }
 
     @Test
@@ -4633,7 +4732,7 @@
     fun newWindow_fromFullscreenOpensInSplit() {
         setUpLandscapeDisplay()
         val task = setUpFullscreenTask()
-        val optionsCaptor = ArgumentCaptor.forClass(Bundle::class.java)
+        val optionsCaptor = argumentCaptor<Bundle>()
         runOpenNewWindow(task)
         verify(splitScreenController)
             .startIntent(
@@ -4646,7 +4745,7 @@
                 eq(true),
                 eq(SPLIT_INDEX_UNDEFINED),
             )
-        assertThat(ActivityOptions.fromBundle(optionsCaptor.value).launchWindowingMode)
+        assertThat(ActivityOptions.fromBundle(optionsCaptor.firstValue).launchWindowingMode)
             .isEqualTo(WINDOWING_MODE_MULTI_WINDOW)
     }
 
@@ -4655,7 +4754,7 @@
     fun newWindow_fromSplitOpensInSplit() {
         setUpLandscapeDisplay()
         val task = setUpSplitScreenTask()
-        val optionsCaptor = ArgumentCaptor.forClass(Bundle::class.java)
+        val optionsCaptor = argumentCaptor<Bundle>()
         runOpenNewWindow(task)
         verify(splitScreenController)
             .startIntent(
@@ -4668,7 +4767,7 @@
                 eq(true),
                 eq(SPLIT_INDEX_UNDEFINED),
             )
-        assertThat(ActivityOptions.fromBundle(optionsCaptor.value).launchWindowingMode)
+        assertThat(ActivityOptions.fromBundle(optionsCaptor.firstValue).launchWindowingMode)
             .isEqualTo(WINDOWING_MODE_MULTI_WINDOW)
     }
 
@@ -4763,11 +4862,11 @@
         setUpLandscapeDisplay()
         val task = setUpFullscreenTask()
         val taskToRequest = setUpFreeformTask()
-        val optionsCaptor = ArgumentCaptor.forClass(Bundle::class.java)
+        val optionsCaptor = argumentCaptor<Bundle>()
         runOpenInstance(task, taskToRequest.taskId)
         verify(splitScreenController)
             .startTask(anyInt(), anyInt(), optionsCaptor.capture(), anyOrNull())
-        assertThat(ActivityOptions.fromBundle(optionsCaptor.value).launchWindowingMode)
+        assertThat(ActivityOptions.fromBundle(optionsCaptor.firstValue).launchWindowingMode)
             .isEqualTo(WINDOWING_MODE_MULTI_WINDOW)
     }
 
@@ -4777,11 +4876,11 @@
         setUpLandscapeDisplay()
         val task = setUpSplitScreenTask()
         val taskToRequest = setUpFreeformTask()
-        val optionsCaptor = ArgumentCaptor.forClass(Bundle::class.java)
+        val optionsCaptor = argumentCaptor<Bundle>()
         runOpenInstance(task, taskToRequest.taskId)
         verify(splitScreenController)
             .startTask(anyInt(), anyInt(), optionsCaptor.capture(), anyOrNull())
-        assertThat(ActivityOptions.fromBundle(optionsCaptor.value).launchWindowingMode)
+        assertThat(ActivityOptions.fromBundle(optionsCaptor.firstValue).launchWindowingMode)
             .isEqualTo(WINDOWING_MODE_MULTI_WINDOW)
     }
 
@@ -5158,11 +5257,10 @@
         val bounds = Rect(0, 0, 200, 100)
         val task =
             setUpFreeformTask(DEFAULT_DISPLAY, bounds).apply {
-                topActivityInfo =
-                    ActivityInfo().apply {
-                        screenOrientation = SCREEN_ORIENTATION_LANDSCAPE
-                        configuration.windowConfiguration.appBounds = bounds
-                    }
+                topActivityInfo.apply {
+                    this?.screenOrientation = SCREEN_ORIENTATION_LANDSCAPE
+                    configuration.windowConfiguration.appBounds = bounds
+                }
                 appCompatTaskInfo.topActivityAppBounds.set(0, 0, bounds.width(), bounds.height())
                 isResizeable = false
             }
@@ -5384,38 +5482,90 @@
     }
 
     @Test
-    fun onUnhandledDrag_newFreeformIntent() {
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFreeformIntent_tabTearingAnimationBugfixFlagEnabled() {
         testOnUnhandledDrag(
             DesktopModeVisualIndicator.IndicatorType.TO_DESKTOP_INDICATOR,
             PointF(1200f, 700f),
             Rect(240, 700, 2160, 1900),
+            tabTearingAnimationFlagEnabled = true,
         )
     }
 
     @Test
-    fun onUnhandledDrag_newFreeformIntentSplitLeft() {
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFreeformIntent_tabTearingAnimationBugfixFlagDisabled() {
+        testOnUnhandledDrag(
+            DesktopModeVisualIndicator.IndicatorType.TO_DESKTOP_INDICATOR,
+            PointF(1200f, 700f),
+            Rect(240, 700, 2160, 1900),
+            tabTearingAnimationFlagEnabled = false,
+        )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFreeformIntentSplitLeft_tabTearingAnimationBugfixFlagEnabled() {
         testOnUnhandledDrag(
             DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_LEFT_INDICATOR,
             PointF(50f, 700f),
             Rect(0, 0, 500, 1000),
+            tabTearingAnimationFlagEnabled = true,
         )
     }
 
     @Test
-    fun onUnhandledDrag_newFreeformIntentSplitRight() {
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFreeformIntentSplitLeft_tabTearingAnimationBugfixFlagDisabled() {
+        testOnUnhandledDrag(
+            DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_LEFT_INDICATOR,
+            PointF(50f, 700f),
+            Rect(0, 0, 500, 1000),
+            tabTearingAnimationFlagEnabled = false,
+        )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFreeformIntentSplitRight_tabTearingAnimationBugfixFlagEnabled() {
         testOnUnhandledDrag(
             DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_RIGHT_INDICATOR,
             PointF(2500f, 700f),
             Rect(500, 0, 1000, 1000),
+            tabTearingAnimationFlagEnabled = true,
         )
     }
 
     @Test
-    fun onUnhandledDrag_newFullscreenIntent() {
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFreeformIntentSplitRight_tabTearingAnimationBugfixFlagDisabled() {
+        testOnUnhandledDrag(
+            DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_RIGHT_INDICATOR,
+            PointF(2500f, 700f),
+            Rect(500, 0, 1000, 1000),
+            tabTearingAnimationFlagEnabled = false,
+        )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFullscreenIntent_tabTearingAnimationBugfixFlagEnabled() {
         testOnUnhandledDrag(
             DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR,
             PointF(1200f, 50f),
             Rect(),
+            tabTearingAnimationFlagEnabled = true,
+        )
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_TAB_TEARING_MINIMIZE_ANIMATION_BUGFIX)
+    fun onUnhandledDrag_newFullscreenIntent_tabTearingAnimationBugfixFlagDisabled() {
+        testOnUnhandledDrag(
+            DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR,
+            PointF(1200f, 50f),
+            Rect(),
+            tabTearingAnimationFlagEnabled = false,
         )
     }
 
@@ -5769,6 +5919,7 @@
         indicatorType: DesktopModeVisualIndicator.IndicatorType,
         inputCoordinate: PointF,
         expectedBounds: Rect,
+        tabTearingAnimationFlagEnabled: Boolean,
     ) {
         setUpLandscapeDisplay()
         val task = setUpFreeformTask()
@@ -5799,6 +5950,16 @@
                 anyOrNull(),
                 eq(DesktopModeVisualIndicator.DragStartState.DRAGGED_INTENT),
             )
+        whenever(
+                desktopMixedTransitionHandler.startLaunchTransition(
+                    eq(TRANSIT_OPEN),
+                    any(),
+                    anyOrNull(),
+                    anyOrNull(),
+                    anyOrNull(),
+                )
+            )
+            .thenReturn(Binder())
 
         spyController.onUnhandledDrag(
             mockPendingIntent,
@@ -5806,24 +5967,37 @@
             mockDragEvent,
             mockCallback as Consumer<Boolean>,
         )
-        val arg: ArgumentCaptor<WindowContainerTransaction> =
-            ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val arg = argumentCaptor<WindowContainerTransaction>()
         var expectedWindowingMode: Int
         if (indicatorType == DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR) {
             expectedWindowingMode = WINDOWING_MODE_FULLSCREEN
             // Fullscreen launches currently use default transitions
-            verify(transitions).startTransition(any(), capture(arg), anyOrNull())
+            verify(transitions).startTransition(any(), arg.capture(), anyOrNull())
         } else {
             expectedWindowingMode = WINDOWING_MODE_FREEFORM
-            // All other launches use a special handler.
-            verify(dragAndDropTransitionHandler).handleDropEvent(capture(arg))
+            if (tabTearingAnimationFlagEnabled) {
+                verify(desktopMixedTransitionHandler)
+                    .startLaunchTransition(
+                        eq(TRANSIT_OPEN),
+                        arg.capture(),
+                        anyOrNull(),
+                        anyOrNull(),
+                        anyOrNull(),
+                    )
+            } else {
+                // All other launches use a special handler.
+                verify(dragAndDropTransitionHandler).handleDropEvent(arg.capture())
+            }
         }
         assertThat(
-                ActivityOptions.fromBundle(arg.value.hierarchyOps[0].launchOptions)
+                ActivityOptions.fromBundle(arg.firstValue.hierarchyOps[0].launchOptions)
                     .launchWindowingMode
             )
             .isEqualTo(expectedWindowingMode)
-        assertThat(ActivityOptions.fromBundle(arg.value.hierarchyOps[0].launchOptions).launchBounds)
+        assertThat(
+                ActivityOptions.fromBundle(arg.firstValue.hierarchyOps[0].launchOptions)
+                    .launchBounds
+            )
             .isEqualTo(expectedBounds)
     }
 
@@ -5860,6 +6034,7 @@
     ): RunningTaskInfo {
         val task = createFreeformTask(displayId, bounds)
         val activityInfo = ActivityInfo()
+        activityInfo.applicationInfo = ApplicationInfo()
         task.topActivityInfo = activityInfo
         if (background) {
             whenever(shellTaskOrganizer.getRunningTaskInfo(task.taskId)).thenReturn(null)
@@ -5905,6 +6080,7 @@
         val activityInfo = ActivityInfo()
         activityInfo.screenOrientation = screenOrientation
         activityInfo.windowLayout = ActivityInfo.WindowLayout(0, 0F, 0, 0F, gravity, 0, 0)
+        activityInfo.applicationInfo = ApplicationInfo()
         with(task) {
             topActivityInfo = activityInfo
             isResizeable = isResizable
@@ -6003,52 +6179,49 @@
         @WindowManager.TransitionType type: Int = TRANSIT_OPEN,
         handlerClass: Class<out TransitionHandler>? = null,
     ): WindowContainerTransaction {
-        val arg = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val arg = argumentCaptor<WindowContainerTransaction>()
         if (handlerClass == null) {
             verify(transitions).startTransition(eq(type), arg.capture(), isNull())
         } else {
             verify(transitions).startTransition(eq(type), arg.capture(), isA(handlerClass))
         }
-        return arg.value
+        return arg.lastValue
     }
 
     private fun getLatestToggleResizeDesktopTaskWct(
         currentBounds: Rect? = null
     ): WindowContainerTransaction {
-        val arg: ArgumentCaptor<WindowContainerTransaction> =
-            ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val arg = argumentCaptor<WindowContainerTransaction>()
         verify(toggleResizeDesktopTaskTransitionHandler, atLeastOnce())
-            .startTransition(capture(arg), eq(currentBounds))
-        return arg.value
+            .startTransition(arg.capture(), eq(currentBounds))
+        return arg.lastValue
     }
 
     private fun getLatestDesktopMixedTaskWct(
         @WindowManager.TransitionType type: Int = TRANSIT_OPEN
     ): WindowContainerTransaction {
-        val arg: ArgumentCaptor<WindowContainerTransaction> =
-            ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val arg = argumentCaptor<WindowContainerTransaction>()
         verify(desktopMixedTransitionHandler)
-            .startLaunchTransition(eq(type), capture(arg), anyOrNull(), anyOrNull(), anyOrNull())
-        return arg.value
+            .startLaunchTransition(eq(type), arg.capture(), anyOrNull(), anyOrNull(), anyOrNull())
+        return arg.lastValue
     }
 
     private fun getLatestEnterDesktopWct(): WindowContainerTransaction {
-        val arg = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val arg = argumentCaptor<WindowContainerTransaction>()
         verify(enterDesktopTransitionHandler).moveToDesktop(arg.capture(), any())
-        return arg.value
+        return arg.lastValue
     }
 
     private fun getLatestDragToDesktopWct(): WindowContainerTransaction {
-        val arg: ArgumentCaptor<WindowContainerTransaction> =
-            ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
-        verify(dragToDesktopTransitionHandler).finishDragToDesktopTransition(capture(arg))
-        return arg.value
+        val arg = argumentCaptor<WindowContainerTransaction>()
+        verify(dragToDesktopTransitionHandler).finishDragToDesktopTransition(arg.capture())
+        return arg.lastValue
     }
 
     private fun getLatestExitDesktopWct(): WindowContainerTransaction {
-        val arg = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
+        val arg = argumentCaptor<WindowContainerTransaction>()
         verify(exitDesktopTransitionHandler).startTransition(any(), arg.capture(), any(), any())
-        return arg.value
+        return arg.lastValue
     }
 
     private fun findBoundsChange(wct: WindowContainerTransaction, task: RunningTaskInfo): Rect? =
@@ -6078,6 +6251,7 @@
         val STABLE_BOUNDS = Rect(0, 0, 1000, 1000)
         const val MAX_TASK_LIMIT = 6
         private const val TASKBAR_FRAME_HEIGHT = 200
+        private const val FLOAT_TOLERANCE = 0.005f
 
         @JvmStatic
         @Parameters(name = "{0}")
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopUserRepositoriesTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopUserRepositoriesTest.kt
index 83e4872..030bb1ac 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopUserRepositoriesTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopUserRepositoriesTest.kt
@@ -123,8 +123,26 @@
         assertThat(desktopRepository.userId).isEqualTo(PROFILE_ID_2)
     }
 
+    @Test
+    @EnableFlags(FLAG_ENABLE_DESKTOP_WINDOWING_HSUM)
+    fun getUserForProfile_flagEnabled_returnsUserIdForProfile() {
+        userRepositories.onUserChanged(USER_ID_2, mock())
+        val profiles: MutableList<UserInfo> =
+            mutableListOf(
+                UserInfo(USER_ID_2, "User profile", 0),
+                UserInfo(PROFILE_ID_1, "Work profile", 0),
+            )
+        userRepositories.onUserProfilesChanged(profiles)
+
+        val userIdForProfile = userRepositories.getUserIdForProfile(PROFILE_ID_1)
+
+        assertThat(userIdForProfile).isEqualTo(USER_ID_2)
+    }
+
     private companion object {
         const val USER_ID_1 = 7
+        const val USER_ID_2 = 8
+        const val PROFILE_ID_1 = 4
         const val PROFILE_ID_2 = 5
     }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt
index 25246d9..ba26d1d 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt
@@ -25,6 +25,8 @@
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.TestRunningTaskInfoBuilder
+import com.android.wm.shell.bubbles.BubbleController
+import com.android.wm.shell.bubbles.BubbleTransitions
 import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_CANCEL_DRAG_TO_DESKTOP
 import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_END_DRAG_TO_DESKTOP
 import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP
@@ -34,6 +36,7 @@
 import com.android.wm.shell.splitscreen.SplitScreenController
 import com.android.wm.shell.transition.Transitions
 import com.android.wm.shell.windowdecor.MoveToDesktopAnimator
+import java.util.Optional
 import java.util.function.Supplier
 import junit.framework.Assert.assertEquals
 import junit.framework.Assert.assertFalse
@@ -70,6 +73,8 @@
     @Mock private lateinit var mockInteractionJankMonitor: InteractionJankMonitor
     @Mock private lateinit var draggedTaskLeash: SurfaceControl
     @Mock private lateinit var homeTaskLeash: SurfaceControl
+    @Mock private lateinit var desktopUserRepositories: DesktopUserRepositories
+    @Mock private lateinit var bubbleController: BubbleController
 
     private val transactionSupplier = Supplier { mock<SurfaceControl.Transaction>() }
 
@@ -84,7 +89,9 @@
                     context,
                     transitions,
                     taskDisplayAreaOrganizer,
+                    desktopUserRepositories,
                     mockInteractionJankMonitor,
+                    Optional.of(bubbleController),
                     transactionSupplier,
                 )
                 .apply { setSplitScreenController(splitScreenController) }
@@ -93,7 +100,9 @@
                     context,
                     transitions,
                     taskDisplayAreaOrganizer,
+                    desktopUserRepositories,
                     mockInteractionJankMonitor,
+                    Optional.of(bubbleController),
                     transactionSupplier,
                 )
                 .apply { setSplitScreenController(splitScreenController) }
@@ -166,6 +175,30 @@
     }
 
     @Test
+    fun startDragToDesktop_cancelledBeforeReady_verifyBubbleLeftCancel() {
+        performEarlyCancel(
+            defaultHandler,
+            DragToDesktopTransitionHandler.CancelState.CANCEL_BUBBLE_LEFT,
+        )
+        verify(bubbleController).expandStackAndSelectBubble(
+            any<RunningTaskInfo>(),
+            any<BubbleTransitions.DragData>()
+        )
+    }
+
+    @Test
+    fun startDragToDesktop_cancelledBeforeReady_verifyBubbleRightCancel() {
+        performEarlyCancel(
+            defaultHandler,
+            DragToDesktopTransitionHandler.CancelState.CANCEL_BUBBLE_RIGHT,
+        )
+        verify(bubbleController).expandStackAndSelectBubble(
+            any<RunningTaskInfo>(),
+            any<BubbleTransitions.DragData>()
+        )
+    }
+
+    @Test
     fun startDragToDesktop_aborted_finishDropped() {
         val task = createTask()
         // Simulate transition is started.
@@ -340,6 +373,38 @@
     }
 
     @Test
+    fun cancelDragToDesktop_bubbleLeftCancelType_bubbleRequested() {
+        startDrag(defaultHandler)
+
+        // Then user cancelled it, requesting bubble.
+        defaultHandler.cancelDragToDesktopTransition(
+            DragToDesktopTransitionHandler.CancelState.CANCEL_BUBBLE_LEFT
+        )
+
+        // Verify the request went through bubble controller.
+        verify(bubbleController).expandStackAndSelectBubble(
+            any<RunningTaskInfo>(),
+            any<BubbleTransitions.DragData>()
+        )
+    }
+
+    @Test
+    fun cancelDragToDesktop_bubbleRightCancelType_bubbleRequested() {
+        startDrag(defaultHandler)
+
+        // Then user cancelled it, requesting bubble.
+        defaultHandler.cancelDragToDesktopTransition(
+            DragToDesktopTransitionHandler.CancelState.CANCEL_BUBBLE_RIGHT
+        )
+
+        // Verify the request went through bubble controller.
+        verify(bubbleController).expandStackAndSelectBubble(
+            any<RunningTaskInfo>(),
+            any<BubbleTransitions.DragData>()
+        )
+    }
+
+    @Test
     fun cancelDragToDesktop_startWasNotReady_animateCancel() {
         val task = createTask()
         // Simulate transition is started and is ready to animate.
@@ -484,17 +549,22 @@
         val mergedFinishTransaction = mock<SurfaceControl.Transaction>()
         val finishCallback = mock<Transitions.TransitionFinishCallback>()
         val task = createTask()
-        val startTransition = startDrag(
-            springHandler, task, finishTransaction = playingFinishTransaction, homeChange = null)
+        val startTransition =
+            startDrag(
+                springHandler,
+                task,
+                finishTransaction = playingFinishTransaction,
+                homeChange = null,
+            )
         springHandler.onTaskResizeAnimationListener = mock()
 
         springHandler.mergeAnimation(
             transition = mock<IBinder>(),
             info =
-            createTransitionInfo(
-                type = TRANSIT_DESKTOP_MODE_END_DRAG_TO_DESKTOP,
-                draggedTask = task,
-            ),
+                createTransitionInfo(
+                    type = TRANSIT_DESKTOP_MODE_END_DRAG_TO_DESKTOP,
+                    draggedTask = task,
+                ),
             startT = mergedStartTransaction,
             finishT = mergedFinishTransaction,
             mergeTarget = startTransition,
@@ -723,7 +793,8 @@
     private fun createTransitionInfo(
         type: Int,
         draggedTask: RunningTaskInfo,
-        homeChange: TransitionInfo.Change? = createHomeChange()) =
+        homeChange: TransitionInfo.Change? = createHomeChange(),
+    ) =
         TransitionInfo(type, /* flags= */ 0).apply {
             homeChange?.let { addChange(it) }
             addChange( // Dragged Task.
@@ -741,11 +812,12 @@
             )
         }
 
-    private fun createHomeChange() = TransitionInfo.Change(mock(), homeTaskLeash).apply {
-        parent = null
-        taskInfo = TestRunningTaskInfoBuilder().setActivityType(ACTIVITY_TYPE_HOME).build()
-        flags = flags or FLAG_IS_WALLPAPER
-    }
+    private fun createHomeChange() =
+        TransitionInfo.Change(mock(), homeTaskLeash).apply {
+            parent = null
+            taskInfo = TestRunningTaskInfoBuilder().setActivityType(ACTIVITY_TYPE_HOME).build()
+            flags = flags or FLAG_IS_WALLPAPER
+        }
 
     private fun systemPropertiesKey(name: String) =
         "${SpringDragToDesktopTransitionHandler.SYSTEM_PROPERTIES_GROUP}.$name"
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt
index dfb1b0c..9cb2a05 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt
@@ -16,9 +16,12 @@
 
 package com.android.wm.shell.desktopmode.compatui
 
+import android.content.ComponentName
 import android.content.Intent
+import android.content.pm.PackageManager
 import android.os.Binder
 import android.testing.AndroidTestingRunner
+import android.testing.TestableContext
 import android.view.SurfaceControl
 import android.view.WindowManager.TRANSIT_CHANGE
 import android.view.WindowManager.TRANSIT_CLOSE
@@ -37,6 +40,7 @@
 import com.android.wm.shell.sysui.ShellInit
 import com.android.wm.shell.transition.TransitionInfoBuilder
 import com.android.wm.shell.transition.Transitions
+import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModelTestsBase.Companion.HOME_LAUNCHER_PACKAGE_NAME
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Test
@@ -44,6 +48,7 @@
 import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.kotlin.any
 import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
 import org.mockito.kotlin.verify
 import org.mockito.kotlin.whenever
 
@@ -62,16 +67,23 @@
     private val desktopRepository = mock<DesktopRepository>()
     private val startT = mock<SurfaceControl.Transaction>()
     private val finishT = mock<SurfaceControl.Transaction>()
+    private val packageManager = mock<PackageManager>()
+    private val componentName = mock<ComponentName>()
 
+    private lateinit var spyContext: TestableContext
     private lateinit var transitionHandler: SystemModalsTransitionHandler
     private lateinit var desktopModeCompatPolicy: DesktopModeCompatPolicy
 
     @Before
     fun setUp() {
+        spyContext = spy(mContext)
         // Simulate having one Desktop task so that we see Desktop Mode as active
         whenever(desktopUserRepositories.current).thenReturn(desktopRepository)
         whenever(desktopRepository.getVisibleTaskCount(anyInt())).thenReturn(1)
-        desktopModeCompatPolicy = DesktopModeCompatPolicy(context)
+        whenever(spyContext.packageManager).thenReturn(packageManager)
+        whenever(componentName.packageName).thenReturn(HOME_LAUNCHER_PACKAGE_NAME)
+        whenever(packageManager.getHomeActivities(ArrayList())).thenReturn(componentName)
+        desktopModeCompatPolicy = DesktopModeCompatPolicy(spyContext)
         transitionHandler = createTransitionHandler()
     }
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt
index 86e8142..08b9e04 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt
@@ -26,6 +26,8 @@
 import com.android.window.flags.Flags
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.desktopmode.CaptionState
+import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger
+import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum
 import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository
 import com.android.wm.shell.desktopmode.education.AppHandleEducationController.Companion.APP_HANDLE_EDUCATION_DELAY_MILLIS
 import com.android.wm.shell.desktopmode.education.AppHandleEducationController.Companion.TOOLTIP_VISIBLE_DURATION_MILLIS
@@ -86,6 +88,7 @@
     @Mock private lateinit var mockDataStoreRepository: AppHandleEducationDatastoreRepository
     @Mock private lateinit var mockCaptionHandleRepository: WindowDecorCaptionHandleRepository
     @Mock private lateinit var mockTooltipController: DesktopWindowingEducationTooltipController
+    @Mock private lateinit var mockDesktopModeUiEventLogger: DesktopModeUiEventLogger
 
     @Before
     fun setUp() {
@@ -105,6 +108,7 @@
                 mockTooltipController,
                 testScope.backgroundScope,
                 Dispatchers.Main,
+                mockDesktopModeUiEventLogger,
             )
     }
 
@@ -123,6 +127,8 @@
             verify(mockTooltipController, times(1)).showEducationTooltip(any(), any())
             verify(mockDataStoreRepository, times(1))
                 .updateAppHandleHintViewedTimestampMillis(eq(true))
+            verify(mockDesktopModeUiEventLogger, times(1))
+                .log(any(), eq(DesktopUiEventEnum.APP_HANDLE_EDUCATION_TOOLTIP_SHOWN))
         }
 
     @Test
@@ -155,6 +161,8 @@
             verify(mockTooltipController, times(1)).showEducationTooltip(any(), any())
             verify(mockDataStoreRepository, times(1))
                 .updateEnterDesktopModeHintViewedTimestampMillis(eq(true))
+            verify(mockDesktopModeUiEventLogger, times(1))
+                .log(any(), eq(DesktopUiEventEnum.ENTER_DESKTOP_MODE_EDUCATION_TOOLTIP_SHOWN))
         }
 
     @Test
@@ -170,6 +178,8 @@
             verify(mockTooltipController, times(1)).showEducationTooltip(any(), any())
             verify(mockDataStoreRepository, times(1))
                 .updateExitDesktopModeHintViewedTimestampMillis(eq(true))
+            verify(mockDesktopModeUiEventLogger, times(1))
+                .log(any(), eq(DesktopUiEventEnum.EXIT_DESKTOP_MODE_EDUCATION_TOOLTIP_SHOWN))
         }
 
     @Test
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelperTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelperTest.java
new file mode 100644
index 0000000..a2253cf
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelperTest.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.pip2;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyFloat;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+import android.view.SurfaceControl;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.wm.shell.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Unit test against {@link PipSurfaceTransactionHelper}.
+ */
+@SmallTest
+@TestableLooper.RunWithLooper
+@RunWith(AndroidTestingRunner.class)
+public class PipSurfaceTransactionHelperTest {
+
+    private static final int CORNER_RADIUS = 10;
+    private static final int SHADOW_RADIUS = 20;
+
+    @Mock private Context mMockContext;
+    @Mock private Resources mMockResources;
+    @Mock private SurfaceControl.Transaction mMockTransaction;
+
+    private PipSurfaceTransactionHelper mPipSurfaceTransactionHelper;
+    private SurfaceControl mTestLeash;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mMockContext.getResources()).thenReturn(mMockResources);
+        when(mMockResources.getDimensionPixelSize(eq(R.dimen.pip_corner_radius)))
+                .thenReturn(CORNER_RADIUS);
+        when(mMockResources.getDimensionPixelSize(eq(R.dimen.pip_shadow_radius)))
+                .thenReturn(SHADOW_RADIUS);
+        when(mMockTransaction.setCornerRadius(any(SurfaceControl.class), anyFloat()))
+                .thenReturn(mMockTransaction);
+        when(mMockTransaction.setShadowRadius(any(SurfaceControl.class), anyFloat()))
+                .thenReturn(mMockTransaction);
+
+        mPipSurfaceTransactionHelper = new PipSurfaceTransactionHelper(mMockContext);
+        mTestLeash = new SurfaceControl.Builder()
+                .setContainerLayer()
+                .setName("PipSurfaceTransactionHelperTest")
+                .setCallsite("PipSurfaceTransactionHelperTest")
+                .build();
+    }
+
+    @Test
+    public void round_doNotApply_setZeroCornerRadius() {
+        mPipSurfaceTransactionHelper.round(mMockTransaction, mTestLeash, false /* apply */);
+
+        verify(mMockTransaction).setCornerRadius(eq(mTestLeash), eq(0f));
+    }
+
+    @Test
+    public void round_doApply_setExactCornerRadius() {
+        mPipSurfaceTransactionHelper.round(mMockTransaction, mTestLeash, true /* apply */);
+
+        verify(mMockTransaction).setCornerRadius(eq(mTestLeash), eq((float) CORNER_RADIUS));
+    }
+
+    @Test
+    public void shadow_doNotApply_setZeroShadowRadius() {
+        mPipSurfaceTransactionHelper.shadow(mMockTransaction, mTestLeash, false /* apply */);
+
+        verify(mMockTransaction).setShadowRadius(eq(mTestLeash), eq(0f));
+    }
+
+    @Test
+    public void shadow_doApply_setExactShadowRadius() {
+        mPipSurfaceTransactionHelper.shadow(mMockTransaction, mTestLeash, true /* apply */);
+
+        verify(mMockTransaction).setShadowRadius(eq(mTestLeash), eq((float) SHADOW_RADIUS));
+    }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java
index b50af74..439be91 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java
@@ -17,9 +17,13 @@
 package com.android.wm.shell.recents;
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
+import static android.view.WindowManager.TRANSIT_CLOSE;
+import static android.view.WindowManager.TRANSIT_OPEN;
 import static android.view.WindowManager.TRANSIT_TO_FRONT;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX;
 import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_ANIMATING;
 import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_NOT_RUNNING;
 import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_REQUESTED;
@@ -44,9 +48,11 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.platform.test.annotations.EnableFlags;
 import android.view.SurfaceControl;
 import android.window.TransitionInfo;
 
@@ -57,6 +63,7 @@
 import com.android.dx.mockito.inline.extended.ExtendedMockito;
 import com.android.dx.mockito.inline.extended.StaticMockitoSession;
 import com.android.internal.os.IResultReceiver;
+import com.android.wm.shell.R;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.ShellTestCase;
 import com.android.wm.shell.TestRunningTaskInfoBuilder;
@@ -92,9 +99,13 @@
 @SmallTest
 public class RecentsTransitionHandlerTest extends ShellTestCase {
 
+    private static final int FREEFORM_TASK_CORNER_RADIUS = 32;
+
     @Mock
     private Context mContext;
     @Mock
+    private Resources mResources;
+    @Mock
     private TaskStackListenerImpl mTaskStackListener;
     @Mock
     private ShellCommandHandler mShellCommandHandler;
@@ -134,6 +145,10 @@
         when(mContext.getPackageManager()).thenReturn(mock(PackageManager.class));
         when(mContext.getSystemService(KeyguardManager.class))
                 .thenReturn(mock(KeyguardManager.class));
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mResources.getDimensionPixelSize(
+                R.dimen.desktop_windowing_freeform_rounded_corner_radius)
+        ).thenReturn(FREEFORM_TASK_CORNER_RADIUS);
         mShellInit = spy(new ShellInit(mMainExecutor));
         mShellController = spy(new ShellController(mContext, mShellInit, mShellCommandHandler,
                 mDisplayInsetsController, mMainExecutor));
@@ -276,6 +291,57 @@
         assertThat(listener.getState()).isEqualTo(TRANSITION_STATE_NOT_RUNNING);
     }
 
+    @Test
+    @EnableFlags(FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX)
+    public void testMergeAndFinish_openingFreeformTasks_setsCornerRadius() {
+        ActivityManager.RunningTaskInfo freeformTask =
+                new TestRunningTaskInfoBuilder().setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+        TransitionInfo mergeTransitionInfo = new TransitionInfoBuilder(TRANSIT_OPEN)
+                .addChange(TRANSIT_OPEN, freeformTask)
+                .build();
+        SurfaceControl leash = mergeTransitionInfo.getChanges().get(0).getLeash();
+        final IBinder transition = startRecentsTransition(/* synthetic= */ false);
+        SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class);
+        mRecentsTransitionHandler.startAnimation(
+                transition, createTransitionInfo(), new StubTransaction(), new StubTransaction(),
+                mock(Transitions.TransitionFinishCallback.class));
+
+        mRecentsTransitionHandler.findController(transition).merge(
+                mergeTransitionInfo,
+                new StubTransaction(),
+                finishT,
+                transition,
+                mock(Transitions.TransitionFinishCallback.class));
+        mRecentsTransitionHandler.findController(transition).finish(/* toHome= */ false,
+                false /* sendUserLeaveHint */, mock(IResultReceiver.class));
+        mMainExecutor.flushAll();
+
+        verify(finishT).setCornerRadius(leash, FREEFORM_TASK_CORNER_RADIUS);
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX)
+    public void testFinish_returningToFreeformTasks_setsCornerRadius() {
+        ActivityManager.RunningTaskInfo freeformTask =
+                new TestRunningTaskInfoBuilder().setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+        TransitionInfo transitionInfo = new TransitionInfoBuilder(TRANSIT_CLOSE)
+                .addChange(TRANSIT_CLOSE, freeformTask)
+                .build();
+        SurfaceControl leash = transitionInfo.getChanges().get(0).getLeash();
+        final IBinder transition = startRecentsTransition(/* synthetic= */ false);
+        SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class);
+        mRecentsTransitionHandler.startAnimation(
+                transition, transitionInfo, new StubTransaction(), finishT,
+                mock(Transitions.TransitionFinishCallback.class));
+
+        mRecentsTransitionHandler.findController(transition).finish(/* toHome= */ false,
+                false /* sendUserLeaveHint */, mock(IResultReceiver.class));
+        mMainExecutor.flushAll();
+
+
+        verify(finishT).setCornerRadius(leash, FREEFORM_TASK_CORNER_RADIUS);
+    }
+
     private IBinder startRecentsTransition(boolean synthetic) {
         return startRecentsTransition(synthetic, mock(IRecentsAnimationRunner.class));
     }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DragZoneFactoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DragZoneFactoryTest.kt
index e28d6ff..fd22a84 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DragZoneFactoryTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DragZoneFactoryTest.kt
@@ -16,8 +16,10 @@
 
 package com.android.wm.shell.shared.bubbles
 
+import android.content.Context
 import android.graphics.Insets
 import android.graphics.Rect
+import androidx.test.core.app.ApplicationProvider.getApplicationContext
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.wm.shell.shared.bubbles.DragZoneFactory.DesktopWindowModeChecker
@@ -27,11 +29,14 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 
+private typealias DragZoneVerifier = (dragZone: DragZone) -> Unit
+
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 /** Unit tests for [DragZoneFactory]. */
 class DragZoneFactoryTest {
 
+    private val context = getApplicationContext<Context>()
     private lateinit var dragZoneFactory: DragZoneFactory
     private val tabletPortrait =
         DeviceConfig(
@@ -55,184 +60,238 @@
     @Test
     fun dragZonesForBubbleBar_tablet() {
         dragZoneFactory =
-            DragZoneFactory(tabletPortrait, splitScreenModeChecker, desktopWindowModeChecker)
+            DragZoneFactory(
+                context,
+                tabletPortrait,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(DraggedObject.BubbleBar(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
+        val expectedZones: List<DragZoneVerifier> =
             listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.Bubble::class.java,
-                DragZone.Bubble::class.java,
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForBubble_tablet_portrait() {
         dragZoneFactory =
-            DragZoneFactory(tabletPortrait, splitScreenModeChecker, desktopWindowModeChecker)
+            DragZoneFactory(
+                context,
+                tabletPortrait,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(DraggedObject.Bubble(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
+        val expectedZones: List<DragZoneVerifier> =
             listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.DesktopWindow::class.java,
-                DragZone.Split.Top::class.java,
-                DragZone.Split.Bottom::class.java,
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.DesktopWindow>(),
+                verifyInstance<DragZone.Split.Top>(),
+                verifyInstance<DragZone.Split.Bottom>(),
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForBubble_tablet_landscape() {
-        dragZoneFactory = DragZoneFactory(tabletLandscape, splitScreenModeChecker, desktopWindowModeChecker)
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                tabletLandscape,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(DraggedObject.Bubble(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
+        val expectedZones: List<DragZoneVerifier> =
             listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.DesktopWindow::class.java,
-                DragZone.Split.Left::class.java,
-                DragZone.Split.Right::class.java,
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.DesktopWindow>(),
+                verifyInstance<DragZone.Split.Left>(),
+                verifyInstance<DragZone.Split.Right>(),
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForBubble_foldable_portrait() {
-        dragZoneFactory = DragZoneFactory(foldablePortrait, splitScreenModeChecker, desktopWindowModeChecker)
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                foldablePortrait,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(DraggedObject.Bubble(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
+        val expectedZones: List<DragZoneVerifier> =
             listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.Split.Left::class.java,
-                DragZone.Split.Right::class.java,
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.Split.Left>(),
+                verifyInstance<DragZone.Split.Right>(),
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForBubble_foldable_landscape() {
-        dragZoneFactory = DragZoneFactory(foldableLandscape, splitScreenModeChecker, desktopWindowModeChecker)
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                foldableLandscape,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(DraggedObject.Bubble(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
+        val expectedZones: List<DragZoneVerifier> =
             listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.Split.Top::class.java,
-                DragZone.Split.Bottom::class.java,
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.Split.Top>(),
+                verifyInstance<DragZone.Split.Bottom>(),
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForExpandedView_tablet_portrait() {
         dragZoneFactory =
-            DragZoneFactory(tabletPortrait, splitScreenModeChecker, desktopWindowModeChecker)
+            DragZoneFactory(
+                context,
+                tabletPortrait,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(
                 DraggedObject.ExpandedView(BubbleBarLocation.LEFT)
             )
-        val expectedZones: List<Class<out DragZone>> =
+        val expectedZones: List<DragZoneVerifier> =
             listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.DesktopWindow::class.java,
-                DragZone.Split.Top::class.java,
-                DragZone.Split.Bottom::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.DesktopWindow>(),
+                verifyInstance<DragZone.Split.Top>(),
+                verifyInstance<DragZone.Split.Bottom>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForExpandedView_tablet_landscape() {
-        dragZoneFactory = DragZoneFactory(tabletLandscape, splitScreenModeChecker, desktopWindowModeChecker)
-        val dragZones =
-            dragZoneFactory.createSortedDragZones(DraggedObject.ExpandedView(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
-            listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.DesktopWindow::class.java,
-                DragZone.Split.Left::class.java,
-                DragZone.Split.Right::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                tabletLandscape,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        val dragZones =
+            dragZoneFactory.createSortedDragZones(
+                DraggedObject.ExpandedView(BubbleBarLocation.LEFT)
+            )
+        val expectedZones: List<DragZoneVerifier> =
+            listOf(
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.DesktopWindow>(),
+                verifyInstance<DragZone.Split.Left>(),
+                verifyInstance<DragZone.Split.Right>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+            )
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForExpandedView_foldable_portrait() {
-        dragZoneFactory = DragZoneFactory(foldablePortrait, splitScreenModeChecker, desktopWindowModeChecker)
-        val dragZones =
-            dragZoneFactory.createSortedDragZones(DraggedObject.ExpandedView(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
-            listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.Split.Left::class.java,
-                DragZone.Split.Right::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                foldablePortrait,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        val dragZones =
+            dragZoneFactory.createSortedDragZones(
+                DraggedObject.ExpandedView(BubbleBarLocation.LEFT)
+            )
+        val expectedZones: List<DragZoneVerifier> =
+            listOf(
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.Split.Left>(),
+                verifyInstance<DragZone.Split.Right>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+            )
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForExpandedView_foldable_landscape() {
-        dragZoneFactory = DragZoneFactory(foldableLandscape, splitScreenModeChecker, desktopWindowModeChecker)
-        val dragZones =
-            dragZoneFactory.createSortedDragZones(DraggedObject.ExpandedView(BubbleBarLocation.LEFT))
-        val expectedZones: List<Class<out DragZone>> =
-            listOf(
-                DragZone.Dismiss::class.java,
-                DragZone.FullScreen::class.java,
-                DragZone.Split.Top::class.java,
-                DragZone.Split.Bottom::class.java,
-                DragZone.Bubble.Left::class.java,
-                DragZone.Bubble.Right::class.java,
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                foldableLandscape,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
             )
-        dragZones.zip(expectedZones).forEach { (zone, expectedType) ->
-            assertThat(zone).isInstanceOf(expectedType)
-        }
+        val dragZones =
+            dragZoneFactory.createSortedDragZones(
+                DraggedObject.ExpandedView(BubbleBarLocation.LEFT)
+            )
+        val expectedZones: List<DragZoneVerifier> =
+            listOf(
+                verifyInstance<DragZone.Dismiss>(),
+                verifyInstance<DragZone.FullScreen>(),
+                verifyInstance<DragZone.Split.Top>(),
+                verifyInstance<DragZone.Split.Bottom>(),
+                verifyInstance<DragZone.Bubble.Left>(),
+                verifyInstance<DragZone.Bubble.Right>(),
+            )
+        assertThat(dragZones).hasSize(expectedZones.size)
+        dragZones.zip(expectedZones).forEach { (zone, instanceVerifier) -> instanceVerifier(zone) }
     }
 
     @Test
     fun dragZonesForBubble_tablet_desktopModeDisabled() {
         isDesktopWindowModeSupported = false
-        dragZoneFactory = DragZoneFactory(foldableLandscape, splitScreenModeChecker, desktopWindowModeChecker)
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                foldableLandscape,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
             dragZoneFactory.createSortedDragZones(DraggedObject.Bubble(BubbleBarLocation.LEFT))
         assertThat(dragZones.filterIsInstance<DragZone.DesktopWindow>()).isEmpty()
@@ -241,9 +300,21 @@
     @Test
     fun dragZonesForExpandedView_tablet_desktopModeDisabled() {
         isDesktopWindowModeSupported = false
-        dragZoneFactory = DragZoneFactory(foldableLandscape, splitScreenModeChecker, desktopWindowModeChecker)
+        dragZoneFactory =
+            DragZoneFactory(
+                context,
+                foldableLandscape,
+                splitScreenModeChecker,
+                desktopWindowModeChecker
+            )
         val dragZones =
-            dragZoneFactory.createSortedDragZones(DraggedObject.ExpandedView(BubbleBarLocation.LEFT))
+            dragZoneFactory.createSortedDragZones(
+                DraggedObject.ExpandedView(BubbleBarLocation.LEFT)
+            )
         assertThat(dragZones.filterIsInstance<DragZone.DesktopWindow>()).isEmpty()
     }
+
+    private inline fun <reified T> verifyInstance(): DragZoneVerifier = { dragZone ->
+        assertThat(dragZone).isInstanceOf(T::class.java)
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DropTargetManagerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DropTargetManagerTest.kt
new file mode 100644
index 0000000..efb91c5
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/bubbles/DropTargetManagerTest.kt
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.shared.bubbles
+
+import android.graphics.Rect
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import kotlin.test.assertFails
+
+/** Unit tests for [DropTargetManager]. */
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class DropTargetManagerTest {
+
+    private lateinit var dropTargetManager: DropTargetManager
+    private lateinit var dragZoneChangedListener: FakeDragZoneChangedListener
+    private val dropTarget = Rect(0, 0, 0, 0)
+
+    // create 3 drop zones that are horizontally next to each other
+    // -------------------------------------------------
+    // |               |               |               |
+    // |    bubble     |               |    bubble     |
+    // |               |    dismiss    |               |
+    // |     left      |               |     right     |
+    // |               |               |               |
+    // -------------------------------------------------
+    private val bubbleLeftDragZone =
+        DragZone.Bubble.Left(bounds = Rect(0, 0, 100, 100), dropTarget = dropTarget)
+    private val dismissDragZone = DragZone.Dismiss(bounds = Rect(100, 0, 200, 100))
+    private val bubbleRightDragZone =
+        DragZone.Bubble.Right(bounds = Rect(200, 0, 300, 100), dropTarget = dropTarget)
+
+    @Before
+    fun setUp() {
+        dragZoneChangedListener = FakeDragZoneChangedListener()
+        dropTargetManager = DropTargetManager(isLayoutRtl = false, dragZoneChangedListener)
+    }
+
+    @Test
+    fun onDragStarted_notifiesInitialDragZone() {
+        dropTargetManager.onDragStarted(
+            DraggedObject.Bubble(BubbleBarLocation.LEFT),
+            listOf(bubbleLeftDragZone, bubbleRightDragZone)
+        )
+        assertThat(dragZoneChangedListener.initialDragZone).isEqualTo(bubbleLeftDragZone)
+    }
+
+    @Test
+    fun onDragStarted_missingExpectedDragZone_fails() {
+        assertFails {
+            dropTargetManager.onDragStarted(
+                DraggedObject.Bubble(BubbleBarLocation.RIGHT),
+                listOf(bubbleLeftDragZone)
+            )
+        }
+    }
+
+    @Test
+    fun onDragUpdated_notifiesDragZoneChanged() {
+        dropTargetManager.onDragStarted(
+            DraggedObject.Bubble(BubbleBarLocation.LEFT),
+            listOf(bubbleLeftDragZone, bubbleRightDragZone, dismissDragZone)
+        )
+        dropTargetManager.onDragUpdated(
+            bubbleRightDragZone.bounds.centerX(),
+            bubbleRightDragZone.bounds.centerY()
+        )
+        assertThat(dragZoneChangedListener.fromDragZone).isEqualTo(bubbleLeftDragZone)
+        assertThat(dragZoneChangedListener.toDragZone).isEqualTo(bubbleRightDragZone)
+
+        dropTargetManager.onDragUpdated(
+            dismissDragZone.bounds.centerX(),
+            dismissDragZone.bounds.centerY()
+        )
+        assertThat(dragZoneChangedListener.fromDragZone).isEqualTo(bubbleRightDragZone)
+        assertThat(dragZoneChangedListener.toDragZone).isEqualTo(dismissDragZone)
+    }
+
+    @Test
+    fun onDragUpdated_withinSameZone_doesNotNotify() {
+        dropTargetManager.onDragStarted(
+            DraggedObject.Bubble(BubbleBarLocation.LEFT),
+            listOf(bubbleLeftDragZone, bubbleRightDragZone, dismissDragZone)
+        )
+        dropTargetManager.onDragUpdated(
+            bubbleLeftDragZone.bounds.centerX(),
+            bubbleLeftDragZone.bounds.centerY()
+        )
+        assertThat(dragZoneChangedListener.fromDragZone).isNull()
+        assertThat(dragZoneChangedListener.toDragZone).isNull()
+    }
+
+    @Test
+    fun onDragUpdated_outsideAllZones_doesNotNotify() {
+        dropTargetManager.onDragStarted(
+            DraggedObject.Bubble(BubbleBarLocation.LEFT),
+            listOf(bubbleLeftDragZone, bubbleRightDragZone)
+        )
+        val pointX = 200
+        val pointY = 200
+        assertThat(bubbleLeftDragZone.contains(pointX, pointY)).isFalse()
+        assertThat(bubbleRightDragZone.contains(pointX, pointY)).isFalse()
+        dropTargetManager.onDragUpdated(pointX, pointY)
+        assertThat(dragZoneChangedListener.fromDragZone).isNull()
+        assertThat(dragZoneChangedListener.toDragZone).isNull()
+    }
+
+    @Test
+    fun onDragUpdated_hasOverlappingZones_notifiesFirstDragZoneChanged() {
+        // create a drag zone that spans across the width of all 3 drag zones, but extends below
+        // them
+        val splitDragZone = DragZone.Split.Left(bounds = Rect(0, 0, 300, 200))
+        dropTargetManager.onDragStarted(
+            DraggedObject.Bubble(BubbleBarLocation.LEFT),
+            listOf(bubbleLeftDragZone, bubbleRightDragZone, dismissDragZone, splitDragZone)
+        )
+
+        // drag to a point that is within both the bubble right zone and split zone
+        val (pointX, pointY) =
+            Pair(
+                bubbleRightDragZone.bounds.centerX(),
+                bubbleRightDragZone.bounds.centerY()
+            )
+        assertThat(splitDragZone.contains(pointX, pointY)).isTrue()
+        dropTargetManager.onDragUpdated(pointX, pointY)
+        // verify we dragged to the bubble right zone because that has higher priority than split
+        assertThat(dragZoneChangedListener.fromDragZone).isEqualTo(bubbleLeftDragZone)
+        assertThat(dragZoneChangedListener.toDragZone).isEqualTo(bubbleRightDragZone)
+
+        dropTargetManager.onDragUpdated(
+            bubbleRightDragZone.bounds.centerX(),
+            150 // below the bubble and dismiss drag zones but within split
+        )
+        assertThat(dragZoneChangedListener.fromDragZone).isEqualTo(bubbleRightDragZone)
+        assertThat(dragZoneChangedListener.toDragZone).isEqualTo(splitDragZone)
+
+        val (dismissPointX, dismissPointY) =
+            Pair(dismissDragZone.bounds.centerX(), dismissDragZone.bounds.centerY())
+        assertThat(splitDragZone.contains(dismissPointX, dismissPointY)).isTrue()
+        dropTargetManager.onDragUpdated(dismissPointX, dismissPointY)
+        assertThat(dragZoneChangedListener.fromDragZone).isEqualTo(splitDragZone)
+        assertThat(dragZoneChangedListener.toDragZone).isEqualTo(dismissDragZone)
+    }
+
+    @Test
+    fun onDragUpdated_afterDragEnded_doesNotNotify() {
+        dropTargetManager.onDragStarted(
+            DraggedObject.Bubble(BubbleBarLocation.LEFT),
+            listOf(bubbleLeftDragZone, bubbleRightDragZone, dismissDragZone)
+        )
+        dropTargetManager.onDragEnded()
+        dropTargetManager.onDragUpdated(
+            bubbleRightDragZone.bounds.centerX(),
+            bubbleRightDragZone.bounds.centerY()
+        )
+        assertThat(dragZoneChangedListener.fromDragZone).isNull()
+        assertThat(dragZoneChangedListener.toDragZone).isNull()
+    }
+
+    private class FakeDragZoneChangedListener : DropTargetManager.DragZoneChangedListener {
+        var initialDragZone: DragZone? = null
+        var fromDragZone: DragZone? = null
+        var toDragZone: DragZone? = null
+
+        override fun onInitialDragZoneSet(dragZone: DragZone) {
+            initialDragZone = dragZone
+        }
+        override fun onDragZoneChanged(from: DragZone, to: DragZone) {
+            fromDragZone = from
+            toDragZone = to
+        }
+    }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt
index d9791bb..f69bf34 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt
@@ -16,16 +16,27 @@
 
 package com.android.wm.shell.shared.desktopmode
 
+import android.app.TaskInfo
+import android.compat.testing.PlatformCompatChangeRule
 import android.content.ComponentName
+import android.content.pm.ActivityInfo
+import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
+import android.os.Process
+import android.platform.test.annotations.EnableFlags
 import android.testing.AndroidTestingRunner
 import androidx.test.filters.SmallTest
 import com.android.internal.R
+import com.android.window.flags.Flags
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFreeformTask
+import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModelTestsBase.Companion.HOME_LAUNCHER_PACKAGE_NAME
+import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges
+import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Before
+import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.kotlin.any
@@ -40,11 +51,16 @@
 @RunWith(AndroidTestingRunner::class)
 @SmallTest
 class DesktopModeCompatPolicyTest : ShellTestCase() {
+    @get:Rule val compatRule = PlatformCompatChangeRule()
     private lateinit var desktopModeCompatPolicy: DesktopModeCompatPolicy
+    private val packageManager: PackageManager = mock()
+    private val homeActivities = ComponentName(HOME_LAUNCHER_PACKAGE_NAME, /* class */ "")
 
     @Before
     fun setUp() {
         desktopModeCompatPolicy = DesktopModeCompatPolicy(mContext)
+        whenever(packageManager.getHomeActivities(any())).thenReturn(homeActivities)
+        mContext.setMockPackageManager(packageManager)
     }
 
     @Test
@@ -117,10 +133,6 @@
 
     @Test
     fun testIsTopActivityExemptFromDesktopWindowing_defaultHomePackage() {
-        val packageManager: PackageManager = mock()
-        val homeActivities = ComponentName("defaultHomePackage", /* class */ "")
-        whenever(packageManager.getHomeActivities(any())).thenReturn(homeActivities)
-        mContext.setMockPackageManager(packageManager)
         assertTrue(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
             createFreeformTask(/* displayId */ 0)
                 .apply {
@@ -131,10 +143,6 @@
 
     @Test
     fun testIsTopActivityExemptFromDesktopWindowing_defaultHomePackage_notDisplayed() {
-        val packageManager: PackageManager = mock()
-        val homeActivities = ComponentName("defaultHomePackage", /* class */ "")
-        whenever(packageManager.getHomeActivities(any())).thenReturn(homeActivities)
-        mContext.setMockPackageManager(packageManager)
         assertFalse(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
             createFreeformTask(/* displayId */ 0)
                 .apply {
@@ -142,4 +150,73 @@
                     isTopActivityNoDisplay = true
                 }))
     }
+
+    @Test
+    fun testIsTopActivityExemptFromDesktopWindowing_defaultHomePackage_notYetAvailable() {
+        val emptyHomeActivities: ComponentName = mock()
+        mContext.setMockPackageManager(packageManager)
+
+        whenever(emptyHomeActivities.packageName).thenReturn(null)
+        whenever(packageManager.getHomeActivities(any())).thenReturn(emptyHomeActivities)
+
+        assertTrue(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
+            createFreeformTask(/* displayId */ 0)
+                .apply {
+                    isTopActivityNoDisplay = false
+                }))
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_EXCLUDE_CAPTION_FROM_APP_BOUNDS)
+    @DisableCompatChanges(ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED)
+    fun testShouldExcludeCaptionFromAppBounds_resizeable_false() {
+        assertFalse(desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(
+            setUpFreeformTask().apply { isResizeable = true })
+        )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_EXCLUDE_CAPTION_FROM_APP_BOUNDS)
+    @DisableCompatChanges(ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED)
+    fun testShouldExcludeCaptionFromAppBounds_nonResizeable_true() {
+        assertTrue(desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(
+            setUpFreeformTask().apply { isResizeable = false })
+        )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_EXCLUDE_CAPTION_FROM_APP_BOUNDS)
+    @EnableCompatChanges(ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED)
+    fun testShouldExcludeCaptionFromAppBounds_nonResizeable_sdk35_false() {
+        assertFalse(desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(
+            setUpFreeformTask().apply { isResizeable = false })
+        )
+    }
+
+
+    @Test
+    @EnableFlags(Flags.FLAG_EXCLUDE_CAPTION_FROM_APP_BOUNDS)
+    @DisableCompatChanges(ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED)
+    @EnableCompatChanges(ActivityInfo.OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS)
+    fun testShouldExcludeCaptionFromAppBounds_resizeable_overridden_true() {
+        assertTrue(desktopModeCompatPolicy.shouldExcludeCaptionFromAppBounds(
+            setUpFreeformTask().apply { isResizeable = true })
+        )
+    }
+
+    fun setUpFreeformTask(): TaskInfo =
+        createFreeformTask().apply {
+            val componentName =
+                ComponentName.createRelative(
+                    mContext,
+                    DesktopModeCompatPolicyTest::class.java.simpleName
+                )
+            baseActivity = componentName
+            topActivityInfo = ActivityInfo().apply {
+                applicationInfo = ApplicationInfo().apply {
+                    packageName = componentName.packageName
+                    uid = Process.myUid()
+                }
+            }
+        }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt
index 33f14ac..391d462 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt
@@ -157,33 +157,33 @@
     }
 
     @Test
-    fun isDeviceEligibleForDesktopMode_configDEModeOn_returnsTrue() {
-        doReturn(true).whenever(mockResources).getBoolean(eq(R.bool.config_isDesktopModeSupported))
+    fun isInternalDisplayEligibleToHostDesktops_configDEModeOn_returnsTrue() {
+        doReturn(true).whenever(mockResources).getBoolean(eq(R.bool.config_canInternalDisplayHostDesktops))
 
-        assertThat(DesktopModeStatus.isDeviceEligibleForDesktopMode(mockContext)).isTrue()
+        assertThat(DesktopModeStatus.isInternalDisplayEligibleToHostDesktops(mockContext)).isTrue()
     }
 
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
     @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
     @Test
-    fun isDeviceEligibleForDesktopMode_supportFlagOff_returnsFalse() {
-        assertThat(DesktopModeStatus.isDeviceEligibleForDesktopMode(mockContext)).isFalse()
+    fun isInternalDisplayEligibleToHostDesktops_supportFlagOff_returnsFalse() {
+        assertThat(DesktopModeStatus.isInternalDisplayEligibleToHostDesktops(mockContext)).isFalse()
     }
 
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
     @Test
-    fun isDeviceEligibleForDesktopMode_supportFlagOn_returnsFalse() {
-        assertThat(DesktopModeStatus.isDeviceEligibleForDesktopMode(mockContext)).isFalse()
+    fun isInternalDisplayEligibleToHostDesktops_supportFlagOn_returnsFalse() {
+        assertThat(DesktopModeStatus.isInternalDisplayEligibleToHostDesktops(mockContext)).isFalse()
     }
 
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
     @Test
-    fun isDeviceEligibleForDesktopMode_supportFlagOn_configDevOptModeOn_returnsTrue() {
+    fun isInternalDisplayEligibleToHostDesktops_supportFlagOn_configDevOptModeOn_returnsTrue() {
         doReturn(true).whenever(mockResources).getBoolean(
             eq(R.bool.config_isDesktopModeDevOptionSupported)
         )
 
-        assertThat(DesktopModeStatus.isDeviceEligibleForDesktopMode(mockContext)).isTrue()
+        assertThat(DesktopModeStatus.isInternalDisplayEligibleToHostDesktops(mockContext)).isTrue()
     }
 
     @DisableFlags(Flags.FLAG_SHOW_DESKTOP_EXPERIENCE_DEV_OPTION)
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java
index b9d6a45..e5a6a6d 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java
@@ -360,7 +360,8 @@
             mStageCoordinator.onRecentsInSplitAnimationFinishing(false /* returnToApp */, commitWCT,
                     mock(SurfaceControl.Transaction.class));
         } else {
-            mStageCoordinator.onRecentsInSplitAnimationFinish(commitWCT,
+            mStageCoordinator.onRecentsInSplitAnimationFinishing(
+                    mStageCoordinator.wctIsReorderingSplitToTop(commitWCT), commitWCT,
                     mock(SurfaceControl.Transaction.class));
         }
         assertFalse(mStageCoordinator.isSplitScreenVisible());
@@ -430,7 +431,8 @@
             mStageCoordinator.onRecentsInSplitAnimationFinishing(true /* returnToApp */, restoreWCT,
                     mock(SurfaceControl.Transaction.class));
         } else {
-            mStageCoordinator.onRecentsInSplitAnimationFinish(restoreWCT,
+            mStageCoordinator.onRecentsInSplitAnimationFinishing(
+                    mStageCoordinator.wctIsReorderingSplitToTop(restoreWCT), restoreWCT,
                     mock(SurfaceControl.Transaction.class));
         }
         assertTrue(mStageCoordinator.isSplitScreenVisible());
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java
index 5851cbf..10c2862 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java
@@ -22,6 +22,7 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_50_50;
 import static com.android.wm.shell.shared.split.SplitScreenConstants.SPLIT_INDEX_UNDEFINED;
 import static com.android.wm.shell.shared.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
 import static com.android.wm.shell.shared.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
@@ -61,6 +62,9 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.view.SurfaceControl;
 import android.window.DisplayAreaInfo;
 import android.window.RemoteTransition;
@@ -71,6 +75,8 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 
+import com.android.internal.logging.InstanceId;
+import com.android.window.flags.Flags;
 import com.android.wm.shell.MockToken;
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
 import com.android.wm.shell.ShellTaskOrganizer;
@@ -96,6 +102,7 @@
 import com.android.wm.shell.transition.Transitions;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -111,6 +118,9 @@
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class StageCoordinatorTests extends ShellTestCase {
+    @Rule
+    public final SetFlagsRule setFlagsRule = new SetFlagsRule();
+
     @Mock
     private ShellTaskOrganizer mTaskOrganizer;
     @Mock
@@ -141,12 +151,15 @@
     private final Rect mBounds1 = new Rect(10, 20, 30, 40);
     private final Rect mBounds2 = new Rect(5, 10, 15, 20);
     private final Rect mRootBounds = new Rect(0, 0, 45, 60);
+    private final int mTaskId = 18;
 
-    private SurfaceControl mRootLeash;
-    private SurfaceControl mDividerLeash;
     private ActivityManager.RunningTaskInfo mRootTask;
     private StageCoordinator mStageCoordinator;
-    private Transitions mTransitions;
+    private SplitScreenTransitions mSplitScreenTransitions;
+    private SplitScreenListener mSplitScreenListener;
+    private IBinder mBinder;
+    private ActivityManager.RunningTaskInfo mRunningTaskInfo;
+    private RemoteTransition mRemoteTransition;
     private final TestShellExecutor mMainExecutor = new TestShellExecutor();
     private final ShellExecutor mAnimExecutor = new TestShellExecutor();
     private final Handler mMainHandler = new Handler(Looper.getMainLooper());
@@ -154,19 +167,35 @@
             DEFAULT_DISPLAY, 0);
     private final ActivityManager.RunningTaskInfo mMainChildTaskInfo =
             new TestRunningTaskInfoBuilder().setVisible(true).build();
+    private final ArgumentCaptor<WindowContainerTransaction> mWctCaptor =
+            ArgumentCaptor.forClass(WindowContainerTransaction.class);
+    private final WindowContainerTransaction mWct = spy(new WindowContainerTransaction());
 
     @Before
     @UiThreadTest
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mTransitions = createTestTransitions();
+        Transitions transitions = createTestTransitions();
+        WindowContainerToken token = mock(WindowContainerToken.class);
+        SurfaceControl dividerLeash = new SurfaceControl.Builder().setName("fakeDivider").build();
+
         mStageCoordinator = spy(new StageCoordinator(mContext, DEFAULT_DISPLAY, mSyncQueue,
                 mTaskOrganizer, mMainStage, mSideStage, mDisplayController, mDisplayImeController,
-                mDisplayInsetsController, mSplitLayout, mTransitions, mTransactionPool,
+                mDisplayInsetsController, mSplitLayout, transitions, mTransactionPool,
                 mMainExecutor, mMainHandler, Optional.empty(), mLaunchAdjacentController,
                 Optional.empty(), mSplitState, Optional.empty(), mRootTDAOrganizer));
+        mSplitScreenTransitions = spy(mStageCoordinator.getSplitTransitions());
+        mSplitScreenListener = mock(SplitScreenListener.class);
+        mStageCoordinator.setSplitTransitions(mSplitScreenTransitions);
+        mBinder = mock(IBinder.class);
+        mRunningTaskInfo = mock(ActivityManager.RunningTaskInfo.class);
+        mRemoteTransition = mock(RemoteTransition.class);
+        mRunningTaskInfo.token = token;
 
-        mDividerLeash = new SurfaceControl.Builder().setName("fakeDivider").build();
+        when(mRemoteTransition.getDebugName()).thenReturn("");
+        when(token.asBinder()).thenReturn(mBinder);
+        when(mRunningTaskInfo.getToken()).thenReturn(token);
+        when(mTaskOrganizer.getRunningTaskInfo(mTaskId)).thenReturn(mRunningTaskInfo);
         when(mRootTDAOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)).thenReturn(mDisplayAreaInfo);
 
         when(mSplitLayout.getTopLeftBounds()).thenReturn(mBounds1);
@@ -174,11 +203,11 @@
         when(mSplitLayout.getRootBounds()).thenReturn(mRootBounds);
         when(mSplitLayout.isLeftRightSplit()).thenReturn(false);
         when(mSplitLayout.applyTaskChanges(any(), any(), any())).thenReturn(true);
-        when(mSplitLayout.getDividerLeash()).thenReturn(mDividerLeash);
+        when(mSplitLayout.getDividerLeash()).thenReturn(dividerLeash);
 
         mRootTask = new TestRunningTaskInfoBuilder().build();
-        mRootLeash = new SurfaceControl.Builder().setName("test").build();
-        mStageCoordinator.onTaskAppeared(mRootTask, mRootLeash);
+        SurfaceControl rootLeash = new SurfaceControl.Builder().setName("test").build();
+        mStageCoordinator.onTaskAppeared(mRootTask, rootLeash);
 
         mSideStage.mRootTaskInfo = new TestRunningTaskInfoBuilder().build();
         mMainStage.mRootTaskInfo = new TestRunningTaskInfoBuilder().build();
@@ -196,14 +225,12 @@
     public void testMoveToStage_splitActiveBackground() {
         when(mStageCoordinator.isSplitActive()).thenReturn(true);
 
-        final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder().build();
-        final WindowContainerTransaction wct = spy(new WindowContainerTransaction());
+        mStageCoordinator.moveToStage(mRootTask, SPLIT_POSITION_BOTTOM_OR_RIGHT, mWct);
 
-        mStageCoordinator.moveToStage(task, SPLIT_POSITION_BOTTOM_OR_RIGHT, wct);
         // TODO(b/349828130) Address this once we remove index_undefined called
-        verify(mStageCoordinator).prepareEnterSplitScreen(eq(wct), eq(task),
+        verify(mStageCoordinator).prepareEnterSplitScreen(eq(mWct), eq(mRootTask),
                 eq(SPLIT_POSITION_BOTTOM_OR_RIGHT), eq(false), eq(SPLIT_INDEX_UNDEFINED));
-        verify(mMainStage).reparentTopTask(eq(wct));
+        verify(mMainStage).reparentTopTask(eq(mWct));
         assertEquals(SPLIT_POSITION_BOTTOM_OR_RIGHT, mStageCoordinator.getSideStagePosition());
         assertEquals(SPLIT_POSITION_TOP_OR_LEFT, mStageCoordinator.getMainStagePosition());
     }
@@ -215,25 +242,21 @@
         // Assume current side stage is top or left.
         mStageCoordinator.setSideStagePosition(SPLIT_POSITION_TOP_OR_LEFT, null);
 
-        final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder().build();
-        final WindowContainerTransaction wct = new WindowContainerTransaction();
+        mStageCoordinator.moveToStage(mRootTask, SPLIT_POSITION_BOTTOM_OR_RIGHT, mWct);
 
-        mStageCoordinator.moveToStage(task, SPLIT_POSITION_BOTTOM_OR_RIGHT, wct);
         // TODO(b/349828130) Address this once we remove index_undefined called
-        verify(mStageCoordinator).prepareEnterSplitScreen(eq(wct), eq(task),
+        verify(mStageCoordinator).prepareEnterSplitScreen(eq(mWct), eq(mRootTask),
                 eq(SPLIT_POSITION_BOTTOM_OR_RIGHT), eq(false), eq(SPLIT_INDEX_UNDEFINED));
         assertEquals(SPLIT_POSITION_BOTTOM_OR_RIGHT, mStageCoordinator.getMainStagePosition());
         assertEquals(SPLIT_POSITION_TOP_OR_LEFT, mStageCoordinator.getSideStagePosition());
     }
 
     @Test
-    public void testMoveToStage_splitInctive() {
-        final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder().build();
-        final WindowContainerTransaction wct = new WindowContainerTransaction();
+    public void testMoveToStage_splitInactive() {
+        mStageCoordinator.moveToStage(mRootTask, SPLIT_POSITION_BOTTOM_OR_RIGHT, mWct);
 
-        mStageCoordinator.moveToStage(task, SPLIT_POSITION_BOTTOM_OR_RIGHT, wct);
         // TODO(b/349828130) Address this once we remove index_undefined called
-        verify(mStageCoordinator).prepareEnterSplitScreen(eq(wct), eq(task),
+        verify(mStageCoordinator).prepareEnterSplitScreen(eq(mWct), eq(mRootTask),
                 eq(SPLIT_POSITION_BOTTOM_OR_RIGHT), eq(false), eq(SPLIT_INDEX_UNDEFINED));
         assertEquals(SPLIT_POSITION_BOTTOM_OR_RIGHT, mStageCoordinator.getSideStagePosition());
     }
@@ -248,25 +271,23 @@
     @Test
     public void testLayoutChanged_topLeftSplitPosition_updatesUnfoldStageBounds() {
         mStageCoordinator.setSideStagePosition(SPLIT_POSITION_TOP_OR_LEFT, null);
-        final SplitScreenListener listener = mock(SplitScreenListener.class);
-        mStageCoordinator.registerSplitScreenListener(listener);
-        clearInvocations(listener);
+        mStageCoordinator.registerSplitScreenListener(mSplitScreenListener);
+        clearInvocations(mSplitScreenListener);
 
         mStageCoordinator.onLayoutSizeChanged(mSplitLayout);
 
-        verify(listener).onSplitBoundsChanged(mRootBounds, mBounds2, mBounds1);
+        verify(mSplitScreenListener).onSplitBoundsChanged(mRootBounds, mBounds2, mBounds1);
     }
 
     @Test
     public void testLayoutChanged_bottomRightSplitPosition_updatesUnfoldStageBounds() {
         mStageCoordinator.setSideStagePosition(SPLIT_POSITION_BOTTOM_OR_RIGHT, null);
-        final SplitScreenListener listener = mock(SplitScreenListener.class);
-        mStageCoordinator.registerSplitScreenListener(listener);
-        clearInvocations(listener);
+        mStageCoordinator.registerSplitScreenListener(mSplitScreenListener);
+        clearInvocations(mSplitScreenListener);
 
         mStageCoordinator.onLayoutSizeChanged(mSplitLayout);
 
-        verify(listener).onSplitBoundsChanged(mRootBounds, mBounds1, mBounds2);
+        verify(mSplitScreenListener).onSplitBoundsChanged(mRootBounds, mBounds1, mBounds2);
     }
 
     @Test
@@ -367,13 +388,8 @@
     @Test
     public void testSplitIntentAndTaskWithPippedApp_launchFullscreen() {
         int taskId = 9;
-        SplitScreenTransitions splitScreenTransitions =
-                spy(mStageCoordinator.getSplitTransitions());
-        mStageCoordinator.setSplitTransitions(splitScreenTransitions);
         mStageCoordinator.setMixedHandler(mDefaultMixedHandler);
         PendingIntent pendingIntent = mock(PendingIntent.class);
-        RemoteTransition remoteTransition = mock(RemoteTransition.class);
-        when(remoteTransition.getDebugName()).thenReturn("");
         // Test launching second task full screen
         when(mDefaultMixedHandler.isIntentInPip(pendingIntent)).thenReturn(true);
         mStageCoordinator.startIntentAndTask(
@@ -384,9 +400,9 @@
                 null /*option2*/,
                 0 /*splitPosition*/,
                 1 /*snapPosition*/,
-                remoteTransition /*remoteTransition*/,
+                mRemoteTransition /*remoteTransition*/,
                 null /*instanceId*/);
-        verify(splitScreenTransitions, times(1))
+        verify(mSplitScreenTransitions, times(1))
                 .startFullscreenTransition(any(), any());
 
         // Test launching first intent fullscreen
@@ -400,22 +416,17 @@
                 null /*option2*/,
                 0 /*splitPosition*/,
                 1 /*snapPosition*/,
-                remoteTransition /*remoteTransition*/,
+                mRemoteTransition /*remoteTransition*/,
                 null /*instanceId*/);
-        verify(splitScreenTransitions, times(2))
+        verify(mSplitScreenTransitions, times(2))
                 .startFullscreenTransition(any(), any());
     }
 
     @Test
     public void testSplitIntentsWithPippedApp_launchFullscreen() {
-        SplitScreenTransitions splitScreenTransitions =
-                spy(mStageCoordinator.getSplitTransitions());
-        mStageCoordinator.setSplitTransitions(splitScreenTransitions);
         mStageCoordinator.setMixedHandler(mDefaultMixedHandler);
         PendingIntent pendingIntent = mock(PendingIntent.class);
         PendingIntent pendingIntent2 = mock(PendingIntent.class);
-        RemoteTransition remoteTransition = mock(RemoteTransition.class);
-        when(remoteTransition.getDebugName()).thenReturn("");
         // Test launching second task full screen
         when(mDefaultMixedHandler.isIntentInPip(pendingIntent)).thenReturn(true);
         mStageCoordinator.startIntents(
@@ -429,9 +440,9 @@
                 new Bundle(),
                 0 /*splitPosition*/,
                 1 /*snapPosition*/,
-                remoteTransition /*remoteTransition*/,
+                mRemoteTransition /*remoteTransition*/,
                 null /*instanceId*/);
-        verify(splitScreenTransitions, times(1))
+        verify(mSplitScreenTransitions, times(1))
                 .startFullscreenTransition(any(), any());
 
         // Test launching first intent fullscreen
@@ -448,35 +459,54 @@
                 new Bundle(),
                 0 /*splitPosition*/,
                 1 /*snapPosition*/,
-                remoteTransition /*remoteTransition*/,
+                mRemoteTransition /*remoteTransition*/,
                 null /*instanceId*/);
-        verify(splitScreenTransitions, times(2))
+        verify(mSplitScreenTransitions, times(2))
                 .startFullscreenTransition(any(), any());
     }
 
-
     @Test
     public void startTask_ensureWindowingModeCleared() {
-        SplitScreenTransitions splitScreenTransitions =
-                spy(mStageCoordinator.getSplitTransitions());
-        mStageCoordinator.setSplitTransitions(splitScreenTransitions);
-        ArgumentCaptor<WindowContainerTransaction> wctCaptor =
-                ArgumentCaptor.forClass(WindowContainerTransaction.class);
-        int taskId = 18;
-        IBinder binder = mock(IBinder.class);
-        ActivityManager.RunningTaskInfo rti = mock(ActivityManager.RunningTaskInfo.class);
-        WindowContainerToken mockToken = mock(WindowContainerToken.class);
-        when(mockToken.asBinder()).thenReturn(binder);
-        when(rti.getToken()).thenReturn(mockToken);
-        when(mTaskOrganizer.getRunningTaskInfo(taskId)).thenReturn(rti);
-        mStageCoordinator.startTask(taskId, SPLIT_POSITION_TOP_OR_LEFT, null /*options*/,
+        mStageCoordinator.startTask(mTaskId, SPLIT_POSITION_TOP_OR_LEFT, null /*options*/,
                 null, SPLIT_INDEX_UNDEFINED);
-        verify(splitScreenTransitions).startEnterTransition(anyInt(),
-                wctCaptor.capture(), any(), any(), anyInt(), anyBoolean());
+        verify(mSplitScreenTransitions).startEnterTransition(anyInt(),
+                mWctCaptor.capture(), any(), any(), anyInt(), anyBoolean());
 
-        int windowingMode = wctCaptor.getValue().getChanges().get(binder).getWindowingMode();
+        int windowingMode = mWctCaptor.getValue().getChanges().get(mBinder).getWindowingMode();
         assertEquals(windowingMode, WINDOWING_MODE_UNDEFINED);
     }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_FULL_SCREEN_WINDOW_ON_REMOVING_SPLIT_SCREEN_STAGE_BUGFIX)
+    public void startTasksOnSingleFreeformWindow_ensureWindowingModeClearedAndLaunchFullScreen() {
+        mDisplayAreaInfo.configuration.windowConfiguration.setWindowingMode(
+                WINDOWING_MODE_FREEFORM);
+        when(mRunningTaskInfo.getWindowingMode()).thenReturn(WINDOWING_MODE_FREEFORM);
+
+        mStageCoordinator.startTasks(mTaskId, null, INVALID_TASK_ID, null,
+                SPLIT_POSITION_TOP_OR_LEFT, SNAP_TO_2_50_50, mRemoteTransition,
+                InstanceId.fakeInstanceId(0));
+
+        verify(mSplitScreenTransitions).startFullscreenTransition(mWctCaptor.capture(), any());
+        int windowingMode = mWctCaptor.getValue().getChanges().get(mBinder).getWindowingMode();
+        assertEquals(windowingMode, WINDOWING_MODE_UNDEFINED);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_FULL_SCREEN_WINDOW_ON_REMOVING_SPLIT_SCREEN_STAGE_BUGFIX)
+    public void startTasksOnSingleFreeformWindow_flagDisabled_noChangeToWindowingModeInWct() {
+        mDisplayAreaInfo.configuration.windowConfiguration.setWindowingMode(
+                WINDOWING_MODE_FREEFORM);
+        when(mRunningTaskInfo.getWindowingMode()).thenReturn(WINDOWING_MODE_FREEFORM);
+
+        mStageCoordinator.startTasks(mTaskId, null, INVALID_TASK_ID, null,
+                SPLIT_POSITION_TOP_OR_LEFT, SNAP_TO_2_50_50, mRemoteTransition,
+                InstanceId.fakeInstanceId(0));
+
+        verify(mSplitScreenTransitions).startFullscreenTransition(mWctCaptor.capture(), any());
+        assertThat(mWctCaptor.getValue().getChanges()).isEmpty();
+    }
+
     @Test
     public void testDismiss_freeformDisplay() {
         mDisplayAreaInfo.configuration.windowConfiguration.setWindowingMode(
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/DefaultTransitionHandlerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/DefaultTransitionHandlerTest.java
index 82392e0..18fdbef 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/DefaultTransitionHandlerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/DefaultTransitionHandlerTest.java
@@ -48,6 +48,7 @@
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
 
+import com.android.internal.jank.InteractionJankMonitor;
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
 import com.android.wm.shell.ShellTestCase;
 import com.android.wm.shell.TestShellExecutor;
@@ -96,7 +97,7 @@
         mTransitionHandler = new DefaultTransitionHandler(
                 mContext, mShellInit, mDisplayController,
                 mTransactionPool, mMainExecutor, mMainHandler, mAnimExecutor,
-                mRootTaskDisplayAreaOrganizer);
+                mRootTaskDisplayAreaOrganizer, mock(InteractionJankMonitor.class));
         mShellInit.init();
     }
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelAppHandleOnlyTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelAppHandleOnlyTest.kt
index 53ae967..067dcec 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelAppHandleOnlyTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelAppHandleOnlyTest.kt
@@ -73,7 +73,7 @@
                 .spyStatic(DesktopModeStatus::class.java)
                 .spyStatic(DragPositioningCallbackUtility::class.java)
                 .startMocking()
-        doReturn(false).`when` { DesktopModeStatus.isDeviceEligibleForDesktopMode(any()) }
+        doReturn(false).`when` { DesktopModeStatus.canEnterDesktopMode(any()) }
         doReturn(true).`when` { DesktopModeStatus.overridesShowAppHandle(any())}
         setUpCommon()
         whenever(mockDisplayController.getDisplay(anyInt())).thenReturn(mockDisplay)
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
index f15418ad..da41a23 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
@@ -28,7 +28,6 @@
 import android.content.Context
 import android.content.Intent
 import android.content.Intent.ACTION_MAIN
-import android.content.pm.PackageManager
 import android.graphics.Rect
 import android.graphics.Region
 import android.hardware.display.DisplayManager
@@ -116,7 +115,8 @@
                 .spyStatic(DragPositioningCallbackUtility::class.java)
                 .startMocking()
 
-        doReturn(true).`when` { DesktopModeStatus.isDeviceEligibleForDesktopMode(Mockito.any()) }
+        doReturn(true).`when` { DesktopModeStatus.canInternalDisplayHostDesktops(Mockito.any()) }
+        doReturn(true).`when` { DesktopModeStatus.canEnterDesktopMode(Mockito.any()) }
         doReturn(false).`when` { DesktopModeStatus.overridesShowAppHandle(Mockito.any()) }
 
         setUpCommon()
@@ -309,14 +309,10 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY)
     fun testDecorationIsNotCreatedForDefaultHomePackage() {
-        val packageManager: PackageManager = org.mockito.kotlin.mock()
-        val homeActivities = ComponentName("defaultHomePackage", /* class */ "")
         val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN).apply {
-            baseActivity = homeActivities
+            baseActivity = homeComponentName
             isTopActivityNoDisplay = false
         }
-        mContext.setMockPackageManager(packageManager)
-        whenever(packageManager.getHomeActivities(any())).thenReturn(homeActivities)
 
         onTaskOpening(task)
 
@@ -384,7 +380,7 @@
         whenever(DesktopModeStatus.enforceDeviceRestrictions()).thenReturn(true)
 
         val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN)
-        doReturn(true).`when` { DesktopModeStatus.isDeviceEligibleForDesktopMode(any()) }
+        doReturn(true).`when` { DesktopModeStatus.canInternalDisplayHostDesktops(any()) }
         setUpMockDecorationsForTasks(task)
 
         onTaskOpening(task)
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt
index 7468c54..e40034b 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt
@@ -20,7 +20,9 @@
 import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
 import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW
 import android.app.WindowConfiguration.WindowingMode
+import android.content.ComponentName
 import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
 import android.graphics.Rect
 import android.hardware.input.InputManager
 import android.os.Handler
@@ -146,8 +148,10 @@
     protected val mockDesktopRepository: DesktopRepository = mock<DesktopRepository>()
     protected val mockRecentsTransitionHandler = mock<RecentsTransitionHandler>()
     protected val motionEvent = mock<MotionEvent>()
-    val displayLayout = mock<DisplayLayout>()
-    val display = mock<Display>()
+    private val displayLayout = mock<DisplayLayout>()
+    private val display = mock<Display>()
+    private val packageManager = mock<PackageManager>()
+    protected val homeComponentName = ComponentName(HOME_LAUNCHER_PACKAGE_NAME, /* class */ "")
     protected lateinit var spyContext: TestableContext
     private lateinit var desktopModeEventLogger: DesktopModeEventLogger
 
@@ -178,7 +182,7 @@
         whenever(mockDisplayController.getDisplay(any())).thenReturn(display)
         whenever(mockDesktopUserRepositories.getProfile(anyInt()))
             .thenReturn(mockDesktopRepository)
-        desktopModeCompatPolicy = DesktopModeCompatPolicy(context)
+        desktopModeCompatPolicy = DesktopModeCompatPolicy(spyContext)
         desktopModeWindowDecorViewModel = DesktopModeWindowDecorViewModel(
             spyContext,
             testShellExecutor,
@@ -273,6 +277,8 @@
         whenever(displayLayout.getStableBounds(any())).thenAnswer { i ->
             (i.arguments.first() as Rect).set(STABLE_BOUNDS)
         }
+        spyContext.setMockPackageManager(packageManager)
+        whenever(packageManager.getHomeActivities(ArrayList())).thenReturn(homeComponentName)
     }
 
     @After
@@ -310,7 +316,7 @@
             mockDesktopModeWindowDecorFactory.create(
                 any(), any(), any(), any(), any(), any(), any(), eq(task), any(), any(), any(),
                 any(), any(), any(), any(), any(), any(), any(), any(), any(), any(), any(),
-                any(), any())
+                any(), any(), any())
         ).thenReturn(decoration)
         decoration.mTaskInfo = task
         whenever(decoration.user).thenReturn(mockUserHandle)
@@ -354,5 +360,6 @@
         val STABLE_INSETS = Rect(0, 100, 0, 0)
         val INITIAL_BOUNDS = Rect(0, 0, 100, 100)
         val STABLE_BOUNDS = Rect(0, 0, 1000, 1000)
+        val HOME_LAUNCHER_PACKAGE_NAME = "com.android.launcher"
     }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java
index 18a780b..71c821d 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java
@@ -108,6 +108,7 @@
 import com.android.wm.shell.desktopmode.DesktopRepository;
 import com.android.wm.shell.desktopmode.DesktopUserRepositories;
 import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository;
+import com.android.wm.shell.shared.desktopmode.DesktopModeCompatPolicy;
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
 import com.android.wm.shell.splitscreen.SplitScreenController;
 import com.android.wm.shell.windowdecor.WindowDecoration.RelayoutParams;
@@ -167,6 +168,7 @@
     private static final boolean DEFAULT_IS_IN_FULL_IMMERSIVE_MODE = false;
     private static final boolean DEFAULT_HAS_GLOBAL_FOCUS = true;
     private static final boolean DEFAULT_SHOULD_IGNORE_CORNER_RADIUS = false;
+    private static final boolean DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS = false;
 
     @Mock
     private DisplayController mMockDisplayController;
@@ -236,6 +238,8 @@
     private DesktopRepository mDesktopRepository;
     @Mock
     private WindowDecorTaskResourceLoader mMockTaskResourceLoader;
+    @Mock
+    private DesktopModeCompatPolicy mDesktopModeCompatPolicy;
     @Captor
     private ArgumentCaptor<Function1<Boolean, Unit>> mOnMaxMenuHoverChangeListener;
     @Captor
@@ -413,7 +417,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                /* shouldIgnoreCornerRadius= */ true);
+                /* shouldIgnoreCornerRadius= */ true,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mCornerRadius).isEqualTo(INVALID_CORNER_RADIUS);
     }
@@ -592,6 +597,73 @@
     }
 
     @Test
+    @EnableFlags({Flags.FLAG_ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION,
+            Flags.FLAG_ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION_ALWAYS})
+    public void updateRelayoutParams_excludeCaptionTrue_forceConsumptionFalse() {
+        final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+        taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+        taskInfo.taskDescription.setTopOpaqueSystemBarsAppearance(0);
+        final RelayoutParams relayoutParams = new RelayoutParams();
+
+        DesktopModeWindowDecoration.updateRelayoutParams(
+                relayoutParams,
+                mTestableContext,
+                taskInfo,
+                mMockSplitScreenController,
+                DEFAULT_APPLY_START_TRANSACTION_ON_DRAW,
+                DEFAULT_SHOULD_SET_TASK_POSITIONING_AND_CROP,
+                DEFAULT_IS_STATUSBAR_VISIBLE,
+                DEFAULT_IS_KEYGUARD_VISIBLE_AND_OCCLUDED,
+                DEFAULT_IS_IN_FULL_IMMERSIVE_MODE,
+                new InsetsState(),
+                DEFAULT_HAS_GLOBAL_FOCUS,
+                mExclusionRegion,
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                /* shouldExcludeCaptionFromAppBounds */ true);
+
+        // Force consuming flags are disabled.
+        assertThat((relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING) == 0).isTrue();
+        assertThat(
+                (relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR) == 0)
+                .isTrue();
+        // Exclude caption from app bounds is true.
+        assertThat(relayoutParams.mShouldSetAppBounds).isTrue();
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION,
+            Flags.FLAG_ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION_ALWAYS})
+    public void updateRelayoutParams_excludeCaptionFalse_forceConsumptionTrue() {
+        final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+        taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+        taskInfo.taskDescription.setTopOpaqueSystemBarsAppearance(0);
+        final RelayoutParams relayoutParams = new RelayoutParams();
+
+        DesktopModeWindowDecoration.updateRelayoutParams(
+                relayoutParams,
+                mTestableContext,
+                taskInfo,
+                mMockSplitScreenController,
+                DEFAULT_APPLY_START_TRANSACTION_ON_DRAW,
+                DEFAULT_SHOULD_SET_TASK_POSITIONING_AND_CROP,
+                DEFAULT_IS_STATUSBAR_VISIBLE,
+                DEFAULT_IS_KEYGUARD_VISIBLE_AND_OCCLUDED,
+                DEFAULT_IS_IN_FULL_IMMERSIVE_MODE,
+                new InsetsState(),
+                DEFAULT_HAS_GLOBAL_FOCUS,
+                mExclusionRegion,
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
+
+        assertThat((relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING) != 0).isTrue();
+        assertThat(
+                (relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR) != 0)
+                .isTrue();
+        // Exclude caption from app bounds is false.
+        assertThat(relayoutParams.mShouldSetAppBounds).isFalse();
+    }
+
+    @Test
     @EnableFlags(Flags.FLAG_ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION_ALWAYS)
     public void updateRelayoutParams_header_addsForceConsumingCaptionBar() {
         final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
@@ -658,7 +730,8 @@
                 insetsState,
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         // Takes status bar inset as padding, ignores caption bar inset.
         assertThat(relayoutParams.mCaptionTopPadding).isEqualTo(50);
@@ -684,7 +757,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsInsetSource).isFalse();
     }
@@ -709,7 +783,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         // Header is always shown because it's assumed the status bar is always visible.
         assertThat(relayoutParams.mIsCaptionVisible).isTrue();
@@ -734,7 +809,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsCaptionVisible).isTrue();
     }
@@ -758,7 +834,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsCaptionVisible).isFalse();
     }
@@ -782,7 +859,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsCaptionVisible).isFalse();
     }
@@ -807,7 +885,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsCaptionVisible).isTrue();
 
@@ -824,7 +903,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsCaptionVisible).isFalse();
     }
@@ -849,7 +929,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
 
         assertThat(relayoutParams.mIsCaptionVisible).isFalse();
     }
@@ -1513,7 +1594,8 @@
                 new InsetsState(),
                 DEFAULT_HAS_GLOBAL_FOCUS,
                 mExclusionRegion,
-                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS);
+                DEFAULT_SHOULD_IGNORE_CORNER_RADIUS,
+                DEFAULT_SHOULD_EXCLUDE_CAPTION_FROM_APP_BOUNDS);
     }
 
     private DesktopModeWindowDecoration createWindowDecoration(
@@ -1561,7 +1643,8 @@
                 WindowContainerTransaction::new, SurfaceControl::new,
                 new WindowManagerWrapper(mMockWindowManager), mMockSurfaceControlViewHostFactory,
                 mMockWindowDecorViewHostSupplier, maximizeMenuFactory, mMockHandleMenuFactory,
-                mMockMultiInstanceHelper, mMockCaptionHandleRepository, mDesktopModeEventLogger);
+                mMockMultiInstanceHelper, mMockCaptionHandleRepository, mDesktopModeEventLogger,
+                mDesktopModeCompatPolicy);
         windowDecor.setCaptionListeners(mMockTouchEventListener, mMockTouchEventListener,
                 mMockTouchEventListener, mMockTouchEventListener);
         windowDecor.setExclusionRegionListener(mMockExclusionRegionListener);
@@ -1592,6 +1675,7 @@
                 "DesktopModeWindowDecorationTests");
         taskInfo.baseActivity = new ComponentName("com.android.wm.shell.windowdecor",
                 "DesktopModeWindowDecorationTests");
+        taskInfo.topActivityInfo = createActivityInfo();
         return taskInfo;
 
     }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt
index 0615c1d..63babc5 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt
@@ -51,11 +51,10 @@
 import java.util.function.Supplier
 import junit.framework.Assert
 import org.junit.Before
-import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.kotlin.any
 import org.mockito.Mock
-import org.mockito.Mockito.any
 import org.mockito.Mockito.argThat
 import org.mockito.Mockito.doAnswer
 import org.mockito.Mockito.eq
@@ -93,6 +92,8 @@
     @Mock private lateinit var mockFinishCallback: TransitionFinishCallback
     @Mock private lateinit var mockTransitions: Transitions
     @Mock private lateinit var mockInteractionJankMonitor: InteractionJankMonitor
+    @Mock private lateinit var mockSurfaceControl: SurfaceControl
+
     private lateinit var resources: TestableResources
     private lateinit var spyDisplayLayout0: DisplayLayout
     private lateinit var spyDisplayLayout1: DisplayLayout
@@ -145,6 +146,8 @@
             .`when`(spyDisplayLayout0)
             .getStableBounds(any())
         `when`(mockTransactionFactory.get()).thenReturn(mockTransaction)
+        `when`(mockDesktopWindowDecoration.leash).thenReturn(mockSurfaceControl)
+        `when`(mockTransaction.setPosition(any(), any(), any())).thenReturn(mockTransaction)
         mockDesktopWindowDecoration.mTaskInfo =
             ActivityManager.RunningTaskInfo().apply {
                 taskId = TASK_ID
@@ -207,7 +210,6 @@
     }
 
     @Test
-    @Ignore("Causing presubmit failure b/391717499")
     fun testDragResize_movesTask_doesNotShowResizeVeil() = runOnUiThread {
         taskPositioner.onDragPositioningStart(
             CTRL_TYPE_UNDEFINED,
@@ -247,7 +249,6 @@
     }
 
     @Test
-    @Ignore("Causing presubmit failure b/391717499")
     fun testDragResize_movesTaskToNewDisplay() = runOnUiThread {
         taskPositioner.onDragPositioningStart(
             CTRL_TYPE_UNDEFINED,
@@ -373,7 +374,6 @@
     }
 
     @Test
-    @Ignore("Causing presubmit failure b/391717499")
     fun testDragResize_drag_setBoundsNotRunIfDragEndsInDisallowedEndArea() = runOnUiThread {
         taskPositioner.onDragPositioningStart(
             CTRL_TYPE_UNDEFINED, // drag
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
index 3a8dcd6..aa1f82e 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
@@ -831,6 +831,54 @@
     }
 
     @Test
+    public void testRelayout_setAppBoundsIfNeeded() {
+        final Display defaultDisplay = mock(Display.class);
+        doReturn(defaultDisplay).when(mMockDisplayController).getDisplay(Display.DEFAULT_DISPLAY);
+        final WindowContainerToken token = TestRunningTaskInfoBuilder.createMockWCToken();
+        final TestRunningTaskInfoBuilder builder = new TestRunningTaskInfoBuilder()
+                .setDisplayId(Display.DEFAULT_DISPLAY)
+                .setVisible(true);
+
+        final ActivityManager.RunningTaskInfo taskInfo =
+                builder.setToken(token).setBounds(TASK_BOUNDS).build();
+        final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
+        mRelayoutParams.mIsCaptionVisible = true;
+        mRelayoutParams.mShouldSetAppBounds = true;
+
+        windowDecor.relayout(taskInfo, true /* hasGlobalFocus */);
+        final Rect appBounds = new Rect(TASK_BOUNDS);
+        appBounds.top += WindowDecoration.loadDimensionPixelSize(
+                windowDecor.mDecorWindowContext.getResources(), mRelayoutParams.mCaptionHeightId);
+        verify(mMockWindowContainerTransaction).setAppBounds(eq(token), eq(appBounds));
+    }
+
+    @Test
+    public void testRelayout_setAppBoundsIfNeeded_reset() {
+        final Display defaultDisplay = mock(Display.class);
+        doReturn(defaultDisplay).when(mMockDisplayController).getDisplay(Display.DEFAULT_DISPLAY);
+        final WindowContainerToken token = TestRunningTaskInfoBuilder.createMockWCToken();
+        final TestRunningTaskInfoBuilder builder = new TestRunningTaskInfoBuilder()
+                .setDisplayId(Display.DEFAULT_DISPLAY)
+                .setVisible(true);
+
+        final ActivityManager.RunningTaskInfo taskInfo =
+                builder.setToken(token).setBounds(TASK_BOUNDS).build();
+        final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
+
+        mRelayoutParams.mIsCaptionVisible = true;
+        mRelayoutParams.mIsInsetSource = true;
+        mRelayoutParams.mShouldSetAppBounds = true;
+        windowDecor.relayout(taskInfo, true /* hasGlobalFocus */);
+
+        mRelayoutParams.mIsCaptionVisible = true;
+        mRelayoutParams.mIsInsetSource = false;
+        mRelayoutParams.mShouldSetAppBounds = false;
+        windowDecor.relayout(taskInfo, true /* hasGlobalFocus */);
+
+        verify(mMockWindowContainerTransaction).setAppBounds(eq(token), eq(new Rect()));
+    }
+
+    @Test
     public void testTaskPositionAndCropNotSetWhenFalse() {
         final Display defaultDisplay = mock(Display.class);
         doReturn(defaultDisplay).when(mMockDisplayController)
diff --git a/libs/androidfw/Idmap.cpp b/libs/androidfw/Idmap.cpp
index 3ecd82b..095be57 100644
--- a/libs/androidfw/Idmap.cpp
+++ b/libs/androidfw/Idmap.cpp
@@ -55,6 +55,13 @@
   // without having to read/store each header entry separately.
 };
 
+struct Idmap_constraint {
+  // Constraint type can be TYPE_DISPLAY_ID or TYP_DEVICE_ID, please refer
+  // to ConstraintType in OverlayConstraint.java
+  uint32_t constraint_type;
+  uint32_t constraint_value;
+};
+
 struct Idmap_data_header {
   uint32_t target_entry_count;
   uint32_t target_inline_entry_count;
@@ -254,13 +261,18 @@
 #endif
 
 LoadedIdmap::LoadedIdmap(const std::string& idmap_path, const Idmap_header* header,
-                         const Idmap_data_header* data_header, Idmap_target_entries target_entries,
+                         const Idmap_constraint* constraints,
+                         uint32_t constraints_count,
+                         const Idmap_data_header* data_header,
+                         Idmap_target_entries target_entries,
                          Idmap_target_inline_entries target_inline_entries,
                          const Idmap_target_entry_inline_value* inline_entry_values,
                          const ConfigDescription* configs, Idmap_overlay_entries overlay_entries,
                          std::unique_ptr<ResStringPool>&& string_pool,
                          std::string_view overlay_apk_path, std::string_view target_apk_path)
     : header_(header),
+      constraints_(constraints),
+      constraints_count_(constraints_count),
       data_header_(data_header),
       target_entries_(target_entries),
       target_inline_entries_(target_inline_entries),
@@ -298,9 +310,9 @@
     return {};
   }
   std::optional<std::string_view> target_path = ReadString(&data_ptr, &data_size, "target path");
-    if (!target_path) {
-      return {};
-    }
+  if (!target_path) {
+    return {};
+  }
   std::optional<std::string_view> overlay_path = ReadString(&data_ptr, &data_size, "overlay path");
   if (!overlay_path) {
     return {};
@@ -310,6 +322,17 @@
     return {};
   }
 
+  auto constraints_count = ReadType<uint32_t>(&data_ptr, &data_size, "constraints count");
+  if (!constraints_count) {
+    return {};
+  }
+  auto constraints = *constraints_count > 0 ?
+      ReadType<Idmap_constraint>(&data_ptr, &data_size, "constraints", *constraints_count)
+      : nullptr;
+  if (*constraints_count > 0 && !constraints) {
+    return {};
+  }
+
   // Parse the idmap data blocks. Currently idmap2 can only generate one data block.
   auto data_header = ReadType<Idmap_data_header>(&data_ptr, &data_size, "data header");
   if (data_header == nullptr) {
@@ -376,9 +399,10 @@
 
   // Can't use make_unique because LoadedIdmap constructor is private.
   return std::unique_ptr<LoadedIdmap>(
-      new LoadedIdmap(std::string(idmap_path), header, data_header, target_entries,
-                      target_inline_entries, target_inline_entry_values, configurations,
-                      overlay_entries, std::move(idmap_string_pool), *overlay_path, *target_path));
+      new LoadedIdmap(std::string(idmap_path), header, constraints, *constraints_count,
+                      data_header, target_entries, target_inline_entries,
+                      target_inline_entry_values,configurations, overlay_entries,
+                      std::move(idmap_string_pool),*overlay_path, *target_path));
 }
 
 bool LoadedIdmap::IsUpToDate() const {
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index de9991a..978bc76 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -290,11 +290,11 @@
     }
 
     const uint32_t version = htodl(*(reinterpret_cast<const uint32_t*>(idmap) + 1));
-    if (version != ResTable::IDMAP_CURRENT_VERSION) {
+    if (version != kIdmapCurrentVersion) {
         // We are strict about versions because files with this format are
         // auto-generated and don't need backwards compatibility.
         ALOGW("idmap: version mismatch in header (is 0x%08x, expected 0x%08x)",
-                version, ResTable::IDMAP_CURRENT_VERSION);
+                version, kIdmapCurrentVersion);
         return false;
     }
     return true;
@@ -400,14 +400,18 @@
         return UNKNOWN_ERROR;
     }
 
-    size -= ResTable::IDMAP_HEADER_SIZE_BYTES;
+    size_t sizeOfHeaderAndConstraints = ResTable::IDMAP_HEADER_SIZE_BYTES +
+            // This accounts for zero constraints, and hence takes only 4 bytes for
+            // the constraints count.
+            ResTable::IDMAP_CONSTRAINTS_COUNT_SIZE_BYTES;
+    size -= sizeOfHeaderAndConstraints;
     if (size < sizeof(uint16_t) * 2) {
         ALOGE("idmap: too small to contain any mapping");
         return UNKNOWN_ERROR;
     }
 
     const uint16_t* data = reinterpret_cast<const uint16_t*>(
-            reinterpret_cast<const uint8_t*>(idmap) + ResTable::IDMAP_HEADER_SIZE_BYTES);
+            reinterpret_cast<const uint8_t*>(idmap) + sizeOfHeaderAndConstraints);
 
     uint16_t targetPackageId = dtohs(*(data++));
     if (targetPackageId == 0 || targetPackageId > 255) {
@@ -7492,7 +7496,7 @@
     // write idmap header
     uint32_t* data = reinterpret_cast<uint32_t*>(*outData);
     *data++ = htodl(IDMAP_MAGIC); // write: magic
-    *data++ = htodl(ResTable::IDMAP_CURRENT_VERSION); // write: version
+    *data++ = htodl(kIdmapCurrentVersion); // write: version
     *data++ = htodl(targetCrc); // write: target crc
     *data++ = htodl(overlayCrc); // write: overlay crc
 
@@ -7507,6 +7511,9 @@
     }
     data += (2 * 256) / sizeof(uint32_t);
 
+    // write zero constraints count (no constraints)
+    *data++ = htodl(0);
+
     // write idmap data header
     uint16_t* typeData = reinterpret_cast<uint16_t*>(data);
     *typeData++ = htods(targetPackageStruct->id); // write: target package id
diff --git a/libs/androidfw/include/androidfw/Idmap.h b/libs/androidfw/include/androidfw/Idmap.h
index ac75eb3..d1db13f 100644
--- a/libs/androidfw/include/androidfw/Idmap.h
+++ b/libs/androidfw/include/androidfw/Idmap.h
@@ -35,6 +35,7 @@
 class LoadedIdmap;
 class IdmapResMap;
 struct Idmap_header;
+struct Idmap_constraint;
 struct Idmap_data_header;
 struct Idmap_target_entry;
 struct Idmap_target_entry_inline;
@@ -203,6 +204,8 @@
   LoadedIdmap() = default;
 
   const Idmap_header* header_;
+  const Idmap_constraint* constraints_;
+  uint32_t constraints_count_;
   const Idmap_data_header* data_header_;
   Idmap_target_entries target_entries_;
   Idmap_target_inline_entries target_inline_entries_;
@@ -220,7 +223,10 @@
   DISALLOW_COPY_AND_ASSIGN(LoadedIdmap);
 
   explicit LoadedIdmap(const std::string& idmap_path, const Idmap_header* header,
-                       const Idmap_data_header* data_header, Idmap_target_entries target_entries,
+                       const Idmap_constraint* constraints,
+                       uint32_t constraints_count,
+                       const Idmap_data_header* data_header,
+                       Idmap_target_entries target_entries,
                        Idmap_target_inline_entries target_inline_entries,
                        const Idmap_target_entry_inline_value* inline_entry_values_,
                        const ConfigDescription* configs, Idmap_overlay_entries overlay_entries,
diff --git a/libs/androidfw/include/androidfw/ResourceTypes.h b/libs/androidfw/include/androidfw/ResourceTypes.h
index e330410..8b2871c 100644
--- a/libs/androidfw/include/androidfw/ResourceTypes.h
+++ b/libs/androidfw/include/androidfw/ResourceTypes.h
@@ -48,7 +48,7 @@
 namespace android {
 
 constexpr const uint32_t kIdmapMagic = 0x504D4449u;
-constexpr const uint32_t kIdmapCurrentVersion = 0x0000000Au;
+constexpr const uint32_t kIdmapCurrentVersion = 0x0000000Bu;
 
 // This must never change.
 constexpr const uint32_t kFabricatedOverlayMagic = 0x4f525246; // FRRO (big endian)
@@ -2267,7 +2267,7 @@
             void** outData, size_t* outSize) const;
 
     static const size_t IDMAP_HEADER_SIZE_BYTES = 4 * sizeof(uint32_t) + 2 * 256;
-    static const uint32_t IDMAP_CURRENT_VERSION = 0x00000001;
+    static const size_t IDMAP_CONSTRAINTS_COUNT_SIZE_BYTES = sizeof(uint32_t);
 
     // Retrieve idmap meta-data.
     //
diff --git a/libs/androidfw/tests/data/overlay/overlay.idmap b/libs/androidfw/tests/data/overlay/overlay.idmap
index 7e4b261..6bd57c8 100644
--- a/libs/androidfw/tests/data/overlay/overlay.idmap
+++ b/libs/androidfw/tests/data/overlay/overlay.idmap
Binary files differ
diff --git a/libs/hwui/FrameInfo.cpp b/libs/hwui/FrameInfo.cpp
index a958a09..36feabd 100644
--- a/libs/hwui/FrameInfo.cpp
+++ b/libs/hwui/FrameInfo.cpp
@@ -32,8 +32,9 @@
                                 "PerformTraversalsStart",
                                 "DrawStart",
                                 "FrameDeadline",
-                                "FrameInterval",
                                 "FrameStartTime",
+                                "FrameInterval",
+                                "WorkloadTarget",
                                 "SyncQueued",
                                 "SyncStart",
                                 "IssueDrawCommandsStart",
@@ -48,7 +49,7 @@
 
 };
 
-static_assert(static_cast<int>(FrameInfoIndex::NumIndexes) == 23,
+static_assert(static_cast<int>(FrameInfoIndex::NumIndexes) == 24,
               "Must update value in FrameMetrics.java#FRAME_STATS_COUNT (and here)");
 
 void FrameInfo::importUiThreadInfo(int64_t* info) {
diff --git a/libs/hwui/FrameInfo.h b/libs/hwui/FrameInfo.h
index f7ad139..61c30b8 100644
--- a/libs/hwui/FrameInfo.h
+++ b/libs/hwui/FrameInfo.h
@@ -30,7 +30,8 @@
 namespace android {
 namespace uirenderer {
 
-static constexpr size_t UI_THREAD_FRAME_INFO_SIZE = 12;
+// This value must be in sync with `FRAME_INFO_SIZE` in FrameInfo.Java
+static constexpr size_t UI_THREAD_FRAME_INFO_SIZE = 13;
 
 enum class FrameInfoIndex {
     Flags = 0,
@@ -47,6 +48,11 @@
     FrameInterval,
     // End of UI frame info
 
+    // The target workload duration based on the original frame deadline and
+    // and intended vsync. Counted in UI_THREAD_FRAME_INFO_SIZE so its value
+    // can be set in setVsync().
+    WorkloadTarget,
+
     SyncQueued,
 
     SyncStart,
@@ -109,6 +115,7 @@
         set(FrameInfoIndex::FrameStartTime) = vsyncTime;
         set(FrameInfoIndex::FrameDeadline) = frameDeadline;
         set(FrameInfoIndex::FrameInterval) = frameInterval;
+        set(FrameInfoIndex::WorkloadTarget) = frameDeadline - intendedVsync;
         return *this;
     }
 
diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp
index 638a060..80eb6bc 100644
--- a/libs/hwui/JankTracker.cpp
+++ b/libs/hwui/JankTracker.cpp
@@ -201,7 +201,7 @@
     // If we are in triple buffering, we have enough buffers in queue to sustain a single frame
     // drop without jank, so adjust the frame interval to the deadline.
     if (isTripleBuffered) {
-        int64_t originalDeadlineDuration = deadline - frame[FrameInfoIndex::IntendedVsync];
+        int64_t originalDeadlineDuration = frame[FrameInfoIndex::WorkloadTarget];
         deadline = mNextFrameStartUnstuffed + originalDeadlineDuration;
         frame.set(FrameInfoIndex::FrameDeadline) = deadline;
     }
diff --git a/libs/hwui/OWNERS b/libs/hwui/OWNERS
index bc17459..70d13ab 100644
--- a/libs/hwui/OWNERS
+++ b/libs/hwui/OWNERS
@@ -4,7 +4,6 @@
 djsollen@google.com
 jreck@google.com
 njawad@google.com
-scroggo@google.com
 sumir@google.com
 
 # For text, e.g. Typeface, Font, Minikin, etc.
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 7d01dfb..21430f7 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -57,6 +57,9 @@
 constexpr bool early_preload_gl_context() {
     return false;
 }
+constexpr bool calc_workload_orig_deadline() {
+    return false;
+}
 }  // namespace hwui_flags
 #endif
 
@@ -299,5 +302,10 @@
                                  hwui_flags::early_preload_gl_context());
 }
 
+bool Properties::calcWorkloadOrigDeadline() {
+    static bool sCalcWorkloadOrigDeadline = base::GetBoolProperty(
+            "debug.hwui.calc_workload_orig_deadline", hwui_flags::calc_workload_orig_deadline());
+    return sCalcWorkloadOrigDeadline;
+}
 }  // namespace uirenderer
 }  // namespace android
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 280a75a..a7a5644 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -384,6 +384,7 @@
     static bool initializeGlAlways();
     static bool resampleGainmapRegions();
     static bool earlyPreloadGlContext();
+    static bool calcWorkloadOrigDeadline();
 
 private:
     static StretchEffectBehavior stretchEffectBehavior;
diff --git a/libs/hwui/aconfig/hwui_flags.aconfig b/libs/hwui/aconfig/hwui_flags.aconfig
index 2851dd8..62fd7d3 100644
--- a/libs/hwui/aconfig/hwui_flags.aconfig
+++ b/libs/hwui/aconfig/hwui_flags.aconfig
@@ -176,4 +176,15 @@
   namespace: "core_graphics"
   description: "Initialize GL context and GraphicBufferAllocater init on renderThread preload. This improves app startup time for apps using GL."
   bug: "383612849"
+}
+
+flag {
+  name: "calc_workload_orig_deadline"
+  namespace: "window_surfaces"
+  description: "Use original frame deadline to calculate the workload target deadline for jank tracking"
+  bug: "389939827"
+  is_fixed_read_only: true
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
 }
\ No newline at end of file
diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp
index b1550b0..63a024b 100644
--- a/libs/hwui/hwui/Bitmap.cpp
+++ b/libs/hwui/hwui/Bitmap.cpp
@@ -260,7 +260,7 @@
 #endif
 
 sk_sp<Bitmap> Bitmap::createFrom(const SkImageInfo& info, size_t rowBytes, int fd, void* addr,
-                                 size_t size, bool readOnly) {
+                                 size_t size, bool readOnly, int64_t id) {
 #ifdef _WIN32 // ashmem not implemented on Windows
      return nullptr;
 #else
@@ -279,7 +279,7 @@
         }
     }
 
-    sk_sp<Bitmap> bitmap(new Bitmap(addr, fd, size, info, rowBytes));
+    sk_sp<Bitmap> bitmap(new Bitmap(addr, fd, size, info, rowBytes, id));
     if (readOnly) {
         bitmap->setImmutable();
     }
@@ -334,7 +334,7 @@
         : SkPixelRef(info.width(), info.height(), address, rowBytes)
         , mInfo(validateAlpha(info))
         , mPixelStorageType(PixelStorageType::Ashmem)
-        , mId(id != INVALID_BITMAP_ID ? id : getId(mPixelStorageType)) {
+        , mId(id != UNDEFINED_BITMAP_ID ? id : getId(mPixelStorageType)) {
     mPixelStorage.ashmem.address = address;
     mPixelStorage.ashmem.fd = fd;
     mPixelStorage.ashmem.size = mappedSize;
diff --git a/libs/hwui/hwui/Bitmap.h b/libs/hwui/hwui/Bitmap.h
index 8abe6a8..4e9bcf2 100644
--- a/libs/hwui/hwui/Bitmap.h
+++ b/libs/hwui/hwui/Bitmap.h
@@ -97,7 +97,7 @@
                                     BitmapPalette palette);
 #endif
     static sk_sp<Bitmap> createFrom(const SkImageInfo& info, size_t rowBytes, int fd, void* addr,
-                                    size_t size, bool readOnly);
+                                    size_t size, bool readOnly, int64_t id);
     static sk_sp<Bitmap> createFrom(const SkImageInfo&, SkPixelRef&);
 
     int rowBytesAsPixels() const { return rowBytes() >> mInfo.shiftPerPixel(); }
@@ -183,15 +183,15 @@
 
   static bool compress(const SkBitmap& bitmap, JavaCompressFormat format,
                        int32_t quality, SkWStream* stream);
-private:
-    static constexpr uint64_t INVALID_BITMAP_ID = 0u;
 
+    static constexpr uint64_t UNDEFINED_BITMAP_ID = 0u;
+private:
     static sk_sp<Bitmap> allocateAshmemBitmap(size_t size, const SkImageInfo& i, size_t rowBytes);
 
     Bitmap(void* address, size_t allocSize, const SkImageInfo& info, size_t rowBytes);
     Bitmap(SkPixelRef& pixelRef, const SkImageInfo& info);
     Bitmap(void* address, int fd, size_t mappedSize, const SkImageInfo& info, size_t rowBytes,
-           uint64_t id = INVALID_BITMAP_ID);
+           uint64_t id = UNDEFINED_BITMAP_ID);
 #ifdef __ANDROID__ // Layoutlib does not support hardware acceleration
     Bitmap(AHardwareBuffer* buffer, const SkImageInfo& info, size_t rowBytes,
            BitmapPalette palette);
diff --git a/libs/hwui/jni/Bitmap.cpp b/libs/hwui/jni/Bitmap.cpp
index 29efd98..cfde0b2 100644
--- a/libs/hwui/jni/Bitmap.cpp
+++ b/libs/hwui/jni/Bitmap.cpp
@@ -191,9 +191,8 @@
             info.width(), info.height(), isPremultiplied);
 }
 
-jobject createBitmap(JNIEnv* env, Bitmap* bitmap,
-        int bitmapCreateFlags, jbyteArray ninePatchChunk, jobject ninePatchInsets,
-        int density) {
+jobject createBitmap(JNIEnv* env, Bitmap* bitmap, int bitmapCreateFlags, jbyteArray ninePatchChunk,
+                     jobject ninePatchInsets, int density, int64_t id) {
     static jmethodID gBitmap_constructorMethodID =
         GetMethodIDOrDie(env, gBitmap_class,
             "<init>", "(JJIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V");
@@ -208,10 +207,12 @@
     if (!isMutable) {
         bitmapWrapper->bitmap().setImmutable();
     }
+    int64_t bitmapId = id != Bitmap::UNDEFINED_BITMAP_ID ? id : bitmap->getId();
     jobject obj = env->NewObject(gBitmap_class, gBitmap_constructorMethodID,
-            static_cast<jlong>(bitmap->getId()), reinterpret_cast<jlong>(bitmapWrapper),
-            bitmap->width(), bitmap->height(), density,
-            isPremultiplied, ninePatchChunk, ninePatchInsets, fromMalloc);
+                                 static_cast<jlong>(bitmapId),
+                                 reinterpret_cast<jlong>(bitmapWrapper), bitmap->width(),
+                                 bitmap->height(), density, isPremultiplied, ninePatchChunk,
+                                 ninePatchInsets, fromMalloc);
 
     if (env->ExceptionCheck() != 0) {
         ALOGE("*** Uncaught exception returned from Java call!\n");
@@ -759,6 +760,7 @@
     const int32_t height = p.readInt32();
     const int32_t rowBytes = p.readInt32();
     const int32_t density = p.readInt32();
+    const int64_t sourceId = p.readInt64();
 
     if (kN32_SkColorType != colorType &&
             kRGBA_F16_SkColorType != colorType &&
@@ -815,7 +817,8 @@
                     return STATUS_NO_MEMORY;
                 }
                 nativeBitmap =
-                        Bitmap::createFrom(imageInfo, rowBytes, fd.release(), addr, size, !isMutable);
+                        Bitmap::createFrom(imageInfo, rowBytes, fd.release(), addr, size,
+                        !isMutable, sourceId);
                 return STATUS_OK;
             });
 
@@ -831,15 +834,15 @@
     }
 
     return createBitmap(env, nativeBitmap.release(), getPremulBitmapCreateFlags(isMutable), nullptr,
-                        nullptr, density);
+                        nullptr, density, sourceId);
 #else
     jniThrowRuntimeException(env, "Cannot use parcels outside of Android");
     return NULL;
 #endif
 }
 
-static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject,
-                                     jlong bitmapHandle, jint density, jobject parcel) {
+static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject, jlong bitmapHandle, jint density,
+                                     jobject parcel) {
 #ifdef __ANDROID__ // Layoutlib does not support parcel
     if (parcel == NULL) {
         ALOGD("------- writeToParcel null parcel\n");
@@ -870,6 +873,7 @@
     binder_status_t status;
     int fd = bitmapWrapper->bitmap().getAshmemFd();
     if (fd >= 0 && p.allowFds() && bitmap.isImmutable()) {
+        p.writeInt64(bitmapWrapper->bitmap().getId());
 #if DEBUG_PARCEL
         ALOGD("Bitmap.writeToParcel: transferring immutable bitmap's ashmem fd as "
               "immutable blob (fds %s)",
@@ -889,7 +893,7 @@
     ALOGD("Bitmap.writeToParcel: copying bitmap into new blob (fds %s)",
           p.allowFds() ? "allowed" : "forbidden");
 #endif
-
+    p.writeInt64(Bitmap::UNDEFINED_BITMAP_ID);
     status = writeBlob(p.get(), bitmapWrapper->bitmap().getId(), bitmap);
     if (status) {
         doThrowRE(env, "Could not copy bitmap to parcel blob.");
diff --git a/libs/hwui/jni/Bitmap.h b/libs/hwui/jni/Bitmap.h
index 21a93f0..c93246a 100644
--- a/libs/hwui/jni/Bitmap.h
+++ b/libs/hwui/jni/Bitmap.h
@@ -18,6 +18,7 @@
 
 #include <jni.h>
 #include <android/bitmap.h>
+#include <hwui/Bitmap.h>
 
 struct SkImageInfo;
 
@@ -33,9 +34,9 @@
     kBitmapCreateFlag_Premultiplied = 0x2,
 };
 
-jobject createBitmap(JNIEnv* env, Bitmap* bitmap,
-            int bitmapCreateFlags, jbyteArray ninePatchChunk = nullptr,
-            jobject ninePatchInsets = nullptr, int density = -1);
+jobject createBitmap(JNIEnv* env, Bitmap* bitmap, int bitmapCreateFlags,
+                     jbyteArray ninePatchChunk = nullptr, jobject ninePatchInsets = nullptr,
+                     int density = -1, int64_t id = Bitmap::UNDEFINED_BITMAP_ID);
 
 Bitmap& toBitmap(jlong bitmapHandle);
 
diff --git a/libs/hwui/jni/ScopedParcel.cpp b/libs/hwui/jni/ScopedParcel.cpp
index b0f5423..95e4e01 100644
--- a/libs/hwui/jni/ScopedParcel.cpp
+++ b/libs/hwui/jni/ScopedParcel.cpp
@@ -39,6 +39,16 @@
     return temp;
 }
 
+int64_t ScopedParcel::readInt64() {
+    int64_t temp = 0;
+    // TODO: This behavior-matches what android::Parcel does
+    // but this should probably be better
+    if (AParcel_readInt64(mParcel, &temp) != STATUS_OK) {
+        temp = 0;
+    }
+    return temp;
+}
+
 float ScopedParcel::readFloat() {
     float temp = 0.;
     if (AParcel_readFloat(mParcel, &temp) != STATUS_OK) {
diff --git a/libs/hwui/jni/ScopedParcel.h b/libs/hwui/jni/ScopedParcel.h
index fd8d6a2..f2f138f 100644
--- a/libs/hwui/jni/ScopedParcel.h
+++ b/libs/hwui/jni/ScopedParcel.h
@@ -35,12 +35,16 @@
 
     uint32_t readUint32();
 
+    int64_t readInt64();
+
     float readFloat();
 
     void writeInt32(int32_t value) { AParcel_writeInt32(mParcel, value); }
 
     void writeUint32(uint32_t value) { AParcel_writeUint32(mParcel, value); }
 
+    void writeInt64(int64_t value) { AParcel_writeInt64(mParcel, value); }
+
     void writeFloat(float value) { AParcel_writeFloat(mParcel, value); }
 
     bool allowFds() const { return AParcel_getAllowFds(mParcel); }
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index b36b8be..e3e393c 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -789,7 +789,13 @@
     int64_t frameDeadline = mCurrentFrameInfo->get(FrameInfoIndex::FrameDeadline);
     int64_t dequeueBufferDuration = mCurrentFrameInfo->get(FrameInfoIndex::DequeueBufferDuration);
 
-    mHintSessionWrapper->updateTargetWorkDuration(frameDeadline - intendedVsync);
+    if (Properties::calcWorkloadOrigDeadline()) {
+        // Uses the unmodified frame deadline in calculating workload target duration
+        mHintSessionWrapper->updateTargetWorkDuration(
+                mCurrentFrameInfo->get(FrameInfoIndex::WorkloadTarget));
+    } else {
+        mHintSessionWrapper->updateTargetWorkDuration(frameDeadline - intendedVsync);
+    }
 
     if (didDraw) {
         int64_t frameStartTime = mCurrentFrameInfo->get(FrameInfoIndex::FrameStartTime);
diff --git a/libs/hwui/tests/unit/JankTrackerTests.cpp b/libs/hwui/tests/unit/JankTrackerTests.cpp
index b67e419..c289d67 100644
--- a/libs/hwui/tests/unit/JankTrackerTests.cpp
+++ b/libs/hwui/tests/unit/JankTrackerTests.cpp
@@ -45,6 +45,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 115_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 120_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     info = jankTracker.startFrame();
@@ -55,6 +56,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 131_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 136_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(2, container.get()->totalFrameCount());
@@ -79,6 +81,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 121_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 120_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->totalFrameCount());
@@ -102,6 +105,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 118_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 120_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->totalFrameCount());
@@ -127,6 +131,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 121_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 120_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->jankFrameCount());
@@ -140,6 +145,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 137_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 136_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(2, container.get()->totalFrameCount());
@@ -164,6 +170,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 121_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 120_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->jankFrameCount());
@@ -177,6 +184,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 137_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 136_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->jankFrameCount());
@@ -190,6 +198,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 169_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 168_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 20_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(3, container.get()->totalFrameCount());
@@ -214,6 +223,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 117_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 116_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 16_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->jankFrameCount());
@@ -228,6 +238,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 133_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 132_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 16_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(1, container.get()->jankFrameCount());
@@ -242,6 +253,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 165_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 148_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 16_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(2, container.get()->jankFrameCount());
@@ -256,6 +268,7 @@
     info->set(FrameInfoIndex::FrameCompleted) = 181_ms;
     info->set(FrameInfoIndex::FrameInterval) = 16_ms;
     info->set(FrameInfoIndex::FrameDeadline) = 164_ms;
+    info->set(FrameInfoIndex::WorkloadTarget) = 16_ms;
     jankTracker.finishFrame(*info, reporter, frameNumber, surfaceId);
 
     ASSERT_EQ(2, container.get()->jankFrameCount());
diff --git a/libs/input/PointerControllerContext.cpp b/libs/input/PointerControllerContext.cpp
index 747eb8e..5406de8 100644
--- a/libs/input/PointerControllerContext.cpp
+++ b/libs/input/PointerControllerContext.cpp
@@ -15,6 +15,7 @@
  */
 
 #include "PointerControllerContext.h"
+
 #include "PointerController.h"
 
 namespace {
@@ -184,7 +185,7 @@
     DisplayEventReceiver::Event buf[EVENT_BUFFER_SIZE];
     while ((n = mDisplayEventReceiver.getEvents(buf, EVENT_BUFFER_SIZE)) > 0) {
         for (size_t i = 0; i < static_cast<size_t>(n); ++i) {
-            if (buf[i].header.type == DisplayEventReceiver::DISPLAY_EVENT_VSYNC) {
+            if (buf[i].header.type == DisplayEventType::DISPLAY_EVENT_VSYNC) {
                 timestamp = buf[i].header.timestamp;
                 gotVsync = true;
             }
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 5dc49a0..d082c73 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -20,7 +20,6 @@
 import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO;
 import static android.content.Context.DEVICE_ID_DEFAULT;
 import static android.media.audio.Flags.autoPublicVolumeApiHardening;
-import static android.media.audio.Flags.automaticBtDeviceType;
 import static android.media.audio.Flags.cacheGetStreamMinMaxVolume;
 import static android.media.audio.Flags.cacheGetStreamVolume;
 import static android.media.audio.Flags.FLAG_DEPRECATE_STREAM_BT_SCO;
@@ -7457,41 +7456,6 @@
     /**
      * @hide
      * Sets the audio device type of a Bluetooth device given its MAC address
-     */
-    @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
-    public void setBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle,
-            @AudioDeviceCategory int btAudioDeviceType) {
-        if (automaticBtDeviceType()) {
-            // do nothing
-            return;
-        }
-        try {
-            getService().setBluetoothAudioDeviceCategory_legacy(address, isBle, btAudioDeviceType);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
-    }
-
-    /**
-     * @hide
-     * Gets the audio device type of a Bluetooth device given its MAC address
-     */
-    @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
-    @AudioDeviceCategory
-    public int getBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle) {
-        if (automaticBtDeviceType()) {
-            return AUDIO_DEVICE_CATEGORY_UNKNOWN;
-        }
-        try {
-            return getService().getBluetoothAudioDeviceCategory_legacy(address, isBle);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
-    }
-
-    /**
-     * @hide
-     * Sets the audio device type of a Bluetooth device given its MAC address
      *
      * @return {@code true} if the device type was set successfully. If the
      *         audio device type was automatically identified this method will
@@ -7500,9 +7464,6 @@
     @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
     public boolean setBluetoothAudioDeviceCategory(@NonNull String address,
             @AudioDeviceCategory int btAudioDeviceCategory) {
-        if (!automaticBtDeviceType()) {
-            return false;
-        }
         try {
             return getService().setBluetoothAudioDeviceCategory(address, btAudioDeviceCategory);
         } catch (RemoteException e) {
@@ -7517,9 +7478,6 @@
     @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
     @AudioDeviceCategory
     public int getBluetoothAudioDeviceCategory(@NonNull String address) {
-        if (!automaticBtDeviceType()) {
-            return AUDIO_DEVICE_CATEGORY_UNKNOWN;
-        }
         try {
             return getService().getBluetoothAudioDeviceCategory(address);
         } catch (RemoteException e) {
@@ -7534,9 +7492,6 @@
      */
     @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
     public boolean isBluetoothAudioDeviceCategoryFixed(@NonNull String address) {
-        if (!automaticBtDeviceType()) {
-            return false;
-        }
         try {
             return getService().isBluetoothAudioDeviceCategoryFixed(address);
         } catch (RemoteException e) {
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 7b8d666..8aadb41 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -365,13 +365,6 @@
     oneway void setCsdAsAFeatureEnabled(boolean csdToggleValue);
 
     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
-    oneway void setBluetoothAudioDeviceCategory_legacy(in String address, boolean isBle,
-            int deviceCategory);
-
-    @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
-    int getBluetoothAudioDeviceCategory_legacy(in String address, boolean isBle);
-
-    @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
     boolean setBluetoothAudioDeviceCategory(in String address, int deviceCategory);
 
     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
diff --git a/media/java/android/media/audiofx/HapticGenerator.java b/media/java/android/media/audiofx/HapticGenerator.java
index d2523ef..7f94dde 100644
--- a/media/java/android/media/audiofx/HapticGenerator.java
+++ b/media/java/android/media/audiofx/HapticGenerator.java
@@ -36,6 +36,20 @@
  * <p>See {@link android.media.MediaPlayer#getAudioSessionId()} for details on audio sessions.
  * <p>See {@link android.media.audiofx.AudioEffect} class for more details on controlling audio
  * effects.
+ *
+ * <pre>{@code
+ * AudioManager audioManager = context.getSystemService(AudioManager.class);
+ * player = MediaPlayer.create(
+ *         context,
+ *         audioUri,
+ *         new AudioAttributes.Builder().setHapticChannelsMuted(false).build(),
+ *         audioManager.generateAudioSessionId()
+ * );
+ * if (HapticGenerator.isAvailable()) {
+ *     HapticGenerator.create(player.getAudioSessionId()).setEnabled(true);
+ * }
+ * player.start();
+ * }</pre>
  */
 public class HapticGenerator extends AudioEffect implements AutoCloseable {
 
diff --git a/media/java/android/media/flags/media_better_together.aconfig b/media/java/android/media/flags/media_better_together.aconfig
index 2e8c28d..0deed39 100644
--- a/media/java/android/media/flags/media_better_together.aconfig
+++ b/media/java/android/media/flags/media_better_together.aconfig
@@ -139,6 +139,19 @@
     namespace: "media_better_together"
     description: "Enables selected items in Output Switcher to be grouped together."
     bug: "388347018"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
+
+flag {
+    name: "enable_output_switcher_device_grouping"
+    namespace: "media_better_together"
+    description: "Enables selected items in Output Switcher to be grouped together."
+    bug: "388347018"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
 }
 
 flag {
diff --git a/media/jni/Android.bp b/media/jni/Android.bp
index f09dc72..6b72173 100644
--- a/media/jni/Android.bp
+++ b/media/jni/Android.bp
@@ -25,8 +25,6 @@
     min_sdk_version: "",
 
     srcs: [
-        "android_media_ImageWriter.cpp",
-        "android_media_ImageReader.cpp",
         "android_media_JetPlayer.cpp",
         "android_media_MediaCrypto.cpp",
         "android_media_MediaCodec.cpp",
@@ -42,7 +40,6 @@
         "android_media_MediaProfiles.cpp",
         "android_media_MediaRecorder.cpp",
         "android_media_MediaSync.cpp",
-        "android_media_PublicFormatUtils.cpp",
         "android_media_ResampleInputStream.cpp",
         "android_media_Streams.cpp",
         "android_media_SyncParams.cpp",
@@ -64,7 +61,6 @@
         "libbinder",
         "libmedia",
         "libmedia_codeclist",
-        "libmedia_jni_utils",
         "libmedia_omx",
         "libmediametrics",
         "libmediadrm",
@@ -133,38 +129,6 @@
 }
 
 cc_library_shared {
-    name: "libmedia_jni_utils",
-    srcs: [
-        ":libgui_frame_event_aidl",
-        "android_media_Utils.cpp",
-    ],
-
-    header_libs: [
-        "libgui_headers",
-    ],
-
-    shared_libs: [
-        "liblog",
-        "libui",
-        "libutils",
-    ],
-
-    include_dirs: [
-        "system/media/camera/include",
-    ],
-
-    export_include_dirs: ["."],
-
-    cflags: [
-        "-Wall",
-        "-Werror",
-        "-Wno-error=deprecated-declarations",
-        "-Wunused",
-        "-Wunreachable-code",
-    ],
-}
-
-cc_library_shared {
     name: "libmedia_tv_tuner",
     min_sdk_version: "",
     srcs: [
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index 48cd53d..d50acd8 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -27,7 +27,6 @@
 #include "jni.h"
 #include <nativehelper/JNIHelp.h>
 
-#include <android_companion_virtualdevice_flags.h>
 #include <android/companion/virtualnative/IVirtualDeviceManagerNative.h>
 #include <android/hardware/drm/1.3/IDrmFactory.h>
 #include <binder/Parcel.h>
@@ -46,7 +45,6 @@
 using ::android::companion::virtualnative::IVirtualDeviceManagerNative;
 using ::android::os::PersistableBundle;
 namespace drm = ::android::hardware::drm;
-namespace virtualdevice_flags = android::companion::virtualdevice::flags;
 
 namespace android {
 
@@ -1050,11 +1048,6 @@
 }
 
 std::vector<int> getVirtualDeviceIds() {
-    if (!virtualdevice_flags::device_aware_drm()) {
-        ALOGW("Device-aware DRM flag disabled.");
-        return std::vector<int>();
-    }
-
     sp<IBinder> binder =
             defaultServiceManager()->checkService(String16("virtualdevice_native"));
     if (binder != nullptr) {
diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp
index a942300..647b553 100644
--- a/media/jni/android_media_MediaPlayer.cpp
+++ b/media/jni/android_media_MediaPlayer.cpp
@@ -1476,8 +1476,6 @@
     return AndroidRuntime::registerNativeMethods(env,
                 "android/media/MediaPlayer", gMethods, NELEM(gMethods));
 }
-extern int register_android_media_ImageReader(JNIEnv *env);
-extern int register_android_media_ImageWriter(JNIEnv *env);
 extern int register_android_media_JetPlayer(JNIEnv *env);
 extern int register_android_media_Crypto(JNIEnv *env);
 extern int register_android_media_Drm(JNIEnv *env);
@@ -1490,7 +1488,6 @@
 extern int register_android_media_MediaMuxer(JNIEnv *env);
 extern int register_android_media_MediaRecorder(JNIEnv *env);
 extern int register_android_media_MediaSync(JNIEnv *env);
-extern int register_android_media_PublicFormatUtils(JNIEnv *env);
 extern int register_android_media_ResampleInputStream(JNIEnv *env);
 extern int register_android_media_MediaProfiles(JNIEnv *env);
 extern int register_android_mtp_MtpDatabase(JNIEnv *env);
@@ -1508,16 +1505,6 @@
     }
     assert(env != NULL);
 
-    if (register_android_media_ImageWriter(env) != JNI_OK) {
-        ALOGE("ERROR: ImageWriter native registration failed");
-        goto bail;
-    }
-
-    if (register_android_media_ImageReader(env) < 0) {
-        ALOGE("ERROR: ImageReader native registration failed");
-        goto bail;
-    }
-
     if (register_android_media_JetPlayer(env) < 0) {
         ALOGE("ERROR: JetPlayer native registration failed");
         goto bail;
@@ -1538,11 +1525,6 @@
         goto bail;
     }
 
-    if (register_android_media_PublicFormatUtils(env) < 0) {
-        ALOGE("ERROR: PublicFormatUtils native registration failed\n");
-        goto bail;
-    }
-
     if (register_android_media_ResampleInputStream(env) < 0) {
         ALOGE("ERROR: ResampleInputStream native registration failed\n");
         goto bail;
diff --git a/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java b/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java
index d9a1221..06cf609 100644
--- a/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java
+++ b/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java
@@ -472,6 +472,19 @@
     }
 
     @Test
+    public void testAudioDeviceAttributesConversion_MultichannelGroup() {
+        AudioDeviceAttributes attributes =
+                new AudioDeviceAttributes(AudioSystem.DEVICE_OUT_MULTICHANNEL_GROUP, "myAddress");
+        AudioPort port = AidlConversion.api2aidl_AudioDeviceAttributes_AudioPort(attributes);
+        assertEquals("", port.name);
+        assertEquals(0, port.extraAudioDescriptors.length);
+        assertEquals("myAddress", port.ext.getDevice().device.address.getId());
+        assertEquals(AudioDeviceDescription.CONNECTION_VIRTUAL,
+                port.ext.getDevice().device.type.connection);
+        assertEquals(AudioDeviceType.OUT_MULTICHANNEL_GROUP, port.ext.getDevice().device.type.type);
+    }
+
+    @Test
     public void testAudioDeviceAttributesConversion() {
         AudioDescriptor audioDescriptor1 =
                 AidlConversion.aidl2api_ExtraAudioDescriptor_AudioDescriptor(
diff --git a/nfc-extras/OWNERS b/nfc-extras/OWNERS
index 35e9713..2b82bc8 100644
--- a/nfc-extras/OWNERS
+++ b/nfc-extras/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 48448
-include platform/packages/apps/Nfc:/OWNERS
+include platform/packages/modules/Nfc:/OWNERS
diff --git a/nfc-non-updatable/OWNERS b/nfc-non-updatable/OWNERS
index f46dccd..47f209f 100644
--- a/nfc-non-updatable/OWNERS
+++ b/nfc-non-updatable/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 48448
-include platform/packages/apps/Nfc:/OWNERS
\ No newline at end of file
+include platform/packages/modules/Nfc:/OWNERS
\ No newline at end of file
diff --git a/nfc-non-updatable/java/android/nfc/cardemulation/ApduServiceInfo.java b/nfc-non-updatable/java/android/nfc/cardemulation/ApduServiceInfo.java
index e83b9f1..d0de1fc 100644
--- a/nfc-non-updatable/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/nfc-non-updatable/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -817,7 +817,7 @@
         if (!mOnHost && !autoTransact) {
             return;
         }
-        mAutoTransact.put(pollingLoopFilter, autoTransact);
+        mAutoTransact.put(pollingLoopFilter.toUpperCase(Locale.ROOT), autoTransact);
     }
 
     /**
@@ -845,7 +845,8 @@
         if (!mOnHost && !autoTransact) {
             return;
         }
-        mAutoTransactPatterns.put(Pattern.compile(pollingLoopPatternFilter), autoTransact);
+        mAutoTransactPatterns.put(Pattern.compile(
+                pollingLoopPatternFilter.toUpperCase(Locale.ROOT)), autoTransact);
     }
 
     /**
diff --git a/omapi/OWNERS b/omapi/OWNERS
index 39c5c5b..375d643 100644
--- a/omapi/OWNERS
+++ b/omapi/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 456592
-include platform/packages/apps/Nfc:/OWNERS
+include platform/packages/modules/Nfc:/OWNERS
diff --git a/omapi/java/android/se/OWNERS b/omapi/java/android/se/OWNERS
index 39c5c5b..375d643 100644
--- a/omapi/java/android/se/OWNERS
+++ b/omapi/java/android/se/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 456592
-include platform/packages/apps/Nfc:/OWNERS
+include platform/packages/modules/Nfc:/OWNERS
diff --git a/omapi/java/android/se/omapi/OWNERS b/omapi/java/android/se/omapi/OWNERS
index 39c5c5b..375d643 100644
--- a/omapi/java/android/se/omapi/OWNERS
+++ b/omapi/java/android/se/omapi/OWNERS
@@ -1,2 +1,2 @@
 # Bug component: 456592
-include platform/packages/apps/Nfc:/OWNERS
+include platform/packages/modules/Nfc:/OWNERS
diff --git a/packages/CompanionDeviceManager/res/values-ar/strings.xml b/packages/CompanionDeviceManager/res/values-ar/strings.xml
index efbc6d9..5b6ea65 100644
--- a/packages/CompanionDeviceManager/res/values-ar/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-ar/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"تطبيق \"مدير الجهاز المصاحب\""</string>
     <string name="confirmation_title" msgid="2244241995958340998">"‏هل تريد السماح لـ &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; بالوصول إلى &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;؟"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"يُرجى التأكّد من أنّ <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> مفعَّل في <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>، وجعل <xliff:g id="PROFILE_NAME">%3$s</xliff:g> بالقرب منك."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"يُرجى التأكّد من تفعيل <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> في <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>، وإبقاء <xliff:g id="PROFILE_NAME">%3$s</xliff:g> بالقرب منك."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"لم يتم العثور على أي أجهزة. يُرجى إعادة المحاولة لاحقًا."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"البلوتوث"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
@@ -63,7 +63,7 @@
     <string name="permission_microphone" msgid="2152206421428732949">"الميكروفون"</string>
     <string name="permission_call_logs" msgid="5546761417694586041">"سجلّ المكالمات"</string>
     <string name="permission_nearby_devices" msgid="7530973297737123481">"الأجهزة المجاورة"</string>
-    <string name="permission_media_routing_control" msgid="5498639511586715253">"تغيير جهاز إخراج الوسائط"</string>
+    <string name="permission_media_routing_control" msgid="5498639511586715253">"تغيير جهاز بث الوسائط"</string>
     <string name="permission_storage" msgid="6831099350839392343">"الصور والوسائط"</string>
     <string name="permission_notifications" msgid="4099418516590632909">"الإشعارات"</string>
     <string name="permission_phone_summary" msgid="8246321093970051702">"إجراء المكالمات الهاتفية وإدارتها"</string>
@@ -77,7 +77,7 @@
     <string name="permission_notifications_summary" msgid="2272810466047367030">"‏• قراءة كل الإشعارات بما فيها المعلومات، مثل جهات الاتصال والرسائل والصور&lt;br/&gt;• إرسال الإشعارات&lt;br/&gt;&lt;br/&gt;يمكنك إدارة الإذن الممنوح لهذا التطبيق بقراءة الإشعارات وإرسالها في أي وقت من خلال الإعدادات &gt; الإشعارات."</string>
     <string name="permission_storage_summary" msgid="3918240895519506417"></string>
     <string name="permission_media_routing_control_summary" msgid="2714631092321412250">"يتيح لك هذا الإذن الاطّلاع على مجموعة من الأجهزة المتاحة وتحديد الجهاز المسموح له بتشغيل الصوت أو الفيديو أو بثّهما من التطبيقات الأخرى."</string>
-    <string name="device_type" product="default" msgid="8268703872070046263">"هاتف"</string>
+    <string name="device_type" product="default" msgid="8268703872070046263">"الهاتف"</string>
     <string name="device_type" product="tablet" msgid="5038791954983067774">"جهاز لوحي"</string>
     <string name="device_type" product="tv" msgid="5355611506659405636">"تلفزيون"</string>
     <string name="device_type" product="device" msgid="1526125965802507189">"جهاز"</string>
diff --git a/packages/CompanionDeviceManager/res/values-b+sr+Latn/strings.xml b/packages/CompanionDeviceManager/res/values-b+sr+Latn/strings.xml
index ab52c39..dfe3cbe 100644
--- a/packages/CompanionDeviceManager/res/values-b+sr+Latn/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-b+sr+Latn/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Menadžer pridruženog uređaja"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Dozvolite da aplikacija &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; pristupa uređaju &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Uverite se da je za <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> uključen <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> i da u blizini imate <xliff:g id="PROFILE_NAME">%3$s</xliff:g>."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Uverite se da je na <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> uključen <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> i da u blizini imate <xliff:g id="PROFILE_NAME">%3$s</xliff:g>."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nije pronađen nijedan uređaj. Probajte ponovo kasnije."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"WiFi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth i WiFi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"sat"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Odaberite uređaj kojim će upravljati aplikacija &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Odaberite profil <xliff:g id="PROFILE_NAME">%1$s</xliff:g> koji želite da podesite"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Odaberite <xliff:g id="PROFILE_NAME">%1$s</xliff:g> koji želite da podesite"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Traži se <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Ovoj aplikaciji će biti dozvoljeno da sinhronizuje podatke, poput imena pozivaoca, i pristupa tim dozvolama na uređaju <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Ovoj aplikaciji će biti dozvoljeno da sinhronizuje podatke, poput imena pozivaoca, i pristupa sledećim dozvolama na <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Želite li da dozvolite da &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; upravlja uređajem &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"uređaj"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Ovoj aplikaciji će biti dozvoljeno da pristupa ovim dozvolama na uređaju <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
diff --git a/packages/CompanionDeviceManager/res/values-be/strings.xml b/packages/CompanionDeviceManager/res/values-be/strings.xml
index 884101f..6e5e1b5 100644
--- a/packages/CompanionDeviceManager/res/values-be/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-be/strings.xml
@@ -18,15 +18,15 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Менеджар спадарожнай прылады"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Дазволіць праграме &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; доступ да прылады &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Упэўніцеся, што на гэтай прыладзе (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) уключаны <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>, і трымайце <xliff:g id="PROFILE_NAME">%3$s</xliff:g> паблізу."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Упэўніцеся, што на гэтай прыладзе (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) уключаны <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>, а <xliff:g id="PROFILE_NAME">%3$s</xliff:g> знаходзіцца паблізу."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Прылады не знойдзены. Паўтарыце спробу пазней."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth і Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"гадзіннік"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Выберыце прыладу (<xliff:g id="APP_NAME">%1$s</xliff:g>), якой будзе кіраваць праграма &lt;strong&gt;&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Выберыце імя <xliff:g id="PROFILE_NAME">%1$s</xliff:g> для наладжвання"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g>: ідзе пошук"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g>: выберыце, каб наладзіць"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Ідзе пошук: <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Гэта праграма зможа сінхранізаваць інфармацыю (напрыклад, імя таго, хто звоніць) на вашай прыладзе тыпу \"<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>\" і атрымае наступныя дазволы"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Дазволіць праграме &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; кіраваць прыладай &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"прылада"</string>
@@ -63,7 +63,7 @@
     <string name="permission_microphone" msgid="2152206421428732949">"Мікрафон"</string>
     <string name="permission_call_logs" msgid="5546761417694586041">"Журналы выклікаў"</string>
     <string name="permission_nearby_devices" msgid="7530973297737123481">"Прылады паблізу"</string>
-    <string name="permission_media_routing_control" msgid="5498639511586715253">"Змяніць прыладу вываду медыя"</string>
+    <string name="permission_media_routing_control" msgid="5498639511586715253">"Змяненне прылады вываду медыя"</string>
     <string name="permission_storage" msgid="6831099350839392343">"Фота і медыяфайлы"</string>
     <string name="permission_notifications" msgid="4099418516590632909">"Апавяшчэнні"</string>
     <string name="permission_phone_summary" msgid="8246321093970051702">"Ажыццяўленне тэлефонных выклікаў і кіраванне імі"</string>
diff --git a/packages/CompanionDeviceManager/res/values-bs/strings.xml b/packages/CompanionDeviceManager/res/values-bs/strings.xml
index e7f9b14..bc74b1a 100644
--- a/packages/CompanionDeviceManager/res/values-bs/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-bs/strings.xml
@@ -25,7 +25,7 @@
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth i WiFi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"sat"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Odaberite uređaj kojim će upravljati aplikacija &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Odaberite <xliff:g id="PROFILE_NAME">%1$s</xliff:g> da postavite"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Odaberite <xliff:g id="PROFILE_NAME">%1$s</xliff:g> za postavljanje"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Traži se <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Aplikaciji će biti dozvoljeno da sinhronizira informacije, kao što je ime osobe koja upućuje poziv, i pristupa ovim odobrenjima koje sadržava vaš <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Dozvoliti aplikaciji &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; da upravlja uređajem &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
diff --git a/packages/CompanionDeviceManager/res/values-da/strings.xml b/packages/CompanionDeviceManager/res/values-da/strings.xml
index 08a1ae1..1062af8 100644
--- a/packages/CompanionDeviceManager/res/values-da/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-da/strings.xml
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"ur"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Vælg en enhed, som skal administreres af &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Vælg en <xliff:g id="PROFILE_NAME">%1$s</xliff:g>, som du vil konfigurere"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Søger efter et <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Søger efter <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Denne app får tilladelse til at synkronisere oplysninger, f.eks. navne på dem, der ringer, og adgang til disse tilladelser på din <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Vil du tillade, at &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; administrerer &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"enhed"</string>
diff --git a/packages/CompanionDeviceManager/res/values-de/strings.xml b/packages/CompanionDeviceManager/res/values-de/strings.xml
index 30528c5..6f8a902 100644
--- a/packages/CompanionDeviceManager/res/values-de/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-de/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Begleitgerät-Manager"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Zulassen, dass &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; auf &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; zugreifen darf?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Achte darauf, dass die Option „<xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>“ auf diesem <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> aktiviert ist und dein Begleitgerät vom Typ „<xliff:g id="PROFILE_NAME">%3$s</xliff:g>“ in der Nähe ist."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"<xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> muss auf diesem <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> aktiviert und dein Gerät „<xliff:g id="PROFILE_NAME">%3$s</xliff:g>“ in der Nähe sein."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Keine Geräte gefunden. Bitte versuche es später noch einmal."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"WLAN"</string>
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"Smartwatch"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Gerät auswählen, das von &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; verwaltet werden soll"</string>
     <string name="chooser_title" msgid="2235819929238267637">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> zum Einrichten auswählen"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Nach einem Begleitgerät vom Typ „<xliff:g id="PROFILE_NAME">%1$s</xliff:g>“ suchen"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> wird gesucht"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Diese App darf dann Daten wie den Namen eines Anrufers synchronisieren und auf diese Berechtigungen auf deinem Gerät (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) zugreifen"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Zulassen, dass &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; das Gerät &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; verwalten darf?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"Gerät"</string>
diff --git a/packages/CompanionDeviceManager/res/values-el/strings.xml b/packages/CompanionDeviceManager/res/values-el/strings.xml
index cffb365..c90bf21 100644
--- a/packages/CompanionDeviceManager/res/values-el/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-el/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Διαχείριση συνοδευτικής εφαρμογής"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Να επιτρέπεται στην εφαρμογή &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; να έχει πρόσβαση στη συσκευή &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;;"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Βεβαιωθείτε ότι αυτή η συσκευή <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> έχει ενεργοποιημένο το <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> και κρατήστε τη συσκευή <xliff:g id="PROFILE_NAME">%3$s</xliff:g> κοντά."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Βεβαιωθείτε ότι αυτό το <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> έχει ενεργοποιημένο το <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> και κρατήστε το <xliff:g id="PROFILE_NAME">%3$s</xliff:g> κοντά."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Δεν βρέθηκαν συσκευές. Δοκιμάστε ξανά αργότερα."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth και Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"ρολόι"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Επιλέξτε μια συσκευή για διαχείριση μέσω της εφαρμογής &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Επιλέξτε ένα προφίλ <xliff:g id="PROFILE_NAME">%1$s</xliff:g> για ρύθμιση"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Επιλέξτε ένα <xliff:g id="PROFILE_NAME">%1$s</xliff:g> για ρύθμιση"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Αναζήτηση για <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Αυτή η εφαρμογή θα μπορεί να συγχρονίζει πληροφορίες, όπως το όνομα ενός ατόμου που σας καλεί, και να αποκτά πρόσβαση σε αυτές τις άδειες στη συσκευή <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Αυτή η εφαρμογή θα μπορεί να συγχρονίζει πληροφορίες, όπως το όνομα ενός ατόμου που σας καλεί, και να αποκτά πρόσβαση σε αυτές τις άδειες στο <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Να επιτρέπεται στην εφαρμογή &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; να διαχειρίζεται τη συσκευή &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; ;"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"συσκευή"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Αυτή η εφαρμογή θα μπορεί να έχει πρόσβαση σε αυτές τις άδειες στη συσκευή <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
diff --git a/packages/CompanionDeviceManager/res/values-es/strings.xml b/packages/CompanionDeviceManager/res/values-es/strings.xml
index ac8c79a..a309d7c 100644
--- a/packages/CompanionDeviceManager/res/values-es/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-es/strings.xml
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> tendrá acceso a todo lo que se reproduzca en tu <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>.&lt;br/&gt;&lt;br/&gt;<xliff:g id="APP_NAME_2">%1$s</xliff:g> podrá emitir audio en <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> hasta que quites el acceso a este permiso."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> está pidiendo permiso en nombre de <xliff:g id="DEVICE_NAME">%2$s</xliff:g> para emitir audio y funciones del sistema en otros dispositivos tuyos."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"dispositivo"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"Esta aplicación podrá sincronizar información (por ejemplo, el nombre de la persona que te llama) entre tu teléfono y el dispositivo que elijas"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"Esta aplicación podrá sincronizar información, como el nombre de la persona que llama, entre tu teléfono y el dispositivo que elijas"</string>
     <string name="consent_yes" msgid="8344487259618762872">"Permitir"</string>
     <string name="consent_no" msgid="2640796915611404382">"No permitir"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"Cancelar"</string>
diff --git a/packages/CompanionDeviceManager/res/values-et/strings.xml b/packages/CompanionDeviceManager/res/values-et/strings.xml
index 9c22847..91d1b69 100644
--- a/packages/CompanionDeviceManager/res/values-et/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-et/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Kaasseadme haldur"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Kas anda rakendusele &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; juurdepääs seadmele &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Veenduge, et seadmes <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> oleks <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> sisse lülitatud, ja hoidke oma seade <xliff:g id="PROFILE_NAME">%3$s</xliff:g> läheduses."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Veenduge, et seadmes <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> oleks <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> sisse lülitatud, ja hoidke oma <xliff:g id="PROFILE_NAME">%3$s</xliff:g> läheduses."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Seadmeid ei leitud. Proovige hiljem uuesti."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"WiFi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth ja WiFi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"käekell"</string>
-    <string name="chooser_title_non_profile" msgid="6035023914517087400">"Valige seade, mida haldab rakendus &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Valige <xliff:g id="PROFILE_NAME">%1$s</xliff:g>, mis seadistada"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Seadme <xliff:g id="PROFILE_NAME">%1$s</xliff:g> otsimine"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Sellel rakendusel lubatakse sünkroonida teavet (nt helistaja nime) ja antakse juurdepääs nendele lubadele, mille asukoht on teie <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="chooser_title_non_profile" msgid="6035023914517087400">"Valige seade, mida rakendus &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; hakkab haldama"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Valige seadistatav <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Otsimine: <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Sellel rakendusel lubatakse sünkroonida teavet (nt helistaja nime) ja antakse juurdepääs nendele teie seadme <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> lubadele."</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Lubage rakendusel &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; hallata seadet &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"seade"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Sellel rakendusel lubatakse juurde pääseda nendele lubadele, mille asukoht on teie <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"Rakendus <xliff:g id="APP_NAME_0">%1$s</xliff:g> saab juurdepääsu kõigele, mida teie seadmes <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g> esitatakse.&lt;br/&gt;&lt;br/&gt;<xliff:g id="APP_NAME_2">%1$s</xliff:g> saab edastada heli seadmesse <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g>, kuni selle loa eemaldate."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> taotleb teie seadme <xliff:g id="DEVICE_NAME">%2$s</xliff:g> nimel luba teie seadmete vahel heli ja süsteemifunktsioonide edastamiseks."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"seade"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"See rakendus saab sünkroonida teavet, näiteks helistaja nime, teie telefoni ja valitud seadme vahel"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"See rakendus saab sünkroonida teavet (näiteks helistaja nime) teie telefoni ja valitud seadme vahel."</string>
     <string name="consent_yes" msgid="8344487259618762872">"Luba"</string>
     <string name="consent_no" msgid="2640796915611404382">"Ära luba"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"Tühista"</string>
diff --git a/packages/CompanionDeviceManager/res/values-fa/strings.xml b/packages/CompanionDeviceManager/res/values-fa/strings.xml
index 2f4f938..048bf3e 100644
--- a/packages/CompanionDeviceManager/res/values-fa/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-fa/strings.xml
@@ -24,7 +24,7 @@
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"‏بلوتوث و Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"ساعت"</string>
-    <string name="chooser_title_non_profile" msgid="6035023914517087400">"‏انتخاب دستگاه برای مدیریت کردن با &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
+    <string name="chooser_title_non_profile" msgid="6035023914517087400">"‏انتخاب دستگاه برای مدیریت شدن توسط &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"انتخاب <xliff:g id="PROFILE_NAME">%1$s</xliff:g> برای راه‌اندازی"</string>
     <string name="single_device_title" msgid="4199861437545438606">"درحال یافتن <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"به این برنامه اجازه داده می‌شود اطلاعاتی مثل نام تماس‌گیرنده را همگام‌سازی کند و به این اجازه‌ها در <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> شما دسترسی داشته باشد"</string>
diff --git a/packages/CompanionDeviceManager/res/values-fi/strings.xml b/packages/CompanionDeviceManager/res/values-fi/strings.xml
index be4076a..3f4a9d3 100644
--- a/packages/CompanionDeviceManager/res/values-fi/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-fi/strings.xml
@@ -17,7 +17,7 @@
 <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="4470785958457506021">"Companion Device Manager"</string>
-    <string name="confirmation_title" msgid="2244241995958340998">"Sallitaanko, että soellus (&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;) saa pääsyn laitteeseen: &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
+    <string name="confirmation_title" msgid="2244241995958340998">"Sallitaanko, että sovellus (&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;) saa pääsyn laitteeseen: &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Varmista, että <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> on päällä laitteella (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>), ja pidä <xliff:g id="PROFILE_NAME">%3$s</xliff:g> lähellä."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Laitteita ei löydy. Yritä myöhemmin uudelleen."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
diff --git a/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml b/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml
index 0aa462b..52b136c 100644
--- a/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml
@@ -18,15 +18,15 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Gestionnaire d\'appareil compagnon"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Autoriser l\'appli &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; à accéder à &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Assurez-vous que le <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> est activé sur cet appareil (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) et gardez votre <xliff:g id="PROFILE_NAME">%3$s</xliff:g> à proximité."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Assurez-vous que le <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> est activé sur votre <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> et gardez votre <xliff:g id="PROFILE_NAME">%3$s</xliff:g> à proximité."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Aucun appareil détecté. Veuillez réessayer plus tard."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth et Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"montre"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Choisir un appareil qui sera géré par &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Choisir un appareil (<xliff:g id="PROFILE_NAME">%1$s</xliff:g>) pour le configurer"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"À la recherche de l\'appareil suivant : <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Choisir votre <xliff:g id="PROFILE_NAME">%1$s</xliff:g> à configurer"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Recherche de votre <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Cette appli sera autorisée à synchroniser des informations, comme le nom de l\'appelant, et à accéder à ces autorisations sur votre <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Autoriser &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; à gérer &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"appareil"</string>
diff --git a/packages/CompanionDeviceManager/res/values-gu/strings.xml b/packages/CompanionDeviceManager/res/values-gu/strings.xml
index d3db96e..9df54da 100644
--- a/packages/CompanionDeviceManager/res/values-gu/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-gu/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"કમ્પેનિયન ડિવાઇસ મેનેજર"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"શું &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;ને ઍક્સેસ કરવા માટે, &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ઍપને મંજૂરી આપીએ?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"ખાતરી કરો કે આ <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> દ્વારા <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ચાલુ કરવામાં આવી છે અને તમારી <xliff:g id="PROFILE_NAME">%3$s</xliff:g> નજીકમાં રાખો."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"ખાતરી કરો કે આ <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> દ્વારા <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ચાલુ કરવામાં આવ્યું છે અને તમારી <xliff:g id="PROFILE_NAME">%3$s</xliff:g> નજીકમાં રાખો."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"કોઈ ડિવાઇસ મળ્યું નથી. કૃપા કરીને થોડા સમય પછી ફરી પ્રયાસ કરો."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"બ્લૂટૂથ"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"વાઇ-ફાઇ"</string>
diff --git a/packages/CompanionDeviceManager/res/values-hi/strings.xml b/packages/CompanionDeviceManager/res/values-hi/strings.xml
index 2d38a00..fe04cbd 100644
--- a/packages/CompanionDeviceManager/res/values-hi/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-hi/strings.xml
@@ -17,8 +17,8 @@
 <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="4470785958457506021">"कंपैनियन डिवाइस मैनेजर"</string>
-    <string name="confirmation_title" msgid="2244241995958340998">"क्या &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; को ऐक्सेस करने के लिए &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ऐप्लिकेशन को अनुमति देनी है?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"पक्का करें कि इस <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> का <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> चालू हो और <xliff:g id="PROFILE_NAME">%3$s</xliff:g> आपके आस-पास हो."</string>
+    <string name="confirmation_title" msgid="2244241995958340998">"क्या &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ऐप्लिकेशन को &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; ऐक्सेस करने की अनुमति देनी है?"</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"पक्का करें कि इस <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> का <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> चालू हो और <xliff:g id="PROFILE_NAME">%3$s</xliff:g> आस-पास हो."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"कोई डिवाइस नहीं मिला. कृपया बाद में कोशिश करें."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"ब्लूटूथ"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"वाई-फ़ाई"</string>
@@ -27,7 +27,7 @@
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; से मैनेज किया जाने वाला डिवाइस चुनें"</string>
     <string name="chooser_title" msgid="2235819929238267637">"सेट अप करने के लिए कोई <xliff:g id="PROFILE_NAME">%1$s</xliff:g> चुनें"</string>
     <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> को ढूंढा जा रहा है"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"यह ऐप्लिकेशन, आपके <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> पर इन अनुमतियों को ऐक्सेस करने के साथ-साथ कॉल करने वाले व्यक्ति के नाम जैसी जानकारी सिंक कर पाएगा"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"यह ऐप्लिकेशन, कॉल करने वाले व्यक्ति के नाम जैसी जानकारी सिंक करने के साथ-साथ, आपके <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> पर इन अनुमतियों को ऐक्सेस कर पाएगा"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"क्या &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; को &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; मैनेज करने की अनुमति देनी है?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"डिवाइस"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"यह ऐप्लिकेशन, आपके <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> पर इन अनुमतियों को ऐक्सेस कर पाएगा"</string>
@@ -63,7 +63,7 @@
     <string name="permission_microphone" msgid="2152206421428732949">"माइक्रोफ़ोन"</string>
     <string name="permission_call_logs" msgid="5546761417694586041">"कॉल लॉग"</string>
     <string name="permission_nearby_devices" msgid="7530973297737123481">"आस-पास मौजूद डिवाइस"</string>
-    <string name="permission_media_routing_control" msgid="5498639511586715253">"मीडिया आउटपुट में बदलाव करे"</string>
+    <string name="permission_media_routing_control" msgid="5498639511586715253">"मीडिया आउटपुट में बदलाव"</string>
     <string name="permission_storage" msgid="6831099350839392343">"फ़ोटो और मीडिया"</string>
     <string name="permission_notifications" msgid="4099418516590632909">"सूचनाएं"</string>
     <string name="permission_phone_summary" msgid="8246321093970051702">"फ़ोन कॉल करने और उन्हें मैनेज करने की अनुमति दें"</string>
diff --git a/packages/CompanionDeviceManager/res/values-hu/strings.xml b/packages/CompanionDeviceManager/res/values-hu/strings.xml
index 8b11dac..9fb92c3 100644
--- a/packages/CompanionDeviceManager/res/values-hu/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-hu/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Társeszközök kezelője"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Engedélyezi a(z) &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; alkalmazás számára, hogy hozzáférjen a következőhöz: &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Győződjön meg arról, hogy a <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> be van kapcsolva ezen a(z) <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> eszközön, és hogy a(z) <xliff:g id="PROFILE_NAME">%3$s</xliff:g> eszköz a közelben van."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Győződjön meg arról, hogy a <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> be van kapcsolva a(z) <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>, és hogy a(z) <xliff:g id="PROFILE_NAME">%3$s</xliff:g> a közelben van."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nem található eszköz. Próbálja újra később."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth és Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"óra"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"A(z) &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; alkalmazással kezelni kívánt eszköz kiválasztása"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Válassza ki a beállítani kívánt <xliff:g id="PROFILE_NAME">%1$s</xliff:g> nevet."</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Válassza ki a beállítani kívánt <xliff:g id="PROFILE_NAME">%1$s</xliff:g> nevét."</string>
     <string name="single_device_title" msgid="4199861437545438606">"Keresés – <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Ez az alkalmazás képes lesz szinkronizálni információkat (például a hívó fél nevét), és hozzáférhet majd ezekhez az engedélyekhez a következőn: <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Ez az alkalmazás képes lesz szinkronizálni információkat (például a hívó fél nevét), és hozzáférhet majd ezekhez az engedélyekhez a <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Engedélyezi, hogy a(z) &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; kezelje a következő eszközt: &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"eszköz"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Az alkalmazás hozzáférhet majd ezekhez az engedélyekhez a következőn: <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
diff --git a/packages/CompanionDeviceManager/res/values-hy/strings.xml b/packages/CompanionDeviceManager/res/values-hy/strings.xml
index 9d45928..b398b94 100644
--- a/packages/CompanionDeviceManager/res/values-hy/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-hy/strings.xml
@@ -18,15 +18,15 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Companion Device Manager"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Թույլատրե՞լ &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; հավելվածին կառավարել &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; սարքը"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Համոզվեք, որ այս <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> սարքի <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>-ը միացված է, և ձեր <xliff:g id="PROFILE_NAME">%3$s</xliff:g>-ը մոտ պահեք։"</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Համոզվեք, որ այս <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>ի <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>-ը միացված է, և ձեր <xliff:g id="PROFILE_NAME">%3$s</xliff:g>ը մոտ պահեք։"</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Սարքեր չեն գտնվել։ Փորձեք ավելի ուշ։"</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth և Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"ժամացույց"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Ընտրեք սարքը, որը պետք է կառավարվի &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; հավելվածի միջոցով"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Կարգավորելու համար ընտրեք <xliff:g id="PROFILE_NAME">%1$s</xliff:g>ը"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> սարքի որոնում"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Կարգավորելու համար ընտրեք <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Որոնվում է <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Այս հավելվածը կկարողանա համաժամացնել տվյալները, օր․՝ զանգողի անունը, և կստանա հետևյալ թույլտվությունները ձեր <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>ում"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Թույլատրե՞լ &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; հավելվածին կառավարել &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; սարքը"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"սարք"</string>
diff --git a/packages/CompanionDeviceManager/res/values-it/strings.xml b/packages/CompanionDeviceManager/res/values-it/strings.xml
index 3fa0419..36647ad 100644
--- a/packages/CompanionDeviceManager/res/values-it/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-it/strings.xml
@@ -27,7 +27,7 @@
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Scegli un dispositivo che sia gestito da &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Scegli un <xliff:g id="PROFILE_NAME">%1$s</xliff:g> da configurare"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Ricerca di un <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Questa app potrà sincronizzare informazioni, ad esempio il nome di un chiamante, e accedere alle seguenti autorizzazioni <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Questa app potrà sincronizzare informazioni, ad esempio il nome di un chiamante, e accedere alle seguenti autorizzazioni sul <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Vuoi consentire all\'app &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; di gestire &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"dispositivo"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Questa app potrà accedere alle seguenti autorizzazioni <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>:"</string>
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> avrà accesso a tutto ciò che viene riprodotto sul tuo <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>.&lt;br/&gt;&lt;br/&gt;<xliff:g id="APP_NAME_2">%1$s</xliff:g> sarà in grado di riprodurre in streaming l\'audio su <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> finché non rimuoverai l\'accesso a questa autorizzazione."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> richiede l\'autorizzazione per conto di <xliff:g id="DEVICE_NAME">%2$s</xliff:g> per riprodurre in streaming funzionalità di sistema e audio tra i tuoi dispositivi."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"dispositivo"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"Questa app potrà sincronizzare informazioni, ad esempio il nome di un chiamante, tra il telefono e il dispositivo scelto"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"Questa app potrà sincronizzare informazioni, ad esempio il nome di un chiamante, tra lo smartphone e il dispositivo scelto"</string>
     <string name="consent_yes" msgid="8344487259618762872">"Consenti"</string>
     <string name="consent_no" msgid="2640796915611404382">"Non consentire"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"Annulla"</string>
diff --git a/packages/CompanionDeviceManager/res/values-iw/strings.xml b/packages/CompanionDeviceManager/res/values-iw/strings.xml
index f775a7f..f08ee6e 100644
--- a/packages/CompanionDeviceManager/res/values-iw/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-iw/strings.xml
@@ -27,7 +27,7 @@
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"‏בחירה של מכשיר לניהול באמצעות &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"בחירת <xliff:g id="PROFILE_NAME">%1$s</xliff:g> להגדרה"</string>
     <string name="single_device_title" msgid="4199861437545438606">"מתבצע חיפוש של <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"האפליקציה הזו תוכל לסנכרן מידע, כמו השם של מישהו שמתקשר, ולגשת להרשאות האלה ב<xliff:g id="DEVICE_TYPE">%1$s</xliff:g> שלך"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"האפליקציה הזו תוכל לסנכרן מידע, כמו השם של מי שמתקשר, ולגשת להרשאות האלה ב<xliff:g id="DEVICE_TYPE">%1$s</xliff:g> שלך"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"‏מתן הרשאה לאפליקציה ‎&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&amp;g;‎‏ לנהל את ‎&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;‎‏"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"מכשיר"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"האפליקציה הזו תוכל לגשת להרשאות האלה ב<xliff:g id="DEVICE_TYPE">%1$s</xliff:g> שלך"</string>
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"‏לאפליקציה <xliff:g id="APP_NAME_0">%1$s</xliff:g> תהיה גישה לכל מה שיופעל במכשיר <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>.&lt;br/&gt;&lt;br/&gt;האפליקציה <xliff:g id="APP_NAME_2">%1$s</xliff:g> תוכל לשדר אודיו אל <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> עד שההרשאה הזו תוסר."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"האפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g> מבקשת בשם <xliff:g id="DEVICE_NAME">%2$s</xliff:g> הרשאה כדי לשדר תכונות מערכת ואודיו בין המכשירים שלך."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"מכשיר"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"האפליקציה הזו תוכל לסנכרן מידע, כמו השם של מישהו שמתקשר, מהטלפון שלך למכשיר שבחרת"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"האפליקציה הזו תוכל לסנכרן מידע, כמו השם של מי שמתקשר, בין הטלפון שלך למכשיר שבחרת"</string>
     <string name="consent_yes" msgid="8344487259618762872">"יש אישור"</string>
     <string name="consent_no" msgid="2640796915611404382">"אין אישור"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"ביטול"</string>
diff --git a/packages/CompanionDeviceManager/res/values-ka/strings.xml b/packages/CompanionDeviceManager/res/values-ka/strings.xml
index d9bc50a..3fb5519 100644
--- a/packages/CompanionDeviceManager/res/values-ka/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-ka/strings.xml
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"საათი"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"აირჩიეთ მოწყობილობა, რომელიც უნდა მართოს &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; აპმა"</string>
     <string name="chooser_title" msgid="2235819929238267637">"აირჩიეთ <xliff:g id="PROFILE_NAME">%1$s</xliff:g> დასაყენებლად"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g>-ის ძებნა"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"იძებნება <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"ეს აპი შეძლებს ინფორმაციის (მაგალითად, იმ ადამიანის სახელი, რომელიც გირეკავთ) სინქრონიზებას და თქვენს <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>-ზე არსებულ ამ ნებართვებზე წვდომას"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"ნება დართეთ &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>-ს&lt;/strong&gt; მართოს &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"მოწყობილობა"</string>
diff --git a/packages/CompanionDeviceManager/res/values-kk/strings.xml b/packages/CompanionDeviceManager/res/values-kk/strings.xml
index 2fd8d96..06b82ec 100644
--- a/packages/CompanionDeviceManager/res/values-kk/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-kk/strings.xml
@@ -17,16 +17,16 @@
 <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="4470785958457506021">"Companion Device Manager"</string>
-    <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; қолданбасына &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;? құрылғысына кіруге рұқсат беріңіз"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Құрылғыдағы (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> қосулы болуын тексеріп, <xliff:g id="PROFILE_NAME">%3$s</xliff:g> құрылғысын маңайында ұстаңыз."</string>
+    <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; қолданбасына &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; құрылғысының дерегін пайдалануға рұқсат беру керек пе?"</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Құрылғыдағы (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> қосулы болуын тексеріп, <xliff:g id="PROFILE_NAME">%3$s</xliff:g> одан алыстамауын қадағалаңыз."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Ешқандай құрылғы табылмады. Кейінірек қайталап көріңіз."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth және Wi-Fi"</string>
-    <string name="profile_name_watch" msgid="576290739483672360">"сағат"</string>
+    <string name="profile_name_watch" msgid="576290739483672360">"Сағат"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; арқылы басқарылатын құрылғыны таңдаңыз"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Реттеу үшін <xliff:g id="PROFILE_NAME">%1$s</xliff:g> таңдаңыз"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> құрылғысын іздеу"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> ізделіп жатыр"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Бұл қолданба қоңырау шалушының аты сияқты деректі синхрондай алады және құрылғыдағы (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) осы рұқсаттарды пайдалана алады."</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; қолданбасына &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; құрылғысын басқаруға рұқсат беру керек пе?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"құрылғы"</string>
@@ -45,7 +45,7 @@
     <string name="title_sensor_device_streaming" msgid="2395553261097861497">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; қолданбасына <xliff:g id="DEVICE_TYPE">%2$s</xliff:g> құрылғыңыз бен &lt;strong&gt;<xliff:g id="DEVICE_NAME">%3$s</xliff:g>&lt;/strong&gt; құрылғысы арасында аудио және жүйе функцияларын трансляциялауға рұқсат берілсін бе?"</string>
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> қолданбасы <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g> құрылғыңызда ойнатылатын барлық контентті пайдалана алады.&lt;br/&gt;&lt;br/&gt;Бұл рұқсатты өшірмесеңіз, <xliff:g id="APP_NAME_2">%1$s</xliff:g> қолданбасы <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> құрылғысына аудионы трансляциялай алады."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасы <xliff:g id="DEVICE_NAME">%2$s</xliff:g> атынан құрылғыларыңыз арасында аудио және жүйе функцияларын трансляциялауға рұқсат сұрайды."</string>
-    <string name="profile_name_generic" msgid="6851028682723034988">"құрылғы"</string>
+    <string name="profile_name_generic" msgid="6851028682723034988">"Құрылғы"</string>
     <string name="summary_generic" msgid="1761976003668044801">"Бұл қолданба телефон мен таңдалған құрылғы арасында деректі (мысалы, қоңырау шалушының атын) синхрондай алады."</string>
     <string name="consent_yes" msgid="8344487259618762872">"Рұқсат беру"</string>
     <string name="consent_no" msgid="2640796915611404382">"Рұқсат бермеу"</string>
diff --git a/packages/CompanionDeviceManager/res/values-kn/strings.xml b/packages/CompanionDeviceManager/res/values-kn/strings.xml
index 8320708..269d729 100644
--- a/packages/CompanionDeviceManager/res/values-kn/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-kn/strings.xml
@@ -17,13 +17,13 @@
 <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="4470785958457506021">"ಕಂಪ್ಯಾನಿಯನ್ ಸಾಧನ ನಿರ್ವಾಹಕರು"</string>
-    <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸಬೇಕೆ?"</string>
+    <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ಗೆ ಅನುಮತಿಸಬೇಕೆ?"</string>
     <string name="message_discovery_soft_timeout" msgid="473346859407859161">"ಈ <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> ನಲ್ಲಿ <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ಆನ್ ಆಗಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ನಿಮ್ಮ <xliff:g id="PROFILE_NAME">%3$s</xliff:g> ಅನ್ನು ಸಮೀಪಲ್ಲಿಡಿ."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"ಯಾವುದೇ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"ಬ್ಲೂಟೂತ್"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"ವೈ-ಫೈ"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"ಬ್ಲೂಟೂತ್ ಮತ್ತು ವೈ-ಫೈ"</string>
-    <string name="profile_name_watch" msgid="576290739483672360">"ವೀಕ್ಷಿಸಿ"</string>
+    <string name="profile_name_watch" msgid="576290739483672360">"ವಾಚ್"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ಮೂಲಕ ನಿರ್ವಹಿಸಬೇಕಾದ ಸಾಧನವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="chooser_title" msgid="2235819929238267637">"ಸೆಟಪ್ ಮಾಡಲು <xliff:g id="PROFILE_NAME">%1$s</xliff:g> ಅನ್ನು ಆರಿಸಿ"</string>
     <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> ಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ"</string>
diff --git a/packages/CompanionDeviceManager/res/values-ky/strings.xml b/packages/CompanionDeviceManager/res/values-ky/strings.xml
index af01cf7..a7b4f40 100644
--- a/packages/CompanionDeviceManager/res/values-ky/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-ky/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Companion Device Manager"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; колдонмосуна &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; түзмөгүнө кирүүгө уруксат бересизби?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"<xliff:g id="DEVICE_TYPE">%1$s</xliff:g> түзмөгүңүздөгү <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>ыкмасын күйгүзүп, <xliff:g id="PROFILE_NAME">%3$s</xliff:g> профилиңизди жакын кармаңыз."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"<xliff:g id="DEVICE_TYPE">%1$s</xliff:g> түзмөгүңүз <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> аркылуу башка түзмөктөр менен байланыша аларын текшериңиз. <xliff:g id="PROFILE_NAME">%3$s</xliff:g> жакын кармаңыз."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Түзмөктөр табылган жок. Кийинчерээк кайталап көрүңүз."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"саат"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; аркылуу башкарыла турган түзмөктү тандаңыз"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Тууралоо үчүн <xliff:g id="PROFILE_NAME">%1$s</xliff:g> тандаңыз"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> профилин издөө"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Түзмөк издөө (<xliff:g id="PROFILE_NAME">%1$s</xliff:g>)"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Бул колдонмого маалыматты, мисалы, чалып жаткан адамдын аты-жөнүн шайкештирүүгө жана <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> түзмөгүңүздө төмөнкүлөрдү аткарууга уруксат берилет"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; колдонмосуна &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; түзмөгүн тескөөгө уруксат бересизби?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"түзмөк"</string>
diff --git a/packages/CompanionDeviceManager/res/values-lt/strings.xml b/packages/CompanionDeviceManager/res/values-lt/strings.xml
index 9fcf0fa..5dd1d06 100644
--- a/packages/CompanionDeviceManager/res/values-lt/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-lt/strings.xml
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"laikrodį"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Įrenginio, kuris bus valdomas naudojant programą &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;, pasirinkimas"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Norimo nustatyti <xliff:g id="PROFILE_NAME">%1$s</xliff:g> pasirinkimas"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Ieškoma <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Ieškoma: <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Šiai programai bus leidžiama sinchronizuoti tam tikrą informaciją, pvz., skambinančio asmens vardą, ir pasiekti toliau nurodytus <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> leidimus"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Leisti &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; valdyti &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"įrenginio"</string>
diff --git a/packages/CompanionDeviceManager/res/values-lv/strings.xml b/packages/CompanionDeviceManager/res/values-lv/strings.xml
index 39b158d..40de5d1 100644
--- a/packages/CompanionDeviceManager/res/values-lv/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-lv/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Palīgierīču pārzinis"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Vai atļaut lietotnei &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; piekļūt lietotnei &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Noteikti ieslēdziet šajā ierīcē (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> un gādājiet, lai <xliff:g id="PROFILE_NAME">%3$s</xliff:g> būtu tuvumā."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Pārliecinieties, vai <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> var izveidot savienojumu ar citām ierīcēm ar <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>, un gādājiet, lai <xliff:g id="PROFILE_NAME">%3$s</xliff:g> būtu tuvumā."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nav atrasta neviena ierīce. Lūdzu, vēlāk mēģiniet vēlreiz."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi‑Fi"</string>
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"pulkstenis"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Izvēlieties ierīci, ko pārvaldīt lietotnē &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Jāizvēlas <xliff:g id="PROFILE_NAME">%1$s</xliff:g> iestatīšanai"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Tiek meklēta ierīce (<xliff:g id="PROFILE_NAME">%1$s</xliff:g>)…"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Tiek meklēts <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Šī lietotne drīkstēs sinhronizēt informāciju, piemēram, zvanītāja vārdu, un piekļūt šīm <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> atļaujām."</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Vai atļaut lietotnei &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; piekļūt ierīcei &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"ierīce"</string>
diff --git a/packages/CompanionDeviceManager/res/values-mk/strings.xml b/packages/CompanionDeviceManager/res/values-mk/strings.xml
index 107895d..db1c06a 100644
--- a/packages/CompanionDeviceManager/res/values-mk/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-mk/strings.xml
@@ -17,7 +17,7 @@
 <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="4470785958457506021">"Companion Device Manager"</string>
-    <string name="confirmation_title" msgid="2244241995958340998">"Дозволувате апликацијата &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; да пристапува до &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
+    <string name="confirmation_title" msgid="2244241995958340998">"Дали дозволувате апликацијата &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; да пристапува до &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Погрижете се <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> да биде вклучен на овој <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> и вашиот <xliff:g id="PROFILE_NAME">%3$s</xliff:g> да биде во близина."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Не се најдени уреди. Обидете се повторно подоцна."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
@@ -77,8 +77,8 @@
     <string name="permission_notifications_summary" msgid="2272810466047367030">"• Ги чита сите известувања, меѓу кои и податоци како контакти, пораки и фотографии&lt;br/&gt;• Испраќа известувања&lt;br/&gt;&lt;br/&gt;Може да управувате со способноста на апликацијава да чита и испраќа известувања кога било во „Поставки &gt; Известувања“."</string>
     <string name="permission_storage_summary" msgid="3918240895519506417"></string>
     <string name="permission_media_routing_control_summary" msgid="2714631092321412250">"Пристап до списокот со достапни уреди и контрола кои стримуваат или емитуваат аудио или видео од други апликации"</string>
-    <string name="device_type" product="default" msgid="8268703872070046263">"Телефон"</string>
-    <string name="device_type" product="tablet" msgid="5038791954983067774">"Таблет"</string>
+    <string name="device_type" product="default" msgid="8268703872070046263">"телефон"</string>
+    <string name="device_type" product="tablet" msgid="5038791954983067774">"таблет"</string>
     <string name="device_type" product="tv" msgid="5355611506659405636">"ТВ"</string>
     <string name="device_type" product="device" msgid="1526125965802507189">"уред"</string>
 </resources>
diff --git a/packages/CompanionDeviceManager/res/values-mr/strings.xml b/packages/CompanionDeviceManager/res/values-mr/strings.xml
index 7221562..03a5271 100644
--- a/packages/CompanionDeviceManager/res/values-mr/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-mr/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"सहयोगी डिव्हाइस व्यवस्थापक"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; अ‍ॅपला &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; अ‍ॅक्सेस करण्याची अनुमती द्यायची आहे का?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"या <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> चे <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> सुरू असल्याची खात्री करा आणि तुमचे<xliff:g id="PROFILE_NAME">%3$s</xliff:g> जवळ ठेवा."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"या <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> चे <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> सुरू असल्याची खात्री करा आणि तुमचे <xliff:g id="PROFILE_NAME">%3$s</xliff:g> जवळ ठेवा."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"डिव्हाइस आढळली नाहीत. कृपया नंतर पुन्हा प्रयत्न करा."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"ब्लूटूथ"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"वाय-फाय"</string>
diff --git a/packages/CompanionDeviceManager/res/values-nb/strings.xml b/packages/CompanionDeviceManager/res/values-nb/strings.xml
index 1d62349..6008299 100644
--- a/packages/CompanionDeviceManager/res/values-nb/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-nb/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Companion Device Manager"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Vil du gi &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;-appen tilgang til &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Sørg for at <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> har <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> slått på, og hold <xliff:g id="PROFILE_NAME">%3$s</xliff:g> i nærheten."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Sørg for at denne enheten (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>) har <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> slått på, og hold den andre enheten (<xliff:g id="PROFILE_NAME">%3$s</xliff:g>) i nærheten."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Fant ingen enheter. Prøv på nytt senere."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wifi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth og wifi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"klokke"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Velg en enhet som skal administreres av &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Velg <xliff:g id="PROFILE_NAME">%1$s</xliff:g> som skal konfigureres"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Velg enheten (<xliff:g id="PROFILE_NAME">%1$s</xliff:g>) som skal konfigureres"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Ser etter en <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Denne appen får tillatelse til å synkronisere informasjon, for eksempel navnet til folk som ringer, og har disse tillatelsene på <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Denne appen får tillatelse til å synkronisere informasjon, for eksempel navnet til folk som ringer, og har disse tillatelsene på enheten din (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>)"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Vil du la &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; administrere &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"enheten"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Denne appen får disse tillatelsene på <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
diff --git a/packages/CompanionDeviceManager/res/values-ne/strings.xml b/packages/CompanionDeviceManager/res/values-ne/strings.xml
index b363c4b..dd8b1ae 100644
--- a/packages/CompanionDeviceManager/res/values-ne/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-ne/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"सहयोगी डिभाइसको प्रबन्धक"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; एपलाई &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; प्रयोग गर्ने अनुमति दिने हो?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"यो <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> को <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस् अनि आफ्नो <xliff:g id="PROFILE_NAME">%3$s</xliff:g> नजिकै राख्नुहोस्।"</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"यो <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>को <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस् अनि आफ्नो <xliff:g id="PROFILE_NAME">%3$s</xliff:g> नजिकै राख्नुहोस्।"</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"कुनै पनि डिभाइस भेटिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"ब्लुटुथ"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"ब्लुटुथ तथा Wi-Fi"</string>
-    <string name="profile_name_watch" msgid="576290739483672360">"घडी"</string>
+    <string name="profile_name_watch" msgid="576290739483672360">"स्मार्ट वाच"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"आफूले &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; प्रयोग गरी व्यवस्थापन गर्न चाहेको डिभाइस चयन गर्नुहोस्"</string>
     <string name="chooser_title" msgid="2235819929238267637">"सेट अप गर्नका लागि <xliff:g id="PROFILE_NAME">%1$s</xliff:g> छनौट गर्नुहोस्"</string>
     <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> खोजिँदै छ"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"तपाईंको <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> मा यो एपलाई कल गर्ने व्यक्तिको नाम जस्ता जानकारी सिंक गर्ने र यी कुराहरू गर्ने अनुमति दिइने छ"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"तपाईंको <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>मा यो एपलाई कल गर्ने व्यक्तिको नाम जस्ता जानकारी सिंक गर्ने र निम्न कुरासँग सम्बन्धित अनुमतिहरू दिइने छ"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; लाई &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt; व्यवस्थापन गर्ने अनुमति दिने हो?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"डिभाइस"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"तपाईंको <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> मा यो एपलाई निम्न अनुमति दिइने छ:"</string>
@@ -45,8 +45,8 @@
     <string name="title_sensor_device_streaming" msgid="2395553261097861497">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; लाई तपाईंको <xliff:g id="DEVICE_TYPE">%2$s</xliff:g> र &lt;strong&gt;<xliff:g id="DEVICE_NAME">%3$s</xliff:g>&lt;/strong&gt; का बिचमा अडियो र सिस्टमका सुविधाहरू स्ट्रिम गर्ने अनुमति दिने हो?"</string>
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> ले तपाईंको <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g> मा प्ले गरिने सबै कुरा एक्सेस गर्न सक्ने छ।&lt;br/&gt;&lt;br/&gt;तपाईंले यो अनुमति रद्द नगरेसम्म <xliff:g id="APP_NAME_2">%1$s</xliff:g> ले <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> मा अडियो स्ट्रिम गर्न पाइराख्ने छ।"</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> ले डिभाइस <xliff:g id="DEVICE_NAME">%2$s</xliff:g> को तर्फबाट तपाईंका डिभाइसहरूका बिचमा अडियो र सिस्टमका सुविधाहरू स्ट्रिम गर्ने अनुमति माग्दै छ।"</string>
-    <string name="profile_name_generic" msgid="6851028682723034988">"यन्त्र"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"यो एपले तपाईंको फोन र तपाईंले छनौट गर्ने डिभाइसका बिचमा कल गर्ने व्यक्तिको नाम जस्ता जानकारी सिंक गर्न सक्ने छ।"</string>
+    <string name="profile_name_generic" msgid="6851028682723034988">"डिभाइस"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"यो एपले तपाईंको फोन र छनौट गरिएको डिभाइसका बिचमा कल गर्ने व्यक्तिको नाम जस्ता जानकारी सिंक गर्न सक्ने छ"</string>
     <string name="consent_yes" msgid="8344487259618762872">"अनुमति दिनुहोस्"</string>
     <string name="consent_no" msgid="2640796915611404382">"अनुमति नदिनुहोस्"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"रद्द गर्नुहोस्"</string>
@@ -63,9 +63,9 @@
     <string name="permission_microphone" msgid="2152206421428732949">"माइक्रोफोन"</string>
     <string name="permission_call_logs" msgid="5546761417694586041">"कल लगहरू"</string>
     <string name="permission_nearby_devices" msgid="7530973297737123481">"नजिकैका डिभाइसहरू"</string>
-    <string name="permission_media_routing_control" msgid="5498639511586715253">"मिडिया आउटपुट बदल्नुहोस्"</string>
+    <string name="permission_media_routing_control" msgid="5498639511586715253">"मिडिया आउटपुट बदल्ने"</string>
     <string name="permission_storage" msgid="6831099350839392343">"फोटो र मिडिया"</string>
-    <string name="permission_notifications" msgid="4099418516590632909">"सूचनाहरू"</string>
+    <string name="permission_notifications" msgid="4099418516590632909">"नोटिफिकेसनहरू"</string>
     <string name="permission_phone_summary" msgid="8246321093970051702">"फोन कल गर्ने र व्यवस्थापन गर्ने"</string>
     <string name="permission_call_logs_summary" msgid="7545243592757693321">"फोन कलको लग रिड र राइट गर्ने"</string>
     <string name="permission_sms_summary" msgid="8499509535410068616">"SMS म्यासेज पठाउने र हेर्ने"</string>
diff --git a/packages/CompanionDeviceManager/res/values-nl/strings.xml b/packages/CompanionDeviceManager/res/values-nl/strings.xml
index 5e38961..22feb9d 100644
--- a/packages/CompanionDeviceManager/res/values-nl/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-nl/strings.xml
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> krijgt toegang tot alles wat wordt afgespeeld op je <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>.&lt;br/&gt;&lt;br/&gt;<xliff:g id="APP_NAME_2">%1$s</xliff:g> kan audio naar <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> streamen totdat je de toegang tot dit recht intrekt."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> vraagt namens <xliff:g id="DEVICE_NAME">%2$s</xliff:g> toestemming om audio en systeemfuncties te streamen tussen je apparaten."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"apparaat"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"Deze app kan informatie, zoals de naam van iemand die belt, synchroniseren tussen je telefoon en het gekozen apparaat"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"Deze app kan informatie synchroniseren (zoals de naam van iemand die belt) tussen je telefoon en het gekozen apparaat"</string>
     <string name="consent_yes" msgid="8344487259618762872">"Toestaan"</string>
     <string name="consent_no" msgid="2640796915611404382">"Niet toestaan"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"Annuleren"</string>
diff --git a/packages/CompanionDeviceManager/res/values-or/strings.xml b/packages/CompanionDeviceManager/res/values-or/strings.xml
index 14dcc18..96c6207 100644
--- a/packages/CompanionDeviceManager/res/values-or/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-or/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"ସହଯୋଗୀ ଡିଭାଇସ୍ ପରିଚାଳକ"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;କୁ ଆକ୍ସେସ କରିବା ପାଇଁ &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ଆପକୁ ଅନୁମତି ଦେବେ?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"ସୁନିଶ୍ଚିତ ହୁଏନ୍ତୁ ଏହି <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>ରେ <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ଚାଲୁ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କର <xliff:g id="PROFILE_NAME">%3$s</xliff:g> ଆଖପାଖରେ ରଖନ୍ତୁ।"</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"ସୁନିଶ୍ଚିତ ହୁଏନ୍ତୁ ଯେ ଏହି <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>ରେ <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ଚାଲୁ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କର <xliff:g id="PROFILE_NAME">%3$s</xliff:g> ଆଖପାଖରେ ରଖନ୍ତୁ।"</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"କୌଣସି ଡିଭାଇସ ମିଳିଲା ନାହିଁ। ଦୟାକରି ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"ବ୍ଲୁଟୁଥ"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"ୱାଇ-ଫାଇ"</string>
diff --git a/packages/CompanionDeviceManager/res/values-pl/strings.xml b/packages/CompanionDeviceManager/res/values-pl/strings.xml
index 90bc1e3..62a0d40 100644
--- a/packages/CompanionDeviceManager/res/values-pl/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-pl/strings.xml
@@ -18,14 +18,14 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Menedżer urządzeń towarzyszących"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Zezwolić aplikacji &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; na dostęp do urządzenia &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Upewnij się, że <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> ma włączoną funkcję <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>, i trzymaj urządzenie <xliff:g id="PROFILE_NAME">%3$s</xliff:g> w pobliżu."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Upewnij się, że <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> ma włączoną funkcję <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>, i trzymaj <xliff:g id="PROFILE_NAME">%3$s</xliff:g> w pobliżu."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nie znaleziono urządzeń. Spróbuj ponownie później."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth i Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"zegarek"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Wybierz urządzenie, którym ma zarządzać aplikacja &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Wybierz profil <xliff:g id="PROFILE_NAME">%1$s</xliff:g>, aby go skonfigurować"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Wybierz <xliff:g id="PROFILE_NAME">%1$s</xliff:g>, aby go skonfigurować"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Szukam: <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Aplikacja będzie mogła synchronizować informacje takie jak nazwa dzwoniącego oraz korzystać z tych uprawnień na Twoim urządzeniu (<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>)"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Zezwolić na dostęp aplikacji &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; do urządzenia &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
diff --git a/packages/CompanionDeviceManager/res/values-pt-rBR/strings.xml b/packages/CompanionDeviceManager/res/values-pt-rBR/strings.xml
index 073fa26..81c50c1 100644
--- a/packages/CompanionDeviceManager/res/values-pt-rBR/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-pt-rBR/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Gerenciador de dispositivos complementar"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Permitir que o app &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; acesse o dispositivo &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Confira se o <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> tem o <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ativado e se o <xliff:g id="PROFILE_NAME">%3$s</xliff:g> está por perto."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Confira se o <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> está com o <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ativado e se o <xliff:g id="PROFILE_NAME">%3$s</xliff:g> está por perto."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nenhum dispositivo foi encontrado. Tente de novo mais tarde."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
diff --git a/packages/CompanionDeviceManager/res/values-pt/strings.xml b/packages/CompanionDeviceManager/res/values-pt/strings.xml
index 073fa26..81c50c1 100644
--- a/packages/CompanionDeviceManager/res/values-pt/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-pt/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Gerenciador de dispositivos complementar"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Permitir que o app &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; acesse o dispositivo &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Confira se o <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> tem o <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ativado e se o <xliff:g id="PROFILE_NAME">%3$s</xliff:g> está por perto."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Confira se o <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> está com o <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> ativado e se o <xliff:g id="PROFILE_NAME">%3$s</xliff:g> está por perto."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nenhum dispositivo foi encontrado. Tente de novo mais tarde."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
diff --git a/packages/CompanionDeviceManager/res/values-ru/strings.xml b/packages/CompanionDeviceManager/res/values-ru/strings.xml
index 42acfb7..a5b5b59 100644
--- a/packages/CompanionDeviceManager/res/values-ru/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-ru/strings.xml
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"Приложение \"<xliff:g id="APP_NAME_0">%1$s</xliff:g>\" получит доступ ко всему, что воспроизводится на устройстве \"<xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>\".&lt;br/&gt;&lt;br/&gt;Приложение \"<xliff:g id="APP_NAME_2">%1$s</xliff:g>\" сможет транслировать аудио на устройство \"<xliff:g id="DEVICE_NAME_3">%3$s</xliff:g>\", пока вы не отзовете это разрешение."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" от имени устройства \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\" запрашивает разрешение транслировать аудио и системные функции между устройствами."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"устройство"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"Приложение сможет синхронизировать информацию между телефоном и выбранным устройством, например данные из журнала звонков."</string>
+    <string name="summary_generic" msgid="1761976003668044801">"Приложение сможет синхронизировать информацию между телефоном и выбранным устройством, например имя того, кто вам звонит."</string>
     <string name="consent_yes" msgid="8344487259618762872">"Разрешить"</string>
     <string name="consent_no" msgid="2640796915611404382">"Запретить"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"Отмена"</string>
diff --git a/packages/CompanionDeviceManager/res/values-sk/strings.xml b/packages/CompanionDeviceManager/res/values-sk/strings.xml
index 9ee2ce5..f46252e 100644
--- a/packages/CompanionDeviceManager/res/values-sk/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-sk/strings.xml
@@ -25,7 +25,7 @@
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth a Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"hodinky"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Vyberte zariadenie, ktoré bude spravovať aplikácia &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Vyberte profil <xliff:g id="PROFILE_NAME">%1$s</xliff:g>, ktorý nastavíte"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Vyberte profil <xliff:g id="PROFILE_NAME">%1$s</xliff:g>, ktorý chcete nastaviť"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Hľadá sa zariadenie <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Táto aplikácia bude môcť synchronizovať informácie, napríklad meno volajúceho, a získavať prístup k týmto povoleniam v zariadení <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Chcete povoliť aplikácii &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; spravovať zariadenie &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
diff --git a/packages/CompanionDeviceManager/res/values-sl/strings.xml b/packages/CompanionDeviceManager/res/values-sl/strings.xml
index 3d08276..0696c98 100644
--- a/packages/CompanionDeviceManager/res/values-sl/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-sl/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Upravitelj spremljevalnih naprav"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Želite aplikaciji &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; dovoliti dostop do naprave &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Poskrbite, da je v napravi <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> vklopljena nastavitev »<xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>«, in napravo <xliff:g id="PROFILE_NAME">%3$s</xliff:g> imejte v bližini."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Poskrbite, da ima <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> vklopljen <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>, <xliff:g id="PROFILE_NAME">%3$s</xliff:g> pa naj bo v bližini."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Ni naprav. Poskusite znova pozneje."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth in Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"ura"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Izbira naprave, ki jo bo upravljala aplikacija &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Izberite profil naprave »<xliff:g id="PROFILE_NAME">%1$s</xliff:g>« za nastavitev"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Iskanje naprave <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Ta aplikacija bo lahko sinhronizirala podatke, na primer ime klicatelja, in dostopala do teh dovoljenj v napravi »<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>«."</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Izberite za nastavitev: <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Iskanje: <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Ta aplikacija bo lahko sinhronizirala podatke, na primer ime klicatelja, in dostopala do teh dovoljenj v: <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>."</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Želite aplikaciji &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; dovoliti upravljanje naprave &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"naprava"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Ta aplikacija bo lahko dostopala do teh dovoljenj v napravi »<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>«."</string>
diff --git a/packages/CompanionDeviceManager/res/values-sq/strings.xml b/packages/CompanionDeviceManager/res/values-sq/strings.xml
index de32322..02f88ce 100644
--- a/packages/CompanionDeviceManager/res/values-sq/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-sq/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Menaxheri i pajisjes shoqëruese"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"T\'i lejohet aplikacionit &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; qasja te &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Sigurohu që ky <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> të ketë të aktivizuar<xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> dhe mbaje <xliff:g id="PROFILE_NAME">%3$s</xliff:g> tënde pranë."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Sigurohu që ky <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> të ketë të aktivizuar <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> dhe kjo <xliff:g id="PROFILE_NAME">%3$s</xliff:g> të mbahet pranë."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Nuk u gjet asnjë pajisje. Provo përsëri më vonë."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth-in"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth-in dhe Wi-Fi"</string>
-    <string name="profile_name_watch" msgid="576290739483672360">"ora inteligjente"</string>
+    <string name="profile_name_watch" msgid="576290739483672360">"orë inteligjente"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Zgjidh një pajisje që do të menaxhohet nga &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Zgjidh një <xliff:g id="PROFILE_NAME">%1$s</xliff:g> për konfigurimin"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Po kërkon për një <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
@@ -45,7 +45,7 @@
     <string name="title_sensor_device_streaming" msgid="2395553261097861497">"Të lejohet që &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; të transmetojë audion dhe veçoritë e sistemit mes <xliff:g id="DEVICE_TYPE">%2$s</xliff:g> dhe &lt;strong&gt;<xliff:g id="DEVICE_NAME">%3$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> do të ketë qasje në çdo gjë që luhet në pajisjen tënde <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>.&lt;br/&gt;&lt;br/&gt;<xliff:g id="APP_NAME_2">%1$s</xliff:g> do të mund të transmetojë audion te <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> derisa të heqësh qasjen për këtë leje."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"<xliff:g id="APP_NAME">%1$s</xliff:g> po kërkon leje në emër të <xliff:g id="DEVICE_NAME">%2$s</xliff:g> për të transmetuar audion dhe veçoritë e sistemit mes pajisjeve të tua"</string>
-    <string name="profile_name_generic" msgid="6851028682723034988">"pajisja"</string>
+    <string name="profile_name_generic" msgid="6851028682723034988">"pajisje"</string>
     <string name="summary_generic" msgid="1761976003668044801">"Ky aplikacion do të mund të sinkronizojë informacione, si p.sh emrin e dikujt që po telefonon, mes telefonit tënd dhe pajisjes së zgjedhur."</string>
     <string name="consent_yes" msgid="8344487259618762872">"Lejo"</string>
     <string name="consent_no" msgid="2640796915611404382">"Mos lejo"</string>
diff --git a/packages/CompanionDeviceManager/res/values-sr/strings.xml b/packages/CompanionDeviceManager/res/values-sr/strings.xml
index a86d1e1..5f7e53d 100644
--- a/packages/CompanionDeviceManager/res/values-sr/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-sr/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Менаџер придруженог уређаја"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Дозволите да апликација &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; приступа уређају &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Уверите се да је за <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> укључен <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> и да у близини имате <xliff:g id="PROFILE_NAME">%3$s</xliff:g>."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Уверите се да је на <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> укључен <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> и да у близини имате <xliff:g id="PROFILE_NAME">%3$s</xliff:g>."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Није пронађен ниједан уређај. Пробајте поново касније."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"WiFi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth и WiFi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"сат"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Одаберите уређај којим ће управљати апликација &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Одаберите профил <xliff:g id="PROFILE_NAME">%1$s</xliff:g> који желите да подесите"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Одаберите <xliff:g id="PROFILE_NAME">%1$s</xliff:g> који желите да подесите"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Тражи се <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"Овој апликацији ће бити дозвољено да синхронизује податке, попут имена позиваоца, и приступа тим дозволама на уређају <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"Овој апликацији ће бити дозвољено да синхронизује податке, попут имена позиваоца, и приступа следећим дозволама на <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Желите ли да дозволите да &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; управља уређајем &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"уређај"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"Овој апликацији ће бити дозвољено да приступа овим дозволама на уређају <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
diff --git a/packages/CompanionDeviceManager/res/values-sv/strings.xml b/packages/CompanionDeviceManager/res/values-sv/strings.xml
index 7790790..a622ff4 100644
--- a/packages/CompanionDeviceManager/res/values-sv/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-sv/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="4470785958457506021">"Companion Device Manager"</string>
     <string name="confirmation_title" msgid="2244241995958340998">"Vill du tillåta att appen &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; får åtkomst till &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
-    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Se till att <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> har <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> aktiverat och håll <xliff:g id="PROFILE_NAME">%3$s</xliff:g> i närheten."</string>
+    <string name="message_discovery_soft_timeout" msgid="473346859407859161">"Se till att denna <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> har <xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g> aktiverat och håll din <xliff:g id="PROFILE_NAME">%3$s</xliff:g> i närheten."</string>
     <string name="message_discovery_hard_timeout" msgid="677514663495711424">"Inga enheter hittades. Försök igen senare."</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"Bluetooth"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"Wifi"</string>
@@ -26,7 +26,7 @@
     <string name="profile_name_watch" msgid="576290739483672360">"klocka"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Välj en enhet för hantering av &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="chooser_title" msgid="2235819929238267637">"Välj en <xliff:g id="PROFILE_NAME">%1$s</xliff:g> för konfigurering"</string>
-    <string name="single_device_title" msgid="4199861437545438606">"Söker efter ett <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
+    <string name="single_device_title" msgid="4199861437545438606">"Söker efter en <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Appen får synkronisera information, till exempel namnet på någon som ringer, och får åtkomst till dessa behörigheter på din <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Tillåt att &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; hanterar &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"enhet"</string>
diff --git a/packages/CompanionDeviceManager/res/values-te/strings.xml b/packages/CompanionDeviceManager/res/values-te/strings.xml
index b39b58a..f353b80 100644
--- a/packages/CompanionDeviceManager/res/values-te/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-te/strings.xml
@@ -24,7 +24,7 @@
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"బ్లూటూత్, Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"వాచ్"</string>
-    <string name="chooser_title_non_profile" msgid="6035023914517087400">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; ద్వారా మేనేజ్ చేయబడే పరికరాన్ని ఎంచుకోండి"</string>
+    <string name="chooser_title_non_profile" msgid="6035023914517087400">"&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; మేనేజ్ చేయాల్సిన పరికరాన్ని ఎంచుకోండి"</string>
     <string name="chooser_title" msgid="2235819929238267637">"సెటప్ చేయడానికి <xliff:g id="PROFILE_NAME">%1$s</xliff:g>‌ను ఎంచుకోండి"</string>
     <string name="single_device_title" msgid="4199861437545438606">"<xliff:g id="PROFILE_NAME">%1$s</xliff:g> కోసం స్కాన్ చేస్తోంది"</string>
     <string name="summary_watch" msgid="8134580124808507407">"కాల్ చేస్తున్న వారి పేరు వంటి సమాచారాన్ని సింక్ చేయడానికి, మీ <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>‌లో ఈ అనుమతులను యాక్సెస్ చేయడానికి ఈ యాప్ అనుమతించబడుతుంది"</string>
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> మీ <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>‌లో ప్లే చేయబడిన దేనికైనా యాక్సెస్ కలిగి ఉంటుంది.&lt;br/&gt;&lt;br/&gt;మీరు ఈ అనుమతికి యాక్సెస్‌ను తీసివేసే వరకు <xliff:g id="APP_NAME_2">%1$s</xliff:g> ఆడియోను <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g>‌కు స్ట్రీమ్ చేయగలదు."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"మీ పరికరాల మధ్య ఆడియో, సిస్టమ్ ఫీచర్‌లను స్ట్రీమ్ చేయడానికి <xliff:g id="DEVICE_NAME">%2$s</xliff:g> తరపున <xliff:g id="APP_NAME">%1$s</xliff:g> యాప్ అనుమతిని రిక్వెస్ట్ చేస్తోంది."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"పరికరం"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"కాల్ చేస్తున్న వారి పేరు వంటి సమాచారాన్ని ఈ యాప్ మీ ఫోన్ కు, ఎంచుకున్న పరికరానికీ మధ్య సింక్ చేయగలుగుతుంది"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"ఈ యాప్, కాల్ చేస్తున్న వారి పేరు లాంటి సమాచారాన్ని మీ ఫోన్‌కు, సెలెక్ట్ అయిన పరికరానికి మధ్య సింక్ చేస్తుంది."</string>
     <string name="consent_yes" msgid="8344487259618762872">"అనుమతించండి"</string>
     <string name="consent_no" msgid="2640796915611404382">"అనుమతించవద్దు"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"రద్దు చేయండి"</string>
diff --git a/packages/CompanionDeviceManager/res/values-tl/strings.xml b/packages/CompanionDeviceManager/res/values-tl/strings.xml
index 9150a48..8d5470c 100644
--- a/packages/CompanionDeviceManager/res/values-tl/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-tl/strings.xml
@@ -25,7 +25,7 @@
     <string name="discovery_mixed" msgid="7071466134150760127">"Bluetooth at Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"relo"</string>
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"Pumili ng device na papamahalaan ng &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"Pumili ng <xliff:g id="PROFILE_NAME">%1$s</xliff:g> para mag-set up"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"Pumili ng <xliff:g id="PROFILE_NAME">%1$s</xliff:g> para i-set up"</string>
     <string name="single_device_title" msgid="4199861437545438606">"Hinahanap ang <xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"Papayagan ang app na ito na mag-sync ng impormasyon, tulad ng pangalan ng isang taong tumatawag, at ma-access ang mga pahintulot na ito sa iyong <xliff:g id="DEVICE_TYPE">%1$s</xliff:g>"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"Payagan ang &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; na pamahalaan ang &lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"Magkakaroon ng access ang <xliff:g id="APP_NAME_0">%1$s</xliff:g> sa anumang pine-play sa iyong <xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>.&lt;br/&gt;&lt;br/&gt;Makakapag-stream ang <xliff:g id="APP_NAME_2">%1$s</xliff:g> ng audio sa <xliff:g id="DEVICE_NAME_3">%3$s</xliff:g> hanggang sa alisin mo ang access sa pahintulot na ito."</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"Humihingi ang <xliff:g id="APP_NAME">%1$s</xliff:g> ng pahintulot para sa <xliff:g id="DEVICE_NAME">%2$s</xliff:g> na mag-stream ng audio at mga feature ng system sa pagitan ng iyong mga device."</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"device"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"Magagawa ng app na ito na mag-sync ng impormasyon, tulad ng pangalan ng isang taong tumatawag, sa pagitan ng iyong telepono at ng napiling device"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"Magagawa ng app na ito na mag-sync ng impormasyon, tulad ng pangalan ng taong tumatawag, sa pagitan ng telepono mo at ng napiling device"</string>
     <string name="consent_yes" msgid="8344487259618762872">"Payagan"</string>
     <string name="consent_no" msgid="2640796915611404382">"Huwag payagan"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"Kanselahin"</string>
diff --git a/packages/CompanionDeviceManager/res/values-ur/strings.xml b/packages/CompanionDeviceManager/res/values-ur/strings.xml
index e502a79..f517742 100644
--- a/packages/CompanionDeviceManager/res/values-ur/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-ur/strings.xml
@@ -24,7 +24,7 @@
     <string name="discovery_wifi" msgid="1551782459721758773">"Wi-Fi"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"‏بلوٹوتھ اور Wi-Fi"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"دیکھیں"</string>
-    <string name="chooser_title_non_profile" msgid="6035023914517087400">"‏‎&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;‎ کے ذریعے منتخب کیے جانے کیلئے آلہ منتخب کریں"</string>
+    <string name="chooser_title_non_profile" msgid="6035023914517087400">"‏کوئی آلہ منتخب کریں جس کا نظم و نسق &lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt; کرے"</string>
     <string name="chooser_title" msgid="2235819929238267637">"سیٹ اپ کرنے کے لیے <xliff:g id="PROFILE_NAME">%1$s</xliff:g> کا انتخاب کریں"</string>
     <string name="single_device_title" msgid="4199861437545438606">"‫<xliff:g id="PROFILE_NAME">%1$s</xliff:g> کو تلاش کیا جا رہا ہے"</string>
     <string name="summary_watch" msgid="8134580124808507407">"اس ایپ کو آپ کے <xliff:g id="DEVICE_TYPE">%1$s</xliff:g> پر کسی کال کرنے والے کے نام جیسی معلومات کی مطابقت پذیری کرنے اور ان اجازتوں تک رسائی کی اجازت ہوگی"</string>
diff --git a/packages/CompanionDeviceManager/res/values-zh-rCN/strings.xml b/packages/CompanionDeviceManager/res/values-zh-rCN/strings.xml
index 4360092..ccc046b 100644
--- a/packages/CompanionDeviceManager/res/values-zh-rCN/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-zh-rCN/strings.xml
@@ -17,15 +17,15 @@
 <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="4470785958457506021">"配套设备管理器"</string>
-    <string name="confirmation_title" msgid="2244241995958340998">"允许应用&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;访问&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
+    <string name="confirmation_title" msgid="2244241995958340998">"要允许“&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;”应用访问“&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;”吗?"</string>
     <string name="message_discovery_soft_timeout" msgid="473346859407859161">"请确保此<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>已开启<xliff:g id="DISCOVERY_METHOD">%2$s</xliff:g>,并将<xliff:g id="PROFILE_NAME">%3$s</xliff:g>放在附近。"</string>
-    <string name="message_discovery_hard_timeout" msgid="677514663495711424">"找不到设备,请稍后重试。"</string>
+    <string name="message_discovery_hard_timeout" msgid="677514663495711424">"未找到设备,请稍后重试。"</string>
     <string name="discovery_bluetooth" msgid="5693557668470016164">"蓝牙"</string>
     <string name="discovery_wifi" msgid="1551782459721758773">"WLAN"</string>
     <string name="discovery_mixed" msgid="7071466134150760127">"蓝牙和 WLAN"</string>
     <string name="profile_name_watch" msgid="576290739483672360">"手表"</string>
-    <string name="chooser_title_non_profile" msgid="6035023914517087400">"选择要由&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;管理的设备"</string>
-    <string name="chooser_title" msgid="2235819929238267637">"选择 <xliff:g id="PROFILE_NAME">%1$s</xliff:g> 进行设置"</string>
+    <string name="chooser_title_non_profile" msgid="6035023914517087400">"选择要由“&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;”管理的设备"</string>
+    <string name="chooser_title" msgid="2235819929238267637">"选择要设置的<xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="single_device_title" msgid="4199861437545438606">"寻找<xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="summary_watch" msgid="8134580124808507407">"该应用将能同步信息(例如来电者的姓名),并能获得您<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>上的以下权限"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"允许&lt;strong&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/strong&gt;管理&lt;strong&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/strong&gt;?"</string>
diff --git a/packages/CompanionDeviceManager/res/values-zh-rTW/strings.xml b/packages/CompanionDeviceManager/res/values-zh-rTW/strings.xml
index 2bfcaf2..a96e43f 100644
--- a/packages/CompanionDeviceManager/res/values-zh-rTW/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-zh-rTW/strings.xml
@@ -27,7 +27,7 @@
     <string name="chooser_title_non_profile" msgid="6035023914517087400">"選擇要讓「<xliff:g id="APP_NAME">%1$s</xliff:g>」&lt;strong&gt;&lt;/strong&gt;管理的裝置"</string>
     <string name="chooser_title" msgid="2235819929238267637">"選擇要設定的<xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
     <string name="single_device_title" msgid="4199861437545438606">"尋找<xliff:g id="PROFILE_NAME">%1$s</xliff:g>"</string>
-    <string name="summary_watch" msgid="8134580124808507407">"這個應用程式將可同步處理資訊 (例如來電者名稱) 及取得<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>上的這些權限"</string>
+    <string name="summary_watch" msgid="8134580124808507407">"這個應用程式可同步處理資訊 (例如來電者名稱) 和取得<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>上的這些權限"</string>
     <string name="confirmation_title_glasses" msgid="8288346850537727333">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」&lt;strong&gt;&lt;/strong&gt;管理「<xliff:g id="DEVICE_NAME">%2$s</xliff:g>」&lt;strong&gt;&lt;/strong&gt;嗎?"</string>
     <string name="profile_name_glasses" msgid="3506504967216601277">"裝置"</string>
     <string name="summary_glasses" msgid="5469208629679579157">"這個應用程式將可取得<xliff:g id="DEVICE_TYPE">%1$s</xliff:g>上的這些權限"</string>
@@ -46,7 +46,7 @@
     <string name="summary_sensor_device_streaming" msgid="3413105061195145547">"「<xliff:g id="APP_NAME_0">%1$s</xliff:g>」將可存取「<xliff:g id="DEVICE_NAME_1">%3$s</xliff:g>」播放的所有內容。&lt;br/&gt;&lt;br/&gt;「<xliff:g id="APP_NAME_2">%1$s</xliff:g>」可將音訊串流傳輸到「<xliff:g id="DEVICE_NAME_3">%3$s</xliff:g>」,直到你移除這個權限為止。"</string>
     <string name="helper_summary_sensor_device_streaming" msgid="8860174545653786353">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」正在代表「<xliff:g id="DEVICE_NAME">%2$s</xliff:g>」要求必要權限,以便在裝置間串流傳輸音訊和系統功能。"</string>
     <string name="profile_name_generic" msgid="6851028682723034988">"裝置"</string>
-    <string name="summary_generic" msgid="1761976003668044801">"這個應用程式將可在手機和指定裝置間同步資訊,例如來電者名稱"</string>
+    <string name="summary_generic" msgid="1761976003668044801">"這個應用程式可在手機和指定裝置間同步資訊,例如來電者名稱"</string>
     <string name="consent_yes" msgid="8344487259618762872">"允許"</string>
     <string name="consent_no" msgid="2640796915611404382">"不允許"</string>
     <string name="consent_cancel" msgid="5655005528379285841">"取消"</string>
diff --git a/packages/CredentialManager/res/values-pl/strings.xml b/packages/CredentialManager/res/values-pl/strings.xml
index 6514887..86dd090 100644
--- a/packages/CredentialManager/res/values-pl/strings.xml
+++ b/packages/CredentialManager/res/values-pl/strings.xml
@@ -42,7 +42,7 @@
     <string name="choose_create_option_passkey_title" msgid="8762295821604276511">"Utworzyć klucz dostępu do logowania w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="choose_create_option_password_title" msgid="4481366993598649224">"Zapisać hasło do logowania w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="choose_create_option_sign_in_title" msgid="7092914088455358079">"Zapisać dane używane do logowania w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
-    <string name="passkey" msgid="632353688396759522">"klucz"</string>
+    <string name="passkey" msgid="632353688396759522">"klucz dostępu"</string>
     <string name="password" msgid="6738570945182936667">"hasło"</string>
     <string name="passkeys" msgid="5733880786866559847">"klucze dostępu"</string>
     <string name="passwords" msgid="5419394230391253816">"hasła"</string>
@@ -61,7 +61,7 @@
     <string name="more_options_usage_passwords" msgid="1632047277723187813">"Hasła: <xliff:g id="PASSWORDSNUMBER">%1$s</xliff:g>"</string>
     <string name="more_options_usage_passkeys" msgid="5390320437243042237">"Klucze dostępu: <xliff:g id="PASSKEYSNUMBER">%1$s</xliff:g>"</string>
     <string name="more_options_usage_credentials" msgid="1785697001787193984">"Dane logowania: <xliff:g id="TOTALCREDENTIALSNUMBER">%1$s</xliff:g>"</string>
-    <string name="passkey_before_subtitle" msgid="2448119456208647444">"Klucz"</string>
+    <string name="passkey_before_subtitle" msgid="2448119456208647444">"Klucz dostępu"</string>
     <string name="another_device" msgid="5147276802037801217">"Inne urządzenie"</string>
     <string name="other_password_manager" msgid="565790221427004141">"Inne menedżery haseł"</string>
     <string name="close_sheet" msgid="1393792015338908262">"Zamknij arkusz"</string>
diff --git a/packages/EasterEgg/AndroidManifest.xml b/packages/EasterEgg/AndroidManifest.xml
index 96e5892..bcc10dd 100644
--- a/packages/EasterEgg/AndroidManifest.xml
+++ b/packages/EasterEgg/AndroidManifest.xml
@@ -64,7 +64,7 @@
             android:label="@string/u_egg_name"
             android:icon="@drawable/android16_patch_adaptive"
             android:configChanges="orientation|screenLayout|screenSize|density"
-            android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen">
+            android:theme="@style/Theme.Landroid">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
diff --git a/packages/EasterEgg/res/drawable/ic_planet_large.xml b/packages/EasterEgg/res/drawable/ic_planet_large.xml
new file mode 100644
index 0000000..7ac7c38
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_planet_large.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<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="M12,12m-11,0a11,11 0,1 1,22 0a11,11 0,1 1,-22 0"
+      android:strokeWidth="2"
+      android:fillColor="#16161D"
+      android:strokeColor="#ffffff"/>
+</vector>
diff --git a/packages/EasterEgg/res/drawable/ic_planet_medium.xml b/packages/EasterEgg/res/drawable/ic_planet_medium.xml
new file mode 100644
index 0000000..e997b45
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_planet_medium.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<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="M12,12m-9,0a9,9 0,1 1,18 0a9,9 0,1 1,-18 0"
+      android:strokeWidth="2"
+      android:fillColor="#16161D"
+      android:strokeColor="#ffffff"/>
+</vector>
diff --git a/packages/EasterEgg/res/drawable/ic_planet_small.xml b/packages/EasterEgg/res/drawable/ic_planet_small.xml
new file mode 100644
index 0000000..4333957
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_planet_small.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<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="M12,12m-6,0a6,6 0,1 1,12 0a6,6 0,1 1,-12 0"
+      android:strokeWidth="2"
+      android:fillColor="#16161D"
+      android:strokeColor="#ffffff"/>
+</vector>
diff --git a/packages/EasterEgg/res/drawable/ic_planet_tiny.xml b/packages/EasterEgg/res/drawable/ic_planet_tiny.xml
new file mode 100644
index 0000000..c666765
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_planet_tiny.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<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="M12,12m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0"
+      android:strokeWidth="2"
+      android:fillColor="#16161D"
+      android:strokeColor="#ffffff"/>
+</vector>
diff --git a/packages/EasterEgg/res/drawable/ic_spacecraft.xml b/packages/EasterEgg/res/drawable/ic_spacecraft.xml
new file mode 100644
index 0000000..3cef4ab
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_spacecraft.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="24" android:viewportWidth="24"
+    >
+    <group android:translateX="10" android:translateY="12">
+        <path
+            android:strokeColor="#FFFFFF"
+            android:strokeWidth="2"
+            android:pathData="
+M11.853 0
+C11.853 -4.418 8.374 -8 4.083 -8
+L-5.5 -8
+C-6.328 -8 -7 -7.328 -7 -6.5
+C-7 -5.672 -6.328 -5 -5.5 -5
+L-2.917 -5
+C-1.26 -5 0.083 -3.657 0.083 -2
+L0.083 2
+C0.083 3.657 -1.26 5 -2.917 5
+L-5.5 5
+C-6.328 5 -7 5.672 -7 6.5
+C-7 7.328 -6.328 8 -5.5 8
+L4.083 8
+C8.374 8 11.853 4.418 11.853 0
+Z
+        "/>
+    </group>
+</vector>
diff --git a/packages/EasterEgg/res/drawable/ic_spacecraft_filled.xml b/packages/EasterEgg/res/drawable/ic_spacecraft_filled.xml
new file mode 100644
index 0000000..7a0c703
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_spacecraft_filled.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="24" android:viewportWidth="24"
+    >
+    <group android:translateX="10" android:translateY="12">
+        <path
+            android:strokeColor="#FFFFFF"
+            android:fillColor="#000000"
+            android:strokeWidth="2"
+            android:pathData="
+M11.853 0
+C11.853 -4.418 8.374 -8 4.083 -8
+L-5.5 -8
+C-6.328 -8 -7 -7.328 -7 -6.5
+C-7 -5.672 -6.328 -5 -5.5 -5
+L-2.917 -5
+C-1.26 -5 0.083 -3.657 0.083 -2
+L0.083 2
+C0.083 3.657 -1.26 5 -2.917 5
+L-5.5 5
+C-6.328 5 -7 5.672 -7 6.5
+C-7 7.328 -6.328 8 -5.5 8
+L4.083 8
+C8.374 8 11.853 4.418 11.853 0
+Z
+        "/>
+    </group>
+</vector>
diff --git a/packages/EasterEgg/res/drawable/ic_spacecraft_rotated.xml b/packages/EasterEgg/res/drawable/ic_spacecraft_rotated.xml
new file mode 100644
index 0000000..2d4ce10
--- /dev/null
+++ b/packages/EasterEgg/res/drawable/ic_spacecraft_rotated.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2025 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:drawable="@drawable/ic_spacecraft"
+    android:fromDegrees="0"
+    android:toDegrees="360"
+    />
\ No newline at end of file
diff --git a/packages/EasterEgg/res/values/themes.xml b/packages/EasterEgg/res/values/themes.xml
index 5b16304..3a87e45 100644
--- a/packages/EasterEgg/res/values/themes.xml
+++ b/packages/EasterEgg/res/values/themes.xml
@@ -1,7 +1,26 @@
-<resources>
+<?xml version="1.0" encoding="utf-8"?><!--
+Copyright (C) 2025 The Android Open Source Project
 
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<resources>
     <style name="ThemeOverlay.EasterEgg.AppWidgetContainer" parent="">
         <item name="appWidgetBackgroundColor">@color/light_blue_600</item>
         <item name="appWidgetTextColor">@color/light_blue_50</item>
     </style>
-</resources>
\ No newline at end of file
+
+    <style name="Theme.Landroid" parent="android:Theme.Material.NoActionBar">
+        <item name="android:windowLightStatusBar">false</item>
+        <item name="android:windowLightNavigationBar">false</item>
+    </style>
+</resources>
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/Autopilot.kt b/packages/EasterEgg/src/com/android/egg/landroid/Autopilot.kt
index fb5954e..8214c54 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/Autopilot.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/Autopilot.kt
@@ -41,14 +41,16 @@
 
     val telemetry: String
         get() =
-            listOf(
-                    "---- AUTOPILOT ENGAGED ----",
-                    "TGT: " + (target?.name?.toUpperCase() ?: "SELECTING..."),
-                    "EXE: $strategy" + if (debug.isNotEmpty()) " ($debug)" else "",
-                )
-                .joinToString("\n")
+            if (enabled)
+                listOf(
+                        "---- AUTOPILOT ENGAGED ----",
+                        "TGT: " + (target?.name?.toUpperCase() ?: "SELECTING..."),
+                        "EXE: $strategy" + if (debug.isNotEmpty()) " ($debug)" else "",
+                    )
+                    .joinToString("\n")
+            else ""
 
-    private var strategy: String = "NONE"
+    var strategy: String = "NONE"
     private var debug: String = ""
 
     override fun update(sim: Simulator, dt: Float) {
@@ -119,7 +121,7 @@
                     target.pos +
                         Vec2.makeWithAngleMag(
                             target.velocity.angle(),
-                            min(altitude / 2, target.velocity.mag())
+                            min(altitude / 2, target.velocity.mag()),
                         )
                 leadingVector = leadingPos - ship.pos
 
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/ComposeTools.kt b/packages/EasterEgg/src/com/android/egg/landroid/ComposeTools.kt
index d040fba..e748638 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/ComposeTools.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/ComposeTools.kt
@@ -20,9 +20,19 @@
 import androidx.compose.animation.core.Easing
 import androidx.compose.animation.core.tween
 import androidx.compose.animation.fadeIn
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.Text
+import androidx.compose.material.minimumInteractiveComponentSize
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
 import kotlin.random.Random
 
 @Composable fun Dp.toLocalPx() = with(LocalDensity.current) { this@toLocalPx.toPx() }
@@ -36,6 +46,40 @@
         animationSpec =
             tween(
                 durationMillis = 1000,
-                easing = CubicBezierEasing(0f, 1f, 1f, 0f) * flickerFadeEasing(Random)
+                easing = CubicBezierEasing(0f, 1f, 1f, 0f) * flickerFadeEasing(Random),
             )
     )
+
+fun flickerFadeInAfterDelay(delay: Int = 0) =
+    fadeIn(
+        animationSpec =
+            tween(
+                durationMillis = 1000,
+                delayMillis = delay,
+                easing = CubicBezierEasing(0f, 1f, 1f, 0f) * flickerFadeEasing(Random),
+            )
+    )
+
+@Composable
+fun ConsoleButton(
+    modifier: Modifier = Modifier,
+    textStyle: TextStyle = TextStyle.Default,
+    color: Color,
+    bgColor: Color,
+    borderColor: Color,
+    text: String,
+    onClick: () -> Unit,
+) {
+    Text(
+        style = textStyle,
+        color = color,
+        modifier =
+            modifier
+                .clickable { onClick() }
+                .background(color = bgColor)
+                .border(width = 1.dp, color = borderColor)
+                .padding(6.dp)
+                .minimumInteractiveComponentSize(),
+        text = text,
+    )
+}
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/DreamUniverse.kt b/packages/EasterEgg/src/com/android/egg/landroid/DreamUniverse.kt
index d56e8b9..8d4adf6 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/DreamUniverse.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/DreamUniverse.kt
@@ -56,6 +56,8 @@
             }
         }
 
+    private var notifier: UniverseProgressNotifier? = null
+
     override fun onAttachedToWindow() {
         super.onAttachedToWindow()
 
@@ -76,8 +78,8 @@
                         Random.nextFloat() * PI2f,
                         Random.nextFloatInRange(
                             PLANET_ORBIT_RANGE.start,
-                            PLANET_ORBIT_RANGE.endInclusive
-                        )
+                            PLANET_ORBIT_RANGE.endInclusive,
+                        ),
                     )
         }
 
@@ -94,9 +96,11 @@
         composeView.setContent {
             Spaaaace(modifier = Modifier.fillMaxSize(), u = universe, foldState = foldState)
             DebugText(DEBUG_TEXT)
-            Telemetry(universe)
+            Telemetry(universe, showControls = false)
         }
 
+        notifier = UniverseProgressNotifier(this, universe)
+
         composeView.setViewTreeLifecycleOwner(lifecycleOwner)
         composeView.setViewTreeSavedStateRegistryOwner(lifecycleOwner)
 
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/MainActivity.kt b/packages/EasterEgg/src/com/android/egg/landroid/MainActivity.kt
index 4f77b00..95a60c7 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/MainActivity.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/MainActivity.kt
@@ -21,6 +21,7 @@
 import android.os.Bundle
 import android.util.Log
 import androidx.activity.ComponentActivity
+import androidx.activity.SystemBarStyle
 import androidx.activity.compose.setContent
 import androidx.activity.enableEdgeToEdge
 import androidx.compose.animation.AnimatedVisibility
@@ -34,6 +35,7 @@
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.BoxWithConstraints
 import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.WindowInsets
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.fillMaxWidth
@@ -46,6 +48,7 @@
 import androidx.compose.runtime.MutableState
 import androidx.compose.runtime.currentRecomposeScope
 import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableFloatStateOf
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
@@ -59,6 +62,7 @@
 import androidx.compose.ui.graphics.PathEffect
 import androidx.compose.ui.graphics.drawscope.Stroke
 import androidx.compose.ui.graphics.drawscope.translate
+import androidx.compose.ui.graphics.toArgb
 import androidx.compose.ui.input.pointer.PointerEvent
 import androidx.compose.ui.input.pointer.pointerInput
 import androidx.compose.ui.text.TextStyle
@@ -74,9 +78,6 @@
 import androidx.lifecycle.repeatOnLifecycle
 import androidx.window.layout.FoldingFeature
 import androidx.window.layout.WindowInfoTracker
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
 import java.lang.Float.max
 import java.lang.Float.min
 import java.util.Calendar
@@ -85,11 +86,14 @@
 import kotlin.math.floor
 import kotlin.math.sqrt
 import kotlin.random.Random
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
 
 enum class RandomSeedType {
     Fixed,
     Daily,
-    Evergreen
+    Evergreen,
 }
 
 const val TEST_UNIVERSE = false
@@ -138,6 +142,10 @@
         else -> Build.VERSION.RELEASE_OR_CODENAME.replace(Regex("[a-z]*"), "")
     }
 
+fun getSystemDesignation(universe: Universe): String {
+    return "${getDessertCode()}-${universe.randomSeed % 100_000}"
+}
+
 val DEBUG_TEXT = mutableStateOf("Hello Universe")
 const val SHOW_DEBUG_TEXT = false
 
@@ -150,13 +158,13 @@
             fontWeight = FontWeight.Medium,
             fontSize = 9.sp,
             color = Color.Yellow,
-            text = text.value
+            text = text.value,
         )
     }
 }
 
 @Composable
-fun Telemetry(universe: Universe) {
+fun Telemetry(universe: Universe, showControls: Boolean) {
     var topVisible by remember { mutableStateOf(false) }
     var bottomVisible by remember { mutableStateOf(false) }
 
@@ -174,7 +182,6 @@
     LaunchedEffect("blah") {
         delay(1000)
         bottomVisible = true
-        delay(1000)
         topVisible = true
     }
 
@@ -183,13 +190,11 @@
     // TODO: Narrow the scope of invalidation here to the specific data needed;
     // the behavior below mimics the previous implementation of a snapshot ticker value
     val recomposeScope = currentRecomposeScope
-    Telescope(universe) {
-        recomposeScope.invalidate()
-    }
+    Telescope(universe) { recomposeScope.invalidate() }
 
     BoxWithConstraints(
         modifier =
-            Modifier.fillMaxSize().padding(6.dp).windowInsetsPadding(WindowInsets.safeContent),
+            Modifier.fillMaxSize().padding(6.dp).windowInsetsPadding(WindowInsets.safeContent)
     ) {
         val wide = maxWidth > maxHeight
         Column(
@@ -197,57 +202,82 @@
                 Modifier.align(if (wide) Alignment.BottomEnd else Alignment.BottomStart)
                     .fillMaxWidth(if (wide) 0.45f else 1.0f)
         ) {
-            universe.ship.autopilot?.let { autopilot ->
-                if (autopilot.enabled) {
+            val autopilotEnabled = universe.ship.autopilot?.enabled == true
+            if (autopilotEnabled) {
+                universe.ship.autopilot?.let { autopilot ->
                     AnimatedVisibility(
                         modifier = Modifier,
                         visible = bottomVisible,
-                        enter = flickerFadeIn
+                        enter = flickerFadeIn,
                     ) {
                         Text(
                             style = textStyle,
                             color = Colors.Autopilot,
                             modifier = Modifier.align(Left),
-                            text = autopilot.telemetry
+                            text = autopilot.telemetry,
                         )
                     }
                 }
             }
 
-            AnimatedVisibility(
-                modifier = Modifier,
-                visible = bottomVisible,
-                enter = flickerFadeIn
-            ) {
-                Text(
-                    style = textStyle,
-                    color = Colors.Console,
-                    modifier = Modifier.align(Left),
-                    text =
-                        with(universe.ship) {
-                            val closest = universe.closestPlanet()
-                            val distToClosest = ((closest.pos - pos).mag() - closest.radius).toInt()
-                            listOfNotNull(
-                                    landing?.let {
-                                        "LND: ${it.planet.name.toUpperCase()}\nJOB: ${it.text}"
-                                    }
-                                        ?: if (distToClosest < 10_000) {
-                                            "ALT: $distToClosest"
-                                        } else null,
-                                    "THR: %.0f%%".format(thrust.mag() * 100f),
-                                    "POS: %s".format(pos.str("%+7.0f")),
-                                    "VEL: %.0f".format(velocity.mag())
-                                )
-                                .joinToString("\n")
+            Row(modifier = Modifier.padding(top = 6.dp)) {
+                AnimatedVisibility(
+                    modifier = Modifier.weight(1f),
+                    visible = bottomVisible,
+                    enter = flickerFadeIn,
+                ) {
+                    Text(
+                        style = textStyle,
+                        color = Colors.Console,
+                        text =
+                            with(universe.ship) {
+                                val closest = universe.closestPlanet()
+                                val distToClosest =
+                                    ((closest.pos - pos).mag() - closest.radius).toInt()
+                                listOfNotNull(
+                                        landing?.let {
+                                            "LND: ${it.planet.name.toUpperCase()}\n" +
+                                                "JOB: ${it.text.toUpperCase()}"
+                                        }
+                                            ?: if (distToClosest < 10_000) {
+                                                "ALT: $distToClosest"
+                                            } else null,
+                                        "THR: %.0f%%".format(thrust.mag() * 100f),
+                                        "POS: %s".format(pos.str("%+7.0f")),
+                                        "VEL: %.0f".format(velocity.mag()),
+                                    )
+                                    .joinToString("\n")
+                            },
+                    )
+                }
+
+                if (showControls) {
+                    AnimatedVisibility(
+                        visible = bottomVisible,
+                        enter = flickerFadeInAfterDelay(500),
+                    ) {
+                        ConsoleButton(
+                            textStyle = textStyle,
+                            color = Colors.Console,
+                            bgColor = if (autopilotEnabled) Colors.Autopilot else Color.Transparent,
+                            borderColor = Colors.Console,
+                            text = "AUTO",
+                        ) {
+                            universe.ship.autopilot?.let {
+                                it.enabled = !it.enabled
+                                DYNAMIC_ZOOM = it.enabled
+                                if (!it.enabled) universe.ship.thrust = Vec2.Zero
+                            }
                         }
-                )
+                    }
+                }
             }
         }
 
         AnimatedVisibility(
             modifier = Modifier.align(Alignment.TopStart),
             visible = topVisible,
-            enter = flickerFadeIn
+            enter = flickerFadeInAfterDelay(1000),
         ) {
             Text(
                 style = textStyle,
@@ -263,13 +293,12 @@
                 text =
                     (with(universe.star) {
                             listOf(
-                                "  STAR: $name (${getDessertCode()}-" +
-                                    "${universe.randomSeed % 100_000})",
+                                "  STAR: $name (${getSystemDesignation(universe)})",
                                 " CLASS: ${cls.name}",
                                 "RADIUS: ${radius.toInt()}",
                                 "  MASS: %.3g".format(mass),
                                 "BODIES: ${explored.size} / ${universe.planets.size}",
-                                ""
+                                "",
                             )
                         } +
                             explored
@@ -280,11 +309,11 @@
                                         "  ATMO: ${it.atmosphere.capitalize()}",
                                         " FAUNA: ${it.fauna.capitalize()}",
                                         " FLORA: ${it.flora.capitalize()}",
-                                        ""
+                                        "",
                                     )
                                 }
                                 .flatten())
-                        .joinToString("\n")
+                        .joinToString("\n"),
 
                 // TODO: different colors, highlight latest discovery
             )
@@ -293,6 +322,7 @@
 }
 
 class MainActivity : ComponentActivity() {
+    private var notifier: UniverseProgressNotifier? = null
     private var foldState = mutableStateOf<FoldingFeature?>(null)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -300,7 +330,7 @@
 
         onWindowLayoutInfoChange()
 
-        enableEdgeToEdge()
+        enableEdgeToEdge(statusBarStyle = SystemBarStyle.dark(Color.Red.toArgb()))
 
         val universe = Universe(namer = Namer(resources), randomSeed = randomSeed())
 
@@ -312,12 +342,13 @@
 
         com.android.egg.ComponentActivationActivity.lockUnlockComponents(applicationContext)
 
-        // for autopilot testing in the activity
-        //        val autopilot = Autopilot(universe.ship, universe)
-        //        universe.ship.autopilot = autopilot
-        //        universe.add(autopilot)
-        //        autopilot.enabled = true
-        //        DYNAMIC_ZOOM = autopilot.enabled
+        // set up the autopilot in case we need it
+        val autopilot = Autopilot(universe.ship, universe)
+        universe.ship.autopilot = autopilot
+        universe.add(autopilot)
+        autopilot.enabled = false
+
+        notifier = UniverseProgressNotifier(this, universe)
 
         setContent {
             Spaaaace(modifier = Modifier.fillMaxSize(), u = universe, foldState = foldState)
@@ -329,7 +360,7 @@
                 modifier = Modifier.fillMaxSize(),
                 minRadius = minRadius,
                 maxRadius = maxRadius,
-                color = Color.Green
+                color = Color.Green,
             ) { vec ->
                 (universe.follow as? Spacecraft)?.let { ship ->
                     if (vec == Vec2.Zero) {
@@ -346,13 +377,13 @@
                             ship.thrust =
                                 Vec2.makeWithAngleMag(
                                     a,
-                                    lexp(minRadius, maxRadius, m).coerceIn(0f, 1f)
+                                    lexp(minRadius, maxRadius, m).coerceIn(0f, 1f),
                                 )
                         }
                     }
                 }
             }
-            Telemetry(universe)
+            Telemetry(universe, true)
         }
     }
 
@@ -382,7 +413,7 @@
 
     Spaaaace(modifier = Modifier.fillMaxSize(), universe)
     DebugText(DEBUG_TEXT)
-    Telemetry(universe)
+    Telemetry(universe, true)
 }
 
 @Composable
@@ -391,7 +422,7 @@
     minRadius: Float = 0f,
     maxRadius: Float = 1000f,
     color: Color = Color.Green,
-    onStickChanged: (vector: Vec2) -> Unit
+    onStickChanged: (vector: Vec2) -> Unit,
 ) {
     val origin = remember { mutableStateOf(Vec2.Zero) }
     val target = remember { mutableStateOf(Vec2.Zero) }
@@ -444,14 +475,14 @@
                                             PathEffect.dashPathEffect(
                                                 floatArrayOf(this.density * 1f, this.density * 2f)
                                             )
-                                        else null
-                                )
+                                        else null,
+                                ),
                         )
                         drawLine(
                             color = color,
                             start = origin.value,
                             end = origin.value + Vec2.makeWithAngleMag(a, mag),
-                            strokeWidth = 2f
+                            strokeWidth = 2f,
                         )
                     }
                 }
@@ -462,15 +493,13 @@
 fun Spaaaace(
     modifier: Modifier,
     u: Universe,
-    foldState: MutableState<FoldingFeature?> = mutableStateOf(null)
+    foldState: MutableState<FoldingFeature?> = mutableStateOf(null),
 ) {
     LaunchedEffect(u) {
-        while (true) withInfiniteAnimationFrameNanos { frameTimeNanos ->
-            u.step(frameTimeNanos)
-        }
+        while (true) withInfiniteAnimationFrameNanos { frameTimeNanos -> u.step(frameTimeNanos) }
     }
 
-    var cameraZoom by remember { mutableStateOf(1f) }
+    var cameraZoom by remember { mutableFloatStateOf(DEFAULT_CAMERA_ZOOM) }
     var cameraOffset by remember { mutableStateOf(Offset.Zero) }
 
     val transformableState =
@@ -501,15 +530,16 @@
         val closest = u.closestPlanet()
         val distToNearestSurf = max(0f, (u.ship.pos - closest.pos).mag() - closest.radius * 1.2f)
         //        val normalizedDist = clamp(distToNearestSurf, 50f, 50_000f) / 50_000f
-        if (DYNAMIC_ZOOM) {
-            cameraZoom =
-                expSmooth(
-                    cameraZoom,
-                    clamp(500f / distToNearestSurf, MIN_CAMERA_ZOOM, MAX_CAMERA_ZOOM),
-                    dt = u.dt,
-                    speed = 1.5f
-                )
-        } else if (!TOUCH_CAMERA_ZOOM) cameraZoom = DEFAULT_CAMERA_ZOOM
+        val targetZoom =
+            if (DYNAMIC_ZOOM) {
+                clamp(500f / distToNearestSurf, MIN_CAMERA_ZOOM, MAX_CAMERA_ZOOM)
+            } else {
+                DEFAULT_CAMERA_ZOOM
+            }
+        if (!TOUCH_CAMERA_ZOOM) {
+            cameraZoom = expSmooth(cameraZoom, targetZoom, dt = u.dt, speed = 1.5f)
+        }
+
         if (!TOUCH_CAMERA_PAN) cameraOffset = (u.follow?.pos ?: Vec2.Zero) * -1f
 
         // cameraZoom: metersToPixels
@@ -521,9 +551,9 @@
                 -cameraOffset -
                     Offset(
                         visibleSpaceSizeMeters.width * centerFracX,
-                        visibleSpaceSizeMeters.height * centerFracY
+                        visibleSpaceSizeMeters.height * centerFracY,
                     ),
-                visibleSpaceSizeMeters
+                visibleSpaceSizeMeters,
             )
 
         var gridStep = 1000f
@@ -537,14 +567,14 @@
                 "fps: ${"%3.0f".format(1f / u.dt)} " +
                 "dt: ${u.dt}\n" +
                 ((u.follow as? Spacecraft)?.let {
-                    "ship: p=%s v=%7.2f a=%6.3f t=%s\n".format(
-                        it.pos.str("%+7.1f"),
-                        it.velocity.mag(),
-                        it.angle,
-                        it.thrust.str("%+5.2f")
-                    )
-                }
-                    ?: "") +
+                    "ship: p=%s v=%7.2f a=%6.3f t=%s\n"
+                        .format(
+                            it.pos.str("%+7.1f"),
+                            it.velocity.mag(),
+                            it.angle,
+                            it.thrust.str("%+5.2f"),
+                        )
+                } ?: "") +
                 "star: '${u.star.name}' designation=UDC-${u.randomSeed % 100_000} " +
                 "class=${u.star.cls.name} r=${u.star.radius.toInt()} m=${u.star.mass}\n" +
                 "planets: ${u.planets.size}\n" +
@@ -574,7 +604,7 @@
 
             translate(
                 -visibleSpaceRectMeters.center.x + size.width * 0.5f,
-                -visibleSpaceRectMeters.center.y + size.height * 0.5f
+                -visibleSpaceRectMeters.center.y + size.height * 0.5f,
             ) {
                 // debug outer frame
                 // drawRect(
@@ -590,7 +620,7 @@
                         color = Colors.Eigengrau2,
                         start = Offset(x, visibleSpaceRectMeters.top),
                         end = Offset(x, visibleSpaceRectMeters.bottom),
-                        strokeWidth = (if ((x % (gridStep * 10) == 0f)) 3f else 1.5f) / cameraZoom
+                        strokeWidth = (if ((x % (gridStep * 10) == 0f)) 3f else 1.5f) / cameraZoom,
                     )
                     x += gridStep
                 }
@@ -601,7 +631,7 @@
                         color = Colors.Eigengrau2,
                         start = Offset(visibleSpaceRectMeters.left, y),
                         end = Offset(visibleSpaceRectMeters.right, y),
-                        strokeWidth = (if ((y % (gridStep * 10) == 0f)) 3f else 1.5f) / cameraZoom
+                        strokeWidth = (if ((y % (gridStep * 10) == 0f)) 3f else 1.5f) / cameraZoom,
                     )
                     y += gridStep
                 }
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/Namer.kt b/packages/EasterEgg/src/com/android/egg/landroid/Namer.kt
index 7331807..babf132 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/Namer.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/Namer.kt
@@ -16,8 +16,8 @@
 
 package com.android.egg.landroid
 
-import android.content.res.Resources
 import com.android.egg.R
+import android.content.res.Resources
 import kotlin.random.Random
 
 const val SUFFIX_PROB = 0.75f
@@ -58,7 +58,7 @@
             1f to "*",
             1f to "^",
             1f to "#",
-            0.1f to "(^*!%@##!!"
+            0.1f to "(^*!%@##!!",
         )
 
     private var activities = Bag(resources.getStringArray(R.array.activities))
@@ -101,26 +101,26 @@
     fun floraPlural(rng: Random): String {
         return floraGenericPlurals.pull(rng)
     }
+
     fun faunaPlural(rng: Random): String {
         return faunaGenericPlurals.pull(rng)
     }
+
     fun atmoPlural(rng: Random): String {
         return atmoGenericPlurals.pull(rng)
     }
 
     val TEMPLATE_REGEX = Regex("""\{(flora|fauna|planet|atmo)\}""")
+
     fun describeActivity(rng: Random, target: Planet?): String {
-        return activities
-            .pull(rng)
-            .replace(TEMPLATE_REGEX) {
-                when (it.groupValues[1]) {
-                    "flora" -> (target?.flora ?: "SOME") + " " + floraPlural(rng)
-                    "fauna" -> (target?.fauna ?: "SOME") + " " + faunaPlural(rng)
-                    "atmo" -> (target?.atmosphere ?: "SOME") + " " + atmoPlural(rng)
-                    "planet" -> (target?.description ?: "SOME BODY") // once told me
-                    else -> "unknown template tag: ${it.groupValues[0]}"
-                }
+        return activities.pull(rng).replace(TEMPLATE_REGEX) {
+            when (it.groupValues[1]) {
+                "flora" -> (target?.flora ?: "SOME") + " " + floraPlural(rng)
+                "fauna" -> (target?.fauna ?: "SOME") + " " + faunaPlural(rng)
+                "atmo" -> (target?.atmosphere ?: "SOME") + " " + atmoPlural(rng)
+                "planet" -> (target?.description ?: "SOME BODY") // once told me
+                else -> "unknown template tag: ${it.groupValues[0]}"
             }
-            .toUpperCase()
+        }
     }
 }
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/UniverseProgressNotifier.kt b/packages/EasterEgg/src/com/android/egg/landroid/UniverseProgressNotifier.kt
new file mode 100644
index 0000000..bb3a04d
--- /dev/null
+++ b/packages/EasterEgg/src/com/android/egg/landroid/UniverseProgressNotifier.kt
@@ -0,0 +1,187 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.egg.landroid
+
+import com.android.egg.R
+
+import android.app.Notification
+import android.app.NotificationChannel
+import android.app.NotificationManager
+import android.app.PendingIntent
+import android.content.Context
+import android.content.Intent
+import android.graphics.drawable.Icon
+import androidx.compose.ui.graphics.toArgb
+import androidx.compose.ui.util.lerp
+import kotlinx.coroutines.DisposableHandle
+
+const val CHANNEL_ID = "progress"
+const val CHANNEL_NAME = "Spacecraft progress"
+const val UPDATE_FREQUENCY_SEC = 1f
+
+fun lerpRange(range: ClosedFloatingPointRange<Float>, x: Float): Float =
+    lerp(range.start, range.endInclusive, x)
+
+class UniverseProgressNotifier(val context: Context, val universe: Universe) {
+    private val notificationId = universe.randomSeed.toInt()
+    private val chan =
+        NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT)
+            .apply { lockscreenVisibility = Notification.VISIBILITY_PUBLIC }
+    private val noman =
+        context.getSystemService(NotificationManager::class.java)?.apply {
+            createNotificationChannel(chan)
+        }
+
+    private val registration: DisposableHandle =
+        universe.addSimulationStepListener(this::onSimulationStep)
+
+    private val spacecraftIcon = Icon.createWithResource(context, R.drawable.ic_spacecraft_filled)
+    private val planetIcons =
+        listOf(
+            (lerpRange(PLANET_RADIUS_RANGE, 0.75f)) to
+                Icon.createWithResource(context, R.drawable.ic_planet_large),
+            (lerpRange(PLANET_RADIUS_RANGE, 0.5f)) to
+                Icon.createWithResource(context, R.drawable.ic_planet_medium),
+            (lerpRange(PLANET_RADIUS_RANGE, 0.25f)) to
+                Icon.createWithResource(context, R.drawable.ic_planet_small),
+            (PLANET_RADIUS_RANGE.start to
+                Icon.createWithResource(context, R.drawable.ic_planet_tiny)),
+        )
+
+    private fun getPlanetIcon(planet: Planet): Icon {
+        for ((radius, icon) in planetIcons) {
+            if (planet.radius > radius) return icon
+        }
+        return planetIcons.last().second
+    }
+
+    private val progress = Notification.ProgressStyle().setProgressTrackerIcon(spacecraftIcon)
+
+    private val builder =
+        Notification.Builder(context, CHANNEL_ID)
+            .setContentIntent(
+                PendingIntent.getActivity(
+                    context,
+                    0,
+                    Intent(context, MainActivity::class.java).apply {
+                        flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
+                    },
+                    PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,
+                )
+            )
+            .setPriority(Notification.PRIORITY_DEFAULT)
+            .setColorized(true)
+            .setOngoing(true)
+            .setColor(Colors.Eigengrau2.toArgb())
+            .setStyle(progress)
+
+    private var lastUpdate = 0f
+    private var initialDistToTarget = 0
+
+    private fun onSimulationStep() {
+        if (universe.now - lastUpdate >= UPDATE_FREQUENCY_SEC) {
+            lastUpdate = universe.now
+            // android.util.Log.v("Landroid", "posting notification at time ${universe.now}")
+
+            var distToTarget = 0
+            val autopilot = universe.ship.autopilot
+            val autopilotEnabled: Boolean = autopilot?.enabled == true
+            val target = autopilot?.target
+            val landing = universe.ship.landing
+            val speed = universe.ship.velocity.mag()
+
+            if (landing != null) {
+                // landed
+                builder.setContentTitle("landed: ${landing.planet.name}")
+                builder.setContentText("currently: ${landing.text}")
+                builder.setShortCriticalText("landed")
+
+                progress.setProgress(progress.progressMax)
+                progress.setProgressIndeterminate(false)
+
+                builder.setStyle(progress)
+            } else if (autopilotEnabled) {
+                if (target != null) {
+                    // autopilot en route
+                    distToTarget = ((target.pos - universe.ship.pos).mag() - target.radius).toInt()
+                    if (initialDistToTarget == 0) {
+                        // we have a new target!
+                        initialDistToTarget = distToTarget
+                        progress.progressEndIcon = getPlanetIcon(target)
+                    }
+
+                    val eta = if (speed > 0) "%1.0fs".format(distToTarget / speed) else "???"
+                    builder.setContentTitle("headed to: ${target.name}")
+                    builder.setContentText(
+                        "autopilot is ${autopilot.strategy.toLowerCase()}" +
+                            "\ndist: ${distToTarget}u // eta: $eta"
+                    )
+                    // fun fact: ProgressStyle was originally EnRouteStyle
+                    builder.setShortCriticalText("en route")
+
+                    progress
+                        .setProgressSegments(
+                            listOf(
+                                Notification.ProgressStyle.Segment(initialDistToTarget)
+                                    .setColor(Colors.Track.toArgb())
+                            )
+                        )
+                        .setProgress(initialDistToTarget - distToTarget)
+                        .setProgressIndeterminate(false)
+                    builder.setStyle(progress)
+                } else {
+                    // no target
+                    if (initialDistToTarget != 0) {
+                        // just launched
+                        initialDistToTarget = 0
+                        progress.progressStartIcon = progress.progressEndIcon
+                        progress.progressEndIcon = null
+                    }
+
+                    builder.setContentTitle("in space")
+                    builder.setContentText("selecting new target...")
+                    builder.setShortCriticalText("launched")
+
+                    progress.setProgressIndeterminate(true)
+
+                    builder.setStyle(progress)
+                }
+            } else {
+                // under user control
+
+                initialDistToTarget = 0
+
+                builder.setContentTitle("in space")
+                builder.setContentText("under manual control")
+                builder.setShortCriticalText("adrift")
+
+                builder.setStyle(null)
+            }
+
+            builder
+                .setSubText(getSystemDesignation(universe))
+                .setSmallIcon(R.drawable.ic_spacecraft_rotated)
+
+            val notification = builder.build()
+
+            // one of the silliest things about Android is that icon levels go from 0 to 10000
+            notification.iconLevel = (((universe.ship.angle + PI2f) / PI2f) * 10_000f).toInt()
+
+            noman?.notify(notificationId, notification)
+        }
+    }
+}
diff --git a/packages/InputDevices/res/raw/keyboard_layout_english_india.kcm b/packages/InputDevices/res/raw/keyboard_layout_english_india.kcm
new file mode 100644
index 0000000..0059d00
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_english_india.kcm
@@ -0,0 +1,400 @@
+# Copyright 2025 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# English (India) keyboard layout.
+#
+
+type OVERLAY
+
+map key 86 PLUS
+
+### ROW 1
+
+key GRAVE {
+    label:                              '`'
+    base:                               '`'
+    shift:                              '~'
+    ralt:                               '\u0300'
+    ralt+shift:                         '\u0303'
+}
+
+key 1 {
+    label:                              '1'
+    base:                               '1'
+    shift:                              '!'
+}
+
+key 2 {
+    label:                              '2'
+    base:                               '2'
+    shift:                              '@'
+}
+
+key 3 {
+    label:                              '3'
+    base:                               '3'
+    shift:                              '#'
+}
+
+key 4 {
+    label:                              '4'
+    base:                               '4'
+    shift:                              '$'
+    ralt, ctrl+shift:                   '\u20b9'
+}
+
+key 5 {
+    label:                              '5'
+    base:                               '5'
+    shift:                              '%'
+}
+
+key 6 {
+    label:                              '6'
+    base:                               '6'
+    shift:                              '^'
+    ralt+shift:                         '\u0302'
+}
+
+key 7 {
+    label:                              '7'
+    base:                               '7'
+    shift:                              '&'
+}
+
+key 8 {
+    label:                              '8'
+    base:                               '8'
+    shift:                              '*'
+}
+
+key 9 {
+    label:                              '9'
+    base:                               '9'
+    shift:                              '('
+    ralt+shift:                         '\u0306'
+}
+
+key 0 {
+    label:                              '0'
+    base:                               '0'
+    shift:                              ')'
+}
+
+key MINUS {
+    label:                              '-'
+    base:                               '-'
+    shift:                              '_'
+    ralt+shift:                         '\u0331'
+}
+
+key EQUALS {
+    label:                              '='
+    base:                               '='
+    shift:                              '+'
+    ralt:                               '\u2013'
+    ralt+shift:                         '\u2014'
+}
+
+### ROW 2
+
+key Q {
+    label:                              'Q'
+    base:                               'q'
+    shift, capslock:                    'Q'
+    capslock+shift:                     'q'
+    ralt:                               '\u00e6'
+    ralt+shift, ralt+capslock:          '\u00c6'
+    ralt+shift+capslock:                '\u00e6'
+}
+
+key W {
+    label:                              'W'
+    base:                               'w'
+    shift, capslock:                    'W'
+    capslock+shift:                     'w'
+}
+
+key E {
+    label:                              'E'
+    base:                               'e'
+    shift, capslock:                    'E'
+    capslock+shift:                     'e'
+    ralt:                               '\u0113'
+    ralt+shift, ralt+capslock:          '\u0112'
+    ralt+shift+capslock:                '\u0113'
+}
+
+key R {
+    label:                              'R'
+    base:                               'r'
+    shift, capslock:                    'R'
+    capslock+shift:                     'r'
+}
+
+key T {
+    label:                              'T'
+    base:                               't'
+    shift, capslock:                    'T'
+    capslock+shift:                     't'
+    ralt:                               '\u1e6d'
+    ralt+shift, ralt+capslock:          '\u1e6c'
+    ralt+shift+capslock:                '\u1e6d'
+}
+
+key Y {
+    label:                              'Y'
+    base:                               'y'
+    shift, capslock:                    'Y'
+    capslock+shift:                     'y'
+    ralt:                               '\u00f1'
+    ralt+shift, ralt+capslock:          '\u00d1'
+    ralt+shift+capslock:                '\u00f1'
+}
+
+key U {
+    label:                              'U'
+    base:                               'u'
+    shift, capslock:                    'U'
+    capslock+shift:                     'u'
+    ralt:                               '\u016b'
+    ralt+shift, ralt+capslock:          '\u016a'
+    ralt+shift+capslock:                '\u016b'
+}
+
+key I {
+    label:                              'I'
+    base:                               'i'
+    shift, capslock:                    'I'
+    capslock+shift:                     'i'
+    ralt:                               '\u012b'
+    ralt+shift, ralt+capslock:          '\u012a'
+    ralt+shift+capslock:                '\u012b'
+}
+
+key O {
+    label:                              'O'
+    base:                               'o'
+    shift, capslock:                    'O'
+    capslock+shift:                     'o'
+    ralt:                               '\u014d'
+    ralt+shift, ralt+capslock:          '\u014c'
+    ralt+shift+capslock:                '\u014d'
+}
+
+key P {
+    label:                              'P'
+    base:                               'p'
+    shift, capslock:                    'P'
+    capslock+shift:                     'p'
+}
+
+key LEFT_BRACKET {
+    label:                              '['
+    base:                               '['
+    shift:                              '{'
+}
+
+key RIGHT_BRACKET {
+    label:                              ']'
+    base:                               ']'
+    shift:                              '}'
+}
+
+### ROW 3
+
+key A {
+    label:                              'A'
+    base:                               'a'
+    shift, capslock:                    'A'
+    capslock+shift:                     'a'
+    ralt:                               '\u0101'
+    ralt+shift, ralt+capslock:          '\u0100'
+    ralt+shift+capslock:                '\u0101'
+}
+
+key S {
+    label:                              'S'
+    base:                               's'
+    shift, capslock:                    'S'
+    capslock+shift:                     's'
+    ralt:                               '\u015b'
+    ralt+shift, ralt+capslock:          '\u015a'
+    ralt+shift+capslock:                '\u015b'
+}
+
+key D {
+    label:                              'D'
+    base:                               'd'
+    shift, capslock:                    'D'
+    capslock+shift:                     'd'
+    ralt:                               '\u1e0d'
+    ralt+shift, ralt+capslock:          '\u1e0c'
+    ralt+shift+capslock:                 '\u1e0d'
+}
+
+key F {
+    label:                              'F'
+    base:                               'f'
+    shift, capslock:                    'F'
+    capslock+shift:                     'f'
+}
+
+key G {
+    label:                              'G'
+    base:                               'g'
+    shift, capslock:                    'G'
+    capslock+shift:                     'g'
+    ralt:                               '\u1e45'
+    ralt+shift, ralt+capslock:          '\u1e44'
+    ralt+shift+capslock:                '\u1e45'
+}
+
+key H {
+    label:                              'H'
+    base:                               'h'
+    shift, capslock:                    'H'
+    capslock+shift:                     'h'
+    ralt:                               '\u1e25'
+    ralt+shift, ralt+capslock:          '\u1e24'
+    ralt+shift+capslock:                '\u1e25'
+}
+
+key J {
+    label:                              'J'
+    base:                               'j'
+    shift, capslock:                    'J'
+    capslock+shift:                     'j'
+}
+
+key K {
+    label:                              'K'
+    base:                               'k'
+    shift, capslock:                    'K'
+    capslock+shift:                     'k'
+}
+
+key L {
+    label:                              'L'
+    base:                               'l'
+    shift, capslock:                    'L'
+    capslock+shift:                     'l'
+}
+
+key SEMICOLON {
+    label:                              ';'
+    base:                               ';'
+    shift:                              ':'
+}
+
+key APOSTROPHE {
+    label:                              '\''
+    base:                               '\''
+    shift:                              '\u0022'
+    ralt:                               '\u030d'
+    ralt+shift:                         '\u030e'
+}
+
+key BACKSLASH {
+    label:                              '\\'
+    base:                               '\\'
+    shift:                              '|'
+}
+
+### ROW 4
+
+key PLUS {
+    label:                              '\\'
+    base:                               '\\'
+    shift:                              '|'
+}
+
+key Z {
+    label:                              'Z'
+    base:                               'z'
+    shift, capslock:                    'Z'
+    capslock+shift:                     'z'
+}
+
+key X {
+    label:                              'X'
+    base:                               'x'
+    shift, capslock:                    'X'
+    capslock+shift:                     'x'
+    ralt:                               '\u1e63'
+    ralt+shift, ralt+capslock:          '\u1e62'
+    ralt+shift+capslock:                '\u1e63'
+}
+
+key C {
+    label:                              'C'
+    base:                               'c'
+    shift, capslock:                    'C'
+    capslock+shift:                     'c'
+}
+
+key V {
+    label:                              'V'
+    base:                               'v'
+    shift, capslock:                    'V'
+    capslock+shift:                     'v'
+}
+
+key B {
+    label:                              'B'
+    base:                               'b'
+    shift, capslock:                    'B'
+    capslock+shift:                     'b'
+}
+
+key N {
+    label:                              'N'
+    base:                               'n'
+    shift, capslock:                    'N'
+    capslock+shift:                     'n'
+    ralt:                               '\u1e47'
+    ralt+shift, ralt+capslock:          '\u1e46'
+    ralt+shift+capslock:                '\u1e47'
+}
+
+key M {
+    label:                              'M'
+    base:                               'm'
+    shift, capslock:                    'M'
+    capslock+shift:                     'm'
+    ralt:                               '\u1e41'
+    ralt+shift, ralt+capslock:          '\u1e40'
+    ralt+shift+capslock:                '\u1e41'
+}
+
+key COMMA {
+    label:                              ','
+    base:                               ','
+    shift:                              '<'
+    ralt+shift:                         '\u030C'
+}
+
+key PERIOD {
+    label:                              '.'
+    base:                               '.'
+    shift:                              '>'
+    ralt:                               '\u0323'
+}
+
+key SLASH {
+    label:                              '/'
+    base:                               '/'
+    shift:                              '?'
+}
diff --git a/packages/InputDevices/res/values/strings.xml b/packages/InputDevices/res/values/strings.xml
index bd7cdc4..8a397a5 100644
--- a/packages/InputDevices/res/values/strings.xml
+++ b/packages/InputDevices/res/values/strings.xml
@@ -167,4 +167,7 @@
 
     <!-- Romanian keyboard layout label. [CHAR LIMIT=35] -->
     <string name="keyboard_layout_romanian">Romanian</string>
+
+    <!-- English (India) keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_english_india">English (India)</string>
 </resources>
diff --git a/packages/InputDevices/res/xml/keyboard_layouts.xml b/packages/InputDevices/res/xml/keyboard_layouts.xml
index 9ce9a87..fa0ed13 100644
--- a/packages/InputDevices/res/xml/keyboard_layouts.xml
+++ b/packages/InputDevices/res/xml/keyboard_layouts.xml
@@ -367,4 +367,11 @@
         android:keyboardLayout="@raw/keyboard_layout_romanian"
         android:keyboardLocale="ro-Latn-RO"
         android:keyboardLayoutType="qwerty" />
+
+    <keyboard-layout
+        android:name="keyboard_layout_english_india"
+        android:label="@string/keyboard_layout_english_india"
+        android:keyboardLayout="@raw/keyboard_layout_english_india"
+        android:keyboardLocale="en-Latn-IN"
+        android:keyboardLayoutType="qwerty" />
 </keyboard-layouts>
diff --git a/packages/PackageInstaller/res/values-my/strings.xml b/packages/PackageInstaller/res/values-my/strings.xml
index 98eae5a..bbcf900 100644
--- a/packages/PackageInstaller/res/values-my/strings.xml
+++ b/packages/PackageInstaller/res/values-my/strings.xml
@@ -58,7 +58,7 @@
     <string name="uninstall_application_title" msgid="4045420072401428123">"အက်ပ်ကို ဖယ်ရှားရန်"</string>
     <string name="uninstall_update_title" msgid="824411791011583031">"အပ်ဒိတ်ကို ဖယ်ရှားရန်"</string>
     <string name="uninstall_activity_text" msgid="1928194674397770771">"<xliff:g id="ACTIVITY_NAME">%1$s</xliff:g> သည် အောက်ပါအက်ပ်၏ တစ်စိတ်တစ်ဒေသဖြစ်သည်−"</string>
-    <string name="uninstall_application_text" msgid="3816830743706143980">"ဤအက်ပ်ကို ဖယ်ရှားလိုပါသလား။"</string>
+    <string name="uninstall_application_text" msgid="3816830743706143980">"ဤအက်ပ်ကို ဖြုတ်လိုပါသလား။"</string>
     <string name="archive_application_text" msgid="8482325710714386348">"သင့်ကိုယ်ရေးအချက်အလက်ကို သိမ်းပါမည်"</string>
     <string name="archive_application_text_all_users" msgid="3151229641681672580">"ဤအက်ပ်ကို အသုံးပြုသူအားလုံးအတွက် သိမ်းမလား။ သင့်ကိုယ်ရေးအချက်အလက်ကို သိမ်းပါမည်"</string>
     <string name="archive_application_text_current_user_work_profile" msgid="1450487362134779752">"ဤအက်ပ်ကို သင့်အလုပ်ပရိုဖိုင်တွင် သိမ်းမလား။ သင့်ကိုယ်ရေးအချက်အလက်ကို သိမ်းပါမည်"</string>
diff --git a/packages/PackageInstaller/res/values-pt-rBR/strings.xml b/packages/PackageInstaller/res/values-pt-rBR/strings.xml
index 332517a..f356bb4 100644
--- a/packages/PackageInstaller/res/values-pt-rBR/strings.xml
+++ b/packages/PackageInstaller/res/values-pt-rBR/strings.xml
@@ -58,7 +58,7 @@
     <string name="uninstall_application_title" msgid="4045420072401428123">"Desinstalar app"</string>
     <string name="uninstall_update_title" msgid="824411791011583031">"Desinstalar atualização"</string>
     <string name="uninstall_activity_text" msgid="1928194674397770771">"<xliff:g id="ACTIVITY_NAME">%1$s</xliff:g> é parte do seguinte app:"</string>
-    <string name="uninstall_application_text" msgid="3816830743706143980">"Você quer desinstalar este app?"</string>
+    <string name="uninstall_application_text" msgid="3816830743706143980">"Você quer desinstalar esse app?"</string>
     <string name="archive_application_text" msgid="8482325710714386348">"Seus dados pessoais serão salvos"</string>
     <string name="archive_application_text_all_users" msgid="3151229641681672580">"Arquivar esse app para todos os usuários? Seus dados pessoais serão salvos"</string>
     <string name="archive_application_text_current_user_work_profile" msgid="1450487362134779752">"Arquivar esse app no seu perfil de trabalho? Seus dados pessoais serão salvos"</string>
diff --git a/packages/PackageInstaller/res/values-pt/strings.xml b/packages/PackageInstaller/res/values-pt/strings.xml
index 332517a..f356bb4 100644
--- a/packages/PackageInstaller/res/values-pt/strings.xml
+++ b/packages/PackageInstaller/res/values-pt/strings.xml
@@ -58,7 +58,7 @@
     <string name="uninstall_application_title" msgid="4045420072401428123">"Desinstalar app"</string>
     <string name="uninstall_update_title" msgid="824411791011583031">"Desinstalar atualização"</string>
     <string name="uninstall_activity_text" msgid="1928194674397770771">"<xliff:g id="ACTIVITY_NAME">%1$s</xliff:g> é parte do seguinte app:"</string>
-    <string name="uninstall_application_text" msgid="3816830743706143980">"Você quer desinstalar este app?"</string>
+    <string name="uninstall_application_text" msgid="3816830743706143980">"Você quer desinstalar esse app?"</string>
     <string name="archive_application_text" msgid="8482325710714386348">"Seus dados pessoais serão salvos"</string>
     <string name="archive_application_text_all_users" msgid="3151229641681672580">"Arquivar esse app para todos os usuários? Seus dados pessoais serão salvos"</string>
     <string name="archive_application_text_current_user_work_profile" msgid="1450487362134779752">"Arquivar esse app no seu perfil de trabalho? Seus dados pessoais serão salvos"</string>
diff --git a/packages/PackageInstaller/res/values-sk/strings.xml b/packages/PackageInstaller/res/values-sk/strings.xml
index ce186f2..fcc06ca 100644
--- a/packages/PackageInstaller/res/values-sk/strings.xml
+++ b/packages/PackageInstaller/res/values-sk/strings.xml
@@ -96,7 +96,7 @@
     <string name="app_name_unknown" msgid="6881210203354323926">"Neznáma"</string>
     <string name="untrusted_external_source_warning" product="tablet" msgid="7067510047443133095">"Váš tablet momentálne nemôže z bezpečnostných dôvodov inštalovať neznáme aplikácie z tohto zdroja. Môžete to zmeniť v Nastaveniach."</string>
     <string name="untrusted_external_source_warning" product="tv" msgid="7057271609532508035">"Váš televízor momentálne nemôže z bezpečnostných dôvodov inštalovať neznáme aplikácie z tohto zdroja. Môžete to zmeniť v Nastaveniach."</string>
-    <string name="untrusted_external_source_warning" product="watch" msgid="7195163388090818636">"Z bezpečnostných dôvodov momentálne nemôžete v hodnikách inštalovať neznáme aplikácie z tohto zdroja. Môžete to zmeniť v Nastaveniach."</string>
+    <string name="untrusted_external_source_warning" product="watch" msgid="7195163388090818636">"Z bezpečnostných dôvodov momentálne nemôžete v hodinkách inštalovať neznáme aplikácie z tohto zdroja. Môžete to zmeniť v Nastaveniach."</string>
     <string name="untrusted_external_source_warning" product="default" msgid="8444191224459138919">"Váš telefón momentálne nemôže z bezpečnostných dôvodov inštalovať neznáme aplikácie z tohto zdroja. Môžete to zmeniť v nastaveniach."</string>
     <string name="anonymous_source_warning" product="default" msgid="2784902545920822500">"Váš telefón a osobné údaje sú zraniteľnejšie voči útoku z neznámych aplikácií. Inštaláciou tejto aplikácie vyjadrujete súhlas s tým, že nesiete zodpovednosť za akékoľvek poškodenie telefónu alebo stratu údajov, ktoré by mohli nastať pri jej používaní."</string>
     <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Váš tablet a osobné dáta sú náchylnejšie na útok z neznámych aplikácií. Inštaláciou tejto aplikácie vyjadrujete súhlas s tým, že nesiete zodpovednosť za akékoľvek poškodenie tabletu alebo stratu dát, ktoré by mohli nastať pri jej používaní."</string>
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
index 95bdb09..e735610 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
@@ -16,6 +16,8 @@
 
 package com.android.printspooler.widget;
 
+import static android.view.accessibility.Flags.triStateChecked;
+
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.accessibility.AccessibilityEvent;
@@ -38,6 +40,20 @@
     }
 
     @Override
+    public boolean performClick() {
+        final boolean result = super.performClick();
+        // This widget is incorrectly using the notion of "selection"
+        // to represent checked state. We can't send this event in
+        // setSelected() because setSelected() is called when this widget
+        // is not attached.
+        if (triStateChecked()) {
+            notifyViewAccessibilityStateChangedIfNeeded(
+                    AccessibilityEvent.CONTENT_CHANGE_TYPE_CHECKED);
+        }
+        return result;
+    }
+
+    @Override
     public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
         super.onInitializeAccessibilityEvent(event);
         event.setChecked(isSelected());
@@ -48,6 +64,11 @@
         super.onInitializeAccessibilityNodeInfo(info);
         info.setSelected(false);
         info.setCheckable(true);
-        info.setChecked(isSelected());
+        if (triStateChecked()) {
+            info.setChecked(isSelected() ? AccessibilityNodeInfo.CHECKED_STATE_TRUE :
+                    AccessibilityNodeInfo.CHECKED_STATE_FALSE);
+        } else {
+            info.setChecked(isSelected());
+        }
     }
 }
diff --git a/packages/SettingsLib/Graph/graph.proto b/packages/SettingsLib/Graph/graph.proto
index ec287c1..52a2160 100644
--- a/packages/SettingsLib/Graph/graph.proto
+++ b/packages/SettingsLib/Graph/graph.proto
@@ -95,6 +95,8 @@
   optional PermissionsProto write_permissions = 18;
   // Tag constants associated with the preference.
   repeated string tags = 19;
+  // Permit to read and write preference value (the lower 15 bits is reserved for read permit).
+  optional int32 read_write_permit = 20;
 
   // Target of an Intent
   message ActionTarget {
diff --git a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt
index e511bf1..13541b1 100644
--- a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt
+++ b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt
@@ -56,6 +56,8 @@
 import com.android.settingslib.metadata.PreferenceSummaryProvider
 import com.android.settingslib.metadata.PreferenceTitleProvider
 import com.android.settingslib.metadata.ReadWritePermit
+import com.android.settingslib.metadata.SensitivityLevel.Companion.HIGH_SENSITIVITY
+import com.android.settingslib.metadata.SensitivityLevel.Companion.UNKNOWN_SENSITIVITY
 import com.android.settingslib.preference.PreferenceScreenFactory
 import com.android.settingslib.preference.PreferenceScreenProvider
 import java.util.Locale
@@ -415,52 +417,46 @@
         for (tag in metadata.tags(context)) addTags(tag)
     }
     persistent = metadata.isPersistent(context)
-    if (persistent) {
-        if (metadata is PersistentPreference<*>) {
-            sensitivityLevel = metadata.sensitivityLevel
-            metadata.getReadPermissions(context)?.let {
-                if (it.size > 0) readPermissions = it.toProto()
-            }
-            metadata.getWritePermissions(context)?.let {
-                if (it.size > 0) writePermissions = it.toProto()
+    if (metadata !is PersistentPreference<*>) return@preferenceProto
+    sensitivityLevel = metadata.sensitivityLevel
+    metadata.getReadPermissions(context)?.let { if (it.size > 0) readPermissions = it.toProto() }
+    metadata.getWritePermissions(context)?.let { if (it.size > 0) writePermissions = it.toProto() }
+    val readPermit = metadata.evalReadPermit(context, callingPid, callingUid)
+    val writePermit =
+        metadata.evalWritePermit(context, callingPid, callingUid) ?: ReadWritePermit.ALLOW
+    readWritePermit = ReadWritePermit.make(readPermit, writePermit)
+    if (
+        flags.includeValue() &&
+            enabled &&
+            (!hasAvailable() || available) &&
+            (!hasRestricted() || !restricted) &&
+            readPermit == ReadWritePermit.ALLOW
+    ) {
+        val storage = metadata.storage(context)
+        value = preferenceValueProto {
+            when (metadata.valueType) {
+                Int::class.javaObjectType -> storage.getInt(metadata.key)?.let { intValue = it }
+                Boolean::class.javaObjectType ->
+                    storage.getBoolean(metadata.key)?.let { booleanValue = it }
+                Float::class.javaObjectType ->
+                    storage.getFloat(metadata.key)?.let { floatValue = it }
+                else -> {}
             }
         }
-        if (
-            flags.includeValue() &&
-                enabled &&
-                (!hasAvailable() || available) &&
-                (!hasRestricted() || !restricted) &&
-                metadata is PersistentPreference<*> &&
-                metadata.evalReadPermit(context, callingPid, callingUid) == ReadWritePermit.ALLOW
-        ) {
-            val storage = metadata.storage(context)
-            value = preferenceValueProto {
-                when (metadata.valueType) {
-                    Int::class.javaObjectType -> storage.getInt(metadata.key)?.let { intValue = it }
-                    Boolean::class.javaObjectType ->
-                        storage.getBoolean(metadata.key)?.let { booleanValue = it }
-                    Float::class.javaObjectType ->
-                        storage.getFloat(metadata.key)?.let { floatValue = it }
-                    else -> {}
-                }
-            }
-        }
-        if (flags.includeValueDescriptor()) {
-            valueDescriptor = preferenceValueDescriptorProto {
-                when (metadata) {
-                    is IntRangeValuePreference -> rangeValue = rangeValueProto {
-                            min = metadata.getMinValue(context)
-                            max = metadata.getMaxValue(context)
-                            step = metadata.getIncrementStep(context)
-                        }
-                    else -> {}
-                }
-                if (metadata is PersistentPreference<*>) {
-                    when (metadata.valueType) {
-                        Boolean::class.javaObjectType -> booleanType = true
-                        Float::class.javaObjectType -> floatType = true
+    }
+    if (flags.includeValueDescriptor()) {
+        valueDescriptor = preferenceValueDescriptorProto {
+            when (metadata) {
+                is IntRangeValuePreference -> rangeValue = rangeValueProto {
+                        min = metadata.getMinValue(context)
+                        max = metadata.getMaxValue(context)
+                        step = metadata.getIncrementStep(context)
                     }
-                }
+                else -> {}
+            }
+            when (metadata.valueType) {
+                Boolean::class.javaObjectType -> booleanType = true
+                Float::class.javaObjectType -> floatType = true
             }
         }
     }
@@ -478,6 +474,20 @@
         else -> getReadPermit(context, callingPid, callingUid)
     }
 
+/** Evaluates the write permit of a persistent preference. */
+fun <T> PersistentPreference<T>.evalWritePermit(
+    context: Context,
+    callingPid: Int,
+    callingUid: Int,
+): Int? =
+    when {
+        sensitivityLevel == UNKNOWN_SENSITIVITY || sensitivityLevel == HIGH_SENSITIVITY ->
+            ReadWritePermit.DISALLOW
+        getWritePermissions(context)?.check(context, callingPid, callingUid) == false ->
+            ReadWritePermit.REQUIRE_APP_PERMISSION
+        else -> getWritePermit(context, callingPid, callingUid)
+    }
+
 private fun PreferenceMetadata.getTitleTextProto(context: Context, isRoot: Boolean): TextProto? {
     if (isRoot && this is PreferenceScreenMetadata) {
         val titleRes = screenTitle
diff --git a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt
index 60f9c6b..72f6934 100644
--- a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt
+++ b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceSetterApi.kt
@@ -36,8 +36,6 @@
 import com.android.settingslib.metadata.PreferenceRestrictionProvider
 import com.android.settingslib.metadata.PreferenceScreenRegistry
 import com.android.settingslib.metadata.ReadWritePermit
-import com.android.settingslib.metadata.SensitivityLevel.Companion.HIGH_SENSITIVITY
-import com.android.settingslib.metadata.SensitivityLevel.Companion.UNKNOWN_SENSITIVITY
 
 /** Request to set preference value. */
 class PreferenceSetterRequest(
@@ -223,13 +221,8 @@
     callingPid: Int,
     callingUid: Int,
 ): Int =
-    when {
-        sensitivityLevel == UNKNOWN_SENSITIVITY || sensitivityLevel == HIGH_SENSITIVITY ->
-            ReadWritePermit.DISALLOW
-        getWritePermissions(context)?.check(context, callingPid, callingUid) == false ->
-            ReadWritePermit.REQUIRE_APP_PERMISSION
-        else -> getWritePermit(context, value, callingPid, callingUid)
-    }
+    evalWritePermit(context, callingPid, callingUid)
+        ?: getWritePermit(context, value, callingPid, callingUid)
 
 /** Message codec for [PreferenceSetterRequest]. */
 object PreferenceSetterRequestCodec : MessageCodec<PreferenceSetterRequest> {
diff --git a/packages/SettingsLib/IntroPreference/res/layout/settingslib_expressive_preference_intro.xml b/packages/SettingsLib/IntroPreference/res/layout/settingslib_expressive_preference_intro.xml
index 7adcbf6..cacd274 100644
--- a/packages/SettingsLib/IntroPreference/res/layout/settingslib_expressive_preference_intro.xml
+++ b/packages/SettingsLib/IntroPreference/res/layout/settingslib_expressive_preference_intro.xml
@@ -17,6 +17,7 @@
 
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/entity_header"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -38,7 +39,9 @@
             android:id="@+id/collapsable_summary"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:gravity="center"/>
+            android:gravity="center"
+            android:minLines="1"
+            app:isCollapsable="true"/>
 
     </LinearLayout>
 
diff --git a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
index f9931cf..9d037e9 100644
--- a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
+++ b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
@@ -33,8 +33,8 @@
     defStyleRes: Int = 0
 ) : Preference(context, attrs, defStyleAttr, defStyleRes), GroupSectionDividerMixin {
 
-    private var isCollapsable: Boolean = false
-    private var minLines: Int = 2
+    private var isCollapsable: Boolean = true
+    private var minLines: Int = DEFAULT_MIN_LINES
     private var hyperlinkListener: View.OnClickListener? = null
     private var learnMoreListener: View.OnClickListener? = null
     private var learnMoreText: CharSequence? = null
@@ -42,22 +42,6 @@
     init {
         layoutResource = R.layout.settingslib_expressive_preference_intro
         isSelectable = false
-
-        initAttributes(context, attrs, defStyleAttr)
-    }
-
-    private fun initAttributes(context: Context, attrs: AttributeSet?, defStyleAttr: Int) {
-        context.obtainStyledAttributes(
-            attrs,
-            COLLAPSABLE_TEXT_VIEW_ATTRS, defStyleAttr, 0
-        ).apply {
-            isCollapsable = getBoolean(IS_COLLAPSABLE, false)
-            minLines = getInt(
-                MIN_LINES,
-                if (isCollapsable) DEFAULT_MIN_LINES else DEFAULT_MAX_LINES
-            ).coerceIn(1, DEFAULT_MAX_LINES)
-            recycle()
-        }
     }
 
     override fun onBindViewHolder(holder: PreferenceViewHolder) {
@@ -139,13 +123,6 @@
 
     companion object {
         private const val DEFAULT_MAX_LINES = 10
-        private const val DEFAULT_MIN_LINES = 2
-
-        private val COLLAPSABLE_TEXT_VIEW_ATTRS =
-            com.android.settingslib.widget.theme.R.styleable.CollapsableTextView
-        private val MIN_LINES =
-            com.android.settingslib.widget.theme.R.styleable.CollapsableTextView_android_minLines
-        private val IS_COLLAPSABLE =
-            com.android.settingslib.widget.theme.R.styleable.CollapsableTextView_isCollapsable
+        private const val DEFAULT_MIN_LINES = 1
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/ApiHandler.kt b/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/ApiHandler.kt
index 6d746e020..33f1c3d 100644
--- a/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/ApiHandler.kt
+++ b/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/ApiHandler.kt
@@ -17,6 +17,7 @@
 package com.android.settingslib.ipc
 
 import android.app.Application
+import android.content.pm.PackageManager.PERMISSION_GRANTED
 import android.os.Bundle
 
 /**
@@ -77,8 +78,20 @@
     companion object {
         private val ALWAYS_ALLOW = ApiPermissionChecker<Any> { _, _, _, _ -> true }
 
+        /** Returns [ApiPermissionChecker] that allows all the request. */
         @Suppress("UNCHECKED_CAST")
         fun <T> alwaysAllow(): ApiPermissionChecker<T> = ALWAYS_ALLOW as ApiPermissionChecker<T>
+
+        /**
+         * Returns [ApiPermissionChecker] that checks if calling app has given [permission].
+         *
+         * Use [AppOpApiPermissionChecker] if the [permission] is app-op.
+         */
+        fun <T> of(permission: String) =
+            ApiPermissionChecker<T> { application, callingPid, callingUid, _ ->
+                application.checkPermission(permission, callingPid, callingUid) ==
+                    PERMISSION_GRANTED
+            }
     }
 }
 
diff --git a/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/AppOpApiPermissionChecker.kt b/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/AppOpApiPermissionChecker.kt
new file mode 100644
index 0000000..4509c1e
--- /dev/null
+++ b/packages/SettingsLib/Ipc/src/com/android/settingslib/ipc/AppOpApiPermissionChecker.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.ipc
+
+import android.app.AppOpsManager
+import android.app.Application
+import android.content.Context
+import android.content.pm.PackageManager
+
+/** [ApiPermissionChecker] that checks if calling app has given app-op permission. */
+class AppOpApiPermissionChecker<T>(private val op: Int, private val permission: String) :
+    ApiPermissionChecker<T> {
+
+    @Suppress("DEPRECATION")
+    override fun hasPermission(
+        application: Application,
+        callingPid: Int,
+        callingUid: Int,
+        request: T,
+    ): Boolean {
+        val appOpsManager =
+            application.getSystemService(Context.APP_OPS_SERVICE) as? AppOpsManager ?: return false
+        val pkg = application.packageManager.getNameForUid(callingUid) ?: return false
+        return when (appOpsManager.noteOp(op, callingUid, pkg)) {
+            AppOpsManager.MODE_ALLOWED -> true
+            AppOpsManager.MODE_DEFAULT ->
+                application.checkPermission(permission, callingPid, callingUid) ==
+                    PackageManager.PERMISSION_GRANTED
+            else -> false
+        }
+    }
+}
diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt
index e456a7f..c723dce 100644
--- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt
+++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt
@@ -41,6 +41,19 @@
         const val REQUIRE_APP_PERMISSION = 2
         /** Require explicit user agreement (e.g. terms of service). */
         const val REQUIRE_USER_AGREEMENT = 3
+
+        private const val READ_PERMIT_BITS = 15
+        private const val READ_PERMIT_MASK = (1 shl 16) - 1
+
+        /** Wraps given read and write permit into an integer. */
+        fun make(readPermit: @ReadWritePermit Int, writePermit: @ReadWritePermit Int): Int =
+            (writePermit shl READ_PERMIT_BITS) or readPermit
+
+        /** Extracts the read permit from given integer generated by [make]. */
+        fun getReadPermit(readWritePermit: Int): Int = readWritePermit and READ_PERMIT_MASK
+
+        /** Extracts the write permit from given integer generated by [make]. */
+        fun getWritePermit(readWritePermit: Int): Int = readWritePermit shr READ_PERMIT_BITS
     }
 }
 
@@ -81,6 +94,12 @@
     /** The value type the preference is associated with. */
     val valueType: Class<T>
 
+    /** The sensitivity level of the preference. */
+    val sensitivityLevel: @SensitivityLevel Int
+        get() = SensitivityLevel.UNKNOWN_SENSITIVITY
+
+    override fun isPersistent(context: Context) = true
+
     /**
      * Returns the key-value storage of the preference.
      *
@@ -102,19 +121,27 @@
      * behind the scene.
      */
     fun getReadPermit(context: Context, callingPid: Int, callingUid: Int): @ReadWritePermit Int =
-        PreferenceScreenRegistry.getReadPermit(
-            context,
-            callingPid,
-            callingUid,
-            this,
-        )
+        PreferenceScreenRegistry.defaultReadPermit
 
     /** Returns the required permissions to write preference value. */
     fun getWritePermissions(context: Context): Permissions? = null
 
     /**
      * Returns if the external application (identified by [callingPid] and [callingUid]) is
-     * permitted to write preference with given [value].
+     * permitted to write preference value. If the write permit depends on certain value, implement
+     * the overloading [getWritePermit] instead.
+     *
+     * The underlying implementation does NOT need to check common states like isEnabled,
+     * isRestricted, isAvailable or permissions in [getWritePermissions]. The framework will do it
+     * behind the scene.
+     */
+    fun getWritePermit(context: Context, callingPid: Int, callingUid: Int): @ReadWritePermit Int? =
+        null
+
+    /**
+     * Returns if the external application (identified by [callingPid] and [callingUid]) is
+     * permitted to write preference with given [value]. Note that if the overloading
+     * [getWritePermit] returns non null value, this method will be ignored!
      *
      * The underlying implementation does NOT need to check common states like isEnabled,
      * isRestricted, isAvailable or permissions in [getWritePermissions]. The framework will do it
@@ -125,18 +152,7 @@
         value: T?,
         callingPid: Int,
         callingUid: Int,
-    ): @ReadWritePermit Int =
-        PreferenceScreenRegistry.getWritePermit(
-            context,
-            value,
-            callingPid,
-            callingUid,
-            this,
-        )
-
-    /** The sensitivity level of the preference. */
-    val sensitivityLevel: @SensitivityLevel Int
-        get() = SensitivityLevel.UNKNOWN_SENSITIVITY
+    ): @ReadWritePermit Int = PreferenceScreenRegistry.defaultWritePermit
 }
 
 /** Descriptor of values. */
diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceMetadata.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceMetadata.kt
index a8939ab..7f2a610 100644
--- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceMetadata.kt
+++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceMetadata.kt
@@ -127,7 +127,7 @@
     fun dependencies(context: Context): Array<String> = arrayOf()
 
     /** Returns if the preference is persistent in datastore. */
-    fun isPersistent(context: Context): Boolean = this is PersistentPreference<*>
+    fun isPersistent(context: Context): Boolean = false
 
     /**
      * Returns if preference value backup is allowed (by default returns `true` if preference is
diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceScreenRegistry.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceScreenRegistry.kt
index 2463109..8d4bfff 100644
--- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceScreenRegistry.kt
+++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceScreenRegistry.kt
@@ -22,12 +22,18 @@
 import com.android.settingslib.datastore.KeyValueStore
 
 /** Registry of all available preference screens in the app. */
-object PreferenceScreenRegistry : ReadWritePermitProvider {
+object PreferenceScreenRegistry {
     private const val TAG = "ScreenRegistry"
 
     /** Provider of key-value store. */
     private lateinit var keyValueStoreProvider: KeyValueStoreProvider
 
+    /** The default permit for external application to read preference values. */
+    var defaultReadPermit: @ReadWritePermit Int = ReadWritePermit.DISALLOW
+
+    /** The default permit for external application to write preference values. */
+    var defaultWritePermit: @ReadWritePermit Int = ReadWritePermit.DISALLOW
+
     /**
      * Factories of all available [PreferenceScreenMetadata]s.
      *
@@ -38,9 +44,6 @@
     /** Metrics logger for preference actions triggered by user interaction. */
     var preferenceUiActionMetricsLogger: PreferenceUiActionMetricsLogger? = null
 
-    private var readWritePermitProvider: ReadWritePermitProvider =
-        object : ReadWritePermitProvider {}
-
     /** Sets the [KeyValueStoreProvider]. */
     fun setKeyValueStoreProvider(keyValueStoreProvider: KeyValueStoreProvider) {
         this.keyValueStoreProvider = keyValueStoreProvider
@@ -77,28 +80,6 @@
             return null
         }
     }
-
-    /**
-     * Sets the provider to check read write permit. Read and write requests are denied by default.
-     */
-    fun setReadWritePermitProvider(readWritePermitProvider: ReadWritePermitProvider) {
-        this.readWritePermitProvider = readWritePermitProvider
-    }
-
-    override fun getReadPermit(
-        context: Context,
-        callingPid: Int,
-        callingUid: Int,
-        preference: PreferenceMetadata,
-    ) = readWritePermitProvider.getReadPermit(context, callingPid, callingUid, preference)
-
-    override fun getWritePermit(
-        context: Context,
-        value: Any?,
-        callingPid: Int,
-        callingUid: Int,
-        preference: PreferenceMetadata,
-    ) = readWritePermitProvider.getWritePermit(context, value, callingPid, callingUid, preference)
 }
 
 /** Provider of [KeyValueStore]. */
@@ -113,25 +94,3 @@
      */
     fun getKeyValueStore(context: Context, preference: PreferenceMetadata): KeyValueStore?
 }
-
-/** Provider of read and write permit. */
-interface ReadWritePermitProvider {
-
-    val defaultReadWritePermit: @ReadWritePermit Int
-        get() = ReadWritePermit.DISALLOW
-
-    fun getReadPermit(
-        context: Context,
-        callingPid: Int,
-        callingUid: Int,
-        preference: PreferenceMetadata,
-    ): @ReadWritePermit Int = defaultReadWritePermit
-
-    fun getWritePermit(
-        context: Context,
-        value: Any?,
-        callingPid: Int,
-        callingUid: Int,
-        preference: PreferenceMetadata,
-    ): @ReadWritePermit Int = defaultReadWritePermit
-}
diff --git a/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_preference.xml b/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_preference.xml
index 526ce14..414a1c3 100644
--- a/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_preference.xml
+++ b/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_preference.xml
@@ -19,8 +19,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:minHeight="?android:attr/listPreferredItemHeight"
-    android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
-    android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd">
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
     <Spinner
         android:id="@+id/spinner"
diff --git a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java
index e173c5e..0f6a2a0 100644
--- a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java
+++ b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java
@@ -118,6 +118,7 @@
         spinner.setAdapter(mAdapter);
         spinner.setSelection(mPosition);
         spinner.setOnItemSelectedListener(mOnSelectedListener);
+        spinner.setLongClickable(false);
         if (mShouldPerformClick) {
             mShouldPerformClick = false;
             // To show dropdown view.
diff --git a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt
index 7eb9840..976711b 100644
--- a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt
+++ b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt
@@ -40,7 +40,7 @@
     defStyleAttr: Int = 0
 ) : ConstraintLayout(context, attrs, defStyleAttr) {
 
-    private var isCollapsable: Boolean = false
+    private var isCollapsable: Boolean = DEFAULT_COLLAPSABLE
     private var isCollapsed: Boolean = false
     private var minLines: Int = DEFAULT_MIN_LINES
 
@@ -78,24 +78,38 @@
 
     private fun initAttributes(context: Context, attrs: AttributeSet?, defStyleAttr: Int) {
         context.obtainStyledAttributes(
-            attrs, Attrs, defStyleAttr, 0
+            attrs, R.styleable.CollapsableTextView, defStyleAttr, 0
         ).apply {
-            val gravity = getInt(GravityAttr, Gravity.START)
+            val gravity = getInt(gravityAttr, Gravity.START)
             when (gravity) {
                 Gravity.CENTER_VERTICAL, Gravity.CENTER, Gravity.CENTER_HORIZONTAL -> {
                     centerHorizontally(titleTextView)
                     centerHorizontally(collapseButton)
                 }
             }
+            isCollapsable = getBoolean(isCollapsableAttr, DEFAULT_COLLAPSABLE)
+            minLines = getInt(minLinesAttr, DEFAULT_MIN_LINES)
             recycle()
         }
     }
 
     private fun centerHorizontally(view: View) {
-        (view.layoutParams as LayoutParams).apply {
-            startToStart = LayoutParams.PARENT_ID
-            endToEnd = LayoutParams.PARENT_ID
-            horizontalBias = 0.5f
+        when (view) {
+            is MaterialButton -> {
+                (view.layoutParams as LayoutParams).apply {
+                    startToStart = LayoutParams.PARENT_ID
+                    endToEnd = LayoutParams.PARENT_ID
+                }
+            }
+            is TextView -> {
+                view.gravity = Gravity.CENTER
+            }
+            else -> {
+                (view.layoutParams as LayoutParams).apply {
+                    startToStart = LayoutParams.PARENT_ID
+                    endToEnd = LayoutParams.PARENT_ID
+                }
+            }
         }
     }
 
@@ -113,6 +127,8 @@
      */
     fun setCollapsable(collapsable: Boolean) {
         isCollapsable = collapsable
+        // Make is collapsed when it's collapsable
+        if (isCollapsable) isCollapsed = true
         updateView()
     }
 
@@ -120,8 +136,8 @@
      * Sets the minimum number of lines to display when collapsed.
      * @param lines The minimum number of lines.
      */
-    fun setMinLines(line: Int) {
-        minLines = line.coerceIn(1, DEFAULT_MAX_LINES)
+    fun setMinLines(lines: Int) {
+        minLines = lines.coerceIn(1, DEFAULT_MAX_LINES)
         updateView()
     }
 
@@ -198,7 +214,7 @@
         }
         learnMoreSpan = LearnMoreSpan(clickListener = learnMoreListener!!)
         spannableLearnMoreText.setSpan(learnMoreSpan, 0, learnMoreText!!.length, 0)
-        learnMoreTextView.setText(spannableLearnMoreText)
+        learnMoreTextView.text = spannableLearnMoreText
         learnMoreTextView.visibility = VISIBLE
         isLearnMoreEnabled = true
     }
@@ -211,6 +227,8 @@
                     icon = collapseButtonResources.expandIcon
                 }
                 titleTextView.maxLines = minLines
+                titleTextView.ellipsize = null
+                titleTextView.scrollBarSize = 0
             }
 
             else -> {
@@ -219,6 +237,7 @@
                     icon = collapseButtonResources.collapseIcon
                 }
                 titleTextView.maxLines = DEFAULT_MAX_LINES
+                titleTextView.ellipsize = TextUtils.TruncateAt.END
             }
         }
         collapseButton.visibility = if (isCollapsable) VISIBLE else GONE
@@ -235,17 +254,19 @@
     companion object {
         private const val DEFAULT_MAX_LINES = 10
         private const val DEFAULT_MIN_LINES = 2
+        private const val DEFAULT_COLLAPSABLE = true
 
         private const val LINK_BEGIN_MARKER = "LINK_BEGIN"
         private const val LINK_END_MARKER = "LINK_END"
 
-        private val Attrs = R.styleable.CollapsableTextView
-        private val GravityAttr = R.styleable.CollapsableTextView_android_gravity
+        private val gravityAttr = R.styleable.CollapsableTextView_android_gravity
+        private val minLinesAttr = R.styleable.CollapsableTextView_android_minLines
+        private val isCollapsableAttr = R.styleable.CollapsableTextView_isCollapsable
     }
 }
 
 internal class LearnMoreSpan(
-    val url: String = "",
+    url: String = "",
     val clickListener: View.OnClickListener) : URLSpan(url) {
     override fun onClick(widget: View) {
         clickListener.onClick(widget)
diff --git a/packages/SettingsLib/res/values-af/arrays.xml b/packages/SettingsLib/res/values-af/arrays.xml
index e4eb72d..c4ba7eb 100644
--- a/packages/SettingsLib/res/values-af/arrays.xml
+++ b/packages/SettingsLib/res/values-af/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Slegs toestelskerm (verstek)"</item>
-    <item msgid="9161645858025071955">"Eksterne skerm"</item>
-    <item msgid="114384731934682483">"Fokusgebaseer"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Wys skakering net op toestelskerm"</item>
-    <item msgid="7795034287069726554">"Wys skerm op enkele eksterne skerm"</item>
-    <item msgid="5280431949814340475">"Wys toestel op laaste gefokusde skerm"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index f6364ff..3a7e452 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Laai vinnig"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Beheer deur administrateur"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Beheer deur Beperkte Instellings"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Onbeskikbaar tydens oproepe"</string>
     <string name="disabled" msgid="8017887509554714950">"Gedeaktiveer"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Toegelaat"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nie toegelaat nie"</string>
diff --git a/packages/SettingsLib/res/values-am/arrays.xml b/packages/SettingsLib/res/values-am/arrays.xml
index 805f0d3..a151f83 100644
--- a/packages/SettingsLib/res/values-am/arrays.xml
+++ b/packages/SettingsLib/res/values-am/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"የመሣሪያ ማሳያ ብቻ (ነባሪ)"</item>
-    <item msgid="9161645858025071955">"ውጫዊ ማሳያ"</item>
-    <item msgid="114384731934682483">"ትኩረት ላይ የተመሰረተ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"በመሣሪያ ማሳያ ላይ ብቻ ጥላ አሳይ"</item>
-    <item msgid="7795034287069726554">"መሣሪያን በአንድ ውጫዊ ማሳያ ላይ አሳይ"</item>
-    <item msgid="5280431949814340475">"በመጨረሻ ትኩረት የተደረገበት ማሳያ ላይ መሣሪያን አሳይ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index d374a9a..25e9c5e 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ፈጣን መሙያ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"በአስተዳዳሪ ቁጥጥር የተደረገበት"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"በተገደበ ቅንብር ቁጥጥር የሚደረግበት"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"በጥሪዎች ጊዜ አይገኝም"</string>
     <string name="disabled" msgid="8017887509554714950">"ቦዝኗል"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ይፈቀዳል"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"አይፈቀድም"</string>
diff --git a/packages/SettingsLib/res/values-ar/arrays.xml b/packages/SettingsLib/res/values-ar/arrays.xml
index 3ff5dc6..ebdb0c7 100644
--- a/packages/SettingsLib/res/values-ar/arrays.xml
+++ b/packages/SettingsLib/res/values-ar/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"شاشة الجهاز فقط (الإعداد التلقائي)"</item>
-    <item msgid="9161645858025071955">"الشاشة الخارجية"</item>
-    <item msgid="114384731934682483">"على الشاشة التي يتم التركيز عليها"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"عرض الظل على شاشة الجهاز فقط"</item>
-    <item msgid="7795034287069726554">"عرض الظل على شاشة خارجية واحدة"</item>
-    <item msgid="5280431949814340475">"عرض الظل على آخر شاشة تم التركيز عليها"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 4d359a8..8956c44 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -251,7 +251,7 @@
     <string name="enable_adb_summary" msgid="3711526030096574316">"‏وضع تصحيح الأخطاء عند توصيل USB"</string>
     <string name="clear_adb_keys" msgid="3010148733140369917">"‏إلغاء عمليات تفويض تصحيح أخطاء USB"</string>
     <string name="enable_adb_wireless" msgid="6973226350963971018">"تصحيح الأخطاء اللاسلكي"</string>
-    <string name="enable_adb_wireless_summary" msgid="7344391423657093011">"‏وضع تصحيح الأخطاء عندما يتم الاتصال بشبكة 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">"تصحيح الأخطاء اللاسلكي"</string>
     <string name="adb_wireless_list_empty_off" msgid="1713707973837255490">"لعرض الأجهزة المتاحة واستخدامها، فعِّل ميزة \"تصحيح الأخطاء اللاسلكي\"."</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"جارٍ الشحن السريع"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"إعدادات يتحكم فيها المشرف"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"يتحكّم فيه إعداد محظور"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"غير متاح أثناء المكالمات"</string>
     <string name="disabled" msgid="8017887509554714950">"غير مفعّل"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"تطبيق مسموح به"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"تطبيق غير مسموح به"</string>
@@ -675,7 +674,7 @@
     <string name="not_grant_admin" msgid="3557849576157702485">"لا أريد منح هذا المستخدم امتيازات المشرف."</string>
     <string name="guest_exit_dialog_button" msgid="1736401897067442044">"خروج"</string>
     <string name="guest_exit_dialog_title_non_ephemeral" msgid="7675327443743162986">"هل تريد حفظ النشاط في وضع الضيف؟"</string>
-    <string name="guest_exit_dialog_message_non_ephemeral" msgid="223385323235719442">"يمكنك حفظ نشاط من الجلسة الحالية أو حذف كلّ التطبيقات والبيانات."</string>
+    <string name="guest_exit_dialog_message_non_ephemeral" msgid="223385323235719442">"يمكنك حفظ نشاطك من الجلسة الحالية أو حذف كلّ التطبيقات والبيانات."</string>
     <string name="guest_exit_clear_data_button" msgid="3425812652180679014">"حذف"</string>
     <string name="guest_exit_save_data_button" msgid="3690974510644963547">"حِفظ"</string>
     <string name="guest_exit_button" msgid="5774985819191803960">"الخروج من وضع الضيف"</string>
diff --git a/packages/SettingsLib/res/values-as/arrays.xml b/packages/SettingsLib/res/values-as/arrays.xml
index 4b5d5a0..451b47a 100644
--- a/packages/SettingsLib/res/values-as/arrays.xml
+++ b/packages/SettingsLib/res/values-as/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"কেৱল ডিভাইচৰ ডিছপ্লে’ (ডিফ’ল্ট)"</item>
     <item msgid="9161645858025071955">"বাহ্যিক ডিছপ্লে’"</item>
-    <item msgid="114384731934682483">"ফ’কাছ-আধাৰিত"</item>
+    <item msgid="23651860565814477">"শেহতীয়া স্থিতি দণ্ড স্পৰ্শ"</item>
+    <item msgid="7521112827893653392">"ফ’কাছ-আধাৰিত"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"কেৱল ডিভাইচৰ ডিছপ্লে’তহে শ্বেড দেখুৱাওক"</item>
-    <item msgid="7795034287069726554">"ডিভাইচটো এখনেই বাহ্যিক ডিছপ্লে’ত দেখুৱাওক"</item>
-    <item msgid="5280431949814340475">"ডিভাইচটো অন্তিম ফ’কাছ কৰা ডিছপ্লে’ত দেখুৱাওক"</item>
+    <item msgid="1955398604822147783">"কেৱল এখনেই বাহ্যিক ডিছপ্লে’ত শ্বেড দেখুৱাওক"</item>
+    <item msgid="391477482416751568">"যিখন ডিছপ্লে’ই অন্তিমবাৰ ইয়াৰ স্থিতি দণ্ডৰ সৈতে ভাৱ-বিনিময় কৰিছে সেইখনত শ্বেড দেখুৱাওক"</item>
+    <item msgid="1746820128097981528">"অন্তিম ফ’কাছ কৰা ডিছপ্লে’ত শ্বেড দেখুৱাওক"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index c98d3de..bfacbb2 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"দ্ৰুত চাৰ্জিং"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"এডমিনৰ দ্বাৰা নিয়ন্ত্ৰিত"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"প্ৰতিবন্ধিত ছেটিঙৰ দ্বাৰা নিয়ন্ত্ৰিত"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"কল চলি থকাৰ সময়ত উপলব্ধ নহয়"</string>
     <string name="disabled" msgid="8017887509554714950">"নিষ্ক্ৰিয়"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"অনুমতি দিয়া হৈছে"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"অনুমতি দিয়া হোৱা নাই"</string>
diff --git a/packages/SettingsLib/res/values-az/arrays.xml b/packages/SettingsLib/res/values-az/arrays.xml
index 511e970..52cf498 100644
--- a/packages/SettingsLib/res/values-az/arrays.xml
+++ b/packages/SettingsLib/res/values-az/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Yalnız cihaz displeyi (defolt)"</item>
-    <item msgid="9161645858025071955">"Xarici displey"</item>
-    <item msgid="114384731934682483">"Fokus əsaslı"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Kölgəni yalnız cihaz displeyində göstərin"</item>
-    <item msgid="7795034287069726554">"Cihazı bir xarici displeydə göstərin"</item>
-    <item msgid="5280431949814340475">"Cihazı son fokuslanmış displeydə göstərin"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index db7d162..9013fb5 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Sürətli şarj"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Admin tərəfindən nəzarət olunur"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Məhdudlaşdırılmış Ayar ilə nəzarət edilir"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Zənglər zamanı əlçatan deyil"</string>
     <string name="disabled" msgid="8017887509554714950">"Deaktiv"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"İcazə verilib"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"İcazə verilməyib"</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
index 4528314..3622808 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Prikaz samo na uređaju (podrazumevano)"</item>
     <item msgid="9161645858025071955">"Spoljni ekran"</item>
-    <item msgid="114384731934682483">"Zasnovano na fokusu"</item>
+    <item msgid="23651860565814477">"Dodir na najnovijoj statusnoj traci"</item>
+    <item msgid="7521112827893653392">"Zasnovano na fokusu"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Prikaži senku samo na ekranu uređaja"</item>
-    <item msgid="7795034287069726554">"Prikaži uređaj na jednom spoljnom ekranu"</item>
-    <item msgid="5280431949814340475">"Prikaži uređaj na poslednjem ekranu u fokusu"</item>
+    <item msgid="1955398604822147783">"Prikaži senku na jednom spoljnom ekranu"</item>
+    <item msgid="391477482416751568">"Prikaži senku na ekranu sa kojim je statusna traka poslednji put bila u interakciji"</item>
+    <item msgid="1746820128097981528">"Prikaži senku na poslednjem ekranu u fokusu"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 3f11056..7a00b96 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Brzo punjenje"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontroliše administrator"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kontrolišu ograničena podešavanja"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Nedostupno tokom poziva"</string>
     <string name="disabled" msgid="8017887509554714950">"Onemogućeno"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Dozvoljeno"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nije dozvoljeno"</string>
diff --git a/packages/SettingsLib/res/values-be/arrays.xml b/packages/SettingsLib/res/values-be/arrays.xml
index 3339361..48c3627 100644
--- a/packages/SettingsLib/res/values-be/arrays.xml
+++ b/packages/SettingsLib/res/values-be/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Толькі дысплэй прылады (стандартна)"</item>
-    <item msgid="9161645858025071955">"Знешні дысплэй"</item>
-    <item msgid="114384731934682483">"У залежнасці ад выкарыстання"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Паказваць шчыток толькі на дысплэі прылады"</item>
-    <item msgid="7795034287069726554">"Паказваць прыладу на адным знешнім дысплэі"</item>
-    <item msgid="5280431949814340475">"Паказваць прыладу на дысплэі, які выкарыстоўваўся апошнім"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index eb6e0a5..0ad8ac7 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Ідзе хуткая зарадка"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Кантралюецца адміністратарам"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Пад кіраваннем Абмежаванага наладжвання"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Недаступна падчас выклікаў"</string>
     <string name="disabled" msgid="8017887509554714950">"Адключанае"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Дазволена"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Забаронена"</string>
diff --git a/packages/SettingsLib/res/values-bg/arrays.xml b/packages/SettingsLib/res/values-bg/arrays.xml
index c3bc26f..21dfa06 100644
--- a/packages/SettingsLib/res/values-bg/arrays.xml
+++ b/packages/SettingsLib/res/values-bg/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Само на екрана на устройството (по подразбиране)"</item>
-    <item msgid="9161645858025071955">"Външен екран"</item>
-    <item msgid="114384731934682483">"Въз основа на фокуса"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Показване на падащия панел само на екрана на устройството"</item>
-    <item msgid="7795034287069726554">"Показване на устройството на един външен екран"</item>
-    <item msgid="5280431949814340475">"Показване на устройството на екрана, върху който последно е бил поставен фокусът"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index ede0a3a..8a87e57 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Зарежда се бързо"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Контролира се от администратор"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Управлява се чрез ограничена настройка"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Заето по време на обаждания"</string>
     <string name="disabled" msgid="8017887509554714950">"Деактивирано"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Има разрешение"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Няма разрешение"</string>
diff --git a/packages/SettingsLib/res/values-bn/arrays.xml b/packages/SettingsLib/res/values-bn/arrays.xml
index 6d5da27..b27264d 100644
--- a/packages/SettingsLib/res/values-bn/arrays.xml
+++ b/packages/SettingsLib/res/values-bn/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"শুধুমাত্র ডিভাইসের ডিসপ্লে (ডিফল্ট)"</item>
-    <item msgid="9161645858025071955">"এক্সটার্নাল ডিসপ্লে"</item>
-    <item msgid="114384731934682483">"ফোকাস অনুযায়ী"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"শুধুমাত্র ডিভাইসের ডিসপ্লেতে শেড দেখুন"</item>
-    <item msgid="7795034287069726554">"শেড একটি এক্সটার্নাল ডিসপ্লেতে দেখুন"</item>
-    <item msgid="5280431949814340475">"ফোকাস করা শেষ ডিসপ্লেতে ডিভাইস দেখুন"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index ab9c34a..1e7c7a2 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ফাস্ট চার্জিং"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"প্রশাসকের দ্বারা নিয়ন্ত্রিত"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"এটি বিধিনিষেধ সেটিং থেকে নিয়ন্ত্রণ করা হয়"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"কল চলাকালীন উপলভ্য হবে না"</string>
     <string name="disabled" msgid="8017887509554714950">"অক্ষম হয়েছে"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"অনুমোদিত"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"অনুমোদিত নয়"</string>
diff --git a/packages/SettingsLib/res/values-bs/arrays.xml b/packages/SettingsLib/res/values-bs/arrays.xml
index 625112c..44bbfaf 100644
--- a/packages/SettingsLib/res/values-bs/arrays.xml
+++ b/packages/SettingsLib/res/values-bs/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Samo zaslon uređaja (zadano)"</item>
     <item msgid="9161645858025071955">"Vanjski ekran"</item>
-    <item msgid="114384731934682483">"Na osnovu fokusa"</item>
+    <item msgid="23651860565814477">"Najnoviji dodir trake statusa"</item>
+    <item msgid="7521112827893653392">"Na temelju fokusa"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Prikaži sjenu samo na ekranu uređaja"</item>
-    <item msgid="7795034287069726554">"Prikaži uređaj na jednom vanjskom ekranu"</item>
-    <item msgid="5280431949814340475">"Prikaži uređaj na posljednjem fokusiranom ekranu"</item>
+    <item msgid="1955398604822147783">"Prikaži sjenčanje na jednom vanjskom zaslonu"</item>
+    <item msgid="391477482416751568">"Prikaži sjenčanje na zaslonu na kojem je posljednje stupljeno u interakciju s trakom statusa"</item>
+    <item msgid="1746820128097981528">"Prikaži sjenčanje na posljednjem fokusiranom zaslonu"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index ec3d5e9..756a326 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -482,7 +482,7 @@
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Zamjenjuje <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_charging_on_hold_settings_home_page" msgid="7690464049464805856">"<xliff:g id="LEVEL">%1$s</xliff:g> – punjenje je na čekanju radi zaštite baterije"</string>
-    <string name="power_incompatible_charging_settings_home_page" msgid="1322050766135126880">"<xliff:g id="LEVEL">%1$s</xliff:g> – provjerite opremu za punjenje"</string>
+    <string name="power_incompatible_charging_settings_home_page" msgid="1322050766135126880">"<xliff:g id="LEVEL">%1$s</xliff:g> – provjerite dodatak za punjenje"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Preostalo je još oko <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
     <string name="power_discharging_duration" msgid="1076561255466053220">"Preostalo je još oko <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_duration_only_enhanced" msgid="2527842780666073218">"Preostalo je još oko <xliff:g id="TIME_REMAINING">%1$s</xliff:g> na osnovu vaše potrošnje"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Brzo punjenje"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Pod kontrolom administratora"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kontrolira ograničena postavka"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Nije dostupno tokom poziva"</string>
     <string name="disabled" msgid="8017887509554714950">"Onemogućeno"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Dozvoljeno"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nije dozvoljeno"</string>
diff --git a/packages/SettingsLib/res/values-ca/arrays.xml b/packages/SettingsLib/res/values-ca/arrays.xml
index e9b437e..f19551c 100644
--- a/packages/SettingsLib/res/values-ca/arrays.xml
+++ b/packages/SettingsLib/res/values-ca/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Només a la pantalla del dispositiu (opció predeterminada)"</item>
-    <item msgid="9161645858025071955">"Pantalla externa"</item>
-    <item msgid="114384731934682483">"Basat en l\'enfocament"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Mostra l\'ombra només a la pantalla del dispositiu"</item>
-    <item msgid="7795034287069726554">"Mostra el dispositiu en una sola pantalla externa"</item>
-    <item msgid="5280431949814340475">"Mostra el dispositiu a la darrera pantalla en què s\'hagi posat el focus"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index ef2920d..0548099 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Càrrega ràpida"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlat per l\'administrador"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlat per l\'opció de configuració restringida"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"No està disponible durant les trucades"</string>
     <string name="disabled" msgid="8017887509554714950">"Desactivat"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Amb permís"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Sense permís"</string>
diff --git a/packages/SettingsLib/res/values-cs/arrays.xml b/packages/SettingsLib/res/values-cs/arrays.xml
index 4bfdaf4..ad1cafd 100644
--- a/packages/SettingsLib/res/values-cs/arrays.xml
+++ b/packages/SettingsLib/res/values-cs/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Pouze zobrazení zařízení (výchozí)"</item>
-    <item msgid="9161645858025071955">"Externí displej"</item>
-    <item msgid="114384731934682483">"Výběr"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Zobrazovat panel pouze na displeji zařízení"</item>
-    <item msgid="7795034287069726554">"Zobrazovat panel na jednom externím displeji"</item>
-    <item msgid="5280431949814340475">"Zobrazovat panel na naposledy vybraném displeji"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 54a4af8..a774a1d 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Rychlé nabíjení"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Spravováno administrátorem"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Spravováno omezeným nastavením"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Při volání nedostupné"</string>
     <string name="disabled" msgid="8017887509554714950">"Deaktivováno"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Povoleno"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Není povoleno"</string>
diff --git a/packages/SettingsLib/res/values-da/arrays.xml b/packages/SettingsLib/res/values-da/arrays.xml
index 6949755..ed45775 100644
--- a/packages/SettingsLib/res/values-da/arrays.xml
+++ b/packages/SettingsLib/res/values-da/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Kun på enhedens skærm (standard)"</item>
-    <item msgid="9161645858025071955">"Ekstern skærm"</item>
-    <item msgid="114384731934682483">"Fokusbaseret"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Vis kun skygge på enhedens skærm"</item>
-    <item msgid="7795034287069726554">"Vis enheden på en enkelt ekstern skærm"</item>
-    <item msgid="5280431949814340475">"Vis enheden på den skærm, der sidst var i fokus"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 71c6be1..d7aa9b1 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Lynopladning"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontrolleret af administratoren"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Styres af en begrænset indstilling"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Kan ikke bruges under opkald"</string>
     <string name="disabled" msgid="8017887509554714950">"Deaktiveret"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Tilladt"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Ikke tilladt"</string>
diff --git a/packages/SettingsLib/res/values-de/arrays.xml b/packages/SettingsLib/res/values-de/arrays.xml
index adddd77..924718a 100644
--- a/packages/SettingsLib/res/values-de/arrays.xml
+++ b/packages/SettingsLib/res/values-de/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Nur Gerätedisplay (Standard)"</item>
-    <item msgid="9161645858025071955">"Externes Display"</item>
-    <item msgid="114384731934682483">"Fokusbasiert"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Leiste nur auf dem Display des Geräts anzeigen"</item>
-    <item msgid="7795034287069726554">"Gerät auf einem einzigen externen Display anzeigen"</item>
-    <item msgid="5280431949814340475">"Gerät auf zuletzt fokussiertem Display anzeigen"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 1955da0..73268c5 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -56,7 +56,7 @@
     <string name="wifi_disabled_password_failure" msgid="6892387079613226738">"Authentifizierungsproblem"</string>
     <string name="wifi_cant_connect" msgid="5718417542623056783">"Verbindung nicht möglich"</string>
     <string name="wifi_cant_connect_to_ap" msgid="3099667989279700135">"Keine Verbindung zu \"<xliff:g id="AP_NAME">%1$s</xliff:g>\" möglich"</string>
-    <string name="wifi_check_password_try_again" msgid="8817789642851605628">"Prüfe das Passwort und versuch es noch einmal"</string>
+    <string name="wifi_check_password_try_again" msgid="8817789642851605628">"Prüfe das Passwort und versuche es noch einmal"</string>
     <string name="wifi_not_in_range" msgid="1541760821805777772">"Nicht in Reichweite"</string>
     <string name="wifi_no_internet_no_reconnect" msgid="821591791066497347">"Kein automatischer Verbindungsaufbau"</string>
     <string name="wifi_no_internet" msgid="1774198889176926299">"Kein Internetzugriff"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Schnelles Laden"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Durch den Administrator verwaltet"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Gesteuert durch eingeschränkte Einstellung"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Während Anrufen nicht verfügbar"</string>
     <string name="disabled" msgid="8017887509554714950">"Deaktiviert"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Zugelassen"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nicht zugelassen"</string>
diff --git a/packages/SettingsLib/res/values-el/arrays.xml b/packages/SettingsLib/res/values-el/arrays.xml
index 9d7612c..41aefc0 100644
--- a/packages/SettingsLib/res/values-el/arrays.xml
+++ b/packages/SettingsLib/res/values-el/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Μόνο οθόνη συσκευής (Προεπιλογή)"</item>
-    <item msgid="9161645858025071955">"Εξωτερική οθόνη"</item>
-    <item msgid="114384731934682483">"Με εστίαση"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Εμφάνιση σκίασης μόνο στην οθόνη συσκευής"</item>
-    <item msgid="7795034287069726554">"Εμφάνιση συσκευής σε μία εξωτερική οθόνη"</item>
-    <item msgid="5280431949814340475">"Εμφάνιση συσκευής στην τελευταία οθόνη με εστίαση"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 7f9f646..209b782 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Γρήγορη φόρτιση"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Ελέγχονται από το διαχειριστή"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Ελέγχεται από τη Ρύθμιση με περιορισμό"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Μη διαθέσιμη κατά τη διάρκεια κλήσεων"</string>
     <string name="disabled" msgid="8017887509554714950">"Απενεργοποιημένη"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Επιτρέπεται"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Δεν επιτρέπεται"</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/arrays.xml b/packages/SettingsLib/res/values-en-rAU/arrays.xml
index 8c27ec6..6c7a7ff 100644
--- a/packages/SettingsLib/res/values-en-rAU/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rAU/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Device display only (default)"</item>
-    <item msgid="9161645858025071955">"External display"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Show shade on device display only"</item>
-    <item msgid="7795034287069726554">"Show device on single external display"</item>
-    <item msgid="5280431949814340475">"Show device on last focused display"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 58bb7d8..d965c65 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Fast charging"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlled by admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlled by restricted setting"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Unavailable during calls"</string>
     <string name="disabled" msgid="8017887509554714950">"Disabled"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Allowed"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Not allowed"</string>
diff --git a/packages/SettingsLib/res/values-en-rCA/arrays.xml b/packages/SettingsLib/res/values-en-rCA/arrays.xml
index cfe77ca..48f2f5a 100644
--- a/packages/SettingsLib/res/values-en-rCA/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rCA/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Device display only (Default)"</item>
     <item msgid="9161645858025071955">"External display"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
+    <item msgid="23651860565814477">"Latest status bar touch"</item>
+    <item msgid="7521112827893653392">"Focus-based"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Show shade on device display only"</item>
-    <item msgid="7795034287069726554">"Show device on single external display"</item>
-    <item msgid="5280431949814340475">"Show device on last focused display"</item>
+    <item msgid="1955398604822147783">"Show shade on single external display"</item>
+    <item msgid="391477482416751568">"Show shade on display which last had its status bar interacted with"</item>
+    <item msgid="1746820128097981528">"Show shade on last focused display"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index 3b35b97..748d7b1 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Fast charging"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlled by admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlled by Restricted Setting"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Unavailable during calls"</string>
     <string name="disabled" msgid="8017887509554714950">"Disabled"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Allowed"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Not allowed"</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/arrays.xml b/packages/SettingsLib/res/values-en-rGB/arrays.xml
index 8c27ec6..6c7a7ff 100644
--- a/packages/SettingsLib/res/values-en-rGB/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rGB/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Device display only (default)"</item>
-    <item msgid="9161645858025071955">"External display"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Show shade on device display only"</item>
-    <item msgid="7795034287069726554">"Show device on single external display"</item>
-    <item msgid="5280431949814340475">"Show device on last focused display"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 58bb7d8..d965c65 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Fast charging"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlled by admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlled by restricted setting"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Unavailable during calls"</string>
     <string name="disabled" msgid="8017887509554714950">"Disabled"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Allowed"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Not allowed"</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/arrays.xml b/packages/SettingsLib/res/values-en-rIN/arrays.xml
index 8c27ec6..6c7a7ff 100644
--- a/packages/SettingsLib/res/values-en-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rIN/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Device display only (default)"</item>
-    <item msgid="9161645858025071955">"External display"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Show shade on device display only"</item>
-    <item msgid="7795034287069726554">"Show device on single external display"</item>
-    <item msgid="5280431949814340475">"Show device on last focused display"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 58bb7d8..d965c65 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Fast charging"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlled by admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlled by restricted setting"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Unavailable during calls"</string>
     <string name="disabled" msgid="8017887509554714950">"Disabled"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Allowed"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Not allowed"</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/arrays.xml b/packages/SettingsLib/res/values-es-rUS/arrays.xml
index daf9ab9..5894975 100644
--- a/packages/SettingsLib/res/values-es-rUS/arrays.xml
+++ b/packages/SettingsLib/res/values-es-rUS/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Solo en la pantalla del dispositivo (predeterminado)"</item>
-    <item msgid="9161645858025071955">"Pantalla externa"</item>
-    <item msgid="114384731934682483">"Basado en el enfoque"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Mostrar sobra solo en la pantalla del dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostrar dispositivo en una sola pantalla externa"</item>
-    <item msgid="5280431949814340475">"Mostrar dispositivo en la última pantalla enfocada"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 524310d..acd6790 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Carga rápida"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlada por el administrador"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Función controlada por configuración restringida"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"No disponible durante llamadas"</string>
     <string name="disabled" msgid="8017887509554714950">"Inhabilitada"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Con permiso"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"No permitida"</string>
diff --git a/packages/SettingsLib/res/values-es/arrays.xml b/packages/SettingsLib/res/values-es/arrays.xml
index a4bb49e..1e8c661 100644
--- a/packages/SettingsLib/res/values-es/arrays.xml
+++ b/packages/SettingsLib/res/values-es/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Solo en la pantalla del dispositivo (predeterminado)"</item>
-    <item msgid="9161645858025071955">"Pantalla externa"</item>
-    <item msgid="114384731934682483">"Basado en el enfoque"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Mostrar el panel solo en la pantalla del dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostrar el dispositivo en una sola pantalla externa"</item>
-    <item msgid="5280431949814340475">"Mostrar el dispositivo en la última pantalla enfocada"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index b881994..00b987c 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Carga rápida"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlada por el administrador"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlado por ajustes restringidos"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"No disponible durante las llamadas"</string>
     <string name="disabled" msgid="8017887509554714950">"Inhabilitada"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Autorizadas"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"No autorizadas"</string>
diff --git a/packages/SettingsLib/res/values-et/arrays.xml b/packages/SettingsLib/res/values-et/arrays.xml
index 9a77991..88b8b98 100644
--- a/packages/SettingsLib/res/values-et/arrays.xml
+++ b/packages/SettingsLib/res/values-et/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Ainult seadme ekraan (vaikimisi)"</item>
     <item msgid="9161645858025071955">"Väline ekraan"</item>
-    <item msgid="114384731934682483">"Fookusepõhine"</item>
+    <item msgid="23651860565814477">"Viimane olekuriba puudutus"</item>
+    <item msgid="7521112827893653392">"Fookusepõhine"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Kuva menüü ainult seadme ekraanil"</item>
-    <item msgid="7795034287069726554">"Kuva seade ühe välisel ekraanil"</item>
-    <item msgid="5280431949814340475">"Kuva seade viimati esile tõstetud ekraanil"</item>
+    <item msgid="1955398604822147783">"Kuva menüü ühel välisel ekraanil"</item>
+    <item msgid="391477482416751568">"Kuva menüü ekraanil, mille olekuriba viimati kasutati"</item>
+    <item msgid="1746820128097981528">"Kuva menüü viimati esile tõstetud ekraanil"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index e089655..b442ed3 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Kiirlaadimine"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Juhib administraator"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Haldavad piiranguga seaded"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Pole kõnede ajal saadaval"</string>
     <string name="disabled" msgid="8017887509554714950">"Keelatud"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Lubatud"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Pole lubatud"</string>
diff --git a/packages/SettingsLib/res/values-eu/arrays.xml b/packages/SettingsLib/res/values-eu/arrays.xml
index 3d59a27..a1528c2 100644
--- a/packages/SettingsLib/res/values-eu/arrays.xml
+++ b/packages/SettingsLib/res/values-eu/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Gailuaren pantailan soilik (lehenetsia)"</item>
-    <item msgid="9161645858025071955">"Kanpoko pantailan"</item>
-    <item msgid="114384731934682483">"Fokuaren arabera"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Erakutsi itzalak gailuaren pantailan soilik"</item>
-    <item msgid="7795034287069726554">"Erakutsi gailua kanpoko pantaila bakarrean"</item>
-    <item msgid="5280431949814340475">"Erakutsi gailua fokuratutako azken pantailan"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index a5235cf..1c422b6 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Kargatze bizkorra"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Administratzaileak kontrolatzen du"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Ezarpen mugatuak kontrolatzen du"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Ez dago erabilgarri deiak egin bitartean"</string>
     <string name="disabled" msgid="8017887509554714950">"Desgaituta"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Baimenduta"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Baimendu gabe"</string>
diff --git a/packages/SettingsLib/res/values-fa/arrays.xml b/packages/SettingsLib/res/values-fa/arrays.xml
index 9e1da41..d7face8 100644
--- a/packages/SettingsLib/res/values-fa/arrays.xml
+++ b/packages/SettingsLib/res/values-fa/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"۲"</item>
     <item msgid="4779928470672877922">"۳"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"فقط نمایشگر دستگاه (پیش‌فرض)"</item>
-    <item msgid="9161645858025071955">"نمایشگر خارجی"</item>
-    <item msgid="114384731934682483">"کانونی‌محور"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"نمایش سایه فقط در نمایشگر دستگاه"</item>
-    <item msgid="7795034287069726554">"نمایش دستگاه در یک نمایشگر خارجی"</item>
-    <item msgid="5280431949814340475">"نمایش دستگاه در آخرین نمایشگر کانونی‌شده"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"نمایشگر_پیش‌فرض"</item>
-    <item msgid="774789415968826925">"هر_نمایشگر_خارجی"</item>
-    <item msgid="7880769915418638436">"آخرین_لمس_نوار_وضعیت"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 6d5e42b..b1f76fb 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"درحال شارژ سریع"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"توسط سرپرست سیستم کنترل می‌شود"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"با تنظیم «حالت محدود» کنترل می‌شود"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"درطول تماس دردسترس نیست"</string>
     <string name="disabled" msgid="8017887509554714950">"غیر فعال شد"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"مجاز بودن"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"مجاز نبودن"</string>
diff --git a/packages/SettingsLib/res/values-fi/arrays.xml b/packages/SettingsLib/res/values-fi/arrays.xml
index 0c970ec..a10dfbe 100644
--- a/packages/SettingsLib/res/values-fi/arrays.xml
+++ b/packages/SettingsLib/res/values-fi/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Vain laitteen näyttö (oletus)"</item>
-    <item msgid="9161645858025071955">"Ulkoinen näyttö"</item>
-    <item msgid="114384731934682483">"Kohdistusperustainen"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Näytä ilmoitusalue vain laitteen näytöllä"</item>
-    <item msgid="7795034287069726554">"Näytä laite yhdellä ulkoisella näytöllä"</item>
-    <item msgid="5280431949814340475">"Näytä laite viimeksi kohdistetulla näytöllä"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 1e2db99..b59aa30 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Nopea lataus"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Järjestelmänvalvoja hallinnoi tätä asetusta."</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Rajoitettujen asetusten mukaisesti"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Ei käytettävissä puhelujen aikana"</string>
     <string name="disabled" msgid="8017887509554714950">"Pois päältä"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Sallittu"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Ei sallittu"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/arrays.xml b/packages/SettingsLib/res/values-fr-rCA/arrays.xml
index 6fc0ed9..9eec65d 100644
--- a/packages/SettingsLib/res/values-fr-rCA/arrays.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Écran de l\'appareil seulement (par défaut)"</item>
-    <item msgid="9161645858025071955">"Écran externe"</item>
-    <item msgid="114384731934682483">"Affichage mis en évidence"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Afficher le volet sur l\'écran de l\'appareil seulement"</item>
-    <item msgid="7795034287069726554">"Afficher l\'appareil sur un seul écran externe"</item>
-    <item msgid="5280431949814340475">"Afficher l\'appareil sur le dernier affichage mis en évidence"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index f2a3454..99ba8b0 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Recharge rapide"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Contrôlé par l\'administrateur"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Contrôlé par les paramètres restreints"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Indisponible pendant les appels"</string>
     <string name="disabled" msgid="8017887509554714950">"Désactivée"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Autorisée"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Non autorisée"</string>
diff --git a/packages/SettingsLib/res/values-fr/arrays.xml b/packages/SettingsLib/res/values-fr/arrays.xml
index 36eb52d..3787509 100644
--- a/packages/SettingsLib/res/values-fr/arrays.xml
+++ b/packages/SettingsLib/res/values-fr/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Écran de l\'appareil uniquement (par défaut)"</item>
-    <item msgid="9161645858025071955">"Écran externe"</item>
-    <item msgid="114384731934682483">"Basé sur la sélection"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Afficher le volet sur l\'écran de l\'appareil uniquement"</item>
-    <item msgid="7795034287069726554">"Afficher l\'appareil sur un seul écran externe"</item>
-    <item msgid="5280431949814340475">"Afficher l\'appareil sur le dernier écran avec lequel l\'utilisateur a interagi"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index a017fa7..ba77d87 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Recharge rapide"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Contrôlé par l\'administrateur"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Contrôlé par les paramètres restreints"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Indisponible pendant les appels"</string>
     <string name="disabled" msgid="8017887509554714950">"Désactivée"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Autorisé"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Non autorisé"</string>
diff --git a/packages/SettingsLib/res/values-gl/arrays.xml b/packages/SettingsLib/res/values-gl/arrays.xml
index cd085fa..9307ba7 100644
--- a/packages/SettingsLib/res/values-gl/arrays.xml
+++ b/packages/SettingsLib/res/values-gl/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Só pantalla do dispositivo (opción predeterminada)"</item>
-    <item msgid="9161645858025071955">"Pantalla externa"</item>
-    <item msgid="114384731934682483">"En función do enfoque"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Mostrar panel despregable só na pantalla do dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostrar dispositivo nunha única pantalla externa"</item>
-    <item msgid="5280431949814340475">"Mostrar dispositivo na última pantalla enfocada"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"pantalla_predeterminada"</item>
-    <item msgid="774789415968826925">"calquera_pantalla_externa"</item>
-    <item msgid="7880769915418638436">"último_toque_barra_estado"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 6b28019..3d5a9bd 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Carga rápida"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Opción controlada polo administrador"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Baixo o control de opcións restrinxidas"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Non dispoñible durante as chamadas"</string>
     <string name="disabled" msgid="8017887509554714950">"Desactivada"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Permiso concedido"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Permiso non concedido"</string>
diff --git a/packages/SettingsLib/res/values-gu/arrays.xml b/packages/SettingsLib/res/values-gu/arrays.xml
index 912df2d..6026663b 100644
--- a/packages/SettingsLib/res/values-gu/arrays.xml
+++ b/packages/SettingsLib/res/values-gu/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"માત્ર ડિવાઇસનું ડિસ્પ્લે (ડિફૉલ્ટ)"</item>
-    <item msgid="9161645858025071955">"બાહ્ય ડિસ્પ્લે"</item>
-    <item msgid="114384731934682483">"ફોકસ-આધારિત"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"માત્ર ડિવાઇસના ડિસ્પ્લે પર શેડ બતાવો"</item>
-    <item msgid="7795034287069726554">"માત્ર એક બાહ્ય ડિસ્પ્લે પર ડિવાઇસ બતાવો"</item>
-    <item msgid="5280431949814340475">"છેલ્લે ફોકસ કરેલા ડિસ્પ્લે પર ડિવાઇસ બતાવો"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index fbf9afc..57ecad8 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -107,7 +107,7 @@
     <string name="tv_bluetooth_battery_level_untethered_right" msgid="8610019317279155595">"જમણી બાજુ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી"</string>
     <string name="bluetooth_active_no_battery_level" msgid="4155462233006205630">"સક્રિય"</string>
     <string name="bluetooth_saved_device" msgid="4895871321722311428">"સાચવેલું"</string>
-    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"ચાલુ છે (માત્ર ડાબી બાજુ)"</string>
+    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"સક્રિય (માત્ર ડાબી બાજુ)"</string>
     <string name="bluetooth_hearing_aid_right_active" msgid="2244728507170385397">"ચાલુ છે (માત્ર જમણી બાજુ)"</string>
     <string name="bluetooth_hearing_aid_left_and_right_active" msgid="4294571497939983181">"ચાલુ છે (ડાબી અને જમણી બાજુ)"</string>
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"આસપાસના અવાજો અપડેટ કરી શક્યા નથી"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ઝડપી ચાર્જિંગ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"વ્યવસ્થાપક દ્વારા નિયંત્રિત"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"પ્રતિબંધિત સેટિંગ દ્વારા નિયંત્રિત"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"કૉલ દરમિયાન અનુપલબ્ધ"</string>
     <string name="disabled" msgid="8017887509554714950">"બંધ કરી"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"મંજૂરી છે"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"મંજૂરી નથી"</string>
diff --git a/packages/SettingsLib/res/values-hi/arrays.xml b/packages/SettingsLib/res/values-hi/arrays.xml
index 25d6388..67de2ae 100644
--- a/packages/SettingsLib/res/values-hi/arrays.xml
+++ b/packages/SettingsLib/res/values-hi/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"सिर्फ़ डिवाइस का डिसप्ले (डिफ़ॉल्ट)"</item>
-    <item msgid="9161645858025071955">"बाहरी डिसप्ले पर"</item>
-    <item msgid="114384731934682483">"फ़ोकस के हिसाब से"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"सिर्फ़ डिवाइस के डिसप्ले पर शेड दिखाएं"</item>
-    <item msgid="7795034287069726554">"शेड को बाहरी डिसप्ले पर दिखाएं"</item>
-    <item msgid="5280431949814340475">"फ़ोकस किए गए पिछले डिसप्ले पर शेड दिखाएं"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 4319776..c1f4fe2 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -107,7 +107,7 @@
     <string name="tv_bluetooth_battery_level_untethered_right" msgid="8610019317279155595">"दाएं ईयरबड में <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी बची है"</string>
     <string name="bluetooth_active_no_battery_level" msgid="4155462233006205630">"चालू"</string>
     <string name="bluetooth_saved_device" msgid="4895871321722311428">"सेव किया गया"</string>
-    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"सिर्फ़ बाईं तरफ़ वाला चालू है"</string>
+    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"सिर्फ़ बाईं ओर की मशीन चालू है"</string>
     <string name="bluetooth_hearing_aid_right_active" msgid="2244728507170385397">"सिर्फ़ दाईं तरफ़ वाला चालू है"</string>
     <string name="bluetooth_hearing_aid_left_and_right_active" msgid="4294571497939983181">"बाईं और दाईं तरफ़ वाला चालू है"</string>
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"वॉल्यूम को मैनेज करने की सेटिंग नहीं बदली जा सकी"</string>
@@ -506,7 +506,7 @@
     <string name="power_charging_future_paused" msgid="1809543660923642799">"<xliff:g id="LEVEL">%1$s</xliff:g> - चार्ज हो रही है"</string>
     <string name="power_fast_charging_duration_v2" msgid="3797735998640359490">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g> - बैटरी <xliff:g id="TIME">%3$s</xliff:g> में पूरी चार्ज हो जाएगी"</string>
     <string name="power_charging_duration_v2" msgid="2938998284074003248">"<xliff:g id="LEVEL">%1$s</xliff:g> - बैटरी <xliff:g id="TIME">%2$s</xliff:g> में पूरी चार्ज हो जाएगी"</string>
-    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"बैटरी <xliff:g id="TIME">%1$s</xliff:g> में पूरी चार्ज हो जाएगी"</string>
+    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"बैटरी <xliff:g id="TIME">%1$s</xliff:g> तक पूरी चार्ज हो जाएगी"</string>
     <string name="power_remaining_fast_charging_duration_only_v2" msgid="6270950195810579563">"बैटरी <xliff:g id="TIME">%1$s</xliff:g> तक पूरी चार्ज हो जाएगी"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"अज्ञात"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"चार्ज हो रही है"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"फ़ास्ट चार्जिंग"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"इसका नियंत्रण एडमिन के पास है"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"इसे पाबंदी मोड वाली सेटिंग से कंट्रोल किया जाता है"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"कॉल के दौरान उपलब्ध नहीं है"</string>
     <string name="disabled" msgid="8017887509554714950">"बंद किया गया"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"अनुमति है"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"अनुमति नहीं है"</string>
diff --git a/packages/SettingsLib/res/values-hr/arrays.xml b/packages/SettingsLib/res/values-hr/arrays.xml
index 639e39e..d0ab9fd 100644
--- a/packages/SettingsLib/res/values-hr/arrays.xml
+++ b/packages/SettingsLib/res/values-hr/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Samo zaslon uređaja (zadano)"</item>
     <item msgid="9161645858025071955">"Vanjski zaslon"</item>
-    <item msgid="114384731934682483">"Na temelju fokusa"</item>
+    <item msgid="23651860565814477">"Najnoviji dodir trake statusa"</item>
+    <item msgid="7521112827893653392">"Na temelju fokusa"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Prikaži sjenu samo na zaslonu uređaja"</item>
-    <item msgid="7795034287069726554">"Prikaži uređaj na jednom vanjskom zaslonu"</item>
-    <item msgid="5280431949814340475">"Prikaži uređaj na posljednjem fokusiranom zaslonu"</item>
+    <item msgid="1955398604822147783">"Prikaži sjenčanje na jednom vanjskom zaslonu"</item>
+    <item msgid="391477482416751568">"Prikaži sjenčanje na zaslonu na kojem je posljednje stupljeno u interakciju s trakom statusa"</item>
+    <item msgid="1746820128097981528">"Prikaži sjenčanje na posljednjem fokusiranom zaslonu"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 0763788..131195e 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Brzo punjenje"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontrolira administrator"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kontrolira ograničena postavka"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Nije dostupno tijekom poziva"</string>
     <string name="disabled" msgid="8017887509554714950">"Onemogućeno"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Dopušteno"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nije dopušteno"</string>
diff --git a/packages/SettingsLib/res/values-hu/arrays.xml b/packages/SettingsLib/res/values-hu/arrays.xml
index d131966..d8d42f9 100644
--- a/packages/SettingsLib/res/values-hu/arrays.xml
+++ b/packages/SettingsLib/res/values-hu/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Csak az eszköz kijelzője (alapértelmezett)"</item>
-    <item msgid="9161645858025071955">"Külső kijelző"</item>
-    <item msgid="114384731934682483">"Fókusz alapján"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Felület megjelenítése csak az eszköz kijelzőjén"</item>
-    <item msgid="7795034287069726554">"Felület megjelenítése egyetlen külső kijelzőn"</item>
-    <item msgid="5280431949814340475">"Felület megjelenítése a legutóbb fókuszban lévő kijelzőn"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 6627cb1..fa32155 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Gyors töltés…"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Rendszergazda által irányítva"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Korlátozott beállítás vezérli"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Nem áll rendelkezésre hívások közben"</string>
     <string name="disabled" msgid="8017887509554714950">"Letiltva"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Engedélyezett"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nem engedélyezett"</string>
diff --git a/packages/SettingsLib/res/values-hy/arrays.xml b/packages/SettingsLib/res/values-hy/arrays.xml
index 5654501..b2133fb 100644
--- a/packages/SettingsLib/res/values-hy/arrays.xml
+++ b/packages/SettingsLib/res/values-hy/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Միայն սարքի էկրանը (կանխադրված)"</item>
-    <item msgid="9161645858025071955">"Արտաքին էկրան"</item>
-    <item msgid="114384731934682483">"Ֆոկուսի հիման վրա"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Ցույց տալ երանգը միայն սարքի էկրանին"</item>
-    <item msgid="7795034287069726554">"Ցույց տալ սարքը մեկ արտաքին էկրանին"</item>
-    <item msgid="5280431949814340475">"Ցույց տալ սարքը վերջին ֆոկուսավորված էկրանին"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index 2248b7b..fa87813 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Արագ լիցքավորում"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Վերահսկվում է ադմինիստրատորի կողմից"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Կառավարվում է սահմանափակ ռեժիմի կարգավորումներով"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Զանգի ընթացքում հասանելի չէ"</string>
     <string name="disabled" msgid="8017887509554714950">"Կասեցված է"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Թույլատրված է"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Արգելված"</string>
diff --git a/packages/SettingsLib/res/values-in/arrays.xml b/packages/SettingsLib/res/values-in/arrays.xml
index c256e8c..fa2fa9e 100644
--- a/packages/SettingsLib/res/values-in/arrays.xml
+++ b/packages/SettingsLib/res/values-in/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Hanya layar perangkat (Default)"</item>
-    <item msgid="9161645858025071955">"Layar eksternal"</item>
-    <item msgid="114384731934682483">"Berbasis fokus"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Tampilkan shade hanya di layar perangkat"</item>
-    <item msgid="7795034287069726554">"Tampilkan perangkat di satu layar eksternal"</item>
-    <item msgid="5280431949814340475">"Tampilkan perangkat di layar yang terakhir difokuskan"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 5798f8d..1ff4b29 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Pengisian daya cepat"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Dikontrol oleh admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Dikontrol oleh Setelan Terbatas"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Tidak tersedia selama panggilan berlangsung"</string>
     <string name="disabled" msgid="8017887509554714950">"Dinonaktifkan"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Diizinkan"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Tidak diizinkan"</string>
diff --git a/packages/SettingsLib/res/values-is/arrays.xml b/packages/SettingsLib/res/values-is/arrays.xml
index 1d81344..851a7a49 100644
--- a/packages/SettingsLib/res/values-is/arrays.xml
+++ b/packages/SettingsLib/res/values-is/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Aðeins skjár tækis (sjálfgefið)"</item>
-    <item msgid="9161645858025071955">"Ytri skjár"</item>
-    <item msgid="114384731934682483">"Byggt á fókus"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Aðeins skyggja skjá tækis"</item>
-    <item msgid="7795034287069726554">"Sýna tæki á einum ytri skjá"</item>
-    <item msgid="5280431949814340475">"Sýna tæki á skjá sem var síðast í fókus"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index e8e49d0..804ea63 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Hraðhleðsla"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Stjórnað af kerfisstjóra"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Stýrt af takmarkaði stillingu"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Ekki í boði á meðan á símtölum stendur"</string>
     <string name="disabled" msgid="8017887509554714950">"Óvirkt"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Heimilað"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Ekki heimilað"</string>
diff --git a/packages/SettingsLib/res/values-it/arrays.xml b/packages/SettingsLib/res/values-it/arrays.xml
index 331410c..48777a3 100644
--- a/packages/SettingsLib/res/values-it/arrays.xml
+++ b/packages/SettingsLib/res/values-it/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Solo display del dispositivo (impostazione predefinita)"</item>
     <item msgid="9161645858025071955">"Display esterno"</item>
-    <item msgid="114384731934682483">"In base alla selezione"</item>
+    <item msgid="23651860565814477">"Ultimo tocco alla barra di stato"</item>
+    <item msgid="7521112827893653392">"In base alla selezione"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Mostra l\'area delle notifiche solo sul display del dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostra il dispositivo su un singolo display esterno"</item>
-    <item msgid="5280431949814340475">"Mostra il dispositivo sull\'ultimo display selezionato"</item>
+    <item msgid="1955398604822147783">"Mostra l\'area delle notifiche su un singolo display esterno"</item>
+    <item msgid="391477482416751568">"Mostra l\'area delle notifiche sul display in cui è avvenuta l\'ultima interazione con la barra di stato"</item>
+    <item msgid="1746820128097981528">"Mostra l\'area delle notifiche sull\'ultimo display selezionato"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index b2404cf..09ec5cc 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -107,7 +107,7 @@
     <string name="tv_bluetooth_battery_level_untethered_right" msgid="8610019317279155595">"Destra: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_active_no_battery_level" msgid="4155462233006205630">"Attivo"</string>
     <string name="bluetooth_saved_device" msgid="4895871321722311428">"Dispositivo salvato"</string>
-    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"Attivo (solo sinistro)"</string>
+    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"Attiva (solo sinistra)"</string>
     <string name="bluetooth_hearing_aid_right_active" msgid="2244728507170385397">"Attivo (solo destro)"</string>
     <string name="bluetooth_hearing_aid_left_and_right_active" msgid="4294571497939983181">"Attivi (destro e sinistro)"</string>
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Impossibile aggiornare audio ambientale"</string>
@@ -505,8 +505,8 @@
     <string name="power_charging_limited" msgid="4144004473976005214">"<xliff:g id="LEVEL">%1$s</xliff:g> - Ricarica in sospeso per proteggere la batteria"</string>
     <string name="power_charging_future_paused" msgid="1809543660923642799">"<xliff:g id="LEVEL">%1$s</xliff:g> ‑ In carica"</string>
     <string name="power_fast_charging_duration_v2" msgid="3797735998640359490">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g> - Ricarica completa entro <xliff:g id="TIME">%3$s</xliff:g>"</string>
-    <string name="power_charging_duration_v2" msgid="2938998284074003248">"<xliff:g id="LEVEL">%1$s</xliff:g> - Batteria completamente carica entro <xliff:g id="TIME">%2$s</xliff:g>"</string>
-    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"Batteria completamente carica entro <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_charging_duration_v2" msgid="2938998284074003248">"<xliff:g id="LEVEL">%1$s</xliff:g> - Batteria completamente carica entro: <xliff:g id="TIME">%2$s</xliff:g>"</string>
+    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"Batteria completamente carica entro: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_fast_charging_duration_only_v2" msgid="6270950195810579563">"Ricarica completa entro le ore <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"Sconosciuta"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"In carica"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Ricarica rapida"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Gestita dall\'amministratore"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Gestita tramite impostazioni con restrizioni"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Non disponibile durante le chiamate"</string>
     <string name="disabled" msgid="8017887509554714950">"Disattivato"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Autorizzazione concessa"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Autorizzazione non concessa"</string>
diff --git a/packages/SettingsLib/res/values-iw/arrays.xml b/packages/SettingsLib/res/values-iw/arrays.xml
index 5c1845f..9d176c0 100644
--- a/packages/SettingsLib/res/values-iw/arrays.xml
+++ b/packages/SettingsLib/res/values-iw/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"מסך המכשיר בלבד (ברירת המחדל)"</item>
-    <item msgid="9161645858025071955">"מסך חיצוני"</item>
-    <item msgid="114384731934682483">"לפי התמקדות"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"הצגת הצללה במסך המכשיר בלבד"</item>
-    <item msgid="7795034287069726554">"הצגת המכשיר במסך חיצוני אחד"</item>
-    <item msgid="5280431949814340475">"הצגת ההתראות במסך האחרון שהשתמשת בו"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index b520105..361dd18 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"טעינה מהירה"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"נמצא בשליטת מנהל מערכת"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"בשליטה של הגדרה מוגבלת"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ההעדפה הזו לא זמינה במהלך שיחות"</string>
     <string name="disabled" msgid="8017887509554714950">"מושבת"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"מורשה"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"לא מורשה"</string>
@@ -617,7 +616,7 @@
     <string name="help_label" msgid="3528360748637781274">"עזרה ומשוב"</string>
     <string name="storage_category" msgid="2287342585424631813">"אחסון"</string>
     <string name="shared_data_title" msgid="1017034836800864953">"נתונים משותפים"</string>
-    <string name="shared_data_summary" msgid="5516326713822885652">"הצגה ושינוי של נתונים משותפים"</string>
+    <string name="shared_data_summary" msgid="5516326713822885652">"צפייה בנתונים המשותפים ושינוי שלהם"</string>
     <string name="shared_data_no_blobs_text" msgid="3108114670341737434">"אין נתונים משותפים למשתמש הזה."</string>
     <string name="shared_data_query_failure_text" msgid="3489828881998773687">"אירעה שגיאה באחזור הנתונים המשותפים. צריך לנסות שוב."</string>
     <string name="blob_id_text" msgid="8680078988996308061">"מזהה נתונים משותפים: <xliff:g id="BLOB_ID">%d</xliff:g>"</string>
diff --git a/packages/SettingsLib/res/values-ja/arrays.xml b/packages/SettingsLib/res/values-ja/arrays.xml
index 9dc234b..d5d5ff1 100644
--- a/packages/SettingsLib/res/values-ja/arrays.xml
+++ b/packages/SettingsLib/res/values-ja/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"デバイスのディスプレイのみ(デフォルト)"</item>
     <item msgid="9161645858025071955">"外部ディスプレイ"</item>
-    <item msgid="114384731934682483">"フォーカスに基づく"</item>
+    <item msgid="23651860565814477">"ステータスバーの最新のタップ"</item>
+    <item msgid="7521112827893653392">"フォーカスに基づく"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"デバイスのディスプレイにのみシェードを表示する"</item>
-    <item msgid="7795034287069726554">"1 台の外部ディスプレイにデバイスを表示する"</item>
-    <item msgid="5280431949814340475">"最後にフォーカスされたディスプレイにデバイスを表示する"</item>
+    <item msgid="1955398604822147783">"1 台の外部ディスプレイにシェードを表示する"</item>
+    <item msgid="391477482416751568">"最後にステータスバーが操作されたディスプレイにシェードを表示する"</item>
+    <item msgid="1746820128097981528">"最後にフォーカスされたディスプレイにシェードを表示する"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 114a998..1170cd1 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -123,7 +123,7 @@
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"有効(メディアのみ)、左のみ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"有効(メディアのみ)、右のみ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"有効(メディアのみ)、左右"</string>
-    <string name="bluetooth_profile_a2dp" msgid="4632426382762851724">"メディアの音声"</string>
+    <string name="bluetooth_profile_a2dp" msgid="4632426382762851724">"メディアのオーディオ"</string>
     <string name="bluetooth_profile_headset" msgid="5395952236133499331">"電話"</string>
     <string name="bluetooth_profile_opp" msgid="6692618568149493430">"ファイル転送"</string>
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"入力デバイス"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"急速充電中"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"管理者により管理されています"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"制限付き設定によって管理されています"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"通話中は利用できません"</string>
     <string name="disabled" msgid="8017887509554714950">"無効"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"許可"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"許可しない"</string>
diff --git a/packages/SettingsLib/res/values-ka/arrays.xml b/packages/SettingsLib/res/values-ka/arrays.xml
index 8d1adf6..8ee3338 100644
--- a/packages/SettingsLib/res/values-ka/arrays.xml
+++ b/packages/SettingsLib/res/values-ka/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"მხოლოდ მოწყობილობის ეკრანი (ნაგულისხმევი)"</item>
-    <item msgid="9161645858025071955">"გარე ეკრანი"</item>
-    <item msgid="114384731934682483">"ფოკუსის მიხედვით"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"ჩრდილის ჩვენება მხოლოდ მოწყობილობის ეკრანზე"</item>
-    <item msgid="7795034287069726554">"ჩრდილის ჩვენება ერთ გარე ეკრანზე"</item>
-    <item msgid="5280431949814340475">"მოწყობილობის ჩვენება ბოლო ფოკუსირებულ ეკრანზე"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index 8a2fd35..6503795 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"სწრაფი დატენა"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"იმართება ადმინისტრატორის მიერ"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"კონტროლდება შეზღუდული რეჟიმის პარამეტრით"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"მიუწვდომელია ზარების განხორციელებისას"</string>
     <string name="disabled" msgid="8017887509554714950">"გამორთული"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"დაშვებულია"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"დაუშვებელია"</string>
diff --git a/packages/SettingsLib/res/values-kk/arrays.xml b/packages/SettingsLib/res/values-kk/arrays.xml
index e8996de..6aa5f2b 100644
--- a/packages/SettingsLib/res/values-kk/arrays.xml
+++ b/packages/SettingsLib/res/values-kk/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Тек құрылғы дисплейі (әдепкі)"</item>
-    <item msgid="9161645858025071955">"Сыртқы дисплей"</item>
-    <item msgid="114384731934682483">"Назарға негізделген"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Құрылғы дисплейінде ғана реңк көрсету"</item>
-    <item msgid="7795034287069726554">"Жалғыз сыртқы дисплейі бар құрылғыны көрсету"</item>
-    <item msgid="5280431949814340475">"Соңғы рет назарда болған дисплейдегі құрылғыны көрсету"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index ebb723c..9082a56 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -506,7 +506,7 @@
     <string name="power_charging_future_paused" msgid="1809543660923642799">"<xliff:g id="LEVEL">%1$s</xliff:g> – Зарядталып жатыр"</string>
     <string name="power_fast_charging_duration_v2" msgid="3797735998640359490">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g> - Зарядталып болады: <xliff:g id="TIME">%3$s</xliff:g>"</string>
     <string name="power_charging_duration_v2" msgid="2938998284074003248">"<xliff:g id="LEVEL">%1$s</xliff:g> - Толық заряд алуға қалған уақыт: <xliff:g id="TIME">%2$s</xliff:g>"</string>
-    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"Толық заряд алуға қалған уақыт: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"Толықтай зарядталып болады: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_fast_charging_duration_only_v2" msgid="6270950195810579563">"Заряд толуына қалған уақыт: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"Белгісіз"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"Зарядталуда"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Жылдам зарядтау"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Әкімші басқарады"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Шектелген параметрлер арқылы басқарылады."</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Қоңырау шалу кезінде қолжетімді емес."</string>
     <string name="disabled" msgid="8017887509554714950">"Өшірілген"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Рұқсат берілген"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Рұқсат етілмеген"</string>
diff --git a/packages/SettingsLib/res/values-km/arrays.xml b/packages/SettingsLib/res/values-km/arrays.xml
index ee6ee56..e9a21e8 100644
--- a/packages/SettingsLib/res/values-km/arrays.xml
+++ b/packages/SettingsLib/res/values-km/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"ផ្ទាំងអេក្រង់ឧបករណ៍តែប៉ុណ្ណោះ (លំនាំដើម)"</item>
-    <item msgid="9161645858025071955">"ផ្ទាំង​អេក្រង់​ខាង​ក្រៅ"</item>
-    <item msgid="114384731934682483">"ផ្អែកលើការផ្ដោត"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"បង្ហាញផ្ទាំងនៅលើផ្ទាំងអេក្រង់ឧបករណ៍តែប៉ុណ្ណោះ"</item>
-    <item msgid="7795034287069726554">"បង្ហាញឧបករណ៍នៅលើផ្ទាំងអេក្រង់ខាងក្រៅតែមួយ"</item>
-    <item msgid="5280431949814340475">"បង្ហាញឧបករណ៍នៅលើផ្ទាំងអេក្រង់ដែលផ្ដោតចុងក្រោយ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index cd36e49..3cc214e 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ការសាកថ្មរហ័ស"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"គ្រប់គ្រងដោយអ្នកគ្រប់គ្រង"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"គ្រប់គ្រងដោយការកំណត់ដែលបានរឹតបន្តឹង"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"មិនអាច​ប្រើបានទេ​អំឡុងពេល​ហៅទូរសព្ទ"</string>
     <string name="disabled" msgid="8017887509554714950">"បិទ"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"បាន​អនុញ្ញាត"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"មិន​បានអនុញ្ញាត​"</string>
diff --git a/packages/SettingsLib/res/values-kn/arrays.xml b/packages/SettingsLib/res/values-kn/arrays.xml
index 51e6e15..dc9c7e0 100644
--- a/packages/SettingsLib/res/values-kn/arrays.xml
+++ b/packages/SettingsLib/res/values-kn/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"ಸಾಧನದ ಡಿಸ್‌ಪ್ಲೇ ಮಾತ್ರ (ಡೀಫಾಲ್ಟ್)"</item>
-    <item msgid="9161645858025071955">"ಬಾಹ್ಯ ಡಿಸ್‌ಪ್ಲೇ"</item>
-    <item msgid="114384731934682483">"ಫೋಕಸ್-ಆಧಾರಿತ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"ಸಾಧನದ ಡಿಸ್‌ಪ್ಲೇನಲ್ಲಿ ಮಾತ್ರ ಶೇಡ್ ತೋರಿಸಿ"</item>
-    <item msgid="7795034287069726554">"ಒಂದೇ ಬಾಹ್ಯ ಡಿಸ್‌ಪ್ಲೇನಲ್ಲಿ ಸಾಧನವನ್ನು ತೋರಿಸಿ"</item>
-    <item msgid="5280431949814340475">"ಕೊನೆಯ ಕೇಂದ್ರೀಕೃತ ಡಿಸ್‌ಪ್ಲೇನಲ್ಲಿ ಸಾಧನವನ್ನು ತೋರಿಸಿ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index b0b6fca..d2b2176 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ಫಾಸ್ಟ್ ಚಾರ್ಜಿಂಗ್"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"ನಿರ್ವಾಹಕರ ಮೂಲಕ ನಿಯಂತ್ರಿಸಲಾಗಿದೆ"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"ನಿರ್ಬಂಧಿಸಲಾದ ಸೆಟ್ಟಿಂಗ್ ಮೂಲಕ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ಕರೆಗಳ ಸಮಯದಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="disabled" msgid="8017887509554714950">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ಅನುಮತಿಸಲಾಗಿದೆ"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ಅನುಮತಿ ಇಲ್ಲ"</string>
diff --git a/packages/SettingsLib/res/values-ko/arrays.xml b/packages/SettingsLib/res/values-ko/arrays.xml
index dd1121f..1477497 100644
--- a/packages/SettingsLib/res/values-ko/arrays.xml
+++ b/packages/SettingsLib/res/values-ko/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"기기 디스플레이만(기본값)"</item>
-    <item msgid="9161645858025071955">"외부 디스플레이"</item>
-    <item msgid="114384731934682483">"포커스 기반"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"기기 디스플레이에만 음영 표시"</item>
-    <item msgid="7795034287069726554">"단일 외부 디스플레이에 기기 표시"</item>
-    <item msgid="5280431949814340475">"마지막으로 포커스된 디스플레이에 기기 표시"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 9a2af37..bece637 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"급속 충전"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"관리자가 제어"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"제한된 설정으로 제어됨"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"통화 중에는 사용할 수 없습니다."</string>
     <string name="disabled" msgid="8017887509554714950">"사용 안함"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"허용됨"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"허용되지 않음"</string>
diff --git a/packages/SettingsLib/res/values-ky/arrays.xml b/packages/SettingsLib/res/values-ky/arrays.xml
index fe44fe0..54d9ecd 100644
--- a/packages/SettingsLib/res/values-ky/arrays.xml
+++ b/packages/SettingsLib/res/values-ky/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Түзмөктүн экраны гана (демейки)"</item>
-    <item msgid="9161645858025071955">"Тышкы экран"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Көлөкөнү түзмөктүн экранында гана көрсөтүү"</item>
-    <item msgid="7795034287069726554">"Түзмөктү бир тышкы экранда көрсөтүү"</item>
-    <item msgid="5280431949814340475">"Түзмөктү акыркы активдүү экранда көрсөтүү"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index a756d57..b6baf38 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Ыкчам кубаттоо"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Администратор тарабынан көзөмөлдөнөт"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Чектелген параметр аркылуу көзөмөлдөнөт"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Сүйлөшүп жаткан учурда жеткиликсиз"</string>
     <string name="disabled" msgid="8017887509554714950">"Өчүрүлгөн"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Уруксат берилген"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Тыюу салынган"</string>
diff --git a/packages/SettingsLib/res/values-lo/arrays.xml b/packages/SettingsLib/res/values-lo/arrays.xml
index d9da45b4..ccf645b 100644
--- a/packages/SettingsLib/res/values-lo/arrays.xml
+++ b/packages/SettingsLib/res/values-lo/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"ຈໍສະແດງຜົນຂອງອຸປະກອນເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ)"</item>
-    <item msgid="9161645858025071955">"ຈໍສະແດງຜົນພາຍນອກ"</item>
-    <item msgid="114384731934682483">"ອີງຕາມການໂຟກັສ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"ສະແດງເສດສີໃນຈໍສະແດງຜົນຂອງອຸປະກອນເທົ່ານັ້ນ"</item>
-    <item msgid="7795034287069726554">"ສະແດງອຸປະກອນໃນຈໍສະແດງຜົນພາຍນອກເຄື່ອງດຽວ"</item>
-    <item msgid="5280431949814340475">"ສະແດງອຸປະກອນໃນຈໍສະແດງຜົນທີ່ໂຟກັສຫຼ້າສຸດ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index e919f42..3046b4f 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ກຳລັງສາກໄວ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"ຄວບຄຸມໂດຍຜູ້ເບິ່ງແຍງ"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"ຄວບຄຸມໂດຍການຕັ້ງຄ່າທີ່ຈຳກັດໄວ້"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ບໍ່ສາມາດໃຊ້ໄດ້ລະຫວ່າງການໂທ"</string>
     <string name="disabled" msgid="8017887509554714950">"ປິດການນຳໃຊ້"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ອະນຸຍາດແລ້ວ"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ບໍ່ອະນຸຍາດ"</string>
diff --git a/packages/SettingsLib/res/values-lt/arrays.xml b/packages/SettingsLib/res/values-lt/arrays.xml
index cf9b8d8..1f40b1a 100644
--- a/packages/SettingsLib/res/values-lt/arrays.xml
+++ b/packages/SettingsLib/res/values-lt/arrays.xml
@@ -207,7 +207,7 @@
   <string-array name="window_animation_scale_entries">
     <item msgid="2675263395797191850">"Animacija išjungta"</item>
     <item msgid="5790132543372767872">"Animacijos mastelis 0,5x"</item>
-    <item msgid="2529692189302148746">"Animacijos mastelis 1x"</item>
+    <item msgid="2529692189302148746">"Animacijos mastelis 1 x"</item>
     <item msgid="8072785072237082286">"Animacijos mastelis 1,5x"</item>
     <item msgid="3531560925718232560">"Animacijos mastelis 2x"</item>
     <item msgid="4542853094898215187">"Animacijos mastelis 5x"</item>
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Tik įrenginio ekranas (numatytasis nustatymas)"</item>
     <item msgid="9161645858025071955">"Išorinis ekranas"</item>
-    <item msgid="114384731934682483">"Pagal fokusavimą"</item>
+    <item msgid="23651860565814477">"Naujausias būsenos juostos palietimas"</item>
+    <item msgid="7521112827893653392">"Pagal fokusavimą"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Rodyti šešėlį tik įrenginio ekrane"</item>
-    <item msgid="7795034287069726554">"Rodyti įrenginį viename išoriniame ekrane"</item>
-    <item msgid="5280431949814340475">"Rodyti įrenginį paskutiniame fokusuotame ekrane"</item>
+    <item msgid="1955398604822147783">"Rodyti šešėlį viename išoriniame ekrane"</item>
+    <item msgid="391477482416751568">"Rodyti šešėlį ekrane, kuriame paskutinį kartą buvo sąveikaujama su būsenos juosta"</item>
+    <item msgid="1746820128097981528">"Rodyti šešėlį paskutiniame fokusuotame ekrane"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index caa5b18..f81caa8 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Spartusis įkrovimas"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Valdo administratorius"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Valdoma pagal apribotą nustatymą"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Nepasiekiama per skambučius"</string>
     <string name="disabled" msgid="8017887509554714950">"Neleidžiama"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Leidžiama"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Neleidžiama"</string>
diff --git a/packages/SettingsLib/res/values-lv/arrays.xml b/packages/SettingsLib/res/values-lv/arrays.xml
index 92d141e..6d293be 100644
--- a/packages/SettingsLib/res/values-lv/arrays.xml
+++ b/packages/SettingsLib/res/values-lv/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Tikai ierīces displejs (noklusējums)"</item>
-    <item msgid="9161645858025071955">"Ārējais displejs"</item>
-    <item msgid="114384731934682483">"Saskaņā ar fokusu"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Rādīt ēnu tikai ierīces displejā"</item>
-    <item msgid="7795034287069726554">"Rādīt ierīci vienā ārējā displejā"</item>
-    <item msgid="5280431949814340475">"Rādīt ierīci pēdējā fokusētajā displejā"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 84bf692..987857b 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Ātrā uzlāde"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontrolē administrators"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kontrolē ierobežots iestatījums"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Ierīce nav pieejama zvanu laikā"</string>
     <string name="disabled" msgid="8017887509554714950">"Atspējots"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Atļauts"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nav atļauts"</string>
diff --git a/packages/SettingsLib/res/values-mk/arrays.xml b/packages/SettingsLib/res/values-mk/arrays.xml
index 8e9bb21..0490f28 100644
--- a/packages/SettingsLib/res/values-mk/arrays.xml
+++ b/packages/SettingsLib/res/values-mk/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Само на екранот на уредот (стандардно)"</item>
-    <item msgid="9161645858025071955">"Надворешен екран"</item>
-    <item msgid="114384731934682483">"Засновано на фокус"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Прикажувај сенка само на екранот на уредот"</item>
-    <item msgid="7795034287069726554">"Прикажувај сенка на еден надворешен екран"</item>
-    <item msgid="5280431949814340475">"Прикажувај сенка на последниот фокусиран екран"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"стандарден_екран"</item>
-    <item msgid="774789415968826925">"кој_било_надворешен_екран"</item>
-    <item msgid="7880769915418638436">"последен_допир_на_статусната_лента"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index a06da85..fa65437 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Се полни брзо"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Контролирано од администраторот"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Контролирано со ограничени поставки"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Недостапно при повици"</string>
     <string name="disabled" msgid="8017887509554714950">"Оневозможено"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Со дозвола"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Без дозвола"</string>
diff --git a/packages/SettingsLib/res/values-ml/arrays.xml b/packages/SettingsLib/res/values-ml/arrays.xml
index 4b8dbce..811c03d 100644
--- a/packages/SettingsLib/res/values-ml/arrays.xml
+++ b/packages/SettingsLib/res/values-ml/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"ഉപകരണ ഡിസ്പ്ലേ മാത്രം (ഡിഫോൾട്ട്)"</item>
     <item msgid="9161645858025071955">"ബാഹ്യ ഡിസ്പ്ലേ"</item>
-    <item msgid="114384731934682483">"ഫോക്കസ്-അടിസ്ഥാനമാക്കിയുള്ളത്"</item>
+    <item msgid="23651860565814477">"ഏറ്റവും പുതിയ സ്റ്റാറ്റസ് ബാർ ടച്ച്"</item>
+    <item msgid="7521112827893653392">"ഫോക്കസ്-അടിസ്ഥാനമാക്കിയുള്ളത്"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"ഉപകരണ ഡിസ്പ്ലേയിൽ മാത്രം ഷെയ്‌ഡ് കാണിക്കുക"</item>
-    <item msgid="7795034287069726554">"ഒരൊറ്റ ബാഹ്യ ഡിസ്പ്ലേയിൽ ഉപകരണം കാണിക്കുക"</item>
-    <item msgid="5280431949814340475">"അവസാനം ഫോക്കസ് ചെയ്ത ഡിസ്പ്ലേയിൽ ഉപകരണം കാണിക്കുക"</item>
+    <item msgid="1955398604822147783">"ഒരൊറ്റ ബാഹ്യ ഡിസ്പ്ലേയിൽ ഷെയ്‌ഡ് കാണിക്കുക"</item>
+    <item msgid="391477482416751568">"അവസാനം അതിന്റെ സ്റ്റാറ്റസ് ബാർ ഇടപഴകിയ ഡിസ്പ്ലേയിൽ ഷെയ്‌ഡ് കാണിക്കുക"</item>
+    <item msgid="1746820128097981528">"അവസാനം ഫോക്കസ് ചെയ്ത ഡിസ്പ്ലേയിൽ ഷേഡ് കാണിക്കുക"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index b405963..3e59d9f 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"അതിവേഗ ചാർജിംഗ്"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"അഡ്‌മിൻ നിയന്ത്രിക്കുന്നത്"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"നിയന്ത്രിത ക്രമീകരണം ഉപയോഗിച്ച് നിയന്ത്രിക്കുന്നത്"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"കോളുകൾ ചെയ്യുമ്പോൾ ലഭ്യമല്ല"</string>
     <string name="disabled" msgid="8017887509554714950">"പ്രവർത്തനരഹിതമാക്കി"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"അനുവദനീയം"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"അനുവദിച്ചിട്ടില്ല"</string>
diff --git a/packages/SettingsLib/res/values-mn/arrays.xml b/packages/SettingsLib/res/values-mn/arrays.xml
index 5d5b8f9..ca103af 100644
--- a/packages/SettingsLib/res/values-mn/arrays.xml
+++ b/packages/SettingsLib/res/values-mn/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Зөвхөн төхөөрөмжийн дэлгэц (өгөгдмөл)"</item>
-    <item msgid="9161645858025071955">"Гаднын дэлгэц"</item>
-    <item msgid="114384731934682483">"Төвлөрөлд тулгуурласан"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Зөвхөн төхөөрөмж дээрх дэлгэцэд сүүдрийг харуулах"</item>
-    <item msgid="7795034287069726554">"Зөвхөн гаднын нэг дэлгэц дээр төхөөрөмжийг харуулах"</item>
-    <item msgid="5280431949814340475">"Сүүлд төвлөрсөн дэлгэц дээр төхөөрөмжийг харуулах"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index c1652132..e8e9e0c 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Шуурхай цэнэглэх"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Админ удирдсан"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Хязгаарлагдсан тохиргоогоор хянадаг"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Дуудлагын үер боломжгүй"</string>
     <string name="disabled" msgid="8017887509554714950">"Идэвхгүйжүүлсэн"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Зөвшөөрсөн"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Зөвшөөрөөгүй"</string>
diff --git a/packages/SettingsLib/res/values-mr/arrays.xml b/packages/SettingsLib/res/values-mr/arrays.xml
index 959499c..1437a2c 100644
--- a/packages/SettingsLib/res/values-mr/arrays.xml
+++ b/packages/SettingsLib/res/values-mr/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"फक्त डिव्हाइस डिस्प्ले (डीफॉल्ट)"</item>
-    <item msgid="9161645858025071955">"बाह्य डिस्प्ले"</item>
-    <item msgid="114384731934682483">"फोकसवर आधारित"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"फक्त डिव्हाइस डिस्प्लेवर शेड दाखवा"</item>
-    <item msgid="7795034287069726554">"एकल बाह्य डिस्प्लेवर डिव्हाइस दाखवा"</item>
-    <item msgid="5280431949814340475">"शेवटच्या फोकस केलेल्या डिस्प्लेवर डिव्हाइस दाखवा"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index d47f8ff..f1f5cab 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"फास्ट चार्जिंग"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"प्रशासकाने नियंत्रित केलेले"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"प्रतिबंधित केलेल्या सेटिंग द्वारे नियंत्रित"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"कॉल दरम्‍यान उपलब्ध नाही"</string>
     <string name="disabled" msgid="8017887509554714950">"अक्षम"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"अनुमती आहे"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"अनुमती नाही"</string>
diff --git a/packages/SettingsLib/res/values-ms/arrays.xml b/packages/SettingsLib/res/values-ms/arrays.xml
index 7b6cbe1..464a0c7 100644
--- a/packages/SettingsLib/res/values-ms/arrays.xml
+++ b/packages/SettingsLib/res/values-ms/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Paparan peranti sahaja (Lalai)"</item>
     <item msgid="9161645858025071955">"Paparan luaran"</item>
-    <item msgid="114384731934682483">"Berasaskan fokus"</item>
+    <item msgid="23651860565814477">"Sentuhan bar status terbaharu"</item>
+    <item msgid="7521112827893653392">"Berasaskan fokus"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Tunjukkan rona warna pada paparan peranti sahaja"</item>
-    <item msgid="7795034287069726554">"Tunjukkan peranti pada satu paparan luaran"</item>
-    <item msgid="5280431949814340475">"Tunjukkan peranti pada paparan terakhir yang difokuskan"</item>
+    <item msgid="1955398604822147783">"Tunjukkan rona warna pada satu paparan luaran"</item>
+    <item msgid="391477482416751568">"Tunjukkan rona warna pada paparan yang terakhir berinteraksi dengan bar status"</item>
+    <item msgid="1746820128097981528">"Tunjukkan rona warna pada paparan fokus terakhir"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index 478e8d2..412100c 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Pengecasan pantas"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Dikawal oleh pentadbir"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Dikawal oleh Tetapan Terhad"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Tidak tersedia semasa panggilan berlangsung"</string>
     <string name="disabled" msgid="8017887509554714950">"Dilumpuhkan"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Dibenarkan"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Tidak dibenarkan"</string>
diff --git a/packages/SettingsLib/res/values-my/arrays.xml b/packages/SettingsLib/res/values-my/arrays.xml
index 71a1c7c..aef22b2 100644
--- a/packages/SettingsLib/res/values-my/arrays.xml
+++ b/packages/SettingsLib/res/values-my/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"စက်ဖန်သားပြင် သီးသန့် (မူရင်း)"</item>
-    <item msgid="9161645858025071955">"ပြင်ပဖန်သားပြင်"</item>
-    <item msgid="114384731934682483">"ပြသမှုအခြေပြု"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"စက်ဖန်သားပြင်တွင်သာ အရိပ်ပြပါ"</item>
-    <item msgid="7795034287069726554">"ပြင်ပဖန်သားပြင်တစ်ခုတွင် စက်ကိုပြပါ"</item>
-    <item msgid="5280431949814340475">"နောက်ဆုံးပြသထားသော ဖန်သားပြင်တွင် စက်ကိုပြပါ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"မူရင်းဖန်သားပြင်"</item>
-    <item msgid="774789415968826925">"မည်သည့်ပြင်ပဖန်သားပြင်မဆို"</item>
-    <item msgid="7880769915418638436">"အခြေအနေပြဘား နောက်ဆုံးထိတွေ့မှု"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 4ba82fd..cf493cf 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"အမြန်အားသွင်းခြင်း"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"စီမံခန့်ခွဲသူမှ ထိန်းချုပ်ပါသည်"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"ကန့်သတ်ဆက်တင်ဖြင့် ထိန်းချုပ်ထားသည်"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ဖုန်းခေါ်ဆိုနေချိန်တွင် မရနိုင်ပါ"</string>
     <string name="disabled" msgid="8017887509554714950">"ပိတ်ထားပြီး"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ခွင့်ပြုထားသည်"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ခွင့်မပြုပါ"</string>
diff --git a/packages/SettingsLib/res/values-nb/arrays.xml b/packages/SettingsLib/res/values-nb/arrays.xml
index 8d52693..88f193c 100644
--- a/packages/SettingsLib/res/values-nb/arrays.xml
+++ b/packages/SettingsLib/res/values-nb/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Bare enhetsskjermen (standard)"</item>
-    <item msgid="9161645858025071955">"Ekstern skjerm"</item>
-    <item msgid="114384731934682483">"Fokusbasert"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Vis skyggen bare på enhetsskjermen"</item>
-    <item msgid="7795034287069726554">"Vis enheten på én ekstern skjerm"</item>
-    <item msgid="5280431949814340475">"Vis enheten på den sist fokuserte skjermen"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"Standardskjerm"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index f6de346..045318a 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Hurtiglading"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontrollert av administratoren"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kontrollert av en begrenset innstilling"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Utilgjengelig under samtaler"</string>
     <string name="disabled" msgid="8017887509554714950">"Deaktivert"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Tillatt"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Ikke tillatt"</string>
diff --git a/packages/SettingsLib/res/values-ne/arrays.xml b/packages/SettingsLib/res/values-ne/arrays.xml
index cd8448f..1989994 100644
--- a/packages/SettingsLib/res/values-ne/arrays.xml
+++ b/packages/SettingsLib/res/values-ne/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"२"</item>
     <item msgid="4779928470672877922">"३"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"डिभाइसको डिस्प्ले मात्र (डिफल्ट)"</item>
-    <item msgid="9161645858025071955">"बाह्य डिस्प्ले"</item>
-    <item msgid="114384731934682483">"फोकसमा आधारित"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"यो सेड डिभाइसकै डिस्प्लेमा मात्र देखाउनुहोस्"</item>
-    <item msgid="7795034287069726554">"यो डिभाइस एकल बाह्य डिस्प्लेमा देखाउनुहोस्"</item>
-    <item msgid="5280431949814340475">"यो डिभाइस पछिल्लो पटक फोकस गरिएको डिस्प्लेमा देखाउनुहोस्"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index 28d02a1..d637a4b 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -262,7 +262,7 @@
     <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_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>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"फास्ट चार्जिङ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"प्रशासकद्वारा नियन्त्रित"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"प्रतिबन्धित सेटिङले नियन्त्रण गरेको"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"कल चलिरहेका बेला उपलब्ध छैन"</string>
     <string name="disabled" msgid="8017887509554714950">"असक्षम पारियो"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"अनुमति छ"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"अनुमति छैन"</string>
diff --git a/packages/SettingsLib/res/values-nl/arrays.xml b/packages/SettingsLib/res/values-nl/arrays.xml
index d92b806..12c9551 100644
--- a/packages/SettingsLib/res/values-nl/arrays.xml
+++ b/packages/SettingsLib/res/values-nl/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Alleen apparaatscherm (standaard)"</item>
-    <item msgid="9161645858025071955">"Extern scherm"</item>
-    <item msgid="114384731934682483">"Op focus gebaseerd"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Alleen paneel tonen op apparaatscherm"</item>
-    <item msgid="7795034287069726554">"Apparaat tonen op één extern scherm"</item>
-    <item msgid="5280431949814340475">"Apparaat tonen op laatste gefocuste scherm"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 00917c5..481479e 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Snel opladen"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Ingesteld door beheerder"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Beheerd door beperkte instelling"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Niet beschikbaar tijdens gesprekken"</string>
     <string name="disabled" msgid="8017887509554714950">"Uitgezet"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Toegestaan"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Niet toegestaan"</string>
diff --git a/packages/SettingsLib/res/values-or/arrays.xml b/packages/SettingsLib/res/values-or/arrays.xml
index f9beb8a..9782303 100644
--- a/packages/SettingsLib/res/values-or/arrays.xml
+++ b/packages/SettingsLib/res/values-or/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"କେବଳ ଡିଭାଇସ ଡିସପ୍ଲେ (ଡିଫଲ୍ଟ)"</item>
-    <item msgid="9161645858025071955">"ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେ"</item>
-    <item msgid="114384731934682483">"ଫୋକସ-ଆଧାରିତ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"କେବଳ ଡିଭାଇସରେ ଡିସପ୍ଲେ ସେଡ ଦେଖାନ୍ତୁ"</item>
-    <item msgid="7795034287069726554">"ସିଙ୍ଗଲ ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେରେ ଡିଭାଇସ ଦେଖାନ୍ତୁ"</item>
-    <item msgid="5280431949814340475">"ଫୋକସ କରାଯାଇଥିବା ଗତ ଡିସପ୍ଲେରେ ଡିଭାଇସ ଦେଖାନ୍ତୁ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 69d57a6..bcde4e9 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -129,7 +129,7 @@
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"ଇନପୁଟ ଡିଭାଇସ"</string>
     <string name="bluetooth_profile_pan" msgid="1006235139308318188">"ଇଣ୍ଟରନେଟ ଆକ୍ସେସ"</string>
     <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"କଣ୍ଟାକ୍ଟ ଓ କଲ ଇତିହାସକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
-    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"ସୂଚନାକୁ କଲ ଘୋଷଣା ଏବଂ ଆହୁରି ଅଧିକ ପାଇଁ ବ୍ୟବହାର କରାଯିବ"</string>
+    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"ସୂଚନାକୁ କଲ ଘୋଷଣା ଏବଂ ଆହୁରି ଅନେକ କିଛି ପାଇଁ ବ୍ୟବହାର କରାଯିବ"</string>
     <string name="bluetooth_profile_pan_nap" msgid="7871974753822470050">"ଇଣ୍ଟର୍‌ନେଟ୍‌ ସଂଯୋଗ ଶେୟାରିଙ୍ଗ"</string>
     <string name="bluetooth_profile_map" msgid="8907204701162107271">"ଟେକ୍ସଟ୍ ମେସେଜ୍"</string>
     <string name="bluetooth_profile_sap" msgid="8304170950447934386">"SIM ଆକ୍ସେସ"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ଫାଷ୍ଟ ଚାର୍ଜିଂ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"ଆଡ୍‌ମିନ୍‌ ଦ୍ୱାରା ନିୟନ୍ତ୍ରିତ"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"ପ୍ରତିବନ୍ଧିତ ସେଟିଂ ଦ୍ୱାରା ନିୟନ୍ତ୍ରଣ କରାଯାଇଛି"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"କଲ କରିବାବେଳେ ଉପଲବ୍ଧ ନଥାଏ"</string>
     <string name="disabled" msgid="8017887509554714950">"ଅକ୍ଷମ ହୋଇଛି"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ଅନୁମତି ଦିଆଯାଇଛି"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ଅନୁମତି ନାହିଁ"</string>
diff --git a/packages/SettingsLib/res/values-pa/arrays.xml b/packages/SettingsLib/res/values-pa/arrays.xml
index 1e7f055..afb85ca 100644
--- a/packages/SettingsLib/res/values-pa/arrays.xml
+++ b/packages/SettingsLib/res/values-pa/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"ਸਿਰਫ਼ ਡੀਵਾਈਸ ਦੀ ਡਿਸਪਲੇ (ਪੂਰਵ-ਨਿਰਧਾਰਿਤ)"</item>
-    <item msgid="9161645858025071955">"ਬਾਹਰੀ ਡਿਸਪਲੇ"</item>
-    <item msgid="114384731934682483">"ਫੋਕਸ-ਆਧਾਰਿਤ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"ਸਿਰਫ਼ ਡੀਵਾਈਸ ਦੀ ਡਿਸਪਲੇ \'ਤੇ ਸ਼ੇਡ ਦਿਖਾਓ"</item>
-    <item msgid="7795034287069726554">"ਇਕਹਿਰੀ ਬਾਹਰੀ ਡਿਸਪਲੇ \'ਤੇ ਡੀਵਾਈਸ ਦਿਖਾਓ"</item>
-    <item msgid="5280431949814340475">"ਫੋਕਸ ਕੀਤੀ ਗਈ ਪਿਛਲੀ ਡਿਸਪਲੇ \'ਤੇ ਡੀਵਾਈਸ ਦਿਖਾਓ"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index ca97244..821c84e 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -128,7 +128,7 @@
     <string name="bluetooth_profile_opp" msgid="6692618568149493430">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ"</string>
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"ਇਨਪੁੱਟ ਡੀਵਾਈਸ"</string>
     <string name="bluetooth_profile_pan" msgid="1006235139308318188">"ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ"</string>
-    <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string>
+    <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string>
     <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਾਲ ਘੋਸ਼ਣਾਵਾਂ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਲਈ ਕੀਤੀ ਜਾਵੇਗੀ"</string>
     <string name="bluetooth_profile_pan_nap" msgid="7871974753822470050">"ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਸਾਂਝਾਕਰਨ"</string>
     <string name="bluetooth_profile_map" msgid="8907204701162107271">"ਲਿਖਤ ਸੁਨੇਹੇ"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ਤੇਜ਼ ਚਾਰਜਿੰਗ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਕੰਟਰੋਲ ਕੀਤੀ ਗਈ"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"ਪ੍ਰਤਿਬੰਧਿਤ ਸੈਟਿੰਗ ਰਾਹੀਂ ਕੰਟਰੋਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ਕਾਲਾਂ ਦੌਰਾਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="disabled" msgid="8017887509554714950">"ਅਯੋਗ ਬਣਾਇਆ"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ਮਨਜ਼ੂਰਸ਼ੁਦਾ"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ਗੈਰ-ਮਨਜ਼ੂਰਸ਼ੁਦਾ"</string>
diff --git a/packages/SettingsLib/res/values-pl/arrays.xml b/packages/SettingsLib/res/values-pl/arrays.xml
index a9892b3..59791c0 100644
--- a/packages/SettingsLib/res/values-pl/arrays.xml
+++ b/packages/SettingsLib/res/values-pl/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Tylko wyświetlanie na urządzeniu (domyślnie)"</item>
-    <item msgid="9161645858025071955">"Wyświetlacz zewnętrzny"</item>
-    <item msgid="114384731934682483">"Na podstawie zaznaczenia"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Pokaż cień tylko na wyświetlaczu urządzenia"</item>
-    <item msgid="7795034287069726554">"Pokaż urządzenie na pojedynczym wyświetlaczu zewnętrznym"</item>
-    <item msgid="5280431949814340475">"Pokaż urządzenie na ostatnim aktywnym wyświetlaczu"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 9fc2765..9f6eb4c 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Szybkie ładowanie"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontrolowane przez administratora"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Obowiązują ustawienia z ograniczonym dostępem"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Niedostępne w trakcie połączeń"</string>
     <string name="disabled" msgid="8017887509554714950">"Wyłączona"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Dozwolone"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Niedozwolone"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/arrays.xml b/packages/SettingsLib/res/values-pt-rBR/arrays.xml
index 35aa3b0..2e61272 100644
--- a/packages/SettingsLib/res/values-pt-rBR/arrays.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Somente a tela do dispositivo (padrão)"</item>
     <item msgid="9161645858025071955">"Tela externa"</item>
-    <item msgid="114384731934682483">"Com base no foco"</item>
+    <item msgid="23651860565814477">"Toque mais recente na barra de status"</item>
+    <item msgid="7521112827893653392">"Com base no foco"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Mostrar sombra apenas na tela do dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostrar o dispositivo em uma única tela externa"</item>
-    <item msgid="5280431949814340475">"Mostrar o dispositivo na última tela focada"</item>
+    <item msgid="1955398604822147783">"Mostrar sombra em uma única tela externa"</item>
+    <item msgid="391477482416751568">"Mostrar sombra na tela que teve a última interação na barra de status"</item>
+    <item msgid="1746820128097981528">"Mostrar sombra na última tela focada"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 1e45965..72f25be 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -123,13 +123,13 @@
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ativo (apenas mídia), apenas esquerdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ativo (apenas mídia), somente direito"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ativo (apenas mídia), esquerdo e direito"</string>
-    <string name="bluetooth_profile_a2dp" msgid="4632426382762851724">"Áudio da mídia"</string>
+    <string name="bluetooth_profile_a2dp" msgid="4632426382762851724">"Áudio de mídia"</string>
     <string name="bluetooth_profile_headset" msgid="5395952236133499331">"Chamadas telefônicas"</string>
     <string name="bluetooth_profile_opp" msgid="6692618568149493430">"Transferência de arquivo"</string>
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"Dispositivo de entrada"</string>
     <string name="bluetooth_profile_pan" msgid="1006235139308318188">"Acesso à Internet"</string>
     <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"Permitir acesso a contatos e ao histórico de ligações"</string>
-    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"As informações serão usadas para fazer o anúncio de ligações e mais"</string>
+    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"As informações serão usadas para avisar sobre ligações e mais"</string>
     <string name="bluetooth_profile_pan_nap" msgid="7871974753822470050">"Compartilhamento de conexão à Internet"</string>
     <string name="bluetooth_profile_map" msgid="8907204701162107271">"Mensagens de texto"</string>
     <string name="bluetooth_profile_sap" msgid="8304170950447934386">"Acesso ao chip"</string>
@@ -515,7 +515,7 @@
     <string name="battery_info_status_charging_wireless" msgid="8924722966861282197">"Carregando sem fio"</string>
     <string name="battery_info_status_charging_dock" msgid="8573274094093364791">"Carregando"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"Não está carregando"</string>
-    <string name="battery_info_status_not_charging" msgid="1103084691314264664">"Conectado, mas não está carregando"</string>
+    <string name="battery_info_status_not_charging" msgid="1103084691314264664">"Dispositivo conectado, mas não está carregando"</string>
     <string name="battery_info_status_full" msgid="1339002294876531312">"Carregada"</string>
     <string name="battery_info_status_full_charged" msgid="3536054261505567948">"Carga completa"</string>
     <string name="battery_info_status_charging_on_hold" msgid="6364355145521694438">"Carregamento suspenso"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Carregamento rápido"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlada pelo admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlada pelas configurações restritas"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Indisponível durante ligações"</string>
     <string name="disabled" msgid="8017887509554714950">"Desativado"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Permitido"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Não permitido"</string>
diff --git a/packages/SettingsLib/res/values-pt-rPT/arrays.xml b/packages/SettingsLib/res/values-pt-rPT/arrays.xml
index 2829f20..64fad64 100644
--- a/packages/SettingsLib/res/values-pt-rPT/arrays.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Apenas no ecrã do dispositivo (predefinição)"</item>
     <item msgid="9161645858025071955">"Ecrã externo"</item>
-    <item msgid="114384731934682483">"Com base no foco"</item>
+    <item msgid="23651860565814477">"Toque mais recente na barra de estado"</item>
+    <item msgid="7521112827893653392">"Com base no foco"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Mostrar a sombra apenas no ecrã do dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostrar o dispositivo num único ecrã externo"</item>
-    <item msgid="5280431949814340475">"Apresente o dispositivo no último ecrã focado"</item>
+    <item msgid="1955398604822147783">"Mostrar a sombra num único ecrã externo"</item>
+    <item msgid="391477482416751568">"Mostrar a sombra no ecrã em que ocorreu a última interação com a barra de estado"</item>
+    <item msgid="1746820128097981528">"Mostrar a sombra no último ecrã focado"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index bf21463..d09caad 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Carregamento rápido"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlado pelo gestor"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlado por uma definição restrita"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Indisponível durante as chamadas"</string>
     <string name="disabled" msgid="8017887509554714950">"Desativada"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Autorizada"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Não autorizada"</string>
diff --git a/packages/SettingsLib/res/values-pt/arrays.xml b/packages/SettingsLib/res/values-pt/arrays.xml
index 35aa3b0..2e61272 100644
--- a/packages/SettingsLib/res/values-pt/arrays.xml
+++ b/packages/SettingsLib/res/values-pt/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Somente a tela do dispositivo (padrão)"</item>
     <item msgid="9161645858025071955">"Tela externa"</item>
-    <item msgid="114384731934682483">"Com base no foco"</item>
+    <item msgid="23651860565814477">"Toque mais recente na barra de status"</item>
+    <item msgid="7521112827893653392">"Com base no foco"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Mostrar sombra apenas na tela do dispositivo"</item>
-    <item msgid="7795034287069726554">"Mostrar o dispositivo em uma única tela externa"</item>
-    <item msgid="5280431949814340475">"Mostrar o dispositivo na última tela focada"</item>
+    <item msgid="1955398604822147783">"Mostrar sombra em uma única tela externa"</item>
+    <item msgid="391477482416751568">"Mostrar sombra na tela que teve a última interação na barra de status"</item>
+    <item msgid="1746820128097981528">"Mostrar sombra na última tela focada"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 1e45965..72f25be 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -123,13 +123,13 @@
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ativo (apenas mídia), apenas esquerdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ativo (apenas mídia), somente direito"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ativo (apenas mídia), esquerdo e direito"</string>
-    <string name="bluetooth_profile_a2dp" msgid="4632426382762851724">"Áudio da mídia"</string>
+    <string name="bluetooth_profile_a2dp" msgid="4632426382762851724">"Áudio de mídia"</string>
     <string name="bluetooth_profile_headset" msgid="5395952236133499331">"Chamadas telefônicas"</string>
     <string name="bluetooth_profile_opp" msgid="6692618568149493430">"Transferência de arquivo"</string>
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"Dispositivo de entrada"</string>
     <string name="bluetooth_profile_pan" msgid="1006235139308318188">"Acesso à Internet"</string>
     <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"Permitir acesso a contatos e ao histórico de ligações"</string>
-    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"As informações serão usadas para fazer o anúncio de ligações e mais"</string>
+    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"As informações serão usadas para avisar sobre ligações e mais"</string>
     <string name="bluetooth_profile_pan_nap" msgid="7871974753822470050">"Compartilhamento de conexão à Internet"</string>
     <string name="bluetooth_profile_map" msgid="8907204701162107271">"Mensagens de texto"</string>
     <string name="bluetooth_profile_sap" msgid="8304170950447934386">"Acesso ao chip"</string>
@@ -515,7 +515,7 @@
     <string name="battery_info_status_charging_wireless" msgid="8924722966861282197">"Carregando sem fio"</string>
     <string name="battery_info_status_charging_dock" msgid="8573274094093364791">"Carregando"</string>
     <string name="battery_info_status_discharging" msgid="6962689305413556485">"Não está carregando"</string>
-    <string name="battery_info_status_not_charging" msgid="1103084691314264664">"Conectado, mas não está carregando"</string>
+    <string name="battery_info_status_not_charging" msgid="1103084691314264664">"Dispositivo conectado, mas não está carregando"</string>
     <string name="battery_info_status_full" msgid="1339002294876531312">"Carregada"</string>
     <string name="battery_info_status_full_charged" msgid="3536054261505567948">"Carga completa"</string>
     <string name="battery_info_status_charging_on_hold" msgid="6364355145521694438">"Carregamento suspenso"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Carregamento rápido"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlada pelo admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlada pelas configurações restritas"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Indisponível durante ligações"</string>
     <string name="disabled" msgid="8017887509554714950">"Desativado"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Permitido"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Não permitido"</string>
diff --git a/packages/SettingsLib/res/values-ro/arrays.xml b/packages/SettingsLib/res/values-ro/arrays.xml
index dba734c..8bfeb70 100644
--- a/packages/SettingsLib/res/values-ro/arrays.xml
+++ b/packages/SettingsLib/res/values-ro/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Numai pe ecranul dispozitivului (prestabilit)"</item>
-    <item msgid="9161645858025071955">"Ecran extern"</item>
-    <item msgid="114384731934682483">"În funcție de focalizare"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Afișează umbra doar pe ecranul dispozitivului"</item>
-    <item msgid="7795034287069726554">"Afișează dispozitivul pe un singur ecran extern"</item>
-    <item msgid="5280431949814340475">"Afișează dispozitivul pe ultimul ecran focalizat"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index af09734..26fdce8 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Încărcare rapidă"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Controlată de administrator"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Controlată de setarea restricționată"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Indisponibil în timpul apelurilor"</string>
     <string name="disabled" msgid="8017887509554714950">"Dezactivată"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Permise"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nepermise"</string>
diff --git a/packages/SettingsLib/res/values-ru/arrays.xml b/packages/SettingsLib/res/values-ru/arrays.xml
index f0782eb..52b2549 100644
--- a/packages/SettingsLib/res/values-ru/arrays.xml
+++ b/packages/SettingsLib/res/values-ru/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Только экран устройства (по умолчанию)"</item>
-    <item msgid="9161645858025071955">"Внешний дисплей"</item>
-    <item msgid="114384731934682483">"Активный дисплей"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Показывать тень только на экране устройства"</item>
-    <item msgid="7795034287069726554">"Показывать устройство на одном внешнем дисплее"</item>
-    <item msgid="5280431949814340475">"Показывать устройство на последнем активном дисплее"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index b42e4e1..bf92e20 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Быстрая зарядка"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Контролируется администратором"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Контролируется настройками с ограниченным доступом"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Недоступно во время вызовов"</string>
     <string name="disabled" msgid="8017887509554714950">"Отключено"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Разрешено"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Запрещено"</string>
diff --git a/packages/SettingsLib/res/values-si/arrays.xml b/packages/SettingsLib/res/values-si/arrays.xml
index 855bbc9..66f1ba7 100644
--- a/packages/SettingsLib/res/values-si/arrays.xml
+++ b/packages/SettingsLib/res/values-si/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"උපාංග සංදර්ශකය පමණි (පෙරනිමි)"</item>
-    <item msgid="9161645858025071955">"බාහිර සංදර්ශකය"</item>
-    <item msgid="114384731934682483">"නාභිගත කිරීම-පාදක"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"උපාංග සංදර්ශකයේ පමණක් සෙවන පෙන්වන්න"</item>
-    <item msgid="7795034287069726554">"උපාංගය තනි බාහිර සංදර්ශකයක පෙන්වන්න"</item>
-    <item msgid="5280431949814340475">"අවසන් වරට නාභිගත කළ සංදර්ශකයේ උපාංගය පෙන්වන්න"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index 1b02d28..94e1ed4 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"වේගවත් ආරෝපණය"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"පරිපාලක විසින් පාලනය කරන ලදී"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"සීමා කළ සැකසීම මගින් පාලනය වේ"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ඇමතුම් අතරතුර නොපවතී"</string>
     <string name="disabled" msgid="8017887509554714950">"අබල කර ඇත"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"ඉඩ දුන්"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ඉඩ නොදෙන"</string>
diff --git a/packages/SettingsLib/res/values-sk/arrays.xml b/packages/SettingsLib/res/values-sk/arrays.xml
index 3473e28..f8363cd 100644
--- a/packages/SettingsLib/res/values-sk/arrays.xml
+++ b/packages/SettingsLib/res/values-sk/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Iba obrazovka zariadenia (predvolené)"</item>
-    <item msgid="9161645858025071955">"Externá obrazovka"</item>
-    <item msgid="114384731934682483">"Na základe označenia"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Zobraziť panel iba na obrazovke zariadenia"</item>
-    <item msgid="7795034287069726554">"Zobraziť zariadenie na jednej externej obrazovke"</item>
-    <item msgid="5280431949814340475">"Zobraziť zariadenie na poslednej označenej obrazovke"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 267193a..6170ac5 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Nabíja sa rýchlo"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Ovládané správcom"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Ovládané obmedzeným nastavením"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Počas hovorov nie je k dispozícii"</string>
     <string name="disabled" msgid="8017887509554714950">"Deaktivované"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Povolené"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nie je povolené"</string>
diff --git a/packages/SettingsLib/res/values-sl/arrays.xml b/packages/SettingsLib/res/values-sl/arrays.xml
index c3bf79c..2a128ef 100644
--- a/packages/SettingsLib/res/values-sl/arrays.xml
+++ b/packages/SettingsLib/res/values-sl/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Prikaz samo v napravi (privzeto)"</item>
-    <item msgid="9161645858025071955">"Zunanji zaslon"</item>
-    <item msgid="114384731934682483">"Na podlagi fokusa"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Prikaz podokna samo na zaslonu naprave"</item>
-    <item msgid="7795034287069726554">"Prikaz naprave na enem zunanjem zaslonu"</item>
-    <item msgid="5280431949814340475">"Prikaz naprave na zadnjem zaslonu s fokusom"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index f85a17d..39b61d9 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Hitro polnjenje"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Nadzira skrbnik"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Pod nadzorom omejene nastavitve"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Ni na voljo med klici"</string>
     <string name="disabled" msgid="8017887509554714950">"Onemogočeno"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Dovoljene"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Ni dovoljeno"</string>
diff --git a/packages/SettingsLib/res/values-sq/arrays.xml b/packages/SettingsLib/res/values-sq/arrays.xml
index 7136bf75..3b0994a 100644
--- a/packages/SettingsLib/res/values-sq/arrays.xml
+++ b/packages/SettingsLib/res/values-sq/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Vetëm ekrani i pajisjes (parazgjedhja)"</item>
-    <item msgid="9161645858025071955">"Ekrani i jashtëm"</item>
-    <item msgid="114384731934682483">"Bazuar te fokusi"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Shfaq hijen vetëm në ekranin e pajisjes"</item>
-    <item msgid="7795034287069726554">"Shfaq pajisjen në një ekran të vetëm të jashtëm"</item>
-    <item msgid="5280431949814340475">"Shfaq pajisjen në ekranin e fundit të fokusuar"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index e98046e..2d2c02b 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Karikim i shpejtë"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kontrolluar nga administratori"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kontrollohet nga \"Cilësimet e kufizuara\""</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Nuk ofrohet gjatë telefonatave"</string>
     <string name="disabled" msgid="8017887509554714950">"Çaktivizuar"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Lejohet"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Nuk lejohet"</string>
diff --git a/packages/SettingsLib/res/values-sr/arrays.xml b/packages/SettingsLib/res/values-sr/arrays.xml
index 84d0a7e..fd23a64 100644
--- a/packages/SettingsLib/res/values-sr/arrays.xml
+++ b/packages/SettingsLib/res/values-sr/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Приказ само на уређају (подразумевано)"</item>
     <item msgid="9161645858025071955">"Спољни екран"</item>
-    <item msgid="114384731934682483">"Засновано на фокусу"</item>
+    <item msgid="23651860565814477">"Додир на најновијој статусној траци"</item>
+    <item msgid="7521112827893653392">"Засновано на фокусу"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Прикажи сенку само на екрану уређаја"</item>
-    <item msgid="7795034287069726554">"Прикажи уређај на једном спољном екрану"</item>
-    <item msgid="5280431949814340475">"Прикажи уређај на последњем екрану у фокусу"</item>
+    <item msgid="1955398604822147783">"Прикажи сенку на једном спољном екрану"</item>
+    <item msgid="391477482416751568">"Прикажи сенку на екрану са којим је статусна трака последњи пут била у интеракцији"</item>
+    <item msgid="1746820128097981528">"Прикажи сенку на последњем екрану у фокусу"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 693e435..c053094 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Брзо пуњење"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Контролише администратор"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Контролишу ограничена подешавања"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Недоступно током позива"</string>
     <string name="disabled" msgid="8017887509554714950">"Онемогућено"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Дозвољено"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Није дозвољено"</string>
diff --git a/packages/SettingsLib/res/values-sv/arrays.xml b/packages/SettingsLib/res/values-sv/arrays.xml
index c69f01e..8a77fdd 100644
--- a/packages/SettingsLib/res/values-sv/arrays.xml
+++ b/packages/SettingsLib/res/values-sv/arrays.xml
@@ -288,15 +288,22 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-    <!-- no translation found for shade_display_awareness_entries:0 (816770658383209617) -->
-    <!-- no translation found for shade_display_awareness_entries:1 (9161645858025071955) -->
-    <!-- no translation found for shade_display_awareness_entries:2 (114384731934682483) -->
-    <!-- no translation found for shade_display_awareness_summaries:0 (2964753205732912921) -->
-    <!-- no translation found for shade_display_awareness_summaries:1 (7795034287069726554) -->
-    <!-- no translation found for shade_display_awareness_summaries:2 (5280431949814340475) -->
+  <string-array name="shade_display_awareness_entries">
+    <item msgid="816770658383209617">"Endast enhetens skärm (standard)"</item>
+    <item msgid="9161645858025071955">"Extern skärm"</item>
+    <item msgid="23651860565814477">"Senaste interaktion med statusfältet"</item>
+    <item msgid="7521112827893653392">"Fokusbaserad"</item>
+  </string-array>
+  <string-array name="shade_display_awareness_summaries">
+    <item msgid="2964753205732912921">"Visa endast skugga på enhetens skärm"</item>
+    <item msgid="1955398604822147783">"Visa skugga på en enda extern skärm"</item>
+    <item msgid="391477482416751568">"Visa skugga på skärmen där statusfältet senast interagerades med"</item>
+    <item msgid="1746820128097981528">"Visa skugga på skärmen som sist var i fokus"</item>
+  </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index bc110c6..e0897cb 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -424,8 +424,7 @@
     <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>
     <string name="overlay_display_devices_title" msgid="5411894622334469607">"Simulera sekundär skärm"</string>
-    <!-- no translation found for shade_display_awareness_title (8000009404669495876) -->
-    <skip />
+    <string name="shade_display_awareness_title" msgid="8000009404669495876">"Panelens placering på skärmen"</string>
     <string name="debug_applications_category" msgid="5394089406638954196">"Appar"</string>
     <string name="immediately_destroy_activities" msgid="1826287490705167403">"Behåll inte aktiviteter"</string>
     <string name="immediately_destroy_activities_summary" msgid="6289590341144557614">"Förstör aktiviteter så fort användaren lämnar dem"</string>
@@ -524,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Snabbladdning"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Strys av administratören"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Styrs av spärrad inställning"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Ej tillgänglig under samtal"</string>
     <string name="disabled" msgid="8017887509554714950">"Inaktiverad"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Tillåts"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Tillåts inte"</string>
diff --git a/packages/SettingsLib/res/values-sw/arrays.xml b/packages/SettingsLib/res/values-sw/arrays.xml
index 145b56c..652c358 100644
--- a/packages/SettingsLib/res/values-sw/arrays.xml
+++ b/packages/SettingsLib/res/values-sw/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Kwenye skrini ya kifaa pekee (Chaguomsingi)"</item>
-    <item msgid="9161645858025071955">"Skrini ya nje"</item>
-    <item msgid="114384731934682483">"Inayoangaziwa"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Onyesha kiwango kwenye skrini ya kifaa pekee"</item>
-    <item msgid="7795034287069726554">"Onyesha kifaa kwenye skrini moja ya nje"</item>
-    <item msgid="5280431949814340475">"Onyesha kifaa kwenye skrini ya mwisho iliyoangaziwa"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 2b175f5..f12597f 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Inachaji kwa kasi"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Imedhibitiwa na msimamizi"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Imedhibitiwa na Mpangilio wenye Mipaka"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Haipatikani wakati unaongea kwa simu"</string>
     <string name="disabled" msgid="8017887509554714950">"Imezimwa"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Imeruhusiwa"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Hairuhusiwi"</string>
diff --git a/packages/SettingsLib/res/values-ta/arrays.xml b/packages/SettingsLib/res/values-ta/arrays.xml
index 6881289..503cd8f 100644
--- a/packages/SettingsLib/res/values-ta/arrays.xml
+++ b/packages/SettingsLib/res/values-ta/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"சாதனக் காட்சி மட்டும் (இயல்பு)"</item>
-    <item msgid="9161645858025071955">"வெளிப்புறக் காட்சி"</item>
-    <item msgid="114384731934682483">"ஃபோகஸ் அடிப்படையிலானது"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"சாதனக் காட்சியில் மட்டும் ஷேடைக் காட்டும்"</item>
-    <item msgid="7795034287069726554">"ஒற்றை வெளிப்புறக் காட்சியில் சாதனத்தைக் காட்டும்"</item>
-    <item msgid="5280431949814340475">"கடைசியாக ஃபோகஸ் செய்யப்பட்ட காட்சியில் சாதனத்தைக் காட்டும்"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index dd5a5a4..1bd2c34 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"விரைவு சார்ஜிங்"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"நிர்வாகி கட்டுப்படுத்துகிறார்"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"வரையறுக்கப்பட்ட அமைப்பால் கட்டுப்படுத்தப்படுகிறது"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"அழைப்புகளின்போது பயன்படுத்த முடியாது"</string>
     <string name="disabled" msgid="8017887509554714950">"முடக்கப்பட்டது"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"அனுமதிக்கப்பட்டது"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"அனுமதிக்கப்படவில்லை"</string>
diff --git a/packages/SettingsLib/res/values-te/arrays.xml b/packages/SettingsLib/res/values-te/arrays.xml
index 8dea6ed..f72e4cd 100644
--- a/packages/SettingsLib/res/values-te/arrays.xml
+++ b/packages/SettingsLib/res/values-te/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"పరికర డిస్‌ప్లేలో మాత్రమే (ఆటోమేటిక్ సెట్టింగ్)"</item>
-    <item msgid="9161645858025071955">"ఎక్స్‌టర్నల్ డిస్‌ప్లే"</item>
-    <item msgid="114384731934682483">"ఫోకస్-ఆధారిత"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"షేడ్‌ను పరికర డిస్‌ప్లేలో మాత్రమే చూపండి"</item>
-    <item msgid="7795034287069726554">"పరికరాన్ని ఒక ఎక్స్‌టర్నల్ డిస్‌ప్లేలో మాత్రమే చూపండి"</item>
-    <item msgid="5280431949814340475">"పరికరాన్ని చివరగా యాక్టివ్‌గా ఉన్న స్క్రీన్‌లో చూపండి"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index 12e45c2..010344f 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ఫాస్ట్ ఛార్జింగ్"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"నిర్వాహకుని ద్వారా నియంత్రించబడింది"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"పరిమితం చేసిన సెట్టింగ్ ద్వారా నియంత్రించబడుతుంది"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"కాల్స్ సమయంలో అందుబాటులో ఉండదు"</string>
     <string name="disabled" msgid="8017887509554714950">"డిజేబుల్ చేయబడింది"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"అనుమతించినవి"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"అనుమతించబడలేదు"</string>
diff --git a/packages/SettingsLib/res/values-th/arrays.xml b/packages/SettingsLib/res/values-th/arrays.xml
index 11cb2ec..adb274d 100644
--- a/packages/SettingsLib/res/values-th/arrays.xml
+++ b/packages/SettingsLib/res/values-th/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"จอแสดงผลของอุปกรณ์เท่านั้น (ค่าเริ่มต้น)"</item>
-    <item msgid="9161645858025071955">"จอแสดงผลภายนอก"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"แสดงเฉดสีในจอแสดงผลของอุปกรณ์เท่านั้น"</item>
-    <item msgid="7795034287069726554">"แสดงอุปกรณ์ในจอแสดงผลภายนอกเครื่องเดียว"</item>
-    <item msgid="5280431949814340475">"แสดงอุปกรณ์ในจอแสดงผลที่โฟกัสล่าสุด"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 65db653..9b4d408 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"ชาร์จเร็ว"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"ผู้ดูแลระบบเป็นผู้ควบคุม"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"ควบคุมโดยการตั้งค่าที่จำกัด"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"ใช้งานไม่ได้ขณะสนทนาโทรศัพท์"</string>
     <string name="disabled" msgid="8017887509554714950">"ปิดอยู่"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"อนุญาต"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ไม่อนุญาต"</string>
diff --git a/packages/SettingsLib/res/values-tl/arrays.xml b/packages/SettingsLib/res/values-tl/arrays.xml
index eae269c..0153375a 100644
--- a/packages/SettingsLib/res/values-tl/arrays.xml
+++ b/packages/SettingsLib/res/values-tl/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Display ng device lang (Default)"</item>
-    <item msgid="9161645858025071955">"External na display"</item>
-    <item msgid="114384731934682483">"Focus-based"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Ipakita ang shade sa display ng device lang"</item>
-    <item msgid="7795034287069726554">"Ipakita ang device sa isang external na display"</item>
-    <item msgid="5280431949814340475">"Ipakita ang device sa huling na-focus na display"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 959a0b3..4cd2f5f 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Fast charging"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Pinapamahalaan ng admin"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kinokontrol ng Pinaghihigpitang Setting"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Hindi available habang may tawag"</string>
     <string name="disabled" msgid="8017887509554714950">"Naka-disable"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Pinapayagan"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Hindi pinapayagan"</string>
diff --git a/packages/SettingsLib/res/values-tr/arrays.xml b/packages/SettingsLib/res/values-tr/arrays.xml
index fdb9d21..6fbbb12 100644
--- a/packages/SettingsLib/res/values-tr/arrays.xml
+++ b/packages/SettingsLib/res/values-tr/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Yalnızca cihaz ekranı (Varsayılan)"</item>
-    <item msgid="9161645858025071955">"Harici ekran"</item>
-    <item msgid="114384731934682483">"Odaklanmaya dayalı"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Gölgeyi yalnızca cihaz ekranında göster"</item>
-    <item msgid="7795034287069726554">"Cihazı tek bir harici ekranda göster"</item>
-    <item msgid="5280431949814340475">"Cihazı son odaklanılan ekranda göster"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 8dcc48f..c993223 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Hızlı şarj"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Yönetici tarafından denetleniyor"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kısıtlanmış ayar tarafından kontrol ediliyor"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Telefon aramaları sırasında kullanılamaz"</string>
     <string name="disabled" msgid="8017887509554714950">"Devre dışı"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"İzin verildi"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"İzin verilmiyor"</string>
diff --git a/packages/SettingsLib/res/values-uk/arrays.xml b/packages/SettingsLib/res/values-uk/arrays.xml
index 2949471..a371c9c 100644
--- a/packages/SettingsLib/res/values-uk/arrays.xml
+++ b/packages/SettingsLib/res/values-uk/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Лише екран пристрою (за умовчанням)"</item>
-    <item msgid="9161645858025071955">"Зовнішній дисплей"</item>
-    <item msgid="114384731934682483">"На основі фокусування"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Показувати панель лише на екрані пристрою"</item>
-    <item msgid="7795034287069726554">"Показувати панель на одному зовнішньому дисплеї"</item>
-    <item msgid="5280431949814340475">"Показувати панель на останньому активному дисплеї"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index 259cf6c..fd1ade6 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Швидке заряджання"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Керується адміністратором"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Керується налаштуваннями з обмеженнями"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Недоступно під час викликів"</string>
     <string name="disabled" msgid="8017887509554714950">"Вимкнено"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Дозволено"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Заборонено"</string>
diff --git a/packages/SettingsLib/res/values-ur/arrays.xml b/packages/SettingsLib/res/values-ur/arrays.xml
index a9eadb8..5ce9fb4 100644
--- a/packages/SettingsLib/res/values-ur/arrays.xml
+++ b/packages/SettingsLib/res/values-ur/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"صرف آلے کا ڈسپلے (ڈیفالٹ)"</item>
     <item msgid="9161645858025071955">"بیرونی ڈسپلے"</item>
-    <item msgid="114384731934682483">"فوکس پر مبنی"</item>
+    <item msgid="23651860565814477">"تازہ ترین اسٹیٹس بار ٹچ"</item>
+    <item msgid="7521112827893653392">"فوکس پر مبنی"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"صرف آلے کے ڈسپلے پر شیڈ دکھائیں"</item>
-    <item msgid="7795034287069726554">"آلے کو واحد بیرونی ڈسپلے پر دکھائیں"</item>
-    <item msgid="5280431949814340475">"آلے کو آخری فوکس کردہ ڈسپلے پر دکھائیں"</item>
+    <item msgid="1955398604822147783">"واحد بیرونی ڈسپلے پر شیڈ دکھائیں"</item>
+    <item msgid="391477482416751568">"اس ڈسپلے پر شیڈ دکھائیں جس کے اسٹیٹس بار کے ساتھ آخری بار تعامل کیا گیا تھا"</item>
+    <item msgid="1746820128097981528">"شیڈ کو آخری فوکس کردہ ڈسپلے پر دکھائیں"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 425a0ed..13ffeb1 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"فاسٹ چارجنگ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"کنٹرول کردہ بذریعہ منتظم"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"محدود کردہ ترتیب کے زیر انتظام ہے"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"کالز کے دوران غیر دستیاب"</string>
     <string name="disabled" msgid="8017887509554714950">"غیر فعال"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"اجازت ہے"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"اجازت نہیں ہے"</string>
diff --git a/packages/SettingsLib/res/values-uz/arrays.xml b/packages/SettingsLib/res/values-uz/arrays.xml
index f3cae41..cf1a096 100644
--- a/packages/SettingsLib/res/values-uz/arrays.xml
+++ b/packages/SettingsLib/res/values-uz/arrays.xml
@@ -291,16 +291,19 @@
   <string-array name="shade_display_awareness_entries">
     <item msgid="816770658383209617">"Faqat qurilma displeyi (birlamchi)"</item>
     <item msgid="9161645858025071955">"Tashqi displey"</item>
-    <item msgid="114384731934682483">"Fokusga asoslangan"</item>
+    <item msgid="23651860565814477">"Holat qatori bilan oxirgi oʻzaro aloqa"</item>
+    <item msgid="7521112827893653392">"Fokusga asoslangan"</item>
   </string-array>
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"Faqat qurilma displeyida soyani koʻrsatish"</item>
-    <item msgid="7795034287069726554">"Qurilmani alohida tashqi displeyda koʻrsatish"</item>
-    <item msgid="5280431949814340475">"Qurilmani oxirgi fokuslangan displeyda koʻrsatish"</item>
+    <item msgid="1955398604822147783">"Soyani alohida tashqi displeyda koʻrsatish"</item>
+    <item msgid="391477482416751568">"Oxirgi marta holat qatori qaysi soya bilan munosabatga kirishganini koʻrsatish"</item>
+    <item msgid="1746820128097981528">"Soyani oxirgi fokuslangan displeyda koʻrsatish"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index fbf9b4a..04bd7fcc 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Tezkor quvvatlash"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Administrator tomonidan boshqariladi"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Cheklangan sozlama tomonidan boshqariladi"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Chaqiruv vaqtida ishlamaydi"</string>
     <string name="disabled" msgid="8017887509554714950">"Oʻchiq"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Ruxsat berilgan"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Ruxsat berilmagan"</string>
diff --git a/packages/SettingsLib/res/values-vi/arrays.xml b/packages/SettingsLib/res/values-vi/arrays.xml
index e0ebc9f..8e4cf53 100644
--- a/packages/SettingsLib/res/values-vi/arrays.xml
+++ b/packages/SettingsLib/res/values-vi/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Chỉ hiển thị trên thiết bị (Mặc định)"</item>
-    <item msgid="9161645858025071955">"Màn hình ngoài"</item>
-    <item msgid="114384731934682483">"Theo tiêu điểm"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Chỉ hiện ngăn thông báo trên màn hình thiết bị"</item>
-    <item msgid="7795034287069726554">"Hiện thiết bị trên một màn hình ngoài"</item>
-    <item msgid="5280431949814340475">"Hiện thiết bị trên màn hình được lấy tiêu điểm gần đây nhất"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 59d4b4d..2763c01 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Đang sạc nhanh"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Do quản trị viên kiểm soát"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Do chế độ Cài đặt hạn chế kiểm soát"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Không dùng được khi có cuộc gọi"</string>
     <string name="disabled" msgid="8017887509554714950">"Đã tắt"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Được phép"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Không được phép"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/arrays.xml b/packages/SettingsLib/res/values-zh-rCN/arrays.xml
index c2147c7..5c82865 100644
--- a/packages/SettingsLib/res/values-zh-rCN/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"仅设备显示屏(默认)"</item>
-    <item msgid="9161645858025071955">"外接显示屏"</item>
-    <item msgid="114384731934682483">"基于焦点"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"仅在设备显示屏上显示通知栏"</item>
-    <item msgid="7795034287069726554">"在单个外接显示屏上显示设备"</item>
-    <item msgid="5280431949814340475">"在最近一次获得焦点的显示屏上显示设备"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 08e931b..934c525 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"正在快速充电"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"由管理员控制"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"由受限设置控制"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"通话期间无法使用"</string>
     <string name="disabled" msgid="8017887509554714950">"已停用"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"允许"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"不允许"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/arrays.xml b/packages/SettingsLib/res/values-zh-rHK/arrays.xml
index 37d7b29..2e06059 100644
--- a/packages/SettingsLib/res/values-zh-rHK/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"只限裝置顯示屏 (預設)"</item>
-    <item msgid="9161645858025071955">"外部顯示屏"</item>
-    <item msgid="114384731934682483">"突顯"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"只在裝置顯示屏上顯示陰影"</item>
-    <item msgid="7795034287069726554">"在單獨外部顯示屏上顯示裝置"</item>
-    <item msgid="5280431949814340475">"在上一次突顯的顯示屏上顯示裝置"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 8cc65c8..037f531 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -506,7 +506,7 @@
     <string name="power_charging_future_paused" msgid="1809543660923642799">"<xliff:g id="LEVEL">%1$s</xliff:g> ‑ 充電中"</string>
     <string name="power_fast_charging_duration_v2" msgid="3797735998640359490">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g> - 在 <xliff:g id="TIME">%3$s</xliff:g>前充滿電"</string>
     <string name="power_charging_duration_v2" msgid="2938998284074003248">"<xliff:g id="LEVEL">%1$s</xliff:g> • 在 <xliff:g id="TIME">%2$s</xliff:g>前充滿電"</string>
-    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"在 <xliff:g id="TIME">%1$s</xliff:g>前充滿電"</string>
+    <string name="power_remaining_charging_duration_only_v2" msgid="5358176435722950193">"在<xliff:g id="TIME">%1$s</xliff:g> 前充滿電"</string>
     <string name="power_remaining_fast_charging_duration_only_v2" msgid="6270950195810579563">"<xliff:g id="TIME">%1$s</xliff:g> 前充滿電"</string>
     <string name="battery_info_status_unknown" msgid="268625384868401114">"未知"</string>
     <string name="battery_info_status_charging" msgid="4279958015430387405">"充電中"</string>
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"快速充電"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"已由管理員停用"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"由「受限設定」控制"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"通話時無法使用"</string>
     <string name="disabled" msgid="8017887509554714950">"已停用"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"允許"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"不允許"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/arrays.xml b/packages/SettingsLib/res/values-zh-rTW/arrays.xml
index c4d820c..5b48ad4 100644
--- a/packages/SettingsLib/res/values-zh-rTW/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"僅裝置螢幕 (預設)"</item>
-    <item msgid="9161645858025071955">"外接螢幕"</item>
-    <item msgid="114384731934682483">"使用中的螢幕"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"只在裝置螢幕顯示通知欄"</item>
-    <item msgid="7795034287069726554">"在單一外接螢幕顯示通知欄"</item>
-    <item msgid="5280431949814340475">"在最新使用的螢幕顯示通知欄"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"預設螢幕"</item>
-    <item msgid="774789415968826925">"任何外接螢幕"</item>
-    <item msgid="7880769915418638436">"最新觸控狀態列"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index d639e71..0ef65e6 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"快速充電"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"已由管理員停用"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"由受限制的設定控管"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"通話時無法使用"</string>
     <string name="disabled" msgid="8017887509554714950">"已停用"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"允許"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"不允許"</string>
diff --git a/packages/SettingsLib/res/values-zu/arrays.xml b/packages/SettingsLib/res/values-zu/arrays.xml
index 27ca40c..1a61f8b 100644
--- a/packages/SettingsLib/res/values-zu/arrays.xml
+++ b/packages/SettingsLib/res/values-zu/arrays.xml
@@ -288,19 +288,10 @@
     <item msgid="3753634915787796632">"2"</item>
     <item msgid="4779928470672877922">"3"</item>
   </string-array>
-  <string-array name="shade_display_awareness_entries">
-    <item msgid="816770658383209617">"Ukuboniswa kwedivayisi kuphela (Okuzenzakalelayo)"</item>
-    <item msgid="9161645858025071955">"Ukubonisa Kwangaphandle"</item>
-    <item msgid="114384731934682483">"Kusekelwe ekugxileni"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_summaries">
-    <item msgid="2964753205732912921">"Bonisa umthunzi esibonisini sedivayisi kuphela"</item>
-    <item msgid="7795034287069726554">"Bonisa idivayisi esibonisini sangaphandle esisodwa"</item>
-    <item msgid="5280431949814340475">"Bonisa idivayisi esibonisini sokugcina esigxilile"</item>
-  </string-array>
-  <string-array name="shade_display_awareness_values">
-    <item msgid="3055776101992426514">"default_display"</item>
-    <item msgid="774789415968826925">"any_external_display"</item>
-    <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-  </string-array>
+    <!-- no translation found for shade_display_awareness_entries:2 (23651860565814477) -->
+    <!-- no translation found for shade_display_awareness_entries:3 (7521112827893653392) -->
+    <!-- no translation found for shade_display_awareness_summaries:1 (1955398604822147783) -->
+    <!-- no translation found for shade_display_awareness_summaries:2 (391477482416751568) -->
+    <!-- no translation found for shade_display_awareness_summaries:3 (1746820128097981528) -->
+    <!-- no translation found for shade_display_awareness_values:3 (4313165186636015195) -->
 </resources>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 4fd2c8d..de62628 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -523,8 +523,7 @@
     <string name="battery_info_status_charging_fast_v2" msgid="1825439848151256589">"Ishaja ngokushesha"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"Kulawulwa umqondisi"</string>
     <string name="disabled_by_app_ops_text" msgid="8373595926549098012">"Kulawulwe Isethingi Elikhawulelwe"</string>
-    <!-- no translation found for disabled_in_phone_call_text (6568931334337318320) -->
-    <skip />
+    <string name="disabled_in_phone_call_text" msgid="6568931334337318320">"Akutholakali ngesikhathi samakholi"</string>
     <string name="disabled" msgid="8017887509554714950">"Akusebenzi"</string>
     <string name="external_source_trusted" msgid="1146522036773132905">"Kuvumelekile"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"Akuvumelekile"</string>
diff --git a/packages/SettingsLib/res/values/arrays.xml b/packages/SettingsLib/res/values/arrays.xml
index 3d3dad3..53c9658 100644
--- a/packages/SettingsLib/res/values/arrays.xml
+++ b/packages/SettingsLib/res/values/arrays.xml
@@ -671,14 +671,16 @@
     <string-array name="shade_display_awareness_entries" >
         <item>Device display only (Default)</item>
         <item>External display</item>
+        <item>Latest status bar touch</item>
         <item>Focus-based</item>
     </string-array>
 
     <!-- Options for showing shade on external display for developers -->
     <string-array name="shade_display_awareness_summaries" >
         <item>Show shade on device display only </item>
-        <item>Show device on single external display</item>
-        <item>Show device on last focused display</item>
+        <item>Show shade on single external display</item>
+        <item>Show shade on display which last had its status bar interacted with</item>
+        <item>Show shade on last focused display</item>
     </string-array>
 
     <!-- Values for showing shade on external display for developers -->
@@ -686,6 +688,7 @@
         <item>default_display</item>
         <item>any_external_display</item>
         <item>status_bar_latest_touch</item>
+        <item>focused_display</item>
     </string-array>
 
 </resources>
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/AmbientVolumeUiController.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/AmbientVolumeUiController.java
index ce392b12..e7ddc46 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/AmbientVolumeUiController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/AmbientVolumeUiController.java
@@ -459,7 +459,7 @@
     }
 
     /** Checks if any device in the same set has valid ambient control points */
-    private boolean isAmbientControlAvailable() {
+    public boolean isAmbientControlAvailable() {
         for (BluetoothDevice device : mSideToDeviceMap.values()) {
             if (mShowUiWhenLocalDataExist) {
                 // Found local ambient data
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExt.kt b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExt.kt
index 0c7d6f0..b173db0 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExt.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExt.kt
@@ -37,7 +37,7 @@
     private const val KEY_BT_ADVERTISER_ADDRESS = "AD"
     private const val KEY_BT_BROADCAST_ID = "BI"
     private const val KEY_BT_BROADCAST_CODE = "BC"
-    private const val KEY_BT_STREAM_METADATA = "MD"
+    private const val KEY_BT_PUBLIC_METADATA = "PM"
     private const val KEY_BT_STANDARD_QUALITY = "SQ"
     private const val KEY_BT_HIGH_QUALITY = "HQ"
 
@@ -84,7 +84,7 @@
         }
         if (this.publicBroadcastMetadata != null &&
                 this.publicBroadcastMetadata?.rawMetadata?.size != 0) {
-            entries.add(Pair(KEY_BT_STREAM_METADATA, Base64.encodeToString(
+            entries.add(Pair(KEY_BT_PUBLIC_METADATA, Base64.encodeToString(
                 this.publicBroadcastMetadata?.rawMetadata, Base64.NO_WRAP)))
         }
         if ((this.audioConfigQuality and
@@ -160,7 +160,7 @@
         var sourceAdvertiserSid = -1
         var broadcastId = -1
         var broadcastName: String? = null
-        var streamMetadata: BluetoothLeAudioContentMetadata? = null
+        var publicMetadata: BluetoothLeAudioContentMetadata? = null
         var paSyncInterval = -1
         var broadcastCode: ByteArray? = null
         var audioConfigQualityStandard = -1
@@ -207,11 +207,11 @@
                     broadcastCode = Base64.decode(value.dropLastWhile { it.equals(0.toByte()) }
                             .toByteArray(), Base64.NO_WRAP)
                 }
-                KEY_BT_STREAM_METADATA -> {
-                    require(streamMetadata == null) {
-                        "Duplicate streamMetadata $input"
+                KEY_BT_PUBLIC_METADATA -> {
+                    require(publicMetadata == null) {
+                        "Duplicate publicMetadata $input"
                     }
-                    streamMetadata = BluetoothLeAudioContentMetadata
+                    publicMetadata = BluetoothLeAudioContentMetadata
                         .fromRawBytes(Base64.decode(value, Base64.NO_WRAP))
                 }
                 KEY_BT_STANDARD_QUALITY -> {
@@ -256,7 +256,7 @@
         Log.d(TAG, "parseQrCodeToMetadata: main data elements sourceAddrType=$sourceAddrType, " +
                 "sourceAddr=$sourceAddrString, sourceAdvertiserSid=$sourceAdvertiserSid, " +
                 "broadcastId=$broadcastId, broadcastName=$broadcastName, " +
-                "streamMetadata=${streamMetadata != null}, " +
+                "publicMetadata=${publicMetadata != null}, " +
                 "paSyncInterval=$paSyncInterval, " +
                 "broadcastCode=${broadcastCode?.toString(Charsets.UTF_8)}, " +
                 "audioConfigQualityStandard=$audioConfigQualityStandard, " +
@@ -317,7 +317,7 @@
             setBroadcastName(broadcastName)
             // QR code should set PBP(public broadcast profile) for auracast
             setPublicBroadcast(true)
-            setPublicBroadcastMetadata(streamMetadata)
+            setPublicBroadcastMetadata(publicMetadata)
             setPaSyncInterval(paSyncInterval)
             setEncrypted(broadcastCode != null)
             setBroadcastCode(broadcastCode)
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java
index bf86911..572444e 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java
@@ -30,11 +30,13 @@
 import androidx.annotation.ChecksSdkIntAtLeast;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.settingslib.flags.Flags;
 
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -385,7 +387,7 @@
                 preferredMainDevice.refresh();
                 hasChanged = true;
             }
-            syncAudioSharingSourceIfNeeded(preferredMainDevice);
+            syncAudioSharingStatusIfNeeded(preferredMainDevice);
         }
         if (hasChanged) {
             log("addMemberDevicesIntoMainDevice: After changed, CachedBluetoothDevice list: "
@@ -399,13 +401,16 @@
         return userManager != null && userManager.isManagedProfile();
     }
 
-    private void syncAudioSharingSourceIfNeeded(CachedBluetoothDevice mainDevice) {
+    private void syncAudioSharingStatusIfNeeded(CachedBluetoothDevice mainDevice) {
         boolean isAudioSharingEnabled = BluetoothUtils.isAudioSharingUIAvailable(mContext);
-        if (isAudioSharingEnabled) {
+        if (isAudioSharingEnabled && mainDevice != null) {
             if (isWorkProfile()) {
-                log("addMemberDevicesIntoMainDevice: skip sync source for work profile");
+                log("addMemberDevicesIntoMainDevice: skip sync audio sharing status, work profile");
                 return;
             }
+            Set<CachedBluetoothDevice> deviceSet = new HashSet<>();
+            deviceSet.add(mainDevice);
+            deviceSet.addAll(mainDevice.getMemberDevice());
             boolean hasBroadcastSource = BluetoothUtils.isBroadcasting(mBtManager)
                     && BluetoothUtils.hasConnectedBroadcastSource(
                     mainDevice, mBtManager);
@@ -419,9 +424,6 @@
                 if (metadata != null && assistant != null) {
                     log("addMemberDevicesIntoMainDevice: sync audio sharing source after "
                             + "combining the top level devices.");
-                    Set<CachedBluetoothDevice> deviceSet = new HashSet<>();
-                    deviceSet.add(mainDevice);
-                    deviceSet.addAll(mainDevice.getMemberDevice());
                     Set<BluetoothDevice> sinksToSync = deviceSet.stream()
                             .map(CachedBluetoothDevice::getDevice)
                             .filter(device ->
@@ -435,8 +437,24 @@
                     }
                 }
             }
+            if (Flags.enableTemporaryBondDevicesUi()) {
+                log("addMemberDevicesIntoMainDevice: sync temp bond metadata for audio sharing "
+                        + "sinks after combining the top level devices.");
+                Set<BluetoothDevice> sinksToSync = deviceSet.stream()
+                        .map(CachedBluetoothDevice::getDevice).filter(Objects::nonNull).collect(
+                                Collectors.toSet());
+                if (sinksToSync.stream().anyMatch(BluetoothUtils::isTemporaryBondDevice)) {
+                    for (BluetoothDevice device : sinksToSync) {
+                        if (!BluetoothUtils.isTemporaryBondDevice(device)) {
+                            log("addMemberDevicesIntoMainDevice: sync temp bond metadata for "
+                                    + device.getAnonymizedAddress());
+                            BluetoothUtils.setTemporaryBondMetadata(device);
+                        }
+                    }
+                }
+            }
         } else {
-            log("addMemberDevicesIntoMainDevice: skip sync source, flag disabled");
+            log("addMemberDevicesIntoMainDevice: skip sync audio sharing status, flag disabled");
         }
     }
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
index 96e875b..fb384ff 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
@@ -72,6 +72,8 @@
             "com.android.settings.category.ia.communal";
     public static final String CATEGORY_MORE_SECURITY_PRIVACY_SETTINGS =
             "com.android.settings.category.ia.more_security_privacy_settings";
+    public static final String CATEGORY_SUPERVISION =
+            "com.android.settings.category.ia.supervision";
 
     public static final Map<String, String> KEY_COMPAT_MAP;
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
index ceb6f7b..aa84571 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
@@ -618,6 +618,7 @@
         return getActiveRoutingSession().getVolume();
     }
 
+    @Nullable
     CharSequence getSessionName() {
         return getActiveRoutingSession().getName();
     }
@@ -778,7 +779,7 @@
         static List<RouteListingPreference.Item> composePreferenceRouteListing(
                 RouteListingPreference routeListingPreference) {
             boolean preferRouteListingOrdering =
-                    com.android.media.flags.Flags.enableOutputSwitcherSessionGrouping()
+                    com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping()
                     && preferRouteListingOrdering(routeListingPreference);
             List<RouteListingPreference.Item> finalizedItemList = new ArrayList<>();
             List<RouteListingPreference.Item> itemList = routeListingPreference.getItems();
@@ -813,7 +814,7 @@
          * Returns an ordered list of available devices based on the provided {@code
          * routeListingPreferenceItems}.
          *
-         * <p>The resulting order if enableOutputSwitcherSessionGrouping is disabled is:
+         * <p>The resulting order if enableOutputSwitcherDeviceGrouping is disabled is:
          *
          * <ol>
          *   <li>Selected routes.
@@ -821,7 +822,7 @@
          *   <li>Not-selected, non-system, available routes sorted by route listing preference.
          * </ol>
          *
-         * <p>The resulting order if enableOutputSwitcherSessionGrouping is enabled is:
+         * <p>The resulting order if enableOutputSwitcherDeviceGrouping is enabled is:
          *
          * <ol>
          *   <li>Selected routes sorted by route listing preference.
@@ -847,7 +848,7 @@
             Set<String> sortedRouteIds = new LinkedHashSet<>();
 
             boolean addSelectedRlpItemsFirst =
-                    com.android.media.flags.Flags.enableOutputSwitcherSessionGrouping()
+                    com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping()
                     && preferRouteListingOrdering(routeListingPreference);
             Set<String> selectedRouteIds = new HashSet<>();
 
@@ -864,8 +865,7 @@
             }
 
             // Add selected routes first.
-            if (com.android.media.flags.Flags.enableOutputSwitcherSessionGrouping()
-                    && sortedRouteIds.size() != selectedRoutes.size()) {
+            if (sortedRouteIds.size() != selectedRoutes.size()) {
                 for (MediaRoute2Info selectedRoute : selectedRoutes) {
                     sortedRouteIds.add(selectedRoute.getId());
                 }
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
index 76f366d..ed58c96 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
@@ -444,6 +444,7 @@
      *
      * @return current name of the session, and return {@code null} if not found.
      */
+    @Nullable
     public CharSequence getSessionName() {
         return mInfoMediaManager.getSessionName();
     }
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/OWNERS b/packages/SettingsLib/src/com/android/settingslib/media/OWNERS
index d58add4..a34876d 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/media/OWNERS
@@ -3,5 +3,8 @@
 michaelmikhil@google.com
 apotapov@google.com
 
+# Output Switcher OWNERS
+file:/packages/SystemUI/src/com/android/systemui/media/dialog/OWNERS
+
 #Android Media - For minor changes and renames only.
 aquilescanta@google.com #{LAST_RESORT_SUGGESTION}
diff --git a/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.kt b/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.kt
index 10156c4..bac564c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.kt
@@ -20,6 +20,7 @@
 import android.content.pm.PackageManager
 import android.media.MediaMetadata
 import android.media.session.MediaController
+import android.media.session.MediaController.PlaybackInfo
 import android.media.session.MediaSession
 import android.media.session.MediaSessionManager
 import android.media.session.PlaybackState
@@ -98,16 +99,22 @@
     }
 
     /** Set volume `level` to remote media `token` */
-    fun setVolume(token: MediaSession.Token, level: Int) {
+    fun setVolume(sessionId: SessionId, volumeLevel: Int) {
+        when (sessionId) {
+            is SessionId.Media -> setMediaSessionVolume(sessionId.token, volumeLevel)
+        }
+    }
+
+    private fun setMediaSessionVolume(token: MediaSession.Token, volumeLevel: Int) {
         val record = mRecords[token]
         if (record == null) {
             Log.w(TAG, "setVolume: No record found for token $token")
             return
         }
         if (D.BUG) {
-            Log.d(TAG, "Setting level to $level")
+            Log.d(TAG, "Setting level to $volumeLevel")
         }
-        record.controller.setVolumeTo(level, 0)
+        record.controller.setVolumeTo(volumeLevel, 0)
     }
 
     private fun onRemoteVolumeChangedH(sessionToken: MediaSession.Token, flags: Int) {
@@ -122,7 +129,7 @@
             )
         }
         val token = controller.sessionToken
-        mCallbacks.onRemoteVolumeChanged(token, flags)
+        mCallbacks.onRemoteVolumeChanged(SessionId.from(token), flags)
     }
 
     private fun onUpdateRemoteSessionListH(sessionToken: MediaSession.Token?) {
@@ -158,7 +165,7 @@
                 controller.registerCallback(record, mHandler)
             }
             val record = mRecords[token]
-            val remote = isRemote(playbackInfo)
+            val remote = playbackInfo.isRemote()
             if (remote) {
                 updateRemoteH(token, record!!.name, playbackInfo)
                 record.sentRemote = true
@@ -172,7 +179,7 @@
                 Log.d(TAG, "Removing " + record.name + " sentRemote=" + record.sentRemote)
             }
             if (record.sentRemote) {
-                mCallbacks.onRemoteRemoved(token)
+                mCallbacks.onRemoteRemoved(SessionId.from(token))
                 record.sentRemote = false
             }
         }
@@ -213,8 +220,8 @@
     private fun updateRemoteH(
         token: MediaSession.Token,
         name: String?,
-        pi: MediaController.PlaybackInfo,
-    ) = mCallbacks.onRemoteUpdate(token, name, pi)
+        playbackInfo: PlaybackInfo,
+    ) = mCallbacks.onRemoteUpdate(SessionId.from(token), name, VolumeInfo.from(playbackInfo))
 
     private inner class MediaControllerRecord(val controller: MediaController) :
         MediaController.Callback() {
@@ -225,7 +232,7 @@
             return method + " " + controller.packageName + " "
         }
 
-        override fun onAudioInfoChanged(info: MediaController.PlaybackInfo) {
+        override fun onAudioInfoChanged(info: PlaybackInfo) {
             if (D.BUG) {
                 Log.d(
                     TAG,
@@ -235,9 +242,9 @@
                         sentRemote),
                 )
             }
-            val remote = isRemote(info)
+            val remote = info.isRemote()
             if (!remote && sentRemote) {
-                mCallbacks.onRemoteRemoved(controller.sessionToken)
+                mCallbacks.onRemoteRemoved(SessionId.from(controller.sessionToken))
                 sentRemote = false
             } else if (remote) {
                 updateRemoteH(controller.sessionToken, name, info)
@@ -301,20 +308,36 @@
         }
     }
 
+    /** Opaque id for ongoing sessions that support volume adjustment. */
+    sealed interface SessionId {
+
+        companion object {
+            fun from(token: MediaSession.Token) = Media(token)
+        }
+
+        data class Media(val token: MediaSession.Token) : SessionId
+    }
+
+    /** Holds session volume information. */
+    data class VolumeInfo(val currentVolume: Int, val maxVolume: Int) {
+
+        companion object {
+
+            fun from(playbackInfo: PlaybackInfo) =
+                VolumeInfo(playbackInfo.currentVolume, playbackInfo.maxVolume)
+        }
+    }
+
     /** Callback for remote media sessions */
     interface Callbacks {
         /** Invoked when remote media session is updated */
-        fun onRemoteUpdate(
-            token: MediaSession.Token?,
-            name: String?,
-            pi: MediaController.PlaybackInfo?,
-        )
+        fun onRemoteUpdate(token: SessionId?, name: String?, volumeInfo: VolumeInfo?)
 
         /** Invoked when remote media session is removed */
-        fun onRemoteRemoved(token: MediaSession.Token?)
+        fun onRemoteRemoved(token: SessionId?)
 
         /** Invoked when remote volume is changed */
-        fun onRemoteVolumeChanged(token: MediaSession.Token?, flags: Int)
+        fun onRemoteVolumeChanged(token: SessionId?, flags: Int)
     }
 
     companion object {
@@ -325,12 +348,11 @@
         const val UPDATE_REMOTE_SESSION_LIST: Int = 3
 
         private const val USE_SERVICE_LABEL = false
-
-        private fun isRemote(pi: MediaController.PlaybackInfo?): Boolean =
-            pi != null && pi.playbackType == MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE
     }
 }
 
+private fun PlaybackInfo?.isRemote() = this?.playbackType == PlaybackInfo.PLAYBACK_TYPE_REMOTE
+
 private fun MediaController.dump(n: Int, writer: PrintWriter) {
     writer.println("  Controller $n: $packageName")
 
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/display/DisplayDensityUtilsTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/display/DisplayDensityUtilsTest.java
new file mode 100644
index 0000000..bba278a
--- /dev/null
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/display/DisplayDensityUtilsTest.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.display;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManagerGlobal;
+import android.os.RemoteException;
+import android.view.Display;
+import android.view.DisplayAdjustments;
+import android.view.DisplayInfo;
+import android.view.IWindowManager;
+import android.view.WindowManagerGlobal;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settingslib.R;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class DisplayDensityUtilsTest {
+
+    private static final float MAX_SCALE = 1.33f;
+    private static final float MIN_SCALE = 0.85f;
+    private static final float MIN_INTERVAL = 0.09f;
+    @Mock
+    private Context mContext;
+    @Mock
+    private Resources mResources;
+    @Mock
+    private DisplayManager mDisplayManager;
+    @Mock
+    private DisplayManagerGlobal mDisplayManagerGlobal;
+    @Mock
+    private IWindowManager mIWindowManager;
+    private IWindowManager mWindowManagerToRestore;
+    private DisplayDensityUtils mDisplayDensityUtils;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        doReturn(mDisplayManager).when(mContext).getSystemService((Class<Object>) any());
+        mWindowManagerToRestore = WindowManagerGlobal.getWindowManagerService();
+        WindowManagerGlobal.setWindowManagerServiceForSystemProcess(mIWindowManager);
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mResources.getFraction(R.fraction.display_density_max_scale, 1, 1)).thenReturn(
+                MAX_SCALE);
+        when(mResources.getFraction(R.fraction.display_density_min_scale, 1, 1)).thenReturn(
+                MIN_SCALE);
+        when(mResources.getFraction(R.fraction.display_density_min_scale_interval, 1,
+                1)).thenReturn(MIN_INTERVAL);
+        when(mResources.getString(anyInt())).thenReturn("summary");
+    }
+
+    @After
+    public void teardown() {
+        WindowManagerGlobal.setWindowManagerServiceForSystemProcess(mWindowManagerToRestore);
+    }
+
+    @Test
+    public void createDisplayDensityUtil_onlyDefaultDisplay() throws RemoteException {
+        var info = createDisplayInfoForDisplay(Display.DEFAULT_DISPLAY, Display.TYPE_INTERNAL, 2560,
+                1600, 320);
+        var display = new Display(mDisplayManagerGlobal, info.displayId, info,
+                (DisplayAdjustments) null);
+        doReturn(new Display[]{display}).when(mDisplayManager).getDisplays(any());
+        doReturn(display).when(mDisplayManager).getDisplay(info.displayId);
+
+        mDisplayDensityUtils = new DisplayDensityUtils(mContext);
+
+        assertThat(mDisplayDensityUtils.getValues()).isEqualTo(new int[]{272, 320, 354, 390, 424});
+    }
+
+    @Test
+    public void createDisplayDensityUtil_multipleInternalDisplays() throws RemoteException {
+        // Default display
+        var defaultDisplayInfo = createDisplayInfoForDisplay(Display.DEFAULT_DISPLAY,
+                Display.TYPE_INTERNAL, 2000, 2000, 390);
+        var defaultDisplay = new Display(mDisplayManagerGlobal, defaultDisplayInfo.displayId,
+                defaultDisplayInfo,
+                (DisplayAdjustments) null);
+        doReturn(defaultDisplay).when(mDisplayManager).getDisplay(defaultDisplayInfo.displayId);
+
+        // Create another internal display
+        var internalDisplayInfo = createDisplayInfoForDisplay(1, Display.TYPE_INTERNAL,
+                2000, 1000, 390);
+        var internalDisplay = new Display(mDisplayManagerGlobal, internalDisplayInfo.displayId,
+                internalDisplayInfo,
+                (DisplayAdjustments) null);
+        doReturn(internalDisplay).when(mDisplayManager).getDisplay(internalDisplayInfo.displayId);
+
+        doReturn(new Display[]{defaultDisplay, internalDisplay}).when(mDisplayManager).getDisplays(
+                anyString());
+
+        mDisplayDensityUtils = new DisplayDensityUtils(mContext);
+
+        assertThat(mDisplayDensityUtils.getValues()).isEqualTo(new int[]{330, 390, 426, 462, 500});
+    }
+
+    private DisplayInfo createDisplayInfoForDisplay(int displayId, int displayType,
+            int width, int height, int density) throws RemoteException {
+        var displayInfo = new DisplayInfo();
+        displayInfo.displayId = displayId;
+        displayInfo.type = displayType;
+        displayInfo.logicalWidth = width;
+        displayInfo.logicalHeight = height;
+        displayInfo.logicalDensityDpi = density;
+
+        doReturn(displayInfo).when(mDisplayManagerGlobal).getDisplayInfo(displayInfo.displayId);
+        doReturn(displayInfo.logicalDensityDpi).when(mIWindowManager).getInitialDisplayDensity(
+                displayInfo.displayId);
+        return displayInfo;
+    }
+}
+
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java
index fd14d1f..2eccaa6 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java
@@ -40,6 +40,8 @@
 import android.os.Looper;
 import android.os.Parcel;
 import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 
 import com.android.settingslib.flags.Flags;
@@ -74,6 +76,9 @@
     private final static String DEVICE_ADDRESS_1 = "AA:BB:CC:DD:EE:11";
     private final static String DEVICE_ADDRESS_2 = "AA:BB:CC:DD:EE:22";
     private final static String DEVICE_ADDRESS_3 = "AA:BB:CC:DD:EE:33";
+    private static final int METADATA_FAST_PAIR_CUSTOMIZED_FIELDS = 25;
+    private static final String TEMP_BOND_METADATA =
+            "<TEMP_BOND_TYPE>le_audio_sharing</TEMP_BOND_TYPE>";
     private final static int GROUP1 = 1;
     private final BluetoothClass DEVICE_CLASS_1 =
             createBtClass(BluetoothClass.Device.AUDIO_VIDEO_HEADPHONES);
@@ -337,6 +342,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
     public void addMemberDevicesIntoMainDevice_preferredDeviceIsMainAndTwoMain_returnTrue() {
         // Condition: The preferredDevice is main and there is another main device in top list
         // Expected Result: return true and there is the preferredDevice in top list
@@ -346,7 +352,6 @@
         mCachedDevices.add(preferredDevice);
         mCachedDevices.add(mCachedDevice2);
         mCachedDevices.add(mCachedDevice3);
-        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
 
         assertThat(mCsipDeviceManager.addMemberDevicesIntoMainDevice(GROUP1, preferredDevice))
                 .isTrue();
@@ -359,6 +364,7 @@
     }
 
     @Test
+    @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
     public void
             addMemberDevicesIntoMainDevice_preferredDeviceIsMainAndTwoMain_workProfile_doNothing() {
         // Condition: The preferredDevice is main and there is another main device in top list
@@ -369,7 +375,6 @@
         mCachedDevices.add(preferredDevice);
         mCachedDevices.add(mCachedDevice2);
         mCachedDevices.add(mCachedDevice3);
-        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         when(mBroadcast.isEnabled(null)).thenReturn(true);
         BluetoothLeBroadcastMetadata metadata = Mockito.mock(BluetoothLeBroadcastMetadata.class);
         when(mBroadcast.getLatestBluetoothLeBroadcastMetadata()).thenReturn(metadata);
@@ -377,6 +382,8 @@
                 BluetoothLeBroadcastReceiveState.class);
         when(state.getBisSyncState()).thenReturn(ImmutableList.of(1L));
         when(mAssistant.getAllSources(mDevice2)).thenReturn(ImmutableList.of(state));
+        when(mDevice2.getMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS))
+                .thenReturn(TEMP_BOND_METADATA.getBytes());
         when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
         when(mUserManager.isManagedProfile()).thenReturn(true);
 
@@ -387,10 +394,13 @@
         assertThat(mCachedDevices.contains(mCachedDevice3)).isTrue();
         assertThat(preferredDevice.getMemberDevice()).contains(mCachedDevice2);
         verify(mAssistant, never()).addSource(mDevice1, metadata, /* isGroupOp= */ false);
+        verify(mDevice1, never()).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
+                TEMP_BOND_METADATA.getBytes());
     }
 
     @Test
-    public void addMemberDevicesIntoMainDevice_preferredDeviceIsMainAndTwoMain_syncSource() {
+    @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
+    public void addMemberDevicesIntoMainDevice_preferredDeviceIsMainAndTwoMain_syncState() {
         // Condition: The preferredDevice is main and there is another main device in top list
         // Expected Result: return true and there is the preferredDevice in top list
         CachedBluetoothDevice preferredDevice = mCachedDevice1;
@@ -399,7 +409,6 @@
         mCachedDevices.add(preferredDevice);
         mCachedDevices.add(mCachedDevice2);
         mCachedDevices.add(mCachedDevice3);
-        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         when(mBroadcast.isEnabled(null)).thenReturn(true);
         BluetoothLeBroadcastMetadata metadata = Mockito.mock(BluetoothLeBroadcastMetadata.class);
         when(mBroadcast.getLatestBluetoothLeBroadcastMetadata()).thenReturn(metadata);
@@ -407,6 +416,8 @@
                 BluetoothLeBroadcastReceiveState.class);
         when(state.getBisSyncState()).thenReturn(ImmutableList.of(1L));
         when(mAssistant.getAllSources(mDevice2)).thenReturn(ImmutableList.of(state));
+        when(mDevice2.getMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS))
+                .thenReturn(TEMP_BOND_METADATA.getBytes());
 
         assertThat(mCsipDeviceManager.addMemberDevicesIntoMainDevice(GROUP1, preferredDevice))
                 .isTrue();
@@ -415,6 +426,8 @@
         assertThat(mCachedDevices.contains(mCachedDevice3)).isTrue();
         assertThat(preferredDevice.getMemberDevice()).contains(mCachedDevice2);
         verify(mAssistant).addSource(mDevice1, metadata, /* isGroupOp= */ false);
+        verify(mDevice1).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
+                TEMP_BOND_METADATA.getBytes());
     }
 
     @Test
@@ -436,13 +449,13 @@
     }
 
     @Test
+    @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
     public void addMemberDevicesIntoMainDevice_preferredDeviceIsMemberAndTwoMain_returnTrue() {
         // Condition: The preferredDevice is member and there are two main device in top list
         // Expected Result: return true and there is the preferredDevice in top list
         CachedBluetoothDevice preferredDevice = mCachedDevice2;
         BluetoothDevice expectedMainBluetoothDevice = preferredDevice.getDevice();
         mCachedDevice3.setGroupId(GROUP1);
-        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         when(mBroadcast.isEnabled(null)).thenReturn(false);
 
         assertThat(mCsipDeviceManager.addMemberDevicesIntoMainDevice(GROUP1, preferredDevice))
@@ -457,16 +470,20 @@
         assertThat(mCachedDevice1.getDevice()).isEqualTo(expectedMainBluetoothDevice);
         verify(mAssistant, never()).addSource(any(BluetoothDevice.class),
                 any(BluetoothLeBroadcastMetadata.class), anyBoolean());
+        verify(mDevice2, never()).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
+                TEMP_BOND_METADATA.getBytes());
+        verify(mDevice3, never()).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
+                TEMP_BOND_METADATA.getBytes());
     }
 
     @Test
-    public void addMemberDevicesIntoMainDevice_preferredDeviceIsMemberAndTwoMain_syncSource() {
+    @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
+    public void addMemberDevicesIntoMainDevice_preferredDeviceIsMemberAndTwoMain_syncState() {
         // Condition: The preferredDevice is member and there are two main device in top list
         // Expected Result: return true and there is the preferredDevice in top list
         CachedBluetoothDevice preferredDevice = mCachedDevice2;
         BluetoothDevice expectedMainBluetoothDevice = preferredDevice.getDevice();
         mCachedDevice3.setGroupId(GROUP1);
-        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         when(mBroadcast.isEnabled(null)).thenReturn(true);
         BluetoothLeBroadcastMetadata metadata = Mockito.mock(BluetoothLeBroadcastMetadata.class);
         when(mBroadcast.getLatestBluetoothLeBroadcastMetadata()).thenReturn(metadata);
@@ -474,6 +491,8 @@
                 BluetoothLeBroadcastReceiveState.class);
         when(state.getBisSyncState()).thenReturn(ImmutableList.of(1L));
         when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of(state));
+        when(mDevice1.getMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS))
+                .thenReturn(TEMP_BOND_METADATA.getBytes());
 
         assertThat(mCsipDeviceManager.addMemberDevicesIntoMainDevice(GROUP1, preferredDevice))
                 .isTrue();
@@ -488,6 +507,10 @@
         assertThat(mCachedDevice1.getDevice()).isEqualTo(expectedMainBluetoothDevice);
         verify(mAssistant).addSource(mDevice2, metadata, /* isGroupOp= */ false);
         verify(mAssistant).addSource(mDevice3, metadata, /* isGroupOp= */ false);
+        verify(mDevice2).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
+                TEMP_BOND_METADATA.getBytes());
+        verify(mDevice3).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
+                TEMP_BOND_METADATA.getBytes());
     }
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
index c9dc1ba..c36f32a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
@@ -61,8 +61,9 @@
         allKeys.add(CategoryKey.CATEGORY_NIGHT_DISPLAY);
         allKeys.add(CategoryKey.CATEGORY_SMART_BATTERY_SETTINGS);
         allKeys.add(CategoryKey.CATEGORY_COMMUNAL_SETTINGS);
+        allKeys.add(CategoryKey.CATEGORY_SUPERVISION);
         // DO NOT REMOVE ANYTHING ABOVE
 
-        assertThat(allKeys.size()).isEqualTo(20);
+        assertThat(allKeys.size()).isEqualTo(21);
     }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
index 219ad6c..7b6604b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
@@ -942,7 +942,7 @@
         assertThat(mInfoMediaManager.getCurrentConnectedDevice()).isEqualTo(device);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void composePreferenceRouteListing_useSystemOrderingIsFalse() {
         RouteListingPreference routeListingPreference =
@@ -955,7 +955,7 @@
         assertThat(routeOrder.get(1).getRouteId()).isEqualTo(TEST_ID_4);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void composePreferenceRouteListing_useSystemOrderingIsTrue() {
         RouteListingPreference routeListingPreference =
@@ -968,7 +968,7 @@
         assertThat(routeOrder.get(1).getRouteId()).isEqualTo(TEST_ID_3);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void arrangeRouteListByPreference_useSystemOrderingIsFalse() {
         RouteListingPreference routeListingPreference =
@@ -986,7 +986,7 @@
         assertThat(routeOrder.get(3).getId()).isEqualTo(TEST_ID_1);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void arrangeRouteListByPreference_useSystemOrderingIsTrue() {
         RouteListingPreference routeListingPreference =
@@ -1003,4 +1003,21 @@
         assertThat(routeOrder.get(2).getId()).isEqualTo(TEST_ID_4);
         assertThat(routeOrder.get(3).getId()).isEqualTo(TEST_ID_1);
     }
+
+    @Test
+    public void selectedRouteAppearsFirst() {
+        RouteListingPreference routeListingPreference =
+                setUpPreferenceList(TEST_PACKAGE_NAME, true);
+        List<MediaRoute2Info> routes = setAvailableRoutesList(TEST_PACKAGE_NAME);
+        List<MediaRoute2Info> selectedRoutes = List.of(routes.get(2));
+
+        List<MediaRoute2Info> routeOrder =
+                Api34Impl.arrangeRouteListByPreference(
+                        selectedRoutes, routes, routeListingPreference);
+
+        assertThat(routeOrder.stream().map(MediaRoute2Info::getId).toArray())
+                .asList()
+                .containsExactly(TEST_ID_4, TEST_ID_1, TEST_ID_3)
+                .inOrder();
+    }
 }
diff --git a/packages/SettingsLib/tests/unit/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExtTest.kt b/packages/SettingsLib/tests/unit/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExtTest.kt
index 1ad20dc..5f6eb5e 100644
--- a/packages/SettingsLib/tests/unit/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExtTest.kt
+++ b/packages/SettingsLib/tests/unit/src/com/android/settingslib/bluetooth/BluetoothLeBroadcastMetadataExtTest.kt
@@ -233,7 +233,7 @@
 
         const val QR_CODE_STRING =
             "BLUETOOTH:UUID:184F;BN:VGVzdA==;AT:1;AD:00A1A1A1A1A1;BI:1E240;BC:VGVzdENvZGU=;" +
-            "MD:BgNwVGVzdA==;AS:1;PI:A0;NS:1;BS:3;NB:2;SM:BQNUZXN0BARlbmc=;;"
+            "PM:BgNwVGVzdA==;AS:1;PI:A0;NS:1;BS:3;NB:2;SM:BQNUZXN0BARlbmc=;;"
         const val QR_CODE_STRING_NON_ENCRYPTED =
             "BLUETOOTH:UUID:184F;BN:SG9ja2V5;AT:0;AD:AABBCC001122;BI:DE51E9;SQ:1;AS:1;PI:FFFF;" +
             "NS:1;BS:1;NB:1;;"
diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
index 27a3cf1..60fe156 100644
--- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
+++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
@@ -124,6 +124,7 @@
         Settings.Secure.POWER_MENU_LOCKED_SHOW_CONTENT,
         Settings.Secure.DOZE_ENABLED,
         Settings.Secure.DOZE_ALWAYS_ON,
+        Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED,
         Settings.Secure.DOZE_PICK_UP_GESTURE,
         Settings.Secure.DOZE_DOUBLE_TAP_GESTURE,
         Settings.Secure.DOZE_TAP_SCREEN_GESTURE,
diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java
index c0e266f..4c6a1ba 100644
--- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java
+++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java
@@ -177,7 +177,7 @@
         VALIDATORS.put(Global.REQUIRE_PASSWORD_TO_DECRYPT, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Global.DEVICE_DEMO_MODE, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Global.AWARE_ALLOWED, BOOLEAN_VALIDATOR);
-        VALIDATORS.put(Global.POWER_BUTTON_SHORT_PRESS, new InclusiveIntegerRangeValidator(0, 7));
+        VALIDATORS.put(Global.POWER_BUTTON_SHORT_PRESS, new InclusiveIntegerRangeValidator(0, 8));
         VALIDATORS.put(Global.POWER_BUTTON_DOUBLE_PRESS, new InclusiveIntegerRangeValidator(0, 3));
         VALIDATORS.put(Global.POWER_BUTTON_TRIPLE_PRESS, new InclusiveIntegerRangeValidator(0, 3));
         VALIDATORS.put(Global.POWER_BUTTON_LONG_PRESS, new InclusiveIntegerRangeValidator(0, 5));
diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
index 9591b43..3d941e8 100644
--- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
+++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
@@ -184,6 +184,7 @@
         VALIDATORS.put(Secure.STATUS_BAR_SHOW_VIBRATE_ICON, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_ALWAYS_ON, BOOLEAN_VALIDATOR);
+        VALIDATORS.put(Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_PICK_UP_GESTURE, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_DOUBLE_TAP_GESTURE, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_TAP_SCREEN_GESTURE, BOOLEAN_VALIDATOR);
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/WritableNamespaces.java b/packages/SettingsProvider/src/com/android/providers/settings/WritableNamespaces.java
index 6d30f49..0c5e737 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/WritableNamespaces.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/WritableNamespaces.java
@@ -39,6 +39,7 @@
                     "captive_portal_login",
                     "connectivity",
                     "exo",
+                    "location",
                     "nearby",
                     "netd_native",
                     "network_security",
diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
index 246aa71..85617ba 100644
--- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
+++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
@@ -809,7 +809,9 @@
                  Settings.Secure.DND_CONFIGS_MIGRATED,
                  Settings.Secure.NAVIGATION_MODE_RESTORE,
                  Settings.Secure.V_TO_U_RESTORE_ALLOWLIST,
-                 Settings.Secure.V_TO_U_RESTORE_DENYLIST);
+                 Settings.Secure.V_TO_U_RESTORE_DENYLIST,
+                 Settings.Secure.REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI,
+                 Settings.Secure.REDACT_OTP_NOTIFICATION_IMMEDIATELY);
 
     @Test
     public void systemSettingsBackedUpOrDenied() {
diff --git a/packages/Shell/res/values-cs/strings.xml b/packages/Shell/res/values-cs/strings.xml
index ab031a4..d2931d9 100644
--- a/packages/Shell/res/values-cs/strings.xml
+++ b/packages/Shell/res/values-cs/strings.xml
@@ -22,7 +22,7 @@
     <string name="bugreport_finished_title" msgid="4429132808670114081">"Zpráva o chybě <xliff:g id="ID">#%d</xliff:g> byla vytvořena"</string>
     <string name="bugreport_updating_title" msgid="4423539949559634214">"Přidávání podrobností do zprávy o chybě"</string>
     <string name="bugreport_updating_wait" msgid="3322151947853929470">"Čekejte prosím…"</string>
-    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Na telefonu se brzy zobrazí zpráva o chybě."</string>
+    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Zpráva o chybě se brzy zobrazí na telefonu."</string>
     <string name="bugreport_finished_text" product="tv" msgid="5758325479058638893">"Zprávu o chybě můžete sdílet klepnutím"</string>
     <string name="bugreport_finished_text" product="default" msgid="8353769438382138847">"Zprávu o chybě můžete sdílet klepnutím"</string>
     <string name="bugreport_finished_pending_screenshot_text" product="tv" msgid="2343263822812016950">"Přejetím můžete zprávu o chybě sdílet bez snímku obrazovky, nebo vyčkejte, než se snímek připraví"</string>
diff --git a/packages/Shell/res/values-pl/strings.xml b/packages/Shell/res/values-pl/strings.xml
index 1ff4bbd..0a60565 100644
--- a/packages/Shell/res/values-pl/strings.xml
+++ b/packages/Shell/res/values-pl/strings.xml
@@ -22,7 +22,7 @@
     <string name="bugreport_finished_title" msgid="4429132808670114081">"Raport o błędzie <xliff:g id="ID">#%d</xliff:g> został zapisany"</string>
     <string name="bugreport_updating_title" msgid="4423539949559634214">"Dodaję szczegóły do raportu o błędzie"</string>
     <string name="bugreport_updating_wait" msgid="3322151947853929470">"Czekaj..."</string>
-    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raport o błędzie będzie pojawiał się na telefonie przez chwilę"</string>
+    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raport o błędzie za chwilę pojawi się na telefonie"</string>
     <string name="bugreport_finished_text" product="tv" msgid="5758325479058638893">"Wybierz, by udostępnić raport o błędzie"</string>
     <string name="bugreport_finished_text" product="default" msgid="8353769438382138847">"Kliknij, by udostępnić raport o błędzie"</string>
     <string name="bugreport_finished_pending_screenshot_text" product="tv" msgid="2343263822812016950">"Wybierz, by udostępnić raport o błędzie bez zrzutu ekranu, lub poczekaj, aż zostanie on wygenerowany"</string>
diff --git a/packages/Shell/res/values-sl/strings.xml b/packages/Shell/res/values-sl/strings.xml
index 76702d6..ab6d51a 100644
--- a/packages/Shell/res/values-sl/strings.xml
+++ b/packages/Shell/res/values-sl/strings.xml
@@ -19,7 +19,7 @@
     <string name="app_label" msgid="3701846017049540910">"Lupina"</string>
     <string name="bugreport_notification_channel" msgid="2574150205913861141">"Poročila o napakah"</string>
     <string name="bugreport_in_progress_title" msgid="4311705936714972757">"Poročilo o napaki <xliff:g id="ID">#%d</xliff:g> je v izdelavi"</string>
-    <string name="bugreport_finished_title" msgid="4429132808670114081">"Poročilo o napaki <xliff:g id="ID">#%d</xliff:g> zajeto"</string>
+    <string name="bugreport_finished_title" msgid="4429132808670114081">"Poročilo o napaki <xliff:g id="ID">#%d</xliff:g> je zajeto"</string>
     <string name="bugreport_updating_title" msgid="4423539949559634214">"Dodajanje podrobnosti v poročilo o napakah"</string>
     <string name="bugreport_updating_wait" msgid="3322151947853929470">"Počakajte ..."</string>
     <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Poročilo o napakah bo kmalu prikazano v telefonu"</string>
diff --git a/packages/Shell/src/com/android/shell/BugreportPrefs.java b/packages/Shell/src/com/android/shell/BugreportPrefs.java
index 93690d4..b0fd925 100644
--- a/packages/Shell/src/com/android/shell/BugreportPrefs.java
+++ b/packages/Shell/src/com/android/shell/BugreportPrefs.java
@@ -23,25 +23,24 @@
  * Preferences related to bug reports.
  */
 final class BugreportPrefs {
-    static final String PREFS_BUGREPORT = "bugreports";
-
-    private static final String KEY_WARNING_STATE = "warning-state";
-
-    static final int STATE_UNKNOWN = 0;
-    // Shows the warning dialog.
-    static final int STATE_SHOW = 1;
-    // Skips the warning dialog.
-    static final int STATE_HIDE = 2;
 
     static int getWarningState(Context context, int def) {
-        final SharedPreferences prefs = context.getSharedPreferences(
-                PREFS_BUGREPORT, Context.MODE_PRIVATE);
-        return prefs.getInt(KEY_WARNING_STATE, def);
+        String prefsBugreport = context.getResources().getString(
+                com.android.internal.R.string.prefs_bugreport);
+        String keyWarningState = context.getResources().getString(
+                com.android.internal.R.string.key_warning_state);
+        final SharedPreferences prefs = context.getSharedPreferences(prefsBugreport,
+                Context.MODE_PRIVATE);
+        return prefs.getInt(keyWarningState, def);
     }
 
     static void setWarningState(Context context, int value) {
-        final SharedPreferences prefs = context.getSharedPreferences(
-                PREFS_BUGREPORT, Context.MODE_PRIVATE);
-        prefs.edit().putInt(KEY_WARNING_STATE, value).apply();
+        String prefsBugreport = context.getResources().getString(
+                com.android.internal.R.string.prefs_bugreport);
+        String keyWarningState = context.getResources().getString(
+                com.android.internal.R.string.key_warning_state);
+        final SharedPreferences prefs = context.getSharedPreferences(prefsBugreport,
+                Context.MODE_PRIVATE);
+        prefs.edit().putInt(keyWarningState, value).apply();
     }
 }
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index 61f49db..fb0678f 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -21,8 +21,6 @@
 import static android.content.pm.PackageManager.FEATURE_TELEVISION;
 import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
 
-import static com.android.shell.BugreportPrefs.STATE_HIDE;
-import static com.android.shell.BugreportPrefs.STATE_UNKNOWN;
 import static com.android.shell.BugreportPrefs.getWarningState;
 import static com.android.shell.flags.Flags.handleBugreportsForWear;
 
@@ -1347,7 +1345,11 @@
     }
 
     private boolean hasUserDecidedNotToGetWarningMessage() {
-        return getWarningState(mContext, STATE_UNKNOWN) == STATE_HIDE;
+        int bugreportStateUnknown = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_unknown);
+        int bugreportStateHide = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_hide);
+        return getWarningState(mContext, bugreportStateUnknown) == bugreportStateHide;
     }
 
     private void maybeShowWarningMessageAndCloseNotification(int id) {
diff --git a/packages/Shell/src/com/android/shell/BugreportWarningActivity.java b/packages/Shell/src/com/android/shell/BugreportWarningActivity.java
index a44e236..0e835f9 100644
--- a/packages/Shell/src/com/android/shell/BugreportWarningActivity.java
+++ b/packages/Shell/src/com/android/shell/BugreportWarningActivity.java
@@ -16,9 +16,6 @@
 
 package com.android.shell;
 
-import static com.android.shell.BugreportPrefs.STATE_HIDE;
-import static com.android.shell.BugreportPrefs.STATE_SHOW;
-import static com.android.shell.BugreportPrefs.STATE_UNKNOWN;
 import static com.android.shell.BugreportPrefs.getWarningState;
 import static com.android.shell.BugreportPrefs.setWarningState;
 import static com.android.shell.BugreportProgressService.sendShareIntent;
@@ -69,12 +66,19 @@
 
         mConfirmRepeat = (CheckBox) ap.mView.findViewById(android.R.id.checkbox);
 
-        final int state = getWarningState(this, STATE_UNKNOWN);
+        int bugreportStateUnknown = getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_unknown);
+        int bugreportStateHide = getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_hide);
+        int bugreportStateShow = getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_show);
+
+        final int state = getWarningState(this, bugreportStateUnknown);
         final boolean checked;
         if (Build.IS_USER) {
-            checked = state == STATE_HIDE; // Only checks if specifically set to.
+            checked = state == bugreportStateHide; // Only checks if specifically set to.
         } else {
-            checked = state != STATE_SHOW; // Checks by default.
+            checked = state != bugreportStateShow; // Checks by default.
         }
         mConfirmRepeat.setChecked(checked);
 
@@ -83,9 +87,14 @@
 
     @Override
     public void onClick(DialogInterface dialog, int which) {
+        int bugreportStateHide = getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_hide);
+        int bugreportStateShow = getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_show);
         if (which == AlertDialog.BUTTON_POSITIVE) {
             // Remember confirm state, and launch target
-            setWarningState(this, mConfirmRepeat.isChecked() ? STATE_HIDE : STATE_SHOW);
+            setWarningState(this, mConfirmRepeat.isChecked() ? bugreportStateHide
+                    : bugreportStateShow);
             if (mSendIntent != null) {
                 sendShareIntent(this, mSendIntent);
             }
diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
index 7bda2ea..2d6abe6 100644
--- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
+++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
@@ -19,10 +19,6 @@
 import static android.test.MoreAsserts.assertContainsRegex;
 
 import static com.android.shell.ActionSendMultipleConsumerActivity.UI_NAME;
-import static com.android.shell.BugreportPrefs.PREFS_BUGREPORT;
-import static com.android.shell.BugreportPrefs.STATE_HIDE;
-import static com.android.shell.BugreportPrefs.STATE_SHOW;
-import static com.android.shell.BugreportPrefs.STATE_UNKNOWN;
 import static com.android.shell.BugreportPrefs.getWarningState;
 import static com.android.shell.BugreportPrefs.setWarningState;
 import static com.android.shell.BugreportProgressService.INTENT_BUGREPORT_REQUESTED;
@@ -201,8 +197,9 @@
             return null;
         }).when(mMockIDumpstate).startBugreport(anyInt(), any(), any(), any(), anyInt(), anyInt(),
                 any(), anyBoolean(), anyBoolean());
-
-        setWarningState(mContext, STATE_HIDE);
+        int bugreportStateHide = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_hide);
+        setWarningState(mContext, bugreportStateHide);
 
         mUiBot.turnScreenOn();
     }
@@ -469,22 +466,31 @@
 
     @Test
     public void testBugreportFinished_withWarningUnknownState() throws Exception {
-        bugreportFinishedWithWarningTest(STATE_UNKNOWN);
+        int bugreportStateUnknown = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_unknown);
+        bugreportFinishedWithWarningTest(bugreportStateUnknown);
     }
 
     @Test
     public void testBugreportFinished_withWarningShowAgain() throws Exception {
-        bugreportFinishedWithWarningTest(STATE_SHOW);
+        int bugreportStateShow = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_show);
+        bugreportFinishedWithWarningTest(bugreportStateShow);
     }
 
     private void bugreportFinishedWithWarningTest(Integer propertyState) throws Exception {
+        int bugreportStateUnknown = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_unknown);
+        int bugreportStateHide = mContext.getResources().getInteger(
+                com.android.internal.R.integer.bugreport_state_hide);
         if (propertyState == null) {
             // Clear properties
-            mContext.getSharedPreferences(PREFS_BUGREPORT, Context.MODE_PRIVATE)
-                    .edit().clear().commit();
+            mContext.getSharedPreferences(
+                    mContext.getResources().getString(com.android.internal.R.string.prefs_bugreport)
+                            , Context.MODE_PRIVATE).edit().clear().commit();
             // Confidence check...
-            assertEquals("Did not reset properties", STATE_UNKNOWN,
-                    getWarningState(mContext, STATE_UNKNOWN));
+            assertEquals("Did not reset properties", bugreportStateUnknown,
+                    getWarningState(mContext, bugreportStateUnknown));
         } else {
             setWarningState(mContext, propertyState);
         }
@@ -501,7 +507,8 @@
         // TODO: get ok and dontShowAgain from the dialog reference above
         UiObject dontShowAgain =
                 mUiBot.getVisibleObject(mContext.getString(R.string.bugreport_confirm_dont_repeat));
-        final boolean firstTime = propertyState == null || propertyState == STATE_UNKNOWN;
+        final boolean firstTime =
+                propertyState == null || propertyState == bugreportStateUnknown;
         if (firstTime) {
             if (Build.IS_USER) {
                 assertFalse("Checkbox should NOT be checked by default on user builds",
@@ -524,8 +531,8 @@
         assertActionSendMultiple(extras);
 
         // Make sure it's hidden now.
-        int newState = getWarningState(mContext, STATE_UNKNOWN);
-        assertEquals("Didn't change state", STATE_HIDE, newState);
+        int newState = getWarningState(mContext, bugreportStateUnknown);
+        assertEquals("Didn't change state", bugreportStateHide, newState);
     }
 
     @Test
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index 744388f..08c3e91 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -60,6 +60,7 @@
         "src-release/**/*.kt",
         "src-release/**/*.java",
     ],
+    path: "src-release",
     visibility: ["//visibility:private"],
 }
 
@@ -69,6 +70,7 @@
         "src-debug/**/*.kt",
         "src-debug/**/*.java",
     ],
+    path: "src-debug",
     visibility: ["//visibility:private"],
 }
 
@@ -207,6 +209,8 @@
         "tests/src/**/systemui/statusbar/notification/row/NotificationConversationInfoTest.java",
         "tests/src/**/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt",
         "tests/src/**/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapperTest.kt",
+        "tests/src/**/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierTest.java",
+        "tests/src/**/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierDisabledTest.java",
         "tests/src/**/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java",
         "tests/src/**/systemui/statusbar/phone/CentralSurfacesImplTest.java",
         "tests/src/**/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentTest.java",
@@ -313,11 +317,11 @@
         "tests/src/**/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt",
         "tests/src/**/systemui/statusbar/policy/WalletControllerImplTest.kt",
         "tests/src/**/keyguard/ClockEventControllerTest.kt",
-        "tests/src/**/systemui/bluetooth/qsdialog/BluetoothStateInteractorTest.kt",
         "tests/src/**/systemui/bluetooth/qsdialog/BluetoothDetailsContentManagerTest.kt",
+        "tests/src/**/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt",
+        "tests/src/**/systemui/bluetooth/qsdialog/BluetoothStateInteractorTest.kt",
         "tests/src/**/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegateTest.kt",
         "tests/src/**/systemui/bluetooth/qsdialog/BluetoothTileDialogRepositoryTest.kt",
-        "tests/src/**/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModelTest.kt",
         "tests/src/**/systemui/bluetooth/qsdialog/DeviceItemFactoryTest.kt",
         "tests/src/**/systemui/bluetooth/qsdialog/DeviceItemInteractorTest.kt",
         "tests/src/**/systemui/broadcast/UserBroadcastDispatcherTest.kt",
@@ -428,12 +432,21 @@
     ],
 }
 
-android_library {
-    name: "SystemUI-core",
+filegroup {
+    name: "SystemUI-core-srcs",
     srcs: [
         "src/**/*.kt",
         "src/**/*.java",
         "src/**/I*.aidl",
+    ],
+    path: "src",
+    visibility: ["//visibility:private"],
+}
+
+android_library {
+    name: "SystemUI-core",
+    srcs: [
+        ":SystemUI-core-srcs",
         ":ReleaseJavaFiles",
         "compose/features/src/**/*.kt",
         "compose/facade/enabled/src/**/*.kt",
@@ -538,6 +551,7 @@
     kotlincflags: [
         "-Xjvm-default=all",
         "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
+        "-P plugin:androidx.compose.compiler.plugins.kotlin:sourceInformation=true",
     ],
 
     plugins: [
@@ -552,6 +566,11 @@
     },
 }
 
+platform_compat_config {
+    name: "SystemUI-core-compat-config",
+    src: ":SystemUI-core",
+}
+
 filegroup {
     name: "AAA-src",
     srcs: ["tests/src/com/android/AAAPlusPlusVerifySysuiRequiredTestPropertiesTest.java"],
@@ -723,9 +742,7 @@
     srcs: [
         "tests/src/**/*.kt",
         "tests/src/**/*.java",
-        "src/**/*.kt",
-        "src/**/*.java",
-        "src/**/I*.aidl",
+        ":SystemUI-core-srcs",
         ":ReleaseJavaFiles",
         ":SystemUI-tests-multivalent",
         ":SystemUI-tests-utils",
@@ -754,6 +771,7 @@
         "kosmos",
         "testables",
         "androidx.test.rules",
+        "platform-compat-test-rules",
     ],
     libs: [
         "android.test.runner.stubs.system",
@@ -888,6 +906,7 @@
     static_libs: [
         "RoboTestLibraries",
         "androidx.compose.runtime_runtime",
+        "platform-compat-test-rules",
     ],
     libs: [
         "android.test.runner.impl",
diff --git a/packages/SystemUI/OWNERS b/packages/SystemUI/OWNERS
index 33e9919..236654d 100644
--- a/packages/SystemUI/OWNERS
+++ b/packages/SystemUI/OWNERS
@@ -13,7 +13,6 @@
 andonian@google.com
 amiko@google.com
 austindelgado@google.com
-aroederer@google.com
 arteiro@google.com
 asc@google.com
 awickham@google.com
@@ -104,7 +103,6 @@
 syeonlee@google.com
 sunnygoyal@google.com
 thiruram@google.com
-tkachenkoi@google.com
 tracyzhou@google.com
 tsuji@google.com
 twickham@google.com
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index f4be41e..910f712 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -1869,20 +1869,6 @@
     bug: "385194612"
 }
 
-flag{
-    name: "gsf_bouncer"
-    namespace: "systemui"
-    description: "Applies GSF font styles to Bouncer surfaces."
-    bug: "379364381"
-}
-
-flag {
-    name: "gsf_quick_settings"
-    namespace: "systemui"
-    description: "Applies GSF font styles to Quick Settings surfaces."
-    bug: "379364381"
-}
-
 flag {
     name: "spatial_model_launcher_pushback"
     namespace: "systemui"
@@ -1960,6 +1946,16 @@
 }
 
 flag {
+    name: "unfold_latency_tracking_fix"
+    namespace: "systemui"
+    description: "New implementation to track unfold latency that excludes broken cases"
+    bug: "390649568"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+   }
+}
+
+flag {
     name: "ui_rich_ongoing_force_expanded"
     namespace: "systemui"
     description: "Force promoted notifications to always be expanded"
@@ -2013,3 +2009,10 @@
     description: "Decouple view and controller in AnimLib."
     bug: "393241010"
 }
+
+flag {
+    name: "clock_fidget_animation"
+    namespace: "systemui"
+    description: "Enables the clock fidget animation"
+    bug: "364664389"
+}
diff --git a/packages/SystemUI/animation/res/values/ids.xml b/packages/SystemUI/animation/res/values/ids.xml
index 1a224ac..f6bb95a 100644
--- a/packages/SystemUI/animation/res/values/ids.xml
+++ b/packages/SystemUI/animation/res/values/ids.xml
@@ -26,4 +26,7 @@
     <item type="id" name="tag_override_left"/>
     <item type="id" name="tag_override_right"/>
     <item type="id" name="tag_override_top"/>
-</resources>
\ No newline at end of file
+
+    <!-- ViewTransitionRegistry -->
+    <item type="id" name="tag_view_transition_token"/>
+</resources>
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
index a137891..f8bcb81 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
@@ -24,6 +24,7 @@
 import androidx.annotation.VisibleForTesting
 import java.lang.Float.max
 import java.lang.Float.min
+import kotlin.math.roundToInt
 
 private const val TAG_WGHT = "wght"
 private const val TAG_ITAL = "ital"
@@ -89,7 +90,7 @@
 /** Provide interpolation of two fonts by adjusting font variation settings. */
 class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
     /** Linear interpolate the font variation settings. */
-    fun lerp(start: Font, end: Font, progress: Float): Font {
+    fun lerp(start: Font, end: Font, progress: Float, linearProgress: Float): Font {
         if (progress == 0f) {
             return start
         } else if (progress == 1f) {
@@ -105,7 +106,8 @@
 
         // Check we already know the result. This is commonly happens since we draws the different
         // text chunks with the same font.
-        val iKey = InterpKey(start, end, (progress * fontCache.animationFrameCount).toInt())
+        val iKey =
+            InterpKey(start, end, (linearProgress * fontCache.animationFrameCount).roundToInt())
         fontCache.get(iKey)?.let {
             if (DEBUG) {
                 Log.d(LOG_TAG, "[$progress] Interp. cache hit for $iKey")
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt
index eef26b6..b9f9bc7 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt
@@ -25,9 +25,8 @@
 import android.graphics.fonts.Font
 import android.graphics.fonts.FontVariationAxis
 import android.text.Layout
-import android.util.LruCache
-import kotlin.math.roundToInt
 import android.util.Log
+import android.util.LruCache
 
 private const val DEFAULT_ANIMATION_DURATION: Long = 300
 private const val TYPEFACE_CACHE_MAX_ENTRIES = 5
@@ -37,6 +36,7 @@
 interface TypefaceVariantCache {
     val fontCache: FontCache
     val animationFrameCount: Int
+
     fun getTypefaceForVariant(fvar: String?): Typeface?
 
     companion object {
@@ -45,24 +45,25 @@
                 return baseTypeface
             }
 
-            val axes = FontVariationAxis.fromFontVariationSettings(fVar)
-                ?.toMutableList()
-                ?: mutableListOf()
+            val axes =
+                FontVariationAxis.fromFontVariationSettings(fVar)?.toMutableList()
+                    ?: mutableListOf()
             axes.removeIf { !baseTypeface.isSupportedAxes(it.getOpenTypeTagValue()) }
+
             if (axes.isEmpty()) {
                 return baseTypeface
+            } else {
+                return Typeface.createFromTypefaceWithVariation(baseTypeface, axes)
             }
-            return Typeface.createFromTypefaceWithVariation(baseTypeface, axes)
         }
     }
 }
 
-class TypefaceVariantCacheImpl(
-    var baseTypeface: Typeface,
-    override val animationFrameCount: Int,
-) : TypefaceVariantCache {
+class TypefaceVariantCacheImpl(var baseTypeface: Typeface, override val animationFrameCount: Int) :
+    TypefaceVariantCache {
     private val cache = LruCache<String, Typeface>(TYPEFACE_CACHE_MAX_ENTRIES)
     override val fontCache = FontCacheImpl(animationFrameCount)
+
     override fun getTypefaceForVariant(fvar: String?): Typeface? {
         if (fvar == null) {
             return baseTypeface
@@ -113,29 +114,20 @@
         ValueAnimator.ofFloat(1f).apply {
             duration = DEFAULT_ANIMATION_DURATION
             addUpdateListener {
-                textInterpolator.progress =
-                    calculateProgress(it.animatedValue as Float, typefaceCache.animationFrameCount)
+                textInterpolator.progress = it.animatedValue as Float
+                textInterpolator.linearProgress =
+                    it.currentPlayTime.toFloat() / it.duration.toFloat()
                 invalidateCallback()
             }
             addListener(
                 object : AnimatorListenerAdapter() {
                     override fun onAnimationEnd(animation: Animator) = textInterpolator.rebase()
+
                     override fun onAnimationCancel(animation: Animator) = textInterpolator.rebase()
                 }
             )
         }
 
-    private fun calculateProgress(animProgress: Float, numberOfAnimationSteps: Int?): Float {
-        if (numberOfAnimationSteps != null) {
-            // This clamps the progress to the nearest value of "numberOfAnimationSteps"
-            // discrete values between 0 and 1f.
-            return (animProgress * numberOfAnimationSteps).roundToInt() /
-                numberOfAnimationSteps.toFloat()
-        }
-
-        return animProgress
-    }
-
     sealed class PositionedGlyph {
         /** Mutable X coordinate of the glyph position relative from drawing offset. */
         var x: Float = 0f
@@ -209,12 +201,14 @@
      *
      * Here is an example of font runs: "fin. 終わり"
      *
+     * ```
      * Characters :    f      i      n      .      _      終     わ     り
      * Code Points: \u0066 \u0069 \u006E \u002E \u0020 \u7D42 \u308F \u308A
      * Font Runs  : <-- Roboto-Regular.ttf          --><-- NotoSans-CJK.otf -->
      *                  runStart = 0, runLength = 5        runStart = 5, runLength = 3
      * Glyph IDs  :      194        48     7      8     4367   1039   1002
      * Glyph Index:       0          1     2      3       0      1      2
+     * ```
      *
      * In this example, the "fi" is converted into ligature form, thus the single glyph ID is
      * assigned for two characters, f and i.
@@ -246,22 +240,24 @@
     /**
      * Set text style with animation.
      *
+     * ```
      * By passing -1 to weight, the view preserve the current weight.
      * By passing -1 to textSize, the view preserve the current text size.
-     * Bu passing -1 to duration, the default text animation, 1000ms, is used.
+     * By passing -1 to duration, the default text animation, 1000ms, is used.
      * By passing false to animate, the text will be updated without animation.
+     * ```
      *
      * @param fvar an optional text fontVariationSettings.
      * @param textSize an optional font size.
-     * @param colors an optional colors array that must be the same size as numLines passed to
-     *               the TextInterpolator
+     * @param colors an optional colors array that must be the same size as numLines passed to the
+     *   TextInterpolator
      * @param strokeWidth an optional paint stroke width
      * @param animate an optional boolean indicating true for showing style transition as animation,
-     *                false for immediate style transition. True by default.
+     *   false for immediate style transition. True by default.
      * @param duration an optional animation duration in milliseconds. This is ignored if animate is
-     *                 false.
+     *   false.
      * @param interpolator an optional time interpolator. If null is passed, last set interpolator
-     *                     will be used. This is ignored if animate is false.
+     *   will be used. This is ignored if animate is false.
      */
     fun setTextStyle(
         fvar: String? = "",
@@ -273,8 +269,20 @@
         interpolator: TimeInterpolator? = null,
         delay: Long = 0,
         onAnimationEnd: Runnable? = null,
-    ) = setTextStyleInternal(fvar, textSize, color, strokeWidth, animate, duration,
-        interpolator, delay, onAnimationEnd, updateLayoutOnFailure = true)
+    ) {
+        setTextStyleInternal(
+            fvar,
+            textSize,
+            color,
+            strokeWidth,
+            animate,
+            duration,
+            interpolator,
+            delay,
+            onAnimationEnd,
+            updateLayoutOnFailure = true,
+        )
+    }
 
     private fun setTextStyleInternal(
         fvar: String?,
@@ -310,24 +318,21 @@
 
             if (animate) {
                 animator.startDelay = delay
-                animator.duration =
-                    if (duration == -1L) {
-                        DEFAULT_ANIMATION_DURATION
-                    } else {
-                        duration
-                    }
+                animator.duration = if (duration == -1L) DEFAULT_ANIMATION_DURATION else duration
                 interpolator?.let { animator.interpolator = it }
                 if (onAnimationEnd != null) {
-                    val listener = object : AnimatorListenerAdapter() {
-                        override fun onAnimationEnd(animation: Animator) {
-                            onAnimationEnd.run()
-                            animator.removeListener(this)
+                    animator.addListener(
+                        object : AnimatorListenerAdapter() {
+                            override fun onAnimationEnd(animation: Animator) {
+                                onAnimationEnd.run()
+                                animator.removeListener(this)
+                            }
+
+                            override fun onAnimationCancel(animation: Animator) {
+                                animator.removeListener(this)
+                            }
                         }
-                        override fun onAnimationCancel(animation: Animator) {
-                            animator.removeListener(this)
-                        }
-                    }
-                    animator.addListener(listener)
+                    )
                 }
                 animator.start()
             } else {
@@ -338,11 +343,26 @@
             }
         } catch (ex: IllegalArgumentException) {
             if (updateLayoutOnFailure) {
-                Log.e(TAG, "setTextStyleInternal: Exception caught but retrying. This is usually" +
-                    " due to the layout having changed unexpectedly without being notified.", ex)
+                Log.e(
+                    TAG,
+                    "setTextStyleInternal: Exception caught but retrying. This is usually" +
+                        " due to the layout having changed unexpectedly without being notified.",
+                    ex,
+                )
+
                 updateLayout(textInterpolator.layout)
-                setTextStyleInternal(fvar, textSize, color, strokeWidth, animate, duration,
-                    interpolator, delay, onAnimationEnd, updateLayoutOnFailure = false)
+                setTextStyleInternal(
+                    fvar,
+                    textSize,
+                    color,
+                    strokeWidth,
+                    animate,
+                    duration,
+                    interpolator,
+                    delay,
+                    onAnimationEnd,
+                    updateLayoutOnFailure = false,
+                )
             } else {
                 throw ex
             }
@@ -351,6 +371,8 @@
 
     /**
      * Set text style with animation. Similar as
+     *
+     * ```
      * fun setTextStyle(
      *      fvar: String? = "",
      *      textSize: Float = -1f,
@@ -362,6 +384,7 @@
      *      delay: Long = 0,
      *      onAnimationEnd: Runnable? = null
      * )
+     * ```
      *
      * @param weight an optional style value for `wght` in fontVariationSettings.
      * @param width an optional style value for `wdth` in fontVariationSettings.
@@ -380,14 +403,16 @@
         duration: Long = -1L,
         interpolator: TimeInterpolator? = null,
         delay: Long = 0,
-        onAnimationEnd: Runnable? = null
-    ) = setTextStyleInternal(
-            fvar = fontVariationUtils.updateFontVariation(
-                weight = weight,
-                width = width,
-                opticalSize = opticalSize,
-                roundness = roundness,
-            ),
+        onAnimationEnd: Runnable? = null,
+    ) {
+        setTextStyleInternal(
+            fvar =
+                fontVariationUtils.updateFontVariation(
+                    weight = weight,
+                    width = width,
+                    opticalSize = opticalSize,
+                    roundness = roundness,
+                ),
             textSize = textSize,
             color = color,
             strokeWidth = strokeWidth,
@@ -398,6 +423,7 @@
             onAnimationEnd = onAnimationEnd,
             updateLayoutOnFailure = true,
         )
+    }
 
     companion object {
         private val TAG = TextAnimator::class.simpleName!!
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt
index 9c0c0ff..457f453 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt
@@ -98,6 +98,9 @@
      */
     var progress: Float = 0f
 
+    /** Linear progress value (not interpolated) */
+    var linearProgress: Float = 0f
+
     /**
      * The layout used for drawing text.
      *
@@ -217,7 +220,12 @@
                 }
                 run.fontRuns.forEach { fontRun ->
                     fontRun.baseFont =
-                        fontInterpolator.lerp(fontRun.baseFont, fontRun.targetFont, progress)
+                        fontInterpolator.lerp(
+                            fontRun.baseFont,
+                            fontRun.targetFont,
+                            progress,
+                            linearProgress,
+                        )
                     val fvar = FontVariationAxis.toFontVariationSettings(fontRun.baseFont.axes)
                     basePaint.typeface = typefaceCache.getTypefaceForVariant(fvar)
                 }
@@ -358,7 +366,7 @@
     // Draws single font run.
     private fun drawFontRun(c: Canvas, line: Run, run: FontRun, lineNo: Int, paint: Paint) {
         var arrayIndex = 0
-        val font = fontInterpolator.lerp(run.baseFont, run.targetFont, progress)
+        val font = fontInterpolator.lerp(run.baseFont, run.targetFont, progress, linearProgress)
 
         val glyphFilter = glyphFilter
         if (glyphFilter == null) {
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/ViewTransitionRegistry.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewTransitionRegistry.kt
new file mode 100644
index 0000000..58c2a1c
--- /dev/null
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewTransitionRegistry.kt
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.animation
+
+import android.os.Trace
+import android.view.View
+import java.lang.ref.WeakReference
+
+/**
+ * A registry to temporarily store the view being transitioned into a Dialog (using
+ * [DialogTransitionAnimator]) or an Activity (using [ActivityTransitionAnimator])
+ */
+class ViewTransitionRegistry {
+
+    /**
+     * A map of a unique token to a WeakReference of the View being transitioned. WeakReference
+     * ensures that Views are garbage collected whenever they become eligible and avoid any
+     * memory leaks
+     */
+    private val registry by lazy {  mutableMapOf<ViewTransitionToken, WeakReference<View>>() }
+
+    /**
+     * A [View.OnAttachStateChangeListener] to be attached to all views stored in the registry to
+     * ensure that views (and their corresponding entry) is automatically removed when the view is
+     * detached from the Window
+     */
+    private val listener by lazy {
+        object : View.OnAttachStateChangeListener {
+            override fun onViewAttachedToWindow(view: View) {
+                // empty
+            }
+
+            override fun onViewDetachedFromWindow(view: View) {
+                (view.getTag(R.id.tag_view_transition_token)
+                        as? ViewTransitionToken)?.let { token -> unregister(token) }
+            }
+        }
+    }
+
+    /**
+     * Creates an entry of a unique "token" mapped to "transitioning view" in the registry
+     *
+     * @param token unique token associated with the transitioning view
+     * @param view view undergoing transitions
+     */
+    fun register(token: ViewTransitionToken, view: View) {
+        // token embedded as a view tag enables to use a single listener for all views
+        view.setTag(R.id.tag_view_transition_token, token)
+        view.addOnAttachStateChangeListener(listener)
+        registry[token] = WeakReference(view)
+        emitCountForTrace()
+    }
+
+    /**
+     * Removes the entry associated with the unique "token" in the registry
+     *
+     * @param token unique token associated with the transitioning view
+     */
+    fun unregister(token: ViewTransitionToken) {
+        registry.remove(token)?.let {
+            it.get()?.let { view ->
+                view.removeOnAttachStateChangeListener(listener)
+                view.setTag(R.id.tag_view_transition_token, null)
+            }
+            it.clear()
+        }
+        emitCountForTrace()
+    }
+
+    /**
+     * Access a view from registry using unique "token" associated with it
+     * WARNING - this returns a StrongReference to the View stored in the registry
+     */
+    fun getView(token: ViewTransitionToken): View? {
+        return registry[token]?.get()
+    }
+
+    /**
+     * Utility function to emit number of non-null views in the registry whenever the registry is
+     * updated (via [register] or [unregister])
+     */
+    private fun emitCountForTrace() {
+        Trace.setCounter("transition_registry_view_count", registry.count().toLong())
+    }
+}
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/ViewTransitionToken.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewTransitionToken.kt
new file mode 100644
index 0000000..c211a8e
--- /dev/null
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewTransitionToken.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.animation
+
+/**
+ * A token uniquely mapped to a View in [ViewTransitionRegistry]. This token is guaranteed to be
+ * unique as timestamp is appended to the token string
+ *
+ * @constructor creates an instance of [ViewTransitionToken] with token as "timestamp" or
+ * "ClassName_timestamp"
+ *
+ * @property token String value of a unique token
+ */
+@JvmInline
+value class ViewTransitionToken private constructor(val token: String) {
+    constructor() : this(token = System.currentTimeMillis().toString())
+    constructor(clazz: Class<*>) : this(token = clazz.simpleName + "_${System.currentTimeMillis()}")
+}
diff --git a/packages/SystemUI/compose/core/Android.bp b/packages/SystemUI/compose/core/Android.bp
index c63c2b4..9c6bb2c 100644
--- a/packages/SystemUI/compose/core/Android.bp
+++ b/packages/SystemUI/compose/core/Android.bp
@@ -42,6 +42,9 @@
         "//frameworks/libs/systemui:tracinglib-platform",
     ],
 
-    kotlincflags: ["-Xjvm-default=all"],
+    kotlincflags: [
+        "-Xjvm-default=all",
+        "-P plugin:androidx.compose.compiler.plugins.kotlin:sourceInformation=true",
+    ],
     use_resource_processor: true,
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
index fad8ae7..2f38dc2 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
@@ -24,6 +24,7 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.DisposableEffect
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.animation.scene.ElementKey
 import com.android.compose.animation.scene.UserAction
@@ -102,6 +103,8 @@
             viewModel,
             dialogFactory,
             Modifier.element(Bouncer.Elements.Content)
+                // TODO(b/393516240): Use the same sysuiResTag() as views instead.
+                .testTag(Bouncer.Elements.Content.testTag)
                 .overscroll(verticalOverscrollEffect)
                 .sysuiResTag(Bouncer.TestTags.Root)
                 .fillMaxSize(),
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt
index 4a4607b..0b17a3f 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt
@@ -200,19 +200,15 @@
         scene(
             CommunalScenes.Blank,
             userActions =
-                if (viewModel.v2FlagEnabled()) emptyMap()
-                else mapOf(Swipe.Start(fromSource = Edge.End) to CommunalScenes.Communal),
+                if (viewModel.swipeToHubEnabled())
+                    mapOf(Swipe.Start(fromSource = Edge.End) to CommunalScenes.Communal)
+                else emptyMap(),
         ) {
             // This scene shows nothing only allowing for transitions to the communal scene.
             Box(modifier = Modifier.fillMaxSize())
         }
 
-        scene(
-            CommunalScenes.Communal,
-            userActions =
-                if (viewModel.v2FlagEnabled()) emptyMap()
-                else mapOf(Swipe.End to CommunalScenes.Blank),
-        ) {
+        scene(CommunalScenes.Communal, userActions = mapOf(Swipe.End to CommunalScenes.Blank)) {
             CommunalScene(
                 backgroundType = backgroundType,
                 colors = colors,
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt
index 3c0480d..835dd7a 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt
@@ -76,7 +76,7 @@
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.selection.selectable
 import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.foundation.text.AutoSize
+import androidx.compose.foundation.text.TextAutoSize
 import androidx.compose.foundation.text.BasicText
 import androidx.compose.foundation.verticalScroll
 import androidx.compose.material.icons.Icons
@@ -1045,7 +1045,7 @@
                         color = colors.onPrimary,
                         textAlign = TextAlign.Center,
                     ),
-                autoSize = AutoSize.StepBased(maxFontSize = 36.sp, stepSize = 0.1.sp),
+                autoSize = TextAutoSize.StepBased(maxFontSize = 36.sp, stepSize = 0.1.sp),
                 modifier =
                     Modifier.focusable().semantics(mergeDescendants = true) {
                         contentDescription = titleForEmptyStateCTA
@@ -1705,15 +1705,38 @@
     contentScope: ContentScope?,
     modifier: Modifier = Modifier,
 ) {
-    if (SceneContainerFlag.isEnabled && contentScope != null) {
-        contentScope.MediaCarousel(
-            modifier = modifier.fillMaxSize(),
-            isVisible = true,
-            mediaHost = viewModel.mediaHost,
-            carouselController = viewModel.mediaCarouselController,
-        )
-    } else {
-        UmoLegacy(viewModel, modifier)
+    val showNextActionLabel = stringResource(R.string.accessibility_action_label_umo_show_next)
+    val showPreviousActionLabel =
+        stringResource(R.string.accessibility_action_label_umo_show_previous)
+
+    Box(
+        modifier =
+            modifier.thenIf(!viewModel.isEditMode) {
+                Modifier.semantics {
+                    customActions =
+                        listOf(
+                            CustomAccessibilityAction(showNextActionLabel) {
+                                viewModel.onShowNextMedia()
+                                true
+                            },
+                            CustomAccessibilityAction(showPreviousActionLabel) {
+                                viewModel.onShowPreviousMedia()
+                                true
+                            },
+                        )
+                }
+            }
+    ) {
+        if (SceneContainerFlag.isEnabled && contentScope != null) {
+            contentScope.MediaCarousel(
+                modifier = modifier.fillMaxSize(),
+                isVisible = true,
+                mediaHost = viewModel.mediaHost,
+                carouselController = viewModel.mediaCarouselController,
+            )
+        } else {
+            UmoLegacy(viewModel, modifier)
+        }
     }
 }
 
@@ -1724,7 +1747,7 @@
             modifier
                 .clip(
                     shape =
-                        RoundedCornerShape(dimensionResource(system_app_widget_background_radius))
+                        RoundedCornerShape(dimensionResource(R.dimen.notification_corner_radius))
                 )
                 .background(MaterialTheme.colorScheme.primary)
                 .pointerInput(Unit) {
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ContentListState.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ContentListState.kt
index 16002bc..8ad96a5 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ContentListState.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ContentListState.kt
@@ -57,7 +57,8 @@
 internal constructor(
     communalContent: List<CommunalContentModel>,
     private val onAddWidget: (componentName: ComponentName, user: UserHandle, rank: Int) -> Unit,
-    private val onDeleteWidget: (id: Int, componentName: ComponentName, rank: Int) -> Unit,
+    private val onDeleteWidget:
+        (id: Int, key: String, componentName: ComponentName, rank: Int) -> Unit,
     private val onReorderWidgets: (widgetIdToRankMap: Map<Int, Int>) -> Unit,
     private val onResizeWidget:
         (
@@ -81,7 +82,7 @@
         if (list[indexToRemove].isWidgetContent()) {
             val widget = list[indexToRemove] as CommunalContentModel.WidgetContent
             list.apply { removeAt(indexToRemove) }
-            onDeleteWidget(widget.appWidgetId, widget.componentName, widget.rank)
+            onDeleteWidget(widget.appWidgetId, widget.key, widget.componentName, widget.rank)
         }
     }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ResponsiveLazyHorizontalGrid.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ResponsiveLazyHorizontalGrid.kt
index 44c375d..73a2425 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ResponsiveLazyHorizontalGrid.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/ResponsiveLazyHorizontalGrid.kt
@@ -48,6 +48,8 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.times
 import androidx.window.layout.WindowMetricsCalculator
+import com.android.systemui.communal.util.WindowSizeUtils.COMPACT_HEIGHT
+import com.android.systemui.communal.util.WindowSizeUtils.COMPACT_WIDTH
 
 /**
  * Renders a responsive [LazyHorizontalGrid] with dynamic columns and rows. Each cell will maintain
@@ -264,16 +266,15 @@
 }
 
 private fun calculateNumCellsWidth(width: Dp) =
-    // See https://developer.android.com/develop/ui/views/layout/use-window-size-classes
     when {
-        width >= 840.dp -> 3
-        width >= 600.dp -> 2
+        width >= 900.dp -> 3
+        width >= COMPACT_WIDTH -> 2
         else -> 1
     }
 
 private fun calculateNumCellsHeight(height: Dp) =
     when {
         height >= 1000.dp -> 3
-        height >= 480.dp -> 2
+        height >= COMPACT_HEIGHT -> 2
         else -> 1
     }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalLockSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalLockSection.kt
index eab2b87..8c681e2 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalLockSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalLockSection.kt
@@ -38,7 +38,7 @@
 import com.android.systemui.keyguard.ui.composable.blueprint.BlueprintAlignmentLines
 import com.android.systemui.keyguard.ui.view.DeviceEntryIconView
 import com.android.systemui.log.LogBuffer
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.log.dagger.LongPressTouchLog
 import com.android.systemui.plugins.FalsingManager
 import com.android.systemui.res.R
@@ -68,7 +68,7 @@
                 DeviceEntryIconView(
                         context,
                         null,
-                        logger = LongPressHandlingViewLogger(logBuffer, tag = TAG),
+                        logger = TouchHandlingViewLogger(logBuffer, tag = TAG),
                     )
                     .apply {
                         id = R.id.device_entry_icon_view
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalToDreamButtonSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalToDreamButtonSection.kt
index a840a6f..acaf43a 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalToDreamButtonSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/section/CommunalToDreamButtonSection.kt
@@ -16,6 +16,12 @@
 
 package com.android.systemui.communal.ui.compose.section
 
+import androidx.compose.animation.AnimatedVisibility
+import androidx.compose.animation.core.MutableTransitionState
+import androidx.compose.animation.expandVertically
+import androidx.compose.animation.fadeIn
+import androidx.compose.animation.fadeOut
+import androidx.compose.animation.shrinkVertically
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.height
@@ -28,6 +34,11 @@
 import androidx.compose.material3.Surface
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.geometry.CornerRadius
@@ -52,6 +63,8 @@
 import com.android.systemui.lifecycle.rememberViewModel
 import com.android.systemui.res.R
 import javax.inject.Inject
+import kotlin.time.Duration.Companion.seconds
+import kotlinx.coroutines.delay
 
 class CommunalToDreamButtonSection
 @Inject
@@ -75,16 +88,54 @@
         val buttonSize = dimensionResource(R.dimen.communal_to_dream_button_size)
 
         if (viewModel.shouldShowTooltip) {
+            val tooltipVisibleState = remember { MutableTransitionState(false) }
+
             Column(
                 modifier =
                     Modifier.widthIn(max = tooltipMaxWidth).pointerInput(Unit) {
-                        observeTaps { viewModel.setDreamButtonTooltipDismissed() }
+                        observeTaps {
+                            if (tooltipVisibleState.isCurrentlyVisible()) {
+                                tooltipVisibleState.targetState = false
+                            }
+                        }
                     }
             ) {
-                Tooltip(
-                    pointerOffsetDp = buttonSize.div(2),
-                    text = stringResource(R.string.glanceable_hub_to_dream_button_tooltip),
-                )
+                var waitingToShowTooltip by remember { mutableStateOf(true) }
+
+                LaunchedEffect(tooltipVisibleState.targetState) {
+                    delay(3.seconds)
+                    tooltipVisibleState.targetState = true
+                    waitingToShowTooltip = false
+                }
+
+                // This LaunchedEffect is used to wait for the tooltip dismiss animation to
+                // complete before setting the tooltip dismissed. Otherwise, the composable would
+                // be removed before the animation can start.
+                LaunchedEffect(
+                    tooltipVisibleState.currentState,
+                    tooltipVisibleState.isIdle,
+                    waitingToShowTooltip,
+                ) {
+                    if (
+                        !waitingToShowTooltip &&
+                            !tooltipVisibleState.currentState &&
+                            tooltipVisibleState.isIdle
+                    ) {
+                        viewModel.setDreamButtonTooltipDismissed()
+                    }
+                }
+
+                AnimatedVisibility(
+                    visibleState = tooltipVisibleState,
+                    enter = fadeIn() + expandVertically(expandFrom = Alignment.Bottom),
+                    exit = fadeOut() + shrinkVertically(shrinkTowards = Alignment.Bottom),
+                ) {
+                    Tooltip(
+                        pointerOffsetDp = buttonSize.div(2),
+                        text = stringResource(R.string.glanceable_hub_to_dream_button_tooltip),
+                    )
+                }
+
                 GoToDreamButton(
                     modifier = Modifier.width(buttonSize).height(buttonSize).align(Alignment.End)
                 ) {
@@ -98,6 +149,8 @@
         }
     }
 
+    private fun MutableTransitionState<Boolean>.isCurrentlyVisible() = currentState && isIdle
+
     companion object {
         private val tooltipMaxWidth = 350.dp
     }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt
index 500527f..69ac69d 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt
@@ -55,7 +55,7 @@
 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies
 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerMessageAreaViewModel
 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerUdfpsIconViewModel
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.res.R
 
 @Composable
@@ -156,7 +156,7 @@
 @Composable
 private fun DeviceEntryIcon(
     viewModel: AlternateBouncerUdfpsIconViewModel,
-    logger: LongPressHandlingViewLogger,
+    logger: TouchHandlingViewLogger,
     modifier: Modifier = Modifier,
 ) {
     AndroidView(
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt
index 5e61af6..aa07370 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt
@@ -19,6 +19,7 @@
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
@@ -55,7 +56,11 @@
 
     @Composable
     override fun ContentScope.Content(modifier: Modifier) {
-        LockscreenScene(lockscreenContent = lockscreenContent, modifier = modifier)
+        LockscreenScene(
+            lockscreenContent = lockscreenContent,
+            // TODO(b/393516240): Use the same sysuiResTag() as views instead.
+            modifier = modifier.testTag(key.rootElementKey.testTag),
+        )
     }
 }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/BurnInState.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/BurnInState.kt
index ba25719..0abed39 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/BurnInState.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/BurnInState.kt
@@ -26,18 +26,16 @@
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalDensity
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
-import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor
 import com.android.systemui.keyguard.ui.viewmodel.BurnInParameters
+import com.android.systemui.keyguard.ui.viewmodel.KeyguardClockViewModel
 import com.android.systemui.plugins.clocks.ClockController
 import kotlin.math.min
 import kotlin.math.roundToInt
 
 /** Produces a [BurnInState] that can be used to query the `LockscreenBurnInViewModel` flows. */
 @Composable
-fun rememberBurnIn(
-    clockInteractor: KeyguardClockInteractor,
-): BurnInState {
-    val clock by clockInteractor.currentClock.collectAsStateWithLifecycle()
+fun rememberBurnIn(clockViewModel: KeyguardClockViewModel): BurnInState {
+    val clock by clockViewModel.currentClock.collectAsStateWithLifecycle()
 
     val (smartspaceTop, onSmartspaceTopChanged) = remember { mutableStateOf<Float?>(null) }
     val (smallClockTop, onSmallClockTopChanged) = remember { mutableStateOf<Float?>(null) }
@@ -62,18 +60,12 @@
 }
 
 @Composable
-private fun rememberBurnInParameters(
-    clock: ClockController?,
-    topmostTop: Int,
-): BurnInParameters {
+private fun rememberBurnInParameters(clock: ClockController?, topmostTop: Int): BurnInParameters {
     val density = LocalDensity.current
     val topInset = WindowInsets.systemBars.union(WindowInsets.displayCutout).getTop(density)
 
     return remember(clock, topInset, topmostTop) {
-        BurnInParameters(
-            topInset = topInset,
-            minViewY = topmostTop,
-        )
+        BurnInParameters(topInset = topInset, minViewY = topmostTop)
     }
 }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt
index fa5e8ac..d2fff06 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt
@@ -31,6 +31,7 @@
 import androidx.compose.ui.res.dimensionResource
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.IntRect
+import androidx.compose.ui.unit.dp
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.modifiers.padding
@@ -113,22 +114,26 @@
                                         AodPromotedNotificationArea(
                                             modifier =
                                                 Modifier.fillMaxWidth(0.5f)
-                                                    .align(alignment = Alignment.TopStart)
+                                                    .align(alignment = Alignment.TopEnd)
                                         )
                                         Notifications(
                                             areNotificationsVisible = areNotificationsVisible,
-                                            isShadeLayoutWide = true,
                                             burnInParams = null,
                                             modifier =
                                                 Modifier.fillMaxWidth(0.5f)
                                                     .fillMaxHeight()
-                                                    .align(alignment = Alignment.TopEnd),
+                                                    .align(alignment = Alignment.TopEnd)
+                                                    .padding(top = 12.dp),
                                         )
                                     }
                                 }
                             }
                         }
 
+                        // Not a mistake; reusing below_clock_padding_start_icons as AOD RON top
+                        // padding for now.
+                        val aodPromotedNotifTopPadding: Dp =
+                            dimensionResource(R.dimen.below_clock_padding_start_icons)
                         val aodIconPadding: Dp =
                             dimensionResource(R.dimen.below_clock_padding_start_icons)
 
@@ -136,21 +141,26 @@
                             if (!isShadeLayoutWide && !isBypassEnabled) {
                                 Box(modifier = Modifier.weight(weight = 1f)) {
                                     Column(Modifier.align(alignment = Alignment.TopStart)) {
-                                        AodPromotedNotificationArea()
+                                        AodPromotedNotificationArea(
+                                            modifier =
+                                                Modifier.padding(top = aodPromotedNotifTopPadding)
+                                        )
                                         AodNotificationIcons(
                                             modifier = Modifier.padding(start = aodIconPadding)
                                         )
                                     }
                                     Notifications(
                                         areNotificationsVisible = areNotificationsVisible,
-                                        isShadeLayoutWide = false,
                                         burnInParams = null,
                                     )
                                 }
                             } else {
                                 Column {
                                     if (!isShadeLayoutWide) {
-                                        AodPromotedNotificationArea()
+                                        AodPromotedNotificationArea(
+                                            modifier =
+                                                Modifier.padding(top = aodPromotedNotifTopPadding)
+                                        )
                                     }
                                     AodNotificationIcons(
                                         modifier =
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt
index 4795e7c..0db2bb5 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt
@@ -42,7 +42,7 @@
 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryForegroundViewModel
 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryIconViewModel
 import com.android.systemui.log.LogBuffer
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.log.dagger.LongPressTouchLog
 import com.android.systemui.plugins.FalsingManager
 import com.android.systemui.res.R
@@ -74,7 +74,7 @@
                 DeviceEntryIconView(
                         context,
                         null,
-                        logger = LongPressHandlingViewLogger(logBuffer, tag = TAG),
+                        logger = TouchHandlingViewLogger(logBuffer, tag = TAG),
                     )
                     .apply {
                         id = R.id.device_entry_icon_view
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/NotificationSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/NotificationSection.kt
index abf7fdc..2b72363 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/NotificationSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/NotificationSection.kt
@@ -23,7 +23,6 @@
 import androidx.compose.animation.fadeOut
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.padding
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
@@ -31,18 +30,16 @@
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.dimensionResource
-import androidx.compose.ui.unit.dp
 import androidx.compose.ui.viewinterop.AndroidView
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.animation.scene.ContentScope
-import com.android.compose.modifiers.thenIf
 import com.android.systemui.common.ui.ConfigurationState
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor
 import com.android.systemui.keyguard.ui.composable.blueprint.rememberBurnIn
 import com.android.systemui.keyguard.ui.composable.modifier.burnInAware
 import com.android.systemui.keyguard.ui.viewmodel.AodBurnInViewModel
 import com.android.systemui.keyguard.ui.viewmodel.BurnInParameters
+import com.android.systemui.keyguard.ui.viewmodel.KeyguardClockViewModel
 import com.android.systemui.keyguard.ui.viewmodel.KeyguardRootViewModel
 import com.android.systemui.lifecycle.rememberViewModel
 import com.android.systemui.notifications.ui.composable.ConstrainedNotificationStack
@@ -89,7 +86,7 @@
     private val nicAodIconViewStore: AlwaysOnDisplayNotificationIconViewStore,
     private val aodPromotedNotificationViewModelFactory: AODPromotedNotificationViewModel.Factory,
     private val systemBarUtilsState: SystemBarUtilsState,
-    private val clockInteractor: KeyguardClockInteractor,
+    private val keyguardClockViewModel: KeyguardClockViewModel,
 ) {
 
     init {
@@ -118,7 +115,7 @@
 
         val isVisible by
             keyguardRootViewModel.isAodPromotedNotifVisible.collectAsStateWithLifecycle()
-        val burnIn = rememberBurnIn(clockInteractor)
+        val burnIn = rememberBurnIn(keyguardClockViewModel)
 
         AnimatedVisibility(
             visible = isVisible,
@@ -141,7 +138,7 @@
                 isVisible.stopAnimating()
             }
         }
-        val burnIn = rememberBurnIn(clockInteractor)
+        val burnIn = rememberBurnIn(keyguardClockViewModel)
         AnimatedVisibility(
             visibleState = transitionState,
             enter = fadeIn(),
@@ -186,7 +183,6 @@
     @Composable
     fun ContentScope.Notifications(
         areNotificationsVisible: Boolean,
-        isShadeLayoutWide: Boolean,
         burnInParams: BurnInParameters?,
         modifier: Modifier = Modifier,
     ) {
@@ -198,16 +194,13 @@
             stackScrollView = stackScrollView.get(),
             viewModel = rememberViewModel("Notifications") { viewModelFactory.create() },
             modifier =
-                modifier
-                    .fillMaxWidth()
-                    .thenIf(isShadeLayoutWide) { Modifier.padding(top = 12.dp) }
-                    .let {
-                        if (burnInParams == null) {
-                            it
-                        } else {
-                            it.burnInAware(viewModel = aodBurnInViewModel, params = burnInParams)
-                        }
-                    },
+                modifier.fillMaxWidth().let {
+                    if (burnInParams == null) {
+                        it
+                    } else {
+                        it.burnInAware(viewModel = aodBurnInViewModel, params = burnInParams)
+                    }
+                },
         )
     }
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt
index 410499a..6293fc2 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt
@@ -37,7 +37,6 @@
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.animation.scene.rememberMutableSceneTransitionLayoutState
 import com.android.compose.modifiers.thenIf
-import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor
 import com.android.systemui.keyguard.ui.composable.blueprint.ClockScenes.largeClockScene
 import com.android.systemui.keyguard.ui.composable.blueprint.ClockScenes.smallClockScene
 import com.android.systemui.keyguard.ui.composable.blueprint.ClockScenes.splitShadeLargeClockScene
@@ -56,7 +55,7 @@
     private val mediaCarouselSection: MediaCarouselSection,
     private val clockSection: DefaultClockSection,
     private val weatherClockSection: WeatherClockSection,
-    private val clockInteractor: KeyguardClockInteractor,
+    private val keyguardClockViewModel: KeyguardClockViewModel,
 ) {
     @Composable
     fun ContentScope.DefaultClockLayout(
@@ -138,7 +137,7 @@
         smartSpacePaddingTop: (Resources) -> Int,
         modifier: Modifier = Modifier,
     ) {
-        val burnIn = rememberBurnIn(clockInteractor)
+        val burnIn = rememberBurnIn(keyguardClockViewModel)
 
         Column(modifier = modifier) {
             with(clockSection) {
@@ -163,7 +162,7 @@
         smartSpacePaddingTop: (Resources) -> Int,
         shouldOffSetClockToOneHalf: Boolean = false,
     ) {
-        val burnIn = rememberBurnIn(clockInteractor)
+        val burnIn = rememberBurnIn(keyguardClockViewModel)
         val isLargeClockVisible by clockViewModel.isLargeClockVisible.collectAsStateWithLifecycle()
 
         LaunchedEffect(isLargeClockVisible) {
@@ -204,7 +203,7 @@
         smartSpacePaddingTop: (Resources) -> Int,
         modifier: Modifier = Modifier,
     ) {
-        val burnIn = rememberBurnIn(clockInteractor)
+        val burnIn = rememberBurnIn(keyguardClockViewModel)
         val isLargeClockVisible by clockViewModel.isLargeClockVisible.collectAsStateWithLifecycle()
         val currentClockState = clockViewModel.currentClock.collectAsStateWithLifecycle()
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaCarousel.kt b/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaCarousel.kt
index f5de7dc..89f82a9 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaCarousel.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaCarousel.kt
@@ -119,6 +119,8 @@
                 },
                 update = {
                     MediaCarouselStateLoader.loadCarouselState(carouselController, carouselState())
+                    carouselController.mediaCarouselScrollHandler.showsSettingsButton =
+                        !mediaHost.showsOnlyActiveMedia
                     it.setView(carouselController.mediaFrame)
                 },
                 onRelease = { it.removeAllViews() },
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/Notifications.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/Notifications.kt
index d7d4e17..09b8d17 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/Notifications.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/Notifications.kt
@@ -175,7 +175,7 @@
     viewModel: NotificationsPlaceholderViewModel,
 ) {
 
-    val isHeadsUp by viewModel.isHeadsUpOrAnimatingAway.collectAsStateWithLifecycle(false)
+    val isSnoozable by viewModel.isHeadsUpOrAnimatingAway.collectAsStateWithLifecycle(false)
 
     var scrollOffset by remember { mutableFloatStateOf(0f) }
     val headsUpInset = with(LocalDensity.current) { headsUpTopInset().toPx() }
@@ -192,7 +192,7 @@
         )
     }
 
-    val nestedScrollConnection =
+    val snoozeScrollConnection =
         object : NestedScrollConnection {
             override suspend fun onPreFling(available: Velocity): Velocity {
                 if (
@@ -206,7 +206,7 @@
             }
         }
 
-    LaunchedEffect(isHeadsUp) { scrollOffset = 0f }
+    LaunchedEffect(isSnoozable) { scrollOffset = 0f }
 
     LaunchedEffect(scrollableState.isScrollInProgress) {
         if (!scrollableState.isScrollInProgress && scrollOffset <= minScrollOffset) {
@@ -230,10 +230,8 @@
                             ),
                     )
                 }
-                .thenIf(isHeadsUp) {
-                    Modifier.nestedScroll(nestedScrollConnection)
-                        .scrollable(orientation = Orientation.Vertical, state = scrollableState)
-                },
+                .thenIf(isSnoozable) { Modifier.nestedScroll(snoozeScrollConnection) }
+                .scrollable(orientation = Orientation.Vertical, state = scrollableState),
     )
 }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt
index 7c50d6f..64f3cb1 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt
@@ -30,9 +30,9 @@
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor
 import com.android.systemui.keyguard.ui.composable.blueprint.rememberBurnIn
 import com.android.systemui.keyguard.ui.composable.section.DefaultClockSection
+import com.android.systemui.keyguard.ui.viewmodel.KeyguardClockViewModel
 import com.android.systemui.lifecycle.rememberViewModel
 import com.android.systemui.notifications.ui.viewmodel.NotificationsShadeOverlayActionsViewModel
 import com.android.systemui.notifications.ui.viewmodel.NotificationsShadeOverlayContentViewModel
@@ -57,7 +57,7 @@
     private val shadeSession: SaveableSession,
     private val stackScrollView: Lazy<NotificationScrollView>,
     private val clockSection: DefaultClockSection,
-    private val clockInteractor: KeyguardClockInteractor,
+    private val keyguardClockViewModel: KeyguardClockViewModel,
 ) : Overlay {
     override val key = Overlays.NotificationsShade
 
@@ -86,7 +86,7 @@
 
         OverlayShade(
             panelElement = NotificationsShade.Elements.Panel,
-            panelAlignment = Alignment.TopStart,
+            alignmentOnWideScreens = Alignment.TopStart,
             modifier = modifier,
             onScrimClicked = viewModel::onScrimClicked,
             header = {
@@ -105,7 +105,7 @@
             Box {
                 Column {
                     if (viewModel.showClock) {
-                        val burnIn = rememberBurnIn(clockInteractor)
+                        val burnIn = rememberBurnIn(keyguardClockViewModel)
 
                         with(clockSection) {
                             SmallClock(
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt
index 62a8cc5..061fdd9 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt
@@ -84,7 +84,9 @@
 import com.android.systemui.media.controls.ui.composable.MediaCarousel
 import com.android.systemui.media.controls.ui.composable.isLandscape
 import com.android.systemui.media.controls.ui.controller.MediaCarouselController
+import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
 import com.android.systemui.media.controls.ui.view.MediaHost
+import com.android.systemui.media.controls.ui.view.MediaHostState.Companion.EXPANDED
 import com.android.systemui.media.dagger.MediaModule
 import com.android.systemui.notifications.ui.composable.HeadsUpNotificationSpace
 import com.android.systemui.notifications.ui.composable.NotificationScrollingStack
@@ -165,6 +167,12 @@
             shadeSession = shadeSession,
         )
     }
+
+    init {
+        mediaHost.expansion = EXPANDED
+        mediaHost.showsOnlyActiveMedia = false
+        mediaHost.init(MediaHierarchyManager.LOCATION_QS)
+    }
 }
 
 @Composable
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt
index 818d8e2..afdb3cb 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.qs.ui.composable
 
 import androidx.compose.animation.AnimatedContent
+import androidx.compose.animation.core.animateFloatAsState
 import androidx.compose.animation.core.tween
 import androidx.compose.animation.fadeIn
 import androidx.compose.animation.fadeOut
@@ -35,7 +36,7 @@
 import androidx.compose.runtime.getValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.graphicsLayer
 import androidx.compose.ui.layout.boundsInWindow
 import androidx.compose.ui.layout.layoutId
 import androidx.compose.ui.layout.onPlaced
@@ -105,16 +106,19 @@
             }
         val quickSettingsContainerViewModel =
             rememberViewModel("QuickSettingsShadeOverlayContainer") {
-                // TODO(b/393054014): Add support for brightness mirroring.
-                quickSettingsContainerViewModelFactory.create(supportsBrightnessMirroring = false)
+                quickSettingsContainerViewModelFactory.create(supportsBrightnessMirroring = true)
             }
         val panelCornerRadius =
             with(LocalDensity.current) { OverlayShade.Dimensions.PanelCornerRadius.toPx().toInt() }
+        val showBrightnessMirror =
+            quickSettingsContainerViewModel.brightnessSliderViewModel.showMirror
+        val contentAlphaFromBrightnessMirror by
+            animateFloatAsState(if (showBrightnessMirror) 0f else 1f)
 
         // Set the bounds to null when the QuickSettings overlay disappears.
         DisposableEffect(Unit) { onDispose { contentViewModel.onPanelShapeChanged(null) } }
 
-        Box(modifier = modifier) {
+        Box(modifier = modifier.graphicsLayer { alpha = contentAlphaFromBrightnessMirror }) {
             SnoozeableHeadsUpNotificationSpace(
                 stackScrollView = notificationStackScrollView.get(),
                 viewModel =
@@ -124,7 +128,7 @@
             )
             OverlayShade(
                 panelElement = QuickSettingsShade.Elements.Panel,
-                panelAlignment = Alignment.TopEnd,
+                alignmentOnWideScreens = Alignment.TopEnd,
                 onScrimClicked = contentViewModel::onScrimClicked,
                 header = {
                     OverlayShadeHeader(
@@ -252,7 +256,7 @@
         ) {
             BrightnessSliderContainer(
                 viewModel = viewModel.brightnessSliderViewModel,
-                containerColor = Color.Transparent,
+                containerColor = OverlayShade.Colors.PanelBackground,
                 modifier =
                     Modifier.fillMaxWidth()
                         .height(QuickSettingsShade.Dimensions.BrightnessSliderHeight),
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainer.kt
index da4e582..0c502e6 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainer.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainer.kt
@@ -46,6 +46,8 @@
 import com.android.compose.animation.scene.observableTransitionState
 import com.android.compose.animation.scene.rememberMutableSceneTransitionLayoutState
 import com.android.compose.gesture.effect.rememberOffsetOverscrollEffectFactory
+import com.android.systemui.keyguard.ui.composable.blueprint.rememberBurnIn
+import com.android.systemui.keyguard.ui.composable.modifier.burnInAware
 import com.android.systemui.lifecycle.rememberActivated
 import com.android.systemui.qs.ui.adapter.QSSceneAdapter
 import com.android.systemui.qs.ui.composable.QuickSettingsTheme
@@ -107,6 +109,13 @@
         rememberMutableSceneTransitionLayoutState(
             initialScene = initialSceneKey,
             canChangeScene = { toScene -> viewModel.canChangeScene(toScene) },
+            canShowOverlay = { overlay -> viewModel.canShowOrReplaceOverlay(overlay) },
+            canReplaceOverlay = { beingReplaced, newlyShown ->
+                viewModel.canShowOrReplaceOverlay(
+                    newlyShown = newlyShown,
+                    beingReplaced = beingReplaced,
+                )
+            },
             transitions = sceneTransitions,
             onTransitionStart = { transition ->
                 sceneJankMonitor.onTransitionStart(
@@ -202,7 +211,7 @@
         SceneTransitionLayout(
             state = state,
             modifier = modifier.fillMaxSize(),
-            swipeSourceDetector = viewModel.edgeDetector,
+            swipeSourceDetector = viewModel.swipeSourceDetector,
         ) {
             sceneByKey.forEach { (sceneKey, scene) ->
                 scene(
@@ -239,7 +248,12 @@
         BottomRightCornerRibbon(
             content = { Text(text = "flexi\uD83E\uDD43", color = Color.White) },
             colorSaturation = { viewModel.ribbonColorSaturation },
-            modifier = Modifier.align(Alignment.BottomEnd),
+            modifier =
+                Modifier.align(Alignment.BottomEnd)
+                    .burnInAware(
+                        viewModel = viewModel.burnIn,
+                        params = rememberBurnIn(viewModel.clock).parameters,
+                    ),
         )
     }
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneTransitionLayoutDataSource.kt b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneTransitionLayoutDataSource.kt
index 1423d4a..8aa5bc7 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneTransitionLayoutDataSource.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneTransitionLayoutDataSource.kt
@@ -59,10 +59,7 @@
                 initialValue = emptySet(),
             )
 
-    override fun changeScene(
-        toScene: SceneKey,
-        transitionKey: TransitionKey?,
-    ) {
+    override fun changeScene(toScene: SceneKey, transitionKey: TransitionKey?) {
         state.setTargetScene(
             targetScene = toScene,
             transitionKey = transitionKey,
@@ -71,9 +68,7 @@
     }
 
     override fun snapToScene(toScene: SceneKey) {
-        state.snapToScene(
-            scene = toScene,
-        )
+        state.snapTo(scene = toScene)
     }
 
     override fun showOverlay(overlay: OverlayKey, transitionKey: TransitionKey?) {
@@ -100,4 +95,12 @@
             transitionKey = transitionKey,
         )
     }
+
+    override fun instantlyShowOverlay(overlay: OverlayKey) {
+        state.snapTo(overlays = state.currentOverlays + overlay)
+    }
+
+    override fun instantlyHideOverlay(overlay: OverlayKey) {
+        state.snapTo(overlays = state.currentOverlays - overlay)
+    }
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt
index b53cc89..cdb1e2e 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt
@@ -59,7 +59,7 @@
 @Composable
 fun ContentScope.OverlayShade(
     panelElement: ElementKey,
-    panelAlignment: Alignment,
+    alignmentOnWideScreens: Alignment,
     onScrimClicked: () -> Unit,
     modifier: Modifier = Modifier,
     header: @Composable () -> Unit,
@@ -71,7 +71,7 @@
 
         Box(
             modifier = Modifier.fillMaxSize().panelContainerPadding(isFullWidth),
-            contentAlignment = panelAlignment,
+            contentAlignment = if (isFullWidth) Alignment.TopCenter else alignmentOnWideScreens,
         ) {
             Panel(
                 modifier =
@@ -107,7 +107,10 @@
     header: (@Composable () -> Unit)?,
     content: @Composable () -> Unit,
 ) {
-    Box(modifier = modifier.clip(OverlayShade.Shapes.RoundedCornerPanel)) {
+    Box(
+        modifier =
+            modifier.clip(OverlayShade.Shapes.RoundedCornerPanel).disableSwipesWhenScrolling()
+    ) {
         Spacer(
             modifier =
                 Modifier.element(OverlayShade.Elements.PanelBackground)
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt
index 4e10ff6..b11c83c 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt
@@ -67,6 +67,7 @@
 import com.android.systemui.common.shared.model.Icon
 import com.android.systemui.common.ui.compose.Icon
 import com.android.systemui.compose.modifiers.sysuiResTag
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel
 import com.android.systemui.lifecycle.rememberViewModel
 import com.android.systemui.res.R
@@ -104,7 +105,13 @@
     val value by valueState(state)
     val interactionSource = remember { MutableInteractionSource() }
     val hapticsViewModel: SliderHapticsViewModel? =
-        setUpHapticsViewModel(value, state.valueRange, interactionSource, hapticsViewModelFactory)
+        setUpHapticsViewModel(
+            value,
+            state.valueRange,
+            state.hapticFilter,
+            interactionSource,
+            hapticsViewModelFactory,
+        )
 
     Column(modifier = modifier.animateContentSize(), verticalArrangement = Arrangement.Top) {
         Row(
@@ -220,7 +227,13 @@
     val value by valueState(state)
     val interactionSource = remember { MutableInteractionSource() }
     val hapticsViewModel: SliderHapticsViewModel? =
-        setUpHapticsViewModel(value, state.valueRange, interactionSource, hapticsViewModelFactory)
+        setUpHapticsViewModel(
+            value,
+            state.valueRange,
+            state.hapticFilter,
+            interactionSource,
+            hapticsViewModelFactory,
+        )
 
     PlatformSlider(
         modifier =
@@ -338,6 +351,7 @@
 fun setUpHapticsViewModel(
     value: Float,
     valueRange: ClosedFloatingPointRange<Float>,
+    hapticFilter: SliderHapticFeedbackFilter,
     interactionSource: MutableInteractionSource,
     hapticsViewModelFactory: SliderHapticsViewModel.Factory?,
 ): SliderHapticsViewModel? {
@@ -347,7 +361,10 @@
                     interactionSource,
                     valueRange,
                     Orientation.Horizontal,
-                    VolumeHapticsConfigsProvider.sliderHapticFeedbackConfig(valueRange),
+                    VolumeHapticsConfigsProvider.sliderHapticFeedbackConfig(
+                        valueRange,
+                        hapticFilter,
+                    ),
                     VolumeHapticsConfigsProvider.seekableSliderTrackerConfig,
                 )
             }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VerticalVolumePanelContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VerticalVolumePanelContent.kt
index bc30132..6349c14 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VerticalVolumePanelContent.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VerticalVolumePanelContent.kt
@@ -37,17 +37,18 @@
     layout: ComponentsLayout,
     modifier: Modifier = Modifier,
 ) {
-    Column(modifier = modifier, verticalArrangement = Arrangement.spacedBy(20.dp)) {
+    Column(
+        modifier = modifier.verticalScroll(rememberScrollState()),
+        verticalArrangement = Arrangement.spacedBy(20.dp),
+    ) {
         for (component in layout.headerComponents) {
             AnimatedVisibility(component.isVisible) {
                 with(component.component as ComposeVolumePanelUiComponent) { Content(Modifier) }
             }
         }
-        Column(Modifier.verticalScroll(rememberScrollState())) {
-            for (component in layout.contentComponents) {
-                AnimatedVisibility(component.isVisible) {
-                    with(component.component as ComposeVolumePanelUiComponent) { Content(Modifier) }
-                }
+        for (component in layout.contentComponents) {
+            AnimatedVisibility(component.isVisible) {
+                with(component.component as ComposeVolumePanelUiComponent) { Content(Modifier) }
             }
         }
 
diff --git a/packages/SystemUI/compose/scene/Android.bp b/packages/SystemUI/compose/scene/Android.bp
index 090e9cc..42dd85a3 100644
--- a/packages/SystemUI/compose/scene/Android.bp
+++ b/packages/SystemUI/compose/scene/Android.bp
@@ -45,6 +45,9 @@
         "mechanics",
     ],
 
-    kotlincflags: ["-Xjvm-default=all"],
+    kotlincflags: [
+        "-Xjvm-default=all",
+        "-P plugin:androidx.compose.compiler.plugins.kotlin:sourceInformation=true",
+    ],
     use_resource_processor: true,
 }
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
index 907b5bc..05958a2 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
@@ -169,7 +169,7 @@
             Modifier.maybeElevateInContent(layoutImpl, content, key, currentTransitionStates)
         }
         .then(ElementModifier(layoutImpl, currentTransitionStates, content, key))
-        .testTag(key.testTag)
+        .thenIf(layoutImpl.implicitTestTags) { Modifier.testTag(key.testTag) }
 }
 
 /**
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt
index 72bb82b..d47210c 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt
@@ -65,6 +65,8 @@
     swipeSourceDetector: SwipeSourceDetector = DefaultEdgeDetector,
     swipeDetector: SwipeDetector = DefaultSwipeDetector,
     @FloatRange(from = 0.0, to = 0.5) transitionInterceptionThreshold: Float = 0.05f,
+    // TODO(b/240432457) Remove this once test utils can access the internal STLForTesting().
+    implicitTestTags: Boolean = false,
     builder: SceneTransitionLayoutScope<ContentScope>.() -> Unit,
 ) {
     SceneTransitionLayoutForTesting(
@@ -73,6 +75,7 @@
         swipeSourceDetector,
         swipeDetector,
         transitionInterceptionThreshold,
+        implicitTestTags = implicitTestTags,
         onLayoutImpl = null,
         builder = builder,
     )
@@ -725,10 +728,8 @@
 }
 
 /**
- * An internal version of [SceneTransitionLayout] to be used for tests.
- *
- * Important: You should use this only in tests and if you need to access the underlying
- * [SceneTransitionLayoutImpl]. In other cases, you should use [SceneTransitionLayout].
+ * An internal version of [SceneTransitionLayout] to be used for tests, that provides access to the
+ * internal [SceneTransitionLayoutImpl] and implicitly tags all scenes and elements.
  */
 @Composable
 internal fun SceneTransitionLayoutForTesting(
@@ -741,6 +742,7 @@
     sharedElementMap: MutableMap<ElementKey, Element> = remember { mutableMapOf() },
     ancestors: List<Ancestor> = remember { emptyList() },
     lookaheadScope: LookaheadScope? = null,
+    implicitTestTags: Boolean = true,
     builder: SceneTransitionLayoutScope<InternalContentScope>.() -> Unit,
 ) {
     val density = LocalDensity.current
@@ -765,6 +767,7 @@
                 directionChangeSlop = directionChangeSlop,
                 defaultEffectFactory = defaultEffectFactory,
                 decayAnimationSpec = decayAnimationSpec,
+                implicitTestTags = implicitTestTags,
             )
             .also { onLayoutImpl?.invoke(it) }
     }
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt
index 53996d2..e3c4eb0 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt
@@ -122,6 +122,9 @@
      * This is used to enable transformations and shared elements across NestedSTLs.
      */
     internal val ancestors: List<Ancestor> = emptyList(),
+
+    /** Whether elements and scene should be tagged using `Modifier.testTag`. */
+    internal val implicitTestTags: Boolean = false,
     lookaheadScope: LookaheadScope? = null,
     defaultEffectFactory: OverscrollFactory,
 ) {
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt
index 5b275a5..56e8c45 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt
@@ -138,10 +138,13 @@
         transitionKey: TransitionKey? = null,
     ): Pair<TransitionState.Transition, Job>?
 
-    /** Immediately snap to the given [scene]. */
-    fun snapToScene(
-        scene: SceneKey,
-        currentOverlays: Set<OverlayKey> = transitionState.currentOverlays,
+    /**
+     * Immediately snap to the given [scene] and/or [overlays], instantly interrupting all ongoing
+     * transitions and settling to a [TransitionState.Idle] state.
+     */
+    fun snapTo(
+        scene: SceneKey = transitionState.currentScene,
+        overlays: Set<OverlayKey> = transitionState.currentOverlays,
     )
 
     /**
@@ -554,7 +557,7 @@
         this.transitionStates = listOf(idle)
     }
 
-    override fun snapToScene(scene: SceneKey, currentOverlays: Set<OverlayKey>) {
+    override fun snapTo(scene: SceneKey, overlays: Set<OverlayKey>) {
         checkThread()
 
         // Force finish all transitions.
@@ -562,7 +565,7 @@
 
         check(transitionStates.size == 1)
         check(currentTransitions.isEmpty())
-        transitionStates = listOf(TransitionState.Idle(scene, currentOverlays))
+        transitionStates = listOf(TransitionState.Idle(scene, overlays))
     }
 
     override fun showOverlay(
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt
index 95d6440..64cfe38 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt
@@ -171,7 +171,7 @@
                 .thenIf(layoutImpl.state.isElevationPossible(content = key, element = null)) {
                     Modifier.container(containerState)
                 }
-                .testTag(key.testTag)
+                .thenIf(layoutImpl.implicitTestTags) { Modifier.testTag(key.testTag) }
         ) {
             CompositionLocalProvider(LocalOverscrollFactory provides lastFactory) {
                 scope.content()
@@ -290,6 +290,7 @@
             sharedElementMap = layoutImpl.elements,
             ancestors = ancestors,
             lookaheadScope = layoutImpl.lookaheadScope,
+            implicitTestTags = layoutImpl.implicitTestTags,
         )
     }
 }
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/testing/ElementStateAccess.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/testing/ElementStateAccess.kt
index cade9bf..ad2ddfe2 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/testing/ElementStateAccess.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/testing/ElementStateAccess.kt
@@ -16,9 +16,12 @@
 
 package com.android.compose.animation.scene.testing
 
+import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.semantics.SemanticsNode
+import androidx.compose.ui.unit.IntSize
 import com.android.compose.animation.scene.Element
 import com.android.compose.animation.scene.Element.Companion.AlphaUnspecified
+import com.android.compose.animation.scene.Element.Companion.SizeUnspecified
 import com.android.compose.animation.scene.ElementModifier
 import com.android.compose.animation.scene.Scale
 
@@ -28,6 +31,12 @@
 val SemanticsNode.lastScaleForTesting: Scale?
     get() = elementState.lastScale.takeIf { it != Scale.Unspecified }
 
+val SemanticsNode.lastOffsetForTesting: Offset?
+    get() = elementState.lastOffset.takeIf { it != Offset.Unspecified }
+
+val SemanticsNode.lastSizeForTesting: IntSize?
+    get() = elementState.lastSize.takeIf { it != SizeUnspecified }
+
 private val SemanticsNode.elementState: Element.State
     get() {
         val elementModifier =
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
index f625add..8fce708 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
@@ -227,7 +227,7 @@
             to = SceneB,
             transitionLayout = { state ->
                 coroutineScope = rememberCoroutineScope()
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) {
                         Box(Modifier.size(layoutSize)) {
                             // Transformed element
@@ -247,7 +247,7 @@
                 rule.runOnUiThread {
                     // We snap to scene B so that the transition A => B is removed from the list of
                     // transitions.
-                    state.snapToScene(SceneB)
+                    state.snapTo(SceneB)
                     state.setTargetScene(SceneC, coroutineScope)
                 }
             }
@@ -633,7 +633,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) { Box(Modifier.element(TestElements.Foo).size(20.dp)) }
                     scene(SceneB) {}
                 }
@@ -674,7 +674,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(state, Modifier.size(layoutWidth, layoutHeight)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutWidth, layoutHeight)) {
                     scene(key = SceneA, userActions = mapOf(Swipe.Down to SceneB)) {
                         Spacer(Modifier.fillMaxSize())
                     }
@@ -734,7 +734,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(state, Modifier.size(layoutWidth, layoutHeight)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutWidth, layoutHeight)) {
                     scene(key = SceneA, userActions = mapOf(Swipe.Down to SceneB)) {
                         Spacer(
                             Modifier.overscroll(verticalOverscrollEffect)
@@ -834,7 +834,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(state, Modifier.size(layoutWidth, layoutHeight)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutWidth, layoutHeight)) {
                     scene(key = SceneA, userActions = mapOf(Swipe.Down to SceneB)) {
                         Spacer(Modifier.fillMaxSize())
                     }
@@ -893,7 +893,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(
+                SceneTransitionLayoutForTesting(
                     state = state,
                     modifier = Modifier.size(layoutWidth, layoutHeight),
                 ) {
@@ -970,7 +970,7 @@
 
         rule.setContent {
             touchSlop = LocalViewConfiguration.current.touchSlop
-            SceneTransitionLayout(
+            SceneTransitionLayoutForTesting(
                 state = state,
                 modifier = Modifier.size(layoutWidth, layoutHeight),
             ) {
@@ -1057,7 +1057,7 @@
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
 
-            SceneTransitionLayout(state) {
+            SceneTransitionLayoutForTesting(state) {
                 scene(SceneA) {
                     Box(Modifier.size(layoutSize)) {
                         Box(
@@ -1374,7 +1374,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state, Modifier.size(layoutSize)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutSize)) {
                     scene(SceneA) {
                         Box(Modifier.fillMaxSize()) { Foo(Modifier.align(Alignment.TopStart)) }
                     }
@@ -1742,7 +1742,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state, Modifier.size(200.dp)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                     scene(SceneA) { Foo(offset = 0.dp) }
                     scene(SceneB) { Foo(offset = 20.dp) }
                     scene(SceneC) { Foo(offset = 40.dp) }
@@ -1828,7 +1828,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneB) { Foo(Modifier.offset(40.dp, 60.dp)) }
 
                     // Define A after B so that Foo is placed in A during A <=> B.
@@ -1887,7 +1887,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) { Foo() }
                     scene(SceneB) { Foo(Modifier.offset(40.dp, 60.dp)) }
                 }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt
index 04c762f..98ecb64 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt
@@ -90,7 +90,7 @@
         lateinit var coroutineScope: CoroutineScope
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { Foo() } }
                 overlay(OverlayA) { Foo() }
             }
@@ -132,7 +132,7 @@
         lateinit var coroutineScope: CoroutineScope
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { Foo() } }
                 overlay(OverlayA) { Foo() }
                 overlay(OverlayB) { Foo() }
@@ -230,7 +230,7 @@
         lateinit var coroutineScope: CoroutineScope
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { MovableBar() } }
                 overlay(OverlayA) { MovableBar() }
                 overlay(OverlayB) { MovableBar() }
@@ -302,7 +302,7 @@
             }
         var alignment by mutableStateOf(Alignment.Center)
         rule.setContent {
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { Foo() } }
                 overlay(OverlayA, alignment = alignment) { Foo() }
             }
@@ -761,7 +761,7 @@
         val movableElementChildTag = "movableElementChildTag"
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) {
                         MovableElement(key, Modifier) {
                             content { Box(Modifier.testTag(movableElementChildTag).size(100.dp)) }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
index 2bf2358..366b11d 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
@@ -250,7 +250,7 @@
             }
 
         rule.setContent {
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) }
                 overlay(OverlayA) { Box(Modifier.fillMaxSize()) }
                 overlay(OverlayB) { Box(Modifier.fillMaxSize()) }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutStateTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutStateTest.kt
index 26f3c25..eea6595 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutStateTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutStateTest.kt
@@ -255,7 +255,7 @@
         assertThat(transition).hasCurrentScene(SceneB)
 
         // Snap to C.
-        state.snapToScene(SceneC)
+        state.snapTo(SceneC)
         assertThat(state.transitionState).isIdle()
         assertThat(state.transitionState).hasCurrentScene(SceneC)
     }
@@ -272,7 +272,7 @@
         assertThat(transition).hasToScene(SceneB)
 
         // Snap to C.
-        state.snapToScene(SceneC)
+        state.snapTo(SceneC)
         assertThat(state.transitionState).isIdle()
         assertThat(state.transitionState).hasCurrentScene(SceneC)
     }
@@ -375,7 +375,7 @@
         val job = transition.coroutineScope.launch { awaitCancellation() }
 
         // Force snap state to SceneB to force finish all current transitions.
-        state.snapToScene(SceneB)
+        state.snapTo(SceneB)
         assertThat(state.transitionState).isIdle()
         assertThat(job.isCancelled).isTrue()
     }
@@ -411,7 +411,7 @@
         val state = MutableSceneTransitionLayoutStateForTests(SceneA)
         state.startTransitionImmediately(this, transition(SceneA, SceneB))
         state.startTransitionImmediately(this, transition(SceneB, SceneC))
-        state.snapToScene(SceneC)
+        state.snapTo(SceneC)
 
         assertThat(state.transitionState).isIdle()
         assertThat(state.transitionState).hasCurrentScene(SceneC)
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt
index 3c490ae..5cbc98f 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt
@@ -97,7 +97,7 @@
             MutableSceneTransitionLayoutStateForTests(SceneA, EmptyTestTransitions)
         }
 
-        SceneTransitionLayout(state = layoutState, modifier = Modifier.size(LayoutSize)) {
+        SceneTransitionLayoutForTesting(state = layoutState, modifier = Modifier.size(LayoutSize)) {
             scene(SceneA, userActions = mapOf(Back to SceneB)) {
                 Box(Modifier.fillMaxSize()) {
                     SharedFoo(size = 50.dp, childOffset = 0.dp, Modifier.align(Alignment.TopEnd))
@@ -457,9 +457,9 @@
         }
 
         // Snap to B then C to compose these scenes at least once.
-        rule.runOnUiThread { state.snapToScene(SceneB) }
+        rule.runOnUiThread { state.snapTo(SceneB) }
         rule.waitForIdle()
-        rule.runOnUiThread { state.snapToScene(SceneC) }
+        rule.runOnUiThread { state.snapTo(SceneC) }
         rule.waitForIdle()
 
         assertThat(keyInA).isEqualTo(SceneA)
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt
index 751b314..11abbbe 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt
@@ -763,7 +763,7 @@
         var touchSlop = 0f
         rule.setContent {
             touchSlop = LocalViewConfiguration.current.touchSlop
-            SceneTransitionLayout(state, Modifier.size(layoutSize)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(layoutSize)) {
                 scene(SceneA, userActions = mapOf(Swipe.Start to SceneB, Swipe.End to SceneC)) {
                     Box(Modifier.fillMaxSize())
                 }
@@ -837,7 +837,7 @@
         rule.setContent {
             touchSlop = LocalViewConfiguration.current.touchSlop
             CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
-                SceneTransitionLayout(state, Modifier.size(layoutSize)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutSize)) {
                     scene(SceneA, userActions = mapOf(Swipe.Start to SceneB, Swipe.End to SceneC)) {
                         Box(Modifier.fillMaxSize())
                     }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt
index bb511bc..8b56892 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt
@@ -40,7 +40,7 @@
 import com.android.compose.animation.scene.MutableSceneTransitionLayoutStateForTests
 import com.android.compose.animation.scene.Scale
 import com.android.compose.animation.scene.SceneKey
-import com.android.compose.animation.scene.SceneTransitionLayout
+import com.android.compose.animation.scene.SceneTransitionLayoutForTesting
 import com.android.compose.animation.scene.SceneTransitions
 import com.android.compose.animation.scene.TestScenes
 import com.android.compose.animation.scene.testNestedTransition
@@ -114,7 +114,7 @@
         @Composable
         (states: List<MutableSceneTransitionLayoutState>) -> Unit =
         { states ->
-            SceneTransitionLayout(states[0]) {
+            SceneTransitionLayoutForTesting(states[0]) {
                 scene(TestScenes.SceneA, content = { TestElement(elementVariant0A) })
                 scene(
                     TestScenes.SceneB,
diff --git a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/DataPointTypes.kt b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/DataPointTypes.kt
new file mode 100644
index 0000000..7be7fa1
--- /dev/null
+++ b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/DataPointTypes.kt
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.compose.animation.scene
+
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.geometry.isFinite
+import androidx.compose.ui.geometry.isUnspecified
+import org.json.JSONObject
+import platform.test.motion.golden.DataPointType
+import platform.test.motion.golden.UnknownTypeException
+
+fun Scale.asDataPoint() = DataPointTypes.scale.makeDataPoint(this)
+
+object DataPointTypes {
+    val scale: DataPointType<Scale> =
+        DataPointType(
+            "scale",
+            jsonToValue = {
+                when (it) {
+                    "unspecified" -> Scale.Unspecified
+                    "default" -> Scale.Default
+                    "zero" -> Scale.Zero
+                    is JSONObject -> {
+                        val pivot = it.get("pivot")
+                        Scale(
+                            scaleX = it.getDouble("x").toFloat(),
+                            scaleY = it.getDouble("y").toFloat(),
+                            pivot =
+                                when (pivot) {
+                                    "unspecified" -> Offset.Unspecified
+                                    "infinite" -> Offset.Infinite
+                                    is JSONObject ->
+                                        Offset(
+                                            pivot.getDouble("x").toFloat(),
+                                            pivot.getDouble("y").toFloat(),
+                                        )
+                                    else -> throw UnknownTypeException()
+                                },
+                        )
+                    }
+                    else -> throw UnknownTypeException()
+                }
+            },
+            valueToJson = {
+                when (it) {
+                    Scale.Unspecified -> "unspecified"
+                    Scale.Default -> "default"
+                    Scale.Zero -> "zero"
+                    else -> {
+                        JSONObject().apply {
+                            put("x", it.scaleX)
+                            put("y", it.scaleY)
+                            put(
+                                "pivot",
+                                when {
+                                    it.pivot.isUnspecified -> "unspecified"
+                                    !it.pivot.isFinite -> "infinite"
+                                    else ->
+                                        JSONObject().apply {
+                                            put("x", it.pivot.x)
+                                            put("y", it.pivot.y)
+                                        }
+                                },
+                            )
+                        }
+                    }
+                }
+            },
+        )
+}
diff --git a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/FeatureCaptures.kt b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/FeatureCaptures.kt
new file mode 100644
index 0000000..8658bbf
--- /dev/null
+++ b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/FeatureCaptures.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.compose.animation.scene
+
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.semantics.SemanticsNode
+import androidx.compose.ui.unit.IntSize
+import com.android.compose.animation.scene.DataPointTypes.scale
+import com.android.compose.animation.scene.testing.lastAlphaForTesting
+import com.android.compose.animation.scene.testing.lastOffsetForTesting
+import com.android.compose.animation.scene.testing.lastScaleForTesting
+import com.android.compose.animation.scene.testing.lastSizeForTesting
+import platform.test.motion.compose.DataPointTypes.intSize
+import platform.test.motion.compose.DataPointTypes.offset
+import platform.test.motion.golden.DataPoint
+import platform.test.motion.golden.DataPointTypes
+import platform.test.motion.golden.FeatureCapture
+
+/**
+ * [FeatureCapture] implementations to record animated state of [SceneTransitionLayout] [Element].
+ */
+object FeatureCaptures {
+
+    val elementAlpha =
+        FeatureCapture<SemanticsNode, Float>("alpha") {
+            DataPoint.of(it.lastAlphaForTesting, DataPointTypes.float)
+        }
+
+    val elementScale =
+        FeatureCapture<SemanticsNode, Scale>("scale") {
+            DataPoint.of(it.lastScaleForTesting, scale)
+        }
+
+    val elementOffset =
+        FeatureCapture<SemanticsNode, Offset>("offset") {
+            DataPoint.of(it.lastOffsetForTesting, offset)
+        }
+
+    val elementSize =
+        FeatureCapture<SemanticsNode, IntSize>("size") {
+            DataPoint.of(it.lastSizeForTesting, intSize)
+        }
+}
diff --git a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt
index 6d47bab..e56d1be 100644
--- a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt
+++ b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt
@@ -30,5 +30,7 @@
     content: @Composable ContentScope.() -> Unit,
 ) {
     val state = rememberMutableSceneTransitionLayoutState(currentScene)
-    SceneTransitionLayout(state, modifier) { scene(currentScene, content = content) }
+    SceneTransitionLayout(state, modifier, implicitTestTags = true) {
+        scene(currentScene, content = content)
+    }
 }
diff --git a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt
index f94a7ed..a362a37 100644
--- a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt
+++ b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt
@@ -137,7 +137,7 @@
         },
         changeState = changeState,
         transitionLayout = { state ->
-            SceneTransitionLayout(state, layoutModifier) {
+            SceneTransitionLayout(state, layoutModifier, implicitTestTags = true) {
                 scene(fromScene, content = fromSceneContent)
                 scene(toScene, content = toSceneContent)
             }
@@ -163,7 +163,7 @@
             )
         },
         transitionLayout = { state ->
-            SceneTransitionLayout(state) {
+            SceneTransitionLayout(state, implicitTestTags = true) {
                 scene(fromScene) { fromSceneContent() }
                 overlay(overlay) { overlayContent() }
             }
@@ -191,7 +191,7 @@
             )
         },
         transitionLayout = { state ->
-            SceneTransitionLayout(state) {
+            SceneTransitionLayout(state, implicitTestTags = true) {
                 scene(toScene) { toSceneContent() }
                 overlay(overlay) { overlayContent() }
             }
@@ -223,7 +223,7 @@
             )
         },
         transitionLayout = { state ->
-            SceneTransitionLayout(state) {
+            SceneTransitionLayout(state, implicitTestTags = true) {
                 scene(currentScene) { currentSceneContent() }
                 overlay(from, alignment = fromAlignment) { fromContent() }
                 overlay(to, alignment = toAlignment) { toContent() }
@@ -273,7 +273,7 @@
                 }
             }
 
-            SceneTransitionLayout(state, layoutModifier) {
+            SceneTransitionLayout(state, layoutModifier, implicitTestTags = true) {
                 scene(fromScene, content = fromSceneContent)
                 scene(toScene, content = toSceneContent)
             }
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt
index 98cf684..f905527 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt
@@ -137,6 +137,10 @@
             override fun onPositionUpdated(distance: Float, fraction: Float) {}
 
             override fun onPickerCarouselSwiping(swipingFraction: Float) {}
+
+            override fun onFidgetTap(x: Float, y: Float) {
+                view.animateFidget(x, y)
+            }
         }
 
     override val faceEvents =
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt
index 74d595c..f24ad1c 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt
@@ -284,6 +284,8 @@
         override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {}
 
         override fun onPositionUpdated(distance: Float, fraction: Float) {}
+
+        override fun onFidgetTap(x: Float, y: Float) {}
     }
 
     inner class LargeClockAnimations(
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt
index 8a8d98c..aad1276 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt
@@ -16,6 +16,7 @@
 import android.content.Context
 import android.content.res.Resources
 import android.graphics.Typeface
+import android.os.Vibrator
 import android.view.LayoutInflater
 import com.android.systemui.customization.R
 import com.android.systemui.log.core.MessageBuffer
@@ -40,6 +41,7 @@
     val typefaceCache: TypefaceCache,
     val messageBuffers: ClockMessageBuffers,
     val messageBuffer: MessageBuffer,
+    val vibrator: Vibrator?,
 )
 
 /** Provides the default system clock */
@@ -48,6 +50,7 @@
     val layoutInflater: LayoutInflater,
     val resources: Resources,
     private val isClockReactiveVariantsEnabled: Boolean = false,
+    private val vibrator: Vibrator?,
 ) : ClockProvider {
     private var messageBuffers: ClockMessageBuffers? = null
 
@@ -82,6 +85,7 @@
                     typefaceCache,
                     buffers,
                     buffers.infraMessageBuffer,
+                    vibrator,
                 )
             )
         } else {
@@ -109,7 +113,8 @@
 
     companion object {
         // 750ms @ 120hz -> 90 frames of animation
-        const val NUM_CLOCK_FONT_ANIMATION_STEPS = 90
+        // In practice, 30 looks good enough and limits our memory usage
+        const val NUM_CLOCK_FONT_ANIMATION_STEPS = 30
 
         val FLEX_TYPEFACE by lazy {
             // TODO(b/364680873): Move constant to config_clockFontFamily when shipping
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt
index cfcf201..b2dbd65 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt
@@ -230,7 +230,10 @@
 
             override fun onPositionUpdated(distance: Float, fraction: Float) {
                 layerController.animations.onPositionUpdated(distance, fraction)
-                // TODO(b/378128811) port stepping animation
+            }
+
+            override fun onFidgetTap(x: Float, y: Float) {
+                layerController.animations.onFidgetTap(x, y)
             }
         }
 
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt
index 1659814..a5adfa2 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt
@@ -207,6 +207,10 @@
             override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {}
 
             override fun onPositionUpdated(distance: Float, fraction: Float) {}
+
+            override fun onFidgetTap(x: Float, y: Float) {
+                view.animateFidget(x, y)
+            }
         }
 
     override val faceEvents =
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt
index f0f344a..a9f91e0 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt
@@ -281,6 +281,10 @@
         }
     }
 
+    fun animateFidget(x: Float, y: Float) {
+        digitalClockTextViewMap.forEach { _, view -> view.animateFidget(x, y) }
+    }
+
     private fun updateLocale(locale: Locale) {
         isMonoVerticalNumericLineSpacing =
             !NON_MONO_VERTICAL_NUMERIC_LINE_SPACING_LANGUAGES.any {
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt
index 13f5633..92fa6b5 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt
@@ -24,6 +24,7 @@
 import android.graphics.PorterDuff
 import android.graphics.PorterDuffXfermode
 import android.graphics.Rect
+import android.os.VibrationEffect
 import android.text.Layout
 import android.text.TextPaint
 import android.util.AttributeSet
@@ -67,7 +68,7 @@
 
 @SuppressLint("AppCompatCustomView")
 open class SimpleDigitalClockTextView(
-    clockCtx: ClockContext,
+    val clockCtx: ClockContext,
     isLargeClock: Boolean,
     attrs: AttributeSet? = null,
 ) : TextView(clockCtx.context, attrs) {
@@ -92,6 +93,9 @@
         (fixedAodAxes + listOf(roundAxis, SLANT_AXIS)).toFVar()
     }
 
+    // TODO(b/374306512): Fidget endpoint to spec
+    private var fidgetFontVariation = aodFontVariation
+
     private val parser = DimensionParser(clockCtx.context)
     var maxSingleDigitHeight = -1
     var maxSingleDigitWidth = -1
@@ -193,43 +197,12 @@
             )
         }
 
-        var expectedWidth: Int
-        var expectedHeight: Int
-
-        if (MeasureSpec.getMode(heightMeasureSpec) == EXACTLY) {
-            // For view which has fixed height, e.g. small clock,
-            // we should always return the size required from parent view
-            expectedHeight = heightMeasureSpec
-        } else {
-            expectedHeight =
-                MeasureSpec.makeMeasureSpec(
-                    if (isSingleDigit()) {
-                        maxSingleDigitHeight
-                    } else {
-                        textBounds.height() + 2 * lockScreenPaint.strokeWidth.toInt()
-                    },
-                    MeasureSpec.getMode(measuredHeightAndState),
-                )
-        }
-
-        if (MeasureSpec.getMode(widthMeasureSpec) == EXACTLY) {
-            expectedWidth = widthMeasureSpec
-        } else {
-            expectedWidth =
-                MeasureSpec.makeMeasureSpec(
-                    if (isSingleDigit()) {
-                        maxSingleDigitWidth
-                    } else {
-                        max(
-                            textBounds.width() + 2 * lockScreenPaint.strokeWidth.toInt(),
-                            MeasureSpec.getSize(measuredWidthAndState),
-                        )
-                    },
-                    MeasureSpec.getMode(measuredWidthAndState),
-                )
-        }
-
-        setMeasuredDimension(expectedWidth, expectedHeight)
+        setInterpolatedViewBounds(
+            getInterpolatedTextBounds(),
+            widthMeasureSpec,
+            heightMeasureSpec,
+            force = true,
+        )
     }
 
     override fun onDraw(canvas: Canvas) {
@@ -289,17 +262,43 @@
             return
         }
         logger.d("animateCharge()")
-        val startAnimPhase2 = Runnable {
-            textAnimator.setTextStyle(
-                fvar = if (dozeFraction == 0F) lsFontVariation else aodFontVariation,
-                animate = isAnimationEnabled,
-            )
-            updateTextBoundsForTextAnimator()
-        }
         textAnimator.setTextStyle(
             fvar = if (dozeFraction == 0F) aodFontVariation else lsFontVariation,
             animate = isAnimationEnabled,
-            onAnimationEnd = startAnimPhase2,
+            onAnimationEnd =
+                Runnable {
+                    textAnimator.setTextStyle(
+                        fvar = if (dozeFraction == 0F) lsFontVariation else aodFontVariation,
+                        animate = isAnimationEnabled,
+                    )
+                    updateTextBoundsForTextAnimator()
+                },
+        )
+        updateTextBoundsForTextAnimator()
+    }
+
+    fun animateFidget(x: Float, y: Float) {
+        if (!this::textAnimator.isInitialized || textAnimator.isRunning()) {
+            // Skip fidget animation if other animation is already playing.
+            return
+        }
+
+        logger.animateFidget(x, y)
+        clockCtx.vibrator?.vibrate(FIDGET_HAPTICS)
+
+        // TODO(b/374306512): Duplicated charge animation as placeholder. Implement final version
+        // when we have a complete spec. May require additional code to animate individual digits.
+        textAnimator.setTextStyle(
+            fvar = fidgetFontVariation,
+            animate = isAnimationEnabled,
+            onAnimationEnd =
+                Runnable {
+                    textAnimator.setTextStyle(
+                        fvar = if (dozeFraction == 0F) lsFontVariation else aodFontVariation,
+                        animate = isAnimationEnabled,
+                    )
+                    updateTextBoundsForTextAnimator()
+                },
         )
         updateTextBoundsForTextAnimator()
     }
@@ -329,7 +328,7 @@
             id == R.id.MINUTE_SECOND_DIGIT
     }
 
-    private fun updateInterpolatedTextBounds(): Rect {
+    private fun getInterpolatedTextBounds(): Rect {
         val interpolatedTextBounds = Rect()
         if (textAnimator.animator.animatedFraction != 1.0f && textAnimator.animator.isRunning) {
             interpolatedTextBounds.left =
@@ -369,7 +368,44 @@
         return interpolatedTextBounds
     }
 
-    private fun updateXtranslation(inPoint: Point, interpolatedTextBounds: Rect): Point {
+    private fun setInterpolatedViewBounds(
+        interpBounds: Rect,
+        widthMeasureSpec: Int = measuredWidthAndState,
+        heightMeasureSpec: Int = measuredHeightAndState,
+        force: Boolean = false,
+    ) {
+        val heightMode = MeasureSpec.getMode(heightMeasureSpec)
+        val widthMode = MeasureSpec.getMode(widthMeasureSpec)
+
+        val heightSpec =
+            if (heightMode == EXACTLY) {
+                heightMeasureSpec
+            } else {
+                MeasureSpec.makeMeasureSpec(
+                    if (isSingleDigit()) maxSingleDigitHeight
+                    else interpBounds.height() + 2 * lockScreenPaint.strokeWidth.toInt(),
+                    heightMode,
+                )
+            }
+
+        val widthSpec =
+            if (widthMode == EXACTLY) {
+                widthMeasureSpec
+            } else {
+                MeasureSpec.makeMeasureSpec(
+                    if (isSingleDigit()) maxSingleDigitWidth
+                    else interpBounds.width() + 2 * lockScreenPaint.strokeWidth.toInt(),
+                    widthMode,
+                )
+            }
+
+        if (force || widthSpec != measuredWidthAndState || heightSpec != measuredHeightAndState) {
+            setMeasuredDimension(widthSpec, heightSpec)
+            parent?.requestLayout()
+        }
+    }
+
+    private fun updateXTranslation(inPoint: Point, interpolatedTextBounds: Rect): Point {
         when (horizontalAlignment) {
             HorizontalAlignment.LEFT -> {
                 inPoint.x = lockScreenPaint.strokeWidth.toInt() - interpolatedTextBounds.left
@@ -392,7 +428,9 @@
     // translation of reference point of text
     // used for translation when calling textInterpolator
     private fun getLocalTranslation(): Point {
-        val interpolatedTextBounds = updateInterpolatedTextBounds()
+        val interpolatedTextBounds = getInterpolatedTextBounds()
+        setInterpolatedViewBounds(interpolatedTextBounds)
+
         val localTranslation = Point(0, 0)
         val correctedBaseline = if (baseline != -1) baseline else baselineFromMeasure
         // get the change from current baseline to expected baseline
@@ -422,7 +460,7 @@
             }
         }
 
-        return updateXtranslation(localTranslation, interpolatedTextBounds)
+        return updateXTranslation(localTranslation, interpolatedTextBounds)
     }
 
     fun applyStyles(textStyle: FontTextStyle, aodStyle: FontTextStyle?) {
@@ -528,6 +566,12 @@
         private val PORTER_DUFF_XFER_MODE_PAINT =
             Paint().also { it.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT) }
 
+        val FIDGET_HAPTICS =
+            VibrationEffect.startComposition()
+                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_THUD, 1.0f, 0)
+                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_QUICK_RISE, 1.0f, 43)
+                .compose()
+
         val AOD_COLOR = Color.WHITE
         val LS_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 400f)
         val AOD_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 200f)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt
index fe665e6..24b9e84 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt
@@ -84,6 +84,7 @@
 import com.android.systemui.util.mockito.whenever
 import com.android.systemui.util.settings.GlobalSettings
 import com.android.systemui.util.time.FakeSystemClock
+import com.android.systemui.window.domain.interactor.windowRootViewBlurInteractor
 import com.google.common.truth.Truth
 import junit.framework.Assert
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -280,9 +281,9 @@
                 kosmos.keyguardDismissTransitionInteractor,
                 { primaryBouncerInteractor },
                 executor,
-            ) {
-                deviceEntryInteractor
-            }
+                { deviceEntryInteractor },
+                { kosmos.windowRootViewBlurInteractor },
+            )
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerFullscreenSwipeTouchHandlerTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerFullscreenSwipeTouchHandlerTest.java
index bd33e52..f53f964 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerFullscreenSwipeTouchHandlerTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerFullscreenSwipeTouchHandlerTest.java
@@ -64,12 +64,12 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
-import java.util.List;
-import java.util.Optional;
-
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4;
 import platform.test.runner.parameterized.Parameters;
 
+import java.util.List;
+import java.util.Optional;
+
 @SmallTest
 @RunWith(ParameterizedAndroidJunit4.class)
 @EnableFlags(Flags.FLAG_HUBMODE_FULLSCREEN_VERTICAL_SWIPE_FIX)
@@ -171,6 +171,7 @@
                 mActivityStarter,
                 mKeyguardInteractor,
                 mSceneInteractor,
+                mKosmos.getShadeRepository(),
                 Optional.of(() -> mWindowRootView));
 
         when(mScrimManager.getCurrentController()).thenReturn(mScrimController);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandlerTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandlerTest.java
index 494e0b4..dd43d81 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandlerTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandlerTest.java
@@ -74,12 +74,12 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
-import java.util.List;
-import java.util.Optional;
-
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4;
 import platform.test.runner.parameterized.Parameters;
 
+import java.util.List;
+import java.util.Optional;
+
 @SmallTest
 @RunWith(ParameterizedAndroidJunit4.class)
 @DisableFlags(Flags.FLAG_HUBMODE_FULLSCREEN_VERTICAL_SWIPE_FIX)
@@ -187,6 +187,7 @@
                 mActivityStarter,
                 mKeyguardInteractor,
                 mSceneInteractor,
+                mKosmos.getShadeRepository(),
                 Optional.of(() -> mWindowRootView)
         );
 
@@ -627,6 +628,22 @@
         onRemovedCallbackCaptor.getValue().onRemoved();
     }
 
+    @Test
+    public void testTouchSessionStart_notifiesShadeOfUserInteraction() {
+        mTouchHandler.onSessionStart(mTouchSession);
+
+        mKosmos.getTestScope().getTestScheduler().runCurrent();
+        assertThat(mKosmos.getShadeRepository().getLegacyShadeTracking().getValue()).isTrue();
+
+        ArgumentCaptor<TouchHandler.TouchSession.Callback> onRemovedCallbackCaptor =
+                ArgumentCaptor.forClass(TouchHandler.TouchSession.Callback.class);
+        verify(mTouchSession).registerCallback(onRemovedCallbackCaptor.capture());
+        onRemovedCallbackCaptor.getValue().onRemoved();
+
+        mKosmos.getTestScope().getTestScheduler().runCurrent();
+        assertThat(mKosmos.getShadeRepository().getLegacyShadeTracking().getValue()).isFalse();
+    }
+
     private void swipeToPosition(float percent, float velocityY) {
         Mockito.clearInvocations(mTouchSession);
         mTouchHandler.onSessionStart(mTouchSession);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/ViewTransitionRegistryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/ViewTransitionRegistryTest.kt
new file mode 100644
index 0000000..ef91c79
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/ViewTransitionRegistryTest.kt
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.animation
+
+import android.view.View
+import android.widget.FrameLayout
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.runner.RunWith
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.verify
+import kotlin.test.Test
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class ViewTransitionRegistryTest : SysuiTestCase() {
+
+    private lateinit var view: View
+    private lateinit var underTest: ViewTransitionRegistry
+    private var token: ViewTransitionToken = ViewTransitionToken()
+
+    @Before
+    fun setup() {
+        view = FrameLayout(mContext)
+        underTest = ViewTransitionRegistry()
+        token = ViewTransitionToken()
+    }
+
+    @Test
+    fun testSuccessfulRegisterInViewTransitionRegistry() {
+        underTest.register(token, view)
+        assertThat(underTest.getView(token)).isNotNull()
+    }
+
+    @Test
+    fun testSuccessfulUnregisterInViewTransitionRegistry() {
+        underTest.register(token, view)
+        assertThat(underTest.getView(token)).isNotNull()
+
+        underTest.unregister(token)
+        assertThat(underTest.getView(token)).isNull()
+    }
+
+    @Test
+    fun testSuccessfulUnregisterOnViewDetachedFromWindow() {
+        val view: View = mock {
+            on { getTag(R.id.tag_view_transition_token) } doReturn token
+        }
+
+        underTest.register(token, view)
+        assertThat(underTest.getView(token)).isNotNull()
+
+        argumentCaptor<View.OnAttachStateChangeListener>()
+            .apply { verify(view).addOnAttachStateChangeListener(capture()) }
+            .firstValue
+            .onViewDetachedFromWindow(view)
+
+        assertThat(underTest.getView(token)).isNull()
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt
index d8a9719..dda460a 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt
@@ -30,22 +30,17 @@
 import androidx.compose.runtime.remember
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.geometry.Offset
-import androidx.compose.ui.geometry.isFinite
-import androidx.compose.ui.geometry.isUnspecified
-import androidx.compose.ui.semantics.SemanticsNode
 import androidx.compose.ui.test.junit4.AndroidComposeTestRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
 import com.android.compose.animation.scene.ContentScope
+import com.android.compose.animation.scene.FeatureCaptures.elementAlpha
+import com.android.compose.animation.scene.FeatureCaptures.elementScale
 import com.android.compose.animation.scene.ObservableTransitionState
-import com.android.compose.animation.scene.Scale
 import com.android.compose.animation.scene.SceneKey
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
 import com.android.compose.animation.scene.isElement
-import com.android.compose.animation.scene.testing.lastAlphaForTesting
-import com.android.compose.animation.scene.testing.lastScaleForTesting
 import com.android.compose.theme.PlatformTheme
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.bouncer.domain.interactor.bouncerInteractor
@@ -71,12 +66,12 @@
 import com.android.systemui.scene.ui.composable.SceneContainer
 import com.android.systemui.scene.ui.view.sceneJankMonitorFactory
 import com.android.systemui.testKosmos
+import kotlin.test.Ignore
 import kotlin.time.Duration.Companion.seconds
 import kotlinx.coroutines.awaitCancellation
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.flowOf
-import org.json.JSONObject
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
@@ -89,14 +84,8 @@
 import platform.test.motion.compose.feature
 import platform.test.motion.compose.recordMotion
 import platform.test.motion.compose.runTest
-import platform.test.motion.golden.DataPoint
-import platform.test.motion.golden.DataPointType
-import platform.test.motion.golden.DataPointTypes
-import platform.test.motion.golden.FeatureCapture
-import platform.test.motion.golden.UnknownTypeException
 import platform.test.screenshot.DeviceEmulationSpec
 import platform.test.screenshot.Displays.Phone
-import kotlin.test.Ignore
 
 /** MotionTest for the Bouncer Predictive Back animation */
 @LargeTest
@@ -280,72 +269,4 @@
 
         override suspend fun onActivated() = awaitCancellation()
     }
-
-    companion object {
-        private val elementAlpha =
-            FeatureCapture<SemanticsNode, Float>("alpha") {
-                DataPoint.of(it.lastAlphaForTesting, DataPointTypes.float)
-            }
-
-        private val elementScale =
-            FeatureCapture<SemanticsNode, Scale>("scale") {
-                DataPoint.of(it.lastScaleForTesting, scale)
-            }
-
-        private val scale: DataPointType<Scale> =
-            DataPointType(
-                "scale",
-                jsonToValue = {
-                    when (it) {
-                        "unspecified" -> Scale.Unspecified
-                        "default" -> Scale.Default
-                        "zero" -> Scale.Zero
-                        is JSONObject -> {
-                            val pivot = it.get("pivot")
-                            Scale(
-                                scaleX = it.getDouble("x").toFloat(),
-                                scaleY = it.getDouble("y").toFloat(),
-                                pivot =
-                                    when (pivot) {
-                                        "unspecified" -> Offset.Unspecified
-                                        "infinite" -> Offset.Infinite
-                                        is JSONObject ->
-                                            Offset(
-                                                pivot.getDouble("x").toFloat(),
-                                                pivot.getDouble("y").toFloat(),
-                                            )
-                                        else -> throw UnknownTypeException()
-                                    },
-                            )
-                        }
-                        else -> throw UnknownTypeException()
-                    }
-                },
-                valueToJson = {
-                    when (it) {
-                        Scale.Unspecified -> "unspecified"
-                        Scale.Default -> "default"
-                        Scale.Zero -> "zero"
-                        else -> {
-                            JSONObject().apply {
-                                put("x", it.scaleX)
-                                put("y", it.scaleY)
-                                put(
-                                    "pivot",
-                                    when {
-                                        it.pivot.isUnspecified -> "unspecified"
-                                        !it.pivot.isFinite -> "infinite"
-                                        else ->
-                                            JSONObject().apply {
-                                                put("x", it.pivot.x)
-                                                put("y", it.pivot.y)
-                                            }
-                                    },
-                                )
-                            }
-                        }
-                    }
-                },
-            )
-    }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/common/ui/view/LongPressHandlingViewInteractionHandlerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/common/ui/view/TouchHandlingViewInteractionHandlerTest.kt
similarity index 68%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/common/ui/view/LongPressHandlingViewInteractionHandlerTest.kt
rename to packages/SystemUI/multivalentTests/src/com/android/systemui/common/ui/view/TouchHandlingViewInteractionHandlerTest.kt
index 262c590..0f40089 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/common/ui/view/LongPressHandlingViewInteractionHandlerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/common/ui/view/TouchHandlingViewInteractionHandlerTest.kt
@@ -21,10 +21,10 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
-import com.android.systemui.common.ui.view.LongPressHandlingViewInteractionHandler.MotionEventModel
-import com.android.systemui.common.ui.view.LongPressHandlingViewInteractionHandler.MotionEventModel.Down
-import com.android.systemui.common.ui.view.LongPressHandlingViewInteractionHandler.MotionEventModel.Move
-import com.android.systemui.common.ui.view.LongPressHandlingViewInteractionHandler.MotionEventModel.Up
+import com.android.systemui.common.ui.view.TouchHandlingViewInteractionHandler.MotionEventModel
+import com.android.systemui.common.ui.view.TouchHandlingViewInteractionHandler.MotionEventModel.Down
+import com.android.systemui.common.ui.view.TouchHandlingViewInteractionHandler.MotionEventModel.Move
+import com.android.systemui.common.ui.view.TouchHandlingViewInteractionHandler.MotionEventModel.Up
 import com.android.systemui.util.mockito.any
 import com.android.systemui.util.mockito.whenever
 import com.google.common.truth.Truth.assertThat
@@ -40,13 +40,13 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-class LongPressHandlingViewInteractionHandlerTest : SysuiTestCase() {
+class TouchHandlingViewInteractionHandlerTest : SysuiTestCase() {
 
     @Mock private lateinit var postDelayed: (Runnable, Long) -> DisposableHandle
     @Mock private lateinit var onLongPressDetected: (Int, Int) -> Unit
-    @Mock private lateinit var onSingleTapDetected: () -> Unit
+    @Mock private lateinit var onSingleTapDetected: (Int, Int) -> Unit
 
-    private lateinit var underTest: LongPressHandlingViewInteractionHandler
+    private lateinit var underTest: TouchHandlingViewInteractionHandler
 
     private var isAttachedToWindow: Boolean = true
     private var delayedRunnable: Runnable? = null
@@ -60,7 +60,7 @@
         }
 
         underTest =
-            LongPressHandlingViewInteractionHandler(
+            TouchHandlingViewInteractionHandler(
                 postDelayed = postDelayed,
                 isAttachedToWindow = { isAttachedToWindow },
                 onLongPressDetected = onLongPressDetected,
@@ -76,74 +76,51 @@
         val downX = 123
         val downY = 456
         dispatchTouchEvents(
-            Down(
-                x = downX,
-                y = downY,
-            ),
-            Move(
-                distanceMoved = ViewConfiguration.getTouchSlop() - 0.1f,
-            ),
+            Down(x = downX, y = downY),
+            Move(distanceMoved = ViewConfiguration.getTouchSlop() - 0.1f),
         )
         delayedRunnable?.run()
 
         verify(onLongPressDetected).invoke(downX, downY)
-        verify(onSingleTapDetected, never()).invoke()
+        verify(onSingleTapDetected, never()).invoke(any(), any())
     }
 
     @Test
     fun longPressButFeatureNotEnabled() = runTest {
         underTest.isLongPressHandlingEnabled = false
-        dispatchTouchEvents(
-            Down(
-                x = 123,
-                y = 456,
-            ),
-        )
+        dispatchTouchEvents(Down(x = 123, y = 456))
 
         assertThat(delayedRunnable).isNull()
         verify(onLongPressDetected, never()).invoke(any(), any())
-        verify(onSingleTapDetected, never()).invoke()
+        verify(onSingleTapDetected, never()).invoke(any(), any())
     }
 
     @Test
     fun longPressButViewNotAttached() = runTest {
         isAttachedToWindow = false
-        dispatchTouchEvents(
-            Down(
-                x = 123,
-                y = 456,
-            ),
-        )
+        dispatchTouchEvents(Down(x = 123, y = 456))
         delayedRunnable?.run()
 
         verify(onLongPressDetected, never()).invoke(any(), any())
-        verify(onSingleTapDetected, never()).invoke()
+        verify(onSingleTapDetected, never()).invoke(any(), any())
     }
 
     @Test
     fun draggedTooFarToBeConsideredAlongPress() = runTest {
         dispatchTouchEvents(
-            Down(
-                x = 123,
-                y = 456,
-            ),
-            Move(
-                distanceMoved = ViewConfiguration.getTouchSlop() + 0.1f,
-            ),
+            Down(x = 123, y = 456),
+            Move(distanceMoved = ViewConfiguration.getTouchSlop() + 0.1f),
         )
 
         assertThat(delayedRunnable).isNull()
         verify(onLongPressDetected, never()).invoke(any(), any())
-        verify(onSingleTapDetected, never()).invoke()
+        verify(onSingleTapDetected, never()).invoke(any(), any())
     }
 
     @Test
     fun heldDownTooBrieflyToBeConsideredAlongPress() = runTest {
         dispatchTouchEvents(
-            Down(
-                x = 123,
-                y = 456,
-            ),
+            Down(x = 123, y = 456),
             Up(
                 distanceMoved = ViewConfiguration.getTouchSlop().toFloat(),
                 gestureDuration = ViewConfiguration.getLongPressTimeout() - 1L,
@@ -152,12 +129,10 @@
 
         assertThat(delayedRunnable).isNull()
         verify(onLongPressDetected, never()).invoke(any(), any())
-        verify(onSingleTapDetected).invoke()
+        verify(onSingleTapDetected).invoke(123, 456)
     }
 
-    private fun dispatchTouchEvents(
-        vararg models: MotionEventModel,
-    ) {
+    private fun dispatchTouchEvents(vararg models: MotionEventModel) {
         models.forEach { model -> underTest.onTouchEvent(model) }
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalSceneStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalSceneStartableTest.kt
index 6f2082b..7051f81 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalSceneStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalSceneStartableTest.kt
@@ -24,53 +24,47 @@
 import androidx.test.filters.SmallTest
 import com.android.internal.logging.uiEventLoggerFake
 import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
-import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR
+import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
 import com.android.systemui.Flags.FLAG_SCENE_CONTAINER
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.communal.domain.interactor.communalInteractor
 import com.android.systemui.communal.domain.interactor.communalSceneInteractor
 import com.android.systemui.communal.domain.interactor.communalSettingsInteractor
 import com.android.systemui.communal.domain.interactor.setCommunalAvailable
+import com.android.systemui.communal.domain.interactor.setCommunalV2ConfigEnabled
 import com.android.systemui.communal.shared.log.CommunalUiEvent
 import com.android.systemui.communal.shared.model.CommunalScenes
-import com.android.systemui.communal.shared.model.EditModeState
-import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.dock.dockManager
-import com.android.systemui.dock.fakeDockManager
 import com.android.systemui.flags.Flags.COMMUNAL_SERVICE_ENABLED
 import com.android.systemui.flags.andSceneContainer
 import com.android.systemui.flags.fakeFeatureFlagsClassic
 import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
-import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
-import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
-import com.android.systemui.keyguard.shared.model.KeyguardState
+import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.notificationShadeWindowController
-import com.android.systemui.statusbar.phone.centralSurfaces
-import com.android.systemui.statusbar.phone.centralSurfacesOptional
 import com.android.systemui.testKosmos
 import com.android.systemui.util.settings.fakeSettings
 import com.google.common.truth.Truth.assertThat
+import kotlin.time.Duration
 import kotlin.time.Duration.Companion.milliseconds
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.advanceTimeBy
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
 import org.junit.Before
-import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.kotlin.whenever
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4
 import platform.test.runner.parameterized.Parameters
 
+@OptIn(ExperimentalCoroutinesApi::class)
 @SmallTest
 @RunWith(ParameterizedAndroidJunit4::class)
 @EnableFlags(FLAG_COMMUNAL_HUB)
@@ -82,7 +76,8 @@
         @JvmStatic
         @Parameters(name = "{0}")
         fun getParams(): List<FlagsParameterization> {
-            return FlagsParameterization.allCombinationsOf().andSceneContainer()
+            return FlagsParameterization.allCombinationsOf(FLAG_GLANCEABLE_HUB_V2)
+                .andSceneContainer()
         }
     }
 
@@ -90,9 +85,22 @@
         mSetFlagsRule.setFlagsParameterization(flags)
     }
 
-    private val kosmos = testKosmos()
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
 
-    private lateinit var underTest: CommunalSceneStartable
+    private val Kosmos.underTest by
+        Kosmos.Fixture {
+            CommunalSceneStartable(
+                communalInteractor = communalInteractor,
+                communalSettingsInteractor = communalSettingsInteractor,
+                communalSceneInteractor = communalSceneInteractor,
+                keyguardInteractor = keyguardInteractor,
+                systemSettings = fakeSettings,
+                notificationShadeWindowController = notificationShadeWindowController,
+                bgScope = applicationCoroutineScope,
+                mainDispatcher = testDispatcher,
+                uiEventLogger = uiEventLoggerFake,
+            )
+        }
 
     @Before
     fun setUp() {
@@ -102,646 +110,314 @@
                 SCREEN_TIMEOUT,
                 UserHandle.USER_CURRENT,
             )
-            kosmos.fakeFeatureFlagsClassic.set(COMMUNAL_SERVICE_ENABLED, true)
+            fakeFeatureFlagsClassic.set(COMMUNAL_SERVICE_ENABLED, true)
 
-            underTest =
-                CommunalSceneStartable(
-                        dockManager = dockManager,
-                        communalInteractor = communalInteractor,
-                        communalSettingsInteractor = communalSettingsInteractor,
-                        communalSceneInteractor = communalSceneInteractor,
-                        keyguardTransitionInteractor = keyguardTransitionInteractor,
-                        keyguardInteractor = keyguardInteractor,
-                        systemSettings = fakeSettings,
-                        notificationShadeWindowController = notificationShadeWindowController,
-                        applicationScope = applicationCoroutineScope,
-                        bgScope = applicationCoroutineScope,
-                        mainDispatcher = testDispatcher,
-                        centralSurfacesOpt = centralSurfacesOptional,
-                        uiEventLogger = uiEventLoggerFake,
-                    )
-                    .apply { start() }
+            underTest.start()
 
             // Make communal available so that communalInteractor.desiredScene accurately reflects
             // scene changes instead of just returning Blank.
-            with(kosmos.testScope) {
-                launch { setCommunalAvailable(true) }
-                testScheduler.runCurrent()
-            }
+            runBlocking { setCommunalAvailable(true) }
+            setCommunalV2ConfigEnabled(true)
         }
     }
 
     @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun keyguardGoesAway_whenLaunchingEditMode_doNotForceBlankScene() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                communalSceneInteractor.setEditModeState(EditModeState.STARTING)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.PRIMARY_BOUNCER,
-                    to = KeyguardState.GONE,
-                    testScope = this,
-                )
-
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun keyguardGoesAway_whenLaunchingWidget_doNotForceBlankScene() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                communalSceneInteractor.setIsLaunchingWidget(true)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.PRIMARY_BOUNCER,
-                    to = KeyguardState.GONE,
-                    testScope = this,
-                )
-
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun keyguardGoesAway_whenNotLaunchingWidget_forceBlankScene() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                communalSceneInteractor.setIsLaunchingWidget(false)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.PRIMARY_BOUNCER,
-                    to = KeyguardState.GONE,
-                    testScope = this,
-                )
-
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun keyguardGoesAway_whenInEditMode_doesNotChangeScene() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                communalInteractor.setEditModeOpen(true)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.ALTERNATE_BOUNCER,
-                    to = KeyguardState.GONE,
-                    testScope = this,
-                )
-                // Scene change will be handled in EditWidgetsActivity not here
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Ignore("Ignored until custom animations are implemented in b/322787129")
-    @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
-    fun deviceDocked_forceCommunalScene() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-
-                updateDocked(true)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GONE,
-                    to = KeyguardState.LOCKSCREEN,
-                    testScope = this,
-                )
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun occluded_forceBlankScene() =
-        with(kosmos) {
-            testScope.runTest {
-                whenever(centralSurfaces.isLaunchingActivityOverLockscreen).thenReturn(false)
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                updateDocked(true)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.OCCLUDED,
-                    testScope = this,
-                )
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun occluded_doesNotForceBlankSceneIfLaunchingActivityOverLockscreen() =
-        with(kosmos) {
-            testScope.runTest {
-                whenever(centralSurfaces.isLaunchingActivityOverLockscreen).thenReturn(true)
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                updateDocked(true)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.OCCLUDED,
-                    testScope = this,
-                )
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun deviceDocked_doesNotForceCommunalIfTransitioningFromCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-
-                updateDocked(true)
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.LOCKSCREEN,
-                    testScope = this,
-                )
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun deviceAsleep_forceBlankSceneAfterTimeout() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.OFF,
-                    testScope = this,
-                )
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                advanceTimeBy(CommunalSceneStartable.AWAKE_DEBOUNCE_DELAY)
-
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun deviceAsleep_wakesUpBeforeTimeout_noChangeInScene() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.OFF,
-                    testScope = this,
-                )
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-                advanceTimeBy(CommunalSceneStartable.AWAKE_DEBOUNCE_DELAY / 2)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.OFF,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    testScope = this,
-                )
-
-                advanceTimeBy(CommunalSceneStartable.AWAKE_DEBOUNCE_DELAY)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Ignore("Ignored until custom animations are implemented in b/322787129")
-    @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
-    fun dockingOnLockscreen_forcesCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                communalSceneInteractor.changeScene(CommunalScenes.Blank, "test")
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-
-                // device is docked while on the lockscreen
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.LOCKSCREEN,
-                    testScope = this,
-                )
-                updateDocked(true)
-
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-                advanceTimeBy(CommunalSceneStartable.DOCK_DEBOUNCE_DELAY)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    @Ignore("Ignored until custom animations are implemented in b/322787129")
-    @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
-    fun dockingOnLockscreen_doesNotForceCommunalIfDreamStarts() =
-        with(kosmos) {
-            testScope.runTest {
-                communalSceneInteractor.changeScene(CommunalScenes.Blank, "test")
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-
-                // device is docked while on the lockscreen
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.LOCKSCREEN,
-                    testScope = this,
-                )
-                updateDocked(true)
-
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-                advanceTimeBy(CommunalSceneStartable.DOCK_DEBOUNCE_DELAY / 2)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-
-                // dream starts shortly after docking
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.LOCKSCREEN,
-                    to = KeyguardState.DREAMING,
-                    testScope = this,
-                )
-                advanceTimeBy(CommunalSceneStartable.DOCK_DEBOUNCE_DELAY)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
-        }
-
-    @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_whenDreaming_goesToBlank() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+        kosmos.runTest {
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Scene times out back to blank after the screen timeout.
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
+            // Scene times out back to blank after the screen timeout.
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Blank)
         }
 
     @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_notDreaming_staysOnCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is not dreaming and on communal.
-                updateDreaming(false)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+        kosmos.runTest {
+            // Device is not dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(false)
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                // Scene stays as Communal
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
+            // Scene stays as Communal
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
         }
 
     @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_dreamStopped_staysOnCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+        kosmos.runTest {
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Wait a bit, but not long enough to timeout.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            // Wait a bit, but not long enough to timeout.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Dream stops, timeout is cancelled and device stays on hub, because the regular
-                // screen timeout will take effect at this point.
-                updateDreaming(false)
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
+            // Dream stops, timeout is cancelled and device stays on hub, because the regular
+            // screen timeout will take effect at this point.
+            fakeKeyguardRepository.setDreaming(false)
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
         }
 
     @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_dreamStartedHalfway_goesToCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is on communal, but not dreaming.
-                updateDreaming(false)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+        kosmos.runTest {
+            // Device is on communal, but not dreaming.
+            fakeKeyguardRepository.setDreaming(false)
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Wait a bit, but not long enough to timeout, then start dreaming.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                updateDreaming(true)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            // Wait a bit, but not long enough to timeout, then start dreaming.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            fakeKeyguardRepository.setDreaming(true)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Device times out after one screen timeout interval, dream doesn't reset timeout.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
+            // Device times out after one screen timeout interval, dream doesn't reset timeout.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Blank)
         }
 
     @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_dreamAfterInitialTimeout_goesToBlank() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is on communal.
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+        kosmos.runTest {
+            // Device is on communal.
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                // Device stays on the hub after the timeout since we're not dreaming.
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds * 2)
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            // Device stays on the hub after the timeout since we're not dreaming.
+            testScope.advanceTimeBy(SCREEN_TIMEOUT.milliseconds * 2)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Start dreaming.
-                updateDreaming(true)
-                advanceTimeBy(KeyguardInteractor.IS_ABLE_TO_DREAM_DELAY_MS)
+            // Start dreaming.
+            fakeKeyguardRepository.setDreaming(true)
+            advanceTimeBy(KeyguardInteractor.IS_ABLE_TO_DREAM_DELAY_MS.milliseconds)
 
-                // Hub times out immediately.
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
+            // Hub times out immediately.
+            assertThat(scene).isEqualTo(CommunalScenes.Blank)
         }
 
     @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_userActivityTriggered_resetsTimeout() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+        kosmos.runTest {
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Wait a bit, but not long enough to timeout.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            // Wait a bit, but not long enough to timeout.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
 
-                // Send user interaction to reset timeout.
-                communalInteractor.signalUserInteraction()
+            // Send user interaction to reset timeout.
+            communalInteractor.signalUserInteraction()
 
-                // If user activity didn't reset timeout, we would have gone back to Blank by now.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            // If user activity didn't reset timeout, we would have gone back to Blank by now.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Timeout happens one interval after the user interaction.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-            }
+            // Timeout happens one interval after the user interaction.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Blank)
         }
 
     @Test
-    @DisableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_SCENE_CONTAINER, FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_screenTimeoutChanged() =
-        with(kosmos) {
-            testScope.runTest {
-                fakeSettings.putInt(Settings.System.SCREEN_OFF_TIMEOUT, SCREEN_TIMEOUT * 2)
+        kosmos.runTest {
+            fakeSettings.putInt(Settings.System.SCREEN_OFF_TIMEOUT, SCREEN_TIMEOUT * 2)
 
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            communalSceneInteractor.changeScene(CommunalScenes.Communal, "test")
 
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            val scene by collectLastValue(communalSceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                // Scene times out back to blank after the screen timeout.
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
+            // Scene times out back to blank after the screen timeout.
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Communal)
 
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-                assertThat(uiEventLoggerFake.logs.first().eventId)
-                    .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_TIMEOUT.id)
-                assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
-            }
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            assertThat(scene).isEqualTo(CommunalScenes.Blank)
+            assertThat(uiEventLoggerFake.logs.first().eventId)
+                .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_TIMEOUT.id)
+            assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_whenDreaming_goesToBlank() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+        kosmos.runTest {
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Scene times out back to blank after the screen timeout.
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Dream)
-            }
+            // Scene times out back to blank after the screen timeout.
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Dream)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_notDreaming_staysOnCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is not dreaming and on communal.
-                updateDreaming(false)
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+        kosmos.runTest {
+            // Device is not dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(false)
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                // Scene stays as Communal
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
-            }
+            // Scene stays as Communal
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_dreamStopped_staysOnCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+        kosmos.runTest {
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Wait a bit, but not long enough to timeout.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            // Wait a bit, but not long enough to timeout.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Dream stops, timeout is cancelled and device stays on hub, because the regular
-                // screen timeout will take effect at this point.
-                updateDreaming(false)
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Communal)
-            }
+            // Dream stops, timeout is cancelled and device stays on hub, because the regular
+            // screen timeout will take effect at this point.
+            fakeKeyguardRepository.setDreaming(false)
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Communal)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_dreamStartedHalfway_goesToCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is on communal, but not dreaming.
-                updateDreaming(false)
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+        kosmos.runTest {
+            // Device is on communal, but not dreaming.
+            fakeKeyguardRepository.setDreaming(false)
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Wait a bit, but not long enough to timeout, then start dreaming.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                updateDreaming(true)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            // Wait a bit, but not long enough to timeout, then start dreaming.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            fakeKeyguardRepository.setDreaming(true)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Device times out after one screen timeout interval, dream doesn't reset timeout.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Dream)
-            }
+            // Device times out after one screen timeout interval, dream doesn't reset timeout.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Dream)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_dreamAfterInitialTimeout_goesToBlank() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is on communal.
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+        kosmos.runTest {
+            // Device is on communal.
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                // Device stays on the hub after the timeout since we're not dreaming.
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds * 2)
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            // Device stays on the hub after the timeout since we're not dreaming.
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds * 2)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Start dreaming.
-                updateDreaming(true)
-                advanceTimeBy(KeyguardInteractor.IS_ABLE_TO_DREAM_DELAY_MS)
+            // Start dreaming.
+            fakeKeyguardRepository.setDreaming(true)
+            advanceTimeBy(KeyguardInteractor.IS_ABLE_TO_DREAM_DELAY_MS.milliseconds)
 
-                // Hub times out immediately.
-                assertThat(scene).isEqualTo(Scenes.Dream)
-            }
+            // Hub times out immediately.
+            assertThat(scene).isEqualTo(Scenes.Dream)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_userActivityTriggered_resetsTimeout() =
-        with(kosmos) {
-            testScope.runTest {
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+        kosmos.runTest {
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Wait a bit, but not long enough to timeout.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            // Wait a bit, but not long enough to timeout.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
 
-                // Send user interaction to reset timeout.
-                communalInteractor.signalUserInteraction()
+            // Send user interaction to reset timeout.
+            communalInteractor.signalUserInteraction()
 
-                // If user activity didn't reset timeout, we would have gone back to Blank by now.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            // If user activity didn't reset timeout, we would have gone back to Blank by now.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Timeout happens one interval after the user interaction.
-                advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Dream)
-            }
+            // Timeout happens one interval after the user interaction.
+            advanceTimeBy((SCREEN_TIMEOUT / 2).milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Dream)
         }
 
     @Test
     @EnableFlags(FLAG_SCENE_CONTAINER)
+    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun hubTimeout_withSceneContainer_screenTimeoutChanged() =
-        with(kosmos) {
-            testScope.runTest {
-                fakeSettings.putInt(Settings.System.SCREEN_OFF_TIMEOUT, SCREEN_TIMEOUT * 2)
+        kosmos.runTest {
+            fakeSettings.putInt(Settings.System.SCREEN_OFF_TIMEOUT, SCREEN_TIMEOUT * 2)
 
-                // Device is dreaming and on communal.
-                updateDreaming(true)
-                sceneInteractor.changeScene(Scenes.Communal, "test")
+            // Device is dreaming and on communal.
+            fakeKeyguardRepository.setDreaming(true)
+            sceneInteractor.changeScene(Scenes.Communal, "test")
 
-                val scene by collectLastValue(sceneInteractor.currentScene)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            val scene by collectLastValue(sceneInteractor.currentScene)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                // Scene times out back to blank after the screen timeout.
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Communal)
+            // Scene times out back to blank after the screen timeout.
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Communal)
 
-                advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
-                assertThat(scene).isEqualTo(Scenes.Dream)
-                assertThat(uiEventLoggerFake.logs.first().eventId)
-                    .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_TIMEOUT.id)
-                assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
-            }
+            advanceTimeBy(SCREEN_TIMEOUT.milliseconds)
+            assertThat(scene).isEqualTo(Scenes.Dream)
+            assertThat(uiEventLoggerFake.logs.first().eventId)
+                .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_TIMEOUT.id)
+            assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
         }
 
-    @Test
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_SCENE_CONTAINER)
-    fun transitionFromDozingToGlanceableHub_forcesCommunal() =
-        with(kosmos) {
-            testScope.runTest {
-                val scene by collectLastValue(communalSceneInteractor.currentScene)
-                communalSceneInteractor.changeScene(CommunalScenes.Blank, "test")
-                assertThat(scene).isEqualTo(CommunalScenes.Blank)
-
-                fakeKeyguardTransitionRepository.sendTransitionSteps(
-                    from = KeyguardState.DOZING,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    testScope = this,
-                )
-
-                assertThat(scene).isEqualTo(CommunalScenes.Communal)
-            }
-        }
-
-    private fun TestScope.updateDocked(docked: Boolean) =
-        with(kosmos) {
-            runCurrent()
-            fakeDockManager.setIsDocked(docked)
-            // TODO(b/322787129): uncomment once custom animations are in place
-            // fakeDockManager.setDockEvent(DockManager.STATE_DOCKED)
-            runCurrent()
-        }
-
-    private fun TestScope.updateDreaming(dreaming: Boolean) =
-        with(kosmos) {
-            fakeKeyguardRepository.setDreaming(dreaming)
-            runCurrent()
-        }
+    /**
+     * Advances time by duration + 1 millisecond, to ensure that tasks scheduled to run at
+     * currentTime + duration are scheduled.
+     */
+    private fun Kosmos.advanceTimeBy(duration: Duration) =
+        testScope.advanceTimeBy(duration + 1.milliseconds)
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/DeviceInactiveConditionTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/DeviceInactiveConditionTest.kt
new file mode 100644
index 0000000..0c97750
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/DeviceInactiveConditionTest.kt
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.communal
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.keyguard.keyguardUpdateMonitor
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.keyguard.WakefulnessLifecycle
+import com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP
+import com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE
+import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
+import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
+import com.android.systemui.keyguard.shared.model.DozeStateModel
+import com.android.systemui.keyguard.shared.model.DozeTransitionModel
+import com.android.systemui.keyguard.wakefulnessLifecycle
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.applicationCoroutineScope
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
+import com.android.systemui.statusbar.policy.keyguardStateController
+import com.android.systemui.testKosmos
+import com.android.systemui.util.kotlin.JavaAdapter
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class DeviceInactiveConditionTest : SysuiTestCase() {
+    private val kosmos =
+        testKosmos().useUnconfinedTestDispatcher().also {
+            whenever(it.wakefulnessLifecycle.wakefulness) doReturn WAKEFULNESS_AWAKE
+        }
+
+    private val Kosmos.underTest by
+        Kosmos.Fixture {
+            DeviceInactiveCondition(
+                applicationCoroutineScope,
+                keyguardStateController,
+                wakefulnessLifecycle,
+                keyguardUpdateMonitor,
+                keyguardInteractor,
+                JavaAdapter(applicationCoroutineScope),
+            )
+        }
+
+    @Test
+    fun asleep_conditionTrue() =
+        kosmos.runTest {
+            // Condition is false to start.
+            underTest.start()
+            assertThat(underTest.isConditionMet).isFalse()
+
+            // Condition is true when device goes to sleep.
+            sleep()
+            assertThat(underTest.isConditionMet).isTrue()
+        }
+
+    @Test
+    fun dozingAndAsleep_conditionFalse() =
+        kosmos.runTest {
+            // Condition is true when device is asleep.
+            underTest.start()
+            sleep()
+            assertThat(underTest.isConditionMet).isTrue()
+
+            // Condition turns false after doze starts.
+            fakeKeyguardRepository.setDozeTransitionModel(
+                DozeTransitionModel(from = DozeStateModel.UNINITIALIZED, to = DozeStateModel.DOZE)
+            )
+            assertThat(underTest.isConditionMet).isFalse()
+        }
+
+    fun Kosmos.sleep() {
+        whenever(wakefulnessLifecycle.wakefulness) doReturn WAKEFULNESS_ASLEEP
+        argumentCaptor<WakefulnessLifecycle.Observer>().apply {
+            verify(wakefulnessLifecycle).addObserver(capture())
+            firstValue.onStartedGoingToSleep()
+        }
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/db/DefaultWidgetPopulationTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/db/DefaultWidgetPopulationTest.kt
index 3eb0800..f063655 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/db/DefaultWidgetPopulationTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/db/DefaultWidgetPopulationTest.kt
@@ -18,7 +18,7 @@
 
 import android.content.ComponentName
 import android.os.UserHandle
-import android.os.UserManager
+import android.os.userManager
 import androidx.sqlite.db.SupportSQLiteDatabase
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
@@ -27,10 +27,13 @@
 import com.android.systemui.communal.shared.model.SpanValue
 import com.android.systemui.communal.widgets.CommunalWidgetHost
 import com.android.systemui.kosmos.applicationCoroutineScope
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.log.logcatLogBuffer
 import com.android.systemui.testKosmos
-import kotlinx.coroutines.test.runCurrent
+import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID
+import com.android.systemui.user.data.repository.fakeUserRepository
+import com.android.systemui.user.domain.interactor.userLockedInteractor
 import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Test
@@ -38,6 +41,7 @@
 import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.kotlin.any
 import org.mockito.kotlin.anyOrNull
+import org.mockito.kotlin.atLeastOnce
 import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.never
@@ -46,8 +50,7 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class DefaultWidgetPopulationTest : SysuiTestCase() {
-    private val kosmos = testKosmos()
-    private val testScope = kosmos.testScope
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
 
     private val communalWidgetHost =
         mock<CommunalWidgetHost> {
@@ -57,11 +60,6 @@
     private val communalWidgetDao = mock<CommunalWidgetDao>()
     private val database = mock<SupportSQLiteDatabase>()
     private val mainUser = UserHandle(0)
-    private val userManager =
-        mock<UserManager> {
-            on { mainUser }.thenReturn(mainUser)
-            on { getUserSerialNumber(0) }.thenReturn(0)
-        }
 
     private val defaultWidgets =
         arrayOf(
@@ -74,6 +72,7 @@
 
     @Before
     fun setUp() {
+        kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true)
         underTest =
             DefaultWidgetPopulation(
                 bgScope = kosmos.applicationCoroutineScope,
@@ -81,32 +80,45 @@
                 communalWidgetDaoProvider = { communalWidgetDao },
                 defaultWidgets = defaultWidgets,
                 logBuffer = logcatLogBuffer("DefaultWidgetPopulationTest"),
-                userManager = userManager,
+                userManager = kosmos.userManager,
+                userLockedInteractor = kosmos.userLockedInteractor,
             )
     }
 
     @Test
-    fun testPopulateDefaultWidgetsWhenDatabaseCreated() =
-        testScope.runTest {
+    fun testNoInteractionUntilMainUserUnlocked() =
+        kosmos.runTest {
+            kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, false)
             // Database created
             underTest.onCreate(database)
-            runCurrent()
+            verify(communalWidgetHost, never())
+                .allocateIdAndBindWidget(provider = any(), user = any())
+            kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true)
+            verify(communalWidgetHost, atLeastOnce())
+                .allocateIdAndBindWidget(provider = any(), user = any())
+        }
+
+    @Test
+    fun testPopulateDefaultWidgetsWhenDatabaseCreated() =
+        kosmos.runTest {
+            // Database created
+            underTest.onCreate(database)
 
             // Verify default widgets bound
             verify(communalWidgetHost)
                 .allocateIdAndBindWidget(
                     provider = eq(ComponentName.unflattenFromString(defaultWidgets[0])!!),
-                    user = eq(mainUser),
+                    user = eq(UserHandle(MAIN_USER_ID)),
                 )
             verify(communalWidgetHost)
                 .allocateIdAndBindWidget(
                     provider = eq(ComponentName.unflattenFromString(defaultWidgets[1])!!),
-                    user = eq(mainUser),
+                    user = eq(UserHandle(MAIN_USER_ID)),
                 )
             verify(communalWidgetHost)
                 .allocateIdAndBindWidget(
                     provider = eq(ComponentName.unflattenFromString(defaultWidgets[2])!!),
-                    user = eq(mainUser),
+                    user = eq(UserHandle(MAIN_USER_ID)),
                 )
 
             // Verify default widgets added in database
@@ -138,13 +150,12 @@
 
     @Test
     fun testSkipDefaultWidgetsPopulation() =
-        testScope.runTest {
+        kosmos.runTest {
             // Skip default widgets population
             underTest.skipDefaultWidgetsPopulation(RESTORED_FROM_BACKUP)
 
             // Database created
             underTest.onCreate(database)
-            runCurrent()
 
             // Verify no widget bounded or added to the database
             verify(communalWidgetHost, never()).allocateIdAndBindWidget(any(), any())
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt
index c3cc3e6..8424746 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt
@@ -75,6 +75,7 @@
 import com.android.systemui.settings.fakeUserTracker
 import com.android.systemui.statusbar.phone.fakeManagedProfileController
 import com.android.systemui.testKosmos
+import com.android.systemui.user.data.repository.FakeUserRepository
 import com.android.systemui.user.data.repository.fakeUserRepository
 import com.android.systemui.util.mockito.any
 import com.android.systemui.util.mockito.argumentCaptor
@@ -163,12 +164,12 @@
         }
 
     @Test
-    fun isCommunalAvailable_storageUnlockedAndMainUser_true() =
+    fun isCommunalAvailable_mainUserUnlockedAndMainUser_true() =
         kosmos.runTest {
             val isAvailable by collectLastValue(underTest.isCommunalAvailable)
             assertThat(isAvailable).isFalse()
 
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
 
@@ -176,12 +177,12 @@
         }
 
     @Test
-    fun isCommunalAvailable_storageLockedAndMainUser_false() =
+    fun isCommunalAvailable_mainUserLockedAndMainUser_false() =
         kosmos.runTest {
             val isAvailable by collectLastValue(underTest.isCommunalAvailable)
             assertThat(isAvailable).isFalse()
 
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(true)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, false)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
 
@@ -189,12 +190,12 @@
         }
 
     @Test
-    fun isCommunalAvailable_storageUnlockedAndSecondaryUser_false() =
+    fun isCommunalAvailable_mainUserUnlockedAndSecondaryUser_false() =
         kosmos.runTest {
             val isAvailable by collectLastValue(underTest.isCommunalAvailable)
             assertThat(isAvailable).isFalse()
 
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(secondaryUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
 
@@ -207,7 +208,7 @@
             val isAvailable by collectLastValue(underTest.isCommunalAvailable)
             assertThat(isAvailable).isFalse()
 
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
 
@@ -222,7 +223,7 @@
             val isAvailable by collectLastValue(underTest.isCommunalAvailable)
             assertThat(isAvailable).isFalse()
 
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, false)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
 
@@ -1282,7 +1283,7 @@
     @Test
     fun showCommunalWhileCharging() =
         kosmos.runTest {
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
             fakeSettings.putIntForUser(
@@ -1302,7 +1303,7 @@
     @Test
     fun showCommunalWhilePosturedAndCharging() =
         kosmos.runTest {
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
             fakeSettings.putIntForUser(
@@ -1323,7 +1324,7 @@
     @Test
     fun showCommunalWhileDocked() =
         kosmos.runTest {
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(mainUser)
             fakeKeyguardRepository.setKeyguardShowing(true)
             fakeSettings.putIntForUser(Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1, mainUser.id)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractorTest.kt
index ff722bf..aa96073 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractorTest.kt
@@ -22,7 +22,6 @@
 import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.compose.animation.scene.ObservableTransitionState.Idle
 import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
-import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.communal.data.repository.communalSceneRepository
 import com.android.systemui.communal.shared.model.CommunalScenes
@@ -64,7 +63,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-@EnableFlags(FLAG_COMMUNAL_HUB, FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
+@EnableFlags(FLAG_COMMUNAL_HUB)
 @DisableSceneContainer
 class CommunalSceneTransitionInteractorTest : SysuiTestCase() {
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModelTest.kt
index b747705..2f3073e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModelTest.kt
@@ -37,6 +37,7 @@
 import com.android.systemui.plugins.activityStarter
 import com.android.systemui.settings.fakeUserTracker
 import com.android.systemui.statusbar.policy.batteryController
+import com.android.systemui.statusbar.policy.fake
 import com.android.systemui.testKosmos
 import com.android.systemui.user.data.repository.fakeUserRepository
 import com.android.systemui.util.settings.fakeSettings
@@ -47,7 +48,6 @@
 import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.Mockito.verify
 import org.mockito.kotlin.any
-import org.mockito.kotlin.whenever
 
 @SmallTest
 @EnableFlags(FLAG_GLANCEABLE_HUB_V2)
@@ -69,7 +69,7 @@
     fun shouldShowDreamButtonOnHub_trueWhenPluggedIn() =
         with(kosmos) {
             runTest {
-                whenever(batteryController.isPluggedIn()).thenReturn(true)
+                batteryController.fake._isPluggedIn = true
                 runCurrent()
 
                 assertThat(underTest.shouldShowDreamButtonOnHub).isTrue()
@@ -80,8 +80,7 @@
     fun shouldShowDreamButtonOnHub_falseWhenNotPluggedIn() =
         with(kosmos) {
             runTest {
-                whenever(batteryController.isPluggedIn()).thenReturn(false)
-                runCurrent()
+                batteryController.fake._isPluggedIn = false
 
                 assertThat(underTest.shouldShowDreamButtonOnHub).isFalse()
             }
@@ -126,10 +125,20 @@
         }
 
     @Test
-    fun shouldShowDreamButtonTooltip_trueWhenNotDismissed() =
+    fun shouldShowDreamButtonTooltip_trueWhenNotDismissedAndHubOnboardingDismissed() =
+        kosmos.runTest {
+            setSelectedUser(MAIN_USER)
+            fakeCommunalPrefsRepository.setHubOnboardingDismissed(MAIN_USER)
+            runCurrent()
+
+            assertThat(underTest.shouldShowTooltip).isTrue()
+        }
+
+    @Test
+    fun shouldShowDreamButtonTooltip_falseWhenNotDismissedAndHubOnboardingNotDismissed() =
         kosmos.runTest {
             runCurrent()
-            assertThat(underTest.shouldShowTooltip).isTrue()
+            assertThat(underTest.shouldShowTooltip).isFalse()
         }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt
index c158baf..6199954 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt
@@ -35,7 +35,6 @@
 import com.android.systemui.power.domain.interactor.powerInteractor
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.model.Overlays
-import com.android.systemui.scene.shared.model.SceneFamilies
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.TransitionKeys.ToSplitShade
 import com.android.systemui.shade.domain.interactor.enableDualShade
@@ -74,7 +73,7 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
+            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
             assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
             assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
 
@@ -83,7 +82,7 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
+            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
             assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
             assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
         }
@@ -96,7 +95,7 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
+            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
             assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))
@@ -106,7 +105,7 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
+            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
             assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))
@@ -120,7 +119,7 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
+            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
             assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
@@ -130,7 +129,7 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
+            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
             assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalEditModeViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalEditModeViewModelTest.kt
index 18cc8bf..f5f5dd8 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalEditModeViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalEditModeViewModelTest.kt
@@ -23,24 +23,19 @@
 import android.content.pm.UserInfo
 import android.provider.Settings
 import android.view.accessibility.AccessibilityEvent
-import android.view.accessibility.AccessibilityManager
 import android.view.accessibility.accessibilityManager
 import android.widget.RemoteViews
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.internal.logging.UiEventLogger
+import com.android.internal.logging.uiEventLogger
+import com.android.internal.logging.uiEventLoggerFake
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.communal.data.model.CommunalSmartspaceTimer
-import com.android.systemui.communal.data.repository.FakeCommunalMediaRepository
-import com.android.systemui.communal.data.repository.FakeCommunalSmartspaceRepository
-import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository
-import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository
 import com.android.systemui.communal.data.repository.fakeCommunalMediaRepository
 import com.android.systemui.communal.data.repository.fakeCommunalSmartspaceRepository
 import com.android.systemui.communal.data.repository.fakeCommunalTutorialRepository
 import com.android.systemui.communal.data.repository.fakeCommunalWidgetRepository
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
-import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.communalInteractor
 import com.android.systemui.communal.domain.interactor.communalSceneInteractor
 import com.android.systemui.communal.domain.interactor.communalSettingsInteractor
@@ -49,12 +44,15 @@
 import com.android.systemui.communal.shared.log.CommunalUiEvent
 import com.android.systemui.communal.shared.model.EditModeState
 import com.android.systemui.communal.ui.viewmodel.CommunalEditModeViewModel
-import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.flags.Flags
 import com.android.systemui.flags.fakeFeatureFlagsClassic
 import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.log.logcatLogBuffer
 import com.android.systemui.media.controls.ui.controller.mediaCarouselController
 import com.android.systemui.media.controls.ui.view.MediaHost
@@ -62,73 +60,45 @@
 import com.android.systemui.testKosmos
 import com.android.systemui.user.data.repository.fakeUserRepository
 import com.google.common.truth.Truth.assertThat
+import kotlin.time.Duration.Companion.milliseconds
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.test.advanceTimeBy
-import kotlinx.coroutines.test.runTest
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mock
 import org.mockito.Mockito
 import org.mockito.Mockito.never
 import org.mockito.Mockito.verify
-import org.mockito.MockitoAnnotations
 import org.mockito.kotlin.any
 import org.mockito.kotlin.argumentCaptor
-import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
-import org.mockito.kotlin.spy
 import org.mockito.kotlin.whenever
 
+@OptIn(ExperimentalCoroutinesApi::class)
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class CommunalEditModeViewModelTest : SysuiTestCase() {
-    @Mock private lateinit var mediaHost: MediaHost
-    @Mock private lateinit var uiEventLogger: UiEventLogger
-    @Mock private lateinit var packageManager: PackageManager
-    @Mock private lateinit var metricsLogger: CommunalMetricsLogger
-
-    private val kosmos = testKosmos()
-    private val testScope = kosmos.testScope
-
-    private lateinit var tutorialRepository: FakeCommunalTutorialRepository
-    private lateinit var widgetRepository: FakeCommunalWidgetRepository
-    private lateinit var smartspaceRepository: FakeCommunalSmartspaceRepository
-    private lateinit var mediaRepository: FakeCommunalMediaRepository
-    private lateinit var communalSceneInteractor: CommunalSceneInteractor
-    private lateinit var communalInteractor: CommunalInteractor
-    private lateinit var accessibilityManager: AccessibilityManager
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
 
     private val testableResources = context.orCreateTestableResources
 
-    private lateinit var underTest: CommunalEditModeViewModel
+    private val Kosmos.packageManager by Kosmos.Fixture { mock<PackageManager>() }
 
-    @Before
-    fun setUp() {
-        MockitoAnnotations.initMocks(this)
+    private val Kosmos.metricsLogger by Kosmos.Fixture { mock<CommunalMetricsLogger>() }
 
-        tutorialRepository = kosmos.fakeCommunalTutorialRepository
-        widgetRepository = kosmos.fakeCommunalWidgetRepository
-        smartspaceRepository = kosmos.fakeCommunalSmartspaceRepository
-        mediaRepository = kosmos.fakeCommunalMediaRepository
-        communalSceneInteractor = kosmos.communalSceneInteractor
-        communalInteractor = spy(kosmos.communalInteractor)
-        kosmos.fakeUserRepository.setUserInfos(listOf(MAIN_USER_INFO))
-        kosmos.fakeUserTracker.set(userInfos = listOf(MAIN_USER_INFO), selectedUserIndex = 0)
-        kosmos.fakeFeatureFlagsClassic.set(Flags.COMMUNAL_SERVICE_ENABLED, true)
-        accessibilityManager = kosmos.accessibilityManager
-
-        underTest =
+    private val Kosmos.underTest by
+        Kosmos.Fixture {
             CommunalEditModeViewModel(
                 communalSceneInteractor,
                 communalInteractor,
-                kosmos.communalSettingsInteractor,
-                kosmos.keyguardTransitionInteractor,
-                mediaHost,
+                communalSettingsInteractor,
+                keyguardTransitionInteractor,
+                mock<MediaHost>(),
                 uiEventLogger,
                 logcatLogBuffer("CommunalEditModeViewModelTest"),
-                kosmos.testDispatcher,
+                testDispatcher,
                 metricsLogger,
                 context,
                 accessibilityManager,
@@ -136,19 +106,28 @@
                 WIDGET_PICKER_PACKAGE_NAME,
                 kosmos.mediaCarouselController,
             )
+        }
+
+    @Before
+    fun setUp() {
+        kosmos.fakeUserRepository.setUserInfos(listOf(MAIN_USER_INFO))
+        kosmos.fakeUserTracker.set(userInfos = listOf(MAIN_USER_INFO), selectedUserIndex = 0)
+        kosmos.fakeFeatureFlagsClassic.set(Flags.COMMUNAL_SERVICE_ENABLED, true)
     }
 
     @Test
     fun communalContent_onlyWidgetsAndCtaTileAreShownInEditMode() =
-        testScope.runTest {
-            tutorialRepository.setTutorialSettingState(Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED)
+        kosmos.runTest {
+            fakeCommunalTutorialRepository.setTutorialSettingState(
+                Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED
+            )
 
             // Widgets available.
-            widgetRepository.addWidget(appWidgetId = 0, rank = 30)
-            widgetRepository.addWidget(appWidgetId = 1, rank = 20)
+            fakeCommunalWidgetRepository.addWidget(appWidgetId = 0, rank = 30)
+            fakeCommunalWidgetRepository.addWidget(appWidgetId = 1, rank = 20)
 
             // Smartspace available.
-            smartspaceRepository.setTimers(
+            fakeCommunalSmartspaceRepository.setTimers(
                 listOf(
                     CommunalSmartspaceTimer(
                         smartspaceTargetId = "target",
@@ -159,7 +138,7 @@
             )
 
             // Media playing.
-            mediaRepository.mediaActive()
+            fakeCommunalMediaRepository.mediaActive()
 
             val communalContent by collectLastValue(underTest.communalContent)
 
@@ -173,7 +152,7 @@
 
     @Test
     fun selectedKey_onReorderWidgets_isSet() =
-        testScope.runTest {
+        kosmos.runTest {
             val selectedKey by collectLastValue(underTest.selectedKey)
 
             underTest.setSelectedKey(null)
@@ -186,7 +165,7 @@
 
     @Test
     fun isCommunalContentVisible_isTrue_whenEditModeShowing() =
-        testScope.runTest {
+        kosmos.runTest {
             val isCommunalContentVisible by collectLastValue(underTest.isCommunalContentVisible)
             communalSceneInteractor.setEditModeState(EditModeState.SHOWING)
             assertThat(isCommunalContentVisible).isEqualTo(true)
@@ -194,7 +173,7 @@
 
     @Test
     fun isCommunalContentVisible_isFalse_whenEditModeNotShowing() =
-        testScope.runTest {
+        kosmos.runTest {
             val isCommunalContentVisible by collectLastValue(underTest.isCommunalContentVisible)
             communalSceneInteractor.setEditModeState(null)
             assertThat(isCommunalContentVisible).isEqualTo(false)
@@ -202,12 +181,14 @@
 
     @Test
     fun deleteWidget() =
-        testScope.runTest {
-            tutorialRepository.setTutorialSettingState(Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED)
+        kosmos.runTest {
+            fakeCommunalTutorialRepository.setTutorialSettingState(
+                Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED
+            )
 
             // Widgets available.
-            widgetRepository.addWidget(appWidgetId = 0, rank = 30)
-            widgetRepository.addWidget(appWidgetId = 1, rank = 20)
+            fakeCommunalWidgetRepository.addWidget(appWidgetId = 0, rank = 30)
+            fakeCommunalWidgetRepository.addWidget(appWidgetId = 1, rank = 20)
 
             val communalContent by collectLastValue(underTest.communalContent)
 
@@ -220,6 +201,7 @@
 
             underTest.onDeleteWidget(
                 id = 0,
+                key = "key_0",
                 componentName = ComponentName("test_package", "test_class"),
                 rank = 30,
             )
@@ -233,26 +215,56 @@
         }
 
     @Test
-    fun reorderWidget_uiEventLogging_start() {
-        underTest.onReorderWidgetStart(CommunalContentModel.KEY.widget(123))
-        verify(uiEventLogger).log(CommunalUiEvent.COMMUNAL_HUB_REORDER_WIDGET_START)
-    }
+    fun deleteWidget_clearsSelectedKey() =
+        kosmos.runTest {
+            val selectedKey by collectLastValue(underTest.selectedKey)
+            underTest.setSelectedKey("test_key")
+            assertThat(selectedKey).isEqualTo("test_key")
+
+            // Selected key is deleted.
+            underTest.onDeleteWidget(
+                id = 0,
+                key = "test_key",
+                componentName = ComponentName("test_package", "test_class"),
+                rank = 30,
+            )
+
+            assertThat(selectedKey).isNull()
+        }
 
     @Test
-    fun reorderWidget_uiEventLogging_end() {
-        underTest.onReorderWidgetEnd()
-        verify(uiEventLogger).log(CommunalUiEvent.COMMUNAL_HUB_REORDER_WIDGET_FINISH)
-    }
+    fun reorderWidget_uiEventLogging_start() =
+        kosmos.runTest {
+            underTest.onReorderWidgetStart(CommunalContentModel.KEY.widget(123))
+
+            assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
+            assertThat(uiEventLoggerFake.logs[0].eventId)
+                .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_REORDER_WIDGET_START.id)
+        }
 
     @Test
-    fun reorderWidget_uiEventLogging_cancel() {
-        underTest.onReorderWidgetCancel()
-        verify(uiEventLogger).log(CommunalUiEvent.COMMUNAL_HUB_REORDER_WIDGET_CANCEL)
-    }
+    fun reorderWidget_uiEventLogging_end() =
+        kosmos.runTest {
+            underTest.onReorderWidgetEnd()
+
+            assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
+            assertThat(uiEventLoggerFake.logs[0].eventId)
+                .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_REORDER_WIDGET_FINISH.id)
+        }
+
+    @Test
+    fun reorderWidget_uiEventLogging_cancel() =
+        kosmos.runTest {
+            underTest.onReorderWidgetCancel()
+
+            assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
+            assertThat(uiEventLoggerFake.logs[0].eventId)
+                .isEqualTo(CommunalUiEvent.COMMUNAL_HUB_REORDER_WIDGET_CANCEL.id)
+        }
 
     @Test
     fun onOpenWidgetPicker_launchesWidgetPickerActivity() {
-        testScope.runTest {
+        kosmos.runTest {
             var activityStarted = false
             val success =
                 underTest.onOpenWidgetPicker(testableResources.resources) { _ ->
@@ -266,7 +278,7 @@
 
     @Test
     fun onOpenWidgetPicker_activityLaunchThrowsException_failure() {
-        testScope.runTest {
+        kosmos.runTest {
             val success =
                 underTest.onOpenWidgetPicker(testableResources.resources) { _ ->
                     run { throw ActivityNotFoundException() }
@@ -278,7 +290,7 @@
 
     @Test
     fun showDisclaimer_trueAfterEditModeShowing() =
-        testScope.runTest {
+        kosmos.runTest {
             val showDisclaimer by collectLastValue(underTest.showDisclaimer)
 
             assertThat(showDisclaimer).isFalse()
@@ -288,9 +300,9 @@
 
     @Test
     fun showDisclaimer_falseWhenDismissed() =
-        testScope.runTest {
+        kosmos.runTest {
             underTest.setEditModeState(EditModeState.SHOWING)
-            kosmos.fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)
+            fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)
 
             val showDisclaimer by collectLastValue(underTest.showDisclaimer)
 
@@ -301,63 +313,67 @@
 
     @Test
     fun showDisclaimer_trueWhenTimeout() =
-        testScope.runTest {
+        kosmos.runTest {
             underTest.setEditModeState(EditModeState.SHOWING)
-            kosmos.fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)
+            fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)
 
             val showDisclaimer by collectLastValue(underTest.showDisclaimer)
 
             assertThat(showDisclaimer).isTrue()
             underTest.onDisclaimerDismissed()
             assertThat(showDisclaimer).isFalse()
-            advanceTimeBy(CommunalInteractor.DISCLAIMER_RESET_MILLIS)
+            testScope.advanceTimeBy(CommunalInteractor.DISCLAIMER_RESET_MILLIS + 1.milliseconds)
             assertThat(showDisclaimer).isTrue()
         }
 
     @Test
-    fun scrollPosition_persistedOnEditCleanup() {
-        val index = 2
-        val offset = 30
-        underTest.onScrollPositionUpdated(index, offset)
-        underTest.cleanupEditModeState()
+    fun scrollPosition_persistedOnEditCleanup() =
+        kosmos.runTest {
+            val index = 2
+            val offset = 30
+            underTest.onScrollPositionUpdated(index, offset)
+            underTest.cleanupEditModeState()
 
-        verify(communalInteractor).setScrollPosition(eq(index), eq(offset))
-    }
+            assertThat(communalInteractor.firstVisibleItemIndex).isEqualTo(index)
+            assertThat(communalInteractor.firstVisibleItemOffset).isEqualTo(offset)
+        }
 
     @Test
-    fun onNewWidgetAdded_accessibilityDisabled_doNothing() {
-        whenever(accessibilityManager.isEnabled).thenReturn(false)
+    fun onNewWidgetAdded_accessibilityDisabled_doNothing() =
+        kosmos.runTest {
+            whenever(accessibilityManager.isEnabled).thenReturn(false)
 
-        val provider =
-            mock<AppWidgetProviderInfo> {
-                on { loadLabel(packageManager) }.thenReturn("Test Clock")
-            }
-        underTest.onNewWidgetAdded(provider)
+            val provider =
+                mock<AppWidgetProviderInfo> {
+                    on { loadLabel(packageManager) }.thenReturn("Test Clock")
+                }
+            underTest.onNewWidgetAdded(provider)
 
-        verify(accessibilityManager, never()).sendAccessibilityEvent(any())
-    }
+            verify(accessibilityManager, never()).sendAccessibilityEvent(any())
+        }
 
     @Test
-    fun onNewWidgetAdded_accessibilityEnabled_sendAccessibilityAnnouncement() {
-        whenever(accessibilityManager.isEnabled).thenReturn(true)
+    fun onNewWidgetAdded_accessibilityEnabled_sendAccessibilityAnnouncement() =
+        kosmos.runTest {
+            whenever(accessibilityManager.isEnabled).thenReturn(true)
 
-        val provider =
-            mock<AppWidgetProviderInfo> {
-                on { loadLabel(packageManager) }.thenReturn("Test Clock")
-            }
-        underTest.onNewWidgetAdded(provider)
+            val provider =
+                mock<AppWidgetProviderInfo> {
+                    on { loadLabel(packageManager) }.thenReturn("Test Clock")
+                }
+            underTest.onNewWidgetAdded(provider)
 
-        val captor = argumentCaptor<AccessibilityEvent>()
-        verify(accessibilityManager).sendAccessibilityEvent(captor.capture())
+            val captor = argumentCaptor<AccessibilityEvent>()
+            verify(accessibilityManager).sendAccessibilityEvent(captor.capture())
 
-        val event = captor.firstValue
-        assertThat(event.eventType).isEqualTo(AccessibilityEvent.TYPE_ANNOUNCEMENT)
-        assertThat(event.contentDescription).isEqualTo("Test Clock widget added to lock screen")
-    }
+            val event = captor.firstValue
+            assertThat(event.eventType).isEqualTo(AccessibilityEvent.TYPE_ANNOUNCEMENT)
+            assertThat(event.contentDescription).isEqualTo("Test Clock widget added to lock screen")
+        }
 
     @Test
     fun onResizeWidget_logsMetrics() =
-        testScope.runTest {
+        kosmos.runTest {
             val appWidgetId = 123
             val spanY = 2
             val widgetIdToRankMap = mapOf(appWidgetId to 1)
@@ -372,7 +388,6 @@
                 rank = rank,
             )
 
-            verify(communalInteractor).resizeWidget(appWidgetId, spanY, widgetIdToRankMap)
             verify(metricsLogger)
                 .logResizeWidget(
                     componentName = componentName.flattenToString(),
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt
index dbdd7fb..799054a 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt
@@ -78,6 +78,7 @@
 import com.android.systemui.log.logcatLogBuffer
 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
 import com.android.systemui.media.controls.ui.controller.mediaCarouselController
+import com.android.systemui.media.controls.ui.view.MediaCarouselScrollHandler
 import com.android.systemui.media.controls.ui.view.MediaHost
 import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest
 import com.android.systemui.power.domain.interactor.powerInteractor
@@ -120,6 +121,7 @@
 @RunWith(ParameterizedAndroidJunit4::class)
 class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() {
     @Mock private lateinit var mediaHost: MediaHost
+    @Mock private lateinit var mediaCarouselScrollHandler: MediaCarouselScrollHandler
     @Mock private lateinit var metricsLogger: CommunalMetricsLogger
 
     private val kosmos = testKosmos()
@@ -161,6 +163,8 @@
 
         kosmos.fakeUserTracker.set(userInfos = listOf(MAIN_USER_INFO), selectedUserIndex = 0)
         whenever(mediaHost.visible).thenReturn(true)
+        whenever(kosmos.mediaCarouselController.mediaCarouselScrollHandler)
+            .thenReturn(mediaCarouselScrollHandler)
 
         kosmos.powerInteractor.setAwakeForTest()
 
@@ -187,6 +191,7 @@
             metricsLogger,
             kosmos.mediaCarouselController,
             kosmos.blurConfig,
+            false,
         )
     }
 
@@ -203,7 +208,7 @@
             // Keyguard showing, storage unlocked, main user, and tutorial not started.
             keyguardRepository.setKeyguardShowing(true)
             keyguardRepository.setKeyguardOccluded(false)
-            keyguardRepository.setIsEncryptedOrLockdown(false)
+            userRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true)
             setIsMainUser(true)
             tutorialRepository.setTutorialSettingState(
                 Settings.Secure.HUB_MODE_TUTORIAL_NOT_STARTED
@@ -903,6 +908,20 @@
         }
 
     @Test
+    fun onShowPreviousMedia_scrollHandler_isCalled() =
+        testScope.runTest {
+            underTest.onShowPreviousMedia()
+            verify(mediaCarouselScrollHandler).scrollByStep(-1)
+        }
+
+    @Test
+    fun onShowNextMedia_scrollHandler_isCalled() =
+        testScope.runTest {
+            underTest.onShowNextMedia()
+            verify(mediaCarouselScrollHandler).scrollByStep(1)
+        }
+
+    @Test
     @EnableFlags(FLAG_BOUNCER_UI_REVAMP)
     fun uiIsBlurred_whenPrimaryBouncerIsShowing() =
         testScope.runTest {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartableTest.kt
index 9568194..c15f797 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartableTest.kt
@@ -37,7 +37,9 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.settings.fakeUserTracker
 import com.android.systemui.testKosmos
+import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID
 import com.android.systemui.user.data.repository.fakeUserRepository
+import com.android.systemui.user.domain.interactor.userLockedInteractor
 import com.android.systemui.util.mockito.whenever
 import com.android.systemui.util.settings.fakeSettings
 import com.google.common.truth.Truth.assertThat
@@ -91,6 +93,7 @@
                 kosmos.testDispatcher,
                 { widgetManager },
                 helper,
+                kosmos.userLockedInteractor,
             )
     }
 
@@ -269,6 +272,7 @@
 
                 // Binding to the service does not require keyguard showing
                 setCommunalAvailable(true, setKeyguardShowing = false)
+                fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
                 runCurrent()
                 verify(widgetManager).register()
 
@@ -283,7 +287,7 @@
         setKeyguardShowing: Boolean = true,
     ) =
         with(kosmos) {
-            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
+            fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true)
             fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)
             if (setKeyguardShowing) {
                 fakeKeyguardRepository.setKeyguardShowing(true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationHostViewControllerTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationHostViewControllerTest.java
index 2ae611d..3e5e72d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationHostViewControllerTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationHostViewControllerTest.java
@@ -22,8 +22,12 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.res.Configuration;
+import android.graphics.Rect;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.testing.TestableLooper;
+import android.testing.ViewUtils;
 import android.view.View;
 
 import androidx.constraintlayout.widget.ConstraintLayout;
@@ -35,6 +39,7 @@
 
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.dreams.DreamOverlayStateController;
+import com.android.systemui.kosmos.KosmosJavaAdapter;
 import com.android.systemui.util.settings.FakeSettings;
 import com.android.systemui.util.settings.SecureSettings;
 
@@ -52,8 +57,8 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@TestableLooper.RunWithLooper(setAsMainLooper = true)
 public class ComplicationHostViewControllerTest extends SysuiTestCase {
-    @Mock
     ConstraintLayout mComplicationHostView;
 
     @Mock
@@ -99,6 +104,10 @@
 
     private SecureSettings mSecureSettings;
 
+    private KosmosJavaAdapter mKosmos;
+
+    private TestableLooper mLooper;
+
     private static final int CURRENT_USER_ID = UserHandle.USER_SYSTEM;
 
     @Before
@@ -113,9 +122,12 @@
         when(mViewHolder.getLayoutParams()).thenReturn(mComplicationLayoutParams);
         when(mComplicationView.getParent()).thenReturn(mComplicationHostView);
 
+        mLooper = TestableLooper.get(this);
+        mKosmos = new KosmosJavaAdapter(this);
         mSecureSettings = new FakeSettings();
+        mComplicationHostView = new ConstraintLayout(getContext());
         mSecureSettings.putFloatForUser(
-                        Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, CURRENT_USER_ID);
+                Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, CURRENT_USER_ID);
 
         mController = new ComplicationHostViewController(
                 mComplicationHostView,
@@ -123,12 +135,35 @@
                 mDreamOverlayStateController,
                 mLifecycleOwner,
                 mViewModel,
-                mSecureSettings);
+                mSecureSettings,
+                mKosmos.getConfigurationInteractor(),
+                mKosmos.getTestDispatcher()
+        );
 
         mController.init();
     }
 
     /**
+     * Ensures layout engine update is called on configuration change.
+     */
+    @Test
+    public void testUpdateLayoutEngineOnConfigurationChange() {
+        mController.onViewAttached();
+        // Attach the complication host view so flows collecting on it start running.
+        ViewUtils.attachView(mComplicationHostView);
+        mLooper.processAllMessages();
+
+        // emit configuration change
+        Rect bounds = new Rect(0, 0, 2000, 2000);
+        Configuration config = new Configuration();
+        config.windowConfiguration.setMaxBounds(bounds);
+        mKosmos.getConfigurationRepository().onConfigurationChange(config);
+        mKosmos.getTestScope().getTestScheduler().runCurrent();
+
+        verify(mLayoutEngine).updateLayoutEngine(bounds);
+    }
+
+    /**
      * Ensures the lifecycle of complications is properly handled.
      */
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationLayoutEngineTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationLayoutEngineTest.java
index 383e0fa..35eb252 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationLayoutEngineTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/complication/ComplicationLayoutEngineTest.java
@@ -18,10 +18,12 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.graphics.Rect;
 import android.view.View;
 
 import androidx.constraintlayout.widget.ConstraintLayout;
@@ -56,12 +58,14 @@
     @Mock
     TouchInsetManager.TouchInsetSession mTouchSession;
 
+    Margins mMargins = new Margins(0, 0, 0, 0);
+
     ComplicationLayoutEngine createComplicationLayoutEngine() {
         return createComplicationLayoutEngine(0);
     }
 
     ComplicationLayoutEngine createComplicationLayoutEngine(int spacing) {
-        return new ComplicationLayoutEngine(mLayout, spacing, 0, 0, 0, 0, mTouchSession, 0, 0);
+        return new ComplicationLayoutEngine(mLayout, spacing, () -> mMargins, mTouchSession, 0, 0);
     }
 
     @Before
@@ -84,7 +88,7 @@
                 ConstraintLayout layout) {
             this.lp = params;
             this.category = category;
-            this.view = Mockito.mock(View.class);
+            this.view = mock(View.class);
             this.id = sFactory.getNextId();
             when(view.getId()).thenReturn(sNextId++);
             when(view.getParent()).thenReturn(layout);
@@ -131,15 +135,10 @@
     @Test
     public void testComplicationMarginPosition() {
         final Random rand = new Random();
-        final int startMargin = rand.nextInt();
-        final int topMargin = rand.nextInt();
-        final int endMargin = rand.nextInt();
-        final int bottomMargin = rand.nextInt();
         final int spacing = rand.nextInt();
-
-        final ComplicationLayoutEngine engine = new ComplicationLayoutEngine(mLayout, spacing,
-                startMargin, topMargin, endMargin, bottomMargin, mTouchSession, 0, 0);
-
+        mMargins = new Margins(rand.nextInt(), rand.nextInt(), rand.nextInt(),
+                rand.nextInt());
+        final ComplicationLayoutEngine engine = createComplicationLayoutEngine(spacing);
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -167,17 +166,67 @@
 
         addComplication(engine, secondViewInfo);
 
-
         // The first added view should have margins from both directions from the corner position.
         verifyChange(firstViewInfo, false, lp -> {
-            assertThat(lp.topMargin).isEqualTo(topMargin);
-            assertThat(lp.getMarginEnd()).isEqualTo(endMargin);
+            assertThat(lp.topMargin).isEqualTo(mMargins.top);
+            assertThat(lp.getMarginEnd()).isEqualTo(mMargins.end);
         });
 
         // The second view should be spaced below the first view and have the side end margin.
         verifyChange(secondViewInfo, false, lp -> {
             assertThat(lp.topMargin).isEqualTo(spacing);
-            assertThat(lp.getMarginEnd()).isEqualTo(endMargin);
+            assertThat(lp.getMarginEnd()).isEqualTo(mMargins.end);
+        });
+    }
+
+    @Test
+    public void testComplicationMarginsOnScreenSizeChange() {
+        final Random rand = new Random();
+        final int spacing = rand.nextInt();
+        final ComplicationLayoutEngine engine = createComplicationLayoutEngine(spacing);
+        final ViewInfo firstViewInfo = new ViewInfo(
+                new ComplicationLayoutParams(
+                        100,
+                        100,
+                        ComplicationLayoutParams.POSITION_TOP
+                                | ComplicationLayoutParams.POSITION_END,
+                        ComplicationLayoutParams.DIRECTION_DOWN,
+                        0),
+                Complication.CATEGORY_SYSTEM,
+                mLayout);
+
+        addComplication(engine, firstViewInfo);
+
+        final ViewInfo secondViewInfo = new ViewInfo(
+                new ComplicationLayoutParams(
+                        100,
+                        100,
+                        ComplicationLayoutParams.POSITION_TOP
+                                | ComplicationLayoutParams.POSITION_END,
+                        ComplicationLayoutParams.DIRECTION_DOWN,
+                        0),
+                Complication.CATEGORY_STANDARD,
+                mLayout);
+
+        addComplication(engine, secondViewInfo);
+
+        firstViewInfo.clearInvocations();
+        secondViewInfo.clearInvocations();
+
+        // Triggers an update to the layout engine with new margins.
+        final int newTopMargin = rand.nextInt();
+        final int newEndMargin = rand.nextInt();
+        mMargins = new Margins(0, newTopMargin, newEndMargin, 0);
+        engine.updateLayoutEngine(new Rect(0, 0, 800, 1000));
+
+        // Ensure complication view have new margins
+        verifyChange(firstViewInfo, false, lp -> {
+            assertThat(lp.topMargin).isEqualTo(newTopMargin);
+            assertThat(lp.getMarginEnd()).isEqualTo(newEndMargin);
+        });
+        verifyChange(secondViewInfo, false, lp -> {
+            assertThat(lp.topMargin).isEqualTo(spacing);
+            assertThat(lp.getMarginEnd()).isEqualTo(newEndMargin);
         });
     }
 
@@ -241,7 +290,6 @@
     @Test
     public void testDirectionLayout() {
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -289,7 +337,6 @@
     @Test
     public void testPositionLayout() {
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -376,7 +423,6 @@
     public void testDefaultMargin() {
         final int margin = 5;
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine(margin);
-
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -452,7 +498,6 @@
         final int defaultMargin = 5;
         final int complicationMargin = 10;
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine(defaultMargin);
-
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -518,7 +563,6 @@
     public void testWidthConstraint() {
         final int maxWidth = 20;
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo viewStartDirection = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -566,7 +610,6 @@
     public void testHeightConstraint() {
         final int maxHeight = 20;
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo viewUpDirection = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -613,7 +656,6 @@
     @Test
     public void testConstraintNotSetWhenNotSpecified() {
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo view = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -641,7 +683,6 @@
     @Test
     public void testRemoval() {
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -687,7 +728,6 @@
     @Test
     public void testDoubleRemoval() {
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo firstViewInfo = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
@@ -716,7 +756,6 @@
     @Test
     public void testGetViews() {
         final ComplicationLayoutEngine engine = createComplicationLayoutEngine();
-
         final ViewInfo topEndView = new ViewInfo(
                 new ComplicationLayoutParams(
                         100,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt
index 1c93b3c..102ce0b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt
@@ -23,7 +23,6 @@
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository
 import com.android.systemui.authentication.shared.model.AuthenticationMethodModel
-import com.android.systemui.communal.domain.interactor.setCommunalAvailable
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.deviceentry.domain.interactor.deviceUnlockedInteractor
 import com.android.systemui.flags.EnableSceneContainer
@@ -62,15 +61,14 @@
 
     @Before
     fun setUp() {
-        underTest = kosmos.dreamUserActionsViewModel
+        underTest = kosmos.dreamUserActionsViewModelFactory.create()
         underTest.activateIn(testScope)
     }
 
     @Test
-    fun actions_communalNotAvailable_singleShade() =
+    fun actions_singleShade() =
         testScope.runTest {
             kosmos.enableSingleShade()
-            kosmos.setCommunalAvailable(false)
 
             val actions by collectLastValue(underTest.actions)
 
@@ -93,10 +91,9 @@
         }
 
     @Test
-    fun actions_communalNotAvailable_splitShade() =
+    fun actions_splitShade() =
         testScope.runTest {
             kosmos.enableSplitShade()
-            kosmos.setCommunalAvailable(false)
 
             val actions by collectLastValue(underTest.actions)
 
@@ -121,10 +118,9 @@
         }
 
     @Test
-    fun actions_communalNotAvailable_dualShade() =
+    fun actions_dualShade() =
         testScope.runTest {
             kosmos.enableDualShade()
-            kosmos.setCommunalAvailable(false)
 
             val actions by collectLastValue(underTest.actions)
 
@@ -148,88 +144,6 @@
             assertThat(actions?.get(Swipe.End)).isNull()
         }
 
-    @Test
-    fun actions_communalAvailable_singleShade() =
-        testScope.runTest {
-            kosmos.enableSingleShade()
-            kosmos.setCommunalAvailable(true)
-
-            val actions by collectLastValue(underTest.actions)
-
-            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
-            assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
-            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
-            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
-            assertThat(actions?.get(Swipe.End)).isNull()
-
-            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
-            assertThat(actions).isEmpty()
-
-            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
-            assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
-            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
-            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
-            assertThat(actions?.get(Swipe.End)).isNull()
-        }
-
-    @Test
-    fun actions_communalAvailable_splitShade() =
-        testScope.runTest {
-            kosmos.enableSplitShade()
-            kosmos.setCommunalAvailable(true)
-
-            val actions by collectLastValue(underTest.actions)
-
-            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
-            assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
-            assertThat(actions?.get(Swipe.Down))
-                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))
-            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
-            assertThat(actions?.get(Swipe.End)).isNull()
-
-            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
-            assertThat(actions).isEmpty()
-
-            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
-            assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
-            assertThat(actions?.get(Swipe.Down))
-                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))
-            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
-            assertThat(actions?.get(Swipe.End)).isNull()
-        }
-
-    @Test
-    fun actions_communalAvailable_dualShade() =
-        testScope.runTest {
-            kosmos.enableDualShade()
-            kosmos.setCommunalAvailable(true)
-
-            val actions by collectLastValue(underTest.actions)
-
-            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
-            assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
-            assertThat(actions?.get(Swipe.Down))
-                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
-            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
-            assertThat(actions?.get(Swipe.End)).isNull()
-
-            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
-            assertThat(actions).isEmpty()
-
-            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
-            assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
-            assertThat(actions?.get(Swipe.Down))
-                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
-            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
-            assertThat(actions?.get(Swipe.End)).isNull()
-        }
-
     private fun TestScope.setUpState(isShadeTouchable: Boolean, isDeviceUnlocked: Boolean) {
         if (isShadeTouchable) {
             kosmos.powerInteractor.setAwakeForTest()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialNotificationCoordinatorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialNotificationCoordinatorTest.kt
index e0082da..ff5fa39 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialNotificationCoordinatorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialNotificationCoordinatorTest.kt
@@ -18,6 +18,7 @@
 
 import android.app.Notification
 import android.app.NotificationManager
+import android.service.notification.StatusBarNotification
 import androidx.annotation.StringRes
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
@@ -28,6 +29,7 @@
 import com.android.systemui.keyboard.data.repository.FakeKeyboardRepository
 import com.android.systemui.kosmos.backgroundScope
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.res.R
 import com.android.systemui.settings.userTracker
 import com.android.systemui.statusbar.commandline.commandRegistry
@@ -35,6 +37,7 @@
 import com.android.systemui.touchpad.data.repository.FakeTouchpadRepository
 import com.google.common.truth.Truth.assertThat
 import kotlin.time.Duration.Companion.hours
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.test.advanceTimeBy
 import kotlinx.coroutines.test.runTest
 import org.junit.Before
@@ -44,23 +47,29 @@
 import org.mockito.ArgumentCaptor
 import org.mockito.Captor
 import org.mockito.Mock
+import org.mockito.Mockito.times
 import org.mockito.junit.MockitoJUnit
 import org.mockito.kotlin.any
 import org.mockito.kotlin.eq
+import org.mockito.kotlin.firstValue
 import org.mockito.kotlin.never
+import org.mockito.kotlin.secondValue
 import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
 
+@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class TutorialNotificationCoordinatorTest : SysuiTestCase() {
 
     private lateinit var underTest: TutorialNotificationCoordinator
-    private val kosmos = testKosmos()
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
     private val testScope = kosmos.testScope
     private val keyboardRepository = FakeKeyboardRepository()
     private val touchpadRepository = FakeTouchpadRepository()
     private lateinit var repository: TutorialSchedulerRepository
     @Mock private lateinit var notificationManager: NotificationManager
+    @Mock private lateinit var notification: StatusBarNotification
     @Captor private lateinit var notificationCaptor: ArgumentCaptor<Notification>
     @get:Rule val rule = MockitoJUnit.rule()
 
@@ -107,6 +116,7 @@
     fun showTouchpadNotification() = runTestAndClear {
         touchpadRepository.setIsAnyTouchpadConnected(true)
         testScope.advanceTimeBy(LAUNCH_DELAY)
+        mockExistingNotification()
         verifyNotification(
             R.string.launch_touchpad_tutorial_notification_title,
             R.string.launch_touchpad_tutorial_notification_content,
@@ -131,6 +141,45 @@
             .notifyAsUser(eq(TAG), eq(NOTIFICATION_ID), any(), any())
     }
 
+    @Test
+    fun showKeyboardNotificationThenDisconnectKeyboard() = runTestAndClear {
+        keyboardRepository.setIsAnyKeyboardConnected(true)
+        testScope.advanceTimeBy(LAUNCH_DELAY)
+        verifyNotification(
+            R.string.launch_keyboard_tutorial_notification_title,
+            R.string.launch_keyboard_tutorial_notification_content,
+        )
+        mockExistingNotification()
+
+        // After the keyboard is disconnected, i.e. there is nothing connected, the notification
+        // should be cancelled
+        keyboardRepository.setIsAnyKeyboardConnected(false)
+        verify(notificationManager).cancelAsUser(eq(TAG), eq(NOTIFICATION_ID), any())
+    }
+
+    @Test
+    fun showKeyboardTouchpadNotificationThenDisconnectKeyboard() = runTestAndClear {
+        keyboardRepository.setIsAnyKeyboardConnected(true)
+        touchpadRepository.setIsAnyTouchpadConnected(true)
+        testScope.advanceTimeBy(LAUNCH_DELAY)
+        mockExistingNotification()
+        keyboardRepository.setIsAnyKeyboardConnected(false)
+
+        verify(notificationManager, times(2))
+            .notifyAsUser(eq(TAG), eq(NOTIFICATION_ID), notificationCaptor.capture(), any())
+        // Connect both device and the first notification is for both
+        notificationCaptor.firstValue.verify(
+            R.string.launch_keyboard_touchpad_tutorial_notification_title,
+            R.string.launch_keyboard_touchpad_tutorial_notification_content,
+        )
+        // After the keyboard is disconnected, i.e. with only the touchpad left, the notification
+        // should be update to the one for only touchpad
+        notificationCaptor.secondValue.verify(
+            R.string.launch_touchpad_tutorial_notification_title,
+            R.string.launch_touchpad_tutorial_notification_content,
+        )
+    }
+
     private fun runTestAndClear(block: suspend () -> Unit) =
         testScope.runTest {
             try {
@@ -140,12 +189,21 @@
             }
         }
 
+    // Assume that there's an existing notification when the updater checks activeNotifications
+    private fun mockExistingNotification() {
+        whenever(notification.id).thenReturn(NOTIFICATION_ID)
+        whenever(notificationManager.activeNotifications).thenReturn(arrayOf(notification))
+    }
+
     private fun verifyNotification(@StringRes titleResId: Int, @StringRes contentResId: Int) {
         verify(notificationManager)
             .notifyAsUser(eq(TAG), eq(NOTIFICATION_ID), notificationCaptor.capture(), any())
-        val notification = notificationCaptor.value
-        val actualTitle = notification.getString(Notification.EXTRA_TITLE)
-        val actualContent = notification.getString(Notification.EXTRA_TEXT)
+        notificationCaptor.value.verify(titleResId, contentResId)
+    }
+
+    private fun Notification.verify(@StringRes titleResId: Int, @StringRes contentResId: Int) {
+        val actualTitle = getString(Notification.EXTRA_TITLE)
+        val actualContent = getString(Notification.EXTRA_TEXT)
         assertThat(actualTitle).isEqualTo(context.getString(titleResId))
         assertThat(actualContent).isEqualTo(context.getString(contentResId))
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractorTest.kt
index 7e93f5a..9be786f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractorTest.kt
@@ -25,7 +25,6 @@
 import androidx.test.filters.SmallTest
 import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
-import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR
 import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
 import com.android.systemui.Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR
 import com.android.systemui.Flags.FLAG_SCENE_CONTAINER
@@ -39,7 +38,6 @@
 import com.android.systemui.communal.domain.interactor.setCommunalAvailable
 import com.android.systemui.communal.domain.interactor.setCommunalV2ConfigEnabled
 import com.android.systemui.communal.shared.model.CommunalScenes
-import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepositorySpy
 import com.android.systemui.keyguard.data.repository.keyguardOcclusionRepository
@@ -70,7 +68,6 @@
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.advanceTimeBy
-import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -103,10 +100,7 @@
         @JvmStatic
         @Parameters(name = "{0}")
         fun getParams(): List<FlagsParameterization> {
-            return FlagsParameterization.allCombinationsOf(
-                FLAG_COMMUNAL_SCENE_KTF_REFACTOR,
-                FLAG_GLANCEABLE_HUB_V2,
-            )
+            return FlagsParameterization.allCombinationsOf(FLAG_GLANCEABLE_HUB_V2)
         }
     }
 
@@ -174,22 +168,6 @@
 
     @Test
     @EnableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_GLANCEABLE_HUB_V2)
-    fun testTransitionToLockscreen_onWake_canDream_glanceableHubAvailable() =
-        kosmos.runTest {
-            whenever(dreamManager.canStartDreaming(anyBoolean())).thenReturn(true)
-            setCommunalAvailable(true)
-
-            powerInteractor.setAwakeForTest()
-
-            // If dreaming is possible and communal is available, then we should transition to
-            // GLANCEABLE_HUB when waking up due to power button press.
-            assertThat(transitionRepository)
-                .startedTransition(from = KeyguardState.DOZING, to = KeyguardState.GLANCEABLE_HUB)
-        }
-
-    @Test
-    @EnableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR, FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun testTransitionToLockscreen_onWake_canDream_ktfRefactor() =
         kosmos.runTest {
             setCommunalAvailable(true)
@@ -243,24 +221,7 @@
         }
 
     @Test
-    @EnableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun testTransitionToGlanceableHub_onWakeup_ifIdleOnCommunal_noOccludingActivity() =
-        kosmos.runTest {
-            fakeCommunalSceneRepository.setTransitionState(
-                flowOf(ObservableTransitionState.Idle(CommunalScenes.Communal))
-            )
-
-            powerInteractor.setAwakeForTest()
-
-            // Under default conditions, we should transition to LOCKSCREEN when waking up.
-            assertThat(transitionRepository)
-                .startedTransition(from = KeyguardState.DOZING, to = KeyguardState.GLANCEABLE_HUB)
-        }
-
-    @Test
     @DisableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR, FLAG_SCENE_CONTAINER)
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun testTransitionToGlanceableHub_onWakeup_ifAvailable() =
         kosmos.runTest {
             setCommunalAvailable(true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorTest.kt
index 5882cff..898a5c1 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorTest.kt
@@ -23,7 +23,6 @@
 import android.service.dream.dreamManager
 import androidx.test.filters.SmallTest
 import com.android.systemui.Flags
-import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR
 import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
 import com.android.systemui.Flags.glanceableHubV2
 import com.android.systemui.SysuiTestCase
@@ -74,10 +73,7 @@
         @JvmStatic
         @Parameters(name = "{0}")
         fun getParams(): List<FlagsParameterization> {
-            return FlagsParameterization.allCombinationsOf(
-                    FLAG_COMMUNAL_SCENE_KTF_REFACTOR,
-                    FLAG_GLANCEABLE_HUB_V2,
-                )
+            return FlagsParameterization.allCombinationsOf(FLAG_GLANCEABLE_HUB_V2)
                 .andSceneContainer()
         }
     }
@@ -202,7 +198,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     @DisableFlags(Flags.FLAG_SCENE_CONTAINER)
     fun testTransitionToGlanceableHubOnWake() =
         kosmos.runTest {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractorTest.kt
index 63ed040..9a8e095 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractorTest.kt
@@ -32,16 +32,11 @@
 
 package com.android.systemui.keyguard.domain.interactor
 
-import android.platform.test.annotations.DisableFlags
 import android.platform.test.annotations.EnableFlags
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.systemui.Flags
-import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR
 import com.android.systemui.SysuiTestCase
-import com.android.systemui.communal.data.repository.fakeCommunalSceneRepository
-import com.android.systemui.communal.shared.model.CommunalScenes
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepositorySpy
 import com.android.systemui.keyguard.data.repository.keyguardOcclusionRepository
 import com.android.systemui.keyguard.data.repository.keyguardTransitionRepository
@@ -51,7 +46,6 @@
 import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest
 import com.android.systemui.power.domain.interactor.powerInteractor
 import com.android.systemui.testKosmos
-import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.runCurrent
 import kotlinx.coroutines.test.runTest
@@ -101,21 +95,4 @@
             assertThat(transitionRepository)
                 .startedTransition(from = KeyguardState.OCCLUDED, to = KeyguardState.LOCKSCREEN)
         }
-
-    @Test
-    @EnableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun testShowWhenLockedActivity_noLongerOnTop_transitionsToGlanceableHub_ifIdleOnCommunal() =
-        testScope.runTest {
-            kosmos.fakeCommunalSceneRepository.setTransitionState(
-                flowOf(ObservableTransitionState.Idle(CommunalScenes.Communal))
-            )
-            runCurrent()
-
-            kosmos.keyguardOcclusionRepository.setShowWhenLockedActivityInfo(onTop = false)
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(from = KeyguardState.OCCLUDED, to = KeyguardState.GLANCEABLE_HUB)
-        }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractorTest.kt
similarity index 81%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractorTest.kt
rename to packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractorTest.kt
index 3eacc28..cfe3826 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractorTest.kt
@@ -39,42 +39,39 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-class KeyguardLockWhileAwakeInteractorTest : SysuiTestCase() {
+@kotlinx.coroutines.ExperimentalCoroutinesApi
+class KeyguardShowWhileAwakeInteractorTest : SysuiTestCase() {
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
-    private lateinit var underTest: KeyguardLockWhileAwakeInteractor
+    private lateinit var underTest: KeyguardShowWhileAwakeInteractor
 
     @Before
     fun setup() {
-        underTest = kosmos.keyguardLockWhileAwakeInteractor
+        underTest = kosmos.keyguardShowWhileAwakeInteractor
     }
 
     @Test
     fun emitsMultipleTimeoutEvents() =
         testScope.runTest {
-            val values by collectValues(underTest.lockWhileAwakeEvents)
+            val values by collectValues(underTest.showWhileAwakeEvents)
 
             kosmos.keyguardEnabledInteractor.notifyKeyguardEnabled(true)
             runCurrent()
 
-            kosmos.keyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout(
-                options = null
-            )
+            kosmos.keyguardServiceShowLockscreenInteractor.onKeyguardServiceDoKeyguardTimeout()
             runCurrent()
 
             assertThat(values)
-                .containsExactly(LockWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON)
+                .containsExactly(ShowWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON)
 
             advanceTimeBy(1000)
-            kosmos.keyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout(
-                options = null
-            )
+            kosmos.keyguardServiceShowLockscreenInteractor.onKeyguardServiceDoKeyguardTimeout()
             runCurrent()
 
             assertThat(values)
                 .containsExactly(
-                    LockWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON,
-                    LockWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON,
+                    ShowWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON,
+                    ShowWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON,
                 )
         }
 
@@ -88,7 +85,7 @@
     @Test
     fun emitsWhenKeyguardReenabled_onlyIfShowingWhenDisabled() =
         testScope.runTest {
-            val values by collectValues(underTest.lockWhileAwakeEvents)
+            val values by collectValues(underTest.showWhileAwakeEvents)
 
             kosmos.biometricSettingsRepository.setIsUserInLockdown(false)
             runCurrent()
@@ -101,7 +98,7 @@
             kosmos.keyguardEnabledInteractor.notifyKeyguardEnabled(true)
             runCurrent()
 
-            assertThat(values).containsExactly(LockWhileAwakeReason.KEYGUARD_REENABLED)
+            assertThat(values).containsExactly(ShowWhileAwakeReason.KEYGUARD_REENABLED)
 
             kosmos.fakeKeyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.LOCKSCREEN,
@@ -112,7 +109,7 @@
             kosmos.keyguardEnabledInteractor.notifyKeyguardEnabled(true)
             runCurrent()
 
-            assertThat(values).containsExactly(LockWhileAwakeReason.KEYGUARD_REENABLED)
+            assertThat(values).containsExactly(ShowWhileAwakeReason.KEYGUARD_REENABLED)
         }
 
     /**
@@ -122,7 +119,7 @@
     @Test
     fun doesNotEmit_keyguardNoLongerSuppressed() =
         testScope.runTest {
-            val values by collectValues(underTest.lockWhileAwakeEvents)
+            val values by collectValues(underTest.showWhileAwakeEvents)
 
             // Enable keyguard and then suppress it.
             kosmos.keyguardEnabledInteractor.notifyKeyguardEnabled(true)
@@ -144,14 +141,14 @@
     @Test
     fun doesNotEmit_fromLockdown_orFromLockNow_ifEnabledButSuppressed() =
         testScope.runTest {
-            val values by collectValues(underTest.lockWhileAwakeEvents)
+            val values by collectValues(underTest.showWhileAwakeEvents)
 
             // Set keyguard enabled, but then disable lockscreen (suppress it).
             kosmos.keyguardEnabledInteractor.notifyKeyguardEnabled(true)
             whenever(kosmos.lockPatternUtils.isLockScreenDisabled(anyInt())).thenReturn(true)
             runCurrent()
 
-            kosmos.keyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout(null)
+            kosmos.keyguardServiceShowLockscreenInteractor.onKeyguardServiceDoKeyguardTimeout()
             runCurrent()
 
             kosmos.biometricSettingsRepository.setIsUserInLockdown(true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt
index d057f7a0..a090fab 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt
@@ -17,7 +17,6 @@
 package com.android.systemui.keyguard.domain.interactor
 
 import android.app.StatusBarManager.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP
-import android.platform.test.annotations.DisableFlags
 import android.platform.test.annotations.EnableFlags
 import android.platform.test.flag.junit.FlagsParameterization
 import androidx.test.filters.SmallTest
@@ -26,7 +25,6 @@
 import com.android.keyguard.KeyguardSecurityModel.SecurityMode.PIN
 import com.android.systemui.Flags
 import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
-import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR
 import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
 import com.android.systemui.Flags.glanceableHubV2
 import com.android.systemui.SysuiTestCase
@@ -135,8 +133,7 @@
         @JvmStatic
         @Parameters(name = "{0}")
         fun getParams(): List<FlagsParameterization> {
-            return FlagsParameterization.allCombinationsOf(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-                .andSceneContainer()
+            return FlagsParameterization.allCombinationsOf().andSceneContainer()
         }
     }
 
@@ -468,38 +465,6 @@
 
     @Test
     @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun dozingToGlanceableHub() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to DOZING
-            runTransitionAndSetWakefulness(KeyguardState.GLANCEABLE_HUB, KeyguardState.DOZING)
-            runCurrent()
-
-            // GIVEN the device is idle on the glanceable hub
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(CommunalScenes.Communal)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            // WHEN the device begins to wake
-            keyguardRepository.setKeyguardShowing(true)
-            powerInteractor.setAwakeForTest()
-            advanceTimeBy(60L)
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    from = KeyguardState.DOZING,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @DisableSceneContainer
     fun goneToDozing() =
         testScope.runTest {
             // GIVEN a device with AOD not available
@@ -625,40 +590,6 @@
 
     @Test
     @BrokenWithSceneContainer(339465026)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun goneToGlanceableHub() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to GONE
-            runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.GONE)
-
-            // GIVEN the device is idle on the glanceable hub
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(CommunalScenes.Communal)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            // WHEN the keyguard starts to show
-            keyguardRepository.setKeyguardShowing(true)
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    from = KeyguardState.GONE,
-                    ownerName =
-                        FromGoneTransitionInteractor::class.simpleName +
-                            "(keyguard interactor says keyguard is showing)",
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @BrokenWithSceneContainer(339465026)
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun goneToGlanceableHub_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN a prior transition has run to GONE
@@ -1070,84 +1001,6 @@
 
     @Test
     @BrokenWithSceneContainer(339465026)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun occludedToGlanceableHub() =
-        testScope.runTest {
-            // GIVEN a device on lockscreen
-            keyguardRepository.setKeyguardShowing(true)
-            runCurrent()
-
-            // GIVEN the device is idle on the glanceable hub
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(CommunalScenes.Communal)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            // GIVEN a prior transition has run to OCCLUDED
-            runTransitionAndSetWakefulness(KeyguardState.GLANCEABLE_HUB, KeyguardState.OCCLUDED)
-            keyguardRepository.setKeyguardOccluded(true)
-            runCurrent()
-
-            // WHEN occlusion ends
-            keyguardRepository.setKeyguardOccluded(false)
-            runCurrent()
-
-            // THEN a transition to GLANCEABLE_HUB should occur
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromOccludedTransitionInteractor::class.simpleName,
-                    from = KeyguardState.OCCLUDED,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @BrokenWithSceneContainer(339465026)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun occludedToGlanceableHubWhenInitiallyOnHub() =
-        testScope.runTest {
-            // GIVEN a device on lockscreen and communal is available
-            keyguardRepository.setKeyguardShowing(true)
-            kosmos.setCommunalAvailable(true)
-            runCurrent()
-
-            // GIVEN a prior transition has run to OCCLUDED from GLANCEABLE_HUB
-            runTransitionAndSetWakefulness(KeyguardState.GLANCEABLE_HUB, KeyguardState.OCCLUDED)
-            keyguardRepository.setKeyguardOccluded(true)
-            runCurrent()
-
-            // GIVEN on blank scene
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(CommunalScenes.Blank)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            // WHEN occlusion ends
-            keyguardRepository.setKeyguardOccluded(false)
-            runCurrent()
-
-            // THEN a transition to GLANCEABLE_HUB should occur
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromOccludedTransitionInteractor::class.simpleName,
-                    from = KeyguardState.OCCLUDED,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @BrokenWithSceneContainer(339465026)
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun occludedToGlanceableHub_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN a device on lockscreen and communal is available
@@ -1390,48 +1243,6 @@
 
     @Test
     @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun dreamingToGlanceableHub() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to DREAMING
-            keyguardRepository.setDreaming(true)
-            runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.DREAMING)
-            runCurrent()
-
-            // WHEN a transition to the glanceable hub starts
-            val currentScene = CommunalScenes.Blank
-            val targetScene = CommunalScenes.Communal
-
-            val progress = MutableStateFlow(0f)
-            val transitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Transition(
-                        fromScene = currentScene,
-                        toScene = targetScene,
-                        currentScene = flowOf(targetScene),
-                        progress = progress,
-                        isInitiatedByUserInput = false,
-                        isUserInputOngoing = flowOf(false),
-                    )
-                )
-            communalInteractor.setTransitionState(transitionState)
-            progress.value = .1f
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromDreamingTransitionInteractor::class.simpleName,
-                    from = KeyguardState.DREAMING,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    animatorAssertion = { it.isNull() }, // transition should be manually animated
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @DisableSceneContainer
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun dreamingToGlanceableHub_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN a prior transition has run to DREAMING
@@ -1596,66 +1407,6 @@
 
     @Test
     @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun lockscreenToGlanceableHub() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to LOCKSCREEN
-            runTransitionAndSetWakefulness(KeyguardState.AOD, KeyguardState.LOCKSCREEN)
-            runCurrent()
-
-            // WHEN a glanceable hub transition starts
-            val currentScene = CommunalScenes.Blank
-            val targetScene = CommunalScenes.Communal
-
-            val progress = MutableStateFlow(0f)
-            val transitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Transition(
-                        fromScene = currentScene,
-                        toScene = targetScene,
-                        currentScene = flowOf(targetScene),
-                        progress = progress,
-                        isInitiatedByUserInput = false,
-                        isUserInputOngoing = flowOf(false),
-                    )
-                )
-            communalInteractor.setTransitionState(transitionState)
-            progress.value = .1f
-            runCurrent()
-
-            // THEN a transition from LOCKSCREEN => GLANCEABLE_HUB should occur
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromLockscreenTransitionInteractor::class.simpleName,
-                    from = KeyguardState.LOCKSCREEN,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                    animatorAssertion = { it.isNull() }, // transition should be manually animated
-                )
-
-            // WHEN the user stops dragging and the glanceable hub opening is cancelled
-            clearInvocations(transitionRepository)
-            runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.GLANCEABLE_HUB)
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(currentScene)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            // THEN a transition from LOCKSCREEN => GLANCEABLE_HUB should occur
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromLockscreenTransitionInteractor::class.simpleName,
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.LOCKSCREEN,
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @DisableSceneContainer
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun lockscreenToGlanceableHub_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN a prior transition has run to LOCKSCREEN
@@ -1696,86 +1447,6 @@
 
     @Test
     @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun glanceableHubToLockscreen() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to GLANCEABLE_HUB
-            runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.GLANCEABLE_HUB)
-            runCurrent()
-
-            // WHEN a transition away from glanceable hub starts
-            val currentScene = CommunalScenes.Communal
-            val targetScene = CommunalScenes.Blank
-
-            val progress = MutableStateFlow(0f)
-            val transitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Transition(
-                        fromScene = currentScene,
-                        toScene = targetScene,
-                        currentScene = flowOf(targetScene),
-                        progress = progress,
-                        isInitiatedByUserInput = false,
-                        isUserInputOngoing = flowOf(false),
-                    )
-                )
-            communalInteractor.setTransitionState(transitionState)
-            progress.value = .1f
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromGlanceableHubTransitionInteractor::class.simpleName,
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.LOCKSCREEN,
-                    animatorAssertion = { it.isNull() }, // transition should be manually animated
-                )
-
-            // WHEN the user stops dragging and the glanceable hub closing is cancelled
-            clearInvocations(transitionRepository)
-            runTransitionAndSetWakefulness(KeyguardState.GLANCEABLE_HUB, KeyguardState.LOCKSCREEN)
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(currentScene)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    from = KeyguardState.LOCKSCREEN,
-                    to = KeyguardState.GLANCEABLE_HUB,
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun glanceableHubToDozing() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to GLANCEABLE_HUB
-            runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.GLANCEABLE_HUB)
-
-            // WHEN the device begins to sleep
-            powerInteractor.setAsleepForTest()
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromGlanceableHubTransitionInteractor::class.simpleName,
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.DOZING,
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @DisableSceneContainer
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun glanceableHubToDozing_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN a prior transition has run to GLANCEABLE_HUB
@@ -1844,39 +1515,6 @@
 
     @Test
     @BrokenWithSceneContainer(339465026)
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun glanceableHubToOccluded() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to GLANCEABLE_HUB
-            runTransitionAndSetWakefulness(KeyguardState.GONE, KeyguardState.GLANCEABLE_HUB)
-            runCurrent()
-
-            // GIVEN the device is idle on the glanceable hub
-            val idleTransitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(CommunalScenes.Communal)
-                )
-            communalInteractor.setTransitionState(idleTransitionState)
-            runCurrent()
-
-            // WHEN the keyguard is occluded
-            keyguardRepository.setKeyguardOccluded(true)
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromGlanceableHubTransitionInteractor::class.simpleName,
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.OCCLUDED,
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @BrokenWithSceneContainer(339465026)
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun glanceableHubToOccluded_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN device is not dreaming
@@ -1905,30 +1543,6 @@
 
     @Test
     @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun glanceableHubToGone() =
-        testScope.runTest {
-            // GIVEN a prior transition has run to GLANCEABLE_HUB
-            runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.GLANCEABLE_HUB)
-
-            // WHEN keyguard goes away
-            keyguardRepository.setKeyguardGoingAway(true)
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromGlanceableHubTransitionInteractor::class.simpleName,
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.GONE,
-                    animatorAssertion = { it.isNotNull() },
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
-    @DisableSceneContainer
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun glanceableHubToGone_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN a prior transition has run to GLANCEABLE_HUB
@@ -1953,7 +1567,7 @@
 
     @Test
     @DisableSceneContainer
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_GLANCEABLE_HUB_V2)
+    @EnableFlags(FLAG_GLANCEABLE_HUB_V2)
     fun glanceableHubToDreaming_v2() =
         testScope.runTest {
             kosmos.setCommunalV2Enabled(true)
@@ -1985,55 +1599,7 @@
         }
 
     @Test
-    @DisableSceneContainer
-    @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
-    fun glanceableHubToDreaming() =
-        testScope.runTest {
-            runCurrent()
-
-            // GIVEN that we are dreaming and not dozing
-            keyguardRepository.setDreaming(true)
-            keyguardRepository.setDozeTransitionModel(
-                DozeTransitionModel(from = DozeStateModel.DOZE, to = DozeStateModel.FINISH)
-            )
-            advanceTimeBy(600L)
-
-            // GIVEN a prior transition has run to GLANCEABLE_HUB
-            runTransitionAndSetWakefulness(KeyguardState.DREAMING, KeyguardState.GLANCEABLE_HUB)
-            runCurrent()
-
-            // WHEN a transition away from glanceable hub starts
-            val currentScene = CommunalScenes.Communal
-            val targetScene = CommunalScenes.Blank
-
-            val transitionState =
-                MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Transition(
-                        fromScene = currentScene,
-                        toScene = targetScene,
-                        currentScene = flowOf(targetScene),
-                        progress = flowOf(0f, 0.1f),
-                        isInitiatedByUserInput = false,
-                        isUserInputOngoing = flowOf(false),
-                    )
-                )
-            communalSceneInteractor.setTransitionState(transitionState)
-            runCurrent()
-
-            assertThat(transitionRepository)
-                .startedTransition(
-                    ownerName = FromGlanceableHubTransitionInteractor::class.simpleName,
-                    from = KeyguardState.GLANCEABLE_HUB,
-                    to = KeyguardState.DREAMING,
-                    animatorAssertion = { it.isNull() }, // transition should be manually animated
-                )
-
-            coroutineContext.cancelChildren()
-        }
-
-    @Test
     @BrokenWithSceneContainer(339465026)
-    @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR)
     fun glanceableHubToOccludedDoesNotTriggerWhenDreamStateChanges_communalKtfRefactor() =
         testScope.runTest {
             // GIVEN that we are dreaming and not dozing
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorTest.kt
index a814953..561eee7 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorTest.kt
@@ -185,7 +185,7 @@
                 canWake,
             )
 
-            kosmos.keyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout(null)
+            kosmos.keyguardServiceShowLockscreenInteractor.onKeyguardServiceDoKeyguardTimeout()
             runCurrent()
 
             assertEquals(
@@ -209,7 +209,7 @@
                 canWake,
             )
 
-            kosmos.keyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout(null)
+            kosmos.keyguardServiceShowLockscreenInteractor.onKeyguardServiceDoKeyguardTimeout()
             runCurrent()
 
             assertEquals(
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlowTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlowTest.kt
index a0fed6b..0ec3173 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlowTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlowTest.kt
@@ -57,9 +57,7 @@
                     duration = 1000.milliseconds,
                     edge = Edge.create(from = Scenes.Gone, to = DREAMING),
                 )
-                .setupWithoutSceneContainer(
-                    edge = Edge.create(from = GONE, to = DREAMING),
-                )
+                .setupWithoutSceneContainer(edge = Edge.create(from = GONE, to = DREAMING))
     }
 
     @Test(expected = IllegalArgumentException::class)
@@ -75,7 +73,7 @@
                 underTest.sharedFlow(
                     startTime = 300.milliseconds,
                     duration = 800.milliseconds,
-                    onStep = { it }
+                    onStep = { it },
                 )
         }
 
@@ -112,6 +110,17 @@
         }
 
     @Test
+    fun onStepReturnsNullEmitsNothing() =
+        testScope.runTest {
+            val flow = underTest.sharedFlow(duration = 100.milliseconds, onStep = { null })
+            var animationValues = collectLastValue(flow)
+            runCurrent()
+
+            repository.sendTransitionStep(step(0.5f, TransitionState.RUNNING))
+            assertThat(animationValues()).isNull()
+        }
+
+    @Test
     fun usesStartTime() =
         testScope.runTest {
             val flow =
@@ -166,11 +175,7 @@
     @Test
     fun usesOnStepToDoubleValue() =
         testScope.runTest {
-            val flow =
-                underTest.sharedFlow(
-                    duration = 1000.milliseconds,
-                    onStep = { it * 2 },
-                )
+            val flow = underTest.sharedFlow(duration = 1000.milliseconds, onStep = { it * 2 })
             val animationValues by collectLastValue(flow)
             runCurrent()
 
@@ -190,10 +195,7 @@
     fun usesOnStepToDoubleValueWithState() =
         testScope.runTest {
             val flow =
-                underTest.sharedFlowWithState(
-                    duration = 1000.milliseconds,
-                    onStep = { it * 2 },
-                )
+                underTest.sharedFlowWithState(duration = 1000.milliseconds, onStep = { it * 2 })
             val animationValues by collectLastValue(flow)
             runCurrent()
 
@@ -204,7 +206,7 @@
                         from = GONE,
                         to = DREAMING,
                         transitionState = TransitionState.STARTED,
-                        value = 0f
+                        value = 0f,
                     )
                 )
             repository.sendTransitionStep(step(0.3f, TransitionState.RUNNING))
@@ -214,7 +216,7 @@
                         from = GONE,
                         to = DREAMING,
                         transitionState = TransitionState.RUNNING,
-                        value = 0.6f
+                        value = 0.6f,
                     )
                 )
             repository.sendTransitionStep(step(0.6f, TransitionState.RUNNING))
@@ -224,7 +226,7 @@
                         from = GONE,
                         to = DREAMING,
                         transitionState = TransitionState.RUNNING,
-                        value = 1.2f
+                        value = 1.2f,
                     )
                 )
             repository.sendTransitionStep(step(0.8f, TransitionState.RUNNING))
@@ -234,7 +236,7 @@
                         from = GONE,
                         to = DREAMING,
                         transitionState = TransitionState.RUNNING,
-                        value = 1.6f
+                        value = 1.6f,
                     )
                 )
             repository.sendTransitionStep(step(1f, TransitionState.RUNNING))
@@ -244,7 +246,7 @@
                         from = GONE,
                         to = DREAMING,
                         transitionState = TransitionState.RUNNING,
-                        value = 2f
+                        value = 2f,
                     )
                 )
             repository.sendTransitionStep(step(1f, TransitionState.FINISHED))
@@ -254,7 +256,7 @@
                         from = GONE,
                         to = DREAMING,
                         transitionState = TransitionState.FINISHED,
-                        value = null
+                        value = null,
                     )
                 )
         }
@@ -262,11 +264,7 @@
     @Test
     fun sameFloatValueWithTheSameTransitionStateDoesNotEmitTwice() =
         testScope.runTest {
-            val flow =
-                underTest.sharedFlow(
-                    duration = 1000.milliseconds,
-                    onStep = { it },
-                )
+            val flow = underTest.sharedFlow(duration = 1000.milliseconds, onStep = { it })
             val values by collectValues(flow)
             runCurrent()
 
@@ -280,11 +278,7 @@
     @Test
     fun sameFloatValueWithADifferentTransitionStateDoesEmitTwice() =
         testScope.runTest {
-            val flow =
-                underTest.sharedFlow(
-                    duration = 1000.milliseconds,
-                    onStep = { it },
-                )
+            val flow = underTest.sharedFlow(duration = 1000.milliseconds, onStep = { it })
             val values by collectValues(flow)
             runCurrent()
 
@@ -302,14 +296,14 @@
 
     private fun step(
         value: Float,
-        state: TransitionState = TransitionState.RUNNING
+        state: TransitionState = TransitionState.RUNNING,
     ): TransitionStep {
         return TransitionStep(
             from = GONE,
             to = DREAMING,
             value = value,
             transitionState = state,
-            ownerName = "GoneToDreamingTransitionViewModelTest"
+            ownerName = "GoneToDreamingTransitionViewModelTest",
         )
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DeviceEntryBackgroundViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DeviceEntryBackgroundViewModelTest.kt
index c8fade3..6648ae2 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DeviceEntryBackgroundViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DeviceEntryBackgroundViewModelTest.kt
@@ -24,6 +24,7 @@
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
 import com.android.systemui.keyguard.shared.model.KeyguardState
 import com.android.systemui.keyguard.shared.model.TransitionState
+import com.android.systemui.keyguard.shared.model.TransitionState.FINISHED
 import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING
 import com.android.systemui.keyguard.shared.model.TransitionState.STARTED
 import com.android.systemui.keyguard.shared.model.TransitionStep
@@ -63,7 +64,15 @@
             )
             runCurrent()
 
-            assertThat(alpha).isEqualTo(0.0f)
+            assertThat(alpha).isEqualTo(1.0f)
+
+            kosmos.fakeKeyguardTransitionRepository.sendTransitionSteps(
+                listOf(lockscreenToDozing(1f, FINISHED)),
+                testScope,
+            )
+            runCurrent()
+
+            assertThat(alpha).isEqualTo(0f)
         }
 
     private fun lockscreenToDozing(value: Float, state: TransitionState = RUNNING): TransitionStep {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt
index cf81237..f357d0c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt
@@ -29,7 +29,6 @@
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository
 import com.android.systemui.authentication.shared.model.AuthenticationMethodModel
-import com.android.systemui.communal.domain.interactor.setCommunalAvailable
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.deviceentry.data.repository.fakeDeviceEntryRepository
 import com.android.systemui.flags.EnableSceneContainer
@@ -42,7 +41,7 @@
 import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.TransitionKeys
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
 import com.android.systemui.shade.data.repository.shadeRepository
 import com.android.systemui.shade.domain.interactor.disableDualShade
 import com.android.systemui.shade.domain.interactor.enableDualShade
@@ -65,13 +64,12 @@
 class LockscreenUserActionsViewModelTest : SysuiTestCase() {
 
     companion object {
-        private const val parameterCount = 7
+        private const val parameterCount = 6
 
         @Parameters(
             name =
                 "canSwipeToEnter={0}, downWithTwoPointers={1}, downFromEdge={2}," +
-                    " isSingleShade={3}, isCommunalAvailable={4}, isShadeTouchable={5}," +
-                    " isOccluded={6}"
+                    " isSingleShade={3}, isShadeTouchable={4}, isOccluded={5}"
         )
         @JvmStatic
         fun combinations() = buildList {
@@ -82,9 +80,8 @@
                             /* downWithTwoPointers= */ combination and 2 != 0,
                             /* downFromEdge= */ combination and 4 != 0,
                             /* isSingleShade= */ combination and 8 != 0,
-                            /* isCommunalAvailable= */ combination and 16 != 0,
-                            /* isShadeTouchable= */ combination and 32 != 0,
-                            /* isOccluded= */ combination and 64 != 0,
+                            /* isShadeTouchable= */ combination and 16 != 0,
+                            /* isOccluded= */ combination and 32 != 0,
                         )
                         .also { check(it.size == parameterCount) }
                 )
@@ -145,17 +142,6 @@
                 else -> Scenes.Bouncer
             }
         }
-
-        private fun expectedStartDestination(
-            isCommunalAvailable: Boolean,
-            isShadeTouchable: Boolean,
-        ): SceneKey? {
-            return when {
-                !isShadeTouchable -> null
-                isCommunalAvailable -> Scenes.Communal
-                else -> null
-            }
-        }
     }
 
     private val kosmos = testKosmos()
@@ -166,9 +152,8 @@
     @JvmField @Parameter(1) var downWithTwoPointers: Boolean = false
     @JvmField @Parameter(2) var downFromEdge: Boolean = false
     @JvmField @Parameter(3) var isNarrowScreen: Boolean = true
-    @JvmField @Parameter(4) var isCommunalAvailable: Boolean = false
-    @JvmField @Parameter(5) var isShadeTouchable: Boolean = false
-    @JvmField @Parameter(6) var isOccluded: Boolean = false
+    @JvmField @Parameter(4) var isShadeTouchable: Boolean = false
+    @JvmField @Parameter(5) var isOccluded: Boolean = false
 
     private val underTest by lazy { kosmos.lockscreenUserActionsViewModel }
 
@@ -188,7 +173,6 @@
             )
             sceneInteractor.changeScene(Scenes.Lockscreen, "reason")
             kosmos.shadeRepository.setShadeLayoutWide(!isNarrowScreen)
-            kosmos.setCommunalAvailable(isCommunalAvailable)
             kosmos.fakePowerRepository.updateWakefulness(
                 rawState =
                     if (isShadeTouchable) {
@@ -246,22 +230,6 @@
                         isShadeTouchable = isShadeTouchable,
                     )
                 )
-
-            val startScene by
-                collectLastValue(
-                    (userActions?.get(Swipe.Start) as? UserActionResult.ChangeScene)
-                        ?.toScene
-                        ?.let { scene -> kosmos.sceneInteractor.resolveSceneFamily(scene) }
-                        ?: flowOf(null)
-                )
-
-            assertThat(startScene)
-                .isEqualTo(
-                    expectedStartDestination(
-                        isCommunalAvailable = isCommunalAvailable,
-                        isShadeTouchable = isShadeTouchable,
-                    )
-                )
         }
 
     @Test
@@ -279,7 +247,6 @@
             )
             sceneInteractor.changeScene(Scenes.Lockscreen, "reason")
             kosmos.enableDualShade(wideLayout = !isNarrowScreen)
-            kosmos.setCommunalAvailable(isCommunalAvailable)
             kosmos.fakePowerRepository.updateWakefulness(
                 rawState =
                     if (isShadeTouchable) {
@@ -308,20 +275,20 @@
                 assertThat(downDestination?.transitionKey).isNull()
             }
 
-            val downFromTopRightDestination =
+            val downFromEndHalfDestination =
                 userActions?.get(
                     Swipe.Down(
-                        fromSource = SceneContainerEdge.TopRight,
+                        fromSource = SceneContainerArea.EndHalf,
                         pointerCount = if (downWithTwoPointers) 2 else 1,
                     )
                 )
             when {
-                !isShadeTouchable -> assertThat(downFromTopRightDestination).isNull()
-                downWithTwoPointers -> assertThat(downFromTopRightDestination).isNull()
+                !isShadeTouchable -> assertThat(downFromEndHalfDestination).isNull()
+                downWithTwoPointers -> assertThat(downFromEndHalfDestination).isNull()
                 else -> {
-                    assertThat(downFromTopRightDestination)
+                    assertThat(downFromEndHalfDestination)
                         .isEqualTo(ShowOverlay(Overlays.QuickSettingsShade))
-                    assertThat(downFromTopRightDestination?.transitionKey).isNull()
+                    assertThat(downFromEndHalfDestination?.transitionKey).isNull()
                 }
             }
 
@@ -340,21 +307,5 @@
                         isShadeTouchable = isShadeTouchable,
                     )
                 )
-
-            val startScene by
-                collectLastValue(
-                    (userActions?.get(Swipe.Start) as? UserActionResult.ChangeScene)
-                        ?.toScene
-                        ?.let { scene -> kosmos.sceneInteractor.resolveSceneFamily(scene) }
-                        ?: flowOf(null)
-                )
-
-            assertThat(startScene)
-                .isEqualTo(
-                    expectedStartDestination(
-                        isCommunalAvailable = isCommunalAvailable,
-                        isShadeTouchable = isShadeTouchable,
-                    )
-                )
         }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/lowlightclock/LowLightMonitorTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/lowlightclock/LowLightMonitorTest.java
similarity index 87%
rename from packages/SystemUI/tests/src/com/android/systemui/lowlightclock/LowLightMonitorTest.java
rename to packages/SystemUI/multivalentTests/src/com/android/systemui/lowlightclock/LowLightMonitorTest.java
index 69485e8..b177e07 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/lowlightclock/LowLightMonitorTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/lowlightclock/LowLightMonitorTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,8 +30,9 @@
 
 import android.content.ComponentName;
 import android.content.pm.PackageManager;
-import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 
 import com.android.dream.lowlight.LowLightDreamManager;
@@ -39,6 +40,8 @@
 import com.android.systemui.keyguard.ScreenLifecycle;
 import com.android.systemui.shared.condition.Condition;
 import com.android.systemui.shared.condition.Monitor;
+import com.android.systemui.util.concurrency.FakeExecutor;
+import com.android.systemui.util.time.FakeSystemClock;
 
 import dagger.Lazy;
 
@@ -53,7 +56,8 @@
 import java.util.Set;
 
 @SmallTest
-@RunWith(AndroidTestingRunner.class)
+@RunWith(AndroidJUnit4.class)
+@TestableLooper.RunWithLooper()
 public class LowLightMonitorTest extends SysuiTestCase {
 
     @Mock
@@ -78,6 +82,8 @@
     @Mock
     private ComponentName mDreamComponent;
 
+    FakeExecutor mBackgroundExecutor = new FakeExecutor(new FakeSystemClock());
+
     Condition mCondition = mock(Condition.class);
     Set<Condition> mConditionSet = Set.of(mCondition);
 
@@ -91,12 +97,13 @@
         when(mLazyConditions.get()).thenReturn(mConditionSet);
         mLowLightMonitor = new LowLightMonitor(mLowLightDreamManagerLazy,
             mMonitor, mLazyConditions, mScreenLifecycle, mLogger, mDreamComponent,
-                mPackageManager);
+                mPackageManager, mBackgroundExecutor);
     }
 
     @Test
     public void testSetAmbientLowLightWhenInLowLight() {
         mLowLightMonitor.onConditionsChanged(true);
+        mBackgroundExecutor.runAllReady();
         // Verify setting low light when condition is true
         verify(mLowLightDreamManager).setAmbientLightMode(AMBIENT_LIGHT_MODE_LOW_LIGHT);
     }
@@ -105,6 +112,7 @@
     public void testExitAmbientLowLightWhenNotInLowLight() {
         mLowLightMonitor.onConditionsChanged(true);
         mLowLightMonitor.onConditionsChanged(false);
+        mBackgroundExecutor.runAllReady();
         // Verify ambient light toggles back to light mode regular
         verify(mLowLightDreamManager).setAmbientLightMode(AMBIENT_LIGHT_MODE_REGULAR);
     }
@@ -112,6 +120,7 @@
     @Test
     public void testStartMonitorLowLightConditionsWhenScreenTurnsOn() {
         mLowLightMonitor.onScreenTurnedOn();
+        mBackgroundExecutor.runAllReady();
 
         // Verify subscribing to low light conditions monitor when screen turns on.
         verify(mMonitor).addSubscription(any());
@@ -125,6 +134,7 @@
 
         // Verify removing subscription when screen turns off.
         mLowLightMonitor.onScreenTurnedOff();
+        mBackgroundExecutor.runAllReady();
         verify(mMonitor).removeSubscription(token);
     }
 
@@ -135,6 +145,7 @@
 
         mLowLightMonitor.onScreenTurnedOn();
         mLowLightMonitor.onScreenTurnedOn();
+        mBackgroundExecutor.runAllReady();
         // Verify subscription is only added once.
         verify(mMonitor, times(1)).addSubscription(any());
     }
@@ -146,6 +157,7 @@
 
         mLowLightMonitor.onScreenTurnedOn();
         mLowLightMonitor.onScreenTurnedOn();
+        mBackgroundExecutor.runAllReady();
         Set<Condition> conditions = captureConditions();
         // Verify Monitor is subscribed to the expected conditions
         assertThat(conditions).isEqualTo(mConditionSet);
@@ -154,7 +166,7 @@
     @Test
     public void testNotUnsubscribeIfNotSubscribedWhenScreenTurnsOff() {
         mLowLightMonitor.onScreenTurnedOff();
-
+        mBackgroundExecutor.runAllReady();
         // Verify doesn't remove subscription since there is none.
         verify(mMonitor, never()).removeSubscription(any());
     }
@@ -163,6 +175,7 @@
     public void testSubscribeIfScreenIsOnWhenStarting() {
         when(mScreenLifecycle.getScreenState()).thenReturn(SCREEN_ON);
         mLowLightMonitor.start();
+        mBackgroundExecutor.runAllReady();
         // Verify to add subscription on start if the screen state is on
         verify(mMonitor, times(1)).addSubscription(any());
     }
@@ -170,9 +183,11 @@
     @Test
     public void testNoSubscribeIfDreamNotPresent() {
         LowLightMonitor lowLightMonitor = new LowLightMonitor(mLowLightDreamManagerLazy,
-                mMonitor, mLazyConditions, mScreenLifecycle, mLogger, null, mPackageManager);
+                mMonitor, mLazyConditions, mScreenLifecycle, mLogger, null, mPackageManager,
+                mBackgroundExecutor);
         when(mScreenLifecycle.getScreenState()).thenReturn(SCREEN_ON);
         lowLightMonitor.start();
+        mBackgroundExecutor.runAllReady();
         verify(mScreenLifecycle, never()).addObserver(any());
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt
index d073cf1..c2f0ab9 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt
@@ -16,8 +16,11 @@
 
 package com.android.systemui.media.controls.ui.view
 
+import android.content.res.Resources
 import android.testing.TestableLooper
 import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
@@ -25,16 +28,21 @@
 import com.android.systemui.plugins.FalsingManager
 import com.android.systemui.qs.PageIndicator
 import com.android.systemui.util.concurrency.FakeExecutor
-import com.android.systemui.util.mockito.eq
-import com.android.systemui.util.mockito.whenever
 import com.android.systemui.util.time.FakeSystemClock
+import com.android.wm.shell.shared.animation.PhysicsAnimatorTestUtils
+import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyFloat
 import org.mockito.Mock
 import org.mockito.Mockito.anyInt
+import org.mockito.Mockito.eq
+import org.mockito.Mockito.never
 import org.mockito.Mockito.verify
 import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
 
 @SmallTest
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
@@ -42,7 +50,9 @@
 class MediaCarouselScrollHandlerTest : SysuiTestCase() {
 
     private val carouselWidth = 1038
+    private val settingsButtonWidth = 200
     private val motionEventUp = MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP, 0f, 0f, 0)
+    private lateinit var testableLooper: TestableLooper
 
     @Mock lateinit var mediaCarousel: MediaScrollView
     @Mock lateinit var pageIndicator: PageIndicator
@@ -53,6 +63,9 @@
     @Mock lateinit var falsingManager: FalsingManager
     @Mock lateinit var logSmartspaceImpression: (Boolean) -> Unit
     @Mock lateinit var logger: MediaUiEventLogger
+    @Mock lateinit var contentContainer: ViewGroup
+    @Mock lateinit var settingsButton: View
+    @Mock lateinit var resources: Resources
 
     lateinit var executor: FakeExecutor
     private val clock = FakeSystemClock()
@@ -63,6 +76,11 @@
     fun setup() {
         MockitoAnnotations.initMocks(this)
         executor = FakeExecutor(clock)
+        testableLooper = TestableLooper.get(this)
+        PhysicsAnimatorTestUtils.prepareForTest()
+        PhysicsAnimatorTestUtils.setAllAnimationsBlock(true)
+
+        whenever(mediaCarousel.contentContainer).thenReturn(contentContainer)
         mediaCarouselScrollHandler =
             MediaCarouselScrollHandler(
                 mediaCarousel,
@@ -74,13 +92,17 @@
                 closeGuts,
                 falsingManager,
                 logSmartspaceImpression,
-                logger
+                logger,
             )
         mediaCarouselScrollHandler.playerWidthPlusPadding = carouselWidth
-
         whenever(mediaCarousel.touchListener).thenReturn(mediaCarouselScrollHandler.touchListener)
     }
 
+    @After
+    fun tearDown() {
+        PhysicsAnimatorTestUtils.tearDown()
+    }
+
     @Test
     fun testCarouselScroll_shortScroll() {
         whenever(mediaCarousel.isLayoutRtl).thenReturn(false)
@@ -128,4 +150,109 @@
 
         verify(mediaCarousel).smoothScrollTo(eq(0), anyInt())
     }
+
+    @Test
+    fun testCarouselScrollByStep_scrollRight() {
+        setupMediaContainer(visibleIndex = 0)
+
+        mediaCarouselScrollHandler.scrollByStep(1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel).smoothScrollTo(eq(carouselWidth), anyInt())
+    }
+
+    @Test
+    fun testCarouselScrollByStep_scrollLeft() {
+        setupMediaContainer(visibleIndex = 1)
+
+        mediaCarouselScrollHandler.scrollByStep(-1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel).smoothScrollTo(eq(0), anyInt())
+    }
+
+    @Test
+    fun testCarouselScrollByStep_scrollRight_alreadyAtEnd() {
+        setupMediaContainer(visibleIndex = 1)
+
+        mediaCarouselScrollHandler.scrollByStep(1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel, never()).smoothScrollTo(anyInt(), anyInt())
+        verify(mediaCarousel).animationTargetX = eq(-settingsButtonWidth.toFloat())
+    }
+
+    @Test
+    fun testCarouselScrollByStep_scrollLeft_alreadyAtStart() {
+        setupMediaContainer(visibleIndex = 0)
+
+        mediaCarouselScrollHandler.scrollByStep(-1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel, never()).smoothScrollTo(anyInt(), anyInt())
+        verify(mediaCarousel).animationTargetX = eq(settingsButtonWidth.toFloat())
+    }
+
+    @Test
+    fun testCarouselScrollByStep_scrollLeft_alreadyAtStart_isRTL() {
+        setupMediaContainer(visibleIndex = 0)
+        PhysicsAnimatorTestUtils.setAllAnimationsBlock(true)
+        whenever(mediaCarousel.isLayoutRtl).thenReturn(true)
+
+        mediaCarouselScrollHandler.scrollByStep(-1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel, never()).smoothScrollTo(anyInt(), anyInt())
+        verify(mediaCarousel).animationTargetX = eq(-settingsButtonWidth.toFloat())
+    }
+
+    @Test
+    fun testCarouselScrollByStep_scrollRight_alreadyAtEnd_isRTL() {
+        setupMediaContainer(visibleIndex = 1)
+        PhysicsAnimatorTestUtils.setAllAnimationsBlock(true)
+        whenever(mediaCarousel.isLayoutRtl).thenReturn(true)
+
+        mediaCarouselScrollHandler.scrollByStep(1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel, never()).smoothScrollTo(anyInt(), anyInt())
+        verify(mediaCarousel).animationTargetX = eq(settingsButtonWidth.toFloat())
+    }
+
+    @Test
+    fun testScrollByStep_noScroll_notDismissible() {
+        setupMediaContainer(visibleIndex = 1, showsSettingsButton = false)
+
+        mediaCarouselScrollHandler.scrollByStep(1)
+        clock.advanceTime(DISMISS_DELAY)
+        executor.runAllReady()
+
+        verify(mediaCarousel, never()).smoothScrollTo(anyInt(), anyInt())
+        verify(mediaCarousel, never()).animationTargetX = anyFloat()
+    }
+
+    private fun setupMediaContainer(visibleIndex: Int, showsSettingsButton: Boolean = true) {
+        whenever(contentContainer.childCount).thenReturn(2)
+        val child1: View = mock()
+        val child2: View = mock()
+        whenever(child1.left).thenReturn(0)
+        whenever(child2.left).thenReturn(carouselWidth)
+        whenever(contentContainer.getChildAt(0)).thenReturn(child1)
+        whenever(contentContainer.getChildAt(1)).thenReturn(child2)
+
+        whenever(settingsButton.width).thenReturn(settingsButtonWidth)
+        whenever(settingsButton.context).thenReturn(context)
+        whenever(settingsButton.resources).thenReturn(resources)
+        whenever(settingsButton.resources.getDimensionPixelSize(anyInt())).thenReturn(20)
+        mediaCarouselScrollHandler.onSettingsButtonUpdated(settingsButton)
+
+        mediaCarouselScrollHandler.visibleMediaIndex = visibleIndex
+        mediaCarouselScrollHandler.showsSettingsButton = showsSettingsButton
+    }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java
index 3078a94..95d9c8f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java
@@ -107,6 +107,9 @@
         when(mMediaSwitchingController.getDeviceIconCompat(mMediaDevice2)).thenReturn(mIconCompat);
         when(mMediaSwitchingController.getCurrentConnectedMediaDevice()).thenReturn(mMediaDevice1);
         when(mMediaSwitchingController.isActiveRemoteDevice(mMediaDevice1)).thenReturn(true);
+        when(mMediaSwitchingController.getSessionVolumeMax()).thenReturn(TEST_MAX_VOLUME);
+        when(mMediaSwitchingController.getSessionVolume()).thenReturn(TEST_CURRENT_VOLUME);
+        when(mMediaSwitchingController.getSessionName()).thenReturn(TEST_SESSION_NAME);
         when(mIconCompat.toIcon(mContext)).thenReturn(mIcon);
         when(mMediaDevice1.getName()).thenReturn(TEST_DEVICE_NAME_1);
         when(mMediaDevice1.getId()).thenReturn(TEST_DEVICE_ID_1);
@@ -163,6 +166,7 @@
                 mContext.getText(R.string.media_output_dialog_pairing_new).toString());
     }
 
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void onBindViewHolder_bindGroup_withSessionName_verifyView() {
         when(mMediaSwitchingController.getSelectedMediaDevice())
@@ -184,6 +188,7 @@
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
     }
 
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void onBindViewHolder_bindGroup_noSessionName_verifyView() {
         when(mMediaSwitchingController.getSelectedMediaDevice())
@@ -232,6 +237,7 @@
         assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE);
     }
 
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void onBindViewHolder_bindConnectedRemoteDevice_verifyView() {
         when(mMediaSwitchingController.getSelectableMediaDevice())
@@ -246,6 +252,7 @@
         assertThat(mViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE);
     }
@@ -297,6 +304,7 @@
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.VISIBLE);
     }
 
     @Test
@@ -312,12 +320,12 @@
         assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1);
         assertThat(mViewHolder.mStatusIcon.getVisibility()).isEqualTo(View.GONE);
-        assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.VISIBLE);
     }
 
     @Test
@@ -327,6 +335,7 @@
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
 
         assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE);
+        assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1);
@@ -342,6 +351,8 @@
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
 
         assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE);
+        assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE);
+        assertThat(mViewHolder.mContainerLayout.isFocusable()).isTrue();
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1);
@@ -375,6 +386,7 @@
         verify(mMediaSwitchingController).logInteractionAdjustVolume(mMediaDevice1);
     }
 
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void onBindViewHolder_bindSelectableDevice_verifyView() {
         List<MediaDevice> selectableDevices = new ArrayList<>();
@@ -383,10 +395,57 @@
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);
 
         assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE);
+        assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mCheckBox.isChecked()).isFalse();
+        assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2);
         assertThat(mViewHolder.mContainerLayout.isFocusable()).isTrue();
+
+        mViewHolder.mCheckBox.performClick();
+        verify(mMediaSwitchingController).addDeviceToPlayMedia(mMediaDevice2);
+    }
+
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
+    @Test
+    public void onBindViewHolder_bindDeselectableDevice_verifyView() {
+        when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn(
+                List.of(mMediaDevice1, mMediaDevice2));
+        when(mMediaSwitchingController.getDeselectableMediaDevice()).thenReturn(
+                List.of(mMediaDevice1, mMediaDevice2));
+        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);
+
+        assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mCheckBox.isChecked()).isTrue();
+        assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.GONE);
+
+        mViewHolder.mCheckBox.performClick();
+        verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice2);
+    }
+
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
+    @Test
+    public void onBindViewHolder_changingSelectedValue_doesntTriggerChangeListener() {
+        List<MediaDevice> selectableDevices = List.of(mMediaDevice2);
+        List<MediaDevice> selectedDevices = new ArrayList<>();
+        selectedDevices.add(mMediaDevice1);
+        when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(selectableDevices);
+        when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn(selectedDevices);
+
+        // mMediaDevice2 is selected
+        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);
+        assertThat(mViewHolder.mCheckBox.isChecked()).isFalse();
+
+        // changing the selected state programmatically (not a user click)
+        selectedDevices.add(mMediaDevice2);
+        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);
+        assertThat(mViewHolder.mCheckBox.isChecked()).isTrue();
+
+        // The onCheckedChangeListener is not invoked
+        verify(mMediaSwitchingController, never()).addDeviceToPlayMedia(mMediaDevice2);
+        verify(mMediaSwitchingController, never()).removeDeviceFromPlayMedia(mMediaDevice2);
     }
 
     @Test
@@ -618,6 +677,25 @@
     }
 
     @Test
+    public void onItemClick_selectionBehaviorGoToApp_sendsLaunchIntent() {
+        when(mMediaSwitchingController.isCurrentOutputDeviceHasSessionOngoing()).thenReturn(true);
+        when(mMediaDevice2.getState()).thenReturn(
+                LocalMediaManager.MediaDeviceState.STATE_DISCONNECTED);
+        when(mMediaDevice2.getSelectionBehavior()).thenReturn(SELECTION_BEHAVIOR_GO_TO_APP);
+        mMediaOutputAdapter = new MediaOutputAdapter(mMediaSwitchingController);
+        mMediaOutputAdapter.updateItems();
+        mViewHolder = (MediaOutputAdapter.MediaDeviceViewHolder) mMediaOutputAdapter
+                .onCreateViewHolder(new LinearLayout(mContext), 0);
+        MediaOutputAdapter.MediaDeviceViewHolder spyMediaDeviceViewHolder = spy(mViewHolder);
+
+        mMediaOutputAdapter.onBindViewHolder(spyMediaDeviceViewHolder, 1);
+        spyMediaDeviceViewHolder.mContainerLayout.performClick();
+
+        verify(mMediaSwitchingController).tryToLaunchInAppRoutingIntent(TEST_DEVICE_ID_2,
+                mViewHolder.mContainerLayout);
+    }
+
+    @Test
     public void onItemClick_clicksWithMutingExpectedDeviceExist_cancelsMuteAwaitConnection() {
         when(mMediaSwitchingController.isAnyDeviceTransferring()).thenReturn(false);
         when(mMediaSwitchingController.hasMutingExpectedDevice()).thenReturn(true);
@@ -786,26 +864,22 @@
         verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice1);
     }
 
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
-    public void onItemClick_onGroupActionTriggered_verifySeekbarDisabled() {
-        when(mMediaSwitchingController.getSelectedMediaDevice())
-                .thenReturn(
-                        mMediaItems.stream()
-                                .map((item) -> item.getMediaDevice().get())
-                                .collect(Collectors.toList()));
-        mMediaOutputAdapter = new MediaOutputAdapter(mMediaSwitchingController);
-        mMediaOutputAdapter.updateItems();
-        mViewHolder = (MediaOutputAdapter.MediaDeviceViewHolder) mMediaOutputAdapter
-                .onCreateViewHolder(new LinearLayout(mContext), 0);
-        List<MediaDevice> selectableDevices = new ArrayList<>();
-        selectableDevices.add(mMediaDevice1);
-        when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(selectableDevices);
+    public void onBindViewHolder_hasVolumeAdjustmentRestriction_verifySeekbarDisabled() {
+        when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn(
+                List.of(mMediaDevice1, mMediaDevice2));
+        when(mMediaSwitchingController.isCurrentConnectedDeviceRemote()).thenReturn(true);
         when(mMediaSwitchingController.hasAdjustVolumeUserRestriction()).thenReturn(true);
+        mMediaOutputAdapter.updateItems();
+
+        // Connected and selected device
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
+        assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE);
 
-        mViewHolder.mContainerLayout.performClick();
-
-        assertThat(mViewHolder.mSeekBar.isEnabled()).isFalse();
+        // Selected device
+        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);
+        assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE);
     }
 
     @Test
@@ -907,7 +981,7 @@
                 .isEqualTo(R.drawable.media_output_icon_volume);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void multipleSelectedDevices_verifySessionView() {
         initializeSession();
@@ -918,6 +992,8 @@
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
 
         assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mViewHolder.mSeekBar.getContentDescription()).isNotNull();
+        assertThat(mViewHolder.mContainerLayout.isFocusable()).isFalse();
         assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE);
@@ -926,7 +1002,7 @@
         assertThat(mViewHolder.mSeekBar.getVolume()).isEqualTo(TEST_CURRENT_VOLUME);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void multipleSelectedDevices_verifyCollapsedView() {
         initializeSession();
@@ -940,7 +1016,7 @@
         assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.GONE);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void multipleSelectedDevices_expandIconClicked_verifyInitialView() {
         initializeSession();
@@ -963,7 +1039,7 @@
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void multipleSelectedDevices_expandIconClicked_verifyCollapsedView() {
         initializeSession();
@@ -986,7 +1062,7 @@
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void deviceCanNotBeDeselected_verifyView() {
         List<MediaDevice> selectedDevices = new ArrayList<>();
@@ -1009,10 +1085,6 @@
     }
 
     private void initializeSession() {
-        when(mMediaSwitchingController.getSessionVolumeMax()).thenReturn(TEST_MAX_VOLUME);
-        when(mMediaSwitchingController.getSessionVolume()).thenReturn(TEST_CURRENT_VOLUME);
-        when(mMediaSwitchingController.getSessionName()).thenReturn(TEST_SESSION_NAME);
-
         List<MediaDevice> selectedDevices = new ArrayList<>();
         selectedDevices.add(mMediaDevice1);
         selectedDevices.add(mMediaDevice2);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModelTest.kt
index 52b9e47..52a0a54 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModelTest.kt
@@ -30,7 +30,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.scene.shared.model.Overlays
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
 import com.android.systemui.shade.ui.viewmodel.notificationsShadeOverlayActionsViewModel
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -71,13 +71,13 @@
         }
 
     @Test
-    fun downFromTopRight_switchesToQuickSettingsShade() =
+    fun downFromTopEnd_switchesToQuickSettingsShade() =
         testScope.runTest {
             val actions by collectLastValue(underTest.actions)
             underTest.activateIn(this)
 
             val action =
-                (actions?.get(Swipe.Down(fromSource = SceneContainerEdge.TopRight)) as? ShowOverlay)
+                (actions?.get(Swipe.Down(fromSource = SceneContainerArea.EndHalf)) as? ShowOverlay)
             assertThat(action?.overlay).isEqualTo(Overlays.QuickSettingsShade)
             val overlaysToHide = action?.hideCurrentOverlays as? HideCurrentOverlays.Some
             assertThat(overlaysToHide).isNotNull()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt
index 26f5d9e..0bba8bb 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt
@@ -25,6 +25,7 @@
 import com.android.systemui.authentication.domain.interactor.authenticationInteractor
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.flags.EnableSceneContainer
+import com.android.systemui.kosmos.runCurrent
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest
@@ -65,6 +66,7 @@
     fun setUp() {
         kosmos.sceneContainerStartable.start()
         kosmos.enableDualShade()
+        kosmos.runCurrent()
         underTest.activateIn(testScope)
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseSceneContainerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseSceneContainerTest.kt
index 32e5fa1..5c560ca 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseSceneContainerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseSceneContainerTest.kt
@@ -36,6 +36,7 @@
 import com.android.systemui.media.controls.ui.view.MediaHost
 import com.android.systemui.qs.customize.QSCustomizerController
 import com.android.systemui.qs.logging.QSLogger
+import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.SplitShadeStateController
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -80,6 +81,7 @@
     private val configuration = Configuration()
     @Mock private lateinit var viewTreeObserver: ViewTreeObserver
     @Mock private lateinit var mediaHost: MediaHost
+    @Mock private lateinit var configurationController: ConfigurationController
 
     private var isSplitShade = false
     private val splitShadeStateController =
@@ -258,6 +260,7 @@
             splitShadeStateController,
             longPressEffectProvider,
             mediaVisible,
+            configurationController,
         )
     }
 
@@ -272,7 +275,8 @@
         dumpManager: DumpManager,
         splitShadeStateController: SplitShadeStateController,
         longPressEffectProvider: Provider<QSLongPressEffect>,
-        private val mediaVisibleFlow: StateFlow<Boolean>
+        private val mediaVisibleFlow: StateFlow<Boolean>,
+        configurationController: ConfigurationController,
     ) :
         QSPanelControllerBase<QSPanel>(
             view,
@@ -285,12 +289,14 @@
             qsLogger,
             dumpManager,
             splitShadeStateController,
-            longPressEffectProvider
+            longPressEffectProvider,
+            configurationController,
         ) {
 
         init {
             whenever(view.dumpableTag).thenReturn(hashCode().toString())
         }
+
         override fun getMediaVisibleFlow(): StateFlow<Boolean> {
             return mediaVisibleFlow
         }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java
index ff005c2..0846b06 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java
@@ -40,6 +40,7 @@
 
 import android.content.res.Configuration;
 import android.content.res.Resources;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.FlagsParameterization;
 import android.testing.TestableLooper.RunWithLooper;
 import android.view.ContextThemeWrapper;
@@ -51,6 +52,7 @@
 import com.android.internal.logging.UiEventLogger;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.logging.testing.UiEventLoggerFake;
+import com.android.systemui.Flags;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.flags.DisableSceneContainer;
@@ -64,6 +66,7 @@
 import com.android.systemui.qs.tileimpl.QSTileImpl;
 import com.android.systemui.res.R;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController;
 import com.android.systemui.util.animation.DisappearParameters;
 
@@ -134,6 +137,8 @@
     Runnable mHorizontalLayoutListener;
     @Mock
     private ViewTreeObserver mViewTreeObserver;
+    @Mock
+    ConfigurationController mConfigurationController;
 
     private boolean mPagedTileLayoutListening = false;
 
@@ -151,7 +156,7 @@
             super(view, host, qsCustomizerController, usingMediaPlayer(),
                     mediaHost, metricsLogger, uiEventLogger,
                     qsLogger, dumpManager, new ResourcesSplitShadeStateController(),
-                    mLongPressEffectProvider);
+                    mLongPressEffectProvider, mConfigurationController);
         }
 
         private MutableStateFlow<Boolean> mMediaVisible = MutableStateFlow(false);
@@ -633,6 +638,19 @@
         );
     }
 
+    @Test
+    @EnableFlags(Flags.FLAG_SHADE_WINDOW_GOES_AROUND)
+    public void onViewAttached_registersConfigListener() {
+        reset(mConfigurationController);
+        mController.onViewAttached();
+
+        verify(mConfigurationController).addCallback(any());
+
+        mController.onViewDetached();
+
+        verify(mConfigurationController).removeCallback(any());
+    }
+
 
     private boolean usingMediaPlayer() {
         return !SceneContainerFlag.isEnabled();
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerTest.kt
index 96f6a62..0d4bc8c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QSPanelControllerTest.kt
@@ -22,6 +22,7 @@
 import com.android.systemui.settings.brightness.BrightnessController
 import com.android.systemui.settings.brightness.BrightnessSliderController
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
+import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController
 import com.android.systemui.tuner.TunerService
 import com.google.common.truth.Truth.assertThat
@@ -66,6 +67,7 @@
     @Mock private lateinit var pagedTileLayout: PagedTileLayout
     @Mock private lateinit var longPressEffectProvider: Provider<QSLongPressEffect>
     @Mock private lateinit var mediaCarouselInteractor: MediaCarouselInteractor
+    @Mock private lateinit var configurationController: ConfigurationController
 
     private val usingMediaPlayer: Boolean by lazy { !SceneContainerFlag.isEnabled }
 
@@ -108,6 +110,7 @@
                 ResourcesSplitShadeStateController(),
                 longPressEffectProvider,
                 mediaCarouselInteractor,
+                configurationController,
             )
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt
index 7880ace..3c8857f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt
@@ -17,11 +17,14 @@
 package com.android.systemui.qs
 
 import android.content.res.Configuration
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
 import android.view.ContextThemeWrapper
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.internal.logging.MetricsLogger
 import com.android.internal.logging.testing.UiEventLoggerFake
+import com.android.systemui.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.haptics.qs.QSLongPressEffect
@@ -32,6 +35,8 @@
 import com.android.systemui.qs.customize.QSCustomizerController
 import com.android.systemui.qs.logging.QSLogger
 import com.android.systemui.res.R
+import com.android.systemui.statusbar.policy.ConfigurationController
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener
 import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController
 import com.android.systemui.util.leak.RotationUtils
 import javax.inject.Provider
@@ -62,8 +67,10 @@
     @Mock private lateinit var tile: QSTile
     @Mock private lateinit var tileLayout: TileLayout
     @Captor private lateinit var captor: ArgumentCaptor<QSPanel.OnConfigurationChangedListener>
+    @Captor private lateinit var configCaptor: ArgumentCaptor<ConfigurationListener>
     @Mock private lateinit var longPressEffectProvider: Provider<QSLongPressEffect>
     @Mock private lateinit var mediaCarouselInteractor: MediaCarouselInteractor
+    @Mock private lateinit var configurationController: ConfigurationController
 
     private val usingMediaPlayer: Boolean
         get() = false
@@ -100,6 +107,7 @@
                 dumpManager,
                 longPressEffectProvider,
                 mediaCarouselInteractor,
+                configurationController,
             )
 
         controller.init()
@@ -132,7 +140,8 @@
     }
 
     @Test
-    fun mediaExpansion_afterConfigChange_inLandscape_collapsedInLandscapeTrue_updatesToCollapsed() {
+    @DisableFlags(Flags.FLAG_SHADE_WINDOW_GOES_AROUND)
+    fun mediaExpansion_afterConfigChange_inLandscape_collapsedInLandscapeTrue_updatesToCollapsed_old() {
         verify(quickQSPanel).addOnConfigurationChangedListener(captor.capture())
 
         // verify that media starts in the expanded state by default
@@ -147,7 +156,24 @@
     }
 
     @Test
-    fun mediaExpansion_afterConfigChange_landscape_collapsedInLandscapeFalse_remainsExpanded() {
+    @EnableFlags(Flags.FLAG_SHADE_WINDOW_GOES_AROUND)
+    fun mediaExpansion_afterConfigChange_inLandscape_collapsedInLandscapeTrue_updatesToCollapsed() {
+        verify(configurationController).addCallback(configCaptor.capture())
+
+        // verify that media starts in the expanded state by default
+        verify(mediaHost).expansion = MediaHostState.EXPANDED
+
+        // Rotate device, verify media size updated to collapsed
+        usingCollapsedLandscapeMedia = true
+        controller.setRotation(RotationUtils.ROTATION_LANDSCAPE)
+        configCaptor.allValues.forEach { it.onConfigChanged(Configuration.EMPTY) }
+
+        verify(mediaHost).expansion = MediaHostState.COLLAPSED
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_SHADE_WINDOW_GOES_AROUND)
+    fun mediaExpansion_afterConfigChange_landscape_collapsedInLandscapeFalse_remainsExpanded_old() {
         verify(quickQSPanel).addOnConfigurationChangedListener(captor.capture())
         reset(mediaHost)
 
@@ -158,6 +184,19 @@
         verify(mediaHost).expansion = MediaHostState.EXPANDED
     }
 
+    @Test
+    @EnableFlags(Flags.FLAG_SHADE_WINDOW_GOES_AROUND)
+    fun mediaExpansion_afterConfigChange_landscape_collapsedInLandscapeFalse_remainsExpanded() {
+        verify(configurationController).addCallback(configCaptor.capture())
+        reset(mediaHost)
+
+        usingCollapsedLandscapeMedia = false
+        controller.setRotation(RotationUtils.ROTATION_LANDSCAPE)
+        configCaptor.allValues.forEach { it.onConfigChanged(Configuration.EMPTY) }
+
+        verify(mediaHost).expansion = MediaHostState.EXPANDED
+    }
+
     class TestQuickQSPanelController(
         view: QuickQSPanel,
         qsHost: QSHost,
@@ -171,6 +210,7 @@
         dumpManager: DumpManager,
         longPressEffectProvider: Provider<QSLongPressEffect>,
         mediaCarouselInteractor: MediaCarouselInteractor,
+        configurationController: ConfigurationController,
     ) :
         QuickQSPanelController(
             view,
@@ -186,6 +226,7 @@
             ResourcesSplitShadeStateController(),
             longPressEffectProvider,
             mediaCarouselInteractor,
+            configurationController,
         ) {
 
         private var rotation = RotationUtils.ROTATION_NONE
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepositoryTest.kt
deleted file mode 100644
index e5bdc2e..0000000
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepositoryTest.kt
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs.panels.data.repository
-
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.SmallTest
-import com.android.systemui.SysuiTestCase
-import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository
-import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.kosmos.testCase
-import com.android.systemui.kosmos.testScope
-import com.android.systemui.res.R
-import com.android.systemui.testKosmos
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.test.runTest
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@SmallTest
-@RunWith(AndroidJUnit4::class)
-class PaginatedGridRepositoryTest : SysuiTestCase() {
-    private val kosmos = testKosmos()
-
-    val underTest = kosmos.paginatedGridRepository
-
-    @Test
-    fun rows_followsConfig() =
-        with(kosmos) {
-            testScope.runTest {
-                val rows by collectLastValue(underTest.rows)
-
-                setRowsInConfig(3)
-                assertThat(rows).isEqualTo(3)
-
-                setRowsInConfig(6)
-                assertThat(rows).isEqualTo(6)
-            }
-        }
-
-    private fun setRowsInConfig(rows: Int) =
-        with(kosmos) {
-            testCase.context.orCreateTestableResources.addOverride(
-                R.integer.quick_settings_paginated_grid_num_rows,
-                rows,
-            )
-            fakeConfigurationRepository.onConfigurationChange()
-        }
-}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepositoryTest.kt
index 4dcbdfa..668c606 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepositoryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepositoryTest.kt
@@ -25,11 +25,13 @@
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import com.android.systemui.settings.userFileManager
 import com.android.systemui.testKosmos
 import com.android.systemui.user.data.repository.fakeUserRepository
 import com.android.systemui.user.data.repository.userRepository
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -75,11 +77,11 @@
     @Test
     fun setLargeTilesSpecs_inSharedPreferences() {
         val setA = setOf("tileA", "tileB")
-        underTest.setLargeTilesSpecs(setA.toTileSpecs())
+        underTest.writeLargeTileSpecs(setA.toTileSpecs())
         assertThat(getLargeTilesSpecsFromSharedPreferences()).isEqualTo(setA)
 
         val setB = setOf("tileA", "tileB")
-        underTest.setLargeTilesSpecs(setB.toTileSpecs())
+        underTest.writeLargeTileSpecs(setB.toTileSpecs())
         assertThat(getLargeTilesSpecsFromSharedPreferences()).isEqualTo(setB)
     }
 
@@ -91,12 +93,12 @@
 
                 fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
                 val setA = setOf("tileA", "tileB")
-                underTest.setLargeTilesSpecs(setA.toTileSpecs())
+                underTest.writeLargeTileSpecs(setA.toTileSpecs())
                 assertThat(getLargeTilesSpecsFromSharedPreferences()).isEqualTo(setA)
 
                 fakeUserRepository.setSelectedUserInfo(ANOTHER_USER)
                 val setB = setOf("tileA", "tileB")
-                underTest.setLargeTilesSpecs(setB.toTileSpecs())
+                underTest.writeLargeTileSpecs(setB.toTileSpecs())
                 assertThat(getLargeTilesSpecsFromSharedPreferences()).isEqualTo(setB)
 
                 fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
@@ -104,6 +106,194 @@
             }
         }
 
+    @Test
+    fun setUpgradePathFromSettings_noLargeTiles_tilesSet() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+                val tiles = setOf("tileA", "tileB").toTileSpecs()
+
+                assertThat(getSharedPreferences().contains(LARGE_TILES_SPECS_KEY)).isFalse()
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.ReadFromSettings(tiles),
+                    PRIMARY_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(tiles)
+            }
+        }
+
+    @Test
+    fun setUpgradePathFromSettings_alreadyLargeTiles_tilesNotSet() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(ANOTHER_USER)
+                setLargeTilesSpecsInSharedPreferences(setOf("tileC"))
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.ReadFromSettings(setOf("tileA").toTileSpecs()),
+                    ANOTHER_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(setOf("tileC").toTileSpecs())
+            }
+        }
+
+    @Test
+    fun setUpgradePathFromSettings_emptyLargeTiles_tilesNotSet() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(ANOTHER_USER)
+                setLargeTilesSpecsInSharedPreferences(emptySet())
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.ReadFromSettings(setOf("tileA").toTileSpecs()),
+                    ANOTHER_USER_ID,
+                )
+
+                assertThat(largeTiles).isEmpty()
+            }
+        }
+
+    @Test
+    fun setUpgradePathFromSettings_nonCurrentUser_tilesSetForCorrectUser() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.ReadFromSettings(setOf("tileA").toTileSpecs()),
+                    ANOTHER_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(defaultLargeTilesRepository.defaultLargeTiles)
+
+                fakeUserRepository.setSelectedUserInfo(ANOTHER_USER)
+                assertThat(largeTiles).isEqualTo(setOf("tileA").toTileSpecs())
+            }
+        }
+
+    @Test
+    fun setUpgradePath_afterDefaultRead_noSetOnRepository_initialTilesCorrect() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+
+                val currentLargeTiles = underTest.largeTilesSpecs.first()
+
+                assertThat(currentLargeTiles).isNotEmpty()
+
+                val tiles = setOf("tileA", "tileB")
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.ReadFromSettings(tiles.toTileSpecs()),
+                    PRIMARY_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(tiles.toTileSpecs())
+            }
+        }
+
+    @Test
+    fun setUpgradePath_afterDefaultRead_largeTilesSetOnRepository_initialTilesCorrect() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+
+                val currentLargeTiles = underTest.largeTilesSpecs.first()
+
+                assertThat(currentLargeTiles).isNotEmpty()
+
+                underTest.writeLargeTileSpecs(setOf(TileSpec.create("tileC")))
+
+                val tiles = setOf("tileA", "tileB")
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.ReadFromSettings(tiles.toTileSpecs()),
+                    PRIMARY_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(setOf(TileSpec.create("tileC")))
+            }
+        }
+
+    @Test
+    fun setTilesRestored_noLargeTiles_tilesSet() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+                val tiles = setOf("tileA", "tileB").toTileSpecs()
+
+                assertThat(getSharedPreferences().contains(LARGE_TILES_SPECS_KEY)).isFalse()
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.RestoreFromBackup(tiles),
+                    PRIMARY_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(tiles)
+            }
+        }
+
+    @Test
+    fun setDefaultTilesInitial_defaultSetLarge() =
+        with(kosmos) {
+            testScope.runTest {
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.DefaultSet,
+                    PRIMARY_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(defaultLargeTilesRepository.defaultLargeTiles)
+            }
+        }
+
+    @Test
+    fun setTilesRestored_afterDefaultSet_tilesSet() =
+        with(kosmos) {
+            testScope.runTest {
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.DefaultSet,
+                    PRIMARY_USER_ID,
+                )
+                val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+                fakeUserRepository.setUserInfos(USERS)
+                fakeUserRepository.setSelectedUserInfo(PRIMARY_USER)
+                val tiles = setOf("tileA", "tileB").toTileSpecs()
+
+                underTest.setInitialOrUpgradeLargeTiles(
+                    TilesUpgradePath.RestoreFromBackup(tiles),
+                    PRIMARY_USER_ID,
+                )
+
+                assertThat(largeTiles).isEqualTo(tiles)
+            }
+        }
+
     private fun getSharedPreferences(): SharedPreferences =
         with(kosmos) {
             return userFileManager.getSharedPreferences(
@@ -121,20 +311,11 @@
         return getSharedPreferences().getStringSet(LARGE_TILES_SPECS_KEY, emptySet())!!
     }
 
-    private fun setShowLabelsInSharedPreferences(value: Boolean) {
-        getSharedPreferences().edit().putBoolean(ICON_LABELS_KEY, value).apply()
-    }
-
-    private fun getShowLabelsFromSharedPreferences(defaultValue: Boolean): Boolean {
-        return getSharedPreferences().getBoolean(ICON_LABELS_KEY, defaultValue)
-    }
-
     private fun Set<String>.toTileSpecs(): Set<TileSpec> {
         return map { TileSpec.create(it) }.toSet()
     }
 
     companion object {
-        private const val ICON_LABELS_KEY = "show_icon_labels"
         private const val LARGE_TILES_SPECS_KEY = "large_tiles_specs"
         private const val PRIMARY_USER_ID = 0
         private val PRIMARY_USER = UserInfo(PRIMARY_USER_ID, "user 0", UserInfo.FLAG_MAIN)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/LargeTilesUpgradePathsTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/LargeTilesUpgradePathsTest.kt
new file mode 100644
index 0000000..f3c1f0c
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/LargeTilesUpgradePathsTest.kt
@@ -0,0 +1,328 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.panels.domain
+
+import android.content.Context
+import android.content.Intent
+import android.content.SharedPreferences
+import android.content.res.mainResources
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.backup.BackupHelper.Companion.ACTION_RESTORE_FINISHED
+import com.android.systemui.broadcast.broadcastDispatcher
+import com.android.systemui.common.shared.model.PackageChangeModel.Empty.packageName
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.qs.panels.data.repository.QSPreferencesRepository
+import com.android.systemui.qs.panels.data.repository.defaultLargeTilesRepository
+import com.android.systemui.qs.panels.domain.interactor.qsPreferencesInteractor
+import com.android.systemui.qs.pipeline.data.repository.DefaultTilesQSHostRepository
+import com.android.systemui.qs.pipeline.data.repository.defaultTilesRepository
+import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
+import com.android.systemui.settings.userFileManager
+import com.android.systemui.testKosmos
+import com.android.systemui.user.data.repository.userRepository
+import com.google.common.truth.Truth.assertThat
+import kotlin.test.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class LargeTilesUpgradePathsTest : SysuiTestCase() {
+
+    private val kosmos =
+        testKosmos().apply { defaultTilesRepository = DefaultTilesQSHostRepository(mainResources) }
+
+    private val defaultTiles = kosmos.defaultTilesRepository.defaultTiles.toSet()
+
+    private val underTest = kosmos.qsPreferencesInteractor
+
+    private val Kosmos.userId
+        get() = userRepository.getSelectedUserInfo().id
+
+    private val Kosmos.intent
+        get() =
+            Intent(ACTION_RESTORE_FINISHED).apply {
+                `package` = packageName
+                putExtra(Intent.EXTRA_USER_ID, kosmos.userId)
+                flags = Intent.FLAG_RECEIVER_REGISTERED_ONLY
+            }
+
+    /**
+     * This test corresponds to the case of a fresh start.
+     *
+     * The resulting large tiles are the default set of large tiles.
+     */
+    @Test
+    fun defaultTiles_noDataInSharedPreferences_defaultLargeTiles() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(TilesUpgradePath.DefaultSet, userId)
+
+            assertThat(largeTiles).isEqualTo(defaultLargeTilesRepository.defaultLargeTiles)
+        }
+
+    /**
+     * This test corresponds to a user that upgraded in place from a build that didn't support large
+     * tiles to one that does. The current tiles of the user are read from settings.
+     *
+     * The resulting large tiles are those that were read from Settings.
+     */
+    @Test
+    fun upgradeInPlace_noDataInSharedPreferences_allLargeTiles() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            val tiles = setOf("a", "b", "c").toTileSpecs()
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.ReadFromSettings(tiles),
+                userId,
+            )
+
+            assertThat(largeTiles).isEqualTo(tiles)
+        }
+
+    /**
+     * This test corresponds to a fresh start, and then the user restarts the device, without ever
+     * having modified the set of large tiles.
+     *
+     * The resulting large tiles are the default large tiles that were set on the fresh start
+     */
+    @Test
+    fun defaultSet_restartDevice_largeTilesDontChange() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(TilesUpgradePath.DefaultSet, userId)
+
+            // User restarts the device, this will send a read from settings with the default
+            // set of tiles
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.ReadFromSettings(defaultTiles),
+                userId,
+            )
+
+            assertThat(largeTiles).isEqualTo(defaultLargeTilesRepository.defaultLargeTiles)
+        }
+
+    /**
+     * This test corresponds to a fresh start, following the user changing the sizes of some tiles.
+     * After that, the user restarts the device.
+     *
+     * The resulting set of large tiles are those that the user determined before restarting the
+     * device.
+     */
+    @Test
+    fun defaultSet_someSizeChanges_restart_correctSet() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            underTest.setInitialOrUpgradeLargeTilesSpecs(TilesUpgradePath.DefaultSet, userId)
+
+            underTest.setLargeTilesSpecs(largeTiles!! + setOf("a", "b").toTileSpecs())
+            val largeTilesBeforeRestart = largeTiles!!
+
+            // Restart
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.ReadFromSettings(defaultTiles),
+                userId,
+            )
+            assertThat(largeTiles).isEqualTo(largeTilesBeforeRestart)
+        }
+
+    /**
+     * This test corresponds to a user that upgraded, and after that performed some size changes.
+     * After that, the user restarts the device.
+     *
+     * The resulting set of large tiles are those that the user determined before restarting the
+     * device.
+     */
+    @Test
+    fun readFromSettings_changeSizes_restart_newLargeSet() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            val readTiles = setOf("a", "b", "c").toTileSpecs()
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.ReadFromSettings(readTiles),
+                userId,
+            )
+            underTest.setLargeTilesSpecs(emptySet())
+
+            assertThat(largeTiles).isEmpty()
+
+            // Restart
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.ReadFromSettings(readTiles),
+                userId,
+            )
+            assertThat(largeTiles).isEmpty()
+        }
+
+    /**
+     * This test corresponds to a user that upgraded from a build that didn't support tile sizes to
+     * one that does, via restore from backup. Note that there's no file in SharedPreferences to
+     * restore.
+     *
+     * The resulting set of large tiles are those that were restored from the backup.
+     */
+    @Test
+    fun restoreFromBackup_noDataInSharedPreferences_allLargeTiles() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            val tiles = setOf("a", "b", "c").toTileSpecs()
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.RestoreFromBackup(tiles),
+                userId,
+            )
+
+            assertThat(largeTiles).isEqualTo(tiles)
+        }
+
+    /**
+     * This test corresponds to a user that upgraded from a build that didn't support tile sizes to
+     * one that does, via restore from backup. However, the restore happens after SystemUI's
+     * initialization has set the tiles to default. Note that there's no file in SharedPreferences
+     * to restore.
+     *
+     * The resulting set of large tiles are those that were restored from the backup.
+     */
+    @Test
+    fun restoreFromBackup_afterDefault_noDataInSharedPreferences_allLargeTiles() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            underTest.setInitialOrUpgradeLargeTilesSpecs(TilesUpgradePath.DefaultSet, userId)
+
+            val tiles = setOf("a", "b", "c").toTileSpecs()
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.RestoreFromBackup(tiles),
+                userId,
+            )
+
+            assertThat(largeTiles).isEqualTo(tiles)
+        }
+
+    /**
+     * This test corresponds to a user that restored from a build that supported different sizes
+     * tiles. First the list of tiles is restored in Settings and then a file containing some large
+     * tiles overrides the current shared preferences file
+     *
+     * The resulting set of large tiles are those that were restored from the shared preferences
+     * backup (and not the full list).
+     */
+    @Test
+    fun restoreFromBackup_thenRestoreOfSharedPrefs_sharedPrefsAreLarge() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            val tiles = setOf("a", "b", "c").toTileSpecs()
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.RestoreFromBackup(tiles),
+                userId,
+            )
+
+            val tilesFromBackupOfSharedPrefs = setOf("a")
+            setLargeTilesSpecsInSharedPreferences(tilesFromBackupOfSharedPrefs)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(context, intent)
+
+            assertThat(largeTiles).isEqualTo(tilesFromBackupOfSharedPrefs.toTileSpecs())
+        }
+
+    /**
+     * This test corresponds to a user that restored from a build that supported different sizes
+     * tiles. However, this restore of settings happened after SystemUI's restore of the SharedPrefs
+     * containing the user's previous selections to large/small tiles.
+     *
+     * The resulting set of large tiles are those that were restored from the shared preferences
+     * backup (and not the full list).
+     */
+    @Test
+    fun restoreFromBackup_afterRestoreOfSharedPrefs_sharedPrefsAreLarge() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            val tiles = setOf("a", "b", "c").toTileSpecs()
+            val tilesFromBackupOfSharedPrefs = setOf("a")
+
+            setLargeTilesSpecsInSharedPreferences(tilesFromBackupOfSharedPrefs)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(context, intent)
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.RestoreFromBackup(tiles),
+                userId,
+            )
+
+            assertThat(largeTiles).isEqualTo(tilesFromBackupOfSharedPrefs.toTileSpecs())
+        }
+
+    /**
+     * This test corresponds to a user that upgraded from a build that didn't support tile sizes to
+     * one that does, via restore from backup. After that, the user modifies the size of some tiles
+     * and then restarts the device.
+     *
+     * The resulting set of large tiles are those after the user modifications.
+     */
+    @Test
+    fun restoreFromBackup_changeSizes_restart_newLargeSet() =
+        kosmos.runTest {
+            val largeTiles by collectLastValue(underTest.largeTilesSpecs)
+            val readTiles = setOf("a", "b", "c").toTileSpecs()
+
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.RestoreFromBackup(readTiles),
+                userId,
+            )
+            underTest.setLargeTilesSpecs(emptySet())
+
+            assertThat(largeTiles).isEmpty()
+
+            // Restart
+            underTest.setInitialOrUpgradeLargeTilesSpecs(
+                TilesUpgradePath.ReadFromSettings(readTiles),
+                userId,
+            )
+            assertThat(largeTiles).isEmpty()
+        }
+
+    private companion object {
+        private const val LARGE_TILES_SPECS_KEY = "large_tiles_specs"
+
+        private fun Kosmos.getSharedPreferences(): SharedPreferences =
+            userFileManager.getSharedPreferences(
+                QSPreferencesRepository.FILE_NAME,
+                Context.MODE_PRIVATE,
+                userRepository.getSelectedUserInfo().id,
+            )
+
+        private fun Kosmos.setLargeTilesSpecsInSharedPreferences(specs: Set<String>) {
+            getSharedPreferences().edit().putStringSet(LARGE_TILES_SPECS_KEY, specs).apply()
+        }
+
+        private fun Kosmos.getLargeTilesSpecsFromSharedPreferences(): Set<String> {
+            return getSharedPreferences().getStringSet(LARGE_TILES_SPECS_KEY, emptySet())!!
+        }
+
+        private fun Set<String>.toTileSpecs(): Set<TileSpec> {
+            return map { TileSpec.create(it) }.toSet()
+        }
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractorTest.kt
index 79acfda..9838bcb 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractorTest.kt
@@ -66,7 +66,7 @@
                 runCurrent()
 
                 // Resize it to large
-                qsPreferencesRepository.setLargeTilesSpecs(setOf(spec))
+                qsPreferencesRepository.writeLargeTileSpecs(setOf(spec))
                 runCurrent()
 
                 // Assert that the new tile was added to the large tiles set
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/TileSpecSettingsRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/TileSpecSettingsRepositoryTest.kt
index 88e3951..d9b3926 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/TileSpecSettingsRepositoryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/TileSpecSettingsRepositoryTest.kt
@@ -22,12 +22,15 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.coroutines.collectValues
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger
 import com.android.systemui.res.R
 import com.android.systemui.retail.data.repository.FakeRetailModeRepository
 import com.android.systemui.util.settings.FakeSettings
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.consumeAsFlow
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.TestScope
 import kotlinx.coroutines.test.runCurrent
@@ -90,6 +93,7 @@
                 logger,
                 retailModeRepository,
                 userTileSpecRepositoryFactory,
+                testScope.backgroundScope,
             )
     }
 
@@ -231,6 +235,43 @@
             assertThat(tiles!!).containsExactlyElementsIn(DEFAULT_TILES.toTileSpecs())
         }
 
+    @Test
+    fun readSettingsStored_emittedForUser() =
+        testScope.runTest {
+            val startingTiles = "a,b"
+            val userId = 10
+            storeTilesForUser(startingTiles, userId)
+
+            val tiles by collectLastValue(underTest.tilesSpecs(userId))
+            val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow())
+
+            assertThat(tilesRead)
+                .isEqualTo(
+                    TilesUpgradePath.ReadFromSettings(startingTiles.toTileSpecs().toSet()) to userId
+                )
+        }
+
+    @Test
+    fun readSettingsStored_multipleUsers() =
+        testScope.runTest {
+            val startingTiles10 = "a"
+            val startingTiles11 = "b,c"
+            storeTilesForUser(startingTiles10, 10)
+            storeTilesForUser(startingTiles11, 11)
+
+            val tiles10 by collectLastValue(underTest.tilesSpecs(10))
+            val tiles11 by collectLastValue(underTest.tilesSpecs(11))
+
+            val tilesRead by collectValues(underTest.tilesUpgradePath.consumeAsFlow())
+
+            assertThat(tilesRead).hasSize(2)
+            assertThat(tilesRead)
+                .containsExactly(
+                    TilesUpgradePath.ReadFromSettings(startingTiles10.toTileSpecs().toSet()) to 10,
+                    TilesUpgradePath.ReadFromSettings(startingTiles11.toTileSpecs().toSet()) to 11,
+                )
+        }
+
     private fun TestScope.storeTilesForUser(specs: String, forUser: Int) {
         secureSettings.putStringForUser(SETTING, specs, forUser)
         runCurrent()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepositoryTest.kt
index 502e179..29bd18d3 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepositoryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepositoryTest.kt
@@ -8,10 +8,12 @@
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.qs.pipeline.data.model.RestoreData
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger
 import com.android.systemui.util.settings.FakeSettings
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.flow.consumeAsFlow
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.TestScope
 import kotlinx.coroutines.test.runCurrent
@@ -312,11 +314,7 @@
             runCurrent()
 
             val restoreData =
-                RestoreData(
-                    restoredSpecs.toTileSpecs(),
-                    restoredAutoAdded.toTilesSet(),
-                    USER,
-                )
+                RestoreData(restoredSpecs.toTileSpecs(), restoredAutoAdded.toTilesSet(), USER)
             underTest.reconcileRestore(restoreData, autoAddedBeforeRestore.toTilesSet())
             runCurrent()
 
@@ -351,6 +349,74 @@
             assertThat(tiles).isEqualTo(currentTiles)
         }
 
+    @Test
+    fun noSettingsStored_noTilesReadFromSettings() =
+        testScope.runTest {
+            val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow())
+            val tiles by collectLastValue(underTest.tiles())
+
+            assertThat(tiles).isEqualTo(getDefaultTileSpecs())
+            assertThat(tilesRead).isEqualTo(TilesUpgradePath.DefaultSet)
+        }
+
+    @Test
+    fun settingsStored_tilesReadFromSettings() =
+        testScope.runTest {
+            val storedTiles = "a,b"
+            storeTiles(storedTiles)
+            val tiles by collectLastValue(underTest.tiles())
+            val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow())
+
+            assertThat(tilesRead)
+                .isEqualTo(TilesUpgradePath.ReadFromSettings(storedTiles.toTilesSet()))
+        }
+
+    @Test
+    fun noSettingsStored_tilesChanged_tilesReadFromSettingsNotChanged() =
+        testScope.runTest {
+            val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow())
+            val tiles by collectLastValue(underTest.tiles())
+
+            underTest.addTile(TileSpec.create("a"))
+            assertThat(tilesRead).isEqualTo(TilesUpgradePath.DefaultSet)
+        }
+
+    @Test
+    fun settingsStored_tilesChanged_tilesReadFromSettingsNotChanged() =
+        testScope.runTest {
+            val storedTiles = "a,b"
+            storeTiles(storedTiles)
+            val tiles by collectLastValue(underTest.tiles())
+            val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow())
+
+            underTest.addTile(TileSpec.create("c"))
+            assertThat(tilesRead)
+                .isEqualTo(TilesUpgradePath.ReadFromSettings(storedTiles.toTilesSet()))
+        }
+
+    @Test
+    fun tilesRestoredFromBackup() =
+        testScope.runTest {
+            val specsBeforeRestore = "a,b,c,d,e"
+            val restoredSpecs = "a,c,d,f"
+            val autoAddedBeforeRestore = "b,d"
+            val restoredAutoAdded = "d,e"
+
+            storeTiles(specsBeforeRestore)
+            val tiles by collectLastValue(underTest.tiles())
+            val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow())
+            runCurrent()
+
+            val restoreData =
+                RestoreData(restoredSpecs.toTileSpecs(), restoredAutoAdded.toTilesSet(), USER)
+            underTest.reconcileRestore(restoreData, autoAddedBeforeRestore.toTilesSet())
+            runCurrent()
+
+            val expected = "a,b,c,d,f"
+            assertThat(tilesRead)
+                .isEqualTo(TilesUpgradePath.RestoreFromBackup(expected.toTilesSet()))
+        }
+
     private fun getDefaultTileSpecs(): List<TileSpec> {
         return defaultTilesRepository.defaultTiles
     }
@@ -370,6 +436,7 @@
         private const val SETTING = Settings.Secure.QS_TILES
 
         private fun String.toTileSpecs() = TilesSettingConverter.toTilesList(this)
+
         private fun String.toTilesSet() = TilesSettingConverter.toTilesSet(this)
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/ScreenRecordTileTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/ScreenRecordTileTest.java
index 3a3f537..61d0c8d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/ScreenRecordTileTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/ScreenRecordTileTest.java
@@ -345,11 +345,21 @@
     public void testNotStartingAndRecording_returnDetailsViewModel() {
         when(mController.isStarting()).thenReturn(false);
         when(mController.isRecording()).thenReturn(false);
+        when(mController.isScreenCaptureDisabled()).thenReturn(false);
         mTile.getDetailsViewModel(Assert::assertNotNull);
     }
 
     @Test
     @EnableFlags(QsDetailedView.FLAG_NAME)
+    public void testRecordingDisabled_notReturnDetailsViewModel() {
+        when(mController.isStarting()).thenReturn(false);
+        when(mController.isRecording()).thenReturn(false);
+        when(mController.isScreenCaptureDisabled()).thenReturn(true);
+        mTile.getDetailsViewModel(Assert::assertNull);
+    }
+
+    @Test
+    @EnableFlags(QsDetailedView.FLAG_NAME)
     public void testStarting_notReturnDetailsViewModel() {
         when(mController.isStarting()).thenReturn(true);
         when(mController.isRecording()).thenReturn(false);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModelTest.kt
index df2dd99..b98059a 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModelTest.kt
@@ -31,7 +31,7 @@
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.qs.panels.ui.viewmodel.editModeViewModel
 import com.android.systemui.scene.shared.model.Overlays
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runTest
@@ -84,13 +84,14 @@
         }
 
     @Test
-    fun downFromTopLeft_switchesToNotificationsShade() =
+    fun downFromTopStart_switchesToNotificationsShade() =
         testScope.runTest {
             val actions by collectLastValue(underTest.actions)
             underTest.activateIn(this)
 
             val action =
-                (actions?.get(Swipe.Down(fromSource = SceneContainerEdge.TopLeft)) as? ShowOverlay)
+                (actions?.get(Swipe.Down(fromSource = SceneContainerArea.StartHalf))
+                    as? ShowOverlay)
             assertThat(action?.overlay).isEqualTo(Overlays.NotificationsShade)
             val overlaysToHide = action?.hideCurrentOverlays as? HideCurrentOverlays.Some
             assertThat(overlaysToHide).isNotNull()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt
index ec05965..bf5f9f4 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt
@@ -25,6 +25,7 @@
 import com.android.systemui.authentication.domain.interactor.authenticationInteractor
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.flags.EnableSceneContainer
+import com.android.systemui.kosmos.runCurrent
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest
@@ -68,6 +69,7 @@
     fun setUp() {
         kosmos.sceneContainerStartable.start()
         kosmos.enableDualShade()
+        kosmos.runCurrent()
         underTest.activateIn(testScope)
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt
index fd485ed..80c7026 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt
@@ -28,8 +28,10 @@
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository
 import com.android.systemui.keyguard.domain.interactor.keyguardEnabledInteractor
+import com.android.systemui.keyguard.shared.model.KeyguardState
 import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus
 import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runCurrent
 import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.data.repository.Idle
@@ -44,6 +46,8 @@
 import com.android.systemui.scene.shared.model.SceneFamilies
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.fakeSceneDataSource
+import com.android.systemui.shade.domain.interactor.disableDualShade
+import com.android.systemui.shade.domain.interactor.enableDualShade
 import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository
 import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel
 import com.android.systemui.testKosmos
@@ -57,6 +61,10 @@
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
@@ -298,7 +306,9 @@
 
     @Test
     fun transitioningTo_overlayChange() =
-        testScope.runTest {
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
             val transitionState =
                 MutableStateFlow<ObservableTransitionState>(
                     ObservableTransitionState.Idle(underTest.currentScene.value)
@@ -529,6 +539,8 @@
     @Test
     fun showOverlay_overlayDisabled_doesNothing() =
         kosmos.runTest {
+            enableDualShade()
+            runCurrent()
             val currentOverlays by collectLastValue(underTest.currentOverlays)
             val disabledOverlay = Overlays.QuickSettingsShade
             fakeDisableFlagsRepository.disableFlags.value =
@@ -544,6 +556,8 @@
     @Test
     fun replaceOverlay_withDisabledOverlay_doesNothing() =
         kosmos.runTest {
+            enableDualShade()
+            runCurrent()
             val currentOverlays by collectLastValue(underTest.currentOverlays)
             val showingOverlay = Overlays.NotificationsShade
             underTest.showOverlay(showingOverlay, "reason")
@@ -618,4 +632,129 @@
             // No more active animations, not forced visible.
             assertThat(isVisible).isFalse()
         }
+
+    @Test(expected = IllegalStateException::class)
+    fun changeScene_toIncorrectShade_crashes() =
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
+            underTest.changeScene(Scenes.Shade, "reason")
+        }
+
+    @Test(expected = IllegalStateException::class)
+    fun changeScene_toIncorrectQuickSettings_crashes() =
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
+            underTest.changeScene(Scenes.QuickSettings, "reason")
+        }
+
+    @Test(expected = IllegalStateException::class)
+    fun snapToScene_toIncorrectShade_crashes() =
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
+            underTest.snapToScene(Scenes.Shade, "reason")
+        }
+
+    @Test(expected = IllegalStateException::class)
+    fun snapToScene_toIncorrectQuickSettings_crashes() =
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
+            underTest.changeScene(Scenes.QuickSettings, "reason")
+        }
+
+    @Test(expected = IllegalStateException::class)
+    fun showOverlay_incorrectShadeOverlay_crashes() =
+        kosmos.runTest {
+            disableDualShade()
+            runCurrent()
+            underTest.showOverlay(Overlays.NotificationsShade, "reason")
+        }
+
+    @Test(expected = IllegalStateException::class)
+    fun showOverlay_incorrectQuickSettingsOverlay_crashes() =
+        kosmos.runTest {
+            disableDualShade()
+            runCurrent()
+            underTest.showOverlay(Overlays.QuickSettingsShade, "reason")
+        }
+
+    @Test
+    fun instantlyShowOverlay() =
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
+            val currentScene by collectLastValue(underTest.currentScene)
+            val currentOverlays by collectLastValue(underTest.currentOverlays)
+            val originalScene = currentScene
+            assertThat(currentOverlays).isEmpty()
+
+            val overlay = Overlays.NotificationsShade
+            underTest.instantlyShowOverlay(overlay, "reason")
+            runCurrent()
+
+            assertThat(currentScene).isEqualTo(originalScene)
+            assertThat(currentOverlays).contains(overlay)
+        }
+
+    @Test
+    fun instantlyHideOverlay() =
+        kosmos.runTest {
+            enableDualShade()
+            runCurrent()
+            val currentScene by collectLastValue(underTest.currentScene)
+            val currentOverlays by collectLastValue(underTest.currentOverlays)
+            val overlay = Overlays.QuickSettingsShade
+            underTest.showOverlay(overlay, "reason")
+            runCurrent()
+            val originalScene = currentScene
+            assertThat(currentOverlays).contains(overlay)
+
+            underTest.instantlyHideOverlay(overlay, "reason")
+            runCurrent()
+
+            assertThat(currentScene).isEqualTo(originalScene)
+            assertThat(currentOverlays).isEmpty()
+        }
+
+    @Test
+    fun changeScene_notifiesAboutToChangeListener() =
+        kosmos.runTest {
+            val currentScene by collectLastValue(underTest.currentScene)
+            // Unlock so transitioning to the Gone scene becomes possible.
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+            runCurrent()
+            underTest.changeScene(toScene = Scenes.Gone, loggingReason = "")
+            runCurrent()
+            assertThat(currentScene).isEqualTo(Scenes.Gone)
+
+            val processor = mock<SceneInteractor.OnSceneAboutToChangeListener>()
+            underTest.registerSceneStateProcessor(processor)
+
+            underTest.changeScene(
+                toScene = Scenes.Lockscreen,
+                sceneState = KeyguardState.AOD,
+                loggingReason = "",
+            )
+            runCurrent()
+            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+
+            verify(processor).onSceneAboutToChange(Scenes.Lockscreen, KeyguardState.AOD)
+        }
+
+    @Test
+    fun changeScene_noOp_whenFromAndToAreTheSame() =
+        kosmos.runTest {
+            val currentScene by collectLastValue(underTest.currentScene)
+            val processor = mock<SceneInteractor.OnSceneAboutToChangeListener>()
+            underTest.registerSceneStateProcessor(processor)
+
+            underTest.changeScene(toScene = checkNotNull(currentScene), loggingReason = "")
+
+            verify(processor, never()).onSceneAboutToChange(any(), any())
+        }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
index 3373310..ae77ac4 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
@@ -2049,9 +2049,9 @@
             )
 
             clearInvocations(centralSurfaces)
-            emulateSceneTransition(
+            emulateOverlayTransition(
                 transitionStateFlow = transitionStateFlow,
-                toScene = Scenes.Shade,
+                toOverlay = Overlays.NotificationsShade,
                 verifyBeforeTransition = {
                     verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
                 },
@@ -2079,9 +2079,9 @@
             )
 
             clearInvocations(centralSurfaces)
-            emulateSceneTransition(
+            emulateOverlayTransition(
                 transitionStateFlow = transitionStateFlow,
-                toScene = Scenes.QuickSettings,
+                toOverlay = Overlays.QuickSettingsShade,
                 verifyBeforeTransition = {
                     verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
                 },
@@ -2654,22 +2654,36 @@
         }
 
     @Test
-    fun handleDisableFlags() =
+    fun handleDisableFlags_singleShade() =
         kosmos.runTest {
             underTest.start()
             val currentScene by collectLastValue(sceneInteractor.currentScene)
-            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+            disableDualShade()
             runCurrent()
             sceneInteractor.changeScene(Scenes.Shade, "reason")
-            sceneInteractor.showOverlay(Overlays.NotificationsShade, "reason")
             assertThat(currentScene).isEqualTo(Scenes.Shade)
-            assertThat(currentOverlays).contains(Overlays.NotificationsShade)
 
             fakeDisableFlagsRepository.disableFlags.value =
                 DisableFlagsModel(disable2 = StatusBarManager.DISABLE2_NOTIFICATION_SHADE)
             runCurrent()
 
             assertThat(currentScene).isNotEqualTo(Scenes.Shade)
+        }
+
+    @Test
+    fun handleDisableFlags_dualShade() =
+        kosmos.runTest {
+            underTest.start()
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+            enableDualShade()
+            runCurrent()
+            sceneInteractor.showOverlay(Overlays.NotificationsShade, "reason")
+            assertThat(currentOverlays).contains(Overlays.NotificationsShade)
+
+            fakeDisableFlagsRepository.disableFlags.value =
+                DisableFlagsModel(disable2 = StatusBarManager.DISABLE2_NOTIFICATION_SHADE)
+            runCurrent()
+
             assertThat(currentOverlays).isEmpty()
         }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerSwipeDetectorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerSwipeDetectorTest.kt
new file mode 100644
index 0000000..a09e5cd
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerSwipeDetectorTest.kt
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.scene.ui.viewmodel
+
+import androidx.compose.foundation.gestures.Orientation
+import androidx.compose.ui.unit.Density
+import androidx.compose.ui.unit.IntOffset
+import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.unit.LayoutDirection
+import androidx.compose.ui.unit.dp
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.EndEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.EndHalf
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.Resolved.BottomEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.Resolved.LeftEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.Resolved.LeftHalf
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.Resolved.RightEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.Resolved.RightHalf
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.StartEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.StartHalf
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class SceneContainerSwipeDetectorTest : SysuiTestCase() {
+
+    private val edgeSize = 40
+    private val screenWidth = 800
+    private val screenHeight = 600
+
+    private val underTest = SceneContainerSwipeDetector(edgeSize = edgeSize.dp)
+
+    @Test
+    fun source_noEdge_detectsLeftHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = screenWidth / 2 - 1, y = screenHeight / 2)
+        assertThat(detectedEdge).isEqualTo(LeftHalf)
+    }
+
+    @Test
+    fun source_swipeVerticallyOnTopLeft_detectsLeftHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = 1, y = edgeSize - 1)
+        assertThat(detectedEdge).isEqualTo(LeftHalf)
+    }
+
+    @Test
+    fun source_swipeHorizontallyOnTopLeft_detectsLeftEdge() {
+        val detectedEdge = swipeHorizontallyFrom(x = 1, y = edgeSize - 1)
+        assertThat(detectedEdge).isEqualTo(LeftEdge)
+    }
+
+    @Test
+    fun source_swipeVerticallyOnTopRight_detectsRightHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = screenWidth - 1, y = edgeSize - 1)
+        assertThat(detectedEdge).isEqualTo(RightHalf)
+    }
+
+    @Test
+    fun source_swipeHorizontallyOnTopRight_detectsRightEdge() {
+        val detectedEdge = swipeHorizontallyFrom(x = screenWidth - 1, y = edgeSize - 1)
+        assertThat(detectedEdge).isEqualTo(RightEdge)
+    }
+
+    @Test
+    fun source_swipeVerticallyToLeftOfSplit_detectsLeftHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = (screenWidth / 2) - 1, y = edgeSize - 1)
+        assertThat(detectedEdge).isEqualTo(LeftHalf)
+    }
+
+    @Test
+    fun source_swipeVerticallyToRightOfSplit_detectsRightHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = (screenWidth / 2) + 1, y = edgeSize - 1)
+        assertThat(detectedEdge).isEqualTo(RightHalf)
+    }
+
+    @Test
+    fun source_swipeVerticallyOnBottom_detectsBottomEdge() {
+        val detectedEdge =
+            swipeVerticallyFrom(x = screenWidth / 3, y = screenHeight - (edgeSize / 2))
+        assertThat(detectedEdge).isEqualTo(BottomEdge)
+    }
+
+    @Test
+    fun source_swipeHorizontallyOnBottom_detectsLeftHalf() {
+        val detectedEdge =
+            swipeHorizontallyFrom(x = screenWidth / 3, y = screenHeight - (edgeSize - 1))
+        assertThat(detectedEdge).isEqualTo(LeftHalf)
+    }
+
+    @Test
+    fun source_swipeHorizontallyOnLeft_detectsLeftEdge() {
+        val detectedEdge = swipeHorizontallyFrom(x = edgeSize - 1, y = screenHeight / 2)
+        assertThat(detectedEdge).isEqualTo(LeftEdge)
+    }
+
+    @Test
+    fun source_swipeVerticallyOnLeft_detectsLeftHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = edgeSize - 1, y = screenHeight / 2)
+        assertThat(detectedEdge).isEqualTo(LeftHalf)
+    }
+
+    @Test
+    fun source_swipeHorizontallyOnRight_detectsRightEdge() {
+        val detectedEdge =
+            swipeHorizontallyFrom(x = screenWidth - edgeSize + 1, y = screenHeight / 2)
+        assertThat(detectedEdge).isEqualTo(RightEdge)
+    }
+
+    @Test
+    fun source_swipeVerticallyOnRight_detectsRightHalf() {
+        val detectedEdge = swipeVerticallyFrom(x = screenWidth - edgeSize + 1, y = screenHeight / 2)
+        assertThat(detectedEdge).isEqualTo(RightHalf)
+    }
+
+    @Test
+    fun resolve_startEdgeInLtr_resolvesLeftEdge() {
+        val resolvedEdge = StartEdge.resolve(LayoutDirection.Ltr)
+        assertThat(resolvedEdge).isEqualTo(LeftEdge)
+    }
+
+    @Test
+    fun resolve_startEdgeInRtl_resolvesRightEdge() {
+        val resolvedEdge = StartEdge.resolve(LayoutDirection.Rtl)
+        assertThat(resolvedEdge).isEqualTo(RightEdge)
+    }
+
+    @Test
+    fun resolve_endEdgeInLtr_resolvesRightEdge() {
+        val resolvedEdge = EndEdge.resolve(LayoutDirection.Ltr)
+        assertThat(resolvedEdge).isEqualTo(RightEdge)
+    }
+
+    @Test
+    fun resolve_endEdgeInRtl_resolvesLeftEdge() {
+        val resolvedEdge = EndEdge.resolve(LayoutDirection.Rtl)
+        assertThat(resolvedEdge).isEqualTo(LeftEdge)
+    }
+
+    @Test
+    fun resolve_startHalfInLtr_resolvesLeftHalf() {
+        val resolvedEdge = StartHalf.resolve(LayoutDirection.Ltr)
+        assertThat(resolvedEdge).isEqualTo(LeftHalf)
+    }
+
+    @Test
+    fun resolve_startHalfInRtl_resolvesRightHalf() {
+        val resolvedEdge = StartHalf.resolve(LayoutDirection.Rtl)
+        assertThat(resolvedEdge).isEqualTo(RightHalf)
+    }
+
+    @Test
+    fun resolve_endHalfInLtr_resolvesRightHalf() {
+        val resolvedEdge = EndHalf.resolve(LayoutDirection.Ltr)
+        assertThat(resolvedEdge).isEqualTo(RightHalf)
+    }
+
+    @Test
+    fun resolve_endHalfInRtl_resolvesLeftHalf() {
+        val resolvedEdge = EndHalf.resolve(LayoutDirection.Rtl)
+        assertThat(resolvedEdge).isEqualTo(LeftHalf)
+    }
+
+    private fun swipeVerticallyFrom(x: Int, y: Int): SceneContainerArea.Resolved? {
+        return swipeFrom(x, y, Orientation.Vertical)
+    }
+
+    private fun swipeHorizontallyFrom(x: Int, y: Int): SceneContainerArea.Resolved? {
+        return swipeFrom(x, y, Orientation.Horizontal)
+    }
+
+    private fun swipeFrom(x: Int, y: Int, orientation: Orientation): SceneContainerArea.Resolved? {
+        return underTest.source(
+            layoutSize = IntSize(width = screenWidth, height = screenHeight),
+            position = IntOffset(x, y),
+            density = Density(1f),
+            orientation = orientation,
+        )
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt
index 30d9f73..5527393 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt
@@ -25,8 +25,10 @@
 import com.android.compose.animation.scene.DefaultEdgeDetector
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.classifier.fakeFalsingManager
-import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.flags.EnableSceneContainer
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runCurrent
+import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.power.data.repository.fakePowerRepository
@@ -44,17 +46,17 @@
 import com.android.systemui.shade.shared.model.ShadeMode
 import com.android.systemui.statusbar.data.repository.fakeRemoteInputRepository
 import com.android.systemui.testKosmos
-import com.android.systemui.util.mockito.mock
-import com.android.systemui.util.mockito.whenever
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.Job
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
 
+@OptIn(ExperimentalCoroutinesApi::class)
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 @EnableSceneContainer
@@ -62,10 +64,6 @@
 
     private val kosmos = testKosmos()
     private val testScope by lazy { kosmos.testScope }
-    private val sceneInteractor by lazy { kosmos.sceneInteractor }
-    private val fakeSceneDataSource by lazy { kosmos.fakeSceneDataSource }
-    private val sceneContainerConfig by lazy { kosmos.sceneContainerConfig }
-    private val fakeRemoteInputRepository by lazy { kosmos.fakeRemoteInputRepository }
     private val falsingManager by lazy { kosmos.fakeFalsingManager }
     private val view = mock<View>()
 
@@ -89,14 +87,14 @@
 
     @Test
     fun activate_setsMotionEventHandler() =
-        testScope.runTest {
+        kosmos.runTest {
             runCurrent()
             assertThat(motionEventHandler).isNotNull()
         }
 
     @Test
     fun deactivate_clearsMotionEventHandler() =
-        testScope.runTest {
+        kosmos.runTest {
             activationJob.cancel()
             runCurrent()
 
@@ -105,7 +103,7 @@
 
     @Test
     fun isVisible() =
-        testScope.runTest {
+        kosmos.runTest {
             assertThat(underTest.isVisible).isTrue()
 
             sceneInteractor.setVisible(false, "reason")
@@ -119,7 +117,7 @@
 
     @Test
     fun sceneTransition() =
-        testScope.runTest {
+        kosmos.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
 
@@ -130,7 +128,7 @@
 
     @Test
     fun canChangeScene_whenAllowed_switchingFromGone_returnsTrue() =
-        testScope.runTest {
+        kosmos.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
             fakeSceneDataSource.changeScene(toScene = Scenes.Gone)
             runCurrent()
@@ -147,7 +145,7 @@
 
     @Test
     fun canChangeScene_whenAllowed_switchingFromLockscreen_returnsTrue() =
-        testScope.runTest {
+        kosmos.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
             fakeSceneDataSource.changeScene(toScene = Scenes.Lockscreen)
             runCurrent()
@@ -164,7 +162,7 @@
 
     @Test
     fun canChangeScene_whenNotAllowed_fromLockscreen_toFalsingProtectedScenes_returnsFalse() =
-        testScope.runTest {
+        kosmos.runTest {
             falsingManager.setIsFalseTouch(true)
             val currentScene by collectLastValue(underTest.currentScene)
             fakeSceneDataSource.changeScene(toScene = Scenes.Lockscreen)
@@ -186,7 +184,7 @@
 
     @Test
     fun canChangeScene_whenNotAllowed_fromLockscreen_toFalsingUnprotectedScenes_returnsTrue() =
-        testScope.runTest {
+        kosmos.runTest {
             falsingManager.setIsFalseTouch(true)
             val currentScene by collectLastValue(underTest.currentScene)
             fakeSceneDataSource.changeScene(toScene = Scenes.Lockscreen)
@@ -207,7 +205,7 @@
 
     @Test
     fun canChangeScene_whenNotAllowed_fromGone_toAnyOtherScene_returnsTrue() =
-        testScope.runTest {
+        kosmos.runTest {
             falsingManager.setIsFalseTouch(true)
             val currentScene by collectLastValue(underTest.currentScene)
             fakeSceneDataSource.changeScene(toScene = Scenes.Gone)
@@ -224,8 +222,70 @@
         }
 
     @Test
+    fun canShowOrReplaceOverlay_whenAllowed_showingWhileOnGone_returnsTrue() =
+        kosmos.runTest {
+            val currentScene by collectLastValue(underTest.currentScene)
+            fakeSceneDataSource.changeScene(toScene = Scenes.Gone)
+            runCurrent()
+            assertThat(currentScene).isEqualTo(Scenes.Gone)
+
+            sceneContainerConfig.overlayKeys.forEach { overlay ->
+                assertWithMessage("Overlay $overlay incorrectly protected when allowed")
+                    .that(underTest.canShowOrReplaceOverlay(newlyShown = overlay))
+                    .isTrue()
+            }
+        }
+
+    @Test
+    fun canShowOrReplaceOverlay_whenAllowed_showingWhileOnLockscreen_returnsTrue() =
+        kosmos.runTest {
+            val currentScene by collectLastValue(underTest.currentScene)
+            fakeSceneDataSource.changeScene(toScene = Scenes.Lockscreen)
+            runCurrent()
+            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+
+            sceneContainerConfig.overlayKeys.forEach { overlay ->
+                assertWithMessage("Overlay $overlay incorrectly protected when allowed")
+                    .that(underTest.canShowOrReplaceOverlay(newlyShown = overlay))
+                    .isTrue()
+            }
+        }
+
+    @Test
+    fun canShowOrReplaceOverlay_whenNotAllowed_whileOnLockscreen_returnsFalse() =
+        kosmos.runTest {
+            falsingManager.setIsFalseTouch(true)
+            val currentScene by collectLastValue(underTest.currentScene)
+            fakeSceneDataSource.changeScene(toScene = Scenes.Lockscreen)
+            runCurrent()
+            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+
+            sceneContainerConfig.overlayKeys.forEach { overlay ->
+                assertWithMessage("Protected overlay $overlay not properly protected")
+                    .that(underTest.canShowOrReplaceOverlay(newlyShown = overlay))
+                    .isFalse()
+            }
+        }
+
+    @Test
+    fun canShowOrReplaceOverlay_whenNotAllowed_whileOnGone_returnsTrue() =
+        kosmos.runTest {
+            falsingManager.setIsFalseTouch(true)
+            val currentScene by collectLastValue(underTest.currentScene)
+            fakeSceneDataSource.changeScene(toScene = Scenes.Gone)
+            runCurrent()
+            assertThat(currentScene).isEqualTo(Scenes.Gone)
+
+            sceneContainerConfig.overlayKeys.forEach { overlay ->
+                assertWithMessage("Protected overlay $overlay not properly protected")
+                    .that(underTest.canShowOrReplaceOverlay(newlyShown = overlay))
+                    .isTrue()
+            }
+        }
+
+    @Test
     fun userInput() =
-        testScope.runTest {
+        kosmos.runTest {
             assertThat(kosmos.fakePowerRepository.userTouchRegistered).isFalse()
             underTest.onMotionEvent(mock())
             assertThat(kosmos.fakePowerRepository.userTouchRegistered).isTrue()
@@ -233,7 +293,7 @@
 
     @Test
     fun userInputOnEmptySpace_insideEvent() =
-        testScope.runTest {
+        kosmos.runTest {
             assertThat(fakeRemoteInputRepository.areRemoteInputsClosed).isFalse()
             val insideMotionEvent = MotionEvent.obtain(0, 0, ACTION_DOWN, 0f, 0f, 0)
             underTest.onEmptySpaceMotionEvent(insideMotionEvent)
@@ -242,7 +302,7 @@
 
     @Test
     fun userInputOnEmptySpace_outsideEvent_remoteInputActive() =
-        testScope.runTest {
+        kosmos.runTest {
             fakeRemoteInputRepository.isRemoteInputActive.value = true
             assertThat(fakeRemoteInputRepository.areRemoteInputsClosed).isFalse()
             val outsideMotionEvent = MotionEvent.obtain(0, 0, ACTION_OUTSIDE, 0f, 0f, 0)
@@ -252,7 +312,7 @@
 
     @Test
     fun userInputOnEmptySpace_outsideEvent_remoteInputInactive() =
-        testScope.runTest {
+        kosmos.runTest {
             fakeRemoteInputRepository.isRemoteInputActive.value = false
             assertThat(fakeRemoteInputRepository.areRemoteInputsClosed).isFalse()
             val outsideMotionEvent = MotionEvent.obtain(0, 0, ACTION_OUTSIDE, 0f, 0f, 0)
@@ -262,7 +322,7 @@
 
     @Test
     fun remoteUserInteraction_keepsContainerVisible() =
-        testScope.runTest {
+        kosmos.runTest {
             sceneInteractor.setVisible(false, "reason")
             runCurrent()
             assertThat(underTest.isVisible).isFalse()
@@ -270,9 +330,7 @@
             runCurrent()
             assertThat(underTest.isVisible).isTrue()
 
-            underTest.onMotionEvent(
-                mock { whenever(actionMasked).thenReturn(MotionEvent.ACTION_UP) }
-            )
+            underTest.onMotionEvent(mock { on { actionMasked } doReturn MotionEvent.ACTION_UP })
             runCurrent()
 
             assertThat(underTest.isVisible).isFalse()
@@ -280,7 +338,7 @@
 
     @Test
     fun getActionableContentKey_noOverlays_returnsCurrentScene() =
-        testScope.runTest {
+        kosmos.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
             val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
@@ -298,7 +356,7 @@
 
     @Test
     fun getActionableContentKey_multipleOverlays_returnsTopOverlay() =
-        testScope.runTest {
+        kosmos.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
             val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             fakeSceneDataSource.showOverlay(Overlays.QuickSettingsShade)
@@ -319,41 +377,43 @@
 
     @Test
     fun edgeDetector_singleShade_usesDefaultEdgeDetector() =
-        testScope.runTest {
+        kosmos.runTest {
             val shadeMode by collectLastValue(kosmos.shadeMode)
             kosmos.enableSingleShade()
 
             assertThat(shadeMode).isEqualTo(ShadeMode.Single)
-            assertThat(underTest.edgeDetector).isEqualTo(DefaultEdgeDetector)
+            assertThat(underTest.swipeSourceDetector).isEqualTo(DefaultEdgeDetector)
         }
 
     @Test
     fun edgeDetector_splitShade_usesDefaultEdgeDetector() =
-        testScope.runTest {
+        kosmos.runTest {
             val shadeMode by collectLastValue(kosmos.shadeMode)
             kosmos.enableSplitShade()
 
             assertThat(shadeMode).isEqualTo(ShadeMode.Split)
-            assertThat(underTest.edgeDetector).isEqualTo(DefaultEdgeDetector)
+            assertThat(underTest.swipeSourceDetector).isEqualTo(DefaultEdgeDetector)
         }
 
     @Test
-    fun edgeDetector_dualShade_narrowScreen_usesSplitEdgeDetector() =
-        testScope.runTest {
+    fun edgeDetector_dualShade_narrowScreen_usesSceneContainerSwipeDetector() =
+        kosmos.runTest {
             val shadeMode by collectLastValue(kosmos.shadeMode)
             kosmos.enableDualShade(wideLayout = false)
 
             assertThat(shadeMode).isEqualTo(ShadeMode.Dual)
-            assertThat(underTest.edgeDetector).isEqualTo(kosmos.splitEdgeDetector)
+            assertThat(underTest.swipeSourceDetector)
+                .isInstanceOf(SceneContainerSwipeDetector::class.java)
         }
 
     @Test
-    fun edgeDetector_dualShade_wideScreen_usesSplitEdgeDetector() =
-        testScope.runTest {
+    fun edgeDetector_dualShade_wideScreen_usesSceneContainerSwipeDetector() =
+        kosmos.runTest {
             val shadeMode by collectLastValue(kosmos.shadeMode)
             kosmos.enableDualShade(wideLayout = true)
 
             assertThat(shadeMode).isEqualTo(ShadeMode.Dual)
-            assertThat(underTest.edgeDetector).isEqualTo(kosmos.splitEdgeDetector)
+            assertThat(underTest.swipeSourceDetector)
+                .isInstanceOf(SceneContainerSwipeDetector::class.java)
         }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetectorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetectorTest.kt
deleted file mode 100644
index 3d76d28..0000000
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetectorTest.kt
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.scene.ui.viewmodel
-
-import androidx.compose.foundation.gestures.Orientation
-import androidx.compose.ui.unit.Density
-import androidx.compose.ui.unit.IntOffset
-import androidx.compose.ui.unit.IntSize
-import androidx.compose.ui.unit.LayoutDirection
-import androidx.compose.ui.unit.dp
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.SmallTest
-import com.android.systemui.SysuiTestCase
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.End
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.Resolved.Bottom
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.Resolved.Left
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.Resolved.Right
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.Resolved.TopLeft
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.Resolved.TopRight
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.Start
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.TopEnd
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge.TopStart
-import com.google.common.truth.Truth.assertThat
-import kotlin.test.assertFailsWith
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@SmallTest
-@RunWith(AndroidJUnit4::class)
-class SplitEdgeDetectorTest : SysuiTestCase() {
-
-    private val edgeSize = 40
-    private val screenWidth = 800
-    private val screenHeight = 600
-
-    private var edgeSplitFraction = 0.7f
-
-    private val underTest =
-        SplitEdgeDetector(
-            topEdgeSplitFraction = { edgeSplitFraction },
-            edgeSize = edgeSize.dp,
-        )
-
-    @Test
-    fun source_noEdge_detectsNothing() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = screenWidth / 2,
-                y = screenHeight / 2,
-            )
-        assertThat(detectedEdge).isNull()
-    }
-
-    @Test
-    fun source_swipeVerticallyOnTopLeft_detectsTopLeft() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = 1,
-                y = edgeSize - 1,
-            )
-        assertThat(detectedEdge).isEqualTo(TopLeft)
-    }
-
-    @Test
-    fun source_swipeHorizontallyOnTopLeft_detectsLeft() {
-        val detectedEdge =
-            swipeHorizontallyFrom(
-                x = 1,
-                y = edgeSize - 1,
-            )
-        assertThat(detectedEdge).isEqualTo(Left)
-    }
-
-    @Test
-    fun source_swipeVerticallyOnTopRight_detectsTopRight() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = screenWidth - 1,
-                y = edgeSize - 1,
-            )
-        assertThat(detectedEdge).isEqualTo(TopRight)
-    }
-
-    @Test
-    fun source_swipeHorizontallyOnTopRight_detectsRight() {
-        val detectedEdge =
-            swipeHorizontallyFrom(
-                x = screenWidth - 1,
-                y = edgeSize - 1,
-            )
-        assertThat(detectedEdge).isEqualTo(Right)
-    }
-
-    @Test
-    fun source_swipeVerticallyToLeftOfSplit_detectsTopLeft() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = (screenWidth * edgeSplitFraction).toInt() - 1,
-                y = edgeSize - 1,
-            )
-        assertThat(detectedEdge).isEqualTo(TopLeft)
-    }
-
-    @Test
-    fun source_swipeVerticallyToRightOfSplit_detectsTopRight() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = (screenWidth * edgeSplitFraction).toInt() + 1,
-                y = edgeSize - 1,
-            )
-        assertThat(detectedEdge).isEqualTo(TopRight)
-    }
-
-    @Test
-    fun source_edgeSplitFractionUpdatesDynamically() {
-        val middleX = (screenWidth * 0.5f).toInt()
-        val topY = 0
-
-        // Split closer to the right; middle of screen is considered "left".
-        edgeSplitFraction = 0.6f
-        assertThat(swipeVerticallyFrom(x = middleX, y = topY)).isEqualTo(TopLeft)
-
-        // Split closer to the left; middle of screen is considered "right".
-        edgeSplitFraction = 0.4f
-        assertThat(swipeVerticallyFrom(x = middleX, y = topY)).isEqualTo(TopRight)
-
-        // Illegal fraction.
-        edgeSplitFraction = 1.2f
-        assertFailsWith<IllegalArgumentException> { swipeVerticallyFrom(x = middleX, y = topY) }
-
-        // Illegal fraction.
-        edgeSplitFraction = -0.3f
-        assertFailsWith<IllegalArgumentException> { swipeVerticallyFrom(x = middleX, y = topY) }
-    }
-
-    @Test
-    fun source_swipeVerticallyOnBottom_detectsBottom() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = screenWidth / 3,
-                y = screenHeight - (edgeSize / 2),
-            )
-        assertThat(detectedEdge).isEqualTo(Bottom)
-    }
-
-    @Test
-    fun source_swipeHorizontallyOnBottom_detectsNothing() {
-        val detectedEdge =
-            swipeHorizontallyFrom(
-                x = screenWidth / 3,
-                y = screenHeight - (edgeSize - 1),
-            )
-        assertThat(detectedEdge).isNull()
-    }
-
-    @Test
-    fun source_swipeHorizontallyOnLeft_detectsLeft() {
-        val detectedEdge =
-            swipeHorizontallyFrom(
-                x = edgeSize - 1,
-                y = screenHeight / 2,
-            )
-        assertThat(detectedEdge).isEqualTo(Left)
-    }
-
-    @Test
-    fun source_swipeVerticallyOnLeft_detectsNothing() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = edgeSize - 1,
-                y = screenHeight / 2,
-            )
-        assertThat(detectedEdge).isNull()
-    }
-
-    @Test
-    fun source_swipeHorizontallyOnRight_detectsRight() {
-        val detectedEdge =
-            swipeHorizontallyFrom(
-                x = screenWidth - edgeSize + 1,
-                y = screenHeight / 2,
-            )
-        assertThat(detectedEdge).isEqualTo(Right)
-    }
-
-    @Test
-    fun source_swipeVerticallyOnRight_detectsNothing() {
-        val detectedEdge =
-            swipeVerticallyFrom(
-                x = screenWidth - edgeSize + 1,
-                y = screenHeight / 2,
-            )
-        assertThat(detectedEdge).isNull()
-    }
-
-    @Test
-    fun resolve_startInLtr_resolvesLeft() {
-        val resolvedEdge = Start.resolve(LayoutDirection.Ltr)
-        assertThat(resolvedEdge).isEqualTo(Left)
-    }
-
-    @Test
-    fun resolve_startInRtl_resolvesRight() {
-        val resolvedEdge = Start.resolve(LayoutDirection.Rtl)
-        assertThat(resolvedEdge).isEqualTo(Right)
-    }
-
-    @Test
-    fun resolve_endInLtr_resolvesRight() {
-        val resolvedEdge = End.resolve(LayoutDirection.Ltr)
-        assertThat(resolvedEdge).isEqualTo(Right)
-    }
-
-    @Test
-    fun resolve_endInRtl_resolvesLeft() {
-        val resolvedEdge = End.resolve(LayoutDirection.Rtl)
-        assertThat(resolvedEdge).isEqualTo(Left)
-    }
-
-    @Test
-    fun resolve_topStartInLtr_resolvesTopLeft() {
-        val resolvedEdge = TopStart.resolve(LayoutDirection.Ltr)
-        assertThat(resolvedEdge).isEqualTo(TopLeft)
-    }
-
-    @Test
-    fun resolve_topStartInRtl_resolvesTopRight() {
-        val resolvedEdge = TopStart.resolve(LayoutDirection.Rtl)
-        assertThat(resolvedEdge).isEqualTo(TopRight)
-    }
-
-    @Test
-    fun resolve_topEndInLtr_resolvesTopRight() {
-        val resolvedEdge = TopEnd.resolve(LayoutDirection.Ltr)
-        assertThat(resolvedEdge).isEqualTo(TopRight)
-    }
-
-    @Test
-    fun resolve_topEndInRtl_resolvesTopLeft() {
-        val resolvedEdge = TopEnd.resolve(LayoutDirection.Rtl)
-        assertThat(resolvedEdge).isEqualTo(TopLeft)
-    }
-
-    private fun swipeVerticallyFrom(x: Int, y: Int): SceneContainerEdge.Resolved? {
-        return swipeFrom(x, y, Orientation.Vertical)
-    }
-
-    private fun swipeHorizontallyFrom(x: Int, y: Int): SceneContainerEdge.Resolved? {
-        return swipeFrom(x, y, Orientation.Horizontal)
-    }
-
-    private fun swipeFrom(x: Int, y: Int, orientation: Orientation): SceneContainerEdge.Resolved? {
-        return underTest.source(
-            layoutSize = IntSize(width = screenWidth, height = screenHeight),
-            position = IntOffset(x, y),
-            density = Density(1f),
-            orientation = orientation,
-        )
-    }
-}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt
index c1477fe..a9f3a65 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt
@@ -80,6 +80,8 @@
         // Set desktop mode supported
         whenever(mContext.resources).thenReturn(mResources)
         whenever(mResources.getBoolean(R.bool.config_isDesktopModeSupported)).thenReturn(true)
+        whenever(mResources.getBoolean(R.bool.config_canInternalDisplayHostDesktops))
+            .thenReturn(true)
 
         policy = WorkProfilePolicy(kosmos.profileTypeRepository, mContext)
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
index 85e5936..904f5e8 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
@@ -70,7 +70,7 @@
 import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
 import com.android.systemui.classifier.FalsingCollectorFake;
 import com.android.systemui.classifier.FalsingManagerFake;
-import com.android.systemui.common.ui.view.LongPressHandlingView;
+import com.android.systemui.common.ui.view.TouchHandlingView;
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor;
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryUdfpsInteractor;
 import com.android.systemui.doze.DozeLog;
@@ -87,6 +87,7 @@
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;
 import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor;
 import com.android.systemui.keyguard.domain.interactor.NaturalScrollingSettingObserver;
+import com.android.systemui.keyguard.ui.transitions.BlurConfig;
 import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel;
 import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel;
 import com.android.systemui.kosmos.KosmosJavaAdapter;
@@ -167,6 +168,7 @@
 import com.android.systemui.util.kotlin.JavaAdapter;
 import com.android.systemui.util.time.FakeSystemClock;
 import com.android.systemui.util.time.SystemClock;
+import com.android.systemui.wallpapers.ui.viewmodel.WallpaperFocalAreaViewModel;
 import com.android.wm.shell.animation.FlingAnimationUtils;
 
 import dagger.Lazy;
@@ -270,6 +272,7 @@
             mDreamingToLockscreenTransitionViewModel;
     @Mock protected KeyguardTransitionInteractor mKeyguardTransitionInteractor;
     @Mock protected KeyguardTouchHandlingViewModel mKeyuardTouchHandlingViewModel;
+    @Mock protected WallpaperFocalAreaViewModel mWallpaperFocalAreaViewModel;
     @Mock protected AlternateBouncerInteractor mAlternateBouncerInteractor;
     @Mock protected MotionEvent mDownMotionEvent;
     @Mock protected CoroutineDispatcher mMainDispatcher;
@@ -516,12 +519,12 @@
 
         mMainHandler = new Handler(Looper.getMainLooper());
 
-        LongPressHandlingView longPressHandlingView = mock(LongPressHandlingView.class);
+        TouchHandlingView touchHandlingView = mock(TouchHandlingView.class);
         when(mView.requireViewById(R.id.keyguard_long_press))
-                .thenReturn(longPressHandlingView);
+                .thenReturn(touchHandlingView);
 
         Resources longPressHandlingViewRes = mock(Resources.class);
-        when(longPressHandlingView.getResources()).thenReturn(longPressHandlingViewRes);
+        when(touchHandlingView.getResources()).thenReturn(longPressHandlingViewRes);
         when(longPressHandlingViewRes.getString(anyInt())).thenReturn("");
 
         mNotificationPanelViewController = new NotificationPanelViewController(
@@ -574,6 +577,7 @@
                 mKeyguardTransitionInteractor,
                 mDumpManager,
                 mKeyuardTouchHandlingViewModel,
+                mWallpaperFocalAreaViewModel,
                 mKeyguardInteractor,
                 mActivityStarter,
                 mSharedNotificationContainerInteractor,
@@ -584,7 +588,8 @@
                 mPowerInteractor,
                 mKeyguardClockPositionAlgorithm,
                 mMSDLPlayer,
-                mBrightnessMirrorShowingInteractor);
+                mBrightnessMirrorShowingInteractor,
+                new BlurConfig(0f, 0f));
         mNotificationPanelViewController.initDependencies(
                 mCentralSurfaces,
                 null,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt
index 72a5783..a8b4836 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt
@@ -249,15 +249,6 @@
 
     @Test
     @EnableFlags(AConfigFlags.FLAG_SHADE_WINDOW_GOES_AROUND)
-    fun onConfigurationChanged_configForwarderSet_propagatesConfig() {
-        val config = Configuration()
-        underTest.onConfigurationChanged(config)
-
-        verify(configurationForwarder).onConfigurationChanged(eq(config))
-    }
-
-    @Test
-    @EnableFlags(AConfigFlags.FLAG_SHADE_WINDOW_GOES_AROUND)
     fun onMovedToDisplay_configForwarderSet_propagatesConfig() {
         val config = Configuration()
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryTest.kt
index 4f332d4..35368ca 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryTest.kt
@@ -32,6 +32,7 @@
 import com.android.systemui.shade.display.AnyExternalShadeDisplayPolicy
 import com.android.systemui.shade.display.DefaultDisplayShadePolicy
 import com.android.systemui.shade.display.FakeShadeDisplayPolicy
+import com.android.systemui.shade.display.FocusShadeDisplayPolicy
 import com.android.systemui.shade.display.StatusBarTouchShadeDisplayPolicy
 import com.android.systemui.testKosmos
 import com.android.systemui.util.settings.fakeGlobalSettings
@@ -108,7 +109,7 @@
         }
 
     @Test
-    fun policy_updatesBasedOnSettingValue_focusBased() =
+    fun policy_updatesBasedOnSettingValue_lastStatusBarTouch() =
         testScope.runTest {
             val underTest = createUnderTest()
             globalSettings.putString(DEVELOPMENT_SHADE_DISPLAY_AWARENESS, "status_bar_latest_touch")
@@ -118,6 +119,15 @@
         }
 
     @Test
+    fun policy_updatesBasedOnSettingValue_focusBased() =
+        testScope.runTest {
+            val underTest = createUnderTest()
+            globalSettings.putString(DEVELOPMENT_SHADE_DISPLAY_AWARENESS, "focused_display")
+
+            assertThat(underTest.currentPolicy).isInstanceOf(FocusShadeDisplayPolicy::class.java)
+        }
+
+    @Test
     fun displayId_afterKeyguardHides_goesBackToPreviousDisplay() =
         testScope.runTest {
             val underTest = createUnderTest(shadeOnDefaultDisplayWhenLocked = true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorTest.kt
index 246283c..0ad60b6 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorTest.kt
@@ -184,4 +184,11 @@
 
             verify(notificationStackRebindingHider).setVisible(eq(true), eq(true))
         }
+
+    @Test
+    fun start_registersConfigChangeListener() {
+        underTest.start()
+
+        verify(shadeContext).registerComponentCallbacks(any())
+    }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt
index 508836e..4a011c0 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt
@@ -781,28 +781,6 @@
         }
 
     @Test
-    fun collapseQuickSettingsShadeNotBypassingShade_splitShade_switchesToLockscreen() =
-        testScope.runTest {
-            kosmos.enableSplitShade()
-            val shadeMode by collectLastValue(kosmos.shadeMode)
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
-            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
-            assertThat(shadeMode).isEqualTo(ShadeMode.Split)
-
-            sceneInteractor.changeScene(Scenes.QuickSettings, "reason")
-            assertThat(currentScene).isEqualTo(Scenes.QuickSettings)
-            assertThat(currentOverlays).isEmpty()
-
-            underTest.collapseQuickSettingsShade(
-                loggingReason = "reason",
-                bypassNotificationsShade = false,
-            )
-
-            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
-            assertThat(currentOverlays).isEmpty()
-        }
-
-    @Test
     fun collapseQuickSettingsShadeBypassingShade_singleShade_switchesToLockscreen() =
         testScope.runTest {
             kosmos.enableSingleShade()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt
index 4423426..9eba410 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt
@@ -81,7 +81,7 @@
         whenever(mockSmallClockView.getLayoutParams()).thenReturn(FrameLayout.LayoutParams(10, 10))
         whenever(mockLargeClockView.getLayoutParams()).thenReturn(FrameLayout.LayoutParams(10, 10))
 
-        provider = DefaultClockProvider(context, layoutInflater, resources)
+        provider = DefaultClockProvider(context, layoutInflater, resources, vibrator = null)
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/BlurUtilsTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/BlurUtilsTest.kt
index e7b6e4d..402b53c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/BlurUtilsTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/BlurUtilsTest.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar
 
+import android.content.res.Resources
 import android.view.CrossWindowBlurListeners
 import android.view.SurfaceControl
 import android.view.ViewRootImpl
@@ -46,6 +47,7 @@
     @Mock lateinit var dumpManager: DumpManager
     @Mock lateinit var transaction: SurfaceControl.Transaction
     @Mock lateinit var crossWindowBlurListeners: CrossWindowBlurListeners
+    @Mock lateinit var resources: Resources
     lateinit var blurUtils: TestableBlurUtils
 
     @Before
@@ -109,7 +111,7 @@
         verify(transaction).setEarlyWakeupEnd()
     }
 
-    inner class TestableBlurUtils : BlurUtils(blurConfig, crossWindowBlurListeners, dumpManager) {
+    inner class TestableBlurUtils : BlurUtils(resources, blurConfig, crossWindowBlurListeners, dumpManager) {
         var blursEnabled = true
 
         override fun supportsBlursOnWindows(): Boolean {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java
index 3d31787..c6801f1 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java
@@ -460,14 +460,14 @@
     }
 
     @Test
-    public void testonDisplayAddSystemDecorations() {
+    public void testOnDisplayAddSystemDecorations() {
         mCommandQueue.onDisplayAddSystemDecorations(DEFAULT_DISPLAY);
         waitForIdleSync();
         verify(mCallbacks).onDisplayAddSystemDecorations(eq(DEFAULT_DISPLAY));
     }
 
     @Test
-    public void testonDisplayAddSystemDecorationsForSecondaryDisplay() {
+    public void testOnDisplayAddSystemDecorationsForSecondaryDisplay() {
         mCommandQueue.onDisplayAddSystemDecorations(SECONDARY_DISPLAY);
         waitForIdleSync();
         verify(mCallbacks).onDisplayAddSystemDecorations(eq(SECONDARY_DISPLAY));
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt
index 03c0751..c7b3175 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt
@@ -31,7 +31,6 @@
 import com.android.systemui.plugins.activityStarter
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.StatusBarIconView
-import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
 import com.android.systemui.statusbar.chips.ui.model.ColorsModel
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
@@ -88,7 +87,7 @@
 
             repo.setOngoingCallState(OngoingCallModel.NoCall)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -98,7 +97,7 @@
 
             repo.setOngoingCallState(inCallModel(startTimeMs = 0))
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
@@ -108,7 +107,7 @@
 
             repo.setOngoingCallState(inCallModel(startTimeMs = -2))
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
@@ -118,7 +117,7 @@
 
             repo.setOngoingCallState(inCallModel(startTimeMs = 345))
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
     @Test
@@ -135,7 +134,7 @@
             // started 2000ms ago (1000 - 3000). The OngoingActivityChipModel start time needs to be
             // relative to elapsedRealtime, so it should be 2000ms before the elapsed realtime set
             // on the clock.
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
                 .isEqualTo(398_000)
         }
 
@@ -150,12 +149,12 @@
                 inCallModel(startTimeMs = 1000, notificationIcon = null, notificationKey = notifKey)
             )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).icon)
+            assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(
                     OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon::class.java
                 )
             val actualNotifKey =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon)
                     .notificationKey
             assertThat(actualNotifKey).isEqualTo(notifKey)
@@ -176,10 +175,10 @@
                 )
             )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).icon)
+            assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(OngoingActivityChipModel.ChipIcon.StatusBarView::class.java)
             val actualIcon =
-                (latest as OngoingActivityChipModel.Shown).icon
+                (latest as OngoingActivityChipModel.Active).icon
                     as OngoingActivityChipModel.ChipIcon.StatusBarView
             assertThat(actualIcon.impl).isEqualTo(notifIcon)
             assertThat(actualIcon.contentDescription.loadContentDescription(context))
@@ -203,12 +202,12 @@
                 )
             )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).icon)
+            assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(
                     OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon::class.java
                 )
             val actualIcon =
-                (latest as OngoingActivityChipModel.Shown).icon
+                (latest as OngoingActivityChipModel.Active).icon
                     as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
             assertThat(actualIcon.notificationKey).isEqualTo("notifKey")
             assertThat(actualIcon.contentDescription.loadContentDescription(context))
@@ -225,10 +224,10 @@
 
             repo.setOngoingCallState(inCallModel(startTimeMs = 1000, notificationIcon = null))
 
-            assertThat((latest as OngoingActivityChipModel.Shown).icon)
+            assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(OngoingActivityChipModel.ChipIcon.SingleColorIcon::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(com.android.internal.R.drawable.ic_phone)
@@ -250,12 +249,12 @@
                 )
             )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).icon)
+            assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(
                     OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon::class.java
                 )
             val actualIcon =
-                (latest as OngoingActivityChipModel.Shown).icon
+                (latest as OngoingActivityChipModel.Active).icon
                     as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
             assertThat(actualIcon.notificationKey).isEqualTo("notifKey")
             assertThat(actualIcon.contentDescription.loadContentDescription(context))
@@ -265,91 +264,25 @@
         }
 
     @Test
-    fun chip_positiveStartTime_notPromoted_colorsAreThemed() =
+    fun chip_positiveStartTime_colorsAreAccentThemed() =
         testScope.runTest {
             val latest by collectLastValue(underTest.chip)
 
             repo.setOngoingCallState(inCallModel(startTimeMs = 1000, promotedContent = null))
 
-            assertThat((latest as OngoingActivityChipModel.Shown).colors)
-                .isEqualTo(ColorsModel.Themed)
+            assertThat((latest as OngoingActivityChipModel.Active).colors)
+                .isEqualTo(ColorsModel.AccentThemed)
         }
 
     @Test
-    fun chip_zeroStartTime_notPromoted_colorsAreThemed() =
+    fun chip_zeroStartTime_colorsAreAccentThemed() =
         testScope.runTest {
             val latest by collectLastValue(underTest.chip)
 
             repo.setOngoingCallState(inCallModel(startTimeMs = 0, promotedContent = null))
 
-            assertThat((latest as OngoingActivityChipModel.Shown).colors)
-                .isEqualTo(ColorsModel.Themed)
-        }
-
-    @Test
-    @DisableFlags(StatusBarNotifChips.FLAG_NAME)
-    fun chip_positiveStartTime_promoted_notifChipsFlagOff_colorsAreThemed() =
-        testScope.runTest {
-            val latest by collectLastValue(underTest.chip)
-
-            repo.setOngoingCallState(
-                inCallModel(startTimeMs = 1000, promotedContent = PROMOTED_CONTENT_WITH_COLOR)
-            )
-
-            assertThat((latest as OngoingActivityChipModel.Shown).colors)
-                .isEqualTo(ColorsModel.Themed)
-        }
-
-    @Test
-    @DisableFlags(StatusBarNotifChips.FLAG_NAME)
-    fun chip_zeroStartTime_promoted_notifChipsFlagOff_colorsAreThemed() =
-        testScope.runTest {
-            val latest by collectLastValue(underTest.chip)
-
-            repo.setOngoingCallState(
-                inCallModel(startTimeMs = 0, promotedContent = PROMOTED_CONTENT_WITH_COLOR)
-            )
-
-            assertThat((latest as OngoingActivityChipModel.Shown).colors)
-                .isEqualTo(ColorsModel.Themed)
-        }
-
-    @Test
-    @EnableFlags(StatusBarNotifChips.FLAG_NAME)
-    fun chip_positiveStartTime_promoted_notifChipsFlagOn_colorsAreCustom() =
-        testScope.runTest {
-            val latest by collectLastValue(underTest.chip)
-
-            repo.setOngoingCallState(
-                inCallModel(startTimeMs = 1000, promotedContent = PROMOTED_CONTENT_WITH_COLOR)
-            )
-
-            assertThat((latest as OngoingActivityChipModel.Shown).colors)
-                .isEqualTo(
-                    ColorsModel.Custom(
-                        backgroundColorInt = PROMOTED_BACKGROUND_COLOR,
-                        primaryTextColorInt = PROMOTED_PRIMARY_TEXT_COLOR,
-                    )
-                )
-        }
-
-    @Test
-    @EnableFlags(StatusBarNotifChips.FLAG_NAME)
-    fun chip_zeroStartTime_promoted_notifChipsFlagOff_colorsAreCustom() =
-        testScope.runTest {
-            val latest by collectLastValue(underTest.chip)
-
-            repo.setOngoingCallState(
-                inCallModel(startTimeMs = 0, promotedContent = PROMOTED_CONTENT_WITH_COLOR)
-            )
-
-            assertThat((latest as OngoingActivityChipModel.Shown).colors)
-                .isEqualTo(
-                    ColorsModel.Custom(
-                        backgroundColorInt = PROMOTED_BACKGROUND_COLOR,
-                        primaryTextColorInt = PROMOTED_PRIMARY_TEXT_COLOR,
-                    )
-                )
+            assertThat((latest as OngoingActivityChipModel.Active).colors)
+                .isEqualTo(ColorsModel.AccentThemed)
         }
 
     @Test
@@ -361,13 +294,13 @@
 
             // Start a call
             repo.setOngoingCallState(inCallModel(startTimeMs = 1000))
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
                 .isEqualTo(398_000)
 
             // End the call
             repo.setOngoingCallState(OngoingCallModel.NoCall)
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             // Let 100_000ms elapse
             kosmos.fakeSystemClock.setCurrentTimeMillis(103_000)
@@ -375,8 +308,8 @@
 
             // Start a new call, which started 1000ms ago
             repo.setOngoingCallState(inCallModel(startTimeMs = 102_000))
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
                 .isEqualTo(499_000)
         }
 
@@ -388,7 +321,7 @@
 
             repo.setOngoingCallState(inCallModel(startTimeMs = 1000, intent = null))
 
-            assertThat((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy).isNull()
+            assertThat((latest as OngoingActivityChipModel.Active).onClickListenerLegacy).isNull()
         }
 
     @Test
@@ -399,7 +332,7 @@
 
             val pendingIntent = mock<PendingIntent>()
             repo.setOngoingCallState(inCallModel(startTimeMs = 1000, intent = pendingIntent))
-            val clickListener = (latest as OngoingActivityChipModel.Shown).onClickListenerLegacy
+            val clickListener = (latest as OngoingActivityChipModel.Active).onClickListenerLegacy
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -417,7 +350,7 @@
 
             val pendingIntent = mock<PendingIntent>()
             repo.setOngoingCallState(inCallModel(startTimeMs = 0, intent = pendingIntent))
-            val clickListener = (latest as OngoingActivityChipModel.Shown).onClickListenerLegacy
+            val clickListener = (latest as OngoingActivityChipModel.Active).onClickListenerLegacy
 
             assertThat(clickListener).isNotNull()
 
@@ -440,7 +373,7 @@
                 intent = null,
             )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.None::class.java)
         }
 
@@ -457,7 +390,7 @@
                 intent = pendingIntent,
             )
 
-            val clickBehavior = (latest as OngoingActivityChipModel.Shown).clickBehavior
+            val clickBehavior = (latest as OngoingActivityChipModel.Active).clickBehavior
             assertThat(clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
             (clickBehavior as OngoingActivityChipModel.ClickBehavior.ExpandAction).onClick(
@@ -482,7 +415,7 @@
                 intent = pendingIntent,
             )
 
-            val clickBehavior = (latest as OngoingActivityChipModel.Shown).clickBehavior
+            val clickBehavior = (latest as OngoingActivityChipModel.Active).clickBehavior
             assertThat(clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
             (clickBehavior as OngoingActivityChipModel.ClickBehavior.ExpandAction).onClick(
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelTest.kt
index fcf8c83..cd3c8cd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelTest.kt
@@ -119,7 +119,7 @@
 
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -135,9 +135,9 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_cast_connected)
@@ -157,9 +157,9 @@
                     hostPackage = CAST_TO_OTHER_DEVICES_PACKAGE
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_cast_connected)
@@ -177,9 +177,9 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_cast_connected)
@@ -195,7 +195,7 @@
 
             mediaRouterRepo.castDevices.value = emptyList()
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -215,9 +215,9 @@
                     )
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_cast_connected)
@@ -245,9 +245,9 @@
                 )
 
             // Only the projection info will show a timer
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_cast_connected)
@@ -265,7 +265,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
 
             // WHEN the stop action on the dialog is clicked
             val dialogStopAction =
@@ -279,13 +279,13 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden...
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
             // ...even though the repo still says it's projecting
             assertThat(mediaProjectionRepo.mediaProjectionState.value)
                 .isInstanceOf(MediaProjectionState.Projecting::class.java)
 
             // AND we specify no animation
-            assertThat((latest as OngoingActivityChipModel.Hidden).shouldAnimate).isFalse()
+            assertThat((latest as OngoingActivityChipModel.Inactive).shouldAnimate).isFalse()
         }
 
     @Test
@@ -304,7 +304,7 @@
                     )
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
 
             // WHEN the stop action on the dialog is clicked
             val dialogStopAction =
@@ -318,12 +318,12 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden...
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
             // ...even though the repo still says it's projecting
             assertThat(mediaRouterRepo.castDevices.value).isNotEmpty()
 
             // AND we specify no animation
-            assertThat((latest as OngoingActivityChipModel.Hidden).shouldAnimate).isFalse()
+            assertThat((latest as OngoingActivityChipModel.Inactive).shouldAnimate).isFalse()
         }
 
     @Test
@@ -334,7 +334,8 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            assertThat((latest as OngoingActivityChipModel.Shown).colors).isEqualTo(ColorsModel.Red)
+            assertThat((latest as OngoingActivityChipModel.Active).colors)
+                .isEqualTo(ColorsModel.Red)
         }
 
     @Test
@@ -346,7 +347,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.NoScreen(NORMAL_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -361,7 +362,7 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -372,7 +373,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -384,11 +385,12 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             systemClock.setElapsedRealtime(5678)
             mediaProjectionRepo.mediaProjectionState.value =
@@ -398,8 +400,9 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(5678)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(5678)
         }
 
     @Test
@@ -421,7 +424,7 @@
                     )
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
 
             // Later, set MediaProjection to also have information
             systemClock.setElapsedRealtime(5678)
@@ -429,8 +432,9 @@
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
             // Verify the new time is used
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(5678)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(5678)
         }
 
     @Test
@@ -441,7 +445,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -462,7 +466,7 @@
                     createTask(taskId = 1),
                 )
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -487,7 +491,7 @@
                     )
                 )
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -508,7 +512,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             clickListener!!.onClick(chipView)
 
             val cujCaptor = argumentCaptor<DialogCuj>()
@@ -537,7 +541,7 @@
                     )
                 )
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             clickListener!!.onClick(chipView)
 
             val cujCaptor = argumentCaptor<DialogCuj>()
@@ -566,7 +570,7 @@
                     )
                 )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
         }
 
@@ -579,7 +583,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
         }
 
@@ -592,7 +596,7 @@
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
             expandAction.onClick(mockExpandable)
 
@@ -614,7 +618,7 @@
                 )
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
             expandAction.onClick(mockExpandable)
 
@@ -640,7 +644,7 @@
                 )
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
             expandAction.onClick(mockExpandable)
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt
index 1f77ddc..aaa9b58 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt
@@ -186,7 +186,7 @@
 
     @Test
     @DisableFlags(FLAG_PROMOTE_NOTIFICATIONS_AUTOMATICALLY)
-    fun chips_onePromotedNotif_colorMatches() =
+    fun chips_onePromotedNotif_colorIsSystemThemed() =
         kosmos.runTest {
             val latest by collectLastValue(underTest.chips)
 
@@ -209,10 +209,7 @@
             )
 
             assertThat(latest).hasSize(1)
-            val colors = latest!![0].colors
-            assertThat(colors).isInstanceOf(ColorsModel.Custom::class.java)
-            assertThat((colors as ColorsModel.Custom).backgroundColorInt).isEqualTo(56)
-            assertThat((colors as ColorsModel.Custom).primaryTextColorInt).isEqualTo(89)
+            assertThat(latest!![0].colors).isEqualTo(ColorsModel.SystemThemed)
         }
 
     @Test
@@ -310,8 +307,8 @@
             )
 
             assertThat(latest).hasSize(1)
-            assertThat(latest!![0]).isInstanceOf(OngoingActivityChipModel.Shown.Text::class.java)
-            assertThat((latest!![0] as OngoingActivityChipModel.Shown.Text).text)
+            assertThat(latest!![0]).isInstanceOf(OngoingActivityChipModel.Active.Text::class.java)
+            assertThat((latest!![0] as OngoingActivityChipModel.Active.Text).text)
                 .isEqualTo("Arrived")
         }
 
@@ -335,7 +332,7 @@
 
             assertThat(latest).hasSize(1)
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
@@ -365,7 +362,7 @@
 
             assertThat(latest).hasSize(1)
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
@@ -395,7 +392,7 @@
 
             assertThat(latest).hasSize(1)
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.ShortTimeDelta::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.ShortTimeDelta::class.java)
         }
 
     @Test
@@ -424,7 +421,7 @@
 
             assertThat(latest).hasSize(1)
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.ShortTimeDelta::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.ShortTimeDelta::class.java)
         }
 
     @Test
@@ -452,7 +449,7 @@
             )
 
             assertThat(latest).hasSize(1)
-            assertThat(latest!![0]).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest!![0]).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
     @Test
@@ -480,7 +477,7 @@
             )
 
             assertThat(latest).hasSize(1)
-            assertThat(latest!![0]).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest!![0]).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
     @Test
@@ -512,7 +509,7 @@
 
             // THEN the chip shows the time
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.ShortTimeDelta::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.ShortTimeDelta::class.java)
         }
 
     @Test
@@ -551,7 +548,7 @@
             // (In real life the chip won't show at all, but that's handled in a different part of
             // the system. What we know here is that the chip shouldn't shrink to icon only.)
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.ShortTimeDelta::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.ShortTimeDelta::class.java)
         }
 
     @Test
@@ -603,7 +600,8 @@
 
             // THEN the "notif" chip keeps showing time
             val chip = latest!![0]
-            assertThat(chip).isInstanceOf(OngoingActivityChipModel.Shown.ShortTimeDelta::class.java)
+            assertThat(chip)
+                .isInstanceOf(OngoingActivityChipModel.Active.ShortTimeDelta::class.java)
             assertIsNotifChip(chip, context, icon, "notif")
         }
 
@@ -641,7 +639,7 @@
 
             // THEN the chip shrinks to icon only
             assertThat(latest!![0])
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
@@ -724,22 +722,23 @@
             expectedNotificationKey: String,
             expectedContentDescriptionSubstrings: List<String> = emptyList(),
         ) {
-            val shown = latest as OngoingActivityChipModel.Shown
+            val active = latest as OngoingActivityChipModel.Active
             if (StatusBarConnectedDisplays.isEnabled) {
-                assertThat(shown.icon)
+                assertThat(active.icon)
                     .isInstanceOf(
                         OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon::class.java
                     )
-                val icon = shown.icon as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
+                val icon =
+                    active.icon as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
 
                 assertThat(icon.notificationKey).isEqualTo(expectedNotificationKey)
                 expectedContentDescriptionSubstrings.forEach {
                     assertThat(icon.contentDescription.loadContentDescription(context)).contains(it)
                 }
             } else {
-                assertThat(shown.icon)
+                assertThat(active.icon)
                     .isInstanceOf(OngoingActivityChipModel.ChipIcon.StatusBarView::class.java)
-                val icon = shown.icon as OngoingActivityChipModel.ChipIcon.StatusBarView
+                val icon = active.icon as OngoingActivityChipModel.ChipIcon.StatusBarView
                 assertThat(icon.impl).isEqualTo(expectedIcon!!)
                 expectedContentDescriptionSubstrings.forEach {
                     assertThat(icon.contentDescription.loadContentDescription(context)).contains(it)
@@ -749,7 +748,7 @@
 
         fun assertIsNotifKey(latest: OngoingActivityChipModel?, expectedKey: String) {
             assertThat(
-                    ((latest as OngoingActivityChipModel.Shown).icon
+                    ((latest as OngoingActivityChipModel.Active).icon
                             as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon)
                         .notificationKey
                 )
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelTest.kt
index 1f82dcd..6cfad85 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModelTest.kt
@@ -101,7 +101,7 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.DoingNothing
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -111,9 +111,9 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Starting(400)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Countdown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown).icon).isNull()
-            assertThat((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy).isNull()
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Countdown::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active).icon).isNull()
+            assertThat((latest as OngoingActivityChipModel.Active).onClickListenerLegacy).isNull()
         }
 
     // The millis we typically get from [ScreenRecordRepository] are around 2995, 1995, and 995.
@@ -124,7 +124,7 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Starting(2995)
 
-            assertThat((latest as OngoingActivityChipModel.Shown.Countdown).secondsUntilStarted)
+            assertThat((latest as OngoingActivityChipModel.Active.Countdown).secondsUntilStarted)
                 .isEqualTo(3)
         }
 
@@ -135,7 +135,7 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Starting(1995)
 
-            assertThat((latest as OngoingActivityChipModel.Shown.Countdown).secondsUntilStarted)
+            assertThat((latest as OngoingActivityChipModel.Active.Countdown).secondsUntilStarted)
                 .isEqualTo(2)
         }
 
@@ -146,7 +146,7 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Starting(995)
 
-            assertThat((latest as OngoingActivityChipModel.Shown.Countdown).secondsUntilStarted)
+            assertThat((latest as OngoingActivityChipModel.Active.Countdown).secondsUntilStarted)
                 .isEqualTo(1)
         }
 
@@ -157,9 +157,9 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_screenrecord)
@@ -179,8 +179,8 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen("fake.package")
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat(latestShareToApp).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat(latestShareToApp).isInstanceOf(OngoingActivityChipModel.Active::class.java)
 
             // WHEN the stop action on the dialog is clicked
             val dialogStopAction =
@@ -194,8 +194,8 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN both the screen record chip and the share-to-app chip are immediately hidden...
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
-            assertThat(latestShareToApp).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(latestShareToApp).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
             // ...even though the repos still say it's recording
             assertThat(screenRecordRepo.screenRecordState.value)
                 .isEqualTo(ScreenRecordModel.Recording)
@@ -203,7 +203,7 @@
                 .isInstanceOf(MediaProjectionState.Projecting::class.java)
 
             // AND we specify no animation
-            assertThat((latest as OngoingActivityChipModel.Hidden).shouldAnimate).isFalse()
+            assertThat((latest as OngoingActivityChipModel.Inactive).shouldAnimate).isFalse()
         }
 
     @Test
@@ -213,7 +213,8 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Starting(2000L)
 
-            assertThat((latest as OngoingActivityChipModel.Shown).colors).isEqualTo(ColorsModel.Red)
+            assertThat((latest as OngoingActivityChipModel.Active).colors)
+                .isEqualTo(ColorsModel.Red)
         }
 
     @Test
@@ -223,7 +224,8 @@
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
 
-            assertThat((latest as OngoingActivityChipModel.Shown).colors).isEqualTo(ColorsModel.Red)
+            assertThat((latest as OngoingActivityChipModel.Active).colors)
+                .isEqualTo(ColorsModel.Red)
         }
 
     @Test
@@ -234,17 +236,19 @@
             systemClock.setElapsedRealtime(1234)
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.DoingNothing
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             systemClock.setElapsedRealtime(5678)
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(5678)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(5678)
         }
 
     /** Regression test for b/349620526. */
@@ -258,8 +262,9 @@
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             // WHEN we receive the recording task info a few milliseconds later
             systemClock.setElapsedRealtime(1240)
@@ -271,8 +276,9 @@
                 )
 
             // THEN the start time is still the old start time
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
         }
 
     @Test
@@ -283,7 +289,7 @@
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -301,7 +307,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen("host.package")
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -323,7 +329,7 @@
                     FakeActivityTaskManager.createTask(taskId = 1),
                 )
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -341,7 +347,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen("host.package")
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             clickListener!!.onClick(chipView)
 
             val cujCaptor = argumentCaptor<DialogCuj>()
@@ -358,8 +364,8 @@
         testScope.runTest {
             val latest by collectLastValue(underTest.chip)
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
         }
 
@@ -372,7 +378,7 @@
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
 
             expandAction.onClick(mockExpandable)
@@ -387,7 +393,7 @@
             screenRecordRepo.screenRecordState.value = ScreenRecordModel.Recording
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
 
             expandAction.onClick(mockExpandable)
@@ -408,7 +414,7 @@
                 )
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
 
             expandAction.onClick(mockExpandable)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelTest.kt
index 3961e17..e708382 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModelTest.kt
@@ -117,12 +117,12 @@
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
             // Verify the chip is initially shown
-            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Active::class.java)
 
             fakeMediaProjectionRepository.emitProjectionStartedDuringCallAndActivePostCallEvent()
 
             // Verify the chip is hidden
-            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -136,12 +136,12 @@
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
             // Verify the chip is initially shown
-            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Active::class.java)
 
             fakeMediaProjectionRepository.emitProjectionStartedDuringCallAndActivePostCallEvent()
 
             // Chip is still shown
-            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latestChip).isInstanceOf(OngoingActivityChipModel.Active::class.java)
         }
 
     @Test
@@ -330,7 +330,7 @@
 
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -345,7 +345,7 @@
                     hostDeviceName = null,
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -360,7 +360,7 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -371,7 +371,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(CAST_TO_OTHER_DEVICES_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -383,9 +383,9 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.NoScreen(NORMAL_PACKAGE, hostDeviceName = null)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_present_to_all)
@@ -406,9 +406,9 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_present_to_all)
@@ -423,9 +423,9 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
             val icon =
-                (((latest as OngoingActivityChipModel.Shown).icon)
+                (((latest as OngoingActivityChipModel.Active).icon)
                         as OngoingActivityChipModel.ChipIcon.SingleColorIcon)
                     .impl as Icon.Resource
             assertThat(icon.res).isEqualTo(R.drawable.ic_present_to_all)
@@ -440,7 +440,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
 
             // WHEN the stop action on the dialog is clicked
             val dialogStopAction =
@@ -454,13 +454,13 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden...
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
             // ...even though the repo still says it's projecting
             assertThat(mediaProjectionRepo.mediaProjectionState.value)
                 .isInstanceOf(MediaProjectionState.Projecting::class.java)
 
             // AND we specify no animation
-            assertThat((latest as OngoingActivityChipModel.Hidden).shouldAnimate).isFalse()
+            assertThat((latest as OngoingActivityChipModel.Inactive).shouldAnimate).isFalse()
         }
 
     @Test
@@ -471,7 +471,8 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            assertThat((latest as OngoingActivityChipModel.Shown).colors).isEqualTo(ColorsModel.Red)
+            assertThat((latest as OngoingActivityChipModel.Active).colors)
+                .isEqualTo(ColorsModel.Red)
         }
 
     @Test
@@ -483,11 +484,12 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             mediaProjectionRepo.mediaProjectionState.value = MediaProjectionState.NotProjecting
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             systemClock.setElapsedRealtime(5678)
             mediaProjectionRepo.mediaProjectionState.value =
@@ -497,8 +499,9 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(5678)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(5678)
         }
 
     @Test
@@ -510,7 +513,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.NoScreen(NORMAL_PACKAGE)
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -531,7 +534,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -556,7 +559,7 @@
                     createTask(taskId = 1),
                 )
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             assertThat(clickListener).isNotNull()
 
             clickListener!!.onClick(chipView)
@@ -581,7 +584,7 @@
                     createTask(taskId = 1),
                 )
 
-            val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+            val clickListener = ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
             clickListener!!.onClick(chipView)
 
             val cujCaptor = argumentCaptor<DialogCuj>()
@@ -601,7 +604,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.NoScreen(NORMAL_PACKAGE)
 
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
         }
 
@@ -613,7 +616,7 @@
             mediaProjectionRepo.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
         }
 
@@ -629,7 +632,7 @@
                     createTask(taskId = 1),
                 )
 
-            assertThat((latest as OngoingActivityChipModel.Shown).clickBehavior)
+            assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.ExpandAction::class.java)
         }
 
@@ -646,7 +649,7 @@
                 MediaProjectionState.Projecting.NoScreen(NORMAL_PACKAGE)
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
             expandAction.onClick(mockExpandable)
             verify(kosmos.mockDialogTransitionAnimator)
@@ -662,7 +665,7 @@
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
             expandAction.onClick(mockExpandable)
             verify(kosmos.mockDialogTransitionAnimator)
@@ -682,7 +685,7 @@
                 )
 
             val expandAction =
-                ((latest as OngoingActivityChipModel.Shown).clickBehavior
+                ((latest as OngoingActivityChipModel.Active).clickBehavior
                     as OngoingActivityChipModel.ClickBehavior.ExpandAction)
             expandAction.onClick(mockExpandable)
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelperTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelperTest.kt
index d727089..9ec5a42 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelperTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelperTest.kt
@@ -52,24 +52,13 @@
     }
 
     @Test
-    fun shouldShowText_desiredSlightlyLargerThanMax_true() {
+    fun shouldShowText_desiredMoreThanMax_false() {
         val result =
             underTest.shouldShowText(
                 desiredTextWidthPx = (MAX_WIDTH * 1.1).toInt(),
                 widthMeasureSpec = UNLIMITED_WIDTH_SPEC,
             )
 
-        assertThat(result).isTrue()
-    }
-
-    @Test
-    fun shouldShowText_desiredMoreThanTwiceMax_false() {
-        val result =
-            underTest.shouldShowText(
-                desiredTextWidthPx = (MAX_WIDTH * 2.2).toInt(),
-                widthMeasureSpec = UNLIMITED_WIDTH_SPEC,
-            )
-
         assertThat(result).isFalse()
     }
 
@@ -80,8 +69,8 @@
                 View.MeasureSpec.makeMeasureSpec(MAX_WIDTH / 2, View.MeasureSpec.AT_MOST)
             )
 
-        // WHEN desired is more than twice the smallerWidthSpec
-        val desiredWidth = (MAX_WIDTH * 1.1).toInt()
+        // WHEN desired is more than the smallerWidthSpec
+        val desiredWidth = ((MAX_WIDTH / 2) * 1.1).toInt()
 
         val result =
             underTest.shouldShowText(
@@ -100,8 +89,8 @@
                 View.MeasureSpec.makeMeasureSpec(MAX_WIDTH * 3, View.MeasureSpec.AT_MOST)
             )
 
-        // WHEN desired is more than twice the max
-        val desiredWidth = (MAX_WIDTH * 2.2).toInt()
+        // WHEN desired is more than the max
+        val desiredWidth = (MAX_WIDTH * 1.1).toInt()
 
         val result =
             underTest.shouldShowText(
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelperTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelperTest.kt
index 550faab..e3a84fd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelperTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelperTest.kt
@@ -47,14 +47,14 @@
         testScope.runTest {
             val underTest = ChipTransitionHelper(kosmos.applicationCoroutineScope)
             val inputChipFlow =
-                MutableStateFlow<OngoingActivityChipModel>(OngoingActivityChipModel.Hidden())
+                MutableStateFlow<OngoingActivityChipModel>(OngoingActivityChipModel.Inactive())
             val latest by collectLastValue(underTest.createChipFlow(inputChipFlow))
 
             val newChip =
-                OngoingActivityChipModel.Shown.Timer(
+                OngoingActivityChipModel.Active.Timer(
                     key = KEY,
                     icon = createIcon(R.drawable.ic_cake),
-                    colors = ColorsModel.Themed,
+                    colors = ColorsModel.AccentThemed,
                     startTimeMs = 100L,
                     onClickListenerLegacy = null,
                     clickBehavior = OngoingActivityChipModel.ClickBehavior.None,
@@ -65,10 +65,10 @@
             assertThat(latest).isEqualTo(newChip)
 
             val newerChip =
-                OngoingActivityChipModel.Shown.IconOnly(
+                OngoingActivityChipModel.Active.IconOnly(
                     key = KEY,
                     icon = createIcon(R.drawable.ic_hotspot),
-                    colors = ColorsModel.Themed,
+                    colors = ColorsModel.AccentThemed,
                     onClickListenerLegacy = null,
                     clickBehavior = OngoingActivityChipModel.ClickBehavior.None,
                 )
@@ -83,41 +83,41 @@
         testScope.runTest {
             val underTest = ChipTransitionHelper(kosmos.applicationCoroutineScope)
             val inputChipFlow =
-                MutableStateFlow<OngoingActivityChipModel>(OngoingActivityChipModel.Hidden())
+                MutableStateFlow<OngoingActivityChipModel>(OngoingActivityChipModel.Inactive())
             val latest by collectLastValue(underTest.createChipFlow(inputChipFlow))
 
-            val shownChip =
-                OngoingActivityChipModel.Shown.Timer(
+            val activeChip =
+                OngoingActivityChipModel.Active.Timer(
                     key = KEY,
                     icon = createIcon(R.drawable.ic_cake),
-                    colors = ColorsModel.Themed,
+                    colors = ColorsModel.AccentThemed,
                     startTimeMs = 100L,
                     onClickListenerLegacy = null,
                     clickBehavior = OngoingActivityChipModel.ClickBehavior.None,
                 )
 
-            inputChipFlow.value = shownChip
+            inputChipFlow.value = activeChip
 
-            assertThat(latest).isEqualTo(shownChip)
+            assertThat(latest).isEqualTo(activeChip)
 
             // WHEN #onActivityStopped is invoked
             underTest.onActivityStoppedFromDialog()
             runCurrent()
 
             // THEN the chip is hidden and has no animation
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
 
             // WHEN only 250ms have elapsed
             advanceTimeBy(250)
 
             // THEN the chip is still hidden
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
 
             // WHEN over 500ms have elapsed
             advanceTimeBy(251)
 
             // THEN the chip returns to the original input flow value
-            assertThat(latest).isEqualTo(shownChip)
+            assertThat(latest).isEqualTo(activeChip)
         }
 
     @Test
@@ -125,29 +125,29 @@
         testScope.runTest {
             val underTest = ChipTransitionHelper(kosmos.applicationCoroutineScope)
             val inputChipFlow =
-                MutableStateFlow<OngoingActivityChipModel>(OngoingActivityChipModel.Hidden())
+                MutableStateFlow<OngoingActivityChipModel>(OngoingActivityChipModel.Inactive())
             val latest by collectLastValue(underTest.createChipFlow(inputChipFlow))
 
-            val shownChip =
-                OngoingActivityChipModel.Shown.Timer(
+            val activeChip =
+                OngoingActivityChipModel.Active.Timer(
                     key = KEY,
                     icon = createIcon(R.drawable.ic_cake),
-                    colors = ColorsModel.Themed,
+                    colors = ColorsModel.AccentThemed,
                     startTimeMs = 100L,
                     onClickListenerLegacy = null,
                     clickBehavior = OngoingActivityChipModel.ClickBehavior.None,
                 )
 
-            inputChipFlow.value = shownChip
+            inputChipFlow.value = activeChip
 
-            assertThat(latest).isEqualTo(shownChip)
+            assertThat(latest).isEqualTo(activeChip)
 
             // WHEN #onActivityStopped is invoked
             underTest.onActivityStoppedFromDialog()
             runCurrent()
 
             // THEN the chip is hidden and has no animation
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
 
             // WHEN 250ms have elapsed, get another stop event
             advanceTimeBy(250)
@@ -155,11 +155,11 @@
             runCurrent()
 
             // THEN the chip is still hidden for another 500ms afterwards
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
             advanceTimeBy(499)
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
             advanceTimeBy(2)
-            assertThat(latest).isEqualTo(shownChip)
+            assertThat(latest).isEqualTo(activeChip)
         }
 
     private fun createIcon(@DrawableRes drawable: Int) =
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt
index ffa9d99..626dcd5 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt
@@ -118,7 +118,7 @@
 
             val latest by collectLastValue(underTest.primaryChip)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
@@ -266,7 +266,8 @@
 
             runCurrent()
 
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             // Stop subscribing to the chip flow
             job1.cancel()
@@ -280,7 +281,8 @@
             runCurrent()
 
             // THEN the old start time is still used
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             job2.cancel()
         }
@@ -312,7 +314,7 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden with no animation
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
         }
 
     @Test
@@ -339,7 +341,7 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden with no animation
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
         }
 
     companion object {
@@ -372,13 +374,13 @@
                 .thenThrow(PackageManager.NameNotFoundException())
 
             if (StatusBarChipsModernization.isEnabled) {
-                val clickBehavior = (latest as OngoingActivityChipModel.Shown).clickBehavior
+                val clickBehavior = (latest as OngoingActivityChipModel.Active).clickBehavior
                 (clickBehavior as OngoingActivityChipModel.ClickBehavior.ExpandAction).onClick(
                     expandable
                 )
             } else {
                 val clickListener =
-                    ((latest as OngoingActivityChipModel.Shown).onClickListenerLegacy)
+                    ((latest as OngoingActivityChipModel.Active).onClickListenerLegacy)
                 clickListener!!.onClick(chipView)
             }
 
@@ -386,8 +388,8 @@
         }
 
         fun assertIsScreenRecordChip(latest: OngoingActivityChipModel?) {
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown).key)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active).key)
                 .isEqualTo(ScreenRecordChipViewModel.KEY)
             val icon =
                 ((latest.icon) as OngoingActivityChipModel.ChipIcon.SingleColorIcon).impl
@@ -396,8 +398,8 @@
         }
 
         fun assertIsShareToAppChip(latest: OngoingActivityChipModel?) {
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown).key)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active).key)
                 .isEqualTo(ShareToAppChipViewModel.KEY)
             val icon =
                 ((latest.icon) as OngoingActivityChipModel.ChipIcon.SingleColorIcon).impl
@@ -406,8 +408,8 @@
         }
 
         fun assertIsCallChip(latest: OngoingActivityChipModel?, notificationKey: String) {
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Shown::class.java)
-            assertThat((latest as OngoingActivityChipModel.Shown).key).isEqualTo(notificationKey)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
+            assertThat((latest as OngoingActivityChipModel.Active).key).isEqualTo(notificationKey)
 
             if (StatusBarConnectedDisplays.isEnabled) {
                 assertNotificationIcon(latest, notificationKey)
@@ -423,9 +425,9 @@
             latest: OngoingActivityChipModel?,
             notificationKey: String,
         ) {
-            val shown = latest as OngoingActivityChipModel.Shown
+            val active = latest as OngoingActivityChipModel.Active
             val notificationIcon =
-                shown.icon as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
+                active.icon as OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
             assertThat(notificationIcon.notificationKey).isEqualTo(notificationKey)
         }
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt
index 29528cc..20637cd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt
@@ -30,8 +30,11 @@
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.animation.Expandable
 import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository
-import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.display.data.repository.displayStateRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runCurrent
+import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.mediaprojection.data.model.MediaProjectionState
@@ -47,6 +50,7 @@
 import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
 import com.android.systemui.statusbar.chips.notification.ui.viewmodel.NotifChipsViewModelTest.Companion.assertIsNotifChip
 import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
+import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModelLegacy
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
 import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsViewModelTest.Companion.assertIsCallChip
@@ -57,21 +61,19 @@
 import com.android.systemui.statusbar.notification.data.model.activeNotificationModel
 import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore
 import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
+import com.android.systemui.statusbar.notification.data.repository.addNotif
+import com.android.systemui.statusbar.notification.data.repository.addNotifs
 import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
 import com.android.systemui.statusbar.notification.shared.ActiveNotificationModel
-import com.android.systemui.statusbar.notification.shared.CallType
 import com.android.systemui.statusbar.phone.SystemUIDialog
 import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
-import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.inCallModel
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.addOngoingCallState
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.removeOngoingCallState
 import com.android.systemui.testKosmos
 import com.android.systemui.util.time.fakeSystemClock
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Ignore
 import org.junit.Test
@@ -80,18 +82,17 @@
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.whenever
 
+// TODO(b/273205603): add tests for Active chips with hidden=true once actually used.
 /** Tests for [OngoingActivityChipsViewModel] when the [StatusBarNotifChips] flag is enabled. */
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 @EnableFlags(StatusBarNotifChips.FLAG_NAME)
 class OngoingActivityChipsWithNotifsViewModelTest : SysuiTestCase() {
     private val kosmos = testKosmos().useUnconfinedTestDispatcher()
-    private val testScope = kosmos.testScope
     private val systemClock = kosmos.fakeSystemClock
 
     private val screenRecordState = kosmos.screenRecordRepository.screenRecordState
     private val mediaProjectionState = kosmos.fakeMediaProjectionRepository.mediaProjectionState
-    private val callRepo = kosmos.ongoingCallRepository
     private val activeNotificationListRepository = kosmos.activeNotificationListRepository
 
     private val mockSystemUIDialog = mock<SystemUIDialog>()
@@ -108,7 +109,7 @@
     private val mockExpandable: Expandable =
         mock<Expandable>().apply { whenever(dialogTransitionController(any())).thenReturn(mock()) }
 
-    private val underTest by lazy { kosmos.ongoingActivityChipsViewModel }
+    private val Kosmos.underTest by Kosmos.Fixture { ongoingActivityChipsViewModel }
 
     @Before
     fun setUp() {
@@ -127,165 +128,332 @@
 
     @Test
     fun primaryChip_allHidden_hidden() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.DoingNothing
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_allHidden_bothPrimaryAndSecondaryHidden() =
-        testScope.runTest {
+    fun chipsLegacy_allHidden_bothPrimaryAndSecondaryHidden() =
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.DoingNothing
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
+
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
+
+            assertThat(latest!!.primary).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_allInactive() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.DoingNothing
+            mediaProjectionState.value = MediaProjectionState.NotProjecting
+            setNotifs(emptyList())
 
             val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
 
-            assertThat(latest!!.primary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.active).isEmpty()
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(4)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
         }
 
     @Test
     fun primaryChip_screenRecordShow_restHidden_screenRecordShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
             assertIsScreenRecordChip(latest)
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_screenRecordShow_restHidden_primaryIsScreenRecordSecondaryIsHidden() =
-        testScope.runTest {
+    fun chipsLegacy_screenRecordShow_restHidden_primaryIsScreenRecordSecondaryIsHidden() =
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
-            val latest by collectLastValue(underTest.chips)
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             assertIsScreenRecordChip(latest!!.primary)
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_screenRecordActive_restInactive() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Recording
+            mediaProjectionState.value = MediaProjectionState.NotProjecting
+            setNotifs(emptyList())
+
+            val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            assertThat(latest!!.active.size).isEqualTo(1)
+            assertIsScreenRecordChip(latest!!.active[0])
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(3)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
         }
 
     @Test
     fun primaryChip_screenRecordShowAndCallShow_screenRecordShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34))
+            addOngoingCallState("call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
             assertIsScreenRecordChip(latest)
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_screenRecordShowAndCallShow_primaryIsScreenRecordSecondaryIsCall() =
-        testScope.runTest {
+    fun chipsLegacy_screenRecordShowAndCallShow_primaryIsScreenRecordSecondaryIsCall() =
+        kosmos.runTest {
             val callNotificationKey = "call"
             screenRecordState.value = ScreenRecordModel.Recording
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(callNotificationKey)
 
-            val latest by collectLastValue(underTest.chips)
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             assertIsScreenRecordChip(latest!!.primary)
             assertIsCallChip(latest!!.secondary, callNotificationKey)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
         }
 
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_screenRecordAndCallActive_inThatOrder() =
+        kosmos.runTest {
+            val callNotificationKey = "call"
+            screenRecordState.value = ScreenRecordModel.Recording
+            addOngoingCallState(callNotificationKey)
+
+            val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsScreenRecordChip(latest!!.active[0])
+            assertIsCallChip(latest!!.active[1], callNotificationKey)
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(2)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+        }
+
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_oneChip_notSquished() =
+        kosmos.runTest {
+            addOngoingCallState()
+
+            val latest by collectLastValue(underTest.chipsLegacy)
+
+            // The call chip isn't squished (squished chips would be icon only)
+            assertThat(latest!!.primary)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
     fun chips_oneChip_notSquished() =
-        testScope.runTest {
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34, notificationKey = "call"))
+        kosmos.runTest {
+            addOngoingCallState()
 
             val latest by collectLastValue(underTest.chips)
 
             // The call chip isn't squished (squished chips would be icon only)
-            assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
-    @Test
     @DisableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
-    fun chips_twoTimerChips_isSmallPortrait_andChipsModernizationDisabled_bothSquished() =
-        testScope.runTest {
+    @Test
+    fun chipsLegacy_twoTimerChips_isSmallPortrait_bothSquished() =
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34, notificationKey = "call"))
+            addOngoingCallState(key = "call")
+
+            val latest by collectLastValue(underTest.chipsLegacy)
+
+            // Squished chips are icon only
+            assertThat(latest!!.primary)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
+        }
+
+    @EnableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    @Test
+    fun chips_twoTimerChips_isSmallPortrait_bothSquished() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Recording
+            addOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.chips)
 
             // Squished chips are icon only
-            assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
-            assertThat(latest!!.secondary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
+            assertThat(latest!!.active[1])
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
-    @Test
     @DisableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
-    fun chips_countdownChipAndTimerChip_countdownNotSquished_butTimerSquished() =
-        testScope.runTest {
+    @Test
+    fun chipsLegacy_countdownChipAndTimerChip_countdownNotSquished_butTimerSquished() =
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Starting(millisUntilStarted = 2000)
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34, notificationKey = "call"))
+            addOngoingCallState(key = "call")
+
+            val latest by collectLastValue(underTest.chipsLegacy)
+
+            // The screen record countdown isn't squished to icon-only
+            assertThat(latest!!.primary)
+                .isInstanceOf(OngoingActivityChipModel.Active.Countdown::class.java)
+            // But the call chip *is* squished
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
+        }
+
+    @EnableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    @Test
+    fun chips_countdownChipAndTimerChip_countdownNotSquished_butTimerSquished() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Starting(millisUntilStarted = 2000)
+            addOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.chips)
 
             // The screen record countdown isn't squished to icon-only
-            assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Countdown::class.java)
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.Countdown::class.java)
             // But the call chip *is* squished
-            assertThat(latest!!.secondary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+            assertThat(latest!!.active[1])
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
-    @Test
     @DisableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
-    fun chips_numberOfChipsChanges_chipsGetSquishedAndUnsquished() =
-        testScope.runTest {
-            val latest by collectLastValue(underTest.chips)
+    @Test
+    fun chipsLegacy_numberOfChipsChanges_chipsGetSquishedAndUnsquished() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chipsLegacy)
 
             // WHEN there's only one chip
             screenRecordState.value = ScreenRecordModel.Recording
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
             // The screen record isn't squished because it's the only one
             assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             // WHEN there's 2 chips
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34, notificationKey = "call"))
+            addOngoingCallState(key = "call")
 
             // THEN they both become squished
             assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
             // But the call chip *is* squished
             assertThat(latest!!.secondary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.IconOnly::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
 
             // WHEN we go back down to 1 chip
             screenRecordState.value = ScreenRecordModel.DoingNothing
 
             // THEN the remaining chip unsquishes
             assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
+    @EnableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
     @Test
-    @DisableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
-    fun chips_twoChips_isLandscape_notSquished() =
-        testScope.runTest {
+    fun chips_numberOfChipsChanges_chipsGetSquishedAndUnsquished() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chips)
+
+            // WHEN there's only one chip
             screenRecordState.value = ScreenRecordModel.Recording
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34, notificationKey = "call"))
+            removeOngoingCallState(key = "call")
+
+            // The screen record isn't squished because it's the only one
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+
+            // WHEN there's 2 chips
+            addOngoingCallState(key = "call")
+
+            // THEN they both become squished
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
+            // But the call chip *is* squished
+            assertThat(latest!!.active[1])
+                .isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
+
+            // WHEN we go back down to 1 chip
+            screenRecordState.value = ScreenRecordModel.DoingNothing
+
+            // THEN the remaining chip unsquishes
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+        }
+
+    @DisableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_twoChips_isLandscape_notSquished() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Recording
+            addOngoingCallState(key = "call")
+
+            // WHEN we're in landscape
+            val config =
+                Configuration(kosmos.mainResources.configuration).apply {
+                    orientation = Configuration.ORIENTATION_LANDSCAPE
+                }
+            kosmos.fakeConfigurationRepository.onConfigurationChange(config)
+
+            val latest by collectLastValue(underTest.chipsLegacy)
+
+            // THEN the chips aren't squished (squished chips would be icon only)
+            assertThat(latest!!.primary)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+        }
+
+    @EnableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    @Test
+    fun chips_twoChips_isLandscape_notSquished() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Recording
+            addOngoingCallState(key = "call")
 
             // WHEN we're in landscape
             val config =
@@ -297,18 +465,37 @@
             val latest by collectLastValue(underTest.chips)
 
             // THEN the chips aren't squished (squished chips would be icon only)
-            assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-            assertThat(latest!!.secondary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat(latest!!.active[1])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
-    @Test
     @DisableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
-    fun chips_twoChips_isLargeScreen_notSquished() =
-        testScope.runTest {
+    @Test
+    fun chipsLegacy_twoChips_isLargeScreen_notSquished() =
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34, notificationKey = "call"))
+            addOngoingCallState(key = "call")
+
+            // WHEN we're on a large screen
+            kosmos.displayStateRepository.setIsLargeScreen(true)
+
+            val latest by collectLastValue(underTest.chipsLegacy)
+
+            // THEN the chips aren't squished (squished chips would be icon only)
+            assertThat(latest!!.primary)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+        }
+
+    @EnableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    @Test
+    fun chips_twoChips_isLargeScreen_notSquished() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Recording
+            addOngoingCallState(key = "call")
 
             // WHEN we're on a large screen
             kosmos.displayStateRepository.setIsLargeScreen(true)
@@ -316,135 +503,180 @@
             val latest by collectLastValue(underTest.chips)
 
             // THEN the chips aren't squished (squished chips would be icon only)
-            assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-            assertThat(latest!!.secondary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-        }
-
-    @Test
-    @EnableFlags(StatusBarChipsModernization.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
-    fun chips_twoChips_chipsModernizationEnabled_notSquished() =
-        testScope.runTest {
-            screenRecordState.value = ScreenRecordModel.Recording
-            setNotifs(
-                listOf(
-                    activeNotificationModel(
-                        key = "call",
-                        statusBarChipIcon = createStatusBarIconViewOrNull(),
-                        callType = CallType.Ongoing,
-                        whenTime = 499,
-                    )
-                )
-            )
-
-            val latest by collectLastValue(underTest.chips)
-
-            // Squished chips would be icon only
-            assertThat(latest!!.primary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
-            assertThat(latest!!.secondary)
-                .isInstanceOf(OngoingActivityChipModel.Shown.Timer::class.java)
+            assertThat(latest!!.active[0])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
+            assertThat(latest!!.active[1])
+                .isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
     @Test
     fun primaryChip_screenRecordShowAndShareToAppShow_screenRecordShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
             assertIsScreenRecordChip(latest)
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_screenRecordShowAndShareToAppShow_primaryIsScreenRecordSecondaryIsHidden() =
-        testScope.runTest {
+    fun chipsLegacy_screenRecordShowAndShareToAppShow_primaryIsScreenRecordSecondaryIsHidden() =
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
-            val latest by collectLastValue(underTest.chips)
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             assertIsScreenRecordChip(latest!!.primary)
             // Even though share-to-app is active, we suppress it because this share-to-app is
             // represented by screen record being active. See b/296461748.
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_screenRecordAndShareToApp_screenRecordIsActiveShareToAppIsInOverflow() =
+        kosmos.runTest {
+            screenRecordState.value = ScreenRecordModel.Recording
+            mediaProjectionState.value =
+                MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
+            setNotifs(emptyList())
+
+            val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            assertThat(latest!!.active.size).isEqualTo(1)
+            assertIsScreenRecordChip(latest!!.active[0])
+            // Even though share-to-app is active, we suppress it because this share-to-app is
+            // represented by screen record being active. See b/296461748.
+            assertThat(latest!!.overflow.size).isEqualTo(1)
+            assertIsShareToAppChip(latest!!.overflow[0])
+            assertThat(latest!!.inactive.size).isEqualTo(2)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
         }
 
     @Test
     fun primaryChip_shareToAppShowAndCallShow_shareToAppShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.DoingNothing
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34))
+            addOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
             assertIsShareToAppChip(latest)
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_shareToAppShowAndCallShow_primaryIsShareToAppSecondaryIsCall() =
-        testScope.runTest {
+    fun chipsLegacy_shareToAppShowAndCallShow_primaryIsShareToAppSecondaryIsCall() =
+        kosmos.runTest {
             val callNotificationKey = "call"
             screenRecordState.value = ScreenRecordModel.DoingNothing
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(key = "call")
 
-            val latest by collectLastValue(underTest.chips)
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             assertIsShareToAppChip(latest!!.primary)
             assertIsCallChip(latest!!.secondary, callNotificationKey)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_shareToAppAndCallActive() =
+        kosmos.runTest {
+            val callNotificationKey = "call"
+            screenRecordState.value = ScreenRecordModel.DoingNothing
+            mediaProjectionState.value =
+                MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
+            addOngoingCallState(key = callNotificationKey)
+
+            val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsShareToAppChip(latest!!.active[0])
+            assertIsCallChip(latest!!.active[1], callNotificationKey)
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(2)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
         }
 
     @Test
     fun primaryChip_onlyCallShown_callShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.DoingNothing
             // MediaProjection covers both share-to-app and cast-to-other-device
             mediaProjectionState.value = MediaProjectionState.NotProjecting
 
             val callNotificationKey = "call"
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(key = callNotificationKey)
 
             val latest by collectLastValue(underTest.primaryChip)
 
             assertIsCallChip(latest, callNotificationKey)
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_onlyCallShown_primaryIsCallSecondaryIsHidden() =
-        testScope.runTest {
+    fun chipsLegacy_onlyCallShown_primaryIsCallSecondaryIsHidden() =
+        kosmos.runTest {
             val callNotificationKey = "call"
             screenRecordState.value = ScreenRecordModel.DoingNothing
             // MediaProjection covers both share-to-app and cast-to-other-device
             mediaProjectionState.value = MediaProjectionState.NotProjecting
 
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(key = callNotificationKey)
 
-            val latest by collectLastValue(underTest.chips)
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             assertIsCallChip(latest!!.primary, callNotificationKey)
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
         }
 
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_singlePromotedNotif_primaryIsNotifSecondaryIsHidden() =
-        testScope.runTest {
+    fun chips_callActive_restInactive() =
+        kosmos.runTest {
+            val callNotificationKey = "call"
+            screenRecordState.value = ScreenRecordModel.DoingNothing
+            // MediaProjection covers both share-to-app and cast-to-other-device
+            mediaProjectionState.value = MediaProjectionState.NotProjecting
+            addOngoingCallState(key = callNotificationKey)
+
             val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            assertThat(latest!!.active.size).isEqualTo(1)
+            assertIsCallChip(latest!!.active[0], callNotificationKey)
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(3)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+        }
+
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_singlePromotedNotif_primaryIsNotifSecondaryIsHidden() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             val icon = createStatusBarIconViewOrNull()
             setNotifs(
@@ -458,13 +690,42 @@
             )
 
             assertIsNotifChip(latest!!.primary, context, icon, "notif")
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
         }
 
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_twoPromotedNotifs_primaryAndSecondaryAreNotifsInOrder() =
-        testScope.runTest {
+    fun chips_singlePromotedNotif() =
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            val icon = createStatusBarIconViewOrNull()
+            setNotifs(
+                listOf(
+                    activeNotificationModel(
+                        key = "notif",
+                        statusBarChipIcon = icon,
+                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
+                    )
+                )
+            )
+
+            assertThat(latest!!.active.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.active[0], context, icon, "notif")
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(4)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+        }
+
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_twoPromotedNotifs_primaryAndSecondaryAreNotifsInOrder() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             val firstIcon = createStatusBarIconViewOrNull()
             val secondIcon = createStatusBarIconViewOrNull()
@@ -487,12 +748,49 @@
 
             assertIsNotifChip(latest!!.primary, context, firstIcon, "firstNotif")
             assertIsNotifChip(latest!!.secondary, context, secondIcon, "secondNotif")
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
         }
 
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_threePromotedNotifs_topTwoShown() =
-        testScope.runTest {
+    fun chips_twoPromotedNotifs_bothActiveInOrder() =
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            val firstIcon = createStatusBarIconViewOrNull()
+            val secondIcon = createStatusBarIconViewOrNull()
+            setNotifs(
+                listOf(
+                    activeNotificationModel(
+                        key = "firstNotif",
+                        statusBarChipIcon = firstIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("firstNotif").build(),
+                    ),
+                    activeNotificationModel(
+                        key = "secondNotif",
+                        statusBarChipIcon = secondIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("secondNotif").build(),
+                    ),
+                )
+            )
+
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsNotifChip(latest!!.active[0], context, firstIcon, "firstNotif")
+            assertIsNotifChip(latest!!.active[1], context, secondIcon, "secondNotif")
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(4)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+        }
+
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_threePromotedNotifs_topTwoShown() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             val firstIcon = createStatusBarIconViewOrNull()
             val secondIcon = createStatusBarIconViewOrNull()
@@ -522,19 +820,19 @@
 
             assertIsNotifChip(latest!!.primary, context, firstIcon, "firstNotif")
             assertIsNotifChip(latest!!.secondary, context, secondIcon, "secondNotif")
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
         }
 
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_callAndPromotedNotifs_primaryIsCallSecondaryIsNotif() =
-        testScope.runTest {
+    fun chips_threePromotedNotifs_topTwoActiveThirdInOverflow() =
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chips)
-
-            val callNotificationKey = "call"
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            val unused by collectLastValue(underTest.chipsLegacy)
 
             val firstIcon = createStatusBarIconViewOrNull()
+            val secondIcon = createStatusBarIconViewOrNull()
+            val thirdIcon = createStatusBarIconViewOrNull()
             setNotifs(
                 listOf(
                     activeNotificationModel(
@@ -545,6 +843,49 @@
                     ),
                     activeNotificationModel(
                         key = "secondNotif",
+                        statusBarChipIcon = secondIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("secondNotif").build(),
+                    ),
+                    activeNotificationModel(
+                        key = "thirdNotif",
+                        statusBarChipIcon = thirdIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("thirdNotif").build(),
+                    ),
+                )
+            )
+
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsNotifChip(latest!!.active[0], context, firstIcon, "firstNotif")
+            assertIsNotifChip(latest!!.active[1], context, secondIcon, "secondNotif")
+            assertThat(latest!!.overflow.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.overflow[0], context, thirdIcon, "thirdNotif")
+            assertThat(latest!!.inactive.size).isEqualTo(4)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+        }
+
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_callAndPromotedNotifs_primaryIsCallSecondaryIsNotif() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
+
+            val callNotificationKey = "call"
+            addOngoingCallState(callNotificationKey)
+
+            val firstIcon = createStatusBarIconViewOrNull()
+            activeNotificationListRepository.addNotifs(
+                listOf(
+                    activeNotificationModel(
+                        key = "firstNotif",
+                        statusBarChipIcon = firstIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("firstNotif").build(),
+                    ),
+                    activeNotificationModel(
+                        key = "secondNotif",
                         statusBarChipIcon = createStatusBarIconViewOrNull(),
                         promotedContent =
                             PromotedNotificationContentModel.Builder("secondNotif").build(),
@@ -554,35 +895,100 @@
 
             assertIsCallChip(latest!!.primary, callNotificationKey)
             assertIsNotifChip(latest!!.secondary, context, firstIcon, "firstNotif")
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
         }
 
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_screenRecordAndCallAndPromotedNotifs_notifsNotShown() =
-        testScope.runTest {
-            val callNotificationKey = "call"
+    fun chips_callAndPromotedNotifs_callAndFirstNotifActiveSecondNotifInOverflow() =
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
 
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
-            screenRecordState.value = ScreenRecordModel.Recording
-            setNotifs(
+            val callNotificationKey = "call"
+            val firstIcon = createStatusBarIconViewOrNull()
+            val secondIcon = createStatusBarIconViewOrNull()
+            addOngoingCallState(key = callNotificationKey)
+            activeNotificationListRepository.addNotifs(
                 listOf(
                     activeNotificationModel(
-                        key = "notif",
-                        statusBarChipIcon = createStatusBarIconViewOrNull(),
-                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
-                    )
+                        key = "firstNotif",
+                        statusBarChipIcon = firstIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("firstNotif").build(),
+                    ),
+                    activeNotificationModel(
+                        key = "secondNotif",
+                        statusBarChipIcon = secondIcon,
+                        promotedContent =
+                            PromotedNotificationContentModel.Builder("secondNotif").build(),
+                    ),
+                )
+            )
+
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsCallChip(latest!!.active[0], callNotificationKey)
+            assertIsNotifChip(latest!!.active[1], context, firstIcon, "firstNotif")
+            assertThat(latest!!.overflow.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.overflow[0], context, secondIcon, "secondNotif")
+            assertThat(latest!!.inactive.size).isEqualTo(3)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+        }
+
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chipsLegacy_screenRecordAndCallAndPromotedNotifs_notifsNotShown() =
+        kosmos.runTest {
+            val callNotificationKey = "call"
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
+
+            addOngoingCallState(callNotificationKey)
+            screenRecordState.value = ScreenRecordModel.Recording
+            activeNotificationListRepository.addNotif(
+                activeNotificationModel(
+                    key = "notif",
+                    statusBarChipIcon = createStatusBarIconViewOrNull(),
+                    promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
                 )
             )
 
             assertIsScreenRecordChip(latest!!.primary)
             assertIsCallChip(latest!!.secondary, callNotificationKey)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_screenRecordAndCallAndPromotedNotif_notifInOverflow() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            val callNotificationKey = "call"
+            val notifIcon = createStatusBarIconViewOrNull()
+            screenRecordState.value = ScreenRecordModel.Recording
+            activeNotificationListRepository.addNotif(
+                activeNotificationModel(
+                    key = "notif",
+                    statusBarChipIcon = notifIcon,
+                    promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
+                )
+            )
+            addOngoingCallState(key = callNotificationKey)
+
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsScreenRecordChip(latest!!.active[0])
+            assertIsCallChip(latest!!.active[1], callNotificationKey)
+            assertThat(latest!!.overflow.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.overflow[0], context, notifIcon, "notif")
+            assertThat(latest!!.inactive.size).isEqualTo(2)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
         }
 
     @Test
     fun primaryChip_higherPriorityChipAdded_lowerPriorityChipReplaced() =
-        testScope.runTest {
+        kosmos.runTest {
             val callNotificationKey = "call"
             // Start with just the lowest priority chip shown
             val notifIcon = createStatusBarIconViewOrNull()
@@ -596,7 +1002,7 @@
                 )
             )
             // And everything else hidden
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = callNotificationKey)
             mediaProjectionState.value = MediaProjectionState.NotProjecting
             screenRecordState.value = ScreenRecordModel.DoingNothing
 
@@ -605,9 +1011,7 @@
             assertIsNotifChip(latest, context, notifIcon, "notif")
 
             // WHEN the higher priority call chip is added
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(callNotificationKey)
 
             // THEN the higher priority call chip is used
             assertIsCallChip(latest, callNotificationKey)
@@ -632,23 +1036,19 @@
 
     @Test
     fun primaryChip_highestPriorityChipRemoved_showsNextPriorityChip() =
-        testScope.runTest {
+        kosmos.runTest {
             val callNotificationKey = "call"
             // WHEN all chips are active
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(callNotificationKey)
             val notifIcon = createStatusBarIconViewOrNull()
-            setNotifs(
-                listOf(
-                    activeNotificationModel(
-                        key = "notif",
-                        statusBarChipIcon = notifIcon,
-                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
-                    )
+            activeNotificationListRepository.addNotif(
+                activeNotificationModel(
+                    key = "notif",
+                    statusBarChipIcon = notifIcon,
+                    promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
                 )
             )
 
@@ -670,46 +1070,47 @@
             assertIsCallChip(latest, callNotificationKey)
 
             // WHEN the higher priority call is removed
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = callNotificationKey)
 
             // THEN the lower priority notif is used
             assertIsNotifChip(latest, context, notifIcon, "notif")
         }
 
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_movesChipsAroundAccordingToPriority() =
-        testScope.runTest {
+    fun chipsLegacy_movesChipsAroundAccordingToPriority() =
+        kosmos.runTest {
             val callNotificationKey = "call"
             // Start with just the lowest priority chip shown
             val notifIcon = createStatusBarIconViewOrNull()
-            setNotifs(
-                listOf(
-                    activeNotificationModel(
-                        key = "notif",
-                        statusBarChipIcon = notifIcon,
-                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
-                    )
+            activeNotificationListRepository.addNotif(
+                activeNotificationModel(
+                    key = "notif",
+                    statusBarChipIcon = notifIcon,
+                    promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
                 )
             )
             // And everything else hidden
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = callNotificationKey)
             mediaProjectionState.value = MediaProjectionState.NotProjecting
             screenRecordState.value = ScreenRecordModel.DoingNothing
 
-            val latest by collectLastValue(underTest.chips)
+            val latest by collectLastValue(underTest.chipsLegacy)
+            val unused by collectLastValue(underTest.chips)
 
             assertIsNotifChip(latest!!.primary, context, notifIcon, "notif")
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
 
             // WHEN the higher priority call chip is added
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(callNotificationKey)
 
             // THEN the higher priority call chip is used as primary and notif is demoted to
             // secondary
             assertIsCallChip(latest!!.primary, callNotificationKey)
             assertIsNotifChip(latest!!.secondary, context, notifIcon, "notif")
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
 
             // WHEN the higher priority media projection chip is added
             mediaProjectionState.value =
@@ -723,36 +1124,144 @@
             // to secondary (and notif is dropped altogether)
             assertIsShareToAppChip(latest!!.primary)
             assertIsCallChip(latest!!.secondary, callNotificationKey)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
 
             // WHEN the higher priority screen record chip is added
             screenRecordState.value = ScreenRecordModel.Recording
 
             // THEN the higher priority screen record chip is used
             assertIsScreenRecordChip(latest!!.primary)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
 
             // WHEN screen record and call is dropped
             screenRecordState.value = ScreenRecordModel.DoingNothing
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = callNotificationKey)
 
             // THEN media projection and notif remain
             assertIsShareToAppChip(latest!!.primary)
             assertIsNotifChip(latest!!.secondary, context, notifIcon, "notif")
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
 
             // WHEN media projection is dropped
             mediaProjectionState.value = MediaProjectionState.NotProjecting
 
             // THEN notif is promoted to primary
             assertIsNotifChip(latest!!.primary, context, notifIcon, "notif")
-            assertThat(latest!!.secondary).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest!!.secondary)
+                .isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModel())
+        }
+
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_movesChipsAroundAccordingToPriority() =
+        kosmos.runTest {
+            val callNotificationKey = "call"
+            // Start with just the lowest priority chip active
+            val notifIcon = createStatusBarIconViewOrNull()
+            setNotifs(
+                listOf(
+                    activeNotificationModel(
+                        key = "notif",
+                        statusBarChipIcon = notifIcon,
+                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
+                    )
+                )
+            )
+            // And everything else hidden
+            mediaProjectionState.value = MediaProjectionState.NotProjecting
+            screenRecordState.value = ScreenRecordModel.DoingNothing
+
+            val latest by collectLastValue(underTest.chips)
+            val unused by collectLastValue(underTest.chipsLegacy)
+
+            assertThat(latest!!.active.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.active[0], context, notifIcon, "notif")
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(4)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+
+            // WHEN the higher priority call chip is added
+            addOngoingCallState(key = callNotificationKey)
+
+            // THEN the higher priority call chip and notif are active in that order
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsCallChip(latest!!.active[0], callNotificationKey)
+            assertIsNotifChip(latest!!.active[1], context, notifIcon, "notif")
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(3)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+
+            // WHEN the higher priority media projection chip is added
+            mediaProjectionState.value =
+                MediaProjectionState.Projecting.SingleTask(
+                    NORMAL_PACKAGE,
+                    hostDeviceName = null,
+                    createTask(taskId = 1),
+                )
+
+            // THEN the higher priority media projection chip and call are active in that order, and
+            // notif is demoted to overflow
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsShareToAppChip(latest!!.active[0])
+            assertIsCallChip(latest!!.active[1], callNotificationKey)
+            assertThat(latest!!.overflow.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.overflow[0], context, notifIcon, "notif")
+            assertThat(latest!!.inactive.size).isEqualTo(2)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+
+            // WHEN the higher priority screen record chip is added
+            screenRecordState.value = ScreenRecordModel.Recording
+
+            // THEN the higher priority screen record chip and call are active in that order, and
+            // media projection and notif are demoted in overflow
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsScreenRecordChip(latest!!.active[0])
+            assertIsCallChip(latest!!.active[1], callNotificationKey)
+            assertThat(latest!!.overflow.size).isEqualTo(2)
+            assertIsShareToAppChip(latest!!.overflow[0])
+            assertIsNotifChip(latest!!.overflow[1], context, notifIcon, "notif")
+            assertThat(latest!!.inactive.size).isEqualTo(1)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+
+            // WHEN screen record and call is dropped
+            screenRecordState.value = ScreenRecordModel.DoingNothing
+            setNotifs(
+                listOf(
+                    activeNotificationModel(
+                        key = "notif",
+                        statusBarChipIcon = notifIcon,
+                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),
+                    )
+                )
+            )
+
+            // THEN media projection and notif remain
+            assertThat(latest!!.active.size).isEqualTo(2)
+            assertIsShareToAppChip(latest!!.active[0])
+            assertIsNotifChip(latest!!.active[1], context, notifIcon, "notif")
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(3)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
+
+            // WHEN media projection is dropped
+            mediaProjectionState.value = MediaProjectionState.NotProjecting
+
+            // THEN only notif is active
+            assertThat(latest!!.active.size).isEqualTo(1)
+            assertIsNotifChip(latest!!.active[0], context, notifIcon, "notif")
+            assertThat(latest!!.overflow).isEmpty()
+            assertThat(latest!!.inactive.size).isEqualTo(4)
+            assertThat(unused).isEqualTo(MultipleOngoingActivityChipsModelLegacy())
         }
 
     /** Regression test for b/347726238. */
     @Test
     fun primaryChip_timerDoesNotResetAfterSubscribersRestart() =
-        testScope.runTest {
+        kosmos.runTest {
             var latest: OngoingActivityChipModel? = null
 
-            val job1 = underTest.primaryChip.onEach { latest = it }.launchIn(this)
+            val job1 = underTest.primaryChip.onEach { latest = it }.launchIn(testScope)
 
             // Start a chip with a timer
             systemClock.setElapsedRealtime(1234)
@@ -760,7 +1269,8 @@
 
             runCurrent()
 
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             // Stop subscribing to the chip flow
             job1.cancel()
@@ -769,23 +1279,25 @@
             systemClock.setElapsedRealtime(5678)
 
             // WHEN we re-subscribe to the chip flow
-            val job2 = underTest.primaryChip.onEach { latest = it }.launchIn(this)
+            val job2 = underTest.primaryChip.onEach { latest = it }.launchIn(testScope)
 
             runCurrent()
 
             // THEN the old start time is still used
-            assertThat((latest as OngoingActivityChipModel.Shown.Timer).startTimeMs).isEqualTo(1234)
+            assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
+                .isEqualTo(1234)
 
             job2.cancel()
         }
 
     /** Regression test for b/347726238. */
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @Test
-    fun chips_timerDoesNotResetAfterSubscribersRestart() =
-        testScope.runTest {
-            var latest: MultipleOngoingActivityChipsModel? = null
+    fun chipsLegacy_timerDoesNotResetAfterSubscribersRestart() =
+        kosmos.runTest {
+            var latest: MultipleOngoingActivityChipsModelLegacy? = null
 
-            val job1 = underTest.chips.onEach { latest = it }.launchIn(this)
+            val job1 = underTest.chipsLegacy.onEach { latest = it }.launchIn(testScope)
 
             // Start a chip with a timer
             systemClock.setElapsedRealtime(1234)
@@ -793,7 +1305,7 @@
 
             runCurrent()
 
-            val primaryChip = latest!!.primary as OngoingActivityChipModel.Shown.Timer
+            val primaryChip = latest!!.primary as OngoingActivityChipModel.Active.Timer
             assertThat(primaryChip.startTimeMs).isEqualTo(1234)
 
             // Stop subscribing to the chip flow
@@ -803,12 +1315,48 @@
             systemClock.setElapsedRealtime(5678)
 
             // WHEN we re-subscribe to the chip flow
-            val job2 = underTest.chips.onEach { latest = it }.launchIn(this)
+            val job2 = underTest.chipsLegacy.onEach { latest = it }.launchIn(testScope)
 
             runCurrent()
 
             // THEN the old start time is still used
-            val newPrimaryChip = latest!!.primary as OngoingActivityChipModel.Shown.Timer
+            val newPrimaryChip = latest!!.primary as OngoingActivityChipModel.Active.Timer
+            assertThat(newPrimaryChip.startTimeMs).isEqualTo(1234)
+
+            job2.cancel()
+        }
+
+    /** Regression test for b/347726238. */
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    @Test
+    fun chips_timerDoesNotResetAfterSubscribersRestart() =
+        kosmos.runTest {
+            var latest: MultipleOngoingActivityChipsModel? = null
+
+            val job1 = underTest.chips.onEach { latest = it }.launchIn(testScope)
+
+            // Start a chip with a timer
+            systemClock.setElapsedRealtime(1234)
+            screenRecordState.value = ScreenRecordModel.Recording
+
+            runCurrent()
+
+            val primaryChip = latest!!.active[0] as OngoingActivityChipModel.Active.Timer
+            assertThat(primaryChip.startTimeMs).isEqualTo(1234)
+
+            // Stop subscribing to the chip flow
+            job1.cancel()
+
+            // Let time pass
+            systemClock.setElapsedRealtime(5678)
+
+            // WHEN we re-subscribe to the chip flow
+            val job2 = underTest.chips.onEach { latest = it }.launchIn(testScope)
+
+            runCurrent()
+
+            // THEN the old start time is still used
+            val newPrimaryChip = latest!!.active[0] as OngoingActivityChipModel.Active.Timer
             assertThat(newPrimaryChip.startTimeMs).isEqualTo(1234)
 
             job2.cancel()
@@ -817,10 +1365,10 @@
     @Test
     @Ignore("b/364653005") // We'll need to re-do the animation story when we implement RON chips
     fun primaryChip_screenRecordStoppedViaDialog_chipHiddenWithoutAnimation() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -838,16 +1386,16 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden with no animation
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
         }
 
     @Test
     fun primaryChip_projectionStoppedViaDialog_chipHiddenWithoutAnimation() =
-        testScope.runTest {
+        kosmos.runTest {
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
             screenRecordState.value = ScreenRecordModel.DoingNothing
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "call")
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -865,7 +1413,7 @@
             dialogStopAction.onClick(mock<DialogInterface>(), 0)
 
             // THEN the chip is immediately hidden with no animation
-            assertThat(latest).isEqualTo(OngoingActivityChipModel.Hidden(shouldAnimate = false))
+            assertThat(latest).isEqualTo(OngoingActivityChipModel.Inactive(shouldAnimate = false))
         }
 
     private fun setNotifs(notifs: List<ActiveNotificationModel>) {
@@ -873,6 +1421,5 @@
             ActiveNotificationsStore.Builder()
                 .apply { notifs.forEach { addIndividualNotif(it) } }
                 .build()
-        testScope.runCurrent()
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/ConversationNotificationProcessorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/ConversationNotificationProcessorTest.kt
new file mode 100644
index 0000000..67d0ade
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/ConversationNotificationProcessorTest.kt
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification
+
+import android.app.Flags
+import android.app.Notification
+import android.app.Notification.EXTRA_SUMMARIZED_CONTENT
+import android.app.Person
+import android.content.pm.LauncherApps
+import android.content.pm.launcherApps
+import android.graphics.drawable.Icon
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
+import android.testing.TestableLooper.RunWithLooper
+import android.text.SpannableStringBuilder
+import android.text.style.ImageSpan
+import android.text.style.StyleSpan
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.res.R
+import com.android.systemui.statusbar.RankingBuilder
+import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinderLogger
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper
+import com.android.systemui.statusbar.notification.row.notificationRowContentBinderLogger
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+@RunWithLooper
+class ConversationNotificationProcessorTest : SysuiTestCase() {
+
+    private val kosmos = testKosmos()
+    private val testScope = kosmos.testScope
+    private lateinit var conversationNotificationProcessor: ConversationNotificationProcessor
+    private lateinit var testHelper: NotificationTestHelper
+    private lateinit var launcherApps: LauncherApps
+    private lateinit var logger: NotificationRowContentBinderLogger
+    private lateinit var conversationNotificationManager: ConversationNotificationManager
+
+    @Before
+    fun setup() {
+        launcherApps = kosmos.launcherApps
+        conversationNotificationManager = kosmos.conversationNotificationManager
+        logger = kosmos.notificationRowContentBinderLogger
+        testHelper = NotificationTestHelper(mContext, mDependency)
+
+        conversationNotificationProcessor =
+            ConversationNotificationProcessor(
+                context,
+                launcherApps,
+                conversationNotificationManager,
+            )
+    }
+
+    @Test
+    fun processNotification_notMessagingStyle() {
+        val nb = Notification.Builder(mContext).setSmallIcon(R.drawable.ic_person)
+        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
+
+        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
+            .isNull()
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_NM_SUMMARIZATION, Flags.FLAG_NM_SUMMARIZATION_UI)
+    fun processNotification_messagingStyleWithSummarization_flagOff() {
+        val summarization = "hello"
+        val nb = getMessagingNotification()
+        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
+        newRow.entry.setRanking(
+            RankingBuilder(newRow.entry.ranking).setSummarization(summarization).build()
+        )
+
+        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
+            .isNotNull()
+        assertThat(nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_NM_SUMMARIZATION)
+    fun processNotification_messagingStyleWithSummarization() {
+        val summarization = "hello"
+        val nb = getMessagingNotification()
+        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
+        newRow.entry.setRanking(
+            RankingBuilder(newRow.entry.ranking).setSummarization(summarization).build()
+        )
+
+        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
+            .isNotNull()
+
+        val processedSummary = nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)
+        assertThat(processedSummary.toString()).isEqualTo("x$summarization")
+
+        val checkSpans = SpannableStringBuilder(processedSummary)
+        assertThat(
+                checkSpans.getSpans(
+                    /* queryStart = */ 0,
+                    /* queryEnd = */ 1,
+                    /* kind = */ ImageSpan::class.java,
+                )
+            )
+            .isNotNull()
+
+        assertThat(
+                processedSummary?.let {
+                    checkSpans.getSpans(
+                        /* queryStart = */ 0,
+                        /* queryEnd = */ it.length,
+                        /* kind = */ StyleSpan::class.java,
+                    )
+                }
+            )
+            .isNotNull()
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_NM_SUMMARIZATION)
+    fun processNotification_messagingStyleWithoutSummarization() {
+        val nb = getMessagingNotification()
+        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
+        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
+            .isNotNull()
+        assertThat(nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
+    }
+
+    private fun getMessagingNotification(): Notification.Builder {
+        val displayName = "Display Name"
+        val messageText = "Message Text"
+        val personIcon = Icon.createWithResource(mContext, R.drawable.ic_person)
+        val testPerson = Person.Builder().setName(displayName).setIcon(personIcon).build()
+        val messagingStyle = Notification.MessagingStyle(testPerson)
+        messagingStyle.addMessage(
+            Notification.MessagingStyle.Message(messageText, System.currentTimeMillis(), testPerson)
+        )
+        return Notification.Builder(mContext)
+            .setSmallIcon(R.drawable.ic_person)
+            .setStyle(messagingStyle)
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
index da31cd9..7d406b4 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
@@ -209,6 +209,26 @@
     }
 
     @Test
+    public void testInflationProcessesMessagingStyle() throws Exception {
+        String displayName = "Display Name";
+        String messageText = "Message Text";
+        Icon personIcon = Icon.createWithResource(
+                mContext, com.android.systemui.res.R.drawable.ic_person);
+        Person testPerson = new Person.Builder().setName(displayName).setIcon(personIcon).build();
+        Notification.MessagingStyle messagingStyle = new Notification.MessagingStyle(testPerson);
+        messagingStyle.addMessage(new Notification.MessagingStyle.Message(
+                messageText, System.currentTimeMillis(), testPerson));
+        Notification messageNotif = new Notification.Builder(mContext)
+                .setSmallIcon(com.android.systemui.res.R.drawable.ic_person)
+                .setStyle(messagingStyle)
+                .build();
+        ExpandableNotificationRow newRow = mHelper.createRow(messageNotif);
+        inflateAndWait(mNotificationInflater, FLAG_CONTENT_VIEW_ALL, newRow);
+
+        verify(mConversationNotificationProcessor).processNotification(any(), any(), any());
+    }
+
+    @Test
     @Ignore
     public void testInflationIsRetriedIfAsyncFails() throws Exception {
         NotificationContentInflater.InflationProgress result =
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java
deleted file mode 100644
index a64339e..0000000
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java
+++ /dev/null
@@ -1,1189 +0,0 @@
-/*
- * Copyright (C) 2016 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.row;
-
-import static android.app.Notification.EXTRA_BUILDER_APPLICATION_INFO;
-import static android.app.NotificationChannel.SOCIAL_MEDIA_ID;
-import static android.app.NotificationChannel.USER_LOCKED_IMPORTANCE;
-import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
-import static android.app.NotificationManager.IMPORTANCE_LOW;
-import static android.app.NotificationManager.IMPORTANCE_MIN;
-import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
-import static android.print.PrintManager.PRINT_SPOOLER_PACKAGE_NAME;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Flags;
-import android.app.INotificationManager;
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationChannelGroup;
-import android.app.PendingIntent;
-import android.app.Person;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.drawable.Drawable;
-import android.os.RemoteException;
-import android.os.UserHandle;
-import android.platform.test.annotations.DisableFlags;
-import android.platform.test.annotations.EnableFlags;
-import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.StatusBarNotification;
-import android.telecom.TelecomManager;
-import android.testing.TestableLooper;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.filters.SmallTest;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.testing.UiEventLoggerFake;
-import com.android.systemui.Dependency;
-import com.android.systemui.SysuiTestCase;
-import com.android.systemui.res.R;
-import com.android.systemui.statusbar.RankingBuilder;
-import com.android.systemui.statusbar.notification.AssistantFeedbackController;
-import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.concurrent.CountDownLatch;
-
-@SmallTest
-@RunWith(AndroidJUnit4.class)
-@TestableLooper.RunWithLooper
-public class NotificationInfoTest extends SysuiTestCase {
-    private static final String TEST_PACKAGE_NAME = "test_package";
-    private static final String TEST_SYSTEM_PACKAGE_NAME = PRINT_SPOOLER_PACKAGE_NAME;
-    private static final int TEST_UID = 1;
-    private static final String TEST_CHANNEL = "test_channel";
-    private static final String TEST_CHANNEL_NAME = "TEST CHANNEL NAME";
-
-    private TestableLooper mTestableLooper;
-    private NotificationInfo mNotificationInfo;
-    private NotificationChannel mNotificationChannel;
-    private NotificationChannel mDefaultNotificationChannel;
-    private NotificationChannel mClassifiedNotificationChannel;
-    private StatusBarNotification mSbn;
-    private NotificationEntry mEntry;
-    private UiEventLoggerFake mUiEventLogger = new UiEventLoggerFake();
-
-    @Rule
-    public MockitoRule mockito = MockitoJUnit.rule();
-    @Mock
-    private MetricsLogger mMetricsLogger;
-    @Mock
-    private INotificationManager mMockINotificationManager;
-    @Mock
-    private PackageManager mMockPackageManager;
-    @Mock
-    private OnUserInteractionCallback mOnUserInteractionCallback;
-    @Mock
-    private ChannelEditorDialogController mChannelEditorDialogController;
-    @Mock
-    private AssistantFeedbackController mAssistantFeedbackController;
-    @Mock
-    private TelecomManager mTelecomManager;
-
-    @Rule
-    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
-
-    @Before
-    public void setUp() throws Exception {
-        mTestableLooper = TestableLooper.get(this);
-
-        mContext.addMockSystemService(TelecomManager.class, mTelecomManager);
-
-        mDependency.injectTestDependency(Dependency.BG_LOOPER, mTestableLooper.getLooper());
-        // Inflate the layout
-        final LayoutInflater layoutInflater = LayoutInflater.from(mContext);
-        mNotificationInfo = (NotificationInfo) layoutInflater.inflate(R.layout.notification_info,
-                null);
-        mNotificationInfo.setGutsParent(mock(NotificationGuts.class));
-        // Our view is never attached to a window so the View#post methods in NotificationInfo never
-        // get called. Setting this will skip the post and do the action immediately.
-        mNotificationInfo.mSkipPost = true;
-
-        // PackageManager must return a packageInfo and applicationInfo.
-        final PackageInfo packageInfo = new PackageInfo();
-        packageInfo.packageName = TEST_PACKAGE_NAME;
-        when(mMockPackageManager.getPackageInfo(eq(TEST_PACKAGE_NAME), anyInt()))
-                .thenReturn(packageInfo);
-        final ApplicationInfo applicationInfo = new ApplicationInfo();
-        applicationInfo.uid = TEST_UID;  // non-zero
-        final PackageInfo systemPackageInfo = new PackageInfo();
-        systemPackageInfo.packageName = TEST_SYSTEM_PACKAGE_NAME;
-        when(mMockPackageManager.getPackageInfo(eq(TEST_SYSTEM_PACKAGE_NAME), anyInt()))
-                .thenReturn(systemPackageInfo);
-        when(mMockPackageManager.getPackageInfo(eq("android"), anyInt()))
-                .thenReturn(packageInfo);
-
-        ComponentName assistant = new ComponentName("package", "service");
-        when(mMockINotificationManager.getAllowedNotificationAssistant()).thenReturn(assistant);
-        ResolveInfo ri = new ResolveInfo();
-        ri.activityInfo = new ActivityInfo();
-        ri.activityInfo.packageName = assistant.getPackageName();
-        ri.activityInfo.name = "activity";
-        when(mMockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(List.of(ri));
-
-        // Package has one channel by default.
-        when(mMockINotificationManager.getNumNotificationChannelsForPackage(
-                eq(TEST_PACKAGE_NAME), eq(TEST_UID), anyBoolean())).thenReturn(1);
-
-        // Some test channels.
-        mNotificationChannel = new NotificationChannel(
-                TEST_CHANNEL, TEST_CHANNEL_NAME, IMPORTANCE_LOW);
-        mDefaultNotificationChannel = new NotificationChannel(
-                NotificationChannel.DEFAULT_CHANNEL_ID, TEST_CHANNEL_NAME,
-                IMPORTANCE_LOW);
-        mClassifiedNotificationChannel =
-                new NotificationChannel(SOCIAL_MEDIA_ID, "social", IMPORTANCE_LOW);
-
-        Notification notification = new Notification();
-        notification.extras.putParcelable(EXTRA_BUILDER_APPLICATION_INFO, applicationInfo);
-        mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID, 0,
-                notification, UserHandle.getUserHandleForUid(TEST_UID), null, 0);
-        mEntry = new NotificationEntryBuilder().setSbn(mSbn).build();
-        when(mAssistantFeedbackController.isFeedbackEnabled()).thenReturn(false);
-        when(mAssistantFeedbackController.getInlineDescriptionResource(any()))
-                .thenReturn(R.string.notification_channel_summary_automatic);
-    }
-    
-    private void doStandardBind() throws Exception {
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger, null);
-    }
-
-    @Test
-    public void testBindNotification_SetsTextApplicationName() throws Exception {
-        when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name");
-        doStandardBind();
-        final TextView textView = mNotificationInfo.findViewById(R.id.pkg_name);
-        assertTrue(textView.getText().toString().contains("App Name"));
-        assertEquals(VISIBLE, mNotificationInfo.findViewById(R.id.header).getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_SetsPackageIcon() throws Exception {
-        final Drawable iconDrawable = mock(Drawable.class);
-        when(mMockPackageManager.getApplicationIcon(any(ApplicationInfo.class)))
-                .thenReturn(iconDrawable);
-        doStandardBind();
-        final ImageView iconView = mNotificationInfo.findViewById(R.id.pkg_icon);
-        assertEquals(iconDrawable, iconView.getDrawable());
-    }
-
-    @Test
-    public void testBindNotification_noDelegate() throws Exception {
-        doStandardBind();
-        final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
-        assertEquals(GONE, nameView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_delegate() throws Exception {
-        mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, "other", 0, null, TEST_UID, 0,
-                new Notification(), UserHandle.CURRENT, null, 0);
-        final ApplicationInfo applicationInfo = new ApplicationInfo();
-        applicationInfo.uid = 7;  // non-zero
-        when(mMockPackageManager.getApplicationInfo(eq("other"), anyInt())).thenReturn(
-                applicationInfo);
-        when(mMockPackageManager.getApplicationLabel(any())).thenReturn("Other");
-
-        NotificationEntry entry = new NotificationEntryBuilder().setSbn(mSbn).build();
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                entry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger, null);
-        final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
-        assertEquals(VISIBLE, nameView.getVisibility());
-        assertTrue(nameView.getText().toString().contains("Proxied"));
-    }
-
-    @Test
-    public void testBindNotification_GroupNameHiddenIfNoGroup() throws Exception {
-        doStandardBind();
-        final TextView groupNameView = mNotificationInfo.findViewById(R.id.group_name);
-        assertEquals(GONE, groupNameView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_SetsGroupNameIfNonNull() throws Exception {
-        mNotificationChannel.setGroup("test_group_id");
-        final NotificationChannelGroup notificationChannelGroup =
-                new NotificationChannelGroup("test_group_id", "Test Group Name");
-        when(mMockINotificationManager.getNotificationChannelGroupForPackage(
-                eq("test_group_id"), eq(TEST_PACKAGE_NAME), eq(TEST_UID)))
-                .thenReturn(notificationChannelGroup);
-        doStandardBind();
-        final TextView groupNameView = mNotificationInfo.findViewById(R.id.group_name);
-        assertEquals(View.VISIBLE, groupNameView.getVisibility());
-        assertEquals("Test Group Name", groupNameView.getText());
-    }
-
-    @Test
-    public void testBindNotification_SetsTextChannelName() throws Exception {
-        doStandardBind();
-        final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
-        assertEquals(TEST_CHANNEL_NAME, textView.getText());
-    }
-
-    @Test
-    public void testBindNotification_DefaultChannelDoesNotUseChannelName() throws Exception {
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mDefaultNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger, null);
-        final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
-        assertEquals(GONE, textView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_DefaultChannelUsesChannelNameIfMoreChannelsExist()
-            throws Exception {
-        // Package has more than one channel by default.
-        when(mMockINotificationManager.getNumNotificationChannelsForPackage(
-                eq(TEST_PACKAGE_NAME), eq(TEST_UID), anyBoolean())).thenReturn(10);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mDefaultNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-        final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
-        assertEquals(VISIBLE, textView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_UnblockablePackageUsesChannelName() throws Exception {
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                true,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger, null);
-        final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
-        assertEquals(VISIBLE, textView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_SetsOnClickListenerForSettings() throws Exception {
-        final CountDownLatch latch = new CountDownLatch(1);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                (View v, NotificationChannel c, int appUid) -> {
-                    assertEquals(mNotificationChannel, c);
-                    latch.countDown();
-                },
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        final View settingsButton = mNotificationInfo.findViewById(R.id.info);
-        settingsButton.performClick();
-        // Verify that listener was triggered.
-        assertEquals(0, latch.getCount());
-    }
-
-    @Test
-    public void testBindNotification_SettingsButtonInvisibleWhenNoClickListener() throws Exception {
-        doStandardBind();
-        final View settingsButton = mNotificationInfo.findViewById(R.id.info);
-        assertTrue(settingsButton.getVisibility() != View.VISIBLE);
-    }
-
-    @Test
-    public void testBindNotification_SettingsButtonInvisibleWhenDeviceUnprovisioned()
-            throws Exception {
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                (View v, NotificationChannel c, int appUid) -> {
-                    assertEquals(mNotificationChannel, c);
-                },
-                null,
-                null,
-                mUiEventLogger,
-                false,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-        final View settingsButton = mNotificationInfo.findViewById(R.id.info);
-        assertTrue(settingsButton.getVisibility() != View.VISIBLE);
-    }
-
-    @Test
-    public void testBindNotification_SettingsButtonReappearsAfterSecondBind() throws Exception {
-        doStandardBind();
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                (View v, NotificationChannel c, int appUid) -> { },
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-        final View settingsButton = mNotificationInfo.findViewById(R.id.info);
-        assertEquals(View.VISIBLE, settingsButton.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_whenAppUnblockable() throws Exception {
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                true,
-                true,
-                mAssistantFeedbackController,
-                mMetricsLogger, null);
-        final TextView view = mNotificationInfo.findViewById(R.id.non_configurable_text);
-        assertEquals(View.VISIBLE, view.getVisibility());
-        assertEquals(mContext.getString(R.string.notification_unblockable_desc),
-                view.getText());
-        assertEquals(GONE,
-                mNotificationInfo.findViewById(R.id.interruptiveness_settings).getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_whenCurrentlyInCall() throws Exception {
-        when(mMockINotificationManager.isInCall(anyString(), anyInt())).thenReturn(true);
-
-        Person person = new Person.Builder()
-                .setName("caller")
-                .build();
-        Notification.Builder nb = new Notification.Builder(
-                mContext, mNotificationChannel.getId())
-                .setContentTitle("foo")
-                .setSmallIcon(android.R.drawable.sym_def_app_icon)
-                .setStyle(Notification.CallStyle.forOngoingCall(
-                        person, mock(PendingIntent.class)))
-                .setFullScreenIntent(mock(PendingIntent.class), true)
-                .addAction(new Notification.Action.Builder(null, "test", null).build());
-
-        mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID, 0,
-                nb.build(), UserHandle.getUserHandleForUid(TEST_UID), null, 0);
-        mEntry.setSbn(mSbn);
-        doStandardBind();
-        final TextView view = mNotificationInfo.findViewById(R.id.non_configurable_call_text);
-        assertEquals(View.VISIBLE, view.getVisibility());
-        assertEquals(mContext.getString(R.string.notification_unblockable_call_desc),
-                view.getText());
-        assertEquals(GONE,
-                mNotificationInfo.findViewById(R.id.interruptiveness_settings).getVisibility());
-        assertEquals(GONE,
-                mNotificationInfo.findViewById(R.id.non_configurable_text).getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_whenCurrentlyInCall_notCall() throws Exception {
-        when(mMockINotificationManager.isInCall(anyString(), anyInt())).thenReturn(true);
-
-        Notification.Builder nb = new Notification.Builder(
-                mContext, mNotificationChannel.getId())
-                .setContentTitle("foo")
-                .setSmallIcon(android.R.drawable.sym_def_app_icon)
-                .setFullScreenIntent(mock(PendingIntent.class), true)
-                .addAction(new Notification.Action.Builder(null, "test", null).build());
-
-        mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID, 0,
-                nb.build(), UserHandle.getUserHandleForUid(TEST_UID), null, 0);
-        mEntry.setSbn(mSbn);
-        doStandardBind();
-        assertEquals(GONE,
-                mNotificationInfo.findViewById(R.id.non_configurable_call_text).getVisibility());
-        assertEquals(VISIBLE,
-                mNotificationInfo.findViewById(R.id.interruptiveness_settings).getVisibility());
-        assertEquals(GONE,
-                mNotificationInfo.findViewById(R.id.non_configurable_text).getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_automaticIsVisible() throws Exception {
-        when(mAssistantFeedbackController.isFeedbackEnabled()).thenReturn(true);
-        doStandardBind();
-        assertEquals(VISIBLE, mNotificationInfo.findViewById(R.id.automatic).getVisibility());
-        assertEquals(VISIBLE, mNotificationInfo.findViewById(R.id.automatic_summary).getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_automaticIsGone() throws Exception {
-        doStandardBind();
-        assertEquals(GONE, mNotificationInfo.findViewById(R.id.automatic).getVisibility());
-        assertEquals(GONE, mNotificationInfo.findViewById(R.id.automatic_summary).getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_automaticIsSelected() throws Exception {
-        when(mAssistantFeedbackController.isFeedbackEnabled()).thenReturn(true);
-        mNotificationChannel.unlockFields(USER_LOCKED_IMPORTANCE);
-        doStandardBind();
-        assertTrue(mNotificationInfo.findViewById(R.id.automatic).isSelected());
-    }
-
-    @Test
-    public void testBindNotification_alertIsSelected() throws Exception {
-        doStandardBind();
-        assertTrue(mNotificationInfo.findViewById(R.id.alert).isSelected());
-    }
-
-    @Test
-    public void testBindNotification_silenceIsSelected() throws Exception {
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-        assertTrue(mNotificationInfo.findViewById(R.id.silence).isSelected());
-    }
-
-    @Test
-    public void testBindNotification_DoesNotUpdateNotificationChannel() throws Exception {
-        doStandardBind();
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), any());
-    }
-
-    @Test
-    public void testBindNotification_LogsOpen() throws Exception {
-        doStandardBind();
-        assertEquals(1, mUiEventLogger.numLogs());
-        assertEquals(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.getId(),
-                mUiEventLogger.eventId(0));
-    }
-
-    @Test
-    public void testDoesNotUpdateNotificationChannelAfterImportanceChanged() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), any());
-    }
-
-    @Test
-    public void testDoesNotUpdateNotificationChannelAfterImportanceChangedSilenced()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        doStandardBind();
-
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), any());
-    }
-
-    @Test
-    public void testDoesNotUpdateNotificationChannelAfterImportanceChangedAutomatic()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        doStandardBind();
-
-        mNotificationInfo.findViewById(R.id.automatic).performClick();
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), any());
-    }
-
-    @Test
-    public void testHandleCloseControls_persistAutomatic()
-            throws Exception {
-        when(mAssistantFeedbackController.isFeedbackEnabled()).thenReturn(true);
-        mNotificationChannel.unlockFields(USER_LOCKED_IMPORTANCE);
-        doStandardBind();
-
-        mNotificationInfo.handleCloseControls(true, false);
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, times(1)).unlockNotificationChannel(
-                anyString(), eq(TEST_UID), any());
-    }
-
-    @Test
-    public void testHandleCloseControls_DoesNotUpdateNotificationChannelIfUnchanged()
-            throws Exception {
-        int originalImportance = mNotificationChannel.getImportance();
-        doStandardBind();
-
-        mNotificationInfo.handleCloseControls(true, false);
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), any());
-        assertEquals(originalImportance, mNotificationChannel.getImportance());
-
-        assertEquals(2, mUiEventLogger.numLogs());
-        assertEquals(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.getId(),
-                mUiEventLogger.eventId(0));
-        // The SAVE_IMPORTANCE event is logged whenever importance is saved, even if unchanged.
-        assertEquals(NotificationControlsEvent.NOTIFICATION_CONTROLS_SAVE_IMPORTANCE.getId(),
-                mUiEventLogger.eventId(1));
-    }
-
-    @Test
-    public void testHandleCloseControls_DoesNotUpdateNotificationChannelIfUnspecified()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
-        doStandardBind();
-
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), any());
-        assertEquals(IMPORTANCE_UNSPECIFIED, mNotificationChannel.getImportance());
-    }
-
-    @Test
-    public void testSilenceCallsUpdateNotificationChannel() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        doStandardBind();
-
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_LOW, updated.getValue().getImportance());
-
-        assertEquals(2, mUiEventLogger.numLogs());
-        assertEquals(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.getId(),
-                mUiEventLogger.eventId(0));
-        assertEquals(NotificationControlsEvent.NOTIFICATION_CONTROLS_SAVE_IMPORTANCE.getId(),
-                mUiEventLogger.eventId(1));
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testUnSilenceCallsUpdateNotificationChannel() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_DEFAULT, updated.getValue().getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testAutomaticUnlocksUserImportance() throws Exception {
-        when(mAssistantFeedbackController.isFeedbackEnabled()).thenReturn(true);
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        mNotificationChannel.lockFields(USER_LOCKED_IMPORTANCE);
-        doStandardBind();
-
-        mNotificationInfo.findViewById(R.id.automatic).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, times(1)).unlockNotificationChannel(
-                anyString(), eq(TEST_UID), any());
-        assertEquals(IMPORTANCE_DEFAULT, mNotificationChannel.getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testSilenceCallsUpdateNotificationChannel_channelImportanceUnspecified()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
-        doStandardBind();
-
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_LOW, updated.getValue().getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testSilenceCallsUpdateNotificationChannel_channelImportanceMin()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_MIN);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        assertEquals(mContext.getString(R.string.inline_done_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        assertEquals(mContext.getString(R.string.inline_done_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields() & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_MIN, updated.getValue().getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testSilence_closeGutsThenTryToSave() throws RemoteException {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        mNotificationInfo.handleCloseControls(false, false);
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-
-        assertEquals(IMPORTANCE_DEFAULT, mNotificationChannel.getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testAlertCallsUpdateNotificationChannel_channelImportanceMin()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_MIN);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        assertEquals(mContext.getString(R.string.inline_done_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        assertEquals(mContext.getString(R.string.inline_ok_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields() & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_DEFAULT, updated.getValue().getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testAdjustImportanceTemporarilyAllowsReordering() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        doStandardBind();
-
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        verify(mOnUserInteractionCallback).onImportanceChanged(mEntry);
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testDoneText()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        assertEquals(mContext.getString(R.string.inline_done_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        assertEquals(mContext.getString(R.string.inline_ok_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-        mNotificationInfo.findViewById(R.id.silence).performClick();
-        assertEquals(mContext.getString(R.string.inline_done_button),
-                ((TextView) mNotificationInfo.findViewById(R.id.done)).getText());
-    }
-
-    @Test
-    public void testUnSilenceCallsUpdateNotificationChannel_channelImportanceUnspecified()
-            throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_DEFAULT, updated.getValue().getImportance());
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testCloseControlsDoesNotUpdateIfSaveIsFalse() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mNotificationInfo.handleCloseControls(false, false);
-
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                eq(TEST_PACKAGE_NAME), eq(TEST_UID), eq(mNotificationChannel));
-
-        assertEquals(1, mUiEventLogger.numLogs());
-        assertEquals(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.getId(),
-                mUiEventLogger.eventId(0));
-    }
-
-    @Test
-    public void testCloseControlsUpdatesWhenCheckSaveListenerUsesCallback() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-        mNotificationInfo.findViewById(R.id.done).performClick();
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                eq(TEST_PACKAGE_NAME), eq(TEST_UID), eq(mNotificationChannel));
-
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                eq(TEST_PACKAGE_NAME), eq(TEST_UID), eq(mNotificationChannel));
-    }
-
-    @Test
-    public void testCloseControls_withoutHittingApply() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        mNotificationInfo.findViewById(R.id.alert).performClick();
-
-        assertFalse(mNotificationInfo.shouldBeSavedOnClose());
-    }
-
-    @Test
-    public void testWillBeRemovedReturnsFalse() throws Exception {
-        assertFalse(mNotificationInfo.willBeRemoved());
-
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        assertFalse(mNotificationInfo.willBeRemoved());
-    }
-
-
-    @Test
-    @DisableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION_UI)
-    public void testBindNotification_HidesFeedbackLink_flagOff() throws Exception {
-        doStandardBind();
-        assertEquals(GONE, mNotificationInfo.findViewById(R.id.feedback).getVisibility());
-    }
-
-    @Test
-    @EnableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION_UI)
-    public void testBindNotification_SetsFeedbackLink_isReservedChannel() throws RemoteException {
-        mEntry.setRanking(new RankingBuilder(mEntry.getRanking())
-                .setSummarization("something").build());
-        final CountDownLatch latch = new CountDownLatch(1);
-        mNotificationInfo.bindNotification(
-                mMockPackageManager,
-                mMockINotificationManager,
-                mOnUserInteractionCallback,
-                mChannelEditorDialogController,
-                TEST_PACKAGE_NAME,
-                mClassifiedNotificationChannel,
-                mEntry,
-                null,
-                null,
-                (View v, Intent intent) -> {
-                    latch.countDown();
-                },
-                mUiEventLogger,
-                true,
-                false,
-                false,
-                mAssistantFeedbackController,
-                mMetricsLogger,
-                null);
-
-        final View feedback = mNotificationInfo.findViewById(R.id.feedback);
-        assertEquals(VISIBLE, feedback.getVisibility());
-        feedback.performClick();
-        // Verify that listener was triggered.
-        assertEquals(0, latch.getCount());
-    }
-
-    @Test
-    @EnableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION_UI)
-    public void testBindNotification_hidesFeedbackLink_notReservedChannel() throws Exception {
-        doStandardBind();
-
-        assertEquals(GONE, mNotificationInfo.findViewById(R.id.feedback).getVisibility());
-    }
-}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt
new file mode 100644
index 0000000..2945fa9
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt
@@ -0,0 +1,910 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.systemui.statusbar.notification.row
+
+import android.app.Flags
+import android.app.INotificationManager
+import android.app.Notification
+import android.app.NotificationChannel
+import android.app.NotificationChannel.SOCIAL_MEDIA_ID
+import android.app.NotificationChannelGroup
+import android.app.NotificationManager
+import android.app.NotificationManager.IMPORTANCE_LOW
+import android.app.PendingIntent
+import android.app.Person
+import android.content.ComponentName
+import android.content.Intent
+import android.content.mockPackageManager
+import android.content.pm.ActivityInfo
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageInfo
+import android.content.pm.PackageManager
+import android.content.pm.ResolveInfo
+import android.graphics.drawable.Drawable
+import android.os.RemoteException
+import android.os.UserHandle
+import android.os.testableLooper
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
+import android.print.PrintManager
+import android.service.notification.StatusBarNotification
+import android.telecom.TelecomManager
+import android.testing.TestableLooper.RunWithLooper
+import android.view.LayoutInflater
+import android.view.View
+import android.view.View.GONE
+import android.view.View.VISIBLE
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.internal.logging.MetricsLogger
+import com.android.internal.logging.UiEventLogger
+import com.android.internal.logging.metricsLogger
+import com.android.internal.logging.uiEventLoggerFake
+import com.android.systemui.Dependency
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.testCase
+import com.android.systemui.res.R
+import com.android.systemui.statusbar.RankingBuilder
+import com.android.systemui.statusbar.notification.AssistantFeedbackController
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
+import com.android.telecom.telecomManager
+import com.google.common.truth.Truth.assertThat
+import java.util.concurrent.CountDownLatch
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyBoolean
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.ArgumentMatchers.anyString
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+@RunWithLooper
+class NotificationInfoTest : SysuiTestCase() {
+    private val kosmos = Kosmos().also { it.testCase = this }
+
+    private lateinit var underTest: NotificationInfo
+    private lateinit var notificationChannel: NotificationChannel
+    private lateinit var defaultNotificationChannel: NotificationChannel
+    private lateinit var classifiedNotificationChannel: NotificationChannel
+    private lateinit var sbn: StatusBarNotification
+    private lateinit var entry: NotificationEntry
+
+    private val mockPackageManager = kosmos.mockPackageManager
+    private val uiEventLogger = kosmos.uiEventLoggerFake
+    private val testableLooper by lazy { kosmos.testableLooper }
+
+    private val onUserInteractionCallback = mock<OnUserInteractionCallback>()
+    private val mockINotificationManager = mock<INotificationManager>()
+    private val channelEditorDialogController = mock<ChannelEditorDialogController>()
+    private val assistantFeedbackController = mock<AssistantFeedbackController>()
+
+    @Before
+    fun setUp() {
+        mContext.addMockSystemService(TelecomManager::class.java, kosmos.telecomManager)
+
+        mDependency.injectTestDependency(Dependency.BG_LOOPER, testableLooper.looper)
+
+        // Inflate the layout
+        val inflater = LayoutInflater.from(mContext)
+        underTest = inflater.inflate(R.layout.notification_info, null) as NotificationInfo
+
+        underTest.setGutsParent(mock<NotificationGuts>())
+
+        // Our view is never attached to a window so the View#post methods in NotificationInfo never
+        // get called. Setting this will skip the post and do the action immediately.
+        underTest.mSkipPost = true
+
+        // PackageManager must return a packageInfo and applicationInfo.
+        val packageInfo = PackageInfo()
+        packageInfo.packageName = TEST_PACKAGE_NAME
+        whenever(mockPackageManager.getPackageInfo(eq(TEST_PACKAGE_NAME), anyInt()))
+            .thenReturn(packageInfo)
+        val applicationInfo = ApplicationInfo()
+        applicationInfo.uid = TEST_UID // non-zero
+        val systemPackageInfo = PackageInfo()
+        systemPackageInfo.packageName = TEST_SYSTEM_PACKAGE_NAME
+        whenever(mockPackageManager.getPackageInfo(eq(TEST_SYSTEM_PACKAGE_NAME), anyInt()))
+            .thenReturn(systemPackageInfo)
+        whenever(mockPackageManager.getPackageInfo(eq("android"), anyInt())).thenReturn(packageInfo)
+
+        val assistant = ComponentName("package", "service")
+        whenever(mockINotificationManager.allowedNotificationAssistant).thenReturn(assistant)
+        val ri = ResolveInfo()
+        ri.activityInfo = ActivityInfo()
+        ri.activityInfo.packageName = assistant.packageName
+        ri.activityInfo.name = "activity"
+        whenever(mockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(listOf(ri))
+
+        // Package has one channel by default.
+        whenever(
+                mockINotificationManager.getNumNotificationChannelsForPackage(
+                    eq(TEST_PACKAGE_NAME),
+                    eq(TEST_UID),
+                    anyBoolean(),
+                )
+            )
+            .thenReturn(1)
+
+        // Some test channels.
+        notificationChannel = NotificationChannel(TEST_CHANNEL, TEST_CHANNEL_NAME, IMPORTANCE_LOW)
+        defaultNotificationChannel =
+            NotificationChannel(
+                NotificationChannel.DEFAULT_CHANNEL_ID,
+                TEST_CHANNEL_NAME,
+                IMPORTANCE_LOW,
+            )
+        classifiedNotificationChannel =
+            NotificationChannel(SOCIAL_MEDIA_ID, "social", IMPORTANCE_LOW)
+
+        val notification = Notification()
+        notification.extras.putParcelable(
+            Notification.EXTRA_BUILDER_APPLICATION_INFO,
+            applicationInfo,
+        )
+        sbn =
+            StatusBarNotification(
+                TEST_PACKAGE_NAME,
+                TEST_PACKAGE_NAME,
+                0,
+                null,
+                TEST_UID,
+                0,
+                notification,
+                UserHandle.getUserHandleForUid(TEST_UID),
+                null,
+                0,
+            )
+        entry = NotificationEntryBuilder().setSbn(sbn).build()
+        whenever(assistantFeedbackController.isFeedbackEnabled).thenReturn(false)
+        whenever(assistantFeedbackController.getInlineDescriptionResource(any()))
+            .thenReturn(R.string.notification_channel_summary_automatic)
+    }
+
+    @Test
+    fun testBindNotification_SetsTextApplicationName() {
+        whenever(mockPackageManager.getApplicationLabel(any())).thenReturn("App Name")
+        bindNotification()
+        val textView = underTest.findViewById<TextView>(R.id.pkg_name)
+        assertThat(textView.text.toString()).contains("App Name")
+        assertThat(underTest.findViewById<View>(R.id.header).visibility).isEqualTo(VISIBLE)
+    }
+
+    @Test
+    fun testBindNotification_SetsPackageIcon() {
+        val iconDrawable = mock<Drawable>()
+        whenever(mockPackageManager.getApplicationIcon(any<ApplicationInfo>()))
+            .thenReturn(iconDrawable)
+        bindNotification()
+        val iconView = underTest.findViewById<ImageView>(R.id.pkg_icon)
+        assertThat(iconView.drawable).isEqualTo(iconDrawable)
+    }
+
+    @Test
+    fun testBindNotification_noDelegate() {
+        bindNotification()
+        val nameView = underTest.findViewById<TextView>(R.id.delegate_name)
+        assertThat(nameView.visibility).isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_delegate() {
+        sbn =
+            StatusBarNotification(
+                TEST_PACKAGE_NAME,
+                "other",
+                0,
+                null,
+                TEST_UID,
+                0,
+                Notification(),
+                UserHandle.CURRENT,
+                null,
+                0,
+            )
+        val applicationInfo = ApplicationInfo()
+        applicationInfo.uid = 7 // non-zero
+        whenever(mockPackageManager.getApplicationInfo(eq("other"), anyInt()))
+            .thenReturn(applicationInfo)
+        whenever(mockPackageManager.getApplicationLabel(any())).thenReturn("Other")
+
+        val entry = NotificationEntryBuilder().setSbn(sbn).build()
+        bindNotification(entry = entry)
+        val nameView = underTest.findViewById<TextView>(R.id.delegate_name)
+        assertThat(nameView.visibility).isEqualTo(VISIBLE)
+        assertThat(nameView.text.toString()).contains("Proxied")
+    }
+
+    @Test
+    fun testBindNotification_GroupNameHiddenIfNoGroup() {
+        bindNotification()
+        val groupNameView = underTest.findViewById<TextView>(R.id.group_name)
+        assertThat(groupNameView.visibility).isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_SetsGroupNameIfNonNull() {
+        notificationChannel.group = "test_group_id"
+        val notificationChannelGroup = NotificationChannelGroup("test_group_id", "Test Group Name")
+        whenever(
+                mockINotificationManager.getNotificationChannelGroupForPackage(
+                    eq("test_group_id"),
+                    eq(TEST_PACKAGE_NAME),
+                    eq(TEST_UID),
+                )
+            )
+            .thenReturn(notificationChannelGroup)
+        bindNotification()
+        val groupNameView = underTest.findViewById<TextView>(R.id.group_name)
+        assertThat(groupNameView.visibility).isEqualTo(VISIBLE)
+        assertThat(groupNameView.text).isEqualTo("Test Group Name")
+    }
+
+    @Test
+    fun testBindNotification_SetsTextChannelName() {
+        bindNotification()
+        val textView = underTest.findViewById<TextView>(R.id.channel_name)
+        assertThat(textView.text).isEqualTo(TEST_CHANNEL_NAME)
+    }
+
+    @Test
+    fun testBindNotification_DefaultChannelDoesNotUseChannelName() {
+        bindNotification(notificationChannel = defaultNotificationChannel)
+        val textView = underTest.findViewById<TextView>(R.id.channel_name)
+        assertThat(textView.visibility).isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_DefaultChannelUsesChannelNameIfMoreChannelsExist() {
+        // Package has more than one channel by default.
+        whenever(
+                mockINotificationManager.getNumNotificationChannelsForPackage(
+                    eq(TEST_PACKAGE_NAME),
+                    eq(TEST_UID),
+                    anyBoolean(),
+                )
+            )
+            .thenReturn(10)
+        bindNotification(notificationChannel = defaultNotificationChannel)
+        val textView = underTest.findViewById<TextView>(R.id.channel_name)
+        assertThat(textView.visibility).isEqualTo(VISIBLE)
+    }
+
+    @Test
+    fun testBindNotification_UnblockablePackageUsesChannelName() {
+        bindNotification(isNonblockable = true)
+        val textView = underTest.findViewById<TextView>(R.id.channel_name)
+        assertThat(textView.visibility).isEqualTo(VISIBLE)
+    }
+
+    @Test
+    fun testBindNotification_SetsOnClickListenerForSettings() {
+        val latch = CountDownLatch(1)
+        bindNotification(
+            onSettingsClick = { _: View?, c: NotificationChannel?, _: Int ->
+                assertThat(c).isEqualTo(notificationChannel)
+                latch.countDown()
+            }
+        )
+
+        val settingsButton = underTest.findViewById<View>(R.id.info)
+        settingsButton.performClick()
+        // Verify that listener was triggered.
+        assertThat(latch.count).isEqualTo(0)
+    }
+
+    @Test
+    fun testBindNotification_SettingsButtonInvisibleWhenNoClickListener() {
+        bindNotification()
+        val settingsButton = underTest.findViewById<View>(R.id.info)
+        assertThat(settingsButton.visibility != VISIBLE).isTrue()
+    }
+
+    @Test
+    fun testBindNotification_SettingsButtonInvisibleWhenDeviceUnprovisioned() {
+        bindNotification(
+            onSettingsClick = { _: View?, c: NotificationChannel?, _: Int ->
+                assertThat(c).isEqualTo(notificationChannel)
+            },
+            isDeviceProvisioned = false,
+        )
+        val settingsButton = underTest.findViewById<View>(R.id.info)
+        assertThat(settingsButton.visibility != VISIBLE).isTrue()
+    }
+
+    @Test
+    fun testBindNotification_SettingsButtonReappearsAfterSecondBind() {
+        bindNotification()
+        bindNotification(onSettingsClick = { _: View?, _: NotificationChannel?, _: Int -> })
+        val settingsButton = underTest.findViewById<View>(R.id.info)
+        assertThat(settingsButton.visibility).isEqualTo(VISIBLE)
+    }
+
+    @Test
+    fun testBindNotification_whenAppUnblockable() {
+        bindNotification(isNonblockable = true)
+        val view = underTest.findViewById<TextView>(R.id.non_configurable_text)
+        assertThat(view.visibility).isEqualTo(VISIBLE)
+        assertThat(view.text).isEqualTo(mContext.getString(R.string.notification_unblockable_desc))
+        assertThat(underTest.findViewById<View>(R.id.interruptiveness_settings).visibility)
+            .isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_whenCurrentlyInCall() {
+        whenever(mockINotificationManager.isInCall(anyString(), anyInt())).thenReturn(true)
+
+        val person = Person.Builder().setName("caller").build()
+        val nb =
+            Notification.Builder(mContext, notificationChannel.id)
+                .setContentTitle("foo")
+                .setSmallIcon(android.R.drawable.sym_def_app_icon)
+                .setStyle(Notification.CallStyle.forOngoingCall(person, mock<PendingIntent>()))
+                .setFullScreenIntent(mock<PendingIntent>(), true)
+                .addAction(Notification.Action.Builder(null, "test", null).build())
+
+        sbn =
+            StatusBarNotification(
+                TEST_PACKAGE_NAME,
+                TEST_PACKAGE_NAME,
+                0,
+                null,
+                TEST_UID,
+                0,
+                nb.build(),
+                UserHandle.getUserHandleForUid(TEST_UID),
+                null,
+                0,
+            )
+        entry.sbn = sbn
+        bindNotification()
+        val view = underTest.findViewById<TextView>(R.id.non_configurable_call_text)
+        assertThat(view.visibility).isEqualTo(VISIBLE)
+        assertThat(view.text)
+            .isEqualTo(mContext.getString(R.string.notification_unblockable_call_desc))
+        assertThat(underTest.findViewById<View>(R.id.interruptiveness_settings).visibility)
+            .isEqualTo(GONE)
+        assertThat(underTest.findViewById<View>(R.id.non_configurable_text).visibility)
+            .isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_whenCurrentlyInCall_notCall() {
+        whenever(mockINotificationManager.isInCall(anyString(), anyInt())).thenReturn(true)
+
+        val nb =
+            Notification.Builder(mContext, notificationChannel.id)
+                .setContentTitle("foo")
+                .setSmallIcon(android.R.drawable.sym_def_app_icon)
+                .setFullScreenIntent(mock<PendingIntent>(), true)
+                .addAction(Notification.Action.Builder(null, "test", null).build())
+
+        sbn =
+            StatusBarNotification(
+                TEST_PACKAGE_NAME,
+                TEST_PACKAGE_NAME,
+                0,
+                null,
+                TEST_UID,
+                0,
+                nb.build(),
+                UserHandle.getUserHandleForUid(TEST_UID),
+                null,
+                0,
+            )
+        entry.sbn = sbn
+        bindNotification()
+        assertThat(underTest.findViewById<View>(R.id.non_configurable_call_text).visibility)
+            .isEqualTo(GONE)
+        assertThat(underTest.findViewById<View>(R.id.interruptiveness_settings).visibility)
+            .isEqualTo(VISIBLE)
+        assertThat(underTest.findViewById<View>(R.id.non_configurable_text).visibility)
+            .isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_automaticIsVisible() {
+        whenever(assistantFeedbackController.isFeedbackEnabled).thenReturn(true)
+        bindNotification()
+        assertThat(underTest.findViewById<View>(R.id.automatic).visibility).isEqualTo(VISIBLE)
+        assertThat(underTest.findViewById<View>(R.id.automatic_summary).visibility)
+            .isEqualTo(VISIBLE)
+    }
+
+    @Test
+    fun testBindNotification_automaticIsGone() {
+        bindNotification()
+        assertThat(underTest.findViewById<View>(R.id.automatic).visibility).isEqualTo(GONE)
+        assertThat(underTest.findViewById<View>(R.id.automatic_summary).visibility).isEqualTo(GONE)
+    }
+
+    @Test
+    fun testBindNotification_automaticIsSelected() {
+        whenever(assistantFeedbackController.isFeedbackEnabled).thenReturn(true)
+        notificationChannel.unlockFields(NotificationChannel.USER_LOCKED_IMPORTANCE)
+        bindNotification()
+        assertThat(underTest.findViewById<View>(R.id.automatic).isSelected).isTrue()
+    }
+
+    @Test
+    fun testBindNotification_alertIsSelected() {
+        bindNotification()
+        assertThat(underTest.findViewById<View>(R.id.alert).isSelected).isTrue()
+    }
+
+    @Test
+    fun testBindNotification_silenceIsSelected() {
+        bindNotification(wasShownHighPriority = false)
+        assertThat(underTest.findViewById<View>(R.id.silence).isSelected).isTrue()
+    }
+
+    @Test
+    fun testBindNotification_DoesNotUpdateNotificationChannel() {
+        bindNotification()
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager, never())
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), any())
+    }
+
+    @Test
+    fun testBindNotification_LogsOpen() {
+        bindNotification()
+        assertThat(uiEventLogger.numLogs()).isEqualTo(1)
+        assertThat(uiEventLogger.eventId(0))
+            .isEqualTo(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.id)
+    }
+
+    @Test
+    fun testDoesNotUpdateNotificationChannelAfterImportanceChanged() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.alert).performClick()
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager, never())
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), any())
+    }
+
+    @Test
+    fun testDoesNotUpdateNotificationChannelAfterImportanceChangedSilenced() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_DEFAULT
+        bindNotification()
+
+        underTest.findViewById<View>(R.id.silence).performClick()
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager, never())
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), any())
+    }
+
+    @Test
+    fun testDoesNotUpdateNotificationChannelAfterImportanceChangedAutomatic() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_DEFAULT
+        bindNotification()
+
+        underTest.findViewById<View>(R.id.automatic).performClick()
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager, never())
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), any())
+    }
+
+    @Test
+    fun testHandleCloseControls_persistAutomatic() {
+        whenever(assistantFeedbackController.isFeedbackEnabled).thenReturn(true)
+        notificationChannel.unlockFields(NotificationChannel.USER_LOCKED_IMPORTANCE)
+        bindNotification()
+
+        underTest.handleCloseControls(true, false)
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager).unlockNotificationChannel(anyString(), eq(TEST_UID), any())
+    }
+
+    @Test
+    fun testHandleCloseControls_DoesNotUpdateNotificationChannelIfUnchanged() {
+        val originalImportance = notificationChannel.importance
+        bindNotification()
+
+        underTest.handleCloseControls(true, false)
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), any())
+        assertThat(notificationChannel.importance).isEqualTo(originalImportance)
+
+        assertThat(uiEventLogger.numLogs()).isEqualTo(2)
+        assertThat(uiEventLogger.eventId(0))
+            .isEqualTo(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.id)
+        // The SAVE_IMPORTANCE event is logged whenever importance is saved, even if unchanged.
+        assertThat(uiEventLogger.eventId(1))
+            .isEqualTo(NotificationControlsEvent.NOTIFICATION_CONTROLS_SAVE_IMPORTANCE.id)
+    }
+
+    @Test
+    fun testHandleCloseControls_DoesNotUpdateNotificationChannelIfUnspecified() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_UNSPECIFIED
+        bindNotification()
+
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), any())
+        assertThat(notificationChannel.importance)
+            .isEqualTo(NotificationManager.IMPORTANCE_UNSPECIFIED)
+    }
+
+    @Test
+    fun testSilenceCallsUpdateNotificationChannel() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_DEFAULT
+        bindNotification()
+
+        underTest.findViewById<View>(R.id.silence).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        val updated = argumentCaptor<NotificationChannel>()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), updated.capture())
+        assertThat(
+                updated.firstValue.userLockedFields and NotificationChannel.USER_LOCKED_IMPORTANCE
+            )
+            .isNotEqualTo(0)
+        assertThat(updated.firstValue.importance).isEqualTo(IMPORTANCE_LOW)
+
+        assertThat(uiEventLogger.numLogs()).isEqualTo(2)
+        assertThat(uiEventLogger.eventId(0))
+            .isEqualTo(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.id)
+        assertThat(uiEventLogger.eventId(1))
+            .isEqualTo(NotificationControlsEvent.NOTIFICATION_CONTROLS_SAVE_IMPORTANCE.id)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testUnSilenceCallsUpdateNotificationChannel() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.alert).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        val updated = argumentCaptor<NotificationChannel>()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), updated.capture())
+        assertThat(
+                updated.firstValue.userLockedFields and NotificationChannel.USER_LOCKED_IMPORTANCE
+            )
+            .isNotEqualTo(0)
+        assertThat(updated.firstValue.importance).isEqualTo(NotificationManager.IMPORTANCE_DEFAULT)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testAutomaticUnlocksUserImportance() {
+        whenever(assistantFeedbackController.isFeedbackEnabled).thenReturn(true)
+        notificationChannel.importance = NotificationManager.IMPORTANCE_DEFAULT
+        notificationChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE)
+        bindNotification()
+
+        underTest.findViewById<View>(R.id.automatic).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager).unlockNotificationChannel(anyString(), eq(TEST_UID), any())
+        assertThat(notificationChannel.importance).isEqualTo(NotificationManager.IMPORTANCE_DEFAULT)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testSilenceCallsUpdateNotificationChannel_channelImportanceUnspecified() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_UNSPECIFIED
+        bindNotification()
+
+        underTest.findViewById<View>(R.id.silence).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        val updated = argumentCaptor<NotificationChannel>()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), updated.capture())
+        assertThat(
+                updated.firstValue.userLockedFields and NotificationChannel.USER_LOCKED_IMPORTANCE
+            )
+            .isNotEqualTo(0)
+        assertThat(updated.firstValue.importance).isEqualTo(IMPORTANCE_LOW)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testSilenceCallsUpdateNotificationChannel_channelImportanceMin() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_MIN
+        bindNotification(wasShownHighPriority = false)
+
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_done_button))
+        underTest.findViewById<View>(R.id.silence).performClick()
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_done_button))
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        val updated = argumentCaptor<NotificationChannel>()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), updated.capture())
+        assertThat(
+                updated.firstValue.userLockedFields and NotificationChannel.USER_LOCKED_IMPORTANCE
+            )
+            .isNotEqualTo(0)
+        assertThat(updated.firstValue.importance).isEqualTo(NotificationManager.IMPORTANCE_MIN)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    @Throws(RemoteException::class)
+    fun testSilence_closeGutsThenTryToSave() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_DEFAULT
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.silence).performClick()
+        underTest.handleCloseControls(false, false)
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+
+        assertThat(notificationChannel.importance).isEqualTo(NotificationManager.IMPORTANCE_DEFAULT)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testAlertCallsUpdateNotificationChannel_channelImportanceMin() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_MIN
+        bindNotification(wasShownHighPriority = false)
+
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_done_button))
+        underTest.findViewById<View>(R.id.alert).performClick()
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_ok_button))
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        val updated = argumentCaptor<NotificationChannel>()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), updated.capture())
+        assertThat(
+                updated.firstValue.userLockedFields and NotificationChannel.USER_LOCKED_IMPORTANCE
+            )
+            .isNotEqualTo(0)
+        assertThat(updated.firstValue.importance).isEqualTo(NotificationManager.IMPORTANCE_DEFAULT)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testAdjustImportanceTemporarilyAllowsReordering() {
+        notificationChannel.importance = NotificationManager.IMPORTANCE_DEFAULT
+        bindNotification()
+
+        underTest.findViewById<View>(R.id.silence).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        verify(onUserInteractionCallback).onImportanceChanged(entry)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testDoneText() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_done_button))
+        underTest.findViewById<View>(R.id.alert).performClick()
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_ok_button))
+        underTest.findViewById<View>(R.id.silence).performClick()
+        assertThat((underTest.findViewById<View>(R.id.done) as TextView).text)
+            .isEqualTo(mContext.getString(R.string.inline_done_button))
+    }
+
+    @Test
+    fun testUnSilenceCallsUpdateNotificationChannel_channelImportanceUnspecified() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.alert).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        val updated = argumentCaptor<NotificationChannel>()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(anyString(), eq(TEST_UID), updated.capture())
+        assertThat(
+                updated.firstValue.userLockedFields and NotificationChannel.USER_LOCKED_IMPORTANCE
+            )
+            .isNotEqualTo(0)
+        assertThat(updated.firstValue.importance).isEqualTo(NotificationManager.IMPORTANCE_DEFAULT)
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testCloseControlsDoesNotUpdateIfSaveIsFalse() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.alert).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        underTest.handleCloseControls(false, false)
+
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager, never())
+            .updateNotificationChannelForPackage(
+                eq(TEST_PACKAGE_NAME),
+                eq(TEST_UID),
+                eq(notificationChannel),
+            )
+
+        assertThat(uiEventLogger.numLogs()).isEqualTo(1)
+        assertThat(uiEventLogger.eventId(0))
+            .isEqualTo(NotificationControlsEvent.NOTIFICATION_CONTROLS_OPEN.id)
+    }
+
+    @Test
+    fun testCloseControlsUpdatesWhenCheckSaveListenerUsesCallback() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.alert).performClick()
+        underTest.findViewById<View>(R.id.done).performClick()
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager, never())
+            .updateNotificationChannelForPackage(
+                eq(TEST_PACKAGE_NAME),
+                eq(TEST_UID),
+                eq(notificationChannel),
+            )
+
+        underTest.handleCloseControls(true, false)
+
+        testableLooper.processAllMessages()
+        verify(mockINotificationManager)
+            .updateNotificationChannelForPackage(
+                eq(TEST_PACKAGE_NAME),
+                eq(TEST_UID),
+                eq(notificationChannel),
+            )
+    }
+
+    @Test
+    fun testCloseControls_withoutHittingApply() {
+        notificationChannel.importance = IMPORTANCE_LOW
+        bindNotification(wasShownHighPriority = false)
+
+        underTest.findViewById<View>(R.id.alert).performClick()
+
+        assertThat(underTest.shouldBeSavedOnClose()).isFalse()
+    }
+
+    @Test
+    fun testWillBeRemovedReturnsFalse() {
+        assertThat(underTest.willBeRemoved()).isFalse()
+
+        bindNotification(wasShownHighPriority = false)
+
+        assertThat(underTest.willBeRemoved()).isFalse()
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION_UI)
+    @Throws(Exception::class)
+    fun testBindNotification_HidesFeedbackLink_flagOff() {
+        bindNotification()
+        assertThat(underTest.findViewById<View>(R.id.feedback).visibility).isEqualTo(GONE)
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION_UI)
+    @Throws(RemoteException::class)
+    fun testBindNotification_SetsFeedbackLink_isReservedChannel() {
+        entry.setRanking(RankingBuilder(entry.ranking).setSummarization("something").build())
+        val latch = CountDownLatch(1)
+        bindNotification(
+            notificationChannel = classifiedNotificationChannel,
+            onFeedbackClickListener = { _: View?, _: Intent? -> latch.countDown() },
+            wasShownHighPriority = false,
+        )
+
+        val feedback: View = underTest.findViewById(R.id.feedback)
+        assertThat(feedback.visibility).isEqualTo(VISIBLE)
+        feedback.performClick()
+        // Verify that listener was triggered.
+        assertThat(latch.count).isEqualTo(0)
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION_UI)
+    @Throws(Exception::class)
+    fun testBindNotification_hidesFeedbackLink_notReservedChannel() {
+        bindNotification()
+
+        assertThat(underTest.findViewById<View>(R.id.feedback).visibility).isEqualTo(GONE)
+    }
+
+    private fun bindNotification(
+        pm: PackageManager = this.mockPackageManager,
+        iNotificationManager: INotificationManager = this.mockINotificationManager,
+        onUserInteractionCallback: OnUserInteractionCallback = this.onUserInteractionCallback,
+        channelEditorDialogController: ChannelEditorDialogController =
+            this.channelEditorDialogController,
+        pkg: String = TEST_PACKAGE_NAME,
+        notificationChannel: NotificationChannel = this.notificationChannel,
+        entry: NotificationEntry = this.entry,
+        onSettingsClick: NotificationInfo.OnSettingsClickListener? = null,
+        onAppSettingsClick: NotificationInfo.OnAppSettingsClickListener? = null,
+        onFeedbackClickListener: NotificationInfo.OnFeedbackClickListener? = null,
+        uiEventLogger: UiEventLogger = this.uiEventLogger,
+        isDeviceProvisioned: Boolean = true,
+        isNonblockable: Boolean = false,
+        wasShownHighPriority: Boolean = true,
+        assistantFeedbackController: AssistantFeedbackController = this.assistantFeedbackController,
+        metricsLogger: MetricsLogger = kosmos.metricsLogger,
+        onCloseClick: View.OnClickListener? = null,
+    ) {
+        underTest.bindNotification(
+            pm,
+            iNotificationManager,
+            onUserInteractionCallback,
+            channelEditorDialogController,
+            pkg,
+            notificationChannel,
+            entry,
+            onSettingsClick,
+            onAppSettingsClick,
+            onFeedbackClickListener,
+            uiEventLogger,
+            isDeviceProvisioned,
+            isNonblockable,
+            wasShownHighPriority,
+            assistantFeedbackController,
+            metricsLogger,
+            onCloseClick,
+        )
+    }
+
+    companion object {
+        private const val TEST_PACKAGE_NAME = "test_package"
+        private const val TEST_SYSTEM_PACKAGE_NAME = PrintManager.PRINT_SPOOLER_PACKAGE_NAME
+        private const val TEST_UID = 1
+        private const val TEST_CHANNEL = "test_channel"
+        private const val TEST_CHANNEL_NAME = "TEST CHANNEL NAME"
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImplTest.kt
index c77b09a..82eca37 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImplTest.kt
@@ -587,6 +587,35 @@
         Assert.assertFalse(hasText(publicView, contentTitle))
     }
 
+    @Test
+    @Throws(java.lang.Exception::class)
+    @EnableFlags(android.app.Flags.FLAG_NM_SUMMARIZATION)
+    fun testAllMessagingStyleProcessedAsConversations() {
+        val displayName = "Display Name"
+        val messageText = "Message Text"
+        val personIcon = Icon.createWithResource(mContext, R.drawable.ic_person)
+        val testPerson = Person.Builder().setName(displayName).setIcon(personIcon).build()
+        val messagingStyle = Notification.MessagingStyle(testPerson)
+        messagingStyle.addMessage(
+            Notification.MessagingStyle.Message(messageText, System.currentTimeMillis(), testPerson)
+        )
+        val messageNotif =
+            Notification.Builder(mContext)
+                .setSmallIcon(R.drawable.ic_person)
+                .setStyle(messagingStyle)
+                .build()
+        val newRow: ExpandableNotificationRow = testHelper.createRow(messageNotif)
+
+        inflateAndWait(
+            false,
+            notificationInflater,
+            FLAG_CONTENT_VIEW_ALL,
+            REDACTION_TYPE_NONE,
+            newRow,
+        )
+        verify(conversationNotificationProcessor).processNotification(any(), any(), any())
+    }
+
     private class ExceptionHolder {
         var exception: Exception? = null
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorTest.kt
index 8eea2a8..048028c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorTest.kt
@@ -21,52 +21,44 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFaceAuthRepository
-import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
-import com.android.systemui.plugins.statusbar.StatusBarStateController
-import com.android.systemui.power.data.repository.FakePowerRepository
-import com.android.systemui.power.domain.interactor.PowerInteractorFactory
-import com.android.systemui.statusbar.LockscreenShadeTransitionController
-import com.android.systemui.statusbar.phone.ScreenOffAnimationController
-import com.android.systemui.util.mockito.eq
-import com.android.systemui.util.mockito.mock
-import com.android.systemui.util.mockito.whenever
+import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFaceAuthRepository
+import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.testCase
+import com.android.systemui.plugins.statusbar.statusBarStateController
+import com.android.systemui.power.data.repository.fakePowerRepository
+import com.android.systemui.statusbar.lockscreenShadeTransitionController
+import com.android.systemui.statusbar.phone.screenOffAnimationController
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mockito.isNull
 import org.mockito.Mockito.verify
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 @SmallTest
 class NotificationShelfInteractorTest : SysuiTestCase() {
 
-    private val keyguardRepository = FakeKeyguardRepository()
-    private val deviceEntryFaceAuthRepository = FakeDeviceEntryFaceAuthRepository()
-
-    private val screenOffAnimationController =
-        mock<ScreenOffAnimationController>().also {
-            whenever(it.allowWakeUpIfDozing()).thenReturn(true)
+    private val kosmos =
+        Kosmos().apply {
+            testCase = this@NotificationShelfInteractorTest
+            lockscreenShadeTransitionController = mock()
+            screenOffAnimationController = mock()
+            statusBarStateController = mock()
+            whenever(screenOffAnimationController.allowWakeUpIfDozing()).thenReturn(true)
         }
-    private val statusBarStateController: StatusBarStateController = mock()
-    private val powerRepository = FakePowerRepository()
-    private val powerInteractor =
-        PowerInteractorFactory.create(
-                repository = powerRepository,
-                screenOffAnimationController = screenOffAnimationController,
-                statusBarStateController = statusBarStateController,
-            )
-            .powerInteractor
+    private val underTest = kosmos.notificationShelfInteractor
 
-    private val keyguardTransitionController: LockscreenShadeTransitionController = mock()
-    private val underTest =
-        NotificationShelfInteractor(
-            keyguardRepository,
-            deviceEntryFaceAuthRepository,
-            powerInteractor,
-            keyguardTransitionController,
-        )
+    private val keyguardRepository = kosmos.fakeKeyguardRepository
+    private val deviceEntryFaceAuthRepository = kosmos.fakeDeviceEntryFaceAuthRepository
+
+    private val statusBarStateController = kosmos.statusBarStateController
+    private val powerRepository = kosmos.fakePowerRepository
+    private val keyguardTransitionController = kosmos.lockscreenShadeTransitionController
 
     @Test
     fun shelfIsNotStatic_whenKeyguardNotShowing() = runTest {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelTest.kt
index e2fb3ba..d570f18 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModelTest.kt
@@ -19,73 +19,53 @@
 import android.os.PowerManager
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.systemui.SysUITestComponent
-import com.android.systemui.SysUITestModule
 import com.android.systemui.SysuiTestCase
-import com.android.systemui.TestMocksModule
-import com.android.systemui.collectLastValue
-import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFaceAuthRepository
-import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
-import com.android.systemui.power.data.repository.FakePowerRepository
-import com.android.systemui.runTest
-import com.android.systemui.statusbar.LockscreenShadeTransitionController
-import com.android.systemui.statusbar.SysuiStatusBarStateController
-import com.android.systemui.statusbar.notification.row.ui.viewmodel.ActivatableNotificationViewModelModule
-import com.android.systemui.statusbar.phone.ScreenOffAnimationController
-import com.android.systemui.util.mockito.eq
-import com.android.systemui.util.mockito.mock
-import com.android.systemui.util.mockito.whenever
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.flags.EnableSceneContainer
+import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFaceAuthRepository
+import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.testCase
+import com.android.systemui.plugins.statusbar.statusBarStateController
+import com.android.systemui.power.data.repository.fakePowerRepository
+import com.android.systemui.shade.domain.interactor.enableDualShade
+import com.android.systemui.shade.domain.interactor.enableSingleShade
+import com.android.systemui.shade.domain.interactor.enableSplitShade
+import com.android.systemui.statusbar.lockscreenShadeTransitionController
+import com.android.systemui.statusbar.phone.screenOffAnimationController
 import com.google.common.truth.Truth.assertThat
-import dagger.BindsInstance
-import dagger.Component
+import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mockito
 import org.mockito.Mockito.verify
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 @SmallTest
 class NotificationShelfViewModelTest : SysuiTestCase() {
 
-    @Component(modules = [SysUITestModule::class, ActivatableNotificationViewModelModule::class])
-    @SysUISingleton
-    interface TestComponent : SysUITestComponent<NotificationShelfViewModel> {
-
-        val deviceEntryFaceAuthRepository: FakeDeviceEntryFaceAuthRepository
-        val keyguardRepository: FakeKeyguardRepository
-        val powerRepository: FakePowerRepository
-
-        @Component.Factory
-        interface Factory {
-            fun create(
-                @BindsInstance test: SysuiTestCase,
-                mocks: TestMocksModule,
-            ): TestComponent
+    private val kosmos =
+        Kosmos().apply {
+            testCase = this@NotificationShelfViewModelTest
+            lockscreenShadeTransitionController = mock()
+            screenOffAnimationController = mock()
+            statusBarStateController = mock()
+            whenever(screenOffAnimationController.allowWakeUpIfDozing()).thenReturn(true)
         }
-    }
-
-    private val keyguardTransitionController: LockscreenShadeTransitionController = mock()
-    private val screenOffAnimationController: ScreenOffAnimationController = mock {
-        whenever(allowWakeUpIfDozing()).thenReturn(true)
-    }
-    private val statusBarStateController: SysuiStatusBarStateController = mock()
-
-    private val testComponent: TestComponent =
-        DaggerNotificationShelfViewModelTest_TestComponent.factory()
-            .create(
-                test = this,
-                mocks =
-                    TestMocksModule(
-                        lockscreenShadeTransitionController = keyguardTransitionController,
-                        screenOffAnimationController = screenOffAnimationController,
-                        statusBarStateController = statusBarStateController,
-                    )
-            )
+    private val underTest = kosmos.notificationShelfViewModel
+    private val deviceEntryFaceAuthRepository = kosmos.fakeDeviceEntryFaceAuthRepository
+    private val keyguardRepository = kosmos.fakeKeyguardRepository
+    private val keyguardTransitionController = kosmos.lockscreenShadeTransitionController
+    private val powerRepository = kosmos.fakePowerRepository
 
     @Test
     fun canModifyColorOfNotifications_whenKeyguardNotShowing() =
-        testComponent.runTest {
+        kosmos.runTest {
             val canModifyNotifColor by collectLastValue(underTest.canModifyColorOfNotifications)
 
             keyguardRepository.setKeyguardShowing(false)
@@ -95,7 +75,7 @@
 
     @Test
     fun canModifyColorOfNotifications_whenKeyguardShowingAndNotBypass() =
-        testComponent.runTest {
+        kosmos.runTest {
             val canModifyNotifColor by collectLastValue(underTest.canModifyColorOfNotifications)
 
             keyguardRepository.setKeyguardShowing(true)
@@ -106,7 +86,7 @@
 
     @Test
     fun cannotModifyColorOfNotifications_whenBypass() =
-        testComponent.runTest {
+        kosmos.runTest {
             val canModifyNotifColor by collectLastValue(underTest.canModifyColorOfNotifications)
 
             keyguardRepository.setKeyguardShowing(true)
@@ -117,7 +97,7 @@
 
     @Test
     fun isClickable_whenKeyguardShowing() =
-        testComponent.runTest {
+        kosmos.runTest {
             val isClickable by collectLastValue(underTest.isClickable)
 
             keyguardRepository.setKeyguardShowing(true)
@@ -127,7 +107,7 @@
 
     @Test
     fun isNotClickable_whenKeyguardNotShowing() =
-        testComponent.runTest {
+        kosmos.runTest {
             val isClickable by collectLastValue(underTest.isClickable)
 
             keyguardRepository.setKeyguardShowing(false)
@@ -137,7 +117,7 @@
 
     @Test
     fun onClicked_goesToLockedShade() =
-        with(testComponent) {
+        kosmos.runTest {
             whenever(statusBarStateController.isDozing).thenReturn(true)
 
             underTest.onShelfClicked()
@@ -146,4 +126,48 @@
             assertThat(powerRepository.lastWakeReason).isEqualTo(PowerManager.WAKE_REASON_GESTURE)
             verify(keyguardTransitionController).goToLockedShade(Mockito.isNull(), eq(true))
         }
+
+    @Test
+    @EnableSceneContainer
+    fun isAlignedToEnd_splitShade_true() =
+        kosmos.runTest {
+            val isShelfAlignedToEnd by collectLastValue(underTest.isAlignedToEnd)
+
+            kosmos.enableSplitShade()
+
+            assertThat(isShelfAlignedToEnd).isTrue()
+        }
+
+    @Test
+    @EnableSceneContainer
+    fun isAlignedToEnd_singleShade_false() =
+        kosmos.runTest {
+            val isShelfAlignedToEnd by collectLastValue(underTest.isAlignedToEnd)
+
+            kosmos.enableSingleShade()
+
+            assertThat(isShelfAlignedToEnd).isFalse()
+        }
+
+    @Test
+    @EnableSceneContainer
+    fun isAlignedToEnd_dualShade_wideScreen_false() =
+        kosmos.runTest {
+            val isShelfAlignedToEnd by collectLastValue(underTest.isAlignedToEnd)
+
+            kosmos.enableDualShade(wideLayout = true)
+
+            assertThat(isShelfAlignedToEnd).isFalse()
+        }
+
+    @Test
+    @EnableSceneContainer
+    fun isAlignedToEnd_dualShade_narrowScreen_false() =
+        kosmos.runTest {
+            val isShelfAlignedToEnd by collectLastValue(underTest.isAlignedToEnd)
+
+            kosmos.enableDualShade(wideLayout = false)
+
+            assertThat(isShelfAlignedToEnd).isFalse()
+        }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt
index d14ff35..e5cb0fb 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt
@@ -49,6 +49,7 @@
     private val sectionsManager = mock<NotificationSectionsManager>()
     private val msdlPlayer = kosmos.fakeMSDLPlayer
     private var canRowBeDismissed = true
+    private var magneticAnimationsCancelled = false
 
     private val underTest = kosmos.magneticNotificationRowManagerImpl
 
@@ -64,6 +65,7 @@
         children = notificationTestHelper.createGroup(childrenNumber).childrenContainer
         swipedRow = children.attachedChildren[childrenNumber / 2]
         configureMagneticRowListener(swipedRow)
+        magneticAnimationsCancelled = false
     }
 
     @Test
@@ -247,6 +249,35 @@
             assertThat(underTest.currentState).isEqualTo(State.IDLE)
         }
 
+    @Test
+    fun onMagneticInteractionEnd_whenDetached_cancelsMagneticAnimations() =
+        kosmos.testScope.runTest {
+            // GIVEN the swiped row is detached
+            setDetachedState()
+
+            // WHEN the interaction ends on the row
+            underTest.onMagneticInteractionEnd(swipedRow, velocity = null)
+
+            // THEN magnetic animations are cancelled
+            assertThat(magneticAnimationsCancelled).isTrue()
+        }
+
+    @Test
+    fun onMagneticInteractionEnd_forMagneticNeighbor_cancelsMagneticAnimations() =
+        kosmos.testScope.runTest {
+            val neighborRow = children.attachedChildren[childrenNumber / 2 - 1]
+            configureMagneticRowListener(neighborRow)
+
+            // GIVEN that targets are set
+            setTargets()
+
+            // WHEN the interactionEnd is called on a target different from the swiped row
+            underTest.onMagneticInteractionEnd(neighborRow, null)
+
+            // THEN magnetic animations are cancelled
+            assertThat(magneticAnimationsCancelled).isTrue()
+        }
+
     private fun setDetachedState() {
         val threshold = 100f
         underTest.setSwipeThresholdPx(threshold)
@@ -284,7 +315,11 @@
                     startVelocity: Float,
                 ) {}
 
-                override fun cancelMagneticAnimations() {}
+                override fun cancelMagneticAnimations() {
+                    magneticAnimationsCancelled = true
+                }
+
+                override fun cancelTranslationAnimations() {}
 
                 override fun canRowBeDismissed(): Boolean = canRowBeDismissed
             }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java
index 766ae73..789701f5 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java
@@ -405,7 +405,7 @@
         doNothing().when(mSwipeHelper).superSnapChild(mNotificationRow, 0, 0);
         mSwipeHelper.snapChild(mNotificationRow, 0, 0);
 
-        verify(mCallback, times(1)).onDragCancelledWithVelocity(mNotificationRow, 0);
+        verify(mCallback, times(1)).onDragCancelled(mNotificationRow);
         verify(mSwipeHelper, times(1)).superSnapChild(mNotificationRow, 0, 0);
         verify(mSwipeHelper, times(1)).handleMenuCoveredOrDismissed();
     }
@@ -416,7 +416,7 @@
         doNothing().when(mSwipeHelper).superSnapChild(mNotificationRow, 10, 0);
         mSwipeHelper.snapChild(mNotificationRow, 10, 0);
 
-        verify(mCallback, times(1)).onDragCancelledWithVelocity(mNotificationRow, 0);
+        verify(mCallback, times(1)).onDragCancelled(mNotificationRow);
         verify(mSwipeHelper, times(1)).superSnapChild(mNotificationRow, 10, 0);
         verify(mSwipeHelper, times(0)).handleMenuCoveredOrDismissed();
     }
@@ -426,7 +426,7 @@
         doNothing().when(mSwipeHelper).superSnapChild(mView, 10, 0);
         mSwipeHelper.snapChild(mView, 10, 0);
 
-        verify(mCallback).onDragCancelledWithVelocity(mView, 0);
+        verify(mCallback).onDragCancelled(mView);
         verify(mSwipeHelper, never()).superSnapChild(mView, 10, 0);
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.kt
index 57b7df7..31f8590 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.kt
@@ -51,11 +51,13 @@
 import com.android.systemui.shade.ShadeViewStateProvider
 import com.android.systemui.statusbar.CommandQueue
 import com.android.systemui.statusbar.StatusBarState
+import com.android.systemui.statusbar.core.NewStatusBarIcons
 import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore
 import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler
 import com.android.systemui.statusbar.layout.mockStatusBarContentInsetsProvider
 import com.android.systemui.statusbar.phone.ui.StatusBarIconController
 import com.android.systemui.statusbar.phone.ui.TintedIconManager
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.batteryViewModelFactory
 import com.android.systemui.statusbar.policy.BatteryController
 import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -85,6 +87,7 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 @RunWithLooper(setAsMainLooper = true)
+@DisableFlags(NewStatusBarIcons.FLAG_NAME)
 class KeyguardStatusBarViewControllerTest : SysuiTestCase() {
     private lateinit var kosmos: Kosmos
     private lateinit var testScope: TestScope
@@ -190,6 +193,7 @@
             statusBarIconController,
             iconManagerFactory,
             batteryMeterViewController,
+            kosmos.batteryViewModelFactory,
             shadeViewStateProvider,
             keyguardStateController,
             keyguardBypassController,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
index 2e12336..6f785a3 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
@@ -19,6 +19,7 @@
 import static com.android.systemui.bouncer.shared.constants.KeyguardBouncerConstants.EXPANSION_HIDDEN;
 import static com.android.systemui.bouncer.shared.constants.KeyguardBouncerConstants.EXPANSION_VISIBLE;
 
+import static kotlinx.coroutines.flow.StateFlowKt.MutableStateFlow;
 import static kotlinx.coroutines.test.TestCoroutineDispatchersKt.StandardTestDispatcher;
 
 import static org.junit.Assert.assertFalse;
@@ -76,6 +77,7 @@
 import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor;
 import com.android.systemui.bouncer.ui.BouncerView;
 import com.android.systemui.bouncer.ui.BouncerViewDelegate;
+import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor;
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor;
 import com.android.systemui.dock.DockManager;
 import com.android.systemui.dreams.DreamOverlayStateController;
@@ -171,6 +173,7 @@
     @Mock private SceneInteractor mSceneInteractor;
     @Mock private DismissCallbackRegistry mDismissCallbackRegistry;
     @Mock private BouncerInteractor mBouncerInteractor;
+    @Mock private CommunalSceneInteractor mCommunalSceneInteractor;
 
     private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback
@@ -209,6 +212,7 @@
                 .thenReturn(mNotificationShadeWindowView);
         when(mNotificationShadeWindowView.getWindowInsetsController())
                 .thenReturn(mWindowInsetsController);
+        when(mCommunalSceneInteractor.isIdleOnCommunal()).thenReturn(MutableStateFlow(false));
 
         mStatusBarKeyguardViewManager =
                 new StatusBarKeyguardViewManager(
@@ -245,7 +249,8 @@
                         mExecutor,
                         () -> mDeviceEntryInteractor,
                         mDismissCallbackRegistry,
-                        () -> mBouncerInteractor) {
+                        () -> mBouncerInteractor,
+                        mCommunalSceneInteractor) {
                     @Override
                     public ViewRootImpl getViewRootImpl() {
                         return mViewRootImpl;
@@ -749,7 +754,8 @@
                         mExecutor,
                         () -> mDeviceEntryInteractor,
                         mDismissCallbackRegistry,
-                        () -> mBouncerInteractor) {
+                        () -> mBouncerInteractor,
+                        mCommunalSceneInteractor) {
                     @Override
                     public ViewRootImpl getViewRootImpl() {
                         return mViewRootImpl;
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ongoingcall/domain/interactor/OngoingCallInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ongoingcall/domain/interactor/OngoingCallInteractorTest.kt
index 73c191b..c48287c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ongoingcall/domain/interactor/OngoingCallInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/ongoingcall/domain/interactor/OngoingCallInteractorTest.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.phone.ongoingcall.domain.interactor
 
 import android.app.PendingIntent
+import android.platform.test.annotations.EnableFlags
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
@@ -30,12 +31,12 @@
 import com.android.systemui.statusbar.StatusBarIconView
 import com.android.systemui.statusbar.data.repository.fakeStatusBarModeRepository
 import com.android.systemui.statusbar.gesture.swipeStatusBarAwayGestureHandler
-import com.android.systemui.statusbar.notification.data.model.activeNotificationModel
-import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore
 import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
 import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
-import com.android.systemui.statusbar.notification.shared.CallType
+import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
 import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.addOngoingCallState
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.removeOngoingCallState
 import com.android.systemui.statusbar.window.fakeStatusBarWindowControllerStore
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runTest
@@ -50,6 +51,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
+@EnableFlags(StatusBarChipsModernization.FLAG_NAME)
 class OngoingCallInteractorTest : SysuiTestCase() {
     private val kosmos = Kosmos().useUnconfinedTestDispatcher()
     private val repository = kosmos.activeNotificationListRepository
@@ -76,21 +78,13 @@
             val testIntent: PendingIntent = mock()
             val testPromotedContent =
                 PromotedNotificationContentModel.Builder("promotedCall").build()
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "promotedCall",
-                                whenTime = 1000L,
-                                callType = CallType.Ongoing,
-                                statusBarChipIcon = testIconView,
-                                contentIntent = testIntent,
-                                promotedContent = testPromotedContent,
-                            )
-                        )
-                    }
-                    .build()
+            addOngoingCallState(
+                key = "promotedCall",
+                startTimeMs = 1000L,
+                statusBarChipIconView = testIconView,
+                contentIntent = testIntent,
+                promotedContent = testPromotedContent,
+            )
 
             // Verify model is InCall and has the correct icon, intent, and promoted content.
             assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
@@ -101,45 +95,13 @@
         }
 
     @Test
-    fun ongoingCallNotification_emitsInCall() =
-        kosmos.runTest {
-            val latest by collectLastValue(underTest.ongoingCallState)
-
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "notif1",
-                                whenTime = 1000L,
-                                callType = CallType.Ongoing,
-                            )
-                        )
-                    }
-                    .build()
-
-            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
-        }
-
-    @Test
     fun notificationRemoved_emitsNoCall() =
         kosmos.runTest {
             val latest by collectLastValue(underTest.ongoingCallState)
 
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "notif1",
-                                whenTime = 1000L,
-                                callType = CallType.Ongoing,
-                            )
-                        )
-                    }
-                    .build()
+            addOngoingCallState(key = "testKey")
+            removeOngoingCallState(key = "testKey")
 
-            repository.activeNotifications.value = ActiveNotificationsStore()
             assertThat(latest).isInstanceOf(OngoingCallModel.NoCall::class.java)
         }
 
@@ -149,19 +111,7 @@
             kosmos.activityManagerRepository.fake.startingIsAppVisibleValue = true
             val latest by collectLastValue(underTest.ongoingCallState)
 
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "notif1",
-                                whenTime = 1000L,
-                                callType = CallType.Ongoing,
-                                uid = UID,
-                            )
-                        )
-                    }
-                    .build()
+            addOngoingCallState(uid = UID)
 
             assertThat(latest).isInstanceOf(OngoingCallModel.InCallWithVisibleApp::class.java)
         }
@@ -172,19 +122,7 @@
             kosmos.activityManagerRepository.fake.startingIsAppVisibleValue = false
             val latest by collectLastValue(underTest.ongoingCallState)
 
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "notif1",
-                                whenTime = 1000L,
-                                callType = CallType.Ongoing,
-                                uid = UID,
-                            )
-                        )
-                    }
-                    .build()
+            addOngoingCallState(uid = UID)
 
             assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
         }
@@ -196,19 +134,7 @@
 
             // Start with notification and app not visible
             kosmos.activityManagerRepository.fake.startingIsAppVisibleValue = false
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "notif1",
-                                whenTime = 1000L,
-                                callType = CallType.Ongoing,
-                                uid = UID,
-                            )
-                        )
-                    }
-                    .build()
+            addOngoingCallState(uid = UID)
             assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
 
             // App becomes visible
@@ -234,7 +160,7 @@
                     kosmos.fakeStatusBarWindowControllerStore.defaultDisplay
                         .ongoingProcessRequiresStatusBarVisible
                 )
-            postOngoingCallNotification()
+            addOngoingCallState()
 
             assertThat(isStatusBarRequired).isTrue()
             assertThat(requiresStatusBarVisibleInRepository).isTrue()
@@ -256,9 +182,9 @@
                         .ongoingProcessRequiresStatusBarVisible
                 )
 
-            postOngoingCallNotification()
+            addOngoingCallState(key = "testKey")
 
-            repository.activeNotifications.value = ActiveNotificationsStore()
+            removeOngoingCallState(key = "testKey")
 
             assertThat(isStatusBarRequired).isFalse()
             assertThat(requiresStatusBarVisibleInRepository).isFalse()
@@ -283,7 +209,7 @@
 
             kosmos.activityManagerRepository.fake.startingIsAppVisibleValue = false
 
-            postOngoingCallNotification()
+            addOngoingCallState(uid = UID)
 
             assertThat(ongoingCallState).isInstanceOf(OngoingCallModel.InCall::class.java)
             assertThat(requiresStatusBarVisibleInRepository).isTrue()
@@ -305,7 +231,7 @@
             clearInvocations(kosmos.swipeStatusBarAwayGestureHandler)
             // Set up notification but not in fullscreen
             kosmos.fakeStatusBarModeRepository.defaultDisplay.isInFullscreenMode.value = false
-            postOngoingCallNotification()
+            addOngoingCallState()
 
             assertThat(ongoingCallState).isInstanceOf(OngoingCallModel.InCall::class.java)
             verify(kosmos.swipeStatusBarAwayGestureHandler, never())
@@ -319,7 +245,7 @@
 
             // Set up notification and fullscreen mode
             kosmos.fakeStatusBarModeRepository.defaultDisplay.isInFullscreenMode.value = true
-            postOngoingCallNotification()
+            addOngoingCallState()
 
             assertThat(isGestureListeningEnabled).isTrue()
             verify(kosmos.swipeStatusBarAwayGestureHandler)
@@ -333,7 +259,7 @@
 
             // Set up notification and fullscreen mode
             kosmos.fakeStatusBarModeRepository.defaultDisplay.isInFullscreenMode.value = true
-            postOngoingCallNotification()
+            addOngoingCallState()
 
             clearInvocations(kosmos.swipeStatusBarAwayGestureHandler)
 
@@ -360,7 +286,7 @@
                 )
 
             // Start with an ongoing call (which should set status bar required)
-            postOngoingCallNotification()
+            addOngoingCallState()
 
             assertThat(isStatusBarRequiredForOngoingCall).isTrue()
             assertThat(requiresStatusBarVisibleInRepository).isTrue()
@@ -374,22 +300,6 @@
             assertThat(requiresStatusBarVisibleInWindowController).isFalse()
         }
 
-    private fun postOngoingCallNotification() {
-        repository.activeNotifications.value =
-            ActiveNotificationsStore.Builder()
-                .apply {
-                    addIndividualNotif(
-                        activeNotificationModel(
-                            key = "notif1",
-                            whenTime = 1000L,
-                            callType = CallType.Ongoing,
-                            uid = UID,
-                        )
-                    )
-                }
-                .build()
-    }
-
     companion object {
         private const val UID = 885
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt
index 4af97c0..183cd8f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt
@@ -19,21 +19,30 @@
 import android.graphics.Color
 import android.graphics.Rect
 import android.view.View
+import androidx.compose.runtime.getValue
+import com.android.systemui.lifecycle.ExclusiveActivatable
+import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.plugins.DarkIconDispatcher
 import com.android.systemui.statusbar.chips.mediaprojection.domain.model.MediaProjectionStopDialogModel
 import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
+import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModelLegacy
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.events.shared.model.SystemEventAnimationState.Idle
 import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipModel
+import com.android.systemui.statusbar.phone.domain.interactor.IsAreaDark
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
 import com.android.systemui.statusbar.pipeline.shared.ui.model.SystemInfoCombinedVisibilityModel
 import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableSharedFlow
 import kotlinx.coroutines.flow.MutableStateFlow
+import org.mockito.Mockito.mock
 
 class FakeHomeStatusBarViewModel(
     override val operatorNameViewModel: StatusBarOperatorNameViewModel
-) : HomeStatusBarViewModel {
+) : HomeStatusBarViewModel, ExclusiveActivatable() {
+    private val hydrator = Hydrator("FakeHomeStatusBarViewModel.hydrator")
+
     override val areNotificationsLightsOut = MutableStateFlow(false)
 
     override val isTransitioningFromLockscreenToOccluded = MutableStateFlow(false)
@@ -41,10 +50,13 @@
     override val transitionFromLockscreenToDreamStartedEvent = MutableSharedFlow<Unit>()
 
     override val primaryOngoingActivityChip: MutableStateFlow<OngoingActivityChipModel> =
-        MutableStateFlow(OngoingActivityChipModel.Hidden())
+        MutableStateFlow(OngoingActivityChipModel.Inactive())
 
     override val ongoingActivityChips = MutableStateFlow(MultipleOngoingActivityChipsModel())
 
+    override val ongoingActivityChipsLegacy =
+        MutableStateFlow(MultipleOngoingActivityChipsModelLegacy())
+
     override val statusBarPopupChips = MutableStateFlow(emptyList<PopupChipModel.Shown>())
 
     override val mediaProjectionStopDialogDueToCallEndedState =
@@ -52,6 +64,11 @@
 
     override val isHomeStatusBarAllowedByScene = MutableStateFlow(false)
 
+    override val batteryViewModelFactory: BatteryViewModel.Factory =
+        object : BatteryViewModel.Factory {
+            override fun create(): BatteryViewModel = mock(BatteryViewModel::class.java)
+        }
+
     override val shouldShowOperatorNameView = MutableStateFlow(false)
 
     override val isClockVisible =
@@ -76,6 +93,7 @@
 
     var darkIconTint = Color.BLACK
     var lightIconTint = Color.WHITE
+    var darkIntensity = 0f
 
     override val areaTint: Flow<StatusBarTintColor> =
         MutableStateFlow(
@@ -87,4 +105,22 @@
                 }
             }
         )
+
+    val isAreaDarkSource =
+        MutableStateFlow(
+            IsAreaDark { viewBounds ->
+                if (DarkIconDispatcher.isInAreas(darkRegions, viewBounds)) {
+                    darkIntensity < 0.5f
+                } else {
+                    false
+                }
+            }
+        )
+
+    override val areaDark: IsAreaDark by
+        hydrator.hydratedStateOf(traceName = "areaDark", source = isAreaDarkSource)
+
+    override suspend fun onActivated(): Nothing {
+        hydrator.activate()
+    }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt
index 2719e85..cd8ca23 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt
@@ -66,6 +66,7 @@
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsViewModelTest.Companion.assertIsScreenRecordChip
 import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsViewModelTest.Companion.assertIsShareToAppChip
+import com.android.systemui.statusbar.core.StatusBarRootModernization
 import com.android.systemui.statusbar.data.model.StatusBarMode
 import com.android.systemui.statusbar.data.repository.fakeStatusBarModeRepository
 import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository
@@ -85,6 +86,7 @@
 import com.android.systemui.statusbar.notification.stack.data.repository.headsUpNotificationRepository
 import com.android.systemui.statusbar.phone.SysuiDarkIconDispatcher
 import com.android.systemui.statusbar.phone.data.repository.fakeDarkIconRepository
+import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
 import com.android.systemui.statusbar.pipeline.shared.domain.interactor.setHomeStatusBarIconBlockList
 import com.android.systemui.statusbar.pipeline.shared.domain.interactor.setHomeStatusBarInteractorShowOperatorName
 import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
@@ -488,7 +490,7 @@
 
             kosmos.screenRecordRepository.screenRecordState.value = ScreenRecordModel.DoingNothing
 
-            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Hidden::class.java)
+            assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             kosmos.fakeMediaProjectionRepository.mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
@@ -833,6 +835,23 @@
         }
 
     @Test
+    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
+    fun isNotificationIconContainerVisible_anyChipShowing_ChipsModernizationOn() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isNotificationIconContainerVisible)
+            transitionKeyguardToGone()
+
+            kosmos.screenRecordRepository.screenRecordState.value = ScreenRecordModel.Recording
+
+            assertThat(latest!!.visibility).isEqualTo(View.GONE)
+
+            kosmos.screenRecordRepository.screenRecordState.value = ScreenRecordModel.DoingNothing
+
+            assertThat(latest!!.visibility).isEqualTo(View.VISIBLE)
+        }
+
+    @Test
+    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
     @EnableFlags(StatusBarNotifChips.FLAG_NAME)
     fun isNotificationIconContainerVisible_anyChipShowing_PromotedNotifsOn() =
         kosmos.runTest {
@@ -849,8 +868,12 @@
         }
 
     @Test
-    @DisableFlags(StatusBarNotifChips.FLAG_NAME)
-    fun isNotificationIconContainerVisible_anyChipShowing_PromotedNotifsOff() =
+    @DisableFlags(
+        StatusBarNotifChips.FLAG_NAME,
+        StatusBarRootModernization.FLAG_NAME,
+        StatusBarChipsModernization.FLAG_NAME,
+    )
+    fun isNotificationIconContainerVisible_anyChipShowing_ChipsModernizationAndPromotedNotifsOff() =
         kosmos.runTest {
             val latest by collectLastValue(underTest.isNotificationIconContainerVisible)
             transitionKeyguardToGone()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateTest.kt
index ffdebb3..b9e1c2f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateTest.kt
@@ -18,6 +18,7 @@
 
 import android.app.Dialog
 import android.content.Intent
+import android.testing.TestableLooper
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
@@ -25,10 +26,10 @@
 import com.android.systemui.animation.mockActivityTransitionAnimatorController
 import com.android.systemui.animation.mockDialogTransitionAnimator
 import com.android.systemui.kosmos.applicationCoroutineScope
+import com.android.systemui.kosmos.backgroundCoroutineContext
 import com.android.systemui.kosmos.mainCoroutineContext
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.plugins.activityStarter
-import com.android.systemui.runOnMainThreadAndWaitForIdleSync
 import com.android.systemui.shade.data.repository.shadeDialogContextInteractor
 import com.android.systemui.statusbar.phone.SystemUIDialog
 import com.android.systemui.statusbar.phone.systemUIDialogFactory
@@ -49,6 +50,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
+@TestableLooper.RunWithLooper(setAsMainLooper = true)
 class ModesDialogDelegateTest : SysuiTestCase() {
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
@@ -76,20 +78,28 @@
                 activityStarter,
                 { kosmos.modesDialogViewModel },
                 mockDialogEventLogger,
+                kosmos.applicationCoroutineScope,
                 kosmos.mainCoroutineContext,
+                kosmos.backgroundCoroutineContext,
                 kosmos.shadeDialogContextInteractor,
             )
     }
 
     @Test
-    fun launchFromDialog_whenDialogNotOpen() {
-        val intent: Intent = mock()
+    fun launchFromDialog_whenDialogNotOpen() =
+        testScope.runTest {
+            val intent: Intent = mock()
 
-        runOnMainThreadAndWaitForIdleSync { underTest.launchFromDialog(intent) }
+            underTest.launchFromDialog(intent)
+            runCurrent()
 
-        verify(activityStarter)
-            .startActivity(eq(intent), eq(true), eq<ActivityTransitionAnimator.Controller?>(null))
-    }
+            verify(activityStarter)
+                .startActivity(
+                    eq(intent),
+                    eq(true),
+                    eq<ActivityTransitionAnimator.Controller?>(null),
+                )
+        }
 
     @Test
     fun launchFromDialog_whenDialogOpen() =
@@ -97,29 +107,26 @@
             val intent: Intent = mock()
             lateinit var dialog: Dialog
 
-            runOnMainThreadAndWaitForIdleSync {
-                kosmos.applicationCoroutineScope.launch { dialog = underTest.showDialog() }
-                runCurrent()
-                underTest.launchFromDialog(intent)
-            }
+            kosmos.applicationCoroutineScope.launch { dialog = underTest.showDialog() }
+            runCurrent()
+            underTest.launchFromDialog(intent)
+            runCurrent()
 
             verify(mockDialogTransitionAnimator)
                 .createActivityTransitionController(any<Dialog>(), eq(null))
             verify(activityStarter).startActivity(eq(intent), eq(true), eq(mockAnimationController))
 
-            runOnMainThreadAndWaitForIdleSync { dialog.dismiss() }
+            dialog.dismiss()
         }
 
     @Test
     fun dismiss_clearsDialogReference() {
-        val dialog = runOnMainThreadAndWaitForIdleSync { underTest.createDialog() }
+        val dialog = underTest.createDialog()
 
         assertThat(underTest.currentDialog).isEqualTo(dialog)
 
-        runOnMainThreadAndWaitForIdleSync {
-            dialog.show()
-            dialog.dismiss()
-        }
+        dialog.show()
+        dialog.dismiss()
 
         assertThat(underTest.currentDialog).isNull()
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt
index 381ac15..4ab1c0b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt
@@ -39,11 +39,9 @@
 import com.android.systemui.statusbar.notification.data.repository.FakeHeadsUpRowRepository
 import com.android.systemui.statusbar.notification.stack.data.repository.headsUpNotificationRepository
 import com.android.systemui.statusbar.notification.stack.domain.interactor.headsUpNotificationInteractor
-import com.android.systemui.statusbar.policy.BatteryController
 import com.android.systemui.statusbar.policy.batteryController
+import com.android.systemui.statusbar.policy.fake
 import com.android.systemui.testKosmos
-import com.android.systemui.util.mockito.argumentCaptor
-import com.android.systemui.util.mockito.capture
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.launchIn
@@ -52,7 +50,6 @@
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito.verify
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4
 import platform.test.runner.parameterized.Parameters
 
@@ -219,23 +216,12 @@
             val latest by collectLastValue(underTest.isBatteryCharging)
             runCurrent()
 
-            val captor = argumentCaptor<BatteryController.BatteryStateChangeCallback>()
-            verify(batteryController).addCallback(capture(captor))
-            val callback = captor.value
-
-            callback.onBatteryLevelChanged(
-                /* level= */ 2,
-                /* pluggedIn= */ false,
-                /* charging= */ true,
-            )
+            batteryController.fake._level = 2
+            batteryController.fake._isPluggedIn = true
 
             assertThat(latest).isTrue()
 
-            callback.onBatteryLevelChanged(
-                /* level= */ 2,
-                /* pluggedIn= */ true,
-                /* charging= */ false,
-            )
+            batteryController.fake._isPluggedIn = false
 
             assertThat(latest).isFalse()
         }
@@ -246,12 +232,9 @@
             val job = underTest.isBatteryCharging.launchIn(this)
             runCurrent()
 
-            val captor = argumentCaptor<BatteryController.BatteryStateChangeCallback>()
-            verify(batteryController).addCallback(capture(captor))
-
             job.cancel()
             runCurrent()
 
-            verify(batteryController).removeCallback(captor.value)
+            assertThat(batteryController.fake.listeners).isEmpty()
         }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/unfold/DisplaySwitchLatencyTrackerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/unfold/DisplaySwitchLatencyTrackerTest.kt
index fecf1fd..36e18e6 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/unfold/DisplaySwitchLatencyTrackerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/unfold/DisplaySwitchLatencyTrackerTest.kt
@@ -20,9 +20,12 @@
 import android.content.res.Resources
 import android.hardware.devicestate.DeviceStateManager
 import android.os.PowerManager.GO_TO_SLEEP_REASON_DEVICE_FOLD
+import android.os.PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.internal.R
+import com.android.internal.util.LatencyTracker
+import com.android.internal.util.LatencyTracker.ACTION_SWITCH_DISPLAY_UNFOLD
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryImpl
 import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractorImpl
@@ -44,23 +47,26 @@
 import com.android.systemui.power.shared.model.ScreenPowerState.SCREEN_ON
 import com.android.systemui.shared.system.SysUiStatsLog
 import com.android.systemui.statusbar.policy.FakeConfigurationController
+import com.android.systemui.unfold.DisplaySwitchLatencyTracker.Companion.COOL_DOWN_DURATION
 import com.android.systemui.unfold.DisplaySwitchLatencyTracker.Companion.FOLDABLE_DEVICE_STATE_CLOSED
 import com.android.systemui.unfold.DisplaySwitchLatencyTracker.Companion.FOLDABLE_DEVICE_STATE_HALF_OPEN
+import com.android.systemui.unfold.DisplaySwitchLatencyTracker.Companion.SCREEN_EVENT_TIMEOUT
 import com.android.systemui.unfold.DisplaySwitchLatencyTracker.DisplaySwitchLatencyEvent
 import com.android.systemui.unfold.data.repository.UnfoldTransitionRepositoryImpl
 import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor
 import com.android.systemui.unfoldedDeviceState
 import com.android.systemui.util.animation.data.repository.fakeAnimationStatusRepository
-import com.android.systemui.util.mockito.any
 import com.android.systemui.util.mockito.capture
 import com.android.systemui.util.time.FakeSystemClock
 import com.google.common.truth.Truth.assertThat
 import java.util.Optional
+import kotlin.time.Duration.Companion.milliseconds
 import kotlinx.coroutines.asExecutor
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.TestDispatcher
 import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceTimeBy
 import kotlinx.coroutines.test.runCurrent
 import kotlinx.coroutines.test.runTest
 import org.junit.Before
@@ -72,7 +78,10 @@
 import org.mockito.Mockito.verify
 import org.mockito.Mockito.`when` as whenever
 import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.any
 import org.mockito.kotlin.mock
+import org.mockito.kotlin.times
+import org.mockito.kotlin.verifyNoMoreInteractions
 
 @RunWith(AndroidJUnit4::class)
 @SmallTest
@@ -88,6 +97,7 @@
     private val animationStatusRepository = kosmos.fakeAnimationStatusRepository
     private val keyguardInteractor = mock<KeyguardInteractor>()
     private val displaySwitchLatencyLogger = mock<DisplaySwitchLatencyLogger>()
+    private val latencyTracker = mock<LatencyTracker>()
 
     private val deviceStateManager = kosmos.deviceStateManager
     private val closedDeviceState = kosmos.foldedDeviceStateList.first()
@@ -142,6 +152,7 @@
                 displaySwitchLatencyLogger,
                 systemClock,
                 deviceStateManager,
+                latencyTracker,
             )
     }
 
@@ -195,6 +206,7 @@
                     displaySwitchLatencyLogger,
                     systemClock,
                     deviceStateManager,
+                    latencyTracker,
                 )
 
             displaySwitchLatencyTracker.start()
@@ -370,6 +382,283 @@
         }
     }
 
+    @Test
+    fun unfoldingDevice_startsLatencyTracking() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+
+            verify(latencyTracker).onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun foldingDevice_doesntTrackLatency() {
+        testScope.runTest {
+            setDeviceState(UNFOLDED)
+            displaySwitchLatencyTracker.start()
+            runCurrent()
+
+            startFolding()
+
+            verify(latencyTracker, never()).onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun foldedState_doesntStartTrackingOnScreenOn() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            powerInteractor.setScreenPowerState(SCREEN_ON)
+            runCurrent()
+
+            verify(latencyTracker, never()).onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun unfoldingDevice_endsLatencyTrackingWhenTransitionStarts() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            unfoldTransitionProgressProvider.onTransitionStarted()
+            runCurrent()
+
+            verify(latencyTracker).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun unfoldingDevice_animationsDisabled_endsLatencyTrackingWhenScreenOn() {
+        testScope.runTest {
+            animationStatusRepository.onAnimationStatusChanged(enabled = false)
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            powerInteractor.setScreenPowerState(SCREEN_ON)
+            runCurrent()
+
+            verify(latencyTracker).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun unfoldingDevice_doesntEndLatencyTrackingWhenScreenOn() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            powerInteractor.setScreenPowerState(SCREEN_ON)
+            runCurrent()
+
+            verify(latencyTracker, never()).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun unfoldingDevice_animationsDisabled_endsLatencyTrackingWhenDeviceGoesToSleep() {
+        testScope.runTest {
+            animationStatusRepository.onAnimationStatusChanged(enabled = false)
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            powerInteractor.setAsleepForTest(sleepReason = GO_TO_SLEEP_REASON_POWER_BUTTON)
+            runCurrent()
+
+            verify(latencyTracker).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun displaySwitchInterrupted_cancelsTrackingWhenNewDeviceStateEmitted() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            finishFolding()
+
+            verify(latencyTracker).onActionCancel(ACTION_SWITCH_DISPLAY_UNFOLD)
+            verify(latencyTracker, never()).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun displaySwitchInterrupted_cancelsTrackingForManyStateChanges() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            startUnfolding()
+            startFolding()
+            startUnfolding()
+            finishUnfolding()
+
+            verify(latencyTracker).onActionCancel(ACTION_SWITCH_DISPLAY_UNFOLD)
+            verify(latencyTracker, never()).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun displaySwitchInterrupted_startsOneTrackingForManyStateChanges() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            startUnfolding()
+            startFolding()
+            startUnfolding()
+
+            verify(latencyTracker, times(1)).onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun interruptedDisplaySwitchFinished_inCoolDownPeriod_trackingDisabled() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            finishFolding()
+
+            advanceTimeBy(COOL_DOWN_DURATION.minus(10.milliseconds))
+            startUnfolding()
+            finishUnfolding()
+
+            verify(latencyTracker, times(1)).onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+            verify(latencyTracker, never()).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun interruptedDisplaySwitchFinished_coolDownPassed_trackingWorksAsUsual() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            finishFolding()
+
+            advanceTimeBy(COOL_DOWN_DURATION.plus(10.milliseconds))
+            startUnfolding()
+            finishUnfolding()
+
+            verify(latencyTracker, times(2)).onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+            verify(latencyTracker).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun displaySwitchInterrupted_coolDownExtendedByStartEvents() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            advanceTimeBy(COOL_DOWN_DURATION.minus(10.milliseconds))
+            startUnfolding()
+            advanceTimeBy(20.milliseconds)
+
+            startFolding()
+            finishUnfolding()
+
+            verify(latencyTracker, never()).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun displaySwitchInterrupted_coolDownExtendedByAnyEndEvent() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            startFolding()
+            startUnfolding()
+            advanceTimeBy(COOL_DOWN_DURATION - 10.milliseconds)
+            powerInteractor.setScreenPowerState(SCREEN_ON)
+            advanceTimeBy(20.milliseconds)
+
+            startFolding()
+            finishUnfolding()
+
+            verify(latencyTracker, never()).onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun displaySwitchTimedOut_trackingCancelled() {
+        testScope.runTest {
+            startInFoldedState(displaySwitchLatencyTracker)
+
+            startUnfolding()
+            advanceTimeBy(SCREEN_EVENT_TIMEOUT + 10.milliseconds)
+            finishUnfolding()
+
+            verify(latencyTracker).onActionCancel(ACTION_SWITCH_DISPLAY_UNFOLD)
+        }
+    }
+
+    @Test
+    fun foldingStarted_screenStillOn_eventSentOnlyAfterScreenSwitches() {
+        // can happen for both folding and unfolding (with animations off) but it's more likely to
+        // happen when folding as waiting for screen on is the default case then
+        testScope.runTest {
+            startInUnfoldedState(displaySwitchLatencyTracker)
+            setDeviceState(FOLDED)
+            powerInteractor.setScreenPowerState(SCREEN_ON)
+            runCurrent()
+
+            verifyNoMoreInteractions(displaySwitchLatencyLogger)
+
+            powerInteractor.setScreenPowerState(SCREEN_OFF)
+            runCurrent()
+            powerInteractor.setScreenPowerState(SCREEN_ON)
+            runCurrent()
+
+            verify(displaySwitchLatencyLogger).log(any())
+        }
+    }
+
+    private suspend fun TestScope.startInFoldedState(tracker: DisplaySwitchLatencyTracker) {
+        setDeviceState(FOLDED)
+        tracker.start()
+        runCurrent()
+    }
+
+    private suspend fun TestScope.startInUnfoldedState(tracker: DisplaySwitchLatencyTracker) {
+        setDeviceState(UNFOLDED)
+        tracker.start()
+        runCurrent()
+    }
+
+    private suspend fun TestScope.startUnfolding() {
+        setDeviceState(HALF_FOLDED)
+        powerInteractor.setScreenPowerState(SCREEN_OFF)
+        runCurrent()
+    }
+
+    private suspend fun TestScope.startFolding() {
+        setDeviceState(FOLDED)
+        powerInteractor.setScreenPowerState(SCREEN_OFF)
+        runCurrent()
+    }
+
+    private fun TestScope.finishFolding() {
+        powerInteractor.setScreenPowerState(SCREEN_ON)
+        runCurrent()
+    }
+
+    private fun TestScope.finishUnfolding() {
+        unfoldTransitionProgressProvider.onTransitionStarted()
+        runCurrent()
+    }
+
     private suspend fun setDeviceState(state: DeviceState) {
         foldStateRepository.emit(state)
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt
index 3ca1f5c..bafa8cf 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt
@@ -18,6 +18,7 @@
 package com.android.systemui.user.data.repository
 
 import android.app.admin.devicePolicyManager
+import android.content.Intent
 import android.content.pm.UserInfo
 import android.internal.statusbar.fakeStatusBarService
 import android.os.UserHandle
@@ -27,6 +28,7 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.broadcast.broadcastDispatcher
+import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.kosmos.useUnconfinedTestDispatcher
@@ -50,6 +52,8 @@
 import org.mockito.Mockito.mock
 import org.mockito.Mockito.`when` as whenever
 import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
@@ -172,6 +176,39 @@
         }
 
     @Test
+    fun userUnlockedFlow_tracksBroadcastedChanges() =
+        testScope.runTest {
+            val userHandle: UserHandle = mock()
+            underTest = create(testScope.backgroundScope)
+            val latest by collectLastValue(underTest.isUserUnlocked(userHandle))
+            whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(false)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
+                context,
+                Intent(Intent.ACTION_USER_UNLOCKED),
+            )
+
+            assertThat(latest).isFalse()
+
+            whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(true)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
+                context,
+                Intent(Intent.ACTION_USER_UNLOCKED),
+            )
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun userUnlockedFlow_initialValueReported() =
+        testScope.runTest {
+            val userHandle: UserHandle = mock()
+            underTest = create(testScope.backgroundScope)
+            whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(true)
+            val latest by collectLastValue(underTest.isUserUnlocked(userHandle))
+            assertThat(latest).isTrue()
+        }
+
+    @Test
     fun refreshUsers_sortsByCreationTime_guestUserLast() =
         testScope.runTest {
             underTest = create(testScope.backgroundScope)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/util/WallpaperControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/util/WallpaperControllerTest.kt
index 6271904..9f2f603 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/util/WallpaperControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/util/WallpaperControllerTest.kt
@@ -86,7 +86,7 @@
 
     @Test
     fun setUnfoldTransitionZoom_defaultUnfoldTransitionIsDisabled_doesNotUpdateWallpaperZoom() {
-        wallpaperRepository.wallpaperInfo.value = createWallpaperInfo(useDefaultTransition = false)
+        wallpaperRepository.setWallpaperInfo(createWallpaperInfo(useDefaultTransition = false))
 
         wallaperController.setUnfoldTransitionZoom(0.5f)
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/util/kotlin/FlowTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/util/kotlin/FlowTest.kt
new file mode 100644
index 0000000..2ca3d2f
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/util/kotlin/FlowTest.kt
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.util.kotlin
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.test.runTest
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class FlowTest : SysuiTestCase() {
+    val kosmos = testKosmos()
+    val testScope = kosmos.testScope
+
+    @Test
+    fun combine6() {
+        testScope.runTest {
+            val result by collectLastValue(combine(f0, f1, f2, f3, f4, f5, ::listOf6))
+            assertItemsEqualIndices(result)
+        }
+    }
+
+    @Test
+    fun combine7() {
+        testScope.runTest {
+            val result by collectLastValue(combine(f0, f1, f2, f3, f4, f5, f6, ::listOf7))
+            assertItemsEqualIndices(result)
+        }
+    }
+
+    @Test
+    fun combine8() {
+        testScope.runTest {
+            val result by collectLastValue(combine(f0, f1, f2, f3, f4, f5, f6, f7, ::listOf8))
+            assertItemsEqualIndices(result)
+        }
+    }
+
+    @Test
+    fun combine9() {
+        testScope.runTest {
+            val result by collectLastValue(combine(f0, f1, f2, f3, f4, f5, f6, f7, f8, ::listOf9))
+            assertItemsEqualIndices(result)
+        }
+    }
+
+    private fun assertItemsEqualIndices(list: List<Int>?) {
+        assertThat(list).isNotNull()
+        list ?: return
+
+        for (index in list.indices) {
+            assertThat(list[index]).isEqualTo(index)
+        }
+    }
+
+    private val f0: Flow<Int> = flowOf(0)
+    private val f1: Flow<Int> = flowOf(1)
+    private val f2: Flow<Int> = flowOf(2)
+    private val f3: Flow<Int> = flowOf(3)
+    private val f4: Flow<Int> = flowOf(4)
+    private val f5: Flow<Int> = flowOf(5)
+    private val f6: Flow<Int> = flowOf(6)
+    private val f7: Flow<Int> = flowOf(7)
+    private val f8: Flow<Int> = flowOf(8)
+}
+
+private fun <T> listOf6(a0: T, a1: T, a2: T, a3: T, a4: T, a5: T): List<T> =
+    listOf(a0, a1, a2, a3, a4, a5)
+
+private fun <T> listOf7(a0: T, a1: T, a2: T, a3: T, a4: T, a5: T, a6: T): List<T> =
+    listOf(a0, a1, a2, a3, a4, a5, a6)
+
+private fun <T> listOf8(a0: T, a1: T, a2: T, a3: T, a4: T, a5: T, a6: T, a7: T): List<T> =
+    listOf(a0, a1, a2, a3, a4, a5, a6, a7)
+
+private fun <T> listOf9(a0: T, a1: T, a2: T, a3: T, a4: T, a5: T, a6: T, a7: T, a8: T): List<T> =
+    listOf(a0, a1, a2, a3, a4, a5, a6, a7, a8)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
index 75f3386..b8e1924 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
@@ -47,6 +47,7 @@
 import androidx.test.filters.SmallTest;
 
 import com.android.keyguard.TestScopeProvider;
+import com.android.settingslib.volume.MediaSessions;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.SysuiTestCaseExtKt;
 import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -268,13 +269,15 @@
     @Test
     public void testOnRemoteVolumeChanged_newStream_noNullPointer() {
         MediaSession.Token token = new MediaSession.Token(Process.myUid(), null);
-        mVolumeController.mMediaSessionsCallbacksW.onRemoteVolumeChanged(token, 0);
+        var sessionId = MediaSessions.SessionId.Companion.from(token);
+        mVolumeController.mMediaSessionsCallbacksW.onRemoteVolumeChanged(sessionId, 0);
     }
 
     @Test
     public void testOnRemoteRemove_newStream_noNullPointer() {
         MediaSession.Token token = new MediaSession.Token(Process.myUid(), null);
-        mVolumeController.mMediaSessionsCallbacksW.onRemoteRemoved(token);
+        var sessionId = MediaSessions.SessionId.Companion.from(token);
+        mVolumeController.mMediaSessionsCallbacksW.onRemoteRemoved(sessionId);
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperRepository.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperRepository.kt
deleted file mode 100644
index d6343c8..0000000
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperRepository.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * 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.wallpapers.data.repository
-
-import android.app.WallpaperInfo
-import android.view.View
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.flowOf
-
-/** Fake implementation of the wallpaper repository. */
-class FakeWallpaperRepository : WallpaperRepository {
-    override val wallpaperInfo = MutableStateFlow<WallpaperInfo?>(null)
-    override val wallpaperSupportsAmbientMode = flowOf(false)
-    override var rootView: View? = null
-    override val shouldSendFocalArea = MutableStateFlow(false)
-}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryImplTest.kt
index 1f5e7ca..7c166de 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryImplTest.kt
@@ -22,27 +22,31 @@
 import android.content.Intent
 import android.content.pm.UserInfo
 import android.platform.test.annotations.EnableFlags
+import android.provider.Settings
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
+import com.android.app.wallpaperManager
 import com.android.internal.R
 import com.android.systemui.SysuiTestCase
+import com.android.systemui.broadcast.broadcastDispatcher
 import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.keyguard.data.repository.FakeKeyguardClockRepository
-import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
+import com.android.systemui.kosmos.testScope
 import com.android.systemui.res.R as SysUIR
 import com.android.systemui.shared.Flags as SharedFlags
+import com.android.systemui.testKosmos
 import com.android.systemui.user.data.model.SelectedUserModel
 import com.android.systemui.user.data.model.SelectionStatus
-import com.android.systemui.user.data.repository.FakeUserRepository
+import com.android.systemui.user.data.repository.fakeUserRepository
+import com.android.systemui.util.settings.fakeSettings
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.test.StandardTestDispatcher
-import kotlinx.coroutines.test.TestScope
 import kotlinx.coroutines.test.runCurrent
 import kotlinx.coroutines.test.runTest
 import org.junit.Before
+import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.whenever
 
@@ -50,41 +54,39 @@
 @RunWith(AndroidJUnit4::class)
 class WallpaperRepositoryImplTest : SysuiTestCase() {
 
-    private val testDispatcher = StandardTestDispatcher()
-    private val testScope = TestScope(testDispatcher)
-    private val userRepository = FakeUserRepository()
-    private val keyguardClockRepository = FakeKeyguardClockRepository()
-    private val keyguardRepository = FakeKeyguardRepository()
-    private val wallpaperManager: WallpaperManager = mock()
+    private var isWallpaperSupported = true
+    private val kosmos =
+        testKosmos().apply {
+            wallpaperManager =
+                mock<WallpaperManager>() {
+                    on { isWallpaperSupported } doAnswer { isWallpaperSupported }
+                }
+        }
+    private val secureSettings = kosmos.fakeSettings
+    private val testScope = kosmos.testScope
+    private val userRepository = kosmos.fakeUserRepository
+    private val broadcastDispatcher = kosmos.broadcastDispatcher
 
-    private val underTest: WallpaperRepositoryImpl by lazy {
-        WallpaperRepositoryImpl(
-            testScope.backgroundScope,
-            testDispatcher,
-            fakeBroadcastDispatcher,
-            userRepository,
-            keyguardRepository,
-            wallpaperManager,
-            context,
-        )
-    }
+    // Initialized in each test since certain flows rely on mocked data that isn't
+    // modifiable after start, like wallpaperManager.isWallpaperSupported
+    private lateinit var underTest: WallpaperRepositoryImpl
 
     lateinit var focalAreaTarget: String
 
     @Before
     fun setUp() {
-        whenever(wallpaperManager.isWallpaperSupported).thenReturn(true)
         focalAreaTarget = context.resources.getString(SysUIR.string.focal_area_target)
     }
 
     @Test
     fun wallpaperInfo_nullInfo() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.wallpaperInfo)
 
-            whenever(wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(null)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(null)
 
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
@@ -95,11 +97,13 @@
     @Test
     fun wallpaperInfo_hasInfoFromManager() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.wallpaperInfo)
 
-            whenever(wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(UNSUPPORTED_WP)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any()))
+                .thenReturn(UNSUPPORTED_WP)
 
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
@@ -110,7 +114,8 @@
     @Test
     fun wallpaperInfo_initialValueIsFetched() =
         testScope.runTest {
-            whenever(wallpaperManager.getWallpaperInfoForUser(USER_WITH_SUPPORTED_WP.id))
+            underTest = kosmos.wallpaperRepository
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(USER_WITH_SUPPORTED_WP.id))
                 .thenReturn(SUPPORTED_WP)
             userRepository.setUserInfos(listOf(USER_WITH_SUPPORTED_WP))
             userRepository.setSelectedUserInfo(USER_WITH_SUPPORTED_WP)
@@ -125,15 +130,16 @@
     @Test
     fun wallpaperInfo_updatesOnUserChanged() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.wallpaperInfo)
 
             val user3 = UserInfo(/* id= */ 3, /* name= */ "user3", /* flags= */ 0)
             val user3Wp = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(user3.id)).thenReturn(user3Wp)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(user3.id)).thenReturn(user3Wp)
 
             val user4 = UserInfo(/* id= */ 4, /* name= */ "user4", /* flags= */ 0)
             val user4Wp = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(user4.id)).thenReturn(user4Wp)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(user4.id)).thenReturn(user4Wp)
 
             userRepository.setUserInfos(listOf(user3, user4))
 
@@ -153,15 +159,16 @@
     @Test
     fun wallpaperInfo_doesNotUpdateOnUserChanging() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.wallpaperInfo)
 
             val user3 = UserInfo(/* id= */ 3, /* name= */ "user3", /* flags= */ 0)
             val user3Wp = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(user3.id)).thenReturn(user3Wp)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(user3.id)).thenReturn(user3Wp)
 
             val user4 = UserInfo(/* id= */ 4, /* name= */ "user4", /* flags= */ 0)
             val user4Wp = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(user4.id)).thenReturn(user4Wp)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(user4.id)).thenReturn(user4Wp)
 
             userRepository.setUserInfos(listOf(user3, user4))
 
@@ -182,17 +189,18 @@
     @Test
     fun wallpaperInfo_updatesOnIntent() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.wallpaperInfo)
 
             val wp1 = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(wp1)
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(wp1)
 
             assertThat(latest).isEqualTo(wp1)
 
             // WHEN the info is new and a broadcast is sent
             val wp2 = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(wp2)
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(wp2)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
@@ -204,15 +212,16 @@
     @Test
     fun wallpaperInfo_wallpaperNotSupported_alwaysNull() =
         testScope.runTest {
-            whenever(wallpaperManager.isWallpaperSupported).thenReturn(false)
+            isWallpaperSupported = false
+            underTest = kosmos.wallpaperRepository
 
             val latest by collectLastValue(underTest.wallpaperInfo)
             assertThat(latest).isNull()
 
             // Even WHEN there *is* current wallpaper
             val wp1 = mock<WallpaperInfo>()
-            whenever(wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(wp1)
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(wp1)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
@@ -225,6 +234,8 @@
     @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD)
     fun wallpaperSupportsAmbientMode_deviceDoesNotSupport_false() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
+            secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1)
             context.orCreateTestableResources.addOverride(
                 R.bool.config_dozeSupportsAodWallpaper,
                 false,
@@ -238,6 +249,8 @@
     @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD)
     fun wallpaperSupportsAmbientMode_deviceDoesSupport_true() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
+            secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1)
             context.orCreateTestableResources.addOverride(
                 R.bool.config_dozeSupportsAodWallpaper,
                 true,
@@ -248,18 +261,34 @@
         }
 
     @Test
+    @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD)
+    fun wallpaperSupportsAmbientMode_deviceDoesSupport_settingDisabled_false() =
+        testScope.runTest {
+            underTest = kosmos.wallpaperRepository
+            secureSettings.putInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 0)
+            context.orCreateTestableResources.addOverride(
+                R.bool.config_dozeSupportsAodWallpaper,
+                true,
+            )
+
+            val latest by collectLastValue(underTest.wallpaperSupportsAmbientMode)
+            assertThat(latest).isFalse()
+        }
+
+    @Test
     @EnableFlags(SharedFlags.FLAG_EXTENDED_WALLPAPER_EFFECTS)
     fun shouldSendNotificationLayout_setExtendedEffectsWallpaper_launchSendLayoutJob() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.shouldSendFocalArea)
             val extedendEffectsWallpaper =
                 mock<WallpaperInfo>().apply {
                     whenever(this.component).thenReturn(ComponentName(context, focalAreaTarget))
                 }
 
-            whenever(wallpaperManager.getWallpaperInfoForUser(any()))
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any()))
                 .thenReturn(extedendEffectsWallpaper)
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
@@ -269,17 +298,19 @@
         }
 
     @Test
+    @Ignore("ag/31591766")
     @EnableFlags(SharedFlags.FLAG_EXTENDED_WALLPAPER_EFFECTS)
     fun shouldSendNotificationLayout_setNotExtendedEffectsWallpaper_cancelSendLayoutJob() =
         testScope.runTest {
+            underTest = kosmos.wallpaperRepository
             val latest by collectLastValue(underTest.shouldSendFocalArea)
             val extendedEffectsWallpaper =
                 mock<WallpaperInfo>().apply {
                     whenever(this.component).thenReturn(ComponentName("", focalAreaTarget))
                 }
-            whenever(wallpaperManager.getWallpaperInfoForUser(any()))
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any()))
                 .thenReturn(extendedEffectsWallpaper)
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
@@ -287,11 +318,14 @@
             assertThat(underTest.sendLockscreenLayoutJob).isNotNull()
             assertThat(underTest.sendLockscreenLayoutJob!!.isActive).isEqualTo(true)
 
-            whenever(wallpaperManager.getWallpaperInfoForUser(any())).thenReturn(UNSUPPORTED_WP)
-            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
+            whenever(kosmos.wallpaperManager.getWallpaperInfoForUser(any()))
+                .thenReturn(UNSUPPORTED_WP)
+            broadcastDispatcher.sendIntentToMatchingReceiversOnly(
                 context,
                 Intent(Intent.ACTION_WALLPAPER_CHANGED),
             )
+            runCurrent()
+
             assertThat(latest).isFalse()
             assertThat(underTest.sendLockscreenLayoutJob?.isCancelled).isEqualTo(true)
         }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractorTest.kt
new file mode 100644
index 0000000..cd6e18a
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractorTest.kt
@@ -0,0 +1,312 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.wallpapers.domain.interactor
+
+import android.content.mockedContext
+import android.content.res.Resources
+import android.graphics.PointF
+import android.graphics.RectF
+import android.util.DisplayMetrics
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.kosmos.currentValue
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.res.R
+import com.android.systemui.shade.data.repository.ShadeRepository
+import com.android.systemui.shade.data.repository.shadeRepository
+import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
+import com.android.systemui.statusbar.notification.data.repository.setActiveNotifs
+import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
+import com.android.systemui.testKosmos
+import com.android.systemui.wallpapers.data.repository.fakeWallpaperFocalAreaRepository
+import com.android.systemui.wallpapers.data.repository.wallpaperFocalAreaRepository
+import com.android.systemui.wallpapers.data.repository.wallpaperRepository
+import com.android.systemui.wallpapers.ui.viewmodel.wallpaperFocalAreaViewModel
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.advanceUntilIdle
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+
+@ExperimentalCoroutinesApi
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class WallpaperFocalAreaInteractorTest : SysuiTestCase() {
+    private val kosmos = testKosmos()
+    private val testScope = kosmos.testScope
+    lateinit var shadeRepository: ShadeRepository
+    private lateinit var mockedResources: Resources
+    lateinit var underTest: WallpaperFocalAreaInteractor
+
+    @Before
+    fun setup() {
+        MockitoAnnotations.initMocks(this)
+        mockedResources = mock<Resources>()
+        whenever(kosmos.mockedContext.resources).thenReturn(mockedResources)
+        whenever(
+                mockedResources.getFloat(
+                    Resources.getSystem()
+                        .getIdentifier(
+                            /* name= */ "config_wallpaperMaxScale",
+                            /* defType= */ "dimen",
+                            /* defPackage= */ "android",
+                        )
+                )
+            )
+            .thenReturn(2f)
+        underTest =
+            WallpaperFocalAreaInteractor(
+                applicationScope = testScope.backgroundScope,
+                context = kosmos.mockedContext,
+                wallpaperFocalAreaRepository = kosmos.fakeWallpaperFocalAreaRepository,
+                shadeRepository = kosmos.shadeRepository,
+                activeNotificationsInteractor = kosmos.activeNotificationsInteractor,
+                wallpaperRepository = kosmos.wallpaperRepository,
+            )
+    }
+
+    private fun overrideMockedResources(overrideResources: OverrideResources) {
+        val displayMetrics =
+            DisplayMetrics().apply {
+                widthPixels = overrideResources.screenWidth
+                heightPixels = overrideResources.screenHeight
+                density = 2f
+            }
+        whenever(mockedResources.displayMetrics).thenReturn(displayMetrics)
+        whenever(mockedResources.getBoolean(R.bool.center_align_focal_area_shape))
+            .thenReturn(overrideResources.centerAlignFocalArea)
+    }
+
+    @Test
+    fun focalAreaBounds_withoutNotifications_inHandheldDevices() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 1000,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = false,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(false)
+            kosmos.activeNotificationListRepository.setActiveNotifs(0)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1800F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(400F)
+
+            assertThat(bounds).isEqualTo(RectF(250f, 700F, 750F, 1400F))
+        }
+
+    @Test
+    fun focalAreaBounds_withNotifications_inHandheldDevices() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 1000,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = false,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(false)
+            kosmos.activeNotificationListRepository.setActiveNotifs(1)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1800F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(600F)
+
+            assertThat(bounds).isEqualTo(RectF(250f, 800F, 750F, 1400F))
+        }
+
+    @Test
+    fun focalAreaBounds_withNotifications_inUnfoldLandscape() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 2000,
+                    screenHeight = 1600,
+                    centerAlignFocalArea = false,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(true)
+            kosmos.activeNotificationListRepository.setActiveNotifs(1)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(600F)
+
+            assertThat(bounds).isEqualTo(RectF(500f, 600F, 1000F, 1100F))
+        }
+
+    @Test
+    fun focalAreaBounds_withoutNotifications_inUnfoldLandscape() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 2000,
+                    screenHeight = 1600,
+                    centerAlignFocalArea = false,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(true)
+            kosmos.activeNotificationListRepository.setActiveNotifs(0)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(400F)
+
+            assertThat(bounds).isEqualTo(RectF(1000f, 600F, 1500F, 1100F))
+        }
+
+    @Test
+    fun focalAreaBounds_withNotifications_inUnfoldPortrait() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 1600,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = false,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(false)
+            kosmos.activeNotificationListRepository.setActiveNotifs(1)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1800F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(600F)
+
+            assertThat(bounds).isEqualTo(RectF(400f, 800F, 1200F, 1400F))
+        }
+
+    @Test
+    fun focalAreaBounds_withoutNotifications_inUnfoldPortrait() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 1600,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = false,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(false)
+            kosmos.activeNotificationListRepository.setActiveNotifs(0)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1800F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(600F)
+
+            assertThat(bounds).isEqualTo(RectF(400f, 800F, 1200F, 1400F))
+        }
+
+    @Test
+    fun focalAreaBounds_withNotifications_inTabletLandscape() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 3000,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = true,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(true)
+            kosmos.activeNotificationListRepository.setActiveNotifs(1)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1800F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(200F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(200F)
+
+            assertThat(bounds).isEqualTo(RectF(1000f, 600F, 2000F, 1400F))
+        }
+
+    @Test
+    fun focalAreaBounds_withoutNotifications_inTabletLandscape() =
+        testScope.runTest {
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 3000,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = true,
+                )
+            )
+            val bounds by collectLastValue(underTest.wallpaperFocalAreaBounds)
+            kosmos.shadeRepository.setShadeLayoutWide(true)
+            kosmos.activeNotificationListRepository.setActiveNotifs(0)
+            kosmos.wallpaperFocalAreaRepository.setShortcutAbsoluteTop(1800F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationDefaultTop(400F)
+            kosmos.wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(400F)
+
+            assertThat(bounds).isEqualTo(RectF(1000f, 600F, 2000F, 1400F))
+        }
+
+    @Test
+    fun onTap_inFocalBounds() =
+        testScope.runTest {
+            kosmos.wallpaperFocalAreaRepository.setTapPosition(PointF(0F, 0F))
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 1000,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = false,
+                )
+            )
+            kosmos.wallpaperFocalAreaRepository.setWallpaperFocalAreaBounds(
+                RectF(250f, 700F, 750F, 1400F)
+            )
+            advanceUntilIdle()
+            assertThat(currentValue(kosmos.wallpaperFocalAreaRepository.wallpaperFocalAreaBounds))
+                .isEqualTo(RectF(250f, 700F, 750F, 1400F))
+            underTest.setTapPosition(750F, 750F)
+            assertThat(
+                    currentValue(kosmos.wallpaperFocalAreaRepository.wallpaperFocalAreaTapPosition)
+                )
+                .isEqualTo(PointF(625F, 875F))
+        }
+
+    @Test
+    fun onTap_outFocalBounds() =
+        testScope.runTest {
+            kosmos.wallpaperFocalAreaRepository.setTapPosition(PointF(0F, 0F))
+            overrideMockedResources(
+                OverrideResources(
+                    screenWidth = 1000,
+                    screenHeight = 2000,
+                    centerAlignFocalArea = false,
+                )
+            )
+            kosmos.wallpaperFocalAreaViewModel = mock()
+            kosmos.wallpaperFocalAreaRepository.setWallpaperFocalAreaBounds(
+                RectF(500F, 500F, 1000F, 1000F)
+            )
+            underTest.setTapPosition(250F, 250F)
+            assertThat(
+                    currentValue(kosmos.wallpaperFocalAreaRepository.wallpaperFocalAreaTapPosition)
+                )
+                .isEqualTo(PointF(0F, 0F))
+        }
+
+    data class OverrideResources(
+        val screenWidth: Int,
+        val screenHeight: Int,
+        val centerAlignFocalArea: Boolean,
+    )
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractorTest.kt
index 79edc22..9ca2aea 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractorTest.kt
@@ -20,7 +20,6 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository
-import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -37,18 +36,6 @@
     val underTest by lazy { kosmos.windowRootViewBlurInteractor }
 
     @Test
-    fun bouncerBlurIsAppliedImmediately() =
-        testScope.runTest {
-            val blurRadius by collectLastValue(underTest.blurRadius)
-            val isBlurOpaque by collectLastValue(underTest.isBlurOpaque)
-
-            underTest.requestBlurForBouncer(10)
-
-            assertThat(blurRadius).isEqualTo(10)
-            assertThat(isBlurOpaque).isFalse()
-        }
-
-    @Test
     fun shadeBlurIsNotAppliedWhenBouncerBlurIsActive() =
         testScope.runTest {
             kosmos.fakeKeyguardBouncerRepository.setPrimaryShow(true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModelTest.kt
index 3c4e361..a023b3c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModelTest.kt
@@ -16,13 +16,17 @@
 
 package com.android.systemui.window.ui.viewmodel
 
+import android.platform.test.annotations.EnableFlags
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
+import com.android.systemui.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.testKosmos
+import com.android.systemui.window.data.repository.fakeWindowRootViewBlurRepository
+import com.android.systemui.window.data.repository.windowRootViewBlurRepository
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runCurrent
 import kotlinx.coroutines.test.runTest
@@ -32,6 +36,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
+@EnableFlags(Flags.FLAG_BOUNCER_UI_REVAMP, Flags.FLAG_GLANCEABLE_HUB_BLURRED_BACKGROUND)
 class WindowRootViewModelTest : SysuiTestCase() {
     val kosmos = testKosmos()
     val testScope = kosmos.testScope
@@ -46,12 +51,38 @@
     @Test
     fun bouncerTransitionChangesWindowBlurRadius() =
         testScope.runTest {
-            val blurState by collectLastValue(underTest.blurState)
+            kosmos.fakeWindowRootViewBlurRepository.isBlurSupported.value = true
+            val blurRadius by collectLastValue(underTest.blurRadius)
+            val isBlurOpaque by collectLastValue(underTest.isBlurOpaque)
             runCurrent()
 
             kosmos.fakeBouncerTransitions.first().windowBlurRadius.value = 30.0f
             runCurrent()
 
-            assertThat(blurState).isEqualTo(BlurState(radius = 30, isOpaque = false))
+            assertThat(blurRadius).isEqualTo(30)
+            assertThat(isBlurOpaque).isEqualTo(false)
+        }
+
+    @Test
+    fun blurRadiusDoesNotChangeWhenBlurIsNotSupported() =
+        testScope.runTest {
+            kosmos.fakeWindowRootViewBlurRepository.isBlurSupported.value = false
+            val blurRadius by collectLastValue(underTest.blurRadius)
+            runCurrent()
+
+            kosmos.fakeBouncerTransitions.first().windowBlurRadius.value = 30.0f
+            runCurrent()
+
+            assertThat(blurRadius).isEqualTo(0f)
+
+            kosmos.fakeGlanceableHubTransitions.first().windowBlurRadius.value = 50.0f
+            runCurrent()
+
+            assertThat(blurRadius).isEqualTo(0f)
+
+            kosmos.windowRootViewBlurRepository.blurRadius.value = 60
+            runCurrent()
+
+            assertThat(blurRadius).isEqualTo(0f)
         }
 }
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt
index 2df14a8..77c18ea 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt
@@ -58,4 +58,7 @@
      * 0.0 -> clock is scaled down in the shade; previewRatio is previewSize / screenSize
      */
     fun onPickerCarouselSwiping(swipingFraction: Float)
+
+    /** Runs when an animation when the view is tapped on the lockscreen */
+    fun onFidgetTap(x: Float, y: Float)
 }
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt
index 6a9bbca1..9a83744 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt
@@ -90,6 +90,13 @@
         }
     }
 
+    fun animateFidget(x: Float, y: Float) {
+        d({ "animateFidget($str1, $str2)" }) {
+            str1 = x.toString()
+            str2 = y.toString()
+        }
+    }
+
     companion object {
         // Used when MessageBuffers are not provided by the host application
         val DEFAULT_MESSAGE_BUFFER = LogcatOnlyMessageBuffer(LogLevel.INFO)
diff --git a/packages/SystemUI/plugin_core/proguard.flags b/packages/SystemUI/plugin_core/proguard.flags
index 6240898..8b78ba4 100644
--- a/packages/SystemUI/plugin_core/proguard.flags
+++ b/packages/SystemUI/plugin_core/proguard.flags
@@ -8,4 +8,7 @@
 -keep interface com.android.systemui.plugins.annotations.** {
     *;
 }
--keep,allowshrinking,allowoptimization,allowobfuscation,allowaccessmodification @com.android.systemui.plugins.annotations.** class *
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep,allowshrinking,allowoptimization,allowobfuscation,allowaccessmodification @com.android.systemui.plugins.annotations.** class * {
+    void <init>();
+}
diff --git a/packages/SystemUI/proguard_common.flags b/packages/SystemUI/proguard_common.flags
index e152c98..2b908a7 100644
--- a/packages/SystemUI/proguard_common.flags
+++ b/packages/SystemUI/proguard_common.flags
@@ -12,8 +12,14 @@
 # Note that we restrict this to SysUISingleton classes, as other registering
 # classes should either *always* unregister or *never* register from their
 # constructor. We also keep callback class names for easier debugging.
--keepnames @com.android.systemui.util.annotations.WeaklyReferencedCallback class *
--keepnames class * extends @com.android.systemui.util.annotations.WeaklyReferencedCallback **
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keepnames @com.android.systemui.util.annotations.WeaklyReferencedCallback class * {
+  void <init>();
+}
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keepnames class * extends @com.android.systemui.util.annotations.WeaklyReferencedCallback ** {
+  void <init>();
+}
 -if @com.android.systemui.util.annotations.WeaklyReferencedCallback class *
 -keepclassmembers,allowaccessmodification @com.android.systemui.dagger.SysUISingleton class * {
   <1> *;
@@ -23,10 +29,16 @@
   <1> *;
 }
 
--keep class androidx.core.app.CoreComponentFactory
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep class androidx.core.app.CoreComponentFactory {
+  void <init>();
+}
 
 # Keep the wm shell lib
--keep class com.android.wm.shell.*
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep class com.android.wm.shell.* {
+  void <init>();
+}
 # Keep the protolog group methods that are called by the generated code
 -keepclassmembers class com.android.wm.shell.protolog.ShellProtoLogGroup {
     *;
diff --git a/packages/SystemUI/res-keyguard/values-ar/strings.xml b/packages/SystemUI/res-keyguard/values-ar/strings.xml
index fe9036b..1a49bbb 100644
--- a/packages/SystemUI/res-keyguard/values-ar/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-ar/strings.xml
@@ -36,7 +36,7 @@
     <string name="keyguard_plugged_in_charging_limited" msgid="5369697538556777542">"‫<xliff:g id="PERCENTAGE">%s</xliff:g> • الشحن معلّق لحماية البطارية"</string>
     <string name="keyguard_plugged_in_incompatible_charger" msgid="6384203333154532125">"‫<xliff:g id="PERCENTAGE">%s</xliff:g> • يُرجى فحص ملحق الشحن."</string>
     <string name="keyguard_network_locked_message" msgid="407096292844868608">"الشبكة مؤمّنة"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="685029586173458728">"‏لا تتوفر شريحة SIM."</string>
+    <string name="keyguard_missing_sim_message_short" msgid="685029586173458728">"‏لا تتوفر شريحة SIM"</string>
     <string name="keyguard_permanent_disabled_sim_message_short" msgid="3955052454216046100">"‏شريحة SIM غير قابلة للاستخدام."</string>
     <string name="keyguard_sim_locked_message" msgid="7095293254587575270">"‏شريحة SIM مُقفَلة."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="2503428315518592542">"‏شريحة SIM مُقفَلة برمز PUK."</string>
diff --git a/packages/SystemUI/res-keyguard/values-bs/strings.xml b/packages/SystemUI/res-keyguard/values-bs/strings.xml
index baef51a..249cc6c 100644
--- a/packages/SystemUI/res-keyguard/values-bs/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-bs/strings.xml
@@ -34,7 +34,7 @@
     <string name="keyguard_plugged_in_charging_fast" msgid="4386594091107340426">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Brzo punjenje"</string>
     <string name="keyguard_plugged_in_charging_slowly" msgid="217655355424210">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Sporo punjenje"</string>
     <string name="keyguard_plugged_in_charging_limited" msgid="5369697538556777542">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Punjenje je na čekanju radi zaštite baterije"</string>
-    <string name="keyguard_plugged_in_incompatible_charger" msgid="6384203333154532125">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Provjera dodatne opreme za punjenje"</string>
+    <string name="keyguard_plugged_in_incompatible_charger" msgid="6384203333154532125">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Provjera dodatka za punjenje"</string>
     <string name="keyguard_network_locked_message" msgid="407096292844868608">"Mreža je zaključana"</string>
     <string name="keyguard_missing_sim_message_short" msgid="685029586173458728">"Nema SIM-a"</string>
     <string name="keyguard_permanent_disabled_sim_message_short" msgid="3955052454216046100">"Neupotrebljiv SIM."</string>
diff --git a/packages/SystemUI/res-keyguard/values-es/strings.xml b/packages/SystemUI/res-keyguard/values-es/strings.xml
index 2d18c1c..33a7346 100644
--- a/packages/SystemUI/res-keyguard/values-es/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-es/strings.xml
@@ -25,7 +25,7 @@
     <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"Introduce tu patrón"</string>
     <string name="keyguard_enter_pattern" msgid="7616595160901084119">"Dibuja el patrón"</string>
     <string name="keyguard_enter_your_password" msgid="7225626204122735501">"Introduce tu contraseña"</string>
-    <string name="keyguard_enter_password" msgid="6483623792371009758">"Escribe la contraseña"</string>
+    <string name="keyguard_enter_password" msgid="6483623792371009758">"Introduce la contraseña"</string>
     <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"Tarjeta no válida."</string>
     <string name="keyguard_charged" msgid="5478247181205188995">"Cargado"</string>
     <string name="keyguard_plugged_in_wireless" msgid="2537874724955057383">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Cargando sin cables"</string>
diff --git a/packages/SystemUI/res-keyguard/values-kn/strings.xml b/packages/SystemUI/res-keyguard/values-kn/strings.xml
index 7560621..55d9374 100644
--- a/packages/SystemUI/res-keyguard/values-kn/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-kn/strings.xml
@@ -23,7 +23,7 @@
     <string name="keyguard_enter_your_pin" msgid="5429932527814874032">"ನಿಮ್ಮ ಪಿನ್ ನಮೂದಿಸಿ"</string>
     <string name="keyguard_enter_pin" msgid="8114529922480276834">"ಪಿನ್ ನಮೂದಿಸಿ"</string>
     <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"ನಿಮ್ಮ ಪ್ಯಾಟರ್ನ್ ನಮೂದಿಸಿ"</string>
-    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಬಿಡಿಸಿ"</string>
+    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಬರೆಯಿರಿ"</string>
     <string name="keyguard_enter_your_password" msgid="7225626204122735501">"ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
     <string name="keyguard_enter_password" msgid="6483623792371009758">"ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
     <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"ಅಮಾನ್ಯ ಕಾರ್ಡ್."</string>
diff --git a/packages/SystemUI/res-keyguard/values-mk/strings.xml b/packages/SystemUI/res-keyguard/values-mk/strings.xml
index 6c57d89..61a7f8f 100644
--- a/packages/SystemUI/res-keyguard/values-mk/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-mk/strings.xml
@@ -23,7 +23,7 @@
     <string name="keyguard_enter_your_pin" msgid="5429932527814874032">"Внесете го PIN-кодот"</string>
     <string name="keyguard_enter_pin" msgid="8114529922480276834">"Внесете PIN"</string>
     <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"Внесете ја шемата"</string>
-    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"Нацртај шема"</string>
+    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"Нацртајте шема"</string>
     <string name="keyguard_enter_your_password" msgid="7225626204122735501">"Внесете ја лозинката"</string>
     <string name="keyguard_enter_password" msgid="6483623792371009758">"Внесете лозинка"</string>
     <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"Неважечка картичка."</string>
diff --git a/packages/SystemUI/res-keyguard/values-sl/strings.xml b/packages/SystemUI/res-keyguard/values-sl/strings.xml
index c761799..e5c3a35 100644
--- a/packages/SystemUI/res-keyguard/values-sl/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-sl/strings.xml
@@ -36,7 +36,7 @@
     <string name="keyguard_plugged_in_charging_limited" msgid="5369697538556777542">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Zaradi zaščite baterije je polnjenje na čakanju"</string>
     <string name="keyguard_plugged_in_incompatible_charger" msgid="6384203333154532125">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Preverite pripomoček za polnjenje"</string>
     <string name="keyguard_network_locked_message" msgid="407096292844868608">"Omrežje je zaklenjeno"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="685029586173458728">"Ni kartice SIM."</string>
+    <string name="keyguard_missing_sim_message_short" msgid="685029586173458728">"Ni kartice SIM"</string>
     <string name="keyguard_permanent_disabled_sim_message_short" msgid="3955052454216046100">"Kartica SIM je neuporabna."</string>
     <string name="keyguard_sim_locked_message" msgid="7095293254587575270">"Kartica SIM je zaklenjena."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="2503428315518592542">"Kartica SIM je zaklenjena s kodo PUK."</string>
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/res/layout/input_view.xml b/packages/SystemUI/res/drawable/clipboard_minimized_background_inset.xml
similarity index 78%
rename from services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/res/layout/input_view.xml
rename to packages/SystemUI/res/drawable/clipboard_minimized_background_inset.xml
index f229270..1ba637f 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/res/layout/input_view.xml
+++ b/packages/SystemUI/res/drawable/clipboard_minimized_background_inset.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2022 The Android Open Source Project
+  ~ Copyright (C) 2025 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,9 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-
-<FrameLayout
+<inset
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/input"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"/>
\ No newline at end of file
+    android:drawable="@drawable/clipboard_minimized_background"
+    android:inset="4dp"/>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/magic_action_button_background.xml b/packages/SystemUI/res/drawable/magic_action_button_background.xml
new file mode 100644
index 0000000..7199b2d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/magic_action_button_background.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+    android:color="@color/notification_ripple_untinted_color">
+    <item>
+        <inset
+            android:insetBottom="8dp"
+            android:insetLeft="0dp"
+            android:insetRight="0dp"
+            android:insetTop="8dp">
+            <shape android:shape="rectangle">
+                <corners android:radius="@dimen/magic_action_button_corner_radius" />
+                <solid android:color="@androidprv:color/materialColorPrimaryContainer" />
+                <stroke
+                    android:width="@dimen/magic_action_button_outline_stroke_width"
+                    android:color="@androidprv:color/materialColorOutlineVariant" />
+            </shape>
+        </inset>
+    </item>
+</ripple>
diff --git a/packages/SystemUI/res/drawable/media_output_item_background.xml b/packages/SystemUI/res/drawable/media_output_item_background.xml
index ea77f1b..b454b91 100644
--- a/packages/SystemUI/res/drawable/media_output_item_background.xml
+++ b/packages/SystemUI/res/drawable/media_output_item_background.xml
@@ -17,6 +17,6 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
     <corners
-        android:radius="16dp"/>
+        android:radius="@dimen/media_output_dialog_background_radius"/>
     <solid android:color="@color/media_dialog_item_background" />
 </shape>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml
index 91cd019..43808f2 100644
--- a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml
+++ b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml
@@ -149,9 +149,9 @@
         style="@style/TextAppearance.AuthCredential.Indicator"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginTop="24dp"
         android:layout_marginHorizontal="24dp"
-        android:accessibilityLiveRegion="assertive"
+        android:layout_marginTop="24dp"
+        android:accessibilityLiveRegion="polite"
         android:fadingEdge="horizontal"
         android:gravity="center_horizontal"
         android:scrollHorizontally="true"
diff --git a/packages/SystemUI/res/layout/clipboard_overlay.xml b/packages/SystemUI/res/layout/clipboard_overlay.xml
index 448b3e7..915563b 100644
--- a/packages/SystemUI/res/layout/clipboard_overlay.xml
+++ b/packages/SystemUI/res/layout/clipboard_overlay.xml
@@ -171,12 +171,12 @@
         android:layout_height="wrap_content"
         android:visibility="gone"
         android:elevation="7dp"
-        android:padding="8dp"
+        android:padding="12dp"
         app:layout_constraintBottom_toTopOf="@id/indication_container"
         app:layout_constraintStart_toStartOf="parent"
-        android:layout_marginStart="@dimen/overlay_action_container_margin_horizontal"
-        android:layout_marginBottom="@dimen/overlay_action_container_margin_bottom"
-        android:background="@drawable/clipboard_minimized_background">
+        android:layout_marginStart="4dp"
+        android:layout_marginBottom="2dp"
+        android:background="@drawable/clipboard_minimized_background_inset">
         <ImageView
             android:src="@drawable/ic_content_paste"
             android:tint="?attr/overlayButtonTextColor"
diff --git a/packages/SystemUI/res/layout/combined_qs_header.xml b/packages/SystemUI/res/layout/combined_qs_header.xml
index b9ef88e..32407c6 100644
--- a/packages/SystemUI/res/layout/combined_qs_header.xml
+++ b/packages/SystemUI/res/layout/combined_qs_header.xml
@@ -147,6 +147,7 @@
                 android:id="@+id/batteryRemainingIcon"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:visibility="gone"
                 app:textAppearance="@style/TextAppearance.QS.Status" />
         </LinearLayout>
     </FrameLayout>
diff --git a/packages/SystemUI/res/layout/magic_action_button.xml b/packages/SystemUI/res/layout/magic_action_button.xml
index 59392ef..82d8d70 100644
--- a/packages/SystemUI/res/layout/magic_action_button.xml
+++ b/packages/SystemUI/res/layout/magic_action_button.xml
@@ -1,19 +1,16 @@
 <Button xmlns:android="http://schemas.android.com/apk/res/android"
-        style="@android:style/Widget.Material.Button"
-        android:stateListAnimator="@null"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:minWidth="0dp"
-        android:minHeight="@dimen/smart_reply_button_min_height"
-        android:paddingVertical="@dimen/smart_reply_button_padding_vertical"
-        android:background="@drawable/smart_reply_button_background"
-        android:gravity="center"
-        android:fontFamily="roboto-medium"
-        android:textSize="@dimen/smart_reply_button_font_size"
-        android:lineSpacingExtra="@dimen/smart_reply_button_line_spacing_extra"
-        android:textColor="@color/smart_reply_button_text"
-        android:paddingStart="@dimen/smart_reply_button_action_padding_left"
-        android:paddingEnd="@dimen/smart_reply_button_padding_horizontal"
-        android:drawablePadding="@dimen/smart_action_button_icon_padding"
-        android:textStyle="normal"
-        android:ellipsize="none"/>
+    style="@android:style/Widget.Material.Button"
+    android:layout_width="wrap_content"
+    android:layout_height="@dimen/magic_action_button_touch_target_height"
+    android:background="@drawable/magic_action_button_background"
+    android:drawablePadding="@dimen/magic_action_button_drawable_padding"
+    android:ellipsize="none"
+    android:fontFamily="google-sans-flex"
+    android:gravity="center"
+    android:minWidth="0dp"
+    android:paddingHorizontal="@dimen/magic_action_button_padding_horizontal"
+    android:paddingVertical="@dimen/magic_action_button_inset_vertical"
+    android:stateListAnimator="@null"
+    android:textColor="@color/magic_action_button_text_color"
+    android:textSize="@dimen/magic_action_button_font_size"
+    android:textStyle="normal" />
diff --git a/packages/SystemUI/res/layout/ongoing_activity_chip_content.xml b/packages/SystemUI/res/layout/ongoing_activity_chip_content.xml
index 6f42286..b66a88a 100644
--- a/packages/SystemUI/res/layout/ongoing_activity_chip_content.xml
+++ b/packages/SystemUI/res/layout/ongoing_activity_chip_content.xml
@@ -43,9 +43,6 @@
              ongoing_activity_chip_short_time_delta] will ever be shown at one time. -->
 
         <!-- Shows a timer, like 00:01. -->
-        <!-- Don't use the LimitedWidth style for the timer because the end of the timer is often
-             the most important value. ChipChronometer has the correct logic for when the timer is
-             too large for the space allowed. -->
         <com.android.systemui.statusbar.chips.ui.view.ChipChronometer
             android:id="@+id/ongoing_activity_chip_time"
             style="@style/StatusBar.Chip.Text"
@@ -54,14 +51,14 @@
         <!-- Shows generic text. -->
         <com.android.systemui.statusbar.chips.ui.view.ChipTextView
             android:id="@+id/ongoing_activity_chip_text"
-            style="@style/StatusBar.Chip.Text.LimitedWidth"
+            style="@style/StatusBar.Chip.Text"
             android:visibility="gone"
             />
 
         <!-- Shows a time delta in short form, like "15min" or "1hr". -->
         <com.android.systemui.statusbar.chips.ui.view.ChipDateTimeView
             android:id="@+id/ongoing_activity_chip_short_time_delta"
-            style="@style/StatusBar.Chip.Text.LimitedWidth"
+            style="@style/StatusBar.Chip.Text"
             android:visibility="gone"
             />
 
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index b106ad5..97c53e7 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -26,7 +26,7 @@
     android:layout_height="match_parent"
     android:background="@android:color/transparent">
 
-    <com.android.systemui.common.ui.view.LongPressHandlingView
+    <com.android.systemui.common.ui.view.TouchHandlingView
         android:id="@+id/keyguard_long_press"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
diff --git a/packages/SystemUI/res/layout/system_icons.xml b/packages/SystemUI/res/layout/system_icons.xml
index c28dc50..bb99d58 100644
--- a/packages/SystemUI/res/layout/system_icons.xml
+++ b/packages/SystemUI/res/layout/system_icons.xml
@@ -34,12 +34,17 @@
         android:orientation="horizontal"/>
 
     <!-- PaddingEnd is added to balance hover padding, compensating for paddingStart in statusIcons.
-         See b/339589733 -->
+         See b/339589733.
+
+         Default visibility is now "gone" to make space for the new battery icon
+         -->
     <com.android.systemui.battery.BatteryMeterView android:id="@+id/battery"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:clipToPadding="false"
         android:clipChildren="false"
         android:paddingEnd="@dimen/status_bar_battery_end_padding"
+        android:visibility="gone"
         systemui:textAppearance="@style/TextAppearance.StatusBar.Clock" />
+
 </LinearLayout>
diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml
index 67f620f..8ad99ab 100644
--- a/packages/SystemUI/res/layout/volume_dialog.xml
+++ b/packages/SystemUI/res/layout/volume_dialog.xml
@@ -16,7 +16,7 @@
 <androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/volume_dialog_root"
+    android:id="@+id/volume_dialog"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:alpha="0"
diff --git a/packages/SystemUI/res/layout/volume_ringer_button.xml b/packages/SystemUI/res/layout/volume_ringer_button.xml
index 6748cfa..4e3c8cc 100644
--- a/packages/SystemUI/res/layout/volume_ringer_button.xml
+++ b/packages/SystemUI/res/layout/volume_ringer_button.xml
@@ -13,20 +13,13 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
+<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content" >
-
-    <ImageButton
-        android:id="@+id/volume_drawer_button"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:padding="@dimen/volume_dialog_ringer_drawer_button_icon_radius"
-        android:contentDescription="@string/volume_ringer_mode"
-        android:gravity="center"
-        android:tint="@androidprv:color/materialColorOnSurface"
-        android:src="@drawable/volume_ringer_item_bg"
-        android:background="@drawable/volume_ringer_item_bg"/>
-
-</FrameLayout>
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/volume_ringer_item_bg"
+    android:contentDescription="@string/volume_ringer_mode"
+    android:gravity="center"
+    android:padding="@dimen/volume_dialog_ringer_drawer_button_icon_radius"
+    android:src="@drawable/volume_ringer_item_bg"
+    android:tint="@androidprv:color/materialColorOnSurface" />
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 6c86200..b8b69b6 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batterypersentasie is onbekend."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Gekoppel aan <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Gekoppel aan <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Vou groep uit."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Maak app oop."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nie gekoppel nie."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Swerwing"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Af"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Verken sentrummodus"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Kry toegang tot jou gunstelinglegstukke en -skermbeskermers terwyl jy laai."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Kom ons begin"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Wys jou gunstelingsluimerskerms tydens die laaiproses"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Wissel gebruiker"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"aftrekkieslys"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle programme en data in hierdie sessie sal uitgevee word."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Word aan die bokant van gesprekskennisgewings en as \'n profielfoto op sluitskerm gewys, verskyn as \'n borrel, onderbreek Moenie Steur Nie"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioriteit"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> steun nie gesprekskenmerke nie"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Terugvoer"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Maak toe"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Moenie weer wys nie"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hierdie kennisgewings kan nie gewysig word nie."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Wissel taaisleutels"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Wissel stadige sleutels"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Wissel stemtoegang"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Wissel TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Wissel vergroting"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktiveer Hardoplees"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Moenie Steur Nie"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Volumeknoppieskortpad"</string>
     <string name="battery" msgid="769686279459897127">"Battery"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Gebruik vingerafdruk om oop te maak"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Stawing word vereis. Raak die vingerafdruksensor om te staaf."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Oproep aan die gang"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Nog besig"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobiele data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Gekoppel"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Tydelik gekoppel"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Voubare toestel word ontvou"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Voubare toestel word omgekeer"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Voorste skerm is aangeskakel"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"gevou"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"oopgevou"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index fc92f4b..c89ea75 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"የባትሪ መቶኛ አይታወቅም።"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"ከ<xliff:g id="BLUETOOTH">%s</xliff:g> ጋር ተገናኝቷል።"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"ከ<xliff:g id="CAST">%s</xliff:g> ጋር ተገናኝቷል።"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ቡድንን ዘርጋ።"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"መተግበሪያ ክፈት።"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"አልተገናኘም።"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"በማዛወር ላይ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ጠፍቷል"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"የመገናኛ ሁነታን ያስሱ"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ኃይል በሚሞሉበት ወቅት የእርስዎን ተወዳጅ ምግብሮች እና ማያ ገፅ ቆጣቢዎችን ይድረሱ።"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"እንሂድ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ኃይል በሚሞሉበት ጊዜ ተወዳጅ የገፀ ማያ አሳራፊዎችዎን ያሳዩ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ተጠቃሚ ቀይር"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ወደታች ተጎታች ምናሌ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"በዚህ ክፍለ-ጊዜ ውስጥ ያሉ ሁሉም መተግበሪያዎች እና ውሂብ ይሰረዛሉ።"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"በውይይት ማሳወቂያዎች አናት ላይ እና በማያ ገፅ መቆለፊያ ላይ እንደ መገለጫ ምስል ይታያል፣ እንደ አረፋ ሆኖ ይታያል፣ አትረብሽን ያቋርጣል"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ቅድሚያ"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> የውይይት ባህሪያትን አይደግፍም"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ግብረመልስ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"አሰናብት"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ዳግም አታሳይ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"እነዚህ ማሳወቂያዎች ሊሻሻሉ አይችሉም።"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"ተጣባቂ ቁልፎችን ይቀያይሩ"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"ቀርፋፋ ቁልፎችን ይቀያይሩ"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"የድምፅ መዳረሻን ይቀያይሩ"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBackን ይቀያይሩ"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"ማጉላት ይቀያይሩ"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"ለመናገር ምረጥን ያግብሩ"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"አትረብሽ"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"የድምፅ አዝራሮች አቋራጭ"</string>
     <string name="battery" msgid="769686279459897127">"ባትሪ"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ለመክፈት የጣት አሻራ ይጠቀሙ"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ማረጋገጥ ያስፈልጋል። ለማረጋገጥ የጣት አሻራ ዳሳሹን ይንኩ።"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"እየተካሄደ ያለ ጥሪ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"በመካሄድ ላይ ያለ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"ተገናኝቷል"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"በጊዜያዊነት ተገናኝቷል"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"መታጠፍ የሚችል መሣሪያ እየተዘረጋ ነው"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"መታጠፍ የሚችል መሣሪያ እየተገለበጠ ነው"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"የፊት ለፊት ማያ ገፅ በርቷል"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"የታጠፈ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"የተዘረጋ"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 7245e93..962f1c9 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -142,7 +142,7 @@
     <string name="share_to_app_stop_dialog_title_generic" msgid="9079161538135843648">"هل تريد إيقاف المشاركة؟"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"تتم حاليًا مشاركة محتوى الشاشة بأكمله مع \"<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>\""</string>
     <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"تتم حاليًا مشاركة محتوى الشاشة بأكمله مع تطبيق"</string>
-    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"تتم حاليًا مشاركة محتوى \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\""</string>
+    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"تتم حاليًا مشاركة شاشة تطبيق \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\""</string>
     <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"تتم حاليًا مشاركة محتوى تطبيق"</string>
     <string name="share_to_app_stop_dialog_message_generic" msgid="7622174291691249392">"تتم حاليًا مشاركة المحتوى مع تطبيق"</string>
     <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"إيقاف المشاركة"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"نسبة شحن البطارية غير معروفة."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"متصل بـ <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"تم الاتصال بـ <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"سيتم توسيع المجموعة."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"سيتم فتح التطبيق."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"غير متصل."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"التجوال"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"غير مفعّلة"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"التعرُّف على \"وضع الإرساء\""</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"يمكنك الاطّلاع على التطبيقات المصغّرة وشاشات الاستراحة المفضَّلة لديك أثناء شحن الجهاز."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"لنبدأ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"سيتم عرض شاشات الاستراحة المفضَّلة أثناء شحن الجهاز"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"تبديل المستخدم"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"القائمة المنسدلة"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"سيتم حذف كل التطبيقات والبيانات في هذه الجلسة."</string>
@@ -566,17 +563,17 @@
     <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"ستتمكن الخدمة التي تقدّم هذه الوظيفة من الوصول إلى كل المحتوى المعروض على شاشتك أو الذي يتم تشغيله على جهازك أثناء التسجيل أو البثّ. ويشمل ذلك معلومات، مثل كلمات المرور وتفاصيل الدفع والصور والرسائل والمقاطع الصوتية التي تشغِّلها."</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"مشاركة محتوى تطبيق أو تسجيله"</string>
     <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"هل تريد مشاركة الشاشة مع تطبيق \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\"؟"</string>
-    <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"مشاركة تطبيق واحد"</string>
+    <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"مشاركة شاشة تطبيق واحد"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_single_app (2308901434964846084) -->
     <skip />
     <string name="screen_share_permission_dialog_option_entire_screen" msgid="4493174362775038997">"مشاركة الشاشة بأكملها"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"أثناء مشاركة محتوى الشاشة بالكامل، سيكون كل المحتوى المعروض على شاشتك مرئيًا لتطبيق \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\". لذا يُرجى توخي الحذر بشأن المعلومات، مثل كلمات المرور وتفاصيل الدفع والرسائل والصور وملفات الصوت والفيديو."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"أثناء مشاركة محتوى تطبيق، سيكون كل المحتوى المعروض أو الذي يتم تشغيله في ذلك التطبيق مرئيًا لتطبيق \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\". لذا يُرجى توخي الحذر بشأن المعلومات، مثل كلمات المرور وتفاصيل الدفع والرسائل والصور وملفات الصوت والفيديو."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"ستتم مشاركة كل المحتوى المعروض أو المشغَّل على شاشة هذا التطبيق مع تطبيق \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\"، لذا يُرجى توخي الحذر بشأن المعلومات الظاهرة على الشاشة، مثل كلمات المرور وتفاصيل الدفع والرسائل والصور والمقاطع الصوتية والفيديوهات."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"مشاركة الشاشة"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"تم إيقاف هذا الخيار من خلال تطبيق <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"اختيار تطبيق لمشاركة محتواه"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"يُرجى اختيار تطبيق لمشاركة محتواه"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"هل تريد بث محتوى الشاشة؟"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"بث محتوى تطبيق واحد"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"بث محتوى الشاشة بالكامل"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"تظهر في أعلى إشعارات المحادثات وكصورة ملف شخصي على شاشة القفل وتظهر على شكل فقاعة لمقاطعة ميزة \"عدم الإزعاج\"."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"الأولوية"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"لا يدعم تطبيق <xliff:g id="APP_NAME">%1$s</xliff:g> ميزات المحادثات."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"الملاحظات"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"إغلاق"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"عدم الإظهار مرة أخرى"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"يتعذّر تعديل هذه الإشعارات."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"يمكنك استخدام بصمة الإصبع للفتح"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"المصادقة مطلوبة. المس مستشعر بصمات الإصبع للمصادقة."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"مكالمة جارية"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"مستمر"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"بيانات الجوّال"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"متصلة بالإنترنت"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"متصلة مؤقتًا"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"جهاز قابل للطي يجري فتحه"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"جهاز قابل للطي يجري قلبه"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"تم تفعيل الشاشة الأمامية"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"مطوي"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"غير مطوي"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"‫%1$s / %2$s"</string>
@@ -1420,7 +1419,7 @@
     <string name="assistant_attention_content_description" msgid="4166330881435263596">"تم رصد تواجد المستخدم."</string>
     <string name="set_default_notes_app_toast_content" msgid="2812374329662610753">"يمكنك ضبط تطبيق تدوين الملاحظات التلقائي في \"الإعدادات\"."</string>
     <string name="install_app" msgid="5066668100199613936">"تثبيت التطبيق"</string>
-    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"التمرير سريعًا للأعلى للمتابعة"</string>
+    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"مرِّر سريعًا للأعلى للمتابعة"</string>
     <string name="connected_display_dialog_start_mirroring" msgid="6237895789920854982">"هل تريد بث محتوى جهازك على الشاشة الخارجية؟"</string>
     <string name="connected_display_dialog_dual_display_stop_warning" msgid="4174707498892447947">"سيتم النسخ المطابق لمحتوى الشاشة الداخلية، وإيقاف الشاشة الأمامية."</string>
     <string name="mirror_display" msgid="2515262008898122928">"بث المحتوى على الشاشة"</string>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 407897a..b88e9e9 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"বেটাৰীৰ চাৰ্জৰ শতাংশ অজ্ঞাত।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>ৰ লগত সংযোগ কৰা হ’ল।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>ত সংযোগ হ’ল।"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"গোট বিস্তাৰ কৰক।"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"এপ্লিকেশ্বনটো খোলক।"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"সংযোগ হৈ থকা নাই।"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ৰ\'মিং"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"অফ অৱস্থাত আছে"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"হাব ম’ড অন্বেষণ কৰক"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"চাৰ্জ কৰি থাকোঁতে আপোনাৰ প্ৰিয় ৱিজেট আৰু স্ক্ৰীন ছেভাৰসমূহ এক্সেছ কৰক।"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"আৰম্ভ কৰোঁ আহক"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"চাৰ্জ কৰাৰ সময়ত আপোনাৰ প্ৰিয় স্ক্ৰীনছেভাৰ দেখুৱাওক"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ব্যৱহাৰকাৰী সলনি কৰক"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"পুল-ডাউনৰ মেনু"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"এই ছেশ্বনৰ আটাইবোৰ এপ্ আৰু ডেটা মচা হ\'ব।"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"বাৰ্তালাপৰ জাননীৰ শীৰ্ষত আৰু প্ৰ’ফাইল চিত্ৰ হিচাপে লক স্ক্ৰীনত দেখুৱায়, এটা বাবল হিচাপে দেখা পোৱা যায়, অসুবিধা নিদিব ম’ডত ব্যাঘাত জন্মায়"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"অগ্ৰাধিকাৰ"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ বাৰ্তালাপৰ সুবিধাসমূহ সমৰ্থন নকৰে"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"মতামত"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"অগ্ৰাহ্য কৰক"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"পুনৰাই নেদেখুৱাব"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই জাননীসমূহ সংশোধন কৰিব নোৱাৰি।"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"খুলিবলৈ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰক"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"বিশ্বাসযোগ্যতা প্ৰমাণীকৰণৰ আৱশ্যক। বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ কৰিবলৈ ফিংগাৰপ্ৰিণ্ট ছেন্সৰটো স্পৰ্শ কৰক।"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"চলি থকা কল"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"চলিত"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ম’বাইল ডেটা"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"সংযোজিত হৈ আছে"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"অস্থায়ীভাৱে সংযোগ কৰা হৈছে"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"জপাব পৰা ডিভাইচৰ জাপ খুলি থকা হৈছে"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"জপাব পৰা ডিভাইচৰ ওলোটাই থকা হৈছে"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"সন্মুখৰ স্ক্ৰীনখন অন কৰা হৈছে"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ফ’ল্ড কৰা"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"আনফ’ল্ড কৰা"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index 13c82e8..e629969 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batareyanın faizi naməlumdur."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> üzərindən qoşuldu."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> cihazına qoşulub."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Qrupu genişləndirin."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Tətbiqi açın."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Qoşulu deyil."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Rouminq"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Deaktiv"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hab rejimini araşdırın"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Şarj edərkən sevimli vidcet və ekran qoruyucularınıza daxil olun."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Başlayaq"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Şarj edilərkən sevimli ekran qoruyucularınızı göstərin"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"aşağı çəkilən menyu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Bu sessiyada bütün tətbiqlər və data silinəcək."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Söhbət bildirişlərinin yuxarısında və kilid ekranında profil şəkli kimi göstərilir, baloncuq kimi görünür, Narahat Etməyin rejimini kəsir"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> söhbət funksiyalarını dəstəkləmir"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Rəy"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Rədd edin"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Yenidən göstərməyin"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirişlər dəyişdirilə bilməz."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Əvəzedici düymələri aktiv/deaktiv edin"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Asta düymələri aktiv/deaktiv edin"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Səs girişini aktiv/deaktiv edin"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Talkback-i aktiv/deaktiv edin"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Böyütməni aktiv/deaktiv edin"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Basıb dinləyin funksiyasını aktivləşdirin"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Narahat Etməyin"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Səs düymələri qısayolu"</string>
     <string name="battery" msgid="769686279459897127">"Batareya"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Açmaq üçün barmaq izindən istifadə edin"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Doğrulanma tələb olunur. Doğrulamaq üçün barmaq izi sensoruna toxunun."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Davam edən zəng"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Davam edir"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobil data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Qoşulub"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Müvəqqəti qoşulub"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Qatlana bilən cihaz açılır"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Qatlana bilən cihaz fırladılır"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Ön ekran aktiv edildi"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"qatlanmış"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"açıq"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index b63e553..1970144 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -109,14 +109,14 @@
     <string name="screenrecord_title" msgid="4257171601439507792">"Snimač ekrana"</string>
     <string name="screenrecord_background_processing_label" msgid="7244617554884238898">"Obrađujemo video snimka ekrana"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Obaveštenje o sesiji snimanja ekrana je aktivno"</string>
-    <string name="screenrecord_permission_dialog_title" msgid="7415261783188749730">"Želite da snimite ekran?"</string>
-    <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"Snimi jednu aplikaciju"</string>
+    <string name="screenrecord_permission_dialog_title" msgid="7415261783188749730">"Želite da snimate ekran?"</string>
+    <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"Snimaj jednu aplikaciju"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen" msgid="4882406311415082016">"Snimi ovaj ekran"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen_for_display" msgid="4169494703993148253">"Snimi %s"</string>
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"Kada snimate ceo ekran, snima se sve što je na njemu. Zato pazite na lozinke, informacije o plaćanju, poruke, slike, audio i video sadržaj."</string>
     <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"Kada snimate aplikaciju, snima se sav sadržaj koji se prikazuje ili pušta u njoj. Zato pazite na lozinke, informacije o plaćanju, poruke, slike, audio i video sadržaj."</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"Snimi ekran"</string>
-    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Odaberite aplikaciju koju želite da snimite"</string>
+    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Odaberite aplikaciju za snimanje"</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Snimaj zvuk"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Zvuk uređaja"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Zvuk sa uređaja, na primer, muzika, pozivi i melodije zvona"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Procenat napunjenosti baterije nije poznat."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Povezani ste sa <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Povezani smo sa uređajem <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Proširite grupu."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Otvorite aplikaciju."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nije povezano."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Isključeno"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Istražite režim centra"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Pristupajte omiljenim vidžetima i čuvarima ekrana tokom punjenja."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Idemo"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Prikazujte omiljene čuvare ekrana tokom punjenja"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Zameni korisnika"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"padajući meni"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Sve aplikacije i podaci u ovoj sesiji će biti izbrisani."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Kada delite aplikaciju, <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vidi sav sadržaj koji se prikazuje ili pušta u njoj. Zato pazite na lozinke, informacije o plaćanju, poruke, slike, audio i video sadržaj."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Deli ekran"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je onemogućila ovu opciju"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Odaberite aplikaciju koju želite da delite"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Odaberite aplikaciju za deljenje"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"Želite da prebacite ekran?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Prebaci jednu aplikaciju"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Prebaci ceo ekran"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikazuje se u vrhu obaveštenja o konverzacijama i kao slika profila na zaključanom ekranu, pojavljuje se kao oblačić, prekida režim Ne uznemiravaj"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritetno"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava funkcije konverzacije"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Odbaci"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ne prikazuj ponovo"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ova obaveštenja ne mogu da se menjaju."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Otvorite pomoću otiska prsta"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Potrebna je potvrda identiteta. Dodirnite senzor za otisak prsta da biste potvrdili identitet."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Poziv je u toku"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Aktivno"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobilni podaci"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Privremeno povezano"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Uređaj na preklop se otvara"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Uređaj na preklop se obrće"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Prednji ekran je uključen"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Prevucite da biste koristili unutrašnji ekran"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"zatvoreno"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"otvoreno"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index cbb8268..afbac9f 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Працэнт зараду акумулятара невядомы."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Падлучаны да <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ёсць падключэнне да <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Разгарнуць групу."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Адкрыць праграму."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Няма падключэння."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роўмінг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Выключана"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Паспрабуйце рэжым хаба"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Доступ да любімых віджэтаў і заставак падчас зарадкі."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Пачаць"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Паказваць падчас зарадкі любімую застаўку"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Перайсці да іншага карыстальніка"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"высоўнае меню"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Усе праграмы і даныя гэтага сеанса будуць выдалены."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"З’яўляецца ўверсе раздзела размоў як усплывальнае апавяшчэнне, якое перарывае рэжым \"Не турбаваць\" і паказвае на экране блакіроўкі відарыс профілю"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Прыярытэт"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не падтрымлівае функцыі размовы"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Водгук"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Закрыць"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Больш не паказваць"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Гэтыя апавяшчэнні нельга змяніць."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Каб адкрыць, скарыстайце адбітак пальца"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Патрабуецца аўтэнтыфікацыя. Дакраніцеся да сканера адбіткаў пальцаў."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Актыўны выклік"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Бягучае дзеянне"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мабільная перадача даных"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Падключана"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Падключана часова"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Складная прылада ў раскладзеным выглядзе"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Перавернутая складная прылада"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Пярэдні экран уключаны"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Правядзіце пальцам, каб выкарыстоўваць унутраны экран"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"складзена"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"раскладзена"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 31e4d33..77542de 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Процентът на батерията е неизвестен."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Има връзка с <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Установена е връзка с/ъс <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Разгъване на групата."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Отваряне на приложението."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Няма връзка."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роуминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Изключени"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Разглеждане на режима „Контролен център“"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Използвайте любимите си приспособления и скрийнсейвъри по време на зареждане."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Начало"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Показване на любимите ви скрийнсейвъри при зареждане"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Превключване между потребителите"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"падащо меню"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Всички приложения и данни в тази сесия ще бъдат изтрити."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Показва се в горната част на известията за разговори и като снимка на потребителския профил на заключения екран, изглежда като балонче, прекъсва режима „Не безпокойте“"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Приоритет"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не поддържа функциите за разговор"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Отзиви"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Отхвърляне"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Да не се показва отново"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Тези известия не могат да бъдат променяни."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Използвайте отпечатък за отваряне"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Изисква се удостоверяване на самоличността. За целта докоснете сензора за отпечатъци."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Текущо обаждане"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Текуща активност"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобилни данни"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Свързано"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Установена е временна връзка"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Разгъване на сгъваемо устройство"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Обръщане на сгъваемо устройство"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Предният екран е включен"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"затворено"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"отворено"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index e9b6cf3c..6bd1e0c 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ব্যাটারি কত শতাংশ আছে তা জানা যায়নি।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>এ সংযুক্ত হয়ে আছে।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> এর সাথে সংযুক্ত৷"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"গ্রুপ বড় করুন।"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"অ্যাপ্লিকেশন খুলুন।"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"সংযুক্ত নয়৷"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"রোমিং"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"বন্ধ"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"হাব মোড ঘুরে দেখুন"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"চার্জ করার সময় আপনার পছন্দের উইজেট এবং স্ক্রিন সেভার অ্যাক্সেস করুন।"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"শুরু করা যাক"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"চার্জিংয়ের সময় আপনার পছন্দের স্ক্রিন সেভার দেখুন"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ব্যবহারকারী পাল্টে দিন"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"পুলডাউন মেনু"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"এই সেশনের সব অ্যাপ ও ডেটা মুছে ফেলা হবে।"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"কথোপকথনের বিজ্ঞপ্তির উপরের দিকে এবং প্রোফাইল ছবি হিসেবে লক স্ক্রিনে দেখানো হয়, বাবল হিসেবেও এটি দেখা যায় এবং এর ফলে \'বিরক্ত করবে না\' মোডে কাজ করতে অসুবিধা হয়"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"অগ্রাধিকার"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>-এ কথোপকথন ফিচার কাজ করে না"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"মতামত"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"বাতিল করুন"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"আর দেখতে চাই না"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই বিজ্ঞপ্তিগুলি পরিবর্তন করা যাবে না।"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"স্টিকি \'কী\' টগল করুন"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"স্লো \'কী\' টগল করুন"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access টগল করুন"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"\'টকব্যাক\' ফিচার টগল করুন"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"\'বড় করে দেখা\' ফিচার টগল করুন"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"\'বাছুন ও শুনুন\' ফিচার চালু করুন"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"বিরক্ত করবে না"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"ভলিউম বোতামের শর্টকাট"</string>
     <string name="battery" msgid="769686279459897127">"ব্যাটারি"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"খুলতে ফিঙ্গারপ্রিন্ট ব্যবহার করুন"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"যাচাইকরণ করতে হবে। যাচাইকরণ করতে আঙুলের ছাপের সেন্সরে টাচ করুন।"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"চালু থাকা কল"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"চলছে"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"মোবাইল ডেটা"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"কানেক্ট করা আছে"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"সাময়িকভাবে কানেক্ট করা হয়েছে"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ফোল্ড করা যায় এমন ডিভাইস খোলা হচ্ছে"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ফোল্ড করা যায় এমন ডিভাইস উল্টানো হচ্ছে"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ফ্রন্ট স্ক্রিন চালু আছে"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ফোল্ড করা রয়েছে"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ফোল্ড করা নেই"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index 53b0e78..4ccc38a 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Postotak napunjenosti baterije nije poznat"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Povezan na <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Povezan na <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Proširivanje grupe."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Otvaranje aplikacije."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nije povezano."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Isključeno"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Istražite način rada središta"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Pristupajte svojim omiljenim vidžetima i čuvarima ekrana tokom punjenja."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Započnimo"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Prikaz vaših omiljenih čuvara ekrana tokom punjenja"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Zamijeni korisnika"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"padajući meni"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Sve aplikacije i podaci iz ove sesije će se izbrisati."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikazuje se na vrhu obavještenja u razgovorima i kao slika profila na zaključanom ekranu, izgleda kao oblačić, prekida funkciju Ne ometaj"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritetno"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava funkcije razgovora"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Odbaci"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ne prikazuj ponovo"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ta obavještenja se ne mogu izmijeniti."</string>
@@ -924,9 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Uključivanje/isključivanje ljepljivih tipki"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Uključivanje/isključivanje sporog reagiranja tipki"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Uključivanje/isključivanje Pristupa glasom"</string>
-    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Uključi/isključi TalkBack"</string>
-    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Uključi/isključi povećavanje"</string>
-    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktiviraj Odabir za govor"</string>
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Uključivanje/isključivanje Talkbacka"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Uključivanje/isključivanje uvećavanja"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktiviranje funkcije Odaberite za govor"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ne ometaj"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Prečica za dugmad za Jačinu zvuka"</string>
     <string name="battery" msgid="769686279459897127">"Baterija"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Otvorite pomoću otiska prsta"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Potrebna je autentifikacija. Dodirnite senzor za otisak prsta da autentificirate."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Poziv u toku"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"U toku"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Prijenos podataka na mobilnoj mreži"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Privremeno povezano"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Sklopivi uređaj se rasklapa"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Sklopivi uređaj se obrće"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Prednji ekran je uključen"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Kliznite za upotrebu unutarnjeg zaslona"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"sklopljeno"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"otklopljeno"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 4490513..80558a9 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Es desconeix el percentatge de bateria."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"S\'ha connectat a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Està connectat amb <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Desplega el grup."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Obre l\'aplicació."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Sense connexió."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Itinerància"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desactivades"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explora el mode Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accedeix als teus widgets i estalvis de pantalla preferits mentre es carrega."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Som-hi"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Mostra els teus estalvis de pantalla preferits durant la càrrega"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Canvia d\'usuari"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú desplegable"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Totes les aplicacions i les dades d\'aquesta sessió se suprimiran."</string>
@@ -573,7 +570,7 @@
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"Quan comparteixes tota la pantalla, qualsevol cosa que es mostra en pantalla és visible a <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. Per aquest motiu, ves amb compte amb les contrasenyes, les dades de pagament, els missatges, les fotos i l\'àudio i el vídeo."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Quan comparteixes una aplicació, qualsevol cosa que es mostra o que es reprodueix en aquesta aplicació és visible a <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. Per aquest motiu, ves amb compte amb les contrasenyes, les dades de pagament, els missatges, les fotos i l\'àudio i el vídeo."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Quan comparteixes una aplicació, <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> pot veure qualsevol cosa que s\'hi mostra o que s\'hi reprodueix. Per aquest motiu, ves amb compte amb les contrasenyes, les dades de pagament, els missatges, les fotos i l\'àudio i el vídeo."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Comparteix la pantalla"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> ha desactivat aquesta opció"</string>
     <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Tria una aplicació per compartir"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Es mostra a la part superior de les notificacions de les converses i com a foto de perfil a la pantalla de bloqueig, apareix com una bombolla, interromp el mode No molestis"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritat"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admet les funcions de converses"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Suggeriments"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignora"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"No ho tornis a mostrar"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aquestes notificacions no es poden modificar."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Utilitza l\'empremta digital per obrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autenticació necessària. Toca el sensor d\'empremtes digitals per autenticar-te."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Trucada en curs"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"En curs"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Dades mòbils"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connectat"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Connexió temporal"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositiu plegable desplegant-se"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositiu plegable girant"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"La pantalla frontal està activada"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"plegat"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"desplegat"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index ce66f83..ee32107 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Procento baterie není známé."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Připojeno k zařízení <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Jste připojeni k zařízení <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Rozbalit skupinu."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Otevřít aplikaci."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nepřipojeno."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Vypnuto"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Prozkoumejte Režim centra"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Mějte po ruce oblíbené widgety a spořiče obrazovky při nabíjení."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Jdeme na to"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Během nabíjení zobrazovat oblíbené spořiče obrazovky"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Přepnout uživatele"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rozbalovací nabídka"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Veškeré aplikace a data v této relaci budou vymazána."</string>
@@ -573,7 +570,7 @@
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"Při sdílení celé obrazovky vidí aplikace <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vše, co se na obrazovce nachází nebo děje. Buďte proto opatrní, když jde o hesla, platební údaje, zprávy, fotografie, zvuk a video."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Při sdílení aplikace vidí aplikace <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vše, co se ve sdílené aplikaci nachází nebo děje. Buďte proto opatrní, když jde o hesla, platební údaje, zprávy, fotografie, zvuk a video."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Při sdílení aplikace vidí <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vše, co se ve sdílené aplikaci nachází nebo děje. Buďte proto opatrní, když jde o hesla, platební údaje, zprávy, fotografie, zvuk a video."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Sdílet obrazovku"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> tuto možnost zakázala"</string>
     <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Vyberte aplikaci ke sdílení"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Zobrazuje se v horní části sekce konverzací a na obrazovce uzamčení se objevuje jako profilová fotka, má podobu bubliny a deaktivuje režim Nerušit"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritní"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> funkce konverzace nepodporuje"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Zpětná vazba"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Zavřít"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Už nezobrazovat"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tato oznámení nelze upravit."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"K otevření použijte otisk prstu"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Je vyžadováno ověření. Dotkněte se snímače otisků prstů."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Probíhající hovor"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Probíhá"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobilní data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Připojeno"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Dočasně připojeno"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Rozkládání rozkládacího zařízení"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Otáčení rozkládacího zařízení"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Přední obrazovka je zapnutá"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"složené"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"rozložené"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 251b38a..323b9d8 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batteriniveauet er ukendt."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Forbundet med <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Forbundet til <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Udvid gruppe."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Åbn app."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Ikke tilsluttet."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Fra"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Udforsk i Hub-tilstand"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Få adgang til dine foretrukne widgets og pauseskærme under opladning."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Kom i gang"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Vis dine foretrukne pauseskærme under opladning"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Skift bruger"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rullemenu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle apps og data i denne session slettes."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Vises øverst i samtalenotifikationer og som et profilbillede på låseskærmen. Vises som en boble, der afbryder Forstyr ikke"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> understøtter ikke samtalefunktioner"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Luk"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Vis ikke igen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse notifikationer kan ikke redigeres."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Slå træge taster til/fra"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Slå langsomtaster til/fra"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Slå Stemmeadgang til/fra"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Slå TalkBack til/fra"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Slå forstørrelse til/fra"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktivér Tekstoplæsning"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Forstyr ikke"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Genvej til lydstyrkeknapper"</string>
     <string name="battery" msgid="769686279459897127">"Batteri"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Brug fingeraftryk for at åbne"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Godkendelse er påkrævet. Sæt fingeren på fingeraftrykssensoren for at godkende."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Igangværende opkald"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"I gang"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobildata"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Forbundet"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Midlertidigt forbundet"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldbar enhed foldes ud"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldbar enhed vendes om"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Frontskærmen er aktiveret"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"foldet"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"foldet ud"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index c550750..3c8be75 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -142,7 +142,7 @@
     <string name="share_to_app_stop_dialog_title_generic" msgid="9079161538135843648">"Teilen beenden?"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Du teilst momentan deinen gesamten Bildschirm mit der App <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Du teilst momentan deinen gesamten Bildschirm mit einer App"</string>
-    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Du teilst momentan die App <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Du teilst momentan <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
     <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Du teilst momentan Inhalte einer App"</string>
     <string name="share_to_app_stop_dialog_message_generic" msgid="7622174291691249392">"Du teilst momentan Inhalte mit einer App"</string>
     <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Freigabe beenden"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akkustand unbekannt."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Mit <xliff:g id="BLUETOOTH">%s</xliff:g> verbunden"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Verbunden mit <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Gruppe erweitern."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Anwendung öffnen."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nicht verbunden"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Aus"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hub-Modus entdecken"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Du kannst während des Ladevorgangs auf deine bevorzugten Widgets und Bildschirmschoner zugreifen."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Los gehts"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Beim Laden deine bevorzugten Bildschirmschoner anzeigen"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Nutzer wechseln"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"Pull-down-Menü"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle Apps und Daten in dieser Sitzung werden gelöscht."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Wird oben im Bereich „Unterhaltungen“ sowie als Profilbild auf dem Sperrbildschirm angezeigt, erscheint als Bubble, unterbricht „Bitte nicht stören“"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priorität"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> unterstützt keine Funktionen für Unterhaltungen"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Schließen"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Nicht mehr anzeigen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Diese Benachrichtigungen können nicht geändert werden."</string>
@@ -879,7 +877,7 @@
     <string name="keyboard_shortcut_a11y_filter_input" msgid="4589316004510335529">"Tastenkombinationen für die Eingabe werden angezeigt"</string>
     <string name="keyboard_shortcut_a11y_filter_open_apps" msgid="6175417687221004059">"Tastenkombinationen zum Öffnen von Apps werden angezeigt"</string>
     <string name="keyboard_shortcut_a11y_filter_current_app" msgid="7944592357493737911">"Tastenkombinationen für die aktuelle App werden angezeigt"</string>
-    <string name="group_system_access_notification_shade" msgid="1619028907006553677">"Benachrichti­gun­gen ansehen"</string>
+    <string name="group_system_access_notification_shade" msgid="1619028907006553677">"Benach­richti­­gun­gen ansehen"</string>
     <string name="group_system_full_screenshot" msgid="5742204844232667785">"Screenshot erstellen"</string>
     <string name="group_system_access_system_app_shortcuts" msgid="8562482996626694026">"Tasten­kürzel anzeigen"</string>
     <string name="group_system_go_back" msgid="2730322046244918816">"Zurück"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Mit Fingerabdruck öffnen"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Authentifizierung erforderlich. Tippe dazu einfach auf den Fingerabdrucksensor."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Aktiver Anruf"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Aktiv"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobile Daten"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Verbunden"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Vorübergehend verbunden"</string>
@@ -1391,12 +1388,14 @@
     <string name="rear_display_bottom_sheet_cancel" msgid="3461468855493357248">"Abbrechen"</string>
     <string name="rear_display_bottom_sheet_confirm" msgid="1507591562761552899">"Jetzt umdrehen"</string>
     <string name="rear_display_folded_bottom_sheet_title" msgid="3930008746560711990">"Smartphone auffalten"</string>
-    <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Bildschirm wechseln?"</string>
+    <string name="rear_display_unfolded_bottom_sheet_title" msgid="6291111173057304055">"Display wechseln?"</string>
     <string name="rear_display_folded_bottom_sheet_description" msgid="6842767125783222695">"Mit der Rückkamera lassen sich Fotos mit höherer Auflösung aufnehmen"</string>
     <string name="rear_display_unfolded_bottom_sheet_description" msgid="7229961336309960201">"Für höhere Auflösung Smartphone umdrehen"</string>
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Faltbares Gerät wird geöffnet"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Faltbares Gerät wird umgeklappt"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Frontdisplay aktiviert"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"zugeklappt"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"aufgeklappt"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index ae16cc0..470dd2c 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Άγνωστο ποσοστό μπαταρίας."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Συνδέθηκε στο <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Συνδέθηκε σε <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Αναπτύξτε την ομάδα."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Ανοίξτε την εφαρμογή."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Μη συνδεδεμένο"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Περιαγωγή"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Ανενεργά"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Εξερεύνηση της λειτουργίας Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Αποκτήστε πρόσβαση στα αγαπημένα σας γραφικά στοιχεία και τις προφυλάξεις οθόνης κατά τη φόρτιση."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Ας ξεκινήσουμε"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Εμφάνιση αγαπημένων προφυλάξεων οθόνης κατά τη φόρτιση"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Εναλλαγή χρήστη"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"αναπτυσσόμενο μενού"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Όλες οι εφαρμογές και τα δεδομένα αυτής της περιόδου σύνδεσης θα διαγραφούν."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Εμφανίζεται στην κορυφή των ειδοποιήσεων συζήτησης και ως φωτογραφία προφίλ στην οθόνη κλειδώματος, εμφανίζεται ως συννεφάκι, διακόπτει τη λειτουργία Μην ενοχλείτε"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Προτεραιότητα"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> δεν υποστηρίζει τις λειτουργίες συζήτησης"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Σχόλια"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Παράβλεψη"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Να μην εμφανιστεί ξανά"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Δεν είναι δυνατή η τροποποίηση αυτών των ειδοποιήσεων"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Εναλλαγή ασύγχρονων πλήκτρων"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Εναλλαγή αργών πλήκτρων"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Εναλλαγή Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Εναλλαγή TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Εναλλαγή Μεγιστοποίησης"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Ενεργοποίηση της λειτουργίας Επιλέξτε για αυτόματη ανάγνωση"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Μην ενοχλείτε"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Συντόμευση κουμπιών έντασης ήχου"</string>
     <string name="battery" msgid="769686279459897127">"Μπαταρία"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Χρήση δακτυλικού αποτυπώματος για άνοιγμα"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Απαιτείται έλεγχος ταυτότητας. Αγγίξτε τον αισθητήρα δακτυλικών αποτυπωμάτων για έλεγχο ταυτότητας."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Κλήση σε εξέλιξη"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Σε εξέλιξη"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Δεδομένα κινητής τηλεφωνίας"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Συνδέθηκε"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Προσωρινή σύνδεση"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Αναδιπλούμενη συσκευή που ξεδιπλώνει"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Αναδιπλούμενη συσκευή που διπλώνει"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Η μπροστινή οθόνη ενεργοποιήθηκε"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"διπλωμένη"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ξεδιπλωμένη"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 13fdb0b..0c161a7 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expand group."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Open application."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Not connected."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Off"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explore Hub Mode"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Access your favourite widgets and screen savers while charging."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Let\'s go"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Show your favourite screensavers while charging"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Don\'t show again"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Toggle sticky keys"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Toggle slow keys"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Toggle Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Toggle Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Toggle magnification"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activate Select to Speak"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Do Not Disturb"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Volume buttons shortcut"</string>
     <string name="battery" msgid="769686279459897127">"Battery"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Use fingerprint to open"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Authentication required. Touch the fingerprint sensor to authenticate."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Ongoing call"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Ongoing"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobile data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Temporarily connected"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Front screen turned on"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"folded"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"unfolded"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index ab418b5..3a7440b 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -804,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Don\'t show again"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
@@ -1393,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Front screen turned on"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Slide to use inner screen"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"folded"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"unfolded"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 13fdb0b..0c161a7 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expand group."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Open application."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Not connected."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Off"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explore Hub Mode"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Access your favourite widgets and screen savers while charging."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Let\'s go"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Show your favourite screensavers while charging"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Don\'t show again"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Toggle sticky keys"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Toggle slow keys"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Toggle Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Toggle Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Toggle magnification"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activate Select to Speak"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Do Not Disturb"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Volume buttons shortcut"</string>
     <string name="battery" msgid="769686279459897127">"Battery"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Use fingerprint to open"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Authentication required. Touch the fingerprint sensor to authenticate."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Ongoing call"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Ongoing"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobile data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Temporarily connected"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Front screen turned on"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"folded"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"unfolded"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 13fdb0b..0c161a7 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expand group."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Open application."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Not connected."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Off"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explore Hub Mode"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Access your favourite widgets and screen savers while charging."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Let\'s go"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Show your favourite screensavers while charging"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Don\'t show again"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Toggle sticky keys"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Toggle slow keys"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Toggle Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Toggle Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Toggle magnification"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activate Select to Speak"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Do Not Disturb"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Volume buttons shortcut"</string>
     <string name="battery" msgid="769686279459897127">"Battery"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Use fingerprint to open"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Authentication required. Touch the fingerprint sensor to authenticate."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Ongoing call"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Ongoing"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobile data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Temporarily connected"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Foldable device being unfolded"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Foldable device being flipped around"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Front screen turned on"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"folded"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"unfolded"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 793207d..dd8f735 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Se desconoce el porcentaje de la batería."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expandir grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Abrir aplicación."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"No conectado"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desactivados"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explora el modo Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accede a tus widgets y protectores de pantalla favoritos mientras se carga el dispositivo."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Comenzar"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Muestra tus protectores de pantalla favoritos mientras se carga el dispositivo"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar usuario"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú expandible"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Se eliminarán las aplicaciones y los datos de esta sesión."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparece en forma de burbuja y como foto de perfil en la parte superior de las notificaciones de conversación, en la pantalla de bloqueo, y detiene el modo No interrumpir"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritaria"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admite funciones de conversación"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Comentarios"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Descartar"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"No volver a mostrar"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"No se pueden modificar estas notificaciones."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Activar o desactivar las teclas especiales"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Activar o desactivar las teclas lentas"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Activar o desactivar el Acceso por voz"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Activar o desactivar TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Activar o desactivar la ampliación"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activar Seleccionar para pronunciar"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"No interrumpir"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Combinación de teclas de botones de volumen"</string>
     <string name="battery" msgid="769686279459897127">"Batería"</string>
@@ -967,8 +962,8 @@
     <string name="right_keycode" msgid="2480715509844798438">"Clave de código derecho"</string>
     <string name="left_icon" msgid="5036278531966897006">"Ícono izquierdo"</string>
     <string name="right_icon" msgid="1103955040645237425">"Ícono derecho"</string>
-    <string name="drag_to_add_tiles" msgid="8933270127508303672">"Mantén presionada la tarjeta y arrástrala para agregarla"</string>
-    <string name="drag_to_rearrange_tiles" msgid="2143204300089638620">"Mantén presionada la tarjeta y arrástrala para reorganizarla"</string>
+    <string name="drag_to_add_tiles" msgid="8933270127508303672">"Mantén presionada una tarjeta y arrástrala para agregarla"</string>
+    <string name="drag_to_rearrange_tiles" msgid="2143204300089638620">"Mantén presionada una tarjeta y arrástrala para reubicarla"</string>
     <string name="drag_to_remove_tiles" msgid="4682194717573850385">"Arrastra aquí para quitar"</string>
     <string name="drag_to_remove_disabled" msgid="933046987838658850">"Necesitas al menos <xliff:g id="MIN_NUM_TILES">%1$d</xliff:g> tarjetas"</string>
     <string name="qs_edit" msgid="5583565172803472437">"Editar"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Usa la huella dactilar para abrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Se requiere de una autenticación. Toca el sensor de huellas dactilares para autenticarte."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Llamada en curso"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"En curso"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Datos móviles"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Conexión establecida"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Conectado temporalmente"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo plegable siendo desplegado"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo plegable siendo girado"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Pantalla frontal activada"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Desliza para usar la pantalla interior"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"plegado"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"desplegado"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index d5ace64..a2fcc5c 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -116,7 +116,7 @@
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"Cuando grabas toda la pantalla, se graba todo lo que se muestre en ella. Debes tener cuidado con elementos como contraseñas, detalles de pagos, mensajes, fotos, audio y vídeo."</string>
     <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"Cuando grabas una aplicación, se graba todo lo que se muestre o reproduzca en ella. Debes tener cuidado con elementos como contraseñas, detalles de pagos, mensajes, fotos, audio y vídeo."</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"Grabar pantalla"</string>
-    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Elegir una aplicación para grabar"</string>
+    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Elige la aplicación que quieres grabar"</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Grabar audio"</string>
     <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Audio del dispositivo"</string>
     <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Sonido de tu dispositivo, como música, llamadas y tonos de llamada"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentaje de batería desconocido."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Mostrar grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Abrir aplicación."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"No conectado."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desactivados"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Descubre el modo Base"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accede a tus widgets y salvapantallas favoritos mientras se carga."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Vamos allá"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Muestra tus salvapantallas favoritos mientras se carga"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar de usuario"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú desplegable"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Se eliminarán todas las aplicaciones y datos de esta sesión."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Cuando compartes una aplicación, <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> puede ver todo lo que se muestra o reproduce en ella. Debes tener cuidado con elementos como contraseñas, detalles de pagos, mensajes, fotos, audio y vídeo."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Compartir pantalla"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> ha inhabilitado esta opción"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Elegir una aplicación para compartir"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Elige la aplicación que quieres compartir"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"¿Enviar tu pantalla?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Enviar una aplicación"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Enviar toda la pantalla"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Se muestra encima de las notificaciones de conversaciones y como imagen de perfil en la pantalla de bloqueo, aparece como burbuja e interrumpe el modo No molestar"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioridad"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admite funciones de conversación"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Comentarios"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Cerrar"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"No volver a mostrar"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificaciones no se pueden modificar."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Activar/Desactivar teclas persistentes"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Activar/Desactivar teclas lentas"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Activar/Desactivar Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Activar/Desactivar TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Activar/Desactivar ampliación"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activar Enunciar selección"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"No molestar"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Acceso directo de los botones de volumen"</string>
     <string name="battery" msgid="769686279459897127">"Batería"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Usa la huella digital para abrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autenticación obligatoria. Toca el sensor de huellas digitales para autenticarte."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Llamada en curso"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"En curso"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Datos móviles"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Conectado"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Conectada temporalmente"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo plegable desplegándose"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo plegable mostrado desde varios ángulos"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Pantalla frontal encendida"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"plegado"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"desplegado"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
@@ -1464,7 +1460,7 @@
     <string name="shortcut_customize_mode_add_shortcut_description" msgid="7636040209946696120">"Para crear esta combinación de teclas, pulsa la tecla de acción y una o varias teclas a la vez"</string>
     <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Se eliminará tu combinación de teclas personalizada de forma permanente."</string>
     <string name="shortcut_customize_mode_reset_shortcut_description" msgid="2081849715634358684">"Se eliminarán todos tus accesos directos personalizados de forma permanente."</string>
-    <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Buscar accesos directos"</string>
+    <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Buscar combinaciones de teclas"</string>
     <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No hay resultados de búsqueda"</string>
     <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icono de contraer"</string>
     <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icono de la tecla de acción o de la tecla Meta"</string>
@@ -1478,7 +1474,7 @@
     <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra inclinada"</string>
     <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Controlador de arrastre"</string>
     <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Ajustes del teclado"</string>
-    <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Establecer combinación de teclas"</string>
+    <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Establecer combinación"</string>
     <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Eliminar"</string>
     <string name="shortcut_helper_customize_dialog_reset_button_label" msgid="7645535254306312685">"Sí, restablecer"</string>
     <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index 77fe2e7..bca7491 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -133,7 +133,7 @@
     <string name="screenrecord_save_error" msgid="5862648532560118815">"Viga ekraanisalvestise salvestamisel"</string>
     <string name="screenrecord_start_error" msgid="2200660692479682368">"Viga ekraanikuva salvestamise alustamisel"</string>
     <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Kas peatada salvestamine?"</string>
-    <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Salvestate praegu kogu oma ekraanikuva"</string>
+    <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Salvestate praegu kogu oma ekraanikuva."</string>
     <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Salvestate praegu rakendust <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Peata salvestamine"</string>
     <string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Ekraani jagamine"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Aku laetuse protsent on teadmata."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ühendatud: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ühendatud ülekandega <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Grupi laiendamine."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Rakenduse avamine."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Ühendus puudub."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Rändlus"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Väljas"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Tutvuge dokirežiimiga"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Saate laadimise ajal juurdepääsu oma lemmikumatele vidinatele ja ekraanisäästjatele."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Alustame"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Saate laadimise ajal kuvada oma lemmikekraanisäästjaid"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Kasutaja vahetamine"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rippmenüü"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Seansi kõik rakendused ja andmed kustutatakse."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Kuvatakse mullina vestluste märguannete ülaosas ja profiilipildina lukustuskuval ning katkestab režiimi Mitte segada"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioriteetne"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei toeta vestlusfunktsioone"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Tagasiside"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Loobu"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ära enam näita"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Neid märguandeid ei saa muuta."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Nakkeklahvide vahetamine"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Aeglaste klahvide vahetamine"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Accessi vahetamine"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBacki lüliti"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Suurenduse lüliti"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Funktsiooni Vali ja kuula aktiveerimine"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Mitte segada"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Helitugevuse nuppude otsetee"</string>
     <string name="battery" msgid="769686279459897127">"Aku"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Kasutage avamiseks sõrmejälge"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Vajalik on autentimine. Puudutage autentimiseks sõrmejäljeandurit."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Käimasolev kõne"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Pooleli"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobiilne andmeside"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Ühendatud"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Ajutiselt ühendatud"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Volditava seadme lahtivoltimine"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Volditava seadme ümberpööramine"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Esiekraan on sisse lülitatud"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Lohistamine sisemisele ekraanile"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"kokku volditud"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"lahti volditud"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index c4545f8..f447dc6 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Bateriaren ehunekoa ezezaguna da."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> gailura konektatuta."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Hona konektatuta: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Zabaldu taldea."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Ireki aplikazioa."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Konektatu gabe."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Ibiltaritza"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desaktibatuta"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Arakatu kontrol-zentro modua"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Erabili gogoko dituzun widgetak eta pantaila-babesleak gailua kargatu bitartean."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Has gaitezen"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Bistaratu gogoko pantaila-babesleak kargatu bitartean"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Aldatu erabiltzailea"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"zabaldu menua"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Saioko aplikazio eta datu guztiak ezabatuko dira."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Aplikazio bat partekatzen ari zarenean, aplikazio horretan agertzen den edo bertan erreproduzitzen ari den guztia ikusi dezake <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> aplikazioak. Beraz, kontuz ibili pasahitzekin, ordainketen xehetasunekin, mezuekin, argazkiekin, audioekin eta bideoekin, besteak beste."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Partekatu pantaila"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak aukera desgaitu du"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Aukeratu zer aplikazio partekatu nahi duzun"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Aukeratu zein aplikazio partekatu nahi duzun"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"Pantaila igorri nahi duzu?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Igorri aplikazio bat"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Igorri pantaila osoa"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Elkarrizketen jakinarazpenen goialdean eta profileko argazki gisa agertzen da pantaila blokeatuan, burbuila batean, eta ez molestatzeko modua eteten du"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Lehentasuna"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak ez ditu onartzen elkarrizketetarako eginbideak"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Iritzia"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Baztertu"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ez erakutsi berriro"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Jakinarazpen horiek ezin dira aldatu."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Aktibatu/Desaktibatu tekla itsaskorrak"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Aktibatu/Desaktibatu tekla motelak"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Aktibatu/Desaktibatu Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Aktibatu edo desaktibatu Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Aktibatu edo desaktibatu lupa"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktibatu \"Hautatu ozen irakurtzeko\""</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ez molestatzeko modua"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Bolumen-botoietarako lasterbidea"</string>
     <string name="battery" msgid="769686279459897127">"Bateria"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Erabili hatz-marka irekitzeko"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autentifikazioa behar da. Autentifikatzeko, ukitu hatz-marken sentsorea."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Deia abian"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Abian"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Datu-konexioa"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Konektatuta"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Aldi baterako konektatuta"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Gailu tolesgarria zabaltzen"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Gailu tolesgarria biratzen"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Aurreko pantaila piztuta dago"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"tolestuta"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"tolestu gabe"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 1521914..800bf78 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"درصد شارژ باتری مشخص نیست."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"به <xliff:g id="BLUETOOTH">%s</xliff:g> متصل شد."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"به <xliff:g id="CAST">%s</xliff:g> متصل شد."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"گروه را از هم باز می‌کند."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"برنامه را باز می‌کند."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"متصل نیست."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"فراگردی"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"خاموش"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"کاوش کردن حالت متصل"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"در حین شارژ، به ابزاره‌ها و محافظ‌های صفحه‌نمایش دلخواهتان دسترسی داشته باشید."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"بیایید شروع کنیم"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"نمایش محافظ‌های صفحه‌نمایش دلخواه درحین شارژ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"تغییر کاربر"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"منوی پایین‌پر"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"همه برنامه‌ها و داده‌های این جلسه حذف خواهد شد."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"در بالای اعلان‌های مکالمه و به‌صورت عکس نمایه در صفحه قفل نشان داده می‌شود، به‌صورت حبابک ظاهر می‌شود، در حالت «مزاحم نشوید» وقفه ایجاد می‌کند"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"اولویت"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> از ویژگی‌های مکالمه پشتیبانی نمی‌کند"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"بازخورد"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"بستن"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"دیگر نشان داده نشود"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"این اعلان‌ها قابل اصلاح نیستند."</string>
@@ -922,14 +920,11 @@
     <string name="group_accessibility_toggle_bounce_keys" msgid="4183584952493519179">"تغییر وضعیت کلیدهای ضدتکرار"</string>
     <string name="group_accessibility_toggle_mouse_keys" msgid="534757719357514361">"تغییر وضعیت کلیدهای موشواره"</string>
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"تغییر وضعیت کلیدهای چسبان"</string>
-    <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"تغییر وضعیت کلیدهای آهسته"</string>
+    <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"تغییر وضعیت کلیدهای تأخیری"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"تغییر وضعیت «دسترسی صوتی»"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"‏روشن/خاموش کردن TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"روشن/خاموش کردن درشت‌نمایی"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"فعال کردن «انتخاب برای شنیدن»"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"مزاحم نشوید"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"میان‌بر دکمه‌های صدا"</string>
     <string name="battery" msgid="769686279459897127">"باتری"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"از اثر انگشت برای باز کردن قفل استفاده کنید"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"اصالت‌سنجی لازم است. برای اصالت‌سنجی، حسگر اثر انگشت را لمس کنید."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"تماس درحال انجام"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"درحال انجام"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"داده تلفن همراه"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"متصل است"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"موقتاً متصل است"</string>
@@ -1325,7 +1319,7 @@
     <string name="wifi_empty_list_wifi_on" msgid="3864376632067585377">"درحال جستجوی شبکه…"</string>
     <string name="wifi_failed_connect_message" msgid="4161863112079000071">"اتصال به شبکه برقرار نشد"</string>
     <string name="wifi_wont_autoconnect_for_now" msgid="5782282612749867762">"‏فعلاً Wi-Fi به‌طور خودکار متصل نمی‌شود"</string>
-    <string name="see_all_networks" msgid="3773666844913168122">"مشاهده همه"</string>
+    <string name="see_all_networks" msgid="3773666844913168122">"دیدن همه"</string>
     <string name="to_switch_networks_disconnect_ethernet" msgid="6698111101156951955">"برای تغییر شبکه، اترنت را قطع کنید"</string>
     <string name="wifi_scan_notify_message" msgid="3753839537448621794">"‏برای بهبود تجربه استفاده از دستگاه، برنامه‌ها و سرویس‌ها همچنان می‌توانند در هر زمانی شبکه‌های Wi-Fi را اسکن کنند؛ حتی وقتی که Wi-Fi خاموش باشد. می‌توانید این مورد را در تنظیمات اسکن کردن Wi‑Fi تغییر دهید. "<annotation id="link">"تغییر"</annotation></string>
     <string name="turn_off_airplane_mode" msgid="8425587763226548579">"خاموش کردن حالت هواپیما"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"دستگاه تاشو درحال باز شدن"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"دستگاه تاشو درحال چرخش به اطراف"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"صفحه‌نمایش جلو روشن شد"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"برای استفاده از صفحه‌نمایش داخلی، بلغزانید"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"تاشده"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"تانشده"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
@@ -1479,7 +1474,7 @@
     <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"دستگیره کشاندن"</string>
     <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"تنظیمات صفحه‌کلید"</string>
     <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"تنظیم میان‌بر"</string>
-    <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"حذف"</string>
+    <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"برداشتن"</string>
     <string name="shortcut_helper_customize_dialog_reset_button_label" msgid="7645535254306312685">"بله، بازنشانی شود"</string>
     <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"لغو"</string>
     <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"کلید را فشار دهید"</string>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index caf8f29..fdf18a3 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -252,10 +252,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akun varaustaso ei tiedossa."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Yhteys: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Yhdistetty kohteeseen <xliff:g id="CAST">%s</xliff:g>"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Laajenna ryhmä."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Avaa sovellus."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Ei yhteyttä."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Pois päältä"</string>
@@ -545,8 +543,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Tutustu hubitilaan"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Käytä suosikkiwidgetejä ja -näytönsäästäjiä latauksen aikana."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Aloitetaan"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Näytä suosikkinäytönsäästäjiä latauksen aikana"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Vaihda käyttäjää"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"alasvetovalikko"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Kaikki sovellukset ja tämän istunnon tiedot poistetaan."</string>
@@ -809,6 +806,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Näkyy keskusteluilmoitusten yläosassa ja profiilikuvana lukitusnäytöllä, näkyy kuplana, keskeyttää Älä häiritse ‑tilan"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Tärkeä"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei tue keskusteluominaisuuksia"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Palaute"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Hylkää"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Älä näytä uudelleen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Näitä ilmoituksia ei voi muokata"</string>
@@ -926,12 +924,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Laita päälle jäävät näppäimet päälle/pois"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Laita hitaat näppäimet päälle/pois"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access päälle/pois"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack päälle/pois"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Suurennus päälle/pois"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktivoi Teksti puhuttuna"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Älä häiritse"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Äänenvoimakkuuspainikkeiden pikanäppäin"</string>
     <string name="battery" msgid="769686279459897127">"Akku"</string>
@@ -1311,8 +1306,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Avaa sormenjäljellä"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Todennus vaaditaan. Todenna koskettamalla sormenjälkitunnistinta."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Käynnissä oleva puhelu"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Käynnissä"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobiilidata"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Yhdistetty"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Väliaikaisesti yhdistetty"</string>
@@ -1402,6 +1396,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Taitettava laite taitetaan"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Taitettava laite käännetään ympäri"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Etunäyttö päällä"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"taitettu"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"taittamaton"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 4595e10..dde9b64 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Pourcentage de la pile inconnu."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connecté à : <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connecté à <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Développer le groupe."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Ouvrir l\'appli."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Non connecté"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Itinérance"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Désactivé"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explorer le mode Console"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accéder à vos widgets et écrans de veille préférés pendant le chargement."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Allons-y"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Affichez vos écrans de veille préférés pendant le chargement"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Changer d\'utilisateur"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu déroulant"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Toutes les applis et les données de cette session seront supprimées."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"S\'affiche dans le haut des notifications de conversation et comme photo de profil à l\'écran de verrouillage, s\'affiche comme bulle, interrompt le mode Ne pas déranger"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritaire"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne prend pas en charge les fonctionnalités de conversation"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Commentaires"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Fermer"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ne plus afficher"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ces notifications ne peuvent pas être modifiées"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Activer/Désactiver les touches rémanentes"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Activer/Désactiver les touches lentes"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Activer/Désactiver l\'Accès vocal"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Activer/Désactiver TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Activer/Désactiver l\'agrandissement"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activer la fonctionnalité Sélectionner pour énoncer"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ne pas déranger"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Raccourci des boutons de volume"</string>
     <string name="battery" msgid="769686279459897127">"Pile"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Servez-vous de votre empreinte digitale pour ouvrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Authentification requise. Touchez le capteur d\'empreintes digitales pour vous authentifier."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Appel en cours"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"En cours"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Données cellulaires"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connexion active"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Connectée temporairement"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Appareil pliable en cours de dépliage"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Appareil pliable en train d\'être retourné"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Écran avant activé"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"plié"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"déplié"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index b2e0edc..53dbfea 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -114,7 +114,7 @@
     <string name="screenrecord_permission_dialog_option_text_entire_screen" msgid="4882406311415082016">"Enregistrer cet écran"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen_for_display" msgid="4169494703993148253">"Enregistrer %s"</string>
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"Lorsque vous enregistrez l\'intégralité de votre écran, tout ce qui s\'y affiche est enregistré. Faites donc attention aux éléments tels que les mots de passe, les détails de mode de paiement, les messages, les photos, et les contenus audio et vidéo."</string>
-    <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"Lorsque vous enregistrez une appli, tout ce qui est affiché ou lu dans celle-ci est enregistré. Faites donc attention aux éléments tels que les mots de passe, détails de mode de paiement, messages, photos et contenus audio et vidéo."</string>
+    <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"Lorsque vous enregistrez une appli, tout ce qui est affiché ou lu dans celle-ci est enregistré. Faites donc preuve de vigilance concernant les mots de passe, les infos sur le mode de paiement, les messages, les photos, et les contenus audio et vidéo."</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"Enregistrer l\'écran"</string>
     <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Choisir l\'appli à enregistrer"</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"Enregistrer l\'audio"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Pourcentage de la batterie inconnu."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connecté à : <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connecté à <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Développer le groupe."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Ouvrir l\'application."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Non connecté"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Itinérance"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Désactivées"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Découvrir le mode Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accédez à vos widgets et économiseurs d\'écran préférés lorsque l\'appareil est en charge."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"C\'est parti"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Afficher vos économiseurs d\'écran préférés pendant la recharge"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Changer d\'utilisateur"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu déroulant"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Toutes les applications et les données de cette session seront supprimées."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"S\'affiche en haut des notifications de conversation et en tant que photo de profil sur l\'écran de verrouillage, apparaît sous forme de bulle, interrompt le mode Ne pas déranger"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritaire"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> n\'est pas compatible avec les fonctionnalités de conversation"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Commentaires"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignorer"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ne plus afficher"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossible de modifier ces notifications."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Activer/Désactiver les touches rémanentes"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Activer/Désactiver les touches lentes"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Activer/Désactiver Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Activer/Désactiver TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Activer/Désactiver la loupe"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activer Sélectionner pour écouter"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ne pas déranger"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Raccourci des boutons de volume"</string>
     <string name="battery" msgid="769686279459897127">"Batterie"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Utilisez votre empreinte pour ouvrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Authentification requise. Appuyez sur le lecteur d\'empreintes digitales pour vous authentifier."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Appel en cours"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"En cours"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Données mobiles"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connecté"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Connexion temporaire"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Appareil pliable qui est déplié"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Appareil pliable qui est retourné"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Écran avant activé"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"plié"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"déplié"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index eef5c91..03ec2b0 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Descoñécese a porcentaxe da batería."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Dispositivo conectado: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Despregar o grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Abrir a aplicación."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Non conectada"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Itinerancia"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desactivados"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explorar o modo Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accede aos teus widgets e protectores de pantalla favoritos durante a carga."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Comezar"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Mostrar os teus protectores de pantalla favoritos durante a carga"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar usuario"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú despregable"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Eliminaranse todas as aplicacións e datos desta sesión."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Móstrase na parte superior das notificacións das conversas e como imaxe do perfil na pantalla de bloqueo, aparece como unha burbulla e interrompe o modo Non molestar"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioridade"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> non admite funcións de conversa"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Comentarios"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Pechar"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Non volver mostrar"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificacións non se poden modificar."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Activar ou desactivar as teclas presas"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Activar ou desactivar as teclas lentas"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Activar ou desactivar Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Activar ou desactivar Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Activar ou desactivar a ampliación"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activa Escoitar selección"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Non molestar"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Atallo dos botóns de volume"</string>
     <string name="battery" msgid="769686279459897127">"Batería"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Usa a impresión dixital para abrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Requírese autenticación. Para autenticarte, toca o sensor de impresión dixital."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Chamada en curso"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"En curso"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Datos móbiles"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Conectada"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Conectada temporalmente"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo pregable abríndose"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo pregable xirando"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Activouse a pantalla dianteira"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"dispositivo pregado"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"dispositivo despregado"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 0ba9cf4..0c27927 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"બૅટરીની ટકાવારી અજાણ છે."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> થી કનેક્ટ થયાં."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> થી કનેક્ટ કરેલ."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ગ્રૂપને મોટું કરો."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ઍપ્લિકેશન ખોલો."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"કનેક્ટ થયેલું નથી."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"રોમિંગ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"બંધ કરો"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"હબ મોડ શોધખોળ કરો"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ચાર્જ કરતી વખતે તમારા મનપસંદ વિજેટ અને સ્ક્રીન સેવર ઍક્સેસ કરો."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ચાલો પ્રારંભ કરીએ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ચાર્જ વખતે તમારું મનપસંદ સ્ક્રીનસેવર બતાવો"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"વપરાશકર્તા સ્વિચ કરો"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"પુલડાઉન મેનૂ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"આ સત્રમાંની તમામ ઍપ અને ડેટા કાઢી નાખવામાં આવશે."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"વાતચીતના નોટિફિકેશન વિભાગની ટોચ પર અને લૉક કરેલી સ્ક્રીન પર પ્રોફાઇલ ફોટો તરીકે બતાવે છે, બબલ તરીકે દેખાય છે, ખલેલ પાડશો નહીં મોડમાં વિક્ષેપ ઊભો કરે છે"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"પ્રાધાન્યતા"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> વાતચીતની સુવિધાઓને સપોર્ટ આપતી નથી"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"પ્રતિસાદ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"છોડી દો"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ફરી બતાવશો નહીં"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"આ નોટિફિકેશનમાં કોઈ ફેરફાર થઈ શકશે નહીં."</string>
@@ -912,7 +910,7 @@
     <string name="keyboard_shortcut_group_applications" msgid="7386239431100651266">"ઍપ્લિકેશનો"</string>
     <string name="keyboard_shortcut_group_applications_assist" msgid="6772492350416591448">"Assistant"</string>
     <string name="keyboard_shortcut_group_applications_browser" msgid="2776211137869809251">"બ્રાઉઝર"</string>
-    <string name="keyboard_shortcut_group_applications_contacts" msgid="2807268086386201060">"Contacts"</string>
+    <string name="keyboard_shortcut_group_applications_contacts" msgid="2807268086386201060">"સંપર્કો"</string>
     <string name="keyboard_shortcut_group_applications_email" msgid="7852376788894975192">"ઇમેઇલ"</string>
     <string name="keyboard_shortcut_group_applications_sms" msgid="6912633831752843566">"SMS"</string>
     <string name="keyboard_shortcut_group_applications_music" msgid="9032078456666204025">"મ્યુઝિક"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"સ્ટીકી કીને ટૉગલ કરો"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"ધીમી કીને ટૉગલ કરો"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Accessને ટૉગલ કરો"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Talkbackની સુવિધાને ટૉગલ કરો"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"મોટું કરવાની સુવિધાને ટૉગલ કરો"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"\'સાંભળવા માટે પસંદ કરો\' સુવિધાને સક્રિય કરો"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"ખલેલ પાડશો નહીં"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"વૉલ્યૂમ બટન્સ શૉર્ટકટ"</string>
     <string name="battery" msgid="769686279459897127">"બૅટરી"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ખોલવા માટે ફિંગરપ્રિન્ટનો ઉપયોગ કરો"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"પ્રમાણીકરણ આવશ્યક છે. પ્રમાણિત કરવા માટે ફિંગરપ્રિન્ટ સેન્સરને ટચ કરો."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"ચાલુ કૉલ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"ચાલી રહેલી પ્રવૃત્તિ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"મોબાઇલ ડેટા"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"કનેક્ટ કરેલું"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"હંગામી રીતે કનેક્ટ કર્યું"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ફોલ્ડ કરી શકાય એવું ડિવાઇસ અનફોલ્ડ કરવામાં આવી રહ્યું છે"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ફોલ્ડ કરી શકાય એવું ડિવાઇસ ફ્લિપ કરવામાં આવી રહ્યું છે"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ફ્રન્ટ સ્ક્રીનની સુવિધા ચાલુ કરેલી છે"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"અંદરની સ્ક્રીનનો ઉપયોગ કરવા માટે સ્લાઇડ કરો"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ફોલ્ડ કરેલું"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"અનફોલ્ડ કરેલું"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 8b301fd..f2daffe 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -142,7 +142,7 @@
     <string name="share_to_app_stop_dialog_title_generic" msgid="9079161538135843648">"क्या आपको शेयर करने की प्रोसेस बंद करनी है?"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"फ़िलहाल, <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> पर पूरी स्क्रीन शेयर की जा रही है"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"फ़िलहाल, किसी ऐप्लिकेशन पर पूरी स्क्रीन शेयर की जा रही है"</string>
-    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"फ़िलहाल, <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> शेयर किया जा रहा है"</string>
+    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"फ़िलहाल, <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> की स्क्रीन शेयर की जा रही है"</string>
     <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"फ़िलहाल, कोई ऐप्लिकेशन शेयर किया जा रहा है"</string>
     <string name="share_to_app_stop_dialog_message_generic" msgid="7622174291691249392">"फ़िलहाल, ऐप्लिकेशन के साथ कुछ शेयर किया जा रहा है"</string>
     <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"शेयर करना बंद करें"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"इस बारे में जानकारी नहीं है कि अभी बैटरी कितने प्रतिशत चार्ज है."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> से कनेक्ट किया गया."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> से कनेक्ट है."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ग्रुप को बड़ा करें."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ऐप्लिकेशन खोलें."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"कनेक्ट नहीं है."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"रोमिंग"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"बंद है"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"हब मोड को एक्सप्लोर करें"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"चार्जिंग के दौरान, अपने पसंदीदा विजेट और स्क्रीन सेवर को ऐक्सेस करें."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"आइए शुरू करें"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"चार्ज करते समय अपने पसंदीदा स्क्रीन सेवर दिखाएं"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"उपयोगकर्ता बदलें"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"पुलडाउन मेन्यू"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"इस सेशन के सभी ऐप्लिकेशन और डेटा को हटा दिया जाएगा."</string>
@@ -734,7 +731,7 @@
     <string name="volume_panel_hint_muted" msgid="1124844870181285320">"म्यूट किया गया"</string>
     <string name="volume_panel_hint_vibrate" msgid="4136223145435914132">"वाइब्रेट"</string>
     <string name="media_output_label_title" msgid="872824698593182505">"<xliff:g id="LABEL">%s</xliff:g> इस पर चल रहा है"</string>
-    <string name="media_output_title_without_playing" msgid="3825663683169305013">"ऑडियो इस पर चलेगा"</string>
+    <string name="media_output_title_without_playing" msgid="3825663683169305013">"ऑडियो चलेगा"</string>
     <string name="media_output_title_ongoing_call" msgid="208426888064112006">"कॉल चालू है"</string>
     <string name="system_ui_tuner" msgid="1471348823289954729">"सिस्टम यूज़र इंटरफ़ेस (यूआई) ट्यूनर"</string>
     <string name="status_bar" msgid="4357390266055077437">"स्टेटस बार"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"यह कई तरीकों से दिखती है, जैसे कि बातचीत वाली सूचनाओं में सबसे ऊपर, बबल के तौर पर, और लॉक स्क्रीन पर प्रोफ़ाइल फ़ोटो के तौर पर. साथ ही, यह \'परेशान न करें\' मोड को बायपास कर सकती है"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"प्राथमिकता"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> पर बातचीत की सुविधाएं काम नहीं करतीं"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"सुझाव/राय दें या शिकायत करें"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"खारिज करें"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"फिर से न दिखाएं"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ये सूचनाएं नहीं बदली जा सकती हैं."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"खोलने के लिए, फ़िंगरप्रिंट का इस्तेमाल करें"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"पुष्टि करना ज़रूरी है. पुष्टि करने के लिए, फ़िंगरप्रिंट सेंसर को छुएं."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"पहले से जारी कॉल"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"जारी है"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"मोबाइल डेटा"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"कनेक्ट हो गया"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"इंटरनेट कनेक्शन कुछ समय के लिए है"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"फ़ोल्ड किया जा सकने वाला डिवाइस अनफ़ोल्ड किया जा रहा है"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"फ़ोल्ड किया जा सकने वाला डिवाइस पलटा जा रहा है"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"फ़्रंट स्क्रीन चालू है"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"इनर स्क्रीन का इस्तेमाल करने के लिए स्लाइड करें"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"डिवाइस फ़ोल्ड किया गया"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"डिवाइस अनफ़ोल्ड किया गया"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
@@ -1455,7 +1453,7 @@
     <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"मौजूदा ऐप्लिकेशन"</string>
     <string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"सुलभता"</string>
     <string name="shortcut_helper_title" msgid="8567500639300970049">"कीबोर्ड शॉर्टकट"</string>
-    <string name="shortcut_helper_customize_mode_title" msgid="8327297960035006036">"शॉर्टकट पसंद के मुताबिक बनाएं"</string>
+    <string name="shortcut_helper_customize_mode_title" msgid="8327297960035006036">"पसंद के मुताबिक शॉर्टकट बनाएं"</string>
     <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"क्या आपको शॉर्टकट हटाना है?"</string>
     <string name="shortcut_customize_mode_reset_shortcut_dialog_title" msgid="8131184731313717780">"क्या आपको फिर से डिफ़ॉल्ट शॉर्टकट चालू करने हैं?"</string>
     <string name="shortcut_customize_mode_add_shortcut_description" msgid="7636040209946696120">"यह शॉर्टकट बनाने के लिए, ऐक्शन बटन और एक या उससे ज़्यादा अन्य बटन एक साथ दबाएं"</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 86e5098..5222e80 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Postotak baterije nije poznat."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Spojen na <xliff:g id="BLUETOOTH">%s</xliff:g> ."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Povezani ste sa sljedećim uređajem: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Proširite grupu."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Otvorite aplikaciju."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nije povezano."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Isključeno"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Istraži način Huba"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Pristupite omiljenim widgetima i čuvarima zaslona tijekom punjenja."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Započnimo"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Prikaz vaših omiljenih čuvara zaslona tijekom punjenja"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Promjena korisnika"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"padajući izbornik"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Izbrisat će se sve aplikacije i podaci u ovoj sesiji."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikazuje se pri vrhu obavijesti razgovora i kao profilna slika na zaključanom zaslonu, izgleda kao oblačić, prekida Ne uznemiravaj"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritetno"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava značajke razgovora"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Odbaci"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ne prikazuj ponovo"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Te se obavijesti ne mogu izmijeniti."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Otvorite pomoću otiska prsta"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Potrebna je autentifikacija. Dodirnite senzor otiska prsta da biste se autentificirali."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Poziv u tijeku"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"U tijeku"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobilni podaci"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Privremeno povezano"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Rasklopljen sklopivi uređaj"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Okretanje sklopivog uređaja sa svih strana"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Prednji zaslon je uključen"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Kliznite za upotrebu unutarnjeg zaslona"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"zatvoreno"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"otvoreno"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index bbe5b65..109c52f 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Az akkumulátor töltöttségi szintje ismeretlen."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Csatlakoztatva a következőhöz: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Csatlakozva a következőhöz: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Csoport kibontása."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Alkalmazás megnyitása."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nincs csatlakozva."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Ki"</string>
@@ -298,7 +296,7 @@
     <string name="accessibility_rotation_lock_on_landscape" msgid="936972553861524360">"A képernyő zárolva van fekvő tájolásban."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="2356633398683813837">"A képernyő zárolva van álló tájolásban."</string>
     <string name="dessert_case" msgid="9104973640704357717">"Dessert Case"</string>
-    <string name="start_dreams" msgid="9131802557946276718">"Képernyővédő"</string>
+    <string name="start_dreams" msgid="9131802557946276718">"Képernyőkímélő"</string>
     <string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
     <string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne zavarjanak"</string>
     <string name="quick_settings_modes_label" msgid="879156359479504244">"Módok"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"A Hub mód felfedezése"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Töltés közben hozzáférhet kedvenc moduljaihoz és képernyőkímélőihez."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Kezdés"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Kedvenc képernyőkímélők megjelenítése töltés közben"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Felhasználóváltás"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"lehúzható menü"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"A munkamenetben található összes alkalmazás és adat törlődni fog."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"A beszélgetésekre vonatkozó értesítések tetején, lebegő buborékként látható, megjeleníti a profilképet a lezárási képernyőn, és megszakítja a Ne zavarjanak funkciót"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritás"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> nem támogatja a beszélgetési funkciókat"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Visszajelzés"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Elvetés"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ne jelenjen meg újra"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ezeket az értesítéseket nem lehet módosítani."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Ujjlenyomat használata a megnyitáshoz"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Hitelesítés szükséges. Érintse meg az ujjlenyomat-érzékelőt a hitelesítéshez."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Hívás folyamatban"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Folyamatban van"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobiladat"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Csatlakozva"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Ideiglenesen csatlakoztatva"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Összehajtható eszköz kihajtása"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Összehajtható eszköz körbeforgatása"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Előlapi képernyő bekapcsolva"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"összehajtva"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"kihajtva"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index 6d179c0d..914d2cd 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Մարտկոցի լիցքի մակարդակն անհայտ է։"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Միացված է <xliff:g id="BLUETOOTH">%s</xliff:g>-ին:"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Միացված է <xliff:g id="CAST">%s</xliff:g>-ին:"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Ծավալել խումբը։"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Բացել հավելվածը։"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Միացված չէ:"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Ռոումինգ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Անջատված է"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Բացահայտեք հանգույցի ռեժիմը"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Օգտագործեք ձեր սիրած վիջեթները և էկրանապահները, մինչ ձեր սարքը լիցքավորվում է։"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Սկսել"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Ցուցադրել էկրանապահներ լիցքավորման ժամանակ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Անջատել օգտվողին"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"իջնող ընտրացանկ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Այս աշխատաշրջանի բոլոր հավելվածներն ու տվյալները կջնջվեն:"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Ցուցադրվում է զրույցների ծանուցումների վերևում, ինչպես նաև կողպէկրանին որպես պրոֆիլի նկար, հայտնվում է ամպիկի տեսքով, ընդհատում է «Չանհանգստացնել» ռեժիմը"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Կարևոր"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածը զրույցի գործառույթներ չի աջակցում"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Կարծիք հայտնել"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Փակել"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Այլևս ցույց չտալ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Այս ծանուցումները չեն կարող փոփոխվել:"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Միացնել/անջատել կպչուն ստեղները"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Միացնել/անջատել ստեղների երկար սեղմումը"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Միացնել/անջատել Voice Access-ը"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Միացնել/անջատել TalkBack-ը"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Միացնել/անջատել խոշորացումը"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Ակտիվացնել «Ընտրեք և լսեք» գործառույթը"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Չանհանգստացնել"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Ձայնի կոճակների դյուրանցում"</string>
     <string name="battery" msgid="769686279459897127">"Մարտկոց"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Բացելու համար օգտագործեք մատնահետքը"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Պահանջվում է նույնականացում։ Դրա համար մատը հպեք մատնահետքի սկաներին։"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Ընթացիկ զանգ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Հիմա"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Բջջային ինտերնետ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Միացած է"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Ժամանակավոր կապ"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Ծալովի սարք՝ բացված վիճակում"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Ծալովի սարք՝ շրջված վիճակում"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Առջևի էկրանը միացված է"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ծալված"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"բացված"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index e6695bd..62e3476 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Persentase baterai tidak diketahui."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Terhubung ke <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Terhubung ke <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Meluaskan grup."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Membuka aplikasi."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Tidak terhubung."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Nonaktif"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Jelajahi mode hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Akses widget dan screensaver favorit Anda saat mengisi daya."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Mulai"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Tampilkan screensaver favorit saat mengisi daya"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Beralih pengguna"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu pulldown"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Semua aplikasi dan data dalam sesi ini akan dihapus."</string>
@@ -721,7 +718,7 @@
     <string name="volume_ringer_change" msgid="3574969197796055532">"Ketuk untuk mengubah mode pendering"</string>
     <string name="volume_ringer_mode" msgid="6867838048430807128">"mode pendering"</string>
     <string name="volume_ringer_drawer_closed_content_description" msgid="4737792429808781745">"<xliff:g id="VOLUME_RINGER_STATUS">%1$s</xliff:g>, ketuk untuk mengubah mode pendering"</string>
-    <string name="volume_ringer_hint_mute" msgid="4263821214125126614">"Tanpa suara"</string>
+    <string name="volume_ringer_hint_mute" msgid="4263821214125126614">"bisukan"</string>
     <string name="volume_ringer_hint_unmute" msgid="6119086890306456976">"aktifkan"</string>
     <string name="volume_ringer_hint_vibrate" msgid="6211609047099337509">"getar"</string>
     <string name="volume_dialog_title" msgid="6502703403483577940">"%s kontrol volume"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Muncul teratas di notifikasi percakapan dan sebagai foto profil di layar kunci, ditampilkan sebagai balon, menimpa mode Jangan Ganggu"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritas"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak mendukung fitur percakapan"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Masukan"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Tutup"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Jangan tampilkan lagi"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Notifikasi ini tidak dapat diubah."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Aktifkan/nonaktifkan tombol lekat"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Aktifkan/nonaktifkan tombol lambat"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Aktifkan/nonaktifkan Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Aktifkan/nonaktifkan TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Aktifkan/nonaktifkan Pembesaran"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktifkan fitur Klik untuk Diucapkan"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Jangan Ganggu"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Pintasan tombol volume"</string>
     <string name="battery" msgid="769686279459897127">"Baterai"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Gunakan sidik jari untuk membuka"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Perlu autentikasi. Sentuh sensor sidik jari untuk melakukan autentikasi."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Panggilan sedang berlangsung"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Sedang berlangsung"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Data seluler"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Terhubung"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Terhubung sementara"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Perangkat foldable sedang dibentangkan"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Perangkat foldable sedang dibalik"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Layar depan diaktifkan"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ditutup"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"dibuka"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index fd2d666..4e486d0 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Staða rafhlöðu óþekkt."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Tengt við <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Tengt við <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Stækka hóp."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Opna forrit."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Engin tenging."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Reiki"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Slökkt"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Kynntu þér dokkustillingu"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Hafðu aðgang að uppáhaldsgræjunum og -skjávörunum þínum á meðan tækið er í hleðslu."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Kýlum á þetta"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Sýna uppáhaldsskjávarana þína á meðan tækið er í hleðslu"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Skipta um notanda"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"Fellivalmynd"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Öllum forritum og gögnum í þessari lotu verður eytt."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Birtist efst í samtalstilkynningum og sem prófílmynd á lásskjánum. Birtist sem blaðra sem truflar „Ónáðið ekki“"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Forgangur"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> styður ekki samtalseiginleika"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Ábendingar"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Loka"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ekki sýna aftur"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ekki er hægt að breyta þessum tilkynningum."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Velja/afvelja festilykla"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Velja/afvelja hæga lykla"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Velja/afvelja Raddskipanir"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Kveikja/slökkva á Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Kveikja/slökkva á stækkun"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Kveikja á textaupplestri"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ónáðið ekki"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Flýtihnappar fyrir hljóðstyrk"</string>
     <string name="battery" msgid="769686279459897127">"Rafhlaða"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Opna með fingrafari"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Auðkenningar krafist. Auðkenndu með því að snerta fingrafaralesarann."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Símtal í gangi"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Í gangi"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Farsímagögn"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Tengt"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Tímabundin tenging"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Samanbrjótanlegt tæki opnað"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Samanbrjótanlegu tæki snúið við"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Kveikt á fremri skjá"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"samanbrotið"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"opið"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 8754612..786254b 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Percentuale della batteria sconosciuta."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connesso a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connesso a: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Espandi il gruppo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Apri l\'applicazione."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Non connesso."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Off"</string>
@@ -410,8 +408,8 @@
     <string name="custom_trace_settings_dialog_title" msgid="2608570500144830554">"Impostazioni di traccia personalizzate"</string>
     <string name="restore_default" msgid="5259420807486239755">"Ripristina predefinite"</string>
     <string name="quick_settings_onehanded_label" msgid="2416537930246274991">"Modalità a una mano"</string>
-    <string name="quick_settings_hearing_devices_label" msgid="7277170419679404129">"Apparecchi acustici"</string>
-    <string name="quick_settings_hearing_devices_connected" msgid="6519069502397037781">"Attivi"</string>
+    <string name="quick_settings_hearing_devices_label" msgid="7277170419679404129">"Protesi uditive"</string>
+    <string name="quick_settings_hearing_devices_connected" msgid="6519069502397037781">"Attive"</string>
     <string name="quick_settings_hearing_devices_disconnected" msgid="8907061223998176187">"Disconnessi"</string>
     <string name="quick_settings_hearing_devices_dialog_title" msgid="9004774017688484981">"Protesi uditive"</string>
     <string name="quick_settings_pair_hearing_devices" msgid="5987105102207447322">"Accoppia nuovo dispositivo"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Esplora la modalità Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accedi ai tuoi widget e salvaschermo preferiti durante la ricarica."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Iniziamo"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Mostra i tuoi salvaschermo preferiti durante la ricarica"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambio utente"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu a discesa"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Tutte le app e i dati di questa sessione verranno eliminati."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Appare in cima alle notifiche delle conversazioni, come immagine del profilo nella schermata di blocco e sotto forma di bolla, inoltre interrompe la modalità Non disturbare"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priorità"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> non supporta le funzionalità delle conversazioni"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignora"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Non mostrare più"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossibile modificare queste notifiche."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Usa l\'impronta per aprire"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autenticazione obbligatoria. Eseguila toccando il sensore di impronte digitali."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Chiamata in corso"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"In corso"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Dati mobili"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Connessa"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Connessa temporaneamente"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo pieghevole che viene aperto"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo pieghevole che viene capovolto"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Schermo frontale attivato"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Scorri per usare lo schermo interno"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"Piegato"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"Non piegato"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 8828079..5000885 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -114,7 +114,7 @@
     <string name="screenrecord_permission_dialog_option_text_entire_screen" msgid="4882406311415082016">"הקלטת המסך שמוצג עכשיו"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen_for_display" msgid="4169494703993148253">"‏הקלטה של %s"</string>
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"כשמקליטים את כל המסך, כל מה שמופיע במסך מוקלט. מומלץ להיזהר עם סיסמאות, פרטי תשלום, הודעות, תמונות, אודיו וסרטונים."</string>
-    <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"כשמקליטים אפליקציה, כל מה שרואים או מפעילים בה מוקלט. מומלץ להיזהר עם סיסמאות, פרטי תשלום, הודעות, תמונות, אודיו וסרטונים."</string>
+    <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"כשמקליטים אפליקציה, כל מה שרואים או מפעילים בה מוקלט. מומלץ להיזהר ולא לחשוף פרטים אישיים כמו סיסמאות, פרטי תשלום, הודעות, תמונות, אודיו וסרטונים."</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"הקלטת המסך"</string>
     <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"בחירת אפליקציה להקלטה"</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"הקלטת אודיו"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"אחוז טעינת הסוללה לא ידוע."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"התבצע חיבור אל <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"מחובר אל <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"הרחבת הקבוצה."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"פתיחת האפליקציה."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"אין חיבור."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"נדידה"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"כבוי"</string>
@@ -460,7 +458,7 @@
     <string name="zen_modes_dialog_title" msgid="8854640808100096934">"מצבים"</string>
     <string name="zen_modes_dialog_done" msgid="6654130880256438950">"סיום"</string>
     <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"הגדרות"</string>
-    <string name="zen_mode_on" msgid="9085304934016242591">"מצב מופעל"</string>
+    <string name="zen_mode_on" msgid="9085304934016242591">"מצב פעיל"</string>
     <string name="zen_mode_on_with_details" msgid="7416143430557895497">"פועל • <xliff:g id="TRIGGER_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="zen_mode_off" msgid="1736604456618147306">"מצב מושבת"</string>
     <string name="zen_mode_set_up" msgid="8231201163894922821">"לא הוגדר"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"‏האפשרויות במצב Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"אפשר לגשת לווידג\'טים ולשומרי המסך בזמן הטעינה."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"שנתחיל?"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"בחירת שומרי המסך שיוצגו בזמן הטעינה"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"החלפת משתמש"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"תפריט במשיכה למטה"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"כל האפליקציות והנתונים בסשן הזה יימחקו."</string>
@@ -573,10 +570,10 @@
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"כשמשתפים את כל המסך, כל מה שמופיע בו יהיה גלוי ל-<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. מומלץ להיזהר עם סיסמאות, פרטי תשלום, הודעות, תמונות, אודיו וסרטונים."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"כשמשתפים אפליקציה, כל מה שרואים או מפעילים בה יהיה גלוי ל-<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. מומלץ להיזהר עם סיסמאות, פרטי תשלום, הודעות, תמונות, אודיו וסרטונים."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"כשמשתפים אפליקציה, כל מה שרואים או מפעילים בה מופיע גם ב-<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. מומלץ להיזהר ולא לחשוף פרטים אישיים כמו סיסמאות, פרטי תשלום, הודעות, תמונות, אודיו וסרטונים."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"שיתוף המסך"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"האפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g> השביתה את האפשרות הזו"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"בחירת האפליקציה לשיתוף"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"בחירת אפליקציה לשיתוף"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"‏להפעיל Cast של המסך?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"‏הפעלת Cast של אפליקציה אחת"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"‏הפעלת Cast של כל המסך"</string>
@@ -593,7 +590,7 @@
     <string name="media_projection_task_switcher_action_switch" msgid="8682258717291921123">"שיתוף של האפליקציה הזו במקום"</string>
     <string name="media_projection_task_switcher_action_back" msgid="5324164224147845282">"חזרה למשימה הקודמת"</string>
     <string name="media_projection_task_switcher_notification_channel" msgid="7613206306777814253">"החלפת אפליקציה"</string>
-    <string name="screen_capturing_disabled_by_policy_dialog_title" msgid="2113331792064527203">"‏האפשרות נחסמה על ידי אדמין ב-IT"</string>
+    <string name="screen_capturing_disabled_by_policy_dialog_title" msgid="2113331792064527203">"‏האפשרות נחסמה על ידי אדמין ממחלקת IT"</string>
     <string name="screen_capturing_disabled_by_policy_dialog_description" msgid="6015975736747696431">"צילום המסך מושבת בגלל מדיניות המכשיר"</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"ניקוי הכול"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"ניהול"</string>
@@ -807,6 +804,8 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"מוצגת בחלק העליון של קטע התראות השיחה וכתמונת פרופיל במסך הנעילה, מופיעה בבועה צפה ומפריעה במצב \'נא לא להפריע\'"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"בעדיפות גבוהה"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"האפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g> לא תומכת בתכונות השיחה"</string>
+    <!-- no translation found for notification_guts_bundle_feedback (7581587973879656500) -->
+    <skip />
     <string name="notification_inline_dismiss" msgid="88423586921134258">"סגירה"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"לא להציג את זה שוב"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"לא ניתן לשנות את ההתראות האלה."</string>
@@ -924,12 +923,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"הפעלה או השבתה של מקשים \"דביקים\""</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"הפעלה או השבתה של מקשים איטיים"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"‏הפעלה או השבתה של Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"‏הפעלה או השבתה של TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"החלפת מצב ההגדלה"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"הפעלת ההקראה"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"נא לא להפריע"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"קיצור דרך לכפתורי עוצמת קול"</string>
     <string name="battery" msgid="769686279459897127">"סוללה"</string>
@@ -937,7 +933,7 @@
     <string name="accessibility_long_click_tile" msgid="210472753156768705">"פתיחת ההגדרות"</string>
     <string name="accessibility_status_bar_headphones" msgid="1304082414912647414">"אוזניות מחוברות"</string>
     <string name="accessibility_status_bar_headset" msgid="2699275863720926104">"אוזניות מחוברות"</string>
-    <string name="data_saver" msgid="3484013368530820763">"‏חוסך הנתונים (Data Saver)"</string>
+    <string name="data_saver" msgid="3484013368530820763">"חוסך הנתונים"</string>
     <string name="accessibility_data_saver_on" msgid="5394743820189757731">"‏חוסך הנתונים (Data Saver) פועל"</string>
     <string name="switch_bar_on" msgid="1770868129120096114">"פועל"</string>
     <string name="switch_bar_off" msgid="5669805115416379556">"כבוי"</string>
@@ -1088,7 +1084,7 @@
     <string name="privacy_type_media_projection" msgid="8136723828804251547">"הקלטת המסך"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ללא שם"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"המתנה"</string>
-    <string name="font_scaling_dialog_title" msgid="6273107303850248375">"גודל גופן"</string>
+    <string name="font_scaling_dialog_title" msgid="6273107303850248375">"גודל הגופן"</string>
     <string name="font_scaling_smaller" msgid="1012032217622008232">"הקטנה"</string>
     <string name="font_scaling_larger" msgid="5476242157436806760">"הגדלה"</string>
     <string name="magnification_window_title" msgid="4863914360847258333">"חלון הגדלה"</string>
@@ -1309,8 +1305,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"שימוש בטביעת אצבע כדי לפתוח"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"נדרש אימות. יש לגעת בחיישן טביעות האצבע כדי לבצע אימות."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"שיחה פעילה"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"בתהליך"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"חבילת גלישה"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"מחובר"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"מחובר באופן זמני"</string>
@@ -1400,6 +1395,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"מכשיר מתקפל עובר למצב לא מקופל"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"מכשיר מתקפל עובר למצב מהופך"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"המסך הקדמי מופעל"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"מצב מקופל"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"מצב לא מקופל"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"‏%1$s‏ / %2$s"</string>
@@ -1423,7 +1420,7 @@
     <string name="assistant_attention_content_description" msgid="4166330881435263596">"נוכחות המשתמש זוהתה"</string>
     <string name="set_default_notes_app_toast_content" msgid="2812374329662610753">"צריך להגדיר את אפליקציית ברירת המחדל לפתקים ב\'הגדרות\'"</string>
     <string name="install_app" msgid="5066668100199613936">"התקנת האפליקציה"</string>
-    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"מחליקים למעלה כדי להמשיך"</string>
+    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"צריך להחליק למעלה כדי להמשיך"</string>
     <string name="connected_display_dialog_start_mirroring" msgid="6237895789920854982">"לשקף למסך חיצוני?"</string>
     <string name="connected_display_dialog_dual_display_stop_warning" msgid="4174707498892447947">"המסך הפנימי שלך ישוכפל. המסך החיצוני שלך יכובה."</string>
     <string name="mirror_display" msgid="2515262008898122928">"תצוגת מראה"</string>
@@ -1461,7 +1458,7 @@
     <string name="shortcut_helper_customize_mode_title" msgid="8327297960035006036">"התאמה אישית של מקשי הקיצור"</string>
     <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"להסיר את קיצור הדרך?"</string>
     <string name="shortcut_customize_mode_reset_shortcut_dialog_title" msgid="8131184731313717780">"לאפס לברירת המחדל?"</string>
-    <string name="shortcut_customize_mode_add_shortcut_description" msgid="7636040209946696120">"כדי ליצור את קיצור הדרך הזה, מקישים על מקש הפעולה ועל עוד מקש אחד או יותר ביחד"</string>
+    <string name="shortcut_customize_mode_add_shortcut_description" msgid="7636040209946696120">"כדי לבחור את צירוף המקשים הרצוי, מקישים בו-זמנית על מקש הפעולה ועל עוד מקש אחד או יותר"</string>
     <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"קיצור הדרך יימחק לתמיד."</string>
     <string name="shortcut_customize_mode_reset_shortcut_description" msgid="2081849715634358684">"הפעולה הזו תמחק לתמיד את כל קיצורי הדרך שמותאמים אישית."</string>
     <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"חיפוש מקשי קיצור"</string>
@@ -1478,7 +1475,7 @@
     <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"קו נטוי"</string>
     <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"נקודת האחיזה לגרירה"</string>
     <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"הגדרות המקלדת"</string>
-    <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"הגדרת מקש קיצור"</string>
+    <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"הגדרת מקשי הקיצור"</string>
     <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"הסרה"</string>
     <string name="shortcut_helper_customize_dialog_reset_button_label" msgid="7645535254306312685">"כן, לאפס"</string>
     <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ביטול"</string>
diff --git a/packages/SystemUI/res/values-iw/tiles_states_strings.xml b/packages/SystemUI/res/values-iw/tiles_states_strings.xml
index d6b9bc8..1a5b8fb 100644
--- a/packages/SystemUI/res/values-iw/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-iw/tiles_states_strings.xml
@@ -194,6 +194,6 @@
   <string-array name="tile_states_notes">
     <item msgid="5894333929299989301">"לא זמין"</item>
     <item msgid="6419996398343291862">"מושבת"</item>
-    <item msgid="5908720590832378783">"מופעל"</item>
+    <item msgid="5908720590832378783">"מצב פעיל"</item>
   </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index c760827..fd98fe8 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -113,8 +113,8 @@
     <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"1 つのアプリを録画"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen" msgid="4882406311415082016">"この画面の録画"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen_for_display" msgid="4169494703993148253">"%s の録画"</string>
-    <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"画面全体を録画すると、画面に表示されるものがすべて録画されます。パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
-    <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"アプリを録画すると、そのアプリで表示または再生される内容がすべて録画されます。パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"画面全体を録画すると、画面に表示されるものがすべて録画されます。パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"アプリを録画すると、そのアプリで表示または実行される内容がすべて録画されます。パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"画面を録画"</string>
     <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"録画するアプリを選択"</string>
     <string name="screenrecord_audio_label" msgid="6183558856175159629">"録音"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"バッテリー残量は不明です。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>に接続しました。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>に接続されています。"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"グループを開きます。"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"アプリを開きます。"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"接続されていません。"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ローミング"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"OFF"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ハブモードの詳細を見る"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"充電中にお気に入りのウィジェットやスクリーン セーバーにアクセスできます。"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"使ってみる"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"お気に入りのスクリーンセーバーを充電中に表示"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ユーザーを切り替える"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"プルダウン メニュー"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"このセッションでのアプリとデータはすべて削除されます。"</string>
@@ -561,9 +558,9 @@
     <string name="user_remove_user_message" msgid="6702834122128031833">"このユーザーのアプリとデータがすべて削除されます。"</string>
     <string name="user_remove_user_remove" msgid="8387386066949061256">"削除"</string>
     <string name="media_projection_dialog_title" msgid="3316063622495360646">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> で録画やキャストを開始しますか?"</string>
-    <string name="media_projection_dialog_warning" msgid="1303664408388363598">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> は、録画中またはキャスト中に画面上に表示または再生される情報のすべてにアクセスできるようになります。これには、パスワード、お支払いの詳細、写真、メッセージ、音声などが含まれます。"</string>
+    <string name="media_projection_dialog_warning" msgid="1303664408388363598">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> は、録画中またはキャスト中に画面上に表示または再生される情報のすべてにアクセスできるようになります。これには、パスワード、お支払い情報、写真、メッセージ、音声などが含まれます。"</string>
     <string name="media_projection_sys_service_dialog_title" msgid="3751133258891897878">"録画やキャストを開始しますか?"</string>
-    <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"この機能を提供するサービスは、録画中またはキャスト中に画面上に表示または再生される情報のすべてにアクセスできるようになります。これには、パスワード、お支払いの詳細、写真、メッセージ、音声などが含まれます。"</string>
+    <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"この機能を提供するサービスは、録画中またはキャスト中に画面上に表示または再生される情報のすべてにアクセスできるようになります。これには、パスワード、お支払い情報、写真、メッセージ、音声などが含まれます。"</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"アプリの共有または録画"</string>
     <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> と画面を共有しますか?"</string>
     <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"1 個のアプリを共有"</string>
@@ -572,21 +569,21 @@
     <string name="screen_share_permission_dialog_option_entire_screen" msgid="4493174362775038997">"画面全体を共有"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
-    <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"画面全体を共有すると、画面に表示される内容が <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> にすべて公開されます。パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"アプリを共有すると、そのアプリで表示または再生される内容が <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> にすべて公開されます。パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"画面全体を共有すると、画面に表示される内容が <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> にすべて公開されます。パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"アプリを共有すると、そのアプリで表示または再生される内容が <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> にすべて公開されます。パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"画面を共有"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> がこのオプションを無効にしています"</string>
     <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"共有するアプリを選択"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"画面をキャストしますか?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"1 つのアプリをキャスト"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"画面全体をキャスト"</string>
-    <string name="media_projection_entry_cast_permission_dialog_warning_entire_screen" msgid="4040447861037324017">"画面全体をキャストすると、画面に表示される内容がすべて公開されます。パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
-    <string name="media_projection_entry_cast_permission_dialog_warning_single_app" msgid="7487834861348460736">"アプリをキャストすると、そのアプリで表示または再生される内容がすべて公開されます。パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="media_projection_entry_cast_permission_dialog_warning_entire_screen" msgid="4040447861037324017">"画面全体をキャストすると、画面に表示される内容がすべて公開されます。パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="media_projection_entry_cast_permission_dialog_warning_single_app" msgid="7487834861348460736">"アプリをキャストすると、そのアプリで表示または再生される内容がすべて公開されます。パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
     <string name="media_projection_entry_cast_permission_dialog_continue_entire_screen" msgid="3261124185304676483">"画面のキャスト"</string>
     <string name="media_projection_entry_cast_app_selector_title" msgid="6323062146661922387">"キャストするアプリを選択"</string>
     <string name="media_projection_entry_generic_permission_dialog_title" msgid="4519802931547483628">"共有を開始しますか?"</string>
-    <string name="media_projection_entry_generic_permission_dialog_warning_entire_screen" msgid="5407906851409410209">"共有、録画、キャスト中は、画面に表示される内容やデバイスで再生される内容に Android がアクセスできるため、パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
-    <string name="media_projection_entry_generic_permission_dialog_warning_single_app" msgid="3454859977888159495">"アプリの共有、録画、キャスト中は、そのアプリで表示または再生される内容に Android がアクセスできるため、パスワード、お支払いの詳細、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="media_projection_entry_generic_permission_dialog_warning_entire_screen" msgid="5407906851409410209">"共有、録画、キャスト中は、画面に表示される内容やデバイスで再生される内容に Android がアクセスできるため、パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
+    <string name="media_projection_entry_generic_permission_dialog_warning_single_app" msgid="3454859977888159495">"アプリの共有、録画、キャスト中は、そのアプリで表示または再生される内容に Android がアクセスできるため、パスワード、お支払い情報、メッセージ、写真、音声、動画などの情報にご注意ください。"</string>
     <string name="media_projection_entry_generic_permission_dialog_continue" msgid="8640381403048097116">"開始"</string>
     <string name="media_projection_entry_generic_permission_dialog_continue_single_app" msgid="5920814988611877051">"次へ"</string>
     <string name="media_projection_task_switcher_text" msgid="590885489897412359">"アプリを切り替えるときに共有を一時停止します"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"会話通知の一番上に表示されると同時に、ロック画面にプロフィール写真として表示されるほか、バブルとして表示され、サイレント モードが中断されます"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"優先"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>は会話機能に対応していません"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"フィードバック"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"閉じる"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"次回から表示しない"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"これらの通知は変更できません。"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"指紋を使って開いてください"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"認証が必要です。指紋認証センサーをタッチして認証してください。"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"通話中"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"実行中"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"モバイルデータ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"接続済み"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"一時的に接続されています"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"折りたたみ式デバイスが広げられている"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"折りたたみ式デバイスがひっくり返されている"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"フロント画面が ON になりました"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"インナー ディスプレイを使用するにはスライドしてください"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"折りたたんだ状態"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"広げた状態"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index 0b700df..18522da 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ბატარეის პროცენტული მაჩვენებელი უცნობია."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"დაკავშირებულია <xliff:g id="BLUETOOTH">%s</xliff:g>-თან."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"დაკავშირებულია მოწყობილობასთან: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ჯგუფის გაფართოება."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"აპლიკაციის გახსნა."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"არ არის დაკავშირებული."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"როუმინგი"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"გამორთული"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ჰაბის რეჟიმის დათვალიერება"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"დატენის დროს შეგიძლიათ თქვენს რჩეულ ვიჯეტებზე და ეკრანმზოგებზე წვდომა."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"დავიწყოთ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"დატენვისას თქვენი საყვარელი ეკრანმზოგის ჩვენება"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"მომხმარებლის გადართვა"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ჩამოშლადი მენიუ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ამ სესიის ყველა აპი და მონაცემი წაიშლება."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"გამოჩნდება საუბრის შეტყობინებების თავში და პროფილის სურათის სახით ჩაკეტილ ეკრანზე, ჩნდება ბუშტის სახით, წყვეტს ფუნქციას „არ შემაწუხოთ“"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"პრიორიტეტი"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ს არ აქვს მიმოწერის ფუნქციების მხარდაჭერა"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"გამოხმაურება"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"დახურვა"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"აღარ მაჩვენო"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ამ შეტყობინებების შეცვლა შეუძლებელია."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"გასახსნელად გამოიყენეთ თითის ანაბეჭდი"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"საჭიროა ავტორიზაცია. ავტორიზაციისთვის შეეხეთ თითის ანაბეჭდის სენსორს."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"მიმდინარე ზარი"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"მიმდინარე"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"მობილური ინტერნეტი"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"დაკავშირებული"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"დროებით დაკავშირებული"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"დასაკეცი მოწყობილობა იხსნება"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"დასაკეცი მოწყობილობა ტრიალებს"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"წინა ეკრანი ჩართულია"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"გაასრიალეთ შიდა ეკრანის გამოსაყენებლად"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"დაკეცილი"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"გაშლილი"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index 9413dd0..83af7c8 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Батарея зарядының мөлшері белгісіз."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> қосылған."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> трансляциясына қосылды."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Топты жайыңыз."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Қолданбаны ашыңыз."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Жалғанбаған."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роуминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Өшірулі"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Хаб режимін шолу"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Зарядтау кезінде өзіңіз ұнататын виджеттер мен скринсейверлерді пайдаланыңыз."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Бастайық"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Құрылғыны зарядтау кезінде таңдаулы скринсейверлерді көрсетуге болады."</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Пайдаланушыны ауыстыру"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ашылмалы мәзір"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Осы сеанстағы барлық қолданба мен дерек жойылады."</string>
@@ -593,7 +590,7 @@
     <string name="media_projection_task_switcher_action_switch" msgid="8682258717291921123">"Орнына осы қолданбаны бөлісу"</string>
     <string name="media_projection_task_switcher_action_back" msgid="5324164224147845282">"Қайта ауысу"</string>
     <string name="media_projection_task_switcher_notification_channel" msgid="7613206306777814253">"Қолданба ауыстыру"</string>
-    <string name="screen_capturing_disabled_by_policy_dialog_title" msgid="2113331792064527203">"Әкімшіңіз бөгеген"</string>
+    <string name="screen_capturing_disabled_by_policy_dialog_title" msgid="2113331792064527203">"Әкімшіңіз блоктаған"</string>
     <string name="screen_capturing_disabled_by_policy_dialog_description" msgid="6015975736747696431">"Құрылғы саясатына байланысты экранды түсіру өшірілді."</string>
     <string name="clear_all_notifications_text" msgid="348312370303046130">"Барлығын тазарту"</string>
     <string name="manage_notifications_text" msgid="6885645344647733116">"Басқару"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Әңгіме туралы хабарландырулардың жоғарғы жағында тұрады және құлыптаулы экранда профиль суреті болып көрсетіледі, қалқыма хабар түрінде шығады, Мазаламау режимін тоқтатады."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Маңызды"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> әңгіме функцияларын қолдамайды."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Пікір"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Жабу"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Қайта көрсетілмесін"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бұл хабарландыруларды өзгерту мүмкін емес."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Жабысқан пернелерді қосу/өшіру"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Баяу пернелерді қосу/өшіру"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access мүмкіндігін қосу/өшіру"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack-ті қосу/өшіру"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Ұлғайту функциясын қосу/өшіру"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Select to Speak функциясын қосу"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Мазаламау"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Дыбыс деңгейі түймелерінің төте жолы"</string>
     <string name="battery" msgid="769686279459897127">"Батарея"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Ашу үшін саусақ ізін пайдаланыңыз."</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Аутентификациядан өту қажет. Ол үшін саусақ ізін оқу сканерін түртіңіз."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Ағымдағы қоңырау"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Ағымдағы"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобильдік интернет"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Жалғанды"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Уақытша байланыс орнатылды."</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Бүктемелі құрылғы ашылып жатыр."</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Бүктемелі құрылғы аударылып жатыр."</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Алдыңғы экран қосылды."</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"жабық"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ашық"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index bd3f777..569ecd3 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"មិនដឹងអំពី​ភាគរយថ្មទេ។"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"បាន​ភ្ជាប់​ទៅ <xliff:g id="BLUETOOTH">%s</xliff:g> ។"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"បានភ្ជាប់ទៅ <xliff:g id="CAST">%s</xliff:g>"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ពង្រីកក្រុម។"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"បើកកម្មវិធី។"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"មិន​បាន​តភ្ជាប់​។"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"រ៉ូ​មីង"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"បិទ"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"រុករកមុខងារមណ្ឌល"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ចូលប្រើប្រាស់ធាតុ​ក្រាហ្វិក និងធាតុរក្សាអេក្រង់ដែលអ្នកពេញចិត្តពេលសាកថ្ម។"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ចាប់ផ្ដើម"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"បង្ហាញធាតុ​រក្សា​អេក្រង់សំណព្វរបស់អ្នក ពេលកំពុងសាកថ្ម"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ប្ដូរ​អ្នក​ប្រើ"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ម៉ឺនុយ​ទាញចុះ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"កម្មវិធី និងទិន្នន័យ​ទាំងអស់​ក្នុង​វគ្គ​នេះ​នឹង​ត្រូវ​លុប។"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"បង្ហាញនៅខាងលើ​ការជូនដំណឹងអំពីការសន្ទនា និងជារូបភាព​កម្រង​ព័ត៌មាននៅលើអេក្រង់ចាក់សោ បង្ហាញជាពពុះ បង្អាក់មុខងារកុំ​រំខាន"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"អាទិភាព"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> មិនអាចប្រើ​មុខងារ​សន្ទនា​បានទេ"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"មតិកែលម្អ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ច្រានចោល"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"កុំបង្ហាញម្ដងទៀត"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"មិនអាច​កែប្រែ​ការជូនដំណឹង​ទាំងនេះ​បានទេ។"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"បិទ/បើកគ្រាប់ចុចស្អិត"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"បិទ/បើកគ្រាប់ចុចយឺត"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"បិទ/បើកការចូល​ប្រើប្រាស់តាមរយៈ​សំឡេង"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"បិទ/បើក TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"បើក/បិទ​ការ​ពង្រីក"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"បើកដំណើរការ \"ជ្រើសរើសដើម្បីអាន\""</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"កុំ​រំខាន"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"ផ្លូវកាត់ប៊ូតុងកម្រិតសំឡេង"</string>
     <string name="battery" msgid="769686279459897127">"ថ្ម"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ប្រើស្នាមម្រាមដៃ ដើម្បីបើក"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"តម្រូវឱ្យ​មាន​ការផ្ទៀងផ្ទាត់។ សូមចុច​ឧបករណ៍​ចាប់ស្នាមម្រាមដៃ ដើម្បី​ផ្ទៀងផ្ទាត់​។"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"ការ​ហៅដែលកំពុងដំណើរការ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"កំពុងដំណើរការ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ទិន្នន័យ​ទូរសព្ទចល័ត"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"បានភ្ជាប់"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"បានភ្ជាប់ជាបណ្ដោះអាសន្ន"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ឧបករណ៍អាច​បត់បានកំពុងត្រូវបានលា"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ឧបករណ៍អាច​បត់បានកំពុងត្រូវបានលា"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"បានបើកអេក្រង់ខាងមុខ"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"រំកិលដើម្បីប្រើអេក្រង់ខាងក្នុង"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"បត់"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"លា"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 032a80a..5bcd986 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ಬ್ಯಾಟರಿ ಶೇಕಡಾವಾರು ತಿಳಿದಿಲ್ಲ."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> ಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ಗುಂಪು ವಿಸ್ತರಿಸಿ."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ರೋಮಿಂಗ್"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ಆಫ್"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ಹಬ್ ಮೋಡ್ ಅನ್ನು ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಮಾಡಿ"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ಚಾರ್ಜ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ನೆಚ್ಚಿನ ವಿಜೆಟ್‌ಗಳು ಮತ್ತು ಸ್ಕ್ರೀನ್ ಸೇವರ್‌ಗಳನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ಪ್ರಾರಂಭಿಸೋಣ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ಚಾರ್ಜ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ನೆಚ್ಚಿನ ಸ್ಕ್ರೀನ್‌ಸೇವರ್‌ಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ಪುಲ್‌ಡೌನ್ ಮೆನು"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ಈ ಸೆಶನ್‌ನಲ್ಲಿನ ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"ಸಂಭಾಷಣೆ ಅಧಿಸೂಚನೆಗಳ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಹಾಗೂ ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಪ್ರೊಫೈಲ್ ಚಿತ್ರವಾಗಿ ತೋರಿಸುತ್ತದೆ, ಬಬಲ್‌ನಂತೆ ಗೋಚರಿಸುತ್ತದೆ, ಅಡಚಣೆ ಮಾಡಬೇಡ ಮೋಡ್‌ಗೆ ಅಡ್ಡಿಯುಂಟುಮಾಡುತ್ತದೆ"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ಆದ್ಯತೆ"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"ಸಂವಾದ ಫೀಚರ್‌ಗಳನ್ನು <xliff:g id="APP_NAME">%1$s</xliff:g> ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ಫೀಡ್‌ಬ್ಯಾಕ್"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ವಜಾಗೊಳಿಸಿ"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"ಸ್ಟಿಕಿ ಕೀಗಳನ್ನು ಟಾಗಲ್ ಮಾಡಿ"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"ನಿಧಾನ ಕೀಗಳನ್ನು ಟಾಗಲ್ ಮಾಡಿ"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"ಧ್ವನಿ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"ಟಾಗಲ್ TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"ಟಾಗಲ್ ಮ್ಯಾಗ್ನಿಫಿಕೇಶನ್"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"\'ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಆಲಿಸಿ\' ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"ವಾಲ್ಯೂಮ್ ಬಟನ್‌ಗಳ ಶಾರ್ಟ್‌ಕಟ್‌"</string>
     <string name="battery" msgid="769686279459897127">"ಬ್ಯಾಟರಿ"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ತೆರೆಯುವುದಕ್ಕಾಗಿ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್ನು ಬಳಸಿ"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ದೃಢೀಕರಣದ ಅವಶ್ಯಕತೆಯಿದೆ. ದೃಢೀಕರಿಸಲು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"ಚಾಲ್ತಿಯಲ್ಲಿದೆ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"ಕನೆಕ್ಟ್ ಆಗಿದೆ"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"ತಾತ್ಕಾಲಿಕವಾಗಿ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ಫೋಲ್ಡ್ ಮಾಡಬಹುದಾದ ಸಾಧನವನ್ನು ಅನ್‌ಫೋಲ್ಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ಫೋಲ್ಡ್ ಮಾಡಬಹುದಾದ ಸಾಧನವನ್ನು ಸುತ್ತಲೂ ತಿರುಗಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ಫ್ರಂಟ್ ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿದೆ"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"ಒಳಗಿನ ಸ್ಕ್ರೀನ್ ಬಳಸಲು ಸ್ಲೈಡ್ ಮಾಡಿ"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ಫೋಲ್ಡ್ ಮಾಡಿರುವುದು"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ಅನ್‌ಫೋಲ್ಡ್ ಮಾಡಿರುವುದು"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 4910e8c..fd2c62e 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"배터리 잔량을 알 수 없습니다."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>에 연결되었습니다."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>에 연결됨"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"그룹을 펼칩니다."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"애플리케이션을 엽니다."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"연결되지 않았습니다."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"로밍"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"사용 안함"</string>
@@ -540,14 +538,10 @@
     <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"위젯을 사용하여 앱을 열려면 본인 인증을 해야 합니다. 또한 태블릿이 잠겨 있더라도 누구나 볼 수 있다는 점을 유의해야 합니다. 일부 위젯은 잠금 화면에 적합하지 않고 여기에 추가하기에 안전하지 않을 수 있습니다."</string>
     <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"확인"</string>
     <string name="accessibility_glanceable_hub_to_dream_button" msgid="7552776300297055307">"화면 보호기 버튼 표시"</string>
-    <!-- no translation found for hub_onboarding_bottom_sheet_title (162092881395529947) -->
-    <skip />
-    <!-- no translation found for hub_onboarding_bottom_sheet_text (8589816797970240544) -->
-    <skip />
-    <!-- no translation found for hub_onboarding_bottom_sheet_action_button (6161983690157872829) -->
-    <skip />
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"허브 모드 살펴보기"</string>
+    <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"충전하는 동안 즐겨 찾는 위젯과 화면 보호기에 액세스하세요."</string>
+    <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"시작"</string>
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"충전 중에 즐겨찾는 화면 보호기 표시"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"사용자 전환"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"풀다운 메뉴"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"이 세션에 있는 모든 앱과 데이터가 삭제됩니다."</string>
@@ -810,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"대화 알림 상단에 표시, 잠금 화면에 프로필 사진으로 표시, 대화창으로 표시, 방해 금지 모드를 무시함"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"우선순위"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> 앱은 대화 기능을 지원하지 않습니다."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"의견"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"닫기"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"다시 표시하지 않음"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"이 알림은 수정할 수 없습니다."</string>
@@ -927,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"고정키 전환"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"느린 키 전환"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"음성 액세스 전환"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack 전환"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"확대 전환"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"텍스트 읽어주기 활성화"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"방해 금지 모드"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"볼륨 버튼 단축키"</string>
     <string name="battery" msgid="769686279459897127">"배터리"</string>
@@ -1147,7 +1139,7 @@
     <string name="accessibility_floating_button_action_remove_menu" msgid="6730432848162552135">"삭제"</string>
     <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"전환"</string>
     <string name="accessibility_floating_button_action_edit" msgid="1688227814600463987">"수정"</string>
-    <string name="quick_controls_title" msgid="6839108006171302273">"기기 컨트롤"</string>
+    <string name="quick_controls_title" msgid="6839108006171302273">"기기 제어"</string>
     <string name="controls_providers_title" msgid="6879775889857085056">"컨트롤을 추가할 앱을 선택하세요"</string>
     <string name="controls_number_of_favorites" msgid="4481806788981836355">"{count,plural, =1{설정이 #개 추가되었습니다.}other{설정이 #개 추가되었습니다.}}"</string>
     <string name="controls_removed" msgid="3731789252222856959">"삭제됨"</string>
@@ -1312,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"지문으로 열기"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"인증이 필요합니다. 지문 센서를 터치하여 인증하세요."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"진행 중인 통화"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"진행 중"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"모바일 데이터"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"연결됨"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"일시적으로 연결됨"</string>
@@ -1403,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"폴더블 기기를 펼치는 모습"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"폴더블 기기를 뒤집는 모습"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"전면 화면 켜짐"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"접은 상태"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"펼친 상태"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
@@ -1519,12 +1512,10 @@
     <string name="touchpad_recent_apps_gesture_success_body" msgid="4334263906697493273">"최근 앱 보기 동작을 완료했습니다."</string>
     <string name="touchpad_recent_gesture_error_body" msgid="8695535720378462022">"최근 앱을 보려면 터치패드에서 세 손가락을 사용해 위로 스와이프한 채로 유지하세요."</string>
     <string name="touchpad_switch_apps_gesture_action_title" msgid="6835222344612924512">"앱 전환"</string>
-    <!-- no translation found for touchpad_switch_apps_gesture_guidance (2554844933805502538) -->
-    <skip />
+    <string name="touchpad_switch_apps_gesture_guidance" msgid="2554844933805502538">"네 손가락을 사용해 터치패드에서 오른쪽으로 스와이프하세요."</string>
     <string name="touchpad_switch_apps_gesture_success_title" msgid="4894947244328032458">"잘하셨습니다"</string>
     <string name="touchpad_switch_apps_gesture_success_body" msgid="8151089866035126312">"앱 전환 동작을 완료했습니다."</string>
-    <!-- no translation found for touchpad_switch_gesture_error_body (5895231916964677918) -->
-    <skip />
+    <string name="touchpad_switch_gesture_error_body" msgid="5895231916964677918">"앱을 전환하려면 네 손가락을 사용해 터치패드에서 오른쪽으로 스와이프하세요"</string>
     <string name="tutorial_action_key_title" msgid="8172535792469008169">"모든 앱 보기"</string>
     <string name="tutorial_action_key_guidance" msgid="5040613427202799294">"키보드의 작업 키를 누르세요."</string>
     <string name="tutorial_action_key_success_title" msgid="2371827347071979571">"잘하셨습니다"</string>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 6619ad0..1916cbc 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Батареянын деңгээли белгисиз."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> менен туташкан."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> менен туташты."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Топту жайып көрсөтүү."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Колдонмону ачуу."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Интернет жок."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роуминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Өчүк"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Түйүн режимин колдонуп көрүңүз"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Кубатталып жатканда жактырган виджеттериңизди жана көшөгөлөрдү колдонуңуз."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Кеттик!"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Кубаттап жатканда жактырган көшөгөлөрдү көрсөтүңүз"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Колдонуучуну которуу"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ылдый түшүүчү меню"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Бул сеанстагы бардык колдонмолор жана аларга байланыштуу нерселер өчүрүлөт."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Cүйлөшүүлөр тууралуу билдирмелердин жогору жагында жана кулпуланган экранда профилдин сүрөтү, ошондой эле калкып чыкма билдирме түрүндө көрүнүп, \"Тынчымды алба\" режимин токтотот"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Маанилүүлүгү"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунда оозеки сүйлөшкөнгө болбойт"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Пикир билдирүү"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Жабуу"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Экинчи көрсөтүлбөсүн"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бул билдирмелерди өзгөртүүгө болбойт."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Жабышма баскычтарды өчүрүү/күйгүзүү"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Жай баскычтарды өчүрүү/күйгүзүү"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access\'ти өчүрүү/күйгүзүү"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Talkback функциясын өчүрүү/күйгүзүү"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Чоңойтууну өчүрүү/күйгүзүү"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"\"Басып туруп угуңуз\" функциясын иштетүү"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Тынчымды алба"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Үндү көзөмөлдөөчү баскычтардын кыска жолдору"</string>
     <string name="battery" msgid="769686279459897127">"Батарея"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Манжаңыздын изи менен ачыңыз"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Аныктыкты текшерүү талап кылынат. Аныктыгын текшерүү үчүн манжа изинин сенсоруна тийип коюңуз."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Учурдагы чалуу"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Учурдагы"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобилдик трафик"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Туташты"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Убактылуу туташып турат"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Ачылып турган бүктөлмө түзмөк"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Оодарылып жаткан бүктөлмө түзмөк"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Маңдайкы экран күйгүзүлдү"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"бүктөлгөн"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ачылган"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index 0f4ec94..f61186d 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ບໍ່ຮູ້ເປີເຊັນແບັດເຕີຣີ."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"ເຊື່ອມ​ຕໍ່​ຫາ <xliff:g id="BLUETOOTH">%s</xliff:g> ແລ້ວ."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"ເຊື່ອມຕໍ່ຫາ <xliff:g id="CAST">%s</xliff:g> ແລ້ວ."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ຂະຫຍາຍກຸ່ມ."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ເປີດແອັບພລິເຄຊັນ."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"ບໍ່ໄດ້ເຊື່ອມຕໍ່."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ໂຣມມິງ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ປິດ"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ສຳຫຼວດໂໝດ Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ເຂົ້າເຖິງວິດເຈັດ ແລະ ພາບພັກໜ້າຈໍທີ່ທ່ານມັກໃນລະຫວ່າງທີ່ສາກ."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ມາເລີ່ມກັນເລີຍ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ສະແດງພາບພັກໜ້າຈໍທີ່ທ່ານມັກໃນລະຫວ່າງທີ່ສາກ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ສະຫຼັບຜູ້ໃຊ້"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ເມນູແບບດຶງລົງ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ແອັບຯ​ແລະ​ຂໍ້​ມູນ​ທັງ​ໝົດ​ໃນ​ເຊດ​ຊັນ​ນີ້​ຈະ​ຖືກ​ລຶບ​ອອກ."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"ສະແດງຢູ່ເທິງສຸດຂອງການແຈ້ງເຕືອນການສົນທະນາ ແລະ ເປັນຮູບໂປຣໄຟລ໌ຢູ່ໜ້າຈໍລັອກ, ປາກົດເປັນຟອງ, ສະແດງໃນໂໝດຫ້າມລົບກວນໄດ້"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ສຳຄັນ"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ບໍ່ຮອງຮັບຄຸນສົມບັດການສົນທະນາ"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ຄຳຕິຊົມ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ປິດໄວ້"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ບໍ່ຕ້ອງສະແດງອີກ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ບໍ່ສາມາດແກ້ໄຂການແຈ້ງເຕືອນເຫຼົ່ານີ້ໄດ້."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ໃຊ້ລາຍນິ້ວມືເພື່ອເປີດ"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ຕ້ອງພິສູດຢືນຢັນ. ແຕະໃສ່ເຊັນເຊີລາຍນິ້ວມືເພື່ອພິສູດຢືນຢັນ."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"ສາຍທີ່ສົນທະນາຢູ່"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"ດຳເນີນຢູ່"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ອິນເຕີເນັດມືຖື"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"ເຊື່ອມຕໍ່ແລ້ວຊົ່ວຄາວ"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ອຸປະກອນທີ່ພັບໄດ້ກຳລັງກາງອອກ"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ອຸປະກອນທີ່ພັກໄດ້ກຳລັງປີ້ນໄປມາ"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ເປີດໜ້າຈໍດ້ານໜ້າແລ້ວ"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"ເລື່ອນເພື່ອໃຊ້ໜ້າຈໍດ້ານໃນ"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ພັບແລ້ວ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ກາງອອກແລ້ວ"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 1c514c4..88f9399 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -142,7 +142,7 @@
     <string name="share_to_app_stop_dialog_title_generic" msgid="9079161538135843648">"Nebebendrinti?"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Šiuo metu bendrinate visą ekraną su šia programa: <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Šiuo metu bendrinate visą ekraną su programa"</string>
-    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Šiuo metu bendrinate šią programą: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+    <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Šiuo metu bendrinate programą „<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>“"</string>
     <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Šiuo metu bendrinate programą"</string>
     <string name="share_to_app_stop_dialog_message_generic" msgid="7622174291691249392">"Šiuo metu bendrinate su programa"</string>
     <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Nebebendrinti"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akumuliatoriaus energija procentais nežinoma."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Prisijungta prie „<xliff:g id="BLUETOOTH">%s</xliff:g>“."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Prisijungta prie <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Išskleisti grupę."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Atidaryti programą."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Neprijungta."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Tarptinklinis ryšys"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Išjungta"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Naršymas centro režimu"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Įkraudami pasiekite mėgstamiausius valdiklius ir ekrano užsklandas."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Pirmyn"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Įkraunant rodyti mėgstamiausias ekrano užsklandas"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Perjungti naudotoją"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"išplečiamasis meniu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Bus ištrintos visos šios sesijos programos ir duomenys."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Rodoma pokalbių pranešimų viršuje ir kaip profilio nuotrauka užrakinimo ekrane, burbule, pertraukia netrukdymo režimą"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritetiniai"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Programa „<xliff:g id="APP_NAME">%1$s</xliff:g>“ nepalaiko pokalbių funkcijų"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Atsiliepimai"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Uždaryti"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Neberodyti"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šių pranešimų keisti negalima."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Perjungti atmeniuosius klavišus"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Perjungti lėtuosius klavišus"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Perjungti „Voice Access“"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Perjungti „TalkBack“"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Perjungti didinimą"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Suaktyvinti funkciją „Teksto ištarimas“"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Netrukdymo režimas"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Garsumo mygtukų spartusis klavišas"</string>
     <string name="battery" msgid="769686279459897127">"Akumuliatorius"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Naudokite kontrolinį kodą, kad atidarytumėte"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Reikia nustatyti tapatybę. Nustatykite tapatybę palietę kontrolinio kodo jutiklį."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Vykstantis skambutis"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Vyksta"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobiliojo ryšio duomenys"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Prisijungta"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Laikinai prijungta"</string>
@@ -1328,7 +1322,7 @@
     <string name="see_all_networks" msgid="3773666844913168122">"Žiūrėti viską"</string>
     <string name="to_switch_networks_disconnect_ethernet" msgid="6698111101156951955">"Norėdami perjungti tinklus, atjunkite eternetą"</string>
     <string name="wifi_scan_notify_message" msgid="3753839537448621794">"Kad pagerintų įrenginio funkcijas, programos ir paslaugos vis tiek gali bet kada nuskaityti ieškodamos „Wi‑Fi“ tinklų, net jei „Wi‑Fi“ išjungtas. Tai galite pakeisti „Wi-Fi“ nuskaitymo nustatymuose. "<annotation id="link">"Pakeisti"</annotation></string>
-    <string name="turn_off_airplane_mode" msgid="8425587763226548579">"Išjungti lėktuvo režimą"</string>
+    <string name="turn_off_airplane_mode" msgid="8425587763226548579">"Išj. lėk. rež."</string>
     <string name="qs_tile_request_dialog_text" msgid="3501359944139877694">"„<xliff:g id="APPNAME">%1$s</xliff:g>“ nori prie sparčiųjų nustatymų pridėti toliau pateiktą išklotinės elementą"</string>
     <string name="qs_tile_request_dialog_add" msgid="4888460910694986304">"Pridėti išklotinės elementą"</string>
     <string name="qs_tile_request_dialog_not_add" msgid="4168716573114067296">"Nepridėti išklotinės elemento"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Lankstomasis įrenginys išlankstomas"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Lankstomasis įrenginys apverčiamas"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Priekinis ekranas įjungtas"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Slinkite, kad naudotumėte vidinį ekraną"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"sulenkta"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"nesulenkta"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
@@ -1491,7 +1486,7 @@
     <string name="launch_keyboard_tutorial_notification_title" msgid="8849933155160522519">"Naršykite naudodamiesi klaviatūra"</string>
     <string name="launch_keyboard_tutorial_notification_content" msgid="2880339951512757918">"Sužinokite apie sparčiuosius klavišus"</string>
     <string name="launch_touchpad_tutorial_notification_title" msgid="2243780062772196901">"Naršykite naudodamiesi jutikline dalimi"</string>
-    <string name="launch_touchpad_tutorial_notification_content" msgid="7931085031240753226">"Sužinokite jutiklinės dalies gestus"</string>
+    <string name="launch_touchpad_tutorial_notification_content" msgid="7931085031240753226">"Peržvelkite jutiklinės dalies gestus"</string>
     <string name="launch_keyboard_touchpad_tutorial_notification_title" msgid="1940023776496198762">"Naršykite naudodamiesi klaviatūra ir jutikline dalimi"</string>
     <string name="launch_keyboard_touchpad_tutorial_notification_content" msgid="1780725168171929365">"Sužinokite jutiklinės dalies gestus, sparčiuosius klavišus ir kt."</string>
     <string name="touchpad_tutorial_back_gesture_button" msgid="3104716365403620315">"Grįžti"</string>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 633af09..e0e38a1 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akumulatora uzlādes līmenis procentos nav zināms."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ir izveidots savienojum ar <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Savienots ar ierīci <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Izvērst grupu."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Atvērt lietojumprogrammu."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Savienojums nav izveidots."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Viesabonēšana"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Izslēgti"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Izpētiet centra režīmu"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Piekļūstiet iecienītajiem logrīkiem un ekrānsaudzētājiem uzlādes laikā."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Aiziet!"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Uzlādes laikā rādīt izlases ekrānsaudzētājus"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Mainīt lietotāju"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"novelkamā izvēlne"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Tiks dzēstas visas šīs sesijas lietotnes un dati."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Parādās sarunu paziņojumu augšdaļā un kā profila attēls bloķēšanas ekrānā, arī kā burbulis, pārtrauc režīmu “Netraucēt”."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritārs"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g> netiek atbalstītas sarunu funkcijas."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Atsauksmes"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Nerādīt"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Vairs nerādīt"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šos paziņojumus nevar modificēt."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Pārslēgt taustiņu ķēdi"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Pārslēgt lēnos taustiņus"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Pārslēgt lietotni “Balss piekļuve”"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Pārslēgt funkciju TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Pārslēgt funkciju Palielinājums"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktivizēt pakalpojumu “Atlasīt, lai izrunātu”"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Režīms “Netraucēt”"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Skaļuma pogu saīsne"</string>
     <string name="battery" msgid="769686279459897127">"Akumulators"</string>
@@ -967,7 +962,7 @@
     <string name="right_keycode" msgid="2480715509844798438">"Taustiņu kods labajā pusē"</string>
     <string name="left_icon" msgid="5036278531966897006">"Ikona kreisajā pusē"</string>
     <string name="right_icon" msgid="1103955040645237425">"Ikona labajā pusē"</string>
-    <string name="drag_to_add_tiles" msgid="8933270127508303672">"Lai pievienotu elementus, pieturiet tos un velciet"</string>
+    <string name="drag_to_add_tiles" msgid="8933270127508303672">"Lai pievienotu elementus, turiet un velciet tos"</string>
     <string name="drag_to_rearrange_tiles" msgid="2143204300089638620">"Lai pārkārtotu elementus, turiet un velciet tos"</string>
     <string name="drag_to_remove_tiles" msgid="4682194717573850385">"Lai noņemtu vienumus, velciet tos šeit."</string>
     <string name="drag_to_remove_disabled" msgid="933046987838658850">"Nepieciešami vismaz <xliff:g id="MIN_NUM_TILES">%1$d</xliff:g> elementi"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Atvēršanai izmantojiet pirksta nospiedumu"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Nepieciešama autentifikācija. Pieskarieties pirksta nospieduma sensoram, lai veiktu autentificēšanu."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Notiekošs zvans"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Aktīva darbība"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobilie dati"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Ir izveidots savienojums"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Īslaicīgi izveidots savienojums"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Salokāma ierīce tiek atlocīta"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Salokāma ierīce tiek apgriezta"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Priekšējais ekrāns ir ieslēgts"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"aizvērta"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"atvērta"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index 8324cdb..0a9ca89 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -110,7 +110,7 @@
     <string name="screenrecord_background_processing_label" msgid="7244617554884238898">"Се обработува снимка од екран"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Тековно известување за сесија за снимање на екранот"</string>
     <string name="screenrecord_permission_dialog_title" msgid="7415261783188749730">"Да се снима екранот?"</string>
-    <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"Снимање на една апликација"</string>
+    <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"Снимање една апликација"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen" msgid="4882406311415082016">"Снимај го екранов"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen_for_display" msgid="4169494703993148253">"Снимај го екранот %s"</string>
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"Додека го снимате целиот екран, сѐ што е прикажано на екранот се снима. Затоа, бидете внимателни со лозинките, деталите за плаќање, пораките, фотографиите и аудиото и видеото."</string>
@@ -126,7 +126,7 @@
     <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_label" msgid="72699670052087989">"Сопри"</string>
+    <string name="screenrecord_stop_label" msgid="72699670052087989">"Сопрете"</string>
     <string name="screenrecord_share_label" msgid="5025590804030086930">"Сподели"</string>
     <string name="screenrecord_save_title" msgid="1886652605520893850">"Снимката од екранот е зачувана"</string>
     <string name="screenrecord_save_text" msgid="3008973099800840163">"Допрете за прегледување"</string>
@@ -145,7 +145,7 @@
     <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Во моментов ја споделувате <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
     <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Во моментов споделувате апликација"</string>
     <string name="share_to_app_stop_dialog_message_generic" msgid="7622174291691249392">"Во моментов споделувате со апликација"</string>
-    <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Сопри го споделувањето"</string>
+    <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Сопрете го споделувањето"</string>
     <string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Се емитува екранот"</string>
     <string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Да се сопре емитувањето?"</string>
     <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Во моментов го емитувате целиот екран на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Процентот на батеријата е непознат."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Поврзано со <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Поврзано со <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Проширете ја групата."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Отворете ја апликацијата."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Не е поврзана"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роаминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Исклучено"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Истражете го режимот Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Пристапувајте до омилените виџети и штедачи на екран при полнење."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Ајде"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Прикажувајте ги омилените штедачи на екран при полнење"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Промени го корисникот"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"паѓачко мени"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Сите апликации и податоци во сесијава ќе се избришат."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Се прикажува најгоре во известувањата за разговор и како профилна слика на заклучен екран, се појавува како балонче, го прекинува „Не вознемирувај“"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Приоритетно"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не поддржува функции за разговор"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Повратни информации"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Отфрли"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Не прикажувај повторно"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Овие известувања не може да се изменат"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Вклучи/исклучи „Лепливи копчиња“"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Вклучи/исклучи „Бавни копчиња“"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Вклучи/исклучи „Пристап со глас“"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Вклучете/исклучете TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Вклучете/исклучете зголемување"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Активирајте ја „Изберете за говор“"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Не вознемирувај"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Кратенка за копчињата за јачина на звук"</string>
     <string name="battery" msgid="769686279459897127">"Батерија"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Користете отпечаток за да се отвори"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Потребна е проверка. Допрете го сензорот за отпечаток за да автентицирате."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Тековен повик"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Во тек"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобилен интернет"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Поврзано"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Привремено поврзано"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Преклопувачки уред се отклопува"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Преклопувачки уред се врти"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Предниот екран е вклучен"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"затворен"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"отворен"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 267d00b..8ef9b79 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ബാറ്ററി ശതമാനം അജ്ഞാതമാണ്."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റുചെയ്‌തു."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തു."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ഗ്രൂപ്പ് വികസിപ്പിക്കുക."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ആപ്പ് തുറക്കുക."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"കണക്റ്റുചെയ്‌തിട്ടില്ല."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"റോമിംഗ്"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ഓഫ്"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ഹബ് മോഡ് അടുത്തറിയുക"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ചാർജ് ചെയ്യുമ്പോൾ നിങ്ങളുടെ പ്രിയപ്പെട്ട വിജറ്റുകളും സ്‌ക്രീൻ സേവറുകളും ആക്‌സസ് ചെയ്യുക."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"തുടങ്ങാം"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ചാർജ് ചെയ്യുമ്പോൾ നിങ്ങളുടെ പ്രിയപ്പെട്ട സ്ക്രീൻ സേവറുകൾ കാണിക്കുക"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ഉപയോക്താവ് മാറുക"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"പുൾഡൗൺ മെനു"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ഈ സെഷനിലെ എല്ലാ ആപ്പുകളും ഡാറ്റയും ഇല്ലാതാക്കും."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"സംഭാഷണ അറിയിപ്പുകളുടെ മുകളിലും സ്ക്രീൻ ലോക്കായിരിക്കുമ്പോൾ ഒരു പ്രൊഫൈൽ ചിത്രമായും ബബിൾ രൂപത്തിൽ ദൃശ്യമാകുന്നു, ശല്യപ്പെടുത്തരുത് മോഡ് തടസ്സപ്പെടുത്തുന്നു"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"മുൻഗണന"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"സംഭാഷണ ഫീച്ചറുകളെ <xliff:g id="APP_NAME">%1$s</xliff:g> പിന്തുണയ്‌ക്കുന്നില്ല"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ഫീഡ്ബാക്ക്"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ഡിസ്‌മിസ് ചെയ്യുക"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"വീണ്ടും കാണിക്കരുത്"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ഈ അറിയിപ്പുകൾ പരിഷ്ക്കരിക്കാനാവില്ല."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"സ്‌റ്റിക്കി കീകൾ ടോഗിൾ ചെയ്യുക"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"സ്ലോ കീകൾ ടോഗിൾ ചെയ്യുക"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access ടോഗിൾ ചെയ്യുക"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack ടോഗിൾ ചെയ്യുക"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"മാഗ്നിഫിക്കേഷൻ ടോഗിൾ ചെയ്യുക"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"\'വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക\' സജീവമാക്കുക"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"ശല്യപ്പെടുത്തരുത്"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"വോളിയം ബട്ടൺ കുറുക്കുവഴി"</string>
     <string name="battery" msgid="769686279459897127">"ബാറ്ററി"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"തുറക്കുന്നതിന് നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കുക"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"പരിശോധിച്ചുറപ്പിക്കേണ്ടതുണ്ട്. പരിശോധിച്ചുറപ്പിക്കാൻ, വിരലടയാള സെൻസറിൽ സ്‌പർശിക്കുക."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"കോളിലാണ്"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"നടന്നുകൊണ്ടിരിക്കുന്നവ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"മൊബൈൽ ഡാറ്റ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"കണക്റ്റ് ചെയ്തു"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"താൽക്കാലികമായി കണക്റ്റ് ചെയ്തിരിക്കുന്നു"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ഫോൾഡ് ചെയ്യാവുന്ന ഉപകരണം അൺഫോൾഡ് ആകുന്നു"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ഫോൾഡ് ചെയ്യാവുന്ന ഉപകരണം, കറങ്ങുന്ന വിധത്തിൽ ഫ്ലിപ്പ് ആകുന്നു"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ഫ്രണ്ട് സ്ക്രീൻ ഓണാക്കി"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"ഉള്ളിലുള്ള സ്‌ക്രീൻ ഉപയോഗിക്കുന്നതിന് സ്ലൈഡുചെയ്യുക"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ഫോൾഡ് ചെയ്തത്"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"അൺഫോൾഡ് ചെയ്തത്"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index e0cd2a6..feca241 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Батарейн хувь тодорхойгүй байна."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>-тай холбогдсон."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>-д холбогдсон."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Бүлгийг дэлгэнэ үү."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Аппликейшныг нээнэ үү."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Холбогдоогүй."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роуминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Идэвхгүй"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hub горимыг судлах"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Цэнэглэж байхад дуртай виджет, дэлгэц амраагчдаа хандана уу."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"За эхэлцгээе"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Цэнэглэж байхдаа дуртай дэлгэц амраагчаа харуулна уу"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Хэрэглэгчийг сэлгэх"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"эвхмэл цэс"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Энэ харилцан үйлдлийн бүх апп болон дата устах болно."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Харилцан ярианы мэдэгдлийн дээд талд болон түгжигдсэн дэлгэц дээр профайл зураг байдлаар харуулах бөгөөд бөмбөлөг хэлбэрээр харагдана. Бүү саад бол горимыг тасалдуулна"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Чухал"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь харилцан ярианы онцлогуудыг дэмждэггүй"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Санал хүсэлт"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Хаах"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Дахиж бүү харуул"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эдгээр мэдэгдлийг өөрчлөх боломжгүй."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Бэхэлсэн товчийг асаах/унтраах"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Удаан товчийг асаах/унтраах"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access-г асаах/унтраах"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack-г асаах/унтраах"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Томруулахыг асаах/унтраах"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Ярихаар сонгохыг идэвхжүүлэх"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Бүү саад бол"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Дууны түвшний товчлуурын товчлол"</string>
     <string name="battery" msgid="769686279459897127">"Батарей"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Нээхийн тулд хурууны хээг ашиглана уу"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Баталгаажуулалт шаардлагатай. Баталгаажуулахын тулд хурууны хээ мэдрэгчид хүрнэ үү."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Үргэлжилж буй дуудлага"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Үргэлжилж байгаа"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобайл дата"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Холбогдсон"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Түр зуур холбогдсон"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Эвхэгддэг төхөөрөмжийг дэлгэж байна"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Эвхэгддэг төхөөрөмжийг хөнтөрч байна"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Нүүрэн талын дэлгэцийг асаасан"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"эвхсэн"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"дэлгэсэн"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 4adaa29..a3c45f3 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"बॅटरीच्या चार्जिंगची टक्केवारी माहित नाही."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> शी कनेक्‍ट केले."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> शी कनेक्ट केले."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"गटाचा विस्तार करा."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"अ‍ॅप उघडा."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"कनेक्ट केले नाही."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"रोमिंग"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"बंद"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"हब मोड एक्सप्लोर करा"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"चार्ज करत असताना तुमचे आवडते विजेट आणि स्क्रीन सेव्हर अ‍ॅक्सेस करा."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"चला सुरू करू या"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"चार्ज करत असताना तुमचे आवडते स्क्रीनसेव्हर दाखवा"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"वापरकर्ता स्विच करा"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"पुलडाउन मेनू"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"या सत्रातील सर्व अ‍ॅप्स आणि डेटा हटवला जाईल."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"संभाषण सूचनांच्या वरती आणि लॉक स्क्रीनवरील प्रोफाइल फोटो म्हणून दिसते, बबल म्हणून दिसते, व्यत्यय आणू नका यामध्ये अडथळा आणते"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"प्राधान्य"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> हे संभाषण वैशिष्ट्यांना सपोर्ट करत नाही"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"फीडबॅक"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"डिसमिस करा"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"पुन्हा दाखवू नका"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"या सूचनांमध्ये सुधारणा केली जाऊ शकत नाही."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"स्टिकी की टॉगल करा"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"स्लो की टॉगल करा"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access टॉगल करा"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Talkback टॉगल करा"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"मॅग्निफिकेशन टॉगल करा"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"बोलण्यासाठी निवडा सुरू करा"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"व्यत्यय आणू नका"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"आवाजाच्या बटणांचा शार्टकट"</string>
     <string name="battery" msgid="769686279459897127">"बॅटरी"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"उघडण्यासाठी फिंगरप्रिंट वापरा"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ऑथेंटिकेशन आवश्यक आहे. ऑथेंटिकेट करण्यासाठी फिंगरप्रिंट सेन्सरला स्पर्श करा."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"सुरू असलेला कॉल"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"सुरू असलेले"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"मोबाइल डेटा"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"कनेक्ट केले आहे"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"तात्पुरते कनेक्ट केलेले"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"फोल्ड करता येण्यासारखे डिव्हाइस अनफोल्ड केले जात आहे"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"फोल्ड करता येण्यासारखे डिव्हाइस आजूबाजूला फ्लिप केले जात आहे"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"पुढील स्क्रीन सुरू केलेली आहे"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"आतील स्क्रीन वापरण्यासाठी स्लाइड करा"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"फोल्ड केलेले"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"फोल्ड न केलेले"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 8d38af4..bb7dcb8 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Peratusan kuasa bateri tidak diketahui."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Disambungkan kepada <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Disambungkan ke <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Kembangkan kumpulan."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Buka aplikasi."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Tidak disambungkan."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Perayauan"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Mati"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Terokai mod hab"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Akses widget dan penyelamat skrin kegemaran anda semasa melakukan pengecasan."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Mari mulakan"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Paparkan penyelamat skrin kegemaran anda semasa pengecasan"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Tukar pengguna"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu tarik turun"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Semua apl dan data dalam sesi ini akan dipadam."</string>
@@ -573,7 +570,7 @@
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"Apabila anda berkongsi seluruh skrin anda, apa-apa sahaja kandungan pada skrin anda boleh dilihat oleh <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. Oleh hal yang demikian, berhati-hati dengan perkara seperti kata laluan, butiran pembayaran, mesej, foto dan audio serta video."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Apabila anda berkongsi apl, apa-apa sahaja kandungan yang dipaparkan atau dimainkan pada apl boleh dilihat oleh <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. Oleh hal yang demikian, berhati-hati dengan perkara seperti kata laluan, butiran pembayaran, mesej, foto dan audio serta video."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Apabila anda berkongsi apl, apa-apa sahaja kandungan yang dipaparkan atau dimainkan dalam apl tersebut boleh dilihat oleh <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. Oleh hal yang demikian, berhati-hati dengan perkara seperti kata laluan, butiran pembayaran, mesej, foto dan audio serta video."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Kongsi skrin"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> telah melumpuhkan pilihan ini"</string>
     <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Pilih apl untuk dikongsi"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Ditunjukkan di bahagian atas pemberitahuan perbualan dan sebagai gambar profil pada skrin kunci, muncul sebagai gelembung, mengganggu Jangan Ganggu"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Keutamaan"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak menyokong ciri perbualan"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Maklum balas"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ketepikan"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Jangan tunjukkan lagi"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Pemberitahuan ini tidak boleh diubah suai."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Togol kekunci lekit"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Togol kekunci perlahan"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Togol Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Togol Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Togol Pembesaran"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktifkan Pilih untuk Bercakap"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Jangan Ganggu"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Pintasan butang kelantangan"</string>
     <string name="battery" msgid="769686279459897127">"Bateri"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Gunakan cap jari untuk membuka"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Pengesahan diperlukan. Sentuh penderia cap jari untuk pengesahan."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Panggilan sedang berlangsung"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Sedang berlangsung"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Data mudah alih"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Disambungkan"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Disambungkan buat sementara waktu"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Peranti boleh lipat dibuka"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Peranti boleh lipat diterbalikkan"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Skrin hadapan dihidupkan"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Luncurkan bar untuk menggunakan skrin dalaman"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"terlipat"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"tidak terlipat"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index c971e3a..0219f69 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ဘက်ထရီရာခိုင်နှုန်းကို မသိပါ။"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>သို့ ချိတ်ဆက်ထား"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> သို့ချိတ်ဆက်ထားပါသည်။"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"အုပ်စုကို ပိုပြသည်။"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"အပလီကေးရှင်းကို ဖွင့်သည်။"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"ချိတ်ဆက်မထားပါ"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ပြင်ပကွန်ရက်သုံးခြင်း"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ပိတ်"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ထိန်းချုပ်စင်တာမုဒ် လေ့လာခြင်း"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"အားသွင်းနေစဉ် အကြိုက်ဆုံးဝိဂျက်များ၊ စခရင်နားချိန်ပုံများ ကြည့်နိုင်သည်။"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"စကြစို့"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"အားသွင်းနေစဉ် သင့်အကြိုက်ဆုံး စခရင်နားချိန်ပုံများကို ပြသည်"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"အသုံးပြုသူကို ပြောင်းလဲရန်"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ဆွဲချမီနူး"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ဒီချိတ်ဆက်မှု ထဲက အက်ပ်များ အားလုံး နှင့် ဒေတာကို ဖျက်ပစ်မည်။"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"စကားဝိုင်း အကြောင်းကြားချက်များ၏ ထိပ်ပိုင်းနှင့် ပရိုဖိုင်ပုံအဖြစ် လော့ခ်မျက်နှာပြင်တွင် ပြသည်။ ပူဖောင်းကွက်အဖြစ် မြင်ရပြီး ‘မနှောင့်ယှက်ရ’ ကို ကြားဖြတ်သည်"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ဦးစားပေး"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> က စကားဝိုင်းဝန်ဆောင်မှုများကို မပံ့ပိုးပါ"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"အကြံပြုချက်"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ပယ်ရန်"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ထပ်မပြပါနှင့်"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ဤအကြောင်းကြားချက်များကို ပြုပြင်၍ မရပါ။"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"ကပ်ခွာကီးများ ပြောင်းရန်"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"အနှေးကီးများ ပြောင်းရန်"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"အသံဖြင့်ထိန်းချုပ်ခြင်း ပြောင်းရန်"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Talkback ခလုတ်"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"ချဲ့ခြင်း ခလုတ်"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"စကားပြော ရွေးခြင်းကို စတင်ရန်"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"မနှောင့်ယှက်ရ"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"အသံထိန်းချုပ်သည့်ခလုတ် ဖြတ်လမ်း"</string>
     <string name="battery" msgid="769686279459897127">"ဘက်ထရီ"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ဖွင့်ရန် လက်ဗွေကို သုံးပါ"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"အထောက်အထားစိစစ်ခြင်း လိုအပ်သည်။ အထောက်အထားစိစစ်ရန် လက်ဗွေ အာရုံခံကိရိယာကို ထိပါ။"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"လက်ရှိခေါ်ဆိုမှု"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"လုပ်ဆောင်နေဆဲ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"မိုဘိုင်းဒေတာ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"ချိတ်ဆက်ထားသည်"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"ယာယီချိတ်ဆက်ထားသည်"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ခေါက်နိုင်သောစက်ကို ဖြန့်လိုက်သည်"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ခေါက်နိုင်သောစက်ကို တစ်ဘက်သို့ လှန်လိုက်သည်"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ရှေ့စခရင် ဖွင့်ထားသည်"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ခေါက်ထားသည်"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ဖြန့်ထားသည်"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 44686a4..15e568b 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -133,7 +133,7 @@
     <string name="screenrecord_save_error" msgid="5862648532560118815">"Feil ved lagring av skjermopptaket"</string>
     <string name="screenrecord_start_error" msgid="2200660692479682368">"Feil ved start av skjermopptaket"</string>
     <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Vil du stoppe opptaket?"</string>
-    <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Du tar nå opp hele skjermen"</string>
+    <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Nå tar du opptak av hele skjermen"</string>
     <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Du tar nå opp <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stopp opptaket"</string>
     <string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Deler skjermen"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batteriprosenten er ukjent."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Koblet til <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Koblet til <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Utvid gruppen."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Åpne appen."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Ikke tilkoblet."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Av"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Utforsk Hub-modus"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Bruk moduler og skjermsparere mens du lader."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Sett i gang"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Vis skjermsparere du liker, under lading"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Bytt bruker"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rullegardinmeny"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle apper og data i denne økten blir slettet."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Vises øverst på samtalevarsler og som et profilbilde på låseskjermen, vises som en boble, avbryter «Ikke forstyrr»"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> støtter ikke samtalefunksjoner"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Tilbakemelding"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Lukk"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ikke vis igjen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse varslene kan ikke endres."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Slå trege taster av eller på"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Slå hengende taster av eller på"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Slå taletilgang av eller på"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Slå TalkBack av/på"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Slå forstørrelse av/på"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktiver tekstopplesing"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ikke forstyrr"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Hurtigtast for volumknappene"</string>
     <string name="battery" msgid="769686279459897127">"Batteri"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Bruk fingeravtrykk for å åpne"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autentisering kreves. Trykk på fingeravtrykkssensoren for å autentisere."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Aktiv samtale"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Kontinuerlig"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobildata"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Tilkoblet"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Koblet til midlertidig"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"En foldbar enhet blir brettet ut"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"En foldbar enhet blir snudd"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Frontskjermen er slått på"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"lagt sammen"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"åpen"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index 0e479ec..02285f2 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -169,7 +169,7 @@
     <string name="immersive_cling_description" msgid="2717426731830851921">"यहाँबाट बाहिरिन स्क्रिनको सिरानबाट तलतिर स्वाइप गर्नुहोस्"</string>
     <string name="immersive_cling_positive" msgid="3076681691468978568">"बुझेँ"</string>
     <string name="accessibility_back" msgid="6530104400086152611">"पछाडि"</string>
-    <string name="accessibility_home" msgid="5430449841237966217">"गृह"</string>
+    <string name="accessibility_home" msgid="5430449841237966217">"होम"</string>
     <string name="accessibility_menu" msgid="2701163794470513040">"मेनु"</string>
     <string name="accessibility_accessibility_button" msgid="4089042473497107709">"पहुँच"</string>
     <string name="accessibility_rotate_button" msgid="1238584767612362586">"स्क्रिन घुमाउनुहोस्"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ब्याट्रीमा कति प्रतिशत चार्ज छ भन्ने कुराको जानाकरी छैन।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> मा जडित।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> मा कनेक्ट गरियो।"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"समूह एक्स्पान्ड गर्नुहोस्।"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"एप खोल्नुहोस्।"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"जडान नगरिएको।"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"रोमिङ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"निष्क्रिय पार्नु"</string>
@@ -352,7 +350,7 @@
     <string name="quick_settings_cast_device_default_name" msgid="6988469571141331700">"बेनाम उपकरण"</string>
     <string name="quick_settings_cast_detail_empty_text" msgid="2846282280014617785">"कुनै उपकरणहरू उपलब्ध छैन"</string>
     <string name="quick_settings_cast_no_network" msgid="3863016850468559522">"Wi-Fi वा इन्टरनेट कनेक्सन छैन"</string>
-    <string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"उज्यालपन"</string>
+    <string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"ब्राइटनेस"</string>
     <string name="quick_settings_inversion_label" msgid="3501527749494755688">"कलर इन्भर्सन"</string>
     <string name="quick_settings_color_correction_label" msgid="5636617913560474664">"कलर करेक्सन"</string>
     <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"फन्टको आकार"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"हब मोडको अन्वेषण गर्नुहोस्"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"चार्ज गर्दै गर्दा आफूलाई मन पर्ने विजेट तथा स्क्रिन सेभर एक्सेस गर्नुहोस्।"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"सुरु गरौँ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"चार्ज भइरहेका बेला आफूलाई मन पर्ने स्क्रिनसेभरहरू देखाउनुहोस्"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"प्रयोगकर्ता फेर्नुहोस्"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"पुलडाउन मेनु"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"यो सत्रमा भएका सबै एपहरू र डेटा मेटाइने छ।"</string>
@@ -565,7 +562,7 @@
     <string name="media_projection_sys_service_dialog_title" msgid="3751133258891897878">"रेकर्ड वा कास्ट गर्न थाल्ने हो?"</string>
     <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"यो फङ्सन प्रदान गर्ने सेवाले रेकर्ड वा कास्ट गर्दै गर्दा तपाईंको स्क्रिनमा देखिने सबै जानकारी अथवा तपाईंको डिभाइसबाट प्ले गरिने सबै सामग्री हेर्न तथा प्रयोग गर्न सक्छ। यसअन्तर्गत पासवर्ड, भुक्तानीसम्बन्धी विवरण, फोटो, म्यासेज र तपाईंले प्ले गर्ने अडियो जस्ता कुराहरू समावेश हुन्छन्।"</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"कुनै एप सेयर वा रेकर्ड गर्नुहोस्"</string>
-    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"स्क्रिन <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> सँग सेयर गर्ने हो?"</string>
+    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"आफ्नो स्क्रिन <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> मा सेयर गर्ने हो?"</string>
     <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"एउटा एप सेयर गर्नुहोस्"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_single_app (2308901434964846084) -->
     <skip />
@@ -602,7 +599,7 @@
     <string name="notification_history_button_description" msgid="1578657591405033383">"नोटिफिकेसनसम्बन्धी हिस्ट्री"</string>
     <string name="notification_section_header_incoming" msgid="850925217908095197">"नयाँ"</string>
     <string name="notification_section_header_gentle" msgid="6804099527336337197">"साइलेन्ट"</string>
-    <string name="notification_section_header_alerting" msgid="5581175033680477651">"सूचनाहरू"</string>
+    <string name="notification_section_header_alerting" msgid="5581175033680477651">"नोटिफिकेसनहरू"</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_open_settings" msgid="6235202417954844004">"नोटिफिकेसन सेटिङ खोल्नुहोस्"</string>
@@ -695,7 +692,7 @@
     <string name="stream_ring" msgid="7550670036738697526">"घन्टी"</string>
     <string name="stream_music" msgid="2188224742361847580">"मिडिया"</string>
     <string name="stream_alarm" msgid="16058075093011694">"अलार्म"</string>
-    <string name="stream_notification" msgid="7930294049046243939">"सूचना"</string>
+    <string name="stream_notification" msgid="7930294049046243939">"नोटिफिकेसन"</string>
     <string name="stream_bluetooth_sco" msgid="6234562365528664331">"ब्लुटुथ"</string>
     <string name="stream_dtmf" msgid="7322536356554673067">"दोहोरो बहु टोनको फ्रिक्वेन्सी"</string>
     <string name="stream_accessibility" msgid="3873610336741987152">"पहुँच"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"यो वार्तालापका सूचनाहरूको सिरानमा, बबलका रूपमा र लक स्क्रिनमा प्रोफाइल फोटोका रूपमा देखिन्छ। साथै, यसले गर्दा \'बाधा नपुऱ्याउनुहोस्\' नामक सुविधामा अवरोध आउँछ"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"प्राथमिकता"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> मा वार्तालापसम्बन्धी सुविधा प्रयोग गर्न मिल्दैन"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"प्रतिक्रिया"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"हटाउनुहोस्"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"फेरि नदेखाउनुहोस्"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"यी सूचनाहरू परिमार्जन गर्न मिल्दैन।"</string>
@@ -860,10 +858,10 @@
     <string name="keyboard_key_numpad_template" msgid="7316338238459991821">"नमप्याड <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="notif_inline_reply_remove_attachment_description" msgid="7954075334095405429">"एट्याचमेन्ट हटाउनुहोस्"</string>
     <string name="keyboard_shortcut_group_system" msgid="1583416273777875970">"प्रणाली"</string>
-    <string name="keyboard_shortcut_group_system_home" msgid="7465138628692109907">"गृह"</string>
+    <string name="keyboard_shortcut_group_system_home" msgid="7465138628692109907">"होम"</string>
     <string name="keyboard_shortcut_group_system_recents" msgid="8628108256824616927">"हालैका"</string>
     <string name="keyboard_shortcut_group_system_back" msgid="1055709713218453863">"पछाडि"</string>
-    <string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"सूचनाहरू"</string>
+    <string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"नोटिफिकेसनहरू"</string>
     <string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"किबोर्ड सर्टकटहरू"</string>
     <string name="keyboard_shortcut_join" msgid="3578314570034512676">"वा"</string>
     <string name="keyboard_shortcut_clear_text" msgid="6631051796030377857">"किवर्ड हटाउनुहोस्"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"स्टिकी कीहरू टगल गर्नुहोस्"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"स्लो कीहरू टगल गर्नुहोस्"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access टगल गर्नुहोस्"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack टगल गर्नुहोस्"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"जुम इन गर्ने सुविधा टगल गर्नुहोस्"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"सेलेक्ट टु स्पिक एक्टिभेट गर्नुहोस्"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"बाधा नपुऱ्याउनुहोस्"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"भोल्युम बटनका सर्टकट"</string>
     <string name="battery" msgid="769686279459897127">"ब्याट्री"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"फिंगरप्रिन्ट प्रयोग गरी खोल्नुहोस्"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"पुष्टि गर्नु पर्ने हुन्छ। पुष्टि गर्न फिंगरप्रिन्ट सेन्सर छुनुहोस्।"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"कल भइरहेको"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"जारी"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"मोबाइल डेटा"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"इन्टरनेटमा कनेक्ट गरिएको छ"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"यसमा केही समयका लागि कनेक्ट गरिएको हो"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"फोल्डेबल डिभाइस अनफोल्ड गरेको देखाइएको एनिमेसन"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"फोल्डेबल डिभाइस यताउता पल्टाएर देखाइएको एनिमेसन"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"अगाडिको स्क्रिन अन गरिएको छ"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"फोल्ड गरिएको"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"अनफोल्ड गरिएको"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-night/colors.xml b/packages/SystemUI/res/values-night/colors.xml
index 326be99..85182a0 100644
--- a/packages/SystemUI/res/values-night/colors.xml
+++ b/packages/SystemUI/res/values-night/colors.xml
@@ -110,12 +110,12 @@
 
     <!-- Dark theme base colors for notification shade/scrim, the alpha component is adjusted
      programmatically to match the spec -->
-    <color name="shade_panel">@android:color/system_accent1_800</color>
-    <color name="surface_effect_0">@android:color/system_accent1_800</color>
+    <color name="shade_panel_base">@android:color/system_accent1_800</color>
+    <color name="notification_scrim_base">@android:color/system_accent1_800</color>
 
-    <!-- todo(b/388891904) Remove updated color references once they are available. -->
-    <color name="shade_panel_base">@color/shade_panel</color>
-    <color name="notification_scrim_base">@color/surface_effect_0</color>
+    <!-- Dark theme fallback colors for notification shade/scrim -->
+    <color name="shade_panel_fallback">@android:color/system_accent2_800</color>
+    <color name="notification_scrim_fallback">@android:color/system_surface_dim_dark</color>
 
     <!-- Keyboard shortcut helper dialog -->
     <color name="ksh_key_item_color">@*android:color/system_on_surface_variant_dark</color>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 9e3ed9b..99c8838 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batterijpercentage onbekend."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Verbonden met <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Verbonden met <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Groep uitvouwen."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"App openen."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Niet verbonden."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Uit"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hub-modus verkennen"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Krijg toegang tot je favoriete widgets en screensavers terwijl je apparaat wordt opgeladen."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Aan de slag"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Je favoriete screensavers tonen tijdens het opladen"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Gebruiker wijzigen"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pull-downmenu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle apps en gegevens in deze sessie worden verwijderd."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Wordt getoond bovenaan gespreksmeldingen en als profielfoto op het vergrendelscherm, verschijnt als bubbel, onderbreekt Niet storen"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioriteit"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ondersteunt geen gespreksfuncties"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Sluiten"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Niet meer tonen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Deze meldingen kunnen niet worden aangepast."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Gebruik vingerafdruk om te openen"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Verificatie vereist. Raak de vingerafdruksensor aan om de verificatie uit te voeren."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Actief gesprek"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Actief"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobiele data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Verbonden"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Tijdelijk verbonden"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Opvouwbaar apparaat wordt uitgevouwen"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Opvouwbaar apparaat wordt gedraaid"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Scherm aan voorzijde aangezet"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Schuiven om het binnenste scherm te gebruiken"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"dichtgevouwen"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"opengevouwen"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 181980b..5847a9a 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ବ୍ୟାଟେରୀ ଶତକଡ଼ା ଅଜଣା ଅଟେ।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ସହ ସଂଯୁକ୍ତ"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> ସହିତ ସଂଯୁକ୍ତ।"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ଗ୍ରୁପକୁ ବିସ୍ତାର କରନ୍ତୁ।"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ଆପ୍ଲିକେସନ ଖୋଲନ୍ତୁ।"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"କନେକ୍ଟ ହୋଇନାହିଁ।"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ରୋମିଙ୍ଗ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ବନ୍ଦ ଅଛି"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ହବ ମୋଡକୁ ଏକ୍ସପ୍ଲୋର କରନ୍ତୁ"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ଚାର୍ଜ କରିବା ସମୟରେ ଆପଣଙ୍କ ପସନ୍ଦର ୱିଜେଟ ଏବଂ ସ୍କ୍ରିନ ସେଭରଗୁଡ଼ିକୁ ଆକ୍ସେସ କରନ୍ତୁ।"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ଚାଲନ୍ତୁ ଆରମ୍ଭ କରିବା"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ଚାର୍ଜ କରିବା ସମୟରେ ଆପଣଙ୍କ ପସନ୍ଦର ସ୍କ୍ରିନସେଭରଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ୟୁଜର୍‍ ବଦଳାନ୍ତୁ"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ପୁଲଡାଉନ ମେନୁ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ଏହି ସେସନର ସମସ୍ତ ଆପ୍‌ ଓ ଡାଟା ଡିଲିଟ୍‌ ହୋଇଯିବ।"</string>
@@ -565,7 +562,7 @@
     <string name="media_projection_sys_service_dialog_title" msgid="3751133258891897878">"ରେକର୍ଡିଂ ବା କାଷ୍ଟିଂ ଆରମ୍ଭ କରିବେ?"</string>
     <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"ରେକର୍ଡ ବା କାଷ୍ଟ କରିବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସରୁ ପ୍ଲେ ହେଉଥିବା କିମ୍ବା ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଦେଖାଯାଉଥିବା ସମସ୍ତ ସୂଚନାକୁ ଏହି ଫଙ୍କସନ ପ୍ରଦାନ କରୁଥିବା ସେବାର ଆକ୍ସେସ ରହିବ। ଏଥିରେ ପାସୱାର୍ଡ, ପେମେଣ୍ଟ ବିବରଣୀ, ଫଟୋ, ମେସେଜ ଏବଂ ଆପଣ ପ୍ଲେ କରୁଥିବା ଅଡିଓ ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ଅଛି।"</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"ଏକ ଆପକୁ ସେୟାର କିମ୍ବା ରେକର୍ଡ କରନ୍ତୁ"</string>
-    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ସହ ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ସେୟାର କରନ୍ତୁ?"</string>
+    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ସହ ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ସେୟାର କରିବେ?"</string>
     <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"ଗୋଟିଏ ଆପ ସେୟାର କରନ୍ତୁ"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_single_app (2308901434964846084) -->
     <skip />
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"ବାର୍ତ୍ତାଳାପ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଶୀର୍ଷରେ ଏବଂ ଲକ୍ ସ୍କ୍ରିନରେ ଏକ ପ୍ରୋଫାଇଲ୍ ଛବି ଭାବେ ଦେଖାଏ, ଏକ ବବଲ୍ ଭାବେ ଦେଖାଯାଏ, \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\'କୁ ବାଧା ଦିଏ"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ପ୍ରାଥମିକତା"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବାର୍ତ୍ତାଳାପ ଫିଚରଗୁଡ଼ିକୁ ସମର୍ଥନ କରେ ନାହିଁ"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ମତାମତ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ଖାରଜ କରନ୍ତୁ"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ପୁଣି ଶୋ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ କରିହେବ ନାହିଁ।"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"ଷ୍ଟିକି କୀ ଟୋଗଲ କରନ୍ତୁ"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"ଧିର କୀ ଟୋଗଲ କରନ୍ତୁ"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Access ଟୋଗଲ କରନ୍ତୁ"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack ଟୋଗଲ କରନ୍ତୁ"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"ମେଗ୍ନିଫିକେସନ ଟୋଗଲ କରନ୍ତୁ"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"ସିଲେକ୍ଟ ଟୁ ସ୍ପିକକୁ ସକ୍ରିୟ କରନ୍ତୁ"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"ଭଲ୍ୟୁମ ବଟନ୍‍ ଶର୍ଟକଟ୍‍"</string>
     <string name="battery" msgid="769686279459897127">"ବେଟେରୀ"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ଖୋଲିବାକୁ ଟିପଚିହ୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ପ୍ରମାଣୀକରଣ ଆବଶ୍ୟକ। ପ୍ରମାଣୀକରଣ କରିବାକୁ ଟିପଚିହ୍ନ ସେନ୍ସରକୁ ସ୍ପର୍ଶ କରନ୍ତୁ।"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"ଚାଲିଥିବା କଲ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"ଚାଲୁଥିବା"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ମୋବାଇଲ ଡାଟା"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"ସଂଯୋଗ କରାଯାଇଛି"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"ଅସ୍ଥାୟୀ ରୂପେ କନେକ୍ଟ କରାଯାଇଛି"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ଫୋଲ୍ଡ କରାଯାଇପାରୁଥିବା ଡିଭାଇସକୁ ଅନଫୋଲ୍ଡ କରାଯାଉଛି"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ଫୋଲ୍ଡ କରାଯାଇପାରୁଥିବା ଡିଭାଇସକୁ ଫ୍ଲିପ କରାଯାଉଛି"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ସାମ୍ନା ସ୍କ୍ରିନ ଚାଲୁ ଅଛି"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ଫୋଲ୍ଡେଡ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ଅନଫୋଲ୍ଡେଡ"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index b338e1b..17757b8 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ਬੈਟਰੀ ਪ੍ਰਤੀਸ਼ਤ ਅਗਿਆਤ ਹੈ।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ।"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ਗਰੁੱਪ ਦਾ ਵਿਸਤਾਰ ਕਰੋ।"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ਐਪਲੀਕੇਸ਼ਨ ਖੋਲ੍ਹੋ।"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ।"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ਰੋਮਿੰਗ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ਬੰਦ"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ਹੱਬ ਮੋਡ ਦੀ ਪੜਚੋਲ ਕਰੋ"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ਚਾਰਜ ਕਰਨ ਵੇਲੇ ਆਪਣੇ ਮਨਪਸੰਦ ਵਿਜੇਟਾਂ ਅਤੇ ਸਕ੍ਰੀਨ ਸੇਵਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ।"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ਚਲੋ ਸ਼ੁਰੂ ਕਰੀਏ"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ਚਾਰਜ ਕਰਦੇ ਸਮੇਂ ਆਪਣੇ ਮਨਪਸੰਦ ਸਕ੍ਰੀਨ-ਸੇਵਰ ਦਿਖਾਓ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ਵਰਤੋਂਕਾਰ ਸਵਿੱਚ ਕਰੋ"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ਪੁੱਲਡਾਊਨ ਮੀਨੂ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ਇਸ ਸੈਸ਼ਨ ਵਿਚਲੀਆਂ ਸਾਰੀਆਂ ਐਪਾਂ ਅਤੇ ਡਾਟੇ ਨੂੰ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"ਗੱਲਬਾਤ ਸੂਚਨਾਵਾਂ ਦੇ ਸਿਖਰ \'ਤੇ ਅਤੇ ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਪ੍ਰੋਫਾਈਲ ਤਸਵੀਰ ਵਜੋਂ ਦਿਖਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਜੋ ਕਿ ਬਬਲ ਵਜੋਂ ਦਿਸਦੀਆਂ ਹਨ ਅਤੇ \'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਸੁਵਿਧਾ ਵਿੱਚ ਵਿਘਨ ਵੀ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ਤਰਜੀਹ"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਐਪ ਗੱਲਬਾਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ਵਿਚਾਰ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ਖਾਰਜ ਕਰੋ"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ਖੋਲ੍ਹਣ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤੋ"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ਪ੍ਰਮਾਣੀਕਰਨ ਲੋੜੀਂਦਾ ਹੈ। ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ।"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"ਜਾਰੀ ਕਾਲ"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"ਜਾਰੀ"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"ਕਨੈਕਟ ਹੈ"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"ਕੁਝ ਸਮੇਂ ਲਈ ਕਨੈਕਟ ਹੈ"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"ਮੋੜਨਯੋਗ ਡੀਵਾਈਸ ਨੂੰ ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"ਮੋੜਨਯੋਗ ਡੀਵਾਈਸ ਨੂੰ ਆਲੇ-ਦੁਆਲੇ ਫਲਿੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ਅਗਲੀ ਸਕ੍ਰੀਨ ਚਾਲੂ ਕੀਤੀ ਗਈ"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"ਅੰਦਰਲੀ ਸਕ੍ਰੀਨ ਵਰਤਣ ਲਈ ਸਲਾਈਡ ਕਰੋ"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"ਫੋਲਡਯੋਗ ਡੀਵਾਈਸ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"ਅਣਫੋਲਡਯੋਗ ਡੀਵਾਈਸ"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 2d3d396..c0a2831 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Poziom naładowania baterii jest nieznany."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Połączono z <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Połączono z urządzeniem <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Rozwiń grupę."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Otwórz aplikację."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nie połączono."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Wył."</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Odkryj tryb centrali"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Podczas ładowania możesz korzystać z ulubionych widżetów i wygaszaczy ekranu."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Do dzieła"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Podczas ładowania wyświetlaj ulubione wygaszacze ekranu"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Przełącz użytkownika"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Wszystkie aplikacje i dane w tej sesji zostaną usunięte."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Kiedy udostępniasz obraz z aplikacji <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>, widoczne jest wszystko to, co jest w niej wyświetlane lub odtwarzane. Dlatego zachowaj ostrożność w zakresie haseł, danych do płatności, wiadomości, zdjęć, audio i filmów."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Udostępnij ekran"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> ma wyłączoną tę opcję"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Wybieranie aplikacji do udostępniania"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Wybierz aplikację do udostępniania"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"Włączyć przesyłanie treści wyświetlanych na ekranie?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Przesyłanie obrazu z 1 aplikacji"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Przesyłanie całego ekranu"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Wyświetla się u góry powiadomień w rozmowach oraz jako zdjęcie profilowe na ekranie blokady, jako dymek, przerywa działanie trybu Nie przeszkadzać"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priorytetowe"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> nie obsługuje funkcji rozmów"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Opinia"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Zamknij"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Nie pokazuj ponownie"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tych powiadomień nie można zmodyfikować."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Przełącz ustawienie klawiszy trwałych"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Przełącz ustawienie klawiszy powolnych"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Przełącz ustawienie aplikacji Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Przełącz TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Przełącz powiększenie"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Włącz funkcję Przeczytaj na głos"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Nie przeszkadzać"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Wł./wył. przyciskami głośności"</string>
     <string name="battery" msgid="769686279459897127">"Bateria"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"By otworzyć, użyj odcisku palca"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Wymagane uwierzytelnienie. Dotknij czytnika liniii papilarnych, by uwierzytelnić."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Trwa rozmowa"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"W toku"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobilna transmisja danych"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Połączono"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Tymczasowe połączenie"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Składane urządzenie jest rozkładane"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Składane urządzenie jest obracane"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Ekran przedni jest włączony"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"po zamknięciu"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"po otwarciu"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 39c4dfe..c1a8ec4 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -123,7 +123,7 @@
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"Microfone"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Áudio e microfone do dispositivo"</string>
     <string name="screenrecord_continue" msgid="4055347133700593164">"Iniciar"</string>
-    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Gravando tela"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Gravando a tela"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"Gravando tela e áudio"</string>
     <string name="screenrecord_taps_label" msgid="1595690528298857649">"Mostrar toques na tela"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"Parar"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentagem da bateria desconhecida."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expandir grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Abrir aplicativo."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Sem conexão."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desativados"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Conheça o modo Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Acesse seus widgets e protetores de tela favoritos durante o carregamento."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Vamos lá"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Mostre seus protetores de tela favoritos durante o carregamento"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Trocar usuário"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu suspenso"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Todos os apps e dados nesta sessão serão excluídos."</string>
@@ -734,7 +731,7 @@
     <string name="volume_panel_hint_muted" msgid="1124844870181285320">"som desativado"</string>
     <string name="volume_panel_hint_vibrate" msgid="4136223145435914132">"vibrar"</string>
     <string name="media_output_label_title" msgid="872824698593182505">"Tocando <xliff:g id="LABEL">%s</xliff:g> em"</string>
-    <string name="media_output_title_without_playing" msgid="3825663683169305013">"Áudio definido para"</string>
+    <string name="media_output_title_without_playing" msgid="3825663683169305013">"Onde vai tocar:"</string>
     <string name="media_output_title_ongoing_call" msgid="208426888064112006">"Ligando"</string>
     <string name="system_ui_tuner" msgid="1471348823289954729">"Sintonizador System UI"</string>
     <string name="status_bar" msgid="4357390266055077437">"Barra de status"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparecem na parte superior das notificações de conversa, como uma foto do perfil na tela de bloqueio e como um balão. Interrompem o Não perturbe."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritárias"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> não é compatível com recursos de conversa"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Enviar feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dispensar"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Não mostrar novamente"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Alternar teclas de aderência"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Alternar teclas lentas"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Alternar Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Alternar TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Alternar ampliação"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Ativar Selecionar para ouvir"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Não perturbe"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Atalho de botões de volume"</string>
     <string name="battery" msgid="769686279459897127">"Bateria"</string>
@@ -1144,7 +1139,7 @@
     <string name="accessibility_floating_button_action_remove_menu" msgid="6730432848162552135">"Remover"</string>
     <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"alternar"</string>
     <string name="accessibility_floating_button_action_edit" msgid="1688227814600463987">"Editar"</string>
-    <string name="quick_controls_title" msgid="6839108006171302273">"Controles do disp."</string>
+    <string name="quick_controls_title" msgid="6839108006171302273">"Controles do dispositivo"</string>
     <string name="controls_providers_title" msgid="6879775889857085056">"Escolha um app para adicionar controles"</string>
     <string name="controls_number_of_favorites" msgid="4481806788981836355">"{count,plural, =1{# controle adicionado.}one{# controle adicionado.}many{# de controles adicionados.}other{# controles adicionados.}}"</string>
     <string name="controls_removed" msgid="3731789252222856959">"Removido"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Use a impressão digital para abrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autenticação obrigatória. Toque no sensor de impressão digital para autenticar."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Chamada em andamento"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Em andamento"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Dados móveis"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Conectado"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Temporariamente conectado"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo dobrável sendo aberto"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo dobrável sendo virado"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Tela frontal ativada"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Deslize para usar a tela interna"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"fechado"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"aberto"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index cb9730a..36384bc 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Percentagem da bateria desconhecida."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ligado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ligado a <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expanda o grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Abra a aplicação."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Sem ligação."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desativado"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explore o modo Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Aceda aos seus widgets e proteções de ecrã favoritos durante o carregamento."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Começar"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Mostre as suas proteções de ecrã favoritas durante o carregamento"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Mudar utilizador"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu pendente"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Todas as apps e dados desta sessão serão eliminados."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparece na parte superior das notificações de conversas e como uma imagem do perfil no ecrã de bloqueio, surge como um balão, interrompe o modo Não incomodar"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioridade"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"A app <xliff:g id="APP_NAME">%1$s</xliff:g> não suporta funcionalidades de conversa."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignorar"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Não mostrar novamente"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar estas notificações."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Utilize a impressão digital para abrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autenticação necessária. Toque no sensor de impressões digitais para autenticar."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Chamada em curso"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Em curso"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Dados móveis"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Ligado"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Ligado temporariamente"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo dobrável a ser desdobrado"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo dobrável a ser virado ao contrário"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Ecrã frontal ativado"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Deslize lentamente para usar o ecrã interior"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"fechado"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"aberto"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 39c4dfe..c1a8ec4 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -123,7 +123,7 @@
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"Microfone"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"Áudio e microfone do dispositivo"</string>
     <string name="screenrecord_continue" msgid="4055347133700593164">"Iniciar"</string>
-    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Gravando tela"</string>
+    <string name="screenrecord_ongoing_screen_only" msgid="4459670242451527727">"Gravando a tela"</string>
     <string name="screenrecord_ongoing_screen_and_audio" msgid="5351133763125180920">"Gravando tela e áudio"</string>
     <string name="screenrecord_taps_label" msgid="1595690528298857649">"Mostrar toques na tela"</string>
     <string name="screenrecord_stop_label" msgid="72699670052087989">"Parar"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentagem da bateria desconhecida."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Expandir grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Abrir aplicativo."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Sem conexão."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desativados"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Conheça o modo Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Acesse seus widgets e protetores de tela favoritos durante o carregamento."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Vamos lá"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Mostre seus protetores de tela favoritos durante o carregamento"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Trocar usuário"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu suspenso"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Todos os apps e dados nesta sessão serão excluídos."</string>
@@ -734,7 +731,7 @@
     <string name="volume_panel_hint_muted" msgid="1124844870181285320">"som desativado"</string>
     <string name="volume_panel_hint_vibrate" msgid="4136223145435914132">"vibrar"</string>
     <string name="media_output_label_title" msgid="872824698593182505">"Tocando <xliff:g id="LABEL">%s</xliff:g> em"</string>
-    <string name="media_output_title_without_playing" msgid="3825663683169305013">"Áudio definido para"</string>
+    <string name="media_output_title_without_playing" msgid="3825663683169305013">"Onde vai tocar:"</string>
     <string name="media_output_title_ongoing_call" msgid="208426888064112006">"Ligando"</string>
     <string name="system_ui_tuner" msgid="1471348823289954729">"Sintonizador System UI"</string>
     <string name="status_bar" msgid="4357390266055077437">"Barra de status"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparecem na parte superior das notificações de conversa, como uma foto do perfil na tela de bloqueio e como um balão. Interrompem o Não perturbe."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritárias"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> não é compatível com recursos de conversa"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Enviar feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dispensar"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Não mostrar novamente"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Alternar teclas de aderência"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Alternar teclas lentas"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Alternar Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Alternar TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Alternar ampliação"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Ativar Selecionar para ouvir"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Não perturbe"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Atalho de botões de volume"</string>
     <string name="battery" msgid="769686279459897127">"Bateria"</string>
@@ -1144,7 +1139,7 @@
     <string name="accessibility_floating_button_action_remove_menu" msgid="6730432848162552135">"Remover"</string>
     <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"alternar"</string>
     <string name="accessibility_floating_button_action_edit" msgid="1688227814600463987">"Editar"</string>
-    <string name="quick_controls_title" msgid="6839108006171302273">"Controles do disp."</string>
+    <string name="quick_controls_title" msgid="6839108006171302273">"Controles do dispositivo"</string>
     <string name="controls_providers_title" msgid="6879775889857085056">"Escolha um app para adicionar controles"</string>
     <string name="controls_number_of_favorites" msgid="4481806788981836355">"{count,plural, =1{# controle adicionado.}one{# controle adicionado.}many{# de controles adicionados.}other{# controles adicionados.}}"</string>
     <string name="controls_removed" msgid="3731789252222856959">"Removido"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Use a impressão digital para abrir"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autenticação obrigatória. Toque no sensor de impressão digital para autenticar."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Chamada em andamento"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Em andamento"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Dados móveis"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Conectado"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Temporariamente conectado"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispositivo dobrável sendo aberto"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispositivo dobrável sendo virado"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Tela frontal ativada"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Deslize para usar a tela interna"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"fechado"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"aberto"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index a6d11f4..beb3c116 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Procentajul bateriei este necunoscut."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectat la <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"S-a stabilit conexiunea la <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Extinde grupul."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Deschide aplicația."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Neconectat."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Dezactivate"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Explorează modul hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Accesează widgeturile și screensaverele preferate în timpul încărcării."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Să începem"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Afișează screensaverele preferate în timpul încărcării"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Schimbă utilizatorul"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"meniu vertical"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Toate aplicațiile și datele din această sesiune vor fi șterse."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Se afișează în partea de sus a notificărilor pentru conversații și ca fotografie de profil pe ecranul de blocare, apare ca un balon, întrerupe funcția Nu deranja"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritate"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nu acceptă funcții pentru conversații"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Închide"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Nu mai afișa"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aceste notificări nu pot fi modificate."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Comută tastele adezive"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Comută tastele lente"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Comută Accesul vocal"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Activează sau dezactivează TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Activează sau dezactivează Mărirea"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Activează Selectează și ascultă"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Nu deranja"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Comandă rapidă din butoanele de volum"</string>
     <string name="battery" msgid="769686279459897127">"Baterie"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Folosește amprenta ca să deschizi"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autentificare obligatorie. Atinge senzorul de amprentă pentru a te autentifica."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Apel în desfășurare"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"În desfășurare"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Date mobile"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Conectat"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Conectat temporar"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Dispozitiv pliabil care este desfăcut"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Dispozitiv pliabil care este întors"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Ecranul frontal este activat"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"închis"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"deschis"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 46007fe..e3f852c 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Уровень заряда батареи в процентах неизвестен."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>: подключено."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Подключено к: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Развернуть группу."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Открыть приложение."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Не подключено"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роуминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Отключен"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Попробуйте режим домашнего центра"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Пока устройство заряжается, будут показываться любимые заставки и вы сможете пользоваться привычными виджетами."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Попробовать"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Показывать заставки во время зарядки"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Сменить пользователя."</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"раскрывающееся меню"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Все приложения и данные этого профиля будут удалены."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Появляется в верхней части уведомлений о сообщениях, в виде всплывающего чата, а также в качестве фото профиля на заблокированном экране, прерывает режим \"Не беспокоить\"."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Приоритет"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" не поддерживает функции разговоров."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Оставить отзыв"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Закрыть"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Больше не показывать"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эти уведомления нельзя изменить."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Используйте отпечаток пальца для входа."</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Требуется аутентификация. Приложите палец к сканеру отпечатков."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Текущий вызов"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Сейчас"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобильный интернет"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Подключено"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Временное подключение"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Складное устройство в разложенном виде"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Перевернутое складное устройство"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Передний экран включен"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Проведите пальцем, чтобы переключиться на внутренний экран."</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"устройство сложено"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"устройство разложено"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
@@ -1420,7 +1418,7 @@
     <string name="assistant_attention_content_description" msgid="4166330881435263596">"Обнаружен пользователь"</string>
     <string name="set_default_notes_app_toast_content" msgid="2812374329662610753">"Задайте стандартное приложение для заметок в настройках."</string>
     <string name="install_app" msgid="5066668100199613936">"Установить приложение"</string>
-    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"Чтобы продолжить, проведите вверх."</string>
+    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"Чтобы продолжить, проведите вверх"</string>
     <string name="connected_display_dialog_start_mirroring" msgid="6237895789920854982">"Дублировать на внешний дисплей?"</string>
     <string name="connected_display_dialog_dual_display_stop_warning" msgid="4174707498892447947">"Для внутреннего экрана включится дублирование. Передний экран будет отключен."</string>
     <string name="mirror_display" msgid="2515262008898122928">"Дублировать"</string>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 7c1c440..9ff6747 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"බැටරි ප්‍රතිශතය නොදනී."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> වෙත සම්බන්ධ කරන ලදි."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> වෙත සම්බන්ධ විය."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"සමූහය දිගහැරීම"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"යෙදුම විවෘත කරන්න."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"සම්බන්ධ වී නැත."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"රෝමිං"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ක්‍රියාවිරහිතයි"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"හබ් ප්‍රකාරය ගවේෂණය කරන්න"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ආරෝපණය කරන අතරේ ඔබේ ප්‍රියතම විජට් සහ තිර සුරැකුම් වෙත ප්‍රවේශ වන්න."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"යමු"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ආරෝපණය කරන අතරතුර ඔබේ ප්‍රියතම තිර සුරැකුම් පෙන්වන්න"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"පරිශීලක මාරුව"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"නිපතන මෙනුව"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"මෙම සැසියේ සියළුම යෙදුම් සහ දත්ත මකාවී."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"සංවාද දැනුම්දීම්වල ඉහළින්ම සහ අගුලු තිරයේ ඇති පැතිකඩ පින්තූරයක් ලෙස පෙන්වයි, බුබුළක් ලෙස දිස් වේ, බාධා නොකරන්න සඳහා බාධා කරයි"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ප්‍රමුඛතාව"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> සංවාද විශේෂාංගවලට සහාය නොදක්වයි"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ප්‍රතිපෝෂණය"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"අස් කරන්න"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"නැවත නොපෙන්වන්න"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"මෙම දැනුම්දීම් වෙනස් කළ නොහැක."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"ඇලෙන සුළු යතුරු ටොගල් කරන්න"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"මන්දගාමී යතුරු ටොගල් කරන්න"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"හඬ ප්‍රවේශය ටොගල් කරන්න"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Talkback ටොගල කරන්න"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"විශාලනය කිරීම ටොගල කරන්න"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"කථා කිරීමට තේරීම සක්‍රිය කරන්න"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"බාධා නොකරන්න"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"හඩ පරිමා බොත්තම් කෙටිමග"</string>
     <string name="battery" msgid="769686279459897127">"බැටරිය"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"විවෘත කිරීමට ඇඟිලි සලකුණ භාවිත කරන්න"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"සත්‍යාපනය අවශ්‍යයි. සත්‍යාපනය කිරීමට ඇඟිලි සලකුණු සංවේදකය ස්පර්ශ කරන්න."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"කර ගෙන යන ඇමතුම"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"දැනට පවතින"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"ජංගම දත්ත"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"සම්බන්ධයි"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"තාවකාලිකව සම්බන්ධ කළා"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"දිග හැරෙමින් පවතින නැමිය හැකි උපාංගය"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"වටා පෙරළෙමින් තිබෙන නැමිය හැකි උපාංගය"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ඉදිරිපස තිරය ක්‍රියාත්මකයි"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"නැවූ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"නොනැවූ"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 3851173..a42eb1e 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Percento batérie nie je známe."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Pripojené k zariadeniu <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Pripojené k zariadeniu <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Rozbaliť skupinu"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Otvoriť aplikáciu"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nepripojené."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Vypnuté"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Preskúmajte režim centra"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Počas nabíjania máte prístup k svojim obľúbeným miniaplikáciám a šetričom obrazovky."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Poďme na to"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Zobrazovať počas nabíjania obľúbené šetriče obrazovky"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Prepnutie používateľa"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rozbaľovacia ponuka"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Všetky aplikácie a údaje v tejto relácii budú odstránené."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Pri zdieľaní aplikácie vidí aplikácia <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> všetko, čo sa v zdieľanej aplikácii zobrazuje alebo prehráva. Preto zvýšte pozornosť v prípade položiek, ako sú heslá, platobné údaje, správy, fotky a zvuk či video."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Zdieľať obrazovku"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"Aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g> túto možnosť zakázala"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Výber aplikácie na zdieľanie"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Vyberte aplikáciu, do ktorej chcete zdieľať"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"Chcete prenášať obrazovku?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Prenášať jednu aplikáciu"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Prenášať celú obrazovku"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Zobrazuje sa ako bublina v hornej časti upozornení konverzácie a profilová fotka na uzamknutej obrazovke, preruší režim bez vyrušení"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritné"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nepodporuje funkcie konverzácie"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Spätná väzba"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Zavrieť"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Nabudúce nezobrazovať"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tieto upozornenia sa nedajú upraviť."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Prepnúť na režim uzamknutia klávesa"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Prepnúť na pomalé klávesy"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Prepnúť na Voice Access"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Prepnúť TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Prepnúť zväčšenie"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktivovať počúvanie vybraného textu"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Režim bez vyrušení"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Skratka tlačidiel hlasitosti"</string>
     <string name="battery" msgid="769686279459897127">"Batéria"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Otvorte odtlačkom prsta"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Vyžaduje sa overenie. Dotknite sa senzora odtlačkov prstov."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Prebiehajúci hovor"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Prebieha"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobilné dáta"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Pripojené"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Dočasne pripojené"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Rozloženie skladacieho zariadenia"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Prevrátenie skladacieho zariadenia"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Predná obrazovka je zapnutá"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Ak chcete použiť vnútornú obrazovku, prejdite prstom"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"zložené"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"rozložené"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index be51fbb..c0e751b 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -59,7 +59,7 @@
     <string name="hdmi_cec_set_menu_language_description" msgid="8176716678074126619">"Spremembo jezika sistema je zahtevala druga naprava."</string>
     <string name="hdmi_cec_set_menu_language_accept" msgid="2513689457281009578">"Spremeni jezik"</string>
     <string name="hdmi_cec_set_menu_language_decline" msgid="7650721096558646011">"Obdrži trenutni jezik"</string>
-    <string name="share_wifi_button_text" msgid="1285273973812029240">"Delite omrežje Wi‑Fi"</string>
+    <string name="share_wifi_button_text" msgid="1285273973812029240">"Deli Wi‑Fi"</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>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Neznan odstotek napolnjenosti baterije."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Povezava vzpostavljena z: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Vzpostavljena povezava: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Razširitev skupine."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Odpiranje aplikacije."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Ni povezan."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Gostovanje"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Izklopljeno"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Raziščite način središča"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Med polnjenjem dostopajte do priljubljenih pripomočkov in ohranjevalnikov zaslona."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Pa začnimo"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Prikaz priljubljenih ohranjevalnikov zaslona med polnjenjem"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Preklop med uporabniki"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"spustni meni"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Vse aplikacije in podatki v tej seji bodo izbrisani."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikaz v obliki oblačka na vrhu razdelka z obvestili za pogovor in kot profilna slika na zaklenjenem zaslonu, preglasitev načina Ne moti."</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prednostno"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podpira pogovornih funkcij."</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Opusti"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Tega ne prikaži več"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Za ta obvestila ni mogoče spremeniti nastavitev."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Preklopi zaklepanje tipk"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Preklopi daljši pritisk tipk"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Preklopi Glasovni dostop"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Preklop funkcije TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Preklop povečave"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktiviranje storitve Izberite in poslušajte"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ne moti"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Bližnjica z gumboma za glasnost"</string>
     <string name="battery" msgid="769686279459897127">"Baterija"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Odprite s prstnim odtisom"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Zahtevano je preverjanje pristnosti. Za preverjanje pristnosti se dotaknite tipala prstnih odtisov."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Aktivni klic"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"V teku"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Prenos podatkov v mobilnem omrežju"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Začasno vzpostavljena povezava"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Razpiranje zložljive naprave"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Obračanje zložljive naprave"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Sprednji zaslon je vklopljen"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Povlecite za uporabo notranjega zaslona"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"zaprto"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"razprto"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index e40ef60..06cefd9c 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Përqindja e baterisë e panjohur."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Lidhur me <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Është lidhur me <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Zgjero grupin."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Hap aplikacionin."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Nuk është i lidhur."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Joaktiv"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Eksploro në modalitetin Hub"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Qasu në mbrojtësit e ekranit dhe miniaplikacionet e tua të preferuara gjatë karikimit."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Fillojmë"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Shfaq mbrojtësit e preferuar të ekranit gjatë karikimit"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Ndërro përdorues"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menyja me tërheqje poshtë"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Të gjitha aplikacionet dhe të dhënat në këtë sesion do të fshihen."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shfaqet në krye të njoftimeve të bisedës dhe si fotografia e profilit në ekranin e kyçjes, shfaqet si flluskë dhe ndërpret modalitetin \"Mos shqetëso\""</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Me përparësi"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nuk mbështet veçoritë e bisedës"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Koment"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Hiq"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Mos e shfaq më"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Këto njoftime nuk mund të modifikohen."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Aktivizo/çaktivizo tastet e përhershme"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Aktivizo/çaktivizo tastet e ngadalta"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Aktivizo/çaktivizo \"Qasjen me zë\""</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Aktivizo/çaktivizo Talkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Aktivizo/çaktivizo \"Zmadhimin\""</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktivizo \"Zgjidh që të thuhet\""</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Mos shqetëso"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Shkurtorja e butonave të volumit"</string>
     <string name="battery" msgid="769686279459897127">"Bateria"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Përdor gjurmën e gishtit për ta hapur"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Kërkohet vërtetimi. Prek sensorin e gjurmës së gishtit për t\'u vërtetuar."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Telefonatë në vazhdim"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Në vazhdim"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Të dhënat celulare"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Lidhur"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Lidhur përkohësisht"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Pajisja e palosshme duke u hapur"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Pajisja e palosshme duke u rrotulluar"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Ekrani i përparmë është aktivizuar"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"palosur"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"shpalosur"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index ad837b4..3977058 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -109,14 +109,14 @@
     <string name="screenrecord_title" msgid="4257171601439507792">"Снимач екрана"</string>
     <string name="screenrecord_background_processing_label" msgid="7244617554884238898">"Обрађујемо видео снимка екрана"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Обавештење о сесији снимања екрана је активно"</string>
-    <string name="screenrecord_permission_dialog_title" msgid="7415261783188749730">"Желите да снимите екран?"</string>
-    <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"Сними једну апликацију"</string>
+    <string name="screenrecord_permission_dialog_title" msgid="7415261783188749730">"Желите да снимате екран?"</string>
+    <string name="screenrecord_permission_dialog_option_text_single_app" msgid="1996450687814647583">"Снимaj једну апликацију"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen" msgid="4882406311415082016">"Сними овај екран"</string>
     <string name="screenrecord_permission_dialog_option_text_entire_screen_for_display" msgid="4169494703993148253">"Сними %s"</string>
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"Када снимате цео екран, снима се све што је на њему. Зато пазите на лозинке, информације о плаћању, поруке, слике, аудио и видео садржај."</string>
     <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"Када снимате апликацију, снима се сав садржај који се приказује или пушта у њој. Зато пазите на лозинке, информације о плаћању, поруке, слике, аудио и видео садржај."</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"Сними екран"</string>
-    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Одаберите апликацију коју желите да снимите"</string>
+    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"Одаберите апликацију за снимање"</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>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Проценат напуњености батерије није познат."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Повезани сте са <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Повезани смо са уређајем <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Проширите групу."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Отворите апликацију."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Није повезано."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роминг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Искључено"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Истражите режим центра"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Приступајте омиљеним виџетима и чуварима екрана током пуњења."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Идемо"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Приказујте омиљене чуваре екрана током пуњења"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Замени корисника"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"падајући мени"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Све апликације и подаци у овој сесији ће бити избрисани."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Када делите апликацију, <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> види сав садржај који се приказује или пушта у њој. Зато пазите на лозинке, информације о плаћању, поруке, слике, аудио и видео садржај."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Дели екран"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"Апликација <xliff:g id="APP_NAME">%1$s</xliff:g> је онемогућила ову опцију"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Одаберите апликацију коју желите да делите"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Одаберите апликацију за дељење"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"Желите да пребаците екран?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Пребаци једну апликацију"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Пребаци цео екран"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Приказује се у врху обавештења о конверзацијама и као слика профила на закључаном екрану, појављује се као облачић, прекида режим Не узнемиравај"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Приоритетно"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не подржава функције конверзације"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Повратне информације"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Одбаци"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Не приказуј поново"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ова обавештења не могу да се мењају."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Отворите помоћу отиска прста"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Потребна је потврда идентитета. Додирните сензор за отисак прста да бисте потврдили идентитет."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Позив је у току"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Активно"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобилни подаци"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Повезано"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Привремено повезано"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Уређај на преклоп се отвара"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Уређај на преклоп се обрће"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Предњи екран је укључен"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"Превуците да бисте користили унутрашњи екран"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"затворено"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"отворено"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index c0b8460..7051a2a 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Okänd batterinivå."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ansluten till <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ansluten till <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Utöka gruppen."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Öppna appen."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Inte ansluten."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Av"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Utforska hubbläget"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Få åtkomst till dina favoritwidgetar och skärmsläckare under laddning."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Då kör vi"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Visa dina favoritskärmsläckare vid laddning"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Byt användare"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rullgardinsmeny"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alla appar och data i denna session kommer att raderas."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Visas högst upp i konversationsaviseringarna och som profilbild på låsskärmen, visas som bubbla, åsidosätter Stör ej"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> har inte stöd för konversationsfunktioner"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Stäng"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Visa inte igen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Det går inte att ändra de här aviseringarna."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Aktivera/inaktivera låstangentsläget"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Aktivera/inaktivera långsamma tangenter"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Aktivera/inaktivera röststyrning"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Aktivera/inaktivera TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Aktivera/inaktivera förstoring"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Aktivera Textuppläsning"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Stör ej"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Genväg till volymknappar"</string>
     <string name="battery" msgid="769686279459897127">"Batteri"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Öppna med fingeravtryck"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Autentisering krävs. Identifiera dig genom att trycka på fingeravtryckssensorn."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Pågående samtal"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Pågående"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobildata"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Ansluten"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Tillfälligt ansluten"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"En vikbar enhet viks upp"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"En vikbar enhet vänds"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Den främre skärmen har aktiverats"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"hopvikt"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"uppvikt"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index bcad102..2ead01a 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Asilimia ya betri haijulikani."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Imeunganishwa kwenye <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Imeunganishwa kwenye <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Panua kikundi."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Fungua programu."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Haijaunganishwa."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Mitandao ya ng\'ambo"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Zima"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Gundua hali ya kutumia ikiwa imepachikwa"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Fikia wijeti unazopenda na taswira za skrini wakati unachaji."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Anza"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Onyesha taswira za skrini uzipendazo wakati wa kuchaji"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Badili mtumiaji"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menyu ya kuvuta chini"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Data na programu zote katika kipindi hiki zitafutwa."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Huonyeshwa kwenye sehemu ya juu ya arifa za mazungumzo na kama picha ya wasifu kwenye skrini iliyofungwa. Huonekana kama kiputo na hukatiza kipengele cha Usinisumbue"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Kipaumbele"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> haitumii vipengele vya mazungumzo"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Maoni"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ondoa"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Usionyeshe tena"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Arifa hizi haziwezi kubadilishwa."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Tumia alama ya kidole kufungua"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Uthibitishaji unahitajika. Gusa kitambua alama ya kidole ili uthibitishe."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Simu inayoendelea"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Inaendelea"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Data ya mtandao wa simu"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Imeunganishwa"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Imeunganishwa kwa muda"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Kifaa kinachokunjwa kikikunjuliwa"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Kifaa kinachokunjwa kikigeuzwa"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Umewasha skrini ya mbele"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"kimekunjwa"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"kimefunguliwa"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index f5f110a..b37350c 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -116,14 +116,14 @@
     <string name="screenrecord_permission_dialog_warning_entire_screen" msgid="1321758636709366068">"முழுத் திரையை நீங்கள் ரெக்கார்டு செய்யும்போது அதில் காட்டப்படும் அனைத்தும் ரெக்கார்டு செய்யப்படும். எனவே கடவுச்சொற்கள், பேமெண்ட் விவரங்கள், மெசேஜ்கள், படங்கள், ஆடியோ, வீடியோ போன்றவை குறித்துக் கவனத்துடன் இருங்கள்."</string>
     <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"ஓர் ஆப்ஸை ரெக்கார்டு செய்யும்போது அதில் காட்டப்படும் அல்லது பிளே செய்யப்படும் அனைத்தும் ரெக்கார்டு செய்யப்படும். எனவே கடவுச்சொற்கள், பேமெண்ட் விவரங்கள், மெசேஜ்கள், படங்கள், ஆடியோ, வீடியோ போன்றவை குறித்துக் கவனத்துடன் இருங்கள்."</string>
     <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"திரையை ரெக்கார்டு செய்"</string>
-    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"ரெக்கார்டு செய்ய ஆப்ஸைத் தேர்வுசெய்தல்"</string>
+    <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"ரெக்கார்டு செய்ய ஆப்ஸைத் தேர்வுசெய்க"</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_continue" msgid="4055347133700593164">"தொடங்கு"</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_stop_label" msgid="72699670052087989">"நிறுத்து"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"பேட்டரி சதவீதம் தெரியவில்லை."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>க்கு இணைக்கப்பட்டது."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> உடன் இணைக்கப்பட்டுள்ளது."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"குழுவை விரிவாக்கும்."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ஆப்ஸைத் திறக்கும்."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"இணைக்கப்படவில்லை."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"ரோமிங்"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ஆஃப்"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ஹப் பயன்முறையைக் கண்டறியுங்கள்"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"சார்ஜிங்கின்போது உங்களுக்குப் பிடித்த விட்ஜெட்களையும் ஸ்கிரீன் சேவர்களையும் அணுகலாம்."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"தொடங்குக"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"சார்ஜாகும்போது உங்களுக்கு விருப்பமான ஸ்கிரீன் சேவர்களைக் காட்டும்"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"பயனரை மாற்று"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"கீழ் இழுக்கும் மெனு"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"இந்த அமர்வின் எல்லா ஆப்ஸும் தரவும் நீக்கப்படும்."</string>
@@ -576,7 +573,7 @@
     <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"ஓர் ஆப்ஸைப் பகிரும்போது, அதில் காட்டப்படும்/பிளே செய்யப்படும் அனைத்தும் <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> இல் தெரியும். எனவே கடவுச்சொற்கள், பேமெண்ட் விவரங்கள், மெசேஜ்கள், படங்கள், ஆடியோ, வீடியோ போன்றவை குறித்துக் கவனத்துடன் இருங்கள்."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"திரையைப் பகிர்"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸ் இந்த விருப்பத்தை முடக்கியுள்ளது"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"பகிர ஆப்ஸைத் தேர்வுசெய்தல்"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"பகிர ஆப்ஸைத் தேர்வுசெய்க"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"உங்கள் திரையை அலைபரப்ப வேண்டுமா?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"ஓர் ஆப்ஸை அலைபரப்பு"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"முழுத்திரையையும் அலைபரப்பு"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"உரையாடல் அறிவிப்புகளின் மேற்பகுதியில் காட்டப்படும், திரை பூட்டப்பட்டிருக்கும்போது சுயவிவரப் படமாகக் காட்டப்படும், குமிழாகத் தோன்றும், தொந்தரவு செய்ய வேண்டாம் அம்சம் இயக்கப்பட்டிருக்கும்போதும் காட்டப்படும்"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"முன்னுரிமை"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"உரையாடல் அம்சங்களை <xliff:g id="APP_NAME">%1$s</xliff:g> ஆதரிக்காது"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"கருத்து"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"மூடுக"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"மீண்டும் காட்டாதே"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"இந்த அறிவிப்புகளை மாற்ற இயலாது."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"கைரேகையைப் பயன்படுத்தி திறந்திடுங்கள்"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"அங்கீகாரம் தேவை. கைரேகை சென்சாரைத் தொட்டு அங்கீகரியுங்கள்."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"செயலில் உள்ள அழைப்பு"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"செயலிலுள்ளது"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"மொபைல் டேட்டா"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"இணைக்கப்பட்டது"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"தற்காலிகமாக இணைக்கப்பட்டுள்ளது"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"மடக்கத்தக்க சாதனம் திறக்கப்படுகிறது"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"மடக்கத்தக்க சாதனம் ஃபிளிப் செய்யப்பட்டு திருப்பப்படுகிறது"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"முன்பக்கத் திரை இயக்கப்பட்டுள்ளது"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"மடக்கப்பட்டது"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"விரிக்கப்பட்டது"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 0f365c9..f64c737 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -123,7 +123,7 @@
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"మైక్రోఫోన్"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"పరికరం ఆడియో, మైక్రోఫోన్"</string>
     <string name="screenrecord_continue" msgid="4055347133700593164">"ప్రారంభించండి"</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_stop_label" msgid="72699670052087989">"ఆపివేయండి"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"బ్యాటరీ శాతం తెలియదు."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>కి కనెక్ట్ చేయబడింది."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>కి కనెక్ట్ చేయబడింది."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"గ్రూప్‌ను విస్తరించండి."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"యాప్‌ను తెరవండి."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"కనెక్ట్ చేయబడలేదు."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"రోమింగ్"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ఆఫ్ చేయండి"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"హబ్ మోడ్‌ను అన్వేషించండి"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"ఛార్జింగ్ అయ్యే సమయంలో మీకు ఇష్టమైన విడ్జెట్‌లను, స్క్రీన్ సేవర్‌లను యాక్సెస్ చేయండి."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"ప్రారంభించండి"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"ఛార్జింగ్ చేసేటప్పుడు మీకు ఇష్టమైన స్క్రీన్ సేవర్‌లను చూపండి"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"వినియోగదారుని మార్చు"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"పుల్‌డౌన్ మెనూ"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ఈ సెషన్‌లోని అన్ని యాప్‌లు మరియు డేటా తొలగించబడతాయి."</string>
@@ -565,7 +562,7 @@
     <string name="media_projection_sys_service_dialog_title" msgid="3751133258891897878">"రికార్డ్ చేయడం లేదా ప్రసారం చేయడం ప్రారంభించాలా?"</string>
     <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"రికార్డ్ చేస్తున్నప్పుడు లేదా ప్రసారం చేస్తున్నప్పుడు మీ స్క్రీన్‌పై చూపబడిన లేదా మీ పరికరం నుండి ప్లే చేయబడిన సమాచారం మొత్తాన్ని, ఈ ఫంక్షన్‌ను అందిస్తున్న సర్వీస్ యాక్సెస్ చేయగలదు. ఈ సమాచారంలో, పాస్‌వర్డ్‌లు, పేమెంట్ వివరాలు, ఫోటోలు, మెసేజ్‌లు, మీరు ప్లే చేసే ఆడియో వంటివి ఉంటాయి."</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"యాప్‌ను షేర్ చేయండి లేదా రికార్డ్ చేయండి"</string>
-    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"మీ స్క్రీన్‌ను <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>‌తో షేర్ చేయండి?"</string>
+    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"మీ స్క్రీన్‌ను <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>‌కు షేర్ చేయాలా?"</string>
     <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"ఒక యాప్‌ను షేర్ చేయండి"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_single_app (2308901434964846084) -->
     <skip />
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"సంభాషణ నోటిఫికేషన్‌ల ఎగువున, లాక్ స్క్రీన్‌లో ప్రొఫైల్ ఫోటో‌గా చూపిస్తుంది, బబుల్‌గా కనిపిస్తుంది, \'అంతరాయం కలిగించవద్దు\'ను అంతరాయం కలిగిస్తుంది"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ప్రాధాన్యత"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> సంభాషణ ఫీచర్‌లను సపోర్ట్ చేయదు"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ఫీడ్‌బ్యాక్"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"విస్మరించండి"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"మళ్లీ చూపవద్దు"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ఈ నోటిఫికేషన్‌లను ఎడిట్ చేయడం వీలుపడదు."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"స్టిక్కీ కీలను టోగుల్ చేయండి"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"నిదానంగా పనిచేసే కీలను టోగుల్ చేయండి"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Voice Accessను టోగుల్ చేయండి"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBackను టోగుల్ చేయండి"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"మ్యాగ్నిఫికేషన్‌ను టోగుల్ చేయండి"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"\'వినడానికి ఎంచుకోండి\'ని యాక్టివేట్ చేయండి"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"అంతరాయం కలిగించవద్దు"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"వాల్యూమ్ బటన్‌ల షార్ట్‌కట్"</string>
     <string name="battery" msgid="769686279459897127">"బ్యాటరీ"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"తెరవడానికి వేలిముద్రను ఉపయోగించండి"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ప్రామాణీకరణ అవసరం. ప్రామాణీకరించడానికి వేలిముద్ర సెన్సార్‌ను తాకండి."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"కాల్ కొనసాగుతోంది"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"కొనసాగుతోంది"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"మొబైల్ డేటా"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"కనెక్ట్ చేయబడింది"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"తాత్కాలికంగా కనెక్ట్ చేయబడింది"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"మడవగల పరికరం విప్పబడుతోంది"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"మడవగల పరికరం చుట్టూ తిప్పబడుతోంది"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"ముందు వైపు స్క్రీన్ ఆన్ అయింది"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"మడిచే సదుపాయం గల పరికరం"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"మడిచే సదుపాయం లేని పరికరం"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 81b7e19..316aab0 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ไม่ทราบเปอร์เซ็นต์แบตเตอรี่"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"เชื่อมต่อกับ <xliff:g id="BLUETOOTH">%s</xliff:g> แล้ว"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"เชื่อมต่อกับ <xliff:g id="CAST">%s</xliff:g>"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"ขยายกลุ่ม"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"เปิดแอปพลิเคชัน"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"ไม่ได้เชื่อมต่อ"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"โรมมิ่ง"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"ปิด"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"สำรวจโหมดฮับ"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"เข้าถึงวิดเจ็ตและภาพพักหน้าจอโปรดขณะชาร์จ"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"มาเริ่มกันเลย"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"แสดงภาพพักหน้าจอโปรดขณะชาร์จ"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"สลับผู้ใช้"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"เมนูแบบเลื่อนลง"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ระบบจะลบแอปและข้อมูลทั้งหมดในเซสชันนี้"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"แสดงที่ด้านบนของการแจ้งเตือนการสนทนาและเป็นรูปโปรไฟล์บนหน้าจอล็อก ปรากฏเป็นบับเบิล แสดงในโหมดห้ามรบกวน"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"สำคัญ"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ไม่รองรับฟีเจอร์การสนทนา"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ความคิดเห็น"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ปิด"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"ไม่ต้องแสดงอีก"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"แก้ไขการแจ้งเตือนเหล่านี้ไม่ได้"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ใช้ลายนิ้วมือเพื่อเปิด"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ต้องมีการตรวจสอบสิทธิ์ แตะเซ็นเซอร์ลายนิ้วมือเพื่อตรวจสอบสิทธิ์"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"สายที่สนทนาอยู่"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"ดำเนินอยู่"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"อินเทอร์เน็ตมือถือ"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"เชื่อมต่อแล้ว"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"เชื่อมต่อแล้วชั่วคราว"</string>
@@ -1397,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"อุปกรณ์ที่พับได้กำลังกางออก"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"อุปกรณ์ที่พับได้กำลังพลิกไปมา"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"เปิดหน้าจอด้านหน้าแล้ว"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"เลื่อนเพื่อใช้หน้าจอด้านใน"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"พับ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"กางออก"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 4b744f5..04dc6c7 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -138,7 +138,7 @@
     <string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Huminto sa pag-record"</string>
     <string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Ibinabahagi ang screen"</string>
     <string name="share_to_app_chip_accessibility_label_generic" msgid="5517431657924536133">"Pagbabahagi ng content"</string>
-    <string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Ihinto ang pagbabahagi ng screen?"</string>
+    <string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Ihinto ang pagshe-share ng screen?"</string>
     <string name="share_to_app_stop_dialog_title_generic" msgid="9079161538135843648">"Itigil ang pagbabahagi?"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Kasalukuyan mong ibinabahagi ang iyong buong screen sa <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
     <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Kasalukuyan mong ibinabahagi ang iyong buong screen sa isang app"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Hindi alam ang porsyento ng baterya."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Nakakonekta sa <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Nakakonekta sa <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"I-expand ang grupo."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Buksan ang application."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Hindi nakakonekta."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Naka-off"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"I-explore ang hub mode"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"I-access ang mga paborito mong widget at screen saver habang nagcha-charge."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Tara na"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Ipakita ang mga paborito mong screensaver habang nagcha-charge"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Magpalit ng user"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Ide-delete ang lahat ng app at data sa session na ito."</string>
@@ -565,7 +562,7 @@
     <string name="media_projection_sys_service_dialog_title" msgid="3751133258891897878">"Magsimulang mag-record o mag-cast?"</string>
     <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"Ang serbisyong nagbibigay ng function na ito ay magkakaroon ng access sa lahat ng impormasyong nakikita sa iyong screen o pine-play mula sa device mo habang nagre-record o nagka-cast. Kasama rito ang impormasyong tulad ng mga password, detalye ng pagbabayad, larawan, mensahe, at audio na pine-play mo."</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"Magbahagi o mag-record ng app"</string>
-    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"Ibahagi ang iyong screen sa <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"I-share ang screen mo sa <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
     <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"Mag-share ng isang app"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_single_app (2308901434964846084) -->
     <skip />
@@ -573,10 +570,10 @@
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"Kapag ibinahagi mo ang iyong buong screen, makikita ng <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ang kahit anong nasa screen mo. Kaya mag-ingat sa mga bagay-bagay tulad ng mga password, detalye ng pagbabayad, mensahe, larawan, at audio at video."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Kapag nagbabahagi ka ng app, makikita ng <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ang kahit anong ipinapakita o pine-play sa app na iyon. Kaya mag-ingat sa mga bagay-bagay tulad ng mga password, detalye ng pagbabayad, mensahe, larawan, at audio at video."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Kapag nagshe-share ka ng app, makikita ng <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ang kahit anong ipinapakita o pine-play sa app na iyon. Kaya mag-ingat sa mga bagay-bagay tulad ng mga password, detalye ng pagbabayad, mensahe, larawan, at audio at video."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Ibahagi ang screen"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"Na-disable ng <xliff:g id="APP_NAME">%1$s</xliff:g> ang opsyong ito"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Pumili ng app na ibabahagi"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Pumili ng app na ishe-share"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"I-cast ang iyong screen?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Mag-cast ng isang app"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"I-cast ang buong screen"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Makikita sa itaas ng mga notification ng pag-uusap at bilang larawan sa profile sa lock screen, lumalabas bilang bubble, naaabala ang Huwag Istorbohin"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Priyoridad"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"Hindi sinusuportahan ng <xliff:g id="APP_NAME">%1$s</xliff:g> ang mga feature ng pag-uusap"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"I-dismiss"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Huwag nang ipakita ulit"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hindi puwedeng baguhin ang mga notification na ito."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Gamitin ang fingerprint para buksan"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Kailangan ng pag-authenticate. Pindutin ang sensor para sa fingerprint para mag-authenticate."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Kasalukuyang tawag"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Kasalukuyan"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobile data"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Nakakonekta"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Pansamantalang nakakonekta"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Ina-unfold na foldable na device"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Fini-flip na foldable na device"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Na-on ang screen sa harap"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"naka-fold"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"hindi naka-fold"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index fbdc7b6..f4a2c92 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -231,7 +231,7 @@
     <string name="fingerprint_reenroll_failure_dialog_content" msgid="4733768492747300666">"Parmak izi kilidi kurulamadı. Tekrar denemek için Ayarlar\'a gidin."</string>
     <string name="face_re_enroll_notification_title" msgid="1850838867718410520">"Yüz Tanıma Kilidi\'ni tekrar kurun"</string>
     <string name="face_re_enroll_notification_name" msgid="7384545252206120659">"Yüz Tanıma Kilidi"</string>
-    <string name="face_re_enroll_dialog_title" msgid="6392173708176069994">"Yüz Tanıma Kilidi\'ni kurun"</string>
+    <string name="face_re_enroll_dialog_title" msgid="6392173708176069994">"Yüz Tanıma Kilidi\'ni ayarla"</string>
     <string name="face_re_enroll_dialog_content" msgid="7353502359464038511">"Yüz Tanıma Kilidi\'ni tekrar kurmak için mevcut yüz modeliniz silinir.\n\nYüzünüzü kullanarak telefonunuzun kilidini açmak için bu özelliği yeniden kurmanız gerekir."</string>
     <string name="face_reenroll_failure_dialog_content" msgid="7073947334397236935">"Yüz tanıma kilidi kurulamadı. Tekrar denemek için Ayarlar\'a gidin."</string>
     <string name="fingerprint_dialog_touch_sensor" msgid="2817887108047658975">"Parmak izi sensörüne dokunun"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Pil yüzdesi bilinmiyor."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ile bağlı."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> bağlantısı kuruldu."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Grubu genişlet."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Uygulama aç."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Bağlanmadı."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Dolaşım"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Kapalı"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hub Modu\'nu keşfedin"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Cihazınız şarj olurken en sevdiğiniz widget\'lara ve ekran koruyuculara erişin."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Başlayalım"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Cihazınız şarj olurken en sevdiğiniz ekran koruyucuları gösterin"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Kullanıcı değiştirme"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"açılır menü"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Bu oturumdaki tüm uygulamalar ve veriler silinecek."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Görüşme bildirimlerinin üstünde ve kilit ekranında profil resmi olarak gösterilir, baloncuk olarak görünür, Rahatsız Etmeyin\'i kesintiye uğratır"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Öncelikli"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>, sohbet özelliklerini desteklemiyor"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Geri bildirim"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Kapat"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Tekrar gösterme"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirimler değiştirilemez."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Yapışkan tuşları aç/kapat"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Yavaş tuşları aç/kapat"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Sesli Erişim\'i aç/kapat"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"TalkBack\'i aç/kapat"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Büyüteci aç/kapat"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Seç ve Dinle\'yi etkinleştir"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Rahatsız Etmeyin"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Ses düğmeleri kısayolu"</string>
     <string name="battery" msgid="769686279459897127">"Pil"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Açmak için parmak izi kullanın"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Kimlik doğrulaması gerekiyor. Kimlik doğrulaması için parmak izi sensörüne dokunun."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Devam eden arama"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Devam ediyor"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobil veri"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Bağlı"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Geçici olarak bağlandı"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Katlanabilir cihaz açılıyor"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Katlanabilir cihaz döndürülüyor"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Ön ekran açıldı"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"katlanmış"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"katlanmamış"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 4a89f20..7dab3db 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Відсоток заряду акумулятора невідомий."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Підключено до <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Під’єднано до пристрою <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Розгорнути групу"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Відкрити додаток"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Не з’єднано."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Роумінг"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Вимкнено"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Представляємо режим центру керування"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Використовуйте улюблені віджети й заставки, поки пристрій заряджається."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Почати"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Показувати улюблені заставки під час заряджання"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Змінити користувача"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"спадне меню"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Усі додатки й дані з цього сеансу буде видалено."</string>
@@ -565,7 +562,7 @@
     <string name="media_projection_sys_service_dialog_title" msgid="3751133258891897878">"Почати запис або трансляцію?"</string>
     <string name="media_projection_sys_service_dialog_warning" msgid="2443872865267330320">"Сервіс, що надає цю функцію, матиме доступ до всієї інформації, яка з’являється на екрані або відтворюється на пристрої під час запису чи трансляції, зокрема до паролів, платіжної інформації, фотографій, повідомлень і аудіофайлів."</string>
     <string name="screen_share_generic_app_selector_title" msgid="8331515850599218288">"Показувати або записувати додаток"</string>
-    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"Показати екран для додатка <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="media_projection_entry_app_permission_dialog_title" msgid="4613857256721708062">"Показати екран у додатку <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
     <string name="screen_share_permission_dialog_option_single_app" msgid="2974054871681567314">"Показати один додаток"</string>
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_single_app (2308901434964846084) -->
     <skip />
@@ -573,10 +570,10 @@
     <!-- no translation found for media_projection_entry_app_permission_dialog_option_text_entire_screen (5100078808078139706) -->
     <skip />
     <string name="media_projection_entry_app_permission_dialog_warning_entire_screen" msgid="5504288438067851086">"Коли ви показуєте весь екран, для додатка <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> стає видимим увесь контент на ньому. Тому будьте обережні з паролями, повідомленнями, фотографіями, аудіо, відео, платіжною інформацією тощо."</string>
-    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Коли ви показуєте додаток, для додатка <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> стає видимим увесь контент, що відображається або відтворюється в ньому. Тому будьте обережні з паролями, повідомленнями, фотографіями, аудіо, відео, платіжною інформацією тощо."</string>
+    <string name="media_projection_entry_app_permission_dialog_warning_single_app" msgid="7094417930857938876">"Коли ви показуєте вікно додатка, увесь контент, що відображається або відтворюється в ньому, стає видимим у додатку <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>. Тому будьте обережні з паролями, повідомленнями, фотографіями, аудіо, відео, платіжною інформацією тощо."</string>
     <string name="media_projection_entry_app_permission_dialog_continue_entire_screen" msgid="1850848182344377579">"Показати екран"</string>
     <string name="media_projection_entry_app_permission_dialog_single_app_disabled" msgid="8999903044874669995">"Додаток <xliff:g id="APP_NAME">%1$s</xliff:g> вимкнув цю опцію"</string>
-    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Виберіть додаток, яким хочете поділитися"</string>
+    <string name="media_projection_entry_share_app_selector_title" msgid="1419515119767501822">"Виберіть додаток для показу"</string>
     <string name="media_projection_entry_cast_permission_dialog_title" msgid="752756942658159416">"Транслювати екран?"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_single_app" msgid="6073353940838561981">"Транслювати один додаток"</string>
     <string name="media_projection_entry_cast_permission_dialog_option_text_entire_screen" msgid="8389508187954155307">"Транслювати весь екран"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"З’являється вгорі сповіщень про розмови і як зображення профілю на заблокованому екрані, відображається як спливаючий чат, перериває режим \"Не турбувати\""</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Пріоритет"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не підтримує функції розмов"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Надіслати відгук"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Закрити"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Більше не показувати"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ці сповіщення не можна змінити."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Увімкнути або вимкнути залипання клавіш"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Увімкнути або вимкнути повільні клавіші"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Увімкнути або вимкнути Голосовий доступ"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Увімкнути або вимкнути TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Увімкнути або вимкнути збільшення"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Активувати функцію \"Читання з екрана\""</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Не турбувати"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Кнопки гучності на корпусі"</string>
     <string name="battery" msgid="769686279459897127">"Акумулятор"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Щоб відкрити, використайте відбиток пальця"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Пройдіть автентифікацію. Для цього торкніться сканера відбитків пальців."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Поточний дзвінок"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Поточна активність"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Мобільний трафік"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Підключено"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Тимчасово з’єднано"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Розкладний пристрій у розкладеному стані"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Розкладний пристрій обертається"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Передній екран увімкнено"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"складений"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"розкладений"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index 5c97d27..6460721 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -123,7 +123,7 @@
     <string name="screenrecord_mic_label" msgid="2111264835791332350">"مائیکروفون"</string>
     <string name="screenrecord_device_audio_and_mic_label" msgid="1831323771978646841">"آلہ کا آڈیو اور مائیکروفون"</string>
     <string name="screenrecord_continue" msgid="4055347133700593164">"شروع کریں"</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_stop_label" msgid="72699670052087989">"روکیں"</string>
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"بیٹری کی فیصد نامعلوم ہے۔"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> سے منسلک ہیں۔"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> سے منسلک ہے۔"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"گروپ کو پھیلائیں۔"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"ایپلیکیشن کھولیں۔"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"مربوط نہیں ہے۔"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"رومنگ"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"آف ہے"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"ہب موڈ دریافت کریں"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"چارج کرتے وقت اپنے پسندیدہ ویجیٹس اور اسکرین سیورز تک رسائی حاصل کریں۔"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"آئیے شروع کریں"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"چارج کرتے وقت اپنے پسندیدہ اسکرین سیورز دکھائیں"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"صارف سوئچ کریں"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"پل ڈاؤن مینیو"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"اس سیشن میں موجود سبھی ایپس اور ڈیٹا کو حذف کر دیا جائے گا۔"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"یہ گفتگو کی اطلاعات کے اوپری حصّے پر اور مقفل اسکرین پر پروفائل کی تصویر کے بطور دکھائی دیتا ہے، بلبلے کے بطور ظاہر ہوتا ہے، \'ڈسٹرب نہ کریں\' میں مداخلت کرتا ہے"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"ترجیح"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ایپ گفتگو کی خصوصیات کو سپورٹ نہیں کرتی ہے"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"تاثرات"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"برخاست کریں"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"دوبارہ نہ دکھائیں"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ان اطلاعات کی ترمیم نہیں کی جا سکتی۔"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"دبی رہنے والی کلیدیں ٹوگل کریں"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"سست کلیدیں ٹوگل کریں"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"صوتی رسائی کو ٹوگل کریں"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"‏‫TalkBack کو ٹوگل کریں"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"میگنیفکیشن کو ٹوگل کریں"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"سننے کیلئے منتخب کریں کو فعال کریں"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"ڈسٹرب نہ کریں"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"والیوم بٹنز کے شارٹ کٹ"</string>
     <string name="battery" msgid="769686279459897127">"بیٹری"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"کھولنے کے لیے فنگر پرنٹ کا استعمال کریں"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"توثیق مطلوب ہے۔ توثیق کرنے کے لیے فنگر پرنٹ سینسر کو ٹچ کریں۔"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"جاری کال"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"جاری ہے"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"موبائل ڈیٹا"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"منسلک ہے"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"عارضی طور پر منسلک ہے"</string>
@@ -1400,6 +1394,7 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"فولڈ ہونے والے آلے کو کھولا جا رہا ہے"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"فولڈ ہونے والے آلے کو گھمایا جا رہا ہے"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"فرنٹ اسکرین آن ہے"</string>
+    <string name="rear_display_unfolded_front_screen_on_slide_to_cancel" msgid="1455192420423012859">"اندرونی اسکرین کا استعمال کرنے کے لیے سلائیڈ کریں"</string>
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"فولڈ کردہ"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"اَن فولڈ کردہ"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 9a75943..6bcd9d6 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batareya quvvati foizi nomaʼlum."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ulangan: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Bunga ulangan: <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Guruhni yoying."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Ilovani oching."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Ulanmagan."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Rouming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Oʻchiq"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hub rejimi bilan tanishing"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Quvvatlash paytida sevimli vidjetlar va ekran lavhalaridan foydalaning."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Boshlash"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Quvvatlash paytida sevimli ekran lavhalari koʻrsatilsin"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Foydalanuvchini almashtirish"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"tortib tushiriladigan menyu"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Ushbu seansdagi barcha ilovalar va ma’lumotlar o‘chirib tashlanadi."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Suhbat bildirishnomalari tepasida va ekran qulfida profil rasmi sifatida chiqariladi, bulutcha sifatida chiqadi, Bezovta qilinmasin rejimini bekor qiladi"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Muhim"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasida suhbat funksiyalari ishlamaydi"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Fikr-mulohaza"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Yopish"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Boshqa chiqmasin"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirishnomalarni tahrirlash imkonsiz."</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Ochish uchun barmoq izidan foydalaning"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Haqiqiylikni tekshirish talab etiladi. Autentifikatsiya uchun barmoq izi skaneriga tegining."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Joriy chaqiruv"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Hali bajarilmagan"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Mobil internet"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Ulangan"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Vaqtincha ulangan"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Buklanadigan qurilma ochilmoqda"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Buklanadigan qurilma aylantirilmoqda"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Old ekran yoqildi"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"buklangan"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"buklanmagan"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index d023242..a9f24ed 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Tỷ lệ phần trăm pin không xác định."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Đã kết nối với <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Đã kết nối với <xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Mở rộng nhóm."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Mở ứng dụng."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Chưa được kết nối."</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Chuyển vùng"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Tắt"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Khám phá chế độ thiết bị trung tâm"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Truy cập vào các tiện ích và trình bảo vệ màn hình mà bạn yêu thích trong khi sạc."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Bắt đầu"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Hiện trình bảo vệ màn hình bạn yêu thích trong khi sạc"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Chuyển đổi người dùng"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"trình đơn kéo xuống"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Tất cả ứng dụng và dữ liệu trong phiên này sẽ bị xóa."</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Hiện ở đầu phần thông báo cuộc trò chuyện và ở dạng ảnh hồ sơ trên màn hình khóa, xuất hiện ở dạng bong bóng, làm gián đoạn chế độ Không làm phiền"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Mức độ ưu tiên"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> không hỗ trợ các tính năng trò chuyện"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Phản hồi"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Đóng"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Không hiện lại"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Không thể sửa đổi các thông báo này."</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Bật/tắt phím cố định"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Bật/tắt phím chậm"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Bật/tắt tính năng Điều khiển bằng giọng nói"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Bật/tắt TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Bật/tắt tính năng thu phóng"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Kích hoạt tính năng Chọn để nói"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Không làm phiền"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Phím tắt các nút âm lượng"</string>
     <string name="battery" msgid="769686279459897127">"Pin"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Dùng vân tay để mở"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Bạn cần phải xác thực. Hãy chạm vào cảm biến vân tay để xác thực."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Cuộc gọi đang diễn ra"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Đang diễn ra"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Dữ liệu di động"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Đã kết nối"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Tạm thời có kết nối"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Thiết bị có thể gập lại đang được mở ra"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Thiết bị có thể gập lại đang được lật ngược"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Đã bật màn hình trước"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"gập"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"mở"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 23178d8d..0f28d92 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"电池电量百分比未知。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"已连接到<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"已连接到 <xliff:g id="CAST">%s</xliff:g>。"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"展开群组。"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"打开应用。"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"未连接。"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"漫游"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"已关闭"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"探索基座接入模式"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"充电时访问您喜爱的微件和屏保。"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"现在就试试吧"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"在充电时显示您喜爱的屏保"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"切换用户"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"下拉菜单"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"此会话中的所有应用和数据都将被删除。"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"以气泡形式显示在对话通知顶部(屏幕锁定时显示为个人资料照片),并且会中断勿扰模式"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"优先"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>不支持对话功能"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"反馈"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"关闭"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"不再显示"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"无法修改这些通知。"</string>
@@ -924,12 +922,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"开启/关闭粘滞键"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"开启/关闭慢速键"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"开启/关闭语音操控"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"开启/关闭 TalkBack"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"开启/关闭放大功能"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"启用“随选朗读”"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"勿扰"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"音量按钮快捷键"</string>
     <string name="battery" msgid="769686279459897127">"电池"</string>
@@ -1309,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"使用指纹即可打开"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"需要进行身份验证。请轻触指纹传感器以验证身份。"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"正在通话"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"正在进行"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"移动数据网络"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"已连接"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"已暂时连接"</string>
@@ -1400,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"正在展开可折叠设备"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"正在翻转可折叠设备"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"前屏已开启"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"折叠状态"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"展开状态"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s/%2$s"</string>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 794a7ba..6a29d86 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"電量百分比不明。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"已連線至<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"已連接至 <xliff:g id="CAST">%s</xliff:g>。"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"展開群組。"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"開啟應用程式。"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"未連線。"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"漫遊"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"關閉"</string>
@@ -377,7 +375,7 @@
     <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 警告"</string>
     <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"工作應用程式"</string>
     <string name="quick_settings_work_mode_paused_state" msgid="6681788236383735976">"已暫停"</string>
-    <string name="quick_settings_night_display_label" msgid="8180030659141778180">"夜間模式"</string>
+    <string name="quick_settings_night_display_label" msgid="8180030659141778180">"夜燈模式"</string>
     <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"在日落時開啟"</string>
     <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"在日出時關閉"</string>
     <string name="quick_settings_night_secondary_label_on_at" msgid="3584738542293528235">"<xliff:g id="TIME">%s</xliff:g> 開啟"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"探索插座模式"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"在充電時存取你喜愛的小工具和螢幕保護程式。"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"立即開始"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"充電時顯示常用螢幕保護程式"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"切換使用者"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"下拉式選單"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"這個工作階段中的所有應用程式和資料都會被刪除。"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"以對話氣泡形式顯示在對話通知頂部 (在上鎖畫面會顯示為個人檔案相片),並會中斷「請勿打擾」模式"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"優先"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」不支援對話功能"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"意見反映"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"關閉"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"不要再顯示"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"使用指紋即可開啟"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"需要驗證。掂一下指紋感應器就可以驗證。"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"通話中"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"進行中"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"流動數據"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"已連線"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"已暫時連線"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"正在展開折疊式裝置"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"正在翻轉折疊式裝置"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"正面螢幕已開啟"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"已摺疊"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"已打開"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 689475c..a931304 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -250,10 +250,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"電池電量不明。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"已連線至<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"已連線至 <xliff:g id="CAST">%s</xliff:g>。"</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"展開群組。"</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"開啟應用程式。"</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"尚未連線。"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"漫遊"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"關閉"</string>
@@ -543,8 +541,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"瞭解 Hub 模式"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"在充電時使用喜愛的小工具和螢幕保護程式。"</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"開始使用"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"在充電時顯示你最愛的螢幕保護程式"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"切換使用者"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"下拉式選單"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"這個工作階段中的所有應用程式和資料都會刪除。"</string>
@@ -807,6 +804,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"以對話框的形式顯示在對話通知頂端 (螢幕鎖定時會顯示為個人資料相片),並會中斷「零打擾」模式"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"優先"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」不支援對話功能"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"意見回饋"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"關閉"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"不要再顯示"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
@@ -1306,8 +1304,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"使用指紋即可開啟"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"需要驗證。輕觸指紋感應器即可進行驗證。"</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"通話中"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"進行中"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"行動數據"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"已連線"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"已暫時建立連線"</string>
@@ -1397,6 +1394,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"正在展開的折疊式裝置"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"正在翻轉折疊式裝置"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"正面螢幕已開啟"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"已摺疊"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"已展開"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index d07a44d..08e6852 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -252,10 +252,8 @@
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Iphesenti lebhethri alaziwa."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Xhuma ku-<xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ixhumeke ku-<xliff:g id="CAST">%s</xliff:g>."</string>
-    <!-- no translation found for accessibility_expand_group (521237935987978624) -->
-    <skip />
-    <!-- no translation found for accessibility_open_application (1749126077501259712) -->
-    <skip />
+    <string name="accessibility_expand_group" msgid="521237935987978624">"Nweba iqembu."</string>
+    <string name="accessibility_open_application" msgid="1749126077501259712">"Vula i-application."</string>
     <string name="accessibility_not_connected" msgid="4061305616351042142">"Akuxhunyiwe"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Iyazulazula"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Valiwe"</string>
@@ -545,8 +543,7 @@
     <string name="hub_onboarding_bottom_sheet_title" msgid="162092881395529947">"Hlola imodi yehabhu"</string>
     <string name="hub_onboarding_bottom_sheet_text" msgid="8589816797970240544">"Finyelela amawijethi akho ayintandokazi nezigcinisikrini ngenkathi ushaja."</string>
     <string name="hub_onboarding_bottom_sheet_action_button" msgid="6161983690157872829">"Asihambe"</string>
-    <!-- no translation found for glanceable_hub_to_dream_button_tooltip (9018287673822335829) -->
-    <skip />
+    <string name="glanceable_hub_to_dream_button_tooltip" msgid="9018287673822335829">"Bonisa izigcini zesikrini zakho eziyintandokazi ngenkathi ishaja"</string>
     <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Shintsha umsebenzisi"</string>
     <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"imenyu yokudonsela phansi"</string>
     <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Wonke ama-app nedatha kulesi sikhathi azosuswa."</string>
@@ -809,6 +806,7 @@
     <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Ivela phezu kwezaziso zengxoxo futhi njengesithombe sephrofayela esikrinini sokukhiya, ivela njengebhamuza, ukuphazamisa okuthi Ungaphazamisi"</string>
     <string name="notification_priority_title" msgid="2079708866333537093">"Okubalulekile"</string>
     <string name="no_shortcut" msgid="8257177117568230126">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> ayisekeli izici zengxoxo"</string>
+    <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Impendulo"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Chitha"</string>
     <string name="notification_inline_disable_promotion" msgid="6880961831026048166">"Ungabonisi futhi"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Lezi zaziso azikwazi ukushintshwa."</string>
@@ -926,12 +924,9 @@
     <string name="group_accessibility_toggle_sticky_keys" msgid="7722214637652104184">"Guqula okhiye abanamathelayo"</string>
     <string name="group_accessibility_toggle_slow_keys" msgid="8569881436531795062">"Guqula okhiye abanensayo"</string>
     <string name="group_accessibility_toggle_voice_access" msgid="5436708239015479017">"Guqula Ukufinyelela Kwezwi"</string>
-    <!-- no translation found for group_accessibility_toggle_talkback (5017967056006325713) -->
-    <skip />
-    <!-- no translation found for group_accessibility_toggle_magnification (3892267763383743128) -->
-    <skip />
-    <!-- no translation found for group_accessibility_activate_select_to_speak (9157775915495428592) -->
-    <skip />
+    <string name="group_accessibility_toggle_talkback" msgid="5017967056006325713">"Guqula ITalkback"</string>
+    <string name="group_accessibility_toggle_magnification" msgid="3892267763383743128">"Guqula Ukukhuliswa"</string>
+    <string name="group_accessibility_activate_select_to_speak" msgid="9157775915495428592">"Sebenzisa okuthi Khetha ukuze Ukhulume"</string>
     <string name="volume_and_do_not_disturb" msgid="502044092739382832">"Ungaphazamisi"</string>
     <string name="volume_dnd_silent" msgid="4154597281458298093">"Izinqamuleli zezinkinobho zevolomu"</string>
     <string name="battery" msgid="769686279459897127">"Ibhethri"</string>
@@ -1311,8 +1306,7 @@
     <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Sebenzisa izigxivizo zeminwe ukuvula"</string>
     <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"Ukufakazela ubuqiniso budingekile. Thinta inzwa yezigxivizo zeminwe ukuze uqinisekise."</string>
     <string name="ongoing_call_content_description" msgid="6394763878322348560">"Ikholi eqhubekayo"</string>
-    <!-- no translation found for ongoing_notification_extra_content_description (2098752668861351265) -->
-    <skip />
+    <string name="ongoing_notification_extra_content_description" msgid="2098752668861351265">"Okuqhubekayo"</string>
     <string name="mobile_data_settings_title" msgid="3955246641380064901">"Idatha yeselula"</string>
     <string name="mobile_data_connection_active" msgid="944490013299018227">"Ixhunyiwe"</string>
     <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Ixhume okwesikhashana"</string>
@@ -1402,6 +1396,8 @@
     <string name="rear_display_accessibility_folded_animation" msgid="1538121649587978179">"Idivayisi egoqekayo iyembulwa"</string>
     <string name="rear_display_accessibility_unfolded_animation" msgid="1946153682258289040">"Idivayisi egoqekayo iphendulwa nxazonke"</string>
     <string name="rear_display_unfolded_front_screen_on" msgid="5946436677205643170">"Isikrini sangaphambili sivuliwe"</string>
+    <!-- no translation found for rear_display_unfolded_front_screen_on_slide_to_cancel (1455192420423012859) -->
+    <skip />
     <string name="quick_settings_rotation_posture_folded" msgid="2430280856312528289">"kugoqiwe"</string>
     <string name="quick_settings_rotation_posture_unfolded" msgid="6372316273574167114">"kuvuliwe"</string>
     <string name="rotation_tile_with_posture_secondary_label_template" msgid="7648496484163318886">"%1$s / %2$s"</string>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 015e0e8..8665fd6 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -34,12 +34,12 @@
 
     <!-- Base colors for notification shade/scrim, the alpha component is adjusted programmatically
     to match the spec -->
-    <color name="shade_panel">@android:color/system_accent1_900</color>
-    <color name="surface_effect_0">@android:color/system_accent1_100</color>
+    <color name="shade_panel_base">@android:color/system_accent1_900</color>
+    <color name="notification_scrim_base">@android:color/system_accent1_100</color>
 
-    <!-- todo(b/388891904) Remove updated color references once they are available. -->
-    <color name="shade_panel_base">@color/shade_panel</color>
-    <color name="notification_scrim_base">@color/surface_effect_0</color>
+    <!-- Fallback colors for notification shade/scrim -->
+    <color name="shade_panel_fallback">@android:color/system_accent2_200</color>
+    <color name="notification_scrim_fallback">@android:color/system_surface_dim_light</color>
 
     <!-- The color of the background in the separated list of the Global Actions menu -->
     <color name="global_actions_separated_background">#F5F5F5</color>
@@ -145,6 +145,9 @@
     <color name="smart_reply_button_background">#ffffffff</color>
     <color name="smart_reply_button_stroke">@*android:color/accent_device_default</color>
 
+    <!-- Magic Action colors -->
+    <color name="magic_action_button_text_color">@androidprv:color/materialColorOnSurfaceVariant</color>
+
     <!-- Biometric dialog colors -->
     <color name="biometric_dialog_gray">#ff757575</color>
     <color name="biometric_dialog_accent">@color/material_dynamic_primary40</color>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 9b8926e..09aa224 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -1110,4 +1110,7 @@
     <!-- Configuration for wallpaper focal area -->
     <bool name="center_align_focal_area_shape">false</bool>
     <string name="focal_area_target" translatable="false" />
+
+    <!-- Configuration to swipe to open glanceable hub -->
+    <bool name="config_swipeToOpenGlanceableHub">false</bool>
 </resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index fcd3a51d..648e4c2 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1129,6 +1129,17 @@
     <dimen name="smart_action_button_icon_padding">8dp</dimen>
     <dimen name="smart_action_button_outline_stroke_width">2dp</dimen>
 
+    <!-- Magic Action params. -->
+    <!-- Corner radius = half of min_height to create rounded sides. -->
+    <dimen name="magic_action_button_corner_radius">16dp</dimen>
+    <dimen name="magic_action_button_icon_size">20dp</dimen>
+    <dimen name="magic_action_button_outline_stroke_width">1dp</dimen>
+    <dimen name="magic_action_button_padding_horizontal">12dp</dimen>
+    <dimen name="magic_action_button_inset_vertical">8dp</dimen>
+    <dimen name="magic_action_button_drawable_padding">8dp</dimen>
+    <dimen name="magic_action_button_touch_target_height">48dp</dimen>
+    <dimen name="magic_action_button_font_size">12sp</dimen>
+
     <!-- A reasonable upper bound for the height of the smart reply button. The measuring code
             needs to start with a guess for the maximum size. Currently two-line smart reply buttons
             add about 88dp of height to the notifications. -->
@@ -1800,6 +1811,7 @@
     <dimen name="ongoing_activity_chip_text_end_padding_for_embedded_padding_icon">6dp</dimen>
     <dimen name="ongoing_activity_chip_text_fading_edge_length">12dp</dimen>
     <dimen name="ongoing_activity_chip_corner_radius">28dp</dimen>
+    <dimen name="ongoing_activity_chip_outline_width">2px</dimen>
 
     <!-- Status bar user chip -->
     <dimen name="status_bar_user_chip_avatar_size">16dp</dimen>
@@ -1993,10 +2005,14 @@
     </item>
 
     <!-- The padding applied to the dream overlay container -->
-    <dimen name="dream_overlay_container_padding_start">0dp</dimen>
-    <dimen name="dream_overlay_container_padding_end">0dp</dimen>
+    <dimen name="dream_overlay_container_padding_start">40dp</dimen>
+    <dimen name="dream_overlay_container_padding_end">40dp</dimen>
     <dimen name="dream_overlay_container_padding_top">0dp</dimen>
-    <dimen name="dream_overlay_container_padding_bottom">0dp</dimen>
+    <dimen name="dream_overlay_container_padding_bottom">40dp</dimen>
+    <dimen name="dream_overlay_container_small_padding_start">32dp</dimen>
+    <dimen name="dream_overlay_container_small_padding_end">32dp</dimen>
+    <dimen name="dream_overlay_container_small_padding_top">0dp</dimen>
+    <dimen name="dream_overlay_container_small_padding_bottom">32dp</dimen>
 
     <!-- The margin applied between complications -->
     <dimen name="dream_overlay_complication_margin">0dp</dimen>
diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml
index dc089e7..47a9bd6 100644
--- a/packages/SystemUI/res/values/ids.xml
+++ b/packages/SystemUI/res/values/ids.xml
@@ -234,6 +234,7 @@
     <item type="id" name="nssl_placeholder" />
     <item type="id" name="nssl_placeholder_barrier_bottom" />
     <item type="id" name="small_clock_guideline_top" />
+    <item type="id" name="smart_space_barrier_top" />
     <item type="id" name="smart_space_barrier_bottom" />
     <item type="id" name="split_shade_guideline" />
     <item type="id" name="start_button" />
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index d18a90a..8629203 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -1351,6 +1351,10 @@
     <string name="accessibility_action_label_shrink_widget">Decrease height</string>
     <!-- Label for accessibility action to expand a widget in edit mode. [CHAR LIMIT=NONE] -->
     <string name="accessibility_action_label_expand_widget">Increase height</string>
+    <!-- Label for accessibility action to show the next media player. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_action_label_umo_show_next">Show next</string>
+    <!-- Label for accessibility action to show the previous media player. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_action_label_umo_show_previous">Show previous</string>
     <!-- Title shown above information regarding lock screen widgets. [CHAR LIMIT=50] -->
     <string name="communal_widgets_disclaimer_title">Lock screen widgets</string>
     <!-- Information about lock screen widgets presented to the user. [CHAR LIMIT=NONE] -->
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 5ef4d40..4961a7e 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -93,15 +93,6 @@
         <item name="android:textColor">?android:attr/colorPrimary</item>
     </style>
 
-    <!-- Style for a status bar chip text that has a maximum width. Since there's so little room in
-         the status bar chip area, don't ellipsize the text and instead just fade it out a bit at
-         the end. -->
-    <style name="StatusBar.Chip.Text.LimitedWidth">
-        <item name="android:ellipsize">none</item>
-        <item name="android:requiresFadingEdge">horizontal</item>
-        <item name="android:fadingEdgeLength">@dimen/ongoing_activity_chip_text_fading_edge_length</item>
-    </style>
-
     <style name="Chipbar" />
 
     <style name="Chipbar.Text" parent="@*android:style/TextAppearance.DeviceDefault.Notification.Title">
@@ -258,7 +249,7 @@
     <style name="TextAppearance.AuthNonBioCredential.Title">
         <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
         <item name="android:layout_marginTop">24dp</item>
-        <item name="android:textSize">36dp</item>
+        <item name="android:textSize">36sp</item>
         <item name="android:focusable">true</item>
         <item name="android:textColor">@androidprv:color/materialColorOnSurface</item>
     </style>
diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
index 71b622a..1b8282b 100644
--- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
+++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
@@ -564,6 +564,17 @@
         }
     }
 
+    fun handleFidgetTap(x: Float, y: Float) {
+        if (!com.android.systemui.Flags.clockFidgetAnimation()) {
+            return
+        }
+
+        clock?.run {
+            smallClock.animations.onFidgetTap(x, y)
+            largeClock.animations.onFidgetTap(x, y)
+        }
+    }
+
     private fun handleDoze(doze: Float) {
         dozeAmount = doze
         clock?.run {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index 335a910..73dc282 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -98,7 +98,6 @@
 import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
 import com.android.settingslib.Utils;
 import com.android.settingslib.drawable.CircleFramedDrawable;
-import com.android.systemui.Flags;
 import com.android.systemui.FontStyles;
 import com.android.systemui.Gefingerpoken;
 import com.android.systemui.classifier.FalsingA11yDelegate;
@@ -121,6 +120,7 @@
     static final int USER_TYPE_PRIMARY = 1;
     static final int USER_TYPE_WORK_PROFILE = 2;
     static final int USER_TYPE_SECONDARY_USER = 3;
+    private boolean mTransparentModeEnabled = false;
 
     @IntDef({MODE_UNINITIALIZED, MODE_DEFAULT, MODE_ONE_HANDED, MODE_USER_SWITCHER})
     public @interface Mode {}
@@ -814,15 +814,30 @@
         mDisappearAnimRunning = false;
     }
 
+    /**
+     * Make the bouncer background transparent
+     */
+    public void enableTransparentMode() {
+        mTransparentModeEnabled = true;
+        reloadBackgroundColor();
+    }
+
+    /**
+     * Make the bouncer background opaque
+     */
+    public void disableTransparentMode() {
+        mTransparentModeEnabled = false;
+        reloadBackgroundColor();
+    }
+
     private void reloadBackgroundColor() {
-        if (Flags.bouncerUiRevamp()) {
-            // Keep the background transparent, otherwise the background color looks like a box
-            // while scaling the bouncer for back animation or while transitioning to the bouncer.
+        if (mTransparentModeEnabled) {
             setBackgroundColor(Color.TRANSPARENT);
         } else {
             setBackgroundColor(
                     getContext().getColor(com.android.internal.R.color.materialColorSurfaceDim));
         }
+        invalidate();
     }
 
     void reloadColors() {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
index ff7b2b0..d10fce4 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
@@ -70,6 +70,7 @@
 import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
 import com.android.keyguard.dagger.KeyguardBouncerScope;
 import com.android.settingslib.utils.ThreadUtils;
+import com.android.systemui.Flags;
 import com.android.systemui.Gefingerpoken;
 import com.android.systemui.biometrics.FaceAuthAccessibilityDelegate;
 import com.android.systemui.bouncer.domain.interactor.BouncerMessageInteractor;
@@ -96,6 +97,8 @@
 import com.android.systemui.util.ViewController;
 import com.android.systemui.util.kotlin.JavaAdapter;
 import com.android.systemui.util.settings.GlobalSettings;
+import com.android.systemui.window.data.repository.WindowRootViewBlurRepository;
+import com.android.systemui.window.domain.interactor.WindowRootViewBlurInteractor;
 
 import dagger.Lazy;
 
@@ -134,6 +137,7 @@
     private final FalsingA11yDelegate mFalsingA11yDelegate;
     private final DeviceEntryFaceAuthInteractor mDeviceEntryFaceAuthInteractor;
     private final BouncerMessageInteractor mBouncerMessageInteractor;
+    private final Lazy<WindowRootViewBlurInteractor> mRootViewBlurInteractor;
     private int mTranslationY;
     private final KeyguardDismissTransitionInteractor mKeyguardDismissTransitionInteractor;
     private final DevicePolicyManager mDevicePolicyManager;
@@ -431,6 +435,7 @@
     private final Executor mBgExecutor;
     @Nullable
     private Job mSceneTransitionCollectionJob;
+    private Job mBlurEnabledCollectionJob;
 
     @Inject
     public KeyguardSecurityContainerController(KeyguardSecurityContainer view,
@@ -463,9 +468,11 @@
             KeyguardDismissTransitionInteractor keyguardDismissTransitionInteractor,
             Lazy<PrimaryBouncerInteractor> primaryBouncerInteractor,
             @Background Executor bgExecutor,
-            Provider<DeviceEntryInteractor> deviceEntryInteractor
+            Provider<DeviceEntryInteractor> deviceEntryInteractor,
+            Lazy<WindowRootViewBlurInteractor> rootViewBlurInteractorProvider
     ) {
         super(view);
+        mRootViewBlurInteractor = rootViewBlurInteractorProvider;
         view.setAccessibilityDelegate(faceAuthAccessibilityDelegate);
         mLockPatternUtils = lockPatternUtils;
         mUpdateMonitor = keyguardUpdateMonitor;
@@ -539,6 +546,32 @@
                 }
             );
         }
+
+        if (Flags.bouncerUiRevamp()) {
+            mBlurEnabledCollectionJob = mJavaAdapter.get().alwaysCollectFlow(
+                    mRootViewBlurInteractor.get().isBlurCurrentlySupported(),
+                    this::handleBlurSupportedChanged);
+        }
+    }
+
+    private void handleBlurSupportedChanged(boolean isWindowBlurSupported) {
+        if (isWindowBlurSupported) {
+            mView.enableTransparentMode();
+        } else {
+            mView.disableTransparentMode();
+        }
+    }
+
+    private void refreshBouncerBackground() {
+        // This is present solely for screenshot tests that disable blur by invoking setprop to
+        // disable blurs, however the mRootViewBlurInteractor#isBlurCurrentlySupported doesn't emit
+        // an updated value because sysui doesn't have a way to register for changes to setprop.
+        // KeyguardSecurityContainer view is inflated only once and doesn't re-inflate so it has to
+        // check the sysprop every time bouncer is about to be shown.
+        if (Flags.bouncerUiRevamp() && (ActivityManager.isRunningInUserTestHarness()
+                || ActivityManager.isRunningInTestHarness())) {
+            handleBlurSupportedChanged(!WindowRootViewBlurRepository.isDisableBlurSysPropSet());
+        }
     }
 
     @Override
@@ -552,6 +585,11 @@
             mSceneTransitionCollectionJob.cancel(null);
             mSceneTransitionCollectionJob = null;
         }
+
+        if (mBlurEnabledCollectionJob != null) {
+            mBlurEnabledCollectionJob.cancel(null);
+            mBlurEnabledCollectionJob = null;
+        }
     }
 
     /**  */
@@ -718,6 +756,8 @@
         if (bouncerUserSwitcher != null) {
             bouncerUserSwitcher.setAlpha(0f);
         }
+
+        refreshBouncerBackground();
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 3d675fa..f6d0f4e 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -146,6 +146,9 @@
 import com.android.systemui.deviceentry.shared.model.SuccessFaceAuthenticationStatus;
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.dump.DumpsysTableLogger;
+import com.android.systemui.keyguard.KeyguardWmStateRefactor;
+import com.android.systemui.keyguard.domain.interactor.KeyguardServiceShowLockscreenInteractor;
+import com.android.systemui.keyguard.domain.interactor.ShowWhileAwakeReason;
 import com.android.systemui.keyguard.shared.constants.TrustAgentUiEvent;
 import com.android.systemui.log.SessionTracker;
 import com.android.systemui.plugins.clocks.WeatherData;
@@ -298,6 +301,7 @@
     private final Provider<SceneInteractor> mSceneInteractor;
     private final Provider<AlternateBouncerInteractor> mAlternateBouncerInteractor;
     private final Provider<CommunalSceneInteractor> mCommunalSceneInteractor;
+    private final KeyguardServiceShowLockscreenInteractor mKeyguardServiceShowLockscreenInteractor;
     private final AuthController mAuthController;
     private final UiEventLogger mUiEventLogger;
     private final Set<String> mAllowFingerprintOnOccludingActivitiesFromPackage;
@@ -2214,7 +2218,8 @@
             Provider<AlternateBouncerInteractor> alternateBouncerInteractor,
             Provider<JavaAdapter> javaAdapter,
             Provider<SceneInteractor> sceneInteractor,
-            Provider<CommunalSceneInteractor> communalSceneInteractor) {
+            Provider<CommunalSceneInteractor> communalSceneInteractor,
+            KeyguardServiceShowLockscreenInteractor keyguardServiceShowLockscreenInteractor) {
         mContext = context;
         mSubscriptionManager = subscriptionManager;
         mUserTracker = userTracker;
@@ -2264,6 +2269,7 @@
         mJavaAdapter = javaAdapter;
         mSceneInteractor = sceneInteractor;
         mCommunalSceneInteractor = communalSceneInteractor;
+        mKeyguardServiceShowLockscreenInteractor = keyguardServiceShowLockscreenInteractor;
 
         mHandler = new Handler(mainLooper) {
             @Override
@@ -2545,6 +2551,13 @@
             );
         }
 
+        if (KeyguardWmStateRefactor.isEnabled()) {
+            mJavaAdapter.get().alwaysCollectFlow(
+                    mKeyguardServiceShowLockscreenInteractor.getShowNowEvents(),
+                    this::onKeyguardServiceShowLockscreenNowEvents
+            );
+        }
+
         if (glanceableHubV2()) {
             mJavaAdapter.get().alwaysCollectFlow(
                     mCommunalSceneInteractor.get().isCommunalVisible(),
@@ -2578,6 +2591,12 @@
         handlePrimaryBouncerChanged(primaryBouncerIsOrWillBeShowing, primaryBouncerFullyShown);
     }
 
+    void onKeyguardServiceShowLockscreenNowEvents(ShowWhileAwakeReason reason) {
+        if (reason == ShowWhileAwakeReason.FOLDED_WITH_SWIPE_UP_TO_CONTINUE) {
+            mMainExecutor.execute(this::tryForceIsDismissibleKeyguard);
+        }
+    }
+
     private void initializeSimState() {
         // Set initial sim states values.
         for (int slot = 0; slot < mTelephonyManager.getActiveModemCount(); slot++) {
diff --git a/packages/SystemUI/src/com/android/keyguard/dagger/ClockRegistryModule.java b/packages/SystemUI/src/com/android/keyguard/dagger/ClockRegistryModule.java
index 9507b04..6e2adc0 100644
--- a/packages/SystemUI/src/com/android/keyguard/dagger/ClockRegistryModule.java
+++ b/packages/SystemUI/src/com/android/keyguard/dagger/ClockRegistryModule.java
@@ -18,8 +18,11 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.os.Vibrator;
 import android.view.LayoutInflater;
 
+import androidx.annotation.Nullable;
+
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.dagger.qualifiers.Application;
 import com.android.systemui.dagger.qualifiers.Background;
@@ -55,7 +58,8 @@
             FeatureFlags featureFlags,
             @Main Resources resources,
             LayoutInflater layoutInflater,
-            ClockMessageBuffers clockBuffers) {
+            ClockMessageBuffers clockBuffers,
+            @Nullable Vibrator vibrator) {
         ClockRegistry registry = new ClockRegistry(
                 context,
                 pluginManager,
@@ -69,7 +73,8 @@
                         context,
                         layoutInflater,
                         resources,
-                        com.android.systemui.shared.Flags.clockReactiveVariants()
+                        com.android.systemui.shared.Flags.clockReactiveVariants(),
+                        vibrator
                 ),
                 context.getString(R.string.lockscreen_clock_id_fallback),
                 clockBuffers,
diff --git a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
index 19b2920..e2065f1 100644
--- a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
@@ -133,6 +133,8 @@
 
     private final ArrayMap<View, Animator> mDismissPendingMap = new ArrayMap<>();
 
+    private float mSnapBackDirection = 0;
+
     public SwipeHelper(
             Callback callback, Resources resources, ViewConfiguration viewConfiguration,
             FalsingManager falsingManager, FeatureFlags featureFlags) {
@@ -350,6 +352,7 @@
                             && Math.abs(delta) > Math.abs(deltaPerpendicular)) {
                         if (mCallback.canChildBeDragged(mTouchedView)) {
                             mIsSwiping = true;
+                            mCallback.setMagneticAndRoundableTargets(mTouchedView);
                             mCallback.onBeginDrag(mTouchedView);
                             mInitialTouchPos = getPos(ev);
                             mTranslation = getTranslation(mTouchedView);
@@ -442,6 +445,7 @@
         };
 
         Animator anim = getViewTranslationAnimator(animView, newPos, updateListener);
+        mCallback.onMagneticInteractionEnd(animView, velocity);
         if (anim == null) {
             onDismissChildWithAnimationFinished();
             return;
@@ -523,17 +527,24 @@
      */
     protected void snapChild(final View animView, final float targetLeft, float velocity) {
         final boolean canBeDismissed = mCallback.canChildBeDismissed(animView);
+        mSnapBackDirection = getTranslation(animView) - targetLeft;
 
         cancelTranslateAnimation(animView);
 
         PhysicsAnimator<? extends View> anim =
                 createSnapBackAnimation(animView, targetLeft, velocity);
         anim.addUpdateListener((target, values) -> {
-            onTranslationUpdate(target, getTranslation(target), canBeDismissed);
+            float translation = getTranslation(target);
+            onTranslationUpdate(target, translation, canBeDismissed);
+            if ((mSnapBackDirection > 0 && translation < targetLeft)
+                    || (mSnapBackDirection < 0 && translation > targetLeft)) {
+                mCallback.onChildSnapBackOvershoots();
+                mSnapBackDirection = 0;
+            }
         });
         anim.addEndListener((t, p, wasFling, cancelled, finalValue, finalVelocity, allEnded) -> {
             mSnappingChild = false;
-
+            mSnapBackDirection = 0;
             if (!cancelled) {
                 updateSwipeProgressFromOffset(animView, canBeDismissed);
                 resetViewIfSwiping(animView);
@@ -724,7 +735,8 @@
                         dismissChild(mTouchedView, velocity,
                                 !swipedFastEnough() /* useAccelerateInterpolator */);
                     } else {
-                        mCallback.onDragCancelledWithVelocity(mTouchedView, velocity);
+                        mCallback.onMagneticInteractionEnd(mTouchedView, velocity);
+                        mCallback.onDragCancelled(mTouchedView);
                         snapChild(mTouchedView, 0 /* leftTarget */, velocity);
                     }
                     mTouchedView = null;
@@ -926,18 +938,24 @@
 
         void onBeginDrag(View v);
 
+        /**
+         * Set magnetic and roundable targets for a view.
+         */
+        void setMagneticAndRoundableTargets(View v);
+
         void onChildDismissed(View v);
 
         void onDragCancelled(View v);
 
         /**
-         * A drag operation has been cancelled on a view with a final velocity.
-         * @param v View that was dragged.
-         * @param finalVelocity Final velocity of the drag.
+         * Notify that a magnetic interaction ended on a view with a velocity.
+         * <p>
+         * This method should be called when a view will snap back or be dismissed.
+         *
+         * @param view The {@link  View} whose magnetic interaction ended.
+         * @param velocity The velocity when the interaction ended.
          */
-        default void onDragCancelledWithVelocity(View v, float finalVelocity) {
-            onDragCancelled(v);
-        }
+        void onMagneticInteractionEnd(View view, float velocity);
 
         /**
          * Called when the child is long pressed and available to start drag and drop.
@@ -947,6 +965,11 @@
         void onLongPressSent(View v);
 
         /**
+         * The snap back animation on a view overshoots for the first time.
+         */
+        void onChildSnapBackOvershoots();
+
+        /**
          * Called when the child is snapped to a position.
          *
          * @param animView the view that was snapped.
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationImpl.java b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationImpl.java
index 5482c3d..115242e 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationImpl.java
@@ -453,7 +453,9 @@
 
         final MagnificationSettingsController magnificationSettingsController =
                 mMagnificationSettingsSupplier.get(displayId);
-        magnificationSettingsController.setMagnificationScale(scale);
+        if (magnificationSettingsController != null) {
+            magnificationSettingsController.setMagnificationScale(scale);
+        }
     }
 
     @VisibleForTesting
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/OWNERS b/packages/SystemUI/src/com/android/systemui/accessibility/OWNERS
index 1ed8c06..5a59b7a 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/OWNERS
@@ -1,4 +1,7 @@
-# Bug component: 44215
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 44215.
 
 include /core/java/android/view/accessibility/OWNERS
 jonesriley@google.com
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
index a67ec65..8734d05 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
@@ -296,6 +296,7 @@
         mGestureDetector =
                 new MagnificationGestureDetector(mContext, handler, this);
         mWindowInsetChangeRunnable = this::onWindowInsetChanged;
+        mWindowInsetChangeRunnable.run();
 
         // Initialize listeners.
         mMirrorViewRunnable = new Runnable() {
@@ -367,8 +368,12 @@
     private boolean updateSystemGestureInsetsTop() {
         final WindowMetrics windowMetrics = mWm.getCurrentWindowMetrics();
         final Insets insets = windowMetrics.getWindowInsets().getInsets(systemGestures());
-        final int gestureTop =
-                insets.bottom != 0 ? windowMetrics.getBounds().bottom - insets.bottom : -1;
+        final int gestureTop;
+        if (Flags.updateWindowMagnifierBottomBoundary()) {
+            gestureTop = windowMetrics.getBounds().bottom - insets.bottom;
+        } else {
+            gestureTop = insets.bottom != 0 ? windowMetrics.getBounds().bottom - insets.bottom : -1;
+        }
         if (gestureTop != mSystemGestureTop) {
             mSystemGestureTop = gestureTop;
             return true;
@@ -953,7 +958,6 @@
                 ? mSystemGestureTop - height + mOuterBorderSize
                 : mWindowBounds.bottom - height + mOuterBorderSize;
         final int y = MathUtils.clamp(mMagnificationFrame.top - mMirrorSurfaceMargin, minY, maxY);
-
         if (computeWindowSize) {
             LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams();
             params.width = width;
diff --git a/packages/SystemUI/src/com/android/systemui/ailabs/OWNERS b/packages/SystemUI/src/com/android/systemui/ailabs/OWNERS
index b65d29c..429b4b0 100644
--- a/packages/SystemUI/src/com/android/systemui/ailabs/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/ailabs/OWNERS
@@ -5,5 +5,4 @@
 pauldpong@google.com
 praveenj@google.com
 vicliang@google.com
-mfolkerts@google.com
 yuklimko@google.com
diff --git a/packages/SystemUI/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandler.kt b/packages/SystemUI/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandler.kt
index e365b77..d8e7a16 100644
--- a/packages/SystemUI/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/ambient/touch/BouncerSwipeTouchHandler.kt
@@ -43,6 +43,7 @@
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.ui.view.WindowRootView
 import com.android.systemui.shade.ShadeExpansionChangeEvent
+import com.android.systemui.shade.data.repository.ShadeRepository
 import com.android.systemui.statusbar.NotificationShadeWindowController
 import com.android.systemui.statusbar.phone.CentralSurfaces
 import com.android.wm.shell.animation.FlingAnimationUtils
@@ -79,6 +80,7 @@
     private val activityStarter: ActivityStarter,
     private val keyguardInteractor: KeyguardInteractor,
     private val sceneInteractor: SceneInteractor,
+    private val shadeRepository: ShadeRepository,
     private val windowRootViewProvider: Optional<Provider<WindowRootView>>,
 ) : TouchHandler {
     /** An interface for creating ValueAnimators. */
@@ -260,6 +262,8 @@
         }
         scrimManager.addCallback(scrimManagerCallback)
         currentScrimController = scrimManager.currentController
+
+        shadeRepository.setLegacyShadeTracking(true)
         session.registerCallback {
             velocityTracker?.apply { recycle() }
             velocityTracker = null
@@ -270,6 +274,7 @@
             if (!Flags.communalBouncerDoNotModifyPluginOpen()) {
                 notificationShadeWindowController.setForcePluginOpen(false, this)
             }
+            shadeRepository.setLegacyShadeTracking(false)
         }
         session.registerGestureListener(onGestureListener)
         session.registerInputListener { ev: InputEvent -> onMotionEvent(ev) }
diff --git a/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java b/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java
index 9a30c21..fcf5105 100644
--- a/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java
@@ -46,7 +46,10 @@
 
 import javax.inject.Inject;
 
-/** Controller for {@link BatteryMeterView}. **/
+/**
+ * Controller for {@link BatteryMeterView}.
+ * @deprecated once [NewStatusBarIcons] is rolled out, this class is no longer needed
+ */
 public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
     private final ConfigurationController mConfigurationController;
     private final TunerService mTunerService;
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/CredentialPasswordViewBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/CredentialPasswordViewBinder.kt
index 8d5ea3c..e4c4540 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/CredentialPasswordViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/CredentialPasswordViewBinder.kt
@@ -42,7 +42,7 @@
         view.repeatWhenAttached {
             // the header info never changes - do it early
             val header = viewModel.header.first()
-            passwordField.setTextOperationUser(UserHandle.of(header.user.deviceCredentialOwnerId))
+            passwordField.setTextOperationUser(UserHandle.of(header.user.userIdForPasswordEntry))
             viewModel.inputFlags.firstOrNull()?.let { flags -> passwordField.inputType = flags }
             if (requestFocusForInput) {
                 passwordField.requestFocus()
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt
index 6cd763a..bbf9a1901 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt
@@ -31,6 +31,7 @@
 import com.airbnb.lottie.LottieComposition
 import com.airbnb.lottie.LottieProperty
 import com.android.app.animation.Interpolators
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.keyguard.KeyguardPINView
 import com.android.systemui.CoreStartable
 import com.android.systemui.biometrics.domain.interactor.BiometricStatusInteractor
@@ -50,7 +51,6 @@
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.combine
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /** Binds the side fingerprint sensor indicator view to [SideFpsOverlayViewModel]. */
 @SysUISingleton
@@ -65,51 +65,53 @@
     private val layoutInflater: Lazy<LayoutInflater>,
     private val sideFpsProgressBarViewModel: Lazy<SideFpsProgressBarViewModel>,
     private val sfpsSensorInteractor: Lazy<SideFpsSensorInteractor>,
-    private val windowManager: Lazy<WindowManager>
+    private val windowManager: Lazy<WindowManager>,
 ) : CoreStartable {
 
     override fun start() {
-        applicationScope
-            .launch {
-                sfpsSensorInteractor.get().isAvailable.collect { isSfpsAvailable ->
-                    if (isSfpsAvailable) {
-                        combine(
-                                biometricStatusInteractor.get().sfpsAuthenticationReason,
-                                deviceEntrySideFpsOverlayInteractor
-                                    .get()
-                                    .showIndicatorForDeviceEntry,
-                                sideFpsProgressBarViewModel.get().isVisible,
-                                ::Triple
+        applicationScope.launch {
+            sfpsSensorInteractor.get().isAvailable.collect { isSfpsAvailable ->
+                if (isSfpsAvailable) {
+                    combine(
+                            biometricStatusInteractor.get().sfpsAuthenticationReason,
+                            deviceEntrySideFpsOverlayInteractor.get().showIndicatorForDeviceEntry,
+                            sideFpsProgressBarViewModel.get().isVisible,
+                            ::Triple,
+                        )
+                        .sample(displayStateInteractor.get().isInRearDisplayMode, ::Pair)
+                        .collect { (combinedFlows, isInRearDisplayMode: Boolean) ->
+                            val (
+                                systemServerAuthReason,
+                                showIndicatorForDeviceEntry,
+                                progressBarIsVisible) =
+                                combinedFlows
+                            Log.d(
+                                TAG,
+                                "systemServerAuthReason = $systemServerAuthReason, " +
+                                    "showIndicatorForDeviceEntry = " +
+                                    "$showIndicatorForDeviceEntry, " +
+                                    "progressBarIsVisible = $progressBarIsVisible",
                             )
-                            .sample(displayStateInteractor.get().isInRearDisplayMode, ::Pair)
-                            .collect { (combinedFlows, isInRearDisplayMode: Boolean) ->
-                                val (
-                                    systemServerAuthReason,
-                                    showIndicatorForDeviceEntry,
-                                    progressBarIsVisible) =
-                                    combinedFlows
-                                Log.d(
-                                    TAG,
-                                    "systemServerAuthReason = $systemServerAuthReason, " +
-                                        "showIndicatorForDeviceEntry = " +
-                                        "$showIndicatorForDeviceEntry, " +
-                                        "progressBarIsVisible = $progressBarIsVisible"
-                                )
-                                if (!isInRearDisplayMode) {
-                                    if (progressBarIsVisible) {
-                                        hide()
-                                    } else if (systemServerAuthReason != NotRunning) {
-                                        show()
-                                    } else if (showIndicatorForDeviceEntry) {
-                                        show()
-                                    } else {
-                                        hide()
-                                    }
+                            if (!isInRearDisplayMode) {
+                                if (progressBarIsVisible) {
+                                    hide()
+                                } else if (systemServerAuthReason != NotRunning) {
+                                    show()
+                                } else if (showIndicatorForDeviceEntry) {
+                                    show()
+                                    overlayView?.announceForAccessibility(
+                                        applicationContext.resources.getString(
+                                            R.string.accessibility_side_fingerprint_indicator_label
+                                        )
+                                    )
+                                } else {
+                                    hide()
                                 }
                             }
-                    }
+                        }
                 }
             }
+        }
     }
 
     private var overlayView: View? = null
@@ -119,7 +121,7 @@
         if (overlayView?.isAttachedToWindow == true) {
             Log.d(
                 TAG,
-                "show(): overlayView $overlayView isAttachedToWindow already, ignoring show request"
+                "show(): overlayView $overlayView isAttachedToWindow already, ignoring show request",
             )
             return
         }
@@ -137,11 +139,6 @@
         overlayView!!.visibility = View.INVISIBLE
         Log.d(TAG, "show(): adding overlayView $overlayView")
         windowManager.get().addView(overlayView, overlayViewModel.defaultOverlayViewParams)
-        overlayView!!.announceForAccessibility(
-            applicationContext.resources.getString(
-                R.string.accessibility_side_fingerprint_indicator_label
-            )
-        )
     }
 
     /** Hide the side fingerprint sensor indicator */
@@ -163,7 +160,7 @@
         fun bind(
             overlayView: View,
             viewModel: SideFpsOverlayViewModel,
-            windowManager: WindowManager
+            windowManager: WindowManager,
         ) {
             overlayView.repeatWhenAttached {
                 val lottie = it.requireViewById<LottieAnimationView>(R.id.sidefps_animation)
@@ -186,7 +183,7 @@
                     object : View.AccessibilityDelegate() {
                         override fun dispatchPopulateAccessibilityEvent(
                             host: View,
-                            event: AccessibilityEvent
+                            event: AccessibilityEvent,
                         ): Boolean {
                             return if (
                                 event.getEventType() ===
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt
index 8bc9299..c664456 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt
@@ -24,13 +24,17 @@
 import com.android.systemui.res.R
 
 @Composable
-fun BluetoothDetailsContent() {
+fun BluetoothDetailsContent(detailsContentViewModel: BluetoothDetailsContentViewModel) {
     AndroidView(
         modifier = Modifier.fillMaxSize(),
         factory = { context ->
             // Inflate with the existing dialog xml layout
-            LayoutInflater.from(context).inflate(R.layout.bluetooth_tile_dialog, null)
-            // TODO: b/378513956 - Implement the bluetooth details view
+            val view =
+                LayoutInflater.from(context)
+                    .inflate(R.layout.bluetooth_tile_dialog, /* root= */ null)
+            detailsContentViewModel.showDetailsContent(/* expandable= */ null, view)
+            view
         },
+        onRelease = { detailsContentViewModel.contentManager.releaseView() },
     )
 }
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManager.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManager.kt
index 0be28f3..eebcf0b 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManager.kt
@@ -61,8 +61,8 @@
 /** View content manager for showing active, connected and saved bluetooth devices. */
 class BluetoothDetailsContentManager
 @AssistedInject
-internal constructor(
-    @Assisted private val initialUiProperties: BluetoothTileDialogViewModel.UiProperties,
+constructor(
+    @Assisted private val initialUiProperties: BluetoothDetailsContentViewModel.UiProperties,
     @Assisted private val cachedContentHeight: Int,
     @Assisted private val bluetoothTileDialogCallback: BluetoothTileDialogCallback,
     @Assisted private val isInDialog: Boolean,
@@ -112,9 +112,9 @@
     private lateinit var scrollViewContent: View
 
     @AssistedFactory
-    internal interface Factory {
+    interface Factory {
         fun create(
-            initialUiProperties: BluetoothTileDialogViewModel.UiProperties,
+            initialUiProperties: BluetoothDetailsContentViewModel.UiProperties,
             cachedContentHeight: Int,
             dialogCallback: BluetoothTileDialogCallback,
             isInDialog: Boolean,
@@ -226,7 +226,7 @@
 
     internal fun onBluetoothStateUpdated(
         isEnabled: Boolean,
-        uiProperties: BluetoothTileDialogViewModel.UiProperties,
+        uiProperties: BluetoothDetailsContentViewModel.UiProperties,
     ) {
         bluetoothToggle.apply {
             isChecked = isEnabled
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModel.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt
similarity index 98%
rename from packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModel.kt
rename to packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt
index 9492abb..ff2d9ef 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt
@@ -61,12 +61,9 @@
 
 /**
  * ViewModel for Bluetooth Dialog or Bluetooth Details View after clicking on the Bluetooth QS tile.
- *
- * TODO: b/378513956 Rename this class to BluetoothDetailsContentViewModel, since it's not only used
- *   by the dialog view.
  */
 @SysUISingleton
-internal class BluetoothTileDialogViewModel
+class BluetoothDetailsContentViewModel
 @Inject
 constructor(
     private val deviceItemInteractor: DeviceItemInteractor,
@@ -312,7 +309,7 @@
         return bluetoothDialogDelegateFactory.create(
             getUiProperties(),
             getCachedContentHeight(),
-            this@BluetoothTileDialogViewModel,
+            this@BluetoothDetailsContentViewModel,
             { cancelJob() },
         )
     }
@@ -321,7 +318,7 @@
         return bluetoothDetailsContentManagerFactory.create(
             getUiProperties(),
             getCachedContentHeight(),
-            this@BluetoothTileDialogViewModel,
+            this@BluetoothDetailsContentViewModel,
             /* isInDialog= */ false,
             /* doneButtonCallback= */ fun() {},
         )
@@ -396,7 +393,7 @@
             else R.string.bt_is_off
     }
 
-    internal data class UiProperties(
+    data class UiProperties(
         @StringRes val subTitleResId: Int,
         val autoOnToggleVisibility: Int,
         @DimenRes val scrollViewMinHeightResId: Int,
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsViewModel.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsViewModel.kt
index ac4d82a..5863a93 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsViewModel.kt
@@ -18,11 +18,12 @@
 
 import com.android.systemui.plugins.qs.TileDetailsViewModel
 
-class BluetoothDetailsViewModel(onLongClick: () -> Unit) : TileDetailsViewModel() {
-    private val _onLongClick = onLongClick
-
+class BluetoothDetailsViewModel(
+    private val onSettingsClick: () -> Unit,
+    val detailsContentViewModel: BluetoothDetailsContentViewModel,
+) : TileDetailsViewModel() {
     override fun clickOnSettingsButton() {
-        _onLongClick()
+        onSettingsClick()
     }
 
     override fun getTitle(): String {
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt
index 2953b29..c55f605 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt
@@ -31,8 +31,8 @@
 /** Dialog for showing active, connected and saved bluetooth devices. */
 class BluetoothTileDialogDelegate
 @AssistedInject
-internal constructor(
-    @Assisted private val initialUiProperties: BluetoothTileDialogViewModel.UiProperties,
+constructor(
+    @Assisted private val initialUiProperties: BluetoothDetailsContentViewModel.UiProperties,
     @Assisted private val cachedContentHeight: Int,
     @Assisted private val bluetoothTileDialogCallback: BluetoothTileDialogCallback,
     @Assisted private val dismissListener: Runnable,
@@ -46,9 +46,9 @@
     lateinit var contentManager: BluetoothDetailsContentManager
 
     @AssistedFactory
-    internal interface Factory {
+    interface Factory {
         fun create(
-            initialUiProperties: BluetoothTileDialogViewModel.UiProperties,
+            initialUiProperties: BluetoothDetailsContentViewModel.UiProperties,
             cachedContentHeight: Int,
             dialogCallback: BluetoothTileDialogCallback,
             dimissListener: Runnable,
diff --git a/packages/SystemUI/src/com/android/systemui/common/shared/colors/ShadeColors.kt b/packages/SystemUI/src/com/android/systemui/common/shared/colors/ShadeColors.kt
deleted file mode 100644
index 70ace6a..0000000
--- a/packages/SystemUI/src/com/android/systemui/common/shared/colors/ShadeColors.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2025 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.common.shared.colors
-
-import android.content.res.Resources
-import android.graphics.Color
-import com.android.internal.graphics.ColorUtils
-import com.android.systemui.res.R
-
-object ShadeColors {
-    @JvmStatic
-    fun Resources.shadeBasePanel(): Int {
-        val layerAbove =
-            ColorUtils.setAlphaComponent(getColor(R.color.shade_panel), (0.4f * 255).toInt())
-        val layerBelow = ColorUtils.setAlphaComponent(Color.WHITE, (0.1f * 255).toInt())
-        return ColorUtils.compositeColors(layerAbove, layerBelow)
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt b/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt
index d4027c0..7c2fc7f 100644
--- a/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt
+++ b/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt
@@ -17,9 +17,6 @@
 package com.android.systemui.common.shared.colors
 
 import android.content.res.Resources
-import android.graphics.Color
-import com.android.internal.graphics.ColorUtils
-import com.android.systemui.res.R
 
 object SurfaceEffectColors {
     @JvmStatic
diff --git a/packages/SystemUI/src/com/android/systemui/common/ui/view/LongPressHandlingView.kt b/packages/SystemUI/src/com/android/systemui/common/ui/view/TouchHandlingView.kt
similarity index 74%
rename from packages/SystemUI/src/com/android/systemui/common/ui/view/LongPressHandlingView.kt
rename to packages/SystemUI/src/com/android/systemui/common/ui/view/TouchHandlingView.kt
index 9c4736a..42f1b73 100644
--- a/packages/SystemUI/src/com/android/systemui/common/ui/view/LongPressHandlingView.kt
+++ b/packages/SystemUI/src/com/android/systemui/common/ui/view/TouchHandlingView.kt
@@ -27,7 +27,7 @@
 import android.view.accessibility.AccessibilityNodeInfo
 import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.shade.TouchLogger
 import kotlin.math.pow
 import kotlin.math.sqrt
@@ -39,17 +39,13 @@
  * The view will not handle any long pressed by default. To set it up, set up a listener and, when
  * ready to start consuming long-presses, set [setLongPressHandlingEnabled] to `true`.
  */
-class LongPressHandlingView(
+class TouchHandlingView(
     context: Context,
     attrs: AttributeSet?,
     longPressDuration: () -> Long,
     allowedTouchSlop: Int = ViewConfiguration.getTouchSlop(),
-    logger: LongPressHandlingViewLogger? = null,
-) :
-    View(
-        context,
-        attrs,
-    ) {
+    logger: TouchHandlingViewLogger? = null,
+) : View(context, attrs) {
 
     init {
         setupAccessibilityDelegate()
@@ -62,43 +58,32 @@
 
     interface Listener {
         /** Notifies that a long-press has been detected by the given view. */
-        fun onLongPressDetected(
-            view: View,
-            x: Int,
-            y: Int,
-            isA11yAction: Boolean = false,
-        )
+        fun onLongPressDetected(view: View, x: Int, y: Int, isA11yAction: Boolean = false)
 
         /** Notifies that the gesture was too short for a long press, it is actually a click. */
-        fun onSingleTapDetected(view: View) = Unit
+        fun onSingleTapDetected(view: View, x: Int, y: Int) = Unit
     }
 
     var listener: Listener? = null
 
     var accessibilityHintLongPressAction: AccessibilityAction? = null
 
-    private val interactionHandler: LongPressHandlingViewInteractionHandler by lazy {
-        LongPressHandlingViewInteractionHandler(
+    private val interactionHandler: TouchHandlingViewInteractionHandler by lazy {
+        TouchHandlingViewInteractionHandler(
             postDelayed = { block, timeoutMs ->
                 val dispatchToken = Any()
 
-                handler.postDelayed(
-                    block,
-                    dispatchToken,
-                    timeoutMs,
-                )
+                handler.postDelayed(block, dispatchToken, timeoutMs)
 
                 DisposableHandle { handler.removeCallbacksAndMessages(dispatchToken) }
             },
             isAttachedToWindow = ::isAttachedToWindow,
             onLongPressDetected = { x, y ->
-                listener?.onLongPressDetected(
-                    view = this,
-                    x = x,
-                    y = y,
-                )
+                listener?.onLongPressDetected(view = this, x = x, y = y)
             },
-            onSingleTapDetected = { listener?.onSingleTapDetected(this@LongPressHandlingView) },
+            onSingleTapDetected = { x, y ->
+                listener?.onSingleTapDetected(this@TouchHandlingView, x = x, y = y)
+            },
             longPressDuration = longPressDuration,
             allowedTouchSlop = allowedTouchSlop,
             logger = logger,
@@ -129,7 +114,7 @@
             object : AccessibilityDelegate() {
                 override fun onInitializeAccessibilityNodeInfo(
                     v: View,
-                    info: AccessibilityNodeInfo
+                    info: AccessibilityNodeInfo,
                 ) {
                     super.onInitializeAccessibilityNodeInfo(v, info)
                     if (
@@ -143,17 +128,17 @@
                 override fun performAccessibilityAction(
                     host: View,
                     action: Int,
-                    args: Bundle?
+                    args: Bundle?,
                 ): Boolean {
                     return if (
                         interactionHandler.isLongPressHandlingEnabled &&
                             action == AccessibilityNodeInfoCompat.ACTION_LONG_CLICK
                     ) {
-                        val longPressHandlingView = host as? LongPressHandlingView
-                        if (longPressHandlingView != null) {
+                        val touchHandlingView = host as? TouchHandlingView
+                        if (touchHandlingView != null) {
                             // the coordinates are not available as it is an a11y long press
                             listener?.onLongPressDetected(
-                                view = longPressHandlingView,
+                                view = touchHandlingView,
                                 x = 0,
                                 y = 0,
                                 isA11yAction = true,
@@ -170,24 +155,21 @@
     }
 }
 
-private fun MotionEvent.toModel(): LongPressHandlingViewInteractionHandler.MotionEventModel {
+private fun MotionEvent.toModel(): TouchHandlingViewInteractionHandler.MotionEventModel {
     return when (actionMasked) {
         MotionEvent.ACTION_DOWN ->
-            LongPressHandlingViewInteractionHandler.MotionEventModel.Down(
-                x = x.toInt(),
-                y = y.toInt(),
-            )
+            TouchHandlingViewInteractionHandler.MotionEventModel.Down(x = x.toInt(), y = y.toInt())
         MotionEvent.ACTION_MOVE ->
-            LongPressHandlingViewInteractionHandler.MotionEventModel.Move(
-                distanceMoved = distanceMoved(),
+            TouchHandlingViewInteractionHandler.MotionEventModel.Move(
+                distanceMoved = distanceMoved()
             )
         MotionEvent.ACTION_UP ->
-            LongPressHandlingViewInteractionHandler.MotionEventModel.Up(
+            TouchHandlingViewInteractionHandler.MotionEventModel.Up(
                 distanceMoved = distanceMoved(),
                 gestureDuration = gestureDuration(),
             )
-        MotionEvent.ACTION_CANCEL -> LongPressHandlingViewInteractionHandler.MotionEventModel.Cancel
-        else -> LongPressHandlingViewInteractionHandler.MotionEventModel.Other
+        MotionEvent.ACTION_CANCEL -> TouchHandlingViewInteractionHandler.MotionEventModel.Cancel
+        else -> TouchHandlingViewInteractionHandler.MotionEventModel.Other
     }
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/common/ui/view/LongPressHandlingViewInteractionHandler.kt b/packages/SystemUI/src/com/android/systemui/common/ui/view/TouchHandlingViewInteractionHandler.kt
similarity index 79%
rename from packages/SystemUI/src/com/android/systemui/common/ui/view/LongPressHandlingViewInteractionHandler.kt
rename to packages/SystemUI/src/com/android/systemui/common/ui/view/TouchHandlingViewInteractionHandler.kt
index 4e38a49..5863fc6 100644
--- a/packages/SystemUI/src/com/android/systemui/common/ui/view/LongPressHandlingViewInteractionHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/common/ui/view/TouchHandlingViewInteractionHandler.kt
@@ -17,11 +17,12 @@
 
 package com.android.systemui.common.ui.view
 
-import com.android.systemui.log.LongPressHandlingViewLogger
+import android.graphics.Point
+import com.android.systemui.log.TouchHandlingViewLogger
 import kotlinx.coroutines.DisposableHandle
 
-/** Encapsulates logic to handle complex touch interactions with a [LongPressHandlingView]. */
-class LongPressHandlingViewInteractionHandler(
+/** Encapsulates logic to handle complex touch interactions with a [TouchHandlingView]. */
+class TouchHandlingViewInteractionHandler(
     /**
      * Callback to run the given [Runnable] with the given delay, returning a [DisposableHandle]
      * allowing the delayed runnable to be canceled before it is run.
@@ -32,7 +33,7 @@
     /** Callback reporting the a long-press gesture was detected at the given coordinates. */
     private val onLongPressDetected: (x: Int, y: Int) -> Unit,
     /** Callback reporting the a single tap gesture was detected at the given coordinates. */
-    private val onSingleTapDetected: () -> Unit,
+    private val onSingleTapDetected: (x: Int, y: Int) -> Unit,
     /** Time for the touch to be considered a long-press in ms */
     var longPressDuration: () -> Long,
     /**
@@ -42,24 +43,16 @@
      */
     val allowedTouchSlop: Int,
     /** Optional logger that can be passed in to log touch events */
-    val logger: LongPressHandlingViewLogger? = null,
+    val logger: TouchHandlingViewLogger? = null,
 ) {
     sealed class MotionEventModel {
         object Other : MotionEventModel()
 
-        data class Down(
-            val x: Int,
-            val y: Int,
-        ) : MotionEventModel()
+        data class Down(val x: Int, val y: Int) : MotionEventModel()
 
-        data class Move(
-            val distanceMoved: Float,
-        ) : MotionEventModel()
+        data class Move(val distanceMoved: Float) : MotionEventModel()
 
-        data class Up(
-            val distanceMoved: Float,
-            val gestureDuration: Long,
-        ) : MotionEventModel()
+        data class Up(val distanceMoved: Float, val gestureDuration: Long) : MotionEventModel()
 
         object Cancel : MotionEventModel()
     }
@@ -67,14 +60,18 @@
     var isLongPressHandlingEnabled: Boolean = false
     var scheduledLongPressHandle: DisposableHandle? = null
 
+    /** Record coordinate for last DOWN event for single tap */
+    val lastEventDownCoordinate = Point(-1, -1)
+
     fun onTouchEvent(event: MotionEventModel?): Boolean {
         if (!isLongPressHandlingEnabled) {
             return false
         }
-
         return when (event) {
             is MotionEventModel.Down -> {
                 scheduleLongPress(event.x, event.y)
+                lastEventDownCoordinate.x = event.x
+                lastEventDownCoordinate.y = event.y
                 true
             }
             is MotionEventModel.Move -> {
@@ -92,7 +89,7 @@
                         event.gestureDuration < longPressDuration()
                 ) {
                     logger?.dispatchingSingleTap()
-                    dispatchSingleTap()
+                    dispatchSingleTap(lastEventDownCoordinate.x, lastEventDownCoordinate.y)
                 }
                 false
             }
@@ -105,29 +102,20 @@
         }
     }
 
-    private fun scheduleLongPress(
-        x: Int,
-        y: Int,
-    ) {
+    private fun scheduleLongPress(x: Int, y: Int) {
         val duration = longPressDuration()
         logger?.schedulingLongPress(duration)
         scheduledLongPressHandle =
             postDelayed(
                 {
                     logger?.longPressTriggered()
-                    dispatchLongPress(
-                        x = x,
-                        y = y,
-                    )
+                    dispatchLongPress(x = x, y = y)
                 },
                 duration,
             )
     }
 
-    private fun dispatchLongPress(
-        x: Int,
-        y: Int,
-    ) {
+    private fun dispatchLongPress(x: Int, y: Int) {
         if (!isAttachedToWindow()) {
             return
         }
@@ -139,11 +127,11 @@
         scheduledLongPressHandle?.dispose()
     }
 
-    private fun dispatchSingleTap() {
+    private fun dispatchSingleTap(x: Int, y: Int) {
         if (!isAttachedToWindow()) {
             return
         }
 
-        onSingleTapDetected()
+        onSingleTapDetected(x, y)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/CommunalSceneStartable.kt b/packages/SystemUI/src/com/android/systemui/communal/CommunalSceneStartable.kt
index fc589b2..e36e855 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/CommunalSceneStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/CommunalSceneStartable.kt
@@ -19,11 +19,8 @@
 import android.os.UserHandle
 import android.provider.Settings
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.compose.animation.scene.SceneKey
-import com.android.compose.animation.scene.TransitionKey
 import com.android.internal.logging.UiEventLogger
 import com.android.systemui.CoreStartable
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
@@ -31,36 +28,24 @@
 import com.android.systemui.communal.shared.model.CommunalScenes
 import com.android.systemui.communal.shared.model.CommunalScenes.isCommunal
 import com.android.systemui.communal.shared.model.CommunalTransitionKeys
-import com.android.systemui.communal.shared.model.EditModeState
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.dagger.qualifiers.Main
-import com.android.systemui.dock.DockManager
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
-import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
-import com.android.systemui.keyguard.shared.model.KeyguardState
-import com.android.systemui.keyguard.shared.model.TransitionStep
 import com.android.systemui.statusbar.NotificationShadeWindowController
-import com.android.systemui.statusbar.phone.CentralSurfaces
 import com.android.systemui.util.kotlin.emitOnStart
-import com.android.systemui.util.kotlin.getValue
 import com.android.systemui.util.kotlin.sample
 import com.android.systemui.util.settings.SettingsProxyExt.observerFlow
 import com.android.systemui.util.settings.SystemSettings
-import java.util.Optional
 import javax.inject.Inject
 import kotlin.time.Duration.Companion.milliseconds
-import kotlin.time.Duration.Companion.seconds
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.launchIn
-import kotlinx.coroutines.flow.mapLatest
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.withContext
 
@@ -72,16 +57,12 @@
 class CommunalSceneStartable
 @Inject
 constructor(
-    private val dockManager: DockManager,
     private val communalInteractor: CommunalInteractor,
     private val communalSettingsInteractor: CommunalSettingsInteractor,
     private val communalSceneInteractor: CommunalSceneInteractor,
-    private val keyguardTransitionInteractor: KeyguardTransitionInteractor,
     private val keyguardInteractor: KeyguardInteractor,
     private val systemSettings: SystemSettings,
-    centralSurfacesOpt: Optional<CentralSurfaces>,
     private val notificationShadeWindowController: NotificationShadeWindowController,
-    @Application private val applicationScope: CoroutineScope,
     @Background private val bgScope: CoroutineScope,
     @Main private val mainDispatcher: CoroutineDispatcher,
     private val uiEventLogger: UiEventLogger,
@@ -92,110 +73,11 @@
 
     private var isDreaming: Boolean = false
 
-    private val centralSurfaces: CentralSurfaces? by centralSurfacesOpt
-
     override fun start() {
         if (!communalSettingsInteractor.isCommunalFlagEnabled()) {
             return
         }
 
-        if (!communalSceneKtfRefactor()) {
-            // Handle automatically switching based on keyguard state.
-            keyguardTransitionInteractor.startedKeyguardTransitionStep
-                .mapLatest(::determineSceneAfterTransition)
-                .filterNotNull()
-                .onEach { (nextScene, nextTransition) ->
-                    // When launching a widget, we don't want to animate the scene change or the
-                    // Communal Hub will reveal the wallpaper even though it shouldn't. Instead we
-                    // snap to the new scene as part of the launch animation, once the activity
-                    // launch is done, so we don't change scene here.
-                    val delaySceneTransition =
-                        communalSceneInteractor.editModeState.value == EditModeState.STARTING ||
-                            communalSceneInteractor.isLaunchingWidget.value
-                    if (!delaySceneTransition) {
-                        communalSceneInteractor.changeScene(
-                            newScene = nextScene,
-                            loggingReason = "KTF syncing",
-                            transitionKey = nextTransition,
-                        )
-                    }
-                }
-                .launchIn(applicationScope)
-        }
-
-        // TODO(b/322787129): re-enable once custom animations are in place
-        // Handle automatically switching to communal when docked.
-        //        dockManager
-        //            .retrieveIsDocked()
-        //            // Allow some time after docking to ensure the dream doesn't start. If the
-        // dream
-        //            // starts, then we don't want to automatically transition to glanceable hub.
-        //            .debounce(DOCK_DEBOUNCE_DELAY)
-        //            .sample(keyguardTransitionInteractor.startedKeyguardState, ::Pair)
-        //            .onEach { (docked, lastStartedState) ->
-        //                if (docked && lastStartedState == KeyguardState.LOCKSCREEN) {
-        //                    communalInteractor.onSceneChanged(CommunalScenes.Communal)
-        //                }
-        //            }
-        //            .launchIn(bgScope)
-
-        systemSettings
-            .observerFlow(Settings.System.SCREEN_OFF_TIMEOUT)
-            // Read the setting value on start.
-            .emitOnStart()
-            .onEach {
-                screenTimeout =
-                    systemSettings.getIntForUser(
-                        Settings.System.SCREEN_OFF_TIMEOUT,
-                        DEFAULT_SCREEN_TIMEOUT,
-                        UserHandle.USER_CURRENT,
-                    )
-            }
-            .launchIn(bgScope)
-
-        // The hub mode timeout should start as soon as the user enters hub mode. At the end of the
-        // timer, if the device is dreaming, hub mode should closed and reveal the dream. If the
-        // dream is not running, nothing will happen. However if the dream starts again underneath
-        // hub mode after the initial timeout expires, such as if the device is docked or the dream
-        // app is updated by the Play store, a new timeout should be started.
-        bgScope.launch {
-            combine(
-                    communalSceneInteractor.currentScene,
-                    // Emit a value on start so the combine starts.
-                    communalInteractor.userActivity.emitOnStart(),
-                ) { scene, _ ->
-                    // Only timeout if we're on the hub is open.
-                    scene.isCommunal()
-                }
-                .collectLatest { shouldTimeout ->
-                    cancelHubTimeout()
-                    if (shouldTimeout) {
-                        startHubTimeout()
-                    }
-                }
-        }
-        bgScope.launch {
-            keyguardInteractor.isDreaming
-                .sample(communalSceneInteractor.currentScene, ::Pair)
-                .collectLatest { (isDreaming, scene) ->
-                    this@CommunalSceneStartable.isDreaming = isDreaming
-                    if (scene.isCommunal() && isDreaming && timeoutJob == null) {
-                        // If dreaming starts after timeout has expired, ex. if dream restarts under
-                        // the hub, wait for IS_ABLE_TO_DREAM_DELAY_MS and then close the hub. The
-                        // delay is necessary so the KeyguardInteractor.isAbleToDream flow passes
-                        // through that same amount of delay and publishes a new value which is then
-                        // picked up by the HomeSceneFamilyResolver such that the next call to
-                        // SceneInteractor.changeScene(Home) will resolve "Home" to "Dream".
-                        delay(KeyguardInteractor.IS_ABLE_TO_DREAM_DELAY_MS)
-                        communalSceneInteractor.changeScene(
-                            CommunalScenes.Blank,
-                            "dream started after timeout",
-                        )
-                        uiEventLogger.log(CommunalUiEvent.COMMUNAL_HUB_TIMEOUT)
-                    }
-                }
-        }
-
         bgScope.launch {
             communalSceneInteractor.isIdleOnCommunal.collectLatest {
                 withContext(mainDispatcher) {
@@ -203,6 +85,75 @@
                 }
             }
         }
+
+        // In V2, the timeout is handled by PowerManagerService since we no longer keep the dream
+        // active underneath the hub.
+        if (!communalSettingsInteractor.isV2FlagEnabled()) {
+            systemSettings
+                .observerFlow(Settings.System.SCREEN_OFF_TIMEOUT)
+                // Read the setting value on start.
+                .emitOnStart()
+                .onEach {
+                    screenTimeout =
+                        systemSettings.getIntForUser(
+                            Settings.System.SCREEN_OFF_TIMEOUT,
+                            DEFAULT_SCREEN_TIMEOUT,
+                            UserHandle.USER_CURRENT,
+                        )
+                }
+                .launchIn(bgScope)
+
+            // The hub mode timeout should start as soon as the user enters hub mode. At the end of
+            // the
+            // timer, if the device is dreaming, hub mode should closed and reveal the dream. If the
+            // dream is not running, nothing will happen. However if the dream starts again
+            // underneath
+            // hub mode after the initial timeout expires, such as if the device is docked or the
+            // dream
+            // app is updated by the Play store, a new timeout should be started.
+            bgScope.launch {
+                combine(
+                        communalSceneInteractor.currentScene,
+                        // Emit a value on start so the combine starts.
+                        communalInteractor.userActivity.emitOnStart(),
+                    ) { scene, _ ->
+                        // Only timeout if we're on the hub is open.
+                        scene.isCommunal()
+                    }
+                    .collectLatest { shouldTimeout ->
+                        cancelHubTimeout()
+                        if (shouldTimeout) {
+                            startHubTimeout()
+                        }
+                    }
+            }
+
+            bgScope.launch {
+                keyguardInteractor.isDreaming
+                    .sample(communalSceneInteractor.currentScene, ::Pair)
+                    .collectLatest { (isDreaming, scene) ->
+                        this@CommunalSceneStartable.isDreaming = isDreaming
+                        if (scene.isCommunal() && isDreaming && timeoutJob == null) {
+                            // If dreaming starts after timeout has expired, ex. if dream restarts
+                            // under
+                            // the hub, wait for IS_ABLE_TO_DREAM_DELAY_MS and then close the hub.
+                            // The
+                            // delay is necessary so the KeyguardInteractor.isAbleToDream flow
+                            // passes
+                            // through that same amount of delay and publishes a new value which is
+                            // then
+                            // picked up by the HomeSceneFamilyResolver such that the next call to
+                            // SceneInteractor.changeScene(Home) will resolve "Home" to "Dream".
+                            delay(KeyguardInteractor.IS_ABLE_TO_DREAM_DELAY_MS)
+                            communalSceneInteractor.changeScene(
+                                CommunalScenes.Blank,
+                                "dream started after timeout",
+                            )
+                            uiEventLogger.log(CommunalUiEvent.COMMUNAL_HUB_TIMEOUT)
+                        }
+                    }
+            }
+        }
     }
 
     private fun cancelHubTimeout() {
@@ -231,49 +182,7 @@
         }
     }
 
-    private suspend fun determineSceneAfterTransition(
-        lastStartedTransition: TransitionStep
-    ): Pair<SceneKey, TransitionKey>? {
-        val to = lastStartedTransition.to
-        val from = lastStartedTransition.from
-        val docked = dockManager.isDocked
-        val launchingActivityOverLockscreen =
-            centralSurfaces?.isLaunchingActivityOverLockscreen ?: false
-
-        return when {
-            to == KeyguardState.OCCLUDED && !launchingActivityOverLockscreen -> {
-                // Hide communal when an activity is started on keyguard, to ensure the activity
-                // underneath the hub is shown. When launching activities over lockscreen, we only
-                // change scenes once the activity launch animation is finished, so avoid
-                // changing the scene here.
-                Pair(CommunalScenes.Blank, CommunalTransitionKeys.SimpleFade)
-            }
-            to == KeyguardState.GLANCEABLE_HUB && from == KeyguardState.OCCLUDED -> {
-                // When transitioning to the hub from an occluded state, fade out the hub without
-                // doing any translation.
-                Pair(CommunalScenes.Communal, CommunalTransitionKeys.SimpleFade)
-            }
-            // Transitioning to Blank scene when entering the edit mode will be handled separately
-            // with custom animations.
-            to == KeyguardState.GONE && !communalInteractor.editModeOpen.value ->
-                Pair(CommunalScenes.Blank, CommunalTransitionKeys.SimpleFade)
-            !docked && !KeyguardState.deviceIsAwakeInState(to) -> {
-                // If the user taps the screen and wakes the device within this timeout, we don't
-                // want to dismiss the hub
-                delay(AWAKE_DEBOUNCE_DELAY)
-                Pair(CommunalScenes.Blank, CommunalTransitionKeys.SimpleFade)
-            }
-            from == KeyguardState.DOZING && to == KeyguardState.GLANCEABLE_HUB -> {
-                // Make sure the communal hub is showing when transitioning from dozing to hub.
-                Pair(CommunalScenes.Communal, CommunalTransitionKeys.SimpleFade)
-            }
-            else -> null
-        }
-    }
-
     companion object {
-        val AWAKE_DEBOUNCE_DELAY = 5.seconds
-        val DOCK_DEBOUNCE_DELAY = 1.seconds
         val DEFAULT_SCREEN_TIMEOUT = 15000
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/DeviceInactiveCondition.java b/packages/SystemUI/src/com/android/systemui/communal/DeviceInactiveCondition.java
index 2e1b5ad..e456310 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/DeviceInactiveCondition.java
+++ b/packages/SystemUI/src/com/android/systemui/communal/DeviceInactiveCondition.java
@@ -17,16 +17,19 @@
 package com.android.systemui.communal;
 
 import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP;
-import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP;
 
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.systemui.dagger.qualifiers.Application;
 import com.android.systemui.keyguard.WakefulnessLifecycle;
+import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;
+import com.android.systemui.keyguard.shared.model.DozeStateModel;
 import com.android.systemui.shared.condition.Condition;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
+import com.android.systemui.util.kotlin.JavaAdapter;
 
 import kotlinx.coroutines.CoroutineScope;
+import kotlinx.coroutines.Job;
 
 import javax.inject.Inject;
 
@@ -38,6 +41,10 @@
     private final KeyguardStateController mKeyguardStateController;
     private final WakefulnessLifecycle mWakefulnessLifecycle;
     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+    private final KeyguardInteractor mKeyguardInteractor;
+    private final JavaAdapter mJavaAdapter;
+    private Job mAnyDozeListenerJob;
+    private boolean mAnyDoze;
     private final KeyguardStateController.Callback mKeyguardStateCallback =
             new KeyguardStateController.Callback() {
                 @Override
@@ -63,12 +70,14 @@
     @Inject
     public DeviceInactiveCondition(@Application CoroutineScope scope,
             KeyguardStateController keyguardStateController,
-            WakefulnessLifecycle wakefulnessLifecycle,
-            KeyguardUpdateMonitor keyguardUpdateMonitor) {
+            WakefulnessLifecycle wakefulnessLifecycle, KeyguardUpdateMonitor keyguardUpdateMonitor,
+            KeyguardInteractor keyguardInteractor, JavaAdapter javaAdapter) {
         super(scope);
         mKeyguardStateController = keyguardStateController;
         mWakefulnessLifecycle = wakefulnessLifecycle;
         mKeyguardUpdateMonitor = keyguardUpdateMonitor;
+        mKeyguardInteractor = keyguardInteractor;
+        mJavaAdapter = javaAdapter;
     }
 
     @Override
@@ -77,6 +86,11 @@
         mKeyguardStateController.addCallback(mKeyguardStateCallback);
         mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateCallback);
         mWakefulnessLifecycle.addObserver(mWakefulnessObserver);
+        mAnyDozeListenerJob = mJavaAdapter.alwaysCollectFlow(
+                mKeyguardInteractor.getDozeTransitionModel(), dozeModel -> {
+                    mAnyDoze = !DozeStateModel.Companion.isDozeOff(dozeModel.getTo());
+                    updateState();
+                });
     }
 
     @Override
@@ -84,6 +98,7 @@
         mKeyguardStateController.removeCallback(mKeyguardStateCallback);
         mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateCallback);
         mWakefulnessLifecycle.removeObserver(mWakefulnessObserver);
+        mAnyDozeListenerJob.cancel(null);
     }
 
     @Override
@@ -92,10 +107,10 @@
     }
 
     private void updateState() {
-        final boolean asleep =
-                mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_ASLEEP
-                        || mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_GOING_TO_SLEEP;
-        updateCondition(asleep || mKeyguardStateController.isShowing()
-                || mKeyguardUpdateMonitor.isDreaming());
+        final boolean asleep = mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_ASLEEP;
+        // Doze/AoD is also a dream, but we should never override it with low light as to the user
+        // it's totally unrelated.
+        updateCondition(!mAnyDoze && (asleep || mKeyguardStateController.isShowing()
+                || mKeyguardUpdateMonitor.isDreaming()));
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt
index f01a6db..ff74162 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt
@@ -104,6 +104,7 @@
     companion object {
         const val LOGGABLE_PREFIXES = "loggable_prefixes"
         const val LAUNCHER_PACKAGE = "launcher_package"
+        const val SWIPE_TO_HUB = "swipe_to_hub"
 
         @Provides
         @Communal
@@ -143,5 +144,11 @@
         fun provideLauncherPackage(@Main resources: Resources): String {
             return resources.getString(R.string.launcher_overlayable_package)
         }
+
+        @Provides
+        @Named(SWIPE_TO_HUB)
+        fun provideSwipeToHub(@Main resources: Resources): Boolean {
+            return resources.getBoolean(R.bool.config_swipeToOpenGlanceableHub)
+        }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/db/CommunalWidgetDao.kt b/packages/SystemUI/src/com/android/systemui/communal/data/db/CommunalWidgetDao.kt
index 3907a37..f304b97 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/data/db/CommunalWidgetDao.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/data/db/CommunalWidgetDao.kt
@@ -37,11 +37,13 @@
 import com.android.systemui.log.LogBuffer
 import com.android.systemui.log.core.Logger
 import com.android.systemui.log.dagger.CommunalLog
+import com.android.systemui.user.domain.interactor.UserLockedInteractor
 import javax.inject.Inject
 import javax.inject.Named
 import javax.inject.Provider
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.first
 
 /**
  * Callback that will be invoked when the Room database is created. Then the database will be
@@ -57,6 +59,7 @@
     @Named(DEFAULT_WIDGETS) private val defaultWidgets: Array<String>,
     @CommunalLog logBuffer: LogBuffer,
     private val userManager: UserManager,
+    private val userLockedInteractor: UserLockedInteractor,
 ) : RoomDatabase.Callback() {
     companion object {
         private const val TAG = "DefaultWidgetPopulation"
@@ -79,38 +82,36 @@
         }
 
         bgScope.launch {
-            // Default widgets should be associated with the main user.
-            val user = userManager.mainUser
+            userLockedInteractor.isUserUnlocked(userManager.mainUser).first { it }
+            populateDefaultWidgets()
+        }
+    }
 
-            if (user == null) {
-                logger.w(
-                    "Skipped populating default widgets. Reason: device does not have a main user"
-                )
-                return@launch
-            }
+    private fun populateDefaultWidgets() {
+        // Default widgets should be associated with the main user.
+        val user = userManager.mainUser ?: return
 
-            val userSerialNumber = userManager.getUserSerialNumber(user.identifier)
+        val userSerialNumber = userManager.getUserSerialNumber(user.identifier)
 
-            defaultWidgets.forEachIndexed { index, name ->
-                val provider = ComponentName.unflattenFromString(name)
-                provider?.let {
-                    val id = communalWidgetHost.allocateIdAndBindWidget(provider, user)
-                    id?.let {
-                        communalWidgetDaoProvider
-                            .get()
-                            .addWidget(
-                                widgetId = id,
-                                componentName = name,
-                                rank = index,
-                                userSerialNumber = userSerialNumber,
-                                spanY = SpanValue.Fixed(3),
-                            )
-                    }
+        defaultWidgets.forEachIndexed { index, name ->
+            val provider = ComponentName.unflattenFromString(name)
+            provider?.let {
+                val id = communalWidgetHost.allocateIdAndBindWidget(provider, user)
+                id?.let {
+                    communalWidgetDaoProvider
+                        .get()
+                        .addWidget(
+                            widgetId = id,
+                            componentName = name,
+                            rank = index,
+                            userSerialNumber = userSerialNumber,
+                            spanY = SpanValue.Fixed(3),
+                        )
                 }
             }
-
-            logger.i("Populated default widgets in the database.")
         }
+
+        logger.i("Populated default widgets in the database.")
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSceneRepository.kt b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSceneRepository.kt
index 8b63227..0a9bd42 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSceneRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSceneRepository.kt
@@ -147,5 +147,9 @@
             to: OverlayKey,
             transitionKey: TransitionKey?,
         ) = Unit
+
+        override fun instantlyShowOverlay(overlay: OverlayKey) = Unit
+
+        override fun instantlyHideOverlay(overlay: OverlayKey) = Unit
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt
index de55c92..6dab32a 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt
@@ -69,6 +69,7 @@
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.settings.UserTracker
 import com.android.systemui.statusbar.phone.ManagedProfileController
+import com.android.systemui.user.domain.interactor.UserLockedInteractor
 import com.android.systemui.util.kotlin.BooleanFlowOperators.allOf
 import com.android.systemui.util.kotlin.BooleanFlowOperators.not
 import com.android.systemui.util.kotlin.emitOnStart
@@ -127,6 +128,7 @@
     private val batteryInteractor: BatteryInteractor,
     private val dockManager: DockManager,
     private val posturingInteractor: PosturingInteractor,
+    private val userLockedInteractor: UserLockedInteractor,
 ) {
     private val logger = Logger(logBuffer, "CommunalInteractor")
 
@@ -162,7 +164,7 @@
     val isCommunalAvailable: Flow<Boolean> =
         allOf(
                 communalSettingsInteractor.isCommunalEnabled,
-                not(keyguardInteractor.isEncryptedOrLockdown),
+                userLockedInteractor.isUserUnlocked(userManager.mainUser),
                 keyguardInteractor.isKeyguardShowing,
             )
             .distinctUntilChanged()
diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt
index ec55401..740555f4 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt
@@ -16,11 +16,11 @@
 
 package com.android.systemui.communal.domain.interactor
 
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.compose.animation.scene.SceneKey
 import com.android.compose.animation.scene.SceneTransitionLayout
 import com.android.systemui.CoreStartable
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.data.repository.CommunalSceneTransitionRepository
 import com.android.systemui.communal.shared.model.CommunalScenes
 import com.android.systemui.dagger.SysUISingleton
@@ -44,7 +44,6 @@
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.onStart
 import kotlinx.coroutines.flow.stateIn
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /**
  * This class listens to [SceneTransitionLayout] transitions and manages keyguard transition
@@ -122,11 +121,7 @@
             )
 
     override fun start() {
-        if (
-            communalSceneKtfRefactor() &&
-                settingsInteractor.isCommunalFlagEnabled() &&
-                !SceneContainerFlag.isEnabled
-        ) {
+        if (settingsInteractor.isCommunalFlagEnabled() && !SceneContainerFlag.isEnabled) {
             sceneInteractor.registerSceneStateProcessor(this)
             listenForSceneTransitionProgress()
         }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/binder/CommunalLockIconViewBinder.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/binder/CommunalLockIconViewBinder.kt
index b1407da..1699911 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/binder/CommunalLockIconViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/binder/CommunalLockIconViewBinder.kt
@@ -27,7 +27,7 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.repeatOnLifecycle
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.common.ui.view.LongPressHandlingView
+import com.android.systemui.common.ui.view.TouchHandlingView
 import com.android.systemui.communal.ui.viewmodel.CommunalLockIconViewModel
 import com.android.systemui.keyguard.ui.view.DeviceEntryIconView
 import com.android.systemui.lifecycle.repeatWhenAttached
@@ -57,11 +57,11 @@
         vibratorHelper: VibratorHelper,
     ): DisposableHandle {
         val disposables = DisposableHandles()
-        val longPressHandlingView = view.longPressHandlingView
+        val touchHandlingView = view.touchHandlingView
         val fgIconView = view.iconView
         val bgView = view.bgView
-        longPressHandlingView.listener =
-            object : LongPressHandlingView.Listener {
+        touchHandlingView.listener =
+            object : TouchHandlingView.Listener {
                 override fun onLongPressDetected(
                     view: View,
                     x: Int,
@@ -87,9 +87,9 @@
                 }
             }
 
-        longPressHandlingView.isInvisible = false
+        touchHandlingView.isInvisible = false
         view.isClickable = true
-        longPressHandlingView.longPressDuration = {
+        touchHandlingView.longPressDuration = {
             view.resources.getInteger(R.integer.config_lockIconLongPress).toLong()
         }
         bgView.visibility = View.GONE
@@ -99,7 +99,7 @@
                 repeatOnLifecycle(Lifecycle.State.CREATED) {
                     launch("$TAG#viewModel.isLongPressEnabled") {
                         viewModel.isLongPressEnabled.collect { isEnabled ->
-                            longPressHandlingView.setLongPressHandlingEnabled(isEnabled)
+                            touchHandlingView.setLongPressHandlingEnabled(isEnabled)
                         }
                     }
                     launch("$TAG#viewModel.accessibilityDelegateHint") {
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/BaseCommunalViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/BaseCommunalViewModel.kt
index 49003a7..d061a33 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/BaseCommunalViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/BaseCommunalViewModel.kt
@@ -153,7 +153,7 @@
     ) {}
 
     /** Called as the UI requests deleting a widget. */
-    open fun onDeleteWidget(id: Int, componentName: ComponentName, rank: Int) {}
+    open fun onDeleteWidget(id: Int, key: String, componentName: ComponentName, rank: Int) {}
 
     /** Called as the UI detects a tap event on the widget. */
     open fun onTapWidget(componentName: ComponentName, rank: Int) {}
@@ -202,6 +202,12 @@
     /** Called as the user request to show the customize widget button. */
     open fun onLongClick() {}
 
+    /** Called as the user requests to switch to the previous player in UMO. */
+    open fun onShowPreviousMedia() {}
+
+    /** Called as the user requests to switch to the next player in UMO. */
+    open fun onShowNextMedia() {}
+
     /** Called as the UI determines that a new widget has been added to the grid. */
     open fun onNewWidgetAdded(provider: AppWidgetProviderInfo) {}
 
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt
index 8aba111..59beb1e 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt
@@ -141,7 +141,10 @@
         metricsLogger.logAddWidget(componentName.flattenToString(), rank)
     }
 
-    override fun onDeleteWidget(id: Int, componentName: ComponentName, rank: Int) {
+    override fun onDeleteWidget(id: Int, key: String, componentName: ComponentName, rank: Int) {
+        if (selectedKey.value == key) {
+            setSelectedKey(null)
+        }
         communalInteractor.deleteWidget(id)
         metricsLogger.logRemoveWidget(componentName.flattenToString(), rank)
     }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModel.kt
index 7e683c4..b531d15 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalToDreamButtonViewModel.kt
@@ -30,6 +30,8 @@
 import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.plugins.ActivityStarter
 import com.android.systemui.statusbar.policy.BatteryController
+import com.android.systemui.util.kotlin.BooleanFlowOperators.allOf
+import com.android.systemui.util.kotlin.BooleanFlowOperators.not
 import com.android.systemui.util.kotlin.isDevicePluggedIn
 import com.android.systemui.util.kotlin.sample
 import dagger.assisted.AssistedFactory
@@ -40,7 +42,6 @@
 import kotlinx.coroutines.coroutineScope
 import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.flow.distinctUntilChanged
-import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.receiveAsFlow
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
@@ -68,12 +69,16 @@
             source = batteryController.isDevicePluggedIn().distinctUntilChanged(),
         )
 
-    /** Return whether the dream button tooltip has been dismissed. */
+    /** Return whether to show the dream button tooltip. */
     val shouldShowTooltip: Boolean by
         hydrator.hydratedStateOf(
             traceName = "shouldShowTooltip",
             initialValue = false,
-            source = prefsInteractor.isDreamButtonTooltipDismissed.map { !it },
+            source =
+                allOf(
+                    not(prefsInteractor.isDreamButtonTooltipDismissed),
+                    prefsInteractor.isHubOnboardingDismissed,
+                ),
         )
 
     /** Set the dream button tooltip to be dismissed. */
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt
index 29d9cac..be1d005 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt
@@ -20,7 +20,6 @@
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
 import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor
-import com.android.systemui.scene.shared.model.SceneFamilies
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -60,8 +59,7 @@
                                     if (isDeviceUnlocked) Scenes.Gone else Scenes.Bouncer
                                 add(Swipe.Up to bouncerOrGone)
 
-                                // "Home" is either Lockscreen, or Gone - if the device is entered.
-                                add(Swipe.End to SceneFamilies.Home)
+                                add(Swipe.End to Scenes.Lockscreen)
 
                                 addAll(
                                     when (shadeMode) {
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt
index 4bc4400..2169881 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt
@@ -19,6 +19,7 @@
 import android.content.ComponentName
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.Flags
+import com.android.systemui.communal.dagger.CommunalModule.Companion.SWIPE_TO_HUB
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
@@ -92,6 +93,7 @@
     private val metricsLogger: CommunalMetricsLogger,
     mediaCarouselController: MediaCarouselController,
     blurConfig: BlurConfig,
+    @Named(SWIPE_TO_HUB) private val swipeToHub: Boolean,
 ) :
     BaseCommunalViewModel(
         communalSceneInteractor,
@@ -254,6 +256,14 @@
         }
     }
 
+    override fun onShowPreviousMedia() {
+        mediaCarouselController.mediaCarouselScrollHandler.scrollByStep(-1)
+    }
+
+    override fun onShowNextMedia() {
+        mediaCarouselController.mediaCarouselScrollHandler.scrollByStep(1)
+    }
+
     override fun onTapWidget(componentName: ComponentName, rank: Int) {
         metricsLogger.logTapWidget(componentName.flattenToString(), rank)
     }
@@ -349,6 +359,8 @@
     /** See [CommunalSettingsInteractor.isV2FlagEnabled] */
     fun v2FlagEnabled(): Boolean = communalSettingsInteractor.isV2FlagEnabled()
 
+    fun swipeToHubEnabled(): Boolean = swipeToHub
+
     companion object {
         const val POPUP_AUTO_HIDE_TIMEOUT_MS = 12000L
     }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/util/WindowSizeUtils.kt b/packages/SystemUI/src/com/android/systemui/communal/util/WindowSizeUtils.kt
new file mode 100644
index 0000000..7e62f0f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/communal/util/WindowSizeUtils.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.communal.util
+
+import android.content.Context
+import androidx.compose.ui.unit.dp
+import androidx.window.layout.WindowMetricsCalculator
+
+/**
+ * [WindowSizeUtils] defines viewport breakpoints that helps create responsive mobile layout.
+ *
+ * @see https://developer.android.com/develop/ui/views/layout/use-window-size-classes
+ */
+object WindowSizeUtils {
+    /** Compact screen width breakpoint. */
+    val COMPACT_WIDTH = 600.dp
+    /** Medium screen width breakpoint. */
+    val MEDIUM_WIDTH = 840.dp
+    /** Compact screen height breakpoint. */
+    val COMPACT_HEIGHT = 480.dp
+    /** Expanded screen height breakpoint. */
+    val EXPANDED_HEIGHT = 900.dp
+
+    /** Whether the window size is compact, which reflects most mobile sizes in portrait. */
+    @JvmStatic
+    fun isCompactWindowSize(context: Context): Boolean {
+        val metrics = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(context)
+        val width = metrics.bounds.width()
+        return width / metrics.density < COMPACT_WIDTH.value
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt b/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt
index dec7ba3..06a14ea 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt
@@ -26,6 +26,7 @@
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.settings.UserTracker
+import com.android.systemui.user.domain.interactor.UserLockedInteractor
 import com.android.systemui.util.kotlin.BooleanFlowOperators.allOf
 import com.android.systemui.util.kotlin.BooleanFlowOperators.anyOf
 import com.android.systemui.util.kotlin.BooleanFlowOperators.not
@@ -58,6 +59,7 @@
     @Main private val uiDispatcher: CoroutineDispatcher,
     private val glanceableHubWidgetManagerLazy: Lazy<GlanceableHubWidgetManager>,
     private val glanceableHubMultiUserHelper: GlanceableHubMultiUserHelper,
+    private val userLockedInteractor: UserLockedInteractor,
 ) : CoreStartable {
 
     private val appWidgetHost by lazy { appWidgetHostLazy.get() }
diff --git a/packages/SystemUI/src/com/android/systemui/complication/ComplicationHostViewController.java b/packages/SystemUI/src/com/android/systemui/complication/ComplicationHostViewController.java
index 35592a5..ee98a06 100644
--- a/packages/SystemUI/src/com/android/systemui/complication/ComplicationHostViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/complication/ComplicationHostViewController.java
@@ -18,6 +18,7 @@
 
 import static com.android.systemui.complication.dagger.ComplicationHostViewModule.SCOPED_COMPLICATIONS_LAYOUT;
 import static com.android.systemui.complication.dagger.ComplicationModule.SCOPED_COMPLICATIONS_MODEL;
+import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow;
 
 import android.graphics.Rect;
 import android.graphics.Region;
@@ -32,10 +33,14 @@
 import androidx.lifecycle.Observer;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor;
+import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.dreams.DreamOverlayStateController;
 import com.android.systemui.util.ViewController;
 import com.android.systemui.util.settings.SecureSettings;
 
+import kotlinx.coroutines.CoroutineDispatcher;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -77,7 +82,9 @@
             DreamOverlayStateController dreamOverlayStateController,
             LifecycleOwner lifecycleOwner,
             @Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel,
-            SecureSettings secureSettings) {
+            SecureSettings secureSettings,
+            ConfigurationInteractor configurationInteractor,
+            @Main CoroutineDispatcher mainDispatcher) {
         super(view);
         mLayoutEngine = layoutEngine;
         mLifecycleOwner = lifecycleOwner;
@@ -87,6 +94,13 @@
         // Whether animations are enabled.
         mIsAnimationEnabled = secureSettings.getFloatForUser(
                 Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, UserHandle.USER_CURRENT) != 0.0f;
+        // Update layout on configuration change like rotation, fold etc.
+        collectFlow(
+                view,
+                configurationInteractor.getMaxBounds(),
+                mLayoutEngine::updateLayoutEngine,
+                mainDispatcher
+        );
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/complication/ComplicationLayoutEngine.java b/packages/SystemUI/src/com/android/systemui/complication/ComplicationLayoutEngine.java
index 15ec4d4..d91fbab 100644
--- a/packages/SystemUI/src/com/android/systemui/complication/ComplicationLayoutEngine.java
+++ b/packages/SystemUI/src/com/android/systemui/complication/ComplicationLayoutEngine.java
@@ -27,16 +27,15 @@
 import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATIONS_FADE_IN_DURATION;
 import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATIONS_FADE_OUT_DURATION;
 import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATION_DIRECTIONAL_SPACING_DEFAULT;
-import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATION_MARGIN_POSITION_BOTTOM;
-import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATION_MARGIN_POSITION_END;
-import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATION_MARGIN_POSITION_START;
-import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATION_MARGIN_POSITION_TOP;
+import static com.android.systemui.complication.dagger.ComplicationHostViewModule.COMPLICATION_MARGINS;
 import static com.android.systemui.complication.dagger.ComplicationHostViewModule.SCOPED_COMPLICATIONS_LAYOUT;
 
+import android.graphics.Rect;
 import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.NonNull;
 import androidx.constraintlayout.widget.ConstraintLayout;
 import androidx.constraintlayout.widget.Constraints;
 
@@ -52,11 +51,13 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Provider;
 
 /**
  * {@link ComplicationLayoutEngine} arranges a collection of {@link ComplicationViewModel} based on
@@ -401,6 +402,16 @@
             return mDirectionGroups.get(direction).add(entryBuilder);
         }
 
+        public void updateDirectionalMargins(Map<Integer, Margins> directionalMargins) {
+            // the new map should have the same set of directional keys as the old map
+            if (!(directionalMargins.keySet())
+                    .containsAll(mDirectionalMargins.keySet())) {
+                Log.e(TAG, "Directional margins map does not have the same keys");
+                return;
+            }
+            mDirectionalMargins.replaceAll((direction, v) -> directionalMargins.get(direction));
+        }
+
         @Override
         public void onEntriesChanged() {
             // Whenever an entry is added/removed from a child {@link DirectionGroup}, it is vital
@@ -584,42 +595,36 @@
     private final TouchInsetManager.TouchInsetSession mSession;
     private final int mFadeInDuration;
     private final int mFadeOutDuration;
-    private final HashMap<Integer, HashMap<Integer, Margins>> mPositionDirectionMarginMapping;
-
+    private final HashMap<Integer, HashMap<Integer, Margins>> mPositionDirectionMarginMapping =
+            new HashMap<>();
+    private final Provider<Margins> mComplicationMarginsProvider;
+    private Rect mScreenBounds = new Rect();
     /** */
     @Inject
     public ComplicationLayoutEngine(@Named(SCOPED_COMPLICATIONS_LAYOUT) ConstraintLayout layout,
             @Named(COMPLICATION_DIRECTIONAL_SPACING_DEFAULT) int defaultDirectionalSpacing,
-            @Named(COMPLICATION_MARGIN_POSITION_START) int complicationMarginPositionStart,
-            @Named(COMPLICATION_MARGIN_POSITION_TOP) int complicationMarginPositionTop,
-            @Named(COMPLICATION_MARGIN_POSITION_END) int complicationMarginPositionEnd,
-            @Named(COMPLICATION_MARGIN_POSITION_BOTTOM) int complicationMarginPositionBottom,
+            @Named(COMPLICATION_MARGINS) Provider<Margins> complicationMarginsProvider,
             TouchInsetManager.TouchInsetSession session,
             @Named(COMPLICATIONS_FADE_IN_DURATION) int fadeInDuration,
-            @Named(COMPLICATIONS_FADE_OUT_DURATION) int fadeOutDuration) {
+            @Named(COMPLICATIONS_FADE_OUT_DURATION) int fadeOutDuration
+    ) {
         mLayout = layout;
         mDefaultDirectionalSpacing = defaultDirectionalSpacing;
         mSession = session;
         mFadeInDuration = fadeInDuration;
         mFadeOutDuration = fadeOutDuration;
-        mPositionDirectionMarginMapping = generatePositionDirectionalMarginsMapping(
-                complicationMarginPositionStart,
-                complicationMarginPositionTop,
-                complicationMarginPositionEnd,
-                complicationMarginPositionBottom);
+        mComplicationMarginsProvider = complicationMarginsProvider;
+        updatePositionDirectionalMarginsMapping(mPositionDirectionMarginMapping,
+                mComplicationMarginsProvider.get());
     }
 
-    private static HashMap<Integer, HashMap<Integer, Margins>>
-            generatePositionDirectionalMarginsMapping(int complicationMarginPositionStart,
-            int complicationMarginPositionTop,
-            int complicationMarginPositionEnd,
-            int complicationMarginPositionBottom) {
-        HashMap<Integer, HashMap<Integer, Margins>> mapping = new HashMap<>();
-
-        final Margins startMargins = new Margins(complicationMarginPositionStart, 0, 0, 0);
-        final Margins topMargins = new Margins(0, complicationMarginPositionTop, 0, 0);
-        final Margins endMargins = new Margins(0, 0, complicationMarginPositionEnd, 0);
-        final Margins bottomMargins = new Margins(0, 0, 0, complicationMarginPositionBottom);
+    private static void updatePositionDirectionalMarginsMapping(
+            Map<Integer, HashMap<Integer, Margins>> mapping,
+            Margins complicationMargins) {
+        final Margins startMargins = new Margins(complicationMargins.start, 0, 0, 0);
+        final Margins topMargins = new Margins(0, complicationMargins.top, 0, 0);
+        final Margins endMargins = new Margins(0, 0, complicationMargins.end, 0);
+        final Margins bottomMargins = new Margins(0, 0, 0, complicationMargins.bottom);
 
         addToMapping(mapping, POSITION_START | POSITION_TOP, DIRECTION_END, topMargins);
         addToMapping(mapping, POSITION_START | POSITION_TOP, DIRECTION_DOWN, startMargins);
@@ -632,11 +637,9 @@
 
         addToMapping(mapping, POSITION_END | POSITION_BOTTOM, DIRECTION_START, bottomMargins);
         addToMapping(mapping, POSITION_END | POSITION_BOTTOM, DIRECTION_UP, endMargins);
-
-        return mapping;
     }
 
-    private static void addToMapping(HashMap<Integer, HashMap<Integer, Margins>> mapping,
+    private static void addToMapping(Map<Integer, HashMap<Integer, Margins>> mapping,
             @Position int position, @Direction int direction, Margins margins) {
         if (!mapping.containsKey(position)) {
             mapping.put(position, new HashMap<>());
@@ -644,6 +647,28 @@
         mapping.get(position).put(direction, margins);
     }
 
+    /**
+     * Update margins on screen dimension change.
+      */
+    public void updateLayoutEngine(@NonNull Rect bounds) {
+        if (bounds.width() == mScreenBounds.width() && bounds.height() == mScreenBounds.height()) {
+            return;
+        }
+        mScreenBounds = bounds;
+        updatePositionDirectionalMarginsMapping(mPositionDirectionMarginMapping,
+                mComplicationMarginsProvider.get());
+
+        // update each position group and layout of entries
+        for (Integer position : mPositions.keySet()) {
+            PositionGroup positionGroup = mPositions.get(position);
+            positionGroup.updateDirectionalMargins(mPositionDirectionMarginMapping
+                    .get(position));
+            positionGroup.onEntriesChanged();
+        }
+        Log.d(TAG, "Updated margins for complications as screen size changed to width = "
+                + bounds.width() + "px, height = " + bounds.height() + "px.");
+    }
+
     @Override
     public void setVisibility(int visibility) {
         if (visibility == View.VISIBLE) {
diff --git a/packages/SystemUI/src/com/android/systemui/complication/dagger/ComplicationHostViewModule.java b/packages/SystemUI/src/com/android/systemui/complication/dagger/ComplicationHostViewModule.java
index 9dd48ea..e446fbf 100644
--- a/packages/SystemUI/src/com/android/systemui/complication/dagger/ComplicationHostViewModule.java
+++ b/packages/SystemUI/src/com/android/systemui/complication/dagger/ComplicationHostViewModule.java
@@ -16,12 +16,15 @@
 
 package com.android.systemui.complication.dagger;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.view.LayoutInflater;
 
 import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.android.internal.util.Preconditions;
+import com.android.systemui.communal.util.WindowSizeUtils;
+import com.android.systemui.complication.ComplicationLayoutEngine;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.res.R;
 
@@ -42,14 +45,7 @@
     public static final String COMPLICATIONS_FADE_IN_DURATION = "complications_fade_in_duration";
     public static final String COMPLICATIONS_RESTORE_TIMEOUT = "complication_restore_timeout";
     public static final String COMPLICATIONS_FADE_OUT_DELAY = "complication_fade_out_delay";
-    public static final String COMPLICATION_MARGIN_POSITION_START =
-            "complication_margin_position_start";
-    public static final String COMPLICATION_MARGIN_POSITION_TOP =
-            "complication_margin_position_top";
-    public static final String COMPLICATION_MARGIN_POSITION_END =
-            "complication_margin_position_end";
-    public static final String COMPLICATION_MARGIN_POSITION_BOTTOM =
-            "complication_margin_position_bottom";
+    public static final String COMPLICATION_MARGINS = "complication_margins";
 
     /**
      * Generates a {@link ConstraintLayout}, which can host
@@ -72,28 +68,32 @@
         return resources.getDimensionPixelSize(R.dimen.dream_overlay_complication_margin);
     }
 
+    /**
+     * Use small margins for compact window width (mobile portrait), and regular margins for
+     * medium and expanded width (mobile landscape, tablet and large unfolded).
+      */
     @Provides
-    @Named(COMPLICATION_MARGIN_POSITION_START)
-    static int providesComplicationMarginPositionStart(@Main Resources resources) {
-        return resources.getDimensionPixelSize(R.dimen.dream_overlay_container_padding_start);
-    }
-
-    @Provides
-    @Named(COMPLICATION_MARGIN_POSITION_TOP)
-    static int providesComplicationMarginPositionTop(@Main Resources resources) {
-        return resources.getDimensionPixelSize(R.dimen.dream_overlay_container_padding_top);
-    }
-
-    @Provides
-    @Named(COMPLICATION_MARGIN_POSITION_END)
-    static int providesComplicationMarginPositionEnd(@Main Resources resources) {
-        return resources.getDimensionPixelSize(R.dimen.dream_overlay_container_padding_end);
-    }
-
-    @Provides
-    @Named(COMPLICATION_MARGIN_POSITION_BOTTOM)
-    static int providesComplicationMarginPositionBottom(@Main Resources resources) {
-        return resources.getDimensionPixelSize(R.dimen.dream_overlay_container_padding_bottom);
+    @Named(COMPLICATION_MARGINS)
+    static ComplicationLayoutEngine.Margins providesComplicationMargins(@Main Resources resources,
+            Context context) {
+        return WindowSizeUtils.isCompactWindowSize(context)
+                ? new ComplicationLayoutEngine.Margins(resources.getDimensionPixelSize(
+                        R.dimen.dream_overlay_container_small_padding_start),
+                resources.getDimensionPixelSize(
+                        R.dimen.dream_overlay_container_small_padding_top),
+                resources.getDimensionPixelSize(
+                        R.dimen.dream_overlay_container_small_padding_end),
+                resources.getDimensionPixelSize(
+                        R.dimen.dream_overlay_container_small_padding_bottom)) :
+                new ComplicationLayoutEngine.Margins(resources.getDimensionPixelSize(
+                        R.dimen.dream_overlay_container_padding_start),
+                        resources.getDimensionPixelSize(
+                                R.dimen.dream_overlay_container_padding_top),
+                        resources.getDimensionPixelSize(
+                                R.dimen.dream_overlay_container_padding_end),
+                        resources.getDimensionPixelSize(
+                                R.dimen.dream_overlay_container_padding_bottom)
+                        );
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java
index 3c68e3a..8bff090 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java
@@ -74,6 +74,7 @@
 import com.android.systemui.statusbar.SysuiStatusBarStateController;
 import com.android.systemui.statusbar.dagger.CentralSurfacesModule;
 import com.android.systemui.statusbar.dagger.StartCentralSurfacesModule;
+import com.android.systemui.statusbar.notification.dagger.NotificationStackModule;
 import com.android.systemui.statusbar.notification.dagger.ReferenceNotificationsModule;
 import com.android.systemui.statusbar.notification.headsup.HeadsUpModule;
 import com.android.systemui.statusbar.phone.CentralSurfaces;
@@ -169,6 +170,7 @@
         WallpaperModule.class,
         ShortcutHelperModule.class,
         ContextualEducationModule.class,
+        NotificationStackModule.class,
 })
 public abstract class ReferenceSystemUIModule {
 
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt b/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt
index fcc3ea9..fed7709 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt
@@ -18,6 +18,7 @@
 
 import com.android.keyguard.KeyguardBiometricLockoutLogger
 import com.android.systemui.CoreStartable
+import com.android.systemui.Flags.unfoldLatencyTrackingFix
 import com.android.systemui.LatencyTester
 import com.android.systemui.SliceBroadcastRelayHandler
 import com.android.systemui.accessibility.Magnification
@@ -60,6 +61,7 @@
 import com.android.systemui.temporarydisplay.chipbar.ChipbarCoordinator
 import com.android.systemui.theme.ThemeOverlayController
 import com.android.systemui.unfold.DisplaySwitchLatencyTracker
+import com.android.systemui.unfold.NoCooldownDisplaySwitchLatencyTracker
 import com.android.systemui.usb.StorageNotification
 import com.android.systemui.util.NotificationChannels
 import com.android.systemui.util.StartBinderLoggerModule
@@ -67,8 +69,10 @@
 import com.android.systemui.wmshell.WMShell
 import dagger.Binds
 import dagger.Module
+import dagger.Provides
 import dagger.multibindings.ClassKey
 import dagger.multibindings.IntoMap
+import javax.inject.Provider
 
 /**
  * DEPRECATED: DO NOT ADD THINGS TO THIS FILE.
@@ -148,12 +152,6 @@
     @ClassKey(LatencyTester::class)
     abstract fun bindLatencyTester(sysui: LatencyTester): CoreStartable
 
-    /** Inject into DisplaySwitchLatencyTracker. */
-    @Binds
-    @IntoMap
-    @ClassKey(DisplaySwitchLatencyTracker::class)
-    abstract fun bindDisplaySwitchLatencyTracker(sysui: DisplaySwitchLatencyTracker): CoreStartable
-
     /** Inject into NotificationChannels. */
     @Binds
     @IntoMap
@@ -353,4 +351,15 @@
     @IntoMap
     @ClassKey(ComplicationTypesUpdater::class)
     abstract fun bindComplicationTypesUpdater(updater: ComplicationTypesUpdater): CoreStartable
+
+    companion object {
+        @Provides
+        @IntoMap
+        @ClassKey(DisplaySwitchLatencyTracker::class)
+        fun provideDisplaySwitchLatencyTracker(
+            noCoolDownVariant: Provider<NoCooldownDisplaySwitchLatencyTracker>,
+            coolDownVariant: Provider<DisplaySwitchLatencyTracker>,
+        ): CoreStartable =
+            if (unfoldLatencyTrackingFix()) coolDownVariant.get() else noCoolDownVariant.get()
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt
index 9ce2ce0..7437d3e 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt
@@ -19,7 +19,6 @@
 import com.android.compose.animation.scene.Swipe
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
-import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
@@ -40,7 +39,6 @@
 class DreamUserActionsViewModel
 @AssistedInject
 constructor(
-    private val communalInteractor: CommunalInteractor,
     private val deviceUnlockedInteractor: DeviceUnlockedInteractor,
     private val shadeInteractor: ShadeInteractor,
     private val shadeModeInteractor: ShadeModeInteractor,
@@ -54,14 +52,9 @@
                 } else {
                     combine(
                         deviceUnlockedInteractor.deviceUnlockStatus.map { it.isUnlocked },
-                        communalInteractor.isCommunalAvailable,
                         shadeModeInteractor.shadeMode,
-                    ) { isDeviceUnlocked, isCommunalAvailable, shadeMode ->
+                    ) { isDeviceUnlocked, shadeMode ->
                         buildList {
-                                if (isCommunalAvailable) {
-                                    add(Swipe.Start to Scenes.Communal)
-                                }
-
                                 val bouncerOrGone =
                                     if (isDeviceUnlocked) Scenes.Gone else Scenes.Bouncer
                                 add(Swipe.Up to bouncerOrGone)
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModel.kt b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModel.kt
index 11b7e9d..a7c078f 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModel.kt
@@ -47,7 +47,7 @@
 constructor(
     configurationInteractor: ConfigurationInteractor,
     keyguardTransitionInteractor: KeyguardTransitionInteractor,
-    fromGlanceableHubTransitionInteractor: GlanceableHubToDreamingTransitionViewModel,
+    fromGlanceableHubTransitionViewModel: GlanceableHubToDreamingTransitionViewModel,
     toGlanceableHubTransitionViewModel: DreamingToGlanceableHubTransitionViewModel,
     private val toLockscreenTransitionViewModel: DreamingToLockscreenTransitionViewModel,
     private val fromDreamingTransitionInteractor: FromDreamingTransitionInteractor,
@@ -74,7 +74,7 @@
     val dreamOverlayTranslationX: Flow<Float> =
         merge(
                 toGlanceableHubTransitionViewModel.dreamOverlayTranslationX,
-                fromGlanceableHubTransitionInteractor.dreamOverlayTranslationX,
+                fromGlanceableHubTransitionViewModel.dreamOverlayTranslationX,
             )
             .distinctUntilChanged()
 
@@ -97,7 +97,7 @@
         merge(
                 toLockscreenTransitionViewModel.dreamOverlayAlpha,
                 toGlanceableHubTransitionViewModel.dreamOverlayAlpha,
-                fromGlanceableHubTransitionInteractor.dreamOverlayAlpha,
+                fromGlanceableHubTransitionViewModel.dreamOverlayAlpha,
             )
             .distinctUntilChanged()
 
diff --git a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackConfig.kt b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackConfig.kt
index da124de..7b97bbc 100644
--- a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackConfig.kt
+++ b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackConfig.kt
@@ -49,4 +49,6 @@
     @FloatRange(from = 0.0, fromInclusive = false) val exponent: Float = 1f / 0.89f,
     /** The step-size that defines the slider quantization. Zero represents a continuous slider */
     @FloatRange(from = 0.0) val sliderStepSize: Float = 0f,
+    /** A filter that determines values for which haptics are triggered */
+    val filter: SliderHapticFeedbackFilter = SliderHapticFeedbackFilter(),
 )
diff --git a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackFilter.kt b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackFilter.kt
new file mode 100644
index 0000000..237775f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackFilter.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.haptics.slider
+
+/**
+ * This filter is used by the [SliderHapticFeedbackProvider] to filter-out haptics if the slider
+ * state logic needs to avoid certain vibrations.
+ *
+ * @param[vibrateOnUpperBookend] Tell the provider if we should vibrate on the upper bookend.
+ * @param[vibrateOnLowerBookend] Tell the provider if we should vibrate on the lower bookend.
+ */
+data class SliderHapticFeedbackFilter(
+    var vibrateOnUpperBookend: Boolean = true,
+    var vibrateOnLowerBookend: Boolean = true,
+)
diff --git a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackProvider.kt b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackProvider.kt
index de6697b..82c284a 100644
--- a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderHapticFeedbackProvider.kt
@@ -218,14 +218,14 @@
     }
 
     override fun onLowerBookend() {
-        if (!hasVibratedAtLowerBookend) {
+        if (!hasVibratedAtLowerBookend && config.filter.vibrateOnLowerBookend) {
             vibrateOnEdgeCollision(abs(velocityProvider.getTrackedVelocity()))
             hasVibratedAtLowerBookend = true
         }
     }
 
     override fun onUpperBookend() {
-        if (!hasVibratedAtUpperBookend) {
+        if (!hasVibratedAtUpperBookend && config.filter.vibrateOnUpperBookend) {
             vibrateOnEdgeCollision(abs(velocityProvider.getTrackedVelocity()))
             hasVibratedAtUpperBookend = true
         }
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialSchedulerInteractor.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialSchedulerInteractor.kt
index 9607053..b712fde 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialSchedulerInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/domain/interactor/TutorialSchedulerInteractor.kt
@@ -39,6 +39,8 @@
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.drop
 import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flow
@@ -99,6 +101,25 @@
         waitForDeviceConnection(deviceType)
     }
 
+    // This flow is used by the notification updater once an initial notification is launched. It
+    // listens to the device connection changes for both keyboard and touchpad. When either of the
+    // device is disconnected, resolve the tutorial type base on the latest connection state.
+    // Dropping the initial state because it's the existing notification. Filtering out BOTH because
+    // we only care about disconnections.
+    val tutorialTypeUpdates: Flow<TutorialType> =
+        keyboardRepository.isAnyKeyboardConnected
+            .combine(touchpadRepository.isAnyTouchpadConnected, ::Pair)
+            .map { (keyboardConnected, touchpadConnected) ->
+                when {
+                    keyboardConnected && touchpadConnected -> TutorialType.BOTH
+                    keyboardConnected -> TutorialType.KEYBOARD
+                    touchpadConnected -> TutorialType.TOUCHPAD
+                    else -> TutorialType.NONE
+                }
+            }
+            .drop(1)
+            .filter { it != TutorialType.BOTH }
+
     private suspend fun waitForDeviceConnection(deviceType: DeviceType) =
         isAnyDeviceConnected[deviceType]!!.filter { it }.first()
 
@@ -172,6 +193,7 @@
                         pw.println(
                             "         launch time = ${repo.getScheduledTutorialLaunchTime(TOUCHPAD)}"
                         )
+                        pw.println("Delay time = ${LAUNCH_DELAY.seconds} sec")
                     }
                 "notify" -> {
                     if (args.size != 2) help(pw)
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/TutorialNotificationCoordinator.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/TutorialNotificationCoordinator.kt
index 3cba70e..a90c7ad 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/TutorialNotificationCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/TutorialNotificationCoordinator.kt
@@ -42,6 +42,9 @@
 import com.android.systemui.settings.UserTracker
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.merge
 
 /** When the scheduler is due, show a notification to launch tutorial */
@@ -55,19 +58,43 @@
     private val notificationManager: NotificationManager,
     private val userTracker: UserTracker,
 ) {
+    private var updaterJob: Job? = null
+
     fun start() {
         backgroundScope.launch {
             merge(
                     tutorialSchedulerInteractor.tutorials,
                     tutorialSchedulerInteractor.commandTutorials,
                 )
-                .collect { showNotification(it) }
+                .filter { it != TutorialType.NONE }
+                .collectLatest {
+                    showNotification(it)
+                    updaterJob?.cancel()
+                    updaterJob = backgroundScope.launch { updateWhenDeviceDisconnects() }
+                }
         }
     }
 
+    private suspend fun updateWhenDeviceDisconnects() {
+        // Only update the notification when there is an active one (i.e. if the notification has
+        // been dismissed by the user, or if the tutorial has been launched, there's no need to
+        // update)
+        tutorialSchedulerInteractor.tutorialTypeUpdates
+            .filter { hasNotification() }
+            .collect {
+                if (it == TutorialType.NONE)
+                    notificationManager.cancelAsUser(TAG, NOTIFICATION_ID, userTracker.userHandle)
+                else showNotification(it)
+            }
+    }
+
+    private fun hasNotification() =
+        notificationManager.activeNotifications.any { it.id == NOTIFICATION_ID }
+
     // By sharing the same tag and id, we update the content of existing notification instead of
     // creating multiple notifications
     private fun showNotification(tutorialType: TutorialType) {
+        // Safe guard - but this should never been reached
         if (tutorialType == TutorialType.NONE) return
 
         if (notificationManager.getNotificationChannel(CHANNEL_ID) == null)
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/AccessibilityShortcutsSource.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/AccessibilityShortcutsSource.kt
index fdb80b2..978b873 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/AccessibilityShortcutsSource.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/AccessibilityShortcutsSource.kt
@@ -52,17 +52,15 @@
         val shortcuts = mutableListOf<KeyboardShortcutInfo>()
 
         if (keyboardA11yShortcutControl()) {
-            if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
-                shortcuts.add(
-                    // Toggle bounce keys:
-                    //  - Meta + Alt + 3
-                    shortcutInfo(
-                        resources.getString(R.string.group_accessibility_toggle_bounce_keys)
-                    ) {
-                        command(META_META_ON or META_ALT_ON, KEYCODE_3)
-                    }
-                )
-            }
+            shortcuts.add(
+                // Toggle bounce keys:
+                //  - Meta + Alt + 3
+                shortcutInfo(
+                    resources.getString(R.string.group_accessibility_toggle_bounce_keys)
+                ) {
+                    command(META_META_ON or META_ALT_ON, KEYCODE_3)
+                }
+            )
             if (InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
                 shortcuts.add(
                     // Toggle mouse keys:
@@ -74,28 +72,24 @@
                     }
                 )
             }
-            if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
-                shortcuts.add(
-                    // Toggle sticky keys:
-                    //  - Meta + Alt + 5
-                    shortcutInfo(
-                        resources.getString(R.string.group_accessibility_toggle_sticky_keys)
-                    ) {
-                        command(META_META_ON or META_ALT_ON, KEYCODE_5)
-                    }
-                )
-            }
-            if (InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
-                shortcuts.add(
-                    // Toggle slow keys:
-                    //  - Meta + Alt + 6
-                    shortcutInfo(
-                        resources.getString(R.string.group_accessibility_toggle_slow_keys)
-                    ) {
-                        command(META_META_ON or META_ALT_ON, KEYCODE_6)
-                    }
-                )
-            }
+            shortcuts.add(
+                // Toggle sticky keys:
+                //  - Meta + Alt + 5
+                shortcutInfo(
+                    resources.getString(R.string.group_accessibility_toggle_sticky_keys)
+                ) {
+                    command(META_META_ON or META_ALT_ON, KEYCODE_5)
+                }
+            )
+            shortcuts.add(
+                // Toggle slow keys:
+                //  - Meta + Alt + 6
+                shortcutInfo(
+                    resources.getString(R.string.group_accessibility_toggle_slow_keys)
+                ) {
+                    command(META_META_ON or META_ALT_ON, KEYCODE_6)
+                }
+            )
         }
 
         if (enableVoiceAccessKeyGestures()) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
index c1a59f1..7574649 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
@@ -82,7 +82,7 @@
 import com.android.systemui.keyguard.domain.interactor.KeyguardDismissInteractor;
 import com.android.systemui.keyguard.domain.interactor.KeyguardEnabledInteractor;
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;
-import com.android.systemui.keyguard.domain.interactor.KeyguardServiceLockNowInteractor;
+import com.android.systemui.keyguard.domain.interactor.KeyguardServiceShowLockscreenInteractor;
 import com.android.systemui.keyguard.domain.interactor.KeyguardStateCallbackInteractor;
 import com.android.systemui.keyguard.domain.interactor.KeyguardWakeDirectlyToGoneInteractor;
 import com.android.systemui.keyguard.ui.binder.KeyguardSurfaceBehindParamsApplier;
@@ -331,7 +331,7 @@
             return new FoldGracePeriodProvider();
         }
     };
-    private final KeyguardServiceLockNowInteractor mKeyguardServiceLockNowInteractor;
+    private final KeyguardServiceShowLockscreenInteractor mKeyguardServiceShowLockscreenInteractor;
     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
 
     @Inject
@@ -358,7 +358,7 @@
             KeyguardDismissInteractor keyguardDismissInteractor,
             Lazy<DeviceEntryInteractor> deviceEntryInteractorLazy,
             KeyguardStateCallbackInteractor keyguardStateCallbackInteractor,
-            KeyguardServiceLockNowInteractor keyguardServiceLockNowInteractor,
+            KeyguardServiceShowLockscreenInteractor keyguardServiceShowLockscreenInteractor,
             KeyguardUpdateMonitor keyguardUpdateMonitor) {
         super();
         mKeyguardViewMediator = keyguardViewMediator;
@@ -391,7 +391,7 @@
         mKeyguardEnabledInteractor = keyguardEnabledInteractor;
         mKeyguardWakeDirectlyToGoneInteractor = keyguardWakeDirectlyToGoneInteractor;
         mKeyguardDismissInteractor = keyguardDismissInteractor;
-        mKeyguardServiceLockNowInteractor = keyguardServiceLockNowInteractor;
+        mKeyguardServiceShowLockscreenInteractor = keyguardServiceShowLockscreenInteractor;
         mKeyguardUpdateMonitor = keyguardUpdateMonitor;
     }
 
@@ -673,7 +673,7 @@
             if (SceneContainerFlag.isEnabled()) {
                 mDeviceEntryInteractorLazy.get().lockNow("doKeyguardTimeout");
             } else if (KeyguardWmStateRefactor.isEnabled()) {
-                mKeyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout(options);
+                mKeyguardServiceShowLockscreenInteractor.onKeyguardServiceDoKeyguardTimeout();
             }
 
             mKeyguardViewMediator.doKeyguardTimeout(options);
@@ -686,7 +686,12 @@
             if (mFoldGracePeriodProvider.get().isEnabled()) {
                 mKeyguardInteractor.showDismissibleKeyguard();
             }
-            mKeyguardViewMediator.showDismissibleKeyguard();
+
+            if (KeyguardWmStateRefactor.isEnabled()) {
+                mKeyguardServiceShowLockscreenInteractor.onKeyguardServiceShowDismissibleKeyguard();
+            } else {
+                mKeyguardViewMediator.showDismissibleKeyguard();
+            }
 
             if (SceneContainerFlag.isEnabled() && mFoldGracePeriodProvider.get().isEnabled()) {
                 mMainExecutor.execute(() -> mSceneInteractorLazy.get().changeScene(
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewConfigurator.kt b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewConfigurator.kt
index 869edfa..c61530c 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewConfigurator.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewConfigurator.kt
@@ -27,7 +27,6 @@
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryHapticsInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor
-import com.android.systemui.keyguard.domain.interactor.WallpaperFocalAreaInteractor
 import com.android.systemui.keyguard.ui.binder.KeyguardBlueprintViewBinder
 import com.android.systemui.keyguard.ui.binder.KeyguardJankBinder
 import com.android.systemui.keyguard.ui.binder.KeyguardRootViewBinder
@@ -53,6 +52,8 @@
 import com.android.systemui.statusbar.phone.ScreenOffAnimationController
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
 import com.android.systemui.temporarydisplay.chipbar.ChipbarCoordinator
+import com.android.systemui.wallpapers.domain.interactor.WallpaperFocalAreaInteractor
+import com.android.systemui.wallpapers.ui.viewmodel.WallpaperFocalAreaViewModel
 import com.android.systemui.wallpapers.ui.viewmodel.WallpaperViewModel
 import com.google.android.msdl.domain.MSDLPlayer
 import java.util.Optional
@@ -93,6 +94,7 @@
     @Main private val mainDispatcher: CoroutineDispatcher,
     private val msdlPlayer: MSDLPlayer,
     @KeyguardBlueprintLog private val blueprintLog: LogBuffer,
+    private val wallpaperFocalAreaViewModel: WallpaperFocalAreaViewModel,
 ) : CoreStartable {
 
     private var rootViewHandle: DisposableHandle? = null
@@ -148,7 +150,6 @@
                 screenOffAnimationController,
                 shadeInteractor,
                 clockInteractor,
-                wallpaperFocalAreaInteractor,
                 keyguardClockViewModel,
                 deviceEntryHapticsInteractor,
                 vibratorHelper,
@@ -157,14 +158,11 @@
                 mainDispatcher,
                 msdlPlayer,
                 blueprintLog,
+                wallpaperFocalAreaViewModel,
             )
     }
 
     private fun bindJankViewModel() {
-        if (SceneContainerFlag.isEnabled) {
-            return
-        }
-
         jankHandle?.dispose()
         jankHandle =
             KeyguardJankBinder.bind(
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 372fdca..caf0fd4 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -16,7 +16,6 @@
 
 package com.android.systemui.keyguard;
 
-import static android.app.KeyguardManager.LOCK_ON_USER_SWITCH_CALLBACK;
 import static android.app.StatusBarManager.SESSION_KEYGUARD;
 import static android.provider.Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT;
 import static android.provider.Settings.System.LOCKSCREEN_SOUNDS_ENABLED;
@@ -76,7 +75,6 @@
 import android.os.DeadObjectException;
 import android.os.Handler;
 import android.os.IBinder;
-import android.os.IRemoteCallback;
 import android.os.Looper;
 import android.os.Message;
 import android.os.PowerManager;
@@ -118,6 +116,7 @@
 import com.android.internal.logging.UiEventLogger;
 import com.android.internal.policy.IKeyguardDismissCallback;
 import com.android.internal.policy.IKeyguardExitCallback;
+import com.android.internal.policy.IKeyguardService;
 import com.android.internal.policy.IKeyguardStateCallback;
 import com.android.internal.policy.ScreenDecorationsUtils;
 import com.android.internal.statusbar.IStatusBarService;
@@ -139,6 +138,7 @@
 import com.android.systemui.animation.TransitionAnimator;
 import com.android.systemui.broadcast.BroadcastDispatcher;
 import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor;
 import com.android.systemui.communal.ui.viewmodel.CommunalTransitionViewModel;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.dagger.qualifiers.UiBackground;
@@ -192,8 +192,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
@@ -256,6 +254,15 @@
     private static final String DELAYED_LOCK_PROFILE_ACTION =
             "com.android.internal.policy.impl.PhoneWindowManager.DELAYED_LOCK";
 
+    /**
+     * String extra key passed in the bundle of {@link IKeyguardService#doKeyguardTimeout(Bundle)}
+     * if the value is {@code true}, indicates to keyguard that the device should show the
+     * glanceable hub upon locking. If the hub is already visible, the device should go to sleep.
+     *
+     * Mirrored from PhoneWindowManager which sends the extra.
+     */
+    public static final String EXTRA_TRIGGER_HUB = "extra_trigger_hub";
+
     private static final String SYSTEMUI_PERMISSION = "com.android.systemui.permission.SELF";
 
     // used for handler messages
@@ -275,9 +282,6 @@
     private static final int SYSTEM_READY = 18;
     private static final int CANCEL_KEYGUARD_EXIT_ANIM = 19;
     private static final int BOOT_INTERACTOR = 20;
-    private static final int BEFORE_USER_SWITCHING = 21;
-    private static final int USER_SWITCHING = 22;
-    private static final int USER_SWITCH_COMPLETE = 23;
 
     /** Enum for reasons behind updating wakeAndUnlock state. */
     @Retention(RetentionPolicy.SOURCE)
@@ -295,8 +299,6 @@
         int WAKE_AND_UNLOCK = 3;
     }
 
-    private final List<LockNowCallback> mLockNowCallbacks = new ArrayList<>();
-
     /**
      * The default amount of time we stay awake (used for all key input)
      */
@@ -354,18 +356,14 @@
     private final ScreenOffAnimationController mScreenOffAnimationController;
     private final Lazy<NotificationShadeDepthController> mNotificationShadeDepthController;
     private final Lazy<ShadeController> mShadeController;
-    /*
-     * Records the user id on request to go away, for validation when WM calls back to start the
-     * exit animation.
-     */
-    private int mGoingAwayRequestedForUserId = -1;
-
+    private final Lazy<CommunalSceneInteractor> mCommunalSceneInteractor;
     private boolean mSystemReady;
     private boolean mBootCompleted;
     private boolean mBootSendUserPresent;
     private boolean mShuttingDown;
     private boolean mDozing;
     private boolean mAnimatingScreenOff;
+    private boolean mIgnoreDismiss;
     private final Context mContext;
     private final FalsingCollector mFalsingCollector;
 
@@ -628,78 +626,6 @@
                 }
             };
 
-    @VisibleForTesting
-    protected UserTracker.Callback mUserChangedCallback = new UserTracker.Callback() {
-
-        @Override
-        public void onBeforeUserSwitching(int newUser, @NonNull Runnable resultCallback) {
-            mHandler.sendMessage(mHandler.obtainMessage(BEFORE_USER_SWITCHING,
-                    newUser, 0, resultCallback));
-        }
-
-        @Override
-        public void onUserChanging(int newUser, @NonNull Context userContext,
-                @NonNull Runnable resultCallback) {
-            mHandler.sendMessage(mHandler.obtainMessage(USER_SWITCHING,
-                    newUser, 0, resultCallback));
-        }
-
-        @Override
-        public void onUserChanged(int newUser, Context userContext) {
-            mHandler.sendMessage(mHandler.obtainMessage(USER_SWITCH_COMPLETE,
-                    newUser, 0));
-        }
-    };
-
-    /**
-     * Handle {@link #BEFORE_USER_SWITCHING}
-     */
-    @VisibleForTesting
-    void handleBeforeUserSwitching(int userId, Runnable resultCallback) {
-        Log.d(TAG, String.format("onBeforeUserSwitching %d", userId));
-        synchronized (KeyguardViewMediator.this) {
-            mHandler.removeMessages(DISMISS);
-            notifyTrustedChangedLocked(mUpdateMonitor.getUserHasTrust(userId));
-            resetKeyguardDonePendingLocked();
-            adjustStatusBarLocked();
-            mKeyguardStateController.notifyKeyguardGoingAway(false);
-            if (mLockPatternUtils.isSecure(userId) && !mShowing) {
-                doKeyguardLocked(null);
-            } else {
-                resetStateLocked();
-            }
-            resultCallback.run();
-        }
-    }
-
-    /**
-     * Handle {@link #USER_SWITCHING}
-     */
-    @VisibleForTesting
-    void handleUserSwitching(int userId, Runnable resultCallback) {
-        Log.d(TAG, String.format("onUserSwitching %d", userId));
-        synchronized (KeyguardViewMediator.this) {
-            if (!mLockPatternUtils.isSecure(userId)) {
-                dismiss(null, null);
-            }
-            resultCallback.run();
-        }
-    }
-
-    /**
-     * Handle {@link #USER_SWITCH_COMPLETE}
-     */
-    @VisibleForTesting
-    void handleUserSwitchComplete(int userId) {
-        Log.d(TAG, String.format("onUserSwitchComplete %d", userId));
-        // Calling dismiss on a secure user will show the bouncer
-        if (mLockPatternUtils.isSecure(userId)) {
-            // We are calling dismiss with a delay as there are race conditions in some scenarios
-            // caused by async layout listeners
-            mHandler.postDelayed(() -> dismiss(null /* callback */, null /* message */), 500);
-        }
-    }
-
     KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {
 
         @Override
@@ -716,6 +642,27 @@
         }
 
         @Override
+        public void onUserSwitching(int userId) {
+            Log.d(TAG, String.format("onUserSwitching %d", userId));
+            synchronized (KeyguardViewMediator.this) {
+                mIgnoreDismiss = true;
+                notifyTrustedChangedLocked(mUpdateMonitor.getUserHasTrust(userId));
+                resetKeyguardDonePendingLocked();
+                resetStateLocked();
+                adjustStatusBarLocked();
+            }
+        }
+
+        @Override
+        public void onUserSwitchComplete(int userId) {
+            mIgnoreDismiss = false;
+            Log.d(TAG, String.format("onUserSwitchComplete %d", userId));
+            // We are calling dismiss with a delay as there are race conditions in some scenarios
+            // caused by async layout listeners
+            mHandler.postDelayed(() -> dismiss(null /* callback */, null /* message */), 500);
+        }
+
+        @Override
         public void onDeviceProvisioned() {
             sendUserPresentBroadcast();
         }
@@ -1556,6 +1503,7 @@
             SelectedUserInteractor selectedUserInteractor,
             KeyguardInteractor keyguardInteractor,
             KeyguardTransitionBootInteractor transitionBootInteractor,
+            Lazy<CommunalSceneInteractor> communalSceneInteractor,
             WindowManagerOcclusionManager wmOcclusionManager) {
         mContext = context;
         mUserTracker = userTracker;
@@ -1597,6 +1545,7 @@
         mSelectedUserInteractor = selectedUserInteractor;
         mKeyguardInteractor = keyguardInteractor;
         mTransitionBootInteractor = transitionBootInteractor;
+        mCommunalSceneInteractor = communalSceneInteractor;
 
         mStatusBarStateController = statusBarStateController;
         statusBarStateController.addCallback(this);
@@ -1722,13 +1671,7 @@
                 com.android.internal.R.anim.lock_screen_behind_enter);
 
         mWorkLockController = new WorkLockActivityController(mContext, mUserTracker);
-        mUserTracker.addCallback(mUserChangedCallback, mContext.getMainExecutor());
-        // start() can be invoked in the middle of user switching, so check for this state and issue
-        // the call manually as that important event was missed.
-        if (mUserTracker.isUserSwitching()) {
-            handleBeforeUserSwitching(mUserTracker.getUserId(), () -> {});
-            handleUserSwitching(mUserTracker.getUserId(), () -> {});
-        }
+
         mJavaAdapter.alwaysCollectFlow(
                 mWallpaperRepository.getWallpaperSupportsAmbientMode(),
                 this::setWallpaperSupportsAmbientMode);
@@ -1777,7 +1720,7 @@
             // System ready can be invoked in the middle of user switching, so check for this state
             // and issue the call manually as that important event was missed.
             if (mUserTracker.isUserSwitching()) {
-                mUserChangedCallback.onUserChanging(mUserTracker.getUserId(), mContext, () -> {});
+                mUpdateCallback.onUserSwitching(mUserTracker.getUserId());
             }
         }
         // Most services aren't available until the system reaches the ready state, so we
@@ -2411,15 +2354,11 @@
      * Enable the keyguard if the settings are appropriate.
      */
     private void doKeyguardLocked(Bundle options) {
-        int currentUserId = mSelectedUserInteractor.getSelectedUserId();
-        if (options != null && options.getBinder(LOCK_ON_USER_SWITCH_CALLBACK) != null) {
-            LockNowCallback callback = new LockNowCallback(currentUserId,
-                    IRemoteCallback.Stub.asInterface(
-                            options.getBinder(LOCK_ON_USER_SWITCH_CALLBACK)));
-            synchronized (mLockNowCallbacks) {
-                mLockNowCallbacks.add(callback);
-            }
-            Log.d(TAG, "LockNowCallback required for user: " + callback.mUserId);
+        // If the power button behavior requests to open the glanceable hub.
+        if (options != null && options.getBoolean(EXTRA_TRIGGER_HUB)) {
+            // Set the hub to show immediately when the SysUI window shows, then continue to lock
+            // the device.
+            mCommunalSceneInteractor.get().showHubFromPowerButton();
         }
 
         // if another app is disabling us, don't show
@@ -2427,7 +2366,7 @@
                 && !mLockPatternUtils.isUserInLockdown(
                         mSelectedUserInteractor.getSelectedUserId())) {
             if (DEBUG) Log.d(TAG, "doKeyguard: not showing because externally disabled");
-            notifyLockNowCallback();
+
             mNeedToReshowWhenReenabled = true;
             return;
         }
@@ -2445,7 +2384,6 @@
                     // We're removing "reset" in the refactor - "resetting" the views will happen
                     // as a reaction to the root cause of the "reset" signal.
                     if (KeyguardWmStateRefactor.isEnabled()) {
-                        notifyLockNowCallback();
                         return;
                     }
 
@@ -2458,7 +2396,6 @@
                                     + "previously hiding. It should be safe to short-circuit "
                                     + "here.");
                     resetStateLocked(/* hideBouncer= */ false);
-                    notifyLockNowCallback();
                     return;
                 }
             } else {
@@ -2485,7 +2422,6 @@
                 Log.d(TAG, "doKeyguard: not showing because device isn't provisioned and the sim is"
                         + " not locked or missing");
             }
-            notifyLockNowCallback();
             return;
         }
 
@@ -2493,7 +2429,6 @@
         if (mLockPatternUtils.isLockScreenDisabled(mSelectedUserInteractor.getSelectedUserId())
                 && !lockedOrMissing && !forceShow) {
             if (DEBUG) Log.d(TAG, "doKeyguard: not showing because lockscreen is off");
-            notifyLockNowCallback();
             return;
         }
 
@@ -2541,6 +2476,11 @@
     }
 
     public void dismiss(IKeyguardDismissCallback callback, CharSequence message) {
+        if (mIgnoreDismiss) {
+            android.util.Log.i(TAG, "Ignoring request to dismiss (user switch in progress?)");
+            return;
+        }
+
         if (mKeyguardStateController.isKeyguardGoingAway()) {
             Log.i(TAG, "Ignoring dismiss because we're already going away.");
             return;
@@ -2558,7 +2498,7 @@
     }
 
     private void resetStateLocked(boolean hideBouncer) {
-        if (DEBUG) Log.d(TAG, "resetStateLocked");
+        if (DEBUG) Log.e(TAG, "resetStateLocked");
         Message msg = mHandler.obtainMessage(RESET, hideBouncer ? 1 : 0, 0);
         mHandler.sendMessage(msg);
     }
@@ -2806,18 +2746,6 @@
                     message = "BOOT_INTERACTOR";
                     handleBootInteractor();
                     break;
-                case BEFORE_USER_SWITCHING:
-                    message = "BEFORE_USER_SWITCHING";
-                    handleBeforeUserSwitching(msg.arg1, (Runnable) msg.obj);
-                    break;
-                case USER_SWITCHING:
-                    message = "USER_SWITCHING";
-                    handleUserSwitching(msg.arg1, (Runnable) msg.obj);
-                    break;
-                case USER_SWITCH_COMPLETE:
-                    message = "USER_SWITCH_COMPLETE";
-                    handleUserSwitchComplete(msg.arg1);
-                    break;
             }
             Log.d(TAG, "KeyguardViewMediator queue processing message: " + message);
         }
@@ -2959,9 +2887,6 @@
         mUiBgExecutor.execute(() -> {
             Log.d(TAG, "updateActivityLockScreenState(" + showing + ", " + aodShowing + ", "
                     + reason + ")");
-            if (showing) {
-                notifyLockNowCallback();
-            }
 
             if (KeyguardWmStateRefactor.isEnabled()) {
                 // Handled in WmLockscreenVisibilityManager if flag is enabled.
@@ -3006,7 +2931,6 @@
         synchronized (KeyguardViewMediator.this) {
             if (!mSystemReady) {
                 if (DEBUG) Log.d(TAG, "ignoring handleShow because system is not ready.");
-                notifyLockNowCallback();
                 return;
             }
             if (DEBUG) Log.d(TAG, "handleShow");
@@ -3065,11 +2989,12 @@
         }
     }
 
-    final Runnable mKeyguardGoingAwayRunnable = new Runnable() {
+    private final Runnable mKeyguardGoingAwayRunnable = new Runnable() {
         @SuppressLint("MissingPermission")
         @Override
         public void run() {
             Trace.beginSection("KeyguardViewMediator.mKeyGuardGoingAwayRunnable");
+            Log.d(TAG, "keyguardGoingAwayRunnable");
             mKeyguardViewControllerLazy.get().keyguardGoingAway();
 
             int flags = 0;
@@ -3106,10 +3031,6 @@
 
             // Handled in WmLockscreenVisibilityManager if flag is enabled.
             if (!KeyguardWmStateRefactor.isEnabled()) {
-                mGoingAwayRequestedForUserId = mSelectedUserInteractor.getSelectedUserId();
-                Log.d(TAG, "keyguardGoingAway requested for userId: "
-                        + mGoingAwayRequestedForUserId);
-
                 // Don't actually hide the Keyguard at the moment, wait for window manager
                 // until it tells us it's safe to do so with startKeyguardExitAnimation.
                 // Posting to mUiOffloadThread to ensure that calls to ActivityTaskManager
@@ -3248,30 +3169,6 @@
             RemoteAnimationTarget[] nonApps, IRemoteAnimationFinishedCallback finishedCallback) {
         Log.d(TAG, "handleStartKeyguardExitAnimation startTime=" + startTime
                 + " fadeoutDuration=" + fadeoutDuration);
-        int currentUserId = mSelectedUserInteractor.getSelectedUserId();
-        if (!KeyguardWmStateRefactor.isEnabled() && mGoingAwayRequestedForUserId != currentUserId) {
-            Log.e(TAG, "Not executing handleStartKeyguardExitAnimationInner() due to userId "
-                    + "mismatch. Requested: " + mGoingAwayRequestedForUserId + ", current: "
-                    + currentUserId);
-            if (finishedCallback != null) {
-                // There will not execute animation, send a finish callback to ensure the remote
-                // animation won't hang there.
-                try {
-                    finishedCallback.onAnimationFinished();
-                } catch (RemoteException e) {
-                    Slog.w(TAG, "Failed to call onAnimationFinished", e);
-                }
-            }
-            mHiding = false;
-            if (mLockPatternUtils.isSecure(currentUserId)) {
-                doKeyguardLocked(null);
-            } else {
-                resetStateLocked();
-                dismiss(null, null);
-            }
-            return;
-        }
-
         synchronized (KeyguardViewMediator.this) {
             mIsKeyguardExitAnimationCanceled = false;
             // Tell ActivityManager that we canceled the keyguard animation if
@@ -3516,13 +3413,6 @@
      * app transition before finishing the current RemoteAnimation, or the keyguard being re-shown).
      */
     private void handleCancelKeyguardExitAnimation() {
-        if (!KeyguardWmStateRefactor.isEnabled()
-                && mGoingAwayRequestedForUserId != mSelectedUserInteractor.getSelectedUserId()) {
-            Log.e(TAG, "Setting pendingLock = true due to userId mismatch. Requested: "
-                    + mGoingAwayRequestedForUserId + ", current: "
-                    + mSelectedUserInteractor.getSelectedUserId());
-            setPendingLock(true);
-        }
         if (mPendingLock) {
             Log.d(TAG, "#handleCancelKeyguardExitAnimation: keyguard exit animation cancelled. "
                     + "There's a pending lock, so we were cancelled because the device was locked "
@@ -3623,7 +3513,6 @@
         mSurfaceBehindRemoteAnimationRequested = true;
 
         if (ENABLE_NEW_KEYGUARD_SHELL_TRANSITIONS && !KeyguardWmStateRefactor.isEnabled()) {
-            mGoingAwayRequestedForUserId = mSelectedUserInteractor.getSelectedUserId();
             startKeyguardTransition(false /* keyguardShowing */, false /* aodShowing */);
             return;
         }
@@ -3644,9 +3533,6 @@
 
             if (!KeyguardWmStateRefactor.isEnabled()) {
                 // Handled in WmLockscreenVisibilityManager.
-                mGoingAwayRequestedForUserId = mSelectedUserInteractor.getSelectedUserId();
-                Log.d(TAG, "keyguardGoingAway requested for userId: "
-                        + mGoingAwayRequestedForUserId);
                 mActivityTaskManagerService.keyguardGoingAway(flags);
             }
         } catch (RemoteException e) {
@@ -4102,29 +3988,6 @@
         mUiBgExecutor.execute(mTrustManager::reportKeyguardShowingChanged);
     }
 
-    private void notifyLockNowCallback() {
-        List<LockNowCallback> callbacks;
-        synchronized (mLockNowCallbacks) {
-            callbacks = new ArrayList<LockNowCallback>(mLockNowCallbacks);
-            mLockNowCallbacks.clear();
-        }
-        Iterator<LockNowCallback> iter = callbacks.listIterator();
-        while (iter.hasNext()) {
-            LockNowCallback callback = iter.next();
-            iter.remove();
-            if (callback.mUserId != mSelectedUserInteractor.getSelectedUserId()) {
-                Log.i(TAG, "Not notifying lockNowCallback due to user mismatch");
-                continue;
-            }
-            Log.i(TAG, "Notifying lockNowCallback");
-            try {
-                callback.mRemoteCallback.sendResult(null);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Could not issue LockNowCallback sendResult", e);
-            }
-        }
-    }
-
     private void notifyTrustedChangedLocked(boolean trusted) {
         int size = mKeyguardStateCallbacks.size();
         for (int i = size - 1; i >= 0; i--) {
@@ -4289,14 +4152,4 @@
             }
         };
     }
-
-    private class LockNowCallback {
-        final int mUserId;
-        final IRemoteCallback mRemoteCallback;
-
-        LockNowCallback(int userId, IRemoteCallback remoteCallback) {
-            mUserId = userId;
-            mRemoteCallback = remoteCallback;
-        }
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java
index 908413d..97ad2d7 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java
@@ -41,6 +41,7 @@
 import com.android.systemui.broadcast.BroadcastDispatcher;
 import com.android.systemui.classifier.FalsingCollector;
 import com.android.systemui.classifier.FalsingModule;
+import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor;
 import com.android.systemui.communal.ui.viewmodel.CommunalTransitionViewModel;
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.dagger.qualifiers.Main;
@@ -180,6 +181,7 @@
             SelectedUserInteractor selectedUserInteractor,
             KeyguardInteractor keyguardInteractor,
             KeyguardTransitionBootInteractor transitionBootInteractor,
+            Lazy<CommunalSceneInteractor> communalSceneInteractor,
             WindowManagerOcclusionManager windowManagerOcclusionManager) {
         return new KeyguardViewMediator(
                 context,
@@ -231,6 +233,7 @@
                 selectedUserInteractor,
                 keyguardInteractor,
                 transitionBootInteractor,
+                communalSceneInteractor,
                 windowManagerOcclusionManager);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepository.kt
index 9718e75..a4b9135d 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepository.kt
@@ -69,16 +69,11 @@
 
     val previewClock: Flow<ClockController>
 
-    /** top of notifications without bcsmartspace in small clock settings */
-    val notificationDefaultTop: StateFlow<Float>
-
     val clockEventController: ClockEventController
 
     val shouldForceSmallClock: Boolean
 
     fun setClockSize(size: ClockSize)
-
-    fun setNotificationDefaultTop(top: Float)
 }
 
 @SysUISingleton
@@ -155,14 +150,6 @@
             clockRegistry.createCurrentClock()
         }
 
-    private val _notificationDefaultTop: MutableStateFlow<Float> = MutableStateFlow(0F)
-
-    override val notificationDefaultTop: StateFlow<Float> = _notificationDefaultTop.asStateFlow()
-
-    override fun setNotificationDefaultTop(top: Float) {
-        _notificationDefaultTop.value = top
-    }
-
     override val shouldForceSmallClock: Boolean
         get() =
             featureFlags.isEnabled(Flags.LOCKSCREEN_ENABLE_LANDSCAPE) &&
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt
index 4b36e7a..acb98ed 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt
@@ -17,7 +17,6 @@
 package com.android.systemui.keyguard.data.repository
 
 import android.graphics.Point
-import android.graphics.RectF
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.internal.widget.LockPatternUtils
 import com.android.keyguard.KeyguardUpdateMonitor
@@ -255,13 +254,6 @@
      */
     val isEncryptedOrLockdown: Flow<Boolean>
 
-    /** The top of shortcut in screen, used by wallpaper to find remaining space in lockscreen */
-    val shortcutAbsoluteTop: StateFlow<Float>
-
-    val notificationStackAbsoluteBottom: StateFlow<Float>
-
-    val wallpaperFocalAreaBounds: StateFlow<RectF>
-
     /**
      * Returns `true` if the keyguard is showing; `false` otherwise.
      *
@@ -328,13 +320,6 @@
      * otherwise.
      */
     fun isShowKeyguardWhenReenabled(): Boolean
-
-    fun setShortcutAbsoluteTop(top: Float)
-
-    /** Set bottom of notifications from notification stack */
-    fun setNotificationStackAbsoluteBottom(bottom: Float)
-
-    fun setWallpaperFocalAreaBounds(bounds: RectF)
 }
 
 /** Encapsulates application state for the keyguard. */
@@ -621,16 +606,6 @@
     private val _isQuickSettingsVisible = MutableStateFlow(false)
     override val isQuickSettingsVisible: Flow<Boolean> = _isQuickSettingsVisible.asStateFlow()
 
-    private val _shortcutAbsoluteTop = MutableStateFlow(0F)
-    override val shortcutAbsoluteTop = _shortcutAbsoluteTop.asStateFlow()
-
-    private val _notificationStackAbsoluteBottom = MutableStateFlow(0F)
-    override val notificationStackAbsoluteBottom = _notificationStackAbsoluteBottom.asStateFlow()
-
-    private val _wallpaperFocalAreaBounds = MutableStateFlow(RectF(0F, 0F, 0F, 0F))
-    override val wallpaperFocalAreaBounds: StateFlow<RectF> =
-        _wallpaperFocalAreaBounds.asStateFlow()
-
     init {
         val callback =
             object : KeyguardStateController.Callback {
@@ -705,18 +680,6 @@
         }
     }
 
-    override fun setShortcutAbsoluteTop(top: Float) {
-        _shortcutAbsoluteTop.value = top
-    }
-
-    override fun setNotificationStackAbsoluteBottom(bottom: Float) {
-        _notificationStackAbsoluteBottom.value = bottom
-    }
-
-    override fun setWallpaperFocalAreaBounds(bounds: RectF) {
-        _wallpaperFocalAreaBounds.value = bounds
-    }
-
     private fun dozeMachineStateToModel(state: DozeMachine.State): DozeStateModel {
         return when (state) {
             DozeMachine.State.UNINITIALIZED -> DozeStateModel.UNINITIALIZED
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt
index 126b375..4411437 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepositoryModule.kt
@@ -22,6 +22,8 @@
 import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepositoryImpl
 import com.android.systemui.keyguard.shared.transition.KeyguardTransitionAnimationCallback
 import com.android.systemui.keyguard.shared.transition.KeyguardTransitionAnimationCallbackDelegator
+import com.android.systemui.wallpapers.data.repository.WallpaperFocalAreaRepository
+import com.android.systemui.wallpapers.data.repository.WallpaperFocalAreaRepositoryImpl
 import dagger.Binds
 import dagger.Module
 
@@ -73,4 +75,9 @@
     fun keyguardSmartspaceRepository(
         impl: KeyguardSmartspaceRepositoryImpl
     ): KeyguardSmartspaceRepository
+
+    @Binds
+    fun bindWallpaperFocalAreaRepository(
+        impl: WallpaperFocalAreaRepositoryImpl
+    ): WallpaperFocalAreaRepository
 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt
index 2a1cb12..f7ed10f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt
@@ -24,6 +24,7 @@
 import android.os.Trace
 import android.util.Log
 import com.android.app.animation.Interpolators
+import com.android.app.tracing.coroutines.flow.traceAs
 import com.android.app.tracing.coroutines.withContextTraced as withContext
 import com.android.systemui.Flags.transitionRaceCondition
 import com.android.systemui.dagger.SysUISingleton
@@ -43,7 +44,6 @@
 import kotlinx.coroutines.flow.MutableSharedFlow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.asSharedFlow
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.filter
@@ -143,11 +143,12 @@
     @SuppressLint("SharedFlowCreation")
     private val _transitions =
         MutableSharedFlow<TransitionStep>(
-            replay = 2,
-            extraBufferCapacity = 20,
-            onBufferOverflow = BufferOverflow.DROP_OLDEST,
-        )
-    override val transitions = _transitions.asSharedFlow().distinctUntilChanged()
+                replay = 2,
+                extraBufferCapacity = 20,
+                onBufferOverflow = BufferOverflow.DROP_OLDEST,
+            )
+            .traceAs("KTR-transitions")
+    override val transitions = _transitions.distinctUntilChanged()
     private var lastStep: TransitionStep = TransitionStep()
     private var lastAnimator: ValueAnimator? = null
     private var animatorListener: AnimatorListenerAdapter? = null
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt
index eb96c92..6f5f662 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt
@@ -21,7 +21,6 @@
 import android.app.DreamManager
 import com.android.app.animation.Interpolators
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
@@ -155,9 +154,8 @@
                 .sample(
                     communalInteractor.isCommunalAvailable,
                     communalInteractor.shouldShowCommunal,
-                    communalSceneInteractor.isIdleOnCommunal,
                 )
-                .collect { (_, isCommunalAvailable, shouldShowCommunal, isIdleOnCommunal) ->
+                .collect { (_, isCommunalAvailable, shouldShowCommunal) ->
                     val isKeyguardOccludedLegacy = keyguardInteractor.isKeyguardOccluded.value
                     val primaryBouncerShowing = keyguardInteractor.primaryBouncerShowing.value
                     val isKeyguardGoingAway = keyguardInteractor.isKeyguardGoingAway.value
@@ -187,10 +185,6 @@
                         }
                     } else if (isKeyguardOccludedLegacy) {
                         startTransitionTo(KeyguardState.OCCLUDED)
-                    } else if (isIdleOnCommunal && !communalSceneKtfRefactor()) {
-                        if (!SceneContainerFlag.isEnabled) {
-                            startTransitionTo(KeyguardState.GLANCEABLE_HUB)
-                        }
                     } else if (
                         shouldTransitionToCommunal(shouldShowCommunal, isCommunalAvailable)
                     ) {
@@ -217,7 +211,6 @@
                 .sample(
                     communalInteractor.shouldShowCommunal,
                     communalInteractor.isCommunalAvailable,
-                    communalSceneInteractor.isIdleOnCommunal,
                     keyguardInteractor.biometricUnlockState,
                     wakeToGoneInteractor.canWakeDirectlyToGone,
                     keyguardInteractor.primaryBouncerShowing,
@@ -227,7 +220,6 @@
                         _,
                         shouldShowCommunal,
                         isCommunalAvailable,
-                        isIdleOnCommunal,
                         biometricUnlockState,
                         canWakeDirectlyToGone,
                         primaryBouncerShowing) ->
@@ -252,13 +244,6 @@
                                     ownerReason = "waking from dozing",
                                 )
                             }
-                        } else if (isIdleOnCommunal && !communalSceneKtfRefactor()) {
-                            if (!SceneContainerFlag.isEnabled) {
-                                startTransitionTo(
-                                    KeyguardState.GLANCEABLE_HUB,
-                                    ownerReason = "waking from dozing",
-                                )
-                            }
                         } else if (
                             shouldTransitionToCommunal(shouldShowCommunal, isCommunalAvailable)
                         ) {
@@ -276,15 +261,11 @@
         }
     }
 
-    private suspend fun transitionToGlanceableHub() {
-        if (communalSceneKtfRefactor()) {
-            communalSceneInteractor.snapToScene(
-                newScene = CommunalScenes.Communal,
-                loggingReason = "from dozing to hub",
-            )
-        } else {
-            startTransitionTo(KeyguardState.GLANCEABLE_HUB)
-        }
+    private fun transitionToGlanceableHub() {
+        communalSceneInteractor.snapToScene(
+            newScene = CommunalScenes.Communal,
+            loggingReason = "from dozing to hub",
+        )
     }
 
     /** Dismisses keyguard from the DOZING state. */
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractor.kt
index c1c509b..0fb98ff 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractor.kt
@@ -21,7 +21,6 @@
 import android.app.DreamManager
 import com.android.app.animation.Interpolators
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
@@ -59,7 +58,6 @@
     @Background bgDispatcher: CoroutineDispatcher,
     @Main mainDispatcher: CoroutineDispatcher,
     keyguardInteractor: KeyguardInteractor,
-    private val glanceableHubTransitions: GlanceableHubTransitions,
     private val communalInteractor: CommunalInteractor,
     private val communalSceneInteractor: CommunalSceneInteractor,
     private val communalSettingsInteractor: CommunalSettingsInteractor,
@@ -87,11 +85,7 @@
         listenForDreamingToLockscreenOrGone()
         listenForDreamingToAodOrDozing()
         listenForTransitionToCamera(scope, keyguardInteractor)
-        if (!communalSceneKtfRefactor()) {
-            listenForDreamingToGlanceableHub()
-        } else {
-            listenForDreamingToGlanceableHubFromPowerButton()
-        }
+        listenForDreamingToGlanceableHubFromPowerButton()
         listenForDreamingToPrimaryBouncer()
     }
 
@@ -105,18 +99,6 @@
         }
     }
 
-    private fun listenForDreamingToGlanceableHub() {
-        if (!communalSettingsInteractor.isCommunalFlagEnabled()) return
-        if (SceneContainerFlag.isEnabled) return
-        scope.launch("$TAG#listenForDreamingToGlanceableHub", mainDispatcher) {
-            glanceableHubTransitions.listenForGlanceableHubTransition(
-                transitionOwnerName = TAG,
-                fromState = KeyguardState.DREAMING,
-                toState = KeyguardState.GLANCEABLE_HUB,
-            )
-        }
-    }
-
     /**
      * Normally when pressing power button from the dream, the devices goes from DREAMING to DOZING,
      * then [FromDozingTransitionInteractor] handles the transition to GLANCEABLE_HUB. However if
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractor.kt
index c5d40a0..2eeba0f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractor.kt
@@ -19,7 +19,6 @@
 import android.animation.ValueAnimator
 import com.android.app.animation.Interpolators
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
 import com.android.systemui.communal.shared.model.CommunalScenes
@@ -31,12 +30,10 @@
 import com.android.systemui.keyguard.KeyguardWmStateRefactor
 import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository
 import com.android.systemui.keyguard.shared.model.KeyguardState
-import com.android.systemui.keyguard.shared.model.TransitionModeOnCanceled
 import com.android.systemui.power.domain.interactor.PowerInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.util.kotlin.BooleanFlowOperators.allOf
 import com.android.systemui.util.kotlin.BooleanFlowOperators.noneOf
-import com.android.systemui.util.kotlin.BooleanFlowOperators.not
 import com.android.systemui.util.kotlin.Utils.Companion.sampleFilter
 import com.android.systemui.util.kotlin.sample
 import javax.inject.Inject
@@ -45,10 +42,8 @@
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.FlowPreview
-import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.debounce
-import kotlinx.coroutines.withContext
 
 @OptIn(FlowPreview::class)
 @SysUISingleton
@@ -58,7 +53,6 @@
     @Background private val scope: CoroutineScope,
     @Main mainDispatcher: CoroutineDispatcher,
     @Background bgDispatcher: CoroutineDispatcher,
-    private val glanceableHubTransitions: GlanceableHubTransitions,
     private val communalSettingsInteractor: CommunalSettingsInteractor,
     keyguardInteractor: KeyguardInteractor,
     private val communalSceneInteractor: CommunalSceneInteractor,
@@ -83,9 +77,6 @@
         if (!communalSettingsInteractor.isCommunalFlagEnabled()) {
             return
         }
-        if (!communalSceneKtfRefactor()) {
-            listenForHubToLockscreenOrDreaming()
-        }
         listenForHubToDozing()
         listenForHubToPrimaryBouncer()
         listenForHubToAlternateBouncer()
@@ -108,30 +99,6 @@
         }
     }
 
-    /**
-     * Listens for the glanceable hub transition to lock screen and directly drives the keyguard
-     * transition.
-     */
-    private fun listenForHubToLockscreenOrDreaming() {
-        scope.launch("$TAG#listenForGlanceableHubToLockscreenOrDream") {
-            keyguardInteractor.isDreaming.collectLatest { dreaming ->
-                withContext(mainDispatcher) {
-                    val toState =
-                        if (dreaming) {
-                            KeyguardState.DREAMING
-                        } else {
-                            KeyguardState.LOCKSCREEN
-                        }
-                    glanceableHubTransitions.listenForGlanceableHubTransition(
-                        transitionOwnerName = TAG,
-                        fromState = KeyguardState.GLANCEABLE_HUB,
-                        toState = toState,
-                    )
-                }
-            }
-        }
-    }
-
     private fun listenForHubToPrimaryBouncer() {
         scope.launch("$TAG#listenForHubToPrimaryBouncer") {
             keyguardInteractor.primaryBouncerShowing
@@ -161,18 +128,11 @@
             powerInteractor.isAsleep
                 .filterRelevantKeyguardStateAnd { isAsleep -> isAsleep }
                 .collect {
-                    if (communalSceneKtfRefactor()) {
-                        communalSceneInteractor.snapToScene(
-                            newScene = CommunalScenes.Blank,
-                            loggingReason = "hub to dozing",
-                            keyguardState = KeyguardState.DOZING,
-                        )
-                    } else {
-                        startTransitionTo(
-                            toState = KeyguardState.DOZING,
-                            modeOnCanceled = TransitionModeOnCanceled.LAST_VALUE,
-                        )
-                    }
+                    communalSceneInteractor.snapToScene(
+                        newScene = CommunalScenes.Blank,
+                        loggingReason = "hub to dozing",
+                        keyguardState = KeyguardState.DOZING,
+                    )
                 }
         }
     }
@@ -202,21 +162,17 @@
                     .filterRelevantKeyguardStateAnd { onTop -> onTop }
                     .collect {
                         maybeStartTransitionToOccludedOrInsecureCamera { state, reason ->
-                            if (communalSceneKtfRefactor()) {
-                                communalSceneInteractor.changeScene(
-                                    newScene = CommunalScenes.Blank,
-                                    loggingReason = "hub to occluded (KeyguardWmStateRefactor)",
-                                    transitionKey = CommunalTransitionKeys.SimpleFade,
-                                    keyguardState = state,
-                                )
-                                null
-                            } else {
-                                startTransitionTo(state, ownerReason = reason)
-                            }
+                            communalSceneInteractor.changeScene(
+                                newScene = CommunalScenes.Blank,
+                                loggingReason = "hub to occluded (KeyguardWmStateRefactor)",
+                                transitionKey = CommunalTransitionKeys.SimpleFade,
+                                keyguardState = state,
+                            )
+                            null
                         }
                     }
             }
-        } else if (communalSceneKtfRefactor()) {
+        } else {
             scope.launch {
                 combine(
                         keyguardInteractor.isKeyguardOccluded,
@@ -248,56 +204,40 @@
                         )
                     }
             }
-        } else {
-            scope.launch {
-                allOf(keyguardInteractor.isKeyguardOccluded, not(keyguardInteractor.isDreaming))
-                    .filterRelevantKeyguardStateAnd { isOccludedAndNotDreaming ->
-                        isOccludedAndNotDreaming
-                    }
-                    .collect { _ -> startTransitionTo(KeyguardState.OCCLUDED) }
-            }
         }
     }
 
     private fun listenForHubToGone() {
         if (SceneContainerFlag.isEnabled) return
-        if (communalSceneKtfRefactor()) {
-            scope.launch {
-                allOf(
-                        keyguardInteractor.isKeyguardGoingAway,
-                        // TODO(b/327225415): Handle edit mode opening here to avoid going to GONE
-                        // state until after edit mode is ready to be shown.
-                        noneOf(
-                            // When launching activities from widgets on the hub, we wait to change
-                            // scenes until the activity launch is complete.
-                            communalSceneInteractor.isLaunchingWidget
-                        ),
-                    )
-                    .filterRelevantKeyguardStateAnd { isKeyguardGoingAway -> isKeyguardGoingAway }
-                    .sample(communalSceneInteractor.editModeState, ::Pair)
-                    .collect { (_, editModeState) ->
-                        if (
-                            editModeState == EditModeState.STARTING ||
-                                editModeState == EditModeState.SHOWING
-                        ) {
-                            // Don't change scenes here as that is handled by the edit activity.
-                            startTransitionTo(KeyguardState.GONE)
-                        } else {
-                            communalSceneInteractor.changeScene(
-                                newScene = CommunalScenes.Blank,
-                                loggingReason = "hub to gone",
-                                transitionKey = CommunalTransitionKeys.SimpleFade,
-                                keyguardState = KeyguardState.GONE,
-                            )
-                        }
+        scope.launch {
+            allOf(
+                    keyguardInteractor.isKeyguardGoingAway,
+                    // TODO(b/327225415): Handle edit mode opening here to avoid going to GONE
+                    // state until after edit mode is ready to be shown.
+                    noneOf(
+                        // When launching activities from widgets on the hub, we wait to change
+                        // scenes until the activity launch is complete.
+                        communalSceneInteractor.isLaunchingWidget
+                    ),
+                )
+                .filterRelevantKeyguardStateAnd { isKeyguardGoingAway -> isKeyguardGoingAway }
+                .sample(communalSceneInteractor.editModeState, ::Pair)
+                .collect { (_, editModeState) ->
+                    if (
+                        editModeState == EditModeState.STARTING ||
+                            editModeState == EditModeState.SHOWING
+                    ) {
+                        // Don't change scenes here as that is handled by the edit activity.
+                        startTransitionTo(KeyguardState.GONE)
+                    } else {
+                        communalSceneInteractor.changeScene(
+                            newScene = CommunalScenes.Blank,
+                            loggingReason = "hub to gone",
+                            transitionKey = CommunalTransitionKeys.SimpleFade,
+                            keyguardState = KeyguardState.GONE,
+                        )
                     }
-            }
-        } else {
-            scope.launch {
-                keyguardInteractor.isKeyguardGoingAway
-                    .filterRelevantKeyguardStateAnd { isKeyguardGoingAway -> isKeyguardGoingAway }
-                    .collect { startTransitionTo(KeyguardState.GONE) }
-            }
+                }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt
index bd9836f..ca6a790 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt
@@ -34,9 +34,6 @@
 import kotlin.time.Duration.Companion.milliseconds
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.distinctUntilChanged
-import kotlinx.coroutines.flow.filter
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 @SysUISingleton
 class FromGoneTransitionInteractor
@@ -52,7 +49,7 @@
     powerInteractor: PowerInteractor,
     private val communalSceneInteractor: CommunalSceneInteractor,
     keyguardOcclusionInteractor: KeyguardOcclusionInteractor,
-    private val keyguardLockWhileAwakeInteractor: KeyguardLockWhileAwakeInteractor,
+    private val keyguardShowWhileAwakeInteractor: KeyguardShowWhileAwakeInteractor,
 ) :
     TransitionInteractor(
         fromState = KeyguardState.GONE,
@@ -101,7 +98,7 @@
     private fun listenForGoneToLockscreenOrHubOrOccluded() {
         if (KeyguardWmStateRefactor.isEnabled) {
             scope.launch {
-                keyguardLockWhileAwakeInteractor.lockWhileAwakeEvents
+                keyguardShowWhileAwakeInteractor.showWhileAwakeEvents
                     .filterRelevantKeyguardState()
                     .sample(communalSceneInteractor.isIdleOnCommunalNotEditMode, ::Pair)
                     .collect { (lockReason, idleOnCommunal) ->
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt
index cf712f1..a01dc02 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt
@@ -20,7 +20,6 @@
 import android.util.MathUtils
 import com.android.app.animation.Interpolators
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
@@ -69,7 +68,6 @@
     keyguardInteractor: KeyguardInteractor,
     private val shadeRepository: ShadeRepository,
     powerInteractor: PowerInteractor,
-    private val glanceableHubTransitions: GlanceableHubTransitions,
     private val communalSettingsInteractor: CommunalSettingsInteractor,
     private val communalInteractor: CommunalInteractor,
     private val communalSceneInteractor: CommunalSceneInteractor,
@@ -96,9 +94,6 @@
         listenForLockscreenToPrimaryBouncerDragging()
         listenForLockscreenToAlternateBouncer()
         listenForLockscreenTransitionToCamera()
-        if (!communalSceneKtfRefactor()) {
-            listenForLockscreenToGlanceableHub()
-        }
         if (communalSettingsInteractor.isV2FlagEnabled()) {
             listenForLockscreenToGlanceableHubV2()
         }
@@ -358,24 +353,6 @@
         }
     }
 
-    /**
-     * Listens for transition from glanceable hub back to lock screen and directly drives the
-     * keyguard transition.
-     */
-    private fun listenForLockscreenToGlanceableHub() {
-        if (SceneContainerFlag.isEnabled) return
-        if (!communalSettingsInteractor.isCommunalFlagEnabled()) {
-            return
-        }
-        scope.launch(context = mainDispatcher) {
-            glanceableHubTransitions.listenForGlanceableHubTransition(
-                transitionOwnerName = TAG,
-                fromState = KeyguardState.LOCKSCREEN,
-                toState = KeyguardState.GLANCEABLE_HUB,
-            )
-        }
-    }
-
     private fun listenForLockscreenToGlanceableHubV2() {
         scope.launch {
             communalInteractor.shouldShowCommunal
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt
index 284298d..a2cfdc1 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt
@@ -19,7 +19,6 @@
 import android.animation.ValueAnimator
 import com.android.app.animation.Interpolators
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.Flags.restartDreamOnUnocclude
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
@@ -143,15 +142,11 @@
             startTransitionTo(KeyguardState.DREAMING)
         } else if (isIdleOnCommunal || showCommunalFromOccluded) {
             if (SceneContainerFlag.isEnabled) return
-            if (communalSceneKtfRefactor()) {
-                communalSceneInteractor.changeScene(
-                    newScene = CommunalScenes.Communal,
-                    loggingReason = "occluded to hub",
-                    transitionKey = CommunalTransitionKeys.SimpleFade,
-                )
-            } else {
-                startTransitionTo(KeyguardState.GLANCEABLE_HUB)
-            }
+            communalSceneInteractor.changeScene(
+                newScene = CommunalScenes.Communal,
+                loggingReason = "occluded to hub",
+                transitionKey = CommunalTransitionKeys.SimpleFade,
+            )
         } else {
             startTransitionTo(KeyguardState.LOCKSCREEN)
         }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromPrimaryBouncerTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromPrimaryBouncerTransitionInteractor.kt
index 402c152..30c1aac 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromPrimaryBouncerTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromPrimaryBouncerTransitionInteractor.kt
@@ -18,8 +18,8 @@
 
 import android.animation.ValueAnimator
 import android.util.Log
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.keyguard.KeyguardSecurityModel
-import com.android.systemui.Flags.communalSceneKtfRefactor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
 import com.android.systemui.communal.shared.model.CommunalScenes
 import com.android.systemui.dagger.SysUISingleton
@@ -35,7 +35,6 @@
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.user.domain.interactor.SelectedUserInteractor
 import com.android.systemui.util.kotlin.Utils.Companion.sample
-import com.android.systemui.util.kotlin.sample
 import com.android.wm.shell.shared.animation.Interpolators
 import javax.inject.Inject
 import kotlin.time.Duration.Companion.milliseconds
@@ -45,7 +44,6 @@
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.onStart
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 @SysUISingleton
 class FromPrimaryBouncerTransitionInteractor
@@ -173,8 +171,7 @@
         // If the hub is showing, and we are not animating a widget launch nor transitioning to
         // edit mode, then close the hub immediately.
         if (
-            communalSceneKtfRefactor() &&
-                communalSceneInteractor.isIdleOnCommunal.value &&
+            communalSceneInteractor.isIdleOnCommunal.value &&
                 !communalSceneInteractor.isLaunchingWidget.value &&
                 communalSceneInteractor.editModeState.value == null
         ) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/GlanceableHubTransitions.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/GlanceableHubTransitions.kt
deleted file mode 100644
index bde0f56..0000000
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/GlanceableHubTransitions.kt
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.keyguard.domain.interactor
-
-import android.animation.ValueAnimator
-import com.android.app.animation.Interpolators
-import com.android.systemui.communal.domain.interactor.CommunalInteractor
-import com.android.systemui.communal.domain.model.CommunalTransitionProgressModel
-import com.android.systemui.communal.shared.model.CommunalScenes
-import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository
-import com.android.systemui.keyguard.shared.model.KeyguardState
-import com.android.systemui.keyguard.shared.model.TransitionInfo
-import com.android.systemui.keyguard.shared.model.TransitionState
-import com.android.systemui.scene.shared.flag.SceneContainerFlag
-import com.android.systemui.util.kotlin.sample
-import java.util.UUID
-import javax.inject.Inject
-
-class GlanceableHubTransitions
-@Inject
-constructor(
-    private val transitionInteractor: KeyguardTransitionInteractor,
-    private val transitionRepository: KeyguardTransitionRepository,
-    private val communalInteractor: CommunalInteractor,
-) {
-    /**
-     * Listens for the glanceable hub transition to the specified scene and directly drives the
-     * keyguard transition between the lockscreen and the hub.
-     *
-     * The glanceable hub transition progress is used as the source of truth as it cannot be driven
-     * externally. The progress is used for both transitions caused by user touch input or by
-     * programmatic changes.
-     */
-    suspend fun listenForGlanceableHubTransition(
-        transitionOwnerName: String,
-        fromState: KeyguardState,
-        toState: KeyguardState,
-    ) {
-        if (SceneContainerFlag.isEnabled) return
-        val toScene =
-            if (fromState == KeyguardState.GLANCEABLE_HUB) {
-                CommunalScenes.Blank
-            } else {
-                CommunalScenes.Communal
-            }
-        var transitionId: UUID? = null
-
-        communalInteractor
-            .transitionProgressToScene(toScene)
-            .sample(
-                transitionInteractor.startedKeyguardTransitionStep,
-                ::Pair,
-            )
-            .collect { (transitionProgress, lastStartedStep) ->
-                val id = transitionId
-                if (id == null) {
-                    // No transition started.
-                    if (
-                        transitionProgress is CommunalTransitionProgressModel.Transition &&
-                            lastStartedStep.to == fromState
-                    ) {
-                        transitionId =
-                            transitionRepository.startTransition(
-                                TransitionInfo(
-                                    ownerName = transitionOwnerName,
-                                    from = fromState,
-                                    to = toState,
-                                    animator = null, // transition will be manually controlled
-                                )
-                            )
-                    }
-                } else {
-                    if (lastStartedStep.to != toState) {
-                        return@collect
-                    }
-                    // An existing `id` means a transition is started, and calls to
-                    // `updateTransition` will control it until FINISHED or CANCELED
-                    val nextState: TransitionState
-                    val progressFraction: Float
-                    when (transitionProgress) {
-                        is CommunalTransitionProgressModel.Idle -> {
-                            if (transitionProgress.scene == toScene) {
-                                nextState = TransitionState.FINISHED
-                                progressFraction = 1f
-                            } else {
-                                nextState = TransitionState.CANCELED
-                                progressFraction = 0f
-                            }
-                        }
-                        is CommunalTransitionProgressModel.Transition -> {
-                            nextState = TransitionState.RUNNING
-                            progressFraction = transitionProgress.progress
-                        }
-                        is CommunalTransitionProgressModel.OtherTransition -> {
-                            // Shouldn't happen but if another transition starts during the
-                            // current one, mark the current one as canceled.
-                            nextState = TransitionState.CANCELED
-                            progressFraction = 0f
-                        }
-                    }
-                    transitionRepository.updateTransition(
-                        id,
-                        progressFraction,
-                        nextState,
-                    )
-
-                    if (
-                        nextState == TransitionState.CANCELED ||
-                            nextState == TransitionState.FINISHED
-                    ) {
-                        transitionId = null
-                    }
-
-                    // If canceled, just put the state back.
-                    if (nextState == TransitionState.CANCELED) {
-                        transitionRepository.startTransition(
-                            TransitionInfo(
-                                ownerName = transitionOwnerName,
-                                from = toState,
-                                to = fromState,
-                                animator =
-                                    ValueAnimator().apply {
-                                        interpolator = Interpolators.LINEAR
-                                        duration = 0
-                                    }
-                            )
-                        )
-                    }
-                }
-            }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt
index ab5fdd6..673fa97 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt
@@ -36,7 +36,10 @@
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor
 import com.android.systemui.statusbar.notification.domain.interactor.HeadsUpNotificationInteractor
+import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUiAod
+import com.android.systemui.statusbar.notification.promoted.domain.interactor.AODPromotedNotificationInteractor
 import com.android.systemui.util.kotlin.combine
+import com.android.systemui.wallpapers.domain.interactor.WallpaperFocalAreaInteractor
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
@@ -44,6 +47,7 @@
 import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.stateIn
 
@@ -56,12 +60,14 @@
 constructor(
     mediaCarouselInteractor: MediaCarouselInteractor,
     activeNotificationsInteractor: ActiveNotificationsInteractor,
+    aodPromotedNotificationInteractor: AODPromotedNotificationInteractor,
     shadeInteractor: ShadeInteractor,
     keyguardInteractor: KeyguardInteractor,
     keyguardTransitionInteractor: KeyguardTransitionInteractor,
     headsUpNotificationInteractor: HeadsUpNotificationInteractor,
     @Application private val applicationScope: CoroutineScope,
     val keyguardClockRepository: KeyguardClockRepository,
+    private val wallpaperFocalAreaInteractor: WallpaperFocalAreaInteractor,
 ) {
     private val isOnAod: Flow<Boolean> =
         keyguardTransitionInteractor.currentKeyguardState.map { it == KeyguardState.AOD }
@@ -78,11 +84,30 @@
 
     var clock: ClockController? by keyguardClockRepository.clockEventController::clock
 
+    private val isAodPromotedNotificationPresent: Flow<Boolean> =
+        if (PromotedNotificationUiAod.isEnabled) {
+            aodPromotedNotificationInteractor.isPresent
+        } else {
+            flowOf(false)
+        }
+
+    private val areAnyNotificationsPresent: Flow<Boolean> =
+        if (PromotedNotificationUiAod.isEnabled) {
+            combine(
+                activeNotificationsInteractor.areAnyNotificationsPresent,
+                isAodPromotedNotificationPresent,
+            ) { areAnyNotificationsPresent, isAodPromotedNotificationPresent ->
+                areAnyNotificationsPresent || isAodPromotedNotificationPresent
+            }
+        } else {
+            activeNotificationsInteractor.areAnyNotificationsPresent
+        }
+
     val clockSize: StateFlow<ClockSize> =
         if (SceneContainerFlag.isEnabled) {
             combine(
                     shadeInteractor.isShadeLayoutWide,
-                    activeNotificationsInteractor.areAnyNotificationsPresent,
+                    areAnyNotificationsPresent,
                     mediaCarouselInteractor.hasActiveMediaOrRecommendation,
                     keyguardInteractor.isDozing,
                     isOnAod,
@@ -108,23 +133,32 @@
         if (SceneContainerFlag.isEnabled) {
             combine(
                 shadeInteractor.isShadeLayoutWide,
-                activeNotificationsInteractor.areAnyNotificationsPresent,
+                areAnyNotificationsPresent,
+                isAodPromotedNotificationPresent,
                 isOnAod,
                 headsUpNotificationInteractor.isHeadsUpOrAnimatingAway,
                 keyguardInteractor.isDozing,
-            ) { isShadeLayoutWide, areAnyNotificationsPresent, isOnAod, isHeadsUp, isDozing ->
+            ) {
+                isShadeLayoutWide,
+                areAnyNotificationsPresent,
+                isAodPromotedNotificationPresent,
+                isOnAod,
+                isHeadsUp,
+                isDozing ->
                 when {
                     !isShadeLayoutWide -> true
                     !areAnyNotificationsPresent -> true
                     // Pulsing notification appears on the right. Move clock left to avoid overlap.
                     isHeadsUp && isDozing -> false
+                    isAodPromotedNotificationPresent -> false
                     else -> isOnAod
                 }
             }
         } else {
             combine(
                     shadeInteractor.isShadeLayoutWide,
-                    activeNotificationsInteractor.areAnyNotificationsPresent,
+                    areAnyNotificationsPresent,
+                    isAodPromotedNotificationPresent,
                     keyguardInteractor.dozeTransitionModel,
                     keyguardTransitionInteractor.startedKeyguardTransitionStep.map { it.to == AOD },
                     keyguardTransitionInteractor.startedKeyguardTransitionStep.map {
@@ -138,6 +172,7 @@
                 ) {
                     isShadeLayoutWide,
                     areAnyNotificationsPresent,
+                    isAodPromotedNotificationPresent,
                     dozeTransitionModel,
                     startedToAod,
                     startedToLockScreen,
@@ -154,7 +189,7 @@
                         // use null to skip emitting wrong value
                         startedToGone || startedToDoze -> null
                         startedToLockScreen -> !areAnyNotificationsPresent
-                        startedToAod -> !isPulsing
+                        startedToAod -> !(isPulsing || isAodPromotedNotificationPresent)
                         else -> true
                     }
                 }
@@ -175,6 +210,14 @@
                 }
         }
 
+    fun handleFidgetTap(x: Float, y: Float) {
+        if (selectedClockSize.value == ClockSizeSetting.DYNAMIC) {
+            clockEventController.handleFidgetTap(x, y)
+        } else {
+            wallpaperFocalAreaInteractor.setTapPosition(x, y)
+        }
+    }
+
     fun animateFoldToAod(foldFraction: Float) {
         clock?.let { clock ->
             clock.smallClock.animations.fold(foldFraction)
@@ -183,6 +226,6 @@
     }
 
     fun setNotificationStackDefaultTop(top: Float) {
-        keyguardClockRepository.setNotificationDefaultTop(top)
+        wallpaperFocalAreaInteractor.setNotificationDefaultTop(top)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt
index 3652c17..f84d29f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt
@@ -52,6 +52,7 @@
 import com.android.systemui.shade.data.repository.ShadeRepository
 import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine
 import com.android.systemui.util.kotlin.sample
+import com.android.systemui.wallpapers.data.repository.WallpaperFocalAreaRepository
 import javax.inject.Inject
 import javax.inject.Provider
 import kotlinx.coroutines.CoroutineScope
@@ -85,6 +86,7 @@
 constructor(
     private val repository: KeyguardRepository,
     bouncerRepository: KeyguardBouncerRepository,
+    private val wallpaperFocalAreaRepository: WallpaperFocalAreaRepository,
     @ShadeDisplayAware configurationInteractor: ConfigurationInteractor,
     shadeRepository: ShadeRepository,
     private val keyguardTransitionInteractor: KeyguardTransitionInteractor,
@@ -532,7 +534,7 @@
     }
 
     fun setShortcutAbsoluteTop(top: Float) {
-        repository.setShortcutAbsoluteTop(top)
+        wallpaperFocalAreaRepository.setShortcutAbsoluteTop(top)
     }
 
     fun setIsKeyguardGoingAway(isGoingAway: Boolean) {
@@ -540,7 +542,7 @@
     }
 
     fun setNotificationStackAbsoluteBottom(bottom: Float) {
-        repository.setNotificationStackAbsoluteBottom(bottom)
+        wallpaperFocalAreaRepository.setNotificationStackAbsoluteBottom(bottom)
     }
 
     suspend fun hydrateTableLogBuffer(tableLogBuffer: TableLogBuffer) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
deleted file mode 100644
index 9ed53ea..0000000
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.keyguard.domain.interactor
-
-import android.annotation.SuppressLint
-import android.os.Bundle
-import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.dagger.qualifiers.Background
-import javax.inject.Inject
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.launch
-
-/**
- * Emitted when we receive a [KeyguardServiceLockNowInteractor.onKeyguardServiceDoKeyguardTimeout]
- * call.
- */
-data class KeyguardLockNowEvent(val options: Bundle?)
-
-/**
- * Logic around requests by [KeyguardService] to lock the device right now, even though the device
- * is awake and not going to sleep.
- *
- * This can happen if WM#lockNow() is called, or if the screen is forced to stay awake but the lock
- * timeout elapses.
- *
- * This is not the only way for the device to lock while the screen is on. The other cases, which do
- * not directly involve [KeyguardService], are handled in [KeyguardLockWhileAwakeInteractor].
- */
-@SysUISingleton
-class KeyguardServiceLockNowInteractor
-@Inject
-constructor(@Background val backgroundScope: CoroutineScope) {
-
-    /**
-     * Emits whenever [KeyguardService] receives a call that indicates we should lock the device
-     * right now, even though the device is awake and not going to sleep.
-     *
-     * WARNING: This is only one of multiple reasons the device might need to lock while not going
-     * to sleep. Unless you're dealing with keyguard internals that specifically need to know that
-     * we're locking due to a call to doKeyguardTimeout, use
-     * [KeyguardLockWhileAwakeInteractor.lockWhileAwakeEvents].
-     *
-     * This is fundamentally an event flow, hence the SharedFlow.
-     */
-    @SuppressLint("SharedFlowCreation")
-    val lockNowEvents: MutableSharedFlow<KeyguardLockNowEvent> = MutableSharedFlow()
-
-    /**
-     * Called by [KeyguardService] when it receives a doKeyguardTimeout() call. This indicates that
-     * the device locked while the screen was on.
-     *
-     * [options] appears to be no longer used, but we'll keep it in this interactor in case that
-     * turns out not to be true.
-     */
-    fun onKeyguardServiceDoKeyguardTimeout(options: Bundle?) {
-        backgroundScope.launch { lockNowEvents.emit(KeyguardLockNowEvent(options = options)) }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
new file mode 100644
index 0000000..b55bb38
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.keyguard.domain.interactor
+
+import android.annotation.SuppressLint
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Background
+import javax.inject.Inject
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.launch
+
+/**
+ * Logic around requests by [KeyguardService] to show keyguard right now, even though the device is
+ * awake and not going to sleep.
+ *
+ * This can happen if WM#lockNow() is called, if KeyguardService#showDismissibleKeyguard is called
+ * because we're folding with "continue using apps on fold" set to "swipe up to continue", or if the
+ * screen is forced to stay awake but the lock timeout elapses.
+ *
+ * This is not the only way for the device to lock while the screen is on. The other cases, which do
+ * not directly involve [KeyguardService], are handled in [KeyguardShowWhileAwakeInteractor].
+ */
+@SysUISingleton
+class KeyguardServiceShowLockscreenInteractor
+@Inject
+constructor(@Background val backgroundScope: CoroutineScope) {
+
+    /**
+     * Emits whenever [KeyguardService] receives a call that indicates we should show the lockscreen
+     * right now, even though the device is awake and not going to sleep.
+     *
+     * WARNING: This is only one of multiple reasons the keyguard might need to show while not going
+     * to sleep. Unless you're dealing with keyguard internals that specifically need to know that
+     * we're locking due to a call to doKeyguardTimeout or showDismissibleKeyguard, use
+     * [KeyguardShowWhileAwakeInteractor.showWhileAwakeEvents].
+     *
+     * This is fundamentally an event flow, hence the SharedFlow.
+     */
+    @SuppressLint("SharedFlowCreation")
+    val showNowEvents: MutableSharedFlow<ShowWhileAwakeReason> = MutableSharedFlow()
+
+    /**
+     * Called by [KeyguardService] when it receives a doKeyguardTimeout() call. This indicates that
+     * the device locked while the screen was on.
+     */
+    fun onKeyguardServiceDoKeyguardTimeout() {
+        backgroundScope.launch {
+            showNowEvents.emit(ShowWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON)
+        }
+    }
+
+    /**
+     * Called by [KeyguardService] when it receives a showDismissibleKeyguard() call. This indicates
+     * that the device was folded with settings configured to show a dismissible keyguard on the
+     * outer display.
+     */
+    fun onKeyguardServiceShowDismissibleKeyguard() {
+        backgroundScope.launch {
+            showNowEvents.emit(ShowWhileAwakeReason.FOLDED_WITH_SWIPE_UP_TO_CONTINUE)
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractor.kt
similarity index 66%
rename from packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractor.kt
rename to packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractor.kt
index ce84e71..a8000a56 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractor.kt
@@ -26,8 +26,11 @@
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.merge
 
-/** The reason we're locking while awake, used for logging. */
-enum class LockWhileAwakeReason(private val logReason: String) {
+/** The reason we're showing lockscreen while awake, used for logging. */
+enum class ShowWhileAwakeReason(private val logReason: String) {
+    FOLDED_WITH_SWIPE_UP_TO_CONTINUE(
+        "Folded with continue using apps on fold set to 'swipe up to continue'."
+    ),
     LOCKDOWN("Lockdown initiated."),
     KEYGUARD_REENABLED(
         "Keyguard was re-enabled. We weren't unlocked when it was disabled, " +
@@ -43,60 +46,67 @@
 }
 
 /**
- * Logic around cases where the device locks while still awake (transitioning from GONE ->
+ * Logic around cases where the we show the lockscreen while still awake (transition from GONE ->
  * LOCKSCREEN), vs. the more common cases of a power button press or screen timeout, which result in
  * the device going to sleep.
  *
+ * This does not necessarily mean we lock the device (which does not happen if showing the
+ * lockscreen is triggered by [KeyguardService.showDismissibleKeyguard]). We'll show keyguard here
+ * and authentication logic will decide if that keyguard is dismissible or not.
+ *
  * This is possible in the following situations:
  * - The user initiates lockdown from the power menu.
  * - Theft detection, etc. has requested lockdown.
  * - The keyguard was disabled while visible, and has now been re-enabled, so it's re-showing.
  * - Someone called WM#lockNow().
  * - The screen timed out, but an activity with FLAG_ALLOW_LOCK_WHILE_SCREEN_ON is on top.
+ * - A foldable is folded with "Continue using apps on fold" set to "Swipe up to continue" (if set
+ *   to "never", then lockscreen will be shown when the device goes to sleep, which is not tnohe
+ *   concern of this interactor).
  */
 @SysUISingleton
-class KeyguardLockWhileAwakeInteractor
+class KeyguardShowWhileAwakeInteractor
 @Inject
 constructor(
     biometricSettingsRepository: BiometricSettingsRepository,
     keyguardEnabledInteractor: KeyguardEnabledInteractor,
-    keyguardServiceLockNowInteractor: KeyguardServiceLockNowInteractor,
+    keyguardServiceShowLockscreenInteractor: KeyguardServiceShowLockscreenInteractor,
 ) {
 
     /** Emits whenever the current user is in lockdown mode. */
-    private val inLockdown: Flow<LockWhileAwakeReason> =
+    private val inLockdown: Flow<ShowWhileAwakeReason> =
         biometricSettingsRepository.isCurrentUserInLockdown
             .distinctUntilChanged()
             .filter { inLockdown -> inLockdown }
-            .map { LockWhileAwakeReason.LOCKDOWN }
+            .map { ShowWhileAwakeReason.LOCKDOWN }
 
     /**
      * Emits whenever the keyguard is re-enabled, and we need to return to lockscreen due to the
      * device being locked when the keyguard was originally disabled.
      */
-    private val keyguardReenabled: Flow<LockWhileAwakeReason> =
+    private val keyguardReenabled: Flow<ShowWhileAwakeReason> =
         keyguardEnabledInteractor.isKeyguardEnabled
             .filter { enabled -> enabled }
             .sample(keyguardEnabledInteractor.showKeyguardWhenReenabled)
             .filter { reshow -> reshow }
-            .map { LockWhileAwakeReason.KEYGUARD_REENABLED }
+            .map { ShowWhileAwakeReason.KEYGUARD_REENABLED }
 
-    /** Emits whenever we should lock while the screen is on, for any reason. */
-    val lockWhileAwakeEvents: Flow<LockWhileAwakeReason> =
+    /** Emits whenever we should show lockscreen while the screen is on, for any reason. */
+    val showWhileAwakeEvents: Flow<ShowWhileAwakeReason> =
         merge(
             // We're in lockdown, and the keyguard is enabled. If the keyguard is disabled, the
             // lockdown button is hidden in the UI, but it's still possible to trigger lockdown in
             // tests.
             inLockdown
                 .filter { keyguardEnabledInteractor.isKeyguardEnabledAndNotSuppressed() }
-                .map { LockWhileAwakeReason.LOCKDOWN },
+                .map { ShowWhileAwakeReason.LOCKDOWN },
             // The keyguard was re-enabled, and it was showing when it was originally disabled.
             // Tests currently expect that if the keyguard is re-enabled, it will show even if it's
             // suppressed, so we don't check for isKeyguardEnabledAndNotSuppressed() on this flow.
-            keyguardReenabled.map { LockWhileAwakeReason.KEYGUARD_REENABLED },
-            // KeyguardService says we need to lock now, and the lockscreen is enabled.
-            keyguardServiceLockNowInteractor.lockNowEvents
-                .filter { keyguardEnabledInteractor.isKeyguardEnabledAndNotSuppressed() }
-                .map { LockWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON },
+            keyguardReenabled.map { ShowWhileAwakeReason.KEYGUARD_REENABLED },
+            // KeyguardService says we need to show now, and the lockscreen is enabled.
+            keyguardServiceShowLockscreenInteractor.showNowEvents.filter {
+                keyguardEnabledInteractor.isKeyguardEnabledAndNotSuppressed()
+            },
         )
 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt
index 58fb423..d60c317 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt
@@ -19,6 +19,7 @@
 
 import android.annotation.SuppressLint
 import android.util.Log
+import com.android.app.tracing.coroutines.flow.traceAs
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.compose.animation.scene.SceneKey
@@ -90,6 +91,7 @@
                     onBufferOverflow = BufferOverflow.DROP_OLDEST,
                 )
                 .also { it.tryEmit(0f) }
+                .traceAs("KTF-${state.name}")
         }
     }
 
@@ -222,10 +224,11 @@
 
         val flow: Flow<TransitionStep> =
             transitionMap.getOrPut(mappedEdge) {
-                MutableSharedFlow(
-                    extraBufferCapacity = 10,
-                    onBufferOverflow = BufferOverflow.DROP_OLDEST,
-                )
+                MutableSharedFlow<TransitionStep>(
+                        extraBufferCapacity = 10,
+                        onBufferOverflow = BufferOverflow.DROP_OLDEST,
+                    )
+                    .traceAs("KTF-${mappedEdge.from}-to-${mappedEdge.to}")
             }
 
         if (!SceneContainerFlag.isEnabled) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractor.kt
index 3bdc32d..ef1fe49 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractor.kt
@@ -52,6 +52,7 @@
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.distinctUntilChangedBy
+import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.merge
 import kotlinx.coroutines.flow.onStart
@@ -89,7 +90,7 @@
     private val systemSettings: SystemSettings,
     private val selectedUserInteractor: SelectedUserInteractor,
     keyguardEnabledInteractor: KeyguardEnabledInteractor,
-    keyguardServiceLockNowInteractor: KeyguardServiceLockNowInteractor,
+    keyguardServiceShowLockscreenInteractor: KeyguardServiceShowLockscreenInteractor,
     keyguardInteractor: KeyguardInteractor,
 ) {
 
@@ -100,7 +101,15 @@
      * depend on that behavior, so for now, we'll replicate it here.
      */
     private val shouldSuppressKeyguard =
-        merge(powerInteractor.isAwake, keyguardServiceLockNowInteractor.lockNowEvents)
+        merge(
+                powerInteractor.isAwake,
+                // Update only when doKeyguardTimeout is called, not on fold or other events, to
+                // match
+                // pre-existing logic.
+                keyguardServiceShowLockscreenInteractor.showNowEvents.filter {
+                    it == ShowWhileAwakeReason.KEYGUARD_TIMEOUT_WHILE_SCREEN_ON
+                },
+            )
             .map { keyguardEnabledInteractor.isKeyguardSuppressed() }
             // Default to false, so that flows that combine this one emit prior to the first
             // wakefulness emission.
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt
index 382436c..5f82102 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt
@@ -215,6 +215,7 @@
                 animator = null,
                 modeOnCanceled = TransitionModeOnCanceled.RESET,
             )
+        repository.nextLockscreenTargetState.value = DEFAULT_STATE
         startTransition(newTransition)
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlow.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlow.kt
index 5c03d65..c5127a5 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlow.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/KeyguardTransitionAnimationFlow.kt
@@ -66,11 +66,14 @@
          * range. This function maps the [startTime] and [duration] into [0, 1], when this subset is
          * valid.
          *
+         * Note that [onStep] accepts a null return value. When null, no animation information will
+         * be emitted, effectively saying "do not change the value on this frame"
+         *
          * Note that [onCancel] isn't used when the scene framework is enabled.
          */
         fun sharedFlow(
-            duration: Duration,
-            onStep: (Float) -> Float,
+            duration: Duration = transitionDuration,
+            onStep: (Float) -> Float?,
             startTime: Duration = 0.milliseconds,
             onStart: (() -> Unit)? = null,
             onCancel: (() -> Float)? = null,
@@ -102,7 +105,7 @@
          */
         fun sharedFlowWithState(
             duration: Duration,
-            onStep: (Float) -> Float,
+            onStep: (Float) -> Float?,
             startTime: Duration = 0.milliseconds,
             onStart: (() -> Unit)? = null,
             onCancel: (() -> Float)? = null,
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt
index fa64fc0..b8b0327 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt
@@ -40,7 +40,7 @@
 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerUdfpsIconViewModel
 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerWindowViewModel
 import com.android.systemui.lifecycle.repeatWhenAttached
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.res.R
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scrim.ScrimView
@@ -219,7 +219,7 @@
 
     private fun optionallyAddUdfpsViews(
         view: ConstraintLayout,
-        logger: LongPressHandlingViewLogger,
+        logger: TouchHandlingViewLogger,
         udfpsIconViewModel: AlternateBouncerUdfpsIconViewModel,
         udfpsA11yOverlayViewModel: Lazy<AlternateBouncerUdfpsAccessibilityOverlayViewModel>,
     ) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt
index e9a3bd6..17e14c3 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt
@@ -29,7 +29,7 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.repeatOnLifecycle
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.common.ui.view.LongPressHandlingView
+import com.android.systemui.common.ui.view.TouchHandlingView
 import com.android.systemui.keyguard.ui.view.DeviceEntryIconView
 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryBackgroundViewModel
 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryForegroundViewModel
@@ -41,7 +41,6 @@
 import com.android.systemui.util.kotlin.DisposableHandles
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.DisposableHandle
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 object DeviceEntryIconViewBinder {
     private const val TAG = "DeviceEntryIconViewBinder"
@@ -66,11 +65,11 @@
         overrideColor: Color? = null,
     ): DisposableHandle {
         val disposables = DisposableHandles()
-        val longPressHandlingView = view.longPressHandlingView
+        val touchHandlingView = view.touchHandlingView
         val fgIconView = view.iconView
         val bgView = view.bgView
-        longPressHandlingView.listener =
-            object : LongPressHandlingView.Listener {
+        touchHandlingView.listener =
+            object : TouchHandlingView.Listener {
                 override fun onLongPressDetected(
                     view: View,
                     x: Int,
@@ -104,18 +103,18 @@
                 repeatOnLifecycle(Lifecycle.State.CREATED) {
                     launch("$TAG#viewModel.isVisible") {
                         viewModel.isVisible.collect { isVisible ->
-                            longPressHandlingView.isInvisible = !isVisible
+                            touchHandlingView.isInvisible = !isVisible
                             view.isClickable = isVisible
                         }
                     }
                     launch("$TAG#viewModel.isLongPressEnabled") {
                         viewModel.isLongPressEnabled.collect { isEnabled ->
-                            longPressHandlingView.setLongPressHandlingEnabled(isEnabled)
+                            touchHandlingView.setLongPressHandlingEnabled(isEnabled)
                         }
                     }
                     launch("$TAG#viewModel.isUdfpsSupported") {
                         viewModel.isUdfpsSupported.collect { udfpsSupported ->
-                            longPressHandlingView.longPressDuration =
+                            touchHandlingView.longPressDuration =
                                 if (udfpsSupported) {
                                     {
                                         view.resources
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardJankBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardJankBinder.kt
index 0cb684a..38263be 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardJankBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardJankBinder.kt
@@ -30,6 +30,7 @@
 import com.android.systemui.keyguard.shared.model.TransitionStep
 import com.android.systemui.keyguard.ui.viewmodel.KeyguardJankViewModel
 import com.android.systemui.lifecycle.repeatWhenAttached
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.DisposableHandle
 import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -79,15 +80,18 @@
                     }
                 }
 
-                launch {
-                    viewModel.lockscreenToAodTransition.collect {
-                        processStep(it, CUJ_LOCKSCREEN_TRANSITION_TO_AOD)
+                // The following is already done in KeyguardTransitionAnimationCallbackImpl.
+                if (!SceneContainerFlag.isEnabled) {
+                    launch {
+                        viewModel.lockscreenToAodTransition.collect {
+                            processStep(it, CUJ_LOCKSCREEN_TRANSITION_TO_AOD)
+                        }
                     }
-                }
 
-                launch {
-                    viewModel.aodToLockscreenTransition.collect {
-                        processStep(it, CUJ_LOCKSCREEN_TRANSITION_FROM_AOD)
+                    launch {
+                        viewModel.aodToLockscreenTransition.collect {
+                            processStep(it, CUJ_LOCKSCREEN_TRANSITION_FROM_AOD)
+                        }
                     }
                 }
             }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt
index b8020b1..00710c9 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt
@@ -50,7 +50,6 @@
 import com.android.systemui.customization.R as customR
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryHapticsInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor
-import com.android.systemui.keyguard.domain.interactor.WallpaperFocalAreaInteractor
 import com.android.systemui.keyguard.shared.model.KeyguardState
 import com.android.systemui.keyguard.ui.view.layout.sections.AodPromotedNotificationSection
 import com.android.systemui.keyguard.ui.viewmodel.BurnInParameters
@@ -80,6 +79,7 @@
 import com.android.systemui.util.ui.isAnimating
 import com.android.systemui.util.ui.stopAnimating
 import com.android.systemui.util.ui.value
+import com.android.systemui.wallpapers.ui.viewmodel.WallpaperFocalAreaViewModel
 import com.google.android.msdl.data.model.MSDLToken
 import com.google.android.msdl.domain.MSDLPlayer
 import kotlin.math.min
@@ -104,7 +104,6 @@
         screenOffAnimationController: ScreenOffAnimationController,
         shadeInteractor: ShadeInteractor,
         clockInteractor: KeyguardClockInteractor,
-        wallpaperFocalAreaInteractor: WallpaperFocalAreaInteractor,
         clockViewModel: KeyguardClockViewModel,
         deviceEntryHapticsInteractor: DeviceEntryHapticsInteractor?,
         vibratorHelper: VibratorHelper?,
@@ -113,6 +112,7 @@
         mainImmediateDispatcher: CoroutineDispatcher,
         msdlPlayer: MSDLPlayer?,
         @KeyguardBlueprintLog blueprintLog: LogBuffer,
+        wallpaperFocalAreaViewModel: WallpaperFocalAreaViewModel,
     ): DisposableHandle {
         val disposables = DisposableHandles()
         val childViews = mutableMapOf<Int, View>()
@@ -368,13 +368,11 @@
         disposables +=
             view.repeatWhenAttached {
                 repeatOnLifecycle(Lifecycle.State.STARTED) {
-                    if (viewModel.shouldSendFocalArea.value) {
+                    if (wallpaperFocalAreaViewModel.hasFocalArea.value) {
                         launch {
-                            wallpaperFocalAreaInteractor.wallpaperFocalAreaBounds
+                            wallpaperFocalAreaViewModel.wallpaperFocalAreaBounds
                                 .filterNotNull()
-                                .collect {
-                                    wallpaperFocalAreaInteractor.setWallpaperFocalAreaBounds(it)
-                                }
+                                .collect { wallpaperFocalAreaViewModel.setFocalAreaBounds(it) }
                         }
                     }
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardLongPressViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardTouchViewBinder.kt
similarity index 89%
rename from packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardLongPressViewBinder.kt
rename to packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardTouchViewBinder.kt
index 2fd9818..195413a 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardLongPressViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardTouchViewBinder.kt
@@ -23,13 +23,13 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.repeatOnLifecycle
 import com.android.app.tracing.coroutines.launchTraced as launch
-import com.android.systemui.common.ui.view.LongPressHandlingView
+import com.android.systemui.common.ui.view.TouchHandlingView
 import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel
 import com.android.systemui.lifecycle.repeatWhenAttached
 import com.android.systemui.plugins.FalsingManager
 import com.android.systemui.res.R
 
-object KeyguardLongPressViewBinder {
+object KeyguardTouchViewBinder {
     /**
      * Drives UI for the lock screen long-press feature.
      *
@@ -41,23 +41,23 @@
      */
     @JvmStatic
     fun bind(
-        view: LongPressHandlingView,
+        view: TouchHandlingView,
         viewModel: KeyguardTouchHandlingViewModel,
-        onSingleTap: () -> Unit,
+        onSingleTap: (x: Int, y: Int) -> Unit,
         falsingManager: FalsingManager,
     ) {
         view.accessibilityHintLongPressAction =
             AccessibilityNodeInfo.AccessibilityAction(
                 AccessibilityNodeInfoCompat.ACTION_LONG_CLICK,
-                view.resources.getString(R.string.lock_screen_settings)
+                view.resources.getString(R.string.lock_screen_settings),
             )
         view.listener =
-            object : LongPressHandlingView.Listener {
+            object : TouchHandlingView.Listener {
                 override fun onLongPressDetected(
                     view: View,
                     x: Int,
                     y: Int,
-                    isA11yAction: Boolean
+                    isA11yAction: Boolean,
                 ) {
                     if (
                         !isA11yAction && falsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)
@@ -68,12 +68,12 @@
                     viewModel.onLongPress(isA11yAction)
                 }
 
-                override fun onSingleTapDetected(view: View) {
+                override fun onSingleTapDetected(view: View, x: Int, y: Int) {
                     if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
                         return
                     }
 
-                    onSingleTap()
+                    onSingleTap(x, y)
                 }
             }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt
index cff5ceb..85eae6e 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/preview/KeyguardPreviewRenderer.kt
@@ -55,7 +55,6 @@
 import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.dagger.qualifiers.Main
-import com.android.systemui.keyguard.domain.interactor.WallpaperFocalAreaInteractor
 import com.android.systemui.keyguard.shared.model.ClockSizeSetting
 import com.android.systemui.keyguard.ui.binder.KeyguardPreviewClockViewBinder
 import com.android.systemui.keyguard.ui.binder.KeyguardPreviewSmartspaceViewBinder
@@ -82,6 +81,7 @@
 import com.android.systemui.statusbar.lockscreen.LockscreenSmartspaceController
 import com.android.systemui.util.kotlin.DisposableHandles
 import com.android.systemui.util.settings.SecureSettings
+import com.android.systemui.wallpapers.domain.interactor.WallpaperFocalAreaInteractor
 import dagger.assisted.Assisted
 import dagger.assisted.AssistedInject
 import kotlinx.coroutines.CoroutineDispatcher
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/transitions/GlanceableHubBlurProvider.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/transitions/GlanceableHubBlurProvider.kt
index 19cd501..50f8e08 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/transitions/GlanceableHubBlurProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/transitions/GlanceableHubBlurProvider.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.keyguard.ui.transitions
 
+import android.util.MathUtils
 import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
@@ -33,8 +34,18 @@
     blurConfig: BlurConfig,
 ) {
     val exitBlurRadius: Flow<Float> =
-        transitionAnimation.immediatelyTransitionTo(blurConfig.minBlurRadiusPx)
+        transitionAnimation.sharedFlow(
+            onStep = { MathUtils.lerp(blurConfig.maxBlurRadiusPx, blurConfig.minBlurRadiusPx, it) },
+            onStart = { blurConfig.maxBlurRadiusPx },
+            onFinish = { blurConfig.minBlurRadiusPx },
+            onCancel = { blurConfig.maxBlurRadiusPx },
+        )
 
     val enterBlurRadius: Flow<Float> =
-        transitionAnimation.immediatelyTransitionTo(blurConfig.maxBlurRadiusPx)
+        transitionAnimation.sharedFlow(
+            onStep = { MathUtils.lerp(blurConfig.minBlurRadiusPx, blurConfig.maxBlurRadiusPx, it) },
+            onStart = { blurConfig.minBlurRadiusPx },
+            onFinish = { blurConfig.maxBlurRadiusPx },
+            onCancel = { blurConfig.minBlurRadiusPx },
+        )
 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt
index 8d2e939..13331a4 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt
@@ -31,8 +31,8 @@
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
 import com.airbnb.lottie.LottieCompositionFactory
 import com.airbnb.lottie.LottieDrawable
-import com.android.systemui.common.ui.view.LongPressHandlingView
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.common.ui.view.TouchHandlingView
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.res.R
 
 class DeviceEntryIconView
@@ -41,11 +41,11 @@
     context: Context,
     attrs: AttributeSet?,
     defStyleAttrs: Int = 0,
-    logger: LongPressHandlingViewLogger? = null,
+    logger: TouchHandlingViewLogger? = null,
 ) : FrameLayout(context, attrs, defStyleAttrs) {
 
-    val longPressHandlingView: LongPressHandlingView =
-        LongPressHandlingView(
+    val touchHandlingView: TouchHandlingView =
+        TouchHandlingView(
             context = context,
             attrs = attrs,
             longPressDuration = { ViewConfiguration.getLongPressTimeout().toLong() },
@@ -68,7 +68,7 @@
         //     bgView, iconView, longpressHandlingView overlay
         addBgImageView()
         addIconImageView()
-        addLongpressHandlingView()
+        addTouchHandlingView()
     }
 
     private fun setupAccessibilityDelegate() {
@@ -77,17 +77,17 @@
                 private val accessibilityBouncerHint =
                     AccessibilityNodeInfo.AccessibilityAction(
                         AccessibilityNodeInfoCompat.ACTION_CLICK,
-                        resources.getString(R.string.accessibility_bouncer)
+                        resources.getString(R.string.accessibility_bouncer),
                     )
                 private val accessibilityEnterHint =
                     AccessibilityNodeInfo.AccessibilityAction(
                         AccessibilityNodeInfoCompat.ACTION_CLICK,
-                        resources.getString(R.string.accessibility_enter_hint)
+                        resources.getString(R.string.accessibility_enter_hint),
                     )
 
                 override fun onInitializeAccessibilityNodeInfo(
                     v: View,
-                    info: AccessibilityNodeInfo
+                    info: AccessibilityNodeInfo,
                 ) {
                     super.onInitializeAccessibilityNodeInfo(v, info)
                     when (accessibilityHintType) {
@@ -232,12 +232,12 @@
         )
     }
 
-    private fun addLongpressHandlingView() {
-        addView(longPressHandlingView)
-        val lp = longPressHandlingView.layoutParams as LayoutParams
+    private fun addTouchHandlingView() {
+        addView(touchHandlingView)
+        val lp = touchHandlingView.layoutParams as LayoutParams
         lp.height = ViewGroup.LayoutParams.MATCH_PARENT
         lp.width = ViewGroup.LayoutParams.MATCH_PARENT
-        longPressHandlingView.layoutParams = lp
+        touchHandlingView.layoutParams = lp
     }
 
     private fun addIconImageView() {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt
index 4f44423..e268050 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt
@@ -34,6 +34,7 @@
 import com.android.systemui.keyguard.ui.viewmodel.KeyguardRootViewModel
 import com.android.systemui.res.R
 import com.android.systemui.shade.ShadeDisplayAware
+import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.notification.icon.ui.viewbinder.AlwaysOnDisplayNotificationIconViewStore
 import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder
 import com.android.systemui.statusbar.notification.icon.ui.viewbinder.StatusBarIconViewBindingFailureTracker
@@ -55,6 +56,7 @@
     private val nicAodIconViewStore: AlwaysOnDisplayNotificationIconViewStore,
     private val systemBarUtilsState: SystemBarUtilsState,
     private val rootViewModel: KeyguardRootViewModel,
+    private val shadeInteractor: ShadeInteractor,
 ) : KeyguardSection() {
 
     private var nicBindingDisposable: DisposableHandle? = null
@@ -93,34 +95,30 @@
     override fun applyConstraints(constraintSet: ConstraintSet) {
         val bottomMargin =
             context.resources.getDimensionPixelSize(R.dimen.keyguard_status_view_bottom_margin)
+        val horizontalMargin =
+            context.resources.getDimensionPixelSize(customR.dimen.status_view_margin_horizontal)
+        val height = context.resources.getDimensionPixelSize(R.dimen.notification_shelf_height)
         val isVisible = rootViewModel.isNotifIconContainerVisible.value
+        val isShadeLayoutWide = shadeInteractor.isShadeLayoutWide.value
+
         constraintSet.apply {
             if (PromotedNotificationUiAod.isEnabled) {
                 connect(nicId, TOP, AodPromotedNotificationSection.viewId, BOTTOM, bottomMargin)
             } else {
                 connect(nicId, TOP, R.id.smart_space_barrier_bottom, BOTTOM, bottomMargin)
             }
+
             setGoneMargin(nicId, BOTTOM, bottomMargin)
             setVisibility(nicId, if (isVisible.value) VISIBLE else GONE)
 
-            connect(
-                nicId,
-                START,
-                PARENT_ID,
-                START,
-                context.resources.getDimensionPixelSize(customR.dimen.status_view_margin_horizontal),
-            )
-            connect(
-                nicId,
-                END,
-                PARENT_ID,
-                END,
-                context.resources.getDimensionPixelSize(customR.dimen.status_view_margin_horizontal),
-            )
-            constrainHeight(
-                nicId,
-                context.resources.getDimensionPixelSize(R.dimen.notification_shelf_height),
-            )
+            if (PromotedNotificationUiAod.isEnabled && isShadeLayoutWide) {
+                // Don't create a start constraint, so the icons can hopefully right-align.
+            } else {
+                connect(nicId, START, PARENT_ID, START, horizontalMargin)
+            }
+            connect(nicId, END, PARENT_ID, END, horizontalMargin)
+
+            constrainHeight(nicId, height)
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodPromotedNotificationSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodPromotedNotificationSection.kt
index 6c9a755..2110c40 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodPromotedNotificationSection.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodPromotedNotificationSection.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.keyguard.ui.view.layout.sections
 
+import android.content.Context
 import androidx.compose.ui.platform.ComposeView
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.constraintlayout.widget.ConstraintSet
@@ -26,6 +27,7 @@
 import androidx.constraintlayout.widget.ConstraintSet.TOP
 import com.android.systemui.keyguard.shared.model.KeyguardSection
 import com.android.systemui.res.R
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.notification.promoted.AODPromotedNotification
 import com.android.systemui.statusbar.notification.promoted.PromotedNotificationLogger
@@ -36,6 +38,7 @@
 class AodPromotedNotificationSection
 @Inject
 constructor(
+    @ShadeDisplayAware private val context: Context,
     private val viewModelFactory: AODPromotedNotificationViewModel.Factory,
     private val shadeInteractor: ShadeInteractor,
     private val logger: PromotedNotificationLogger,
@@ -83,13 +86,30 @@
         // view may have been created by a different instance of the section (!), and we don't
         // actually *need* it to set constraints, so don't check for it here.
 
+        val topPadding =
+            context.resources.getDimensionPixelSize(R.dimen.below_clock_padding_start_icons)
+
         constraintSet.apply {
             val isShadeLayoutWide = shadeInteractor.isShadeLayoutWide.value
-            val endGuidelineId = if (isShadeLayoutWide) R.id.split_shade_guideline else PARENT_ID
 
-            connect(viewId, TOP, R.id.smart_space_barrier_bottom, BOTTOM, 0)
-            connect(viewId, START, PARENT_ID, START, 0)
-            connect(viewId, END, endGuidelineId, END, 0)
+            if (isShadeLayoutWide) {
+                // When in split shade, align with top of smart space:
+                connect(viewId, TOP, R.id.smart_space_barrier_top, TOP, 0)
+
+                // and occupy the right half of the screen:
+                connect(viewId, START, R.id.split_shade_guideline, START, 0)
+                connect(viewId, END, PARENT_ID, END, 0)
+
+                // TODO(b/369151941): Calculate proper right padding here (when in split shade, it's
+                // bigger than what the Composable applies!)
+            } else {
+                // When not in split shade, place below smart space:
+                connect(viewId, TOP, R.id.smart_space_barrier_bottom, BOTTOM, topPadding)
+
+                // and occupy the full width of the screen:
+                connect(viewId, START, PARENT_ID, START, 0)
+                connect(viewId, END, PARENT_ID, END, 0)
+            }
 
             constrainWidth(viewId, ConstraintSet.MATCH_CONSTRAINT)
             constrainHeight(viewId, ConstraintSet.WRAP_CONTENT)
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt
index 0c7e865..58d482b 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt
@@ -37,7 +37,7 @@
 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryForegroundViewModel
 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryIconViewModel
 import com.android.systemui.log.LogBuffer
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.log.core.Logger
 import com.android.systemui.log.dagger.KeyguardBlueprintLog
 import com.android.systemui.log.dagger.LongPressTouchLog
@@ -78,7 +78,7 @@
             DeviceEntryIconView(
                     context,
                     null,
-                    logger = LongPressHandlingViewLogger(logBuffer = logBuffer, TAG),
+                    logger = TouchHandlingViewLogger(logBuffer = logBuffer, TAG),
                 )
                 .apply { id = deviceEntryIconViewId }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SmartspaceSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SmartspaceSection.kt
index 9319bc8..d6d03c7 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SmartspaceSection.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SmartspaceSection.kt
@@ -168,6 +168,13 @@
             }
 
             createBarrier(
+                R.id.smart_space_barrier_top,
+                Barrier.TOP,
+                0,
+                *intArrayOf(sharedR.id.bc_smartspace_view, sharedR.id.date_smartspace_view),
+            )
+
+            createBarrier(
                 R.id.smart_space_barrier_bottom,
                 Barrier.BOTTOM,
                 0,
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerDependencies.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerDependencies.kt
index 848bcab..29ee524 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerDependencies.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerDependencies.kt
@@ -19,7 +19,7 @@
 import com.android.systemui.deviceentry.ui.viewmodel.AlternateBouncerUdfpsAccessibilityOverlayViewModel
 import com.android.systemui.keyguard.ui.SwipeUpAnywhereGestureHandler
 import com.android.systemui.log.LogBuffer
-import com.android.systemui.log.LongPressHandlingViewLogger
+import com.android.systemui.log.TouchHandlingViewLogger
 import com.android.systemui.log.dagger.LongPressTouchLog
 import com.android.systemui.power.domain.interactor.PowerInteractor
 import com.android.systemui.statusbar.gesture.TapGestureDetector
@@ -40,8 +40,8 @@
     val powerInteractor: PowerInteractor,
     @LongPressTouchLog private val touchLogBuffer: LogBuffer,
 ) {
-    val logger: LongPressHandlingViewLogger =
-        LongPressHandlingViewLogger(logBuffer = touchLogBuffer, TAG)
+    val logger: TouchHandlingViewLogger = TouchHandlingViewLogger(logBuffer = touchLogBuffer, TAG)
+
     companion object {
         private const val TAG = "AlternateBouncer"
     }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt
index 53a063d..62a5eba 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt
@@ -28,7 +28,6 @@
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
 import com.android.systemui.keyguard.domain.interactor.PulseExpansionInteractor
-import com.android.systemui.keyguard.domain.interactor.WallpaperFocalAreaInteractor
 import com.android.systemui.keyguard.shared.model.Edge
 import com.android.systemui.keyguard.shared.model.KeyguardState.AOD
 import com.android.systemui.keyguard.shared.model.KeyguardState.DREAMING
@@ -54,6 +53,7 @@
 import com.android.systemui.util.ui.AnimatedValue
 import com.android.systemui.util.ui.toAnimatedValueFlow
 import com.android.systemui.util.ui.zip
+import com.android.systemui.wallpapers.domain.interactor.WallpaperFocalAreaInteractor
 import javax.inject.Inject
 import kotlin.math.max
 import kotlinx.coroutines.CoroutineScope
@@ -377,8 +377,6 @@
                 initialValue = AnimatedValue.NotAnimating(false),
             )
 
-    val shouldSendFocalArea = wallpaperFocalAreaInteractor.shouldSendFocalArea
-
     fun onNotificationContainerBoundsChanged(top: Float, bottom: Float, animate: Boolean = false) {
         keyguardInteractor.setNotificationContainerBounds(
             NotificationContainerBounds(top = top, bottom = bottom, isAnimated = animate)
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToDozingTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToDozingTransitionViewModel.kt
index dc7fefa..65c0a4f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToDozingTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToDozingTransitionViewModel.kt
@@ -54,7 +54,12 @@
         )
 
     val deviceEntryBackgroundViewAlpha: Flow<Float> =
-        transitionAnimation.immediatelyTransitionTo(0f)
+        transitionAnimation.sharedFlow(
+            duration = TO_DOZING_DURATION,
+            onStep = { null },
+            onFinish = { 0f },
+            onCancel = { 0f },
+        )
 
     override val deviceEntryParentViewAlpha: Flow<Float> =
         deviceEntryUdfpsInteractor.isUdfpsEnrolledAndEnabled.flatMapLatest {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt
index 3353983..06c27d3 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt
@@ -19,7 +19,6 @@
 import com.android.compose.animation.scene.Swipe
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
-import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor
 import com.android.systemui.scene.domain.interactor.SceneContainerOcclusionInteractor
 import com.android.systemui.scene.shared.model.Scenes
@@ -43,7 +42,6 @@
 @AssistedInject
 constructor(
     private val deviceEntryInteractor: DeviceEntryInteractor,
-    private val communalInteractor: CommunalInteractor,
     private val shadeInteractor: ShadeInteractor,
     private val shadeModeInteractor: ShadeModeInteractor,
     private val occlusionInteractor: SceneContainerOcclusionInteractor,
@@ -58,15 +56,10 @@
 
                 combine(
                     deviceEntryInteractor.isUnlocked,
-                    communalInteractor.isCommunalAvailable,
                     shadeModeInteractor.shadeMode,
                     occlusionInteractor.isOccludingActivityShown,
-                ) { isDeviceUnlocked, isCommunalAvailable, shadeMode, isOccluded ->
+                ) { isDeviceUnlocked, shadeMode, isOccluded ->
                     buildList {
-                            if (isCommunalAvailable) {
-                                add(Swipe.Start to Scenes.Communal)
-                            }
-
                             add(Swipe.Up to if (isDeviceUnlocked) Scenes.Gone else Scenes.Bouncer)
 
                             addAll(
diff --git a/packages/SystemUI/src/com/android/systemui/log/LongPressHandlingViewLogger.kt b/packages/SystemUI/src/com/android/systemui/log/TouchHandlingViewLogger.kt
similarity index 93%
rename from packages/SystemUI/src/com/android/systemui/log/LongPressHandlingViewLogger.kt
rename to packages/SystemUI/src/com/android/systemui/log/TouchHandlingViewLogger.kt
index 4ff8118..90c063e 100644
--- a/packages/SystemUI/src/com/android/systemui/log/LongPressHandlingViewLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/log/TouchHandlingViewLogger.kt
@@ -19,17 +19,17 @@
 import com.android.systemui.log.core.LogLevel.DEBUG
 import com.google.errorprone.annotations.CompileTimeConstant
 
-data class LongPressHandlingViewLogger
+data class TouchHandlingViewLogger
 constructor(
     private val logBuffer: LogBuffer,
-    @CompileTimeConstant private val tag: String = "LongPressHandlingViewLogger"
+    @CompileTimeConstant private val tag: String = "TouchHandlingViewLogger",
 ) {
     fun schedulingLongPress(delay: Long) {
         logBuffer.log(
             tag,
             DEBUG,
             { long1 = delay },
-            { "on MotionEvent.Down: scheduling long press activation after $long1 ms" }
+            { "on MotionEvent.Down: scheduling long press activation after $long1 ms" },
         )
     }
 
@@ -58,7 +58,7 @@
                 "on MotionEvent.Up: distanceMoved: $double1, " +
                     "allowedTouchSlop: $int1, " +
                     "eventDuration: $long1"
-            }
+            },
         )
     }
 
@@ -74,7 +74,7 @@
                 "on MotionEvent.Motion: May cancel long press due to movement: " +
                     "distanceMoved: $double1, " +
                     "allowedTouchSlop: $int1 "
-            }
+            },
         )
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/lowlightclock/LowLightMonitor.java b/packages/SystemUI/src/com/android/systemui/lowlightclock/LowLightMonitor.java
index 912ace7..e5eec64 100644
--- a/packages/SystemUI/src/com/android/systemui/lowlightclock/LowLightMonitor.java
+++ b/packages/SystemUI/src/com/android/systemui/lowlightclock/LowLightMonitor.java
@@ -27,6 +27,7 @@
 import androidx.annotation.Nullable;
 
 import com.android.dream.lowlight.LowLightDreamManager;
+import com.android.systemui.dagger.qualifiers.Background;
 import com.android.systemui.dagger.qualifiers.SystemUser;
 import com.android.systemui.keyguard.ScreenLifecycle;
 import com.android.systemui.shared.condition.Condition;
@@ -36,6 +37,7 @@
 import dagger.Lazy;
 
 import java.util.Set;
+import java.util.concurrent.Executor;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -59,6 +61,8 @@
 
     private final PackageManager mPackageManager;
 
+    private final Executor mExecutor;
+
     @Inject
     public LowLightMonitor(Lazy<LowLightDreamManager> lowLightDreamManager,
             @SystemUser Monitor conditionsMonitor,
@@ -66,7 +70,8 @@
             ScreenLifecycle screenLifecycle,
             LowLightLogger lowLightLogger,
             @Nullable @Named(LOW_LIGHT_DREAM_SERVICE) ComponentName lowLightDreamService,
-            PackageManager packageManager) {
+            PackageManager packageManager,
+            @Background Executor backgroundExecutor) {
         super(conditionsMonitor);
         mLowLightDreamManager = lowLightDreamManager;
         mConditionsMonitor = conditionsMonitor;
@@ -75,59 +80,69 @@
         mLogger = lowLightLogger;
         mLowLightDreamService = lowLightDreamService;
         mPackageManager = packageManager;
+        mExecutor = backgroundExecutor;
     }
 
     @Override
     public void onConditionsChanged(boolean allConditionsMet) {
-        mLogger.d(TAG, "Low light enabled: " + allConditionsMet);
+        mExecutor.execute(() -> {
+            mLogger.d(TAG, "Low light enabled: " + allConditionsMet);
 
-        mLowLightDreamManager.get().setAmbientLightMode(allConditionsMet
-                ? AMBIENT_LIGHT_MODE_LOW_LIGHT : AMBIENT_LIGHT_MODE_REGULAR);
+            mLowLightDreamManager.get().setAmbientLightMode(allConditionsMet
+                    ? AMBIENT_LIGHT_MODE_LOW_LIGHT : AMBIENT_LIGHT_MODE_REGULAR);
+        });
     }
 
     @Override
     public void onScreenTurnedOn() {
-        if (mSubscriptionToken == null) {
-            mLogger.d(TAG, "Screen turned on. Subscribing to low light conditions.");
+        mExecutor.execute(() -> {
+            if (mSubscriptionToken == null) {
+                mLogger.d(TAG, "Screen turned on. Subscribing to low light conditions.");
 
-            mSubscriptionToken = mConditionsMonitor.addSubscription(
-                new Monitor.Subscription.Builder(this)
-                    .addConditions(mLowLightConditions.get())
-                    .build());
-        }
+                mSubscriptionToken = mConditionsMonitor.addSubscription(
+                        new Monitor.Subscription.Builder(this)
+                                .addConditions(mLowLightConditions.get())
+                                .build());
+            }
+        });
     }
 
 
     @Override
     public void onScreenTurnedOff() {
-        if (mSubscriptionToken != null) {
-            mLogger.d(TAG, "Screen turned off. Removing subscription to low light conditions.");
+        mExecutor.execute(() -> {
+            if (mSubscriptionToken != null) {
+                mLogger.d(TAG, "Screen turned off. Removing subscription to low light conditions.");
 
-            mConditionsMonitor.removeSubscription(mSubscriptionToken);
-            mSubscriptionToken = null;
-        }
+                mConditionsMonitor.removeSubscription(mSubscriptionToken);
+                mSubscriptionToken = null;
+            }
+        });
     }
 
     @Override
     protected void onStart() {
-        if (mLowLightDreamService != null) {
-            // Note that the dream service is disabled by default. This prevents the dream from
-            // appearing in settings on devices that don't have it explicitly excluded (done in
-            // the settings overlay). Therefore, the component is enabled if it is to be used
-            // here.
-            mPackageManager.setComponentEnabledSetting(
-                    mLowLightDreamService,
-                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
-                    PackageManager.DONT_KILL_APP
-            );
-        } else {
-            // If there is no low light dream service, do not observe conditions.
-            return;
-        }
+        mExecutor.execute(() -> {
+            if (mLowLightDreamService != null) {
+                // Note that the dream service is disabled by default. This prevents the dream from
+                // appearing in settings on devices that don't have it explicitly excluded (done in
+                // the settings overlay). Therefore, the component is enabled if it is to be used
+                // here.
+                mPackageManager.setComponentEnabledSetting(
+                        mLowLightDreamService,
+                        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+                        PackageManager.DONT_KILL_APP
+                );
+            } else {
+                // If there is no low light dream service, do not observe conditions.
+                return;
+            }
 
-        mScreenLifecycle.addObserver(this);
-        if (mScreenLifecycle.getScreenState() == SCREEN_ON) {
-            onScreenTurnedOn();
-        }
+            mScreenLifecycle.addObserver(this);
+            if (mScreenLifecycle.getScreenState() == SCREEN_ON) {
+                onScreenTurnedOn();
+            }
+        });
+
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/lowlightclock/dagger/LowLightModule.java b/packages/SystemUI/src/com/android/systemui/lowlightclock/dagger/LowLightModule.java
index 8469cb4..f8072f2 100644
--- a/packages/SystemUI/src/com/android/systemui/lowlightclock/dagger/LowLightModule.java
+++ b/packages/SystemUI/src/com/android/systemui/lowlightclock/dagger/LowLightModule.java
@@ -78,7 +78,7 @@
 
     @Provides
     @IntoSet
-    @Named(com.android.systemui.lowlightclock.dagger.LowLightModule.LOW_LIGHT_PRECONDITIONS)
+    @Named(LOW_LIGHT_PRECONDITIONS)
     static Condition provideLowLightCondition(LowLightCondition lowLightCondition,
             DirectBootCondition directBootCondition) {
         // Start lowlight if we are either in lowlight or in direct boot. The ordering of the
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransition.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransition.kt
index 02b4037..21407f3 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransition.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransition.kt
@@ -27,7 +27,6 @@
 import com.android.internal.R
 import com.android.internal.annotations.VisibleForTesting
 import com.android.settingslib.Utils
-import com.android.systemui.Flags
 import com.android.systemui.media.controls.ui.view.MediaViewHolder
 import com.android.systemui.monet.ColorScheme
 import com.android.systemui.surfaceeffects.loadingeffect.LoadingEffect
@@ -52,7 +51,7 @@
 open class AnimatingColorTransition(
     private val defaultColor: Int,
     private val extractColor: (ColorScheme) -> Int,
-    private val applyColor: (Int) -> Unit,
+    private val applyColor: (Int) -> Unit
 ) : AnimatorUpdateListener, ColorTransition {
 
     private val argbEvaluator = ArgbEvaluator()
@@ -106,52 +105,35 @@
     private val mediaViewHolder: MediaViewHolder,
     private val multiRippleController: MultiRippleController,
     private val turbulenceNoiseController: TurbulenceNoiseController,
-    animatingColorTransitionFactory: AnimatingColorTransitionFactory,
+    animatingColorTransitionFactory: AnimatingColorTransitionFactory
 ) {
     constructor(
         context: Context,
         mediaViewHolder: MediaViewHolder,
         multiRippleController: MultiRippleController,
-        turbulenceNoiseController: TurbulenceNoiseController,
+        turbulenceNoiseController: TurbulenceNoiseController
     ) : this(
         context,
         mediaViewHolder,
         multiRippleController,
         turbulenceNoiseController,
-        ::AnimatingColorTransition,
+        ::AnimatingColorTransition
     )
-
     var loadingEffect: LoadingEffect? = null
 
-    val bgColor =
-        if (Flags.mediaControlsUiUpdate()) {
-            context.getColor(R.color.materialColorOnSurface)
-        } else {
-            context.getColor(com.google.android.material.R.color.material_dynamic_neutral20)
-        }
-
-    val textColor = context.getColor(R.color.materialColorInverseOnSurface)
-    val buttonBgColor = context.getColor(R.color.materialColorPrimary)
-    val insideButtonColor = context.getColor(R.color.materialColorOnPrimary)
-
+    val bgColor = context.getColor(com.google.android.material.R.color.material_dynamic_neutral20)
     val surfaceColor =
         animatingColorTransitionFactory(bgColor, ::surfaceFromScheme) { surfaceColor ->
             val colorList = ColorStateList.valueOf(surfaceColor)
-            mediaViewHolder.albumView.backgroundTintList = colorList
-            mediaViewHolder.gutsViewHolder.setSurfaceColor(surfaceColor)
-
-            if (Flags.mediaControlsUiUpdate()) return@animatingColorTransitionFactory
             mediaViewHolder.seamlessIcon.imageTintList = colorList
             mediaViewHolder.seamlessText.setTextColor(surfaceColor)
+            mediaViewHolder.albumView.backgroundTintList = colorList
+            mediaViewHolder.gutsViewHolder.setSurfaceColor(surfaceColor)
         }
     val accentPrimary =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                buttonBgColor
-            } else {
-                loadDefaultColor(R.attr.textColorPrimary)
-            },
-            ::accentPrimaryFromScheme,
+            loadDefaultColor(R.attr.textColorPrimary),
+            ::accentPrimaryFromScheme
         ) { accentPrimary ->
             val accentColorList = ColorStateList.valueOf(accentPrimary)
             mediaViewHolder.actionPlayPause.backgroundTintList = accentColorList
@@ -163,12 +145,8 @@
 
     val accentSecondary =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                buttonBgColor
-            } else {
-                loadDefaultColor(R.attr.textColorPrimary)
-            },
-            ::accentSecondaryFromScheme,
+            loadDefaultColor(R.attr.textColorPrimary),
+            ::accentSecondaryFromScheme
         ) { accentSecondary ->
             val colorList = ColorStateList.valueOf(accentSecondary)
             (mediaViewHolder.seamlessButton.background as? RippleDrawable)?.let {
@@ -179,11 +157,7 @@
 
     val colorSeamless =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                buttonBgColor
-            } else {
-                loadDefaultColor(R.attr.textColorPrimary)
-            },
+            loadDefaultColor(R.attr.textColorPrimary),
             { colorScheme: ColorScheme ->
                 // A1-100 dark in dark theme, A1-200 in light theme
                 if (
@@ -196,17 +170,13 @@
             { seamlessColor: Int ->
                 val accentColorList = ColorStateList.valueOf(seamlessColor)
                 mediaViewHolder.seamlessButton.backgroundTintList = accentColorList
-            },
+            }
         )
 
     val textPrimary =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                textColor
-            } else {
-                loadDefaultColor(R.attr.textColorPrimary)
-            },
-            ::textPrimaryFromScheme,
+            loadDefaultColor(R.attr.textColorPrimary),
+            ::textPrimaryFromScheme
         ) { textPrimary ->
             mediaViewHolder.titleText.setTextColor(textPrimary)
             val textColorList = ColorStateList.valueOf(textPrimary)
@@ -222,41 +192,25 @@
 
     val textPrimaryInverse =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                insideButtonColor
-            } else {
-                loadDefaultColor(R.attr.textColorPrimaryInverse)
-            },
-            ::textPrimaryInverseFromScheme,
+            loadDefaultColor(R.attr.textColorPrimaryInverse),
+            ::textPrimaryInverseFromScheme
         ) { textPrimaryInverse ->
-            val colorList = ColorStateList.valueOf(textPrimaryInverse)
-            mediaViewHolder.actionPlayPause.imageTintList = colorList
-
-            if (!Flags.mediaControlsUiUpdate()) return@animatingColorTransitionFactory
-            mediaViewHolder.seamlessIcon.imageTintList = colorList
-            mediaViewHolder.seamlessText.setTextColor(textPrimaryInverse)
+            mediaViewHolder.actionPlayPause.imageTintList =
+                ColorStateList.valueOf(textPrimaryInverse)
         }
 
     val textSecondary =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                textColor
-            } else {
-                loadDefaultColor(R.attr.textColorSecondary)
-            },
-            ::textSecondaryFromScheme,
+            loadDefaultColor(R.attr.textColorSecondary),
+            ::textSecondaryFromScheme
         ) { textSecondary ->
             mediaViewHolder.artistText.setTextColor(textSecondary)
         }
 
     val textTertiary =
         animatingColorTransitionFactory(
-            if (Flags.mediaControlsUiUpdate()) {
-                textColor
-            } else {
-                loadDefaultColor(R.attr.textColorTertiary)
-            },
-            ::textTertiaryFromScheme,
+            loadDefaultColor(R.attr.textColorTertiary),
+            ::textTertiaryFromScheme
         ) { textTertiary ->
             mediaViewHolder.seekBar.progressBackgroundTintList =
                 ColorStateList.valueOf(textTertiary)
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/KeyguardMediaController.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/KeyguardMediaController.kt
index 520cc23..606f71a 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/KeyguardMediaController.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/KeyguardMediaController.kt
@@ -29,6 +29,7 @@
 import com.android.systemui.media.controls.ui.view.MediaHostState
 import com.android.systemui.media.dagger.MediaModule.KEYGUARD
 import com.android.systemui.plugins.statusbar.StatusBarStateController
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.SysuiStatusBarStateController
 import com.android.systemui.statusbar.notification.stack.MediaContainerView
@@ -53,7 +54,7 @@
     @param:Named(KEYGUARD) private val mediaHost: MediaHost,
     private val bypassController: KeyguardBypassController,
     private val statusBarStateController: SysuiStatusBarStateController,
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     configurationController: ConfigurationController,
     private val splitShadeStateController: SplitShadeStateController,
     private val logger: KeyguardMediaControllerLogger,
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt
index 1f70ac9..2059394 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt
@@ -53,6 +53,7 @@
 import com.android.systemui.plugins.statusbar.StatusBarStateController
 import com.android.systemui.res.R
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.CrossFadeHelper
 import com.android.systemui.statusbar.StatusBarState
@@ -102,7 +103,7 @@
 class MediaHierarchyManager
 @Inject
 constructor(
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     private val statusBarStateController: SysuiStatusBarStateController,
     private val keyguardStateController: KeyguardStateController,
     private val bypassController: KeyguardBypassController,
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt
index d63c2e0..0107a52 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt
@@ -23,11 +23,11 @@
 import android.view.View
 import android.view.ViewGroup
 import android.view.ViewOutlineProvider
+import androidx.annotation.VisibleForTesting
 import androidx.core.view.GestureDetectorCompat
 import androidx.dynamicanimation.animation.FloatPropertyCompat
 import androidx.dynamicanimation.animation.SpringForce
 import com.android.app.tracing.TraceStateLogger
-import com.android.internal.annotations.VisibleForTesting
 import com.android.settingslib.Utils
 import com.android.systemui.Gefingerpoken
 import com.android.systemui.classifier.Classifier.NOTIFICATION_DISMISS
@@ -38,9 +38,10 @@
 import com.android.systemui.util.animation.TransitionLayout
 import com.android.systemui.util.concurrency.DelayableExecutor
 import com.android.wm.shell.shared.animation.PhysicsAnimator
+import kotlin.math.sign
 
 private const val FLING_SLOP = 1000000
-private const val DISMISS_DELAY = 100L
+@VisibleForTesting const val DISMISS_DELAY = 100L
 private const val SCROLL_DELAY = 100L
 private const val RUBBERBAND_FACTOR = 0.2f
 private const val SETTINGS_BUTTON_TRANSLATION_FRACTION = 0.3f
@@ -64,7 +65,7 @@
     private val closeGuts: (immediate: Boolean) -> Unit,
     private val falsingManager: FalsingManager,
     private val logSmartspaceImpression: (Boolean) -> Unit,
-    private val logger: MediaUiEventLogger
+    private val logger: MediaUiEventLogger,
 ) {
     /** Trace state logger for media carousel visibility */
     private val visibleStateLogger = TraceStateLogger("$TAG#visibleToUser")
@@ -96,7 +97,7 @@
 
     /** What's the currently visible player index? */
     var visibleMediaIndex: Int = 0
-        private set
+        @VisibleForTesting set
 
     /** How much are we scrolled into the current media? */
     private var scrollIntoCurrentMedia: Int = 0
@@ -137,14 +138,14 @@
                 eStart: MotionEvent?,
                 eCurrent: MotionEvent,
                 vX: Float,
-                vY: Float
+                vY: Float,
             ) = onFling(vX, vY)
 
             override fun onScroll(
                 down: MotionEvent?,
                 lastMotion: MotionEvent,
                 distanceX: Float,
-                distanceY: Float
+                distanceY: Float,
             ) = onScroll(down!!, lastMotion, distanceX)
 
             override fun onDown(e: MotionEvent): Boolean {
@@ -157,6 +158,7 @@
     val touchListener =
         object : Gefingerpoken {
             override fun onTouchEvent(motionEvent: MotionEvent?) = onTouch(motionEvent!!)
+
             override fun onInterceptTouchEvent(ev: MotionEvent?) = onInterceptTouch(ev!!)
         }
 
@@ -168,7 +170,7 @@
                 scrollX: Int,
                 scrollY: Int,
                 oldScrollX: Int,
-                oldScrollY: Int
+                oldScrollY: Int,
             ) {
                 if (playerWidthPlusPadding == 0) {
                     return
@@ -177,7 +179,7 @@
                 val relativeScrollX = scrollView.relativeScrollX
                 onMediaScrollingChanged(
                     relativeScrollX / playerWidthPlusPadding,
-                    relativeScrollX % playerWidthPlusPadding
+                    relativeScrollX % playerWidthPlusPadding,
                 )
             }
         }
@@ -209,7 +211,7 @@
                         0,
                         carouselWidth,
                         carouselHeight,
-                        cornerRadius.toFloat()
+                        cornerRadius.toFloat(),
                     )
                 }
             }
@@ -235,7 +237,7 @@
                     getMaxTranslation().toFloat(),
                     0.0f,
                     1.0f,
-                    Math.abs(contentTranslation)
+                    Math.abs(contentTranslation),
                 )
             val settingsTranslation =
                 (1.0f - settingsOffset) *
@@ -323,7 +325,7 @@
                         CONTENT_TRANSLATION,
                         newTranslation,
                         startVelocity = 0.0f,
-                        config = translationConfig
+                        config = translationConfig,
                     )
                     .start()
                 scrollView.animationTargetX = newTranslation
@@ -391,7 +393,7 @@
                         CONTENT_TRANSLATION,
                         newTranslation,
                         startVelocity = 0.0f,
-                        config = translationConfig
+                        config = translationConfig,
                     )
                     .start()
             } else {
@@ -430,7 +432,7 @@
                     CONTENT_TRANSLATION,
                     newTranslation,
                     startVelocity = vX,
-                    config = translationConfig
+                    config = translationConfig,
                 )
                 .start()
             scrollView.animationTargetX = newTranslation
@@ -583,10 +585,35 @@
         // We need to post this to wait for the active player becomes visible.
         mainExecutor.executeDelayed(
             { scrollView.smoothScrollTo(view.left, scrollView.scrollY) },
-            SCROLL_DELAY
+            SCROLL_DELAY,
         )
     }
 
+    /**
+     * Scrolls the media carousel by the number of players specified by [step]. If scrolling beyond
+     * the carousel's bounds:
+     * - If the carousel is not dismissible, the settings button is displayed.
+     * - If the carousel is dismissible, no action taken.
+     *
+     * @param step A positive number means next, and negative means previous.
+     */
+    fun scrollByStep(step: Int) {
+        val destIndex = visibleMediaIndex + step
+        if (destIndex >= mediaContent.childCount || destIndex < 0) {
+            if (!showsSettingsButton) return
+            var translation = getMaxTranslation() * sign(-step.toFloat())
+            translation = if (isRtl) -translation else translation
+            PhysicsAnimator.getInstance(this)
+                .spring(CONTENT_TRANSLATION, translation, config = translationConfig)
+                .start()
+            scrollView.animationTargetX = translation
+        } else if (scrollView.getContentTranslation() != 0.0f) {
+            resetTranslation(true)
+        } else {
+            scrollToPlayer(destIndex = destIndex)
+        }
+    }
+
     companion object {
         private val CONTENT_TRANSLATION =
             object : FloatPropertyCompat<MediaCarouselScrollHandler>("contentTranslation") {
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
index bc6b2be..322c351 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
@@ -34,6 +34,7 @@
 
 import androidx.annotation.DoNotInline;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.core.widget.CompoundButtonCompat;
 import androidx.recyclerview.widget.RecyclerView;
@@ -54,10 +55,10 @@
 
     private static final String TAG = "MediaOutputAdapter";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-    private static final float DEVICE_DISCONNECTED_ALPHA = 0.5f;
-    private static final float DEVICE_CONNECTED_ALPHA = 1f;
+    private static final float DEVICE_DISABLED_ALPHA = 0.5f;
+    private static final float DEVICE_ACTIVE_ALPHA = 1f;
     protected List<MediaItem> mMediaItemList = new CopyOnWriteArrayList<>();
-    private boolean mShouldGroupSelectedMediaItems = Flags.enableOutputSwitcherSessionGrouping();
+    private boolean mShouldGroupSelectedMediaItems = Flags.enableOutputSwitcherDeviceGrouping();
 
     public MediaOutputAdapter(MediaSwitchingController controller) {
         super(controller);
@@ -155,7 +156,6 @@
             super.onBind(device, position);
             boolean isMutingExpectedDeviceExist = mController.hasMutingExpectedDevice();
             final boolean currentlyConnected = isCurrentlyConnected(device);
-            boolean isCurrentSeekbarInvisible = mSeekBar.getVisibility() == View.GONE;
             boolean isSelected = isDeviceIncluded(mController.getSelectedMediaDevice(), device);
             boolean isDeselectable =
                     isDeviceIncluded(mController.getDeselectableMediaDevice(), device);
@@ -184,201 +184,160 @@
                                 + "]");
             }
 
+            boolean isDeviceGroup = false;
+            GroupStatus groupStatus = null;
+            OngoingSessionStatus ongoingSessionStatus = null;
+            ConnectionState connectionState = ConnectionState.DISCONNECTED;
+            boolean restrictVolumeAdjustment = mController.hasAdjustVolumeUserRestriction();
+            String subtitle = null;
+            Drawable deviceStatusIcon = null;
+            boolean deviceDisabled = false;
+            View.OnClickListener clickListener = null;
+
             if (mCurrentActivePosition == position) {
                 mCurrentActivePosition = -1;
             }
             mItemLayout.setVisibility(View.VISIBLE);
-            mStatusIcon.setVisibility(View.GONE);
-            enableFocusPropertyForView(mContainerLayout);
 
             if (mController.isAnyDeviceTransferring()) {
-                if (device.getState() == MediaDeviceState.STATE_CONNECTING
-                        && !mController.hasAdjustVolumeUserRestriction()) {
-                    setUpDeviceIcon(device);
-                    updateProgressBarColor();
-                    setSingleLineLayout(device.getName(), false /* showSeekBar*/,
-                            true /* showProgressBar */, false /* showCheckBox */,
-                            false /* showEndTouchArea */);
-                } else {
-                    setUpDeviceIcon(device);
-                    setSingleLineLayout(device.getName());
+                if (device.getState() == MediaDeviceState.STATE_CONNECTING) {
+                    connectionState = ConnectionState.CONNECTING;
                 }
             } else {
                 // Set different layout for each device
                 if (device.isMutingExpectedDevice()
                         && !mController.isCurrentConnectedDeviceRemote()) {
-                    updateUnmutedVolumeIcon(device);
-                    mCurrentActivePosition = position;
-                    updateFullItemClickListener(v -> onItemClick(v, device));
-                    setSingleLineLayout(device.getName());
-                    initFakeActiveDevice(device);
+                    connectionState = ConnectionState.CONNECTED;
+                    restrictVolumeAdjustment = true;
+                    clickListener = v -> onItemClick(v, device);
+                } else if (currentlyConnected && isMutingExpectedDeviceExist
+                        && !mController.isCurrentConnectedDeviceRemote()) {
+                    // mark as disconnected and set special click listener
+                    clickListener = v -> cancelMuteAwaitConnection();
+                } else if (device.getState() == MediaDeviceState.STATE_GROUPING) {
+                    connectionState = ConnectionState.CONNECTING;
                 } else if (mShouldGroupSelectedMediaItems
                         && mController.getSelectedMediaDevice().size() > 1
                         && isDeviceIncluded(mController.getSelectedMediaDevice(), device)) {
                     if (!mediaItem.isFirstDeviceInGroup()) {
                         mItemLayout.setVisibility(View.GONE);
-                        mEndTouchArea.setVisibility(View.GONE);
+                        return;
                     } else {
-                        String sessionName = mController.getSessionName().toString();
-                        updateUnmutedVolumeIcon(null);
-                        updateEndClickAreaWithIcon(
-                                v -> {
-                                    mShouldGroupSelectedMediaItems = false;
-                                    notifyDataSetChanged();
-                                },
-                                R.drawable.media_output_item_expand_group,
-                                R.string.accessibility_expand_group);
-                        disableFocusPropertyForView(mContainerLayout);
-                        setUpContentDescriptionForView(mSeekBar, mContext.getString(
-                                R.string.accessibility_cast_name, sessionName));
-                        setSingleLineLayout(sessionName, true /* showSeekBar */,
-                                false /* showProgressBar */, false /* showCheckBox */,
-                                true /* showEndTouchArea */);
-                        initGroupSeekbar(isCurrentSeekbarInvisible);
+                        isDeviceGroup = true;
                     }
                 } else if (device.hasSubtext()) {
+                    subtitle = device.getSubtextString();
                     boolean isActiveWithOngoingSession =
                             device.hasOngoingSession() && (currentlyConnected || isSelected);
-                    boolean isHost = device.isHostForOngoingSession()
-                            && isActiveWithOngoingSession;
                     if (isActiveWithOngoingSession) {
-                        mCurrentActivePosition = position;
-                        updateUnmutedVolumeIcon(device);
-                        mSubTitleText.setText(device.getSubtextString());
-                        updateContentAlpha(DEVICE_CONNECTED_ALPHA);
-                        updateEndClickAreaAsSessionEditing(device,
-                                isHost ? R.drawable.media_output_status_edit_session
-                                        : R.drawable.ic_sound_bars_anim);
-                        setTwoLineLayout(device.getName() /* title */,
-                                true /* showSeekBar */, false /* showProgressBar */,
-                                true /* showSubtitle */, false /* showStatus */,
-                                true /* showEndTouchArea */);
-                        initSeekbar(device, isCurrentSeekbarInvisible);
+                        ongoingSessionStatus = new OngoingSessionStatus(
+                                device.isHostForOngoingSession());
+                        connectionState = ConnectionState.CONNECTED;
                     } else {
                         if (currentlyConnected) {
-                            mCurrentActivePosition = position;
-                            updateUnmutedVolumeIcon(device);
-                        } else {
-                            setUpDeviceIcon(device);
+                            connectionState = ConnectionState.CONNECTED;
                         }
-                        mSubTitleText.setText(device.getSubtextString());
-                        Drawable deviceStatusIcon =
-                                device.hasOngoingSession() ? mContext.getDrawable(
-                                        R.drawable.ic_sound_bars_anim)
-                                        : Api34Impl.getDeviceStatusIconBasedOnSelectionBehavior(
-                                                device,
-                                                mContext);
-                        if (deviceStatusIcon != null) {
-                            updateDeviceStatusIcon(deviceStatusIcon);
-                        }
-                        updateContentAlpha(
-                                updateClickActionBasedOnSelectionBehavior(device)
-                                        ? DEVICE_CONNECTED_ALPHA : DEVICE_DISCONNECTED_ALPHA);
-                        setTwoLineLayout(device.getName(),
-                                currentlyConnected  /* showSeekBar */,
-                                false /* showProgressBar */, true /* showSubtitle */,
-                                deviceStatusIcon != null /* showStatus */);
+                        clickListener = getClickListenerBasedOnSelectionBehavior(device);
+                        deviceDisabled = clickListener == null;
+                        deviceStatusIcon = getDeviceStatusIcon(device, device.hasOngoingSession());
                     }
                 } else if (device.getState() == MediaDeviceState.STATE_CONNECTING_FAILED) {
-                    setUpDeviceIcon(device);
-                    updateConnectionFailedStatusIcon();
-                    mSubTitleText.setText(R.string.media_output_dialog_connect_failed);
-                    updateFullItemClickListener(v -> onItemClick(v, device));
-                    setTwoLineLayout(device.getName(), false /* showSeekBar */,
-                            false /* showProgressBar */, true /* showSubtitle */,
-                            true /* showStatus */);
-                } else if (device.getState() == MediaDeviceState.STATE_GROUPING) {
-                    setUpDeviceIcon(device);
-                    updateProgressBarColor();
-                    setSingleLineLayout(device.getName(), false /* showSeekBar*/,
-                            true /* showProgressBar */, false /* showCheckBox */,
-                            false /* showEndTouchArea */);
+                    deviceStatusIcon = mContext.getDrawable(R.drawable.media_output_status_failed);
+                    subtitle = mContext.getString(R.string.media_output_dialog_connect_failed);
+                    clickListener = v -> onItemClick(v, device);
                 } else if (mController.getSelectedMediaDevice().size() > 1 && isSelected) {
                     // selected device in group
-                    boolean showEndArea =
-                            !Flags.enableOutputSwitcherSessionGrouping() || isDeselectable;
-                    updateUnmutedVolumeIcon(device);
-                    updateEndAreaForGroupCheckbox(device, true /* isSelected */, isDeselectable);
-                    disableFocusPropertyForView(mContainerLayout);
-                    setUpContentDescriptionForView(mSeekBar, device);
-                    setSingleLineLayout(device.getName(), true /* showSeekBar */,
-                            false /* showProgressBar */, true /* showCheckBox */,
-                            showEndArea /* showEndTouchArea */);
-                    initSeekbar(device, isCurrentSeekbarInvisible);
-                } else if (!mController.hasAdjustVolumeUserRestriction()
-                        && currentlyConnected) {
+                    groupStatus = new GroupStatus(
+                            true /* selected */,
+                            isDeselectable /* deselectable */);
+                    connectionState = ConnectionState.CONNECTED;
+                } else if (currentlyConnected) {
+                    connectionState = ConnectionState.CONNECTED;
                     // single selected device
-                    if (isMutingExpectedDeviceExist
-                            && !mController.isCurrentConnectedDeviceRemote()) {
-                        // mark as disconnected and set special click listener
-                        setUpDeviceIcon(device);
-                        updateFullItemClickListener(v -> cancelMuteAwaitConnection());
-                        setSingleLineLayout(device.getName());
-                    } else if (device.hasOngoingSession()) {
-                        mCurrentActivePosition = position;
-                        updateUnmutedVolumeIcon(device);
-                        updateEndClickAreaAsSessionEditing(device, device.isHostForOngoingSession()
-                                ? R.drawable.media_output_status_edit_session
-                                : R.drawable.ic_sound_bars_anim);
-                        mEndClickIcon.setVisibility(View.VISIBLE);
-                        setSingleLineLayout(device.getName(), true /* showSeekBar */,
-                                false /* showProgressBar */, false /* showCheckBox */,
-                                true /* showEndTouchArea */);
-                        initSeekbar(device, isCurrentSeekbarInvisible);
+                    if (device.hasOngoingSession()) {
+                        ongoingSessionStatus = new OngoingSessionStatus(
+                                device.isHostForOngoingSession());
                     } else if (mController.isCurrentConnectedDeviceRemote()
                             && !mController.getSelectableMediaDevice().isEmpty()) {
                         //If device is connected and there's other selectable devices, layout as
                         // one of selected devices.
-                        updateUnmutedVolumeIcon(device);
-                        updateEndAreaForGroupCheckbox(device, true /* isSelected */,
-                                isDeselectable);
-                        disableFocusPropertyForView(mContainerLayout);
-                        setUpContentDescriptionForView(mSeekBar, device);
-                        setSingleLineLayout(device.getName(), true /* showSeekBar */,
-                                false /* showProgressBar */, true /* showCheckBox */,
-                                true /* showEndTouchArea */);
-                        initSeekbar(device, isCurrentSeekbarInvisible);
-                    } else {
-                        updateUnmutedVolumeIcon(device);
-                        disableFocusPropertyForView(mContainerLayout);
-                        setUpContentDescriptionForView(mSeekBar, device);
-                        mCurrentActivePosition = position;
-                        setSingleLineLayout(device.getName(), true /* showSeekBar */,
-                                false /* showProgressBar */, false /* showCheckBox */,
-                                false /* showEndTouchArea */);
-                        initSeekbar(device, isCurrentSeekbarInvisible);
+                        groupStatus = new GroupStatus(
+                                true /* selected */,
+                                isDeselectable /* isDeselectable */);
                     }
                 } else if (isSelectable) {
                     //groupable device
-                    setUpDeviceIcon(device);
-                    updateEndAreaForGroupCheckbox(device, false /* isSelected */,
-                            true /* isDeselectable */);
+                    groupStatus = new GroupStatus(false /* selected */, true /* deselectable */);
                     if (!Flags.disableTransferWhenAppsDoNotSupport()
                             || isTransferable
                             || hasRouteListingPreferenceItem) {
-                        updateFullItemClickListener(v -> onItemClick(v, device));
+                        clickListener = v -> onItemClick(v, device);
                     }
-                    setSingleLineLayout(device.getName(), false /* showSeekBar */,
-                            false /* showProgressBar */, true /* showCheckBox */,
-                            true /* showEndTouchArea */);
+                    deviceDisabled = clickListener == null;
                 } else {
-                    setUpDeviceIcon(device);
-                    setSingleLineLayout(device.getName());
-                    Drawable deviceStatusIcon =
-                            device.hasOngoingSession() ? mContext.getDrawable(
-                                    R.drawable.ic_sound_bars_anim)
-                                    : Api34Impl.getDeviceStatusIconBasedOnSelectionBehavior(
-                                            device,
-                                            mContext);
-                    if (deviceStatusIcon != null) {
-                        updateDeviceStatusIcon(deviceStatusIcon);
-                        mStatusIcon.setVisibility(View.VISIBLE);
-                    }
-                    updateContentAlpha(
-                            updateClickActionBasedOnSelectionBehavior(device)
-                                    ? DEVICE_CONNECTED_ALPHA : DEVICE_DISCONNECTED_ALPHA);
+                    deviceStatusIcon = getDeviceStatusIcon(device, device.hasOngoingSession());
+                    clickListener = getClickListenerBasedOnSelectionBehavior(device);
+                    deviceDisabled = clickListener == null;
                 }
             }
+
+            if (connectionState == ConnectionState.CONNECTED || isDeviceGroup) {
+                mCurrentActivePosition = position;
+            }
+
+            if (isDeviceGroup) {
+                String sessionName = mController.getSessionName() == null ? ""
+                        : mController.getSessionName().toString();
+                updateTitle(sessionName);
+                updateUnmutedVolumeIcon(null /* device */);
+                updateGroupSeekBar(getGroupItemContentDescription(sessionName));
+                updateEndAreaForDeviceGroup();
+                updateItemBackground(ConnectionState.CONNECTED);
+            } else {
+                updateTitle(device.getName());
+                updateTitleIcon(device, connectionState, restrictVolumeAdjustment);
+                updateSeekBar(device, connectionState, restrictVolumeAdjustment,
+                        getDeviceItemContentDescription(device));
+                updateEndArea(device, connectionState, groupStatus, ongoingSessionStatus);
+                updateLoadingIndicator(connectionState);
+                updateFullItemClickListener(clickListener);
+                updateContentAlpha(deviceDisabled);
+                updateSubtitle(subtitle);
+                updateDeviceStatusIcon(deviceStatusIcon);
+                updateItemBackground(connectionState);
+            }
+        }
+
+        /** Renders the right side round pill button / checkbox. */
+        private void updateEndArea(@NonNull MediaDevice device, ConnectionState connectionState,
+                @Nullable GroupStatus groupStatus,
+                @Nullable OngoingSessionStatus ongoingSessionStatus) {
+            boolean showEndArea = false;
+            boolean isCheckbox = false;
+            // If both group status and the ongoing session status are present, only the ongoing
+            // session controls are displayed. The current layout design doesn't allow both group
+            // and ongoing session controls to be rendered simultaneously.
+            if (ongoingSessionStatus != null && connectionState == ConnectionState.CONNECTED) {
+                showEndArea = true;
+                updateEndAreaForOngoingSession(device, ongoingSessionStatus.host());
+            } else if (groupStatus != null && shouldShowGroupCheckbox(groupStatus)) {
+                showEndArea = true;
+                isCheckbox = true;
+                updateEndAreaForGroupCheckBox(device, groupStatus);
+            }
+            updateEndAreaVisibility(showEndArea, isCheckbox);
+        }
+
+        private boolean shouldShowGroupCheckbox(@NonNull GroupStatus groupStatus) {
+            if (Flags.enableOutputSwitcherDeviceGrouping()) {
+                return isGroupCheckboxEnabled(groupStatus);
+            }
+            return true;
+        }
+
+        private boolean isGroupCheckboxEnabled(@NonNull GroupStatus groupStatus) {
+            boolean disabled = groupStatus.selected() && !groupStatus.deselectable();
+            return !disabled;
         }
 
         public void setCheckBoxColor(CheckBox checkBox, int color) {
@@ -388,21 +347,34 @@
                     ColorStateList(states, colors));
         }
 
-        private void updateContentAlpha(float alphaValue) {
+        private void updateContentAlpha(boolean deviceDisabled) {
+            float alphaValue = deviceDisabled ? DEVICE_DISABLED_ALPHA : DEVICE_ACTIVE_ALPHA;
             mTitleIcon.setAlpha(alphaValue);
             mTitleText.setAlpha(alphaValue);
             mSubTitleText.setAlpha(alphaValue);
             mStatusIcon.setAlpha(alphaValue);
         }
 
-        private void updateEndClickAreaAsSessionEditing(MediaDevice device, @DrawableRes int id) {
-            updateEndClickAreaWithIcon(
+        private void updateEndAreaForDeviceGroup() {
+            updateEndAreaWithIcon(
+                    v -> {
+                        mShouldGroupSelectedMediaItems = false;
+                        notifyDataSetChanged();
+                    },
+                    R.drawable.media_output_item_expand_group,
+                    R.string.accessibility_expand_group);
+            updateEndAreaVisibility(true /* showEndArea */, false /* isCheckbox */);
+        }
+
+        private void updateEndAreaForOngoingSession(@NonNull MediaDevice device, boolean isHost) {
+            updateEndAreaWithIcon(
                     v -> mController.tryToLaunchInAppRoutingIntent(device.getId(), v),
-                    id,
+                    isHost ? R.drawable.media_output_status_edit_session
+                            : R.drawable.ic_sound_bars_anim,
                     R.string.accessibility_open_application);
         }
 
-        private void updateEndClickAreaWithIcon(View.OnClickListener clickListener,
+        private void updateEndAreaWithIcon(View.OnClickListener clickListener,
                 @DrawableRes int iconDrawableId,
                 @StringRes int accessibilityStringId) {
             updateEndAreaColor(mController.getColorSeekbarProgress());
@@ -415,9 +387,8 @@
             if (drawable instanceof AnimatedVectorDrawable) {
                 ((AnimatedVectorDrawable) drawable).start();
             }
-            if (Flags.enableOutputSwitcherSessionGrouping()) {
-                setUpContentDescriptionForView(
-                        mEndClickIcon, mContext.getString(accessibilityStringId));
+            if (Flags.enableOutputSwitcherDeviceGrouping()) {
+                mEndClickIcon.setContentDescription(mContext.getString(accessibilityStringId));
             }
         }
 
@@ -426,54 +397,55 @@
                     ColorStateList.valueOf(color));
         }
 
-        private boolean updateClickActionBasedOnSelectionBehavior(MediaDevice device) {
-            View.OnClickListener clickListener = Api34Impl.getClickListenerBasedOnSelectionBehavior(
+        @Nullable
+        private View.OnClickListener getClickListenerBasedOnSelectionBehavior(
+                @NonNull MediaDevice device) {
+            return Api34Impl.getClickListenerBasedOnSelectionBehavior(
                     device, mController, v -> onItemClick(v, device));
-            updateFullItemClickListener(clickListener);
-            return clickListener != null;
         }
 
-        private void updateConnectionFailedStatusIcon() {
-            mStatusIcon.setImageDrawable(
-                    mContext.getDrawable(R.drawable.media_output_status_failed));
-            mStatusIcon.setImageTintList(
-                    ColorStateList.valueOf(mController.getColorItemContent()));
-        }
-
-        private void updateDeviceStatusIcon(Drawable drawable) {
-            mStatusIcon.setImageDrawable(drawable);
-            mStatusIcon.setImageTintList(
-                    ColorStateList.valueOf(mController.getColorItemContent()));
-            if (drawable instanceof AnimatedVectorDrawable) {
-                ((AnimatedVectorDrawable) drawable).start();
+        @Nullable
+        private Drawable getDeviceStatusIcon(MediaDevice device, boolean hasOngoingSession) {
+            if (hasOngoingSession) {
+                return mContext.getDrawable(R.drawable.ic_sound_bars_anim);
+            } else {
+                return Api34Impl.getDeviceStatusIconBasedOnSelectionBehavior(device, mContext);
             }
         }
 
-        private void updateProgressBarColor() {
-            mProgressBar.getIndeterminateDrawable().setTintList(
-                    ColorStateList.valueOf(mController.getColorItemContent()));
+        void updateDeviceStatusIcon(@Nullable Drawable deviceStatusIcon) {
+            if (deviceStatusIcon == null) {
+                mStatusIcon.setVisibility(View.GONE);
+            } else {
+                mStatusIcon.setImageDrawable(deviceStatusIcon);
+                mStatusIcon.setImageTintList(
+                        ColorStateList.valueOf(mController.getColorItemContent()));
+                if (deviceStatusIcon instanceof AnimatedVectorDrawable) {
+                    ((AnimatedVectorDrawable) deviceStatusIcon).start();
+                }
+                mStatusIcon.setVisibility(View.VISIBLE);
+            }
         }
 
-        public void updateEndAreaForGroupCheckbox(MediaDevice device, boolean isSelected,
-                boolean isDeselectable) {
-            mEndTouchArea.setOnClickListener(null);
+        public void updateEndAreaForGroupCheckBox(@NonNull MediaDevice device,
+                @NonNull GroupStatus groupStatus) {
+            boolean isEnabled = isGroupCheckboxEnabled(groupStatus);
             mEndTouchArea.setOnClickListener(
-                    isDeselectable ? (v) -> mCheckBox.performClick() : null);
-            mEndTouchArea.setImportantForAccessibility(
-                    View.IMPORTANT_FOR_ACCESSIBILITY_YES);
-            updateEndAreaColor(isSelected ? mController.getColorSeekbarProgress()
+                    isEnabled ? (v) -> mCheckBox.performClick() : null);
+            mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+            updateEndAreaColor(groupStatus.selected() ? mController.getColorSeekbarProgress()
                     : mController.getColorItemBackground());
-            setUpContentDescriptionForView(mEndTouchArea, device);
+            mEndTouchArea.setContentDescription(getDeviceItemContentDescription(device));
             mCheckBox.setOnCheckedChangeListener(null);
-            mCheckBox.setChecked(isSelected);
+            mCheckBox.setChecked(groupStatus.selected());
             mCheckBox.setOnCheckedChangeListener(
-                    isDeselectable ? (buttonView, isChecked) -> onGroupActionTriggered(!isSelected,
-                            device) : null);
-            mCheckBox.setEnabled(isDeselectable);
+                    isEnabled ? (buttonView, isChecked) -> onGroupActionTriggered(
+                            !groupStatus.selected(), device) : null);
+            mCheckBox.setEnabled(isEnabled);
             setCheckBoxColor(mCheckBox, mController.getColorItemContent());
         }
 
-        private void updateFullItemClickListener(View.OnClickListener listener) {
+        private void updateFullItemClickListener(@Nullable View.OnClickListener listener) {
             mContainerLayout.setOnClickListener(listener);
             updateIconAreaClickListener(listener);
         }
@@ -482,7 +454,8 @@
         void onBindPairNewDevice() {
             mTitleText.setTextColor(mController.getColorItemContent());
             mCheckBox.setVisibility(View.GONE);
-            setSingleLineLayout(mContext.getText(R.string.media_output_dialog_pairing_new));
+            updateTitle(mContext.getText(R.string.media_output_dialog_pairing_new));
+            updateItemBackground(ConnectionState.DISCONNECTED);
             final Drawable addDrawable = mContext.getDrawable(R.drawable.ic_add);
             mTitleIcon.setImageDrawable(addDrawable);
             mTitleIcon.setImageTintList(
@@ -536,27 +509,15 @@
             notifyDataSetChanged();
         }
 
-        private void disableFocusPropertyForView(View view) {
-            view.setFocusable(false);
-            view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
-        }
-
-        private void enableFocusPropertyForView(View view) {
-            view.setFocusable(true);
-            view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
-        }
-
-        private void setUpContentDescriptionForView(View view, MediaDevice device) {
-            setUpContentDescriptionForView(
-                    view,
-                    mContext.getString(device.getDeviceType()
-                            == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE
+        private String getDeviceItemContentDescription(@NonNull MediaDevice device) {
+            return mContext.getString(
+                    device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE
                             ? R.string.accessibility_bluetooth_name
-                            : R.string.accessibility_cast_name, device.getName()));
+                            : R.string.accessibility_cast_name, device.getName());
         }
 
-        protected void setUpContentDescriptionForView(View view, String description) {
-            view.setContentDescription(description);
+        private String getGroupItemContentDescription(String sessionName) {
+            return mContext.getString(R.string.accessibility_cast_name, sessionName);
         }
     }
 
@@ -593,6 +554,7 @@
         }
 
         @DoNotInline
+        @Nullable
         static Drawable getDeviceStatusIconBasedOnSelectionBehavior(MediaDevice device,
                 Context context) {
             switch (device.getSelectionBehavior()) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java
index a7786c8..f97b3d3 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java
@@ -22,7 +22,6 @@
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.graphics.drawable.ClipDrawable;
-import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
 import android.graphics.drawable.Icon;
 import android.graphics.drawable.LayerDrawable;
@@ -39,6 +38,7 @@
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -56,6 +56,16 @@
 public abstract class MediaOutputBaseAdapter extends
         RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
+    record OngoingSessionStatus(boolean host) {}
+
+    record GroupStatus(Boolean selected, Boolean deselectable) {}
+
+    enum ConnectionState {
+        CONNECTED,
+        CONNECTING,
+        DISCONNECTED,
+    }
+
     protected final MediaSwitchingController mController;
 
     private static final int UNMUTE_DEFAULT_VOLUME = 2;
@@ -175,6 +185,7 @@
             mCheckBox.setVisibility(View.GONE);
             mStatusIcon.setVisibility(View.GONE);
             mEndTouchArea.setVisibility(View.GONE);
+            mEndClickIcon.setVisibility(View.GONE);
             mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
             mContainerLayout.setOnClickListener(null);
             mContainerLayout.setContentDescription(null);
@@ -184,75 +195,96 @@
             mIconAreaLayout.setBackground(null);
             mSeekBar.setProgressTintList(
                     ColorStateList.valueOf(mController.getColorSeekbarProgress()));
+            enableFocusPropertyForView(mContainerLayout);
         }
 
-        void setSingleLineLayout(CharSequence title) {
-            setSingleLineLayout(title, false, false, false, false);
+        void updateTitle(CharSequence title) {
+            mTitleText.setText(title);
         }
 
-        void setSingleLineLayout(CharSequence title, boolean showSeekBar,
-                boolean showProgressBar, boolean showCheckBox, boolean showEndTouchArea) {
-            boolean isActive = showSeekBar || showProgressBar;
+        void updateSeekBar(@NonNull MediaDevice device, ConnectionState connectionState,
+                boolean restrictVolumeAdjustment, String contentDescription) {
+            boolean showSeekBar =
+                    connectionState == ConnectionState.CONNECTED && !restrictVolumeAdjustment;
             if (!mCornerAnimator.isRunning()) {
-                final Drawable backgroundDrawable =
-                        showSeekBar
-                                ? mContext.getDrawable(
-                                        R.drawable.media_output_item_background_active)
-                                .mutate() : mContext.getDrawable(
-                                        R.drawable.media_output_item_background)
-                                .mutate();
-                mItemLayout.setBackground(backgroundDrawable);
                 if (showSeekBar) {
                     updateSeekbarProgressBackground();
                 }
             }
-            mItemLayout.setBackgroundTintList(
-                    ColorStateList.valueOf(isActive ? mController.getColorConnectedItemBackground()
-                            : mController.getColorItemBackground()));
-            mProgressBar.setVisibility(showProgressBar ? View.VISIBLE : View.GONE);
-            mSeekBar.setAlpha(1);
+            boolean isCurrentSeekbarInvisible = mSeekBar.getVisibility() == View.GONE;
             mSeekBar.setVisibility(showSeekBar ? View.VISIBLE : View.GONE);
-            if (!showSeekBar) {
-                mSeekBar.resetVolume();
-            }
-            mTitleText.setText(title);
-            mCheckBox.setVisibility(showCheckBox ? View.VISIBLE : View.GONE);
-            mEndTouchArea.setVisibility(showEndTouchArea ? View.VISIBLE : View.GONE);
-            if (Flags.enableOutputSwitcherSessionGrouping()) {
-                mEndClickIcon.setVisibility(
-                        !showCheckBox && showEndTouchArea ? View.VISIBLE : View.GONE);
-            }
-        }
-
-        void setTwoLineLayout(CharSequence title, boolean showSeekBar,
-                boolean showProgressBar, boolean showSubtitle, boolean showStatus) {
-            setTwoLineLayout(title, showSeekBar, showProgressBar, showSubtitle, showStatus, false);
-        }
-
-        void setTwoLineLayout(CharSequence title,
-                boolean showSeekBar, boolean showProgressBar, boolean showSubtitle,
-                boolean showStatus , boolean showEndTouchArea) {
-            mStatusIcon.setVisibility(showStatus ? View.VISIBLE : View.GONE);
-            mSeekBar.setAlpha(1);
-            mSeekBar.setVisibility(showSeekBar ? View.VISIBLE : View.GONE);
-            final Drawable backgroundDrawable;
-            backgroundDrawable = mContext.getDrawable(
-                    showSeekBar ? R.drawable.media_output_item_background_active
-                            : R.drawable.media_output_item_background).mutate();
-            mItemLayout.setBackgroundTintList(ColorStateList.valueOf(
-                    showSeekBar ? mController.getColorConnectedItemBackground()
-                            : mController.getColorItemBackground()
-            ));
             if (showSeekBar) {
-                updateSeekbarProgressBackground();
+                initSeekbar(device, isCurrentSeekbarInvisible);
+                disableFocusPropertyForView(mContainerLayout);
+                mSeekBar.setContentDescription(contentDescription);
+            } else {
+                enableFocusPropertyForView(mContainerLayout);
             }
-            //update end click area by isActive
+        }
+
+        void updateGroupSeekBar(String contentDescription) {
+            updateSeekbarProgressBackground();
+            boolean isCurrentSeekbarInvisible = mSeekBar.getVisibility() == View.GONE;
+            mSeekBar.setVisibility(View.VISIBLE);
+            initGroupSeekbar(isCurrentSeekbarInvisible);
+            disableFocusPropertyForView(mContainerLayout);
+            mSeekBar.setContentDescription(contentDescription);
+        }
+
+        private void disableFocusPropertyForView(View view) {
+            view.setFocusable(false);
+            view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
+        }
+
+        private void enableFocusPropertyForView(View view) {
+            view.setFocusable(true);
+            view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
+        }
+
+        void updateSubtitle(@Nullable String subtitle) {
+            if (subtitle == null) {
+                mSubTitleText.setVisibility(View.GONE);
+            } else {
+                mSubTitleText.setText(subtitle);
+                mSubTitleText.setVisibility(View.VISIBLE);
+            }
+        }
+
+        protected void updateLoadingIndicator(ConnectionState connectionState) {
+            if (connectionState == ConnectionState.CONNECTING) {
+                mProgressBar.setVisibility(View.VISIBLE);
+                mProgressBar.getIndeterminateDrawable().setTintList(
+                        ColorStateList.valueOf(mController.getColorItemContent()));
+            } else {
+                mProgressBar.setVisibility(View.GONE);
+            }
+        }
+
+        protected void updateItemBackground(ConnectionState connectionState) {
+            boolean isConnected = connectionState == ConnectionState.CONNECTED;
+            boolean isConnecting = connectionState == ConnectionState.CONNECTING;
+
+            // Increase corner radius for a connected state.
+            if (!mCornerAnimator.isRunning()) {  // FIXME(b/387576145): This is always True.
+                int backgroundDrawableId =
+                        isConnected ? R.drawable.media_output_item_background_active
+                                : R.drawable.media_output_item_background;
+                mItemLayout.setBackground(mContext.getDrawable(backgroundDrawableId).mutate());
+            }
+
+            // Connected or connecting state has a darker background.
+            int backgroundColor = isConnected || isConnecting
+                    ? mController.getColorConnectedItemBackground()
+                    : mController.getColorItemBackground();
+            mItemLayout.setBackgroundTintList(ColorStateList.valueOf(backgroundColor));
+        }
+
+        protected void updateEndAreaVisibility(boolean showEndTouchArea, boolean isCheckbox) {
             mEndTouchArea.setVisibility(showEndTouchArea ? View.VISIBLE : View.GONE);
-            mEndClickIcon.setVisibility(showEndTouchArea ? View.VISIBLE : View.GONE);
-            mItemLayout.setBackground(backgroundDrawable);
-            mProgressBar.setVisibility(showProgressBar ? View.VISIBLE : View.GONE);
-            mSubTitleText.setVisibility(showSubtitle ? View.VISIBLE : View.GONE);
-            mTitleText.setText(title);
+            if (showEndTouchArea) {
+                mCheckBox.setVisibility(isCheckbox ? View.VISIBLE : View.GONE);
+                mEndClickIcon.setVisibility(!isCheckbox ? View.VISIBLE : View.GONE);
+            }
         }
 
         void updateSeekbarProgressBackground() {
@@ -269,7 +301,8 @@
         }
 
         private void initializeSeekbarVolume(
-                MediaDevice device, int currentVolume, boolean isCurrentSeekbarInvisible) {
+                @Nullable MediaDevice device, int currentVolume,
+                boolean isCurrentSeekbarInvisible) {
             if (!mIsDragging) {
                 if (mSeekBar.getVolume() != currentVolume && (mLatestUpdateVolume == -1
                         || currentVolume == mLatestUpdateVolume)) {
@@ -306,7 +339,7 @@
             }
         }
 
-        void initSeekbar(MediaDevice device, boolean isCurrentSeekbarInvisible) {
+        void initSeekbar(@NonNull MediaDevice device, boolean isCurrentSeekbarInvisible) {
             SeekBarVolumeControl volumeControl = new SeekBarVolumeControl() {
                 @Override
                 public int getVolume() {
@@ -377,20 +410,34 @@
             });
         }
 
-        void updateMutedVolumeIcon(MediaDevice device) {
-            mIconAreaLayout.setBackground(
-                    mContext.getDrawable(R.drawable.media_output_item_background_active));
-            updateTitleIcon(device, true /* isMutedVolumeIcon */);
+        protected void updateTitleIcon(@NonNull MediaDevice device,
+                ConnectionState connectionState, boolean restrictVolumeAdjustment) {
+            if (connectionState == ConnectionState.CONNECTED) {
+                if (restrictVolumeAdjustment) {
+                    // Volume icon without a background that makes it looks like part of a seekbar.
+                    updateVolumeIcon(device, false /* isMutedIcon */);
+                } else {
+                    updateUnmutedVolumeIcon(device);
+                }
+            } else {
+                setUpDeviceIcon(device);
+            }
         }
 
-        void updateUnmutedVolumeIcon(MediaDevice device) {
+        void updateMutedVolumeIcon(@Nullable MediaDevice device) {
+            mIconAreaLayout.setBackground(
+                    mContext.getDrawable(R.drawable.media_output_item_background_active));
+            updateVolumeIcon(device, true /* isMutedVolumeIcon */);
+        }
+
+        void updateUnmutedVolumeIcon(@Nullable MediaDevice device) {
             mIconAreaLayout.setBackground(
                     mContext.getDrawable(R.drawable.media_output_title_icon_area)
             );
-            updateTitleIcon(device, false /* isMutedVolumeIcon */);
+            updateVolumeIcon(device, false /* isMutedVolumeIcon */);
         }
 
-        void updateTitleIcon(MediaDevice device, boolean isMutedVolumeIcon) {
+        void updateVolumeIcon(@Nullable MediaDevice device, boolean isMutedVolumeIcon) {
             boolean isInputMediaDevice = device instanceof InputMediaDevice;
             int id = getDrawableId(isInputMediaDevice, isMutedVolumeIcon);
             mTitleIcon.setImageDrawable(mContext.getDrawable(id));
@@ -412,22 +459,10 @@
                     : R.drawable.media_output_icon_volume;
         }
 
-        void updateIconAreaClickListener(View.OnClickListener listener) {
+        void updateIconAreaClickListener(@Nullable View.OnClickListener listener) {
             mIconAreaLayout.setOnClickListener(listener);
         }
 
-        void initFakeActiveDevice(MediaDevice device) {
-            disableSeekBar();
-            updateTitleIcon(device, false /* isMutedIcon */);
-            final Drawable backgroundDrawable = mContext.getDrawable(
-                                    R.drawable.media_output_item_background_active)
-                            .mutate();
-            mItemLayout.setBackground(backgroundDrawable);
-            mItemLayout.setBackgroundTintList(
-                    ColorStateList.valueOf(mController.getColorConnectedItemBackground()));
-            mIconAreaLayout.setBackground(null);
-        }
-
         private void initAnimator() {
             mCornerAnimator = ValueAnimator.ofFloat(mInactiveRadius, mActiveRadius);
             mCornerAnimator.setDuration(ANIM_DURATION);
@@ -493,7 +528,7 @@
 
         }
 
-        protected void setUpDeviceIcon(MediaDevice device) {
+        protected void setUpDeviceIcon(@NonNull MediaDevice device) {
             ThreadUtils.postOnBackgroundThread(() -> {
                 Icon icon = mController.getDeviceIconCompat(device).toIcon(mContext);
                 ThreadUtils.postOnMainThread(() -> {
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java
index 19409b3..9d37580 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java
@@ -733,7 +733,7 @@
             selectedDevicesIds.add(connectedMediaDevice.getId());
         }
         boolean groupSelectedDevices =
-                com.android.media.flags.Flags.enableOutputSwitcherSessionGrouping();
+                com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping();
         int nextSelectedItemIndex = 0;
         boolean suggestedDeviceAdded = false;
         boolean displayGroupAdded = false;
@@ -948,6 +948,7 @@
         return mLocalMediaManager.getSessionVolume();
     }
 
+    @Nullable
     CharSequence getSessionName() {
         return mLocalMediaManager.getSessionName();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/notetask/OWNERS b/packages/SystemUI/src/com/android/systemui/notetask/OWNERS
index 0ec996b..9b4902a 100644
--- a/packages/SystemUI/src/com/android/systemui/notetask/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/notetask/OWNERS
@@ -6,5 +6,4 @@
 mgalhardo@google.com
 petrcermak@google.com
 stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com
\ No newline at end of file
+vanjan@google.com
diff --git a/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModel.kt
index 1b92510..9319961 100644
--- a/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayActionsViewModel.kt
@@ -24,7 +24,7 @@
 import com.android.compose.animation.scene.UserActionResult.ShowOverlay
 import com.android.compose.animation.scene.UserActionResult.ShowOverlay.HideCurrentOverlays
 import com.android.systemui.scene.shared.model.Overlays
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
@@ -38,7 +38,7 @@
             mapOf(
                 Swipe.Up to HideOverlay(Overlays.NotificationsShade),
                 Back to HideOverlay(Overlays.NotificationsShade),
-                Swipe.Down(fromSource = SceneContainerEdge.TopRight) to
+                Swipe.Down(fromSource = SceneContainerArea.EndHalf) to
                     ShowOverlay(
                         Overlays.QuickSettingsShade,
                         hideCurrentOverlays = HideCurrentOverlays.Some(Overlays.NotificationsShade),
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
index d5cd8dc..b8971d1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
@@ -43,7 +43,9 @@
 import com.android.systemui.settings.brightness.BrightnessMirrorHandler;
 import com.android.systemui.settings.brightness.BrightnessSliderController;
 import com.android.systemui.settings.brightness.MirrorController;
+import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.SplitShadeStateController;
 import com.android.systemui.tuner.TunerService;
 
@@ -101,10 +103,11 @@
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             SplitShadeStateController splitShadeStateController,
             Provider<QSLongPressEffect> longPRessEffectProvider,
-            MediaCarouselInteractor mediaCarouselInteractor) {
+            MediaCarouselInteractor mediaCarouselInteractor,
+            @ShadeDisplayAware ConfigurationController configurationController) {
         super(view, qsHost, qsCustomizerController, usingMediaPlayer, mediaHost,
                 metricsLogger, uiEventLogger, qsLogger, dumpManager, splitShadeStateController,
-                longPRessEffectProvider);
+                longPRessEffectProvider, configurationController);
         mTunerService = tunerService;
         mQsCustomizerController = qsCustomizerController;
         mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
index c8f7be6..b0b02fa 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
@@ -41,6 +41,10 @@
 import com.android.systemui.qs.logging.QSLogger;
 import com.android.systemui.qs.tileimpl.QSTileViewImpl;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.shade.ShadeDisplayAware;
+import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
 import com.android.systemui.statusbar.policy.SplitShadeStateController;
 import com.android.systemui.util.ViewController;
 import com.android.systemui.util.animation.DisappearParameters;
@@ -95,6 +99,7 @@
     private final QSHost.Callback mQSHostCallback = this::setTiles;
 
     private SplitShadeStateController mSplitShadeStateController;
+    private final ConfigurationController mConfigurationController;
 
     private final Provider<QSLongPressEffect> mLongPressEffectProvider;
 
@@ -111,39 +116,42 @@
 
     private boolean mLastListening;
 
+    private final ConfigurationListener mConfigurationListener = new ConfigurationListener() {
+        @Override
+        public void onConfigChanged(Configuration newConfig) {
+            final boolean previousSplitShadeState = mShouldUseSplitNotificationShade;
+            final int previousOrientation = mLastOrientation;
+            final int previousScreenLayout = mLastScreenLayout;
+            mShouldUseSplitNotificationShade = mSplitShadeStateController
+                    .shouldUseSplitNotificationShade(getResources());
+            mLastOrientation = newConfig.orientation;
+            mLastScreenLayout = newConfig.screenLayout;
+
+            mQSLogger.logOnConfigurationChanged(
+                    /* oldOrientation= */ previousOrientation,
+                    /* newOrientation= */ mLastOrientation,
+                    /* oldShouldUseSplitShade= */ previousSplitShadeState,
+                    /* newShouldUseSplitShade= */ mShouldUseSplitNotificationShade,
+                    /* oldScreenLayout= */ previousScreenLayout,
+                    /* newScreenLayout= */ mLastScreenLayout,
+                    /* containerName= */ mView.getDumpableTag());
+
+            if (SceneContainerFlag.isEnabled()) {
+                setLayoutForMediaInScene();
+            } else {
+                switchTileLayoutIfNeeded();
+            }
+            onConfigurationChanged();
+            if (previousSplitShadeState != mShouldUseSplitNotificationShade) {
+                onSplitShadeChanged(mShouldUseSplitNotificationShade);
+            }
+        }
+    };
+    /** When {@link ShadeWindowGoesAround} is enabled, this listener is not used anymore.*/
     @VisibleForTesting
+    @Deprecated
     protected final QSPanel.OnConfigurationChangedListener mOnConfigurationChangedListener =
-            new QSPanel.OnConfigurationChangedListener() {
-                @Override
-                public void onConfigurationChange(Configuration newConfig) {
-                    final boolean previousSplitShadeState = mShouldUseSplitNotificationShade;
-                    final int previousOrientation = mLastOrientation;
-                    final int previousScreenLayout = mLastScreenLayout;
-                    mShouldUseSplitNotificationShade = mSplitShadeStateController
-                            .shouldUseSplitNotificationShade(getResources());
-                    mLastOrientation = newConfig.orientation;
-                    mLastScreenLayout = newConfig.screenLayout;
-
-                    mQSLogger.logOnConfigurationChanged(
-                        /* oldOrientation= */ previousOrientation,
-                        /* newOrientation= */ mLastOrientation,
-                        /* oldShouldUseSplitShade= */ previousSplitShadeState,
-                        /* newShouldUseSplitShade= */ mShouldUseSplitNotificationShade,
-                        /* oldScreenLayout= */ previousScreenLayout,
-                        /* newScreenLayout= */ mLastScreenLayout,
-                        /* containerName= */ mView.getDumpableTag());
-
-                    if (SceneContainerFlag.isEnabled()) {
-                        setLayoutForMediaInScene();
-                    } else {
-                        switchTileLayoutIfNeeded();
-                    }
-                    onConfigurationChanged();
-                    if (previousSplitShadeState != mShouldUseSplitNotificationShade) {
-                        onSplitShadeChanged(mShouldUseSplitNotificationShade);
-                    }
-                }
-            };
+            newConfig -> mConfigurationListener.onConfigChanged(newConfig);
 
     protected void onConfigurationChanged() { }
 
@@ -173,7 +181,8 @@
             QSLogger qsLogger,
             DumpManager dumpManager,
             SplitShadeStateController splitShadeStateController,
-            Provider<QSLongPressEffect> longPressEffectProvider
+            Provider<QSLongPressEffect> longPressEffectProvider,
+            @ShadeDisplayAware ConfigurationController configurationController
     ) {
         super(view);
         mHost = host;
@@ -185,6 +194,7 @@
         mQSLogger = qsLogger;
         mDumpManager = dumpManager;
         mSplitShadeStateController = splitShadeStateController;
+        mConfigurationController = configurationController;
         mShouldUseSplitNotificationShade =
                 mSplitShadeStateController.shouldUseSplitNotificationShade(getResources());
         mLongPressEffectProvider = longPressEffectProvider;
@@ -238,7 +248,11 @@
         if (!SceneContainerFlag.isEnabled()) {
             mMediaHost.addVisibilityChangeListener(mMediaHostVisibilityListener);
         }
-        mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
+        if (ShadeWindowGoesAround.isEnabled()) {
+            mConfigurationController.addCallback(mConfigurationListener);
+        } else {
+            mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
+        }
         // We were not attached and the configuration may have changed, trigger the listener.
         if (mView.hadConfigurationChangeWhileDetached()) {
             mOnConfigurationChangedListener.onConfigurationChange(
@@ -272,8 +286,11 @@
     @Override
     protected void onViewDetached() {
         mQSLogger.logOnViewDetached(mLastOrientation, mView.getDumpableTag());
-        mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
-
+        if (ShadeWindowGoesAround.isEnabled()) {
+            mConfigurationController.removeCallback(mConfigurationListener);
+        } else {
+            mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
+        }
         // Call directly so mLastListening is not modified. We want that to have the last actual
         // value.
         mView.getTileLayout().setListening(false, mUiEventLogger);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java
index bc695bdd4..75628a0 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java
@@ -35,6 +35,8 @@
 import com.android.systemui.qs.logging.QSLogger;
 import com.android.systemui.res.R;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.shade.ShadeDisplayAware;
+import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.SplitShadeStateController;
 import com.android.systemui.util.leak.RotationUtils;
 
@@ -66,11 +68,12 @@
             MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
             DumpManager dumpManager, SplitShadeStateController splitShadeStateController,
             Provider<QSLongPressEffect> longPressEffectProvider,
-            MediaCarouselInteractor mediaCarouselInteractor
+            MediaCarouselInteractor mediaCarouselInteractor,
+            @ShadeDisplayAware ConfigurationController configurationController
     ) {
         super(view, qsHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
                 uiEventLogger, qsLogger, dumpManager, splitShadeStateController,
-                longPressEffectProvider);
+                longPressEffectProvider, configurationController);
         mUsingCollapsedLandscapeMediaProvider = usingCollapsedLandscapeMediaProvider;
         mMediaCarouselInteractor = mediaCarouselInteractor;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
index cf3b496..28540d4 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
@@ -883,7 +883,7 @@
         var currentTransition: ExpansionTransition? = null
 
         fun snapTo(scene: SceneKey) {
-            state.snapToScene(scene)
+            state.snapTo(scene)
             currentTransition = null
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt
index 0dade74..c09d319 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt
@@ -95,8 +95,8 @@
 @AssistedInject
 constructor(
     containerViewModelFactory: QuickSettingsContainerViewModel.Factory,
+    @ShadeDisplayAware private val resources: Resources,
     quickQuickSettingsViewModelFactory: QuickQuickSettingsViewModel.Factory,
-    @Main private val resources: Resources,
     footerActionsViewModelFactory: FooterActionsViewModel.Factory,
     private val footerActionsController: FooterActionsController,
     private val sysuiStatusBarStateController: SysuiStatusBarStateController,
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/dagger/PanelsModule.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/dagger/PanelsModule.kt
index f4bf53ca..325c6caf 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/dagger/PanelsModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/dagger/PanelsModule.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.qs.panels.dagger
 
+import com.android.systemui.CoreStartable
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.log.LogBuffer
 import com.android.systemui.log.LogBufferFactory
@@ -23,6 +24,7 @@
 import com.android.systemui.qs.panels.data.repository.DefaultLargeTilesRepositoryImpl
 import com.android.systemui.qs.panels.domain.interactor.EditTilesResetInteractor
 import com.android.systemui.qs.panels.domain.interactor.SizedTilesResetInteractor
+import com.android.systemui.qs.panels.domain.startable.QSPanelsCoreStartable
 import com.android.systemui.qs.panels.shared.model.GridLayoutType
 import com.android.systemui.qs.panels.shared.model.InfiniteGridLayoutType
 import com.android.systemui.qs.panels.shared.model.PaginatedGridLayoutType
@@ -36,6 +38,8 @@
 import dagger.Binds
 import dagger.Module
 import dagger.Provides
+import dagger.multibindings.ClassKey
+import dagger.multibindings.IntoMap
 import dagger.multibindings.IntoSet
 import javax.inject.Named
 
@@ -57,6 +61,11 @@
 
     @Binds @Named("Default") fun bindDefaultGridLayout(impl: PaginatedGridLayout): GridLayout
 
+    @Binds
+    @IntoMap
+    @ClassKey(QSPanelsCoreStartable::class)
+    fun bindQSPanelsCoreStartable(impl: QSPanelsCoreStartable): CoreStartable
+
     companion object {
         @Provides
         @SysUISingleton
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepository.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepository.kt
deleted file mode 100644
index 6746efa..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepository.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs.panels.data.repository
-
-import android.content.res.Resources
-import com.android.systemui.common.ui.data.repository.ConfigurationRepository
-import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.res.R
-import com.android.systemui.shade.ShadeDisplayAware
-import com.android.systemui.util.kotlin.emitOnStart
-import javax.inject.Inject
-import kotlinx.coroutines.flow.map
-
-/**
- * Provides the number of [rows] to use with a paginated grid, by tracking the resource
- * [R.integer.quick_settings_max_rows].
- */
-@SysUISingleton
-class PaginatedGridRepository
-@Inject
-constructor(
-    @ShadeDisplayAware private val resources: Resources,
-    @ShadeDisplayAware configurationRepository: ConfigurationRepository,
-) {
-    val rows =
-        configurationRepository.onConfigurationChange.emitOnStart().map {
-            resources.getInteger(R.integer.quick_settings_paginated_grid_num_rows)
-        }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepository.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepository.kt
index 19e4fd5..11b014c 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/data/repository/QSPreferencesRepository.kt
@@ -28,6 +28,7 @@
 import com.android.systemui.log.core.Logger
 import com.android.systemui.qs.panels.shared.model.PanelsLog
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import com.android.systemui.settings.UserFileManager
 import com.android.systemui.user.data.repository.UserRepository
 import com.android.systemui.util.kotlin.SharedPreferencesExt.observe
@@ -83,12 +84,78 @@
             .flowOn(backgroundDispatcher)
 
     /** Sets for the current user the set of [TileSpec] to display as large tiles. */
-    fun setLargeTilesSpecs(specs: Set<TileSpec>) {
+    fun writeLargeTileSpecs(specs: Set<TileSpec>) {
         with(getSharedPrefs(userRepository.getSelectedUserInfo().id)) {
-            edit().putStringSet(LARGE_TILES_SPECS_KEY, specs.map { it.spec }.toSet()).apply()
+            writeLargeTileSpecs(specs)
+            setLargeTilesDefault(false)
         }
     }
 
+    suspend fun deleteLargeTileDataJob() {
+        userRepository.selectedUserInfo.collect { userInfo ->
+            getSharedPrefs(userInfo.id)
+                .edit()
+                .remove(LARGE_TILES_SPECS_KEY)
+                .remove(LARGE_TILES_DEFAULT_KEY)
+                .apply()
+        }
+    }
+
+    private fun SharedPreferences.writeLargeTileSpecs(specs: Set<TileSpec>) {
+        edit().putStringSet(LARGE_TILES_SPECS_KEY, specs.map { it.spec }.toSet()).apply()
+    }
+
+    /**
+     * Sets the initial set of large tiles. One of the following cases will happen:
+     * * If we are setting the default set (no value stored in settings for the list of tiles), set
+     *   the large tiles based on [defaultLargeTilesRepository]. We do this to signal future reboots
+     *   that we have performed the upgrade path once. In this case, we will mark that we set them
+     *   as the default in case a restore needs to modify them later.
+     * * If we got a list of tiles restored from a device and nothing has modified the list of
+     *   tiles, set all the restored tiles to large. Note that if we also restored a set of large
+     *   tiles before this was called, [LARGE_TILES_DEFAULT_KEY] will be false and we won't
+     *   overwrite it.
+     * * If we got a list of tiles from settings, we consider that we upgraded in place and then we
+     *   will set all those tiles to large IF there's no current set of large tiles.
+     *
+     * Even if largeTilesSpec is read Eagerly before we know if we are in an initial state, because
+     * we are not writing the default values to the SharedPreferences, the file will not contain the
+     * key and this call will succeed, as long as there hasn't been any calls to setLargeTilesSpecs
+     * for that user before.
+     */
+    fun setInitialOrUpgradeLargeTiles(upgradePath: TilesUpgradePath, userId: Int) {
+        with(getSharedPrefs(userId)) {
+            when (upgradePath) {
+                is TilesUpgradePath.DefaultSet -> {
+                    writeLargeTileSpecs(defaultLargeTilesRepository.defaultLargeTiles)
+                    logger.i("Large tiles set to default on init")
+                    setLargeTilesDefault(true)
+                }
+                is TilesUpgradePath.RestoreFromBackup -> {
+                    if (
+                        getBoolean(LARGE_TILES_DEFAULT_KEY, false) ||
+                            !contains(LARGE_TILES_SPECS_KEY)
+                    ) {
+                        writeLargeTileSpecs(upgradePath.value)
+                        logger.i("Tiles restored from backup set to large: ${upgradePath.value}")
+                        setLargeTilesDefault(false)
+                    }
+                }
+                is TilesUpgradePath.ReadFromSettings -> {
+                    if (!contains(LARGE_TILES_SPECS_KEY)) {
+                        writeLargeTileSpecs(upgradePath.value)
+                        logger.i("Tiles read from settings set to large: ${upgradePath.value}")
+                        setLargeTilesDefault(false)
+                    }
+                }
+            }
+        }
+    }
+
+    private fun SharedPreferences.setLargeTilesDefault(value: Boolean) {
+        edit().putBoolean(LARGE_TILES_DEFAULT_KEY, value).apply()
+    }
+
     private fun getSharedPrefs(userId: Int): SharedPreferences {
         return userFileManager.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE, userId)
     }
@@ -96,6 +163,7 @@
     companion object {
         private const val TAG = "QSPreferencesRepository"
         private const val LARGE_TILES_SPECS_KEY = "large_tiles_specs"
+        private const val LARGE_TILES_DEFAULT_KEY = "large_tiles_default"
         const val FILE_NAME = "quick_settings_prefs"
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractor.kt
index 23c79f5..482cd40 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractor.kt
@@ -44,6 +44,7 @@
     @PanelsLog private val logBuffer: LogBuffer,
     @Application private val applicationScope: CoroutineScope,
 ) {
+
     val largeTilesSpecs =
         preferencesInteractor.largeTilesSpecs
             .onEach { logChange(it) }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSPreferencesInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSPreferencesInteractor.kt
index 22543b1..9b98797 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSPreferencesInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSPreferencesInteractor.kt
@@ -19,6 +19,7 @@
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.qs.panels.data.repository.QSPreferencesRepository
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 
@@ -27,6 +28,20 @@
     val largeTilesSpecs: Flow<Set<TileSpec>> = repo.largeTilesSpecs
 
     fun setLargeTilesSpecs(specs: Set<TileSpec>) {
-        repo.setLargeTilesSpecs(specs)
+        repo.writeLargeTileSpecs(specs)
+    }
+
+    /**
+     * This method should be called to indicate that a "new" set of tiles has been determined for a
+     * particular user coming from different upgrade sources.
+     *
+     * @see TilesUpgradePath for more information
+     */
+    fun setInitialOrUpgradeLargeTilesSpecs(specs: TilesUpgradePath, user: Int) {
+        repo.setInitialOrUpgradeLargeTiles(specs, user)
+    }
+
+    suspend fun deleteLargeTilesDataJob() {
+        repo.deleteLargeTileDataJob()
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/startable/QSPanelsCoreStartable.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/startable/QSPanelsCoreStartable.kt
new file mode 100644
index 0000000..e279735
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/startable/QSPanelsCoreStartable.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.panels.domain.startable
+
+import com.android.app.tracing.coroutines.launchTraced
+import com.android.systemui.CoreStartable
+import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.qs.flags.QsInCompose
+import com.android.systemui.qs.panels.domain.interactor.QSPreferencesInteractor
+import com.android.systemui.qs.pipeline.data.repository.TileSpecRepository
+import javax.inject.Inject
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.receiveAsFlow
+import kotlinx.coroutines.launch
+
+class QSPanelsCoreStartable
+@Inject
+constructor(
+    private val tileSpecRepository: TileSpecRepository,
+    private val preferenceInteractor: QSPreferencesInteractor,
+    @Background private val backgroundApplicationScope: CoroutineScope,
+) : CoreStartable {
+    override fun start() {
+        if (QsInCompose.isEnabled) {
+            backgroundApplicationScope.launchTraced("QSPanelsCoreStartable.startingLargeTiles") {
+                tileSpecRepository.tilesUpgradePath.receiveAsFlow().collect { (tiles, userId) ->
+                    preferenceInteractor.setInitialOrUpgradeLargeTilesSpecs(tiles, userId)
+                }
+            }
+        } else {
+            backgroundApplicationScope.launch { preferenceInteractor.deleteLargeTilesDataJob() }
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/PaginatedGridLayout.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/PaginatedGridLayout.kt
index c72381f..1a7ef62 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/PaginatedGridLayout.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/PaginatedGridLayout.kt
@@ -39,6 +39,7 @@
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.input.pointer.pointerInteropFilter
+import androidx.compose.ui.res.integerResource
 import androidx.compose.ui.unit.dp
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.modifiers.padding
@@ -54,6 +55,7 @@
 import com.android.systemui.qs.panels.ui.viewmodel.TileViewModel
 import com.android.systemui.qs.panels.ui.viewmodel.toolbar.EditModeButtonViewModel
 import com.android.systemui.qs.ui.compose.borderOnFocus
+import com.android.systemui.res.R
 import javax.inject.Inject
 
 class PaginatedGridLayout
@@ -75,7 +77,7 @@
             onDispose { tiles.forEach { it.stopListening(token) } }
         }
         val columns = viewModel.columns
-        val rows = viewModel.rows
+        val rows = integerResource(R.integer.quick_settings_paginated_grid_num_rows)
 
         val pages =
             remember(tiles, columns, rows) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileDetails.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileDetails.kt
index 1233a2f..701f44e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileDetails.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileDetails.kt
@@ -125,7 +125,8 @@
     when (tileDetailsViewModel) {
         is InternetDetailsViewModel -> InternetDetailsContent(tileDetailsViewModel)
         is ScreenRecordDetailsViewModel -> ScreenRecordDetailsContent(tileDetailsViewModel)
-        is BluetoothDetailsViewModel -> BluetoothDetailsContent()
+        is BluetoothDetailsViewModel ->
+            BluetoothDetailsContent(tileDetailsViewModel.detailsContentViewModel)
         is ModesDetailsViewModel -> ModesDetailsContent(tileDetailsViewModel)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileGrid.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileGrid.kt
index bcc44d3..fd10f91 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileGrid.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileGrid.kt
@@ -17,16 +17,14 @@
 package com.android.systemui.qs.panels.ui.compose
 
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
 import androidx.compose.ui.Modifier
-import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.animation.scene.ContentScope
 import com.android.systemui.qs.panels.ui.viewmodel.TileGridViewModel
 
 @Composable
 fun ContentScope.TileGrid(viewModel: TileGridViewModel, modifier: Modifier = Modifier) {
-    val gridLayout by viewModel.gridLayout.collectAsStateWithLifecycle()
-    val tiles by viewModel.tileViewModels.collectAsStateWithLifecycle(emptyList())
+    val gridLayout = viewModel.gridLayout
+    val tiles = viewModel.tileViewModels
 
     with(gridLayout) { TileGrid(tiles, modifier) }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
index 7701b90..ebfe101 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
@@ -34,6 +34,7 @@
 import androidx.compose.foundation.clickable
 import androidx.compose.foundation.clipScrollableContainer
 import androidx.compose.foundation.gestures.Orientation
+import androidx.compose.foundation.gestures.detectTapGestures
 import androidx.compose.foundation.layout.Arrangement.spacedBy
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.BoxScope
@@ -56,14 +57,18 @@
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.shape.CircleShape
 import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.foundation.systemGestureExclusion
 import androidx.compose.foundation.verticalScroll
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.automirrored.filled.ArrowBack
+import androidx.compose.material.icons.filled.Add
 import androidx.compose.material.icons.filled.Clear
+import androidx.compose.material.icons.filled.Remove
 import androidx.compose.material3.ExperimentalMaterial3Api
 import androidx.compose.material3.Icon
 import androidx.compose.material3.IconButton
 import androidx.compose.material3.LocalContentColor
+import androidx.compose.material3.LocalMinimumInteractiveComponentSize
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Scaffold
 import androidx.compose.material3.Text
@@ -86,9 +91,12 @@
 import androidx.compose.ui.draw.clip
 import androidx.compose.ui.draw.drawBehind
 import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.geometry.Rect
 import androidx.compose.ui.geometry.isSpecified
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.graphics.graphicsLayer
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.input.pointer.pointerInput
 import androidx.compose.ui.layout.MeasureScope
 import androidx.compose.ui.layout.layout
 import androidx.compose.ui.layout.onGloballyPositioned
@@ -105,10 +113,13 @@
 import androidx.compose.ui.semantics.stateDescription
 import androidx.compose.ui.text.style.TextAlign
 import androidx.compose.ui.text.style.TextOverflow
+import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.unit.toSize
 import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.zIndex
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.compose.animation.bounceable
 import com.android.compose.modifiers.height
@@ -131,6 +142,7 @@
 import com.android.systemui.qs.panels.ui.compose.infinitegrid.EditModeTileDefaults.AUTO_SCROLL_SPEED
 import com.android.systemui.qs.panels.ui.compose.infinitegrid.EditModeTileDefaults.AvailableTilesGridMinHeight
 import com.android.systemui.qs.panels.ui.compose.infinitegrid.EditModeTileDefaults.CurrentTilesGridPadding
+import com.android.systemui.qs.panels.ui.compose.infinitegrid.EditModeTileDefaults.TileBadgeSize
 import com.android.systemui.qs.panels.ui.compose.selection.MutableSelectionState
 import com.android.systemui.qs.panels.ui.compose.selection.ResizableTileContainer
 import com.android.systemui.qs.panels.ui.compose.selection.ResizingState
@@ -143,6 +155,7 @@
 import com.android.systemui.qs.panels.ui.model.GridCell
 import com.android.systemui.qs.panels.ui.model.SpacerGridCell
 import com.android.systemui.qs.panels.ui.model.TileGridCell
+import com.android.systemui.qs.panels.ui.viewmodel.AvailableEditActions
 import com.android.systemui.qs.panels.ui.viewmodel.BounceableTileViewModel
 import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel
 import com.android.systemui.qs.pipeline.shared.TileSpec
@@ -152,6 +165,7 @@
 import kotlin.math.roundToInt
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
 
 object TileType
 
@@ -232,16 +246,14 @@
                         // the top bar
                         .padding(top = innerPadding.calculateTopPadding())
                         .clipScrollableContainer(Orientation.Vertical)
-                        .verticalScroll(scrollState),
+                        .verticalScroll(scrollState)
+                        .dragAndDropRemoveZone(listState, onRemoveTile),
             ) {
                 AnimatedContent(
                     targetState = listState.dragInProgress || selectionState.selected,
                     label = "QSEditHeader",
                 ) { showRemoveTarget ->
-                    EditGridHeader(
-                        Modifier.dragAndDropRemoveZone(listState, onRemoveTile)
-                            .padding(bottom = 26.dp)
-                    ) {
+                    EditGridHeader(Modifier.padding(bottom = 26.dp)) {
                         if (showRemoveTarget) {
                             RemoveTileTarget {
                                 selectionState.selection?.let {
@@ -261,6 +273,7 @@
                     columns,
                     largeTilesSpan,
                     onResize,
+                    onRemoveTile,
                     onSetTiles,
                 )
 
@@ -269,7 +282,6 @@
                     Modifier.fillMaxWidth()
                         .requiredHeightIn(AvailableTilesGridMinHeight)
                         .animateContentSize()
-                        .dragAndDropRemoveZone(listState, onRemoveTile)
                 ) {
                     // Using the fully qualified name here as a workaround for AnimatedVisibility
                     // not being available from a Box
@@ -385,6 +397,7 @@
     columns: Int,
     largeTilesSpan: Int,
     onResize: (TileSpec, toIcon: Boolean) -> Unit,
+    onRemoveTile: (TileSpec) -> Unit,
     onSetTiles: (List<TileSpec>) -> Unit,
 ) {
     val currentListState by rememberUpdatedState(listState)
@@ -424,8 +437,15 @@
                 }
                 .testTag(CURRENT_TILES_GRID_TEST_TAG),
     ) {
-        EditTiles(cells, columns, listState, selectionState, coroutineScope, largeTilesSpan) {
-            resizingOperation ->
+        EditTiles(
+            cells,
+            columns,
+            listState,
+            selectionState,
+            coroutineScope,
+            largeTilesSpan,
+            onRemoveTile,
+        ) { resizingOperation ->
             when (resizingOperation) {
                 is TemporaryResizeOperation -> {
                     currentListState.resizeTile(resizingOperation.spec, resizingOperation.toIcon)
@@ -530,6 +550,7 @@
     selectionState: MutableSelectionState,
     coroutineScope: CoroutineScope,
     largeTilesSpan: Int,
+    onRemoveTile: (TileSpec) -> Unit,
     onResize: (operation: ResizeOperation) -> Unit,
 ) {
     items(
@@ -558,6 +579,7 @@
                         dragAndDropState = dragAndDropState,
                         selectionState = selectionState,
                         onResize = onResize,
+                        onRemoveTile = onRemoveTile,
                         coroutineScope = coroutineScope,
                         bounceableInfo = cells.bounceableInfo(index, columns),
                         largeTilesSpan = largeTilesSpan,
@@ -576,6 +598,7 @@
     dragAndDropState: DragAndDropState,
     selectionState: MutableSelectionState,
     onResize: (operation: ResizeOperation) -> Unit,
+    onRemoveTile: (TileSpec) -> Unit,
     coroutineScope: CoroutineScope,
     largeTilesSpan: Int,
     bounceableInfo: BounceableInfo,
@@ -583,6 +606,8 @@
 ) {
     val stateDescription = stringResource(id = R.string.accessibility_qs_edit_position, index + 1)
     var selected by remember { mutableStateOf(false) }
+    val showRemovalBadge =
+        !selected && cell.tile.availableEditActions.contains(AvailableEditActions.REMOVE)
     val selectionAlpha by
         animateFloatAsState(
             targetValue = if (selected) 1f else 0f,
@@ -682,6 +707,15 @@
         ) {
             EditTile(tile = cell.tile, state = state, progress = progress)
         }
+
+        if (showRemovalBadge) {
+            TileBadge(
+                icon = Icons.Default.Remove,
+                contentDescription = stringResource(R.string.qs_customize_remove),
+            ) {
+                onRemoveTile(cell.tile.tileSpec)
+            }
+        }
     }
 }
 
@@ -708,27 +742,35 @@
         verticalArrangement = spacedBy(CommonTileDefaults.TilePadding, Alignment.Top),
         modifier = modifier,
     ) {
-        Box(
-            Modifier.fillMaxWidth()
-                .height(TileHeight)
-                .clickable(onClick = onClick, onClickLabel = onClickActionName)
-                .semantics(mergeDescendants = true) { this.stateDescription = stateDescription }
-                .dragAndDropTileSource(
-                    SizedTileImpl(cell.tile, cell.width),
-                    dragAndDropState,
-                    DragType.Add,
-                ) {
-                    selectionState.unSelect()
-                }
-                .tileBackground(colors.background)
-                .tilePadding()
-        ) {
-            // Icon
-            SmallTileContent(
-                iconProvider = { cell.tile.icon },
-                color = colors.icon,
-                animateToEnd = true,
-                modifier = Modifier.align(Alignment.Center),
+        Box {
+            Box(
+                Modifier.fillMaxWidth()
+                    .height(TileHeight)
+                    .clickable(onClick = onClick, onClickLabel = onClickActionName)
+                    .semantics(mergeDescendants = true) { this.stateDescription = stateDescription }
+                    .dragAndDropTileSource(
+                        SizedTileImpl(cell.tile, cell.width),
+                        dragAndDropState,
+                        DragType.Add,
+                    ) {
+                        selectionState.unSelect()
+                    }
+                    .tileBackground(colors.background)
+                    .tilePadding()
+            ) {
+                // Icon
+                SmallTileContent(
+                    iconProvider = { cell.tile.icon },
+                    color = colors.icon,
+                    animateToEnd = true,
+                    modifier = Modifier.align(Alignment.Center),
+                )
+            }
+
+            TileBadge(
+                icon = Icons.Default.Add,
+                contentDescription = onClickActionName,
+                onClick = onClick,
             )
         }
         Box(Modifier.fillMaxSize()) {
@@ -745,6 +787,39 @@
 }
 
 @Composable
+private fun TileBadge(icon: ImageVector, contentDescription: String?, onClick: () -> Unit) {
+    // Use a higher zIndex than the tile to draw over it, and manually create the touch target as
+    // we're drawing over neighbor tiles as well.
+    val minTouchTargetSize = LocalMinimumInteractiveComponentSize.current
+
+    Box(
+        Modifier.zIndex(2f)
+            .layout { measurable, constraints ->
+                val size = minTouchTargetSize.roundToPx()
+                val placeable = measurable.measure(Constraints(size))
+                layout(placeable.width, placeable.height) {
+                    val iconRadius = TileBadgeSize.roundToPx() / 2
+                    val x = constraints.maxWidth - placeable.width / 2 - iconRadius
+                    val y = 0 - placeable.height / 2 + iconRadius
+                    placeable.place(x, y)
+                }
+            }
+            .systemGestureExclusion { Rect(Offset.Zero, it.size.toSize()) }
+            .pointerInput(Unit) { detectTapGestures { onClick() } }
+    ) {
+        val secondaryColor = MaterialTheme.colorScheme.secondary
+        Icon(
+            icon,
+            contentDescription = contentDescription,
+            modifier =
+                Modifier.size(TileBadgeSize).align(Alignment.Center).drawBehind {
+                    drawCircle(secondaryColor)
+                },
+        )
+    }
+}
+
+@Composable
 private fun SpacerGridCell(modifier: Modifier = Modifier) {
     // By default, spacers are invisible and exist purely to catch drag movements
     Box(modifier.height(TileHeight).fillMaxWidth())
@@ -829,6 +904,7 @@
     const val AUTO_SCROLL_SPEED = 2 // 2ms per pixel
     val CurrentTilesGridPadding = 8.dp
     val AvailableTilesGridMinHeight = 200.dp
+    val TileBadgeSize = 20.dp
 
     @Composable
     fun editTileColors(): TileColors =
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/selection/Selection.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/selection/Selection.kt
index c1545e1..7c47263 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/selection/Selection.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/selection/Selection.kt
@@ -81,7 +81,7 @@
             state = state,
             modifier =
                 // Higher zIndex to make sure the handle is drawn above the content
-                Modifier.zIndex(2f),
+                Modifier.zIndex(if (selected) 2f else 1f),
         )
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/MediaInRowInLandscapeViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/MediaInRowInLandscapeViewModel.kt
index 2ed8fd2..706d5a0 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/MediaInRowInLandscapeViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/MediaInRowInLandscapeViewModel.kt
@@ -20,13 +20,13 @@
 import android.content.res.Resources
 import androidx.compose.runtime.getValue
 import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
-import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.media.controls.ui.controller.MediaHostStatesManager
 import com.android.systemui.media.controls.ui.controller.MediaLocation
 import com.android.systemui.media.controls.ui.view.MediaHostState
 import com.android.systemui.qs.composefragment.dagger.QSFragmentComposeModule
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.domain.interactor.ShadeModeInteractor
 import com.android.systemui.shade.shared.model.ShadeMode
 import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
@@ -46,7 +46,7 @@
 class MediaInRowInLandscapeViewModel
 @AssistedInject
 constructor(
-    @Main resources: Resources,
+    @ShadeDisplayAware resources: Resources,
     configurationInteractor: ConfigurationInteractor,
     shadeModeInteractor: ShadeModeInteractor,
     private val mediaHostStatesManager: MediaHostStatesManager,
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModel.kt
index 3fcb2ab..fe5eec8 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModel.kt
@@ -23,7 +23,6 @@
 import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager.Companion.LOCATION_QS
-import com.android.systemui.qs.panels.domain.interactor.PaginatedGridInteractor
 import com.android.systemui.qs.panels.ui.viewmodel.toolbar.EditModeButtonViewModel
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
@@ -36,7 +35,6 @@
 constructor(
     iconTilesViewModel: IconTilesViewModel,
     columnsWithMediaViewModelFactory: QSColumnsViewModel.Factory,
-    paginatedGridInteractor: PaginatedGridInteractor,
     inFirstPageViewModel: InFirstPageViewModel,
     val buildNumberViewModelFactory: BuildNumberViewModel.Factory,
     val editModeButtonViewModelFactory: EditModeButtonViewModel.Factory,
@@ -46,13 +44,6 @@
     private val hydrator = Hydrator("PaginatedGridViewModel")
     private val columnsWithMediaViewModel = columnsWithMediaViewModelFactory.create(LOCATION_QS)
 
-    val rows by
-        hydrator.hydratedStateOf(
-            traceName = "rows",
-            initialValue = paginatedGridInteractor.defaultRows,
-            source = paginatedGridInteractor.rows,
-        )
-
     var inFirstPage by inFirstPageViewModel::inFirstPage
 
     val columns: Int
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModel.kt
index 29832b9..77faf3f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModel.kt
@@ -16,38 +16,48 @@
 
 package com.android.systemui.qs.panels.ui.viewmodel
 
-import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.dagger.qualifiers.Application
+import androidx.compose.runtime.getValue
+import com.android.systemui.lifecycle.ExclusiveActivatable
+import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.qs.panels.domain.interactor.GridLayoutTypeInteractor
 import com.android.systemui.qs.panels.shared.model.GridLayoutType
 import com.android.systemui.qs.panels.ui.compose.GridLayout
 import com.android.systemui.qs.pipeline.domain.interactor.CurrentTilesInteractor
-import javax.inject.Inject
+import dagger.assisted.AssistedFactory
+import dagger.assisted.AssistedInject
 import javax.inject.Named
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.SharingStarted
-import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.mapLatest
-import kotlinx.coroutines.flow.stateIn
 
-@SysUISingleton
 class TileGridViewModel
-@Inject
+@AssistedInject
 constructor(
     gridLayoutTypeInteractor: GridLayoutTypeInteractor,
     gridLayoutMap: Map<GridLayoutType, @JvmSuppressWildcards GridLayout>,
     tilesInteractor: CurrentTilesInteractor,
     @Named("Default") defaultGridLayout: GridLayout,
-    @Application private val applicationScope: CoroutineScope
-) {
-    val gridLayout: StateFlow<GridLayout> =
-        gridLayoutTypeInteractor.layout
-            .map { gridLayoutMap[it] ?: defaultGridLayout }
-            .stateIn(applicationScope, SharingStarted.Eagerly, defaultGridLayout)
-    val tileViewModels: Flow<List<TileViewModel>> =
-        tilesInteractor.currentTiles.mapLatest { tiles ->
-            tiles.map { TileViewModel(it.tile, it.spec) }
-        }
+) : ExclusiveActivatable() {
+
+    private val hydrator = Hydrator("TileGridViewModel")
+
+    val gridLayout by
+        hydrator.hydratedStateOf(
+            traceName = "gridLayout",
+            source = gridLayoutTypeInteractor.layout.map { gridLayoutMap[it] ?: defaultGridLayout },
+            initialValue = defaultGridLayout,
+        )
+
+    private val tileModels by
+        hydrator.hydratedStateOf(traceName = "tileModels", source = tilesInteractor.currentTiles)
+
+    val tileViewModels: List<TileViewModel>
+        get() = tileModels.map { TileViewModel(it.tile, it.spec) }
+
+    override suspend fun onActivated(): Nothing {
+        hydrator.activate()
+    }
+
+    @AssistedFactory
+    interface Factory {
+        fun create(): TileGridViewModel
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileViewModel.kt
index 9462321..3ba7252 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/viewmodel/TileViewModel.kt
@@ -28,7 +28,7 @@
 import kotlinx.coroutines.flow.onStart
 
 @Immutable
-class TileViewModel(private val tile: QSTile, val spec: TileSpec) {
+data class TileViewModel(private val tile: QSTile, val spec: TileSpec) {
     val state: Flow<QSTile.State> =
         conflatedCallbackFlow {
                 val callback = QSTile.Callback { trySend(it.copy()) }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/dagger/BaseAutoAddableModule.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/dagger/BaseAutoAddableModule.kt
index a6edb58..c9f6dcfe 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/pipeline/dagger/BaseAutoAddableModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/dagger/BaseAutoAddableModule.kt
@@ -17,7 +17,6 @@
 package com.android.systemui.qs.pipeline.dagger
 
 import android.content.res.Resources
-import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.qs.pipeline.domain.autoaddable.A11yShortcutAutoAddable
 import com.android.systemui.qs.pipeline.domain.autoaddable.A11yShortcutAutoAddableList
 import com.android.systemui.qs.pipeline.domain.autoaddable.AutoAddableSetting
@@ -30,6 +29,7 @@
 import com.android.systemui.qs.pipeline.domain.autoaddable.WalletAutoAddable
 import com.android.systemui.qs.pipeline.domain.autoaddable.WorkTileAutoAddable
 import com.android.systemui.qs.pipeline.domain.model.AutoAddable
+import com.android.systemui.shade.ShadeDisplayAware
 import dagger.Binds
 import dagger.Module
 import dagger.Provides
@@ -43,7 +43,7 @@
         @Provides
         @ElementsIntoSet
         fun providesAutoAddableSetting(
-            @Main resources: Resources,
+            @ShadeDisplayAware resources: Resources,
             autoAddableSettingFactory: AutoAddableSetting.Factory,
         ): Set<AutoAddable> {
             return AutoAddableSettingList.parseSettingsResource(
diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/TileSpecRepository.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/TileSpecRepository.kt
index 4e99378..c50d5da 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/TileSpecRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/TileSpecRepository.kt
@@ -19,14 +19,20 @@
 import android.annotation.UserIdInt
 import android.content.res.Resources
 import android.util.SparseArray
+import com.android.app.tracing.coroutines.launchTraced
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.qs.pipeline.data.model.RestoreData
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger
 import com.android.systemui.res.R
 import com.android.systemui.retail.data.repository.RetailModeRepository
 import com.android.systemui.shade.ShadeDisplayAware
 import javax.inject.Inject
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.channels.ReceiveChannel
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flowOf
@@ -73,6 +79,8 @@
     /** Reset the current set of tiles to the default list of tiles */
     suspend fun resetToDefault(userId: Int)
 
+    val tilesUpgradePath: ReceiveChannel<Pair<TilesUpgradePath, Int>>
+
     companion object {
         /** Position to indicate the end of the list */
         const val POSITION_AT_END = -1
@@ -94,6 +102,7 @@
     private val logger: QSPipelineLogger,
     private val retailModeRepository: RetailModeRepository,
     private val userTileSpecRepositoryFactory: UserTileSpecRepository.Factory,
+    @Background private val applicationScope: CoroutineScope,
 ) : TileSpecRepository {
 
     private val retailModeTiles by lazy {
@@ -104,12 +113,20 @@
             .filter { it !is TileSpec.Invalid }
     }
 
+    private val _tilesUpgradePath = Channel<Pair<TilesUpgradePath, Int>>(capacity = 5)
+    override val tilesUpgradePath = _tilesUpgradePath
+
     private val userTileRepositories = SparseArray<UserTileSpecRepository>()
 
     override suspend fun tilesSpecs(userId: Int): Flow<List<TileSpec>> {
         if (userId !in userTileRepositories) {
             val userTileRepository = userTileSpecRepositoryFactory.create(userId)
             userTileRepositories.put(userId, userTileRepository)
+            applicationScope.launchTraced("TileSpecRepository.aggregateTilesPerUser") {
+                for (tileUpgrade in userTileRepository.tilesUpgradePath) {
+                    _tilesUpgradePath.send(tileUpgrade to userId)
+                }
+            }
         }
         val realTiles = userTileRepositories.get(userId).tiles()
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepository.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepository.kt
index 64da853..5aa5eda 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepository.kt
@@ -3,11 +3,13 @@
 import android.annotation.UserIdInt
 import android.database.ContentObserver
 import android.provider.Settings
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.common.coroutine.ConflatedCallbackFlow
 import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.qs.pipeline.data.model.RestoreData
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
 import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger
 import com.android.systemui.util.settings.SecureSettings
 import dagger.assisted.Assisted
@@ -15,6 +17,8 @@
 import dagger.assisted.AssistedInject
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.channels.ReceiveChannel
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableSharedFlow
@@ -23,7 +27,6 @@
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.scan
 import kotlinx.coroutines.flow.stateIn
-import com.android.app.tracing.coroutines.launchTraced as launch
 import kotlinx.coroutines.withContext
 
 /**
@@ -47,6 +50,9 @@
     @Background private val backgroundDispatcher: CoroutineDispatcher,
 ) {
 
+    private val _tilesUpgradePath = Channel<TilesUpgradePath>(capacity = 3)
+    val tilesUpgradePath: ReceiveChannel<TilesUpgradePath> = _tilesUpgradePath
+
     private val defaultTiles: List<TileSpec>
         get() = defaultTilesRepository.defaultTiles
 
@@ -62,14 +68,23 @@
                     .scan(loadTilesFromSettingsAndParse(userId)) { current, change ->
                         change
                             .apply(current)
-                            .also {
-                                if (current != it) {
+                            .also { afterRestore ->
+                                if (current != afterRestore) {
                                     if (change is RestoreTiles) {
-                                        logger.logTilesRestoredAndReconciled(current, it, userId)
+                                        logger.logTilesRestoredAndReconciled(
+                                            current,
+                                            afterRestore,
+                                            userId,
+                                        )
                                     } else {
-                                        logger.logProcessTileChange(change, it, userId)
+                                        logger.logProcessTileChange(change, afterRestore, userId)
                                     }
                                 }
+                                if (change is RestoreTiles) {
+                                    _tilesUpgradePath.send(
+                                        TilesUpgradePath.RestoreFromBackup(afterRestore.toSet())
+                                    )
+                                }
                             }
                             // Distinct preserves the order of the elements removing later
                             // duplicates,
@@ -147,7 +162,13 @@
     }
 
     private suspend fun loadTilesFromSettingsAndParse(userId: Int): List<TileSpec> {
-        return parseTileSpecs(loadTilesFromSettings(userId), userId)
+        val loadedTiles = loadTilesFromSettings(userId)
+        if (loadedTiles.isNotEmpty()) {
+            _tilesUpgradePath.send(TilesUpgradePath.ReadFromSettings(loadedTiles.toSet()))
+        } else {
+            _tilesUpgradePath.send(TilesUpgradePath.DefaultSet)
+        }
+        return parseTileSpecs(loadedTiles, userId)
     }
 
     private suspend fun loadTilesFromSettings(userId: Int): List<TileSpec> {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/TilesUpgradePath.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/TilesUpgradePath.kt
new file mode 100644
index 0000000..98f30c2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/TilesUpgradePath.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.pipeline.shared
+
+/** Upgrade paths indicating the source of the list of QS tiles. */
+sealed interface TilesUpgradePath {
+
+    sealed interface UpgradeWithTiles : TilesUpgradePath {
+        val value: Set<TileSpec>
+    }
+
+    /** This indicates a set of tiles that was read from Settings on user start */
+    @JvmInline value class ReadFromSettings(override val value: Set<TileSpec>) : UpgradeWithTiles
+
+    /** This indicates a set of tiles that was restored from backup */
+    @JvmInline value class RestoreFromBackup(override val value: Set<TileSpec>) : UpgradeWithTiles
+
+    /**
+     * This indicates that no tiles were read from Settings on user start so the default has been
+     * stored.
+     */
+    data object DefaultSet : TilesUpgradePath
+}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
index 1cfa663..fd5861f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -43,8 +43,8 @@
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.satellite.SatelliteDialogUtils;
 import com.android.systemui.animation.Expandable;
+import com.android.systemui.bluetooth.qsdialog.BluetoothDetailsContentViewModel;
 import com.android.systemui.bluetooth.qsdialog.BluetoothDetailsViewModel;
-import com.android.systemui.bluetooth.qsdialog.BluetoothTileDialogViewModel;
 import com.android.systemui.dagger.qualifiers.Background;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.flags.FeatureFlags;
@@ -84,7 +84,7 @@
 
     private final Executor mExecutor;
 
-    private final BluetoothTileDialogViewModel mDialogViewModel;
+    private final BluetoothDetailsContentViewModel mDetailsContentViewModel;
 
     private final FeatureFlags mFeatureFlags;
     @Nullable
@@ -104,7 +104,7 @@
             QSLogger qsLogger,
             BluetoothController bluetoothController,
             FeatureFlags featureFlags,
-            BluetoothTileDialogViewModel dialogViewModel
+            BluetoothDetailsContentViewModel detailsContentViewModel
     ) {
         super(host, uiEventLogger, backgroundLooper, mainHandler, falsingManager, metricsLogger,
                 statusBarStateController, activityStarter, qsLogger);
@@ -112,7 +112,7 @@
         mController.observe(getLifecycle(), mCallback);
         mExecutor = new HandlerExecutor(mainHandler);
         mFeatureFlags = featureFlags;
-        mDialogViewModel = dialogViewModel;
+        mDetailsContentViewModel = detailsContentViewModel;
     }
 
     @Override
@@ -133,7 +133,7 @@
                 callback.accept(new BluetoothDetailsViewModel(() -> {
                     longClick(null);
                     return null;
-                }))
+                }, mDetailsContentViewModel))
         );
         return true;
     }
@@ -158,7 +158,7 @@
 
     private void handleClickEvent(@Nullable Expandable expandable) {
         if (mFeatureFlags.isEnabled(Flags.BLUETOOTH_QS_TILE_DIALOG)) {
-            mDialogViewModel.showDetailsContent(expandable, /* view= */ null);
+            mDetailsContentViewModel.showDetailsContent(expandable, /* view= */ null);
         } else {
             // Secondary clicks are header clicks, just toggle.
             toggleBluetooth();
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DreamTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DreamTile.java
index e37ed16..a2cae6a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DreamTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DreamTile.java
@@ -67,8 +67,10 @@
     private static final String LOG_TAG = "QSDream";
     private final IDreamManager mDreamManager;
     private final BroadcastDispatcher mBroadcastDispatcher;
-    private final UserSettingObserver mEnabledSettingObserver;
-    private final UserSettingObserver mDreamSettingObserver;
+    @VisibleForTesting
+    final UserSettingObserver mEnabledSettingObserver;
+    @VisibleForTesting
+    final UserSettingObserver mDreamSettingObserver;
     private final UserTracker mUserTracker;
     private final boolean mDreamSupported;
     private final boolean mDreamOnlyEnabledForDockUser;
@@ -180,6 +182,13 @@
         state.expandedAccessibilityClassName = Switch.class.getName();
     }
 
+    @Override
+    protected void handleUserSwitch(int newUserId) {
+        super.handleUserSwitch(newUserId);
+        mDreamSettingObserver.setUserId(newUserId);
+        mEnabledSettingObserver.setUserId(newUserId);
+    }
+
     @Nullable
     @Override
     public Intent getLongClickIntent() {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ScreenRecordTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ScreenRecordTile.java
index 42b35c7..7b88d69 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ScreenRecordTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/ScreenRecordTile.java
@@ -26,6 +26,7 @@
 import android.util.Log;
 import android.widget.Button;
 import android.widget.Switch;
+import android.widget.Toast;
 
 import androidx.annotation.Nullable;
 
@@ -192,8 +193,19 @@
     @Override
     public boolean getDetailsViewModel(Consumer<TileDetailsViewModel> callback) {
         handleClick(() -> executeWhenUnlockedKeyguard(
-                () -> callback.accept(new ScreenRecordDetailsViewModel(mController,
-                                        this::onStartRecordingClicked)))
+                () -> {
+                    if (mController.isScreenCaptureDisabled()) {
+                        // Close the panel first so that the toast can show up.
+                        mDialogTransitionAnimator.disableAllCurrentDialogsExitAnimations();
+                        mPanelInteractor.collapsePanels();
+
+                        showDisabledByPolicyToast();
+                        return;
+                    }
+
+                    callback.accept(new ScreenRecordDetailsViewModel(mController,
+                            this::onStartRecordingClicked));
+                })
         );
         return true;
     }
@@ -244,6 +256,12 @@
         return mContext.getString(R.string.quick_settings_screen_record_label);
     }
 
+    void showDisabledByPolicyToast() {
+        Toast.makeText(mContext,
+                R.string.screen_capturing_disabled_by_policy_dialog_description, Toast.LENGTH_SHORT)
+                .show();
+    }
+
     private void cancelCountdown() {
         Log.d(TAG, "Cancelling countdown");
         mController.cancelCountdown();
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/ScreenRecordDetailsContent.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/ScreenRecordDetailsContent.kt
index bf1a51d..3eb73d8 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/ScreenRecordDetailsContent.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/ScreenRecordDetailsContent.kt
@@ -28,13 +28,6 @@
 
 @Composable
 fun ScreenRecordDetailsContent(viewModel: ScreenRecordDetailsViewModel) {
-    // TODO(b/378514312): Finish implementing this function.
-
-    if (viewModel.recordingController.isScreenCaptureDisabled) {
-        // TODO(b/388345506): Show disabled page here.
-        return
-    }
-
     val viewBinder: ScreenRecordPermissionViewBinder = remember {
         viewModel.recordingController.createScreenRecordPermissionViewBinder(
             viewModel.onStartRecordingClicked
diff --git a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModel.kt
index aa8e424..68fd2f5 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModel.kt
@@ -39,8 +39,8 @@
 constructor(
     brightnessSliderViewModelFactory: BrightnessSliderViewModel.Factory,
     shadeHeaderViewModelFactory: ShadeHeaderViewModel.Factory,
+    tileGridViewModelFactory: TileGridViewModel.Factory,
     @Assisted supportsBrightnessMirroring: Boolean,
-    val tileGridViewModel: TileGridViewModel,
     val editModeViewModel: EditModeViewModel,
     val detailsViewModel: DetailsViewModel,
     val toolbarViewModelFactory: ToolbarViewModel.Factory,
@@ -54,6 +54,8 @@
 
     val shadeHeaderViewModel = shadeHeaderViewModelFactory.create()
 
+    val tileGridViewModel = tileGridViewModelFactory.create()
+
     val showHeader: Boolean by
         hydrator.hydratedStateOf(
             traceName = "showHeader",
@@ -66,6 +68,7 @@
             launch { hydrator.activate() }
             launch { brightnessSliderViewModel.activate() }
             launch { shadeHeaderViewModel.activate() }
+            launch { tileGridViewModel.activate() }
             awaitCancellation()
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModel.kt
index 5bc26f5..52c4e2f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayActionsViewModel.kt
@@ -25,7 +25,7 @@
 import com.android.compose.animation.scene.UserActionResult.ShowOverlay.HideCurrentOverlays
 import com.android.systemui.qs.panels.ui.viewmodel.EditModeViewModel
 import com.android.systemui.scene.shared.model.Overlays
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
@@ -47,7 +47,7 @@
                         put(Back, HideOverlay(Overlays.QuickSettingsShade))
                     }
                     put(
-                        Swipe.Down(fromSource = SceneContainerEdge.TopLeft),
+                        Swipe.Down(fromSource = SceneContainerArea.StartHalf),
                         ShowOverlay(
                             Overlays.NotificationsShade,
                             hideCurrentOverlays =
diff --git a/packages/SystemUI/src/com/android/systemui/scene/KeyguardlessSceneContainerFrameworkModule.kt b/packages/SystemUI/src/com/android/systemui/scene/KeyguardlessSceneContainerFrameworkModule.kt
index a4949ad..caa6161 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/KeyguardlessSceneContainerFrameworkModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/KeyguardlessSceneContainerFrameworkModule.kt
@@ -16,7 +16,6 @@
 
 package com.android.systemui.scene
 
-import androidx.compose.ui.unit.dp
 import com.android.systemui.CoreStartable
 import com.android.systemui.notifications.ui.composable.NotificationsShadeSessionModule
 import com.android.systemui.scene.domain.SceneDomainModule
@@ -30,8 +29,6 @@
 import com.android.systemui.scene.shared.model.SceneContainerConfig
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.composable.SceneContainerTransitions
-import com.android.systemui.scene.ui.viewmodel.SplitEdgeDetector
-import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import dagger.Binds
 import dagger.Module
 import dagger.Provides
@@ -99,15 +96,5 @@
                 transitionsBuilder = SceneContainerTransitions(),
             )
         }
-
-        @Provides
-        fun splitEdgeDetector(shadeInteractor: ShadeInteractor): SplitEdgeDetector {
-            return SplitEdgeDetector(
-                topEdgeSplitFraction = shadeInteractor::getTopEdgeSplitFraction,
-                // TODO(b/338577208): This should be 60dp at the top in the dual-shade UI. Better to
-                //  replace this constant with dynamic window insets.
-                edgeSize = 40.dp,
-            )
-        }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt b/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt
index a018283..ea11d20 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt
@@ -16,7 +16,6 @@
 
 package com.android.systemui.scene
 
-import androidx.compose.ui.unit.dp
 import com.android.systemui.CoreStartable
 import com.android.systemui.notifications.ui.composable.NotificationsShadeSessionModule
 import com.android.systemui.scene.domain.SceneDomainModule
@@ -30,8 +29,6 @@
 import com.android.systemui.scene.shared.model.SceneContainerConfig
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.composable.SceneContainerTransitions
-import com.android.systemui.scene.ui.viewmodel.SplitEdgeDetector
-import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import dagger.Binds
 import dagger.Module
 import dagger.Provides
@@ -121,15 +118,5 @@
                 transitionsBuilder = SceneContainerTransitions(),
             )
         }
-
-        @Provides
-        fun splitEdgeDetector(shadeInteractor: ShadeInteractor): SplitEdgeDetector {
-            return SplitEdgeDetector(
-                topEdgeSplitFraction = shadeInteractor::getTopEdgeSplitFraction,
-                // TODO(b/338577208): This should be 60dp at the top in the dual-shade UI. Better to
-                //  replace this constant with dynamic window insets.
-                edgeSize = 40.dp,
-            )
-        }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/data/repository/SceneContainerRepository.kt b/packages/SystemUI/src/com/android/systemui/scene/data/repository/SceneContainerRepository.kt
index 80c7c4a..caa7bba 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/data/repository/SceneContainerRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/data/repository/SceneContainerRepository.kt
@@ -130,6 +130,26 @@
         dataSource.replaceOverlay(from = from, to = to, transitionKey = transitionKey)
     }
 
+    /**
+     * Instantly shows [overlay].
+     *
+     * The change is instantaneous and not animated; it will be observable in the next frame and
+     * there will be no transition animation.
+     */
+    fun instantlyShowOverlay(overlay: OverlayKey) {
+        dataSource.instantlyShowOverlay(overlay)
+    }
+
+    /**
+     * Instantly hides [overlay].
+     *
+     * The change is instantaneous and not animated; it will be observable in the next frame and
+     * there will be no transition animation.
+     */
+    fun instantlyHideOverlay(overlay: OverlayKey) {
+        dataSource.instantlyHideOverlay(overlay)
+    }
+
     /** Sets whether the container is visible. */
     fun setVisible(isVisible: Boolean) {
         _isVisible.value = isVisible
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt
index 9c04323..475c079 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt
@@ -33,8 +33,10 @@
 import com.android.systemui.scene.data.repository.SceneContainerRepository
 import com.android.systemui.scene.domain.resolver.SceneResolver
 import com.android.systemui.scene.shared.logger.SceneLogger
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.SceneFamilies
 import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.shade.domain.interactor.ShadeModeInteractor
 import com.android.systemui.util.kotlin.pairwise
 import dagger.Lazy
 import javax.inject.Inject
@@ -72,6 +74,7 @@
     private val deviceUnlockedInteractor: Lazy<DeviceUnlockedInteractor>,
     private val keyguardEnabledInteractor: Lazy<KeyguardEnabledInteractor>,
     private val disabledContentInteractor: DisabledContentInteractor,
+    private val shadeModeInteractor: ShadeModeInteractor,
 ) {
 
     interface OnSceneAboutToChangeListener {
@@ -237,7 +240,13 @@
     ) {
         val currentSceneKey = currentScene.value
         val resolvedScene = sceneFamilyResolvers.get()[toScene]?.resolvedScene?.value ?: toScene
-        if (!validateSceneChange(to = resolvedScene, loggingReason = loggingReason)) {
+        if (
+            !validateSceneChange(
+                from = currentSceneKey,
+                to = resolvedScene,
+                loggingReason = loggingReason,
+            )
+        ) {
             return
         }
 
@@ -246,6 +255,7 @@
         logger.logSceneChanged(
             from = currentSceneKey,
             to = resolvedScene,
+            sceneState = sceneState,
             reason = loggingReason,
             isInstant = false,
         )
@@ -269,13 +279,20 @@
                     familyResolver.resolvedScene.value
                 }
             } ?: toScene
-        if (!validateSceneChange(to = resolvedScene, loggingReason = loggingReason)) {
+        if (
+            !validateSceneChange(
+                from = currentSceneKey,
+                to = resolvedScene,
+                loggingReason = loggingReason,
+            )
+        ) {
             return
         }
 
         logger.logSceneChanged(
             from = currentSceneKey,
             to = resolvedScene,
+            sceneState = null,
             reason = loggingReason,
             isInstant = true,
         )
@@ -336,6 +353,38 @@
     }
 
     /**
+     * Instantly shows [overlay].
+     *
+     * The change is instantaneous and not animated; it will be observable in the next frame and
+     * there will be no transition animation.
+     */
+    fun instantlyShowOverlay(overlay: OverlayKey, loggingReason: String) {
+        if (!validateOverlayChange(to = overlay, loggingReason = loggingReason)) {
+            return
+        }
+
+        logger.logOverlayChangeRequested(to = overlay, reason = loggingReason)
+
+        repository.instantlyShowOverlay(overlay)
+    }
+
+    /**
+     * Instantly hides [overlay].
+     *
+     * The change is instantaneous and not animated; it will be observable in the next frame and
+     * there will be no transition animation.
+     */
+    fun instantlyHideOverlay(overlay: OverlayKey, loggingReason: String) {
+        if (!validateOverlayChange(from = overlay, loggingReason = loggingReason)) {
+            return
+        }
+
+        logger.logOverlayChangeRequested(from = overlay, reason = loggingReason)
+
+        repository.instantlyHideOverlay(overlay)
+    }
+
+    /**
      * Replace [from] by [to] so that [from] ends up not being visible on screen and [to] ends up
      * being visible.
      *
@@ -454,11 +503,25 @@
      * Will throw a runtime exception for illegal states (for example, attempting to change to a
      * scene that's not part of the current scene framework configuration).
      *
+     * @param from The current scene being transitioned away from
      * @param to The desired destination scene to transition to
      * @param loggingReason The reason why the transition is requested, for logging purposes
      * @return `true` if the scene change is valid; `false` if it shouldn't happen
      */
-    private fun validateSceneChange(to: SceneKey, loggingReason: String): Boolean {
+    private fun validateSceneChange(from: SceneKey, to: SceneKey, loggingReason: String): Boolean {
+        check(
+            !shadeModeInteractor.isDualShade || (to != Scenes.Shade && to != Scenes.QuickSettings)
+        ) {
+            "Can't change scene to ${to.debugName} when dual shade is on!"
+        }
+        check(!shadeModeInteractor.isSplitShade || (to != Scenes.QuickSettings)) {
+            "Can't change scene to ${to.debugName} in split shade mode!"
+        }
+
+        if (from == to) {
+            return false
+        }
+
         if (to !in repository.allContentKeys) {
             return false
         }
@@ -505,6 +568,13 @@
                 " Logging reason for overlay change was: $loggingReason"
         }
 
+        check(
+            shadeModeInteractor.isDualShade ||
+                (to != Overlays.NotificationsShade && to != Overlays.QuickSettingsShade)
+        ) {
+            "Can't show overlay ${to?.debugName} when dual shade is off!"
+        }
+
         if (to != null && disabledContentInteractor.isDisabled(to)) {
             return false
         }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt
index 16c2ef5..d005858 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt
@@ -45,23 +45,30 @@
         )
     }
 
-    fun logSceneChanged(from: SceneKey, to: SceneKey, reason: String, isInstant: Boolean) {
+    fun logSceneChanged(
+        from: SceneKey,
+        to: SceneKey,
+        sceneState: Any?,
+        reason: String,
+        isInstant: Boolean,
+    ) {
         logBuffer.log(
             tag = TAG,
             level = LogLevel.INFO,
             messageInitializer = {
-                str1 = from.toString()
-                str2 = to.toString()
-                str3 = reason
+                str1 = "${from.debugName} → ${to.debugName}"
+                str2 = reason
+                str3 = sceneState?.toString()
                 bool1 = isInstant
             },
             messagePrinter = {
                 buildString {
-                    append("Scene changed: $str1 → $str2")
+                    append("Scene changed: $str1")
+                    str3?.let { append(" (sceneState=$it)") }
                     if (isInstant) {
                         append(" (instant)")
                     }
-                    append(", reason: $str3")
+                    append(", reason: $str2")
                 }
             },
         )
diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSource.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSource.kt
index 4538d1c..daf2d7f 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSource.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSource.kt
@@ -45,17 +45,12 @@
      * Asks for an asynchronous scene switch to [toScene], which will use the corresponding
      * installed transition or the one specified by [transitionKey], if provided.
      */
-    fun changeScene(
-        toScene: SceneKey,
-        transitionKey: TransitionKey? = null,
-    )
+    fun changeScene(toScene: SceneKey, transitionKey: TransitionKey? = null)
 
     /**
      * Asks for an instant scene switch to [toScene], without an animated transition of any kind.
      */
-    fun snapToScene(
-        toScene: SceneKey,
-    )
+    fun snapToScene(toScene: SceneKey)
 
     /**
      * Request to show [overlay] so that it animates in from [currentScene] and ends up being
@@ -64,10 +59,7 @@
      * After this returns, this overlay will be included in [currentOverlays]. This does nothing if
      * [overlay] is already shown.
      */
-    fun showOverlay(
-        overlay: OverlayKey,
-        transitionKey: TransitionKey? = null,
-    )
+    fun showOverlay(overlay: OverlayKey, transitionKey: TransitionKey? = null)
 
     /**
      * Request to hide [overlay] so that it animates out to [currentScene] and ends up *not* being
@@ -76,10 +68,7 @@
      * After this returns, this overlay will not be included in [currentOverlays]. This does nothing
      * if [overlay] is already hidden.
      */
-    fun hideOverlay(
-        overlay: OverlayKey,
-        transitionKey: TransitionKey? = null,
-    )
+    fun hideOverlay(overlay: OverlayKey, transitionKey: TransitionKey? = null)
 
     /**
      * Replace [from] by [to] so that [from] ends up not being visible on screen and [to] ends up
@@ -87,9 +76,11 @@
      *
      * This throws if [from] is not currently shown or if [to] is already shown.
      */
-    fun replaceOverlay(
-        from: OverlayKey,
-        to: OverlayKey,
-        transitionKey: TransitionKey? = null,
-    )
+    fun replaceOverlay(from: OverlayKey, to: OverlayKey, transitionKey: TransitionKey? = null)
+
+    /** Asks for [overlay] to be instantly shown, without an animated transition of any kind. */
+    fun instantlyShowOverlay(overlay: OverlayKey)
+
+    /** Asks for [overlay] to be instantly hidden, without an animated transition of any kind. */
+    fun instantlyHideOverlay(overlay: OverlayKey)
 }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegator.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegator.kt
index 5d0edc5..dcb6995 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegator.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegator.kt
@@ -31,10 +31,8 @@
  * Delegates calls to a runtime-provided [SceneDataSource] or to a no-op implementation if a
  * delegate isn't set.
  */
-class SceneDataSourceDelegator(
-    applicationScope: CoroutineScope,
-    config: SceneContainerConfig,
-) : SceneDataSource {
+class SceneDataSourceDelegator(applicationScope: CoroutineScope, config: SceneContainerConfig) :
+    SceneDataSource {
     private val noOpDelegate = NoOpSceneDataSource(config.initialSceneKey)
     private val delegateMutable = MutableStateFlow<SceneDataSource>(noOpDelegate)
 
@@ -57,38 +55,31 @@
             )
 
     override fun changeScene(toScene: SceneKey, transitionKey: TransitionKey?) {
-        delegateMutable.value.changeScene(
-            toScene = toScene,
-            transitionKey = transitionKey,
-        )
+        delegateMutable.value.changeScene(toScene = toScene, transitionKey = transitionKey)
     }
 
     override fun snapToScene(toScene: SceneKey) {
-        delegateMutable.value.snapToScene(
-            toScene = toScene,
-        )
+        delegateMutable.value.snapToScene(toScene = toScene)
     }
 
     override fun showOverlay(overlay: OverlayKey, transitionKey: TransitionKey?) {
-        delegateMutable.value.showOverlay(
-            overlay = overlay,
-            transitionKey = transitionKey,
-        )
+        delegateMutable.value.showOverlay(overlay = overlay, transitionKey = transitionKey)
     }
 
     override fun hideOverlay(overlay: OverlayKey, transitionKey: TransitionKey?) {
-        delegateMutable.value.hideOverlay(
-            overlay = overlay,
-            transitionKey = transitionKey,
-        )
+        delegateMutable.value.hideOverlay(overlay = overlay, transitionKey = transitionKey)
     }
 
     override fun replaceOverlay(from: OverlayKey, to: OverlayKey, transitionKey: TransitionKey?) {
-        delegateMutable.value.replaceOverlay(
-            from = from,
-            to = to,
-            transitionKey = transitionKey,
-        )
+        delegateMutable.value.replaceOverlay(from = from, to = to, transitionKey = transitionKey)
+    }
+
+    override fun instantlyShowOverlay(overlay: OverlayKey) {
+        delegateMutable.value.instantlyShowOverlay(overlay)
+    }
+
+    override fun instantlyHideOverlay(overlay: OverlayKey) {
+        delegateMutable.value.instantlyHideOverlay(overlay)
     }
 
     /**
@@ -105,9 +96,7 @@
         delegateMutable.value = delegate ?: noOpDelegate
     }
 
-    private class NoOpSceneDataSource(
-        initialSceneKey: SceneKey,
-    ) : SceneDataSource {
+    private class NoOpSceneDataSource(initialSceneKey: SceneKey) : SceneDataSource {
         override val currentScene: StateFlow<SceneKey> =
             MutableStateFlow(initialSceneKey).asStateFlow()
 
@@ -125,7 +114,11 @@
         override fun replaceOverlay(
             from: OverlayKey,
             to: OverlayKey,
-            transitionKey: TransitionKey?
+            transitionKey: TransitionKey?,
         ) = Unit
+
+        override fun instantlyShowOverlay(overlay: OverlayKey) = Unit
+
+        override fun instantlyHideOverlay(overlay: OverlayKey) = Unit
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/view/WindowRootView.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/view/WindowRootView.kt
index f0f476e..364da5f 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/ui/view/WindowRootView.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/ui/view/WindowRootView.kt
@@ -30,19 +30,14 @@
 import com.android.systemui.res.R
 
 /** A view that can serve as the root of the main SysUI window. */
-open class WindowRootView(
-    context: Context,
-    attrs: AttributeSet?,
-) :
-    FrameLayout(
-        context,
-        attrs,
-    ) {
+open class WindowRootView(context: Context, attrs: AttributeSet?) : FrameLayout(context, attrs) {
 
     private lateinit var layoutInsetsController: LayoutInsetsController
     private var leftInset = 0
     private var rightInset = 0
 
+    private var previousInsets: WindowInsets? = null
+
     override fun onAttachedToWindow() {
         super.onAttachedToWindow()
 
@@ -66,11 +61,14 @@
     override fun generateDefaultLayoutParams(): FrameLayout.LayoutParams? {
         return LayoutParams(
             FrameLayout.LayoutParams.MATCH_PARENT,
-            FrameLayout.LayoutParams.MATCH_PARENT
+            FrameLayout.LayoutParams.MATCH_PARENT,
         )
     }
 
     override fun onApplyWindowInsets(windowInsets: WindowInsets): WindowInsets? {
+        if (windowInsets == previousInsets) {
+            return windowInsets
+        }
         val insets = windowInsets.getInsetsIgnoringVisibility(WindowInsets.Type.systemBars())
         if (fitsSystemWindows) {
             val paddingChanged = insets.top != paddingTop || insets.bottom != paddingBottom
@@ -95,7 +93,7 @@
         leftInset = pairInsets.first
         rightInset = pairInsets.second
         applyMargins()
-        return windowInsets
+        return windowInsets.also { previousInsets = WindowInsets(it) }
     }
 
     fun setLayoutInsetsController(layoutInsetsController: LayoutInsetsController) {
@@ -143,37 +141,22 @@
     interface LayoutInsetsController {
 
         /** Update the insets and calculate them accordingly. */
-        fun getinsets(
-            windowInsets: WindowInsets?,
-            displayCutout: DisplayCutout?,
-        ): Pair<Int, Int>
+        fun getinsets(windowInsets: WindowInsets?, displayCutout: DisplayCutout?): Pair<Int, Int>
     }
 
     private class LayoutParams : FrameLayout.LayoutParams {
         var ignoreRightInset = false
 
-        constructor(
-            width: Int,
-            height: Int,
-        ) : super(
-            width,
-            height,
-        )
+        constructor(width: Int, height: Int) : super(width, height)
 
         @SuppressLint("CustomViewStyleable")
-        constructor(
-            context: Context,
-            attrs: AttributeSet?,
-        ) : super(
-            context,
-            attrs,
-        ) {
+        constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
             val obtainedAttributes =
                 context.obtainStyledAttributes(attrs, R.styleable.StatusBarWindowView_Layout)
             ignoreRightInset =
                 obtainedAttributes.getBoolean(
                     R.styleable.StatusBarWindowView_Layout_ignoreRightInset,
-                    false
+                    false,
                 )
             obtainedAttributes.recycle()
         }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerSwipeDetector.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerSwipeDetector.kt
new file mode 100644
index 0000000..ede453db
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerSwipeDetector.kt
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.scene.ui.viewmodel
+
+import androidx.compose.foundation.gestures.Orientation
+import androidx.compose.ui.unit.Density
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.IntOffset
+import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.unit.LayoutDirection
+import com.android.compose.animation.scene.Edge
+import com.android.compose.animation.scene.FixedSizeEdgeDetector
+import com.android.compose.animation.scene.SwipeSource
+import com.android.compose.animation.scene.SwipeSourceDetector
+
+/** Identifies an area of the [SceneContainer] to detect swipe gestures on. */
+sealed class SceneContainerArea(private val resolveArea: (LayoutDirection) -> Resolved) :
+    SwipeSource {
+    data object StartEdge :
+        SceneContainerArea(
+            resolveArea = {
+                if (it == LayoutDirection.Ltr) Resolved.LeftEdge else Resolved.RightEdge
+            }
+        )
+
+    data object StartHalf :
+        SceneContainerArea(
+            resolveArea = {
+                if (it == LayoutDirection.Ltr) Resolved.LeftHalf else Resolved.RightHalf
+            }
+        )
+
+    data object EndEdge :
+        SceneContainerArea(
+            resolveArea = {
+                if (it == LayoutDirection.Ltr) Resolved.RightEdge else Resolved.LeftEdge
+            }
+        )
+
+    data object EndHalf :
+        SceneContainerArea(
+            resolveArea = {
+                if (it == LayoutDirection.Ltr) Resolved.RightHalf else Resolved.LeftHalf
+            }
+        )
+
+    override fun resolve(layoutDirection: LayoutDirection): Resolved {
+        return resolveArea(layoutDirection)
+    }
+
+    sealed interface Resolved : SwipeSource.Resolved {
+        data object LeftEdge : Resolved
+
+        data object LeftHalf : Resolved
+
+        data object BottomEdge : Resolved
+
+        data object RightEdge : Resolved
+
+        data object RightHalf : Resolved
+    }
+}
+
+/**
+ * A [SwipeSourceDetector] that detects edges similarly to [FixedSizeEdgeDetector], but additionally
+ * detects the left and right halves of the screen (besides the edges).
+ *
+ * Corner cases (literally): A vertical swipe on the top-left corner of the screen will be resolved
+ * to [SceneContainerArea.Resolved.LeftHalf], whereas a horizontal swipe in the same position will
+ * be resolved to [SceneContainerArea.Resolved.LeftEdge]. The behavior is similar on the top-right
+ * corner of the screen.
+ *
+ * Callers who need to detect the start and end edges based on the layout direction (LTR vs RTL)
+ * should subscribe to [SceneContainerArea.StartEdge] and [SceneContainerArea.EndEdge] instead.
+ * These will be resolved at runtime to [SceneContainerArea.Resolved.LeftEdge] and
+ * [SceneContainerArea.Resolved.RightEdge] appropriately. Similarly, [SceneContainerArea.StartHalf]
+ * and [SceneContainerArea.EndHalf] will be resolved appropriately to
+ * [SceneContainerArea.Resolved.LeftHalf] and [SceneContainerArea.Resolved.RightHalf].
+ *
+ * @param edgeSize The fixed size of each edge.
+ */
+class SceneContainerSwipeDetector(val edgeSize: Dp) : SwipeSourceDetector {
+
+    private val fixedEdgeDetector = FixedSizeEdgeDetector(edgeSize)
+
+    override fun source(
+        layoutSize: IntSize,
+        position: IntOffset,
+        density: Density,
+        orientation: Orientation,
+    ): SceneContainerArea.Resolved {
+        val fixedEdge = fixedEdgeDetector.source(layoutSize, position, density, orientation)
+        return when (fixedEdge) {
+            Edge.Resolved.Left -> SceneContainerArea.Resolved.LeftEdge
+            Edge.Resolved.Bottom -> SceneContainerArea.Resolved.BottomEdge
+            Edge.Resolved.Right -> SceneContainerArea.Resolved.RightEdge
+            else -> {
+                // Note: This intentionally includes Edge.Resolved.Top. At the moment, we don't need
+                // to detect swipes on the top edge, and consider them part of the right/left half.
+                if (position.x < layoutSize.width * 0.5f) {
+                    SceneContainerArea.Resolved.LeftHalf
+                } else {
+                    SceneContainerArea.Resolved.RightHalf
+                }
+            }
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt
index fbcd8ea..efdf5be 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt
@@ -19,6 +19,7 @@
 import android.view.MotionEvent
 import android.view.View
 import androidx.compose.runtime.getValue
+import androidx.compose.ui.unit.dp
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.compose.animation.scene.ContentKey
 import com.android.compose.animation.scene.DefaultEdgeDetector
@@ -31,12 +32,15 @@
 import com.android.systemui.classifier.Classifier
 import com.android.systemui.classifier.domain.interactor.FalsingInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
+import com.android.systemui.keyguard.ui.viewmodel.AodBurnInViewModel
+import com.android.systemui.keyguard.ui.viewmodel.KeyguardClockViewModel
 import com.android.systemui.keyguard.ui.viewmodel.LightRevealScrimViewModel
 import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.power.domain.interactor.PowerInteractor
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.logger.SceneLogger
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.composable.Overlay
 import com.android.systemui.shade.domain.interactor.ShadeModeInteractor
@@ -62,12 +66,13 @@
     private val powerInteractor: PowerInteractor,
     shadeModeInteractor: ShadeModeInteractor,
     private val remoteInputInteractor: RemoteInputInteractor,
-    private val splitEdgeDetector: SplitEdgeDetector,
     private val logger: SceneLogger,
     hapticsViewModelFactory: SceneContainerHapticsViewModel.Factory,
     val lightRevealScrim: LightRevealScrimViewModel,
     val wallpaperViewModel: WallpaperViewModel,
     keyguardInteractor: KeyguardInteractor,
+    val burnIn: AodBurnInViewModel,
+    val clock: KeyguardClockViewModel,
     @Assisted view: View,
     @Assisted private val motionEventHandlerReceiver: (MotionEventHandler?) -> Unit,
 ) : ExclusiveActivatable() {
@@ -85,16 +90,20 @@
     val hapticsViewModel: SceneContainerHapticsViewModel = hapticsViewModelFactory.create(view)
 
     /**
-     * The [SwipeSourceDetector] to use for defining which edges of the screen can be defined in the
+     * The [SwipeSourceDetector] to use for defining which areas of the screen can be defined in the
      * [UserAction]s for this container.
      */
-    val edgeDetector: SwipeSourceDetector by
+    val swipeSourceDetector: SwipeSourceDetector by
         hydrator.hydratedStateOf(
-            traceName = "edgeDetector",
+            traceName = "swipeSourceDetector",
             initialValue = DefaultEdgeDetector,
             source =
                 shadeModeInteractor.shadeMode.map {
-                    if (it is ShadeMode.Dual) splitEdgeDetector else DefaultEdgeDetector
+                    if (it is ShadeMode.Dual) {
+                        SceneContainerSwipeDetector(edgeSize = 40.dp)
+                    } else {
+                        DefaultEdgeDetector
+                    }
                 },
         )
 
@@ -210,38 +219,36 @@
      * it being a false touch.
      */
     fun canChangeScene(toScene: SceneKey): Boolean {
-        val interactionTypeOrNull =
-            when (toScene) {
-                Scenes.Bouncer -> Classifier.BOUNCER_UNLOCK
-                Scenes.Gone -> Classifier.UNLOCK
-                Scenes.Shade -> Classifier.NOTIFICATION_DRAG_DOWN
-                Scenes.QuickSettings -> Classifier.QUICK_SETTINGS
-                else -> null
-            }
-
-        val fromScene = currentScene.value
-        val isAllowed =
-            interactionTypeOrNull?.let { interactionType ->
-                // It's important that the falsing system is always queried, even if no enforcement
-                // will occur. This helps build up the right signal in the system.
-                val isFalseTouch = falsingInteractor.isFalseTouch(interactionType)
-
-                // Only enforce falsing if moving from the lockscreen scene to a new scene.
-                val fromLockscreenScene = fromScene == Scenes.Lockscreen
-
-                !fromLockscreenScene || !isFalseTouch
-            } ?: true
-
-        if (isAllowed) {
+        return isInteractionAllowedByFalsing(toScene).also {
             // A scene change is guaranteed; log it.
             logger.logSceneChanged(
-                from = fromScene,
+                from = currentScene.value,
                 to = toScene,
+                sceneState = null,
                 reason = "user interaction",
                 isInstant = false,
             )
         }
-        return isAllowed
+    }
+
+    /**
+     * Returns `true` if showing the [newlyShown] overlay is currently allowed; `false` otherwise.
+     *
+     * This is invoked only for user-initiated transitions. The goal is to check with the falsing
+     * system whether the overlay change should be rejected due to it being a false touch.
+     */
+    fun canShowOrReplaceOverlay(
+        newlyShown: OverlayKey,
+        beingReplaced: OverlayKey? = null,
+    ): Boolean {
+        return isInteractionAllowedByFalsing(newlyShown).also {
+            // An overlay change is guaranteed; log it.
+            logger.logOverlayChangeRequested(
+                from = beingReplaced,
+                to = newlyShown,
+                reason = "user interaction",
+            )
+        }
     }
 
     /**
@@ -304,6 +311,34 @@
         return sceneInteractor.filteredUserActions(unfiltered)
     }
 
+    /**
+     * Returns `true` if transitioning to [content] is permissible by the falsing system; `false`
+     * otherwise.
+     */
+    private fun isInteractionAllowedByFalsing(content: ContentKey): Boolean {
+        val interactionTypeOrNull =
+            when (content) {
+                Scenes.Bouncer -> Classifier.BOUNCER_UNLOCK
+                Scenes.Gone -> Classifier.UNLOCK
+                Scenes.Shade,
+                Overlays.NotificationsShade -> Classifier.NOTIFICATION_DRAG_DOWN
+                Scenes.QuickSettings,
+                Overlays.QuickSettingsShade -> Classifier.QUICK_SETTINGS
+                else -> null
+            }
+
+        return interactionTypeOrNull?.let { interactionType ->
+            // It's important that the falsing system is always queried, even if no enforcement
+            // will occur. This helps build up the right signal in the system.
+            val isFalseTouch = falsingInteractor.isFalseTouch(interactionType)
+
+            // Only enforce falsing if moving from the lockscreen scene to new content.
+            val fromLockscreenScene = currentScene.value == Scenes.Lockscreen
+
+            !fromLockscreenScene || !isFalseTouch
+        } ?: true
+    }
+
     /** Defines interface for classes that can handle externally-reported [MotionEvent]s. */
     interface MotionEventHandler {
         /** Notifies that a [MotionEvent] has occurred. */
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetector.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetector.kt
deleted file mode 100644
index f88bcb5..0000000
--- a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetector.kt
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.scene.ui.viewmodel
-
-import androidx.compose.foundation.gestures.Orientation
-import androidx.compose.ui.unit.Density
-import androidx.compose.ui.unit.Dp
-import androidx.compose.ui.unit.IntOffset
-import androidx.compose.ui.unit.IntSize
-import androidx.compose.ui.unit.LayoutDirection
-import com.android.compose.animation.scene.Edge
-import com.android.compose.animation.scene.FixedSizeEdgeDetector
-import com.android.compose.animation.scene.SwipeSource
-import com.android.compose.animation.scene.SwipeSourceDetector
-
-/**
- * The edge of a [SceneContainer]. It differs from a standard [Edge] by splitting the top edge into
- * top-left and top-right.
- */
-enum class SceneContainerEdge(private val resolveEdge: (LayoutDirection) -> Resolved) :
-    SwipeSource {
-    TopLeft(resolveEdge = { Resolved.TopLeft }),
-    TopRight(resolveEdge = { Resolved.TopRight }),
-    TopStart(
-        resolveEdge = { if (it == LayoutDirection.Ltr) Resolved.TopLeft else Resolved.TopRight }
-    ),
-    TopEnd(
-        resolveEdge = { if (it == LayoutDirection.Ltr) Resolved.TopRight else Resolved.TopLeft }
-    ),
-    Bottom(resolveEdge = { Resolved.Bottom }),
-    Left(resolveEdge = { Resolved.Left }),
-    Right(resolveEdge = { Resolved.Right }),
-    Start(resolveEdge = { if (it == LayoutDirection.Ltr) Resolved.Left else Resolved.Right }),
-    End(resolveEdge = { if (it == LayoutDirection.Ltr) Resolved.Right else Resolved.Left });
-
-    override fun resolve(layoutDirection: LayoutDirection): Resolved {
-        return resolveEdge(layoutDirection)
-    }
-
-    enum class Resolved : SwipeSource.Resolved {
-        TopLeft,
-        TopRight,
-        Bottom,
-        Left,
-        Right,
-    }
-}
-
-/**
- * A [SwipeSourceDetector] that detects edges similarly to [FixedSizeEdgeDetector], except that the
- * top edge is split in two: top-left and top-right. The split point between the two is dynamic and
- * may change during runtime.
- *
- * Callers who need to detect the start and end edges based on the layout direction (LTR vs RTL)
- * should subscribe to [SceneContainerEdge.TopStart] and [SceneContainerEdge.TopEnd] instead. These
- * will be resolved at runtime to [SceneContainerEdge.Resolved.TopLeft] and
- * [SceneContainerEdge.Resolved.TopRight] appropriately. Similarly, [SceneContainerEdge.Start] and
- * [SceneContainerEdge.End] will be resolved appropriately to [SceneContainerEdge.Resolved.Left] and
- * [SceneContainerEdge.Resolved.Right].
- *
- * @param topEdgeSplitFraction A function which returns the fraction between [0..1] (i.e.,
- *   percentage) of screen width to consider the split point between "top-left" and "top-right"
- *   edges. It is called on each source detection event.
- * @param edgeSize The fixed size of each edge.
- */
-class SplitEdgeDetector(
-    val topEdgeSplitFraction: () -> Float,
-    val edgeSize: Dp,
-) : SwipeSourceDetector {
-
-    private val fixedEdgeDetector = FixedSizeEdgeDetector(edgeSize)
-
-    override fun source(
-        layoutSize: IntSize,
-        position: IntOffset,
-        density: Density,
-        orientation: Orientation,
-    ): SceneContainerEdge.Resolved? {
-        val fixedEdge =
-            fixedEdgeDetector.source(
-                layoutSize,
-                position,
-                density,
-                orientation,
-            )
-        return when (fixedEdge) {
-            Edge.Resolved.Top -> {
-                val topEdgeSplitFraction = topEdgeSplitFraction()
-                require(topEdgeSplitFraction in 0f..1f) {
-                    "topEdgeSplitFraction must return a value between 0.0 and 1.0"
-                }
-                val isLeftSide = position.x < layoutSize.width * topEdgeSplitFraction
-                if (isLeftSide) SceneContainerEdge.Resolved.TopLeft
-                else SceneContainerEdge.Resolved.TopRight
-            }
-            Edge.Resolved.Left -> SceneContainerEdge.Resolved.Left
-            Edge.Resolved.Bottom -> SceneContainerEdge.Resolved.Bottom
-            Edge.Resolved.Right -> SceneContainerEdge.Resolved.Right
-            null -> null
-        }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/GlanceableHubContainerController.kt b/packages/SystemUI/src/com/android/systemui/shade/GlanceableHubContainerController.kt
index a379ef7..305e71e 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/GlanceableHubContainerController.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/GlanceableHubContainerController.kt
@@ -520,7 +520,10 @@
         val glanceableHubV2 = communalSettingsInteractor.isV2FlagEnabled()
         if (
             !hubShowing &&
-                (touchOnNotifications || touchOnUmo || touchOnSmartspace || glanceableHubV2)
+                (touchOnNotifications ||
+                    touchOnUmo ||
+                    touchOnSmartspace ||
+                    !communalViewModel.swipeToHubEnabled())
         ) {
             logger.d({
                 "Lockscreen touch ignored: touchOnNotifications: $bool1, touchOnUmo: $bool2, " +
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index e535019..5746cef 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -49,6 +49,7 @@
 import android.animation.ValueAnimator;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.graphics.Color;
 import android.graphics.Insets;
@@ -108,7 +109,8 @@
 import com.android.systemui.keyguard.shared.model.Edge;
 import com.android.systemui.keyguard.shared.model.TransitionState;
 import com.android.systemui.keyguard.shared.model.TransitionStep;
-import com.android.systemui.keyguard.ui.binder.KeyguardLongPressViewBinder;
+import com.android.systemui.keyguard.ui.binder.KeyguardTouchViewBinder;
+import com.android.systemui.keyguard.ui.transitions.BlurConfig;
 import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel;
 import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel;
 import com.android.systemui.media.controls.domain.pipeline.MediaDataManager;
@@ -187,6 +189,7 @@
 import com.android.systemui.util.Compile;
 import com.android.systemui.util.Utils;
 import com.android.systemui.util.time.SystemClock;
+import com.android.systemui.wallpapers.ui.viewmodel.WallpaperFocalAreaViewModel;
 import com.android.wm.shell.animation.FlingAnimationUtils;
 
 import dalvik.annotation.optimization.NeverCompile;
@@ -261,7 +264,7 @@
     private final ShadeLogger mShadeLog;
     private final DozeParameters mDozeParameters;
     private final NotificationStackScrollLayout.OnEmptySpaceClickListener
-            mOnEmptySpaceClickListener = (x, y) -> onEmptySpaceClick();
+            mOnEmptySpaceClickListener = this::onEmptySpaceClick;
     private final ShadeHeadsUpChangedListener mOnHeadsUpChangedListener =
             new ShadeHeadsUpChangedListener();
     private final ConfigurationListener mConfigurationListener = new ConfigurationListener();
@@ -307,6 +310,7 @@
     private final AlternateBouncerInteractor mAlternateBouncerInteractor;
     private final QuickSettingsControllerImpl mQsController;
     private final TouchHandler mTouchHandler = new TouchHandler();
+    private final BlurConfig mBlurConfig;
 
     private long mDownTime;
     private long mStatusBarLongPressDowntime = -1L;
@@ -459,6 +463,7 @@
     private final NotificationListContainer mNotificationListContainer;
     private final NPVCDownEventState.Buffer mLastDownEvents;
     private final KeyguardClockInteractor mKeyguardClockInteractor;
+    private final WallpaperFocalAreaViewModel mWallpaperFocalAreaViewModel;
     private float mMinExpandHeight;
     private boolean mPanelUpdateWhenAnimatorEnds;
     private boolean mHasVibratedOnOpen = false;
@@ -592,6 +597,7 @@
             KeyguardTransitionInteractor keyguardTransitionInteractor,
             DumpManager dumpManager,
             KeyguardTouchHandlingViewModel keyguardTouchHandlingViewModel,
+            WallpaperFocalAreaViewModel wallpaperFocalAreaViewModel,
             KeyguardInteractor keyguardInteractor,
             ActivityStarter activityStarter,
             SharedNotificationContainerInteractor sharedNotificationContainerInteractor,
@@ -602,7 +608,9 @@
             PowerInteractor powerInteractor,
             KeyguardClockPositionAlgorithm keyguardClockPositionAlgorithm,
             MSDLPlayer msdlPlayer,
-            BrightnessMirrorShowingInteractor brightnessMirrorShowingInteractor) {
+            BrightnessMirrorShowingInteractor brightnessMirrorShowingInteractor,
+            BlurConfig blurConfig) {
+        mBlurConfig = blurConfig;
         SceneContainerFlag.assertInLegacyMode();
         keyguardStateController.addCallback(new KeyguardStateController.Callback() {
             @Override
@@ -747,11 +755,12 @@
                 SysUIUnfoldComponent::getKeyguardUnfoldTransition);
 
         mKeyguardClockInteractor = keyguardClockInteractor;
-        KeyguardLongPressViewBinder.bind(
+        mWallpaperFocalAreaViewModel = wallpaperFocalAreaViewModel;
+        KeyguardTouchViewBinder.bind(
                 mView.requireViewById(R.id.keyguard_long_press),
                 keyguardTouchHandlingViewModel,
-                () -> {
-                    onEmptySpaceClick();
+                (x, y) -> {
+                    onEmptySpaceClick(x, y);
                     return Unit.INSTANCE;
                 },
                 mFalsingManager);
@@ -918,8 +927,8 @@
         if (isBouncerShowing && isExpanded()) {
             if (mBlurRenderEffect == null) {
                 mBlurRenderEffect = RenderEffect.createBlurEffect(
-                        mDepthController.getMaxBlurRadiusPx(),
-                        mDepthController.getMaxBlurRadiusPx(),
+                        mBlurConfig.getMaxBlurRadiusPx(),
+                        mBlurConfig.getMaxBlurRadiusPx(),
                         Shader.TileMode.CLAMP);
             }
             mView.setRenderEffect(mBlurRenderEffect);
@@ -2071,7 +2080,7 @@
         }
     }
 
-    private void onMiddleClicked() {
+    private void onMiddleClicked(float x, float y) {
         switch (mBarState) {
             case KEYGUARD:
                 if (!mDozingOnDown) {
@@ -2090,6 +2099,7 @@
                         mLockscreenGestureLogger
                                 .log(LockscreenUiEvent.LOCKSCREEN_LOCK_SHOW_HINT);
                         mKeyguardIndicationController.showActionToUnlock();
+                        mKeyguardClockInteractor.handleFidgetTap(x, y);
                     }
                 }
                 break;
@@ -2834,7 +2844,7 @@
         } else if (!mCentralSurfaces.isBouncerShowing()
                 && !mAlternateBouncerInteractor.isVisibleState()
                 && !mKeyguardStateController.isKeyguardGoingAway()) {
-            onEmptySpaceClick();
+            onEmptySpaceClick(x, y);
             onTrackingStopped(true);
         }
         mVelocityTracker.clear();
@@ -3142,8 +3152,8 @@
     }
 
     /** Called when the user performs a click anywhere in the empty area of the panel. */
-    private void onEmptySpaceClick() {
-        onMiddleClicked();
+    private void onEmptySpaceClick(float x, float y) {
+        onMiddleClicked(x, y);
     }
 
     @VisibleForTesting
@@ -3371,6 +3381,13 @@
     private final class ConfigurationListener implements
             ConfigurationController.ConfigurationListener {
         @Override
+        public void onConfigChanged(Configuration newConfig) {
+            if (ShadeWindowGoesAround.isEnabled()) {
+                updateResources();
+            }
+        }
+
+        @Override
         public void onThemeChanged() {
             debugLog("onThemeChanged");
             reInflateViews();
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java
index 48e3747..1721700 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowView.java
@@ -187,10 +187,6 @@
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
         ShadeTraceLogger.logOnConfigChanged(newConfig);
-        if (mConfigurationForwarder != null) {
-            ShadeWindowGoesAround.isUnexpectedlyInLegacyMode();
-            mConfigurationForwarder.onConfigurationChanged(newConfig);
-        }
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt
index 9a79e1a..ce48c85 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt
@@ -31,16 +31,26 @@
 import android.provider.AlarmClock
 import android.view.DisplayCutout
 import android.view.View
+import android.view.ViewGroup
 import android.view.WindowInsets
 import android.widget.TextView
 import androidx.annotation.VisibleForTesting
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.wrapContentWidth
+import androidx.compose.runtime.getValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.unit.dp
 import androidx.constraintlayout.motion.widget.MotionLayout
 import androidx.core.view.doOnLayout
+import androidx.core.view.isVisible
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.app.animation.Interpolators
 import com.android.settingslib.Utils
 import com.android.systemui.Dumpable
 import com.android.systemui.animation.ShadeInterpolation
 import com.android.systemui.battery.BatteryMeterView
+import com.android.systemui.battery.BatteryMeterView.MODE_ESTIMATE
 import com.android.systemui.battery.BatteryMeterViewController
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.demomode.DemoMode
@@ -60,12 +70,15 @@
 import com.android.systemui.shade.carrier.ShadeCarrierGroupController
 import com.android.systemui.shade.data.repository.ShadeDisplaysRepository
 import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround
+import com.android.systemui.statusbar.core.NewStatusBarIcons
 import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore
 import com.android.systemui.statusbar.phone.StatusBarLocation
 import com.android.systemui.statusbar.phone.StatusIconContainer
 import com.android.systemui.statusbar.phone.StatusOverlayHoverListenerFactory
 import com.android.systemui.statusbar.phone.ui.StatusBarIconController
 import com.android.systemui.statusbar.phone.ui.TintedIconManager
+import com.android.systemui.statusbar.pipeline.battery.ui.composable.BatteryWithEstimate
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
 import com.android.systemui.statusbar.policy.Clock
 import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.NextAlarmController
@@ -76,6 +89,7 @@
 import java.io.PrintWriter
 import javax.inject.Inject
 import javax.inject.Named
+import kotlinx.coroutines.flow.MutableStateFlow
 
 /**
  * Controller for QS header.
@@ -100,6 +114,7 @@
     private val shadeDisplaysRepositoryLazy: Lazy<ShadeDisplaysRepository>,
     private val variableDateViewControllerFactory: VariableDateViewController.Factory,
     @Named(SHADE_HEADER) private val batteryMeterViewController: BatteryMeterViewController,
+    private val batteryViewModelFactory: BatteryViewModel.Factory,
     private val dumpManager: DumpManager,
     private val shadeCarrierGroupControllerBuilder: ShadeCarrierGroupController.Builder,
     private val combinedShadeHeadersConstraintManager: CombinedShadeHeadersConstraintManager,
@@ -162,6 +177,8 @@
     private var lastInsets: WindowInsets? = null
     private var nextAlarmIntent: PendingIntent? = null
 
+    private val showBatteryEstimate = MutableStateFlow(false)
+
     private var qsDisabled = false
     private var visible = false
         set(value) {
@@ -323,10 +340,6 @@
 
     override fun onInit() {
         variableDateViewControllerFactory.create(date as VariableDateView).init()
-        batteryMeterViewController.init()
-
-        // battery settings same as in QS icons
-        batteryMeterViewController.ignoreTunerUpdates()
 
         val fgColor =
             Utils.getColorAttrDefaultColor(header.context, android.R.attr.textColorPrimary)
@@ -336,11 +349,36 @@
         iconManager = tintedIconManagerFactory.create(iconContainer, StatusBarLocation.QS)
         iconManager.setTint(fgColor, bgColor)
 
-        batteryIcon.updateColors(
-            fgColor /* foreground */,
-            bgColor /* background */,
-            fgColor, /* single tone (current default) */
-        )
+        if (!NewStatusBarIcons.isEnabled) {
+            batteryMeterViewController.init()
+
+            // battery settings same as in QS icons
+            batteryMeterViewController.ignoreTunerUpdates()
+
+            batteryIcon.isVisible = true
+            batteryIcon.updateColors(
+                fgColor /* foreground */,
+                bgColor /* background */,
+                fgColor, /* single tone (current default) */
+            )
+        } else {
+            // Configure the compose battery view
+            val batteryComposeView =
+                ComposeView(mView.context).apply {
+                    setContent {
+                        val showBatteryEstimate by showBatteryEstimate.collectAsStateWithLifecycle()
+                        BatteryWithEstimate(
+                            modifier = Modifier.height(17.dp).wrapContentWidth(),
+                            viewModelFactory = batteryViewModelFactory,
+                            isDark = { true },
+                            showEstimate = showBatteryEstimate,
+                        )
+                    }
+                }
+            mView.requireViewById<ViewGroup>(R.id.hover_system_icons_container).apply {
+                addView(batteryComposeView, -1)
+            }
+        }
 
         carrierIconSlots =
             listOf(header.context.getString(com.android.internal.R.string.status_bar_mobile))
@@ -474,7 +512,11 @@
 
     private fun updateBatteryMode() {
         qsBatteryModeController.getBatteryMode(cutout, qsExpandedFraction)?.let {
-            batteryIcon.setPercentShowMode(it)
+            if (NewStatusBarIcons.isEnabled) {
+                showBatteryEstimate.value = it == MODE_ESTIMATE
+            } else {
+                batteryIcon.setPercentShowMode(it)
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt
index b9df9f86..7d4b0ed 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt
@@ -45,13 +45,17 @@
 import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractorImpl
 import com.android.systemui.shade.domain.interactor.ShadeModeInteractor
 import com.android.systemui.shade.domain.interactor.ShadeModeInteractorImpl
+import com.android.systemui.window.dagger.WindowRootViewBlurModule
 import dagger.Binds
 import dagger.Module
 import dagger.Provides
 import javax.inject.Provider
 
 /** Module for classes related to the notification shade. */
-@Module(includes = [StartShadeModule::class, ShadeViewProviderModule::class])
+@Module(
+    includes =
+        [StartShadeModule::class, ShadeViewProviderModule::class, WindowRootViewBlurModule::class]
+)
 abstract class ShadeModule {
     companion object {
         @Provides
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt
index 6b183ac..bd77961 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt
@@ -21,6 +21,7 @@
 import com.android.app.tracing.coroutines.TrackTracer.Companion.instantForGroup
 import com.android.app.tracing.coroutines.launchTraced
 import com.android.systemui.CoreStartable
+import com.android.systemui.common.ui.data.repository.ConfigurationRepository
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.shade.data.repository.ShadeDisplaysRepository
@@ -39,6 +40,7 @@
     private val shadeInteractor: ShadeInteractor,
     private val shadeModeInteractor: ShadeModeInteractor,
     private val shadeDisplaysRepository: Lazy<ShadeDisplaysRepository>,
+    @ShadeDisplayAware private val configurationRepository: ConfigurationRepository,
     @Application private val scope: CoroutineScope,
 ) : CoreStartable {
     override fun start() {
@@ -63,6 +65,15 @@
                     }
                 }
             }
+            launch {
+                configurationRepository.configurationValues.collect {
+                    instantForGroup(
+                        TRACK_GROUP_NAME,
+                        "configurationChange#smallestScreenWidthDp",
+                        it.smallestScreenWidthDp,
+                    )
+                }
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeTraceLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeTraceLogger.kt
index 9a9fc46..ed36204 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeTraceLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeTraceLogger.kt
@@ -36,7 +36,10 @@
 
     @JvmStatic
     fun logOnConfigChanged(config: Configuration) {
-        t.instant { "onConfigurationChanged(dpi=${config.densityDpi})" }
+        t.instant {
+            "NotificationShadeWindowView#onConfigurationChanged(dpi=${config.densityDpi}, " +
+                    "smallestWidthDp=${config.smallestScreenWidthDp})"
+        }
     }
 
     @JvmStatic
diff --git a/packages/SystemUI/src/com/android/systemui/shade/display/StatusBarTouchShadeDisplayPolicy.kt b/packages/SystemUI/src/com/android/systemui/shade/display/StatusBarTouchShadeDisplayPolicy.kt
index b155ada8..1f534a5 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/display/StatusBarTouchShadeDisplayPolicy.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/display/StatusBarTouchShadeDisplayPolicy.kt
@@ -111,10 +111,7 @@
         statusbarWidth: Int,
     ): ShadeElement {
         val xPercentage = motionEvent.x / statusbarWidth
-        val threshold = shadeInteractor.get().getTopEdgeSplitFraction()
-        return if (xPercentage < threshold) {
-            notificationElement.get()
-        } else qsShadeElement.get()
+        return if (xPercentage < 0.5f) notificationElement.get() else qsShadeElement.get()
     }
 
     private fun monitorDisplayRemovals(): Job {
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt
index 6eaedd7..2b3e4b5 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt
@@ -34,7 +34,11 @@
     override fun animateCollapseQs(fullyCollapse: Boolean) {
         if (shadeInteractor.isQsExpanded.value) {
             val key =
-                if (fullyCollapse || shadeModeInteractor.isDualShade) {
+                if (
+                    fullyCollapse ||
+                        shadeModeInteractor.isDualShade ||
+                        shadeModeInteractor.isSplitShade
+                ) {
                     SceneFamilies.Home
                 } else {
                     Scenes.Shade
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractor.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractor.kt
index b045db4..e746274 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractor.kt
@@ -16,6 +16,8 @@
 
 package com.android.systemui.shade.domain.interactor
 
+import android.content.ComponentCallbacks
+import android.content.res.Configuration
 import android.util.Log
 import android.window.WindowContext
 import androidx.annotation.UiThread
@@ -36,6 +38,7 @@
 import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor
 import com.android.systemui.statusbar.notification.row.NotificationRebindingTracker
 import com.android.systemui.statusbar.notification.stack.NotificationStackRebindingHider
+import com.android.systemui.statusbar.phone.ConfigurationForwarder
 import com.android.systemui.util.kotlin.getOrNull
 import com.android.window.flags.Flags
 import java.util.Optional
@@ -65,6 +68,7 @@
     private val activeNotificationsInteractor: ActiveNotificationsInteractor,
     private val notificationRebindingTracker: NotificationRebindingTracker,
     notificationStackRebindingHider: Optional<NotificationStackRebindingHider>,
+    @ShadeDisplayAware private val configForwarder: ConfigurationForwarder,
 ) : CoreStartable {
 
     private val shadeExpandedInteractor = requireOptional(shadeExpandedInteractor)
@@ -75,6 +79,7 @@
 
     override fun start() {
         ShadeWindowGoesAround.isUnexpectedlyInLegacyMode()
+        listenForWindowContextConfigChanges()
         bgScope.launchTraced(TAG) {
             shadePositionRepository.displayId.collectLatest { displayId ->
                 moveShadeWindowTo(displayId)
@@ -82,6 +87,18 @@
         }
     }
 
+    private fun listenForWindowContextConfigChanges() {
+        shadeContext.registerComponentCallbacks(
+            object : ComponentCallbacks {
+                override fun onConfigurationChanged(newConfig: Configuration) {
+                    configForwarder.onConfigurationChanged(newConfig)
+                }
+
+                override fun onLowMemory() {}
+            }
+        )
+    }
+
     /** Tries to move the shade. If anything wrong happens, fails gracefully without crashing. */
     private suspend fun moveShadeWindowTo(destinationId: Int) {
         Log.d(TAG, "Trying to move shade window to display with id $destinationId")
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeExpandedStateInteractor.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeExpandedStateInteractor.kt
index 8b110e3..c60a67f 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeExpandedStateInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeExpandedStateInteractor.kt
@@ -110,13 +110,17 @@
     @Background private val bgContext: CoroutineContext,
 ) : ShadeElement() {
     override suspend fun expand(reason: String) {
-        shadeInteractor.expandNotificationsShade(reason)
-        shadeInteractor.shadeExpansion.waitUntil(1f, bgContext)
+        if (SceneContainerFlag.isEnabled) {
+            shadeInteractor.expandNotificationsShade(reason)
+            shadeInteractor.shadeExpansion.waitUntil(1f, bgContext)
+        }
     }
 
     override suspend fun collapse(reason: String) {
-        shadeInteractor.collapseNotificationsShade(reason)
-        shadeInteractor.shadeExpansion.waitUntil(0f, bgContext)
+        if (SceneContainerFlag.isEnabled) {
+            shadeInteractor.collapseNotificationsShade(reason)
+            shadeInteractor.shadeExpansion.waitUntil(0f, bgContext)
+        }
     }
 }
 
@@ -128,12 +132,16 @@
     @Background private val bgContext: CoroutineContext,
 ) : ShadeElement() {
     override suspend fun expand(reason: String) {
-        shadeInteractor.expandQuickSettingsShade(reason)
-        shadeInteractor.qsExpansion.waitUntil(1f, bgContext)
+        if (SceneContainerFlag.isEnabled) {
+            shadeInteractor.expandQuickSettingsShade(reason)
+            shadeInteractor.qsExpansion.waitUntil(1f, bgContext)
+        }
     }
 
     override suspend fun collapse(reason: String) {
-        shadeInteractor.collapseQuickSettingsShade(reason)
-        shadeInteractor.qsExpansion.waitUntil(0f, bgContext)
+        if (SceneContainerFlag.isEnabled) {
+            shadeInteractor.collapseQuickSettingsShade(reason)
+            shadeInteractor.qsExpansion.waitUntil(0f, bgContext)
+        }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt
index c8ce316..6d68796 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt
@@ -16,7 +16,6 @@
 
 package com.android.systemui.shade.domain.interactor
 
-import androidx.annotation.FloatRange
 import com.android.compose.animation.scene.TransitionKey
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
@@ -66,16 +65,6 @@
      * wide as the entire screen.
      */
     val isShadeLayoutWide: StateFlow<Boolean>
-
-    /**
-     * The fraction between [0..1] (i.e., percentage) of screen width to consider the threshold
-     * between "top-left" and "top-right" for the purposes of dual-shade invocation.
-     *
-     * Note that this fraction only determines the *split* between the absolute left and right
-     * directions. In RTL layouts, the "top-start" edge will resolve to "top-right", and "top-end"
-     * will resolve to "top-left".
-     */
-    @FloatRange(from = 0.0, to = 1.0) fun getTopEdgeSplitFraction(): Float
 }
 
 /** ShadeInteractor methods with implementations that differ between non-empty impls. */
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt
index b1129a9..77e6a83 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt
@@ -48,8 +48,6 @@
     override val isExpandToQsEnabled: Flow<Boolean> = inactiveFlowBoolean
     override val isShadeLayoutWide: StateFlow<Boolean> = inactiveFlowBoolean
 
-    override fun getTopEdgeSplitFraction(): Float = 0.5f
-
     override fun expandNotificationsShade(loggingReason: String, transitionKey: TransitionKey?) {}
 
     override fun expandQuickSettingsShade(loggingReason: String, transitionKey: TransitionKey?) {}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/ShadeColors.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/ShadeColors.kt
index 8db6225..6242847 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ui/ShadeColors.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ui/ShadeColors.kt
@@ -23,18 +23,48 @@
 
 object ShadeColors {
     @JvmStatic
-    fun Resources.shadePanel(): Int {
-        val layerAbove =
-            ColorUtils.setAlphaComponent(getColor(R.color.shade_panel_base), (0.4f * 255).toInt())
+    fun Resources.shadePanel(blurSupported: Boolean): Int {
+        return if (blurSupported) {
+            shadePanelStandard()
+        } else {
+            shadePanelFallback()
+        }
+    }
+
+    @JvmStatic
+    fun Resources.notificationScrim(blurSupported: Boolean): Int {
+        return if (blurSupported) {
+            notificationScrimStandard()
+        } else {
+            notificationScrimFallback()
+        }
+    }
+
+    @JvmStatic
+    private fun Resources.shadePanelStandard(): Int {
+        val layerAbove = ColorUtils.setAlphaComponent(
+            getColor(R.color.shade_panel_base, null),
+            (0.4f * 255).toInt()
+        )
         val layerBelow = ColorUtils.setAlphaComponent(Color.WHITE, (0.1f * 255).toInt())
         return ColorUtils.compositeColors(layerAbove, layerBelow)
     }
 
     @JvmStatic
-    fun Resources.notificationScrim(): Int {
+    private fun Resources.shadePanelFallback(): Int {
+        return getColor(R.color.shade_panel_fallback, null)
+    }
+
+    @JvmStatic
+    private fun Resources.notificationScrimStandard(): Int {
         return ColorUtils.setAlphaComponent(
-            getColor(R.color.notification_scrim_base),
+            getColor(R.color.notification_scrim_base, null),
             (0.5f * 255).toInt(),
         )
     }
+
+    @JvmStatic
+    private fun Resources.notificationScrimFallback(): Int {
+        return getColor(R.color.notification_scrim_fallback, null)
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt
index c6752f8..cf3b08c 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt
@@ -20,10 +20,11 @@
 import com.android.compose.animation.scene.Swipe
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
+import com.android.compose.animation.scene.UserActionResult.ShowOverlay
 import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.TransitionKeys.ToSplitShade
-import com.android.systemui.scene.ui.viewmodel.SceneContainerEdge
+import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
 
 /** Returns collection of [UserAction] to [UserActionResult] pairs for opening the single shade. */
 fun singleShadeActions(
@@ -66,11 +67,10 @@
 
 /** Returns collection of [UserAction] to [UserActionResult] pairs for opening the dual shade. */
 fun dualShadeActions(): Array<Pair<UserAction, UserActionResult>> {
-    val notifShadeUserActionResult = UserActionResult.ShowOverlay(Overlays.NotificationsShade)
-    val qsShadeuserActionResult = UserActionResult.ShowOverlay(Overlays.QuickSettingsShade)
     return arrayOf(
-        Swipe.Down to notifShadeUserActionResult,
-        Swipe.Down(fromSource = SceneContainerEdge.TopRight) to qsShadeuserActionResult,
+        Swipe.Down to ShowOverlay(Overlays.NotificationsShade),
+        Swipe.Down(fromSource = SceneContainerArea.EndHalf) to
+            ShowOverlay(Overlays.QuickSettingsShade),
     )
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt b/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt
index 04bdfbe..f30043e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar
 
 import android.app.ActivityManager
+import android.content.res.Resources
 import android.os.SystemProperties
 import android.os.Trace
 import android.os.Trace.TRACE_TAG_APP
@@ -28,20 +29,28 @@
 import android.view.ViewRootImpl
 import androidx.annotation.VisibleForTesting
 import com.android.systemui.Dumpable
+import com.android.systemui.Flags
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.dump.DumpManager
 import java.io.PrintWriter
 import javax.inject.Inject
 import com.android.systemui.keyguard.ui.transitions.BlurConfig
+import com.android.systemui.res.R
 
 @SysUISingleton
 open class BlurUtils @Inject constructor(
+    @Main resources: Resources,
     blurConfig: BlurConfig,
     private val crossWindowBlurListeners: CrossWindowBlurListeners,
     dumpManager: DumpManager
 ) : Dumpable {
     val minBlurRadius = blurConfig.minBlurRadiusPx
-    val maxBlurRadius = blurConfig.maxBlurRadiusPx
+    val maxBlurRadius = if (Flags.notificationShadeBlur()) {
+        blurConfig.maxBlurRadiusPx
+    } else {
+        resources.getDimensionPixelSize(R.dimen.max_window_blur_radius).toFloat()
+    }
 
     private var lastAppliedBlur = 0
     private var earlyWakeupEnabled = false
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionController.kt
index 31e5df9..891902ed 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeKeyguardTransitionController.kt
@@ -6,6 +6,7 @@
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
 import com.android.systemui.res.R
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractor
 import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.SplitShadeStateController
@@ -19,7 +20,7 @@
 constructor(
     private val mediaHierarchyManager: MediaHierarchyManager,
     @Assisted private val shadeLockscreenInteractor: ShadeLockscreenInteractor,
-    context: Context,
+    @ShadeDisplayAware context: Context,
     configurationController: ConfigurationController,
     dumpManager: DumpManager,
     splitShadeStateController: SplitShadeStateController,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionController.kt
index adca3f2..233d818 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeQsTransitionController.kt
@@ -24,6 +24,7 @@
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.plugins.qs.QS
 import com.android.systemui.res.R
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.SplitShadeStateController
 import dagger.assisted.Assisted
@@ -35,7 +36,7 @@
 class LockscreenShadeQsTransitionController
 @AssistedInject
 constructor(
-    context: Context,
+    @ShadeDisplayAware context: Context,
     configurationController: ConfigurationController,
     dumpManager: DumpManager,
     @Assisted private val qsProvider: () -> QS?,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionController.kt
index 77a0960..058ccba 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeScrimTransitionController.kt
@@ -5,6 +5,7 @@
 import android.util.MathUtils
 import com.android.systemui.res.R
 import com.android.systemui.dump.DumpManager
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.phone.ScrimController
 import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.SplitShadeStateController
@@ -15,7 +16,7 @@
 @Inject
 constructor(
     private val scrimController: ScrimController,
-    context: Context,
+    @ShadeDisplayAware context: Context,
     configurationController: ConfigurationController,
     dumpManager: DumpManager,
     splitShadeStateController: SplitShadeStateController
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
index ba41a63..10f61c6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
@@ -29,6 +29,7 @@
 import com.android.systemui.plugins.statusbar.StatusBarStateController
 import com.android.systemui.qs.ui.adapter.QSSceneAdapter
 import com.android.systemui.res.R
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.data.repository.ShadeRepository
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractor
@@ -67,7 +68,7 @@
     private val keyguardTransitionControllerFactory:
         LockscreenShadeKeyguardTransitionController.Factory,
     private val depthController: NotificationShadeDepthController,
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     private val splitShadeOverScrollerFactory: SplitShadeLockScreenOverScroller.Factory,
     private val singleShadeOverScrollerFactory: SingleShadeLockScreenOverScroller.Factory,
     private val activityStarter: ActivityStarter,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
index 25ebc8c..f06565f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
@@ -24,8 +24,10 @@
 import static android.os.Flags.allowPrivateProfile;
 import static android.os.UserHandle.USER_ALL;
 import static android.os.UserHandle.USER_NULL;
+import static android.provider.Settings.Secure.REDACT_OTP_NOTIFICATION_IMMEDIATELY;
 import static android.provider.Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS;
 import static android.provider.Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS;
+import static android.provider.Settings.Secure.REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI;
 
 import static com.android.systemui.DejankUtils.whitelistIpcs;
 
@@ -44,6 +46,7 @@
 import android.database.ExecutorContentObserver;
 import android.net.Uri;
 import android.os.Looper;
+import android.os.Process;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -118,6 +121,11 @@
             Settings.Secure.getUriFor(LOCK_SCREEN_SHOW_NOTIFICATIONS);
     private static final Uri SHOW_PRIVATE_LOCKSCREEN =
             Settings.Secure.getUriFor(LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS);
+    private static final Uri REDACT_OTP_ON_WIFI =
+            Settings.Secure.getUriFor(REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI);
+
+    private static final Uri REDACT_OTP_IMMEDIATELY =
+            Settings.Secure.getUriFor(REDACT_OTP_NOTIFICATION_IMMEDIATELY);
 
     private static final long LOCK_TIME_FOR_SENSITIVE_REDACTION_MS =
             TimeUnit.MINUTES.toMillis(10);
@@ -307,6 +315,9 @@
     @VisibleForTesting
     protected final AtomicBoolean mConnectedToWifi = new AtomicBoolean(false);
 
+    protected final AtomicBoolean mRedactOtpOnWifi = new AtomicBoolean(true);
+    protected final AtomicBoolean mRedactOtpImmediately = new AtomicBoolean(false);
+
     protected int mCurrentUserId = 0;
 
     protected NotificationPresenter mPresenter;
@@ -363,6 +374,8 @@
 
         mLockScreenUris.add(SHOW_LOCKSCREEN);
         mLockScreenUris.add(SHOW_PRIVATE_LOCKSCREEN);
+        mLockScreenUris.add(REDACT_OTP_ON_WIFI);
+        mLockScreenUris.add(REDACT_OTP_IMMEDIATELY);
 
         dumpManager.registerDumpable(this);
 
@@ -432,6 +445,10 @@
                         changed |= updateUserShowSettings(user.getIdentifier());
                     } else if (SHOW_PRIVATE_LOCKSCREEN.equals(uri)) {
                         changed |= updateUserShowPrivateSettings(user.getIdentifier());
+                    } else if (REDACT_OTP_ON_WIFI.equals(uri)) {
+                        changed |= updateRedactOtpOnWifiSetting();
+                    } else if (REDACT_OTP_IMMEDIATELY.equals(uri)) {
+                        changed |= updateRedactOtpImmediatelySetting();
                     }
                 }
 
@@ -465,6 +482,14 @@
                 true,
                 mLockscreenSettingsObserver,
                 USER_ALL);
+        mSecureSettings.registerContentObserverAsync(
+                REDACT_OTP_ON_WIFI,
+                mLockscreenSettingsObserver
+        );
+        mSecureSettings.registerContentObserverAsync(
+                REDACT_OTP_IMMEDIATELY,
+                mLockscreenSettingsObserver
+        );
 
 
         mBroadcastDispatcher.registerReceiver(mAllUsersReceiver,
@@ -602,6 +627,28 @@
     }
 
     @WorkerThread
+    private boolean updateRedactOtpOnWifiSetting() {
+        boolean originalValue = mRedactOtpOnWifi.get();
+        boolean newValue = mSecureSettings.getIntForUser(
+                REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI,
+                0,
+                Process.myUserHandle().getIdentifier()) != 0;
+        mRedactOtpOnWifi.set(newValue);
+        return originalValue != newValue;
+    }
+
+    @WorkerThread
+    private boolean updateRedactOtpImmediatelySetting() {
+        boolean originalValue = mRedactOtpImmediately.get();
+        boolean newValue = mSecureSettings.getIntForUser(
+                REDACT_OTP_NOTIFICATION_IMMEDIATELY,
+                0,
+                Process.myUserHandle().getIdentifier()) != 0;
+        mRedactOtpImmediately.set(newValue);
+        return originalValue != newValue;
+    }
+
+    @WorkerThread
     private boolean updateGlobalKeyguardSettings() {
         final boolean oldValue = mKeyguardAllowingNotifications;
         mKeyguardAllowingNotifications = mKeyguardManager.getPrivateNotificationsAllowed();
@@ -769,23 +816,31 @@
             return false;
         }
 
-        if (mConnectedToWifi.get()) {
-            return false;
+        if (!mRedactOtpOnWifi.get()) {
+            if (mConnectedToWifi.get()) {
+                return false;
+            }
+
+            long lastWifiConnectTime = mLastWifiConnectionTime.get();
+            // If the device has connected to wifi since receiving the notification, do not redact
+            if (ent.getSbn().getPostTime() < lastWifiConnectTime) {
+                return false;
+            }
         }
 
         if (ent.getRanking() == null || !ent.getRanking().hasSensitiveContent()) {
             return false;
         }
 
-        long lastWifiConnectTime = mLastWifiConnectionTime.get();
-        // If the device has connected to wifi since receiving the notification, do not redact
-        if (ent.getSbn().getPostTime() < lastWifiConnectTime) {
-            return false;
+        long latestTimeForRedaction;
+        if (mRedactOtpImmediately.get()) {
+            latestTimeForRedaction = mLastLockTime.get();
+        } else {
+            // If the lock screen was not already locked for LOCK_TIME_FOR_SENSITIVE_REDACTION_MS
+            // when this notification arrived, do not redact
+            latestTimeForRedaction = mLastLockTime.get() + LOCK_TIME_FOR_SENSITIVE_REDACTION_MS;
         }
 
-        // If the lock screen was not already locked for LOCK_TIME_FOR_SENSITIVE_REDACTION_MS when
-        // this notification arrived, do not redact
-        long latestTimeForRedaction = mLastLockTime.get() + LOCK_TIME_FOR_SENSITIVE_REDACTION_MS;
         if (ent.getSbn().getPostTime() < latestTimeForRedaction) {
             return false;
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
index fdc1c0e..c0ee56b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
@@ -54,6 +54,7 @@
 import com.android.systemui.power.domain.interactor.PowerInteractor;
 import com.android.systemui.res.R;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.shade.domain.interactor.ShadeInteractor;
 import com.android.systemui.statusbar.dagger.CentralSurfacesDependenciesModule;
 import com.android.systemui.statusbar.notification.NotifPipelineFlags;
@@ -260,7 +261,7 @@
      */
     @Inject
     public NotificationRemoteInputManager(
-            Context context,
+            @ShadeDisplayAware Context context,
             NotifPipelineFlags notifPipelineFlags,
             NotificationLockscreenUserManager lockscreenUserManager,
             SmartReplyController smartReplyController,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
index e3b36df..3e76107 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
@@ -42,6 +42,7 @@
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.plugins.statusbar.StatusBarStateController
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.ShadeExpansionChangeEvent
 import com.android.systemui.shade.ShadeExpansionListener
 import com.android.systemui.shared.Flags.ambientAod
@@ -80,7 +81,7 @@
     private val wallpaperController: WallpaperController,
     private val notificationShadeWindowController: NotificationShadeWindowController,
     private val dozeParameters: DozeParameters,
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     private val splitShadeStateController: SplitShadeStateController,
     private val windowRootViewBlurInteractor: WindowRootViewBlurInteractor,
     @Application private val applicationScope: CoroutineScope,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
index 155049f..31fdec6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
@@ -93,6 +93,7 @@
     private int mPaddingBetweenElements;
     private int mNotGoneIndex;
     private boolean mHasItemsInStableShelf;
+    private boolean mAlignedToEnd;
     private int mScrollFastThreshold;
     private boolean mInteractive;
     private boolean mAnimationsEnabled = true;
@@ -412,8 +413,22 @@
     public boolean isAlignedToEnd() {
         if (!NotificationMinimalism.isEnabled()) {
             return false;
+        } else if (SceneContainerFlag.isEnabled()) {
+            return mAlignedToEnd;
+        } else {
+            return mAmbientState.getUseSplitShade();
         }
-        return mAmbientState.getUseSplitShade();
+    }
+
+    /** @see #isAlignedToEnd() */
+    public void setAlignedToEnd(boolean alignedToEnd) {
+        if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) {
+            return;
+        }
+        if (mAlignedToEnd != alignedToEnd) {
+            mAlignedToEnd = alignedToEnd;
+            requestLayout();
+        }
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputNotificationRebuilder.java b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputNotificationRebuilder.java
index 321b608..df8b514 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputNotificationRebuilder.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputNotificationRebuilder.java
@@ -29,6 +29,7 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.systemui.dagger.SysUISingleton;
+import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 
 import java.util.ArrayList;
@@ -47,7 +48,7 @@
     private final Context mContext;
 
     @Inject
-    RemoteInputNotificationRebuilder(Context context) {
+    RemoteInputNotificationRebuilder(@ShadeDisplayAware Context context) {
         mContext = context;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScroller.kt b/packages/SystemUI/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScroller.kt
index 612a365..ef69399 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScroller.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SplitShadeLockScreenOverScroller.kt
@@ -11,6 +11,7 @@
 import com.android.app.animation.Interpolators
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.plugins.qs.QS
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
 import com.android.systemui.statusbar.phone.ScrimController
 import com.android.systemui.statusbar.policy.ConfigurationController
@@ -24,7 +25,7 @@
 constructor(
     configurationController: ConfigurationController,
     dumpManager: DumpManager,
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     private val scrimController: ScrimController,
     private val statusBarStateController: SysuiStatusBarStateController,
     @Assisted private val qSProvider: () -> QS?,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt
index 1aeb73c..f466278 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt
@@ -32,9 +32,7 @@
 import com.android.systemui.statusbar.chips.StatusBarChipLogTags.pad
 import com.android.systemui.statusbar.chips.StatusBarChipsLog
 import com.android.systemui.statusbar.chips.call.domain.interactor.CallChipInteractor
-import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
 import com.android.systemui.statusbar.chips.ui.model.ColorsModel
-import com.android.systemui.statusbar.chips.ui.model.ColorsModel.Companion.toCustomColorsModel
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
 import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipViewModel
@@ -66,7 +64,7 @@
             .map { state ->
                 when (state) {
                     is OngoingCallModel.NoCall,
-                    is OngoingCallModel.InCallWithVisibleApp -> OngoingActivityChipModel.Hidden()
+                    is OngoingCallModel.InCallWithVisibleApp -> OngoingActivityChipModel.Inactive()
                     is OngoingCallModel.InCall -> {
                         val key = state.notificationKey
                         val contentDescription = getContentDescription(state.appName)
@@ -86,18 +84,13 @@
                                 OngoingActivityChipModel.ChipIcon.SingleColorIcon(phoneIcon)
                             }
 
-                        val colors =
-                            if (StatusBarNotifChips.isEnabled && state.promotedContent != null) {
-                                state.promotedContent.toCustomColorsModel()
-                            } else {
-                                ColorsModel.Themed
-                            }
+                        val colors = ColorsModel.AccentThemed
 
                         // This block mimics OngoingCallController#updateChip.
                         if (state.startTimeMs <= 0L) {
                             // If the start time is invalid, don't show a timer and show just an
                             // icon. See b/192379214.
-                            OngoingActivityChipModel.Shown.IconOnly(
+                            OngoingActivityChipModel.Active.IconOnly(
                                 key = key,
                                 icon = icon,
                                 colors = colors,
@@ -108,7 +101,7 @@
                             val startTimeInElapsedRealtime =
                                 state.startTimeMs - systemClock.currentTimeMillis() +
                                     systemClock.elapsedRealtime()
-                            OngoingActivityChipModel.Shown.Timer(
+                            OngoingActivityChipModel.Active.Timer(
                                 key = key,
                                 icon = icon,
                                 colors = colors,
@@ -120,7 +113,7 @@
                     }
                 }
             }
-            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Inactive())
 
     private fun getOnClickListener(state: OngoingCallModel.InCall): View.OnClickListener? {
         if (state.intent == null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt
index 51abc69..6ce350c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt
@@ -76,7 +76,7 @@
         mediaProjectionChipInteractor.projection
             .map { projectionModel ->
                 when (projectionModel) {
-                    is ProjectionChipModel.NotProjecting -> OngoingActivityChipModel.Hidden()
+                    is ProjectionChipModel.NotProjecting -> OngoingActivityChipModel.Inactive()
                     is ProjectionChipModel.Projecting -> {
                         when (projectionModel.receiver) {
                             ProjectionChipModel.Receiver.CastToOtherDevice -> {
@@ -88,19 +88,19 @@
                                 }
                             }
                             ProjectionChipModel.Receiver.ShareToApp ->
-                                OngoingActivityChipModel.Hidden()
+                                OngoingActivityChipModel.Inactive()
                         }
                     }
                 }
             }
             // See b/347726238 for [SharingStarted.Lazily] reasoning.
-            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Inactive())
 
     /**
      * The cast chip to show, based only on MediaRouter API events.
      *
-     * This chip will be [OngoingActivityChipModel.Shown] when the user is casting their screen *or*
-     * their audio.
+     * This chip will be [OngoingActivityChipModel.Active] when the user is casting their screen
+     * *or* their audio.
      *
      * The MediaProjection APIs are typically not invoked for casting *only audio* to another device
      * because MediaProjection is only concerned with *screen* sharing (see b/342169876). We listen
@@ -118,7 +118,7 @@
         mediaRouterChipInteractor.mediaRouterCastingState
             .map { routerModel ->
                 when (routerModel) {
-                    is MediaRouterCastModel.DoingNothing -> OngoingActivityChipModel.Hidden()
+                    is MediaRouterCastModel.DoingNothing -> OngoingActivityChipModel.Inactive()
                     is MediaRouterCastModel.Casting -> {
                         // A consequence of b/269975671 is that MediaRouter will mark a device as
                         // casting before casting has actually started. To alleviate this bug a bit,
@@ -132,7 +132,7 @@
                     }
                 }
             }
-            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Inactive())
 
     private val internalChip: StateFlow<OngoingActivityChipModel> =
         combine(projectionChip, routerChip) { projection, router ->
@@ -151,24 +151,24 @@
                 //
                 // 1. When the user chooses what device to cast to, the MediaRouter APIs mark the
                 // device as casting (even though casting hasn't actually started yet). At this
-                // point, `routerChip` is [OngoingActivityChipModel.Shown] but `projectionChip` is
-                // [OngoingActivityChipModel.Hidden], and we'll show the router chip.
+                // point, `routerChip` is [OngoingActivityChipModel.Active] but `projectionChip` is
+                // [OngoingActivityChipModel.Inactive], and we'll show the router chip.
                 //
                 // 2. Once casting has actually started, the MediaProjection APIs become aware of
                 // the device. At this point, both `routerChip` and `projectionChip` are
-                // [OngoingActivityChipModel.Shown].
+                // [OngoingActivityChipModel.Active].
                 //
                 // Because the MediaProjection APIs have activated, we know that the user is screen
                 // casting (not audio casting). We need to switch to using `projectionChip` because
                 // that chip will show information specific to screen casting. The `projectionChip`
                 // will also show a timer, as opposed to `routerChip`'s icon-only display.
-                if (projection is OngoingActivityChipModel.Shown) {
+                if (projection is OngoingActivityChipModel.Active) {
                     projection
                 } else {
                     router
                 }
             }
-            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Inactive())
 
     private val hideChipDuringDialogTransitionHelper = ChipTransitionHelper(scope)
 
@@ -191,8 +191,8 @@
 
     private fun createCastScreenToOtherDeviceChip(
         state: ProjectionChipModel.Projecting
-    ): OngoingActivityChipModel.Shown {
-        return OngoingActivityChipModel.Shown.Timer(
+    ): OngoingActivityChipModel.Active {
+        return OngoingActivityChipModel.Active.Timer(
             key = KEY,
             icon =
                 OngoingActivityChipModel.ChipIcon.SingleColorIcon(
@@ -229,8 +229,8 @@
         )
     }
 
-    private fun createIconOnlyCastChip(deviceName: String?): OngoingActivityChipModel.Shown {
-        return OngoingActivityChipModel.Shown.IconOnly(
+    private fun createIconOnlyCastChip(deviceName: String?): OngoingActivityChipModel.Active {
+        return OngoingActivityChipModel.Active.IconOnly(
             key = KEY,
             icon =
                 OngoingActivityChipModel.ChipIcon.SingleColorIcon(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModel.kt
index 3b26d1c..2d6102e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModel.kt
@@ -27,7 +27,7 @@
 import com.android.systemui.statusbar.chips.notification.domain.interactor.StatusBarNotificationChipsInteractor
 import com.android.systemui.statusbar.chips.notification.domain.model.NotificationChipModel
 import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
-import com.android.systemui.statusbar.chips.ui.model.ColorsModel.Companion.toCustomColorsModel
+import com.android.systemui.statusbar.chips.ui.model.ColorsModel
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
 import com.android.systemui.statusbar.notification.domain.interactor.HeadsUpNotificationInteractor
@@ -56,7 +56,7 @@
      * A flow modeling the notification chips that should be shown. Emits an empty list if there are
      * no notifications that should show a status bar chip.
      */
-    val chips: Flow<List<OngoingActivityChipModel.Shown>> =
+    val chips: Flow<List<OngoingActivityChipModel.Active>> =
         combine(
                 notifChipsInteractor.notificationChips,
                 headsUpNotificationInteractor.statusBarHeadsUpState,
@@ -68,7 +68,7 @@
     /** Converts the notification to the [OngoingActivityChipModel] object. */
     private fun NotificationChipModel.toActivityChipModel(
         headsUpState: TopPinnedState
-    ): OngoingActivityChipModel.Shown {
+    ): OngoingActivityChipModel.Active {
         StatusBarNotifChips.assertInNewMode()
         val contentDescription = getContentDescription(this.appName)
         val icon =
@@ -85,8 +85,7 @@
                     contentDescription,
                 )
             }
-        val colors = this.promotedContent.toCustomColorsModel()
-
+        val colors = ColorsModel.SystemThemed
         val clickListener: () -> Unit = {
             // The notification pipeline needs everything to run on the main thread, so keep
             // this event on the main thread.
@@ -113,7 +112,7 @@
         if (isShowingHeadsUpFromChipTap) {
             // If the user tapped this chip to show the HUN, we want to just show the icon because
             // the HUN will show the rest of the information.
-            return OngoingActivityChipModel.Shown.IconOnly(
+            return OngoingActivityChipModel.Active.IconOnly(
                 this.key,
                 icon,
                 colors,
@@ -123,7 +122,7 @@
         }
 
         if (this.promotedContent.shortCriticalText != null) {
-            return OngoingActivityChipModel.Shown.Text(
+            return OngoingActivityChipModel.Active.Text(
                 this.key,
                 icon,
                 colors,
@@ -141,7 +140,7 @@
             // notification will likely just be set to the current time, which would cause the chip
             // to always show "now". We don't want early testers to get that experience since it's
             // not what will happen at launch, so just don't show any time.
-            return OngoingActivityChipModel.Shown.IconOnly(
+            return OngoingActivityChipModel.Active.IconOnly(
                 this.key,
                 icon,
                 colors,
@@ -151,7 +150,7 @@
         }
 
         if (this.promotedContent.time == null) {
-            return OngoingActivityChipModel.Shown.IconOnly(
+            return OngoingActivityChipModel.Active.IconOnly(
                 this.key,
                 icon,
                 colors,
@@ -161,7 +160,7 @@
         }
         when (this.promotedContent.time.mode) {
             PromotedNotificationContentModel.When.Mode.BasicTime -> {
-                return OngoingActivityChipModel.Shown.ShortTimeDelta(
+                return OngoingActivityChipModel.Active.ShortTimeDelta(
                     this.key,
                     icon,
                     colors,
@@ -171,7 +170,7 @@
                 )
             }
             PromotedNotificationContentModel.When.Mode.CountUp -> {
-                return OngoingActivityChipModel.Shown.Timer(
+                return OngoingActivityChipModel.Active.Timer(
                     this.key,
                     icon,
                     colors,
@@ -182,7 +181,7 @@
             }
             PromotedNotificationContentModel.When.Mode.CountDown -> {
                 // TODO(b/364653005): Support CountDown.
-                return OngoingActivityChipModel.Shown.Timer(
+                return OngoingActivityChipModel.Active.Timer(
                     this.key,
                     icon,
                     colors,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt
index e1f8553..55c89a9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt
@@ -73,16 +73,16 @@
         interactor.screenRecordState
             .map { state ->
                 when (state) {
-                    is ScreenRecordChipModel.DoingNothing -> OngoingActivityChipModel.Hidden()
+                    is ScreenRecordChipModel.DoingNothing -> OngoingActivityChipModel.Inactive()
                     is ScreenRecordChipModel.Starting -> {
-                        OngoingActivityChipModel.Shown.Countdown(
+                        OngoingActivityChipModel.Active.Countdown(
                             key = KEY,
                             colors = ColorsModel.Red,
                             secondsUntilStarted = state.millisUntilStarted.toCountdownSeconds(),
                         )
                     }
                     is ScreenRecordChipModel.Recording -> {
-                        OngoingActivityChipModel.Shown.Timer(
+                        OngoingActivityChipModel.Active.Timer(
                             key = KEY,
                             icon =
                                 OngoingActivityChipModel.ChipIcon.SingleColorIcon(
@@ -118,7 +118,7 @@
                 }
             }
             // See b/347726238 for [SharingStarted.Lazily] reasoning.
-            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Inactive())
 
     /**
      * The screen record chip to show that also ensures that the start time doesn't change once we
@@ -127,11 +127,11 @@
      */
     private val chipWithConsistentTimer: StateFlow<OngoingActivityChipModel> =
         simpleChip
-            .pairwise(initialValue = OngoingActivityChipModel.Hidden())
+            .pairwise(initialValue = OngoingActivityChipModel.Inactive())
             .map { (old, new) ->
                 if (
-                    old is OngoingActivityChipModel.Shown.Timer &&
-                        new is OngoingActivityChipModel.Shown.Timer
+                    old is OngoingActivityChipModel.Active.Timer &&
+                        new is OngoingActivityChipModel.Active.Timer
                 ) {
                     new.copy(startTimeMs = old.startTimeMs)
                 } else {
@@ -139,7 +139,7 @@
                 }
             }
             // See b/347726238 for [SharingStarted.Lazily] reasoning.
-            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Inactive())
 
     private val chipTransitionHelper = ChipTransitionHelper(scope)
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt
index 12cf8b59..92e17bd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt
@@ -129,7 +129,7 @@
         mediaProjectionChipInteractor.projection
             .map { projectionModel ->
                 when (projectionModel) {
-                    is ProjectionChipModel.NotProjecting -> OngoingActivityChipModel.Hidden()
+                    is ProjectionChipModel.NotProjecting -> OngoingActivityChipModel.Inactive()
                     is ProjectionChipModel.Projecting -> {
                         when (projectionModel.receiver) {
                             ProjectionChipModel.Receiver.ShareToApp -> {
@@ -141,13 +141,13 @@
                                 }
                             }
                             ProjectionChipModel.Receiver.CastToOtherDevice ->
-                                OngoingActivityChipModel.Hidden()
+                                OngoingActivityChipModel.Inactive()
                         }
                     }
                 }
             }
             // See b/347726238 for [SharingStarted.Lazily] reasoning.
-            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Inactive())
 
     private val chipTransitionHelper = ChipTransitionHelper(scope)
 
@@ -165,12 +165,12 @@
                         {},
                         { "Hiding the chip as stop dialog is being shown" },
                     )
-                    OngoingActivityChipModel.Hidden()
+                    OngoingActivityChipModel.Inactive()
                 } else {
                     currentChip
                 }
             }
-            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Inactive())
 
     /**
      * Notifies this class that the user just stopped a screen recording from the dialog that's
@@ -219,8 +219,8 @@
 
     private fun createShareScreenToAppChip(
         state: ProjectionChipModel.Projecting
-    ): OngoingActivityChipModel.Shown {
-        return OngoingActivityChipModel.Shown.Timer(
+    ): OngoingActivityChipModel.Active {
+        return OngoingActivityChipModel.Active.Timer(
             key = KEY,
             icon =
                 OngoingActivityChipModel.ChipIcon.SingleColorIcon(
@@ -254,8 +254,8 @@
         )
     }
 
-    private fun createIconOnlyShareToAppChip(): OngoingActivityChipModel.Shown {
-        return OngoingActivityChipModel.Shown.IconOnly(
+    private fun createIconOnlyShareToAppChip(): OngoingActivityChipModel.Active {
+        return OngoingActivityChipModel.Active.IconOnly(
             key = KEY,
             icon =
                 OngoingActivityChipModel.ChipIcon.SingleColorIcon(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/binder/OngoingActivityChipBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/binder/OngoingActivityChipBinder.kt
index de9d497..d41353b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/binder/OngoingActivityChipBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/binder/OngoingActivityChipBinder.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.chips.ui.binder
 
 import android.annotation.IdRes
+import android.content.Context
 import android.content.res.ColorStateList
 import android.graphics.drawable.GradientDrawable
 import android.view.View
@@ -32,6 +33,7 @@
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.StatusBarIconView
 import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
+import com.android.systemui.statusbar.chips.ui.model.ColorsModel
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
 import com.android.systemui.statusbar.chips.ui.view.ChipChronometer
@@ -54,7 +56,7 @@
         val chipBackgroundView = viewBinding.backgroundView
 
         when (chipModel) {
-            is OngoingActivityChipModel.Shown -> {
+            is OngoingActivityChipModel.Active -> {
                 // Data
                 setChipIcon(chipModel, chipBackgroundView, chipDefaultIconView, iconViewStore)
                 setChipMainContent(chipModel, chipTextView, chipTimeView, chipShortTimeDeltaView)
@@ -76,10 +78,12 @@
                 chipTimeView.setTextColor(textColor)
                 chipTextView.setTextColor(textColor)
                 chipShortTimeDeltaView.setTextColor(textColor)
-                (chipBackgroundView.background as GradientDrawable).color =
-                    chipModel.colors.background(chipContext)
+                (chipBackgroundView.background as GradientDrawable).setBackgroundColors(
+                    chipModel.colors,
+                    chipContext,
+                )
             }
-            is OngoingActivityChipModel.Hidden -> {
+            is OngoingActivityChipModel.Inactive -> {
                 // The Chronometer should be stopped to prevent leaks -- see b/192243808 and
                 // [Chronometer.start].
                 chipTimeView.stop()
@@ -110,12 +114,12 @@
         primaryChipViewBinding: OngoingActivityChipViewBinding,
         currentPrimaryChipViewModel: OngoingActivityChipModel,
     ) {
-        if (currentPrimaryChipViewModel is OngoingActivityChipModel.Hidden) {
+        if (currentPrimaryChipViewModel is OngoingActivityChipModel.Inactive) {
             return
         }
         resetChipMainContentWidthRestrictions(
             primaryChipViewBinding,
-            currentPrimaryChipViewModel as OngoingActivityChipModel.Shown,
+            currentPrimaryChipViewModel as OngoingActivityChipModel.Active,
         )
     }
 
@@ -129,27 +133,27 @@
         secondaryChipViewBinding: OngoingActivityChipViewBinding,
         currentSecondaryChipModel: OngoingActivityChipModel,
     ) {
-        if (currentSecondaryChipModel is OngoingActivityChipModel.Hidden) {
+        if (currentSecondaryChipModel is OngoingActivityChipModel.Inactive) {
             return
         }
         secondaryChipViewBinding.rootView.resetWidthRestriction()
         resetChipMainContentWidthRestrictions(
             secondaryChipViewBinding,
-            currentSecondaryChipModel as OngoingActivityChipModel.Shown,
+            currentSecondaryChipModel as OngoingActivityChipModel.Active,
         )
     }
 
     private fun resetChipMainContentWidthRestrictions(
         viewBinding: OngoingActivityChipViewBinding,
-        model: OngoingActivityChipModel.Shown,
+        model: OngoingActivityChipModel.Active,
     ) {
         when (model) {
-            is OngoingActivityChipModel.Shown.Text -> viewBinding.textView.resetWidthRestriction()
-            is OngoingActivityChipModel.Shown.Timer -> viewBinding.timeView.resetWidthRestriction()
-            is OngoingActivityChipModel.Shown.ShortTimeDelta ->
+            is OngoingActivityChipModel.Active.Text -> viewBinding.textView.resetWidthRestriction()
+            is OngoingActivityChipModel.Active.Timer -> viewBinding.timeView.resetWidthRestriction()
+            is OngoingActivityChipModel.Active.ShortTimeDelta ->
                 viewBinding.shortTimeDeltaView.resetWidthRestriction()
-            is OngoingActivityChipModel.Shown.IconOnly,
-            is OngoingActivityChipModel.Shown.Countdown -> {}
+            is OngoingActivityChipModel.Active.IconOnly,
+            is OngoingActivityChipModel.Active.Countdown -> {}
         }
     }
 
@@ -167,7 +171,7 @@
     }
 
     private fun setChipIcon(
-        chipModel: OngoingActivityChipModel.Shown,
+        chipModel: OngoingActivityChipModel.Active,
         backgroundView: ChipBackgroundContainer,
         defaultIconView: ImageView,
         iconViewStore: IconViewStore?,
@@ -278,34 +282,34 @@
     }
 
     private fun setChipMainContent(
-        chipModel: OngoingActivityChipModel.Shown,
+        chipModel: OngoingActivityChipModel.Active,
         chipTextView: TextView,
         chipTimeView: ChipChronometer,
         chipShortTimeDeltaView: DateTimeView,
     ) {
         when (chipModel) {
-            is OngoingActivityChipModel.Shown.Countdown -> {
+            is OngoingActivityChipModel.Active.Countdown -> {
                 chipTextView.text = chipModel.secondsUntilStarted.toString()
                 chipTextView.visibility = View.VISIBLE
 
                 chipTimeView.hide()
                 chipShortTimeDeltaView.visibility = View.GONE
             }
-            is OngoingActivityChipModel.Shown.Text -> {
+            is OngoingActivityChipModel.Active.Text -> {
                 chipTextView.text = chipModel.text
                 chipTextView.visibility = View.VISIBLE
 
                 chipTimeView.hide()
                 chipShortTimeDeltaView.visibility = View.GONE
             }
-            is OngoingActivityChipModel.Shown.Timer -> {
+            is OngoingActivityChipModel.Active.Timer -> {
                 ChipChronometerBinder.bind(chipModel.startTimeMs, chipTimeView)
                 chipTimeView.visibility = View.VISIBLE
 
                 chipTextView.visibility = View.GONE
                 chipShortTimeDeltaView.visibility = View.GONE
             }
-            is OngoingActivityChipModel.Shown.ShortTimeDelta -> {
+            is OngoingActivityChipModel.Active.ShortTimeDelta -> {
                 chipShortTimeDeltaView.setTime(chipModel.time)
                 chipShortTimeDeltaView.visibility = View.VISIBLE
                 chipShortTimeDeltaView.isShowRelativeTime = true
@@ -319,7 +323,7 @@
                 chipTextView.visibility = View.GONE
                 chipTimeView.hide()
             }
-            is OngoingActivityChipModel.Shown.IconOnly -> {
+            is OngoingActivityChipModel.Active.IconOnly -> {
                 chipTextView.visibility = View.GONE
                 chipShortTimeDeltaView.visibility = View.GONE
                 chipTimeView.hide()
@@ -335,7 +339,7 @@
     }
 
     private fun updateChipPadding(
-        chipModel: OngoingActivityChipModel.Shown,
+        chipModel: OngoingActivityChipModel.Active,
         backgroundView: View,
         chipTextView: TextView,
         chipTimeView: ChipChronometer,
@@ -425,19 +429,19 @@
     }
 
     private fun setChipAccessibility(
-        chipModel: OngoingActivityChipModel.Shown,
+        chipModel: OngoingActivityChipModel.Active,
         chipView: View,
         chipBackgroundView: View,
     ) {
         when (chipModel) {
-            is OngoingActivityChipModel.Shown.Countdown -> {
+            is OngoingActivityChipModel.Active.Countdown -> {
                 // Set as assertive so talkback will announce the countdown
                 chipView.accessibilityLiveRegion = View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE
             }
-            is OngoingActivityChipModel.Shown.Timer,
-            is OngoingActivityChipModel.Shown.Text,
-            is OngoingActivityChipModel.Shown.ShortTimeDelta,
-            is OngoingActivityChipModel.Shown.IconOnly -> {
+            is OngoingActivityChipModel.Active.Timer,
+            is OngoingActivityChipModel.Active.Text,
+            is OngoingActivityChipModel.Active.ShortTimeDelta,
+            is OngoingActivityChipModel.Active.IconOnly -> {
                 chipView.accessibilityLiveRegion = View.ACCESSIBILITY_LIVE_REGION_NONE
             }
         }
@@ -460,5 +464,20 @@
         chipView.minimumWidth = minimumWidth
     }
 
+    private fun GradientDrawable.setBackgroundColors(colors: ColorsModel, context: Context) {
+        this.color = colors.background(context)
+        val outline = colors.outline(context)
+        if (outline != null) {
+            this.setStroke(
+                context.resources.getDimensionPixelSize(
+                    R.dimen.ongoing_activity_chip_outline_width
+                ),
+                outline,
+            )
+        } else {
+            this.setStroke(0, /* color= */ 0)
+        }
+    }
+
     @IdRes private val CUSTOM_ICON_VIEW_ID = R.id.ongoing_activity_chip_custom_icon
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/ChipContent.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/ChipContent.kt
index cf2ec47..2501aa5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/ChipContent.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/ChipContent.kt
@@ -19,17 +19,8 @@
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.drawWithCache
-import androidx.compose.ui.graphics.BlendMode
-import androidx.compose.ui.graphics.Brush
 import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.graphics.CompositingStrategy
-import androidx.compose.ui.graphics.graphicsLayer
 import androidx.compose.ui.layout.Measurable
 import androidx.compose.ui.layout.MeasureResult
 import androidx.compose.ui.layout.MeasureScope
@@ -37,6 +28,8 @@
 import androidx.compose.ui.node.ModifierNodeElement
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.dimensionResource
+import androidx.compose.ui.text.TextMeasurer
+import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.rememberTextMeasurer
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Dp
@@ -48,7 +41,7 @@
 import kotlin.math.min
 
 @Composable
-fun ChipContent(viewModel: OngoingActivityChipModel.Shown, modifier: Modifier = Modifier) {
+fun ChipContent(viewModel: OngoingActivityChipModel.Active, modifier: Modifier = Modifier) {
     val context = LocalContext.current
     val isTextOnly = viewModel.icon == null
     val hasEmbeddedIcon =
@@ -73,7 +66,7 @@
         }
     val textMeasurer = rememberTextMeasurer()
     when (viewModel) {
-        is OngoingActivityChipModel.Shown.Timer -> {
+        is OngoingActivityChipModel.Active.Timer -> {
             val timerState = rememberChronometerState(startTimeMillis = viewModel.startTimeMs)
             val text = timerState.currentTimeText
             Text(
@@ -83,20 +76,19 @@
                 softWrap = false,
                 modifier =
                     modifier
-                        .customTextContentLayout(
+                        .hideTextIfDoesNotFit(
+                            text = text,
+                            textStyle = textStyle,
+                            textMeasurer = textMeasurer,
                             maxTextWidth = maxTextWidth,
                             startPadding = startPadding,
                             endPadding = endPadding,
-                        ) { constraintWidth ->
-                            val intrinsicWidth =
-                                textMeasurer.measure(text, textStyle, softWrap = false).size.width
-                            intrinsicWidth <= constraintWidth
-                        }
+                        )
                         .neverDecreaseWidth(),
             )
         }
 
-        is OngoingActivityChipModel.Shown.Countdown -> {
+        is OngoingActivityChipModel.Active.Countdown -> {
             val text = viewModel.secondsUntilStarted.toString()
             Text(
                 text = text,
@@ -107,8 +99,7 @@
             )
         }
 
-        is OngoingActivityChipModel.Shown.Text -> {
-            var hasOverflow by remember { mutableStateOf(false) }
+        is OngoingActivityChipModel.Active.Text -> {
             val text = viewModel.text
             Text(
                 text = text,
@@ -116,32 +107,22 @@
                 style = textStyle,
                 softWrap = false,
                 modifier =
-                    modifier
-                        .customTextContentLayout(
-                            maxTextWidth = maxTextWidth,
-                            startPadding = startPadding,
-                            endPadding = endPadding,
-                        ) { constraintWidth ->
-                            val intrinsicWidth =
-                                textMeasurer.measure(text, textStyle, softWrap = false).size.width
-                            hasOverflow = intrinsicWidth > constraintWidth
-                            constraintWidth.toFloat() / intrinsicWidth.toFloat() > 0.5f
-                        }
-                        .overflowFadeOut(
-                            hasOverflow = { hasOverflow },
-                            fadeLength =
-                                dimensionResource(
-                                    id = R.dimen.ongoing_activity_chip_text_fading_edge_length
-                                ),
-                        ),
+                    modifier.hideTextIfDoesNotFit(
+                        text = text,
+                        textStyle = textStyle,
+                        textMeasurer = textMeasurer,
+                        maxTextWidth = maxTextWidth,
+                        startPadding = startPadding,
+                        endPadding = endPadding,
+                    ),
             )
         }
 
-        is OngoingActivityChipModel.Shown.ShortTimeDelta -> {
+        is OngoingActivityChipModel.Active.ShortTimeDelta -> {
             // TODO(b/372657935): Implement ShortTimeDelta content in compose.
         }
 
-        is OngoingActivityChipModel.Shown.IconOnly -> {
+        is OngoingActivityChipModel.Active.IconOnly -> {
             throw IllegalStateException("ChipContent should only be used if the chip shows text")
         }
     }
@@ -149,10 +130,10 @@
 
 /** A modifier that ensures the width of the content only increases and never decreases. */
 private fun Modifier.neverDecreaseWidth(): Modifier {
-    return this.then(neverDecreaseWidthElement)
+    return this.then(NeverDecreaseWidthElement)
 }
 
-private data object neverDecreaseWidthElement : ModifierNodeElement<NeverDecreaseWidthNode>() {
+private data object NeverDecreaseWidthElement : ModifierNodeElement<NeverDecreaseWidthNode>() {
     override fun create(): NeverDecreaseWidthNode {
         return NeverDecreaseWidthNode()
     }
@@ -180,45 +161,67 @@
 }
 
 /**
- * A custom layout modifier for text that ensures its text is only visible if a provided
- * [shouldShow] callback returns true. Imposes a provided [maxTextWidthPx]. Also, accounts for
- * provided padding values if provided and ensures its text is placed with the provided padding
- * included around it.
+ * A custom layout modifier for text that ensures the text is only visible if it completely fits
+ * within the constrained bounds. Imposes a provided [maxTextWidthPx]. Also, accounts for provided
+ * padding values if provided and ensures its text is placed with the provided padding included
+ * around it.
  */
-private fun Modifier.customTextContentLayout(
+private fun Modifier.hideTextIfDoesNotFit(
+    text: String,
+    textStyle: TextStyle,
+    textMeasurer: TextMeasurer,
     maxTextWidth: Dp,
     startPadding: Dp = 0.dp,
     endPadding: Dp = 0.dp,
-    shouldShow: (constraintWidth: Int) -> Boolean,
 ): Modifier {
     return this.then(
-        CustomTextContentLayoutElement(maxTextWidth, startPadding, endPadding, shouldShow)
+        HideTextIfDoesNotFitElement(
+            text,
+            textStyle,
+            textMeasurer,
+            maxTextWidth,
+            startPadding,
+            endPadding,
+        )
     )
 }
 
-private data class CustomTextContentLayoutElement(
+private data class HideTextIfDoesNotFitElement(
+    val text: String,
+    val textStyle: TextStyle,
+    val textMeasurer: TextMeasurer,
     val maxTextWidth: Dp,
     val startPadding: Dp,
     val endPadding: Dp,
-    val shouldShow: (constrainedWidth: Int) -> Boolean,
-) : ModifierNodeElement<CustomTextContentLayoutNode>() {
-    override fun create(): CustomTextContentLayoutNode {
-        return CustomTextContentLayoutNode(maxTextWidth, startPadding, endPadding, shouldShow)
+) : ModifierNodeElement<HideTextIfDoesNotFitNode>() {
+    override fun create(): HideTextIfDoesNotFitNode {
+        return HideTextIfDoesNotFitNode(
+            text,
+            textStyle,
+            textMeasurer,
+            maxTextWidth,
+            startPadding,
+            endPadding,
+        )
     }
 
-    override fun update(node: CustomTextContentLayoutNode) {
-        node.shouldShow = shouldShow
+    override fun update(node: HideTextIfDoesNotFitNode) {
+        node.text = text
+        node.textStyle = textStyle
+        node.textMeasurer = textMeasurer
         node.maxTextWidth = maxTextWidth
         node.startPadding = startPadding
         node.endPadding = endPadding
     }
 }
 
-private class CustomTextContentLayoutNode(
+private class HideTextIfDoesNotFitNode(
+    var text: String,
+    var textStyle: TextStyle,
+    var textMeasurer: TextMeasurer,
     var maxTextWidth: Dp,
     var startPadding: Dp,
     var endPadding: Dp,
-    var shouldShow: (constrainedWidth: Int) -> Boolean,
 ) : Modifier.Node(), LayoutModifierNode {
     override fun MeasureScope.measure(
         measurable: Measurable,
@@ -230,9 +233,10 @@
                 .coerceAtLeast(constraints.minWidth)
         val placeable = measurable.measure(constraints.copy(maxWidth = maxWidth))
 
-        val height = placeable.height
-        val width = placeable.width
-        return if (shouldShow(maxWidth)) {
+        val intrinsicWidth = textMeasurer.measure(text, textStyle, softWrap = false).size.width
+        return if (intrinsicWidth <= maxWidth) {
+            val height = placeable.height
+            val width = placeable.width
             layout(width + horizontalPadding.roundToPx(), height) {
                 placeable.place(startPadding.roundToPx(), 0)
             }
@@ -241,20 +245,3 @@
         }
     }
 }
-
-private fun Modifier.overflowFadeOut(hasOverflow: () -> Boolean, fadeLength: Dp): Modifier {
-    return graphicsLayer(compositingStrategy = CompositingStrategy.Offscreen).drawWithCache {
-        val width = size.width
-        val start = (width - fadeLength.toPx()).coerceAtLeast(0f)
-        val gradient =
-            Brush.horizontalGradient(
-                colors = listOf(Color.Black, Color.Transparent),
-                startX = start,
-                endX = width,
-            )
-        onDrawWithContent {
-            drawContent()
-            if (hasOverflow()) drawRect(brush = gradient, blendMode = BlendMode.DstIn)
-        }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt
index dbcc88b..4a999d5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt
@@ -19,6 +19,7 @@
 import android.content.res.ColorStateList
 import android.view.ViewGroup
 import androidx.compose.foundation.background
+import androidx.compose.foundation.border
 import androidx.compose.foundation.clickable
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
@@ -48,11 +49,18 @@
 import com.android.systemui.common.ui.compose.Icon
 import com.android.systemui.common.ui.compose.load
 import com.android.systemui.res.R
+import com.android.systemui.statusbar.StatusBarIconView
 import com.android.systemui.statusbar.chips.ui.model.ColorsModel
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
+import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
+import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder
 
 @Composable
-fun OngoingActivityChip(model: OngoingActivityChipModel.Shown, modifier: Modifier = Modifier) {
+fun OngoingActivityChip(
+    model: OngoingActivityChipModel.Active,
+    iconViewStore: NotificationIconContainerViewBinder.IconViewStore?,
+    modifier: Modifier = Modifier,
+) {
     when (val clickBehavior = model.clickBehavior) {
         is OngoingActivityChipModel.ClickBehavior.ExpandAction -> {
             // Wrap the chip in an Expandable so we can animate the expand transition.
@@ -64,28 +72,31 @@
                     ),
                 modifier = modifier,
             ) { expandable ->
-                ChipBody(model, onClick = { clickBehavior.onClick(expandable) })
+                ChipBody(model, iconViewStore, onClick = { clickBehavior.onClick(expandable) })
             }
         }
         is OngoingActivityChipModel.ClickBehavior.ShowHeadsUpNotification -> {
-            ChipBody(model, onClick = { clickBehavior.onClick() })
+            ChipBody(model, iconViewStore, onClick = { clickBehavior.onClick() })
         }
 
         is OngoingActivityChipModel.ClickBehavior.None -> {
-            ChipBody(model, modifier = modifier)
+            ChipBody(model, iconViewStore, modifier = modifier)
         }
     }
 }
 
 @Composable
 private fun ChipBody(
-    model: OngoingActivityChipModel.Shown,
+    model: OngoingActivityChipModel.Active,
+    iconViewStore: NotificationIconContainerViewBinder.IconViewStore?,
     modifier: Modifier = Modifier,
     onClick: (() -> Unit)? = null,
 ) {
     val context = LocalContext.current
     val isClickable = onClick != null
-    val hasEmbeddedIcon = model.icon is OngoingActivityChipModel.ChipIcon.StatusBarView
+    val hasEmbeddedIcon =
+        model.icon is OngoingActivityChipModel.ChipIcon.StatusBarView ||
+            model.icon is OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon
     val contentDescription =
         when (val icon = model.icon) {
             is OngoingActivityChipModel.ChipIcon.StatusBarView -> icon.contentDescription.load()
@@ -103,6 +114,13 @@
         } else {
             dimensionResource(id = R.dimen.ongoing_activity_chip_min_text_width) + chipSidePadding
         }
+
+    val outline = model.colors.outline(context)
+    val outlineWidth = dimensionResource(R.dimen.ongoing_activity_chip_outline_width)
+
+    val shape =
+        RoundedCornerShape(dimensionResource(id = R.dimen.ongoing_activity_chip_corner_radius))
+
     // Use a Box with `fillMaxHeight` to create a larger click surface for the chip. The visible
     // height of the chip is determined by the height of the background of the Row below.
     Box(
@@ -121,12 +139,7 @@
             horizontalArrangement = Arrangement.Center,
             verticalAlignment = Alignment.CenterVertically,
             modifier =
-                Modifier.clip(
-                        RoundedCornerShape(
-                            dimensionResource(id = R.dimen.ongoing_activity_chip_corner_radius)
-                        )
-                    )
-                    .height(dimensionResource(R.dimen.ongoing_appops_chip_height))
+                Modifier.height(dimensionResource(R.dimen.ongoing_appops_chip_height))
                     .thenIf(isClickable) { Modifier.widthIn(min = minWidth) }
                     .layout { measurable, constraints ->
                         val placeable = measurable.measure(constraints)
@@ -136,7 +149,14 @@
                             }
                         }
                     }
-                    .background(Color(model.colors.background(context).defaultColor))
+                    .background(Color(model.colors.background(context).defaultColor), shape = shape)
+                    .thenIf(outline != null) {
+                        Modifier.border(
+                            width = outlineWidth,
+                            color = Color(outline!!),
+                            shape = shape,
+                        )
+                    }
                     .padding(
                         horizontal =
                             if (hasEmbeddedIcon) {
@@ -146,9 +166,11 @@
                             }
                     ),
         ) {
-            model.icon?.let { ChipIcon(viewModel = it, colors = model.colors) }
+            model.icon?.let {
+                ChipIcon(viewModel = it, iconViewStore = iconViewStore, colors = model.colors)
+            }
 
-            val isIconOnly = model is OngoingActivityChipModel.Shown.IconOnly
+            val isIconOnly = model is OngoingActivityChipModel.Active.IconOnly
             if (!isIconOnly) {
                 ChipContent(viewModel = model)
             }
@@ -159,6 +181,7 @@
 @Composable
 private fun ChipIcon(
     viewModel: OngoingActivityChipModel.ChipIcon,
+    iconViewStore: NotificationIconContainerViewBinder.IconViewStore?,
     colors: ColorsModel,
     modifier: Modifier = Modifier,
 ) {
@@ -166,31 +189,16 @@
 
     when (viewModel) {
         is OngoingActivityChipModel.ChipIcon.StatusBarView -> {
-            // TODO(b/364653005): If the notification updates their small icon, ensure it's updated
-            // in the chip.
-            val originalIcon = viewModel.impl
-            val iconSizePx =
-                context.resources.getDimensionPixelSize(
-                    R.dimen.ongoing_activity_chip_embedded_padding_icon_size
-                )
-            AndroidView(
-                modifier = modifier,
-                factory = { _ ->
-                    originalIcon.apply {
-                        layoutParams = ViewGroup.LayoutParams(iconSizePx, iconSizePx)
-                        imageTintList = ColorStateList.valueOf(colors.text(context))
-                    }
+            StatusBarConnectedDisplays.assertInLegacyMode()
+            StatusBarIcon(colors, viewModel.impl.notification?.key, modifier) { viewModel.impl }
+        }
+        is OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon -> {
+            StatusBarConnectedDisplays.assertInNewMode()
+            check(iconViewStore != null)
 
-                    // If needed, remove the icon from its old parent (views can only be attached
-                    // to 1 parent at a time)
-                    (originalIcon.parent as? ViewGroup)?.apply {
-                        this.removeView(originalIcon)
-                        this.removeTransientView(originalIcon)
-                    }
-
-                    originalIcon
-                },
-            )
+            StatusBarIcon(colors, viewModel.notificationKey, modifier) {
+                iconViewStore.iconView(viewModel.notificationKey)
+            }
         }
 
         is OngoingActivityChipModel.ChipIcon.SingleColorIcon -> {
@@ -208,6 +216,31 @@
     }
 }
 
+/** A Compose wrapper around [StatusBarIconView]. */
+@Composable
+private fun StatusBarIcon(
+    colors: ColorsModel,
+    notificationKey: String?,
+    modifier: Modifier = Modifier,
+    iconFactory: () -> StatusBarIconView?,
+) {
+    val context = LocalContext.current
+
+    val iconSizePx =
+        context.resources.getDimensionPixelSize(
+            R.dimen.ongoing_activity_chip_embedded_padding_icon_size
+        )
+    AndroidView(
+        modifier = modifier,
+        factory = { _ ->
+            iconFactory.invoke()?.apply {
+                layoutParams = ViewGroup.LayoutParams(iconSizePx, iconSizePx)
+                imageTintList = ColorStateList.valueOf(colors.text(context))
+            } ?: throw IllegalStateException("Missing StatusBarIconView for $notificationKey")
+        },
+    )
+}
+
 @Composable
 private fun ExpandableChip(
     color: () -> Color,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChips.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChips.kt
index 06b6b71..4017c43 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChips.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChips.kt
@@ -26,25 +26,24 @@
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.unit.dp
 import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
-import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
+import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder
 
 @Composable
-fun OngoingActivityChips(chips: MultipleOngoingActivityChipsModel, modifier: Modifier = Modifier) {
+fun OngoingActivityChips(
+    chips: MultipleOngoingActivityChipsModel,
+    iconViewStore: NotificationIconContainerViewBinder.IconViewStore?,
+    modifier: Modifier = Modifier,
+) {
     Row(
         // TODO(b/372657935): Remove magic numbers for padding and spacing.
         modifier = modifier.fillMaxHeight().padding(horizontal = 6.dp),
         verticalAlignment = Alignment.CenterVertically,
         horizontalArrangement = Arrangement.spacedBy(8.dp),
     ) {
-        // TODO(b/372657935): Make sure chips are only shown when there is enough horizontal
-        // space.
-        if (chips.primary is OngoingActivityChipModel.Shown) {
-            val chip = chips.primary
-            key(chip.key) { OngoingActivityChip(model = chip) }
-        }
-        if (chips.secondary is OngoingActivityChipModel.Shown) {
-            val chip = chips.secondary
-            key(chip.key) { OngoingActivityChip(model = chip) }
-        }
+        chips.active
+            .filter { !it.isHidden }
+            .forEach {
+                key(it.key) { OngoingActivityChip(model = it, iconViewStore = iconViewStore) }
+            }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/ColorsModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/ColorsModel.kt
index 25f90f9..4954cb0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/ColorsModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/ColorsModel.kt
@@ -21,7 +21,6 @@
 import androidx.annotation.ColorInt
 import com.android.settingslib.Utils
 import com.android.systemui.res.R
-import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
 
 /** Model representing how the chip in the status bar should be colored. */
 sealed interface ColorsModel {
@@ -31,13 +30,38 @@
     /** The color for the text (and icon) on the chip. */
     @ColorInt fun text(context: Context): Int
 
-    /** The chip should match the theme's primary color. */
-    data object Themed : ColorsModel {
+    /** The color to use for the chip outline, or null if the chip shouldn't have an outline. */
+    @ColorInt fun outline(context: Context): Int?
+
+    /** The chip should match the theme's primary accent color. */
+    // TODO(b/347717946): The chip's color isn't getting updated when the user switches theme, it
+    // only gets updated when a different configuration change happens, like a rotation.
+    data object AccentThemed : ColorsModel {
         override fun background(context: Context): ColorStateList =
             Utils.getColorAttr(context, com.android.internal.R.attr.colorAccent)
 
         override fun text(context: Context) =
             Utils.getColorAttrDefaultColor(context, com.android.internal.R.attr.colorPrimary)
+
+        override fun outline(context: Context) = null
+    }
+
+    /** The chip should match the system theme main color. */
+    // TODO(b/347717946): The chip's color isn't getting updated when the user switches theme, it
+    // only gets updated when a different configuration change happens, like a rotation.
+    data object SystemThemed : ColorsModel {
+        override fun background(context: Context): ColorStateList =
+            ColorStateList.valueOf(
+                context.getColor(com.android.internal.R.color.materialColorSurfaceDim)
+            )
+
+        override fun text(context: Context) =
+            context.getColor(com.android.internal.R.color.materialColorOnSurface)
+
+        override fun outline(context: Context) =
+            // Outline is required on the SystemThemed chip to guarantee the chip doesn't completely
+            // blend in with the background.
+            context.getColor(com.android.internal.R.color.materialColorOutlineVariant)
     }
 
     /** The chip should have the given background color and primary text color. */
@@ -46,6 +70,8 @@
             ColorStateList.valueOf(backgroundColorInt)
 
         override fun text(context: Context): Int = primaryTextColorInt
+
+        override fun outline(context: Context) = null
     }
 
     /** The chip should have a red background with white text. */
@@ -55,15 +81,7 @@
         }
 
         override fun text(context: Context) = context.getColor(android.R.color.white)
-    }
 
-    companion object {
-        /** Converts the promoted notification colors to a [Custom] colors model. */
-        fun PromotedNotificationContentModel.toCustomColorsModel(): Custom {
-            return Custom(
-                backgroundColorInt = this.colors.backgroundColor,
-                primaryTextColorInt = this.colors.primaryTextColor,
-            )
-        }
+        override fun outline(context: Context) = null
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/MultipleOngoingActivityChipsModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/MultipleOngoingActivityChipsModel.kt
index d2555b0..348152a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/MultipleOngoingActivityChipsModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/MultipleOngoingActivityChipsModel.kt
@@ -18,20 +18,43 @@
 
 /** Models multiple active ongoing activity chips at once. */
 data class MultipleOngoingActivityChipsModel(
+    /**
+     * The chips with a currently ongoing activity which are eligible to be shown, sorted by
+     * priority. These can be either shown or hidden, depending on other system states like which
+     * apps are open and ongoing transitions. If this list contains the maximum number of active and
+     * not-hidden chips allowed, any other lower priority active chip will be hidden and stored in
+     * [overflow].
+     */
+    val active: List<OngoingActivityChipModel.Active> = emptyList(),
+    /**
+     * The chips with a currently ongoing activity that have strictly lower priority than those in
+     * [active] and cannot be displayed, sorted by priority. These will *always* be hidden.
+     */
+    val overflow: List<OngoingActivityChipModel.Active> = emptyList(),
+    /**
+     * The chips with no currently ongoing activity, sorted by priority. These will *always* be
+     * hidden.
+     */
+    val inactive: List<OngoingActivityChipModel.Inactive> = emptyList(),
+)
+
+/** Models multiple active ongoing activity chips at once. */
+@Deprecated("Since StatusBarChipsModernization, use the new MultipleOngoingActivityChipsModel")
+data class MultipleOngoingActivityChipsModelLegacy(
     /** The primary chip to show. This will *always* be shown. */
-    val primary: OngoingActivityChipModel = OngoingActivityChipModel.Hidden(),
+    val primary: OngoingActivityChipModel = OngoingActivityChipModel.Inactive(),
     /**
      * The secondary chip to show. If there's not enough room in the status bar, this chip will
      * *not* be shown.
      */
-    val secondary: OngoingActivityChipModel = OngoingActivityChipModel.Hidden(),
+    val secondary: OngoingActivityChipModel = OngoingActivityChipModel.Inactive(),
 ) {
     init {
         if (
-            primary is OngoingActivityChipModel.Hidden &&
-                secondary is OngoingActivityChipModel.Shown
+            primary is OngoingActivityChipModel.Inactive &&
+                secondary is OngoingActivityChipModel.Active
         ) {
-            throw IllegalArgumentException("`secondary` cannot be Shown if `primary` is Hidden")
+            throw IllegalArgumentException("`secondary` cannot be Active if `primary` is Inactive")
         }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/OngoingActivityChipModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/OngoingActivityChipModel.kt
index 13f4b84..6cb8a53 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/OngoingActivityChipModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/model/OngoingActivityChipModel.kt
@@ -32,16 +32,16 @@
     /**
      * This chip shouldn't be shown.
      *
-     * @property shouldAnimate true if the transition from [Shown] to [Hidden] should be animated,
-     *   and false if that transition should *not* be animated (i.e. the chip view should
+     * @property shouldAnimate true if the transition from [Active] to [Inactive] should be
+     *   animated, and false if that transition should *not* be animated (i.e. the chip view should
      *   immediately disappear).
      */
-    data class Hidden(val shouldAnimate: Boolean = true) : OngoingActivityChipModel() {
-        override val logName = "Hidden(anim=$shouldAnimate)"
+    data class Inactive(val shouldAnimate: Boolean = true) : OngoingActivityChipModel() {
+        override val logName = "Inactive(anim=$shouldAnimate)"
     }
 
     /** This chip should be shown with the given information. */
-    sealed class Shown(
+    sealed class Active(
         /**
          * A key that uniquely identifies this chip. Used for better visual effects, like animation.
          */
@@ -57,6 +57,13 @@
         open val onClickListenerLegacy: View.OnClickListener?,
         /** Data class that determines how clicks on the chip should be handled. */
         open val clickBehavior: ClickBehavior,
+        /**
+         * Whether this chip should be hidden. This can be the case depending on system states (like
+         * which apps are in the foreground and whether there is an ongoing transition.
+         */
+        open val isHidden: Boolean,
+        /** Whether the transition from hidden to shown should be animated. */
+        open val shouldAnimate: Boolean,
     ) : OngoingActivityChipModel() {
 
         /** This chip shows only an icon and nothing else. */
@@ -66,8 +73,19 @@
             override val colors: ColorsModel,
             override val onClickListenerLegacy: View.OnClickListener?,
             override val clickBehavior: ClickBehavior,
-        ) : Shown(key, icon, colors, onClickListenerLegacy, clickBehavior) {
-            override val logName = "Shown.Icon"
+            override val isHidden: Boolean = false,
+            override val shouldAnimate: Boolean = true,
+        ) :
+            Active(
+                key,
+                icon,
+                colors,
+                onClickListenerLegacy,
+                clickBehavior,
+                isHidden,
+                shouldAnimate,
+            ) {
+            override val logName = "Active.Icon"
         }
 
         /** The chip shows a timer, counting up from [startTimeMs]. */
@@ -87,8 +105,19 @@
             val startTimeMs: Long,
             override val onClickListenerLegacy: View.OnClickListener?,
             override val clickBehavior: ClickBehavior,
-        ) : Shown(key, icon, colors, onClickListenerLegacy, clickBehavior) {
-            override val logName = "Shown.Timer"
+            override val isHidden: Boolean = false,
+            override val shouldAnimate: Boolean = true,
+        ) :
+            Active(
+                key,
+                icon,
+                colors,
+                onClickListenerLegacy,
+                clickBehavior,
+                isHidden,
+                shouldAnimate,
+            ) {
+            override val logName = "Active.Timer"
         }
 
         /**
@@ -103,12 +132,23 @@
             val time: Long,
             override val onClickListenerLegacy: View.OnClickListener?,
             override val clickBehavior: ClickBehavior,
-        ) : Shown(key, icon, colors, onClickListenerLegacy, clickBehavior) {
+            override val isHidden: Boolean = false,
+            override val shouldAnimate: Boolean = true,
+        ) :
+            Active(
+                key,
+                icon,
+                colors,
+                onClickListenerLegacy,
+                clickBehavior,
+                isHidden,
+                shouldAnimate,
+            ) {
             init {
                 StatusBarNotifChips.assertInNewMode()
             }
 
-            override val logName = "Shown.ShortTimeDelta"
+            override val logName = "Active.ShortTimeDelta"
         }
 
         /**
@@ -120,15 +160,19 @@
             override val colors: ColorsModel,
             /** The number of seconds until an event is started. */
             val secondsUntilStarted: Long,
+            override val isHidden: Boolean = false,
+            override val shouldAnimate: Boolean = true,
         ) :
-            Shown(
+            Active(
                 key,
                 icon = null,
                 colors,
                 onClickListenerLegacy = null,
                 clickBehavior = ClickBehavior.None,
+                isHidden,
+                shouldAnimate,
             ) {
-            override val logName = "Shown.Countdown"
+            override val logName = "Active.Countdown"
         }
 
         /** This chip shows the specified [text] in the chip. */
@@ -140,8 +184,19 @@
             val text: String,
             override val onClickListenerLegacy: View.OnClickListener? = null,
             override val clickBehavior: ClickBehavior,
-        ) : Shown(key, icon, colors, onClickListenerLegacy, clickBehavior) {
-            override val logName = "Shown.Text"
+            override val isHidden: Boolean = false,
+            override val shouldAnimate: Boolean = true,
+        ) :
+            Active(
+                key,
+                icon,
+                colors,
+                onClickListenerLegacy,
+                clickBehavior,
+                isHidden,
+                shouldAnimate,
+            ) {
+            override val logName = "Active.Text"
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelper.kt
index 52495eb..c19b144 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelper.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/view/ChipTextTruncationHelper.kt
@@ -51,9 +51,8 @@
     }
 
     /**
-     * Returns true if this view should show the text because there's enough room for a substantial
-     * amount of text, and returns false if this view should hide the text because the text is much
-     * too long.
+     * Returns true if this view should show the text because there's enough room for all the text,
+     * and returns false if this view should hide the text because not all of it fits.
      *
      * @param desiredTextWidthPx should be calculated by having the view measure itself with
      *   [unlimitedWidthMeasureSpec] and then sending its `measuredWidth` to this method. (This
@@ -82,9 +81,8 @@
             enforcedTextWidth = maxWidthBasedOnDimension
         }
 
-        // Only show the text if at least 50% of it can show. (Assume that if < 50% of the text will
-        // be visible, the text will be more confusing than helpful.)
-        return desiredTextWidthPx <= enforcedTextWidth * 2
+        // Only show the text if all of it can show
+        return desiredTextWidthPx <= enforcedTextWidth
     }
 
     private fun fetchMaxWidth() =
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelper.kt
index 823b910..3b47a5e0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelper.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/ChipTransitionHelper.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.chips.ui.viewmodel
 
 import android.annotation.SuppressLint
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import kotlinx.coroutines.CoroutineScope
@@ -28,7 +29,6 @@
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.stateIn
 import kotlinx.coroutines.flow.transformLatest
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /**
  * A class that can help [OngoingActivityChipViewModel] instances with various transition states.
@@ -76,20 +76,19 @@
      * (see [onActivityStoppedFromDialog]). In general, this flow just uses value in [chip].
      */
     fun createChipFlow(chip: Flow<OngoingActivityChipModel>): StateFlow<OngoingActivityChipModel> {
-        return combine(
-                chip,
-                wasActivityRecentlyStoppedFromDialog,
-            ) { chipModel, activityRecentlyStopped ->
+        return combine(chip, wasActivityRecentlyStoppedFromDialog) {
+                chipModel,
+                activityRecentlyStopped ->
                 if (activityRecentlyStopped) {
                     // There's a bit of a delay between when the user stops an activity via
                     // SysUI and when the system services notify SysUI that the activity has
                     // indeed stopped. Prevent the chip from showing during this delay by
                     // immediately hiding it without any animation.
-                    OngoingActivityChipModel.Hidden(shouldAnimate = false)
+                    OngoingActivityChipModel.Inactive(shouldAnimate = false)
                 } else {
                     chipModel
                 }
             }
-            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Inactive())
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModel.kt
index dd7a4b4..1a30caf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModel.kt
@@ -32,14 +32,17 @@
 import com.android.systemui.statusbar.chips.screenrecord.ui.viewmodel.ScreenRecordChipViewModel
 import com.android.systemui.statusbar.chips.sharetoapp.ui.viewmodel.ShareToAppChipViewModel
 import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
+import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModelLegacy
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
 import com.android.systemui.util.kotlin.pairwise
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.map
@@ -95,33 +98,34 @@
     }
 
     /** Model that helps us internally track the various chip states from each of the types. */
+    @Deprecated("Since StatusBarChipsModernization, this isn't used anymore")
     private sealed interface InternalChipModel {
         /**
          * Represents that we've internally decided to show the chip with type [type] with the given
          * [model] information.
          */
-        data class Shown(val type: ChipType, val model: OngoingActivityChipModel.Shown) :
+        data class Active(val type: ChipType, val model: OngoingActivityChipModel.Active) :
             InternalChipModel
 
         /**
          * Represents that all chip types would like to be hidden. Each value specifies *how* that
          * chip type should get hidden.
          */
-        data class Hidden(
-            val screenRecord: OngoingActivityChipModel.Hidden,
-            val shareToApp: OngoingActivityChipModel.Hidden,
-            val castToOtherDevice: OngoingActivityChipModel.Hidden,
-            val call: OngoingActivityChipModel.Hidden,
-            val notifs: OngoingActivityChipModel.Hidden,
+        data class Inactive(
+            val screenRecord: OngoingActivityChipModel.Inactive,
+            val shareToApp: OngoingActivityChipModel.Inactive,
+            val castToOtherDevice: OngoingActivityChipModel.Inactive,
+            val call: OngoingActivityChipModel.Inactive,
+            val notifs: OngoingActivityChipModel.Inactive,
         ) : InternalChipModel
     }
 
     private data class ChipBundle(
-        val screenRecord: OngoingActivityChipModel = OngoingActivityChipModel.Hidden(),
-        val shareToApp: OngoingActivityChipModel = OngoingActivityChipModel.Hidden(),
-        val castToOtherDevice: OngoingActivityChipModel = OngoingActivityChipModel.Hidden(),
-        val call: OngoingActivityChipModel = OngoingActivityChipModel.Hidden(),
-        val notifs: List<OngoingActivityChipModel.Shown> = emptyList(),
+        val screenRecord: OngoingActivityChipModel = OngoingActivityChipModel.Inactive(),
+        val shareToApp: OngoingActivityChipModel = OngoingActivityChipModel.Inactive(),
+        val castToOtherDevice: OngoingActivityChipModel = OngoingActivityChipModel.Inactive(),
+        val call: OngoingActivityChipModel = OngoingActivityChipModel.Inactive(),
+        val notifs: List<OngoingActivityChipModel.Active> = emptyList(),
     )
 
     /** Bundles all the incoming chips into one object to easily pass to various flows. */
@@ -179,14 +183,15 @@
      */
     val primaryChip: StateFlow<OngoingActivityChipModel> =
         internalChip
-            .pairwise(initialValue = DEFAULT_INTERNAL_HIDDEN_MODEL)
+            .pairwise(initialValue = DEFAULT_INTERNAL_INACTIVE_MODEL)
             .map { (old, new) -> createOutputModel(old, new) }
-            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Hidden())
+            .stateIn(scope, SharingStarted.Lazily, OngoingActivityChipModel.Inactive())
 
     /**
-     * Equivalent to [MultipleOngoingActivityChipsModel] but using the internal models to do some
-     * state tracking before we get the final output.
+     * Equivalent to [MultipleOngoingActivityChipsModelLegacy] but using the internal models to do
+     * some state tracking before we get the final output.
      */
+    @Deprecated("Since StatusBarChipsModernization, this isn't used anymore")
     private data class InternalMultipleOngoingActivityChipsModel(
         val primary: InternalChipModel,
         val secondary: InternalChipModel,
@@ -197,19 +202,18 @@
             // First: Find the most important chip.
             val primaryChipResult = pickMostImportantChip(bundle)
             when (val primaryChip = primaryChipResult.mostImportantChip) {
-                is InternalChipModel.Hidden -> {
+                is InternalChipModel.Inactive -> {
                     // If the primary chip is hidden, the secondary chip will also be hidden, so
                     // just pass the same Hidden model for both.
                     InternalMultipleOngoingActivityChipsModel(primaryChip, primaryChip)
                 }
-                is InternalChipModel.Shown -> {
+                is InternalChipModel.Active -> {
                     // Otherwise: Find the next most important chip.
                     val secondaryChip =
                         pickMostImportantChip(primaryChipResult.remainingChips).mostImportantChip
                     if (
-                        secondaryChip is InternalChipModel.Shown &&
+                        secondaryChip is InternalChipModel.Active &&
                             StatusBarNotifChips.isEnabled &&
-                            !StatusBarChipsModernization.isEnabled &&
                             !isScreenReasonablyLarge
                     ) {
                         // If we have two showing chips and we don't have a ton of room
@@ -217,8 +221,10 @@
                         // possible so that we have the highest chance of showing both chips (as
                         // opposed to showing the primary chip with a lot of text and completely
                         // hiding the secondary chip).
-                        // Also: If StatusBarChipsModernization is enabled, then we'll do the
-                        // squishing in Compose instead.
+                        // TODO(b/392895330): If StatusBarChipsModernization is enabled, do the
+                        // squishing in Compose instead, and be smart about it (e.g. if we have
+                        // room for the first chip to show text and the second chip to be icon-only,
+                        // do that instead of always squishing both chips.)
                         InternalMultipleOngoingActivityChipsModel(
                             primaryChip.squish(),
                             secondaryChip.squish(),
@@ -231,27 +237,34 @@
         }
 
     /** Squishes the chip down to the smallest content possible. */
-    private fun InternalChipModel.Shown.squish(): InternalChipModel.Shown {
-        return when (model) {
-            // Icon-only is already maximum squished
-            is OngoingActivityChipModel.Shown.IconOnly -> this
-            // Countdown shows just a single digit, so already maximum squished
-            is OngoingActivityChipModel.Shown.Countdown -> this
-            // The other chips have icon+text, so we should hide the text
-            is OngoingActivityChipModel.Shown.Timer,
-            is OngoingActivityChipModel.Shown.ShortTimeDelta,
-            is OngoingActivityChipModel.Shown.Text ->
-                InternalChipModel.Shown(this.type, this.model.toIconOnly())
+    private fun InternalChipModel.Active.squish(): InternalChipModel.Active {
+        return if (model.shouldSquish()) {
+            InternalChipModel.Active(this.type, this.model.toIconOnly())
+        } else {
+            this
         }
     }
 
-    private fun OngoingActivityChipModel.Shown.toIconOnly(): OngoingActivityChipModel.Shown {
+    private fun OngoingActivityChipModel.Active.shouldSquish(): Boolean {
+        return when (this) {
+            // Icon-only is already maximum squished
+            is OngoingActivityChipModel.Active.IconOnly,
+            // Countdown shows just a single digit, so already maximum squished
+            is OngoingActivityChipModel.Active.Countdown -> false
+            // The other chips have icon+text, so we can squish them by hiding text
+            is OngoingActivityChipModel.Active.Timer,
+            is OngoingActivityChipModel.Active.ShortTimeDelta,
+            is OngoingActivityChipModel.Active.Text -> true
+        }
+    }
+
+    private fun OngoingActivityChipModel.Active.toIconOnly(): OngoingActivityChipModel.Active {
         // If this chip doesn't have an icon, then it only has text and we should continue showing
         // its text. (This is theoretically impossible because
-        // [OngoingActivityChipModel.Shown.Countdown] is the only chip without an icon, but protect
-        // against it just in case.)
+        // [OngoingActivityChipModel.Active.Countdown] is the only chip without an icon and
+        // [shouldSquish] returns false for that model, but protect against it just in case.)
         val currentIcon = icon ?: return this
-        return OngoingActivityChipModel.Shown.IconOnly(
+        return OngoingActivityChipModel.Active.IconOnly(
             key,
             currentIcon,
             colors,
@@ -261,35 +274,130 @@
     }
 
     /**
+     * A flow modeling the active and inactive chips as well as which should be shown in the status
+     * bar after accounting for possibly multiple ongoing activities and animation requirements.
+     */
+    val chips: StateFlow<MultipleOngoingActivityChipsModel> =
+        if (StatusBarChipsModernization.isEnabled) {
+            combine(
+                    incomingChipBundle.map { bundle -> rankChips(bundle) },
+                    isScreenReasonablyLarge,
+                ) { rankedChips, isScreenReasonablyLarge ->
+                    if (
+                        StatusBarNotifChips.isEnabled &&
+                            !isScreenReasonablyLarge &&
+                            rankedChips.active.filter { !it.isHidden }.size >= 2
+                    ) {
+                        // If we have at least two showing chips and we don't have a ton of room
+                        // (!isScreenReasonablyLarge), then we want to make both of them as small as
+                        // possible so that we have the highest chance of showing both chips (as
+                        // opposed to showing the first chip with a lot of text and completely
+                        // hiding the other chips).
+                        val squishedActiveChips =
+                            rankedChips.active.map {
+                                if (!it.isHidden && it.shouldSquish()) {
+                                    it.toIconOnly()
+                                } else {
+                                    it
+                                }
+                            }
+
+                        MultipleOngoingActivityChipsModel(
+                            active = squishedActiveChips,
+                            overflow = rankedChips.overflow,
+                            inactive = rankedChips.inactive,
+                        )
+                    } else {
+                        rankedChips
+                    }
+                }
+                .stateIn(scope, SharingStarted.Lazily, MultipleOngoingActivityChipsModel())
+        } else {
+            MutableStateFlow(MultipleOngoingActivityChipsModel()).asStateFlow()
+        }
+
+    /**
      * A flow modeling the primary chip that should be shown in the status bar after accounting for
      * possibly multiple ongoing activities and animation requirements.
      *
      * [com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment] is responsible for
      * actually displaying the chip.
+     *
+     * Deprecated: since StatusBarChipsModernization, use the new [chips] instead.
      */
-    val chips: StateFlow<MultipleOngoingActivityChipsModel> =
-        if (!StatusBarNotifChips.isEnabled) {
+    val chipsLegacy: StateFlow<MultipleOngoingActivityChipsModelLegacy> =
+        if (StatusBarChipsModernization.isEnabled) {
+            MutableStateFlow(MultipleOngoingActivityChipsModelLegacy()).asStateFlow()
+        } else if (!StatusBarNotifChips.isEnabled) {
             // Multiple chips are only allowed with notification chips. If the flag isn't on, use
             // just the primary chip.
             primaryChip
                 .map {
-                    MultipleOngoingActivityChipsModel(
+                    MultipleOngoingActivityChipsModelLegacy(
                         primary = it,
-                        secondary = OngoingActivityChipModel.Hidden(),
+                        secondary = OngoingActivityChipModel.Inactive(),
                     )
                 }
-                .stateIn(scope, SharingStarted.Lazily, MultipleOngoingActivityChipsModel())
+                .stateIn(scope, SharingStarted.Lazily, MultipleOngoingActivityChipsModelLegacy())
         } else {
             internalChips
-                .pairwise(initialValue = DEFAULT_MULTIPLE_INTERNAL_HIDDEN_MODEL)
+                .pairwise(initialValue = DEFAULT_MULTIPLE_INTERNAL_INACTIVE_MODEL)
                 .map { (old, new) ->
                     val correctPrimary = createOutputModel(old.primary, new.primary)
                     val correctSecondary = createOutputModel(old.secondary, new.secondary)
-                    MultipleOngoingActivityChipsModel(correctPrimary, correctSecondary)
+                    MultipleOngoingActivityChipsModelLegacy(correctPrimary, correctSecondary)
                 }
-                .stateIn(scope, SharingStarted.Lazily, MultipleOngoingActivityChipsModel())
+                .stateIn(scope, SharingStarted.Lazily, MultipleOngoingActivityChipsModelLegacy())
         }
 
+    /**
+     * Sort the given chip [bundle] in order of priority, and divide the chips between active,
+     * overflow, and inactive (see [MultipleOngoingActivityChipsModel] for a description of each).
+     */
+    private fun rankChips(bundle: ChipBundle): MultipleOngoingActivityChipsModel {
+        val activeChips = mutableListOf<OngoingActivityChipModel.Active>()
+        val overflowChips = mutableListOf<OngoingActivityChipModel.Active>()
+        val inactiveChips = mutableListOf<OngoingActivityChipModel.Inactive>()
+
+        val sortedChips =
+            mutableListOf(
+                    bundle.screenRecord,
+                    bundle.shareToApp,
+                    bundle.castToOtherDevice,
+                    bundle.call,
+                )
+                .apply { bundle.notifs.forEach { add(it) } }
+
+        var shownSlotsRemaining = MAX_VISIBLE_CHIPS
+        for (chip in sortedChips) {
+            when (chip) {
+                is OngoingActivityChipModel.Active -> {
+                    // Screen recording also activates the media projection APIs, which means that
+                    // whenever the screen recording chip is active, the share-to-app chip would
+                    // also be active. (Screen recording is a special case of share-to-app, where
+                    // the app receiving the share is specifically System UI.)
+                    // We want only the screen-recording-specific chip to be shown in this case. If
+                    // we did have screen recording as the primary chip, we need to suppress the
+                    // share-to-app chip to make sure they don't both show.
+                    // See b/296461748.
+                    val suppressShareToApp =
+                        chip == bundle.shareToApp &&
+                            bundle.screenRecord is OngoingActivityChipModel.Active
+                    if (shownSlotsRemaining > 0 && !suppressShareToApp) {
+                        activeChips.add(chip)
+                        if (!chip.isHidden) shownSlotsRemaining--
+                    } else {
+                        overflowChips.add(chip)
+                    }
+                }
+
+                is OngoingActivityChipModel.Inactive -> inactiveChips.add(chip)
+            }
+        }
+
+        return MultipleOngoingActivityChipsModel(activeChips, overflowChips, inactiveChips)
+    }
+
     /** A data class representing the return result of [pickMostImportantChip]. */
     private data class MostImportantChipResult(
         val mostImportantChip: InternalChipModel,
@@ -305,13 +413,13 @@
     private fun pickMostImportantChip(bundle: ChipBundle): MostImportantChipResult {
         // This `when` statement shows the priority order of the chips.
         return when {
-            bundle.screenRecord is OngoingActivityChipModel.Shown ->
+            bundle.screenRecord is OngoingActivityChipModel.Active ->
                 MostImportantChipResult(
                     mostImportantChip =
-                        InternalChipModel.Shown(ChipType.ScreenRecord, bundle.screenRecord),
+                        InternalChipModel.Active(ChipType.ScreenRecord, bundle.screenRecord),
                     remainingChips =
                         bundle.copy(
-                            screenRecord = OngoingActivityChipModel.Hidden(),
+                            screenRecord = OngoingActivityChipModel.Inactive(),
                             // Screen recording also activates the media projection APIs, which
                             // means that whenever the screen recording chip is active, the
                             // share-to-app chip would also be active. (Screen recording is a
@@ -321,52 +429,52 @@
                             // case. If we did have screen recording as the primary chip, we need to
                             // suppress the share-to-app chip to make sure they don't both show.
                             // See b/296461748.
-                            shareToApp = OngoingActivityChipModel.Hidden(),
+                            shareToApp = OngoingActivityChipModel.Inactive(),
                         ),
                 )
-            bundle.shareToApp is OngoingActivityChipModel.Shown ->
+            bundle.shareToApp is OngoingActivityChipModel.Active ->
                 MostImportantChipResult(
                     mostImportantChip =
-                        InternalChipModel.Shown(ChipType.ShareToApp, bundle.shareToApp),
-                    remainingChips = bundle.copy(shareToApp = OngoingActivityChipModel.Hidden()),
+                        InternalChipModel.Active(ChipType.ShareToApp, bundle.shareToApp),
+                    remainingChips = bundle.copy(shareToApp = OngoingActivityChipModel.Inactive()),
                 )
-            bundle.castToOtherDevice is OngoingActivityChipModel.Shown ->
+            bundle.castToOtherDevice is OngoingActivityChipModel.Active ->
                 MostImportantChipResult(
                     mostImportantChip =
-                        InternalChipModel.Shown(
+                        InternalChipModel.Active(
                             ChipType.CastToOtherDevice,
                             bundle.castToOtherDevice,
                         ),
                     remainingChips =
-                        bundle.copy(castToOtherDevice = OngoingActivityChipModel.Hidden()),
+                        bundle.copy(castToOtherDevice = OngoingActivityChipModel.Inactive()),
                 )
-            bundle.call is OngoingActivityChipModel.Shown ->
+            bundle.call is OngoingActivityChipModel.Active ->
                 MostImportantChipResult(
-                    mostImportantChip = InternalChipModel.Shown(ChipType.Call, bundle.call),
-                    remainingChips = bundle.copy(call = OngoingActivityChipModel.Hidden()),
+                    mostImportantChip = InternalChipModel.Active(ChipType.Call, bundle.call),
+                    remainingChips = bundle.copy(call = OngoingActivityChipModel.Inactive()),
                 )
             bundle.notifs.isNotEmpty() ->
                 MostImportantChipResult(
                     mostImportantChip =
-                        InternalChipModel.Shown(ChipType.Notification, bundle.notifs.first()),
+                        InternalChipModel.Active(ChipType.Notification, bundle.notifs.first()),
                     remainingChips =
                         bundle.copy(notifs = bundle.notifs.subList(1, bundle.notifs.size)),
                 )
             else -> {
                 // We should only get here if all chip types are hidden
-                check(bundle.screenRecord is OngoingActivityChipModel.Hidden)
-                check(bundle.shareToApp is OngoingActivityChipModel.Hidden)
-                check(bundle.castToOtherDevice is OngoingActivityChipModel.Hidden)
-                check(bundle.call is OngoingActivityChipModel.Hidden)
+                check(bundle.screenRecord is OngoingActivityChipModel.Inactive)
+                check(bundle.shareToApp is OngoingActivityChipModel.Inactive)
+                check(bundle.castToOtherDevice is OngoingActivityChipModel.Inactive)
+                check(bundle.call is OngoingActivityChipModel.Inactive)
                 check(bundle.notifs.isEmpty())
                 MostImportantChipResult(
                     mostImportantChip =
-                        InternalChipModel.Hidden(
+                        InternalChipModel.Inactive(
                             screenRecord = bundle.screenRecord,
                             shareToApp = bundle.shareToApp,
                             castToOtherDevice = bundle.castToOtherDevice,
                             call = bundle.call,
-                            notifs = OngoingActivityChipModel.Hidden(),
+                            notifs = OngoingActivityChipModel.Inactive(),
                         ),
                     // All the chips are already hidden, so no need to filter anything out of the
                     // bundle.
@@ -380,14 +488,14 @@
         old: InternalChipModel,
         new: InternalChipModel,
     ): OngoingActivityChipModel {
-        return if (old is InternalChipModel.Shown && new is InternalChipModel.Hidden) {
+        return if (old is InternalChipModel.Active && new is InternalChipModel.Inactive) {
             // If we're transitioning from showing the chip to hiding the chip, different
             // chips require different animation behaviors. For example, the screen share
             // chips shouldn't animate if the user stopped the screen share from the dialog
             // (see b/353249803#comment4), but the call chip should always animate.
             //
-            // This `when` block makes sure that when we're transitioning from Shown to
-            // Hidden, we check what chip type was previously showing and we use that chip
+            // This `when` block makes sure that when we're transitioning from Active to
+            // Inactive, we check what chip type was previously showing and we use that chip
             // type's hide animation behavior.
             return when (old.type) {
                 ChipType.ScreenRecord -> new.screenRecord
@@ -396,13 +504,13 @@
                 ChipType.Call -> new.call
                 ChipType.Notification -> new.notifs
             }
-        } else if (new is InternalChipModel.Shown) {
+        } else if (new is InternalChipModel.Active) {
             // If we have a chip to show, always show it.
             new.model
         } else {
             // In the Hidden -> Hidden transition, it shouldn't matter which hidden model we
             // choose because no animation should happen regardless.
-            OngoingActivityChipModel.Hidden()
+            OngoingActivityChipModel.Inactive()
         }
     }
 
@@ -412,19 +520,22 @@
     companion object {
         private val TAG = "ChipsViewModel".pad()
 
-        private val DEFAULT_INTERNAL_HIDDEN_MODEL =
-            InternalChipModel.Hidden(
-                screenRecord = OngoingActivityChipModel.Hidden(),
-                shareToApp = OngoingActivityChipModel.Hidden(),
-                castToOtherDevice = OngoingActivityChipModel.Hidden(),
-                call = OngoingActivityChipModel.Hidden(),
-                notifs = OngoingActivityChipModel.Hidden(),
+        private val DEFAULT_INTERNAL_INACTIVE_MODEL =
+            InternalChipModel.Inactive(
+                screenRecord = OngoingActivityChipModel.Inactive(),
+                shareToApp = OngoingActivityChipModel.Inactive(),
+                castToOtherDevice = OngoingActivityChipModel.Inactive(),
+                call = OngoingActivityChipModel.Inactive(),
+                notifs = OngoingActivityChipModel.Inactive(),
             )
 
-        private val DEFAULT_MULTIPLE_INTERNAL_HIDDEN_MODEL =
+        private val DEFAULT_MULTIPLE_INTERNAL_INACTIVE_MODEL =
             InternalMultipleOngoingActivityChipsModel(
-                primary = DEFAULT_INTERNAL_HIDDEN_MODEL,
-                secondary = DEFAULT_INTERNAL_HIDDEN_MODEL,
+                primary = DEFAULT_INTERNAL_INACTIVE_MODEL,
+                secondary = DEFAULT_INTERNAL_INACTIVE_MODEL,
             )
+
+        // TODO(b/392886257): Support 3 chips if there's space available.
+        private const val MAX_VISIBLE_CHIPS = 2
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt b/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt
new file mode 100644
index 0000000..e3be953
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.core
+
+import com.android.settingslib.flags.Flags
+import com.android.systemui.flags.FlagToken
+import com.android.systemui.flags.RefactorFlagUtils
+
+/** Helper for reading and using the status bar simple fragment flag state */
+object NewStatusBarIcons {
+    /** Aconfig flag for new status bar icons */
+    const val FLAG_NAME = Flags.FLAG_NEW_STATUS_BAR_ICONS
+
+    /** A token used for dependency declaration */
+    val token: FlagToken
+        get() = FlagToken(FLAG_NAME, isEnabled)
+
+    /** Is the refactor enabled */
+    @JvmStatic
+    inline val isEnabled
+        get() = Flags.newStatusBarIcons()
+
+    /**
+     * Called to ensure code is only run when the flag is enabled. This protects users from the
+     * unintended behaviors caused by accidentally running new logic, while also crashing on an eng
+     * build to ensure that the refactor author catches issues in testing.
+     */
+    @JvmStatic
+    inline fun isUnexpectedlyInLegacyMode() =
+        RefactorFlagUtils.isUnexpectedlyInLegacyMode(isEnabled, FLAG_NAME)
+
+    /**
+     * Called to ensure code is only run when the flag is disabled. This will throw an exception if
+     * the flag is not enabled to ensure that the refactor author catches issues in testing.
+     * Caution!! Using this check incorrectly will cause crashes in nextfood builds!
+     */
+    @JvmStatic
+    inline fun assertInNewMode() = RefactorFlagUtils.assertInNewMode(isEnabled, FLAG_NAME)
+
+    /**
+     * Called to ensure code is only run when the flag is disabled. This will throw an exception if
+     * the flag is enabled to ensure that the refactor author catches issues in testing.
+     */
+    @JvmStatic
+    inline fun assertInLegacyMode() = RefactorFlagUtils.assertInLegacyMode(isEnabled, FLAG_NAME)
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
index d327fc2..434eb7d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
@@ -38,6 +38,7 @@
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
 import com.android.systemui.settings.DisplayTracker;
 import com.android.systemui.shade.NotificationPanelViewController;
+import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.shade.ShadeSurface;
 import com.android.systemui.shade.ShadeSurfaceImpl;
 import com.android.systemui.shade.carrier.ShadeCarrierGroupController;
@@ -92,7 +93,7 @@
     @SysUISingleton
     @Provides
     static NotificationMediaManager provideNotificationMediaManager(
-            Context context,
+            @ShadeDisplayAware Context context,
             NotificationVisibilityProvider visibilityProvider,
             NotifPipeline notifPipeline,
             NotifCollection notifCollection,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt
index 85cd505..7b5f5f6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt
@@ -61,6 +61,7 @@
 import com.android.systemui.plugins.statusbar.StatusBarStateController
 import com.android.systemui.res.R
 import com.android.systemui.settings.UserTracker
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shared.regionsampling.RegionSampler
 import com.android.systemui.smartspace.dagger.SmartspaceModule.Companion.DATE_SMARTSPACE_DATA_PLUGIN
 import com.android.systemui.smartspace.dagger.SmartspaceModule.Companion.WEATHER_SMARTSPACE_DATA_PLUGIN
@@ -88,7 +89,7 @@
 class LockscreenSmartspaceController
 @Inject
 constructor(
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     private val featureFlags: FeatureFlags,
     private val activityStarter: ActivityStarter,
     private val falsingManager: FalsingManager,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt
index b6ef958..9bc5231 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt
@@ -20,10 +20,17 @@
 import android.app.Notification.EXTRA_SUMMARIZED_CONTENT
 import android.content.Context
 import android.content.pm.LauncherApps
+import android.graphics.Typeface
 import android.graphics.drawable.AnimatedImageDrawable
 import android.os.Handler
 import android.service.notification.NotificationListenerService.Ranking
 import android.service.notification.NotificationListenerService.RankingMap
+import android.text.SpannableString
+import android.text.Spanned
+import android.text.TextUtils
+import android.text.style.ImageSpan
+import android.text.style.StyleSpan
+import com.android.internal.R
 import com.android.internal.widget.ConversationLayout
 import com.android.internal.widget.MessagingImageMessage
 import com.android.internal.widget.MessagingLayout
@@ -49,6 +56,7 @@
 class ConversationNotificationProcessor
 @Inject
 constructor(
+    @ShadeDisplayAware private val context: Context,
     private val launcherApps: LauncherApps,
     private val conversationNotificationManager: ConversationNotificationManager,
 ) {
@@ -61,15 +69,47 @@
         messagingStyle.conversationType =
             if (entry.ranking.channel.isImportantConversation)
                 Notification.MessagingStyle.CONVERSATION_TYPE_IMPORTANT
-            else Notification.MessagingStyle.CONVERSATION_TYPE_NORMAL
+            else if (entry.ranking.isConversation)
+                Notification.MessagingStyle.CONVERSATION_TYPE_NORMAL
+            else
+                Notification.MessagingStyle.CONVERSATION_TYPE_LEGACY
         entry.ranking.conversationShortcutInfo?.let { shortcutInfo ->
             logger.logAsyncTaskProgress(entry, "getting shortcut icon")
             messagingStyle.shortcutIcon = launcherApps.getShortcutIcon(shortcutInfo)
             shortcutInfo.label?.let { label -> messagingStyle.conversationTitle = label }
         }
-        if (NmSummarizationUiFlag.isEnabled) {
+        if (NmSummarizationUiFlag.isEnabled && !TextUtils.isEmpty(entry.ranking.summarization)) {
+            val icon = context.getDrawable(R.drawable.ic_notification_summarization)?.mutate()
+            val imageSpan =
+                icon?.let {
+                    it.setBounds(
+                        /* left= */ 0,
+                        /* top= */ 0,
+                        icon.getIntrinsicWidth(),
+                        icon.getIntrinsicHeight(),
+                    )
+                    ImageSpan(it, ImageSpan.ALIGN_CENTER)
+                }
+            val decoratedSummary =
+                SpannableString("x" + entry.ranking.summarization).apply {
+                    setSpan(
+                        /* what = */ imageSpan,
+                        /* start = */ 0,
+                        /* end = */ 1,
+                        /* flags = */ Spanned.SPAN_INCLUSIVE_EXCLUSIVE,
+                    )
+                    entry.ranking.summarization?.let {
+                        setSpan(
+                            /* what = */ StyleSpan(Typeface.BOLD),
+                            /* start = */ 1,
+                            /* end = */ it.length,
+                            /* flags = */ Spanned.SPAN_EXCLUSIVE_INCLUSIVE,
+                        )
+                    }
+                }
             entry.sbn.notification.extras.putCharSequence(
-                EXTRA_SUMMARIZED_CONTENT, entry.ranking.summarization
+                EXTRA_SUMMARIZED_CONTENT,
+                decoratedSummary,
             )
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS b/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS
index 0a7f08d..d06f24f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS
@@ -6,7 +6,6 @@
 juliacr@google.com
 
 aioana@google.com
-aroederer@google.com
 asc@google.com
 iyz@google.com
 juliatuttle@google.com
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java
index 29335c5..37485fe 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,13 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.statusbar.notification.collection;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+/**
+ * Abstract class to represent notification section bundled by AI.
+ */
+public class BundleEntry extends PipelineEntry {
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+    public class BundleEntryAdapter implements EntryAdapter {
+    }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java
index 29335c5..b12b1c5 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.statusbar.notification.collection;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
-
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+/**
+ * Adapter interface for UI to get relevant info.
+ */
+public interface EntryAdapter {
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java
index 915057f..c8e3be4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java
@@ -27,7 +27,7 @@
  * Abstract superclass for top-level entries, i.e. things that can appear in the final notification
  * list shown to users. In practice, this means either GroupEntries or NotificationEntries.
  */
-public abstract class ListEntry {
+public abstract class ListEntry extends PipelineEntry {
     private final String mKey;
     private final long mCreationTime;
 
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 09cc3f2..7dd82a6 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
@@ -270,6 +270,9 @@
         setRanking(ranking);
     }
 
+    public class NotifEntryAdapter implements EntryAdapter {
+    }
+
     @Override
     public NotificationEntry getRepresentativeEntry() {
         return this;
@@ -643,6 +646,10 @@
         return row.isMediaRow();
     }
 
+    public boolean containsCustomViews() {
+        return getSbn().getNotification().containsCustomViews();
+    }
+
     public void resetUserExpansion() {
         if (row != null) row.resetUserExpansion();
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java
index 29335c5..efedfef 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.statusbar.notification.collection;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
-
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+/**
+ * Class to represent a notification, group, or bundle in the pipeline.
+ */
+public class PipelineEntry {
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationStackModule.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationStackOptionalModule.kt
similarity index 96%
rename from packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationStackModule.kt
rename to packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationStackOptionalModule.kt
index 6ceeb6a..bcaf187 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationStackModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationStackOptionalModule.kt
@@ -26,7 +26,7 @@
  * This is meant to be bound in SystemUI variants with [NotificationStackScrollLayoutController].
  */
 @Module
-interface NotificationStackGoogleModule {
+interface NotificationStackModule {
     @Binds
     fun bindNotificationStackRebindingHider(
         impl: NotificationStackRebindingHiderImpl
@@ -35,7 +35,7 @@
 
 /** This is meant to be used by all SystemUI variants, also those without NSSL. */
 @Module
-interface NotificationStackModule {
+interface NotificationStackOptionalModule {
     @BindsOptionalOf
     fun bindOptionalOfNotificationStackRebindingHider(): NotificationStackRebindingHider
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
index 91653d3..34f4969 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
@@ -32,6 +32,7 @@
 import com.android.systemui.dagger.qualifiers.Application;
 import com.android.systemui.dagger.qualifiers.Background;
 import com.android.systemui.res.R;
+import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.statusbar.NotificationListener;
 import com.android.systemui.statusbar.notification.NotificationActivityStarter;
 import com.android.systemui.statusbar.notification.NotificationLaunchAnimatorControllerProvider;
@@ -120,7 +121,7 @@
         NotificationMemoryModule.class,
         NotificationStatsLoggerModule.class,
         NotificationsLogModule.class,
-        NotificationStackModule.class,
+        NotificationStackOptionalModule.class,
 })
 public interface NotificationsModule {
     @Binds
@@ -168,7 +169,7 @@
     @SysUISingleton
     @Provides
     static NotificationsController provideNotificationsController(
-            Context context,
+            @ShadeDisplayAware Context context,
             Provider<NotificationsControllerImpl> realController,
             Provider<NotificationsControllerStub> stubController) {
         if (context.getResources().getBoolean(R.bool.config_renderNotifications)) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/emptyshade/ui/viewmodel/EmptyShadeViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/emptyshade/ui/viewmodel/EmptyShadeViewModel.kt
index fa0cea1..7e6c605 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/emptyshade/ui/viewmodel/EmptyShadeViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/emptyshade/ui/viewmodel/EmptyShadeViewModel.kt
@@ -23,6 +23,7 @@
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.modes.shared.ModesUi
 import com.android.systemui.res.R
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shared.notifications.domain.interactor.NotificationSettingsInteractor
 import com.android.systemui.statusbar.notification.NotificationActivityStarter.SettingsIntent
 import com.android.systemui.statusbar.notification.domain.interactor.SeenNotificationsInteractor
@@ -50,7 +51,7 @@
 class EmptyShadeViewModel
 @AssistedInject
 constructor(
-    private val context: Context,
+    @ShadeDisplayAware private val context: Context,
     zenModeInteractor: ZenModeInteractor,
     seenNotificationsInteractor: SeenNotificationsInteractor,
     notificationSettingsInteractor: NotificationSettingsInteractor,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/footer/ui/view/FooterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/footer/ui/view/FooterView.java
index 96192b1..25deec3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/footer/ui/view/FooterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/footer/ui/view/FooterView.java
@@ -391,7 +391,7 @@
         if (!notificationFooterBackgroundTintOptimization()) {
             if (notificationShadeBlur()) {
                 Color backgroundColor = Color.valueOf(
-                        SurfaceEffectColors.surfaceEffect0(getResources()));
+                        SurfaceEffectColors.surfaceEffect1(getResources()));
                 scHigh = ColorUtils.setAlphaComponent(backgroundColor.toArgb(), 0xFF);
                 // Apply alpha on background drawables.
                 int backgroundAlpha = (int) (backgroundColor.alpha() * 0xFF);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt
index de113d3..ccc2dff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt
@@ -49,7 +49,7 @@
 ) : Dumpable {
 
     private val tag = "AvalancheController"
-    private val debug = Compile.IS_DEBUG
+    private val debug = Compile.IS_DEBUG && Log.isLoggable(tag, Log.DEBUG)
     var baseEntryMapStr: () -> String = { "baseEntryMapStr not initialized" }
 
     var enableAtRuntime = true
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt
index 31375cc..c512b43 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt
@@ -222,10 +222,6 @@
                 return@traceSection
             }
 
-            if (StatusBarConnectedDisplays.isEnabled) {
-                onIconUpdateRequiredListeners.onEach { it.onIconUpdateRequired(entry) }
-            }
-
             if (usingCache && !Flags.notificationsBackgroundIcons()) {
                 Log.wtf(
                     TAG,
@@ -238,6 +234,10 @@
                 entry.icons.peopleAvatarDescriptor = null
             }
 
+            if (StatusBarConnectedDisplays.isEnabled) {
+                onIconUpdateRequiredListeners.onEach { it.onIconUpdateRequired(entry) }
+            }
+
             val (normalIconDescriptor, sensitiveIconDescriptor) = getIconDescriptors(entry)
             val notificationContentDescription =
                 entry.sbn.notification?.let { iconBuilder.getIconContentDescription(it) }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/AvalancheProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/AvalancheProvider.kt
index a8fd082..4953e64 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/AvalancheProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/AvalancheProvider.kt
@@ -33,7 +33,6 @@
 @Inject
 constructor(
     private val broadcastDispatcher: BroadcastDispatcher,
-    private val logger: VisualInterruptionDecisionLogger,
     private val uiEventLogger: UiEventLogger,
 ) {
     val TAG = "AvalancheProvider"
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/CommonVisualInterruptionSuppressors.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/CommonVisualInterruptionSuppressors.kt
index caa6ccf..d237bbf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/CommonVisualInterruptionSuppressors.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/CommonVisualInterruptionSuppressors.kt
@@ -280,7 +280,6 @@
     private val uiEventLogger: UiEventLogger,
     private val context: Context,
     private val notificationManager: NotificationManager,
-    private val logger: VisualInterruptionDecisionLogger,
     private val systemSettings: SystemSettings,
 ) : VisualInterruptionFilter(types = setOf(PEEK, PULSE), reason = "avalanche") {
     val TAG = "AvalancheSuppressor"
@@ -358,18 +357,15 @@
 
     override fun shouldSuppress(entry: NotificationEntry): Boolean {
         if (!isCooldownEnabled()) {
-            logger.logAvalancheAllow("cooldown OFF")
             return false
         }
         val timeSinceAvalancheMs = systemClock.currentTimeMillis() - avalancheProvider.startTime
         val timedOut = timeSinceAvalancheMs >= avalancheProvider.timeoutMs
         if (timedOut) {
-            logger.logAvalancheAllow("timedOut! timeSinceAvalancheMs=$timeSinceAvalancheMs")
             return false
         }
         val state = calculateState(entry)
         if (state != State.SUPPRESS) {
-            logger.logAvalancheAllow("state=$state")
             return false
         }
         if (shouldShowEdu()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionLogger.kt
index 38cab82..1f76d5d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionLogger.kt
@@ -94,15 +94,6 @@
         )
     }
 
-    fun logAvalancheAllow(info: String) {
-        buffer.log(
-            TAG,
-            INFO,
-            { str1 = info },
-            { "AvalancheSuppressor: $str1" }
-        )
-    }
-
     fun logCooldownSetting(isEnabled: Boolean) {
         buffer.log(
             TAG,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImpl.kt
index b831b94..8240a0a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImpl.kt
@@ -196,7 +196,6 @@
                     uiEventLogger,
                     context,
                     notificationManager,
-                    logger,
                     systemSettings,
                 )
             )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryViewWalker.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryViewWalker.kt
index 6491223..f9e9bee 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryViewWalker.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationMemoryViewWalker.kt
@@ -12,7 +12,7 @@
 import com.android.systemui.util.children
 
 /** Walks view hiearchy of a given notification to estimate its memory use. */
-internal object NotificationMemoryViewWalker {
+object NotificationMemoryViewWalker {
 
     private const val TAG = "NotificationMemory"
 
@@ -26,9 +26,13 @@
         private var softwareBitmaps = 0
 
         fun addSmallIcon(smallIconUse: Int) = apply { smallIcon += smallIconUse }
+
         fun addLargeIcon(largeIconUse: Int) = apply { largeIcon += largeIconUse }
+
         fun addSystem(systemIconUse: Int) = apply { systemIcons += systemIconUse }
+
         fun addStyle(styleUse: Int) = apply { style += styleUse }
+
         fun addSoftwareBitmapPenalty(softwareBitmapUse: Int) = apply {
             softwareBitmaps += softwareBitmapUse
         }
@@ -67,14 +71,14 @@
                     getViewUsage(ViewType.PRIVATE_EXPANDED_VIEW, row.privateLayout?.expandedChild),
                     getViewUsage(
                         ViewType.PRIVATE_CONTRACTED_VIEW,
-                        row.privateLayout?.contractedChild
+                        row.privateLayout?.contractedChild,
                     ),
                     getViewUsage(ViewType.PRIVATE_HEADS_UP_VIEW, row.privateLayout?.headsUpChild),
                     getViewUsage(
                         ViewType.PUBLIC_VIEW,
                         row.publicLayout?.expandedChild,
                         row.publicLayout?.contractedChild,
-                        row.publicLayout?.headsUpChild
+                        row.publicLayout?.headsUpChild,
                     ),
                 )
                 .filterNotNull()
@@ -107,14 +111,14 @@
             row.publicLayout?.expandedChild,
             row.publicLayout?.contractedChild,
             row.publicLayout?.headsUpChild,
-            seenObjects = seenObjects
+            seenObjects = seenObjects,
         )
     }
 
     private fun getViewUsage(
         type: ViewType,
         vararg rootViews: View?,
-        seenObjects: HashSet<Int> = hashSetOf()
+        seenObjects: HashSet<Int> = hashSetOf(),
     ): NotificationViewUsage? {
         val usageBuilder = lazy { UsageBuilder() }
         rootViews.forEach { rootView ->
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt
index dc74c9f..e5d2361 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt
@@ -23,6 +23,7 @@
 import android.view.View
 import android.view.View.GONE
 import android.view.View.VISIBLE
+import android.view.ViewGroup.MarginLayoutParams
 import android.view.ViewStub
 import android.widget.Chronometer
 import android.widget.DateTimeView
@@ -38,7 +39,6 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.key
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.graphics.SolidColor
 import androidx.compose.ui.res.dimensionResource
 import androidx.compose.ui.unit.dp
@@ -66,7 +66,10 @@
 import com.android.systemui.statusbar.notification.row.shared.isNullOrEmpty
 
 @Composable
-fun AODPromotedNotification(viewModelFactory: AODPromotedNotificationViewModel.Factory) {
+fun AODPromotedNotification(
+    viewModelFactory: AODPromotedNotificationViewModel.Factory,
+    modifier: Modifier = Modifier,
+) {
     if (!PromotedNotificationUiAod.isEnabled) {
         return
     }
@@ -79,17 +82,15 @@
     key(content.identity) {
         val layoutResource = content.layoutResource ?: return
 
-        val topPadding = dimensionResource(systemuiR.dimen.below_clock_padding_start_icons)
         val sidePaddings = dimensionResource(systemuiR.dimen.notification_side_paddings)
-        val paddingValues =
-            PaddingValues(top = topPadding, start = sidePaddings, end = sidePaddings, bottom = 0.dp)
+        val sidePaddingValues = PaddingValues(horizontal = sidePaddings, vertical = 0.dp)
 
         val borderStroke = BorderStroke(1.dp, SecondaryText.brush)
 
         val borderRadius = dimensionResource(systemuiR.dimen.notification_corner_radius)
         val borderShape = RoundedCornerShape(borderRadius)
 
-        Box(modifier = Modifier.padding(paddingValues)) {
+        Box(modifier = modifier.padding(sidePaddingValues)) {
             AODPromotedNotificationView(
                 layoutResource = layoutResource,
                 content = content,
@@ -163,8 +164,8 @@
     private var chronometerStub: ViewStub? = root.findViewById(R.id.chronometer)
     private var chronometer: Chronometer? = null
     private val closeButton: View? = root.findViewById(R.id.close_button)
-    private val conversationIconContainer: View? =
-        root.findViewById(R.id.conversation_icon_container)
+    private val conversationIconBadge: View? = root.findViewById(R.id.conversation_icon_badge)
+    private val conversationIcon: CachingIconView? = root.findViewById(R.id.conversation_icon)
     private val conversationText: TextView? = root.findViewById(R.id.conversation_text)
     private val expandButton: NotificationExpandButton? = root.findViewById(R.id.expand_button)
     private val headerText: TextView? = root.findViewById(R.id.header_text)
@@ -174,12 +175,13 @@
         root.findViewById(R.id.header_text_secondary_divider)
     private val icon: NotificationRowIconView? = root.findViewById(R.id.icon)
     private val leftIcon: ImageView? = root.findViewById(R.id.left_icon)
-    private val rightIcon: ImageView? = root.findViewById(R.id.right_icon)
+    private val mainColumn: View? = root.findViewById(R.id.notification_main_column)
     private val notificationProgressEndIcon: CachingIconView? =
         root.findViewById(R.id.notification_progress_end_icon)
     private val notificationProgressStartIcon: CachingIconView? =
         root.findViewById(R.id.notification_progress_start_icon)
     private val profileBadge: ImageView? = root.findViewById(R.id.profile_badge)
+    private val rightIcon: ImageView? = root.findViewById(R.id.right_icon)
     private val text: ImageFloatingTextView? = root.findViewById(R.id.text)
     private val time: DateTimeView? = root.findViewById(R.id.time)
     private val timeDivider: View? = root.findViewById(R.id.time_divider)
@@ -197,7 +199,7 @@
         alternateExpandTarget?.visibility = GONE
         bigPicture?.visibility = GONE
         closeButton?.visibility = GONE
-        conversationIconContainer?.visibility = GONE
+        conversationIconBadge?.visibility = GONE
         expandButton?.visibility = GONE
         leftIcon?.visibility = GONE
         notificationProgressEndIcon?.visibility = GONE
@@ -208,6 +210,16 @@
             ?.drawable
             ?.mutate()
             ?.setColorFilter(SecondaryText.colorInt, PorterDuff.Mode.SRC_IN)
+
+        if (Flags.notificationsRedesignTemplates()) {
+            (mainColumn?.layoutParams as? MarginLayoutParams)?.let { mainColumnMargins ->
+                mainColumnMargins.topMargin =
+                    Notification.Builder.getContentMarginTop(
+                        root.context,
+                        R.dimen.notification_2025_content_margin_top,
+                    )
+            }
+        }
     }
 
     fun update(content: PromotedNotificationContentModel, audiblyAlertedIconVisible: Boolean) {
@@ -228,16 +240,11 @@
         textView: ImageFloatingTextView? = null,
         showOldProgress: Boolean = true,
     ) {
-        // Icon binding must be called in this order
-        updateImageView(icon, content.smallIcon)
-        icon?.setImageLevel(content.iconLevel)
-        icon?.setBackgroundColor(Background.colorInt)
-        icon?.originalIconColor = PrimaryText.colorInt
-
         updateHeader(content, hideTitle = true)
 
         updateTitle(title, content)
         updateText(textView ?: text, content)
+        updateSmallIcon(icon, content)
         updateImageView(rightIcon, content.skeletonLargeIcon)
 
         if (showOldProgress) {
@@ -340,6 +347,8 @@
 
         updateImageView(verificationIcon, content.verificationIcon)
         updateTextView(verificationText, content.verificationText)
+
+        updateSmallIcon(conversationIcon, content)
     }
 
     private fun updateConversationHeaderDividers(
@@ -397,6 +406,19 @@
         }
     }
 
+    private fun updateSmallIcon(
+        smallIconView: CachingIconView?,
+        content: PromotedNotificationContentModel,
+    ) {
+        smallIconView ?: return
+
+        // Icon binding must be called in this order
+        updateImageView(smallIconView, content.smallIcon)
+        smallIconView.setImageLevel(content.iconLevel)
+        smallIconView.setBackgroundColor(Background.colorInt)
+        smallIconView.originalIconColor = PrimaryText.colorInt
+    }
+
     private fun inflateChronometer() {
         if (chronometer != null) {
             return
@@ -479,14 +501,12 @@
     }
 }
 
-private enum class AodPromotedNotificationColor(colorUInt: UInt) {
-    Background(0xFF000000u),
-    PrimaryText(0xFFFFFFFFu),
-    SecondaryText(0xFFCCCCCCu);
+private enum class AodPromotedNotificationColor(val colorInt: Int) {
+    Background(android.graphics.Color.BLACK),
+    PrimaryText(android.graphics.Color.WHITE),
+    SecondaryText(android.graphics.Color.WHITE);
 
-    val colorInt = colorUInt.toInt()
-    val color = Color(colorInt)
-    val brush = SolidColor(color)
+    val brush = SolidColor(androidx.compose.ui.graphics.Color(colorInt))
 }
 
 private val viewUpdaterTagId = systemuiR.id.aod_promoted_notification_view_updater_tag
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractor.kt
index 0f21514..e1317ef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractor.kt
@@ -19,6 +19,7 @@
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor
 import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
+import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel.Style
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.map
@@ -31,4 +32,6 @@
         activeNotificationsInteractor.topLevelRepresentativeNotifications.map { notifs ->
             notifs.firstNotNullOfOrNull { it.promotedContent }
         }
+
+    val isPresent: Flow<Boolean> = content.map { (it != null) && (it.style != Style.Ineligible) }
 }
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 053b4f5..9bf0768 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
@@ -47,6 +47,7 @@
 import android.os.SystemProperties;
 import android.os.Trace;
 import android.os.UserHandle;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.FloatProperty;
 import android.util.IndentingPrintWriter;
@@ -81,6 +82,8 @@
 import com.android.internal.util.ContrastColorUtil;
 import com.android.internal.widget.CachingIconView;
 import com.android.internal.widget.CallLayout;
+import com.android.internal.widget.ConversationLayout;
+import com.android.internal.widget.MessagingLayout;
 import com.android.systemui.Flags;
 import com.android.systemui.flags.RefactorFlag;
 import com.android.systemui.plugins.FalsingManager;
@@ -97,6 +100,7 @@
 import com.android.systemui.statusbar.notification.ColorUpdateLogger;
 import com.android.systemui.statusbar.notification.FeedbackIcon;
 import com.android.systemui.statusbar.notification.LaunchAnimationParameters;
+import com.android.systemui.statusbar.notification.NmSummarizationUiFlag;
 import com.android.systemui.statusbar.notification.NotificationFadeAware;
 import com.android.systemui.statusbar.notification.NotificationTransitionAnimatorController;
 import com.android.systemui.statusbar.notification.NotificationUtils;
@@ -205,6 +209,7 @@
     private int mMaxSmallHeightBeforeN;
     private int mMaxSmallHeightBeforeP;
     private int mMaxSmallHeightBeforeS;
+    private int mMaxSmallHeightWithSummarization;
     private int mMaxSmallHeight;
     private int mMaxExpandedHeight;
     private int mMaxExpandedHeightForPromotedOngoing;
@@ -856,6 +861,8 @@
         int smallHeight;
 
         boolean isCallLayout = contractedView instanceof CallLayout;
+        boolean isMessagingLayout = contractedView instanceof MessagingLayout
+                || contractedView instanceof ConversationLayout;
 
         if (customView && beforeS && !mIsSummaryWithChildren) {
             if (beforeN) {
@@ -867,6 +874,10 @@
             }
         } else if (isCallLayout) {
             smallHeight = maxExpandedHeight;
+        } else if (NmSummarizationUiFlag.isEnabled()
+                && isMessagingLayout
+                && !TextUtils.isEmpty(mEntry.getRanking().getSummarization())) {
+            smallHeight = mMaxSmallHeightWithSummarization;
         } else {
             smallHeight = mMaxSmallHeight;
         }
@@ -2111,6 +2122,8 @@
             mMaxSmallHeight = NotificationUtils.getFontScaledHeight(mContext,
                     R.dimen.notification_min_height);
         }
+        mMaxSmallHeightWithSummarization = NotificationUtils.getFontScaledHeight(mContext,
+                com.android.internal.R.dimen.notification_collapsed_height_with_summarization);
         mMaxExpandedHeight = NotificationUtils.getFontScaledHeight(mContext,
                 R.dimen.notification_max_height);
         mMaxExpandedHeightForPromotedOngoing = NotificationUtils.getFontScaledHeight(mContext,
@@ -2947,6 +2960,11 @@
             if (isAboveShelf() != wasAboveShelf) {
                 mAboveShelfChangedListener.onAboveShelfStateChanged(!wasAboveShelf);
             }
+            if (SceneContainerFlag.isEnabled()) {
+                if (mIsSummaryWithChildren) {
+                    mChildrenContainer.setOnKeyguard(onKeyguard);
+                }
+            }
         }
     }
 
@@ -4109,7 +4127,7 @@
             pw.print(", alpha: " + getAlpha());
             pw.print(", translation: " + getTranslation());
             pw.print(", entry dismissable: " + canEntryBeDismissed());
-            pw.print(", mOnUserInteractionCallback null: " + (mOnUserInteractionCallback == null));
+            pw.print(", mOnUserInteractionCallback==null: " + (mOnUserInteractionCallback == null));
             pw.print(", removed: " + isRemoved());
             pw.print(", expandAnimationRunning: " + mExpandAnimationRunning);
             pw.print(", mShowingPublic: " + mShowingPublic);
@@ -4122,9 +4140,17 @@
             pw.print(", clipBounds: " + getClipBounds());
             if (PromotedNotificationUiForceExpanded.isEnabled()) {
                 pw.print(", isPromotedOngoing: " + isPromotedOngoing());
-                pw.print(", isExpandable: " + isExpandable());
-                pw.print(", mExpandable: " + mExpandable);
             }
+            pw.print(", isExpandable: " + isExpandable());
+            pw.print(", mExpandable: " + mExpandable);
+            pw.print(", isUserExpanded: " + isUserExpanded());
+            pw.print(", hasUserChangedExpansion: " + mHasUserChangedExpansion);
+            pw.print(", isOnKeyguard: " + isOnKeyguard());
+            pw.print(", isSummaryWithChildren: " + mIsSummaryWithChildren);
+            pw.print(", enableNonGroupedExpand: " + mEnableNonGroupedNotificationExpand);
+            pw.print(", isPinned: " + isPinned());
+            pw.print(", expandedWhenPinned: " + mExpandedWhenPinned);
+            pw.print(", isMinimized: " + mIsMinimized);
 
             pw.println();
             if (NotificationContentView.INCLUDE_HEIGHTS_TO_DUMP) {
@@ -4153,30 +4179,38 @@
                 pw.println("Children Container Intrinsic Height: "
                         + mChildrenContainer.getIntrinsicHeight());
                 pw.println();
-                List<ExpandableNotificationRow> notificationChildren = getAttachedChildren();
-                pw.print("Children: " + notificationChildren.size() + " {");
-                pw.increaseIndent();
-                for (ExpandableNotificationRow child : notificationChildren) {
-                    pw.println();
-                    child.dump(pw, args);
-                }
-                pw.decreaseIndent();
-                pw.println("}");
-                pw.print("Transient Views: " + transientViewCount + " {");
-                pw.increaseIndent();
-                for (int i = 0; i < transientViewCount; i++) {
-                    pw.println();
-                    ExpandableView child = (ExpandableView) mChildrenContainer.getTransientView(i);
-                    child.dump(pw, args);
-                }
-                pw.decreaseIndent();
-                pw.println("}");
+                dumpChildren(pw, args);
+                dumpTransientViews(transientViewCount, pw, args);
             } else if (mPrivateLayout != null) {
                 mPrivateLayout.dumpSmartReplies(pw);
             }
         });
     }
 
+    private void dumpChildren(IndentingPrintWriter pw, String[] args) {
+        List<ExpandableNotificationRow> notificationChildren = getAttachedChildren();
+        pw.print("Children: " + notificationChildren.size() + " {");
+        DumpUtilsKt.withIncreasedIndent(pw, () -> {
+            for (ExpandableNotificationRow child : notificationChildren) {
+                pw.println();
+                child.dump(pw, args);
+            }
+        });
+        pw.println("}");
+    }
+
+    private void dumpTransientViews(int transientCount, IndentingPrintWriter pw, String[] args) {
+        pw.print("Transient Views: " + transientCount + " {");
+        DumpUtilsKt.withIncreasedIndent(pw, () -> {
+            for (int i = 0; i < transientCount; i++) {
+                pw.println();
+                ExpandableView child = (ExpandableView) mChildrenContainer.getTransientView(i);
+                child.dump(pw, args);
+            }
+        });
+        pw.println("}");
+    }
+
     private void dumpHeights(IndentingPrintWriter pw) {
         pw.print("Heights: ");
         pw.print("intrinsic", getIntrinsicHeight());
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 76ba7f9..2bc4874 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
@@ -106,7 +106,7 @@
         @Override
         public void triggerMagneticForce(float endTranslation, @NonNull SpringForce springForce,
                 float startVelocity) {
-            cancelMagneticAnimations();
+            cancelTranslationAnimations();
             mMagneticAnimator.setSpring(springForce);
             mMagneticAnimator.setStartVelocity(startVelocity);
             mMagneticAnimator.animateToFinalPosition(endTranslation);
@@ -114,11 +114,15 @@
 
         @Override
         public void cancelMagneticAnimations() {
-            cancelTranslationAnimations();
             mMagneticAnimator.cancel();
         }
 
         @Override
+        public void cancelTranslationAnimations() {
+            ExpandableView.this.cancelTranslationAnimations();
+        }
+
+        @Override
         public boolean canRowBeDismissed() {
             return canExpandableViewBeDismissed();
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridConversationNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridConversationNotificationView.java
index 92c10ab..344d0f6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridConversationNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridConversationNotificationView.java
@@ -289,7 +289,7 @@
             CharSequence titleText,
             CharSequence contentText,
             CharSequence conversationSenderName,
-            @Nullable String summarization
+            @Nullable CharSequence summarization
     ) {
         if (AsyncHybridViewInflation.isUnexpectedlyInLegacyMode()) return;
         if (summarization != null) {
@@ -304,9 +304,8 @@
                 mConversationSenderName.setText(conversationSenderName);
             }
         }
-        // TODO (b/217799515): super.bind() doesn't use contentView, remove the contentView
-        //  argument when the flag is removed
-        super.bind(/* title = */ titleText, /* text = */ contentText, /* contentView = */ null);
+        super.bind(/* title = */ titleText, /* text = */ contentText,
+                /* stripSpans = */ TextUtils.isEmpty(summarization));
     }
 
     private static void setSize(View view, int size) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridNotificationView.java
index 5c4c253..02dc805 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridNotificationView.java
@@ -121,6 +121,11 @@
 
     public void bind(@Nullable CharSequence title, @Nullable CharSequence text,
             @Nullable View contentView) {
+        bind(/* title = */ title, /* text = */ text, /* stripSpans */ true);
+    }
+
+    public void bind(@Nullable CharSequence title, @Nullable CharSequence text,
+            boolean stripSpans) {
         mTitleView.setText(title != null ? title.toString() : title);
         mTitleView.setVisibility(TextUtils.isEmpty(title) ? GONE : VISIBLE);
         if (TextUtils.isEmpty(text)) {
@@ -128,7 +133,11 @@
             mTextView.setText(null);
         } else {
             mTextView.setVisibility(VISIBLE);
-            mTextView.setText(text.toString());
+            if (stripSpans) {
+                mTextView.setText(text.toString());
+            } else {
+                mTextView.setText(text);
+            }
         }
         requestLayout();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
index c7e15fd..e311b53 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
@@ -55,6 +55,7 @@
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
 import com.android.systemui.statusbar.notification.InflationException;
+import com.android.systemui.statusbar.notification.NmSummarizationUiFlag;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.promoted.PromotedNotificationContentExtractor;
 import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUiForceExpanded;
@@ -201,13 +202,13 @@
                 mNotifLayoutInflaterFactoryProvider,
                 mHeadsUpStyleProvider,
                 mLogger);
-
         result = inflateSmartReplyViews(result, reInflateFlags, entry, row.getContext(),
                 packageContext, row.getExistingSmartReplyState(), smartRepliesInflater, mLogger);
         boolean isConversation = entry.getRanking().isConversation();
         Notification.MessagingStyle messagingStyle = null;
-        if (isConversation && (AsyncHybridViewInflation.isEnabled()
-                || LockscreenOtpRedaction.isSingleLineViewEnabled())) {
+        if (NmSummarizationUiFlag.isEnabled()
+                || (isConversation && (AsyncHybridViewInflation.isEnabled()
+                || LockscreenOtpRedaction.isSingleLineViewEnabled()))) {
             messagingStyle = mConversationProcessor
                     .processNotification(entry, builder, mLogger);
         }
@@ -901,6 +902,13 @@
         if (!satisfiesMinHeightRequirement(view, entry, resources)) {
             return "inflated notification does not meet minimum height requirement";
         }
+
+        if (NotificationCustomContentMemoryVerifier.requiresImageViewMemorySizeCheck(entry)) {
+            if (!NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(view, entry)) {
+                return "inflated notification does not meet maximum memory size requirement";
+            }
+        }
+
         return null;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentCompat.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentCompat.java
new file mode 100644
index 0000000..c55cb67
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
+import android.os.Build;
+
+/**
+ * Holds compat {@link ChangeId} for {@link NotificationCustomContentMemoryVerifier}.
+ */
+final class NotificationCustomContentCompat {
+    /**
+     * Enables memory size checking of custom views included in notifications to ensure that
+     * they conform to the size limit set in `config_notificationStripRemoteViewSizeBytes`
+     * config.xml parameter.
+     * Notifications exceeding the size will be rejected.
+     */
+    @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.BAKLAVA)
+    public static final long CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS = 270553691L;
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifier.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifier.kt
new file mode 100644
index 0000000..a3e6a5c
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifier.kt
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row
+
+import android.app.compat.CompatChanges
+import android.content.Context
+import android.graphics.drawable.AdaptiveIconDrawable
+import android.graphics.drawable.BitmapDrawable
+import android.graphics.drawable.Drawable
+import android.os.Build
+import android.util.Log
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.annotation.VisibleForTesting
+import com.android.app.tracing.traceSection
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+
+/** Checks whether Notifications with Custom content views conform to configured memory limits. */
+object NotificationCustomContentMemoryVerifier {
+
+    private const val NOTIFICATION_SERVICE_TAG = "NotificationService"
+
+    /** Notifications with custom views need to conform to maximum memory consumption. */
+    @JvmStatic
+    fun requiresImageViewMemorySizeCheck(entry: NotificationEntry): Boolean {
+        if (!com.android.server.notification.Flags.notificationCustomViewUriRestriction()) {
+            return false
+        }
+
+        return entry.containsCustomViews()
+    }
+
+    /**
+     * This walks the custom view hierarchy contained in the passed Notification view and determines
+     * if the total memory consumption of all image views satisfies the limit set by
+     * [getStripViewSizeLimit]. It will also log to logcat if the limit exceeds
+     * [getWarnViewSizeLimit].
+     *
+     * @return true if the Notification conforms to the view size limits.
+     */
+    @JvmStatic
+    fun satisfiesMemoryLimits(view: View, entry: NotificationEntry): Boolean {
+        val mainColumnView =
+            view.findViewById<View>(com.android.internal.R.id.notification_main_column)
+        if (mainColumnView == null) {
+            Log.wtf(
+                NOTIFICATION_SERVICE_TAG,
+                "R.id.notification_main_column view should not be null!",
+            )
+            return true
+        }
+
+        val memorySize =
+            traceSection("computeViewHiearchyImageViewSize") {
+                computeViewHierarchyImageViewSize(view)
+            }
+
+        if (memorySize > getStripViewSizeLimit(view.context)) {
+            val stripOversizedView = isCompatChangeEnabledForUid(entry.sbn.uid)
+            if (stripOversizedView) {
+                Log.w(
+                    NOTIFICATION_SERVICE_TAG,
+                    "Dropped notification due to too large RemoteViews ($memorySize bytes) on " +
+                        "pkg: ${entry.sbn.packageName} tag: ${entry.sbn.tag} id: ${entry.sbn.id}",
+                )
+            } else {
+                Log.w(
+                    NOTIFICATION_SERVICE_TAG,
+                    "RemoteViews too large on pkg: ${entry.sbn.packageName} " +
+                        "tag: ${entry.sbn.tag} id: ${entry.sbn.id} " +
+                        "this WILL notification WILL be dropped when targetSdk " +
+                        "is set to ${Build.VERSION_CODES.BAKLAVA}!",
+                )
+            }
+
+            // We still warn for size, but return "satisfies = ok" if the target SDK
+            // is too low.
+            return !stripOversizedView
+        }
+
+        if (memorySize > getWarnViewSizeLimit(view.context)) {
+            // We emit the same warning as NotificationManagerService does to keep some consistency
+            // for developers.
+            Log.w(
+                NOTIFICATION_SERVICE_TAG,
+                "RemoteViews too large on pkg: ${entry.sbn.packageName} " +
+                    "tag: ${entry.sbn.tag} id: ${entry.sbn.id} " +
+                    "this notifications might be dropped in a future release",
+            )
+        }
+        return true
+    }
+
+    private fun isCompatChangeEnabledForUid(uid: Int): Boolean =
+        try {
+            CompatChanges.isChangeEnabled(
+                NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS,
+                uid,
+            )
+        } catch (e: RuntimeException) {
+            Log.wtf(NOTIFICATION_SERVICE_TAG, "Failed to contact system_server for compat change.")
+            false
+        }
+
+    @VisibleForTesting
+    @JvmStatic
+    fun computeViewHierarchyImageViewSize(view: View): Int =
+        when (view) {
+            is ViewGroup -> {
+                var use = 0
+                for (i in 0 until view.childCount) {
+                    use += computeViewHierarchyImageViewSize(view.getChildAt(i))
+                }
+                use
+            }
+            is ImageView -> computeImageViewSize(view)
+            else -> 0
+        }
+
+    /**
+     * Returns the memory size of a Bitmap contained in a passed [ImageView] in bytes. If the view
+     * contains any other kind of drawable, the memory size is estimated from its intrinsic
+     * dimensions.
+     *
+     * @return Bitmap size in bytes or 0 if no drawable is set.
+     */
+    private fun computeImageViewSize(view: ImageView): Int {
+        val drawable = view.drawable
+        return computeDrawableSize(drawable)
+    }
+
+    private fun computeDrawableSize(drawable: Drawable?): Int {
+        return when (drawable) {
+            null -> 0
+            is AdaptiveIconDrawable ->
+                computeDrawableSize(drawable.foreground) +
+                    computeDrawableSize(drawable.background) +
+                    computeDrawableSize(drawable.monochrome)
+            is BitmapDrawable -> drawable.bitmap.allocationByteCount
+            // People can sneak large drawables into those custom memory views via resources -
+            // we use the intrisic size as a proxy for how much memory rendering those will
+            // take.
+            else -> drawable.intrinsicWidth * drawable.intrinsicHeight * 4
+        }
+    }
+
+    /** @return Size of remote views after which a size warning is logged. */
+    @VisibleForTesting
+    fun getWarnViewSizeLimit(context: Context): Int =
+        context.resources.getInteger(
+            com.android.internal.R.integer.config_notificationWarnRemoteViewSizeBytes
+        )
+
+    /** @return Size of remote views after which the notification is dropped. */
+    @VisibleForTesting
+    fun getStripViewSizeLimit(context: Context): Int =
+        context.resources.getInteger(
+            com.android.internal.R.integer.config_notificationStripRemoteViewSizeBytes
+        )
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
index bea14b2..49b682d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
@@ -83,20 +83,6 @@
     private static final String TAG = "InfoGuts";
     private int mActualHeight;
 
-    @IntDef(prefix = { "ACTION_" }, value = {
-            ACTION_NONE,
-            ACTION_TOGGLE_ALERT,
-            ACTION_TOGGLE_SILENT,
-    })
-    public @interface NotificationInfoAction {
-    }
-
-    public static final int ACTION_NONE = 0;
-    // standard controls
-    static final int ACTION_TOGGLE_SILENT = 2;
-    // standard controls
-    private static final int ACTION_TOGGLE_ALERT = 5;
-
     private TextView mPriorityDescriptionView;
     private TextView mSilentDescriptionView;
     private TextView mAutomaticDescriptionView;
@@ -123,7 +109,8 @@
      * The last importance level chosen by the user.  Null if the user has not chosen an importance
      * level; non-null once the user takes an action which indicates an explicit preference.
      */
-    @Nullable private Integer mChosenImportance;
+    @Nullable
+    private Integer mChosenImportance;
     private boolean mIsAutomaticChosen;
     private boolean mIsSingleDefaultChannel;
     private boolean mIsNonblockable;
@@ -143,27 +130,27 @@
     boolean mSkipPost = false;
 
     // used by standard ui
-    private OnClickListener mOnAutomatic = v -> {
+    private final OnClickListener mOnAutomatic = v -> {
         mIsAutomaticChosen = true;
         applyAlertingBehavior(BEHAVIOR_AUTOMATIC, true /* userTriggered */);
     };
 
     // used by standard ui
-    private OnClickListener mOnAlert = v -> {
+    private final OnClickListener mOnAlert = v -> {
         mChosenImportance = IMPORTANCE_DEFAULT;
         mIsAutomaticChosen = false;
         applyAlertingBehavior(BEHAVIOR_ALERTING, true /* userTriggered */);
     };
 
     // used by standard ui
-    private OnClickListener mOnSilent = v -> {
+    private final OnClickListener mOnSilent = v -> {
         mChosenImportance = IMPORTANCE_LOW;
         mIsAutomaticChosen = false;
         applyAlertingBehavior(BEHAVIOR_SILENT, true /* userTriggered */);
     };
 
     // used by standard ui
-    private OnClickListener mOnDismissSettings = v -> {
+    private final OnClickListener mOnDismissSettings = v -> {
         mPressedApply = true;
         mGutsContainer.closeControls(v, /* save= */ true);
     };
@@ -181,13 +168,6 @@
         mAutomaticDescriptionView = findViewById(R.id.automatic_summary);
     }
 
-    // Specify a CheckSaveListener to override when/if the user's changes are committed.
-    public interface CheckSaveListener {
-        // Invoked when importance has changed and the NotificationInfo wants to try to save it.
-        // Listener should run saveImportance unless the change should be canceled.
-        void checkSave(Runnable saveImportance, StatusBarNotification sbn);
-    }
-
     public interface OnSettingsClickListener {
         void onClick(View v, NotificationChannel channel, int appUid);
     }
@@ -216,7 +196,8 @@
             boolean isNonblockable,
             boolean wasShownHighPriority,
             AssistantFeedbackController assistantFeedbackController,
-            MetricsLogger metricsLogger, OnClickListener onCloseClick)
+            MetricsLogger metricsLogger,
+            OnClickListener onCloseClick)
             throws RemoteException {
         mINotificationManager = iNotificationManager;
         mMetricsLogger = metricsLogger;
@@ -623,7 +604,7 @@
                 intent,
                 PackageManager.MATCH_DEFAULT_ONLY
         );
-        if (resolveInfos == null || resolveInfos.size() == 0 || resolveInfos.get(0) == null) {
+        if (resolveInfos == null || resolveInfos.isEmpty() || resolveInfos.get(0) == null) {
             return null;
         }
         final ActivityInfo activityInfo = resolveInfos.get(0).activityInfo;
@@ -758,6 +739,7 @@
     /**
      * Returns a LogMaker with all available notification information.
      * Caller should set category, type, and maybe subtype, before passing it to mMetricsLogger.
+     *
      * @return LogMaker
      */
     private LogMaker getLogMaker() {
@@ -769,10 +751,11 @@
     /**
      * Returns an initialized LogMaker for logging importance changes.
      * The caller may override the type before passing it to mMetricsLogger.
+     *
      * @return LogMaker
      */
     private LogMaker importanceChangeLogMaker() {
-        Integer chosenImportance =
+        int chosenImportance =
                 mChosenImportance != null ? mChosenImportance : mStartingChannelImportance;
         return getLogMaker().setCategory(MetricsEvent.ACTION_SAVE_IMPORTANCE)
                 .setType(MetricsEvent.TYPE_ACTION)
@@ -782,6 +765,7 @@
     /**
      * Returns an initialized LogMaker for logging open/close of the info display.
      * The caller may override the type before passing it to mMetricsLogger.
+     *
      * @return LogMaker
      */
     private LogMaker notificationControlsLogMaker() {
@@ -799,7 +783,9 @@
 
     @Retention(SOURCE)
     @IntDef({BEHAVIOR_ALERTING, BEHAVIOR_SILENT, BEHAVIOR_AUTOMATIC})
-    private @interface AlertingBehavior {}
+    private @interface AlertingBehavior {
+    }
+
     private static final int BEHAVIOR_ALERTING = 0;
     private static final int BEHAVIOR_SILENT = 1;
     private static final int BEHAVIOR_AUTOMATIC = 2;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt
index bc3653a..517fc3a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt
@@ -17,6 +17,7 @@
 
 import android.annotation.SuppressLint
 import android.app.Notification
+import android.app.Notification.EXTRA_SUMMARIZED_CONTENT
 import android.app.Notification.MessagingStyle
 import android.content.Context
 import android.content.ContextWrapper
@@ -47,6 +48,7 @@
 import com.android.systemui.statusbar.NotificationRemoteInputManager
 import com.android.systemui.statusbar.notification.ConversationNotificationProcessor
 import com.android.systemui.statusbar.notification.InflationException
+import com.android.systemui.statusbar.notification.NmSummarizationUiFlag
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.promoted.PromotedNotificationContentExtractor
 import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
@@ -699,7 +701,7 @@
 
             // process conversations and extract the messaging style
             val messagingStyle =
-                if (entry.ranking.isConversation) {
+                if (NmSummarizationUiFlag.isEnabled || entry.ranking.isConversation) {
                     conversationProcessor.processNotification(entry, builder, logger)
                 } else null
 
@@ -729,7 +731,8 @@
                         builder = builder,
                         systemUiContext = systemUiContext,
                         redactText = false,
-                        summarization = entry.ranking.summarization,
+                        summarization =
+                            entry.sbn.notification.extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT),
                     )
                 } else null
 
@@ -1393,9 +1396,17 @@
          */
         @VisibleForTesting
         fun isValidView(view: View, entry: NotificationEntry, resources: Resources): String? {
-            return if (!satisfiesMinHeightRequirement(view, entry, resources)) {
-                "inflated notification does not meet minimum height requirement"
-            } else null
+            if (!satisfiesMinHeightRequirement(view, entry, resources)) {
+                return "inflated notification does not meet minimum height requirement"
+            }
+
+            if (NotificationCustomContentMemoryVerifier.requiresImageViewMemorySizeCheck(entry)) {
+                if (!NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(view, entry)) {
+                    return "inflated notification does not meet maximum memory size requirement"
+                }
+            }
+
+            return null
         }
 
         private fun satisfiesMinHeightRequirement(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt
index c051513..b3c8f22 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt
@@ -61,7 +61,7 @@
         builder: Notification.Builder,
         systemUiContext: Context,
         redactText: Boolean,
-        summarization: String?
+        summarization: CharSequence?
     ): SingleLineViewModel {
         if (AsyncHybridViewInflation.isUnexpectedlyInLegacyMode()) {
             return SingleLineViewModel(null, null, null)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/SingleLineViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/SingleLineViewModel.kt
index 32ded25..bb5cff9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/SingleLineViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ui/viewmodel/SingleLineViewModel.kt
@@ -46,7 +46,7 @@
 data class ConversationData(
     val conversationSenderName: CharSequence?,
     val avatar: ConversationAvatar,
-    val summarization: String?
+    val summarization: CharSequence?
 )
 
 /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractor.kt
index 9fdd0bc..0703f2d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractor.kt
@@ -21,11 +21,14 @@
 import com.android.systemui.deviceentry.data.repository.DeviceEntryFaceAuthRepository
 import com.android.systemui.keyguard.data.repository.KeyguardRepository
 import com.android.systemui.power.domain.interactor.PowerInteractor
+import com.android.systemui.shade.domain.interactor.ShadeModeInteractor
+import com.android.systemui.shade.shared.model.ShadeMode
 import com.android.systemui.statusbar.LockscreenShadeTransitionController
 import com.android.systemui.statusbar.NotificationShelf
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.map
 
 /** Interactor for the [NotificationShelf] */
 @SysUISingleton
@@ -35,6 +38,7 @@
     private val keyguardRepository: KeyguardRepository,
     private val deviceEntryFaceAuthRepository: DeviceEntryFaceAuthRepository,
     private val powerInteractor: PowerInteractor,
+    private val shadeModeInteractor: ShadeModeInteractor,
     private val keyguardTransitionController: LockscreenShadeTransitionController,
 ) {
     /** Is the shelf showing on the keyguard? */
@@ -51,6 +55,16 @@
                 isKeyguardShowing && isBypassEnabled
             }
 
+    /** Should the shelf be aligned to the end in the current configuration? */
+    val isAlignedToEnd: Flow<Boolean>
+        get() =
+            shadeModeInteractor.shadeMode.map { shadeMode ->
+                when (shadeMode) {
+                    ShadeMode.Split -> true
+                    else -> false
+                }
+            }
+
     /** Transition keyguard to the locked shade, triggered by the shelf. */
     fun goToLockedShadeFromShelf() {
         powerInteractor.wakeUpIfDozing("SHADE_CLICK", PowerManager.WAKE_REASON_GESTURE)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewbinder/NotificationShelfViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewbinder/NotificationShelfViewBinder.kt
index 0352a30..f663ea0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewbinder/NotificationShelfViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewbinder/NotificationShelfViewBinder.kt
@@ -16,15 +16,16 @@
 
 package com.android.systemui.statusbar.notification.shelf.ui.viewbinder
 
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.app.tracing.traceSection
 import com.android.systemui.plugins.FalsingManager
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.statusbar.NotificationShelf
 import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerShelfViewBinder
 import com.android.systemui.statusbar.notification.row.ui.viewbinder.ActivatableNotificationViewBinder
 import com.android.systemui.statusbar.notification.shelf.ui.viewmodel.NotificationShelfViewModel
 import kotlinx.coroutines.awaitCancellation
 import kotlinx.coroutines.coroutineScope
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /** Binds a [NotificationShelf] to its [view model][NotificationShelfViewModel]. */
 object NotificationShelfViewBinder {
@@ -41,6 +42,11 @@
                 viewModel.canModifyColorOfNotifications.collect(::setCanModifyColorOfNotifications)
             }
             launch { viewModel.isClickable.collect(::setCanInteract) }
+
+            if (SceneContainerFlag.isEnabled) {
+                launch { viewModel.isAlignedToEnd.collect(::setAlignedToEnd) }
+            }
+
             registerViewListenersWhileAttached(shelf, viewModel)
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModel.kt
index 5ca8b53..96cdda6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shelf/ui/viewmodel/NotificationShelfViewModel.kt
@@ -17,11 +17,13 @@
 package com.android.systemui.statusbar.notification.shelf.ui.viewmodel
 
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.statusbar.NotificationShelf
 import com.android.systemui.statusbar.notification.row.ui.viewmodel.ActivatableNotificationViewModel
 import com.android.systemui.statusbar.notification.shelf.domain.interactor.NotificationShelfInteractor
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.map
 
 /** ViewModel for [NotificationShelf]. */
@@ -40,6 +42,15 @@
     val canModifyColorOfNotifications: Flow<Boolean>
         get() = interactor.isShelfStatic.map { static -> !static }
 
+    /** Is the shelf aligned to the end in the current configuration? */
+    val isAlignedToEnd: Flow<Boolean> by lazy {
+        if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) {
+            flowOf(false)
+        } else {
+            interactor.isAlignedToEnd
+        }
+    }
+
     /** Notifies that the user has clicked the shelf. */
     fun onShelfClicked() {
         interactor.goToLockedShadeFromShelf()
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt
index 3941700..5a29a69 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt
@@ -97,6 +97,7 @@
                 stackScrollLayout,
                 MAGNETIC_TRANSLATION_MULTIPLIERS.size,
             )
+        currentMagneticListeners.swipedListener()?.cancelTranslationAnimations()
         newListeners.forEach {
             if (currentMagneticListeners.contains(it)) {
                 it?.cancelMagneticAnimations()
@@ -214,22 +215,32 @@
     }
 
     override fun onMagneticInteractionEnd(row: ExpandableNotificationRow, velocity: Float?) {
-        if (!row.isSwipedTarget()) return
-
-        when (currentState) {
-            State.PULLING -> {
-                snapNeighborsBack(velocity)
-                currentState = State.IDLE
+        if (row.isSwipedTarget()) {
+            when (currentState) {
+                State.PULLING -> {
+                    snapNeighborsBack(velocity)
+                    currentState = State.IDLE
+                }
+                State.DETACHED -> {
+                    // Cancel any detaching animation that may be occurring
+                    currentMagneticListeners.swipedListener()?.cancelMagneticAnimations()
+                    currentState = State.IDLE
+                }
+                else -> {}
             }
-            State.DETACHED -> {
-                currentState = State.IDLE
-            }
-            else -> {}
+        } else {
+            // A magnetic neighbor may be dismissing. In this case, we need to cancel any snap back
+            // magnetic animation to let the external dismiss animation proceed.
+            val listener = currentMagneticListeners.find { it == row.magneticRowListener }
+            listener?.cancelMagneticAnimations()
         }
     }
 
     override fun reset() {
-        currentMagneticListeners.forEach { it?.cancelMagneticAnimations() }
+        currentMagneticListeners.forEach {
+            it?.cancelMagneticAnimations()
+            it?.cancelTranslationAnimations()
+        }
         currentState = State.IDLE
         currentMagneticListeners = listOf()
         currentRoundableTargets = null
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticRowListener.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticRowListener.kt
index 46036d4..5959ef1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticRowListener.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticRowListener.kt
@@ -42,6 +42,9 @@
     /** Cancel any animations related to the magnetic interactions of the row */
     fun cancelMagneticAnimations()
 
+    /** Cancel any other animations related to the row's translation */
+    fun cancelTranslationAnimations()
+
     /** Can the row be dismissed. */
     fun canRowBeDismissed(): Boolean
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
index b548b58..ee57d45 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
@@ -43,6 +43,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.widget.NotificationExpandButton;
 import com.android.systemui.res.R;
+import com.android.systemui.scene.shared.flag.SceneContainerFlag;
 import com.android.systemui.statusbar.CrossFadeHelper;
 import com.android.systemui.statusbar.NotificationGroupingUtil;
 import com.android.systemui.statusbar.notification.FeedbackIcon;
@@ -1713,4 +1714,11 @@
                 + ", clipBounds: " + getClipBounds()
                 + ", roundableState: " + getRoundableState().debugString() + "}";
     }
+
+    public void setOnKeyguard(boolean onKeyguard) {
+        if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return;
+        for (ExpandableNotificationRow child : mAttachedChildren) {
+            child.setOnKeyguard(onKeyguard);
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
index 8048245..810d0b4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
@@ -62,6 +62,7 @@
 import com.android.internal.view.OneShotPreDrawListener;
 import com.android.systemui.Dumpable;
 import com.android.systemui.ExpandHelper;
+import com.android.systemui.Flags;
 import com.android.systemui.Gefingerpoken;
 import com.android.systemui.classifier.Classifier;
 import com.android.systemui.classifier.FalsingCollector;
@@ -462,6 +463,13 @@
                 }
 
                 @Override
+                public void onMagneticInteractionEnd(View view, float velocity) {
+                    if (view instanceof ExpandableNotificationRow row) {
+                        mMagneticNotificationRowManager.onMagneticInteractionEnd(row, velocity);
+                    }
+                }
+
+                @Override
                 public float getTotalTranslationLength(View animView) {
                     return mView.getTotalTranslationLength(animView);
                 }
@@ -503,14 +511,6 @@
                 public void onDragCancelled(View v) {
                 }
 
-                @Override
-                public void onDragCancelledWithVelocity(View v, float finalVelocity) {
-                    if (v instanceof ExpandableNotificationRow row) {
-                        mMagneticNotificationRowManager.onMagneticInteractionEnd(
-                                row, finalVelocity);
-                    }
-                }
-
                 /**
                  * Handles cleanup after the given {@code view} has been fully swiped out (including
                  * re-invoking dismiss logic in case the notification has not made its way out yet).
@@ -538,10 +538,6 @@
                  */
 
                 public void handleChildViewDismissed(View view) {
-                    if (view instanceof ExpandableNotificationRow row) {
-                        mMagneticNotificationRowManager.onMagneticInteractionEnd(
-                                row, null /* velocity */);
-                    }
                     // The View needs to clean up the Swipe states, e.g. roundness.
                     mView.onSwipeEnd();
                     if (mView.getClearAllInProgress()) {
@@ -613,11 +609,22 @@
 
                 @Override
                 public void onBeginDrag(View v) {
+                    mView.onSwipeBegin(v);
+                }
+
+                @Override
+                public void setMagneticAndRoundableTargets(View v) {
                     if (v instanceof ExpandableNotificationRow row) {
                         mMagneticNotificationRowManager.setMagneticAndRoundableTargets(
                                 row, mView, mSectionsManager);
                     }
-                    mView.onSwipeBegin(v);
+                }
+
+                @Override
+                public void onChildSnapBackOvershoots() {
+                    if (Flags.magneticNotificationSwipes()) {
+                        mNotificationRoundnessManager.setViewsAffectedBySwipe(null, null, null);
+                    }
                 }
 
                 @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java
index d476d48..6f4047f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java
@@ -362,7 +362,8 @@
             superSnapChild(animView, targetLeft, velocity);
         }
 
-        mCallback.onDragCancelledWithVelocity(animView, velocity);
+        mCallback.onMagneticInteractionEnd(animView, velocity);
+        mCallback.onDragCancelled(animView);
         if (targetLeft == 0) {
             handleMenuCoveredOrDismissed();
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
index 75e89a6..54efa4a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
@@ -101,6 +101,7 @@
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flow
@@ -477,7 +478,7 @@
 
     /**
      * Ensure view is visible when the shade/qs are expanded. Also, as QS is expanding, fade out
-     * notifications unless in splitshade.
+     * notifications unless it's a large screen.
      */
     private val alphaForShadeAndQsExpansion: Flow<Float> =
         if (SceneContainerFlag.isEnabled) {
@@ -500,16 +501,26 @@
                         Split -> isAnyExpanded.filter { it }.map { 1f }
                         Dual ->
                             combineTransform(
+                                shadeModeInteractor.isShadeLayoutWide,
                                 headsUpNotificationInteractor.get().isHeadsUpOrAnimatingAway,
                                 shadeInteractor.shadeExpansion,
                                 shadeInteractor.qsExpansion,
-                            ) { isHeadsUpOrAnimatingAway, shadeExpansion, qsExpansion ->
-                                if (isHeadsUpOrAnimatingAway) {
+                            ) {
+                                isShadeLayoutWide,
+                                isHeadsUpOrAnimatingAway,
+                                shadeExpansion,
+                                qsExpansion ->
+                                if (isShadeLayoutWide) {
+                                    if (shadeExpansion > 0f) {
+                                        emit(1f)
+                                    }
+                                } else if (isHeadsUpOrAnimatingAway) {
                                     // Ensure HUNs will be visible in QS shade (at least while
                                     // unlocked)
                                     emit(1f)
                                 } else if (shadeExpansion > 0f || qsExpansion > 0f) {
-                                    // Fade out as QS shade expands
+                                    // On a narrow screen, the QS shade overlaps with lockscreen
+                                    // notifications. Fade them out as the QS shade expands.
                                     emit(1f - qsExpansion)
                                 }
                             }
@@ -796,7 +807,8 @@
     }
 
     /**
-     * Wallpaper needs the absolute bottom of notification stack to avoid occlusion
+     * Wallpaper focal area needs the absolute bottom of notification stack to avoid occlusion. It
+     * should not change with notifications in shade.
      *
      * @param calculateMaxNotifications is required by getMaxNotifications as calculateSpace by
      *   calling computeMaxKeyguardNotifications in NotificationStackSizeCalculator
@@ -811,18 +823,24 @@
         SceneContainerFlag.assertInLegacyMode()
 
         return combine(
-            getLockscreenDisplayConfig(calculateMaxNotifications).map { (_, maxNotifications) ->
-                val height = calculateHeight(maxNotifications)
-                if (maxNotifications == 0) {
-                    height - shelfHeight
+                getLockscreenDisplayConfig(calculateMaxNotifications).map { (_, maxNotifications) ->
+                    val height = calculateHeight(maxNotifications)
+                    if (maxNotifications == 0) {
+                        height - shelfHeight
+                    } else {
+                        height
+                    }
+                },
+                bounds.map { it.top },
+                isOnLockscreenWithoutShade,
+            ) { height, top, isOnLockscreenWithoutShade ->
+                if (isOnLockscreenWithoutShade) {
+                    top + height
                 } else {
-                    height
+                    null
                 }
-            },
-            bounds.map { it.top },
-        ) { height, top ->
-            top + height
-        }
+            }
+            .filterNotNull()
     }
 
     fun notificationStackChanged() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index b146b92..a9b3753 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -21,15 +21,14 @@
 import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
 import static android.app.StatusBarManager.WindowVisibleState;
 import static android.app.StatusBarManager.windowStateToString;
+import static android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap;
+import static android.service.quickaccesswallet.Flags.launchWalletViaSysuiCallbacks;
 import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
 import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO;
 import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS;
 
 import static androidx.lifecycle.Lifecycle.State.RESUMED;
 
-import static android.service.quickaccesswallet.Flags.launchWalletOptionOnPowerDoubleTap;
-import static android.service.quickaccesswallet.Flags.launchWalletViaSysuiCallbacks;
-
 import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME;
 import static com.android.systemui.Flags.keyboardShortcutHelperRewrite;
 import static com.android.systemui.Flags.lightRevealMigration;
@@ -38,6 +37,7 @@
 import static com.android.systemui.charging.WirelessChargingAnimation.UNKNOWN_BATTERY_LEVEL;
 import static com.android.systemui.flags.Flags.SHORTCUT_LIST_SEARCH_LAYOUT;
 import static com.android.systemui.statusbar.StatusBarState.SHADE;
+
 import android.annotation.Nullable;
 import android.app.ActivityOptions;
 import android.app.IWallpaperManager;
@@ -176,6 +176,7 @@
 import com.android.systemui.shade.ShadeLogger;
 import com.android.systemui.shade.ShadeSurface;
 import com.android.systemui.shade.ShadeViewController;
+import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround;
 import com.android.systemui.shared.recents.utilities.Utilities;
 import com.android.systemui.shared.statusbar.phone.BarTransitions;
 import com.android.systemui.statusbar.AutoHideUiElement;
@@ -1974,17 +1975,15 @@
      * meantime, just update the things that we know change.
      */
     void updateResources() {
-        // TODO: b/374267505 - we shouldn't propagate this from here. Each class should be
-        //  listening at the correct configuration change. For example, shade window classes should
-        //  be listening at @ShadeDisplayAware configurations (as it can be on a different display.
+        if (!ShadeWindowGoesAround.isEnabled()) {
+            // Each class now subscribes to configuration changes by themselves.
+            if (mQSPanelController != null) {
+                mQSPanelController.updateResources();
+            }
 
-        // Update the quick setting tiles
-        if (mQSPanelController != null) {
-            mQSPanelController.updateResources();
-        }
-
-        if (mShadeSurface != null) {
-            mShadeSurface.updateResources();
+            if (mShadeSurface != null) {
+                mShadeSurface.updateResources();
+            }
         }
         if (mBrightnessMirrorController != null) {
             mBrightnessMirrorController.updateResources();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
index a339bc9..fa4fe46 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -47,6 +47,7 @@
 import com.android.systemui.battery.BatteryMeterView;
 import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
 import com.android.systemui.res.R;
+import com.android.systemui.statusbar.core.NewStatusBarIcons;
 import com.android.systemui.statusbar.layout.StatusBarContentInsetsProvider;
 import com.android.systemui.statusbar.phone.SysuiDarkIconDispatcher.DarkChange;
 import com.android.systemui.statusbar.phone.ui.TintedIconManager;
@@ -61,6 +62,7 @@
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.Objects;
 
 /**
  * The header group on Keyguard.
@@ -78,7 +80,7 @@
 
     private TextView mCarrierLabel;
     private ImageView mMultiUserAvatar;
-    private BatteryMeterView mBatteryView;
+    @Nullable private BatteryMeterView mBatteryView;
     private StatusIconContainer mStatusIconContainer;
     private StatusBarUserSwitcherContainer mUserSwitcherContainer;
 
@@ -103,6 +105,9 @@
      */
     private int mCutoutSideNudge = 0;
 
+    @Nullable
+    private WindowInsets mPreviousInsets = null;
+
     private DisplayCutout mDisplayCutout;
     private int mRoundedCornerPadding = 0;
     // right and left padding applied to this view to account for cutouts and rounded corners
@@ -127,6 +132,11 @@
         mMultiUserAvatar = findViewById(R.id.multi_user_avatar);
         mCarrierLabel = findViewById(R.id.keyguard_carrier_text);
         mBatteryView = mSystemIconsContainer.findViewById(R.id.battery);
+        if (NewStatusBarIcons.isEnabled()) {
+            // When this flag is rolled forward, this whole view can be removed
+            mBatteryView.setVisibility(View.GONE);
+            mBatteryView = null;
+        }
         mCutoutSpace = findViewById(R.id.cutout_space_view);
         mStatusIconArea = findViewById(R.id.status_icon_area);
         mStatusIconContainer = findViewById(R.id.statusIcons);
@@ -255,7 +265,10 @@
                 mMultiUserAvatar.setVisibility(View.GONE);
             }
         }
-        mBatteryView.setForceShowPercent(mBatteryCharging && mShowPercentAvailable);
+
+        if (mBatteryView != null) {
+            mBatteryView.setForceShowPercent(mBatteryCharging && mShowPercentAvailable);
+        }
     }
 
     private void updateSystemIconsLayoutParams() {
@@ -284,9 +297,12 @@
     WindowInsets updateWindowInsets(
             WindowInsets insets,
             StatusBarContentInsetsProvider insetsProvider) {
-        mLayoutState = LAYOUT_NONE;
-        if (updateLayoutConsideringCutout(insetsProvider)) {
-            requestLayout();
+        if (!Objects.equals(mPreviousInsets, insets)) {
+            mLayoutState = LAYOUT_NONE;
+            if (updateLayoutConsideringCutout(insetsProvider)) {
+                requestLayout();
+            }
+            mPreviousInsets = new WindowInsets(insets);
         }
         return super.onApplyWindowInsets(insets);
     }
@@ -435,7 +451,9 @@
 
     /** Should only be called from {@link KeyguardStatusBarViewController}. */
     void onThemeChanged(TintedIconManager iconManager) {
-        mBatteryView.setColorsFromContext(mContext);
+        if (mBatteryView != null) {
+            mBatteryView.setColorsFromContext(mContext);
+        }
         updateIconsAndTextColors(iconManager);
     }
 
@@ -443,7 +461,9 @@
     void onOverlayChanged() {
         final int carrierTheme = R.style.TextAppearance_StatusBar_Clock;
         mCarrierLabel.setTextAppearance(carrierTheme);
-        mBatteryView.updatePercentView();
+        if (mBatteryView != null) {
+            mBatteryView.updatePercentView();
+        }
 
         final int userSwitcherTheme = R.style.TextAppearance_StatusBar_UserChip;
         TextView userSwitcherName = mUserSwitcherContainer.findViewById(R.id.current_user_name);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
index 40245ae..de72154 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
@@ -34,10 +34,12 @@
 import android.util.MathUtils;
 import android.view.DisplayCutout;
 import android.view.View;
+import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
+import androidx.compose.ui.platform.ComposeView;
 import androidx.core.animation.Animator;
 import androidx.core.animation.AnimatorListenerAdapter;
 import androidx.core.animation.ValueAnimator;
@@ -62,6 +64,7 @@
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.StatusBarState;
 import com.android.systemui.statusbar.SysuiStatusBarStateController;
+import com.android.systemui.statusbar.core.NewStatusBarIcons;
 import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore;
 import com.android.systemui.statusbar.disableflags.DisableStateTracker;
 import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
@@ -71,10 +74,13 @@
 import com.android.systemui.statusbar.notification.PropertyAnimator;
 import com.android.systemui.statusbar.notification.stack.AnimationProperties;
 import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
+import com.android.systemui.statusbar.phone.domain.interactor.DarkIconInteractor;
 import com.android.systemui.statusbar.phone.fragment.StatusBarIconBlocklistKt;
 import com.android.systemui.statusbar.phone.fragment.StatusBarSystemEventDefaultAnimator;
 import com.android.systemui.statusbar.phone.ui.StatusBarIconController;
 import com.android.systemui.statusbar.phone.ui.TintedIconManager;
+import com.android.systemui.statusbar.pipeline.battery.ui.binder.UnifiedBatteryViewBinder;
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel;
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -125,6 +131,7 @@
     private final StatusBarIconController mStatusBarIconController;
     private final TintedIconManager.Factory mTintedIconManagerFactory;
     private final BatteryMeterViewController mBatteryMeterViewController;
+    private final BatteryViewModel.Factory mBatteryViewModelFactory;
     private final ShadeViewStateProvider mShadeViewStateProvider;
     private final KeyguardStateController mKeyguardStateController;
     private final KeyguardBypassController mKeyguardBypassController;
@@ -145,7 +152,7 @@
     private final GlanceableHubToLockscreenTransitionViewModel mHubToLockscreenTransitionViewModel;
     private final LockscreenToGlanceableHubTransitionViewModel mLockscreenToHubTransitionViewModel;
 
-    private View mSystemIconsContainer;
+    private ViewGroup mSystemIconsContainer;
     private final StatusOverlayHoverListenerFactory mStatusOverlayHoverListenerFactory;
 
     private final ConfigurationController.ConfigurationListener mConfigurationListener =
@@ -327,6 +334,7 @@
             StatusBarIconController statusBarIconController,
             TintedIconManager.Factory tintedIconManagerFactory,
             BatteryMeterViewController batteryMeterViewController,
+            BatteryViewModel.Factory batteryViewModelFactory,
             ShadeViewStateProvider shadeViewStateProvider,
             KeyguardStateController keyguardStateController,
             KeyguardBypassController bypassController,
@@ -360,6 +368,7 @@
         mStatusBarIconController = statusBarIconController;
         mTintedIconManagerFactory = tintedIconManagerFactory;
         mBatteryMeterViewController = batteryMeterViewController;
+        mBatteryViewModelFactory = batteryViewModelFactory;
         mShadeViewStateProvider = shadeViewStateProvider;
         mKeyguardStateController = keyguardStateController;
         mKeyguardBypassController = bypassController;
@@ -417,7 +426,9 @@
     protected void onInit() {
         super.onInit();
         mCarrierTextController.init();
-        mBatteryMeterViewController.init();
+        if (!NewStatusBarIcons.isEnabled()) {
+            mBatteryMeterViewController.init();
+        }
         if (isMigrationEnabled()) {
             KeyguardStatusBarViewBinder.bind(mView, mKeyguardStatusBarViewModel);
         }
@@ -469,6 +480,15 @@
                 mToGlanceableHubStatusBarAlphaConsumer, mCoroutineDispatcher);
         collectFlow(mView, mHubToLockscreenTransitionViewModel.getStatusBarAlpha(),
                 mFromGlanceableHubStatusBarAlphaConsumer, mCoroutineDispatcher);
+        if (NewStatusBarIcons.isEnabled()) {
+            ComposeView batteryComposeView = new ComposeView(mContext);
+            UnifiedBatteryViewBinder.bind(
+                    batteryComposeView,
+                    mBatteryViewModelFactory,
+                    DarkIconInteractor.toIsAreaDark(mView.darkChangeFlow()));
+
+            mSystemIconsContainer.addView(batteryComposeView, -1);
+        }
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 4d222fd..258b7ca 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -81,6 +81,9 @@
 import com.android.systemui.util.kotlin.JavaAdapter;
 import com.android.systemui.util.wakelock.DelayedWakeLock;
 import com.android.systemui.util.wakelock.WakeLock;
+import com.android.systemui.window.domain.interactor.WindowRootViewBlurInteractor;
+
+import dagger.Lazy;
 
 import kotlinx.coroutines.CoroutineDispatcher;
 
@@ -89,6 +92,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
+import java.util.function.Supplier;
 
 import javax.inject.Inject;
 
@@ -226,7 +230,7 @@
     private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA;
 
     static final float TRANSPARENT_BOUNCER_SCRIM_ALPHA = 0.54f;
-    private final float mDefaultScrimAlpha;
+    private float mDefaultScrimAlpha;
 
     private float mRawPanelExpansionFraction;
     private float mPanelScrimMinFraction;
@@ -257,6 +261,7 @@
     private final TriConsumer<ScrimState, Float, GradientColors> mScrimStateListener;
     private final LargeScreenShadeInterpolator mLargeScreenShadeInterpolator;
     private final BlurConfig mBlurConfig;
+    private final Lazy<WindowRootViewBlurInteractor> mWindowRootViewBlurInteractor;
     private Consumer<Integer> mScrimVisibleListener;
     private boolean mBlankScreen;
     private boolean mScreenBlankingCallbackCalled;
@@ -339,14 +344,13 @@
             KeyguardInteractor keyguardInteractor,
             @Main CoroutineDispatcher mainDispatcher,
             LargeScreenShadeInterpolator largeScreenShadeInterpolator,
-            BlurConfig blurConfig) {
+            BlurConfig blurConfig,
+            Lazy<WindowRootViewBlurInteractor> windowRootViewBlurInteractor) {
         mScrimStateListener = lightBarController::setScrimState;
         mLargeScreenShadeInterpolator = largeScreenShadeInterpolator;
         mBlurConfig = blurConfig;
-        // All scrims default alpha need to match bouncer background alpha to make sure the
-        // transitions involving the bouncer are smooth and don't overshoot the bouncer alpha.
-        mDefaultScrimAlpha =
-                Flags.bouncerUiRevamp() ? TRANSPARENT_BOUNCER_SCRIM_ALPHA : BUSY_SCRIM_ALPHA;
+        mWindowRootViewBlurInteractor = windowRootViewBlurInteractor;
+        mDefaultScrimAlpha = BUSY_SCRIM_ALPHA;
 
         mKeyguardStateController = keyguardStateController;
         mDarkenWhileDragging = !mKeyguardStateController.canDismissLockScreen();
@@ -407,7 +411,8 @@
 
         final ScrimState[] states = ScrimState.values();
         for (int i = 0; i < states.length; i++) {
-            states[i].init(mScrimInFront, mScrimBehind, mDozeParameters, mDockManager, mBlurConfig);
+            states[i].init(mScrimInFront, mScrimBehind, mDozeParameters, mDockManager,
+                    this::isBlurCurrentlySupported);
             states[i].setScrimBehindAlphaKeyguard(mScrimBehindAlphaKeyguard);
             states[i].setDefaultScrimAlpha(mDefaultScrimAlpha);
         }
@@ -485,6 +490,42 @@
                         Edge.Companion.create(Scenes.Communal, LOCKSCREEN),
                         Edge.Companion.create(GLANCEABLE_HUB, LOCKSCREEN)),
                 mGlanceableHubConsumer, mMainDispatcher);
+
+        if (Flags.bouncerUiRevamp() || Flags.notificationShadeBlur()) {
+            collectFlow(behindScrim,
+                    mWindowRootViewBlurInteractor.get().isBlurCurrentlySupported(),
+                    this::handleBlurSupportedChanged);
+        }
+    }
+
+    private void updateDefaultScrimAlpha(float alpha) {
+        mDefaultScrimAlpha = alpha;
+        for (ScrimState state : ScrimState.values()) {
+            state.setDefaultScrimAlpha(mDefaultScrimAlpha);
+        }
+        applyAndDispatchState();
+    }
+
+    private boolean isBlurCurrentlySupported() {
+        return mWindowRootViewBlurInteractor.get()
+                .isBlurCurrentlySupported()
+                .getValue();
+    }
+
+    private void handleBlurSupportedChanged(boolean isBlurSupported) {
+        if (Flags.bouncerUiRevamp()) {
+            if (isBlurSupported) {
+                updateDefaultScrimAlpha(TRANSPARENT_BOUNCER_SCRIM_ALPHA);
+                ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(mBlurConfig.getMaxBlurRadiusPx());
+            } else {
+                ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(0f);
+                updateDefaultScrimAlpha(BUSY_SCRIM_ALPHA);
+            }
+        }
+        if (Flags.notificationShadeBlur()) {
+            mState.prepare(mState);
+            applyAndDispatchState();
+        }
     }
 
     // TODO(b/270984686) recompute scrim height accurately, based on shade contents.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
index 5f423cf..d47c0f8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
@@ -17,19 +17,19 @@
 package com.android.systemui.statusbar.phone;
 
 import static com.android.systemui.statusbar.phone.ScrimController.BUSY_SCRIM_ALPHA;
-import static com.android.systemui.statusbar.phone.ScrimController.TRANSPARENT_BOUNCER_SCRIM_ALPHA;
 
 import android.graphics.Color;
 
 import com.android.app.tracing.coroutines.TrackTracer;
 import com.android.systemui.Flags;
 import com.android.systemui.dock.DockManager;
-import com.android.systemui.keyguard.ui.transitions.BlurConfig;
 import com.android.systemui.res.R;
 import com.android.systemui.scrim.ScrimView;
 import com.android.systemui.shade.ui.ShadeColors;
 import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
 
+import java.util.function.Supplier;
+
 import kotlinx.coroutines.ExperimentalCoroutinesApi;
 
 /**
@@ -90,7 +90,8 @@
             }
             if (Flags.notificationShadeBlur()) {
                 mBehindTint = Color.TRANSPARENT;
-                mNotifTint = ShadeColors.notificationScrim(mScrimBehind.getResources());
+                mNotifTint = ShadeColors.notificationScrim(mScrimBehind.getResources(),
+                        mIsBlurSupported.get());
                 mBehindAlpha = 0.0f;
                 mNotifAlpha = 0.0f;
                 mFrontAlpha = 0.0f;
@@ -116,8 +117,8 @@
         @Override
         public void prepare(ScrimState previousState) {
             if (Flags.bouncerUiRevamp()) {
-                mBehindAlpha = mClipQsScrim ? 0.0f : TRANSPARENT_BOUNCER_SCRIM_ALPHA;
-                mNotifAlpha = mClipQsScrim ? TRANSPARENT_BOUNCER_SCRIM_ALPHA : 0;
+                mBehindAlpha = mDefaultScrimAlpha;
+                mNotifAlpha = 0f;
                 mBehindTint = mNotifTint = mSurfaceColor;
                 mFrontAlpha = 0f;
                 return;
@@ -153,12 +154,11 @@
                 if (previousState == SHADE_LOCKED) {
                     mBehindAlpha = previousState.getBehindAlpha();
                     mNotifAlpha = previousState.getNotifAlpha();
-                    mNotifBlurRadius = mBlurConfig.getMaxBlurRadiusPx();
                 } else {
                     mNotifAlpha = 0f;
                     mBehindAlpha = 0f;
                 }
-                mFrontAlpha = TRANSPARENT_BOUNCER_SCRIM_ALPHA;
+                mFrontAlpha = mDefaultScrimAlpha;
                 mFrontTint = mSurfaceColor;
                 return;
             }
@@ -187,9 +187,11 @@
         @Override
         public void prepare(ScrimState previousState) {
             if (Flags.notificationShadeBlur()) {
-                mBehindTint = ShadeColors.shadePanel(mScrimBehind.getResources());
+                mBehindTint = ShadeColors.shadePanel(mScrimBehind.getResources(),
+                        mIsBlurSupported.get());
                 mBehindAlpha = Color.alpha(mBehindTint) / 255.0f;
-                mNotifTint = ShadeColors.notificationScrim(mScrimBehind.getResources());
+                mNotifTint = ShadeColors.notificationScrim(mScrimBehind.getResources(),
+                        mIsBlurSupported.get());
                 mNotifAlpha = Color.alpha(mNotifTint) / 255.0f;
                 mFrontAlpha = 0.0f;
             } else {
@@ -308,9 +310,11 @@
                 mBehindTint = mBackgroundColor;
                 mBlankScreen = true;
             } else if (Flags.notificationShadeBlur()) {
-                mBehindTint = ShadeColors.shadePanel(mScrimBehind.getResources());
+                mBehindTint = ShadeColors.shadePanel(mScrimBehind.getResources(),
+                        mIsBlurSupported.get());
                 mBehindAlpha = Color.alpha(mBehindTint) / 255.0f;
-                mNotifTint = ShadeColors.notificationScrim(mScrimBehind.getResources());
+                mNotifTint = ShadeColors.notificationScrim(mScrimBehind.getResources(),
+                        mIsBlurSupported.get());
                 mNotifAlpha = Color.alpha(mNotifTint) / 255.0f;
                 mFrontAlpha = 0.0f;
                 return;
@@ -403,7 +407,7 @@
     DozeParameters mDozeParameters;
     DockManager mDockManager;
     boolean mDisplayRequiresBlanking;
-    protected BlurConfig mBlurConfig;
+    protected Supplier<Boolean> mIsBlurSupported;
     boolean mLaunchingAffordanceWithPreview;
     boolean mOccludeAnimationPlaying;
     boolean mWakeLockScreenSensorActive;
@@ -417,7 +421,7 @@
     protected float mNotifBlurRadius = 0.0f;
 
     public void init(ScrimView scrimInFront, ScrimView scrimBehind, DozeParameters dozeParameters,
-            DockManager dockManager, BlurConfig blurConfig) {
+            DockManager dockManager, Supplier<Boolean> isBlurSupported) {
         mBackgroundColor = scrimBehind.getContext().getColor(R.color.shade_scrim_background_dark);
         mScrimInFront = scrimInFront;
         mScrimBehind = scrimBehind;
@@ -425,7 +429,7 @@
         mDozeParameters = dozeParameters;
         mDockManager = dockManager;
         mDisplayRequiresBlanking = dozeParameters.getDisplayNeedsBlanking();
-        mBlurConfig = blurConfig;
+        mIsBlurSupported = isBlurSupported;
     }
 
     /** Prepare state for transition. */
@@ -536,4 +540,8 @@
     public float getNotifBlurRadius() {
         return mNotifBlurRadius;
     }
+
+    public void setNotifBlurRadius(float value) {
+        mNotifBlurRadius = value;
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index b2c4ef9..01de925 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -65,6 +65,7 @@
 import com.android.systemui.bouncer.shared.flag.ComposeBouncerFlags;
 import com.android.systemui.bouncer.ui.BouncerView;
 import com.android.systemui.bouncer.util.BouncerTestUtilsKt;
+import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor;
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor;
@@ -170,6 +171,7 @@
     private final Lazy<SceneInteractor> mSceneInteractorLazy;
     private final Lazy<DeviceEntryInteractor> mDeviceEntryInteractorLazy;
     private final DismissCallbackRegistry mDismissCallbackRegistry;
+    private final CommunalSceneInteractor mCommunalSceneInteractor;
 
     private Job mListenForAlternateBouncerTransitionSteps = null;
     private Job mListenForKeyguardAuthenticatedBiometricsHandled = null;
@@ -406,7 +408,8 @@
             @Main DelayableExecutor executor,
             Lazy<DeviceEntryInteractor> deviceEntryInteractorLazy,
             DismissCallbackRegistry dismissCallbackRegistry,
-            Lazy<BouncerInteractor> bouncerInteractor
+            Lazy<BouncerInteractor> bouncerInteractor,
+            CommunalSceneInteractor communalSceneInteractor
     ) {
         mContext = context;
         mExecutor = executor;
@@ -443,6 +446,7 @@
         mStatusBarKeyguardViewManagerInteractor = statusBarKeyguardViewManagerInteractor;
         mDeviceEntryInteractorLazy = deviceEntryInteractorLazy;
         mDismissCallbackRegistry = dismissCallbackRegistry;
+        mCommunalSceneInteractor = communalSceneInteractor;
     }
 
     KeyguardTransitionInteractor mKeyguardTransitionInteractor;
@@ -1364,11 +1368,13 @@
         }
         mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
 
-        boolean hideBouncerOverDream = isBouncerShowing()
-                && mDreamOverlayStateController.isOverlayActive();
+        boolean hideBouncerOverDreamOrHub = isBouncerShowing()
+                && (mDreamOverlayStateController.isOverlayActive()
+                || mCommunalSceneInteractor.isIdleOnCommunal().getValue());
         mCentralSurfaces.endAffordanceLaunch();
         // The second condition is for SIM card locked bouncer
-        if (hideBouncerOverDream || (primaryBouncerIsScrimmed() && !needsFullscreenBouncer())) {
+        if (hideBouncerOverDreamOrHub
+                || (primaryBouncerIsScrimmed() && !needsFullscreenBouncer())) {
             hideBouncer(false);
             updateStates();
         } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
index e33baf7..ded964d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
@@ -57,11 +57,11 @@
 import com.android.systemui.assist.AssistManager;
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.dagger.qualifiers.Background;
-import com.android.systemui.dagger.qualifiers.DisplayId;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.power.domain.interactor.PowerInteractor;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.shade.ShadeController;
+import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.shade.domain.interactor.PanelExpansionInteractor;
 import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor;
 import com.android.systemui.statusbar.CommandQueue;
@@ -76,11 +76,11 @@
 import com.android.systemui.statusbar.notification.collection.provider.LaunchFullScreenIntentProvider;
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
 import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyShadeFix;
+import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
+import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRowDragController;
 import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
-import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
-import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.wmshell.BubblesManager;
 
@@ -115,7 +115,6 @@
     private final static String TAG = "StatusBarNotificationActivityStarter";
 
     private final Context mContext;
-    private final int mDisplayId;
 
     private final Handler mMainThreadHandler;
     private final Executor mUiBgExecutor;
@@ -155,8 +154,7 @@
 
     @Inject
     StatusBarNotificationActivityStarter(
-            Context context,
-            @DisplayId int displayId,
+            @ShadeDisplayAware Context context,
             Handler mainThreadHandler,
             @Background Executor uiBgExecutor,
             NotificationVisibilityProvider visibilityProvider,
@@ -189,7 +187,6 @@
             PowerInteractor powerInteractor,
             UserTracker userTracker) {
         mContext = context;
-        mDisplayId = displayId;
         mMainThreadHandler = mainThreadHandler;
         mUiBgExecutor = uiBgExecutor;
         mVisibilityProvider = visibilityProvider;
@@ -493,6 +490,7 @@
             boolean animate,
             boolean isActivityIntent) {
         mLogger.logStartNotificationIntent(entry);
+        final int displayId = mContext.getDisplayId();
         try {
             ActivityTransitionAnimator.Controller animationController =
                     new StatusBarTransitionAnimatorController(
@@ -501,7 +499,7 @@
                             mShadeController,
                             mNotificationShadeWindowController,
                             mCommandQueue,
-                            mDisplayId,
+                            displayId,
                             isActivityIntent);
             mActivityTransitionAnimator.startPendingIntentWithAnimation(
                     animationController,
@@ -511,11 +509,11 @@
                         long eventTime = row.getAndResetLastActionUpTime();
                         Bundle options = eventTime > 0
                                 ? getActivityOptions(
-                                mDisplayId,
+                                displayId,
                                 adapter,
                                 mKeyguardStateController.isShowing(),
                                 eventTime)
-                                : getActivityOptions(mDisplayId, adapter);
+                                : getActivityOptions(displayId, adapter);
                         int result = intent.sendAndReturnResult(mContext, 0, fillInIntent, null,
                                 null, null, options);
                         mLogger.logSendPendingIntent(entry, intent, result);
@@ -533,6 +531,7 @@
     public void startNotificationGutsIntent(@NonNull final Intent intent, final int appUid,
             @NonNull ExpandableNotificationRow row) {
         boolean animate = mActivityStarter.shouldAnimateLaunch(true /* isActivityIntent */);
+        final int displayId = mContext.getDisplayId();
         ActivityStarter.OnDismissAction onDismissAction = new ActivityStarter.OnDismissAction() {
             @Override
             public boolean onDismiss() {
@@ -544,7 +543,7 @@
                                     mShadeController,
                                     mNotificationShadeWindowController,
                                     mCommandQueue,
-                                    mDisplayId,
+                                    displayId,
                                     true /* isActivityIntent */);
 
                     mActivityTransitionAnimator.startIntentWithAnimation(
@@ -552,7 +551,7 @@
                             (adapter) -> TaskStackBuilder.create(mContext)
                                     .addNextIntentWithParentStack(intent)
                                     .startActivities(getActivityOptions(
-                                                    mDisplayId,
+                                                    displayId,
                                                     adapter),
                                             new UserHandle(UserHandle.getUserId(appUid))));
                 });
@@ -571,6 +570,7 @@
     @Override
     public void startHistoryIntent(View view, boolean showHistory) {
         ModesEmptyShadeFix.assertInLegacyMode();
+        final int displayId = mContext.getDisplayId();
         boolean animate = mActivityStarter.shouldAnimateLaunch(true /* isActivityIntent */);
         ActivityStarter.OnDismissAction onDismissAction = new ActivityStarter.OnDismissAction() {
             @Override
@@ -597,13 +597,13 @@
                                             mShadeController,
                                             mNotificationShadeWindowController,
                                             mCommandQueue,
-                                            mDisplayId,
+                                            displayId,
                                             true /* isActivityIntent */);
 
                     mActivityTransitionAnimator.startIntentWithAnimation(
                             animationController, animate, intent.getPackage(),
                             (adapter) -> tsb.startActivities(
-                                    getActivityOptions(mDisplayId, adapter),
+                                    getActivityOptions(displayId, adapter),
                                     mUserTracker.getUserHandle()));
                 });
                 return true;
@@ -620,6 +620,7 @@
 
     @Override
     public void startSettingsIntent(@NonNull View view, @NonNull SettingsIntent intentInfo) {
+        final int displayId = mContext.getDisplayId();
         boolean animate = mActivityStarter.shouldAnimateLaunch(true /* isActivityIntent */);
         ActivityStarter.OnDismissAction onDismissAction = new ActivityStarter.OnDismissAction() {
             @Override
@@ -642,13 +643,13 @@
                                             mShadeController,
                                             mNotificationShadeWindowController,
                                             mCommandQueue,
-                                            mDisplayId,
+                                            displayId,
                                             true /* isActivityIntent */);
 
                     mActivityTransitionAnimator.startIntentWithAnimation(
                             animationController, animate, intentInfo.getTargetIntent().getPackage(),
                             (adapter) -> tsb.startActivities(
-                                    getActivityOptions(mDisplayId, adapter),
+                                    getActivityOptions(displayId, adapter),
                                     mUserTracker.getUserHandle()));
                 });
                 return true;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/interactor/DarkIconInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/interactor/DarkIconInteractor.kt
index 095f0cb..afeecfa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/interactor/DarkIconInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/interactor/DarkIconInteractor.kt
@@ -15,15 +15,63 @@
  */
 package com.android.systemui.statusbar.phone.domain.interactor
 
+import android.graphics.Rect
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.plugins.DarkIconDispatcher
+import com.android.systemui.statusbar.phone.SysuiDarkIconDispatcher.DarkChange
 import com.android.systemui.statusbar.phone.data.repository.DarkIconRepository
 import com.android.systemui.statusbar.phone.domain.model.DarkState
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.map
 
 /** States pertaining to calculating colors for icons in dark mode. */
+@SysUISingleton
 class DarkIconInteractor @Inject constructor(private val repository: DarkIconRepository) {
     /** Dark-mode state for tinting icons. */
     fun darkState(displayId: Int): Flow<DarkState> =
-        repository.darkState(displayId).map { DarkState(it.areas, it.tint) }
+        repository.darkState(displayId).map { DarkState(it.areas, it.tint, it.darkIntensity) }
+
+    /**
+     * Given a display id: returns a flow of [IsAreaDark], a function that can tell you if a given
+     * [Rect] should be tinted dark or not. This flow ignores [DarkChange.tint] and
+     * [DarkChange.darkIntensity]
+     */
+    fun isAreaDark(displayId: Int): Flow<IsAreaDark> {
+        return repository.darkState(displayId).toIsAreaDark()
+    }
+
+    companion object {
+        /**
+         * Convenience function to convert between the repository's [darkState] into [IsAreaDark]
+         * type flows.
+         */
+        @JvmStatic
+        fun Flow<DarkChange>.toIsAreaDark(): Flow<IsAreaDark> =
+            map { darkChange ->
+                    DarkStateWithoutIntensity(darkChange.areas, darkChange.darkIntensity < 0.5f)
+                }
+                .distinctUntilChanged()
+                .map { darkState ->
+                    IsAreaDark { viewBounds: Rect ->
+                        if (DarkIconDispatcher.isInAreas(darkState.areas, viewBounds)) {
+                            darkState.isDark
+                        } else {
+                            false
+                        }
+                    }
+                }
+                .conflate()
+                .distinctUntilChanged()
+    }
+}
+
+/** So we can map between [DarkState] and a single boolean, but based on intensity */
+private data class DarkStateWithoutIntensity(val areas: Collection<Rect>, val isDark: Boolean)
+
+/** Given a region on screen, determine if the foreground should be dark or light */
+fun interface IsAreaDark {
+    fun isDark(viewBounds: Rect): Boolean
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/model/DarkState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/model/DarkState.kt
index 3cab7cf..d62e025 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/model/DarkState.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/domain/model/DarkState.kt
@@ -24,4 +24,6 @@
     val areas: Collection<Rect>,
     /** Tint color to apply to UI elements that fall within [areas]. */
     val tint: Int,
+    /** _How_ dark the area is. Less than 0.5 is dark, otherwise light */
+    val darkIntensity: Float,
 )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/HomeStatusBarComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/HomeStatusBarComponent.java
index 7207d0a..4d531b5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/HomeStatusBarComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/HomeStatusBarComponent.java
@@ -20,6 +20,7 @@
 import com.android.systemui.dagger.qualifiers.DisplaySpecific;
 import com.android.systemui.dagger.qualifiers.RootView;
 import com.android.systemui.plugins.DarkIconDispatcher;
+import com.android.systemui.statusbar.core.NewStatusBarIcons;
 import com.android.systemui.statusbar.data.repository.StatusBarConfigurationController;
 import com.android.systemui.statusbar.layout.StatusBarBoundsProvider;
 import com.android.systemui.statusbar.notification.shared.NotificationsLiveDataStoreRefactor;
@@ -85,7 +86,9 @@
     default void init() {
         // No one accesses these controllers, so we need to make sure we reference them here so they
         // do get initialized.
-        getBatteryMeterViewController().init();
+        if (!NewStatusBarIcons.isEnabled()) {
+            getBatteryMeterViewController().init();
+        }
         getHeadsUpAppearanceController().init();
         getPhoneStatusBarViewController().init();
         if (!NotificationsLiveDataStoreRefactor.isEnabled()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepository.kt
new file mode 100644
index 0000000..41793d2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepository.kt
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.data.repository
+
+import android.content.Context
+import android.provider.Settings
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.shared.settings.data.repository.SystemSettingsRepository
+import com.android.systemui.statusbar.policy.BatteryController
+import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
+import javax.inject.Inject
+import kotlin.coroutines.resume
+import kotlin.time.Duration.Companion.minutes
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.scan
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+/**
+ * Repository-style state for battery information. Currently we just use the [BatteryController] as
+ * our source of truth, but we could (should?) migrate away from that eventually.
+ */
+@SysUISingleton
+class BatteryRepository
+@Inject
+constructor(
+    @Application context: Context,
+    @Background scope: CoroutineScope,
+    @Background bgDispatcher: CoroutineDispatcher,
+    private val controller: BatteryController,
+    settingsRepository: SystemSettingsRepository,
+) {
+    private val batteryState: StateFlow<BatteryCallbackState> =
+        conflatedCallbackFlow<(BatteryCallbackState) -> BatteryCallbackState> {
+                val callback =
+                    object : BatteryController.BatteryStateChangeCallback {
+                        override fun onBatteryLevelChanged(
+                            level: Int,
+                            pluggedIn: Boolean,
+                            charging: Boolean,
+                        ) {
+                            trySend { prev -> prev.copy(level = level, isPluggedIn = pluggedIn) }
+                        }
+
+                        override fun onPowerSaveChanged(isPowerSave: Boolean) {
+                            trySend { prev -> prev.copy(isPowerSaveEnabled = isPowerSave) }
+                        }
+
+                        override fun onIsBatteryDefenderChanged(isBatteryDefender: Boolean) {
+                            trySend { prev ->
+                                prev.copy(isBatteryDefenderEnabled = isBatteryDefender)
+                            }
+                        }
+
+                        override fun onBatteryUnknownStateChanged(isUnknown: Boolean) {
+                            // If the state is unknown, then all other fields are invalid
+                            trySend { prev ->
+                                if (isUnknown) {
+                                    // Forget everything before now
+                                    BatteryCallbackState(isStateUnknown = true)
+                                } else {
+                                    prev.copy(isStateUnknown = false)
+                                }
+                            }
+                        }
+                    }
+
+                controller.addCallback(callback)
+                awaitClose { controller.removeCallback(callback) }
+            }
+            .scan(initial = BatteryCallbackState()) { state, eventF -> eventF(state) }
+            .flowOn(bgDispatcher)
+            .stateIn(scope, SharingStarted.Lazily, BatteryCallbackState())
+
+    /**
+     * True if the phone is plugged in. Note that this does not always mean the device is charging
+     */
+    val isPluggedIn = batteryState.map { it.isPluggedIn }
+
+    /** Is power saver enabled */
+    val isPowerSaveEnabled = batteryState.map { it.isPowerSaveEnabled }
+
+    /** Battery defender means the device is plugged in but not charging to protect the battery */
+    val isBatteryDefenderEnabled = batteryState.map { it.isBatteryDefenderEnabled }
+
+    /** The current level [0-100] */
+    val level = batteryState.map { it.level }
+
+    /** State unknown means that we can't detect a battery */
+    val isStateUnknown = batteryState.map { it.isStateUnknown }
+
+    /**
+     * [Settings.System.SHOW_BATTERY_PERCENT]. A user setting to indicate whether we should show the
+     * battery percentage in the home screen status bar
+     */
+    val isShowBatteryPercentSettingEnabled = run {
+        val default =
+            context.resources.getBoolean(
+                com.android.internal.R.bool.config_defaultBatteryPercentageSetting
+            )
+        settingsRepository
+            .boolSetting(name = Settings.System.SHOW_BATTERY_PERCENT, defaultValue = default)
+            .flowOn(bgDispatcher)
+            .stateIn(scope, SharingStarted.Lazily, default)
+    }
+
+    /** Get and re-fetch the estimate every 2 minutes while active */
+    private val estimate: Flow<String?> = flow {
+        while (true) {
+            val estimate = fetchEstimate()
+            emit(estimate)
+            delay(2.minutes)
+        }
+    }
+
+    /**
+     * If available, this flow yields a string that describes the approximate time remaining for the
+     * current battery charge and usage information. While subscribed, the estimate is updated every
+     * 2 minutes.
+     */
+    val batteryTimeRemainingEstimate: Flow<String?> = estimate.flowOn(bgDispatcher)
+
+    private suspend fun fetchEstimate() = suspendCancellableCoroutine { continuation ->
+        val callback =
+            BatteryController.EstimateFetchCompletion { estimate -> continuation.resume(estimate) }
+
+        controller.getEstimatedTimeRemainingString(callback)
+    }
+}
+
+/** Data object to track the current battery callback state */
+private data class BatteryCallbackState(
+    val level: Int? = null,
+    val isPluggedIn: Boolean = false,
+    val isPowerSaveEnabled: Boolean = false,
+    val isBatteryDefenderEnabled: Boolean = false,
+    val isStateUnknown: Boolean = false,
+)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractor.kt
new file mode 100644
index 0000000..8fdb6ee
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractor.kt
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.domain.interactor
+
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.statusbar.pipeline.battery.data.repository.BatteryRepository
+import javax.inject.Inject
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.map
+
+@SysUISingleton
+class BatteryInteractor @Inject constructor(repo: BatteryRepository) {
+    /** The current level in the range of [0-100] */
+    val level = repo.level.filterNotNull()
+
+    /** Whether the battery has been fully charged */
+    val isFull = level.map { it >= 100 }
+
+    /**
+     * For the sake of battery views, consider it to be "charging" if plugged in. This allows users
+     * to easily confirm that the device is properly plugged in, even if its' technically not
+     * charging due to issues with the source.
+     */
+    val isCharging = repo.isPluggedIn
+
+    /**
+     * The critical level (see [CRITICAL_LEVEL]) defines the level below which we might want to
+     * display an error UI. E.g., show the battery as red.
+     */
+    val isCritical = level.map { it <= CRITICAL_LEVEL }
+
+    /** @see [BatteryRepository.isStateUnknown] for docs. The battery cannot be detected */
+    val isStateUnknown = repo.isStateUnknown
+
+    /** @see [BatteryRepository.isBatteryDefenderEnabled] */
+    val isBatteryDefenderEnabled = repo.isBatteryDefenderEnabled
+
+    /** @see [BatteryRepository.isPowerSaveEnabled] */
+    val powerSave = repo.isPowerSaveEnabled
+
+    /** @see [BatteryRepository.isShowBatteryPercentSettingEnabled] */
+    val isBatteryPercentSettingEnabled = repo.isShowBatteryPercentSettingEnabled
+
+    /**
+     * The battery attribution (@see [BatteryAttributionModel]) describes the attribution that best
+     * represents the current battery charging state. If charging, the attribution is
+     * [BatteryAttributionModel.Charging], etc.
+     *
+     * This flow can be used to canonically describe the battery state charging state.
+     */
+    val batteryAttributionType =
+        combine(isCharging, powerSave, isBatteryDefenderEnabled) { charging, powerSave, defend ->
+            if (charging) {
+                BatteryAttributionModel.Charging
+            } else if (powerSave) {
+                BatteryAttributionModel.PowerSave
+            } else if (defend) {
+                BatteryAttributionModel.Defend
+            } else {
+                null
+            }
+        }
+
+    /** @see [BatteryRepository.batteryTimeRemainingEstimate] */
+    val batteryTimeRemainingEstimate = repo.batteryTimeRemainingEstimate
+
+    companion object {
+        /** Level below which we consider to be critically low */
+        private const val CRITICAL_LEVEL = 20
+    }
+}
+
+/** The charging state, and therefore attribution for the battery */
+enum class BatteryAttributionModel {
+    Defend,
+    PowerSave,
+    Charging,
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryColors.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryColors.kt
new file mode 100644
index 0000000..d58b9a5
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryColors.kt
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.shared.ui
+
+import androidx.compose.ui.graphics.Color
+
+sealed interface BatteryColors {
+    val glyph: Color
+    val fill: Color
+    val background: Color
+
+    data object LightThemeDefaultColors : BatteryColors {
+        override val glyph = Color.White
+        override val fill = Color.Black
+        override val background = Color(0xFF8C8C8C)
+    }
+
+    data object LightThemeChargingColors : BatteryColors {
+        override val glyph = Color(0xFF446600)
+        override val fill = Color(0xFFB4FF1E)
+        override val background = Color(0xFFD6FF83)
+    }
+
+    data object LightThemeErrorColors : BatteryColors {
+        override val glyph = Color(0xFF79063A)
+        override val fill = Color(0xFFFF0166)
+        override val background = Color(0xFFFF8CBA)
+    }
+
+    data object LightThemePowerSaveColors : BatteryColors {
+        override val glyph = Color(0xFF5A4E00)
+        override val fill = Color(0xFFFFDA17)
+        override val background = Color(0xFFFFEB7F)
+    }
+
+    data object DarkThemeDefaultColors : BatteryColors {
+        override val glyph = Color.Black
+        override val fill = Color.White
+        override val background = Color(0xFFC5C5C5)
+    }
+
+    data object DarkThemeChargingColors : BatteryColors {
+        override val glyph = Color(0xFF446600)
+        override val fill = Color(0xFFB4FF1E)
+        override val background = Color(0xFFD6FF83)
+    }
+
+    data object DarkThemeErrorColors : BatteryColors {
+        override val glyph = Color(0xFF79063A)
+        override val fill = Color(0xFFFF0166)
+        override val background = Color(0xFFFF8CBA)
+    }
+
+    data object DarkThemePowerSaveColors : BatteryColors {
+        override val glyph = Color(0xFF5A4E00)
+        override val fill = Color(0xFFFFDA17)
+        override val background = Color(0xFFFFEB7F)
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryFrame.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryFrame.kt
new file mode 100644
index 0000000..02deb95
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryFrame.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.shared.ui
+
+import androidx.compose.ui.graphics.Path
+import androidx.compose.ui.graphics.addSvg
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import kotlin.math.min
+
+/** Instead of reading from xml, we can define the battery here with a single Path */
+object BatteryFrame {
+    val pathSpec =
+        PathSpec(
+            path =
+                Path().apply {
+                    addSvg(
+                        "M17.5 0H2C0.895431 0 0 0.895431 0 2V10C0 11.1046 0.89543 12 2 12H17.5C18.6046 12 19.5 11.1046 19.5 10V8H19.9231C20.5178 8 21 7.51785 21 6.92308V5.07692C21 4.48215 20.5178 4 19.9231 4H19.5V2C19.5 0.895431 18.6046 0 17.5 0Z"
+                    )
+                },
+            viewportHeight = 12.dp,
+            viewportWidth = 21.dp,
+        )
+
+    /** The width of the drawable that is usable for inside elements */
+    const val innerWidth = 19.5f
+
+    /** The height of the drawable that is usable for inside elements */
+    const val innerHeight = 12f
+}
+
+/**
+ * Encapsulates both the [Path] and the drawn dimensions of the internal SVG path. Use [scaleTo] to
+ * determine the appropriate scale factor (x and y) to fit the frame into its container
+ */
+data class PathSpec(val path: Path, val viewportWidth: Dp, val viewportHeight: Dp) {
+    /** Return the appropriate scale to achieve FIT_CENTER-type scaling */
+    fun scaleTo(w: Float, h: Float): Float {
+        // FIT_CENTER for the path, this determines how much we need to scale up to fit the bounds
+        // without skewing
+        val xScale = w / viewportWidth.value
+        val yScale = h / viewportHeight.value
+
+        return min(xScale, yScale)
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryGlyph.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryGlyph.kt
new file mode 100644
index 0000000..9be6a48
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/shared/ui/BatteryGlyph.kt
@@ -0,0 +1,318 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.shared.ui
+
+import androidx.compose.ui.graphics.Path
+import androidx.compose.ui.graphics.addSvg
+import androidx.compose.ui.graphics.drawscope.DrawScope
+
+/**
+ * *What*
+ *
+ * Here we define the glyphs that can show in the battery icon. Anything that can render inside of
+ * the composed icon must be defined here, as an svg path with a [width] and [height]. The
+ * dimensions of the glyphs should be relative to a 19.5x12 canvas.
+ *
+ * *Why*
+ *
+ * In short:
+ * 1. text rendering is too heavyweight for what we need here.
+ * 2. We don't want to rely on the existence of fonts for correctness
+ *
+ * We need _exactly_ the glyphs representing "0" -> "9", plus a small handful of attributions to
+ * render inside of the battery asset itself. Doing this with text + other svg assets means that we
+ * need to lean on the entire text rendering stack just to get 1-3 characters to show. This would
+ * also end up taking into account things like ellipsizing, which we straight up do not need.
+ *
+ * Secondly, we want this to work at all display sizes _without depending on the source font for
+ * correctness_. This icon should render correctly as if it were a collection of pre-baked svg
+ * assets.
+ *
+ * *How can I change the font*
+ *
+ * In order to customize the look of these glyphs, you can do the following:
+ * 1. Render your asset (0-9 digit, or other symbol) into a 19.5x12 canvas
+ * 2. Make sure that this asset fits in all potential other contexts 2a. If you are updating a
+ *    number, make sure it fits with all other numbers, and next to any attributions (charging
+ *    symbol, power save symbol, etc.) 2b. If you are updating a symbol, make sure likewise that it
+ *    fits next to all number pairings
+ * 3. Trace the glyph into an SVG path. _Ensure that there is no extra whitespace around the SVG
+ *    path!_
+ * 4. Update or add the glyph here, copying the SVG path and updating the [width] and [height] to
+ *    the appropriate value from the svg view box
+ *
+ * *What about localization?*
+ *
+ * Localization will be handled manually. Given that we are throwing away the text system, we will
+ * have to discern every textual variant of the 0-9 glyphs and override their values here based on
+ * the locale. This is still being worked on and the design is TBD.
+ *
+ * *Why are there "Large" variants?*
+ *
+ * To keep things simple, we just package up a given attribution potentially twice. If displaying by
+ * itself, then we can use the "large" variant of the given glyph. Else, we consider it to be inline
+ * amongst other glyphs and use the default version. The selection between which one to use happens
+ * down in the view model layer.
+ */
+
+/** Top-level, common interface. Glyphs are all defined on a 19.5x12 canvas */
+interface Glyph {
+    /** The exact width of this glyph, on the 19.5x12 canvas */
+    val width: Float
+    /** The exact height of this glyph, on the 19.5x12 canvas */
+    val height: Float
+
+    fun draw(drawScope: DrawScope, colors: BatteryColors)
+}
+
+/** If you have just a single path, we can draw you for free */
+interface SinglePathGlyph : Glyph {
+    /** A single path defines this glyph, thus its draw function is simple */
+    val path: Path
+
+    /** Draw this glyph in the given [drawScope], with the given [colors] */
+    override fun draw(drawScope: DrawScope, colors: BatteryColors) {
+        drawScope.apply { drawPath(path, color = colors.glyph) }
+    }
+}
+
+/** Text bad, glyph good */
+sealed interface BatteryGlyph : Glyph {
+    data object Bolt : BatteryGlyph, SinglePathGlyph {
+        override val path: Path =
+            Path().apply {
+                addSvg(
+                    "M2.766,4.23L1.588,6.545C1.448,6.869 1.808,7.171 2.046,6.931L5.913,3.12C6.106,2.958 6.004,2.657 5.815,2.679L3.08,2.679L4.46,0.489C4.468,0.477 4.474,0.464 4.479,0.451C4.594,0.132 4.236,-0.149 4.006,0.094L0.1,3.783C-0.068,3.921 -0.005,4.238 0.2,4.23L2.766,4.23Z"
+                )
+            }
+
+        override val width: Float = 6.01f
+        override val height: Float = 7.02f
+    }
+
+    data object BoltLarge : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M7.191,3L4.031,3L4.721,0.5C4.791,0.25 4.601,0 4.341,0C4.231,0 4.121,0.05 4.051,0.13L0.081,4.49C-0.099,4.69 0.041,5 0.311,5L3.471,5L2.781,7.5C2.711,7.75 2.901,8 3.161,8C3.271,8 3.381,7.95 3.451,7.87L7.421,3.51C7.601,3.31 7.461,3 7.191,3Z"
+                )
+            }
+
+        override val width: Float = 7.5f
+        override val height: Float = 8f
+    }
+
+    data object Plus : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M3.719,0.724C3.719,0.324 3.395,0 2.996,0C2.596,0 2.272,0.324 2.272,0.724L2.272,2.276L0.719,2.276C0.32,2.276 -0.004,2.6 -0.004,3C-0.004,3.4 0.32,3.724 0.719,3.724L2.272,3.724L2.272,5.276C2.272,5.676 2.596,6 2.996,6C3.395,6 3.719,5.676 3.719,5.276L3.719,3.724L5.272,3.724C5.672,3.724 5.996,3.4 5.996,3C5.996,2.6 5.672,2.276 5.272,2.276L3.719,2.276L3.719,0.724Z"
+                )
+            }
+
+        override val width: Float = 6f
+        override val height: Float = 6f
+    }
+
+    data object PlusLarge : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M5.586,1.086C5.586,0.486 5.1,0 4.5,0C3.9,0 3.414,0.486 3.414,1.086L3.414,3.414L1.086,3.414C0.486,3.414 0,3.9 0,4.5C0,5.1 0.486,5.586 1.086,5.586L3.414,5.586L3.414,7.914C3.414,8.514 3.9,9 4.5,9C5.1,9 5.586,8.514 5.586,7.914L5.586,5.586L7.914,5.586C8.514,5.586 9,5.1 9,4.5C9,3.9 8.514,3.414 7.914,3.414L5.586,3.414L5.586,1.086Z"
+                )
+            }
+
+        override val width: Float = 9f
+        override val height: Float = 9f
+    }
+
+    data object Defend : BatteryGlyph {
+        private val fgPath =
+            Path().apply {
+                addSvg(
+                    "M4.915,1.774C5.027,1.811 5.129,1.84 5.214,1.861C5.332,1.889 5.431,1.99 5.427,2.111C5.38,3.714 4.811,5.322 3.203,5.964L3.203,1.036C3.319,1.034 3.418,1.061 3.502,1.119C3.679,1.24 3.92,1.367 4.173,1.482C4.426,1.597 4.691,1.7 4.915,1.774Z"
+                )
+            }
+
+        private val bgPath =
+            Path().apply {
+                addSvg(
+                    "M3.602,0.118C3.373,-0.039 2.967,-0.039 2.738,0.118C2.486,0.29 2.144,0.47 1.784,0.633C1.425,0.797 1.049,0.943 0.73,1.048C0.571,1.1 0.426,1.143 0.305,1.172C0.138,1.212 -0.002,1.356 0.003,1.527C0.07,3.804 0.886,6.088 3.17,7C5.454,6.088 6.27,3.804 6.337,1.527C6.342,1.356 6.202,1.212 6.035,1.172C5.914,1.143 5.769,1.1 5.61,1.048C5.291,0.943 4.915,0.797 4.556,0.633C4.196,0.47 3.854,0.29 3.602,0.118Z"
+                )
+            }
+
+        override fun draw(drawScope: DrawScope, colors: BatteryColors) {
+            drawScope.apply {
+                // Bg path first
+                drawPath(path = bgPath, color = colors.glyph)
+                // Then fg path, so it renders on top. Use the fill color so it matches
+                drawPath(path = fgPath, color = colors.fill)
+            }
+        }
+
+        override val width = 6.33f
+        override val height = 7f
+    }
+
+    data object DefendLarge : BatteryGlyph {
+        private val fgPath =
+            Path().apply {
+                addSvg(
+                    "M3.5,6.919C4.12,6.559 5.75,5.349 5.98,2.409C5.32,2.159 4.37,1.729 3.5,1.129L3.5,6.919Z"
+                )
+            }
+
+        private val bgPath =
+            Path().apply {
+                addSvg(
+                    "M3.5,8.009C3.29,8.009 0.17,6.639 0,2.079C0,1.859 0.13,1.659 0.33,1.589C0.92,1.379 2.18,0.879 3.19,0.109C3.28,0.039 3.39,-0.001 3.5,-0.001C3.61,-0.001 3.72,0.039 3.81,0.109C4.82,0.879 6.08,1.379 6.67,1.589C6.88,1.659 7.01,1.859 7,2.079C6.83,6.639 3.71,8.009 3.5,8.009Z"
+                )
+            }
+
+        override fun draw(drawScope: DrawScope, colors: BatteryColors) {
+            drawScope.apply {
+                // Bg path first
+                drawPath(path = bgPath, color = colors.glyph)
+                // Then fg path, so it renders on top. Use the fill color so it matches
+                drawPath(path = fgPath, color = colors.fill, alpha = 1f)
+            }
+        }
+
+        override val width = 7.01f
+        override val height = 8f
+    }
+
+    data object One : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M3.308,9.524C3.044,9.524 2.816,9.429 2.626,9.238C2.435,9.047 2.34,8.818 2.34,8.549L2.34,2.517L1.339,3.141C1.135,3.262 0.916,3.304 0.682,3.265C0.448,3.221 0.266,3.1 0.136,2.901C0.01,2.705 -0.029,2.491 0.019,2.257C0.067,2.019 0.19,1.837 0.39,1.711L2.769,0.19C2.847,0.138 2.925,0.095 3.003,0.06C3.081,0.021 3.189,0.001 3.328,0.001C3.596,0.001 3.822,0.097 4.004,0.287C4.186,0.478 4.277,0.712 4.277,0.989L4.277,8.549C4.277,8.818 4.181,9.047 3.991,9.238C3.8,9.429 3.572,9.524 3.308,9.524Z"
+                )
+            }
+
+        override val width = 4.28f
+        override val height = 9.52f
+    }
+
+    data object Two : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M1.091,9.47C0.779,9.47 0.519,9.37 0.311,9.171C0.103,8.967 -0.001,8.716 -0.001,8.417C-0.001,8.274 0.021,8.157 0.064,8.066C0.107,7.975 0.155,7.891 0.207,7.813L2.131,4.562C2.378,4.181 2.577,3.839 2.729,3.535C2.881,3.228 2.957,2.946 2.957,2.69L2.957,2.398C2.957,2.173 2.907,1.999 2.807,1.878C2.712,1.757 2.564,1.696 2.365,1.696C2.222,1.696 2.103,1.737 2.008,1.819C1.912,1.898 1.839,2.006 1.787,2.144C1.735,2.279 1.674,2.42 1.605,2.567C1.535,2.714 1.418,2.827 1.254,2.905C1.093,2.983 0.913,3 0.714,2.957C0.515,2.914 0.35,2.803 0.22,2.625C0.09,2.443 0.036,2.229 0.058,1.982C0.084,1.731 0.188,1.438 0.37,1.105C0.556,0.771 0.822,0.504 1.169,0.305C1.516,0.101 1.96,-0.001 2.502,-0.001C3.217,-0.001 3.795,0.199 4.237,0.598C4.683,0.996 4.906,1.551 4.906,2.261L4.906,2.502C4.906,2.935 4.818,3.358 4.64,3.77C4.462,4.181 4.222,4.619 3.918,5.083L2.411,7.702L2.437,7.748L4.302,7.748C4.54,7.748 4.744,7.832 4.913,8.001C5.086,8.17 5.173,8.372 5.173,8.606C5.173,8.844 5.086,9.048 4.913,9.217C4.744,9.385 4.54,9.47 4.302,9.47L1.091,9.47Z"
+                )
+            }
+
+        override val width = 5.17f
+        override val height = 9.47f
+    }
+
+    data object Three : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M2.433,9.633C1.883,9.633 1.434,9.531 1.088,9.327C0.741,9.123 0.473,8.842 0.282,8.482C0.096,8.122 0,7.826 -0.004,7.592C-0.004,7.353 0.059,7.154 0.184,6.993C0.314,6.833 0.477,6.731 0.672,6.688C0.867,6.645 1.044,6.66 1.205,6.733C1.365,6.807 1.48,6.905 1.549,7.026C1.623,7.147 1.686,7.284 1.738,7.436C1.79,7.587 1.866,7.715 1.965,7.819C2.065,7.923 2.204,7.975 2.381,7.975C2.594,7.975 2.763,7.904 2.888,7.76C3.014,7.613 3.077,7.384 3.077,7.071L3.077,6.298C3.077,5.973 3.01,5.741 2.875,5.602C2.745,5.464 2.555,5.394 2.303,5.394L2.154,5.394C1.954,5.394 1.781,5.321 1.634,5.174C1.491,5.026 1.419,4.851 1.419,4.647C1.419,4.443 1.489,4.27 1.627,4.127C1.77,3.98 1.939,3.906 2.134,3.906L2.277,3.906C2.511,3.906 2.68,3.839 2.784,3.704C2.893,3.566 2.947,3.334 2.947,3.009L2.947,2.391C2.947,2.118 2.895,1.921 2.791,1.8C2.691,1.679 2.548,1.618 2.362,1.618C2.214,1.618 2.095,1.655 2.004,1.728C1.918,1.798 1.848,1.895 1.796,2.021C1.749,2.147 1.692,2.264 1.627,2.372C1.562,2.48 1.45,2.571 1.289,2.645C1.129,2.714 0.956,2.73 0.769,2.69C0.587,2.647 0.431,2.545 0.301,2.385C0.176,2.22 0.122,2.01 0.139,1.754C0.161,1.499 0.267,1.224 0.457,0.929C0.652,0.634 0.912,0.407 1.237,0.246C1.567,0.082 1.974,-0.001 2.459,-0.001C3.183,-0.001 3.755,0.188 4.175,0.565C4.6,0.942 4.812,1.453 4.812,2.099L4.812,2.573C4.812,3.089 4.7,3.503 4.474,3.815C4.249,4.123 3.928,4.346 3.512,4.484L3.512,4.536C3.998,4.632 4.37,4.844 4.63,5.174C4.895,5.498 5.027,5.96 5.027,6.558L5.027,7.163C5.027,7.938 4.793,8.545 4.325,8.983C3.861,9.416 3.231,9.633 2.433,9.633Z"
+                )
+            }
+
+        override val width = 5.03f
+        override val height = 9.63f
+    }
+
+    data object Four : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M3.839,9.544C3.579,9.544 3.356,9.451 3.169,9.264C2.987,9.078 2.896,8.855 2.896,8.595L2.896,6.691L3.078,6.457L3.078,1.926L4.099,2.556L3.065,2.556L1.668,5.93L3.709,5.93L4.099,5.819L4.892,5.819C5.121,5.819 5.319,5.902 5.483,6.066C5.652,6.227 5.737,6.422 5.737,6.652C5.737,6.881 5.652,7.078 5.483,7.243C5.319,7.408 5.121,7.49 4.892,7.49L1.174,7.49C0.84,7.49 0.561,7.382 0.335,7.165C0.11,6.944 -0.003,6.673 -0.003,6.352C-0.003,6.205 0.015,6.099 0.049,6.034C0.084,5.969 0.121,5.898 0.16,5.819L2.461,0.717C2.552,0.526 2.699,0.359 2.903,0.216C3.111,0.073 3.334,0.002 3.572,0.002C3.906,0.002 4.19,0.123 4.424,0.366C4.662,0.609 4.781,0.901 4.781,1.243L4.781,8.595C4.781,8.855 4.688,9.078 4.502,9.264C4.315,9.451 4.094,9.544 3.839,9.544Z"
+                )
+            }
+
+        override val width = 5.74f
+        override val height = 9.54f
+    }
+
+    data object Five : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M2.442,9.473C1.935,9.473 1.51,9.388 1.168,9.219C0.826,9.05 0.555,8.818 0.356,8.524C0.156,8.225 0.042,7.926 0.011,7.627C-0.015,7.328 0.039,7.089 0.174,6.912C0.312,6.734 0.477,6.625 0.668,6.587C0.863,6.548 1.036,6.563 1.188,6.632C1.344,6.701 1.456,6.792 1.526,6.905C1.595,7.013 1.658,7.141 1.714,7.289C1.775,7.432 1.853,7.553 1.948,7.653C2.043,7.748 2.176,7.796 2.345,7.796C2.561,7.796 2.73,7.72 2.852,7.568C2.977,7.416 3.04,7.159 3.04,6.795L3.04,5.716C3.04,5.382 2.982,5.146 2.865,5.007C2.752,4.864 2.598,4.793 2.403,4.793C2.265,4.793 2.152,4.825 2.065,4.89C1.983,4.951 1.907,5.031 1.838,5.131C1.755,5.235 1.63,5.315 1.461,5.371C1.296,5.427 1.103,5.425 0.882,5.365C0.657,5.299 0.477,5.165 0.343,4.962C0.208,4.754 0.15,4.533 0.167,4.299L0.369,1.062C0.39,0.776 0.514,0.529 0.739,0.321C0.965,0.108 1.222,0.002 1.513,0.002L3.82,0.002C4.058,0.002 4.262,0.087 4.431,0.256C4.6,0.425 4.685,0.626 4.685,0.86C4.685,1.098 4.6,1.302 4.431,1.471C4.262,1.64 4.058,1.724 3.82,1.724L1.896,1.724L1.753,3.85L1.805,3.863C1.944,3.703 2.119,3.575 2.332,3.48C2.548,3.384 2.795,3.337 3.073,3.337C3.662,3.337 4.13,3.551 4.477,3.98C4.823,4.409 4.997,5.029 4.997,5.839L4.997,6.717C4.997,7.618 4.771,8.303 4.321,8.771C3.87,9.239 3.244,9.473 2.442,9.473Z"
+                )
+            }
+
+        override val width = 4.99f
+        override val height = 9.47f
+    }
+
+    data object Six : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M2.628,9.519C1.795,9.519 1.15,9.268 0.69,8.765C0.231,8.262 0.001,7.56 0.001,6.659L0.001,5.99C0.001,5.383 0.09,4.83 0.268,4.332C0.45,3.829 0.742,3.231 1.145,2.538L2.289,0.445C2.411,0.233 2.591,0.094 2.829,0.029C3.067,-0.036 3.293,-0.006 3.505,0.12C3.722,0.246 3.858,0.432 3.915,0.679C3.975,0.922 3.936,1.151 3.798,1.368L3.161,2.59C2.944,2.967 2.662,3.318 2.316,3.643C1.969,3.964 1.73,4.726 1.6,5.931L0.339,6.016C0.374,5.231 0.643,4.603 1.145,4.13C1.648,3.658 2.289,3.422 3.069,3.422C3.702,3.422 4.222,3.647 4.629,4.098C5.037,4.544 5.24,5.188 5.24,6.029L5.24,6.711C5.24,7.569 5.009,8.251 4.545,8.758C4.081,9.265 3.442,9.519 2.628,9.519ZM2.621,7.907C2.855,7.907 3.033,7.822 3.154,7.654C3.275,7.48 3.336,7.207 3.336,6.834L3.336,5.976C3.336,5.621 3.275,5.352 3.154,5.17C3.033,4.989 2.855,4.897 2.621,4.897C2.391,4.897 2.216,4.989 2.095,5.17C1.973,5.352 1.913,5.623 1.913,5.983L1.913,6.834C1.913,7.207 1.973,7.48 2.095,7.654C2.216,7.822 2.391,7.907 2.621,7.907Z"
+                )
+            }
+
+        override val width = 5.24f
+        override val height = 9.52f
+    }
+
+    data object Seven : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M1.481,9.278C1.234,9.187 1.056,9.02 0.948,8.777C0.839,8.53 0.835,8.283 0.935,8.036L3.112,1.77L3.093,1.724L0.87,1.724C0.632,1.724 0.426,1.64 0.252,1.471C0.083,1.298 -0.001,1.094 -0.001,0.86C-0.001,0.626 0.083,0.425 0.252,0.256C0.426,0.087 0.632,0.002 0.87,0.002L4.191,0.002C4.503,0.002 4.763,0.104 4.971,0.308C5.184,0.511 5.29,0.763 5.29,1.062C5.29,1.205 5.277,1.315 5.251,1.393C5.225,1.467 5.19,1.582 5.147,1.737L2.709,8.712C2.618,8.963 2.452,9.145 2.209,9.258C1.971,9.366 1.728,9.373 1.481,9.278Z"
+                )
+            }
+
+        override val width = 5.29f
+        override val height = 9.34f
+    }
+
+    data object Eight : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M2.611,9.633C1.788,9.633 1.147,9.411 0.687,8.97C0.228,8.528 -0.002,7.945 -0.002,7.221L-0.002,6.538C-0.002,6.019 0.117,5.592 0.356,5.258C0.594,4.92 0.913,4.679 1.311,4.536L1.311,4.484C0.973,4.342 0.7,4.123 0.492,3.828C0.289,3.533 0.187,3.158 0.187,2.704L0.187,2.19C0.187,1.527 0.406,0.996 0.843,0.598C1.285,0.199 1.875,-0.001 2.611,-0.001C3.344,-0.001 3.929,0.194 4.366,0.584C4.808,0.974 5.029,1.51 5.029,2.19L5.029,2.704C5.029,3.167 4.921,3.546 4.704,3.841C4.492,4.136 4.223,4.35 3.898,4.484L3.898,4.536C4.301,4.679 4.622,4.918 4.86,5.252C5.099,5.581 5.218,6.01 5.218,6.538L5.218,7.215C5.218,7.947 4.99,8.534 4.535,8.976C4.085,9.414 3.443,9.633 2.611,9.633ZM2.611,8.008C2.837,8.008 3.01,7.93 3.131,7.774C3.257,7.618 3.32,7.386 3.32,7.078L3.32,6.181C3.32,5.873 3.257,5.646 3.131,5.498C3.01,5.347 2.837,5.271 2.611,5.271C2.377,5.271 2.2,5.347 2.078,5.498C1.957,5.646 1.896,5.873 1.896,6.181L1.896,7.078C1.896,7.386 1.957,7.618 2.078,7.774C2.204,7.93 2.382,8.008 2.611,8.008ZM2.605,3.958C2.813,3.958 2.969,3.889 3.073,3.75C3.181,3.607 3.235,3.405 3.235,3.145L3.235,2.405C3.235,2.136 3.181,1.934 3.073,1.8C2.964,1.666 2.811,1.598 2.611,1.598C2.408,1.598 2.252,1.666 2.143,1.8C2.035,1.934 1.981,2.136 1.981,2.405L1.981,3.145C1.981,3.405 2.033,3.607 2.137,3.75C2.245,3.889 2.401,3.958 2.605,3.958Z"
+                )
+            }
+
+        override val width = 5.22f
+        override val height = 9.63f
+    }
+
+    data object Nine : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M2.612,0.003C3.444,0.003 4.089,0.254 4.549,0.757C5.008,1.26 5.238,1.962 5.238,2.863L5.238,3.532C5.238,4.139 5.147,4.694 4.965,5.196C4.787,5.695 4.495,6.291 4.087,6.984L2.95,9.077C2.828,9.289 2.648,9.428 2.41,9.493C2.172,9.558 1.947,9.528 1.734,9.402C1.518,9.276 1.379,9.092 1.318,8.85C1.262,8.603 1.303,8.371 1.442,8.154L2.079,6.932C2.295,6.555 2.577,6.206 2.924,5.885C3.27,5.561 3.509,4.796 3.639,3.591L4.9,3.507C4.861,4.291 4.59,4.919 4.087,5.391C3.589,5.864 2.95,6.1 2.17,6.1C1.537,6.1 1.017,5.877 0.61,5.431C0.202,4.98 -0.001,4.334 -0.001,3.493L-0.001,2.811C-0.001,1.953 0.231,1.27 0.694,0.763C1.158,0.256 1.797,0.003 2.612,0.003ZM2.618,1.615C2.384,1.615 2.207,1.702 2.085,1.875C1.964,2.044 1.903,2.315 1.903,2.687L1.903,3.545C1.903,3.901 1.964,4.169 2.085,4.352C2.207,4.534 2.384,4.624 2.618,4.624C2.848,4.624 3.023,4.534 3.145,4.352C3.266,4.169 3.327,3.899 3.327,3.539L3.327,2.687C3.327,2.315 3.266,2.044 3.145,1.875C3.023,1.702 2.848,1.615 2.618,1.615Z"
+                )
+            }
+
+        override val width = 5.24f
+        override val height = 9.52f
+    }
+
+    data object Zero : BatteryGlyph, SinglePathGlyph {
+        override val path =
+            Path().apply {
+                addSvg(
+                    "M2.728,9.633C1.87,9.633 1.201,9.318 0.72,8.69C0.239,8.062 -0.002,7.071 -0.002,5.719L-0.002,3.906C-0.002,2.554 0.239,1.566 0.72,0.942C1.201,0.314 1.87,-0.001 2.728,-0.001C3.587,-0.001 4.256,0.314 4.737,0.942C5.218,1.566 5.458,2.552 5.458,3.9L5.458,5.719C5.458,7.067 5.214,8.057 4.724,8.69C4.239,9.318 3.574,9.633 2.728,9.633ZM2.728,7.878C2.98,7.878 3.168,7.758 3.294,7.52C3.424,7.277 3.489,6.848 3.489,6.233L3.489,3.399C3.489,2.784 3.426,2.357 3.3,2.118C3.175,1.876 2.984,1.754 2.728,1.754C2.473,1.754 2.282,1.876 2.156,2.118C2.035,2.357 1.975,2.784 1.975,3.399L1.975,6.233C1.975,6.848 2.037,7.277 2.163,7.52C2.293,7.758 2.482,7.878 2.728,7.878Z"
+                )
+            }
+
+        override val width = 5.46f
+        override val height = 9.63f
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/binder/UnifiedBatteryViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/binder/UnifiedBatteryViewBinder.kt
new file mode 100644
index 0000000..9665c33
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/binder/UnifiedBatteryViewBinder.kt
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.binder
+
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
+import androidx.compose.runtime.getValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.platform.ViewCompositionStrategy
+import androidx.core.view.isVisible
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import androidx.lifecycle.repeatOnLifecycle
+import com.android.systemui.lifecycle.repeatWhenAttached
+import com.android.systemui.statusbar.phone.domain.interactor.IsAreaDark
+import com.android.systemui.statusbar.pipeline.battery.ui.composable.UnifiedBattery
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel.Companion.STATUS_BAR_BATTERY_HEIGHT
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel.Companion.STATUS_BAR_BATTERY_WIDTH
+import kotlinx.coroutines.flow.Flow
+
+/** In cases where the battery needs to be bound to an existing android view */
+object UnifiedBatteryViewBinder {
+    /** Seats the [UnifiedBattery] into the given [ComposeView] root. */
+    @JvmStatic
+    fun bind(
+        view: ComposeView,
+        viewModelFactory: BatteryViewModel.Factory,
+        isAreaDark: Flow<IsAreaDark>,
+    ) {
+        view.repeatWhenAttached {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                view.apply {
+                    isVisible = true
+                    setViewCompositionStrategy(
+                        ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed
+                    )
+                    setContent {
+                        val isDark by isAreaDark.collectAsStateWithLifecycle(IsAreaDark { true })
+                        UnifiedBattery(
+                            modifier =
+                                Modifier.height(STATUS_BAR_BATTERY_HEIGHT)
+                                    .width(STATUS_BAR_BATTERY_WIDTH),
+                            viewModelFactory = viewModelFactory,
+                            isDark = isDark,
+                        )
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/composable/BatteryWithEstimate.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/composable/BatteryWithEstimate.kt
new file mode 100644
index 0000000..ac793a9
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/composable/BatteryWithEstimate.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.composable
+
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.aspectRatio
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.dp
+import com.android.systemui.lifecycle.rememberViewModel
+import com.android.systemui.statusbar.phone.domain.interactor.IsAreaDark
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
+
+@Composable
+fun BatteryWithEstimate(
+    viewModelFactory: BatteryViewModel.Factory,
+    isDark: IsAreaDark,
+    showEstimate: Boolean,
+    modifier: Modifier = Modifier,
+) {
+    val viewModel =
+        rememberViewModel(traceName = "BatteryWithEstimate") { viewModelFactory.create() }
+
+    Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
+        UnifiedBattery(
+            viewModelFactory = viewModelFactory,
+            isDark = isDark,
+            modifier =
+                Modifier.fillMaxHeight()
+                    .padding(vertical = 2.dp)
+                    .align(Alignment.Bottom)
+                    .aspectRatio(viewModel.aspectRatio),
+        )
+        if (showEstimate) {
+            viewModel.batteryTimeRemainingEstimate?.let {
+                Spacer(modifier.width(4.dp))
+                Text(text = it, color = Color.White)
+            }
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/composable/UnifiedBattery.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/composable/UnifiedBattery.kt
new file mode 100644
index 0000000..732ea6a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/composable/UnifiedBattery.kt
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.composable
+
+import android.graphics.Rect
+import androidx.compose.foundation.Canvas
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableFloatStateOf
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.CornerRadius
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.geometry.Size
+import androidx.compose.ui.graphics.drawscope.clipRect
+import androidx.compose.ui.graphics.drawscope.inset
+import androidx.compose.ui.graphics.drawscope.scale
+import androidx.compose.ui.layout.onLayoutRectChanged
+import com.android.systemui.common.ui.compose.load
+import com.android.systemui.lifecycle.rememberViewModel
+import com.android.systemui.statusbar.phone.domain.interactor.IsAreaDark
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryColors
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryFrame
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryGlyph
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.PathSpec
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
+import kotlin.math.ceil
+
+/**
+ * Draws a battery directly on to a [Canvas]. The canvas is scaled to fill its container, and the
+ * resulting battery is scaled using a FIT_CENTER type scaling that preserves the aspect ratio.
+ */
+@Composable
+fun BatteryCanvas(
+    path: PathSpec,
+    innerWidth: Float,
+    innerHeight: Float,
+    glyphs: List<BatteryGlyph>,
+    level: Int,
+    isFull: Boolean,
+    colorsProvider: () -> BatteryColors,
+    modifier: Modifier = Modifier,
+    contentDescription: String = "",
+) {
+
+    val totalWidth by
+        remember(glyphs) {
+            mutableFloatStateOf(
+                if (glyphs.isEmpty()) {
+                    0f
+                } else {
+                    // Pads in between each glyph, skipping the first
+                    glyphs.drop(1).fold(glyphs.first().width) { acc: Float, next: BatteryGlyph ->
+                        acc + INTER_GLYPH_PADDING_PX + next.width
+                    }
+                }
+            )
+        }
+
+    Canvas(modifier = modifier.fillMaxSize(), contentDescription = contentDescription) {
+        val scale = path.scaleTo(size.width, size.height)
+        val colors = colorsProvider()
+
+        scale(scale, pivot = Offset.Zero) {
+            if (isFull) {
+                // Saves a layer since we don't need background here
+                drawPath(path = path.path, color = colors.fill)
+            } else {
+                // First draw the body
+                drawPath(path.path, colors.background)
+                // Then draw the body, clipped to the fill level
+                clipRect(0f, 0f, innerWidth, innerHeight) {
+                    drawRoundRect(
+                        color = colors.fill,
+                        topLeft = Offset.Zero,
+                        size = Size(width = level.scaledLevel(), height = innerHeight),
+                        cornerRadius = CornerRadius(2f),
+                    )
+                }
+            }
+
+            // Now draw the glyphs
+            var horizontalOffset = (BatteryFrame.innerWidth - totalWidth) / 2
+            for (glyph in glyphs) {
+                // Move the glyph to the right spot
+                val verticalOffset = (BatteryFrame.innerHeight - glyph.height) / 2
+                inset(horizontalOffset, verticalOffset) { glyph.draw(this, colors) }
+
+                horizontalOffset += glyph.width + INTER_GLYPH_PADDING_PX
+            }
+        }
+    }
+}
+
+// Experimentally-determined value
+private const val INTER_GLYPH_PADDING_PX = 0.8f
+
+@Composable
+fun UnifiedBattery(
+    viewModelFactory: BatteryViewModel.Factory,
+    isDark: IsAreaDark,
+    modifier: Modifier = Modifier,
+) {
+    val viewModel = rememberViewModel(traceName = "UnifiedBattery") { viewModelFactory.create() }
+    val path = viewModel.batteryFrame
+
+    var bounds by remember { mutableStateOf(Rect()) }
+
+    val colorProvider = {
+        if (isDark.isDark(bounds)) {
+            viewModel.colorProfile.dark
+        } else {
+            viewModel.colorProfile.light
+        }
+    }
+
+    BatteryCanvas(
+        path = path,
+        innerWidth = viewModel.innerWidth,
+        innerHeight = viewModel.innerHeight,
+        glyphs = viewModel.glyphList,
+        level = viewModel.level,
+        isFull = viewModel.isFull,
+        colorsProvider = colorProvider,
+        modifier =
+            modifier.onLayoutRectChanged { relativeLayoutBounds ->
+                bounds =
+                    with(relativeLayoutBounds.boundsInScreen) { Rect(left, top, right, bottom) }
+            },
+        contentDescription = viewModel.contentDescription.load() ?: "",
+    )
+}
+
+/** Calculate the right-edge of the clip for the fill-rect, based on a level of [0-100] */
+private fun Int.scaledLevel(): Float {
+    val endSide = BatteryFrame.innerWidth
+    return ceil((toFloat() / 100f) * endSide)
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/model/AttributionGlyph.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/model/AttributionGlyph.kt
new file mode 100644
index 0000000..aef8afe
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/model/AttributionGlyph.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.model
+
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryGlyph
+
+/**
+ * Wrapper around potentially 2 glpyhs. This will allow the composable to draw the larger one if it
+ * is the only one displayed. For example, if the percentage is not showing and the device is
+ * plugged in, then we can show the larger charging bolt.
+ */
+data class AttributionGlyph(
+    /** Can be used when this glyph is alongside any others */
+    val inline: BatteryGlyph,
+    /** Can be used when this glyph is the only foreground element */
+    val standalone: BatteryGlyph,
+)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModel.kt
new file mode 100644
index 0000000..afd4bb1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModel.kt
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.viewmodel
+
+import android.content.Context
+import androidx.compose.runtime.getValue
+import androidx.compose.ui.unit.dp
+import com.android.systemui.common.shared.model.ContentDescription
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.lifecycle.ExclusiveActivatable
+import com.android.systemui.lifecycle.Hydrator
+import com.android.systemui.res.R
+import com.android.systemui.statusbar.pipeline.battery.domain.interactor.BatteryAttributionModel.Charging
+import com.android.systemui.statusbar.pipeline.battery.domain.interactor.BatteryAttributionModel.Defend
+import com.android.systemui.statusbar.pipeline.battery.domain.interactor.BatteryAttributionModel.PowerSave
+import com.android.systemui.statusbar.pipeline.battery.domain.interactor.BatteryInteractor
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryColors
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryFrame
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryGlyph
+import com.android.systemui.statusbar.pipeline.battery.ui.model.AttributionGlyph
+import dagger.assisted.AssistedFactory
+import dagger.assisted.AssistedInject
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.map
+
+/** View-model for the unified, compose-based battery icon. */
+@OptIn(ExperimentalCoroutinesApi::class)
+class BatteryViewModel
+@AssistedInject
+constructor(interactor: BatteryInteractor, @Application context: Context) : ExclusiveActivatable() {
+    private val hydrator: Hydrator = Hydrator("BatteryViewModel.hydrator")
+
+    val batteryFrame = BatteryFrame.pathSpec
+    val innerWidth = BatteryFrame.innerWidth
+    val innerHeight = BatteryFrame.innerHeight
+    val aspectRatio = BatteryFrame.innerWidth / BatteryFrame.innerHeight
+
+    val level by
+        hydrator.hydratedStateOf(traceName = "level", initialValue = 0, source = interactor.level)
+
+    val isFull by
+        hydrator.hydratedStateOf(
+            traceName = "isFull",
+            initialValue = false,
+            source = interactor.isFull,
+        )
+
+    /** The current attribution, if any */
+    private val attributionGlyph: Flow<AttributionGlyph?> =
+        interactor.batteryAttributionType.map {
+            when (it) {
+                Charging ->
+                    AttributionGlyph(
+                        inline = BatteryGlyph.Bolt,
+                        standalone = BatteryGlyph.BoltLarge,
+                    )
+
+                PowerSave ->
+                    AttributionGlyph(
+                        inline = BatteryGlyph.Plus,
+                        standalone = BatteryGlyph.PlusLarge,
+                    )
+
+                Defend ->
+                    AttributionGlyph(
+                        inline = BatteryGlyph.Defend,
+                        standalone = BatteryGlyph.DefendLarge,
+                    )
+
+                else -> null
+            }
+        }
+
+    /** A [List<BatteryGlyph>] representation of the current [level] */
+    private val levelGlyphs: Flow<List<BatteryGlyph>> =
+        interactor.level.map { it.glyphRepresentation() }
+
+    private val _glyphList: Flow<List<BatteryGlyph>> =
+        interactor.isBatteryPercentSettingEnabled.flatMapLatest {
+            if (it) {
+                combine(interactor.isFull, levelGlyphs, attributionGlyph) {
+                    isFull,
+                    levelGlyphs,
+                    attr ->
+                    // Don't ever show "100<attr>", since it won't fit. Just show the attr
+                    if (isFull && attr != null) {
+                        listOf(attr.standalone)
+                    } else if (attr != null) {
+                        levelGlyphs + attr.inline
+                    } else {
+                        levelGlyphs
+                    }
+                }
+            } else {
+                attributionGlyph.map { attr ->
+                    if (attr == null) {
+                        emptyList()
+                    } else {
+                        listOf(attr.standalone)
+                    }
+                }
+            }
+        }
+
+    /** For the status bar battery, this is the complete set of glyphs to show */
+    val glyphList: List<BatteryGlyph> by
+        hydrator.hydratedStateOf(
+            traceName = "glyphList",
+            initialValue = emptyList(),
+            source = _glyphList,
+        )
+
+    private val _colorProfile: Flow<ColorProfile> =
+        combine(interactor.batteryAttributionType, interactor.isCritical) { attr, isCritical ->
+            when (attr) {
+                Charging,
+                Defend ->
+                    ColorProfile(
+                        dark = BatteryColors.DarkThemeChargingColors,
+                        light = BatteryColors.LightThemeChargingColors,
+                    )
+                PowerSave ->
+                    ColorProfile(
+                        dark = BatteryColors.DarkThemePowerSaveColors,
+                        light = BatteryColors.LightThemePowerSaveColors,
+                    )
+                else ->
+                    if (isCritical) {
+                        ColorProfile(
+                            dark = BatteryColors.DarkThemeErrorColors,
+                            light = BatteryColors.LightThemeErrorColors,
+                        )
+                    } else {
+                        ColorProfile(
+                            dark = BatteryColors.DarkThemeDefaultColors,
+                            light = BatteryColors.LightThemeDefaultColors,
+                        )
+                    }
+            }
+        }
+
+    /** For the current battery state, what is the relevant color profile to use */
+    val colorProfile: ColorProfile by
+        hydrator.hydratedStateOf(
+            traceName = "colorProfile",
+            initialValue =
+                ColorProfile(
+                    dark = BatteryColors.DarkThemeDefaultColors,
+                    light = BatteryColors.LightThemeDefaultColors,
+                ),
+            source = _colorProfile,
+        )
+
+    val contentDescription: ContentDescription by
+        hydrator.hydratedStateOf(
+            traceName = "contentDescription",
+            initialValue = ContentDescription.Loaded(null),
+            source =
+                combine(
+                    interactor.batteryAttributionType,
+                    interactor.isStateUnknown,
+                    interactor.level,
+                ) { attr, isUnknown, level ->
+                    when {
+                        isUnknown ->
+                            ContentDescription.Resource(R.string.accessibility_battery_unknown)
+                        attr == Defend -> {
+                            val descr =
+                                context.getString(
+                                    R.string.accessibility_battery_level_charging_paused,
+                                    level,
+                                )
+
+                            ContentDescription.Loaded(descr)
+                        }
+                        attr == Charging -> {
+                            val descr =
+                                context.getString(
+                                    R.string.accessibility_battery_level_charging,
+                                    level,
+                                )
+                            ContentDescription.Loaded(descr)
+                        }
+                        else -> {
+                            val descr =
+                                context.getString(R.string.accessibility_battery_level, level)
+                            ContentDescription.Loaded(descr)
+                        }
+                    }
+                },
+        )
+
+    val batteryTimeRemainingEstimate: String? by
+        hydrator.hydratedStateOf(
+            traceName = "timeRemainingEstimate",
+            initialValue = null,
+            source = interactor.batteryTimeRemainingEstimate,
+        )
+
+    override suspend fun onActivated(): Nothing {
+        hydrator.activate()
+    }
+
+    @AssistedFactory
+    interface Factory {
+        fun create(): BatteryViewModel
+    }
+
+    companion object {
+        // Status bar battery height, based on a 21x12 base canvas
+        val STATUS_BAR_BATTERY_HEIGHT = 13.dp
+        val STATUS_BAR_BATTERY_WIDTH = 22.75.dp
+
+        fun Int.glyphRepresentation(): List<BatteryGlyph> = toString().map { it.toGlyph() }
+
+        private fun Char.toGlyph(): BatteryGlyph =
+            when (this) {
+                '0' -> BatteryGlyph.Zero
+                '1' -> BatteryGlyph.One
+                '2' -> BatteryGlyph.Two
+                '3' -> BatteryGlyph.Three
+                '4' -> BatteryGlyph.Four
+                '5' -> BatteryGlyph.Five
+                '6' -> BatteryGlyph.Six
+                '7' -> BatteryGlyph.Seven
+                '8' -> BatteryGlyph.Eight
+                '9' -> BatteryGlyph.Nine
+                else -> throw IllegalArgumentException("cannot make glyph from char ($this)")
+            }
+    }
+}
+
+/** Wrap the light and dark color into a single object so the view can decide which one it needs */
+data class ColorProfile(val dark: BatteryColors, val light: BatteryColors)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt
index acce642..9c9d41e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt
@@ -157,12 +157,12 @@
                             )
                             if (StatusBarRootModernization.isEnabled) {
                                 when (primaryChipModel) {
-                                    is OngoingActivityChipModel.Shown ->
+                                    is OngoingActivityChipModel.Active ->
                                         primaryChipViewBinding.rootView.show(
                                             shouldAnimateChange = true
                                         )
 
-                                    is OngoingActivityChipModel.Hidden ->
+                                    is OngoingActivityChipModel.Inactive ->
                                         primaryChipViewBinding.rootView.hide(
                                             state = View.GONE,
                                             shouldAnimateChange = primaryChipModel.shouldAnimate,
@@ -170,14 +170,14 @@
                                 }
                             } else {
                                 when (primaryChipModel) {
-                                    is OngoingActivityChipModel.Shown ->
+                                    is OngoingActivityChipModel.Active ->
                                         listener?.onOngoingActivityStatusChanged(
                                             hasPrimaryOngoingActivity = true,
                                             hasSecondaryOngoingActivity = false,
                                             shouldAnimate = true,
                                         )
 
-                                    is OngoingActivityChipModel.Hidden ->
+                                    is OngoingActivityChipModel.Inactive ->
                                         listener?.onOngoingActivityStatusChanged(
                                             hasPrimaryOngoingActivity = false,
                                             hasSecondaryOngoingActivity = false,
@@ -199,7 +199,7 @@
                             view.requireViewById(R.id.ongoing_activity_chip_secondary)
                         )
                     launch {
-                        viewModel.ongoingActivityChips.collectLatest { chips ->
+                        viewModel.ongoingActivityChipsLegacy.collectLatest { chips ->
                             OngoingActivityChipBinder.bind(
                                 chips.primary,
                                 primaryChipViewBinding,
@@ -221,9 +221,9 @@
                             } else {
                                 listener?.onOngoingActivityStatusChanged(
                                     hasPrimaryOngoingActivity =
-                                        chips.primary is OngoingActivityChipModel.Shown,
+                                        chips.primary is OngoingActivityChipModel.Active,
                                     hasSecondaryOngoingActivity =
-                                        chips.secondary is OngoingActivityChipModel.Shown,
+                                        chips.secondary is OngoingActivityChipModel.Active,
                                     // TODO(b/364653005): Figure out the animation story here.
                                     shouldAnimate = true,
                                 )
@@ -232,11 +232,11 @@
                             viewModel.contentArea.collect { _ ->
                                 OngoingActivityChipBinder.resetPrimaryChipWidthRestrictions(
                                     primaryChipViewBinding,
-                                    viewModel.ongoingActivityChips.value.primary,
+                                    viewModel.ongoingActivityChipsLegacy.value.primary,
                                 )
                                 OngoingActivityChipBinder.resetSecondaryChipWidthRestrictions(
                                     secondaryChipViewBinding,
-                                    viewModel.ongoingActivityChips.value.secondary,
+                                    viewModel.ongoingActivityChipsLegacy.value.secondary,
                                 )
                                 view.requestLayout()
                             }
@@ -321,7 +321,7 @@
 
     private fun OngoingActivityChipModel.toVisibilityModel(): VisibilityModel {
         return VisibilityModel(
-            visibility = if (this is OngoingActivityChipModel.Shown) View.VISIBLE else View.GONE,
+            visibility = if (this is OngoingActivityChipModel.Active) View.VISIBLE else View.GONE,
             // TODO(b/364653005): Figure out the animation story here.
             shouldAnimateChange = true,
         )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt
index 9d72daf..a961713 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt
@@ -23,6 +23,8 @@
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.ui.Alignment
@@ -34,15 +36,20 @@
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.theme.PlatformTheme
 import com.android.keyguard.AlphaOptimizedLinearLayout
+import com.android.systemui.lifecycle.rememberViewModel
 import com.android.systemui.plugins.DarkIconDispatcher
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.chips.ui.compose.OngoingActivityChips
+import com.android.systemui.statusbar.core.NewStatusBarIcons
+import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
 import com.android.systemui.statusbar.core.StatusBarRootModernization
 import com.android.systemui.statusbar.data.repository.DarkIconDispatcherStore
 import com.android.systemui.statusbar.events.domain.interactor.SystemStatusEventAnimationInteractor
 import com.android.systemui.statusbar.featurepods.popups.StatusBarPopupChips
 import com.android.systemui.statusbar.featurepods.popups.ui.compose.StatusBarPopupChipsContainer
+import com.android.systemui.statusbar.notification.icon.ui.viewbinder.ConnectedDisplaysStatusBarNotificationIconViewStore
 import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerStatusBarViewBinder
+import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder
 import com.android.systemui.statusbar.phone.NotificationIconContainer
 import com.android.systemui.statusbar.phone.PhoneStatusBarView
 import com.android.systemui.statusbar.phone.StatusBarLocation
@@ -51,6 +58,9 @@
 import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
 import com.android.systemui.statusbar.phone.ui.DarkIconManager
 import com.android.systemui.statusbar.phone.ui.StatusBarIconController
+import com.android.systemui.statusbar.pipeline.battery.ui.composable.UnifiedBattery
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel.Companion.STATUS_BAR_BATTERY_HEIGHT
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel.Companion.STATUS_BAR_BATTERY_WIDTH
 import com.android.systemui.statusbar.pipeline.shared.ui.binder.HomeStatusBarIconBlockListBinder
 import com.android.systemui.statusbar.pipeline.shared.ui.binder.HomeStatusBarViewBinder
 import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
@@ -65,6 +75,7 @@
     private val homeStatusBarViewModelFactory: HomeStatusBarViewModelFactory,
     private val homeStatusBarViewBinder: HomeStatusBarViewBinder,
     private val notificationIconsBinder: NotificationIconContainerStatusBarViewBinder,
+    private val iconViewStoreFactory: ConnectedDisplaysStatusBarNotificationIconViewStore.Factory,
     private val darkIconManagerFactory: DarkIconManager.Factory,
     private val iconController: StatusBarIconController,
     private val ongoingCallController: OngoingCallController,
@@ -73,16 +84,16 @@
 ) {
     fun create(root: ViewGroup, andThen: (ViewGroup) -> Unit): ComposeView {
         val composeView = ComposeView(root.context)
-        val displayId = root.context.displayId
         val darkIconDispatcher =
             darkIconDispatcherStore.forDisplay(root.context.displayId) ?: return composeView
         composeView.apply {
             setContent {
                 StatusBarRoot(
                     parent = root,
-                    statusBarViewModel = homeStatusBarViewModelFactory.create(displayId),
+                    statusBarViewModelFactory = homeStatusBarViewModelFactory,
                     statusBarViewBinder = homeStatusBarViewBinder,
                     notificationIconsBinder = notificationIconsBinder,
+                    iconViewStoreFactory = iconViewStoreFactory,
                     darkIconManagerFactory = darkIconManagerFactory,
                     iconController = iconController,
                     ongoingCallController = ongoingCallController,
@@ -110,9 +121,10 @@
 @Composable
 fun StatusBarRoot(
     parent: ViewGroup,
-    statusBarViewModel: HomeStatusBarViewModel,
+    statusBarViewModelFactory: HomeStatusBarViewModelFactory,
     statusBarViewBinder: HomeStatusBarViewBinder,
     notificationIconsBinder: NotificationIconContainerStatusBarViewBinder,
+    iconViewStoreFactory: ConnectedDisplaysStatusBarNotificationIconViewStore.Factory,
     darkIconManagerFactory: DarkIconManager.Factory,
     iconController: StatusBarIconController,
     ongoingCallController: OngoingCallController,
@@ -120,6 +132,18 @@
     eventAnimationInteractor: SystemStatusEventAnimationInteractor,
     onViewCreated: (ViewGroup) -> Unit,
 ) {
+    val displayId = parent.context.displayId
+    val statusBarViewModel =
+        rememberViewModel("HomeStatusBar") { statusBarViewModelFactory.create(displayId) }
+    val iconViewStore: NotificationIconContainerViewBinder.IconViewStore? =
+        if (StatusBarConnectedDisplays.isEnabled) {
+            rememberViewModel("HomeStatusBar.IconViewStore[$displayId]") {
+                iconViewStoreFactory.create(displayId)
+            }
+        } else {
+            null
+        }
+
     Box(Modifier.fillMaxSize()) {
         // TODO(b/364360986): remove this before rolling the flag forward
         if (StatusBarRootModernization.SHOW_DISAMBIGUATION) {
@@ -159,16 +183,15 @@
                                         LinearLayout.LayoutParams.WRAP_CONTENT,
                                     )
 
-                                setViewCompositionStrategy(
-                                    ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed
-                                )
-
                                 setContent {
                                     PlatformTheme {
                                         val chips by
                                             statusBarViewModel.ongoingActivityChips
                                                 .collectAsStateWithLifecycle()
-                                        OngoingActivityChips(chips = chips)
+                                        OngoingActivityChips(
+                                            chips = chips,
+                                            iconViewStore = iconViewStore,
+                                        )
                                     }
                                 }
                             }
@@ -241,6 +264,12 @@
                         endSideContent.addView(composeView, 0)
                     }
 
+                    // If the flag is enabled, create and add a compose battery view to the end
+                    // of the system_icons container
+                    if (NewStatusBarIcons.isEnabled) {
+                        addBatteryComposable(phoneStatusBarView, statusBarViewModel)
+                    }
+
                     notificationIconsBinder.bindWhileAttached(
                         notificationIconContainer,
                         context.displayId,
@@ -263,6 +292,27 @@
     }
 }
 
+/** Create a new [UnifiedBattery] and add it to the end of the system_icons container */
+private fun addBatteryComposable(
+    phoneStatusBarView: PhoneStatusBarView,
+    statusBarViewModel: HomeStatusBarViewModel,
+) {
+    val batteryComposeView =
+        ComposeView(phoneStatusBarView.context).apply {
+            setContent {
+                UnifiedBattery(
+                    modifier =
+                        Modifier.height(STATUS_BAR_BATTERY_HEIGHT).width(STATUS_BAR_BATTERY_WIDTH),
+                    viewModelFactory = statusBarViewModel.batteryViewModelFactory,
+                    isDark = statusBarViewModel.areaDark,
+                )
+            }
+        }
+    phoneStatusBarView.findViewById<ViewGroup>(R.id.system_icons).apply {
+        addView(batteryComposeView, -1)
+    }
+}
+
 /**
  * This is our analog of the flexi "ribbon", which just shows some text so we know if the flag is on
  */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt
index df6a2fe..f396cbf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt
@@ -19,6 +19,7 @@
 import android.annotation.ColorInt
 import android.graphics.Rect
 import android.view.View
+import androidx.compose.runtime.getValue
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
@@ -28,6 +29,8 @@
 import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN
 import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED
 import com.android.systemui.keyguard.shared.model.TransitionState
+import com.android.systemui.lifecycle.ExclusiveActivatable
+import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.log.table.TableLogBufferFactory
 import com.android.systemui.log.table.logDiffsForTable
 import com.android.systemui.plugins.DarkIconDispatcher
@@ -41,6 +44,7 @@
 import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
 import com.android.systemui.statusbar.chips.sharetoapp.ui.viewmodel.ShareToAppChipViewModel
 import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
+import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModelLegacy
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsViewModel
 import com.android.systemui.statusbar.events.domain.interactor.SystemStatusEventAnimationInteractor
@@ -54,7 +58,10 @@
 import com.android.systemui.statusbar.notification.headsup.PinnedStatus
 import com.android.systemui.statusbar.notification.shared.NotificationsLiveDataStoreRefactor
 import com.android.systemui.statusbar.phone.domain.interactor.DarkIconInteractor
+import com.android.systemui.statusbar.phone.domain.interactor.IsAreaDark
 import com.android.systemui.statusbar.phone.domain.interactor.LightsOutInteractor
+import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
 import com.android.systemui.statusbar.pipeline.shared.domain.interactor.HomeStatusBarIconBlockListInteractor
 import com.android.systemui.statusbar.pipeline.shared.domain.interactor.HomeStatusBarInteractor
 import com.android.systemui.statusbar.pipeline.shared.ui.model.SystemInfoCombinedVisibilityModel
@@ -88,6 +95,9 @@
  * so that it's all in one place and easily testable outside of the fragment.
  */
 interface HomeStatusBarViewModel {
+    /** Factory to create the view model for the battery icon */
+    val batteryViewModelFactory: BatteryViewModel.Factory
+
     /**
      * True if the device is currently transitioning from lockscreen to occluded and false
      * otherwise.
@@ -109,11 +119,15 @@
      */
     val primaryOngoingActivityChip: StateFlow<OngoingActivityChipModel>
 
+    /** All supported activity chips, whether they are currently active or not. */
+    val ongoingActivityChips: StateFlow<MultipleOngoingActivityChipsModel>
+
     /**
      * The multiple ongoing activity chips that should be shown on the left-hand side of the status
      * bar.
      */
-    val ongoingActivityChips: StateFlow<MultipleOngoingActivityChipsModel>
+    @Deprecated("Since StatusBarChipsModernization, use the new ongoingActivityChips")
+    val ongoingActivityChipsLegacy: StateFlow<MultipleOngoingActivityChipsModelLegacy>
 
     /** View model for the carrier name that may show in the status bar based on carrier config */
     val operatorNameViewModel: StatusBarOperatorNameViewModel
@@ -165,6 +179,9 @@
      */
     val areaTint: Flow<StatusBarTintColor>
 
+    /** [IsAreaDark] applicable for this status bar's display and content area */
+    val areaDark: IsAreaDark
+
     /** Interface for the assisted factory, to allow for providing a fake in tests */
     interface HomeStatusBarViewModelFactory {
         fun create(displayId: Int): HomeStatusBarViewModel
@@ -175,6 +192,7 @@
 @AssistedInject
 constructor(
     @Assisted thisDisplayId: Int,
+    override val batteryViewModelFactory: BatteryViewModel.Factory,
     tableLoggerFactory: TableLogBufferFactory,
     homeStatusBarInteractor: HomeStatusBarInteractor,
     homeStatusBarIconBlockListInteractor: HomeStatusBarIconBlockListInteractor,
@@ -195,7 +213,9 @@
     statusBarContentInsetsViewModelStore: StatusBarContentInsetsViewModelStore,
     @Background bgScope: CoroutineScope,
     @Background bgDispatcher: CoroutineDispatcher,
-) : HomeStatusBarViewModel {
+) : HomeStatusBarViewModel, ExclusiveActivatable() {
+
+    private val hydrator = Hydrator(traceName = "HomeStatusBarViewModel.hydrator")
 
     val tableLogger = tableLoggerFactory.getOrCreate(tableLogBufferName(thisDisplayId), 200)
 
@@ -224,6 +244,8 @@
 
     override val ongoingActivityChips = ongoingActivityChipsViewModel.chips
 
+    override val ongoingActivityChipsLegacy = ongoingActivityChipsViewModel.chipsLegacy
+
     override val statusBarPopupChips = statusBarPopupChipsViewModel.shownPopupChips
 
     override val isHomeStatusBarAllowedByScene: StateFlow<Boolean> =
@@ -286,6 +308,13 @@
             .distinctUntilChanged()
             .flowOn(bgDispatcher)
 
+    override val areaDark: IsAreaDark by
+        hydrator.hydratedStateOf(
+            traceName = "areaDark",
+            initialValue = IsAreaDark { true },
+            source = darkIconInteractor.isAreaDark(thisDisplayId),
+        )
+
     /**
      * True if the current SysUI state can show the home status bar (aka this status bar), and false
      * if we shouldn't be showing any part of the home status bar.
@@ -330,10 +359,12 @@
             .flowOn(bgDispatcher)
 
     private val isAnyChipVisible =
-        if (StatusBarNotifChips.isEnabled) {
-            ongoingActivityChips.map { it.primary is OngoingActivityChipModel.Shown }
+        if (StatusBarChipsModernization.isEnabled) {
+            ongoingActivityChips.map { it.active.any { chip -> !chip.isHidden } }
+        } else if (StatusBarNotifChips.isEnabled) {
+            ongoingActivityChipsLegacy.map { it.primary is OngoingActivityChipModel.Active }
         } else {
-            primaryOngoingActivityChip.map { it is OngoingActivityChipModel.Shown }
+            primaryOngoingActivityChip.map { it is OngoingActivityChipModel.Active }
         }
 
     /**
@@ -463,6 +494,10 @@
     @View.Visibility
     private fun Boolean.toVisibleOrInvisible(): Int = if (this) View.VISIBLE else View.INVISIBLE
 
+    override suspend fun onActivated(): Nothing {
+        hydrator.activate()
+    }
+
     /** Inject this to create the display-dependent view model */
     @AssistedFactory
     interface HomeStatusBarViewModelFactoryImpl :
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.kt
index 67a8e3d..ef09907 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.content.res.Configuration
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.CommandQueue
 import javax.inject.Inject
 
@@ -29,7 +30,7 @@
  */
 @SysUISingleton
 class RemoteInputQuickSettingsDisabler @Inject constructor(
-        private val context: Context,
+        @ShadeDisplayAware private val context: Context,
         private val commandQueue: CommandQueue,
         private val splitShadeStateController: SplitShadeStateController,
         configController: ConfigurationController
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt
index 1887db9..d3af1e5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt
@@ -409,16 +409,6 @@
                 as Button)
             .apply {
                 text = action.title
-                // TODO: Move the MagicActionBackgroundDrawable to MagicActionButton once
-                //  MagicActionButton is created.
-                if (isMagicAction) {
-                    background = MagicActionBackgroundDrawable(parent.context)
-                    val textColor =
-                        parent.context.getColor(
-                            com.android.internal.R.color.materialColorOnPrimaryContainer
-                        )
-                    setTextColor(textColor)
-                }
 
                 // We received the Icon from the application - so use the Context of the application
                 // to
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SplitShadeStateController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SplitShadeStateController.kt
index 72d093c..9f05850 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SplitShadeStateController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SplitShadeStateController.kt
@@ -22,11 +22,11 @@
 
     /** Returns true if the device should use the split notification shade. */
     @Deprecated(
-        message = "This is deprecated, please use ShadeInteractor#shadeMode instead",
+        message = "This is deprecated, please use ShadeModeInteractor#shadeMode instead",
         replaceWith =
             ReplaceWith(
-                "shadeInteractor.shadeMode",
-                "com.android.systemui.shade.domain.interactor.ShadeInteractor",
+                "shadeModeInteractor.shadeMode",
+                "com.android.systemui.shade.domain.interactor.ShadeModeInteractor",
             ),
     )
     fun shouldUseSplitNotificationShade(resources: Resources): Boolean
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegate.kt
index 2fc2286..7879f97 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegate.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegate.kt
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.policy.ui.dialog
 
-import android.annotation.UiThread;
+import android.annotation.UiThread
 import android.app.Dialog
 import android.content.Context
 import android.content.Intent
@@ -44,6 +44,8 @@
 import com.android.systemui.animation.DialogTransitionAnimator
 import com.android.systemui.animation.Expandable
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.dialog.ui.composable.AlertDialogContent
 import com.android.systemui.plugins.ActivityStarter
@@ -60,6 +62,8 @@
 import javax.inject.Inject
 import javax.inject.Provider
 import kotlin.coroutines.CoroutineContext
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 
 @SysUISingleton
@@ -73,7 +77,9 @@
     // Using a provider to avoid a circular dependency.
     private val viewModel: Provider<ModesDialogViewModel>,
     private val dialogEventLogger: ModesDialogEventLogger,
+    @Application private val applicationCoroutineScope: CoroutineScope,
     @Main private val mainCoroutineContext: CoroutineContext,
+    @Background private val bgContext: CoroutineContext,
     private val shadeDisplayContextRepository: ShadeDialogContextInteractor,
 ) : SystemUIDialog.Delegate {
     // NOTE: This should only be accessed/written from the main thread.
@@ -185,6 +191,18 @@
      * launches it normally without animating.
      */
     fun launchFromDialog(intent: Intent) {
+        // TODO: b/394571336 - Remove this method and inline "actual" if b/394571336 fixed.
+        // Workaround for Compose bug, see b/394241061 and b/394571336 -- Need to post on the main
+        // thread so that dialog dismissal doesn't crash after a long press inside it (the *double*
+        // jump, out and back in, is because mainCoroutineContext is .immediate).
+        applicationCoroutineScope.launch {
+            withContext(bgContext) {
+                withContext(mainCoroutineContext) { actualLaunchFromDialog(intent) }
+            }
+        }
+    }
+
+    private fun actualLaunchFromDialog(intent: Intent) {
         Assert.isMainThread()
         if (currentDialog == null) {
             Log.w(
diff --git a/packages/SystemUI/src/com/android/systemui/stylus/OWNERS b/packages/SystemUI/src/com/android/systemui/stylus/OWNERS
index 0ec996b..9b4902a 100644
--- a/packages/SystemUI/src/com/android/systemui/stylus/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/stylus/OWNERS
@@ -6,5 +6,4 @@
 mgalhardo@google.com
 petrcermak@google.com
 stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com
\ No newline at end of file
+vanjan@google.com
diff --git a/packages/SystemUI/src/com/android/systemui/unfold/DisplaySwitchLatencyTracker.kt b/packages/SystemUI/src/com/android/systemui/unfold/DisplaySwitchLatencyTracker.kt
index f5aac72..e1640cd 100644
--- a/packages/SystemUI/src/com/android/systemui/unfold/DisplaySwitchLatencyTracker.kt
+++ b/packages/SystemUI/src/com/android/systemui/unfold/DisplaySwitchLatencyTracker.kt
@@ -19,8 +19,11 @@
 import android.content.Context
 import android.hardware.devicestate.DeviceStateManager
 import android.util.Log
+import androidx.annotation.VisibleForTesting
 import com.android.app.tracing.TraceUtils.traceAsync
 import com.android.app.tracing.instantForTrack
+import com.android.internal.util.LatencyTracker
+import com.android.internal.util.LatencyTracker.ACTION_SWITCH_DISPLAY_UNFOLD
 import com.android.systemui.CoreStartable
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Application
@@ -30,10 +33,12 @@
 import com.android.systemui.power.domain.interactor.PowerInteractor
 import com.android.systemui.power.shared.model.ScreenPowerState
 import com.android.systemui.power.shared.model.WakeSleepReason
+import com.android.systemui.power.shared.model.WakefulnessModel
 import com.android.systemui.power.shared.model.WakefulnessState
 import com.android.systemui.shared.system.SysUiStatsLog
 import com.android.systemui.unfold.DisplaySwitchLatencyTracker.DisplaySwitchLatencyEvent
 import com.android.systemui.unfold.dagger.UnfoldSingleThreadBg
+import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionStarted
 import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor
 import com.android.systemui.util.Compile
 import com.android.systemui.util.Utils.isDeviceFoldable
@@ -42,17 +47,23 @@
 import com.android.systemui.util.kotlin.race
 import com.android.systemui.util.time.SystemClock
 import com.android.systemui.util.time.measureTimeMillis
-import java.time.Duration
 import java.util.concurrent.Executor
 import javax.inject.Inject
+import kotlin.coroutines.cancellation.CancellationException
+import kotlin.time.Duration.Companion.seconds
 import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.FlowPreview
 import kotlinx.coroutines.TimeoutCancellationException
 import kotlinx.coroutines.asCoroutineDispatcher
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.drop
 import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.flow.flatMapLatest
-import kotlinx.coroutines.flow.flow
-import com.android.app.tracing.coroutines.launchTraced as launch
+import kotlinx.coroutines.flow.merge
+import kotlinx.coroutines.flow.timeout
+import kotlinx.coroutines.launch
 import kotlinx.coroutines.withTimeout
 
 /**
@@ -73,63 +84,96 @@
     @Application private val applicationScope: CoroutineScope,
     private val displaySwitchLatencyLogger: DisplaySwitchLatencyLogger,
     private val systemClock: SystemClock,
-    private val deviceStateManager: DeviceStateManager
+    private val deviceStateManager: DeviceStateManager,
+    private val latencyTracker: LatencyTracker,
 ) : CoreStartable {
 
     private val backgroundDispatcher = singleThreadBgExecutor.asCoroutineDispatcher()
     private val isAodEnabled: Boolean
         get() = keyguardInteractor.isAodAvailable.value
 
+    private val displaySwitchStarted =
+        deviceStateRepository.state.pairwise().filter {
+            // Start tracking only when the foldable device is
+            // folding(UNFOLDED/HALF_FOLDED -> FOLDED) or unfolding(FOLDED -> HALF_FOLD/UNFOLDED)
+            foldableDeviceState ->
+            foldableDeviceState.previousValue == DeviceState.FOLDED ||
+                foldableDeviceState.newValue == DeviceState.FOLDED
+        }
+
+    private var startOrEndEvent: Flow<Any> = merge(displaySwitchStarted, anyEndEventFlow())
+
+    private var isCoolingDown = false
+
     override fun start() {
         if (!isDeviceFoldable(context.resources, deviceStateManager)) {
             return
         }
         applicationScope.launch(context = backgroundDispatcher) {
-            deviceStateRepository.state
-                .pairwise()
-                .filter {
-                    // Start tracking only when the foldable device is
-                    // folding(UNFOLDED/HALF_FOLDED -> FOLDED) or
-                    // unfolding(FOLDED -> HALF_FOLD/UNFOLDED)
-                    foldableDeviceState ->
-                    foldableDeviceState.previousValue == DeviceState.FOLDED ||
-                        foldableDeviceState.newValue == DeviceState.FOLDED
+            displaySwitchStarted.collectLatest { (previousState, newState) ->
+                if (isCoolingDown) return@collectLatest
+                if (previousState == DeviceState.FOLDED) {
+                    latencyTracker.onActionStart(ACTION_SWITCH_DISPLAY_UNFOLD)
+                    instantForTrack(TAG) { "unfold latency tracking started" }
                 }
-                .flatMapLatest { foldableDeviceState ->
-                    flow {
-                        var displaySwitchLatencyEvent = DisplaySwitchLatencyEvent()
-                        val toFoldableDeviceState = foldableDeviceState.newValue.toStatsInt()
-                        displaySwitchLatencyEvent =
-                            displaySwitchLatencyEvent.withBeforeFields(
-                                foldableDeviceState.previousValue.toStatsInt()
-                            )
-
+                try {
+                    withTimeout(SCREEN_EVENT_TIMEOUT) {
+                        val event =
+                            DisplaySwitchLatencyEvent().withBeforeFields(previousState.toStatsInt())
                         val displaySwitchTimeMs =
                             measureTimeMillis(systemClock) {
-                                try {
-                                    withTimeout(SCREEN_EVENT_TIMEOUT) {
-                                        traceAsync(TAG, "displaySwitch") {
-                                            waitForDisplaySwitch(toFoldableDeviceState)
-                                        }
-                                    }
-                                } catch (e: TimeoutCancellationException) {
-                                    Log.e(TAG, "Wait for display switch timed out")
+                                traceAsync(TAG, "displaySwitch") {
+                                    waitForDisplaySwitch(newState.toStatsInt())
                                 }
                             }
-
-                        displaySwitchLatencyEvent =
-                            displaySwitchLatencyEvent.withAfterFields(
-                                toFoldableDeviceState,
-                                displaySwitchTimeMs.toInt(),
-                                getCurrentState()
-                            )
-                        emit(displaySwitchLatencyEvent)
+                        if (previousState == DeviceState.FOLDED) {
+                            latencyTracker.onActionEnd(ACTION_SWITCH_DISPLAY_UNFOLD)
+                        }
+                        logDisplaySwitchEvent(event, newState, displaySwitchTimeMs)
                     }
+                } catch (e: TimeoutCancellationException) {
+                    instantForTrack(TAG) { "tracking timed out" }
+                    latencyTracker.onActionCancel(ACTION_SWITCH_DISPLAY_UNFOLD)
+                } catch (e: CancellationException) {
+                    instantForTrack(TAG) { "new state interrupted, entering cool down" }
+                    latencyTracker.onActionCancel(ACTION_SWITCH_DISPLAY_UNFOLD)
+                    startCoolDown()
                 }
-                .collect { displaySwitchLatencyLogger.log(it) }
+            }
         }
     }
 
+    @OptIn(FlowPreview::class)
+    private fun startCoolDown() {
+        if (isCoolingDown) return
+        isCoolingDown = true
+        applicationScope.launch(context = backgroundDispatcher) {
+            val startTime = systemClock.elapsedRealtime()
+            try {
+                startOrEndEvent.timeout(COOL_DOWN_DURATION).collect()
+            } catch (e: TimeoutCancellationException) {
+                instantForTrack(TAG) {
+                    "cool down finished, lasted ${systemClock.elapsedRealtime() - startTime} ms"
+                }
+                isCoolingDown = false
+            }
+        }
+    }
+
+    private fun logDisplaySwitchEvent(
+        event: DisplaySwitchLatencyEvent,
+        toFoldableDeviceState: DeviceState,
+        displaySwitchTimeMs: Long,
+    ) {
+        displaySwitchLatencyLogger.log(
+            event.withAfterFields(
+                toFoldableDeviceState.toStatsInt(),
+                displaySwitchTimeMs.toInt(),
+                getCurrentState(),
+            )
+        )
+    }
+
     private fun DeviceState.toStatsInt(): Int =
         when (this) {
             DeviceState.FOLDED -> FOLDABLE_DEVICE_STATE_CLOSED
@@ -152,25 +196,42 @@
         }
     }
 
+    private fun anyEndEventFlow(): Flow<Any> {
+        val unfoldStatus =
+            unfoldTransitionInteractor.unfoldTransitionStatus.filter { it is TransitionStarted }
+        // dropping first emission as we're only interested in new emissions, not current state
+        val screenOn =
+            powerInteractor.screenPowerState.drop(1).filter { it == ScreenPowerState.SCREEN_ON }
+        val goToSleep =
+            powerInteractor.detailedWakefulness.drop(1).filter { sleepWithScreenOff(it) }
+        return merge(screenOn, goToSleep, unfoldStatus)
+    }
+
     private fun shouldWaitForTransitionStart(
         toFoldableDeviceState: Int,
-        isTransitionEnabled: Boolean
+        isTransitionEnabled: Boolean,
     ): Boolean = (toFoldableDeviceState != FOLDABLE_DEVICE_STATE_CLOSED && isTransitionEnabled)
 
     private suspend fun waitForScreenTurnedOn() {
         traceAsync(TAG, "waitForScreenTurnedOn()") {
-            powerInteractor.screenPowerState.filter { it == ScreenPowerState.SCREEN_ON }.first()
+            // dropping first as it's stateFlow and will always emit latest value but we're
+            // only interested in new states
+            powerInteractor.screenPowerState
+                .drop(1)
+                .filter { it == ScreenPowerState.SCREEN_ON }
+                .first()
         }
     }
 
     private suspend fun waitForGoToSleepWithScreenOff() {
         traceAsync(TAG, "waitForGoToSleepWithScreenOff()") {
-            powerInteractor.detailedWakefulness
-                .filter { it.internalWakefulnessState == WakefulnessState.ASLEEP && !isAodEnabled }
-                .first()
+            powerInteractor.detailedWakefulness.filter { sleepWithScreenOff(it) }.first()
         }
     }
 
+    private fun sleepWithScreenOff(model: WakefulnessModel) =
+        model.internalWakefulnessState == WakefulnessState.ASLEEP && !isAodEnabled
+
     private fun getCurrentState(): Int =
         when {
             isStateAod() -> SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__TO_STATE__AOD
@@ -205,7 +266,7 @@
     private fun DisplaySwitchLatencyEvent.withAfterFields(
         toFoldableDeviceState: Int,
         displaySwitchTimeMs: Int,
-        toState: Int
+        toState: Int,
     ): DisplaySwitchLatencyEvent {
         log {
             "toFoldableDeviceState=$toFoldableDeviceState, " +
@@ -217,7 +278,7 @@
         return copy(
             toFoldableDeviceState = toFoldableDeviceState,
             latencyMs = displaySwitchTimeMs,
-            toState = toState
+            toState = toState,
         )
     }
 
@@ -250,14 +311,15 @@
         val hallSensorToFirstHingeAngleChangeMs: Int = VALUE_UNKNOWN,
         val hallSensorToDeviceStateChangeMs: Int = VALUE_UNKNOWN,
         val onScreenTurningOnToOnDrawnMs: Int = VALUE_UNKNOWN,
-        val onDrawnToOnScreenTurnedOnMs: Int = VALUE_UNKNOWN
+        val onDrawnToOnScreenTurnedOnMs: Int = VALUE_UNKNOWN,
     )
 
     companion object {
         private const val VALUE_UNKNOWN = -1
         private const val TAG = "DisplaySwitchLatency"
         private val DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.VERBOSE)
-        private val SCREEN_EVENT_TIMEOUT = Duration.ofMillis(15000).toMillis()
+        @VisibleForTesting val SCREEN_EVENT_TIMEOUT = 15.seconds
+        @VisibleForTesting val COOL_DOWN_DURATION = 2.seconds
 
         private const val FOLDABLE_DEVICE_STATE_UNKNOWN =
             SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__FROM_FOLDABLE_DEVICE_STATE__STATE_UNKNOWN
diff --git a/packages/SystemUI/src/com/android/systemui/unfold/NoCooldownDisplaySwitchLatencyTracker.kt b/packages/SystemUI/src/com/android/systemui/unfold/NoCooldownDisplaySwitchLatencyTracker.kt
new file mode 100644
index 0000000..91f1426
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/unfold/NoCooldownDisplaySwitchLatencyTracker.kt
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.unfold
+
+import android.content.Context
+import android.hardware.devicestate.DeviceStateManager
+import android.util.Log
+import com.android.app.tracing.TraceUtils.traceAsync
+import com.android.app.tracing.coroutines.launchTraced as launch
+import com.android.app.tracing.instantForTrack
+import com.android.systemui.CoreStartable
+import com.android.systemui.Flags.unfoldLatencyTrackingFix
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.display.data.repository.DeviceStateRepository
+import com.android.systemui.display.data.repository.DeviceStateRepository.DeviceState
+import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
+import com.android.systemui.power.domain.interactor.PowerInteractor
+import com.android.systemui.power.shared.model.ScreenPowerState
+import com.android.systemui.power.shared.model.WakeSleepReason
+import com.android.systemui.power.shared.model.WakefulnessState
+import com.android.systemui.shared.system.SysUiStatsLog
+import com.android.systemui.unfold.DisplaySwitchLatencyTracker.DisplaySwitchLatencyEvent
+import com.android.systemui.unfold.dagger.UnfoldSingleThreadBg
+import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor
+import com.android.systemui.util.Compile
+import com.android.systemui.util.Utils.isDeviceFoldable
+import com.android.systemui.util.animation.data.repository.AnimationStatusRepository
+import com.android.systemui.util.kotlin.pairwise
+import com.android.systemui.util.kotlin.race
+import com.android.systemui.util.time.SystemClock
+import com.android.systemui.util.time.measureTimeMillis
+import java.time.Duration
+import java.util.concurrent.Executor
+import javax.inject.Inject
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.TimeoutCancellationException
+import kotlinx.coroutines.asCoroutineDispatcher
+import kotlinx.coroutines.flow.drop
+import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.withTimeout
+
+/**
+ * Old version of [DisplaySwitchLatencyTracker] tracking only [DisplaySwitchLatencyEvent]. Which
+ * version is used for tracking depends on [unfoldLatencyTrackingFix] flag.
+ */
+@SysUISingleton
+class NoCooldownDisplaySwitchLatencyTracker
+@Inject
+constructor(
+    private val context: Context,
+    private val deviceStateRepository: DeviceStateRepository,
+    private val powerInteractor: PowerInteractor,
+    private val unfoldTransitionInteractor: UnfoldTransitionInteractor,
+    private val animationStatusRepository: AnimationStatusRepository,
+    private val keyguardInteractor: KeyguardInteractor,
+    @UnfoldSingleThreadBg private val singleThreadBgExecutor: Executor,
+    @Application private val applicationScope: CoroutineScope,
+    private val displaySwitchLatencyLogger: DisplaySwitchLatencyLogger,
+    private val systemClock: SystemClock,
+    private val deviceStateManager: DeviceStateManager,
+) : CoreStartable {
+
+    private val backgroundDispatcher = singleThreadBgExecutor.asCoroutineDispatcher()
+    private val isAodEnabled: Boolean
+        get() = keyguardInteractor.isAodAvailable.value
+
+    override fun start() {
+        if (!isDeviceFoldable(context.resources, deviceStateManager)) {
+            return
+        }
+        applicationScope.launch(context = backgroundDispatcher) {
+            deviceStateRepository.state
+                .pairwise()
+                .filter {
+                    // Start tracking only when the foldable device is
+                    // folding(UNFOLDED/HALF_FOLDED -> FOLDED) or
+                    // unfolding(FOLDED -> HALF_FOLD/UNFOLDED)
+                    foldableDeviceState ->
+                    foldableDeviceState.previousValue == DeviceState.FOLDED ||
+                        foldableDeviceState.newValue == DeviceState.FOLDED
+                }
+                .flatMapLatest { foldableDeviceState ->
+                    flow {
+                        var displaySwitchLatencyEvent = DisplaySwitchLatencyEvent()
+                        val toFoldableDeviceState = foldableDeviceState.newValue.toStatsInt()
+                        displaySwitchLatencyEvent =
+                            displaySwitchLatencyEvent.withBeforeFields(
+                                foldableDeviceState.previousValue.toStatsInt()
+                            )
+
+                        val displaySwitchTimeMs =
+                            measureTimeMillis(systemClock) {
+                                try {
+                                    withTimeout(SCREEN_EVENT_TIMEOUT) {
+                                        traceAsync(TAG, "displaySwitch") {
+                                            waitForDisplaySwitch(toFoldableDeviceState)
+                                        }
+                                    }
+                                } catch (e: TimeoutCancellationException) {
+                                    Log.e(TAG, "Wait for display switch timed out")
+                                }
+                            }
+
+                        displaySwitchLatencyEvent =
+                            displaySwitchLatencyEvent.withAfterFields(
+                                toFoldableDeviceState,
+                                displaySwitchTimeMs.toInt(),
+                                getCurrentState(),
+                            )
+                        emit(displaySwitchLatencyEvent)
+                    }
+                }
+                .collect { displaySwitchLatencyLogger.log(it) }
+        }
+    }
+
+    private fun DeviceState.toStatsInt(): Int =
+        when (this) {
+            DeviceState.FOLDED -> FOLDABLE_DEVICE_STATE_CLOSED
+            DeviceState.HALF_FOLDED -> FOLDABLE_DEVICE_STATE_HALF_OPEN
+            DeviceState.UNFOLDED -> FOLDABLE_DEVICE_STATE_OPEN
+            DeviceState.CONCURRENT_DISPLAY -> FOLDABLE_DEVICE_STATE_FLIPPED
+            else -> FOLDABLE_DEVICE_STATE_UNKNOWN
+        }
+
+    private suspend fun waitForDisplaySwitch(toFoldableDeviceState: Int) {
+        val isTransitionEnabled =
+            unfoldTransitionInteractor.isAvailable &&
+                animationStatusRepository.areAnimationsEnabled().first()
+        if (shouldWaitForTransitionStart(toFoldableDeviceState, isTransitionEnabled)) {
+            traceAsync(TAG, "waitForTransitionStart()") {
+                unfoldTransitionInteractor.waitForTransitionStart()
+            }
+        } else {
+            race({ waitForScreenTurnedOn() }, { waitForGoToSleepWithScreenOff() })
+        }
+    }
+
+    private fun shouldWaitForTransitionStart(
+        toFoldableDeviceState: Int,
+        isTransitionEnabled: Boolean,
+    ): Boolean = (toFoldableDeviceState != FOLDABLE_DEVICE_STATE_CLOSED && isTransitionEnabled)
+
+    private suspend fun waitForScreenTurnedOn() {
+        traceAsync(TAG, "waitForScreenTurnedOn()") {
+            // dropping first as it's stateFlow and will always emit latest value but we're
+            // only interested in new states
+            powerInteractor.screenPowerState
+                .drop(1)
+                .filter { it == ScreenPowerState.SCREEN_ON }
+                .first()
+        }
+    }
+
+    private suspend fun waitForGoToSleepWithScreenOff() {
+        traceAsync(TAG, "waitForGoToSleepWithScreenOff()") {
+            powerInteractor.detailedWakefulness
+                .filter { it.internalWakefulnessState == WakefulnessState.ASLEEP && !isAodEnabled }
+                .first()
+        }
+    }
+
+    private fun getCurrentState(): Int =
+        when {
+            isStateAod() -> SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__TO_STATE__AOD
+            isStateScreenOff() -> SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__TO_STATE__SCREEN_OFF
+            else -> SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__TO_STATE__UNKNOWN
+        }
+
+    private fun isStateAod(): Boolean = (isAsleepDueToFold() && isAodEnabled)
+
+    private fun isStateScreenOff(): Boolean = (isAsleepDueToFold() && !isAodEnabled)
+
+    private fun isAsleepDueToFold(): Boolean {
+        val lastWakefulnessEvent = powerInteractor.detailedWakefulness.value
+
+        return (lastWakefulnessEvent.isAsleep() &&
+            (lastWakefulnessEvent.lastSleepReason == WakeSleepReason.FOLD))
+    }
+
+    private inline fun log(msg: () -> String) {
+        if (DEBUG) Log.d(TAG, msg())
+    }
+
+    private fun DisplaySwitchLatencyEvent.withBeforeFields(
+        fromFoldableDeviceState: Int
+    ): DisplaySwitchLatencyEvent {
+        log { "fromFoldableDeviceState=$fromFoldableDeviceState" }
+        instantForTrack(TAG) { "fromFoldableDeviceState=$fromFoldableDeviceState" }
+
+        return copy(fromFoldableDeviceState = fromFoldableDeviceState)
+    }
+
+    private fun DisplaySwitchLatencyEvent.withAfterFields(
+        toFoldableDeviceState: Int,
+        displaySwitchTimeMs: Int,
+        toState: Int,
+    ): DisplaySwitchLatencyEvent {
+        log {
+            "toFoldableDeviceState=$toFoldableDeviceState, " +
+                "toState=$toState, " +
+                "latencyMs=$displaySwitchTimeMs"
+        }
+        instantForTrack(TAG) { "toFoldableDeviceState=$toFoldableDeviceState, toState=$toState" }
+
+        return copy(
+            toFoldableDeviceState = toFoldableDeviceState,
+            latencyMs = displaySwitchTimeMs,
+            toState = toState,
+        )
+    }
+
+    companion object {
+        private const val VALUE_UNKNOWN = -1
+        private const val TAG = "DisplaySwitchLatency"
+        private val DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.VERBOSE)
+        private val SCREEN_EVENT_TIMEOUT = Duration.ofMillis(15000).toMillis()
+
+        private const val FOLDABLE_DEVICE_STATE_UNKNOWN =
+            SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__FROM_FOLDABLE_DEVICE_STATE__STATE_UNKNOWN
+        const val FOLDABLE_DEVICE_STATE_CLOSED =
+            SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__FROM_FOLDABLE_DEVICE_STATE__STATE_CLOSED
+        const val FOLDABLE_DEVICE_STATE_HALF_OPEN =
+            SysUiStatsLog
+                .DISPLAY_SWITCH_LATENCY_TRACKED__FROM_FOLDABLE_DEVICE_STATE__STATE_HALF_OPENED
+        private const val FOLDABLE_DEVICE_STATE_OPEN =
+            SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__FROM_FOLDABLE_DEVICE_STATE__STATE_OPENED
+        private const val FOLDABLE_DEVICE_STATE_FLIPPED =
+            SysUiStatsLog.DISPLAY_SWITCH_LATENCY_TRACKED__FROM_FOLDABLE_DEVICE_STATE__STATE_FLIPPED
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLatencyTracker.kt b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLatencyTracker.kt
index f806a5c..9248cc8 100644
--- a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLatencyTracker.kt
+++ b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLatencyTracker.kt
@@ -22,6 +22,7 @@
 import android.os.Trace
 import android.util.Log
 import com.android.internal.util.LatencyTracker
+import com.android.systemui.Flags.unfoldLatencyTrackingFix
 import com.android.systemui.dagger.qualifiers.UiBackground
 import com.android.systemui.keyguard.ScreenLifecycle
 import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener
@@ -63,7 +64,7 @@
 
     /** Registers for relevant events only if the device is foldable. */
     fun init() {
-        if (!isFoldable) {
+        if (unfoldLatencyTrackingFix() || !isFoldable) {
             return
         }
         deviceStateManager.registerCallback(uiBgExecutor, foldStateListener)
@@ -85,7 +86,7 @@
         if (DEBUG) {
             Log.d(
                 TAG,
-                "onScreenTurnedOn: folded = $folded, isTransitionEnabled = $isTransitionEnabled"
+                "onScreenTurnedOn: folded = $folded, isTransitionEnabled = $isTransitionEnabled",
             )
         }
 
@@ -109,7 +110,7 @@
         if (DEBUG) {
             Log.d(
                 TAG,
-                "onTransitionStarted: folded = $folded, isTransitionEnabled = $isTransitionEnabled"
+                "onTransitionStarted: folded = $folded, isTransitionEnabled = $isTransitionEnabled",
             )
         }
 
@@ -161,7 +162,7 @@
                     Log.d(
                         TAG,
                         "Starting ACTION_SWITCH_DISPLAY_UNFOLD, " +
-                            "isTransitionEnabled = $isTransitionEnabled"
+                            "isTransitionEnabled = $isTransitionEnabled",
                     )
                 }
             }
diff --git a/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt
index 885a2b0..c2f86a3 100644
--- a/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt
@@ -21,6 +21,7 @@
 import com.android.systemui.res.R
 import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.unfold.data.repository.UnfoldTransitionRepository
+import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus
 import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionFinished
 import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionInProgress
 import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionStarted
@@ -48,6 +49,9 @@
     val isAvailable: Boolean
         get() = repository.isAvailable
 
+    /** Flow of latest [UnfoldTransitionStatus] changes */
+    val unfoldTransitionStatus: Flow<UnfoldTransitionStatus> = repository.transitionStatus
+
     /**
      * This mapping emits 1 when the device is completely unfolded and 0.0 when the device is
      * completely folded.
diff --git a/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt b/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt
index ad97b21..c960b55 100644
--- a/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt
@@ -21,6 +21,7 @@
 import android.annotation.UserIdInt
 import android.app.admin.DevicePolicyManager
 import android.content.Context
+import android.content.Intent
 import android.content.IntentFilter
 import android.content.pm.UserInfo
 import android.content.res.Resources
@@ -84,6 +85,9 @@
     /** [UserInfo] of the currently-selected user. */
     val selectedUserInfo: Flow<UserInfo>
 
+    /** Tracks whether the main user is unlocked. */
+    fun isUserUnlocked(userHandle: UserHandle?): Flow<Boolean>
+
     /** User ID of the main user. */
     val mainUserId: Int
 
@@ -284,6 +288,18 @@
             }
             .stateIn(applicationScope, SharingStarted.Eagerly, false)
 
+    override fun isUserUnlocked(userHandle: UserHandle?): Flow<Boolean> =
+        broadcastDispatcher
+            .broadcastFlow(IntentFilter(Intent.ACTION_USER_UNLOCKED))
+            .map { getUnlockedState(userHandle) }
+            .onStart { emit(getUnlockedState(userHandle)) }
+
+    private suspend fun getUnlockedState(userHandle: UserHandle?): Boolean {
+        return withContext(backgroundDispatcher) {
+            userHandle?.let { user -> manager.isUserUnlocked(user) } ?: false
+        }
+    }
+
     @SuppressLint("MissingPermission")
     override val isLogoutToSystemUserEnabled: StateFlow<Boolean> =
         selectedUser
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/PaginatedGridInteractor.kt b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt
similarity index 60%
rename from packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/PaginatedGridInteractor.kt
rename to packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt
index d7d1ce9..ef29a38 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/PaginatedGridInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,17 +14,16 @@
  * limitations under the License.
  */
 
-package com.android.systemui.qs.panels.domain.interactor
+package com.android.systemui.user.domain.interactor
 
+import android.os.UserHandle
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.qs.panels.data.repository.PaginatedGridRepository
+import com.android.systemui.user.data.repository.UserRepository
 import javax.inject.Inject
+import kotlinx.coroutines.flow.Flow
 
 @SysUISingleton
-class PaginatedGridInteractor
-@Inject
-constructor(paginatedGridRepository: PaginatedGridRepository) {
-    val rows = paginatedGridRepository.rows
-
-    val defaultRows = 4
+class UserLockedInteractor @Inject constructor(val userRepository: UserRepository) {
+    fun isUserUnlocked(userHandle: UserHandle?): Flow<Boolean> =
+        userRepository.isUserUnlocked(userHandle)
 }
diff --git a/packages/SystemUI/src/com/android/systemui/util/kotlin/Flow.kt b/packages/SystemUI/src/com/android/systemui/util/kotlin/Flow.kt
index 7e7527e..735da46 100644
--- a/packages/SystemUI/src/com/android/systemui/util/kotlin/Flow.kt
+++ b/packages/SystemUI/src/com/android/systemui/util/kotlin/Flow.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.util.kotlin
 
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.util.time.SystemClock
 import com.android.systemui.util.time.SystemClockImpl
 import java.util.concurrent.atomic.AtomicReference
@@ -33,7 +34,6 @@
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.onStart
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /**
  * Returns a new [Flow] that combines the two most recent emissions from [this] using [transform].
@@ -246,24 +246,24 @@
     }
 
 inline fun <T1, T2, T3, T4, T5, T6, R> combine(
-        flow: Flow<T1>,
-        flow2: Flow<T2>,
-        flow3: Flow<T3>,
-        flow4: Flow<T4>,
-        flow5: Flow<T5>,
-        flow6: Flow<T6>,
-        crossinline transform: suspend (T1, T2, T3, T4, T5, T6) -> R
+    flow: Flow<T1>,
+    flow2: Flow<T2>,
+    flow3: Flow<T3>,
+    flow4: Flow<T4>,
+    flow5: Flow<T5>,
+    flow6: Flow<T6>,
+    crossinline transform: suspend (T1, T2, T3, T4, T5, T6) -> R,
 ): Flow<R> {
-    return kotlinx.coroutines.flow.combine(flow, flow2, flow3, flow4, flow5, flow6) {
-        args: Array<*> ->
+    return kotlinx.coroutines.flow.combine(flow, flow2, flow3, flow4, flow5, flow6) { args: Array<*>
+        ->
         @Suppress("UNCHECKED_CAST")
         transform(
-                args[0] as T1,
-                args[1] as T2,
-                args[2] as T3,
-                args[3] as T4,
-                args[4] as T5,
-                args[5] as T6,
+            args[0] as T1,
+            args[1] as T2,
+            args[2] as T3,
+            args[3] as T4,
+            args[4] as T5,
+            args[5] as T6,
         )
     }
 }
@@ -276,7 +276,7 @@
     flow5: Flow<T5>,
     flow6: Flow<T6>,
     flow7: Flow<T7>,
-    crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7) -> R
+    crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7) -> R,
 ): Flow<R> {
     return kotlinx.coroutines.flow.combine(flow, flow2, flow3, flow4, flow5, flow6, flow7) {
         args: Array<*> ->
@@ -288,7 +288,7 @@
             args[3] as T4,
             args[4] as T5,
             args[5] as T6,
-            args[6] as T7
+            args[6] as T7,
         )
     }
 }
@@ -302,7 +302,7 @@
     flow6: Flow<T6>,
     flow7: Flow<T7>,
     flow8: Flow<T8>,
-    crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8) -> R
+    crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8) -> R,
 ): Flow<R> {
     return kotlinx.coroutines.flow.combine(flow, flow2, flow3, flow4, flow5, flow6, flow7, flow8) {
         args: Array<*> ->
@@ -315,7 +315,7 @@
             args[4] as T5,
             args[5] as T6,
             args[6] as T7,
-            args[7] as T8
+            args[7] as T8,
         )
     }
 }
@@ -330,7 +330,7 @@
     flow7: Flow<T7>,
     flow8: Flow<T8>,
     flow9: Flow<T9>,
-    crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R
+    crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R,
 ): Flow<R> {
     return kotlinx.coroutines.flow.combine(
         flow,
@@ -341,7 +341,7 @@
         flow6,
         flow7,
         flow8,
-        flow9
+        flow9,
     ) { args: Array<*> ->
         @Suppress("UNCHECKED_CAST")
         transform(
@@ -352,8 +352,8 @@
             args[4] as T5,
             args[5] as T6,
             args[6] as T7,
-            args[6] as T8,
-            args[6] as T9,
+            args[7] as T8,
+            args[8] as T9,
         )
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/repository/UserAwareSystemSettingsRepository.kt b/packages/SystemUI/src/com/android/systemui/util/settings/repository/UserAwareSystemSettingsRepository.kt
index 4b01ded..f1abf10 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/repository/UserAwareSystemSettingsRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/repository/UserAwareSystemSettingsRepository.kt
@@ -25,7 +25,7 @@
 import kotlinx.coroutines.CoroutineDispatcher
 
 /**
- * Repository for observing values of [Settings.Secure] for the currently active user. That means
+ * Repository for observing values of [Settings.System] for the currently active user. That means
  * when user is switched and the new user has different value, flow will emit new value.
  */
 // TODO: b/377244768 - Make internal once call sites inject SystemSettingsRepository instead.
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java
index 68bffeef..4d547705 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java
@@ -37,8 +37,6 @@
 import android.media.IVolumeController;
 import android.media.MediaRouter2Manager;
 import android.media.VolumePolicy;
-import android.media.session.MediaController.PlaybackInfo;
-import android.media.session.MediaSession.Token;
 import android.net.Uri;
 import android.os.Handler;
 import android.os.HandlerExecutor;
@@ -61,6 +59,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.settingslib.volume.MediaSessions;
+import com.android.settingslib.volume.MediaSessions.SessionId;
 import com.android.systemui.Dumpable;
 import com.android.systemui.Flags;
 import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -1402,12 +1401,13 @@
     }
 
     protected final class MediaSessionsCallbacks implements MediaSessions.Callbacks {
-        private final HashMap<Token, Integer> mRemoteStreams = new HashMap<>();
+        private final HashMap<SessionId, Integer> mRemoteStreams = new HashMap<>();
 
         private int mNextStream = DYNAMIC_STREAM_REMOTE_START_INDEX;
 
         @Override
-        public void onRemoteUpdate(Token token, String name, PlaybackInfo pi) {
+        public void onRemoteUpdate(
+                    SessionId token, String name, MediaSessions.VolumeInfo volumeInfo) {
                 addStream(token, "onRemoteUpdate");
 
                 int stream = 0;
@@ -1415,14 +1415,15 @@
                     stream = mRemoteStreams.get(token);
                 }
                 Slog.d(TAG,
-                        "onRemoteUpdate: stream: " + stream + " volume: " + pi.getCurrentVolume());
+                        "onRemoteUpdate: stream: "
+                                + stream + " volume: " + volumeInfo.getCurrentVolume());
                 boolean changed = mState.states.indexOfKey(stream) < 0;
                 final StreamState ss = streamStateW(stream);
                 ss.dynamic = true;
                 ss.levelMin = 0;
-                ss.levelMax = pi.getMaxVolume();
-                if (ss.level != pi.getCurrentVolume()) {
-                    ss.level = pi.getCurrentVolume();
+                ss.levelMax = volumeInfo.getMaxVolume();
+                if (ss.level != volumeInfo.getCurrentVolume()) {
+                    ss.level = volumeInfo.getCurrentVolume();
                     changed = true;
                 }
                 if (!Objects.equals(ss.remoteLabel, name)) {
@@ -1437,11 +1438,11 @@
         }
 
         @Override
-        public void onRemoteVolumeChanged(Token token, int flags) {
-                addStream(token, "onRemoteVolumeChanged");
+        public void onRemoteVolumeChanged(SessionId sessionId, int flags) {
+                addStream(sessionId, "onRemoteVolumeChanged");
                 int stream = 0;
                 synchronized (mRemoteStreams) {
-                    stream = mRemoteStreams.get(token);
+                    stream = mRemoteStreams.get(sessionId);
                 }
                 final boolean showUI = shouldShowUI(flags);
                 Slog.d(TAG, "onRemoteVolumeChanged: stream: " + stream + " showui? " + showUI);
@@ -1459,7 +1460,7 @@
         }
 
         @Override
-        public void onRemoteRemoved(Token token) {
+        public void onRemoteRemoved(SessionId token) {
             int stream;
             synchronized (mRemoteStreams) {
                 if (!mRemoteStreams.containsKey(token)) {
@@ -1480,7 +1481,7 @@
         }
 
         public void setStreamVolume(int stream, int level) {
-            final Token token = findToken(stream);
+            final SessionId token = findToken(stream);
             if (token == null) {
                 Log.w(TAG, "setStreamVolume: No token found for stream: " + stream);
                 return;
@@ -1488,9 +1489,9 @@
             mMediaSessions.setVolume(token, level);
         }
 
-        private Token findToken(int stream) {
+        private SessionId findToken(int stream) {
             synchronized (mRemoteStreams) {
-                for (Map.Entry<Token, Integer> entry : mRemoteStreams.entrySet()) {
+                for (Map.Entry<SessionId, Integer> entry : mRemoteStreams.entrySet()) {
                     if (entry.getValue().equals(stream)) {
                         return entry.getKey();
                     }
@@ -1499,7 +1500,7 @@
             return null;
         }
 
-        private void addStream(Token token, String triggeringMethod) {
+        private void addStream(SessionId token, String triggeringMethod) {
             synchronized (mRemoteStreams) {
                 if (!mRemoteStreams.containsKey(token)) {
                     mRemoteStreams.put(token, mNextStream);
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
index ae063b4..ae3756d 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
@@ -125,6 +125,7 @@
 import com.android.systemui.haptics.slider.HapticSliderViewBinder;
 import com.android.systemui.haptics.slider.SeekableSliderTrackerConfig;
 import com.android.systemui.haptics.slider.SliderHapticFeedbackConfig;
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter;
 import com.android.systemui.media.dialog.MediaOutputDialogManager;
 import com.android.systemui.plugins.VolumeDialog;
 import com.android.systemui.plugins.VolumeDialogController;
@@ -2698,7 +2699,8 @@
                 /* upperBookendScale= */ 1f,
                 /* lowerBookendScale= */ 0.05f,
                 /* exponent= */ 1f / 0.89f,
-                /* sliderStepSize = */ 0f);
+                /* sliderStepSize = */ 0f,
+                /* filter =*/new SliderHapticFeedbackFilter());
         private static final SeekableSliderTrackerConfig sSliderTrackerConfig =
                 new SeekableSliderTrackerConfig(
                         /* waitTimeMillis= */100,
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/VolumeDialog.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/VolumeDialog.kt
index 83b7c18..86defff 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/VolumeDialog.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/VolumeDialog.kt
@@ -68,7 +68,7 @@
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.volume_dialog)
-        requireViewById<View>(R.id.volume_dialog_root).repeatWhenAttached {
+        requireViewById<View>(R.id.volume_dialog).repeatWhenAttached {
             coroutineScopeTraced("[Volume]dialog") {
                 val component = componentFactory.create(this)
                 with(component.volumeDialogViewBinder()) { bind(this@VolumeDialog) }
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractor.kt
index 20a74b0..afe3d7b 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractor.kt
@@ -17,7 +17,9 @@
 package com.android.systemui.volume.dialog.domain.interactor
 
 import android.annotation.SuppressLint
+import android.provider.Settings
 import com.android.systemui.plugins.VolumeDialogController
+import com.android.systemui.shared.settings.data.repository.SecureSettingsRepository
 import com.android.systemui.volume.Events
 import com.android.systemui.volume.dialog.dagger.scope.VolumeDialogPlugin
 import com.android.systemui.volume.dialog.dagger.scope.VolumeDialogPluginScope
@@ -28,8 +30,9 @@
 import com.android.systemui.volume.dialog.shared.model.VolumeDialogVisibilityModel.Visible
 import com.android.systemui.volume.dialog.utils.VolumeTracer
 import javax.inject.Inject
-import kotlin.time.Duration
+import kotlin.time.Duration.Companion.milliseconds
 import kotlin.time.Duration.Companion.seconds
+import kotlin.time.DurationUnit
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.Flow
@@ -43,8 +46,6 @@
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.flow.stateIn
 
-private val MAX_DIALOG_SHOW_TIME: Duration = 3.seconds
-
 /**
  * Handles Volume Dialog visibility state. It might change from several sources:
  * - [com.android.systemui.plugins.VolumeDialogController] requests visibility change;
@@ -60,8 +61,11 @@
     private val tracer: VolumeTracer,
     private val repository: VolumeDialogVisibilityRepository,
     private val controller: VolumeDialogController,
+    private val secureSettingsRepository: SecureSettingsRepository,
 ) {
 
+    private val defaultTimeout = 3.seconds
+
     @SuppressLint("SharedFlowCreation")
     private val mutableDismissDialogEvents = MutableSharedFlow<Unit>(extraBufferCapacity = 1)
     val dialogVisibility: Flow<VolumeDialogVisibilityModel> =
@@ -73,7 +77,14 @@
     init {
         merge(
                 mutableDismissDialogEvents.mapLatest {
-                    delay(MAX_DIALOG_SHOW_TIME)
+                    delay(
+                        secureSettingsRepository
+                            .getInt(
+                                Settings.Secure.VOLUME_DIALOG_DISMISS_TIMEOUT,
+                                defaultTimeout.toInt(DurationUnit.MILLISECONDS),
+                            )
+                            .milliseconds
+                    )
                     VolumeDialogEventModel.DismissRequested(Events.DISMISS_REASON_TIMEOUT)
                 },
                 callbacksInteractor.event,
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt
index 3d0c7d6..eb2b2f6 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt
@@ -120,7 +120,7 @@
         drawerContainer.setTransitionListener(ringerDrawerTransitionListener)
         volumeDialogBackgroundView.background = volumeDialogBackgroundView.background.mutate()
         ringerBackgroundView.background = ringerBackgroundView.background.mutate()
-        launch { dialogViewModel.addTouchableBounds(drawerContainer) }
+        launch { dialogViewModel.addTouchableBounds(ringerBackgroundView) }
 
         viewModel.ringerViewModel
             .mapLatest { ringerState ->
@@ -246,16 +246,12 @@
                 uiModel.drawerState.currentMode != uiModel.drawerState.previousMode
         ) {
             val count = uiModel.availableButtons.size
-            val selectedButton =
-                getChildAt(count - uiModel.currentButtonIndex)
-                    .requireViewById<ImageButton>(R.id.volume_drawer_button)
+            val selectedButton = getChildAt(count - uiModel.currentButtonIndex) as ImageButton
             val previousIndex =
                 uiModel.availableButtons.indexOfFirst {
                     it.ringerMode == uiModel.drawerState.previousMode
                 }
-            val unselectedButton =
-                getChildAt(count - previousIndex)
-                    .requireViewById<ImageButton>(R.id.volume_drawer_button)
+            val unselectedButton = getChildAt(count - previousIndex) as ImageButton
             // We only need to execute on roundness animation end and volume dialog background
             // progress update once because these changes should be applied once on volume dialog
             // background and ringer drawer views.
@@ -306,7 +302,7 @@
     ) {
         val count = uiModel.availableButtons.size
         uiModel.availableButtons.fastForEachIndexed { index, ringerButton ->
-            val view = getChildAt(count - index)
+            val view = getChildAt(count - index) as ImageButton
             val isOpen = uiModel.drawerState is RingerDrawerState.Open
             if (index == uiModel.currentButtonIndex) {
                 view.bindDrawerButton(
@@ -323,37 +319,37 @@
         onAnimationEnd?.run()
     }
 
-    private fun View.bindDrawerButton(
+    private fun ImageButton.bindDrawerButton(
         buttonViewModel: RingerButtonViewModel,
         viewModel: VolumeDialogRingerDrawerViewModel,
         isOpen: Boolean,
         isSelected: Boolean = false,
         isAnimated: Boolean = false,
     ) {
+        // id = buttonViewModel.viewId
+        setSelected(isSelected)
         val ringerContentDesc = context.getString(buttonViewModel.contentDescriptionResId)
-        with(requireViewById<ImageButton>(R.id.volume_drawer_button)) {
-            setImageResource(buttonViewModel.imageResId)
-            contentDescription =
-                if (isSelected && !isOpen) {
-                    context.getString(
-                        R.string.volume_ringer_drawer_closed_content_description,
-                        ringerContentDesc,
-                    )
-                } else {
-                    ringerContentDesc
-                }
-            if (isSelected && !isAnimated) {
-                setBackgroundResource(R.drawable.volume_drawer_selection_bg)
-                setColorFilter(context.getColor(internalR.color.materialColorOnPrimary))
-                background = background.mutate()
-            } else if (!isAnimated) {
-                setBackgroundResource(R.drawable.volume_ringer_item_bg)
-                setColorFilter(context.getColor(internalR.color.materialColorOnSurface))
-                background = background.mutate()
+        setImageResource(buttonViewModel.imageResId)
+        contentDescription =
+            if (isSelected && !isOpen) {
+                context.getString(
+                    R.string.volume_ringer_drawer_closed_content_description,
+                    ringerContentDesc,
+                )
+            } else {
+                ringerContentDesc
             }
-            setOnClickListener {
-                viewModel.onRingerButtonClicked(buttonViewModel.ringerMode, isSelected)
-            }
+        if (isSelected && !isAnimated) {
+            setBackgroundResource(R.drawable.volume_drawer_selection_bg)
+            setColorFilter(context.getColor(internalR.color.materialColorOnPrimary))
+            background = background.mutate()
+        } else if (!isAnimated) {
+            setBackgroundResource(R.drawable.volume_ringer_item_bg)
+            setColorFilter(context.getColor(internalR.color.materialColorOnSurface))
+            background = background.mutate()
+        }
+        setOnClickListener {
+            viewModel.onRingerButtonClicked(buttonViewModel.ringerMode, isSelected)
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt
index ffafa06..2c9ee54 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt
@@ -39,8 +39,8 @@
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableFloatStateOf
 import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.runtime.setValue
-import androidx.compose.runtime.snapshotFlow
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.input.pointer.pointerInput
@@ -62,9 +62,6 @@
 import kotlin.math.roundToInt
 import kotlinx.coroutines.coroutineScope
 import kotlinx.coroutines.currentCoroutineContext
-import kotlinx.coroutines.flow.distinctUntilChanged
-import kotlinx.coroutines.flow.filter
-import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.isActive
 
 @VolumeDialogSliderScope
@@ -102,6 +99,7 @@
     hapticsViewModelFactory: SliderHapticsViewModel.Factory?,
     modifier: Modifier = Modifier,
 ) {
+    val coroutineScope = rememberCoroutineScope()
     val colors =
         SliderDefaults.colors(
             thumbColor = MaterialTheme.colorScheme.primary,
@@ -110,8 +108,10 @@
             activeTrackColor = MaterialTheme.colorScheme.primary,
             inactiveTrackColor = MaterialTheme.colorScheme.surfaceContainerHighest,
         )
-    val collectedSliderState by viewModel.state.collectAsStateWithLifecycle(null)
-    val sliderState = collectedSliderState ?: return
+    val collectedSliderStateModel by viewModel.state.collectAsStateWithLifecycle(null)
+    val sliderStateModel = collectedSliderStateModel ?: return
+
+    val steps = with(sliderStateModel.valueRange) { endInclusive - start - 1 }.toInt()
 
     val interactionSource = remember { MutableInteractionSource() }
     val hapticsViewModel: SliderHapticsViewModel? =
@@ -119,56 +119,54 @@
             rememberViewModel(traceName = "SliderHapticsViewModel") {
                 it.create(
                     interactionSource,
-                    sliderState.valueRange,
+                    sliderStateModel.valueRange,
                     Orientation.Vertical,
-                    VolumeHapticsConfigsProvider.sliderHapticFeedbackConfig(sliderState.valueRange),
+                    VolumeHapticsConfigsProvider.sliderHapticFeedbackConfig(
+                        sliderStateModel.valueRange
+                    ),
                     VolumeHapticsConfigsProvider.seekableSliderTrackerConfig,
                 )
             }
         }
 
-    val state =
-        remember(sliderState.valueRange) {
+    val sliderState =
+        remember(steps, sliderStateModel.valueRange) {
             SliderState(
-                    value = sliderState.value,
-                    valueRange = sliderState.valueRange,
-                    steps =
-                        (sliderState.valueRange.endInclusive - sliderState.valueRange.start - 1)
-                            .toInt(),
+                    value = sliderStateModel.value,
+                    valueRange = sliderStateModel.valueRange,
+                    steps = steps,
                 )
-                .apply {
-                    onValueChangeFinished = {
-                        viewModel.onStreamChangeFinished(value.roundToInt())
+                .also { sliderState ->
+                    sliderState.onValueChangeFinished = {
+                        viewModel.onStreamChangeFinished(sliderState.value.roundToInt())
                         hapticsViewModel?.onValueChangeEnded()
                     }
-                    setOnValueChangeListener {
-                        value = it
-                        hapticsViewModel?.addVelocityDataPoint(it)
+                    sliderState.onValueChange = { newValue ->
+                        sliderState.value = newValue
+                        hapticsViewModel?.addVelocityDataPoint(newValue)
                         overscrollViewModel.setSlider(
-                            value = value,
-                            min = valueRange.start,
-                            max = valueRange.endInclusive,
+                            value = sliderState.value,
+                            min = sliderState.valueRange.start,
+                            max = sliderState.valueRange.endInclusive,
                         )
-                        viewModel.setStreamVolume(it, true)
+                        viewModel.setStreamVolume(newValue, true)
                     }
                 }
         }
-    var lastDiscreteStep by remember { mutableFloatStateOf(round(sliderState.value)) }
-    LaunchedEffect(sliderState.value) {
-        state.value = sliderState.value
-        snapshotFlow { sliderState.value }
-            .map { round(it) }
-            .filter { it != lastDiscreteStep }
-            .distinctUntilChanged()
-            .collect { discreteStep ->
-                lastDiscreteStep = discreteStep
-                hapticsViewModel?.onValueChange(discreteStep)
-            }
+
+    var lastDiscreteStep by remember { mutableFloatStateOf(round(sliderStateModel.value)) }
+    LaunchedEffect(sliderStateModel.value) {
+        val value = sliderStateModel.value
+        sliderState.value = value
+        if (value != lastDiscreteStep) {
+            lastDiscreteStep = value
+            hapticsViewModel?.onValueChange(value)
+        }
     }
 
     VerticalSlider(
-        state = state,
-        enabled = !sliderState.isDisabled,
+        state = sliderState,
+        enabled = !sliderStateModel.isDisabled,
         reverseDirection = true,
         colors = colors,
         interactionSource = interactionSource,
@@ -185,14 +183,14 @@
             },
         track = {
             VolumeDialogSliderTrack(
-                state,
+                sliderState,
                 colors = colors,
-                isEnabled = !sliderState.isDisabled,
+                isEnabled = !sliderStateModel.isDisabled,
                 activeTrackEndIcon = { iconsState ->
-                    VolumeIcon(sliderState.icon, iconsState.isActiveTrackEndIconVisible)
+                    VolumeIcon(sliderStateModel.icon, iconsState.isActiveTrackEndIconVisible)
                 },
                 inactiveTrackEndIcon = { iconsState ->
-                    VolumeIcon(sliderState.icon, !iconsState.isActiveTrackEndIconVisible)
+                    VolumeIcon(sliderStateModel.icon, !iconsState.isActiveTrackEndIconVisible)
                 },
             )
         },
@@ -214,15 +212,3 @@
         Icon(painter = DrawablePainter(drawable), contentDescription = null)
     }
 }
-
-@OptIn(ExperimentalMaterial3Api::class)
-fun SliderState.setOnValueChangeListener(onValueChange: ((Float) -> Unit)?) {
-    with(javaClass.getDeclaredField("onValueChange")) {
-        val oldIsAccessible = isAccessible
-        AutoCloseable { isAccessible = oldIsAccessible }
-            .use {
-                isAccessible = true
-                set(this@setOnValueChangeListener, onValueChange)
-            }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt
index f2d7d95..7cc4bcc 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt
@@ -74,7 +74,7 @@
         val insets: MutableStateFlow<WindowInsets> =
             MutableStateFlow(WindowInsets.Builder().build())
         // Root view of the Volume Dialog.
-        val root: MotionLayout = dialog.requireViewById(R.id.volume_dialog_root)
+        val root: MotionLayout = dialog.requireViewById(R.id.volume_dialog)
 
         animateVisibility(root, dialog, viewModel.dialogVisibilityModel)
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/haptics/ui/VolumeHapticsConfigsProvider.kt b/packages/SystemUI/src/com/android/systemui/volume/haptics/ui/VolumeHapticsConfigsProvider.kt
index 92e9bf2..863ae62 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/haptics/ui/VolumeHapticsConfigsProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/haptics/ui/VolumeHapticsConfigsProvider.kt
@@ -18,11 +18,13 @@
 
 import com.android.systemui.haptics.slider.SeekableSliderTrackerConfig
 import com.android.systemui.haptics.slider.SliderHapticFeedbackConfig
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 
 object VolumeHapticsConfigsProvider {
 
     fun sliderHapticFeedbackConfig(
-        valueRange: ClosedFloatingPointRange<Float>
+        valueRange: ClosedFloatingPointRange<Float>,
+        filter: SliderHapticFeedbackFilter = SliderHapticFeedbackFilter(),
     ): SliderHapticFeedbackConfig {
         val sliderStepSize = 1f / (valueRange.endInclusive - valueRange.start)
         return SliderHapticFeedbackConfig(
@@ -33,6 +35,7 @@
             additionalVelocityMaxBump = 0.2f,
             maxVelocityToScale = 0.1f, /* slider progress(from 0 to 1) per sec */
             sliderStepSize = sliderStepSize,
+            filter = filter,
         )
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt
index 5f20b4e..e2d2f3f 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt
@@ -20,6 +20,7 @@
 import com.android.internal.logging.UiEventLogger
 import com.android.systemui.Flags
 import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel
 import com.android.systemui.res.R
 import com.android.systemui.volume.domain.interactor.AudioSharingInteractor
@@ -102,6 +103,9 @@
         override val icon: Icon,
         override val label: String,
     ) : SliderState {
+        override val hapticFilter: SliderHapticFeedbackFilter
+            get() = SliderHapticFeedbackFilter()
+
         override val isEnabled: Boolean
             get() = true
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt
index 4410cb1..f9d776b 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt
@@ -28,6 +28,7 @@
 import com.android.settingslib.volume.shared.model.RingerMode
 import com.android.systemui.Flags
 import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel
 import com.android.systemui.modes.shared.ModesUiIcons
 import com.android.systemui.res.R
@@ -159,6 +160,7 @@
         return State(
             value = volume.toFloat(),
             valueRange = volumeRange.first.toFloat()..volumeRange.last.toFloat(),
+            hapticFilter = createHapticFilter(ringerMode),
             icon = icon,
             label = label,
             disabledMessage = disabledMessage,
@@ -198,6 +200,18 @@
         )
     }
 
+    private fun AudioStreamModel.createHapticFilter(
+        ringerMode: RingerMode
+    ): SliderHapticFeedbackFilter =
+        when (audioStream.value) {
+            AudioManager.STREAM_RING -> SliderHapticFeedbackFilter(vibrateOnLowerBookend = false)
+            AudioManager.STREAM_NOTIFICATION ->
+                SliderHapticFeedbackFilter(
+                    vibrateOnLowerBookend = ringerMode.value != AudioManager.RINGER_MODE_VIBRATE
+                )
+            else -> SliderHapticFeedbackFilter()
+        }
+
     // TODO: b/372213356 - Figure out the correct messages for VOICE_CALL and RING.
     //  In fact, VOICE_CALL should not be affected by interruption filtering at all.
     private fun streamDisabledMessage(): Flow<String> {
@@ -288,6 +302,7 @@
     private data class State(
         override val value: Float,
         override val valueRange: ClosedFloatingPointRange<Float>,
+        override val hapticFilter: SliderHapticFeedbackFilter,
         override val icon: Icon,
         override val label: String,
         override val disabledMessage: String?,
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt
index 0d80452..5332764 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt
@@ -21,6 +21,7 @@
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.Flags
 import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel
 import com.android.systemui.res.R
 import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaDeviceSessionInteractor
@@ -90,6 +91,9 @@
         override val isEnabled: Boolean,
         override val a11yStep: Int,
     ) : SliderState {
+        override val hapticFilter: SliderHapticFeedbackFilter
+            get() = SliderHapticFeedbackFilter()
+
         override val disabledMessage: String?
             get() = null
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt
index c951928..f135371 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.volume.panel.component.volume.slider.ui.viewmodel
 
 import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 
 /**
  * Models a state of a volume slider.
@@ -26,6 +27,8 @@
 sealed interface SliderState {
     val value: Float
     val valueRange: ClosedFloatingPointRange<Float>
+    val hapticFilter: SliderHapticFeedbackFilter
+
     val icon: Icon?
     val isEnabled: Boolean
     val label: String
@@ -42,6 +45,7 @@
     data object Empty : SliderState {
         override val value: Float = 0f
         override val valueRange: ClosedFloatingPointRange<Float> = 0f..1f
+        override val hapticFilter = SliderHapticFeedbackFilter()
         override val icon: Icon? = null
         override val label: String = ""
         override val disabledMessage: String? = null
diff --git a/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperFocalAreaRepository.kt b/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperFocalAreaRepository.kt
new file mode 100644
index 0000000..2c3491b
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperFocalAreaRepository.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.wallpapers.data.repository
+
+import android.graphics.PointF
+import android.graphics.RectF
+import com.android.systemui.dagger.SysUISingleton
+import javax.inject.Inject
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+
+interface WallpaperFocalAreaRepository {
+
+    /** The top of shortcut in screen, used by wallpaper to find remaining space in lockscreen */
+    val shortcutAbsoluteTop: StateFlow<Float>
+
+    val notificationStackAbsoluteBottom: StateFlow<Float>
+
+    val wallpaperFocalAreaBounds: StateFlow<RectF>
+
+    val wallpaperFocalAreaTapPosition: StateFlow<PointF>
+
+    /** top of notifications without bcsmartspace in small clock settings */
+    val notificationDefaultTop: StateFlow<Float>
+
+    fun setShortcutAbsoluteTop(top: Float)
+
+    /** Set bottom of notifications from notification stack, used as top for focal area bounds */
+    fun setNotificationStackAbsoluteBottom(bottom: Float)
+
+    fun setWallpaperFocalAreaBounds(bounds: RectF)
+
+    fun setNotificationDefaultTop(top: Float)
+
+    fun setTapPosition(tapPosition: PointF)
+}
+
+@SysUISingleton
+class WallpaperFocalAreaRepositoryImpl @Inject constructor() : WallpaperFocalAreaRepository {
+
+    private val _shortcutAbsoluteTop = MutableStateFlow(0F)
+    override val shortcutAbsoluteTop = _shortcutAbsoluteTop.asStateFlow()
+
+    private val _notificationStackAbsoluteBottom = MutableStateFlow(0F)
+    override val notificationStackAbsoluteBottom = _notificationStackAbsoluteBottom.asStateFlow()
+
+    private val _wallpaperFocalAreaBounds = MutableStateFlow(RectF(0F, 0F, 0F, 0F))
+    override val wallpaperFocalAreaBounds: StateFlow<RectF> =
+        _wallpaperFocalAreaBounds.asStateFlow()
+
+    private val _wallpaperFocalAreaTapPosition = MutableStateFlow(PointF(0F, 0F))
+    override val wallpaperFocalAreaTapPosition: StateFlow<PointF> =
+        _wallpaperFocalAreaTapPosition.asStateFlow()
+
+    private val _notificationDefaultTop = MutableStateFlow(0F)
+    override val notificationDefaultTop: StateFlow<Float> = _notificationDefaultTop.asStateFlow()
+
+    override fun setShortcutAbsoluteTop(top: Float) {
+        _shortcutAbsoluteTop.value = top
+    }
+
+    override fun setNotificationStackAbsoluteBottom(bottom: Float) {
+        _notificationStackAbsoluteBottom.value = bottom
+    }
+
+    override fun setNotificationDefaultTop(top: Float) {
+        _notificationDefaultTop.value = top
+    }
+
+    override fun setWallpaperFocalAreaBounds(bounds: RectF) {
+        _wallpaperFocalAreaBounds.value = bounds
+    }
+
+    override fun setTapPosition(point: PointF) {
+        _wallpaperFocalAreaTapPosition.value = point
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperRepository.kt b/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperRepository.kt
index 79a9630..a55f76b 100644
--- a/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/wallpapers/data/repository/WallpaperRepository.kt
@@ -23,6 +23,7 @@
 import android.content.IntentFilter
 import android.os.Bundle
 import android.os.UserHandle
+import android.provider.Settings
 import android.view.View
 import androidx.annotation.VisibleForTesting
 import com.android.app.tracing.coroutines.launchTraced as launch
@@ -30,13 +31,19 @@
 import com.android.systemui.broadcast.BroadcastDispatcher
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Background
-import com.android.systemui.keyguard.data.repository.KeyguardRepository
+import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
+import com.android.systemui.keyguard.shared.model.Edge
+import com.android.systemui.keyguard.shared.model.KeyguardState
+import com.android.systemui.keyguard.shared.model.TransitionState
 import com.android.systemui.res.R as SysUIR
+import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shared.Flags.ambientAod
 import com.android.systemui.shared.Flags.extendedWallpaperEffects
 import com.android.systemui.user.data.model.SelectedUserModel
 import com.android.systemui.user.data.model.SelectionStatus
 import com.android.systemui.user.data.repository.UserRepository
+import com.android.systemui.util.settings.SecureSettings
+import com.android.systemui.util.settings.SettingsProxyExt.observerFlow
 import com.android.systemui.utils.coroutines.flow.mapLatestConflated
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineDispatcher
@@ -50,7 +57,7 @@
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filter
-import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.onStart
 import kotlinx.coroutines.flow.stateIn
@@ -79,9 +86,11 @@
     @Background private val bgDispatcher: CoroutineDispatcher,
     broadcastDispatcher: BroadcastDispatcher,
     userRepository: UserRepository,
-    keyguardRepository: KeyguardRepository,
+    wallpaperFocalAreaRepository: WallpaperFocalAreaRepository,
     private val wallpaperManager: WallpaperManager,
     private val context: Context,
+    keyguardTransitionInteractor: KeyguardTransitionInteractor,
+    private val secureSettings: SecureSettings,
 ) : WallpaperRepository {
     private val wallpaperChanged: Flow<Unit> =
         broadcastDispatcher
@@ -101,6 +110,7 @@
             .filter { it.selectionStatus == SelectionStatus.SELECTION_COMPLETE }
 
     @VisibleForTesting var sendLockscreenLayoutJob: Job? = null
+    @VisibleForTesting var sendTapInShapeEffectsJob: Job? = null
 
     override val wallpaperInfo: StateFlow<WallpaperInfo?> =
         if (!wallpaperManager.isWallpaperSupported) {
@@ -119,7 +129,17 @@
         }
 
     override val wallpaperSupportsAmbientMode: Flow<Boolean> =
-        flowOf(context.resources.getBoolean(R.bool.config_dozeSupportsAodWallpaper) && ambientAod())
+        secureSettings
+            .observerFlow(UserHandle.USER_ALL, Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED)
+            .onStart { emit(Unit) }
+            .map {
+                val userEnabled =
+                    secureSettings.getInt(Settings.Secure.DOZE_ALWAYS_ON_WALLPAPER_ENABLED, 1) == 1
+                userEnabled &&
+                    context.resources.getBoolean(R.bool.config_dozeSupportsAodWallpaper) &&
+                    ambientAod()
+            }
+            .flowOn(bgDispatcher)
 
     override var rootView: View? = null
 
@@ -131,38 +151,68 @@
                 if (shouldSendNotificationLayout) {
                     sendLockscreenLayoutJob =
                         scope.launch {
-                            keyguardRepository.wallpaperFocalAreaBounds.collect {
-                                wallpaperFocalAreaBounds ->
+                            combine(
+                                    wallpaperFocalAreaRepository.wallpaperFocalAreaBounds,
+                                    keyguardTransitionInteractor
+                                        .transition(
+                                            edge = Edge.create(to = Scenes.Lockscreen),
+                                            edgeWithoutSceneContainer =
+                                                Edge.create(to = KeyguardState.LOCKSCREEN),
+                                        )
+                                        .filter { transitionStep ->
+                                            transitionStep.transitionState ==
+                                                TransitionState.STARTED
+                                        },
+                                    ::Pair,
+                                )
+                                .map { (bounds, _) -> bounds }
+                                .collect { wallpaperFocalAreaBounds ->
+                                    wallpaperManager.sendWallpaperCommand(
+                                        /* windowToken = */ rootView?.windowToken,
+                                        /* action = */ WallpaperManager
+                                            .COMMAND_LOCKSCREEN_LAYOUT_CHANGED,
+                                        /* x = */ 0,
+                                        /* y = */ 0,
+                                        /* z = */ 0,
+                                        /* extras = */ Bundle().apply {
+                                            putFloat(
+                                                "wallpaperFocalAreaLeft",
+                                                wallpaperFocalAreaBounds.left,
+                                            )
+                                            putFloat(
+                                                "wallpaperFocalAreaRight",
+                                                wallpaperFocalAreaBounds.right,
+                                            )
+                                            putFloat(
+                                                "wallpaperFocalAreaTop",
+                                                wallpaperFocalAreaBounds.top,
+                                            )
+                                            putFloat(
+                                                "wallpaperFocalAreaBottom",
+                                                wallpaperFocalAreaBounds.bottom,
+                                            )
+                                        },
+                                    )
+                                }
+                        }
+
+                    sendTapInShapeEffectsJob =
+                        scope.launch {
+                            wallpaperFocalAreaRepository.wallpaperFocalAreaTapPosition.collect {
+                                wallpaperFocalAreaTapPosition ->
                                 wallpaperManager.sendWallpaperCommand(
                                     /* windowToken = */ rootView?.windowToken,
-                                    /* action = */ WallpaperManager
-                                        .COMMAND_LOCKSCREEN_LAYOUT_CHANGED,
-                                    /* x = */ 0,
-                                    /* y = */ 0,
+                                    /* action = */ WallpaperManager.COMMAND_LOCKSCREEN_TAP,
+                                    /* x = */ wallpaperFocalAreaTapPosition.x.toInt(),
+                                    /* y = */ wallpaperFocalAreaTapPosition.y.toInt(),
                                     /* z = */ 0,
-                                    /* extras = */ Bundle().apply {
-                                        putFloat(
-                                            "wallpaperFocalAreaLeft",
-                                            wallpaperFocalAreaBounds.left,
-                                        )
-                                        putFloat(
-                                            "wallpaperFocalAreaRight",
-                                            wallpaperFocalAreaBounds.right,
-                                        )
-                                        putFloat(
-                                            "wallpaperFocalAreaTop",
-                                            wallpaperFocalAreaBounds.top,
-                                        )
-                                        putFloat(
-                                            "wallpaperFocalAreaBottom",
-                                            wallpaperFocalAreaBounds.bottom,
-                                        )
-                                    },
+                                    /* extras = */ null,
                                 )
                             }
                         }
                 } else {
                     sendLockscreenLayoutJob?.cancel()
+                    sendTapInShapeEffectsJob?.cancel()
                 }
                 shouldSendNotificationLayout
             }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WallpaperFocalAreaInteractor.kt b/packages/SystemUI/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractor.kt
similarity index 70%
rename from packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WallpaperFocalAreaInteractor.kt
rename to packages/SystemUI/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractor.kt
index 9c744d6..187d6c7 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WallpaperFocalAreaInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractor.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,44 +14,43 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.wallpapers.domain.interactor
 
 import android.content.Context
 import android.content.res.Resources
+import android.graphics.PointF
 import android.graphics.RectF
 import android.util.TypedValue
-import com.android.app.animation.MathUtils.max
+import androidx.annotation.VisibleForTesting
+import com.android.app.animation.MathUtils
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Application
-import com.android.systemui.keyguard.data.repository.KeyguardClockRepository
-import com.android.systemui.keyguard.data.repository.KeyguardRepository
 import com.android.systemui.res.R
 import com.android.systemui.shade.data.repository.ShadeRepository
 import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor
+import com.android.systemui.wallpapers.data.repository.WallpaperFocalAreaRepository
 import com.android.systemui.wallpapers.data.repository.WallpaperRepository
 import javax.inject.Inject
 import kotlin.math.min
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.SharingStarted
-import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.flow.distinctUntilChanged
 
 @SysUISingleton
 class WallpaperFocalAreaInteractor
 @Inject
 constructor(
     @Application private val applicationScope: CoroutineScope,
-    context: Context,
-    private val keyguardRepository: KeyguardRepository,
+    private val context: Context,
+    private val wallpaperFocalAreaRepository: WallpaperFocalAreaRepository,
     shadeRepository: ShadeRepository,
     activeNotificationsInteractor: ActiveNotificationsInteractor,
-    keyguardClockRepository: KeyguardClockRepository,
-    wallpaperRepository: WallpaperRepository,
+    val wallpaperRepository: WallpaperRepository,
 ) {
-    // When there's notifications in splitshade, the focal area shape effect should be left aligned
-    private val notificationInShadeWideLayout: Flow<Boolean> =
+    // When there's notifications in splitshade, the focal area should be left aligned
+    @VisibleForTesting
+    val notificationInShadeWideLayout: Flow<Boolean> =
         combine(
             shadeRepository.isShadeLayoutWide,
             activeNotificationsInteractor.areAnyNotificationsPresent,
@@ -63,14 +62,15 @@
             }
         }
 
-    val shouldSendFocalArea = wallpaperRepository.shouldSendFocalArea
-    val wallpaperFocalAreaBounds: StateFlow<RectF?> =
+    val hasFocalArea = wallpaperRepository.shouldSendFocalArea
+
+    val wallpaperFocalAreaBounds: Flow<RectF> =
         combine(
                 shadeRepository.isShadeLayoutWide,
                 notificationInShadeWideLayout,
-                keyguardRepository.notificationStackAbsoluteBottom,
-                keyguardRepository.shortcutAbsoluteTop,
-                keyguardClockRepository.notificationDefaultTop,
+                wallpaperFocalAreaRepository.notificationStackAbsoluteBottom,
+                wallpaperFocalAreaRepository.shortcutAbsoluteTop,
+                wallpaperFocalAreaRepository.notificationDefaultTop,
             ) {
                 isShadeLayoutWide,
                 notificationInShadeWideLayout,
@@ -80,6 +80,7 @@
                 // Wallpaper will be zoomed in with config_wallpaperMaxScale in lockscreen
                 // so we need to give a bounds taking this scale in consideration
                 val wallpaperZoomedInScale = getSystemWallpaperMaximumScale(context)
+
                 val screenBounds =
                     RectF(
                         0F,
@@ -95,12 +96,14 @@
                         screenBounds.centerX() + screenBounds.width() / 2F / wallpaperZoomedInScale,
                         screenBounds.centerY() + screenBounds.height() / 2F / wallpaperZoomedInScale,
                     )
+
                 val maxFocalAreaWidth =
                     TypedValue.applyDimension(
                         TypedValue.COMPLEX_UNIT_DIP,
                         FOCAL_AREA_MAX_WIDTH_DP.toFloat(),
                         context.resources.displayMetrics,
                     )
+
                 val (left, right) =
                 // tablet landscape
                 if (context.resources.getBoolean(R.bool.center_align_focal_area_shape)) {
@@ -140,32 +143,48 @@
                         // handheld / portrait
                     } else {
                         scaledBounds.top +
-                            max(notificationDefaultTop, notificationStackAbsoluteBottom) /
+                            MathUtils.max(notificationDefaultTop, notificationStackAbsoluteBottom) /
                                 wallpaperZoomedInScale
                     }
                 val bottom = scaledBounds.bottom - scaledBottomMargin
                 RectF(left, top, right, bottom)
             }
-            .stateIn(
-                applicationScope,
-                started = SharingStarted.WhileSubscribed(),
-                initialValue = null,
-            )
+            .distinctUntilChanged()
 
-    fun setWallpaperFocalAreaBounds(bounds: RectF) {
-        keyguardRepository.setWallpaperFocalAreaBounds(bounds)
+    fun setFocalAreaBounds(bounds: RectF) {
+        wallpaperFocalAreaRepository.setWallpaperFocalAreaBounds(bounds)
+    }
+
+    fun setNotificationDefaultTop(top: Float) {
+        wallpaperFocalAreaRepository.setNotificationDefaultTop(top)
+    }
+
+    fun setTapPosition(x: Float, y: Float) {
+        // Focal area should only react to touch event within its bounds
+        val wallpaperZoomedInScale = getSystemWallpaperMaximumScale(context)
+        // Because there's a scale applied on wallpaper in lockscreen
+        // we should map it to the unscaled position on wallpaper
+        val screenCenterX = context.resources.displayMetrics.widthPixels / 2F
+        val newX = (x - screenCenterX) / wallpaperZoomedInScale + screenCenterX
+        val screenCenterY = context.resources.displayMetrics.heightPixels / 2F
+        val newY = (y - screenCenterY) / wallpaperZoomedInScale + screenCenterY
+        if (wallpaperFocalAreaRepository.wallpaperFocalAreaBounds.value.contains(newX, newY)) {
+            wallpaperFocalAreaRepository.setTapPosition(PointF(newX, newY))
+        }
     }
 
     companion object {
         fun getSystemWallpaperMaximumScale(context: Context): Float {
-            return context.resources.getFloat(
-                Resources.getSystem()
-                    .getIdentifier(
-                        /* name= */ "config_wallpaperMaxScale",
-                        /* defType= */ "dimen",
-                        /* defPackage= */ "android",
-                    )
-            )
+            val scale =
+                context.resources.getFloat(
+                    Resources.getSystem()
+                        .getIdentifier(
+                            /* name= */ "config_wallpaperMaxScale",
+                            /* defType= */ "dimen",
+                            /* defPackage= */ "android",
+                        )
+                )
+            return if (scale == 0f) 1f else scale
         }
 
         // A max width for focal area shape effects bounds, to avoid
diff --git a/packages/SystemUI/src/com/android/systemui/wallpapers/ui/viewmodel/WallpaperFocalAreaViewModel.kt b/packages/SystemUI/src/com/android/systemui/wallpapers/ui/viewmodel/WallpaperFocalAreaViewModel.kt
new file mode 100644
index 0000000..70a97d4
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/wallpapers/ui/viewmodel/WallpaperFocalAreaViewModel.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.wallpapers.ui.viewmodel
+
+import android.graphics.RectF
+import com.android.systemui.wallpapers.domain.interactor.WallpaperFocalAreaInteractor
+import javax.inject.Inject
+
+class WallpaperFocalAreaViewModel
+@Inject
+constructor(private val wallpaperFocalAreaInteractor: WallpaperFocalAreaInteractor) {
+    val hasFocalArea = wallpaperFocalAreaInteractor.hasFocalArea
+
+    val wallpaperFocalAreaBounds = wallpaperFocalAreaInteractor.wallpaperFocalAreaBounds
+
+    fun setFocalAreaBounds(bounds: RectF) {
+        wallpaperFocalAreaInteractor.setFocalAreaBounds(bounds)
+    }
+
+    fun setTapPosition(x: Float, y: Float) {
+        wallpaperFocalAreaInteractor.setTapPosition(x, y)
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/window/dagger/WindowRootViewBlurModule.kt b/packages/SystemUI/src/com/android/systemui/window/dagger/WindowRootViewBlurModule.kt
new file mode 100644
index 0000000..95b3b68
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/window/dagger/WindowRootViewBlurModule.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.window.dagger
+
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.window.data.repository.WindowRootViewBlurRepository
+import com.android.systemui.window.data.repository.WindowRootViewBlurRepositoryImpl
+import dagger.Binds
+import dagger.Module
+
+/**
+ * Module that can be installed in sysui variants where we support cross window blur.
+ */
+@Module
+interface WindowRootViewBlurModule {
+    @Binds
+    @SysUISingleton
+    fun bindWindowRootViewBlurRepository(
+        windowRootViewBlurRepositoryImpl: WindowRootViewBlurRepositoryImpl
+    ): WindowRootViewBlurRepository
+}
diff --git a/packages/SystemUI/src/com/android/systemui/window/dagger/WindowRootViewBlurNotSupportedModule.kt b/packages/SystemUI/src/com/android/systemui/window/dagger/WindowRootViewBlurNotSupportedModule.kt
new file mode 100644
index 0000000..ae917e0
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/window/dagger/WindowRootViewBlurNotSupportedModule.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.window.dagger
+
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.window.data.repository.NoopWindowRootViewBlurRepository
+import com.android.systemui.window.data.repository.WindowRootViewBlurRepository
+import dagger.Binds
+import dagger.Module
+
+/**
+ * Module that can be installed in sysui variants where we don't support cross window blur.
+ */
+@Module
+interface WindowRootViewBlurNotSupportedModule {
+    @Binds
+    @SysUISingleton
+    fun bindWindowRootViewBlurRepository(
+        windowRootViewBlurRepositoryImpl: NoopWindowRootViewBlurRepository
+    ): WindowRootViewBlurRepository
+}
diff --git a/packages/SystemUI/src/com/android/systemui/window/data/repository/NoopWindowRootViewBlurRepository.kt b/packages/SystemUI/src/com/android/systemui/window/data/repository/NoopWindowRootViewBlurRepository.kt
new file mode 100644
index 0000000..80aa11a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/window/data/repository/NoopWindowRootViewBlurRepository.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.window.data.repository
+
+import com.android.systemui.window.data.repository.WindowRootViewBlurRepository
+import javax.inject.Inject
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+
+class NoopWindowRootViewBlurRepository @Inject constructor() : WindowRootViewBlurRepository {
+    override val blurRadius: MutableStateFlow<Int> = MutableStateFlow(0)
+    override val isBlurOpaque: MutableStateFlow<Boolean> = MutableStateFlow(true)
+    override val isBlurSupported: StateFlow<Boolean> = MutableStateFlow(false)
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepository.kt b/packages/SystemUI/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepository.kt
index 6b7de98..41ceda0 100644
--- a/packages/SystemUI/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepository.kt
@@ -16,18 +16,77 @@
 
 package com.android.systemui.window.data.repository
 
-import android.annotation.SuppressLint
+import android.app.ActivityManager
+import android.os.SystemProperties
+import android.view.CrossWindowBlurListeners
+import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
+import com.android.systemui.window.data.repository.WindowRootViewBlurRepository.Companion.isDisableBlurSysPropSet
+import java.util.concurrent.Executor
 import javax.inject.Inject
-import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.stateIn
 
 /** Repository that maintains state for the window blur effect. */
+interface WindowRootViewBlurRepository {
+    val blurRadius: MutableStateFlow<Int>
+    val isBlurOpaque: MutableStateFlow<Boolean>
+
+    /** Is blur supported based on settings toggle and battery power saver mode. */
+    val isBlurSupported: StateFlow<Boolean>
+
+    companion object {
+        /**
+         * Whether the `persist.sysui.disableBlur` is set, this is used to disable blur for tests.
+         */
+        @JvmStatic
+        fun isDisableBlurSysPropSet() = SystemProperties.getBoolean(DISABLE_BLUR_PROPERTY, false)
+
+        // property that can be used to disable the cross window blur for tests
+        private const val DISABLE_BLUR_PROPERTY = "persist.sysui.disableBlur"
+    }
+}
+
 @SysUISingleton
-class WindowRootViewBlurRepository @Inject constructor() {
-    val blurRadius = MutableStateFlow(0)
+class WindowRootViewBlurRepositoryImpl
+@Inject
+constructor(
+    crossWindowBlurListeners: CrossWindowBlurListeners,
+    @Main private val executor: Executor,
+    @Application private val scope: CoroutineScope,
+) : WindowRootViewBlurRepository {
+    override val blurRadius = MutableStateFlow(0)
 
-    val isBlurOpaque = MutableStateFlow(false)
+    override val isBlurOpaque = MutableStateFlow(false)
 
-    @SuppressLint("SharedFlowCreation") val onBlurApplied = MutableSharedFlow<Int>()
+    override val isBlurSupported: StateFlow<Boolean> =
+        conflatedCallbackFlow {
+                val sendUpdate = { value: Boolean ->
+                    trySendWithFailureLogging(
+                        isBlurAllowed() && value,
+                        TAG,
+                        "unable to send blur enabled/disable state change",
+                    )
+                }
+                crossWindowBlurListeners.addListener(executor, sendUpdate)
+                sendUpdate(crossWindowBlurListeners.isCrossWindowBlurEnabled)
+
+                awaitClose { crossWindowBlurListeners.removeListener(sendUpdate) }
+            } // stateIn because this is backed by a binder call.
+            .stateIn(scope, SharingStarted.WhileSubscribed(), false)
+
+    private fun isBlurAllowed(): Boolean {
+        return ActivityManager.isHighEndGfx() && !isDisableBlurSysPropSet()
+    }
+
+    companion object {
+        const val TAG = "WindowRootViewBlurRepository"
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractor.kt b/packages/SystemUI/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractor.kt
index bfa3498..7a88a2e 100644
--- a/packages/SystemUI/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/window/domain/interactor/WindowRootViewBlurInteractor.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.window.domain.interactor
 
+import android.annotation.SuppressLint
 import android.util.Log
 import com.android.systemui.Flags
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
@@ -28,11 +29,14 @@
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableSharedFlow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.stateIn
 
@@ -50,6 +54,8 @@
     private val communalInteractor: CommunalInteractor,
     private val repository: WindowRootViewBlurRepository,
 ) {
+    @SuppressLint("SharedFlowCreation") private val _onBlurAppliedEvent = MutableSharedFlow<Int>()
+
     private var isBouncerTransitionInProgress: StateFlow<Boolean> =
         if (Flags.bouncerUiRevamp()) {
             keyguardTransitionInteractor
@@ -66,45 +72,41 @@
      * root view.
      */
     suspend fun onBlurApplied(appliedBlurRadius: Int) {
-        repository.onBlurApplied.emit(appliedBlurRadius)
+        _onBlurAppliedEvent.emit(appliedBlurRadius)
     }
 
+    /**
+     * Whether blur is enabled or not based on settings toggle, critical thermal state, battery save
+     * state and multimedia tunneling state.
+     */
+    val isBlurCurrentlySupported: StateFlow<Boolean> = repository.isBlurSupported
+
     /** Radius of blur to be applied on the window root view. */
     val blurRadius: StateFlow<Int> = repository.blurRadius.asStateFlow()
 
-    /** Whether the blur applied is opaque or transparent. */
-    val isBlurOpaque: StateFlow<Boolean> = repository.isBlurOpaque.asStateFlow()
-
     /**
      * Emits the applied blur radius whenever blur is successfully applied to the window root view.
      */
-    val onBlurAppliedEvent: Flow<Int> = repository.onBlurApplied
+    val onBlurAppliedEvent: Flow<Int> = _onBlurAppliedEvent
 
-    /**
-     * Request to apply blur while on bouncer, this takes precedence over other blurs (from shade).
-     */
-    fun requestBlurForBouncer(blurRadius: Int) {
-        repository.isBlurOpaque.value = false
-        repository.blurRadius.value = blurRadius
-    }
-
-    /**
-     * Request to apply blur while on glanceable hub, this takes precedence over other blurs (from
-     * shade) except for bouncer.
-     */
-    fun requestBlurForGlanceableHub(blurRadius: Int): Boolean {
-        if (keyguardInteractor.primaryBouncerShowing.value) {
-            return false
+    /** Whether the blur applied is opaque or transparent. */
+    val isBlurOpaque: Flow<Boolean> =
+        combine(
+            if (Flags.bouncerUiRevamp()) {
+                keyguardInteractor.primaryBouncerShowing.or(isBouncerTransitionInProgress)
+            } else {
+                flowOf(false)
+            },
+            if (Flags.glanceableHubBlurredBackground()) {
+                communalInteractor.isCommunalBlurring
+            } else {
+                flowOf(false)
+            },
+            repository.isBlurOpaque,
+        ) { bouncerActive, ghActive, shadeBlurOpaque ->
+            if (bouncerActive || ghActive) false else shadeBlurOpaque
         }
 
-        Log.d(TAG, "requestBlurForGlanceableHub for $blurRadius")
-
-        repository.isBlurOpaque.value = false
-        repository.blurRadius.value = blurRadius
-
-        return true
-    }
-
     /**
      * Method that requests blur to be applied on window root view. It is applied only when other
      * blurs are not applied.
@@ -119,10 +121,10 @@
         // We need to check either of these because they are two different sources of truth,
         // primaryBouncerShowing changes early to true/false, but blur is
         // coordinated by transition value.
-        if (keyguardInteractor.primaryBouncerShowing.value || isBouncerTransitionInProgress.value) {
+        if (isBouncerTransitionInProgress()) {
             return false
         }
-        if (communalInteractor.isCommunalBlurring.value) {
+        if (isGlanceableHubActive()) {
             return false
         }
         Log.d(TAG, "requestingBlurForShade for $blurRadius $opaque")
@@ -131,6 +133,14 @@
         return true
     }
 
+    private fun isGlanceableHubActive() = communalInteractor.isCommunalBlurring.value
+
+    private fun isBouncerTransitionInProgress() =
+        keyguardInteractor.primaryBouncerShowing.value || isBouncerTransitionInProgress.value
+
+    private fun Flow<Boolean>.or(anotherFlow: Flow<Boolean>): Flow<Boolean> =
+        this.combine(anotherFlow) { a, b -> a || b }
+
     companion object {
         const val TAG = "WindowRootViewBlurInteractor"
     }
diff --git a/packages/SystemUI/src/com/android/systemui/window/ui/WindowRootViewBinder.kt b/packages/SystemUI/src/com/android/systemui/window/ui/WindowRootViewBinder.kt
index e09a74c..153df7f 100644
--- a/packages/SystemUI/src/com/android/systemui/window/ui/WindowRootViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/window/ui/WindowRootViewBinder.kt
@@ -19,6 +19,8 @@
 import android.util.Log
 import android.view.Choreographer
 import android.view.Choreographer.FrameCallback
+import com.android.app.tracing.coroutines.TrackTracer
+import com.android.app.tracing.coroutines.launchTraced
 import com.android.systemui.Flags
 import com.android.systemui.lifecycle.WindowLifecycleState
 import com.android.systemui.lifecycle.repeatWhenAttached
@@ -28,8 +30,8 @@
 import com.android.systemui.window.ui.viewmodel.WindowRootViewModel
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.awaitCancellation
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filter
-import kotlinx.coroutines.launch
 
 /**
  * View binder that wires up window level UI transformations like blur to the [WindowRootView]
@@ -50,7 +52,6 @@
 
         view.repeatWhenAttached(mainDispatcher) {
             Log.d(TAG, "Binding root view")
-            var frameCallbackPendingExecution: FrameCallback? = null
             view.viewModel(
                 minWindowLifecycleState = WindowLifecycleState.ATTACHED,
                 factory = { viewModelFactory.create() },
@@ -58,24 +59,48 @@
             ) { viewModel ->
                 try {
                     Log.d(TAG, "Launching coroutines that update window root view state")
-                    launch {
-                        viewModel.blurState
-                            .filter { it.radius >= 0 }
-                            .collect { blurState ->
-                                val newFrameCallback = FrameCallback {
-                                    frameCallbackPendingExecution = null
-                                    blurUtils.applyBlur(
-                                        view.rootView?.viewRootImpl,
-                                        blurState.radius,
-                                        blurState.isOpaque,
-                                    )
-                                    viewModel.onBlurApplied(blurState.radius)
+                    launchTraced("WindowBlur") {
+                        var wasUpdateScheduledForThisFrame = false
+                        var lastScheduledBlurRadius = 0
+                        var lastScheduleBlurOpaqueness = false
+
+                        // Creating the callback once and not for every coroutine invocation
+                        val newFrameCallback = FrameCallback {
+                            wasUpdateScheduledForThisFrame = false
+                            val blurRadiusToApply = lastScheduledBlurRadius
+                            blurUtils.applyBlur(
+                                view.rootView?.viewRootImpl,
+                                blurRadiusToApply,
+                                lastScheduleBlurOpaqueness,
+                            )
+                            TrackTracer.instantForGroup(
+                                "windowBlur",
+                                "appliedBlurRadius",
+                                blurRadiusToApply,
+                            )
+                            viewModel.onBlurApplied(blurRadiusToApply)
+                        }
+
+                        combine(viewModel.blurRadius, viewModel.isBlurOpaque, ::Pair)
+                            .filter { it.first >= 0 }
+                            .collect { (blurRadius, isOpaque) ->
+                                // Expectation is that we schedule only one blur radius value
+                                // per frame
+                                if (wasUpdateScheduledForThisFrame) {
+                                    return@collect
                                 }
-                                blurUtils.prepareBlur(view.rootView?.viewRootImpl, blurState.radius)
-                                if (frameCallbackPendingExecution != null) {
-                                    choreographer.removeFrameCallback(frameCallbackPendingExecution)
-                                }
-                                frameCallbackPendingExecution = newFrameCallback
+                                TrackTracer.instantForGroup(
+                                    "windowBlur",
+                                    "preparedBlurRadius",
+                                    blurRadius,
+                                )
+                                lastScheduledBlurRadius = blurRadius.toInt()
+                                lastScheduleBlurOpaqueness = isOpaque
+                                wasUpdateScheduledForThisFrame = true
+                                blurUtils.prepareBlur(
+                                    view.rootView?.viewRootImpl,
+                                    lastScheduledBlurRadius,
+                                )
                                 choreographer.postFrameCallback(newFrameCallback)
                             }
                     }
diff --git a/packages/SystemUI/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModel.kt b/packages/SystemUI/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModel.kt
index 72cca75..1b42352 100644
--- a/packages/SystemUI/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/window/ui/viewmodel/WindowRootViewModel.kt
@@ -19,36 +19,74 @@
 import android.os.Build
 import android.util.Log
 import com.android.app.tracing.coroutines.launchTraced
-import com.android.systemui.Flags.glanceableHubBlurredBackground
+import com.android.systemui.Flags
 import com.android.systemui.keyguard.ui.transitions.GlanceableHubTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
 import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.window.domain.interactor.WindowRootViewBlurInteractor
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.awaitCancellation
 import kotlinx.coroutines.channels.Channel
 import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.asStateFlow
-import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.merge
 import kotlinx.coroutines.flow.onEach
 
 typealias BlurAppliedUiEvent = Int
 
 /** View model for window root view. */
+@OptIn(ExperimentalCoroutinesApi::class)
 class WindowRootViewModel
 @AssistedInject
 constructor(
-    private val primaryBouncerTransitions: Set<@JvmSuppressWildcards PrimaryBouncerTransition>,
-    private val glanceableHubTransitions: Set<@JvmSuppressWildcards GlanceableHubTransition>,
+    primaryBouncerTransitions: Set<@JvmSuppressWildcards PrimaryBouncerTransition>,
+    glanceableHubTransitions: Set<@JvmSuppressWildcards GlanceableHubTransition>,
     private val blurInteractor: WindowRootViewBlurInteractor,
 ) : ExclusiveActivatable() {
 
     private val blurEvents = Channel<BlurAppliedUiEvent>(Channel.BUFFERED)
-    private val _blurState = MutableStateFlow(BlurState(0, false))
-    val blurState = _blurState.asStateFlow()
+
+    private val bouncerBlurRadiusFlows =
+        if (Flags.bouncerUiRevamp())
+            primaryBouncerTransitions.map { it.windowBlurRadius.logIfPossible(it.javaClass.name) }
+        else emptyList()
+
+    private val glanceableHubBlurRadiusFlows =
+        if (Flags.glanceableHubBlurredBackground())
+            glanceableHubTransitions.map { it.windowBlurRadius.logIfPossible(it.javaClass.name) }
+        else emptyList()
+
+    private val _blurRadius =
+        listOf(
+                *bouncerBlurRadiusFlows.toTypedArray(),
+                *glanceableHubBlurRadiusFlows.toTypedArray(),
+                blurInteractor.blurRadius.map { it.toFloat() }.logIfPossible("ShadeBlur"),
+            )
+            .merge()
+
+    val blurRadius: Flow<Float> =
+        blurInteractor.isBlurCurrentlySupported.flatMapLatest { blurSupported ->
+            if (blurSupported) {
+                _blurRadius
+            } else {
+                flowOf(0f)
+            }
+        }
+
+    val isBlurOpaque =
+        blurInteractor.isBlurCurrentlySupported.flatMapLatest { blurSupported ->
+            if (blurSupported) {
+                blurInteractor.isBlurOpaque.distinctUntilChanged().logIfPossible("isBlurOpaque")
+            } else {
+                flowOf(false)
+            }
+        }
 
     override suspend fun onActivated(): Nothing {
         coroutineScope {
@@ -60,49 +98,6 @@
                     blurInteractor.onBlurApplied(event)
                 }
             }
-
-            launchTraced("WindowRootViewModel#blurState") {
-                combine(blurInteractor.blurRadius, blurInteractor.isBlurOpaque, ::BlurState)
-                    .collect { _blurState.value = it }
-            }
-
-            launchTraced("WindowRootViewModel#bouncerTransitions") {
-                primaryBouncerTransitions
-                    .map { transition ->
-                        transition.windowBlurRadius.onEach { blurRadius ->
-                            if (isLoggable) {
-                                Log.d(
-                                    TAG,
-                                    "${transition.javaClass.simpleName} windowBlurRadius $blurRadius",
-                                )
-                            }
-                        }
-                    }
-                    .merge()
-                    .collect { blurRadius ->
-                        blurInteractor.requestBlurForBouncer(blurRadius.toInt())
-                    }
-            }
-
-            if (glanceableHubBlurredBackground()) {
-                launchTraced("WindowRootViewModel#glanceableHubTransitions") {
-                    glanceableHubTransitions
-                        .map { transition ->
-                            transition.windowBlurRadius.onEach { blurRadius ->
-                                if (isLoggable) {
-                                    Log.d(
-                                        TAG,
-                                        "${transition.javaClass.simpleName} windowBlurRadius $blurRadius",
-                                    )
-                                }
-                            }
-                        }
-                        .merge()
-                        .collect { blurRadius ->
-                            blurInteractor.requestBlurForGlanceableHub(blurRadius.toInt())
-                        }
-                }
-            }
         }
         awaitCancellation()
     }
@@ -118,7 +113,11 @@
 
     private companion object {
         const val TAG = "WindowRootViewModel"
-        val isLoggable = Log.isLoggable(TAG, Log.DEBUG) || Build.isDebuggable()
+        val isLoggable = Log.isLoggable(TAG, Log.VERBOSE) || Build.isDebuggable()
+
+        fun <T> Flow<T>.logIfPossible(loggingInfo: String): Flow<T> {
+            return onEach { if (isLoggable) Log.v(TAG, "$loggingInfo $it") }
+        }
     }
 }
 
diff --git a/packages/SystemUI/tests/res/layout/custom_view_flipper.xml b/packages/SystemUI/tests/res/layout/custom_view_flipper.xml
new file mode 100644
index 0000000..eb3ba82
--- /dev/null
+++ b/packages/SystemUI/tests/res/layout/custom_view_flipper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <ViewFlipper
+        android:id="@+id/flipper"
+        android:layout_width="match_parent"
+        android:layout_height="400dp"
+        android:flipInterval="1000"
+        />
+
+</FrameLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/tests/res/layout/custom_view_flipper_image.xml b/packages/SystemUI/tests/res/layout/custom_view_flipper_image.xml
new file mode 100644
index 0000000..e2a00bd
--- /dev/null
+++ b/packages/SystemUI/tests/res/layout/custom_view_flipper_image.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/imageview"
+    android:layout_width="match_parent"
+    android:layout_height="400dp" />
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 60a9fce..e2cfbc6 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -149,6 +149,7 @@
 import com.android.systemui.deviceentry.shared.model.FailedFaceAuthenticationStatus;
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.flags.SceneContainerFlagParameterizationKt;
+import com.android.systemui.keyguard.domain.interactor.KeyguardServiceShowLockscreenInteractor;
 import com.android.systemui.kosmos.KosmosJavaAdapter;
 import com.android.systemui.log.SessionTracker;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -310,6 +311,8 @@
     private SceneInteractor mSceneInteractor;
     @Mock
     private CommunalSceneInteractor mCommunalSceneInteractor;
+    @Mock
+    private KeyguardServiceShowLockscreenInteractor mKeyguardServiceShowLockscreenInteractor;
     @Captor
     private ArgumentCaptor<FaceAuthenticationListener> mFaceAuthenticationListener;
 
@@ -2739,7 +2742,8 @@
                     () -> mAlternateBouncerInteractor,
                     () -> mJavaAdapter,
                     () -> mSceneInteractor,
-                    () -> mCommunalSceneInteractor);
+                    () -> mCommunalSceneInteractor,
+                    mKeyguardServiceShowLockscreenInteractor);
             setAlternateBouncerVisibility(false);
             setPrimaryBouncerVisibility(false);
             setStrongAuthTracker(KeyguardUpdateMonitorTest.this.mStrongAuthTracker);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt
index 97abba7..2e63439 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt
@@ -58,9 +58,12 @@
             Font.Builder(sFont).setFontVariationSettings("'wght' 900, 'ital' 1, 'GRAD' 700").build()
 
         val interp = FontInterpolator()
-        assertSameAxes(startFont, interp.lerp(startFont, endFont, 0f))
-        assertSameAxes(endFont, interp.lerp(startFont, endFont, 1f))
-        assertSameAxes("'wght' 500, 'ital' 0.5, 'GRAD' 450", interp.lerp(startFont, endFont, 0.5f))
+        assertSameAxes(startFont, interp.lerp(startFont, endFont, 0f, 0f))
+        assertSameAxes(endFont, interp.lerp(startFont, endFont, 1f, 1f))
+        assertSameAxes(
+            "'wght' 500, 'ital' 0.5, 'GRAD' 450",
+            interp.lerp(startFont, endFont, 0.5f, 0.5f),
+        )
     }
 
     @Test
@@ -69,7 +72,7 @@
         val endFont = Font.Builder(sFont).setFontVariationSettings("'ital' 1").build()
 
         val interp = FontInterpolator()
-        assertSameAxes("'wght' 250, 'ital' 0.5", interp.lerp(startFont, endFont, 0.5f))
+        assertSameAxes("'wght' 250, 'ital' 0.5", interp.lerp(startFont, endFont, 0.5f, 0.5f))
     }
 
     @Test
@@ -78,8 +81,8 @@
         val endFont = Font.Builder(sFont).setFontVariationSettings("'ital' 1").build()
 
         val interp = FontInterpolator()
-        val resultFont = interp.lerp(startFont, endFont, 0.5f)
-        val cachedFont = interp.lerp(startFont, endFont, 0.5f)
+        val resultFont = interp.lerp(startFont, endFont, 0.5f, 0.5f)
+        val cachedFont = interp.lerp(startFont, endFont, 0.5f, 0.5f)
         assertThat(resultFont).isSameInstanceAs(cachedFont)
     }
 
@@ -89,8 +92,8 @@
         val endFont = Font.Builder(sFont).setFontVariationSettings("'ital' 1").build()
 
         val interp = FontInterpolator()
-        val resultFont = interp.lerp(startFont, endFont, 0.5f)
-        val reversedFont = interp.lerp(endFont, startFont, 0.5f)
+        val resultFont = interp.lerp(startFont, endFont, 0.5f, 0.5f)
+        val reversedFont = interp.lerp(endFont, startFont, 0.5f, 0.5f)
         assertThat(resultFont).isSameInstanceAs(reversedFont)
     }
 
@@ -100,14 +103,14 @@
 
         val startFont = Font.Builder(sFont).setFontVariationSettings("'wght' 100").build()
         val endFont = Font.Builder(sFont).setFontVariationSettings("'wght' 1").build()
-        val resultFont = interp.lerp(startFont, endFont, 0.5f)
+        val resultFont = interp.lerp(startFont, endFont, 0.5f, 0.5f)
         for (i in 0..(interp.fontCache as FontCacheImpl).cacheMaxEntries + 1) {
             val f1 = Font.Builder(sFont).setFontVariationSettings("'wght' ${i * 100}").build()
             val f2 = Font.Builder(sFont).setFontVariationSettings("'wght' $i").build()
-            interp.lerp(f1, f2, 0.5f)
+            interp.lerp(f1, f2, 0.5f, 0.5f)
         }
 
-        val cachedFont = interp.lerp(startFont, endFont, 0.5f)
+        val cachedFont = interp.lerp(startFont, endFont, 0.5f, 0.5f)
         assertThat(resultFont).isNotSameInstanceAs(cachedFont)
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManagerTest.kt
index 6ed990d..9c93269 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentManagerTest.kt
@@ -87,7 +87,7 @@
     private val fakeSystemClock = FakeSystemClock()
 
     private val uiProperties =
-        BluetoothTileDialogViewModel.UiProperties.build(
+        BluetoothDetailsContentViewModel.UiProperties.build(
             isBluetoothEnabled = ENABLED,
             isAutoOnToggleFeatureAvailable = ENABLED,
         )
@@ -314,7 +314,7 @@
                 val cachedHeight = Int.MAX_VALUE
                 val contentManager =
                     BluetoothDetailsContentManager(
-                        BluetoothTileDialogViewModel.UiProperties.build(ENABLED, ENABLED),
+                        BluetoothDetailsContentViewModel.UiProperties.build(ENABLED, ENABLED),
                         cachedHeight,
                         bluetoothTileDialogCallback,
                         /* isInDialog= */ true,
@@ -339,7 +339,7 @@
             testScope.runTest {
                 val contentManager =
                     BluetoothDetailsContentManager(
-                        BluetoothTileDialogViewModel.UiProperties.build(ENABLED, ENABLED),
+                        BluetoothDetailsContentViewModel.UiProperties.build(ENABLED, ENABLED),
                         MATCH_PARENT,
                         bluetoothTileDialogCallback,
                         /* isInDialog= */ true,
@@ -364,7 +364,7 @@
             testScope.runTest {
                 val contentManager =
                     BluetoothDetailsContentManager(
-                        BluetoothTileDialogViewModel.UiProperties.build(ENABLED, ENABLED),
+                        BluetoothDetailsContentViewModel.UiProperties.build(ENABLED, ENABLED),
                         MATCH_PARENT,
                         bluetoothTileDialogCallback,
                         /* isInDialog= */ true,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt
similarity index 90%
rename from packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModelTest.kt
rename to packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt
index 47a834b..bfc5361 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt
@@ -67,14 +67,14 @@
 @RunWith(AndroidJUnit4::class)
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 @EnableFlags(Flags.FLAG_BLUETOOTH_QS_TILE_DIALOG_AUTO_ON_TOGGLE)
-class BluetoothTileDialogViewModelTest : SysuiTestCase() {
+class BluetoothDetailsContentViewModelTest : SysuiTestCase() {
 
     @get:Rule val mockitoRule: MockitoRule = MockitoJUnit.rule()
     private val kosmos = testKosmos()
     private val fakeSystemClock = FakeSystemClock()
     private val backgroundExecutor = FakeExecutor(fakeSystemClock)
 
-    private lateinit var bluetoothTileDialogViewModel: BluetoothTileDialogViewModel
+    private lateinit var bluetoothDetailsContentViewModel: BluetoothDetailsContentViewModel
 
     @Mock private lateinit var bluetoothDeviceMetadataInteractor: BluetoothDeviceMetadataInteractor
 
@@ -126,8 +126,8 @@
         testScope = kosmos.testScope
         // TODO(b/364515243): use real object instead of mock
         whenever(kosmos.deviceItemInteractor.deviceItemUpdate).thenReturn(MutableSharedFlow())
-        bluetoothTileDialogViewModel =
-            BluetoothTileDialogViewModel(
+        bluetoothDetailsContentViewModel =
+            BluetoothDetailsContentViewModel(
                 deviceItemInteractor,
                 deviceItemActionInteractor,
                 BluetoothStateInteractor(
@@ -194,7 +194,7 @@
     @Test
     fun testShowDetailsContent_noAnimation() {
         testScope.runTest {
-            bluetoothTileDialogViewModel.showDetailsContent(null, null)
+            bluetoothDetailsContentViewModel.showDetailsContent(null, null)
             runCurrent()
 
             verify(mDialogTransitionAnimator, never()).show(any(), any(), any())
@@ -204,7 +204,7 @@
     @Test
     fun testShowDetailsContent_animated() {
         testScope.runTest {
-            bluetoothTileDialogViewModel.showDetailsContent(expandable, null)
+            bluetoothDetailsContentViewModel.showDetailsContent(expandable, null)
             runCurrent()
 
             verify(mDialogTransitionAnimator).show(any(), any(), anyBoolean())
@@ -214,7 +214,7 @@
     @Test
     fun testShowDetailsContent_animated_inDetailsView() {
         testScope.runTest {
-            bluetoothTileDialogViewModel.showDetailsContent(expandable, mockView)
+            bluetoothDetailsContentViewModel.showDetailsContent(expandable, mockView)
             runCurrent()
 
             verify(bluetoothDetailsContentManager).bind(mockView)
@@ -226,7 +226,7 @@
     fun testShowDetailsContent_animated_callInBackgroundThread() {
         testScope.runTest {
             backgroundExecutor.execute {
-                bluetoothTileDialogViewModel.showDetailsContent(expandable, null)
+                bluetoothDetailsContentViewModel.showDetailsContent(expandable, null)
                 runCurrent()
 
                 verify(mDialogTransitionAnimator).show(any(), any(), anyBoolean())
@@ -238,7 +238,7 @@
     fun testShowDetailsContent_animated_callInBackgroundThread_inDetailsView() {
         testScope.runTest {
             backgroundExecutor.execute {
-                bluetoothTileDialogViewModel.showDetailsContent(expandable, mockView)
+                bluetoothDetailsContentViewModel.showDetailsContent(expandable, mockView)
                 runCurrent()
 
                 verify(bluetoothDetailsContentManager).bind(mockView)
@@ -250,7 +250,7 @@
     @Test
     fun testShowDetailsContent_fetchDeviceItem() {
         testScope.runTest {
-            bluetoothTileDialogViewModel.showDetailsContent(null, null)
+            bluetoothDetailsContentViewModel.showDetailsContent(null, null)
             runCurrent()
 
             verify(deviceItemInteractor).deviceItemUpdate
@@ -261,11 +261,11 @@
     fun testStartSettingsActivity_activityLaunched_dialogDismissed() {
         testScope.runTest {
             whenever(deviceItem.cachedBluetoothDevice).thenReturn(cachedBluetoothDevice)
-            bluetoothTileDialogViewModel.showDetailsContent(null, null)
+            bluetoothDetailsContentViewModel.showDetailsContent(null, null)
             runCurrent()
 
             val clickedView = View(context)
-            bluetoothTileDialogViewModel.onPairNewDeviceClicked(clickedView)
+            bluetoothDetailsContentViewModel.onPairNewDeviceClicked(clickedView)
 
             verify(uiEventLogger).log(BluetoothTileDialogUiEvent.PAIR_NEW_DEVICE_CLICKED)
             verify(activityStarter).postStartActivityDismissingKeyguard(any(), anyInt(), nullable())
@@ -276,7 +276,7 @@
     fun testBuildUiProperties_bluetoothOn_shouldHideAutoOn() {
         testScope.runTest {
             val actual =
-                BluetoothTileDialogViewModel.UiProperties.build(
+                BluetoothDetailsContentViewModel.UiProperties.build(
                     isBluetoothEnabled = true,
                     isAutoOnToggleFeatureAvailable = true,
                 )
@@ -288,7 +288,7 @@
     fun testBuildUiProperties_bluetoothOff_shouldShowAutoOn() {
         testScope.runTest {
             val actual =
-                BluetoothTileDialogViewModel.UiProperties.build(
+                BluetoothDetailsContentViewModel.UiProperties.build(
                     isBluetoothEnabled = false,
                     isAutoOnToggleFeatureAvailable = true,
                 )
@@ -300,7 +300,7 @@
     fun testBuildUiProperties_bluetoothOff_autoOnFeatureUnavailable_shouldHideAutoOn() {
         testScope.runTest {
             val actual =
-                BluetoothTileDialogViewModel.UiProperties.build(
+                BluetoothDetailsContentViewModel.UiProperties.build(
                     isBluetoothEnabled = false,
                     isAutoOnToggleFeatureAvailable = false,
                 )
@@ -313,7 +313,7 @@
         testScope.runTest {
             whenever(bluetoothAdapter.isAutoOnSupported).thenReturn(true)
 
-            val actual = bluetoothTileDialogViewModel.isAutoOnToggleFeatureAvailable()
+            val actual = bluetoothDetailsContentViewModel.isAutoOnToggleFeatureAvailable()
             assertThat(actual).isTrue()
         }
     }
@@ -323,7 +323,7 @@
         testScope.runTest {
             whenever(bluetoothAdapter.isAutoOnSupported).thenReturn(false)
 
-            val actual = bluetoothTileDialogViewModel.isAutoOnToggleFeatureAvailable()
+            val actual = bluetoothDetailsContentViewModel.isAutoOnToggleFeatureAvailable()
             assertThat(actual).isFalse()
         }
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegateTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegateTest.kt
index 2788f1d..7f75b8f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegateTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegateTest.kt
@@ -80,7 +80,7 @@
     @Mock private lateinit var dialogTransitionAnimator: DialogTransitionAnimator
 
     private val uiProperties =
-        BluetoothTileDialogViewModel.UiProperties.build(
+        BluetoothDetailsContentViewModel.UiProperties.build(
             isBluetoothEnabled = ENABLED,
             isAutoOnToggleFeatureAvailable = ENABLED,
         )
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
index 0c9213c..4ccfa29 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
@@ -206,7 +206,6 @@
     private @Mock ShadeInteractor mShadeInteractor;
     private @Mock ShadeWindowLogger mShadeWindowLogger;
     private @Mock SelectedUserInteractor mSelectedUserInteractor;
-    private @Mock UserTracker.Callback mUserTrackerCallback;
     private @Mock KeyguardInteractor mKeyguardInteractor;
     private @Mock KeyguardTransitionBootInteractor mKeyguardTransitionBootInteractor;
     private @Captor ArgumentCaptor<KeyguardStateController.Callback>
@@ -281,7 +280,7 @@
                 () -> mShadeInteractor,
                 mShadeWindowLogger,
                 () -> mSelectedUserInteractor,
-                mock(UserTracker.class),
+                mUserTracker,
                 mKosmos.getNotificationShadeWindowModel(),
                 mSecureSettings,
                 mKosmos::getCommunalInteractor,
@@ -319,7 +318,7 @@
 
         } catch (Exception e) {
             // Just so we don't have to add the exception signature to every test.
-            fail(e.getMessage());
+            fail();
         }
     }
 
@@ -331,156 +330,18 @@
 
         /* First test the default behavior: handleUserSwitching() is not invoked */
         when(mUserTracker.isUserSwitching()).thenReturn(false);
+        mViewMediator.mUpdateCallback = mock(KeyguardUpdateMonitorCallback.class);
         mViewMediator.onSystemReady();
         TestableLooper.get(this).processAllMessages();
 
-        verify(mUserTrackerCallback, never()).onUserChanging(eq(userId), eq(mContext),
-                any(Runnable.class));
+        verify(mViewMediator.mUpdateCallback, never()).onUserSwitching(userId);
 
         /* Next test user switching is already in progress when started */
         when(mUserTracker.isUserSwitching()).thenReturn(true);
         mViewMediator.onSystemReady();
         TestableLooper.get(this).processAllMessages();
 
-        verify(mUserTrackerCallback).onUserChanging(eq(userId), eq(mContext),
-                any(Runnable.class));
-    }
-
-    @Test
-    @TestableLooper.RunWithLooper(setAsMainLooper = true)
-    public void testGoingAwayFollowedByBeforeUserSwitchDoesNotHideKeyguard() {
-        setCurrentUser(/* userId= */1099, /* isSecure= */false);
-
-        // Setup keyguard
-        mViewMediator.onSystemReady();
-        processAllMessagesAndBgExecutorMessages();
-        mViewMediator.setShowingLocked(true, "");
-
-        // Request keyguard going away
-        when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true);
-        mViewMediator.mKeyguardGoingAwayRunnable.run();
-
-        // After the request, begin a switch to a new secure user
-        int nextUserId = 500;
-        setCurrentUser(nextUserId, /* isSecure= */true);
-        Runnable result = mock(Runnable.class);
-        mViewMediator.handleBeforeUserSwitching(nextUserId, result);
-        processAllMessagesAndBgExecutorMessages();
-        verify(result).run();
-
-        // After that request has begun, have WM tell us to exit keyguard
-        RemoteAnimationTarget[] apps = new RemoteAnimationTarget[]{
-                mock(RemoteAnimationTarget.class)
-        };
-        RemoteAnimationTarget[] wallpapers = new RemoteAnimationTarget[]{
-                mock(RemoteAnimationTarget.class)
-        };
-        IRemoteAnimationFinishedCallback callback = mock(IRemoteAnimationFinishedCallback.class);
-        mViewMediator.startKeyguardExitAnimation(TRANSIT_OLD_KEYGUARD_GOING_AWAY, apps, wallpapers,
-                null, callback);
-        processAllMessagesAndBgExecutorMessages();
-
-        // The call to exit should be rejected, and keyguard should still be visible
-        verify(mKeyguardUnlockAnimationController, never()).notifyStartSurfaceBehindRemoteAnimation(
-                any(), any(), any(), anyLong(), anyBoolean());
-        try {
-            assertATMSLockScreenShowing(true);
-        } catch (Exception e) {
-            fail(e.getMessage());
-        }
-        assertTrue(mViewMediator.isShowingAndNotOccluded());
-    }
-
-    @Test
-    @TestableLooper.RunWithLooper(setAsMainLooper = true)
-    public void testUserSwitchToSecureUserShowsBouncer() {
-        setCurrentUser(/* userId= */1099, /* isSecure= */true);
-
-        // Setup keyguard
-        mViewMediator.onSystemReady();
-        processAllMessagesAndBgExecutorMessages();
-        mViewMediator.setShowingLocked(true, "");
-
-        // After the request, begin a switch to a new secure user
-        int nextUserId = 500;
-        setCurrentUser(nextUserId, /* isSecure= */true);
-
-        Runnable beforeResult = mock(Runnable.class);
-        mViewMediator.handleBeforeUserSwitching(nextUserId, beforeResult);
-        processAllMessagesAndBgExecutorMessages();
-        verify(beforeResult).run();
-
-        // Dismiss should not be called while user switch is in progress
-        Runnable onSwitchResult = mock(Runnable.class);
-        mViewMediator.handleUserSwitching(nextUserId, onSwitchResult);
-        processAllMessagesAndBgExecutorMessages();
-        verify(onSwitchResult).run();
-        verify(mStatusBarKeyguardViewManager, never()).dismissAndCollapse();
-
-        // The attempt to dismiss only comes on user switch complete, which will trigger a call to
-        // show the bouncer in StatusBarKeyguardViewManager
-        mViewMediator.handleUserSwitchComplete(nextUserId);
-        TestableLooper.get(this).moveTimeForward(600);
-        processAllMessagesAndBgExecutorMessages();
-
-        verify(mStatusBarKeyguardViewManager).dismissAndCollapse();
-    }
-
-    @Test
-    @TestableLooper.RunWithLooper(setAsMainLooper = true)
-    public void testUserSwitchToInsecureUserDismissesKeyguard() {
-        int userId = 1099;
-        when(mUserTracker.getUserId()).thenReturn(userId);
-
-        // Setup keyguard
-        mViewMediator.onSystemReady();
-        processAllMessagesAndBgExecutorMessages();
-        mViewMediator.setShowingLocked(true, "");
-
-        // After the request, begin a switch to an insecure user
-        int nextUserId = 500;
-        when(mLockPatternUtils.isSecure(nextUserId)).thenReturn(false);
-
-        Runnable beforeResult = mock(Runnable.class);
-        mViewMediator.handleBeforeUserSwitching(nextUserId, beforeResult);
-        processAllMessagesAndBgExecutorMessages();
-        verify(beforeResult).run();
-
-        // The call to dismiss comes during the user switch
-        Runnable onSwitchResult = mock(Runnable.class);
-        mViewMediator.handleUserSwitching(nextUserId, onSwitchResult);
-        processAllMessagesAndBgExecutorMessages();
-        verify(onSwitchResult).run();
-
-        verify(mStatusBarKeyguardViewManager).dismissAndCollapse();
-    }
-
-    @Test
-    @TestableLooper.RunWithLooper(setAsMainLooper = true)
-    public void testUserSwitchToSecureUserWhileKeyguardNotVisibleShowsKeyguard() {
-        setCurrentUser(/* userId= */1099, /* isSecure= */true);
-
-        // Setup keyguard as not visible
-        mViewMediator.onSystemReady();
-        processAllMessagesAndBgExecutorMessages();
-        mViewMediator.setShowingLocked(false, "");
-        processAllMessagesAndBgExecutorMessages();
-
-        // Begin a switch to a new secure user
-        int nextUserId = 500;
-        setCurrentUser(nextUserId, /* isSecure= */true);
-
-        Runnable beforeResult = mock(Runnable.class);
-        mViewMediator.handleBeforeUserSwitching(nextUserId, beforeResult);
-        processAllMessagesAndBgExecutorMessages();
-        verify(beforeResult).run();
-
-        try {
-            assertATMSLockScreenShowing(true);
-        } catch (Exception e) {
-            fail();
-        }
-        assertTrue(mViewMediator.isShowingAndNotOccluded());
+        verify(mViewMediator.mUpdateCallback).onUserSwitching(userId);
     }
 
     @Test
@@ -1244,7 +1105,7 @@
         processAllMessagesAndBgExecutorMessages();
 
         verify(mStatusBarKeyguardViewManager, never()).reset(anyBoolean());
-
+        assertATMSAndKeyguardViewMediatorStatesMatch();
     }
 
     @Test
@@ -1288,7 +1149,6 @@
         IRemoteAnimationFinishedCallback callback = mock(IRemoteAnimationFinishedCallback.class);
 
         when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true);
-        mViewMediator.mKeyguardGoingAwayRunnable.run();
         mViewMediator.startKeyguardExitAnimation(TRANSIT_OLD_KEYGUARD_GOING_AWAY, apps, wallpapers,
                 null, callback);
         processAllMessagesAndBgExecutorMessages();
@@ -1343,6 +1203,13 @@
 
         // The captor will have the most recent setLockScreenShown call's value.
         assertEquals(showing, showingCaptor.getValue());
+
+        // We're now just after the last setLockScreenShown call. If we expect the lockscreen to be
+        // showing, ensure that we didn't subsequently ask for it to go away.
+        if (showing) {
+            orderedSetLockScreenShownCalls.verify(mActivityTaskManagerService, never())
+                    .keyguardGoingAway(anyInt());
+        }
     }
 
     /**
@@ -1502,8 +1369,8 @@
                 mSelectedUserInteractor,
                 mKeyguardInteractor,
                 mKeyguardTransitionBootInteractor,
+                mKosmos::getCommunalSceneInteractor,
                 mock(WindowManagerOcclusionManager.class));
-        mViewMediator.mUserChangedCallback = mUserTrackerCallback;
         mViewMediator.start();
 
         mViewMediator.registerCentralSurfaces(mCentralSurfaces, null, null, null, null);
@@ -1517,10 +1384,4 @@
     private void captureKeyguardUpdateMonitorCallback() {
         verify(mUpdateMonitor).registerCallback(mKeyguardUpdateMonitorCallbackCaptor.capture());
     }
-
-    private void setCurrentUser(int userId, boolean isSecure) {
-        when(mUserTracker.getUserId()).thenReturn(userId);
-        when(mSelectedUserInteractor.getSelectedUserId()).thenReturn(userId);
-        when(mLockPatternUtils.isSecure(userId)).thenReturn(isSecure);
-    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTestKt.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTestKt.kt
new file mode 100644
index 0000000..86f7966
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTestKt.kt
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.keyguard
+
+import android.app.IActivityTaskManager
+import android.internal.statusbar.statusBarService
+import android.os.Bundle
+import android.os.PowerManager
+import android.os.powerManager
+import android.testing.AndroidTestingRunner
+import android.testing.TestableLooper
+import android.testing.TestableLooper.RunWithLooper
+import androidx.test.filters.SmallTest
+import com.android.internal.logging.uiEventLogger
+import com.android.internal.widget.lockPatternUtils
+import com.android.keyguard.KeyguardUpdateMonitor
+import com.android.keyguard.keyguardUnlockAnimationController
+import com.android.keyguard.mediator.ScreenOnCoordinator
+import com.android.keyguard.trustManager
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.animation.activityTransitionAnimator
+import com.android.systemui.broadcast.broadcastDispatcher
+import com.android.systemui.classifier.falsingCollector
+import com.android.systemui.communal.data.repository.communalSceneRepository
+import com.android.systemui.communal.domain.interactor.communalSceneInteractor
+import com.android.systemui.communal.shared.model.CommunalScenes
+import com.android.systemui.communal.ui.viewmodel.communalTransitionViewModel
+import com.android.systemui.concurrency.fakeExecutor
+import com.android.systemui.dreams.DreamOverlayStateController
+import com.android.systemui.dreams.ui.viewmodel.dreamViewModel
+import com.android.systemui.dump.dumpManager
+import com.android.systemui.flags.featureFlagsClassic
+import com.android.systemui.flags.systemPropertiesHelper
+import com.android.systemui.jank.interactionJankMonitor
+import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
+import com.android.systemui.keyguard.domain.interactor.keyguardTransitionBootInteractor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.backgroundScope
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.testDispatcher
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
+import com.android.systemui.log.sessionTracker
+import com.android.systemui.navigationbar.navigationModeController
+import com.android.systemui.plugins.statusbar.statusBarStateController
+import com.android.systemui.process.processWrapper
+import com.android.systemui.settings.userTracker
+import com.android.systemui.shade.shadeController
+import com.android.systemui.statusbar.notificationShadeDepthController
+import com.android.systemui.statusbar.notificationShadeWindowController
+import com.android.systemui.statusbar.phone.dozeParameters
+import com.android.systemui.statusbar.phone.screenOffAnimationController
+import com.android.systemui.statusbar.phone.scrimController
+import com.android.systemui.statusbar.phone.statusBarKeyguardViewManager
+import com.android.systemui.statusbar.policy.keyguardStateController
+import com.android.systemui.statusbar.policy.userSwitcherController
+import com.android.systemui.testKosmos
+import com.android.systemui.user.domain.interactor.selectedUserInteractor
+import com.android.systemui.util.DeviceConfigProxy
+import com.android.systemui.util.kotlin.JavaAdapter
+import com.android.systemui.util.settings.fakeSettings
+import com.android.systemui.util.time.systemClock
+import com.android.systemui.wallpapers.data.repository.wallpaperRepository
+import com.android.wm.shell.keyguard.KeyguardTransitions
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.any
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+
+/** Kotlin version of KeyguardViewMediatorTest to allow for coroutine testing. */
+@SmallTest
+@RunWithLooper(setAsMainLooper = true)
+@RunWith(AndroidTestingRunner::class)
+class KeyguardViewMediatorTestKt : SysuiTestCase() {
+    private val kosmos =
+        testKosmos().useUnconfinedTestDispatcher().also {
+            it.powerManager =
+                mock<PowerManager> {
+                    on { newWakeLock(anyInt(), any()) } doReturn mock<PowerManager.WakeLock>()
+                }
+        }
+
+    private lateinit var testableLooper: TestableLooper
+
+    private val Kosmos.underTest by
+        Kosmos.Fixture {
+            KeyguardViewMediator(
+                mContext,
+                uiEventLogger,
+                sessionTracker,
+                userTracker,
+                falsingCollector,
+                lockPatternUtils,
+                broadcastDispatcher,
+                { statusBarKeyguardViewManager },
+                dismissCallbackRegistry,
+                mock<KeyguardUpdateMonitor>(),
+                dumpManager,
+                fakeExecutor,
+                powerManager,
+                trustManager,
+                userSwitcherController,
+                DeviceConfigProxy(),
+                navigationModeController,
+                keyguardDisplayManager,
+                dozeParameters,
+                statusBarStateController,
+                keyguardStateController,
+                { keyguardUnlockAnimationController },
+                screenOffAnimationController,
+                { notificationShadeDepthController },
+                mock<ScreenOnCoordinator>(),
+                mock<KeyguardTransitions>(),
+                interactionJankMonitor,
+                mock<DreamOverlayStateController>(),
+                JavaAdapter(backgroundScope),
+                wallpaperRepository,
+                { shadeController },
+                { notificationShadeWindowController },
+                { activityTransitionAnimator },
+                { scrimController },
+                mock<IActivityTaskManager>(),
+                statusBarService,
+                featureFlagsClassic,
+                fakeSettings,
+                fakeSettings,
+                systemClock,
+                processWrapper,
+                testDispatcher,
+                { dreamViewModel },
+                { communalTransitionViewModel },
+                systemPropertiesHelper,
+                { mock<WindowManagerLockscreenVisibilityManager>() },
+                selectedUserInteractor,
+                keyguardInteractor,
+                keyguardTransitionBootInteractor,
+                { communalSceneInteractor },
+                mock<WindowManagerOcclusionManager>(),
+            )
+        }
+
+    @Before
+    fun setUp() {
+        testableLooper = TestableLooper.get(this)
+    }
+
+    @Test
+    fun doKeyguardTimeout_changesCommunalScene() =
+        kosmos.runTest {
+            // doKeyguardTimeout message received.
+            val timeoutOptions = Bundle()
+            timeoutOptions.putBoolean(KeyguardViewMediator.EXTRA_TRIGGER_HUB, true)
+            underTest.doKeyguardTimeout(timeoutOptions)
+            testableLooper.processAllMessages()
+
+            // Hub scene is triggered.
+            assertThat(communalSceneRepository.currentScene.value)
+                .isEqualTo(CommunalScenes.Communal)
+        }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java
index 86094d1..88c2697 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java
@@ -1519,7 +1519,7 @@
         assertThat(getNumberOfConnectDeviceButtons()).isEqualTo(1);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void selectedDevicesAddedInSameOrder() {
         when(mLocalMediaManager.isPreferenceRouteListingExist()).thenReturn(true);
@@ -1537,7 +1537,7 @@
         assertThat(items.get(1).getMediaDevice().get()).isEqualTo(mMediaDevice2);
     }
 
-    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void selectedDevicesAddedInReverseOrder() {
         when(mLocalMediaManager.isPreferenceRouteListingExist()).thenReturn(true);
@@ -1555,7 +1555,7 @@
         assertThat(items.get(1).getMediaDevice().get()).isEqualTo(mMediaDevice1);
     }
 
-    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_SESSION_GROUPING)
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
     @Test
     public void firstSelectedDeviceIsFirstDeviceInGroupIsTrue() {
         when(mLocalMediaManager.isPreferenceRouteListingExist()).thenReturn(true);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS b/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS
index 0ec996b..9b4902a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS
+++ b/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS
@@ -6,5 +6,4 @@
 mgalhardo@google.com
 petrcermak@google.com
 stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com
\ No newline at end of file
+vanjan@google.com
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropTest.kt
index 26cf4a2..92b26ea 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropTest.kt
@@ -22,14 +22,7 @@
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.semantics.SemanticsProperties
-import androidx.compose.ui.test.SemanticsMatcher
-import androidx.compose.ui.test.assert
-import androidx.compose.ui.test.filter
-import androidx.compose.ui.test.hasContentDescription
-import androidx.compose.ui.test.junit4.ComposeContentTestRule
 import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.test.onChildren
 import androidx.compose.ui.test.onNodeWithContentDescription
 import androidx.compose.ui.test.onNodeWithTag
 import androidx.compose.ui.test.onNodeWithText
@@ -100,7 +93,10 @@
         composeRule.onNodeWithText("Remove").assertExists()
 
         // Every other tile should still be in the same order
-        composeRule.assertTileGridContainsExactly(listOf("tileB", "tileC", "tileD_large", "tileE"))
+        composeRule.assertGridContainsExactly(
+            CURRENT_TILES_GRID_TEST_TAG,
+            listOf("tileB", "tileC", "tileD_large", "tileE"),
+        )
     }
 
     @Test
@@ -125,8 +121,9 @@
         composeRule.onNodeWithText("Remove").assertDoesNotExist()
 
         // Tile A and B should swap places
-        composeRule.assertTileGridContainsExactly(
-            listOf("tileB", "tileA", "tileC", "tileD_large", "tileE")
+        composeRule.assertGridContainsExactly(
+            CURRENT_TILES_GRID_TEST_TAG,
+            listOf("tileB", "tileA", "tileC", "tileD_large", "tileE"),
         )
     }
 
@@ -152,7 +149,10 @@
         composeRule.onNodeWithText("Remove").assertDoesNotExist()
 
         // Tile A is gone
-        composeRule.assertTileGridContainsExactly(listOf("tileB", "tileC", "tileD_large", "tileE"))
+        composeRule.assertGridContainsExactly(
+            CURRENT_TILES_GRID_TEST_TAG,
+            listOf("tileB", "tileC", "tileD_large", "tileE"),
+        )
     }
 
     @Test
@@ -166,7 +166,7 @@
         }
         composeRule.waitForIdle()
 
-        listState.onStarted(createEditTile("newTile"), DragType.Add)
+        listState.onStarted(createEditTile("tile_new"), DragType.Add)
         // Insert after tileD, which is at index 4
         // [ a ] [ b ] [ c ] [ empty ]
         // [ tile d ] [ e ]
@@ -179,23 +179,13 @@
         // Remove drop zone should disappear
         composeRule.onNodeWithText("Remove").assertDoesNotExist()
 
-        // newTile is added after tileD
-        composeRule.assertTileGridContainsExactly(
-            listOf("tileA", "tileB", "tileC", "tileD_large", "newTile", "tileE")
+        // tile_new is added after tileD
+        composeRule.assertGridContainsExactly(
+            CURRENT_TILES_GRID_TEST_TAG,
+            listOf("tileA", "tileB", "tileC", "tileD_large", "tile_new", "tileE"),
         )
     }
 
-    private fun ComposeContentTestRule.assertTileGridContainsExactly(specs: List<String>) {
-        onNodeWithTag(CURRENT_TILES_GRID_TEST_TAG)
-            .onChildren()
-            .filter(SemanticsMatcher.keyIsDefined(SemanticsProperties.ContentDescription))
-            .apply {
-                fetchSemanticsNodes().forEachIndexed { index, _ ->
-                    get(index).assert(hasContentDescription(specs[index]))
-                }
-            }
-    }
-
     companion object {
         private const val CURRENT_TILES_GRID_TEST_TAG = "CurrentTilesGrid"
         private const val AVAILABLE_TILES_GRID_TEST_TAG = "AvailableTilesGrid"
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/EditModeTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/EditModeTest.kt
index 4e8b0bc..8c09b81 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/EditModeTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/EditModeTest.kt
@@ -23,16 +23,9 @@
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.semantics.SemanticsProperties
-import androidx.compose.ui.test.SemanticsMatcher
-import androidx.compose.ui.test.assert
-import androidx.compose.ui.test.filter
-import androidx.compose.ui.test.hasContentDescription
 import androidx.compose.ui.test.junit4.ComposeContentTestRule
 import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.test.onChildren
 import androidx.compose.ui.test.onNodeWithContentDescription
-import androidx.compose.ui.test.onNodeWithTag
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.performClick
 import androidx.compose.ui.text.AnnotatedString
@@ -113,20 +106,6 @@
         specs: List<String>
     ) = assertGridContainsExactly(AVAILABLE_TILES_GRID_TEST_TAG, specs)
 
-    private fun ComposeContentTestRule.assertGridContainsExactly(
-        testTag: String,
-        specs: List<String>,
-    ) {
-        onNodeWithTag(testTag)
-            .onChildren()
-            .filter(SemanticsMatcher.keyIsDefined(SemanticsProperties.ContentDescription))
-            .apply {
-                fetchSemanticsNodes().forEachIndexed { index, _ ->
-                    get(index).assert(hasContentDescription(specs[index]))
-                }
-            }
-    }
-
     companion object {
         private const val CURRENT_TILES_GRID_TEST_TAG = "CurrentTilesGrid"
         private const val AVAILABLE_TILES_GRID_TEST_TAG = "AvailableTilesGrid"
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/TestMatchers.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/TestMatchers.kt
new file mode 100644
index 0000000..dbccf86
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/panels/ui/compose/TestMatchers.kt
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.panels.ui.compose
+
+import androidx.compose.ui.semantics.SemanticsProperties
+import androidx.compose.ui.semantics.getOrNull
+import androidx.compose.ui.test.SemanticsMatcher
+import androidx.compose.ui.test.assert
+import androidx.compose.ui.test.filter
+import androidx.compose.ui.test.hasContentDescription
+import androidx.compose.ui.test.junit4.ComposeContentTestRule
+import androidx.compose.ui.test.onChildren
+import androidx.compose.ui.test.onNodeWithTag
+
+/** Asserts that the tile grid with [testTag] contains exactly [specs] */
+fun ComposeContentTestRule.assertGridContainsExactly(testTag: String, specs: List<String>) {
+    onNodeWithTag(testTag)
+        .onChildren()
+        .filter(SemanticsMatcher.contentDescriptionStartsWith("tile"))
+        .apply {
+            fetchSemanticsNodes().forEachIndexed { index, _ ->
+                get(index).assert(hasContentDescription(specs[index]))
+            }
+        }
+}
+
+/**
+ * A [SemanticsMatcher] that matches anything with a content description starting with the given
+ * [prefix]
+ */
+fun SemanticsMatcher.Companion.contentDescriptionStartsWith(prefix: String): SemanticsMatcher {
+    return SemanticsMatcher("${SemanticsProperties.ContentDescription.name} starts with $prefix") {
+        semanticsNode ->
+        semanticsNode.config.getOrNull(SemanticsProperties.ContentDescription)?.any {
+            it.startsWith(prefix)
+        } ?: false
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt
index 1305b0c..cfe34f4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt
@@ -16,7 +16,7 @@
 import com.android.settingslib.Utils
 import com.android.settingslib.bluetooth.CachedBluetoothDevice
 import com.android.systemui.SysuiTestCase
-import com.android.systemui.bluetooth.qsdialog.BluetoothTileDialogViewModel
+import com.android.systemui.bluetooth.qsdialog.BluetoothDetailsContentViewModel
 import com.android.systemui.classifier.FalsingManagerFake
 import com.android.systemui.flags.FeatureFlagsClassic
 import com.android.systemui.plugins.ActivityStarter
@@ -71,7 +71,7 @@
     @Mock private lateinit var bluetoothController: BluetoothController
     @Mock private lateinit var uiEventLogger: QsEventLogger
     @Mock private lateinit var featureFlags: FeatureFlagsClassic
-    @Mock private lateinit var bluetoothTileDialogViewModel: BluetoothTileDialogViewModel
+    @Mock private lateinit var bluetoothDetailsContentViewModel: BluetoothDetailsContentViewModel
     @Mock private lateinit var clickJob: Job
     private lateinit var testableLooper: TestableLooper
     private lateinit var tile: FakeBluetoothTile
@@ -96,7 +96,7 @@
                 qsLogger,
                 bluetoothController,
                 featureFlags,
-                bluetoothTileDialogViewModel,
+                bluetoothDetailsContentViewModel,
             )
 
         tile.initialize()
@@ -238,7 +238,7 @@
 
         tile.handleClick(null)
 
-        verify(bluetoothTileDialogViewModel)
+        verify(bluetoothDetailsContentViewModel)
             .showDetailsContent(/* expandable= */ null, /* view= */ null)
     }
 
@@ -308,7 +308,7 @@
         qsLogger: QSLogger,
         bluetoothController: BluetoothController,
         featureFlags: FeatureFlagsClassic,
-        bluetoothTileDialogViewModel: BluetoothTileDialogViewModel,
+        bluetoothDetailsContentViewModel: BluetoothDetailsContentViewModel,
     ) :
         BluetoothTile(
             qsHost,
@@ -322,7 +322,7 @@
             qsLogger,
             bluetoothController,
             featureFlags,
-            bluetoothTileDialogViewModel,
+            bluetoothDetailsContentViewModel,
         ) {
         var restrictionChecked: String? = null
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/DreamTileTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/DreamTileTest.java
index 5f63b15..3f607ff 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/DreamTileTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/DreamTileTest.java
@@ -20,6 +20,8 @@
 
 import static com.android.systemui.Flags.FLAG_QS_CUSTOM_TILE_CLICK_GUARANTEED_BUG_FIX;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertFalse;
 import static junit.framework.TestCase.assertTrue;
@@ -59,7 +61,6 @@
 import com.android.systemui.res.R;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.util.settings.FakeSettings;
-import com.android.systemui.util.settings.SecureSettings;
 
 import org.junit.After;
 import org.junit.Before;
@@ -69,11 +70,11 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import java.util.List;
-
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4;
 import platform.test.runner.parameterized.Parameters;
 
+import java.util.List;
+
 @RunWith(ParameterizedAndroidJunit4.class)
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 @SmallTest
@@ -107,7 +108,7 @@
 
     private DreamTile mTile;
 
-    private SecureSettings mSecureSettings;
+    private FakeSettings mSecureSettings;
 
     private static final ComponentName COLORS_DREAM_COMPONENT_NAME = new ComponentName(
             "com.android.dreams", ".Colors");
@@ -279,6 +280,23 @@
         destroyTile(dockedTile);
     }
 
+    @Test
+    public void testHandleUserSwitch() {
+        final DreamTile dockedTile = constructTileForTest(true, false);
+        dockedTile.handleSetListening(true);
+
+        final int oldUserId = mUserTracker.getUserId();
+        assertThat(dockedTile.mDreamSettingObserver.getCurrentUser()).isEqualTo(oldUserId);
+        assertThat(dockedTile.mEnabledSettingObserver.getCurrentUser()).isEqualTo(oldUserId);
+
+        final int newUserId = 1337;
+        dockedTile.handleUserSwitch(newUserId);
+        assertThat(dockedTile.mDreamSettingObserver.getCurrentUser()).isEqualTo(newUserId);
+        assertThat(dockedTile.mEnabledSettingObserver.getCurrentUser()).isEqualTo(newUserId);
+
+        destroyTile(dockedTile);
+    }
+
     private void setScreensaverEnabled(boolean enabled) {
         mSecureSettings.putIntForUser(Settings.Secure.SCREENSAVER_ENABLED, enabled ? 1 : 0,
                 DEFAULT_USER);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/GlanceableHubContainerControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/GlanceableHubContainerControllerTest.kt
index 732561e0..944604f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/GlanceableHubContainerControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/GlanceableHubContainerControllerTest.kt
@@ -640,11 +640,11 @@
             }
         }
 
-    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     @Test
     fun onTouchEvent_shadeInteracting_movesNotDispatched() =
         with(kosmos) {
             testScope.runTest {
+                `whenever`(communalViewModel.swipeToHubEnabled()).thenReturn(true)
                 // On lockscreen.
                 goToScene(CommunalScenes.Blank)
                 whenever(
@@ -721,11 +721,11 @@
             }
         }
 
-    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
     @Test
     fun onTouchEvent_bouncerInteracting_movesNotDispatched() =
         with(kosmos) {
             testScope.runTest {
+                `whenever`(communalViewModel.swipeToHubEnabled()).thenReturn(true)
                 // On lockscreen.
                 goToScene(CommunalScenes.Blank)
                 whenever(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt
index edb0f35..f3af794f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/ShadeHeaderControllerTest.kt
@@ -59,6 +59,7 @@
 import com.android.systemui.statusbar.phone.StatusOverlayHoverListenerFactory
 import com.android.systemui.statusbar.phone.ui.StatusBarIconController
 import com.android.systemui.statusbar.phone.ui.TintedIconManager
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.batteryViewModelFactory
 import com.android.systemui.statusbar.policy.Clock
 import com.android.systemui.statusbar.policy.FakeConfigurationController
 import com.android.systemui.statusbar.policy.NextAlarmController
@@ -202,6 +203,7 @@
                 Lazy { kosmos.shadeDisplaysRepository },
                 variableDateViewControllerFactory,
                 batteryMeterViewController,
+                kosmos.batteryViewModelFactory,
                 dumpManager,
                 mShadeCarrierGroupControllerBuilder,
                 combinedShadeHeadersConstraintManager,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextViewTest.kt
index b75dd04..bc16f7e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextViewTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextViewTest.kt
@@ -58,6 +58,7 @@
                     },
                     ClockMessageBuffers(messageBuffer),
                     messageBuffer,
+                    vibrator = null,
                 ),
                 isLargeClock = false,
             )
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImplTest.kt
index b177e4a..950af45 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderImplTest.kt
@@ -101,7 +101,7 @@
     private fun getAvalancheSuppressor() : AvalancheSuppressor {
         return AvalancheSuppressor(
             avalancheProvider, systemClock, settingsInteractor, packageManager,
-            uiEventLogger, context, notificationManager, logger, systemSettings
+            uiEventLogger, context, notificationManager, systemSettings
         )
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierFlagDisabledTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierFlagDisabledTest.java
new file mode 100644
index 0000000..09fa387
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierFlagDisabledTest.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import static com.android.systemui.statusbar.notification.row.NotificationCustomContentNotificationBuilder.buildAcceptableNotificationEntry;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.compat.testing.PlatformCompatChangeRule;
+import android.platform.test.annotations.DisableFlags;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import com.android.server.notification.Flags;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+
+import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class NotificationCustomContentMemoryVerifierFlagDisabledTest extends SysuiTestCase {
+
+    @Rule
+    public PlatformCompatChangeRule mCompatChangeRule = new PlatformCompatChangeRule();
+
+    @Test
+    @DisableFlags(Flags.FLAG_NOTIFICATION_CUSTOM_VIEW_URI_RESTRICTION)
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS
+    })
+    public void requiresImageViewMemorySizeCheck_flagDisabled_returnsFalse() {
+        NotificationEntry entry = buildAcceptableNotificationEntry(mContext);
+        assertThat(NotificationCustomContentMemoryVerifier.requiresImageViewMemorySizeCheck(entry))
+                .isFalse();
+    }
+
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierTest.java
new file mode 100644
index 0000000..1cadb3c
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentMemoryVerifierTest.java
@@ -0,0 +1,285 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import static com.android.systemui.statusbar.notification.row.NotificationCustomContentNotificationBuilder.buildAcceptableNotification;
+import static com.android.systemui.statusbar.notification.row.NotificationCustomContentNotificationBuilder.buildAcceptableNotificationEntry;
+import static com.android.systemui.statusbar.notification.row.NotificationCustomContentNotificationBuilder.buildOversizedNotification;
+import static com.android.systemui.statusbar.notification.row.NotificationCustomContentNotificationBuilder.buildWarningSizedNotification;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Notification;
+import android.compat.testing.PlatformCompatChangeRule;
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.pm.ProviderInfo;
+import android.content.res.AssetFileDescriptor;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.CancellationSignal;
+import android.os.ParcelFileDescriptor;
+import android.os.Process;
+import android.platform.test.annotations.EnableFlags;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.RemoteViews;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import com.android.server.notification.Flags;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
+
+import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges;
+import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.FileNotFoundException;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+@EnableFlags(Flags.FLAG_NOTIFICATION_CUSTOM_VIEW_URI_RESTRICTION)
+public class NotificationCustomContentMemoryVerifierTest extends SysuiTestCase {
+
+    private static final String AUTHORITY = "notification.memory.test.authority";
+    private static final Uri TEST_URI = new Uri.Builder()
+            .scheme("content")
+            .authority(AUTHORITY)
+            .path("path")
+            .build();
+
+    @Rule
+    public PlatformCompatChangeRule mCompatChangeRule = new PlatformCompatChangeRule();
+
+    @Before
+    public void setUp() {
+        TestImageContentProvider provider = new TestImageContentProvider(mContext);
+        mContext.getContentResolver().addProvider(AUTHORITY, provider);
+        provider.onCreate();
+    }
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void requiresImageViewMemorySizeCheck_customViewNotification_returnsTrue() {
+        NotificationEntry entry =
+                buildAcceptableNotificationEntry(
+                        mContext);
+        assertThat(NotificationCustomContentMemoryVerifier.requiresImageViewMemorySizeCheck(entry))
+                .isTrue();
+    }
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void requiresImageViewMemorySizeCheck_plainNotification_returnsFalse() {
+        Notification notification =
+                new Notification.Builder(mContext, "ChannelId")
+                        .setContentTitle("Just a notification")
+                        .setContentText("Yep")
+                        .build();
+        NotificationEntry entry = new NotificationEntryBuilder().setNotification(
+                notification).build();
+        assertThat(NotificationCustomContentMemoryVerifier.requiresImageViewMemorySizeCheck(entry))
+                .isFalse();
+    }
+
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void satisfiesMemoryLimits_smallNotification_returnsTrue() {
+        Notification.Builder notification =
+                buildAcceptableNotification(mContext,
+                        TEST_URI);
+        NotificationEntry entry = toEntry(notification);
+        View inflatedView = inflateNotification(notification);
+        assertThat(
+                NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(inflatedView, entry)
+        )
+                .isTrue();
+    }
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void satisfiesMemoryLimits_oversizedNotification_returnsFalse() {
+        Notification.Builder notification =
+                buildOversizedNotification(mContext,
+                        TEST_URI);
+        NotificationEntry entry = toEntry(notification);
+        View inflatedView = inflateNotification(notification);
+        assertThat(
+                NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(inflatedView, entry)
+        ).isFalse();
+    }
+
+    @Test
+    @DisableCompatChanges(
+            {NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS}
+    )
+    public void satisfiesMemoryLimits_oversizedNotification_compatDisabled_returnsTrue() {
+        Notification.Builder notification =
+                buildOversizedNotification(mContext,
+                        TEST_URI);
+        NotificationEntry entry = toEntry(notification);
+        View inflatedView = inflateNotification(notification);
+        assertThat(
+                NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(inflatedView, entry)
+        ).isTrue();
+    }
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void satisfiesMemoryLimits_warningSizedNotification_returnsTrue() {
+        Notification.Builder notification =
+                buildWarningSizedNotification(mContext,
+                        TEST_URI);
+        NotificationEntry entry = toEntry(notification);
+        View inflatedView = inflateNotification(notification);
+        assertThat(
+                NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(inflatedView, entry)
+        )
+                .isTrue();
+    }
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void satisfiesMemoryLimits_viewWithoutCustomNotificationRoot_returnsTrue() {
+        NotificationEntry entry = new NotificationEntryBuilder().build();
+        View view = new FrameLayout(mContext);
+        assertThat(NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(view, entry))
+                .isTrue();
+    }
+
+    @Test
+    @EnableCompatChanges({
+            NotificationCustomContentCompat.CHECK_SIZE_OF_INFLATED_CUSTOM_VIEWS})
+    public void computeViewHierarchyImageViewSize_smallNotification_returnsSensibleValue() {
+        Notification.Builder notification =
+                buildAcceptableNotification(mContext,
+                        TEST_URI);
+        // This should have a size of a single image
+        View inflatedView = inflateNotification(notification);
+        assertThat(
+                NotificationCustomContentMemoryVerifier.computeViewHierarchyImageViewSize(
+                        inflatedView))
+                .isGreaterThan(170000);
+    }
+
+    private View inflateNotification(Notification.Builder builder) {
+        RemoteViews remoteViews = builder.createBigContentView();
+        return remoteViews.apply(mContext, new FrameLayout(mContext));
+    }
+
+    private NotificationEntry toEntry(Notification.Builder builder) {
+        return new NotificationEntryBuilder().setNotification(builder.build())
+                .setUid(Process.myUid()).build();
+    }
+
+
+    /** This provider serves the images for inflation. */
+    class TestImageContentProvider extends ContentProvider {
+
+        TestImageContentProvider(Context context) {
+            ProviderInfo info = new ProviderInfo();
+            info.authority = AUTHORITY;
+            info.exported = true;
+            attachInfoForTesting(context, info);
+            setAuthorities(AUTHORITY);
+        }
+
+        @Override
+        public boolean onCreate() {
+            return true;
+        }
+
+        @Override
+        public ParcelFileDescriptor openFile(Uri uri, String mode) {
+            return getContext().getResources().openRawResourceFd(
+                    NotificationCustomContentNotificationBuilder.getDRAWABLE_IMAGE_RESOURCE())
+                        .getParcelFileDescriptor();
+        }
+
+        @Override
+        public AssetFileDescriptor openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts) {
+            return getContext().getResources().openRawResourceFd(
+                    NotificationCustomContentNotificationBuilder.getDRAWABLE_IMAGE_RESOURCE());
+        }
+
+        @Override
+        public AssetFileDescriptor openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts,
+                CancellationSignal signal) throws FileNotFoundException {
+            return openTypedAssetFile(uri, mimeTypeFilter, opts);
+        }
+
+        @Override
+        public int delete(Uri uri, Bundle extras) {
+            return 0;
+        }
+
+        @Override
+        public int delete(Uri uri, String selection, String[] selectionArgs) {
+            return 0;
+        }
+
+        @Override
+        public String getType(Uri uri) {
+            return "image/png";
+        }
+
+        @Override
+        public Uri insert(Uri uri, ContentValues values) {
+            return null;
+        }
+
+        @Override
+        public Uri insert(Uri uri, ContentValues values, Bundle extras) {
+            return super.insert(uri, values, extras);
+        }
+
+        @Override
+        public Cursor query(Uri uri, String[] projection, Bundle queryArgs,
+                CancellationSignal cancellationSignal) {
+            return super.query(uri, projection, queryArgs, cancellationSignal);
+        }
+
+        @Override
+        public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+                String sortOrder) {
+            return null;
+        }
+
+        @Override
+        public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+            return 0;
+        }
+    }
+
+
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentNotificationBuilder.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentNotificationBuilder.kt
new file mode 100644
index 0000000..ca4f24d
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationCustomContentNotificationBuilder.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+@file:JvmName("NotificationCustomContentNotificationBuilder")
+
+package com.android.systemui.statusbar.notification.row
+
+import android.app.Notification
+import android.app.Notification.DecoratedCustomViewStyle
+import android.content.Context
+import android.graphics.drawable.BitmapDrawable
+import android.net.Uri
+import android.os.Process
+import android.widget.RemoteViews
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
+import com.android.systemui.tests.R
+import org.hamcrest.Matchers.lessThan
+import org.junit.Assume.assumeThat
+
+public val DRAWABLE_IMAGE_RESOURCE = R.drawable.romainguy_rockaway
+
+fun buildAcceptableNotificationEntry(context: Context): NotificationEntry {
+    return NotificationEntryBuilder()
+        .setNotification(buildAcceptableNotification(context, null).build())
+        .setUid(Process.myUid())
+        .build()
+}
+
+fun buildAcceptableNotification(context: Context, uri: Uri?): Notification.Builder =
+    buildNotification(context, uri, 1)
+
+fun buildOversizedNotification(context: Context, uri: Uri): Notification.Builder {
+    val numImagesForOversize =
+        (NotificationCustomContentMemoryVerifier.getStripViewSizeLimit(context) /
+            drawableSizeOnDevice(context)) + 2
+    return buildNotification(context, uri, numImagesForOversize)
+}
+
+fun buildWarningSizedNotification(context: Context, uri: Uri): Notification.Builder {
+    val numImagesForOversize =
+        (NotificationCustomContentMemoryVerifier.getWarnViewSizeLimit(context) /
+            drawableSizeOnDevice(context)) + 1
+    // The size needs to be smaller than outright stripping size.
+    assumeThat(
+        numImagesForOversize * drawableSizeOnDevice(context),
+        lessThan(NotificationCustomContentMemoryVerifier.getStripViewSizeLimit(context)),
+    )
+    return buildNotification(context, uri, numImagesForOversize)
+}
+
+fun buildNotification(context: Context, uri: Uri?, numImages: Int): Notification.Builder {
+    val remoteViews = RemoteViews(context.packageName, R.layout.custom_view_flipper)
+    repeat(numImages) { i ->
+        val remoteViewFlipperImageView =
+            RemoteViews(context.packageName, R.layout.custom_view_flipper_image)
+
+        if (uri == null) {
+            remoteViewFlipperImageView.setImageViewResource(
+                R.id.imageview,
+                R.drawable.romainguy_rockaway,
+            )
+        } else {
+            val imageUri = uri.buildUpon().appendPath(i.toString()).build()
+            remoteViewFlipperImageView.setImageViewUri(R.id.imageview, imageUri)
+        }
+        remoteViews.addView(R.id.flipper, remoteViewFlipperImageView)
+    }
+
+    return Notification.Builder(context, "ChannelId")
+        .setSmallIcon(android.R.drawable.ic_info)
+        .setStyle(DecoratedCustomViewStyle())
+        .setCustomContentView(remoteViews)
+        .setCustomBigContentView(remoteViews)
+        .setContentTitle("This is a remote view!")
+}
+
+fun drawableSizeOnDevice(context: Context): Int {
+    val drawable = context.resources.getDrawable(DRAWABLE_IMAGE_RESOURCE)
+    return (drawable as BitmapDrawable).bitmap.allocationByteCount
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
index a523488..14a1233 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
@@ -290,7 +290,8 @@
                 mKeyguardInteractor,
                 mKosmos.getTestDispatcher(),
                 mLinearLargeScreenShadeInterpolator,
-                new BlurConfig(0.0f, 0.0f));
+                new BlurConfig(0.0f, 0.0f),
+                mKosmos::getWindowRootViewBlurInteractor);
         mScrimController.setScrimVisibleListener(visible -> mScrimVisibility = visible);
         mScrimController.attachViews(mScrimBehind, mNotificationsScrim, mScrimInFront);
         mScrimController.setAnimatorListener(mAnimatorListener);
@@ -1204,7 +1205,8 @@
                 mKeyguardInteractor,
                 mKosmos.getTestDispatcher(),
                 mLinearLargeScreenShadeInterpolator,
-                new BlurConfig(0.0f, 0.0f));
+                new BlurConfig(0.0f, 0.0f),
+                mKosmos::getWindowRootViewBlurInteractor);
         mScrimController.setScrimVisibleListener(visible -> mScrimVisibility = visible);
         mScrimController.attachViews(mScrimBehind, mNotificationsScrim, mScrimInFront);
         mScrimController.setAnimatorListener(mAnimatorListener);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
index 2f30b74..3190d3a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
@@ -91,11 +91,11 @@
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
 import com.android.systemui.statusbar.notification.data.repository.NotificationLaunchAnimationRepository;
 import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor;
+import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
 import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
-import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.util.concurrency.FakeExecutor;
 import com.android.systemui.util.time.FakeSystemClock;
@@ -122,7 +122,6 @@
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
 
-    private static final int DISPLAY_ID = 0;
     private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags();
 
     @Mock
@@ -233,7 +232,6 @@
         mNotificationActivityStarter =
                 new StatusBarNotificationActivityStarter(
                         getContext(),
-                        DISPLAY_ID,
                         mHandler,
                         mUiBgExecutor,
                         mVisibilityProvider,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepositoryTest.kt
new file mode 100644
index 0000000..3953ebe
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepositoryTest.kt
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.data.repository
+
+import android.content.testableContext
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.backgroundScope
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.testDispatcher
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.shared.settings.data.repository.fakeSystemSettingsRepository
+import com.android.systemui.shared.settings.data.repository.systemSettingsRepository
+import com.android.systemui.statusbar.policy.batteryController
+import com.android.systemui.statusbar.policy.fake
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import kotlin.time.Duration.Companion.minutes
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.advanceTimeBy
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class BatteryRepositoryTest : SysuiTestCase() {
+    val kosmos = testKosmos()
+
+    val Kosmos.underTest by
+        Kosmos.Fixture {
+            BatteryRepository(
+                testableContext,
+                backgroundScope,
+                testDispatcher,
+                batteryController,
+                systemSettingsRepository,
+            )
+        }
+
+    @Test
+    fun pluggedIn() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isPluggedIn)
+
+            assertThat(latest).isFalse()
+
+            batteryController.fake._isPluggedIn = true
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun powerSave() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isPowerSaveEnabled)
+
+            assertThat(latest).isFalse()
+
+            batteryController.fake._isPowerSave = true
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun defend() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isBatteryDefenderEnabled)
+
+            assertThat(latest).isFalse()
+
+            batteryController.fake._isDefender = true
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun level() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.level)
+
+            batteryController.fake._level = 42
+
+            assertThat(latest).isEqualTo(42)
+
+            batteryController.fake._level = 84
+
+            assertThat(latest).isEqualTo(84)
+        }
+
+    @Test
+    fun isStateUnknown() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isStateUnknown)
+
+            assertThat(latest).isFalse()
+
+            batteryController.fake._isStateUnknown = true
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun showBatteryPercentSetting() =
+        kosmos.runTest {
+            // Set the default to true, so it's detectable in test
+            testableContext.orCreateTestableResources.addOverride(
+                com.android.internal.R.bool.config_defaultBatteryPercentageSetting,
+                true,
+            )
+
+            val latest by collectLastValue(underTest.isShowBatteryPercentSettingEnabled)
+
+            assertThat(latest).isTrue()
+
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 0)
+
+            assertThat(latest).isFalse()
+
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 1)
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun batteryRemainingEstimateString_queriesEveryTwoMinutes() =
+        kosmos.runTest {
+            batteryController.fake._estimatedTimeRemainingString = null
+
+            val latest by collectLastValue(underTest.batteryTimeRemainingEstimate)
+
+            assertThat(latest).isNull()
+
+            batteryController.fake._estimatedTimeRemainingString = "test time remaining"
+
+            testScope.advanceTimeBy(2.minutes)
+
+            assertThat(latest).isEqualTo("test time remaining")
+        }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractorTest.kt
new file mode 100644
index 0000000..df45e2e
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractorTest.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.domain.interactor
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.statusbar.policy.batteryController
+import com.android.systemui.statusbar.policy.fake
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class BatteryInteractorTest : SysuiTestCase() {
+    val kosmos = testKosmos()
+    val Kosmos.underTest by Kosmos.Fixture { batteryInteractor }
+
+    @Test
+    fun batteryAttributionType() =
+        kosmos.runTest {
+            batteryController.fake._isPluggedIn = false
+            batteryController.fake._isDefender = false
+            batteryController.fake._isPowerSave = false
+
+            val latest by collectLastValue(underTest.batteryAttributionType)
+
+            assertThat(latest).isNull()
+
+            batteryController.fake._isDefender = true
+
+            assertThat(latest).isEqualTo(BatteryAttributionModel.Defend)
+
+            batteryController.fake._isPowerSave = true
+
+            assertThat(latest).isEqualTo(BatteryAttributionModel.PowerSave)
+
+            batteryController.fake._isPluggedIn = true
+
+            assertThat(latest).isEqualTo(BatteryAttributionModel.Charging)
+        }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModelTest.kt
new file mode 100644
index 0000000..6f4c745
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModelTest.kt
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.viewmodel
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
+import com.android.systemui.lifecycle.activateIn
+import com.android.systemui.shared.settings.data.repository.fakeSystemSettingsRepository
+import com.android.systemui.statusbar.pipeline.battery.shared.ui.BatteryGlyph
+import com.android.systemui.statusbar.policy.batteryController
+import com.android.systemui.statusbar.policy.fake
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class BatteryViewModelTest : SysuiTestCase() {
+    val kosmos = testKosmos()
+    val Kosmos.underTest by Kosmos.Fixture { batteryViewModel }
+
+    @Before
+    fun setUp() {
+        kosmos.useUnconfinedTestDispatcher()
+        kosmos.underTest.activateIn(kosmos.testScope)
+    }
+
+    @Test
+    fun glyphList_notCharging_settingOff_isEmpty() =
+        kosmos.runTest {
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 0)
+            batteryController.fake._isPluggedIn = false
+            batteryController.fake._level = 42
+
+            assertThat(underTest.glyphList).isEmpty()
+        }
+
+    @Test
+    fun glyphList_notCharging_settingOn_hasOnlyLevelGlyphs() =
+        kosmos.runTest {
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 1)
+            batteryController.fake._isPluggedIn = false
+            batteryController.fake._level = 42
+
+            assertThat(underTest.glyphList).isEqualTo(listOf(BatteryGlyph.Four, BatteryGlyph.Two))
+        }
+
+    @Test
+    fun glyphList_charging_settingOn_notFull_hasLevelAndInlineGlyph() =
+        kosmos.runTest {
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 1)
+            batteryController.fake._isPluggedIn = true
+            batteryController.fake._level = 39
+
+            assertThat(underTest.glyphList)
+                .isEqualTo(listOf(BatteryGlyph.Three, BatteryGlyph.Nine, BatteryGlyph.Bolt))
+        }
+
+    @Test
+    fun glyphList_charging_settingOn_isFull_onlyHasLargeBolt() =
+        kosmos.runTest {
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 1)
+            batteryController.fake._isPluggedIn = true
+            batteryController.fake._level = 100
+
+            assertThat(underTest.glyphList).isEqualTo(listOf(BatteryGlyph.BoltLarge))
+        }
+
+    @Test
+    fun glyphList_charging_settingOff_notFull_onlyHasLargeGlyph() =
+        kosmos.runTest {
+            fakeSystemSettingsRepository.setInt(Settings.System.SHOW_BATTERY_PERCENT, 0)
+            batteryController.fake._isPluggedIn = true
+            batteryController.fake._level = 39
+
+            assertThat(underTest.glyphList).isEqualTo(listOf(BatteryGlyph.BoltLarge))
+        }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS b/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS
index 0ec996b..9b4902a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS
+++ b/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS
@@ -6,5 +6,4 @@
 mgalhardo@google.com
 petrcermak@google.com
 stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com
\ No newline at end of file
+vanjan@google.com
diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java
index bf10dc6..a38d71b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java
@@ -1923,13 +1923,13 @@
     public void testShowStackEdu_isNotConversationBubble() {
         // Setup
         setPrefBoolean(StackEducationView.PREF_STACK_EDUCATION, false);
-        BubbleEntry bubbleEntry = createBubbleEntry(false /* isConversation */);
-        mBubbleController.updateBubble(bubbleEntry);
+        mBubbleController.showOrHideNotesBubble(mNotesBubbleIntent, mUser0, mNotesBubbleIcon);
         assertTrue(mBubbleController.hasBubbles());
-
+        String noteBubbleKey = Bubble.getNoteBubbleKeyForApp(mNotesBubbleIntent.getPackage(),
+                mUser0);
         // Click on bubble
-        Bubble bubble = mBubbleData.getBubbleInStackWithKey(bubbleEntry.getKey());
-        assertFalse(bubble.isConversation());
+        Bubble bubble = mBubbleData.getBubbleInStackWithKey(noteBubbleKey);
+        assertFalse(bubble.isChat());
         bubble.getIconView().callOnClick();
 
         // Check education is not shown
@@ -1941,13 +1941,13 @@
     public void testShowStackEdu_isConversationBubble() {
         // Setup
         setPrefBoolean(StackEducationView.PREF_STACK_EDUCATION, false);
-        BubbleEntry bubbleEntry = createBubbleEntry(true /* isConversation */);
+        BubbleEntry bubbleEntry = createBubbleEntry();
         mBubbleController.updateBubble(bubbleEntry);
         assertTrue(mBubbleController.hasBubbles());
 
         // Click on bubble
         Bubble bubble = mBubbleData.getBubbleInStackWithKey(bubbleEntry.getKey());
-        assertTrue(bubble.isConversation());
+        assertTrue(bubble.isChat());
         bubble.getIconView().callOnClick();
 
         // Check education is shown
@@ -1959,13 +1959,13 @@
     public void testShowStackEdu_isSeenConversationBubble() {
         // Setup
         setPrefBoolean(StackEducationView.PREF_STACK_EDUCATION, true);
-        BubbleEntry bubbleEntry = createBubbleEntry(true /* isConversation */);
+        BubbleEntry bubbleEntry = createBubbleEntry();
         mBubbleController.updateBubble(bubbleEntry);
         assertTrue(mBubbleController.hasBubbles());
 
         // Click on bubble
         Bubble bubble = mBubbleData.getBubbleInStackWithKey(bubbleEntry.getKey());
-        assertTrue(bubble.isConversation());
+        assertTrue(bubble.isChat());
         bubble.getIconView().callOnClick();
 
         // Check education is not shown
@@ -2690,17 +2690,19 @@
                 mock(Bubbles.PendingIntentCanceledListener.class), executor, executor);
     }
 
-    private BubbleEntry createBubbleEntry(boolean isConversation) {
+    /**
+     * Creates a BubbleEntry, which will represent a chat bubble.
+     * All bubble entries are notification based & therefore are chat bubbles.
+     */
+    private BubbleEntry createBubbleEntry() {
         NotificationEntry notificationEntry = mNotificationTestHelper.createBubble(mDeleteIntent);
-        if (isConversation) {
-            ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
-                    .setId("shortcutId")
-                    .build();
-            NotificationEntryHelper.modifyRanking(notificationEntry)
-                    .setIsConversation(true)
-                    .setShortcutInfo(shortcutInfo)
-                    .build();
-        }
+        ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
+                .setId("shortcutId")
+                .build();
+        NotificationEntryHelper.modifyRanking(notificationEntry)
+                .setIsConversation(true)
+                .setShortcutInfo(shortcutInfo)
+                .build();
         return mBubblesManager.notifToBubbleEntry(notificationEntry);
     }
 
diff --git a/packages/SystemUI/tests/utils/src/android/os/UserManagerKosmos.kt b/packages/SystemUI/tests/utils/src/android/os/UserManagerKosmos.kt
index c936b91..2661848 100644
--- a/packages/SystemUI/tests/utils/src/android/os/UserManagerKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/android/os/UserManagerKosmos.kt
@@ -17,6 +17,15 @@
 package android.os
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.util.mockito.mock
+import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
 
-var Kosmos.userManager by Kosmos.Fixture { mock<UserManager>() }
+var Kosmos.userManager by
+    Kosmos.Fixture {
+        mock<UserManager> {
+            whenever(it.mainUser).thenReturn(UserHandle(MAIN_USER_ID))
+            whenever(it.getUserSerialNumber(eq(MAIN_USER_ID))).thenReturn(0)
+        }
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/app/WallpaperManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/app/WallpaperManagerKosmos.kt
index f893aba..d6e6ea8 100644
--- a/packages/SystemUI/tests/utils/src/com/android/app/WallpaperManagerKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/app/WallpaperManagerKosmos.kt
@@ -20,6 +20,6 @@
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
 
-val Kosmos.wallpaperManager: WallpaperManager by Fixture {
+var Kosmos.wallpaperManager: WallpaperManager by Fixture {
     WallpaperManager.getInstance(applicationContext)
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorKosmos.kt
index b0a6de1..0f21a16 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorKosmos.kt
@@ -42,7 +42,9 @@
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.settings.userTracker
 import com.android.systemui.statusbar.phone.fakeManagedProfileController
+import com.android.systemui.user.data.repository.FakeUserRepository
 import com.android.systemui.user.data.repository.fakeUserRepository
+import com.android.systemui.user.domain.interactor.userLockedInteractor
 import com.android.systemui.util.mockito.mock
 
 val Kosmos.communalInteractor by Fixture {
@@ -70,6 +72,7 @@
         batteryInteractor = batteryInteractor,
         dockManager = dockManager,
         posturingInteractor = posturingInteractor,
+        userLockedInteractor = userLockedInteractor,
     )
 }
 
@@ -98,10 +101,8 @@
 
 suspend fun Kosmos.setCommunalAvailable(available: Boolean) {
     setCommunalEnabled(available)
-    with(fakeKeyguardRepository) {
-        setIsEncryptedOrLockdown(!available)
-        setKeyguardShowing(available)
-    }
+    fakeKeyguardRepository.setKeyguardShowing(available)
+    fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, available)
 }
 
 suspend fun Kosmos.setCommunalV2Available(available: Boolean) {
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt
index 2e59788..4480539 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt
@@ -16,18 +16,20 @@
 
 package com.android.systemui.dreams.ui.viewmodel
 
-import com.android.systemui.communal.domain.interactor.communalInteractor
 import com.android.systemui.deviceentry.domain.interactor.deviceUnlockedInteractor
 import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
 import com.android.systemui.shade.domain.interactor.shadeInteractor
 import com.android.systemui.shade.domain.interactor.shadeModeInteractor
 
-val Kosmos.dreamUserActionsViewModel by
-    Kosmos.Fixture {
-        DreamUserActionsViewModel(
-            communalInteractor = communalInteractor,
-            deviceUnlockedInteractor = deviceUnlockedInteractor,
-            shadeInteractor = shadeInteractor,
-            shadeModeInteractor = shadeModeInteractor,
-        )
+val Kosmos.dreamUserActionsViewModelFactory by Fixture {
+    object : DreamUserActionsViewModel.Factory {
+        override fun create(): DreamUserActionsViewModel {
+            return DreamUserActionsViewModel(
+                deviceUnlockedInteractor = deviceUnlockedInteractor,
+                shadeInteractor = shadeInteractor,
+                shadeModeInteractor = shadeModeInteractor,
+            )
+        }
     }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModelKosmos.kt
new file mode 100644
index 0000000..de36493
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamViewModelKosmos.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.dreams.ui.viewmodel
+
+import com.android.keyguard.keyguardUpdateMonitor
+import com.android.systemui.common.ui.domain.interactor.configurationInteractor
+import com.android.systemui.communal.domain.interactor.communalInteractor
+import com.android.systemui.communal.domain.interactor.communalSettingsInteractor
+import com.android.systemui.dump.dumpManager
+import com.android.systemui.keyguard.domain.interactor.fromDreamingTransitionInteractor
+import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
+import com.android.systemui.keyguard.ui.viewmodel.dreamingToGlanceableHubTransitionViewModel
+import com.android.systemui.keyguard.ui.viewmodel.dreamingToLockscreenTransitionViewModel
+import com.android.systemui.keyguard.ui.viewmodel.glanceableHubToDreamingTransitionViewModel
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.settings.userTracker
+
+val Kosmos.dreamViewModel by
+    Kosmos.Fixture {
+        DreamViewModel(
+            communalInteractor = communalInteractor,
+            communalSettingsInteractor = communalSettingsInteractor,
+            configurationInteractor = configurationInteractor,
+            keyguardTransitionInteractor = keyguardTransitionInteractor,
+            fromGlanceableHubTransitionViewModel = glanceableHubToDreamingTransitionViewModel,
+            toGlanceableHubTransitionViewModel = dreamingToGlanceableHubTransitionViewModel,
+            toLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel,
+            fromDreamingTransitionInteractor = fromDreamingTransitionInteractor,
+            keyguardUpdateMonitor = keyguardUpdateMonitor,
+            userTracker = userTracker,
+            dumpManager = dumpManager,
+        )
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/KeyguardDisplayManagerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/KeyguardDisplayManagerKosmos.kt
new file mode 100644
index 0000000..1e46d48
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/KeyguardDisplayManagerKosmos.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.keyguard
+
+import android.content.testableContext
+import com.android.keyguard.ConnectedDisplayKeyguardPresentation
+import com.android.keyguard.KeyguardDisplayManager
+import com.android.keyguard.KeyguardDisplayManager.DeviceStateHelper
+import com.android.systemui.concurrency.fakeExecutor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.applicationCoroutineScope
+import com.android.systemui.navigationbar.navigationBarController
+import com.android.systemui.settings.displayTracker
+import com.android.systemui.shade.data.repository.shadeDisplaysRepository
+import com.android.systemui.statusbar.policy.keyguardStateController
+import org.mockito.kotlin.mock
+
+var Kosmos.keyguardDisplayManager by
+    Kosmos.Fixture {
+        KeyguardDisplayManager(
+            testableContext,
+            { navigationBarController },
+            displayTracker,
+            fakeExecutor,
+            fakeExecutor,
+            mock<DeviceStateHelper>(),
+            keyguardStateController,
+            mock<ConnectedDisplayKeyguardPresentation.Factory>(),
+            { shadeDisplaysRepository },
+            applicationCoroutineScope,
+        )
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardClockRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardClockRepository.kt
index 159dd34..25a9120 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardClockRepository.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardClockRepository.kt
@@ -47,10 +47,6 @@
     override val previewClock: Flow<ClockController>
         get() = _previewClock
 
-    private val _notificationDefaultTop = MutableStateFlow(0F)
-    override val notificationDefaultTop: StateFlow<Float>
-        get() = _notificationDefaultTop
-
     override val clockEventController: ClockEventController
         get() = mock()
 
@@ -63,10 +59,6 @@
         _clockSize.value = size
     }
 
-    override fun setNotificationDefaultTop(top: Float) {
-        _notificationDefaultTop.value = top
-    }
-
     fun setSelectedClockSize(size: ClockSizeSetting) {
         _selectedClockSize.value = size
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt
index 1952f26..591f493 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt
@@ -18,7 +18,6 @@
 package com.android.systemui.keyguard.data.repository
 
 import android.graphics.Point
-import android.graphics.RectF
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.keyguard.shared.model.BiometricUnlockMode
 import com.android.systemui.keyguard.shared.model.BiometricUnlockModel
@@ -123,18 +122,6 @@
     private val _isEncryptedOrLockdown = MutableStateFlow(true)
     override val isEncryptedOrLockdown: Flow<Boolean> = _isEncryptedOrLockdown
 
-    private val _shortcutAbsoluteTop = MutableStateFlow(0F)
-    override val shortcutAbsoluteTop: StateFlow<Float>
-        get() = _shortcutAbsoluteTop.asStateFlow()
-
-    private val _notificationStackAbsoluteBottom = MutableStateFlow(0F)
-    override val notificationStackAbsoluteBottom: StateFlow<Float>
-        get() = _notificationStackAbsoluteBottom.asStateFlow()
-
-    private val _wallpaperFocalAreaBounds = MutableStateFlow(RectF(0f, 0f, 0f, 0f))
-    override val wallpaperFocalAreaBounds: StateFlow<RectF>
-        get() = _wallpaperFocalAreaBounds.asStateFlow()
-
     private val _isKeyguardEnabled = MutableStateFlow(true)
     override val isKeyguardEnabled: StateFlow<Boolean> = _isKeyguardEnabled.asStateFlow()
 
@@ -289,18 +276,6 @@
         return isShowKeyguardWhenReenabled
     }
 
-    override fun setShortcutAbsoluteTop(top: Float) {
-        _shortcutAbsoluteTop.value = top
-    }
-
-    override fun setNotificationStackAbsoluteBottom(bottom: Float) {
-        _notificationStackAbsoluteBottom.value = bottom
-    }
-
-    override fun setWallpaperFocalAreaBounds(bounds: RectF) {
-        _wallpaperFocalAreaBounds.value = bounds
-    }
-
     override fun setCanIgnoreAuthAndReturnToGone(canWake: Boolean) {
         _canIgnoreAuthAndReturnToGone.value = canWake
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorKosmos.kt
index d995b86..0f7366d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromDreamingTransitionInteractorKosmos.kt
@@ -38,7 +38,6 @@
             bgDispatcher = testDispatcher,
             mainDispatcher = testDispatcher,
             keyguardInteractor = keyguardInteractor,
-            glanceableHubTransitions = glanceableHubTransitions,
             communalInteractor = communalInteractor,
             communalSceneInteractor = communalSceneInteractor,
             communalSettingsInteractor = communalSettingsInteractor,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractorKosmos.kt
index 494f08b..bf72e48 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractorKosmos.kt
@@ -31,7 +31,6 @@
             scope = applicationCoroutineScope,
             mainDispatcher = testDispatcher,
             bgDispatcher = testDispatcher,
-            glanceableHubTransitions = glanceableHubTransitions,
             communalSettingsInteractor = communalSettingsInteractor,
             keyguardInteractor = keyguardInteractor,
             transitionRepository = keyguardTransitionRepository,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractorKosmos.kt
index ff0f13e..1698a50 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractorKosmos.kt
@@ -37,6 +37,6 @@
             powerInteractor = powerInteractor,
             communalSceneInteractor = communalSceneInteractor,
             keyguardOcclusionInteractor = keyguardOcclusionInteractor,
-            keyguardLockWhileAwakeInteractor = keyguardLockWhileAwakeInteractor,
+            keyguardShowWhileAwakeInteractor = keyguardShowWhileAwakeInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorKosmos.kt
index ff7a06c..985044c 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorKosmos.kt
@@ -39,7 +39,6 @@
             keyguardInteractor = keyguardInteractor,
             shadeRepository = shadeRepository,
             powerInteractor = powerInteractor,
-            glanceableHubTransitions = glanceableHubTransitions,
             communalSettingsInteractor = communalSettingsInteractor,
             swipeToDismissInteractor = swipeToDismissInteractor,
             keyguardOcclusionInteractor = keyguardOcclusionInteractor,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/GlanceableHubTransitionsKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/GlanceableHubTransitionsKosmos.kt
deleted file mode 100644
index a45b269..0000000
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/GlanceableHubTransitionsKosmos.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.keyguard.domain.interactor
-
-import com.android.systemui.communal.domain.interactor.communalInteractor
-import com.android.systemui.keyguard.data.repository.keyguardTransitionRepository
-import com.android.systemui.kosmos.Kosmos
-
-val Kosmos.glanceableHubTransitions by
-    Kosmos.Fixture {
-        GlanceableHubTransitions(
-            transitionRepository = keyguardTransitionRepository,
-            transitionInteractor = keyguardTransitionInteractor,
-            communalInteractor = communalInteractor,
-        )
-    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractorKosmos.kt
index bdb9abb..4068a22 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractorKosmos.kt
@@ -22,18 +22,22 @@
 import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor
 import com.android.systemui.shade.domain.interactor.shadeInteractor
 import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
+import com.android.systemui.statusbar.notification.promoted.domain.interactor.aodPromotedNotificationInteractor
 import com.android.systemui.statusbar.notification.stack.domain.interactor.headsUpNotificationInteractor
+import com.android.systemui.wallpapers.domain.interactor.wallpaperFocalAreaInteractor
 
 val Kosmos.keyguardClockInteractor by
     Kosmos.Fixture {
         KeyguardClockInteractor(
             mediaCarouselInteractor = mediaCarouselInteractor,
             activeNotificationsInteractor = activeNotificationsInteractor,
+            aodPromotedNotificationInteractor = aodPromotedNotificationInteractor,
             shadeInteractor = shadeInteractor,
             keyguardInteractor = keyguardInteractor,
             keyguardTransitionInteractor = keyguardTransitionInteractor,
             headsUpNotificationInteractor = headsUpNotificationInteractor,
             applicationScope = applicationCoroutineScope,
             keyguardClockRepository = keyguardClockRepository,
+            wallpaperFocalAreaInteractor = wallpaperFocalAreaInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt
index ee21bdc..4e5abb8 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt
@@ -28,6 +28,8 @@
 import com.android.systemui.shade.data.repository.FakeShadeRepository
 import com.android.systemui.util.mockito.mock
 import com.android.systemui.util.mockito.whenever
+import com.android.systemui.wallpapers.data.repository.FakeWallpaperFocalAreaRepository
+import com.android.systemui.wallpapers.data.repository.WallpaperFocalAreaRepository
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.MutableSharedFlow
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -48,6 +50,8 @@
         bouncerRepository: FakeKeyguardBouncerRepository = FakeKeyguardBouncerRepository(),
         configurationRepository: FakeConfigurationRepository = FakeConfigurationRepository(),
         shadeRepository: FakeShadeRepository = FakeShadeRepository(),
+        wallpaperFocalAreaRepository: WallpaperFocalAreaRepository =
+            FakeWallpaperFocalAreaRepository(),
         sceneInteractor: SceneInteractor = mock(),
         fromGoneTransitionInteractor: FromGoneTransitionInteractor = mock(),
         fromLockscreenTransitionInteractor: FromLockscreenTransitionInteractor = mock(),
@@ -84,6 +88,7 @@
                     fromAlternateBouncerTransitionInteractor
                 },
                 applicationScope = testScope,
+                wallpaperFocalAreaRepository = wallpaperFocalAreaRepository,
             ),
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt
index 869bae2..f9b0290 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt
@@ -23,6 +23,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.shade.data.repository.shadeRepository
+import com.android.systemui.wallpapers.data.repository.wallpaperFocalAreaRepository
 
 val Kosmos.keyguardInteractor: KeyguardInteractor by
     Kosmos.Fixture {
@@ -38,5 +39,6 @@
             fromOccludedTransitionInteractor = { fromOccludedTransitionInteractor },
             fromAlternateBouncerTransitionInteractor = { fromAlternateBouncerTransitionInteractor },
             applicationScope = testScope.backgroundScope,
+            wallpaperFocalAreaRepository = wallpaperFocalAreaRepository,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
similarity index 83%
rename from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
rename to packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
index 29335c5..3cec5a9 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceShowLockscreenInteractor.kt
@@ -19,5 +19,5 @@
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.testScope
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+val Kosmos.keyguardServiceShowLockscreenInteractor by
+    Kosmos.Fixture { KeyguardServiceShowLockscreenInteractor(backgroundScope = testScope) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractorKosmos.kt
similarity index 84%
rename from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractorKosmos.kt
rename to packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractorKosmos.kt
index 2423949..f7caeb6 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardLockWhileAwakeInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardShowWhileAwakeInteractorKosmos.kt
@@ -19,11 +19,11 @@
 import com.android.systemui.keyguard.data.repository.biometricSettingsRepository
 import com.android.systemui.kosmos.Kosmos
 
-val Kosmos.keyguardLockWhileAwakeInteractor by
+val Kosmos.keyguardShowWhileAwakeInteractor by
     Kosmos.Fixture {
-        KeyguardLockWhileAwakeInteractor(
+        KeyguardShowWhileAwakeInteractor(
             biometricSettingsRepository = biometricSettingsRepository,
             keyguardEnabledInteractor = keyguardEnabledInteractor,
-            keyguardServiceLockNowInteractor = keyguardServiceLockNowInteractor,
+            keyguardServiceShowLockscreenInteractor = keyguardServiceShowLockscreenInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorKosmos.kt
index 8c9163d..43fa718 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardWakeDirectlyToGoneInteractorKosmos.kt
@@ -42,7 +42,7 @@
             fakeSettings,
             selectedUserInteractor,
             keyguardEnabledInteractor,
-            keyguardServiceLockNowInteractor,
+            keyguardServiceShowLockscreenInteractor,
             keyguardInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt
index dc54eab..ea3feea 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt
@@ -20,7 +20,6 @@
 import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
 import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
 import com.android.systemui.keyguard.domain.interactor.pulseExpansionInteractor
-import com.android.systemui.keyguard.domain.interactor.wallpaperFocalAreaInteractor
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
 import com.android.systemui.kosmos.applicationCoroutineScope
@@ -30,6 +29,7 @@
 import com.android.systemui.statusbar.notification.stack.domain.interactor.notificationsKeyguardInteractor
 import com.android.systemui.statusbar.phone.dozeParameters
 import com.android.systemui.statusbar.phone.screenOffAnimationController
+import com.android.systemui.wallpapers.domain.interactor.wallpaperFocalAreaInteractor
 
 val Kosmos.keyguardRootViewModel by Fixture {
     KeyguardRootViewModel(
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt
index ec83157..4f1774f 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt
@@ -16,7 +16,6 @@
 
 package com.android.systemui.keyguard.ui.viewmodel
 
-import com.android.systemui.communal.domain.interactor.communalInteractor
 import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
@@ -27,7 +26,6 @@
 val Kosmos.lockscreenUserActionsViewModel by Fixture {
     LockscreenUserActionsViewModel(
         deviceEntryInteractor = deviceEntryInteractor,
-        communalInteractor = communalInteractor,
         shadeInteractor = shadeInteractor,
         shadeModeInteractor = shadeModeInteractor,
         occlusionInteractor = sceneContainerOcclusionInteractor,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/GeneralKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/GeneralKosmos.kt
index b255b51..0443329 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/GeneralKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/GeneralKosmos.kt
@@ -57,12 +57,10 @@
 
 var Kosmos.testScope by Fixture { TestScope(testDispatcher) }
 var Kosmos.backgroundScope by Fixture { testScope.backgroundScope }
-var Kosmos.applicationCoroutineScope by Fixture { backgroundScope }
+var Kosmos.applicationCoroutineScope by Fixture { testScope.backgroundScope }
 var Kosmos.testCase: SysuiTestCase by Fixture()
-var Kosmos.backgroundCoroutineContext: CoroutineContext by Fixture {
-    backgroundScope.coroutineContext
-}
-var Kosmos.mainCoroutineContext: CoroutineContext by Fixture { testScope.coroutineContext }
+var Kosmos.backgroundCoroutineContext: CoroutineContext by Fixture { testDispatcher }
+var Kosmos.mainCoroutineContext: CoroutineContext by Fixture { testDispatcher }
 
 /**
  * Run this test body with a [Kosmos] as receiver, and using the [testScope] currently installed in
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt
index 446e106..60b371a 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt
@@ -90,6 +90,7 @@
 import com.android.systemui.statusbar.ui.viewmodel.keyguardStatusBarViewModel
 import com.android.systemui.util.time.systemClock
 import com.android.systemui.volume.domain.interactor.volumeDialogInteractor
+import com.android.systemui.window.domain.interactor.windowRootViewBlurInteractor
 
 /**
  * Helper for using [Kosmos] from Java.
@@ -192,4 +193,5 @@
     val disableFlagsInteractor by lazy { kosmos.disableFlagsInteractor }
     val fakeDisableFlagsRepository by lazy { kosmos.fakeDisableFlagsRepository }
     val mockWindowRootViewProvider by lazy { kosmos.mockWindowRootViewProvider }
+    val windowRootViewBlurInteractor by lazy { kosmos.windowRootViewBlurInteractor }
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt
index 583a9de..18c4a4d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt
@@ -49,8 +49,8 @@
             ): QSFragmentComposeViewModel {
                 return QSFragmentComposeViewModel(
                     quickSettingsContainerViewModelFactory,
-                    quickQuickSettingsViewModelFactory,
                     mainResources,
+                    quickQuickSettingsViewModelFactory,
                     footerActionsViewModelFactory,
                     footerActionsController,
                     sysuiStatusBarStateController,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepositoryKosmos.kt
deleted file mode 100644
index 696c4bf..0000000
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/data/repository/PaginatedGridRepositoryKosmos.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs.panels.data.repository
-
-import com.android.systemui.common.ui.data.repository.configurationRepository
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testCase
-
-val Kosmos.paginatedGridRepository by
-    Kosmos.Fixture {
-        testCase.context.orCreateTestableResources
-        PaginatedGridRepository(testCase.context.resources, configurationRepository)
-    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/PaginatedGridInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/PaginatedGridInteractorKosmos.kt
deleted file mode 100644
index a922e5d..0000000
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/PaginatedGridInteractorKosmos.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs.panels.domain.interactor
-
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.qs.panels.data.repository.paginatedGridRepository
-
-val Kosmos.paginatedGridInteractor by
-    Kosmos.Fixture { PaginatedGridInteractor(paginatedGridRepository) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModelKosmos.kt
index 128cfca..93d6a22 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/PaginatedGridViewModelKosmos.kt
@@ -19,7 +19,6 @@
 import com.android.systemui.classifier.domain.interactor.falsingInteractor
 import com.android.systemui.development.ui.viewmodel.buildNumberViewModelFactory
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.qs.panels.domain.interactor.paginatedGridInteractor
 import com.android.systemui.qs.panels.ui.viewmodel.toolbar.editModeButtonViewModelFactory
 
 val Kosmos.paginatedGridViewModel by
@@ -27,7 +26,6 @@
         PaginatedGridViewModel(
             iconTilesViewModel,
             qsColumnsViewModelFactory,
-            paginatedGridInteractor,
             inFirstPageViewModel,
             buildNumberViewModelFactory,
             editModeButtonViewModelFactory,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModelKosmos.kt
index e79d213..57c8e53 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/ui/viewmodel/TileGridViewModelKosmos.kt
@@ -17,7 +17,6 @@
 package com.android.systemui.qs.panels.ui.viewmodel
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.applicationCoroutineScope
 import com.android.systemui.qs.panels.domain.interactor.gridLayoutMap
 import com.android.systemui.qs.panels.domain.interactor.gridLayoutTypeInteractor
 import com.android.systemui.qs.panels.ui.compose.infinitegrid.infiniteGridLayout
@@ -30,6 +29,14 @@
             gridLayoutMap,
             currentTilesInteractor,
             infiniteGridLayout,
-            applicationCoroutineScope,
         )
     }
+
+val Kosmos.tileGridViewModelFactory by
+    Kosmos.Fixture {
+        object : TileGridViewModel.Factory {
+            override fun create(): TileGridViewModel {
+                return tileGridViewModel
+            }
+        }
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/FakeTileSpecRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/FakeTileSpecRepository.kt
index 1c69eab..f287114 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/FakeTileSpecRepository.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/FakeTileSpecRepository.kt
@@ -19,6 +19,8 @@
 import com.android.systemui.qs.pipeline.data.model.RestoreData
 import com.android.systemui.qs.pipeline.data.repository.TileSpecRepository.Companion.POSITION_AT_END
 import com.android.systemui.qs.pipeline.shared.TileSpec
+import com.android.systemui.qs.pipeline.shared.TilesUpgradePath
+import kotlinx.coroutines.channels.Channel
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.asStateFlow
@@ -77,4 +79,10 @@
     override suspend fun resetToDefault(userId: Int) {
         with(getFlow(userId)) { value = defaultTilesRepository.defaultTiles }
     }
+
+    override val tilesUpgradePath: Channel<Pair<TilesUpgradePath, Int>> = Channel(capacity = 10)
+
+    suspend fun sendTilesFromUpgradePath(upgradePath: TilesUpgradePath, userId: Int) {
+        tilesUpgradePath.send(upgradePath to userId)
+    }
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/QSPipelineRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/QSPipelineRepositoryKosmos.kt
index 5ff44e5..c5de02a 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/QSPipelineRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/pipeline/data/repository/QSPipelineRepositoryKosmos.kt
@@ -26,7 +26,7 @@
     Kosmos.Fixture { fakeMinimumTilesRepository }
 
 var Kosmos.fakeDefaultTilesRepository by Kosmos.Fixture { FakeDefaultTilesRepository() }
-val Kosmos.defaultTilesRepository: DefaultTilesRepository by
+var Kosmos.defaultTilesRepository: DefaultTilesRepository by
     Kosmos.Fixture { fakeDefaultTilesRepository }
 
 val Kosmos.fakeTileSpecRepository by
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModelKosmos.kt
index 3fc73cb..31be050 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsContainerViewModelKosmos.kt
@@ -20,7 +20,7 @@
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.qs.panels.ui.viewmodel.detailsViewModel
 import com.android.systemui.qs.panels.ui.viewmodel.editModeViewModel
-import com.android.systemui.qs.panels.ui.viewmodel.tileGridViewModel
+import com.android.systemui.qs.panels.ui.viewmodel.tileGridViewModelFactory
 import com.android.systemui.qs.panels.ui.viewmodel.toolbar.toolbarViewModelFactory
 import com.android.systemui.shade.domain.interactor.shadeModeInteractor
 import com.android.systemui.shade.ui.viewmodel.shadeHeaderViewModelFactory
@@ -34,8 +34,8 @@
                 return QuickSettingsContainerViewModel(
                     brightnessSliderViewModelFactory,
                     shadeHeaderViewModelFactory,
+                    tileGridViewModelFactory,
                     supportsBrightnessMirroring,
-                    tileGridViewModel,
                     editModeViewModel,
                     detailsViewModel,
                     toolbarViewModelFactory,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt
index ce298bb..f0350ac 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt
@@ -5,6 +5,8 @@
 import com.android.systemui.classifier.domain.interactor.falsingInteractor
 import com.android.systemui.haptics.msdl.msdlPlayer
 import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
+import com.android.systemui.keyguard.ui.viewmodel.aodBurnInViewModel
+import com.android.systemui.keyguard.ui.viewmodel.keyguardClockViewModel
 import com.android.systemui.keyguard.ui.viewmodel.lightRevealScrimViewModel
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
@@ -18,7 +20,6 @@
 import com.android.systemui.scene.ui.composable.ConstantSceneContainerTransitionsBuilder
 import com.android.systemui.scene.ui.viewmodel.SceneContainerHapticsViewModel
 import com.android.systemui.scene.ui.viewmodel.SceneContainerViewModel
-import com.android.systemui.scene.ui.viewmodel.splitEdgeDetector
 import com.android.systemui.shade.domain.interactor.shadeInteractor
 import com.android.systemui.shade.domain.interactor.shadeModeInteractor
 import com.android.systemui.statusbar.domain.interactor.remoteInputInteractor
@@ -97,7 +98,6 @@
                 powerInteractor = powerInteractor,
                 shadeModeInteractor = shadeModeInteractor,
                 remoteInputInteractor = remoteInputInteractor,
-                splitEdgeDetector = splitEdgeDetector,
                 logger = sceneLogger,
                 hapticsViewModelFactory = sceneContainerHapticsViewModelFactory,
                 view = view,
@@ -105,6 +105,8 @@
                 lightRevealScrim = lightRevealScrimViewModel,
                 wallpaperViewModel = wallpaperViewModel,
                 keyguardInteractor = keyguardInteractor,
+                burnIn = aodBurnInViewModel,
+                clock = keyguardClockViewModel,
             )
     }
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/interactor/SceneInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/interactor/SceneInteractorKosmos.kt
index eb352ba..2efc09f 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/interactor/SceneInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/interactor/SceneInteractorKosmos.kt
@@ -23,6 +23,7 @@
 import com.android.systemui.scene.data.repository.sceneContainerRepository
 import com.android.systemui.scene.domain.resolver.sceneFamilyResolvers
 import com.android.systemui.scene.shared.logger.sceneLogger
+import com.android.systemui.shade.domain.interactor.shadeModeInteractor
 
 val Kosmos.sceneInteractor: SceneInteractor by
     Kosmos.Fixture {
@@ -34,5 +35,6 @@
             deviceUnlockedInteractor = { deviceUnlockedInteractor },
             keyguardEnabledInteractor = { keyguardEnabledInteractor },
             disabledContentInteractor = disabledContentInteractor,
+            shadeModeInteractor = shadeModeInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt
index f5eebb4..60c0f34 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt
@@ -77,6 +77,14 @@
         showOverlay(to, transitionKey)
     }
 
+    override fun instantlyShowOverlay(overlay: OverlayKey) {
+        showOverlay(overlay)
+    }
+
+    override fun instantlyHideOverlay(overlay: OverlayKey) {
+        hideOverlay(overlay)
+    }
+
     /**
      * Pauses scene and overlay changes.
      *
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryKosmos.kt
index d9a348d..ba7557e 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/ShadeDisplaysRepositoryKosmos.kt
@@ -74,6 +74,7 @@
             defaultShadeDisplayPolicy,
             anyExternalShadeDisplayPolicy,
             statusBarTouchShadeDisplayPolicy,
+            focusShadeDisplayPolicy,
             FakeShadeDisplayPolicy,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorKosmos.kt
index 170d067..4631413 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeDisplaysInteractorKosmos.kt
@@ -28,6 +28,7 @@
 import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
 import com.android.systemui.statusbar.notification.row.notificationRebindingTracker
 import com.android.systemui.statusbar.notification.stack.notificationStackRebindingHider
+import com.android.systemui.statusbar.policy.configurationController
 import java.util.Optional
 import org.mockito.kotlin.any
 import org.mockito.kotlin.mock
@@ -59,5 +60,6 @@
             activeNotificationsInteractor,
             notificationRebindingTracker,
             Optional.of(notificationStackRebindingHider),
+            configurationController,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/ConversationNotificationManagerKosmos.kt
similarity index 67%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/ConversationNotificationManagerKosmos.kt
index 29335c5..af53ae56 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/ConversationNotificationManagerKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.statusbar.notification
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.util.mockito.mock
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+val Kosmos.conversationNotificationManager: ConversationNotificationManager by
+    Kosmos.Fixture { mock<ConversationNotificationManager>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/repository/ActiveNotificationListRepositoryExt.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/repository/ActiveNotificationListRepositoryExt.kt
index b40e1e7..6b64193 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/repository/ActiveNotificationListRepositoryExt.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/repository/ActiveNotificationListRepositoryExt.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.notification.data.repository
 
 import com.android.systemui.statusbar.notification.data.model.activeNotificationModel
+import com.android.systemui.statusbar.notification.shared.ActiveNotificationModel
 
 /**
  * Make the repository hold [count] active notifications for testing. The keys of the notifications
@@ -37,3 +38,56 @@
             }
             .build()
 }
+
+/**
+ * Adds the given notification to the repository while *maintaining any notifications already
+ * present*. [notif] will be ranked highest.
+ */
+fun ActiveNotificationListRepository.addNotif(notif: ActiveNotificationModel) {
+    val currentNotifications = this.activeNotifications.value.individuals
+    this.activeNotifications.value =
+        ActiveNotificationsStore.Builder()
+            .apply {
+                addIndividualNotif(notif)
+                currentNotifications.forEach {
+                    if (it.key != notif.key) {
+                        addIndividualNotif(it.value)
+                    }
+                }
+            }
+            .build()
+}
+
+/**
+ * Adds the given notification to the repository while *maintaining any notifications already
+ * present*. [notifs] will be ranked higher than existing notifs.
+ */
+fun ActiveNotificationListRepository.addNotifs(notifs: List<ActiveNotificationModel>) {
+    val currentNotifications = this.activeNotifications.value.individuals
+    val newKeys = notifs.map { it.key }
+    this.activeNotifications.value =
+        ActiveNotificationsStore.Builder()
+            .apply {
+                notifs.forEach { addIndividualNotif(it) }
+                currentNotifications.forEach {
+                    if (!newKeys.contains(it.key)) {
+                        addIndividualNotif(it.value)
+                    }
+                }
+            }
+            .build()
+}
+
+fun ActiveNotificationListRepository.removeNotif(keyToRemove: String) {
+    val currentNotifications = this.activeNotifications.value.individuals
+    this.activeNotifications.value =
+        ActiveNotificationsStore.Builder()
+            .apply {
+                currentNotifications.forEach {
+                    if (it.key != keyToRemove) {
+                        addIndividualNotif(it.value)
+                    }
+                }
+            }
+            .build()
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetectorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractorKosmos.kt
similarity index 61%
rename from packages/SystemUI/tests/utils/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetectorKosmos.kt
rename to packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractorKosmos.kt
index e0b5292..6351b52 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/ui/viewmodel/SplitEdgeDetectorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractorKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,16 +14,14 @@
  * limitations under the License.
  */
 
-package com.android.systemui.scene.ui.viewmodel
+package com.android.systemui.statusbar.notification.promoted.domain.interactor
 
-import androidx.compose.ui.unit.dp
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.shade.domain.interactor.shadeInteractor
+import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
 
-var Kosmos.splitEdgeDetector: SplitEdgeDetector by
+val Kosmos.aodPromotedNotificationInteractor by
     Kosmos.Fixture {
-        SplitEdgeDetector(
-            topEdgeSplitFraction = shadeInteractor::getTopEdgeSplitFraction,
-            edgeSize = 40.dp,
+        AODPromotedNotificationInteractor(
+            activeNotificationsInteractor = activeNotificationsInteractor
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
index e9c6c18..e445a73 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
@@ -219,6 +219,7 @@
             }
         val conversationProcessor =
             ConversationNotificationProcessor(
+                context,
                 Mockito.mock(LauncherApps::class.java, STUB_ONLY),
                 Mockito.mock(ConversationNotificationManager::class.java, STUB_ONLY),
             )
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLoggerKosmos.kt
similarity index 66%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLoggerKosmos.kt
index 29335c5..cc40222 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLoggerKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.statusbar.notification.row
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.util.mockito.mock
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+val Kosmos.notificationRowContentBinderLogger: NotificationRowContentBinderLogger by
+    Kosmos.Fixture { mock<NotificationRowContentBinderLogger>() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt
index 2057b84..c7380c9 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/shelf/domain/interactor/NotificationShelfInteractorKosmos.kt
@@ -21,6 +21,7 @@
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
 import com.android.systemui.power.domain.interactor.powerInteractor
+import com.android.systemui.shade.domain.interactor.shadeModeInteractor
 import com.android.systemui.statusbar.lockscreenShadeTransitionController
 
 val Kosmos.notificationShelfInteractor by Fixture {
@@ -28,6 +29,7 @@
         keyguardRepository = keyguardRepository,
         deviceEntryFaceAuthRepository = deviceEntryFaceAuthRepository,
         powerInteractor = powerInteractor,
+        shadeModeInteractor = shadeModeInteractor,
         keyguardTransitionController = lockscreenShadeTransitionController,
     )
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterKosmos.kt
index 0d6ac44..d787e2c 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterKosmos.kt
@@ -52,7 +52,6 @@
     Kosmos.Fixture {
         StatusBarNotificationActivityStarter(
             applicationContext,
-            applicationContext.displayId,
             fakeExecutorHandler,
             fakeExecutor,
             notificationVisibilityProvider,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModelBuilder.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModelBuilder.kt
deleted file mode 100644
index 923b36d..0000000
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModelBuilder.kt
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.phone.ongoingcall.shared.model
-
-import android.app.PendingIntent
-import com.android.systemui.statusbar.StatusBarIconView
-import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
-
-/** Helper for building [OngoingCallModel.InCall] instances in tests. */
-fun inCallModel(
-    startTimeMs: Long,
-    notificationIcon: StatusBarIconView? = null,
-    intent: PendingIntent? = null,
-    notificationKey: String = "test",
-    appName: String = "",
-    promotedContent: PromotedNotificationContentModel? = null,
-) =
-    OngoingCallModel.InCall(
-        startTimeMs,
-        notificationIcon,
-        intent,
-        notificationKey,
-        appName,
-        promotedContent,
-    )
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt
new file mode 100644
index 0000000..d09d010
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.phone.ongoingcall.shared.model
+
+import android.app.PendingIntent
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.statusbar.StatusBarIconView
+import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
+import com.android.systemui.statusbar.notification.data.model.activeNotificationModel
+import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
+import com.android.systemui.statusbar.notification.data.repository.addNotif
+import com.android.systemui.statusbar.notification.data.repository.removeNotif
+import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
+import com.android.systemui.statusbar.notification.shared.CallType
+import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
+import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
+import org.mockito.kotlin.mock
+
+/** Helper for building [OngoingCallModel.InCall] instances in tests. */
+fun inCallModel(
+    startTimeMs: Long,
+    notificationIcon: StatusBarIconView? = null,
+    intent: PendingIntent? = null,
+    notificationKey: String = "test",
+    appName: String = "",
+    promotedContent: PromotedNotificationContentModel? = null,
+) =
+    OngoingCallModel.InCall(
+        startTimeMs,
+        notificationIcon,
+        intent,
+        notificationKey,
+        appName,
+        promotedContent,
+    )
+
+object OngoingCallTestHelper {
+    /**
+     * Removes any ongoing call state and removes any call notification associated with [key]. Does
+     * it correctly based on whether [StatusBarChipsModernization] is enabled or not.
+     *
+     * @param key the notification key associated with the call notification.
+     */
+    fun Kosmos.removeOngoingCallState(key: String) {
+        if (StatusBarChipsModernization.isEnabled) {
+            activeNotificationListRepository.removeNotif(key)
+        } else {
+            ongoingCallRepository.setOngoingCallState(OngoingCallModel.NoCall)
+        }
+    }
+
+    /**
+     * Sets SysUI to have an ongoing call state. Does it correctly based on whether
+     * [StatusBarChipsModernization] is enabled or not.
+     *
+     * @param key the notification key to be associated with the call notification
+     */
+    fun Kosmos.addOngoingCallState(
+        key: String = "notif",
+        startTimeMs: Long = 1000L,
+        statusBarChipIconView: StatusBarIconView? = createStatusBarIconViewOrNull(),
+        promotedContent: PromotedNotificationContentModel? = null,
+        contentIntent: PendingIntent? = null,
+        uid: Int = DEFAULT_UID,
+    ) {
+        if (StatusBarChipsModernization.isEnabled) {
+            activeNotificationListRepository.addNotif(
+                activeNotificationModel(
+                    key = key,
+                    whenTime = startTimeMs,
+                    callType = CallType.Ongoing,
+                    statusBarChipIcon = statusBarChipIconView,
+                    contentIntent = contentIntent,
+                    promotedContent = promotedContent,
+                    uid = uid,
+                )
+            )
+        } else {
+            ongoingCallRepository.setOngoingCallState(
+                inCallModel(
+                    startTimeMs = startTimeMs,
+                    notificationIcon = statusBarChipIconView,
+                    intent = contentIntent,
+                    notificationKey = key,
+                    promotedContent = promotedContent,
+                )
+            )
+        }
+    }
+
+    private fun createStatusBarIconViewOrNull(): StatusBarIconView? =
+        if (StatusBarConnectedDisplays.isEnabled) {
+            null
+        } else {
+            mock<StatusBarIconView>()
+        }
+
+    private const val DEFAULT_UID = 886
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepositoryKosmos.kt
new file mode 100644
index 0000000..ab651cc
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/data/repository/BatteryRepositoryKosmos.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.data.repository
+
+import android.content.testableContext
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.testDispatcher
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.shared.settings.data.repository.systemSettingsRepository
+import com.android.systemui.statusbar.policy.batteryController
+
+/** Use [Kosmos.batteryController.fake] to make the repo have the state you want */
+val Kosmos.batteryRepository by
+    Kosmos.Fixture {
+        BatteryRepository(
+            testableContext,
+            testScope.backgroundScope,
+            testDispatcher,
+            batteryController,
+            systemSettingsRepository,
+        )
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractorKosmos.kt
similarity index 66%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractorKosmos.kt
index 29335c5..6cab3f6 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/domain/interactor/BatteryInteractorKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.statusbar.pipeline.battery.domain.interactor
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.statusbar.pipeline.battery.data.repository.batteryRepository
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+val Kosmos.batteryInteractor by Kosmos.Fixture { BatteryInteractor(batteryRepository) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModelKosmos.kt
new file mode 100644
index 0000000..7dd0103
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/battery/ui/viewmodel/BatteryViewModelKosmos.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.pipeline.battery.ui.viewmodel
+
+import android.content.testableContext
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.statusbar.pipeline.battery.domain.interactor.batteryInteractor
+
+val Kosmos.batteryViewModel by
+    Kosmos.Fixture { BatteryViewModel(batteryInteractor, testableContext) }
+
+val Kosmos.batteryViewModelFactory by
+    Kosmos.Fixture {
+        object : BatteryViewModel.Factory {
+            override fun create(): BatteryViewModel = batteryViewModel
+        }
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelKosmos.kt
index bc29dba..fbada93 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelKosmos.kt
@@ -35,6 +35,7 @@
 import com.android.systemui.statusbar.notification.stack.domain.interactor.headsUpNotificationInteractor
 import com.android.systemui.statusbar.phone.domain.interactor.darkIconInteractor
 import com.android.systemui.statusbar.phone.domain.interactor.lightsOutInteractor
+import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.batteryViewModelFactory
 import com.android.systemui.statusbar.pipeline.shared.domain.interactor.homeStatusBarIconBlockListInteractor
 import com.android.systemui.statusbar.pipeline.shared.domain.interactor.homeStatusBarInteractor
 
@@ -42,6 +43,7 @@
     Kosmos.Fixture {
         HomeStatusBarViewModelImpl(
             testableContext.displayId,
+            batteryViewModelFactory,
             tableLogBufferFactory,
             homeStatusBarInteractor,
             homeStatusBarIconBlockListInteractor,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/BatteryControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/BatteryControllerKosmos.kt
index b31a45c..c4bebbb 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/BatteryControllerKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/BatteryControllerKosmos.kt
@@ -18,6 +18,8 @@
 
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
-import com.android.systemui.util.mockito.mock
 
-val Kosmos.batteryController: BatteryController by Fixture { mock<BatteryController>() }
+val Kosmos.batteryController: BatteryController by Fixture { FakeBatteryControllerImpl() }
+
+val BatteryController.fake
+    get() = this as FakeBatteryControllerImpl
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeBatteryControllerImpl.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeBatteryControllerImpl.kt
new file mode 100644
index 0000000..fa96314
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeBatteryControllerImpl.kt
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.policy
+
+import android.os.Bundle
+import com.android.systemui.animation.Expandable
+import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback
+import com.android.systemui.statusbar.policy.BatteryController.EstimateFetchCompletion
+import java.io.PrintWriter
+import java.lang.ref.WeakReference
+
+class FakeBatteryControllerImpl : BatteryController {
+    var listeners = mutableSetOf<BatteryStateChangeCallback>()
+        private set
+
+    var _level = 50
+        set(value) {
+            if (field != value) {
+                field = value
+                listeners.forEach { it.onBatteryLevelChanged(field, _isPluggedIn, _isPluggedIn) }
+            }
+        }
+
+    var _isPowerSave = false
+        set(value) {
+            if (field != value) {
+                field = value
+                listeners.forEach { it.onPowerSaveChanged(field) }
+            }
+        }
+
+    var _isPluggedIn = false
+        set(value) {
+            if (field != value) {
+                field = value
+                listeners.forEach { it.onBatteryLevelChanged(_level, field, field) }
+            }
+        }
+
+    var _isStateUnknown = false
+        set(value) {
+            if (field != value) {
+                field = value
+                listeners.forEach { it.onBatteryUnknownStateChanged(field) }
+            }
+        }
+
+    var _isDefender = false
+        set(value) {
+            if (field != value) {
+                field = value
+                listeners.forEach { it.onIsBatteryDefenderChanged(field) }
+            }
+        }
+
+    var _isWirelessCharging = false
+        set(value) {
+            if (field != value) {
+                field = value
+                listeners.forEach { it.onWirelessChargingChanged(field) }
+            }
+        }
+
+    var _isAodPowerSave = false
+
+    var _isReverseSupported = false
+    var _isReverseOn = false
+    var _isExtremeBatterySaverOn = false
+    var _isChargingSourceDock = false
+
+    var _estimatedTimeRemainingString: String? = null
+
+    override fun dump(pw: PrintWriter?, args: Array<out String>?) {
+        // nop
+    }
+
+    override fun dispatchDemoCommand(command: String?, args: Bundle?) {
+        // nop
+    }
+
+    override fun addCallback(listener: BatteryStateChangeCallback) {
+        listeners += listener
+
+        listener.onBatteryLevelChanged(_level, _isPluggedIn, _isPluggedIn)
+        listener.onPowerSaveChanged(_isPowerSave)
+        listener.onBatteryUnknownStateChanged(_isStateUnknown)
+        listener.onWirelessChargingChanged(_isWirelessCharging)
+        listener.onIsBatteryDefenderChanged(_isDefender)
+    }
+
+    override fun removeCallback(listener: BatteryStateChangeCallback) {
+        listeners -= listener
+    }
+
+    override fun setPowerSaveMode(powerSave: Boolean) {
+        setPowerSaveMode(powerSave, null)
+    }
+
+    override fun setPowerSaveMode(powerSave: Boolean, expandable: Expandable?) {
+        _isPowerSave = powerSave
+    }
+
+    override fun getLastPowerSaverStartExpandable(): WeakReference<Expandable>? {
+        return null
+    }
+
+    override fun clearLastPowerSaverStartExpandable() {
+        // nop
+    }
+
+    override fun isPluggedIn() = _isPluggedIn
+
+    override fun isPluggedInWireless(): Boolean {
+        return false
+    }
+
+    override fun isPowerSave() = _isPowerSave
+
+    override fun isAodPowerSave() = _isAodPowerSave
+
+    override fun init() {
+        // nop
+    }
+
+    override fun isWirelessCharging(): Boolean {
+        return false
+    }
+
+    override fun isReverseSupported() = _isReverseSupported
+
+    override fun isReverseOn() = _isReverseOn
+
+    override fun setReverseState(isReverse: Boolean) {
+        _isReverseOn = isReverse
+    }
+
+    override fun isExtremeSaverOn() = _isExtremeBatterySaverOn
+
+    override fun isChargingSourceDock() = _isChargingSourceDock
+
+    // Just pretend that it's cached and returns instantly
+    override fun getEstimatedTimeRemainingString(completion: EstimateFetchCompletion?) {
+        completion?.onBatteryRemainingEstimateRetrieved(_estimatedTimeRemainingString)
+    }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/UserSwitcherControllerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/UserSwitcherControllerKosmos.kt
new file mode 100644
index 0000000..51168d6
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/UserSwitcherControllerKosmos.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.policy
+
+import android.content.applicationContext
+import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.plugins.activityStarter
+import com.android.systemui.user.domain.interactor.guestUserInteractor
+import com.android.systemui.user.domain.interactor.userSwitcherInteractor
+
+val Kosmos.userSwitcherController by Fixture {
+    UserSwitcherController(
+        applicationContext = applicationContext,
+        userSwitcherInteractorLazy = { userSwitcherInteractor },
+        guestUserInteractorLazy = { guestUserInteractor },
+        keyguardInteractorLazy = { keyguardInteractor },
+        activityStarter = activityStarter,
+    )
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateKosmos.kt
index ef043e0..2c0bd32 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/ModesDialogDelegateKosmos.kt
@@ -19,6 +19,8 @@
 import android.content.mockedContext
 import com.android.systemui.animation.dialogTransitionAnimator
 import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.applicationCoroutineScope
+import com.android.systemui.kosmos.backgroundCoroutineContext
 import com.android.systemui.kosmos.mainCoroutineContext
 import com.android.systemui.plugins.activityStarter
 import com.android.systemui.shade.data.repository.shadeDialogContextInteractor
@@ -37,7 +39,9 @@
             activityStarter,
             { modesDialogViewModel },
             modesDialogEventLogger,
+            applicationCoroutineScope,
             mainCoroutineContext,
+            backgroundCoroutineContext,
             shadeDialogContextInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/viewmodel/ModesDialogViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/viewmodel/ModesDialogViewModelKosmos.kt
index 3571a73..47108130 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/viewmodel/ModesDialogViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/ui/dialog/viewmodel/ModesDialogViewModelKosmos.kt
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.policy.ui.dialog.viewmodel
 
-import android.content.mockedContext
+import android.content.applicationContext
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.statusbar.policy.domain.interactor.zenModeInteractor
@@ -27,7 +27,7 @@
 val Kosmos.modesDialogViewModel: ModesDialogViewModel by
     Kosmos.Fixture {
         ModesDialogViewModel(
-            mockedContext,
+            applicationContext,
             zenModeInteractor,
             testDispatcher,
             Provider { modesDialogDelegate }.get(),
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/user/data/repository/FakeUserRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/user/data/repository/FakeUserRepository.kt
index 85d582a..145bb93 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/user/data/repository/FakeUserRepository.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/user/data/repository/FakeUserRepository.kt
@@ -32,6 +32,7 @@
 import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.update
 import kotlinx.coroutines.yield
 
 @SysUISingleton
@@ -76,6 +77,11 @@
     override val isLogoutToSystemUserEnabled: StateFlow<Boolean> =
         _isLogoutToSystemUserEnabled.asStateFlow()
 
+    private val _userUnlockedState = MutableStateFlow(emptyMap<UserHandle, Boolean>())
+
+    override fun isUserUnlocked(userHandle: UserHandle?): Flow<Boolean> =
+        _userUnlockedState.map { it[userHandle] ?: false }
+
     override var mainUserId: Int = MAIN_USER_ID
     override var lastSelectedNonGuestUserId: Int = mainUserId
 
@@ -176,6 +182,14 @@
     fun setGuestUserAutoCreated(value: Boolean) {
         _isGuestUserAutoCreated = value
     }
+
+    fun setUserUnlocked(userId: Int, unlocked: Boolean) {
+        setUserUnlocked(UserHandle(userId), unlocked)
+    }
+
+    fun setUserUnlocked(userHandle: UserHandle, unlocked: Boolean) {
+        _userUnlockedState.update { it + (userHandle to unlocked) }
+    }
 }
 
 @Module
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt
similarity index 67%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt
index 29335c5..fd95508 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.user.domain.interactor
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.user.data.repository.userRepository
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+val Kosmos.userLockedInteractor by
+    Kosmos.Fixture { UserLockedInteractor(userRepository = userRepository) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorKosmos.kt
index 0d2aa4c..888b7e6 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorKosmos.kt
@@ -19,6 +19,7 @@
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
 import com.android.systemui.plugins.volumeDialogController
+import com.android.systemui.shared.settings.data.repository.secureSettingsRepository
 import com.android.systemui.volume.dialog.data.repository.volumeDialogVisibilityRepository
 import com.android.systemui.volume.dialog.utils.volumeTracer
 
@@ -30,5 +31,6 @@
             volumeTracer,
             volumeDialogVisibilityRepository,
             volumeDialogController,
+            secureSettingsRepository,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperFocalAreaRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperFocalAreaRepository.kt
new file mode 100644
index 0000000..aeff86e
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperFocalAreaRepository.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.wallpapers.data.repository
+
+import android.graphics.PointF
+import android.graphics.RectF
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+
+class FakeWallpaperFocalAreaRepository : WallpaperFocalAreaRepository {
+    private val _shortcutAbsoluteTop = MutableStateFlow(0F)
+    override val shortcutAbsoluteTop = _shortcutAbsoluteTop.asStateFlow()
+
+    private val _notificationStackAbsoluteBottom = MutableStateFlow(0F)
+    override val notificationStackAbsoluteBottom = _notificationStackAbsoluteBottom.asStateFlow()
+
+    private val _wallpaperFocalAreaBounds = MutableStateFlow(RectF(0F, 0F, 0F, 0F))
+    override val wallpaperFocalAreaBounds: StateFlow<RectF> =
+        _wallpaperFocalAreaBounds.asStateFlow()
+
+    private val _wallpaperFocalAreaTapPosition = MutableStateFlow(PointF(0F, 0F))
+    override val wallpaperFocalAreaTapPosition: StateFlow<PointF> =
+        _wallpaperFocalAreaTapPosition.asStateFlow()
+
+    private val _notificationDefaultTop = MutableStateFlow(0F)
+    override val notificationDefaultTop: StateFlow<Float> = _notificationDefaultTop.asStateFlow()
+
+    override fun setShortcutAbsoluteTop(top: Float) {
+        _shortcutAbsoluteTop.value = top
+    }
+
+    override fun setNotificationStackAbsoluteBottom(bottom: Float) {
+        _notificationStackAbsoluteBottom.value = bottom
+    }
+
+    override fun setNotificationDefaultTop(top: Float) {
+        _notificationDefaultTop.value = top
+    }
+
+    override fun setWallpaperFocalAreaBounds(bounds: RectF) {
+        _wallpaperFocalAreaBounds.value = bounds
+    }
+
+    override fun setTapPosition(point: PointF) {
+        _wallpaperFocalAreaTapPosition.value = point
+    }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperRepository.kt
new file mode 100644
index 0000000..8689e04
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/FakeWallpaperRepository.kt
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.wallpapers.data.repository
+
+import android.app.WallpaperInfo
+import android.view.View
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+
+/** Fake implementation of the wallpaper repository. */
+class FakeWallpaperRepository : WallpaperRepository {
+    private val _wallpaperInfo: MutableStateFlow<WallpaperInfo?> = MutableStateFlow(null)
+    override val wallpaperInfo: StateFlow<WallpaperInfo?> = _wallpaperInfo.asStateFlow()
+    private val _wallpaperSupportsAmbientMode = MutableStateFlow(false)
+    override val wallpaperSupportsAmbientMode: Flow<Boolean> =
+        _wallpaperSupportsAmbientMode.asStateFlow()
+    override var rootView: View? = null
+    private val _shouldSendFocalArea = MutableStateFlow(false)
+    override val shouldSendFocalArea: StateFlow<Boolean> = _shouldSendFocalArea.asStateFlow()
+
+    fun setShouldSendFocalArea(shouldSendFocalArea: Boolean) {
+        _shouldSendFocalArea.value = shouldSendFocalArea
+    }
+
+    fun setWallpaperInfo(wallpaperInfo: WallpaperInfo?) {
+        _wallpaperInfo.value = wallpaperInfo
+    }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperFocalAreaRepositoryKosmos.kt
similarity index 63%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperFocalAreaRepositoryKosmos.kt
index 29335c5..c1032b1 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperFocalAreaRepositoryKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.wallpapers.data.repository
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.Kosmos.Fixture
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+val Kosmos.wallpaperFocalAreaRepository by Fixture { fakeWallpaperFocalAreaRepository }
+val Kosmos.fakeWallpaperFocalAreaRepository by Fixture { FakeWallpaperFocalAreaRepository() }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryKosmos.kt
index f0c0d30..7ebec6c 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/data/repository/WallpaperRepositoryKosmos.kt
@@ -19,12 +19,13 @@
 import android.content.applicationContext
 import com.android.app.wallpaperManager
 import com.android.systemui.broadcast.broadcastDispatcher
-import com.android.systemui.keyguard.data.repository.keyguardRepository
+import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.user.data.repository.userRepository
+import com.android.systemui.util.settings.fakeSettings
 
 val Kosmos.wallpaperRepository by Fixture {
     WallpaperRepositoryImpl(
@@ -33,7 +34,9 @@
         bgDispatcher = testDispatcher,
         broadcastDispatcher = broadcastDispatcher,
         userRepository = userRepository,
-        keyguardRepository = keyguardRepository,
+        keyguardTransitionInteractor = keyguardTransitionInteractor,
+        wallpaperFocalAreaRepository = wallpaperFocalAreaRepository,
         wallpaperManager = wallpaperManager,
+        secureSettings = fakeSettings,
     )
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WallpaperFocalAreaInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractor.kt
similarity index 80%
rename from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WallpaperFocalAreaInteractorKosmos.kt
rename to packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractor.kt
index 8fd6f62..88eb551 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WallpaperFocalAreaInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/domain/interactor/WallpaperFocalAreaInteractor.kt
@@ -14,15 +14,14 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.wallpapers.domain.interactor
 
 import android.content.applicationContext
-import com.android.systemui.keyguard.data.repository.keyguardClockRepository
-import com.android.systemui.keyguard.data.repository.keyguardRepository
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
 import com.android.systemui.shade.data.repository.shadeRepository
 import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor
+import com.android.systemui.wallpapers.data.repository.wallpaperFocalAreaRepository
 import com.android.systemui.wallpapers.data.repository.wallpaperRepository
 
 val Kosmos.wallpaperFocalAreaInteractor by
@@ -30,10 +29,9 @@
         WallpaperFocalAreaInteractor(
             applicationScope = applicationCoroutineScope,
             context = applicationContext,
-            keyguardRepository = keyguardRepository,
+            wallpaperFocalAreaRepository = wallpaperFocalAreaRepository,
             shadeRepository = shadeRepository,
             activeNotificationsInteractor = activeNotificationsInteractor,
-            keyguardClockRepository = keyguardClockRepository,
             wallpaperRepository = wallpaperRepository,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/ui/viewmodel/WallpaperFocalAreaViewModel.kt
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/ui/viewmodel/WallpaperFocalAreaViewModel.kt
index 29335c5..7e232c5 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/wallpapers/ui/viewmodel/WallpaperFocalAreaViewModel.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.systemui.wallpapers.ui.viewmodel
 
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.wallpapers.domain.interactor.wallpaperFocalAreaInteractor
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+var Kosmos.wallpaperFocalAreaViewModel by
+    Kosmos.Fixture {
+        WallpaperFocalAreaViewModel(wallpaperFocalAreaInteractor = wallpaperFocalAreaInteractor)
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepositoryKosmos.kt
index 7281e03..9699223 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/window/data/repository/WindowRootViewBlurRepositoryKosmos.kt
@@ -17,5 +17,16 @@
 package com.android.systemui.window.data.repository
 
 import com.android.systemui.kosmos.Kosmos
+import kotlinx.coroutines.flow.MutableStateFlow
 
-val Kosmos.windowRootViewBlurRepository by Kosmos.Fixture { WindowRootViewBlurRepository() }
+val Kosmos.fakeWindowRootViewBlurRepository: FakeWindowRootViewBlurRepository by
+    Kosmos.Fixture { FakeWindowRootViewBlurRepository() }
+
+val Kosmos.windowRootViewBlurRepository: WindowRootViewBlurRepository by
+    Kosmos.Fixture { fakeWindowRootViewBlurRepository }
+
+class FakeWindowRootViewBlurRepository : WindowRootViewBlurRepository {
+    override val blurRadius: MutableStateFlow<Int> = MutableStateFlow(0)
+    override val isBlurOpaque: MutableStateFlow<Boolean> = MutableStateFlow(false)
+    override val isBlurSupported: MutableStateFlow<Boolean> = MutableStateFlow(false)
+}
diff --git a/services/accessibility/OWNERS b/services/accessibility/OWNERS
index 4e11750..ab1e9ff 100644
--- a/services/accessibility/OWNERS
+++ b/services/accessibility/OWNERS
@@ -1,4 +1,7 @@
-# Bug component: 44215
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 44215.
 
 # Android Accessibility Framework owners
 danielnorman@google.com
diff --git a/services/accessibility/accessibility.aconfig b/services/accessibility/accessibility.aconfig
index 7222554..529a564 100644
--- a/services/accessibility/accessibility.aconfig
+++ b/services/accessibility/accessibility.aconfig
@@ -100,6 +100,13 @@
 }
 
 flag {
+    name: "enable_low_vision_generic_feedback"
+    namespace: "accessibility"
+    description: "Use generic feedback for low vision."
+    bug: "393981463"
+}
+
+flag {
     name: "enable_low_vision_hats"
     namespace: "accessibility"
     description: "Use HaTS for low vision feedback."
@@ -209,6 +216,16 @@
 }
 
 flag {
+    name: "motion_event_injector_cancel_fix"
+    namespace: "accessibility"
+    description: "Fix the ACTION_CANCEL logic used in MotionEventInjector to avoid InputDispatcher inconsistency"
+    bug: "384451671"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
+
+flag {
     name: "package_monitor_dedicated_thread"
     namespace: "accessibility"
     description: "Runs the A11yManagerService PackageMonitor on a dedicated thread"
diff --git a/services/accessibility/java/com/android/server/accessibility/MotionEventInjector.java b/services/accessibility/java/com/android/server/accessibility/MotionEventInjector.java
index b216953..a7203b0 100644
--- a/services/accessibility/java/com/android/server/accessibility/MotionEventInjector.java
+++ b/services/accessibility/java/com/android/server/accessibility/MotionEventInjector.java
@@ -28,7 +28,6 @@
 import android.os.SystemClock;
 import android.util.IntArray;
 import android.util.Slog;
-import android.util.SparseArray;
 import android.util.SparseIntArray;
 import android.view.InputDevice;
 import android.view.KeyCharacterMap;
@@ -67,7 +66,7 @@
     private static MotionEvent.PointerProperties[] sPointerProps;
 
     private final Handler mHandler;
-    private final SparseArray<Boolean> mOpenGesturesInProgress = new SparseArray<>();
+    private boolean mOpenTouchGestureInProgress = false;
 
     private final AccessibilityTraceManager mTrace;
     private IAccessibilityServiceClient mServiceInterfaceForCurrentGesture;
@@ -116,6 +115,8 @@
         mHandler.sendMessage(mHandler.obtainMessage(MESSAGE_INJECT_EVENTS, args));
     }
 
+    // Note: MotionEventInjector is the first transformation in the AccessibilityInputFilter stream
+    // so any event that arrives here is a real event from a real user interaction.
     @Override
     public void onMotionEvent(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
         if (mTrace.isA11yTracingEnabledForTypes(
@@ -124,22 +125,30 @@
                     AccessibilityTrace.FLAGS_INPUT_FILTER | AccessibilityTrace.FLAGS_GESTURE,
                     "event=" + event + ";rawEvent=" + rawEvent + ";policyFlags=" + policyFlags);
         }
-        // MotionEventInjector would cancel any injected gesture when any MotionEvent arrives.
-        // For user using an external device to control the pointer movement, it's almost
-        // impossible to perform the gestures. Any slightly unintended movement results in the
-        // cancellation of the gesture.
+        // InputDispatcher cancels an injected touch gesture if another MotionEvent arrives on this
+        // display from another device or source, like a real touch or a real mouse pointer.
+        // For user using an external device to control the pointer movement, it becomes difficult
+        // to perform injected gestures because slight unintended movement results in cancellation
+        // of the injected gesture; to fix this we swallow real mouse MotionEvents while an injected
+        // touch gesture is in progress, preventing the mouse events from reaching InputDispatcher.
         if ((event.isFromSource(InputDevice.SOURCE_MOUSE)
                 && event.getActionMasked() == MotionEvent.ACTION_HOVER_MOVE)
-                && mOpenGesturesInProgress.get(EVENT_SOURCE, false)) {
+                && mOpenTouchGestureInProgress) {
             return;
         }
-        cancelAnyPendingInjectedEvents();
-        if (!android.view.accessibility.Flags.preventA11yNontoolFromInjectingIntoSensitiveViews()) {
-            // Indicate that the input event is injected from accessibility, to let applications
-            // distinguish it from events injected by other means.
-            policyFlags |= WindowManagerPolicyConstants.FLAG_INJECTED_FROM_ACCESSIBILITY;
+        if (Flags.motionEventInjectorCancelFix()) {
+            // Pass this real event down the stream unmodified.
+            super.onMotionEvent(event, rawEvent, policyFlags);
+        } else {
+            cancelAnyPendingInjectedEvents();
+            if (!android.view.accessibility.Flags
+                    .preventA11yNontoolFromInjectingIntoSensitiveViews()) {
+                // Indicate that the input event is injected from accessibility, to let applications
+                // distinguish it from events injected by other means.
+                policyFlags |= WindowManagerPolicyConstants.FLAG_INJECTED_FROM_ACCESSIBILITY;
+            }
+            sendMotionEventToNext(event, rawEvent, policyFlags);
         }
-        sendMotionEventToNext(event, rawEvent, policyFlags);
     }
 
     @Override
@@ -148,8 +157,8 @@
          * Reset state for motion events passing through so we won't send a cancel event for
          * them.
          */
-        if (!mHandler.hasMessages(MESSAGE_SEND_MOTION_EVENT)) {
-            mOpenGesturesInProgress.put(inputSource, false);
+        if (!mHandler.hasMessages(MESSAGE_SEND_MOTION_EVENT) && inputSource == EVENT_SOURCE) {
+            mOpenTouchGestureInProgress = false;
         }
     }
 
@@ -224,8 +233,10 @@
         }
         if (!continuingGesture) {
             cancelAnyPendingInjectedEvents();
-            // Injected gestures have been canceled, but real gestures still need cancelling
-            cancelAnyGestureInProgress(EVENT_SOURCE);
+            if (!Flags.motionEventInjectorCancelFix()) {
+                // Injected gestures have been canceled, but real gestures still need cancelling
+                cancelInjectedGestureInProgress();
+            }
         }
         mServiceInterfaceForCurrentGesture = serviceInterface;
 
@@ -323,18 +334,20 @@
             int policyFlags) {
         if (getNext() != null) {
             super.onMotionEvent(event, rawEvent, policyFlags);
-            if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
-                mOpenGesturesInProgress.put(event.getSource(), true);
-            }
-            if ((event.getActionMasked() == MotionEvent.ACTION_UP)
-                    || (event.getActionMasked() == MotionEvent.ACTION_CANCEL)) {
-                mOpenGesturesInProgress.put(event.getSource(), false);
+            if (event.getSource() == EVENT_SOURCE) {
+                if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
+                    mOpenTouchGestureInProgress = true;
+                }
+                if ((event.getActionMasked() == MotionEvent.ACTION_UP)
+                        || (event.getActionMasked() == MotionEvent.ACTION_CANCEL)) {
+                    mOpenTouchGestureInProgress = false;
+                }
             }
         }
     }
 
-    private void cancelAnyGestureInProgress(int source) {
-        if ((getNext() != null) && mOpenGesturesInProgress.get(source, false)) {
+    private void cancelInjectedGestureInProgress() {
+        if ((getNext() != null) && mOpenTouchGestureInProgress) {
             long now = SystemClock.uptimeMillis();
             MotionEvent cancelEvent =
                     obtainMotionEvent(now, now, MotionEvent.ACTION_CANCEL, getLastTouchPoints(), 1);
@@ -348,14 +361,14 @@
                 policyFlags |= WindowManagerPolicyConstants.FLAG_INJECTED_FROM_ACCESSIBILITY_TOOL;
             }
             sendMotionEventToNext(cancelEvent, cancelEvent, policyFlags);
-            mOpenGesturesInProgress.put(source, false);
+            mOpenTouchGestureInProgress = false;
         }
     }
 
     private void cancelAnyPendingInjectedEvents() {
         if (mHandler.hasMessages(MESSAGE_SEND_MOTION_EVENT)) {
             mHandler.removeMessages(MESSAGE_SEND_MOTION_EVENT);
-            cancelAnyGestureInProgress(EVENT_SOURCE);
+            cancelInjectedGestureInProgress();
             for (int i = mSequencesInProgress.size() - 1; i >= 0; i--) {
                 notifyService(mServiceInterfaceForCurrentGesture,
                         mSequencesInProgress.get(i), false);
@@ -363,7 +376,7 @@
             }
         } else if (mNumLastTouchPoints != 0) {
             // An injected gesture is in progress and waiting for a continuation. Cancel it.
-            cancelAnyGestureInProgress(EVENT_SOURCE);
+            cancelInjectedGestureInProgress();
         }
         mNumLastTouchPoints = 0;
         mStrokeIdToPointerId.clear();
diff --git a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java
index 8e44867..5283df5 100644
--- a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java
+++ b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java
@@ -17,11 +17,16 @@
 package com.android.server.accessibility.autoclick;
 
 import static android.view.MotionEvent.BUTTON_PRIMARY;
+import static android.view.MotionEvent.BUTTON_SECONDARY;
 import static android.view.accessibility.AccessibilityManager.AUTOCLICK_CURSOR_AREA_SIZE_DEFAULT;
 import static android.view.accessibility.AccessibilityManager.AUTOCLICK_DELAY_DEFAULT;
 import static android.view.accessibility.AccessibilityManager.AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT_DEFAULT;
 
 import static com.android.server.accessibility.autoclick.AutoclickIndicatorView.SHOW_INDICATOR_DELAY_TIME;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AUTOCLICK_TYPE_LEFT_CLICK;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AUTOCLICK_TYPE_RIGHT_CLICK;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AutoclickType;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.ClickPanelControllerInterface;
 
 import android.accessibilityservice.AccessibilityTrace;
 import android.annotation.NonNull;
@@ -84,6 +89,23 @@
     @VisibleForTesting AutoclickTypePanel mAutoclickTypePanel;
     private WindowManager mWindowManager;
 
+    // Default click type is left-click.
+    private @AutoclickType int mActiveClickType = AUTOCLICK_TYPE_LEFT_CLICK;
+
+    @VisibleForTesting
+    final ClickPanelControllerInterface clickPanelController =
+            new ClickPanelControllerInterface() {
+                @Override
+                public void handleAutoclickTypeChange(@AutoclickType int clickType) {
+                    mActiveClickType = clickType;
+                }
+
+                @Override
+                public void toggleAutoclickPause() {
+                    // TODO(b/388872274): allows users to pause the autoclick.
+                }
+            };
+
     public AutoclickController(Context context, int userId, AccessibilityTraceManager trace) {
         mTrace = trace;
         mContext = context;
@@ -124,7 +146,8 @@
         mAutoclickIndicatorView = new AutoclickIndicatorView(mContext);
 
         mWindowManager = mContext.getSystemService(WindowManager.class);
-        mAutoclickTypePanel = new AutoclickTypePanel(mContext, mWindowManager);
+        mAutoclickTypePanel =
+                new AutoclickTypePanel(mContext, mWindowManager, clickPanelController);
 
         mAutoclickTypePanel.show();
         mWindowManager.addView(mAutoclickIndicatorView, mAutoclickIndicatorView.getLayoutParams());
@@ -510,6 +533,11 @@
             return mMetaState;
         }
 
+        @VisibleForTesting
+        boolean getIsActiveForTesting() {
+            return mActive;
+        }
+
         /**
          * Updates delay that should be used when scheduling clicks. The delay will be used only for
          * clicks scheduled after this point (pending click tasks are not affected).
@@ -639,6 +667,15 @@
 
             final long now = SystemClock.uptimeMillis();
 
+            // TODO(b/395094903): always triggers left-click when the cursor hovers over the
+            // autoclick type panel, to always allow users to change a different click type.
+            // Otherwise, if one chooses the right-click, this user won't be able to rely on
+            // autoclick to select other click types.
+            final int actionButton =
+                    mActiveClickType == AUTOCLICK_TYPE_RIGHT_CLICK
+                            ? BUTTON_SECONDARY
+                            : BUTTON_PRIMARY;
+
             MotionEvent downEvent =
                     MotionEvent.obtain(
                             /* downTime= */ now,
@@ -648,7 +685,7 @@
                             mTempPointerProperties,
                             mTempPointerCoords,
                             mMetaState,
-                            BUTTON_PRIMARY,
+                            actionButton,
                             /* xPrecision= */ 1.0f,
                             /* yPrecision= */ 1.0f,
                             mLastMotionEvent.getDeviceId(),
@@ -658,11 +695,11 @@
 
             MotionEvent pressEvent = MotionEvent.obtain(downEvent);
             pressEvent.setAction(MotionEvent.ACTION_BUTTON_PRESS);
-            pressEvent.setActionButton(BUTTON_PRIMARY);
+            pressEvent.setActionButton(actionButton);
 
             MotionEvent releaseEvent = MotionEvent.obtain(downEvent);
             releaseEvent.setAction(MotionEvent.ACTION_BUTTON_RELEASE);
-            releaseEvent.setActionButton(BUTTON_PRIMARY);
+            releaseEvent.setActionButton(actionButton);
             releaseEvent.setButtonState(0);
 
             MotionEvent upEvent = MotionEvent.obtain(downEvent);
diff --git a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java
index 557e1b2..01f359f 100644
--- a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java
+++ b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java
@@ -34,6 +34,8 @@
 
 import androidx.annotation.VisibleForTesting;
 
+import com.android.internal.R;
+
 // A visual indicator for the autoclick feature.
 public class AutoclickIndicatorView extends View {
     private static final String TAG = AutoclickIndicatorView.class.getSimpleName();
@@ -67,8 +69,7 @@
         super(context);
 
         mPaint = new Paint();
-        // TODO(b/383901288): update styling once determined by UX.
-        mPaint.setARGB(255, 52, 103, 235);
+        mPaint.setColor(context.getColor(R.color.materialColorPrimary));
         mPaint.setStyle(Paint.Style.STROKE);
         mPaint.setStrokeWidth(10);
 
diff --git a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java
index 0354d2b..cf928e2 100644
--- a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java
+++ b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java
@@ -18,13 +18,17 @@
 
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
 
+import android.annotation.IntDef;
 import android.content.Context;
 import android.graphics.PixelFormat;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.WindowInsets;
 import android.view.WindowManager;
+import android.widget.ImageButton;
 import android.widget.LinearLayout;
 
 import androidx.annotation.NonNull;
@@ -36,12 +40,40 @@
 
     private final String TAG = AutoclickTypePanel.class.getSimpleName();
 
+    public static final int AUTOCLICK_TYPE_LEFT_CLICK = 0;
+    public static final int AUTOCLICK_TYPE_RIGHT_CLICK = 1;
+    public static final int AUTOCLICK_TYPE_DOUBLE_CLICK = 2;
+    public static final int AUTOCLICK_TYPE_DRAG = 3;
+    public static final int AUTOCLICK_TYPE_SCROLL = 4;
+
+    // Types of click the AutoclickTypePanel supports.
+    @IntDef({
+        AUTOCLICK_TYPE_LEFT_CLICK,
+        AUTOCLICK_TYPE_RIGHT_CLICK,
+        AUTOCLICK_TYPE_DOUBLE_CLICK,
+        AUTOCLICK_TYPE_DRAG,
+        AUTOCLICK_TYPE_SCROLL,
+    })
+    public @interface AutoclickType {}
+
+    // An interface exposed to {@link AutoclickController) to handle different actions on the panel,
+    // including changing autoclick type, pausing/resuming autoclick.
+    public interface ClickPanelControllerInterface {
+        // Allows users to change a different autoclick type.
+        void handleAutoclickTypeChange(@AutoclickType int clickType);
+
+        // Allows users to pause/resume the autoclick.
+        void toggleAutoclickPause();
+    }
+
     private final Context mContext;
 
     private final View mContentView;
 
     private final WindowManager mWindowManager;
 
+    private final ClickPanelControllerInterface mClickPanelController;
+
     // Whether the panel is expanded or not.
     private boolean mExpanded = false;
 
@@ -51,9 +83,15 @@
     private final LinearLayout mDragButton;
     private final LinearLayout mScrollButton;
 
-    public AutoclickTypePanel(Context context, WindowManager windowManager) {
+    private LinearLayout mSelectedButton;
+
+    public AutoclickTypePanel(
+            Context context,
+            WindowManager windowManager,
+            ClickPanelControllerInterface clickPanelController) {
         mContext = context;
         mWindowManager = windowManager;
+        mClickPanelController = clickPanelController;
 
         mContentView =
                 LayoutInflater.from(context)
@@ -71,15 +109,58 @@
     }
 
     private void initializeButtonState() {
-        mLeftClickButton.setOnClickListener(v -> togglePanelExpansion(mLeftClickButton));
-        mRightClickButton.setOnClickListener(v -> togglePanelExpansion(mRightClickButton));
-        mDoubleClickButton.setOnClickListener(v -> togglePanelExpansion(mDoubleClickButton));
-        mScrollButton.setOnClickListener(v -> togglePanelExpansion(mScrollButton));
-        mDragButton.setOnClickListener(v -> togglePanelExpansion(mDragButton));
+        mLeftClickButton.setOnClickListener(v -> togglePanelExpansion(AUTOCLICK_TYPE_LEFT_CLICK));
+        mRightClickButton.setOnClickListener(v -> togglePanelExpansion(AUTOCLICK_TYPE_RIGHT_CLICK));
+        mDoubleClickButton.setOnClickListener(
+                v -> togglePanelExpansion(AUTOCLICK_TYPE_DOUBLE_CLICK));
+        mScrollButton.setOnClickListener(v -> togglePanelExpansion(AUTOCLICK_TYPE_SCROLL));
+        mDragButton.setOnClickListener(v -> togglePanelExpansion(AUTOCLICK_TYPE_DRAG));
+
+        // TODO(b/388872274): registers listener for pause button and allows users to pause/resume
+        // the autoclick.
+        // TODO(b/388847771): registers listener for position button and allows users to move the
+        // panel to a different position.
 
         // Initializes panel as collapsed state and only displays the left click button.
         hideAllClickTypeButtons();
         mLeftClickButton.setVisibility(View.VISIBLE);
+        setSelectedClickType(AUTOCLICK_TYPE_LEFT_CLICK);
+    }
+
+    /** Sets the selected button and updates the newly and previously selected button styling. */
+    private void setSelectedClickType(@AutoclickType int clickType) {
+        final LinearLayout selectedButton = getButtonFromClickType(clickType);
+
+        // Updates the previously selected button styling.
+        if (mSelectedButton != null) {
+            toggleSelectedButtonStyle(mSelectedButton, /* isSelected= */ false);
+        }
+
+        mSelectedButton = selectedButton;
+        mClickPanelController.handleAutoclickTypeChange(clickType);
+
+        // Updates the newly selected button styling.
+        toggleSelectedButtonStyle(selectedButton, /* isSelected= */ true);
+    }
+
+    private void toggleSelectedButtonStyle(@NonNull LinearLayout button, boolean isSelected) {
+        // Sets icon background color.
+        GradientDrawable gradientDrawable = (GradientDrawable) button.getBackground();
+        gradientDrawable.setColor(
+                mContext.getColor(
+                        isSelected
+                                ? R.color.materialColorPrimary
+                                : R.color.materialColorSurfaceContainer));
+
+        // Sets icon color.
+        ImageButton imageButton = (ImageButton) button.getChildAt(/* index= */ 0);
+        Drawable drawable = imageButton.getDrawable();
+        drawable.mutate()
+                .setTint(
+                        mContext.getColor(
+                                isSelected
+                                        ? R.color.materialColorSurfaceContainer
+                                        : R.color.materialColorPrimary));
     }
 
     public void show() {
@@ -91,12 +172,17 @@
     }
 
     /** Toggles the panel expanded or collapsed state. */
-    private void togglePanelExpansion(LinearLayout button) {
+    private void togglePanelExpansion(@AutoclickType int clickType) {
+        final LinearLayout button = getButtonFromClickType(clickType);
+
         if (mExpanded) {
             // If the panel is already in expanded state, we should collapse it by hiding all
             // buttons except the one user selected.
             hideAllClickTypeButtons();
             button.setVisibility(View.VISIBLE);
+
+            // Sets the newly selected button.
+            setSelectedClickType(clickType);
         } else {
             // If the panel is already collapsed, we just need to expand it.
             showAllClickTypeButtons();
@@ -124,6 +210,17 @@
         mScrollButton.setVisibility(View.VISIBLE);
     }
 
+    private LinearLayout getButtonFromClickType(@AutoclickType int clickType) {
+        return switch (clickType) {
+            case AUTOCLICK_TYPE_LEFT_CLICK -> mLeftClickButton;
+            case AUTOCLICK_TYPE_RIGHT_CLICK -> mRightClickButton;
+            case AUTOCLICK_TYPE_DOUBLE_CLICK -> mDoubleClickButton;
+            case AUTOCLICK_TYPE_DRAG -> mDragButton;
+            case AUTOCLICK_TYPE_SCROLL -> mScrollButton;
+            default -> throw new IllegalArgumentException("Unknown clickType " + clickType);
+        };
+    }
+
     @VisibleForTesting
     boolean getExpansionStateForTesting() {
         return mExpanded;
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
index e757dd5..396ea33 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
@@ -23,6 +23,7 @@
 import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
 import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
 import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
+import static android.util.MathUtils.sqrt;
 
 import static com.android.server.accessibility.AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID;
 
@@ -38,7 +39,6 @@
 import android.hardware.display.DisplayManager;
 import android.os.Handler;
 import android.os.Looper;
-import android.os.SystemClock;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.DisplayMetrics;
@@ -116,8 +116,14 @@
     private final Executor mBackgroundExecutor;
 
     private final Handler mHandler;
-    private @PanDirection int mActivePanDirection = PAN_DIRECTION_DOWN;
+    // Prefer this to SystemClock, because it allows for tests to influence behavior.
+    private SystemClock mSystemClock;
+    private boolean[] mActivePanDirections = {false, false, false, false};
     private int mActivePanDisplay = Display.INVALID_DISPLAY;
+    // The time that panning by keyboard last took place. Since users can pan
+    // in multiple directions at once (for example, up + left), tracking last
+    // panned time ensures that panning doesn't occur too frequently.
+    private long mLastPannedTime = 0;
     private boolean mRepeatKeysEnabled = true;
 
     private @ZoomDirection int mActiveZoomDirection = ZOOM_DIRECTION_IN;
@@ -186,6 +192,25 @@
         void onResult(int displayId, boolean success);
     }
 
+    /**
+     * Functional interface for providing time. Tests may extend this interface to "control time".
+     */
+    @VisibleForTesting
+    interface SystemClock {
+        /**
+         * Returns current time in milliseconds since boot, not counting time spent in deep sleep.
+         */
+        long uptimeMillis();
+    }
+
+    /** The real system clock for use in production. */
+    private static class SystemClockImpl implements SystemClock {
+        @Override
+        public long uptimeMillis() {
+            return android.os.SystemClock.uptimeMillis();
+        }
+    }
+
 
     /**
      * An interface to configure how much the magnification scale should be affected when moving in
@@ -311,6 +336,7 @@
         mScaleProvider = scaleProvider;
         mBackgroundExecutor = backgroundExecutor;
         mHandler = new Handler(looper);
+        mSystemClock = new SystemClockImpl();
         LocalServices.getService(WindowManagerInternal.class)
                 .getAccessibilityController().setUiChangesForAccessibilityCallbacks(this);
         mSupportWindowMagnification = context.getPackageManager().hasSystemFeature(
@@ -327,10 +353,12 @@
     public MagnificationController(AccessibilityManagerService ams, Object lock,
             Context context, FullScreenMagnificationController fullScreenMagnificationController,
             MagnificationConnectionManager magnificationConnectionManager,
-            MagnificationScaleProvider scaleProvider, Executor backgroundExecutor, Looper looper) {
+            MagnificationScaleProvider scaleProvider, Executor backgroundExecutor, Looper looper,
+            SystemClock systemClock) {
         this(ams, lock, context, scaleProvider, backgroundExecutor, looper);
         mFullScreenMagnificationController = fullScreenMagnificationController;
         mMagnificationConnectionManager = magnificationConnectionManager;
+        mSystemClock = systemClock;
     }
 
     @Override
@@ -368,13 +396,13 @@
     @Override
     public void onPanMagnificationStart(int displayId,
             @MagnificationController.PanDirection int direction) {
-        // TODO(b/355499907): Handle multiple pan gestures at the same time (e.g. user may try to
-        // pan diagonally) by decreasing diagonal movement by sqrt(2) to make it appear the same
-        // speed as non-diagonal movement.
-        panMagnificationByStep(displayId, direction);
-        mActivePanDirection = direction;
+        // Update the current panning state for any callbacks.
+        boolean isAlreadyPanning = mActivePanDisplay != Display.INVALID_DISPLAY;
         mActivePanDisplay = displayId;
-        if (mRepeatKeysEnabled) {
+        mActivePanDirections[direction] = true;
+        // React immediately to any new key press by panning in the new composite direction.
+        panMagnificationByStep(mActivePanDisplay, mActivePanDirections);
+        if (!isAlreadyPanning && mRepeatKeysEnabled) {
             mHandler.sendMessageDelayed(
                     PooledLambda.obtainMessage(MagnificationController::maybeContinuePan, this),
                     mInitialKeyboardRepeatIntervalMs);
@@ -382,9 +410,14 @@
     }
 
     @Override
-    public void onPanMagnificationStop(int displayId,
-            @MagnificationController.PanDirection int direction) {
-        if (direction == mActivePanDirection) {
+    public void onPanMagnificationStop(@MagnificationController.PanDirection int direction) {
+        // Stop panning in this direction.
+        mActivePanDirections[direction] = false;
+        if (!mActivePanDirections[PAN_DIRECTION_LEFT]
+                && !mActivePanDirections[PAN_DIRECTION_RIGHT]
+                && !mActivePanDirections[PAN_DIRECTION_UP]
+                && !mActivePanDirections[PAN_DIRECTION_DOWN]) {
+            // Stop all panning if no more pan directions were in started.
             mActivePanDisplay = Display.INVALID_DISPLAY;
         }
     }
@@ -392,9 +425,14 @@
     @Override
     public void onScaleMagnificationStart(int displayId,
             @MagnificationController.ZoomDirection int direction) {
-        scaleMagnificationByStep(displayId, direction);
+        if (mActiveZoomDisplay != Display.INVALID_DISPLAY) {
+            // Only allow one zoom direction at a time (even if the other keyboard
+            // shortcut has been pressed). Return early if we are already zooming.
+            return;
+        }
         mActiveZoomDirection = direction;
         mActiveZoomDisplay = displayId;
+        scaleMagnificationByStep(displayId, direction);
         if (mRepeatKeysEnabled) {
             mHandler.sendMessageDelayed(
                     PooledLambda.obtainMessage(MagnificationController::maybeContinueZoom, this),
@@ -403,16 +441,27 @@
     }
 
     @Override
-    public void onScaleMagnificationStop(int displayId,
-            @MagnificationController.ZoomDirection int direction) {
+    public void onScaleMagnificationStop(@MagnificationController.ZoomDirection int direction) {
         if (direction == mActiveZoomDirection) {
             mActiveZoomDisplay = Display.INVALID_DISPLAY;
         }
     }
 
+    @Override
+    public void onKeyboardInteractionStop() {
+        mActiveZoomDisplay = Display.INVALID_DISPLAY;
+        mActivePanDisplay = Display.INVALID_DISPLAY;
+        mActivePanDirections = new boolean[]{false, false, false, false};
+    }
+
     private void maybeContinuePan() {
-        if (mActivePanDisplay != Display.INVALID_DISPLAY) {
-            panMagnificationByStep(mActivePanDisplay, mActivePanDirection);
+        if (mActivePanDisplay == Display.INVALID_DISPLAY) {
+            return;
+        }
+        if (mSystemClock.uptimeMillis() - mLastPannedTime >= KEYBOARD_REPEAT_INTERVAL_MS) {
+            panMagnificationByStep(mActivePanDisplay, mActivePanDirections);
+        }
+        if (mRepeatKeysEnabled) {
             mHandler.sendMessageDelayed(
                     PooledLambda.obtainMessage(MagnificationController::maybeContinuePan, this),
                     KEYBOARD_REPEAT_INTERVAL_MS);
@@ -422,9 +471,12 @@
     private void maybeContinueZoom() {
         if (mActiveZoomDisplay != Display.INVALID_DISPLAY) {
             scaleMagnificationByStep(mActiveZoomDisplay, mActiveZoomDirection);
-            mHandler.sendMessageDelayed(
-                    PooledLambda.obtainMessage(MagnificationController::maybeContinueZoom, this),
-                    KEYBOARD_REPEAT_INTERVAL_MS);
+            if (mRepeatKeysEnabled) {
+                mHandler.sendMessageDelayed(
+                        PooledLambda.obtainMessage(MagnificationController::maybeContinueZoom,
+                                this),
+                        KEYBOARD_REPEAT_INTERVAL_MS);
+            }
         }
     }
 
@@ -719,7 +771,7 @@
     public void onWindowMagnificationActivationState(int displayId, boolean activated) {
         if (activated) {
             synchronized (mLock) {
-                mWindowModeEnabledTimeArray.put(displayId, SystemClock.uptimeMillis());
+                mWindowModeEnabledTimeArray.put(displayId, mSystemClock.uptimeMillis());
                 setCurrentMagnificationModeAndSwitchDelegate(displayId,
                         ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
                 mLastMagnificationActivatedModeArray.put(displayId,
@@ -733,7 +785,7 @@
             synchronized (mLock) {
                 setCurrentMagnificationModeAndSwitchDelegate(displayId,
                         ACCESSIBILITY_MAGNIFICATION_MODE_NONE);
-                duration = SystemClock.uptimeMillis() - mWindowModeEnabledTimeArray.get(displayId);
+                duration = mSystemClock.uptimeMillis() - mWindowModeEnabledTimeArray.get(displayId);
                 scale = mMagnificationConnectionManager.getLastActivatedScale(displayId);
             }
             logMagnificationUsageState(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW, duration, scale);
@@ -830,7 +882,7 @@
 
         if (activated) {
             synchronized (mLock) {
-                mFullScreenModeEnabledTimeArray.put(displayId, SystemClock.uptimeMillis());
+                mFullScreenModeEnabledTimeArray.put(displayId, mSystemClock.uptimeMillis());
                 setCurrentMagnificationModeAndSwitchDelegate(displayId,
                         ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
                 mLastMagnificationActivatedModeArray.put(displayId,
@@ -844,7 +896,7 @@
             synchronized (mLock) {
                 setCurrentMagnificationModeAndSwitchDelegate(displayId,
                         ACCESSIBILITY_MAGNIFICATION_MODE_NONE);
-                duration = SystemClock.uptimeMillis()
+                duration = mSystemClock.uptimeMillis()
                         - mFullScreenModeEnabledTimeArray.get(displayId);
                 scale = mFullScreenMagnificationController.getLastActivatedScale(displayId);
             }
@@ -1132,7 +1184,7 @@
      * @param displayId The logical display id.
      * @param direction Whether the scale should be zoomed in or out.
      */
-    public void scaleMagnificationByStep(int displayId, @ZoomDirection int direction) {
+    private void scaleMagnificationByStep(int displayId, @ZoomDirection int direction) {
         if (getFullScreenMagnificationController().isActivated(displayId)) {
             final float magnificationScale = getFullScreenMagnificationController().getScale(
                     displayId);
@@ -1157,9 +1209,14 @@
      * param.
      *
      * @param displayId The logical display id.
-     * @param direction Whether the direction should be left/right/up/down.
+     * @param directions The directions to pan, indexed by {@code PanDirection}. If two or more
+     *                   are active, panning may be diagonal.
      */
-    public void panMagnificationByStep(int displayId, @PanDirection int direction) {
+    private void panMagnificationByStep(int displayId, boolean[] directions) {
+        if (directions.length != 4) {
+            Slog.d(TAG, "Invalid number of panning directions");
+            return;
+        }
         final boolean fullscreenActivated =
                 getFullScreenMagnificationController().isActivated(displayId);
         final boolean windowActivated =
@@ -1168,21 +1225,43 @@
             return;
         }
 
+        int numDirections = (directions[PAN_DIRECTION_LEFT] ? 1 : 0)
+                + (directions[PAN_DIRECTION_RIGHT] ? 1 : 0)
+                + (directions[PAN_DIRECTION_UP] ? 1 : 0)
+                + (directions[PAN_DIRECTION_DOWN] ? 1 : 0);
+        if (numDirections == 0) {
+            return;
+        }
+
         final float scale = fullscreenActivated
                 ? getFullScreenMagnificationController().getScale(displayId)
                         : getMagnificationConnectionManager().getScale(displayId);
-        final float step = mPanStepProvider.nextPanStep(scale, displayId);
+        float step = mPanStepProvider.nextPanStep(scale, displayId);
 
+        // If the user is trying to pan diagonally (2 directions), divide by the sqrt(2)
+        // so that the apparent step length (the radius of the step) is the same as
+        // panning in just one direction.
+        // Note that if numDirections is 3 or 4, opposite directions will cancel and
+        // there's no need to rescale {@code step}.
+        if (numDirections == 2) {
+            step /= sqrt(2);
+        }
+
+        // If two directions cancel out, they will be added and subtracted below for net change 0.
+        // This makes the logic simpler than removing out opposite directions manually.
         float offsetX = 0;
         float offsetY = 0;
-        if (direction == PAN_DIRECTION_LEFT) {
-            offsetX = -step;
-        } else if (direction == PAN_DIRECTION_RIGHT) {
-            offsetX = step;
-        } else if (direction == PAN_DIRECTION_UP) {
-            offsetY = -step;
-        } else if (direction == PAN_DIRECTION_DOWN) {
-            offsetY = step;
+        if (directions[PAN_DIRECTION_LEFT]) {
+            offsetX -= step;
+        }
+        if (directions[PAN_DIRECTION_RIGHT]) {
+            offsetX += step;
+        }
+        if (directions[PAN_DIRECTION_UP]) {
+            offsetY -= step;
+        }
+        if (directions[PAN_DIRECTION_DOWN]) {
+            offsetY += step;
         }
 
         if (fullscreenActivated) {
@@ -1194,6 +1273,8 @@
             getMagnificationConnectionManager().moveWindowMagnification(displayId, offsetX,
                     offsetY);
         }
+
+        mLastPannedTime = mSystemClock.uptimeMillis();
     }
 
     private final class DisableMagnificationCallback implements
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationKeyHandler.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationKeyHandler.java
index f207553..dab5411 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationKeyHandler.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationKeyHandler.java
@@ -46,10 +46,8 @@
          * arrows had been pressed at the same time (e.g. diagonal panning).
          *
          * @param displayId The logical display ID
-         * @param direction The direction in which panning stopped
          */
-        void onPanMagnificationStop(int displayId,
-                @MagnificationController.PanDirection int direction);
+        void onPanMagnificationStop(int displayId);
 
         /**
          * Called when a keyboard shortcut to scale magnification in direction `direction` is
@@ -65,14 +63,18 @@
          * Called when a keyboard shortcut to scale magnification in direction `direction` is
          * unpressed by a user.
          *
-         * @param displayId The logical display ID
          * @param direction The direction in which scaling stopped
          */
-        void onScaleMagnificationStop(int displayId,
-                @MagnificationController.ZoomDirection int direction);
+        void onScaleMagnificationStop(@MagnificationController.ZoomDirection int direction);
+
+        /**
+         * Called when all keyboard interaction with magnification should be stopped.
+         */
+        void onKeyboardInteractionStop();
     }
 
     protected final MagnificationKeyHandler.Callback mCallback;
+    private boolean mIsKeyboardInteracting = false;
 
     public MagnificationKeyHandler(Callback callback) {
         mCallback = callback;
@@ -88,6 +90,12 @@
         boolean modifiersPressed = event.isAltPressed() && event.isMetaPressed();
         if (!modifiersPressed) {
             super.onKeyEvent(event, policyFlags);
+            if (mIsKeyboardInteracting) {
+                // When modifier keys are no longer pressed, ensure that scaling and
+                // panning are fully stopped.
+                mCallback.onKeyboardInteractionStop();
+                mIsKeyboardInteracting = false;
+            }
             return;
         }
         boolean isDown = event.getAction() == KeyEvent.ACTION_DOWN;
@@ -102,8 +110,9 @@
             };
             if (isDown) {
                 mCallback.onPanMagnificationStart(getDisplayId(event), panDirection);
+                mIsKeyboardInteracting = true;
             } else {
-                mCallback.onPanMagnificationStop(getDisplayId(event), panDirection);
+                mCallback.onPanMagnificationStop(panDirection);
             }
             return;
         } else if (keyCode == KeyEvent.KEYCODE_EQUALS || keyCode == KeyEvent.KEYCODE_MINUS) {
@@ -113,8 +122,9 @@
             }
             if (isDown) {
                 mCallback.onScaleMagnificationStart(getDisplayId(event), zoomDirection);
+                mIsKeyboardInteracting = true;
             } else {
-                mCallback.onScaleMagnificationStop(getDisplayId(event), zoomDirection);
+                mCallback.onScaleMagnificationStop(zoomDirection);
             }
             return;
         }
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/OWNERS b/services/accessibility/java/com/android/server/accessibility/magnification/OWNERS
new file mode 100644
index 0000000..ff812ad
--- /dev/null
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/OWNERS
@@ -0,0 +1,8 @@
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 770744.
+
+juchengchou@google.com
+chenjean@google.com
+chihtinglo@google.com
diff --git a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java
index 4376444..d0ee7af 100644
--- a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java
+++ b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java
@@ -27,6 +27,7 @@
 import android.app.appfunctions.AppFunctionException;
 import android.app.appfunctions.AppFunctionManager;
 import android.app.appfunctions.AppFunctionManagerHelper;
+import android.app.appfunctions.AppFunctionManagerHelper.AppFunctionNotFoundException;
 import android.app.appfunctions.AppFunctionRuntimeMetadata;
 import android.app.appfunctions.AppFunctionStaticMetadataHelper;
 import android.app.appfunctions.ExecuteAppFunctionAidlRequest;
@@ -513,7 +514,9 @@
             e = e.getCause();
         }
         int resultCode = AppFunctionException.ERROR_SYSTEM_ERROR;
-        if (e instanceof AppSearchException appSearchException) {
+        if (e instanceof AppFunctionNotFoundException) {
+            resultCode = AppFunctionException.ERROR_FUNCTION_NOT_FOUND;
+        } else if (e instanceof AppSearchException appSearchException) {
             resultCode =
                     mapAppSearchResultFailureCodeToExecuteAppFunctionResponse(
                             appSearchException.getResultCode());
diff --git a/services/art-wear-profile b/services/art-wear-profile
index f080715..dba7ce7 100644
--- a/services/art-wear-profile
+++ b/services/art-wear-profile
@@ -1,86 +1,82 @@
-Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;
 Landroid/content/pm/PackageManagerInternal;
 Landroid/content/pm/TestUtilityService;
+Landroid/frameworks/vibrator/VibrationParam$1$$ExternalSyntheticOutline0;
+Landroid/hardware/audio/common/V2_0/AudioOffloadInfo$$ExternalSyntheticOutline0;
+Landroid/hardware/authsecret/V1_0/IAuthSecret$Proxy$$ExternalSyntheticOutline0;
+Landroid/hardware/boot/IBootControl$Stub$Proxy;
+Landroid/hardware/boot/IBootControl;
+Landroid/hardware/boot/V1_0/IBootControl;
+Landroid/hardware/boot/V1_1/IBootControl$Proxy;
+Landroid/hardware/boot/V1_1/IBootControl;
 Landroid/hardware/light/HwLight$1;
 Landroid/hardware/light/HwLight;
 Landroid/hardware/light/ILights$Stub$Proxy;
-Landroid/hardware/light/ILights$Stub;
 Landroid/hardware/light/ILights;
-Landroid/hardware/power/stats/Channel$1;
 Landroid/hardware/power/stats/Channel;
 Landroid/hardware/power/stats/EnergyConsumer;
-Landroid/hardware/power/stats/EnergyMeasurement$1;
-Landroid/hardware/power/stats/EnergyMeasurement;
+Landroid/hardware/power/stats/IPowerStats$Stub$Proxy;
+Landroid/hardware/power/stats/IPowerStats$Stub;
 Landroid/hardware/power/stats/IPowerStats;
-Landroid/hardware/power/stats/PowerEntity$1;
-Landroid/hardware/power/stats/PowerEntity;
-Landroid/hardware/power/stats/State$1;
-Landroid/hardware/power/stats/State;
-Landroid/hardware/power/stats/StateResidency$1;
-Landroid/hardware/power/stats/StateResidency;
-Landroid/hardware/power/stats/StateResidencyResult$1;
-Landroid/hardware/power/stats/StateResidencyResult;
+Landroid/hardware/security/secretkeeper/ISecretkeeper$Stub$Proxy;
+Landroid/hardware/security/secretkeeper/ISecretkeeper;
 Landroid/hidl/base/V1_0/IBase;
 Landroid/hidl/manager/V1_0/IServiceManager$Proxy;
 Landroid/hidl/manager/V1_0/IServiceManager;
 Landroid/hidl/manager/V1_0/IServiceNotification$Stub;
 Landroid/hidl/manager/V1_0/IServiceNotification;
+Landroid/net/ConnectivityModuleConnector$$ExternalSyntheticOutline0;
 Landroid/net/ConnectivityModuleConnector$Dependencies;
 Landroid/net/ConnectivityModuleConnector$DependenciesImpl;
 Landroid/net/ConnectivityModuleConnector;
+Landroid/net/shared/InitialConfiguration$$ExternalSyntheticOutline0;
 Landroid/os/BatteryStatsInternal;
 Landroid/power/PowerStatsInternal;
 Landroid/sysprop/SurfaceFlingerProperties;
+Lcom/android/internal/util/jobs/ArrayUtils$$ExternalSyntheticOutline0;
+Lcom/android/internal/util/jobs/DumpUtils$$ExternalSyntheticOutline0;
+Lcom/android/internal/util/jobs/XmlUtils$$ExternalSyntheticOutline0;
 Lcom/android/modules/utils/build/SdkLevel;
 Lcom/android/modules/utils/build/UnboundedSdkLevel;
 Lcom/android/server/AnimationThread;
+Lcom/android/server/AnyMotionDetector$RunningSignalStats$$ExternalSyntheticOutline0;
 Lcom/android/server/AppFuseMountException;
+Lcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;
 Lcom/android/server/BundleUtils;
-Lcom/android/server/ConsumerIrService;
 Lcom/android/server/DisplayThread;
-Lcom/android/server/EventLogTags;
-Lcom/android/server/ExplicitHealthCheckController;
-Lcom/android/server/FgThread;
+Lcom/android/server/DynamicSystemService$$ExternalSyntheticOutline0;
+Lcom/android/server/HardwarePropertiesManagerService$$ExternalSyntheticOutline0;
 Lcom/android/server/HardwarePropertiesManagerService;
+Lcom/android/server/HsumBootUserInitializer$1;
 Lcom/android/server/IntentResolver$1;
 Lcom/android/server/IntentResolver;
 Lcom/android/server/IoThread;
 Lcom/android/server/LocalManagerRegistry$ManagerNotFoundException;
 Lcom/android/server/LocalManagerRegistry;
-Lcom/android/server/LockGuard$LockInfo-IA;
 Lcom/android/server/LockGuard$LockInfo;
 Lcom/android/server/LockGuard;
-Lcom/android/server/PackageWatchdog$$ExternalSyntheticLambda0;
-Lcom/android/server/PackageWatchdog$$ExternalSyntheticLambda6;
-Lcom/android/server/PackageWatchdog$$ExternalSyntheticLambda7;
-Lcom/android/server/PackageWatchdog$$ExternalSyntheticLambda8;
-Lcom/android/server/PackageWatchdog$$ExternalSyntheticLambda9;
-Lcom/android/server/PackageWatchdog$BootThreshold;
-Lcom/android/server/PackageWatchdog$ObserverInternal;
-Lcom/android/server/PackageWatchdog$PackageHealthObserver;
-Lcom/android/server/PackageWatchdog$SystemClock;
-Lcom/android/server/PackageWatchdog;
-Lcom/android/server/RescueParty$RescuePartyObserver;
-Lcom/android/server/RescueParty;
-Lcom/android/server/SerialService;
-Lcom/android/server/ServiceThread;
+Lcom/android/server/StorageManagerService$AppFuseMountScope;
 Lcom/android/server/SystemClockTime;
+Lcom/android/server/SystemConfig$Injector;
 Lcom/android/server/SystemConfig$PermissionEntry;
 Lcom/android/server/SystemConfig$SharedLibraryEntry;
 Lcom/android/server/SystemConfig;
-Lcom/android/server/SystemServer$$ExternalSyntheticLambda0;
 Lcom/android/server/SystemServer$$ExternalSyntheticLambda1;
 Lcom/android/server/SystemServer$$ExternalSyntheticLambda2;
+Lcom/android/server/SystemServer$$ExternalSyntheticLambda3;
+Lcom/android/server/SystemServer$$ExternalSyntheticOutline0;
 Lcom/android/server/SystemServer$SystemServerDumper;
 Lcom/android/server/SystemServer;
-Lcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda1;
+Lcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda2;
+Lcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticOutline0;
 Lcom/android/server/SystemServerInitThreadPool;
 Lcom/android/server/SystemService;
+Lcom/android/server/SystemServiceManager$$ExternalSyntheticOutline0;
 Lcom/android/server/SystemServiceManager;
 Lcom/android/server/SystemTimeZone;
 Lcom/android/server/ThreadPriorityBooster$1;
 Lcom/android/server/ThreadPriorityBooster$PriorityState;
 Lcom/android/server/ThreadPriorityBooster;
+Lcom/android/server/TradeInModeService$TradeInMode$$ExternalSyntheticOutline0;
 Lcom/android/server/UiThread;
 Lcom/android/server/Watchdog$$ExternalSyntheticLambda0;
 Lcom/android/server/Watchdog$1;
@@ -91,57 +87,50 @@
 Lcom/android/server/Watchdog$RebootRequestReceiver;
 Lcom/android/server/Watchdog$SettingsObserver;
 Lcom/android/server/Watchdog;
-Lcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda35;
+Lcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda4;
+Lcom/android/server/accessibility/BrailleDisplayConnection$$ExternalSyntheticOutline0;
 Lcom/android/server/accessibility/BrailleDisplayConnection;
+Lcom/android/server/adb/AdbDebuggingManager$AdbKeyStore$$ExternalSyntheticOutline0;
 Lcom/android/server/adb/AdbDebuggingManager$PairingThread;
+Lcom/android/server/alarm/AlarmManagerService$AlarmHandler;
 Lcom/android/server/am/ActiveServices$1;
-Lcom/android/server/am/ActiveServices$5;
-Lcom/android/server/am/ActiveServices$MediaProjectionFgsTypeCustomPermission;
 Lcom/android/server/am/ActiveServices$ProcessAnrTimer;
-Lcom/android/server/am/ActiveServices$ServiceAnrTimer;
 Lcom/android/server/am/ActiveServices$ServiceMap;
-Lcom/android/server/am/ActiveServices$ServiceRestarter;
 Lcom/android/server/am/ActiveServices$SystemExemptedFgsTypePermission;
 Lcom/android/server/am/ActiveServices;
 Lcom/android/server/am/ActiveUids;
 Lcom/android/server/am/ActivityManagerConstants$1;
-Lcom/android/server/am/ActivityManagerConstants$2;
 Lcom/android/server/am/ActivityManagerConstants;
-Lcom/android/server/am/ActivityManagerGlobalLock;
 Lcom/android/server/am/ActivityManagerLocal;
 Lcom/android/server/am/ActivityManagerProcLock;
-Lcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;
-Lcom/android/server/am/ActivityManagerService$12;
+Lcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda7;
+Lcom/android/server/am/ActivityManagerService$11;
 Lcom/android/server/am/ActivityManagerService$13;
-Lcom/android/server/am/ActivityManagerService$16;
 Lcom/android/server/am/ActivityManagerService$1;
 Lcom/android/server/am/ActivityManagerService$2;
-Lcom/android/server/am/ActivityManagerService$3;
+Lcom/android/server/am/ActivityManagerService$5;
 Lcom/android/server/am/ActivityManagerService$6;
-Lcom/android/server/am/ActivityManagerService$8;
 Lcom/android/server/am/ActivityManagerService$FgsTempAllowListItem;
 Lcom/android/server/am/ActivityManagerService$GetBackgroundStartPrivilegesFunctor;
 Lcom/android/server/am/ActivityManagerService$HiddenApiSettings;
 Lcom/android/server/am/ActivityManagerService$Injector;
-Lcom/android/server/am/ActivityManagerService$IntentFirewallInterface;
+Lcom/android/server/am/ActivityManagerService$IntentCreatorToken;
 Lcom/android/server/am/ActivityManagerService$Lifecycle;
 Lcom/android/server/am/ActivityManagerService$LocalService;
 Lcom/android/server/am/ActivityManagerService$MainHandler$1;
-Lcom/android/server/am/ActivityManagerService$MainHandler;
+Lcom/android/server/am/ActivityManagerService$PermissionController;
 Lcom/android/server/am/ActivityManagerService$PidMap;
 Lcom/android/server/am/ActivityManagerService$ProcessChangeItem;
 Lcom/android/server/am/ActivityManagerService$UiHandler;
 Lcom/android/server/am/ActivityManagerService;
 Lcom/android/server/am/ActivityManagerShellCommand;
 Lcom/android/server/am/AnrHelper$$ExternalSyntheticLambda0;
-Lcom/android/server/am/AnrHelper$$ExternalSyntheticLambda1;
 Lcom/android/server/am/AnrHelper$AnrConsumerThread;
 Lcom/android/server/am/AnrHelper;
 Lcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;
 Lcom/android/server/am/AppBatteryExemptionTracker$UidBatteryStates;
 Lcom/android/server/am/AppBatteryExemptionTracker;
 Lcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda0;
-Lcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda1;
 Lcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;
 Lcom/android/server/am/AppBatteryTracker$BatteryUsage;
 Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;
@@ -151,8 +140,8 @@
 Lcom/android/server/am/AppBroadcastEventsTracker$AppBroadcastEventsPolicy;
 Lcom/android/server/am/AppBroadcastEventsTracker;
 Lcom/android/server/am/AppErrors;
+Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda0;
 Lcom/android/server/am/AppExitInfoTracker$1;
-Lcom/android/server/am/AppExitInfoTracker$2;
 Lcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;
 Lcom/android/server/am/AppExitInfoTracker$AppTraceRetriever;
 Lcom/android/server/am/AppExitInfoTracker$IsolatedUidRecords;
@@ -170,7 +159,7 @@
 Lcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;
 Lcom/android/server/am/AppPermissionTracker$MyHandler;
 Lcom/android/server/am/AppPermissionTracker;
-Lcom/android/server/am/AppProfiler$$ExternalSyntheticLambda0;
+Lcom/android/server/am/AppProfiler$$ExternalSyntheticLambda4;
 Lcom/android/server/am/AppProfiler$1;
 Lcom/android/server/am/AppProfiler$BgHandler;
 Lcom/android/server/am/AppProfiler$CachedAppsWatermarkData;
@@ -179,46 +168,40 @@
 Lcom/android/server/am/AppProfiler;
 Lcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda1;
 Lcom/android/server/am/AppRestrictionController$1;
-Lcom/android/server/am/AppRestrictionController$2;
 Lcom/android/server/am/AppRestrictionController$3;
 Lcom/android/server/am/AppRestrictionController$4;
 Lcom/android/server/am/AppRestrictionController$5;
 Lcom/android/server/am/AppRestrictionController$BgHandler;
 Lcom/android/server/am/AppRestrictionController$ConstantsObserver;
 Lcom/android/server/am/AppRestrictionController$Injector;
-Lcom/android/server/am/AppRestrictionController$NotificationHelper$1;
 Lcom/android/server/am/AppRestrictionController$NotificationHelper;
 Lcom/android/server/am/AppRestrictionController$RestrictionSettings;
 Lcom/android/server/am/AppRestrictionController$TrackerInfo;
-Lcom/android/server/am/AppRestrictionController$UidBatteryUsageProvider;
 Lcom/android/server/am/AppRestrictionController;
+Lcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda4;
 Lcom/android/server/am/AppStartInfoTracker$1;
-Lcom/android/server/am/AppStartInfoTracker$2;
 Lcom/android/server/am/AppStartInfoTracker;
+Lcom/android/server/am/ApplicationThreadDeferred;
 Lcom/android/server/am/BaseAppStateDurations;
 Lcom/android/server/am/BaseAppStateDurationsTracker$SimplePackageDurations;
 Lcom/android/server/am/BaseAppStateDurationsTracker$UidStateDurations;
 Lcom/android/server/am/BaseAppStateDurationsTracker;
-Lcom/android/server/am/BaseAppStateEvents$Factory;
-Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;
 Lcom/android/server/am/BaseAppStateEvents;
 Lcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;
 Lcom/android/server/am/BaseAppStateEventsTracker;
 Lcom/android/server/am/BaseAppStatePolicy;
-Lcom/android/server/am/BaseAppStateTimeEvents;
 Lcom/android/server/am/BaseAppStateTimeSlotEvents;
 Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;
 Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker$H;
 Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker$SimpleAppStateTimeslotEvents;
 Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;
 Lcom/android/server/am/BaseAppStateTracker$Injector;
-Lcom/android/server/am/BaseAppStateTracker$StateListener;
 Lcom/android/server/am/BaseAppStateTracker;
-Lcom/android/server/am/BaseErrorDialog;
-Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda14;
-Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda15;
-Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda16;
-Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda33;
+Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;
+Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda103;
+Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda30;
+Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;
+Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;
 Lcom/android/server/am/BatteryStatsService$1;
 Lcom/android/server/am/BatteryStatsService$2;
 Lcom/android/server/am/BatteryStatsService$3;
@@ -227,6 +210,8 @@
 Lcom/android/server/am/BatteryStatsService;
 Lcom/android/server/am/BroadcastConstants$SettingsObserver;
 Lcom/android/server/am/BroadcastConstants;
+Lcom/android/server/am/BroadcastController$1;
+Lcom/android/server/am/BroadcastController;
 Lcom/android/server/am/BroadcastDeliveryFailedException;
 Lcom/android/server/am/BroadcastFilter;
 Lcom/android/server/am/BroadcastHistory;
@@ -235,29 +220,21 @@
 Lcom/android/server/am/BroadcastProcessQueue;
 Lcom/android/server/am/BroadcastQueue;
 Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda12;
-Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda13;
-Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda14;
-Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda15;
-Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda16;
 Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda17;
-Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda6;
+Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda1;
 Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda7;
 Lcom/android/server/am/BroadcastQueueModernImpl$BroadcastAnrTimer;
 Lcom/android/server/am/BroadcastQueueModernImpl;
 Lcom/android/server/am/BroadcastRecord;
 Lcom/android/server/am/BroadcastRetryException;
 Lcom/android/server/am/BroadcastSkipPolicy;
+Lcom/android/server/am/BugReportHandlerUtil$BugreportHandlerResponseBroadcastReceiver;
 Lcom/android/server/am/CacheOomRanker$1;
-Lcom/android/server/am/CacheOomRanker$CacheUseComparator;
-Lcom/android/server/am/CacheOomRanker$LastActivityTimeComparator;
-Lcom/android/server/am/CacheOomRanker$LastRssComparator;
 Lcom/android/server/am/CacheOomRanker$ProcessDependencies;
 Lcom/android/server/am/CacheOomRanker$ProcessDependenciesImpl;
 Lcom/android/server/am/CacheOomRanker$RssComparator;
-Lcom/android/server/am/CacheOomRanker$ScoreComparator;
 Lcom/android/server/am/CacheOomRanker;
 Lcom/android/server/am/CachedAppOptimizer$1;
-Lcom/android/server/am/CachedAppOptimizer$2;
 Lcom/android/server/am/CachedAppOptimizer$3;
 Lcom/android/server/am/CachedAppOptimizer$4;
 Lcom/android/server/am/CachedAppOptimizer$AggregatedCompactionStats;
@@ -277,28 +254,37 @@
 Lcom/android/server/am/ComponentAliasResolver;
 Lcom/android/server/am/ContentProviderConnection;
 Lcom/android/server/am/ContentProviderHelper;
-Lcom/android/server/am/DropboxRateLimiter$Clock;
+Lcom/android/server/am/DataConnectionStats$PhoneStateListenerImpl;
+Lcom/android/server/am/DataConnectionStats;
 Lcom/android/server/am/DropboxRateLimiter$DefaultClock;
 Lcom/android/server/am/DropboxRateLimiter;
 Lcom/android/server/am/FgsTempAllowList;
 Lcom/android/server/am/ForegroundServiceTypeLoggerModule;
+Lcom/android/server/am/Freezer;
 Lcom/android/server/am/HostingRecord;
 Lcom/android/server/am/InstrumentationReporter$MyThread;
 Lcom/android/server/am/InstrumentationReporter;
-Lcom/android/server/am/LmkdConnection$LmkdConnectionListener;
 Lcom/android/server/am/LmkdConnection;
 Lcom/android/server/am/LowMemDetector$LowMemThread;
 Lcom/android/server/am/LowMemDetector;
 Lcom/android/server/am/NativeCrashListener;
-Lcom/android/server/am/OomAdjProfiler$$ExternalSyntheticLambda0;
-Lcom/android/server/am/OomAdjProfiler$CpuTimes;
-Lcom/android/server/am/OomAdjProfiler;
-Lcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda0;
+Lcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda1;
 Lcom/android/server/am/OomAdjuster$1;
 Lcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;
+Lcom/android/server/am/OomAdjuster$Injector;
 Lcom/android/server/am/OomAdjuster;
+Lcom/android/server/am/OomAdjusterDebugLogger;
+Lcom/android/server/am/OomAdjusterModernImpl$ComputeConnectionIgnoringReachableClientsConsumer;
+Lcom/android/server/am/OomAdjusterModernImpl$ComputeConnectionsConsumer;
+Lcom/android/server/am/OomAdjusterModernImpl$ComputeHostConsumer;
+Lcom/android/server/am/OomAdjusterModernImpl$Connection;
+Lcom/android/server/am/OomAdjusterModernImpl$OomAdjusterArgs;
+Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNode;
+Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$$ExternalSyntheticLambda0;
+Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$LinkedProcessRecordList;
+Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes;
+Lcom/android/server/am/OomAdjusterModernImpl$ReachableCollectingConsumer;
 Lcom/android/server/am/OomAdjusterModernImpl;
-Lcom/android/server/am/OomConnection$OomConnectionListener;
 Lcom/android/server/am/OomConnection$OomConnectionThread;
 Lcom/android/server/am/OomConnection;
 Lcom/android/server/am/PendingIntentController;
@@ -307,11 +293,8 @@
 Lcom/android/server/am/PendingTempAllowlists;
 Lcom/android/server/am/PhantomProcessList$Injector;
 Lcom/android/server/am/PhantomProcessList;
-Lcom/android/server/am/PreBootBroadcaster;
-Lcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;
+Lcom/android/server/am/ProcessList$$ExternalSyntheticLambda5;
 Lcom/android/server/am/ProcessList$1;
-Lcom/android/server/am/ProcessList$2;
-Lcom/android/server/am/ProcessList$ImperceptibleKillRunner$H;
 Lcom/android/server/am/ProcessList$ImperceptibleKillRunner$IdlenessReceiver;
 Lcom/android/server/am/ProcessList$ImperceptibleKillRunner;
 Lcom/android/server/am/ProcessList$IsolatedUidRange;
@@ -321,6 +304,8 @@
 Lcom/android/server/am/ProcessList$ProcStartHandler;
 Lcom/android/server/am/ProcessList;
 Lcom/android/server/am/ProcessRecord;
+Lcom/android/server/am/ProcessStateController$GlobalState;
+Lcom/android/server/am/ProcessStateController;
 Lcom/android/server/am/ProcessStatsService$1;
 Lcom/android/server/am/ProcessStatsService$3;
 Lcom/android/server/am/ProcessStatsService$4;
@@ -335,42 +320,36 @@
 Lcom/android/server/am/UidObserverController;
 Lcom/android/server/am/UidProcessMap;
 Lcom/android/server/am/UserController$1;
-Lcom/android/server/am/UserController$Injector$1;
+Lcom/android/server/am/UserController$8;
 Lcom/android/server/am/UserController$Injector;
 Lcom/android/server/am/UserController$UserProgressListener;
 Lcom/android/server/am/UserController;
 Lcom/android/server/am/UserState;
-Lcom/android/server/app/GameManagerService;
-Lcom/android/server/appop/AppOpMigrationHelper;
+Lcom/android/server/app/GameManagerService$LocalService;
+Lcom/android/server/apphibernation/AppHibernationService;
 Lcom/android/server/appop/AppOpMigrationHelperImpl;
 Lcom/android/server/appop/AppOpsCheckingServiceImpl;
-Lcom/android/server/appop/AppOpsCheckingServiceInterface$AppOpsModeChangedListener;
 Lcom/android/server/appop/AppOpsCheckingServiceInterface;
 Lcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;
 Lcom/android/server/appop/AppOpsManagerLocal;
-Lcom/android/server/appop/AppOpsRestrictions$AppOpsRestrictionRemovedListener;
+Lcom/android/server/appop/AppOpsRecentAccessPersistence;
 Lcom/android/server/appop/AppOpsRestrictions;
 Lcom/android/server/appop/AppOpsRestrictionsImpl;
-Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda4;
+Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda7;
 Lcom/android/server/appop/AppOpsService$1$1;
 Lcom/android/server/appop/AppOpsService$1;
 Lcom/android/server/appop/AppOpsService$2;
 Lcom/android/server/appop/AppOpsService$3;
-Lcom/android/server/appop/AppOpsService$4;
+Lcom/android/server/appop/AppOpsService$6;
 Lcom/android/server/appop/AppOpsService$8;
-Lcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl-IA;
 Lcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;
-Lcom/android/server/appop/AppOpsService$AppOpsManagerLocalImpl;
 Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;
 Lcom/android/server/appop/AppOpsService$Constants;
-Lcom/android/server/appop/AppOpsService$ModeCallback;
 Lcom/android/server/appop/AppOpsService$Op;
 Lcom/android/server/appop/AppOpsService$Ops;
 Lcom/android/server/appop/AppOpsService$Shell;
 Lcom/android/server/appop/AppOpsService$UidState;
 Lcom/android/server/appop/AppOpsService;
-Lcom/android/server/appop/AppOpsUidStateTracker;
-Lcom/android/server/appop/AppOpsUidStateTrackerImpl;
 Lcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;
 Lcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;
 Lcom/android/server/appop/AttributedOp;
@@ -379,13 +358,16 @@
 Lcom/android/server/appop/DiscreteRegistry;
 Lcom/android/server/appop/HistoricalRegistry$1;
 Lcom/android/server/appop/HistoricalRegistry;
-Lcom/android/server/appop/OnOpModeChangedListener;
+Lcom/android/server/autofill/AutofillManagerService$1$$ExternalSyntheticLambda0;
 Lcom/android/server/biometrics/sensors/face/FaceService;
 Lcom/android/server/broadcastradio/hal1/BroadcastRadioService;
 Lcom/android/server/broadcastradio/hal1/Convert;
 Lcom/android/server/broadcastradio/hal1/Tuner;
 Lcom/android/server/broadcastradio/hal1/TunerCallback;
+Lcom/android/server/companion/virtual/GenericWindowPolicyController$RunningAppsChangedListener;
 Lcom/android/server/companion/virtual/InputController;
+Lcom/android/server/companion/virtual/VirtualDeviceImpl;
+Lcom/android/server/companion/virtual/VirtualDeviceManagerInternal;
 Lcom/android/server/compat/CompatChange$ChangeListener;
 Lcom/android/server/compat/CompatChange;
 Lcom/android/server/compat/CompatConfig;
@@ -399,6 +381,7 @@
 Lcom/android/server/compat/config/XmlParser;
 Lcom/android/server/connectivity/Vpn;
 Lcom/android/server/coverage/CoverageService;
+Lcom/android/server/crashrecovery/CrashRecoveryHelper;
 Lcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda0;
 Lcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda1;
 Lcom/android/server/criticalevents/CriticalEventLog$ILogLoader;
@@ -406,9 +389,8 @@
 Lcom/android/server/criticalevents/CriticalEventLog$ThreadSafeRingBuffer;
 Lcom/android/server/criticalevents/CriticalEventLog;
 Lcom/android/server/devicepolicy/CryptoTestHelper;
-Lcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;
-Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
-Lcom/android/server/display/BrightnessMappingStrategy;
+Lcom/android/server/display/AutomaticBrightnessController$Callbacks;
+Lcom/android/server/display/BrightnessTracker$TrackerHandler;
 Lcom/android/server/display/DeviceStateToLayoutMap;
 Lcom/android/server/display/DisplayAdapter$$ExternalSyntheticLambda0;
 Lcom/android/server/display/DisplayAdapter$$ExternalSyntheticLambda1;
@@ -417,42 +399,50 @@
 Lcom/android/server/display/DisplayBlanker;
 Lcom/android/server/display/DisplayControl;
 Lcom/android/server/display/DisplayDevice;
+Lcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticLambda1;
+Lcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticOutline0;
 Lcom/android/server/display/DisplayDeviceConfig;
 Lcom/android/server/display/DisplayDeviceInfo;
 Lcom/android/server/display/DisplayDeviceRepository$Listener;
 Lcom/android/server/display/DisplayDeviceRepository;
 Lcom/android/server/display/DisplayGroup;
 Lcom/android/server/display/DisplayInfoProxy;
+Lcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda4;
+Lcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda5;
 Lcom/android/server/display/DisplayManagerService$1;
 Lcom/android/server/display/DisplayManagerService$2;
 Lcom/android/server/display/DisplayManagerService$BinderService;
 Lcom/android/server/display/DisplayManagerService$BrightnessPair;
 Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;
-Lcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;
 Lcom/android/server/display/DisplayManagerService$Injector;
 Lcom/android/server/display/DisplayManagerService$LocalService;
-Lcom/android/server/display/DisplayManagerService$LogicalDisplayListener;
 Lcom/android/server/display/DisplayManagerService$SyncRoot;
 Lcom/android/server/display/DisplayManagerService$UidImportanceListener;
 Lcom/android/server/display/DisplayManagerService;
 Lcom/android/server/display/DisplayManagerShellCommand;
-Lcom/android/server/display/ExternalDisplayPolicy$Injector;
-Lcom/android/server/display/ExternalDisplayPolicy$SkinThermalStatusObserver;
+Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;
+Lcom/android/server/display/DisplayPowerController$SettingsObserver;
+Lcom/android/server/display/DisplayPowerController;
+Lcom/android/server/display/DisplayPowerProximityStateController$DisplayPowerProximityStateHandler;
+Lcom/android/server/display/DisplayTopologyCoordinator;
 Lcom/android/server/display/ExternalDisplayPolicy;
+Lcom/android/server/display/ExternalDisplayStatsService$1$$ExternalSyntheticLambda0;
+Lcom/android/server/display/ExternalDisplayStatsService$1;
+Lcom/android/server/display/ExternalDisplayStatsService$2;
+Lcom/android/server/display/ExternalDisplayStatsService$Injector;
+Lcom/android/server/display/ExternalDisplayStatsService;
 Lcom/android/server/display/HighBrightnessModeMetadataMapper;
 Lcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;
-Lcom/android/server/display/LocalDisplayAdapter$DisplayEventListener;
 Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;
 Lcom/android/server/display/LocalDisplayAdapter$Injector;
+Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;
 Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;
 Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;
 Lcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;
 Lcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;
 Lcom/android/server/display/LocalDisplayAdapter;
 Lcom/android/server/display/LogicalDisplay;
-Lcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda0;
-Lcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda3;
-Lcom/android/server/display/LogicalDisplayMapper$Listener;
+Lcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda2;
 Lcom/android/server/display/LogicalDisplayMapper$LogicalDisplayMapperHandler;
 Lcom/android/server/display/LogicalDisplayMapper;
 Lcom/android/server/display/OverlayDisplayAdapter;
@@ -467,88 +457,75 @@
 Lcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;
 Lcom/android/server/display/VirtualDisplayAdapter;
 Lcom/android/server/display/WifiDisplayAdapter;
+Lcom/android/server/display/config/AutoBrightness;
 Lcom/android/server/display/config/AutoBrightnessModeName;
 Lcom/android/server/display/config/AutoBrightnessSettingName;
 Lcom/android/server/display/config/DisplayBrightnessMappingConfig;
+Lcom/android/server/display/config/DisplayConfiguration;
+Lcom/android/server/display/config/HbmTiming;
+Lcom/android/server/display/config/HdrBrightnessData;
+Lcom/android/server/display/config/HighBrightnessMode;
+Lcom/android/server/display/config/HighBrightnessModeData;
+Lcom/android/server/display/config/HysteresisLevels;
+Lcom/android/server/display/config/LuxToBrightnessMapping;
+Lcom/android/server/display/config/NitsMap;
+Lcom/android/server/display/config/NonNegativeFloatToFloatMap;
+Lcom/android/server/display/config/NonNegativeFloatToFloatPoint;
+Lcom/android/server/display/config/Point;
+Lcom/android/server/display/config/PredefinedBrightnessLimitNames;
+Lcom/android/server/display/config/RefreshRateData;
 Lcom/android/server/display/config/SensorData;
+Lcom/android/server/display/config/SupportedModeData;
 Lcom/android/server/display/config/ThermalStatus;
+Lcom/android/server/display/config/XmlParser;
 Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda0;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda10;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda11;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda12;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda13;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda14;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda15;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda16;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda17;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda18;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda19;
 Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda20;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda2;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda3;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda4;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda5;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda6;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda7;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda8;
-Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda9;
-Lcom/android/server/display/feature/DisplayManagerFlags$FlagState-IA;
 Lcom/android/server/display/feature/DisplayManagerFlags$FlagState;
 Lcom/android/server/display/feature/DisplayManagerFlags;
-Lcom/android/server/display/layout/DisplayIdProducer;
 Lcom/android/server/display/layout/Layout$Display;
 Lcom/android/server/display/layout/Layout;
 Lcom/android/server/display/mode/DisplayModeDirector$$ExternalSyntheticLambda0;
 Lcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda10;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda11;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda12;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda13;
+Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda0;
+Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda1;
 Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda2;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda5;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda6;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda7;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda8;
-Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda9;
 Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$1;
 Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener$1;
 Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;
 Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;
 Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;
-Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda0;
-Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda1;
-Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda2;
-Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda3;
 Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;
 Lcom/android/server/display/mode/DisplayModeDirector$DisplayModeDirectorHandler;
 Lcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;
 Lcom/android/server/display/mode/DisplayModeDirector$HbmObserver;
 Lcom/android/server/display/mode/DisplayModeDirector$Injector;
 Lcom/android/server/display/mode/DisplayModeDirector$RealInjector;
-Lcom/android/server/display/mode/DisplayModeDirector$SensorObserver;
+Lcom/android/server/display/mode/DisplayModeDirector$SettingsObserver$1;
 Lcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;
 Lcom/android/server/display/mode/DisplayModeDirector$UdfpsObserver;
 Lcom/android/server/display/mode/DisplayModeDirector;
+Lcom/android/server/display/mode/ProximitySensorObserver;
 Lcom/android/server/display/mode/RefreshRateVote$PhysicalVote;
 Lcom/android/server/display/mode/RefreshRateVote$RenderVote;
 Lcom/android/server/display/mode/RefreshRateVote;
 Lcom/android/server/display/mode/SkinThermalStatusObserver;
-Lcom/android/server/display/mode/SupportedModesVote;
+Lcom/android/server/display/mode/SupportedRefreshRatesVote;
+Lcom/android/server/display/mode/SyntheticModeManager;
+Lcom/android/server/display/mode/SystemRequestObserver$1;
+Lcom/android/server/display/mode/SystemRequestObserver;
 Lcom/android/server/display/mode/Vote;
 Lcom/android/server/display/mode/VotesStatsReporter;
-Lcom/android/server/display/mode/VotesStorage$Listener;
 Lcom/android/server/display/mode/VotesStorage;
-Lcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector$Listener;
 Lcom/android/server/display/notifications/DisplayNotificationManager$1;
 Lcom/android/server/display/notifications/DisplayNotificationManager$Injector;
 Lcom/android/server/display/notifications/DisplayNotificationManager;
+Lcom/android/server/display/plugin/PluginManager$Injector;
+Lcom/android/server/display/plugin/PluginManager;
+Lcom/android/server/display/plugin/PluginStorage;
+Lcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;
 Lcom/android/server/display/utils/AmbientFilter;
 Lcom/android/server/display/utils/DebugUtils;
 Lcom/android/server/display/utils/DeviceConfigParsingUtils;
-Lcom/android/server/display/utils/Plog$SystemPlog;
-Lcom/android/server/display/utils/Plog;
 Lcom/android/server/firewall/AndFilter$1;
 Lcom/android/server/firewall/AndFilter;
 Lcom/android/server/firewall/CategoryFilter$1;
@@ -556,7 +533,6 @@
 Lcom/android/server/firewall/Filter;
 Lcom/android/server/firewall/FilterFactory;
 Lcom/android/server/firewall/FilterList;
-Lcom/android/server/firewall/IntentFirewall$AMSInterface;
 Lcom/android/server/firewall/IntentFirewall$FirewallHandler;
 Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;
 Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;
@@ -571,31 +547,18 @@
 Lcom/android/server/firewall/PortFilter;
 Lcom/android/server/firewall/SenderFilter$1;
 Lcom/android/server/firewall/SenderFilter$2;
-Lcom/android/server/firewall/SenderFilter$3;
-Lcom/android/server/firewall/SenderFilter$4;
-Lcom/android/server/firewall/SenderFilter$5;
 Lcom/android/server/firewall/SenderFilter;
 Lcom/android/server/firewall/SenderPackageFilter$1;
 Lcom/android/server/firewall/SenderPackageFilter;
 Lcom/android/server/firewall/SenderPermissionFilter$1;
 Lcom/android/server/firewall/SenderPermissionFilter;
-Lcom/android/server/firewall/StringFilter$10;
 Lcom/android/server/firewall/StringFilter$1;
-Lcom/android/server/firewall/StringFilter$2;
-Lcom/android/server/firewall/StringFilter$3;
-Lcom/android/server/firewall/StringFilter$4;
-Lcom/android/server/firewall/StringFilter$5;
-Lcom/android/server/firewall/StringFilter$6;
-Lcom/android/server/firewall/StringFilter$7;
-Lcom/android/server/firewall/StringFilter$8;
-Lcom/android/server/firewall/StringFilter$9;
 Lcom/android/server/firewall/StringFilter$ContainsFilter;
 Lcom/android/server/firewall/StringFilter$EqualsFilter;
 Lcom/android/server/firewall/StringFilter$IsNullFilter;
 Lcom/android/server/firewall/StringFilter$PatternStringFilter;
 Lcom/android/server/firewall/StringFilter$RegexFilter;
 Lcom/android/server/firewall/StringFilter$StartsWithFilter;
-Lcom/android/server/firewall/StringFilter$ValueProvider;
 Lcom/android/server/firewall/StringFilter;
 Lcom/android/server/flags/DynamicFlagBinderDelegate$$ExternalSyntheticLambda0;
 Lcom/android/server/flags/DynamicFlagBinderDelegate$$ExternalSyntheticLambda1;
@@ -607,23 +570,32 @@
 Lcom/android/server/flags/FeatureFlagsService;
 Lcom/android/server/flags/FlagCache$$ExternalSyntheticLambda0;
 Lcom/android/server/flags/FlagCache;
-Lcom/android/server/flags/FlagOverrideStore$FlagChangeCallback;
 Lcom/android/server/flags/FlagOverrideStore;
 Lcom/android/server/flags/FlagsShellCommand;
 Lcom/android/server/flags/GlobalSettingsProxy;
-Lcom/android/server/flags/SettingsProxy;
 Lcom/android/server/gpu/GpuService;
 Lcom/android/server/graphics/fonts/FontManagerService$Lifecycle;
-Lcom/android/server/input/InputManagerInternal;
-Lcom/android/server/input/InputManagerService$4;
+Lcom/android/server/input/BatteryController$State;
+Lcom/android/server/input/InputManagerService$2;
 Lcom/android/server/input/InputManagerService$AdditionalDisplayInputProperties;
 Lcom/android/server/input/InputManagerService$InputFilterHost;
 Lcom/android/server/input/InputManagerService$InputManagerHandler;
-Lcom/android/server/input/InputManagerService$LocalService;
 Lcom/android/server/input/InputManagerService;
+Lcom/android/server/input/InputSettingsObserver$1;
+Lcom/android/server/input/InputSettingsObserver;
 Lcom/android/server/input/InputShellCommand;
+Lcom/android/server/input/KeyGestureController$SettingsObserver;
+Lcom/android/server/input/KeyboardBacklightController$1;
+Lcom/android/server/input/KeyboardGlyphManager$1;
+Lcom/android/server/input/KeyboardLayoutManager$1;
+Lcom/android/server/input/KeyboardLedController$1;
 Lcom/android/server/input/NativeInputManagerService$NativeImpl;
 Lcom/android/server/input/NativeInputManagerService;
+Lcom/android/server/input/TouchpadFingerState;
+Lcom/android/server/input/TouchpadHardwareProperties;
+Lcom/android/server/input/TouchpadHardwareState;
+Lcom/android/server/input/UEventManager$UEventListener$1;
+Lcom/android/server/input/UEventManager$UEventListener;
 Lcom/android/server/input/debug/FocusEventDebugView;
 Lcom/android/server/lights/LightsManager;
 Lcom/android/server/lights/LightsService$1;
@@ -644,14 +616,12 @@
 Lcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;
 Lcom/android/server/os/DeviceIdentifiersPolicyService;
 Lcom/android/server/pdb/PersistentDataBlockService;
+Lcom/android/server/permission/PermissionManagerLocal;
 Lcom/android/server/permission/access/AccessCheckingService;
-Lcom/android/server/permission/access/AccessPersistence$Companion;
 Lcom/android/server/permission/access/AccessPersistence$WriteHandler;
 Lcom/android/server/permission/access/AccessPersistence;
-Lcom/android/server/permission/access/AccessPolicy$Companion;
 Lcom/android/server/permission/access/AccessPolicy;
 Lcom/android/server/permission/access/AccessState;
-Lcom/android/server/permission/access/ExternalState;
 Lcom/android/server/permission/access/GetStateScope;
 Lcom/android/server/permission/access/MutableAccessState;
 Lcom/android/server/permission/access/MutableExternalState;
@@ -659,47 +629,24 @@
 Lcom/android/server/permission/access/MutableUserState;
 Lcom/android/server/permission/access/MutateStateScope;
 Lcom/android/server/permission/access/SchemePolicy;
-Lcom/android/server/permission/access/SystemState;
-Lcom/android/server/permission/access/UserState;
 Lcom/android/server/permission/access/WritableState;
-Lcom/android/server/permission/access/appop/AppIdAppOpMigration$Companion;
-Lcom/android/server/permission/access/appop/AppIdAppOpMigration;
-Lcom/android/server/permission/access/appop/AppIdAppOpPersistence$Companion;
 Lcom/android/server/permission/access/appop/AppIdAppOpPersistence;
-Lcom/android/server/permission/access/appop/AppIdAppOpPolicy$Companion;
-Lcom/android/server/permission/access/appop/AppIdAppOpPolicy$OnAppOpModeChangedListener;
 Lcom/android/server/permission/access/appop/AppIdAppOpPolicy;
 Lcom/android/server/permission/access/appop/AppIdAppOpUpgrade;
 Lcom/android/server/permission/access/appop/AppOpService$OnAppIdAppOpModeChangedListener;
 Lcom/android/server/permission/access/appop/AppOpService$OnPackageAppOpModeChangedListener;
 Lcom/android/server/permission/access/appop/AppOpService;
-Lcom/android/server/permission/access/appop/BaseAppOpPersistence$Companion;
 Lcom/android/server/permission/access/appop/BaseAppOpPersistence;
 Lcom/android/server/permission/access/appop/BaseAppOpPolicy;
-Lcom/android/server/permission/access/appop/PackageAppOpMigration$Companion;
-Lcom/android/server/permission/access/appop/PackageAppOpMigration;
-Lcom/android/server/permission/access/appop/PackageAppOpPersistence$Companion;
 Lcom/android/server/permission/access/appop/PackageAppOpPersistence;
-Lcom/android/server/permission/access/appop/PackageAppOpPolicy$Companion;
-Lcom/android/server/permission/access/appop/PackageAppOpPolicy$OnAppOpModeChangedListener;
 Lcom/android/server/permission/access/appop/PackageAppOpPolicy;
 Lcom/android/server/permission/access/appop/PackageAppOpUpgrade;
-Lcom/android/server/permission/access/collection/ArraySetExtensionsKt;
 Lcom/android/server/permission/access/immutable/Immutable;
-Lcom/android/server/permission/access/immutable/IndexedList;
 Lcom/android/server/permission/access/immutable/IndexedListSet;
 Lcom/android/server/permission/access/immutable/IndexedMap;
-Lcom/android/server/permission/access/immutable/IndexedReferenceMap;
-Lcom/android/server/permission/access/immutable/IndexedSet;
 Lcom/android/server/permission/access/immutable/IndexedSetExtensionsKt;
 Lcom/android/server/permission/access/immutable/IntMap;
-Lcom/android/server/permission/access/immutable/IntMapExtensionsKt;
-Lcom/android/server/permission/access/immutable/IntMapKt;
-Lcom/android/server/permission/access/immutable/IntReferenceMap;
 Lcom/android/server/permission/access/immutable/IntReferenceMapExtensionsKt;
-Lcom/android/server/permission/access/immutable/IntSet;
-Lcom/android/server/permission/access/immutable/IntSetExtensionsKt;
-Lcom/android/server/permission/access/immutable/MutableIndexedList;
 Lcom/android/server/permission/access/immutable/MutableIndexedListSet;
 Lcom/android/server/permission/access/immutable/MutableIndexedMap;
 Lcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;
@@ -708,44 +655,23 @@
 Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
 Lcom/android/server/permission/access/immutable/MutableIntSet;
 Lcom/android/server/permission/access/immutable/MutableReference;
-Lcom/android/server/permission/access/permission/AppIdPermissionMigration$Companion;
-Lcom/android/server/permission/access/permission/AppIdPermissionMigration;
-Lcom/android/server/permission/access/permission/AppIdPermissionPersistence$Companion;
 Lcom/android/server/permission/access/permission/AppIdPermissionPersistence;
-Lcom/android/server/permission/access/permission/AppIdPermissionPolicy$Companion;
+Lcom/android/server/permission/access/permission/AppIdPermissionPolicy$OnPermissionFlagsChangedListener;
 Lcom/android/server/permission/access/permission/AppIdPermissionPolicy;
-Lcom/android/server/permission/access/permission/AppIdPermissionUpgrade$Companion;
 Lcom/android/server/permission/access/permission/AppIdPermissionUpgrade;
-Lcom/android/server/permission/access/permission/DevicePermissionPersistence$Companion;
-Lcom/android/server/permission/access/permission/DevicePermissionPersistence;
-Lcom/android/server/permission/access/permission/DevicePermissionPolicy$Companion;
+Lcom/android/server/permission/access/permission/DevicePermissionPolicy$OnDevicePermissionFlagsChangedListener;
 Lcom/android/server/permission/access/permission/DevicePermissionPolicy;
-Lcom/android/server/permission/access/permission/Permission$Companion;
 Lcom/android/server/permission/access/permission/Permission;
-Lcom/android/server/permission/access/permission/PermissionService$Companion;
+Lcom/android/server/permission/access/permission/PermissionManagerLocalImpl;
+Lcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;
+Lcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;
 Lcom/android/server/permission/access/permission/PermissionService;
-Lcom/android/server/permission/access/util/PermissionApex;
 Lcom/android/server/permission/jarjar/kotlin/Pair;
-Lcom/android/server/permission/jarjar/kotlin/TuplesKt;
 Lcom/android/server/permission/jarjar/kotlin/UninitializedPropertyAccessException;
-Lcom/android/server/permission/jarjar/kotlin/collections/ArraysKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/ArraysKt__ArraysJVMKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/ArraysKt__ArraysKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/ArraysKt___ArraysJvmKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/ArraysKt___ArraysKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/ArraysUtilJVM;
+Lcom/android/server/permission/jarjar/kotlin/collections/EmptyList;
 Lcom/android/server/permission/jarjar/kotlin/collections/EmptyMap;
-Lcom/android/server/permission/jarjar/kotlin/collections/EmptySet;
-Lcom/android/server/permission/jarjar/kotlin/collections/MapsKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/MapsKt__MapWithDefaultKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/MapsKt__MapsJVMKt;
 Lcom/android/server/permission/jarjar/kotlin/collections/MapsKt__MapsKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/MapsKt___MapsJvmKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/MapsKt___MapsKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/SetsKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/SetsKt__SetsJVMKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/SetsKt__SetsKt;
-Lcom/android/server/permission/jarjar/kotlin/collections/SetsKt___SetsKt;
+Lcom/android/server/permission/jarjar/kotlin/io/CloseableKt;
 Lcom/android/server/permission/jarjar/kotlin/jdk7/AutoCloseableKt;
 Lcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;
 Lcom/android/server/pm/AbstractStatsBase$1;
@@ -753,6 +679,7 @@
 Lcom/android/server/pm/ApexManager$1;
 Lcom/android/server/pm/ApexManager$ActiveApexInfo;
 Lcom/android/server/pm/ApexManager$ApexManagerImpl;
+Lcom/android/server/pm/ApexManager$ScanResult;
 Lcom/android/server/pm/ApexManager;
 Lcom/android/server/pm/AppDataHelper;
 Lcom/android/server/pm/AppIdSettingMap;
@@ -761,10 +688,7 @@
 Lcom/android/server/pm/AppsFilterImpl$1;
 Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;
 Lcom/android/server/pm/AppsFilterImpl;
-Lcom/android/server/pm/AppsFilterLocked;
-Lcom/android/server/pm/AppsFilterSnapshot;
 Lcom/android/server/pm/AppsFilterSnapshotImpl;
-Lcom/android/server/pm/BackgroundDexOptService;
 Lcom/android/server/pm/BroadcastHelper;
 Lcom/android/server/pm/ChangedPackagesTracker;
 Lcom/android/server/pm/CompilerStats;
@@ -773,19 +697,18 @@
 Lcom/android/server/pm/ComputerEngine$Settings;
 Lcom/android/server/pm/ComputerEngine;
 Lcom/android/server/pm/ComputerLocked;
+Lcom/android/server/pm/CrossProfileIntentFilter$$ExternalSyntheticOutline0;
 Lcom/android/server/pm/CrossProfileIntentFilter;
-Lcom/android/server/pm/CrossProfileIntentFilterHelper;
 Lcom/android/server/pm/CrossProfileIntentResolver;
 Lcom/android/server/pm/CrossProfileIntentResolverEngine;
 Lcom/android/server/pm/CrossProfileResolver;
 Lcom/android/server/pm/DataLoaderManagerService$DataLoaderManagerBinderService;
 Lcom/android/server/pm/DataLoaderManagerService;
 Lcom/android/server/pm/DefaultAppProvider;
-Lcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;
-Lcom/android/server/pm/DefaultCrossProfileIntentFilter-IA;
 Lcom/android/server/pm/DefaultCrossProfileIntentFilter;
 Lcom/android/server/pm/DefaultCrossProfileIntentFiltersUtils;
 Lcom/android/server/pm/DefaultCrossProfileResolver;
+Lcom/android/server/pm/DeletePackageAction;
 Lcom/android/server/pm/DeletePackageHelper;
 Lcom/android/server/pm/DexOptHelper$1;
 Lcom/android/server/pm/DexOptHelper$DexoptDoneHandler;
@@ -795,7 +718,10 @@
 Lcom/android/server/pm/FeatureConfig;
 Lcom/android/server/pm/FreeStorageHelper;
 Lcom/android/server/pm/InitAppsHelper;
+Lcom/android/server/pm/InstallArgs;
+Lcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda5;
 Lcom/android/server/pm/InstallPackageHelper;
+Lcom/android/server/pm/InstallRequest;
 Lcom/android/server/pm/InstallSource;
 Lcom/android/server/pm/Installer$$ExternalSyntheticLambda0;
 Lcom/android/server/pm/Installer$InstallerException;
@@ -805,102 +731,75 @@
 Lcom/android/server/pm/InstantAppRegistry$2;
 Lcom/android/server/pm/InstantAppRegistry$CookiePersistence;
 Lcom/android/server/pm/InstantAppRegistry;
+Lcom/android/server/pm/InstantAppResolverConnection$ConnectionException;
 Lcom/android/server/pm/InstantAppResolverConnection;
 Lcom/android/server/pm/InstructionSets;
 Lcom/android/server/pm/KeySetHandle;
-Lcom/android/server/pm/KeySetManagerService$PublicKeyHandle-IA;
 Lcom/android/server/pm/KeySetManagerService$PublicKeyHandle;
 Lcom/android/server/pm/KeySetManagerService;
 Lcom/android/server/pm/KnownPackages;
 Lcom/android/server/pm/ModuleInfoProvider;
 Lcom/android/server/pm/MovePackageHelper$MoveCallbacks;
 Lcom/android/server/pm/NoFilteringResolver;
+Lcom/android/server/pm/PackageAbiHelper$Abis;
+Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
 Lcom/android/server/pm/PackageAbiHelper;
 Lcom/android/server/pm/PackageAbiHelperImpl;
+Lcom/android/server/pm/PackageArchiver$FixedSizeBitmapDrawable;
 Lcom/android/server/pm/PackageArchiver;
 Lcom/android/server/pm/PackageDexOptimizer$1;
-Lcom/android/server/pm/PackageDexOptimizer$ForcedUpdatePackageDexOptimizer;
 Lcom/android/server/pm/PackageDexOptimizer$Injector;
 Lcom/android/server/pm/PackageDexOptimizer;
 Lcom/android/server/pm/PackageHandler;
+Lcom/android/server/pm/PackageInstallerService$Callbacks;
 Lcom/android/server/pm/PackageInstallerService;
+Lcom/android/server/pm/PackageInstallerSession$1;
+Lcom/android/server/pm/PackageInstallerSession;
 Lcom/android/server/pm/PackageKeySetData;
 Lcom/android/server/pm/PackageManagerException;
-Lcom/android/server/pm/PackageManagerInternalBase;
 Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;
 Lcom/android/server/pm/PackageManagerLocal;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda10;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda12;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda13;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda14;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda15;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda16;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda18;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda19;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda1;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda20;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda21;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda22;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda23;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda24;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda25;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda26;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda27;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda28;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda29;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda2;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda30;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda32;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda33;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda34;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda35;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda36;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda37;
+Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda31;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda38;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda3;
 Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda42;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda43;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda50;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda51;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda6;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda7;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda8;
-Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda9;
+Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda49;
 Lcom/android/server/pm/PackageManagerService$1;
 Lcom/android/server/pm/PackageManagerService$2;
 Lcom/android/server/pm/PackageManagerService$3;
 Lcom/android/server/pm/PackageManagerService$4;
 Lcom/android/server/pm/PackageManagerService$5;
-Lcom/android/server/pm/PackageManagerService$6;
 Lcom/android/server/pm/PackageManagerService$DefaultSystemWrapper;
 Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
 Lcom/android/server/pm/PackageManagerService$Snapshot;
 Lcom/android/server/pm/PackageManagerService;
 Lcom/android/server/pm/PackageManagerServiceCompilerMapping;
 Lcom/android/server/pm/PackageManagerServiceInjector$Producer;
-Lcom/android/server/pm/PackageManagerServiceInjector$ProducerWithArgument;
-Lcom/android/server/pm/PackageManagerServiceInjector$ServiceProducer;
 Lcom/android/server/pm/PackageManagerServiceInjector$Singleton;
-Lcom/android/server/pm/PackageManagerServiceInjector$SystemWrapper;
 Lcom/android/server/pm/PackageManagerServiceInjector;
 Lcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda0;
-Lcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda1;
-Lcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda2;
 Lcom/android/server/pm/PackageManagerServiceUtils;
+Lcom/android/server/pm/PackageManagerShellCommand;
 Lcom/android/server/pm/PackageManagerShellCommandDataLoader;
+Lcom/android/server/pm/PackageManagerTracedLock$RawLock;
 Lcom/android/server/pm/PackageManagerTracedLock;
+Lcom/android/server/pm/PackageMetrics;
 Lcom/android/server/pm/PackageMonitorCallbackHelper;
 Lcom/android/server/pm/PackageObserverHelper;
 Lcom/android/server/pm/PackageProperty;
 Lcom/android/server/pm/PackageSender;
-Lcom/android/server/pm/PackageSessionProvider;
 Lcom/android/server/pm/PackageSetting$1;
 Lcom/android/server/pm/PackageSetting;
 Lcom/android/server/pm/PackageSignatures;
 Lcom/android/server/pm/PackageUsage;
+Lcom/android/server/pm/ParallelPackageParser$$ExternalSyntheticLambda0;
+Lcom/android/server/pm/ParallelPackageParser$ParseResult;
+Lcom/android/server/pm/ParallelPackageParser;
 Lcom/android/server/pm/PendingPackageBroadcasts;
 Lcom/android/server/pm/PersistentPreferredActivity;
 Lcom/android/server/pm/PersistentPreferredIntentResolver;
@@ -910,7 +809,6 @@
 Lcom/android/server/pm/PreferredActivity$1;
 Lcom/android/server/pm/PreferredActivity;
 Lcom/android/server/pm/PreferredActivityHelper;
-Lcom/android/server/pm/PreferredComponent$Callbacks;
 Lcom/android/server/pm/PreferredComponent;
 Lcom/android/server/pm/PreferredIntentResolver$1;
 Lcom/android/server/pm/PreferredIntentResolver;
@@ -918,6 +816,8 @@
 Lcom/android/server/pm/ProcessLoggingHandler;
 Lcom/android/server/pm/ProtectedPackages;
 Lcom/android/server/pm/ReconcileFailure;
+Lcom/android/server/pm/ReconcilePackageUtils;
+Lcom/android/server/pm/ReconciledPackage;
 Lcom/android/server/pm/RemovePackageHelper;
 Lcom/android/server/pm/ResilientAtomicFile$ReadEventLogger;
 Lcom/android/server/pm/ResilientAtomicFile;
@@ -926,23 +826,21 @@
 Lcom/android/server/pm/SELinuxMMAC;
 Lcom/android/server/pm/ScanPackageUtils;
 Lcom/android/server/pm/ScanPartition;
+Lcom/android/server/pm/ScanRequest;
+Lcom/android/server/pm/ScanResult;
 Lcom/android/server/pm/SettingBase;
 Lcom/android/server/pm/Settings$1;
 Lcom/android/server/pm/Settings$2;
 Lcom/android/server/pm/Settings$3;
+Lcom/android/server/pm/Settings$KeySetToValueMap;
 Lcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;
-Lcom/android/server/pm/Settings$RuntimePermissionPersistence$PersistenceHandler;
 Lcom/android/server/pm/Settings$RuntimePermissionPersistence;
 Lcom/android/server/pm/Settings$VersionInfo;
 Lcom/android/server/pm/Settings;
-Lcom/android/server/pm/SettingsXml$ChildSection;
-Lcom/android/server/pm/SettingsXml$ReadSection;
 Lcom/android/server/pm/SettingsXml$ReadSectionImpl;
-Lcom/android/server/pm/SettingsXml;
 Lcom/android/server/pm/SharedLibrariesImpl$1;
 Lcom/android/server/pm/SharedLibrariesImpl$2;
 Lcom/android/server/pm/SharedLibrariesImpl;
-Lcom/android/server/pm/SharedLibrariesRead;
 Lcom/android/server/pm/SharedUserSetting$1;
 Lcom/android/server/pm/SharedUserSetting$2;
 Lcom/android/server/pm/SharedUserSetting;
@@ -950,6 +848,8 @@
 Lcom/android/server/pm/SnapshotStatistics$BinMap;
 Lcom/android/server/pm/SnapshotStatistics$Stats;
 Lcom/android/server/pm/SnapshotStatistics;
+Lcom/android/server/pm/StagingManager$2;
+Lcom/android/server/pm/StagingManager$Lifecycle;
 Lcom/android/server/pm/StorageEventHelper;
 Lcom/android/server/pm/SuspendPackageHelper;
 Lcom/android/server/pm/SystemDeleteException;
@@ -957,12 +857,11 @@
 Lcom/android/server/pm/UserDataPreparer;
 Lcom/android/server/pm/UserJourneyLogger;
 Lcom/android/server/pm/UserManagerInternal$UserLifecycleListener;
+Lcom/android/server/pm/UserManagerInternal$UserRestrictionsListener;
 Lcom/android/server/pm/UserManagerInternal;
 Lcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda1;
-Lcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda4;
+Lcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda3;
 Lcom/android/server/pm/UserManagerService$1;
-Lcom/android/server/pm/UserManagerService$2;
-Lcom/android/server/pm/UserManagerService$3;
 Lcom/android/server/pm/UserManagerService$LocalService;
 Lcom/android/server/pm/UserManagerService$MainHandler;
 Lcom/android/server/pm/UserManagerService$SettingsObserver;
@@ -974,7 +873,6 @@
 Lcom/android/server/pm/UserRestrictionsUtils;
 Lcom/android/server/pm/UserSystemPackageInstaller;
 Lcom/android/server/pm/UserTypeDetails$Builder;
-Lcom/android/server/pm/UserTypeDetails-IA;
 Lcom/android/server/pm/UserTypeDetails;
 Lcom/android/server/pm/UserTypeFactory;
 Lcom/android/server/pm/UserVisibilityMediator;
@@ -984,7 +882,6 @@
 Lcom/android/server/pm/WatchedIntentResolver;
 Lcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;
 Lcom/android/server/pm/dex/ArtManagerService;
-Lcom/android/server/pm/dex/ArtStatsLogUtils$ArtStatsLogger;
 Lcom/android/server/pm/dex/DexManager;
 Lcom/android/server/pm/dex/DynamicCodeLogger;
 Lcom/android/server/pm/dex/PackageDexUsage;
@@ -992,48 +889,56 @@
 Lcom/android/server/pm/local/PackageManagerLocalImpl$BaseSnapshotImpl;
 Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;
 Lcom/android/server/pm/local/PackageManagerLocalImpl;
+Lcom/android/server/pm/parsing/PackageCacher;
+Lcom/android/server/pm/parsing/PackageInfoUtils;
+Lcom/android/server/pm/parsing/library/AndroidHidlUpdater;
+Lcom/android/server/pm/parsing/library/AndroidNetIpSecIkeUpdater;
+Lcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;
+Lcom/android/server/pm/parsing/library/ApexSharedLibraryUpdater;
+Lcom/android/server/pm/parsing/library/ComGoogleAndroidMapsUpdater;
+Lcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;
+Lcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;
+Lcom/android/server/pm/parsing/library/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;
+Lcom/android/server/pm/parsing/library/PackageBackwardCompatibility;
+Lcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;
+Lcom/android/server/pm/parsing/pkg/AndroidPackageUtils;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$2;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DelayingPackageManagerCache;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;
 Lcom/android/server/pm/permission/LegacyPermission;
-Lcom/android/server/pm/permission/LegacyPermissionDataProvider;
-Lcom/android/server/pm/permission/LegacyPermissionManagerInternal;
 Lcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;
 Lcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;
 Lcom/android/server/pm/permission/LegacyPermissionManagerService;
 Lcom/android/server/pm/permission/LegacyPermissionSettings;
 Lcom/android/server/pm/permission/LegacyPermissionState;
+Lcom/android/server/pm/permission/OneTimePermissionUserManager$1;
 Lcom/android/server/pm/permission/PermissionAllowlist;
 Lcom/android/server/pm/permission/PermissionManagerService$AttributionSourceRegistry;
 Lcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;
 Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;
 Lcom/android/server/pm/permission/PermissionManagerService;
 Lcom/android/server/pm/permission/PermissionManagerServiceInterface;
-Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-Lcom/android/server/pm/permission/PermissionMigrationHelper;
 Lcom/android/server/pm/permission/PermissionMigrationHelperImpl;
 Lcom/android/server/pm/pkg/ArchiveState;
 Lcom/android/server/pm/pkg/PackageState;
 Lcom/android/server/pm/pkg/PackageStateInternal;
 Lcom/android/server/pm/pkg/PackageStateUnserialized;
+Lcom/android/server/pm/pkg/PackageStateUtils;
 Lcom/android/server/pm/pkg/PackageUserState;
+Lcom/android/server/pm/pkg/PackageUserStateDefault;
 Lcom/android/server/pm/pkg/PackageUserStateImpl$1;
 Lcom/android/server/pm/pkg/PackageUserStateImpl;
 Lcom/android/server/pm/pkg/PackageUserStateInternal;
-Lcom/android/server/pm/pkg/SharedUserApi;
 Lcom/android/server/pm/pkg/SuspendParams;
 Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;
 Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;
 Lcom/android/server/pm/pkg/mutate/PackageStateMutator;
-Lcom/android/server/pm/pkg/mutate/PackageStateWrite;
-Lcom/android/server/pm/pkg/mutate/PackageUserStateWrite;
 Lcom/android/server/pm/resolution/ComponentResolver$$ExternalSyntheticLambda0;
 Lcom/android/server/pm/resolution/ComponentResolver$1;
 Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;
 Lcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;
-Lcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;
 Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;
 Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;
 Lcom/android/server/pm/resolution/ComponentResolver;
@@ -1045,30 +950,25 @@
 Lcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda0;
 Lcom/android/server/pm/verify/domain/DomainVerificationCollector;
 Lcom/android/server/pm/verify/domain/DomainVerificationDebug;
-Lcom/android/server/pm/verify/domain/DomainVerificationEnforcer$Callback;
 Lcom/android/server/pm/verify/domain/DomainVerificationEnforcer;
 Lcom/android/server/pm/verify/domain/DomainVerificationLegacySettings$LegacyState;
 Lcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;
-Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal$Connection;
 Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;
 Lcom/android/server/pm/verify/domain/DomainVerificationManagerStub;
 Lcom/android/server/pm/verify/domain/DomainVerificationPersistence$ReadResult;
 Lcom/android/server/pm/verify/domain/DomainVerificationPersistence;
 Lcom/android/server/pm/verify/domain/DomainVerificationService;
 Lcom/android/server/pm/verify/domain/DomainVerificationSettings;
-Lcom/android/server/pm/verify/domain/DomainVerificationShell$Callback;
 Lcom/android/server/pm/verify/domain/DomainVerificationShell;
+Lcom/android/server/pm/verify/domain/DomainVerificationUtils$$ExternalSyntheticLambda0;
+Lcom/android/server/pm/verify/domain/DomainVerificationUtils;
+Lcom/android/server/pm/verify/domain/models/DomainVerificationInternalUserState;
 Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;
 Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;
-Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy$BaseConnection;
 Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;
 Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyUnavailable;
-Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1$Connection;
-Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2$Connection;
-Lcom/android/server/policy/WindowManagerPolicy$DisplayContentInfo;
+Lcom/android/server/policy/PhoneWindowManager$PolicyHandler;
 Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;
-Lcom/android/server/policy/WindowManagerPolicy$WindowState;
-Lcom/android/server/power/AmbientDisplaySuppressionController$AmbientDisplaySuppressionChangedCallback;
 Lcom/android/server/power/AmbientDisplaySuppressionController;
 Lcom/android/server/power/AttentionDetector$1;
 Lcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;
@@ -1081,8 +981,6 @@
 Lcom/android/server/power/LowPowerStandbyController$$ExternalSyntheticLambda1;
 Lcom/android/server/power/LowPowerStandbyController$$ExternalSyntheticLambda2;
 Lcom/android/server/power/LowPowerStandbyController$1;
-Lcom/android/server/power/LowPowerStandbyController$2;
-Lcom/android/server/power/LowPowerStandbyController$3;
 Lcom/android/server/power/LowPowerStandbyController$Clock;
 Lcom/android/server/power/LowPowerStandbyController$DeviceConfigWrapper;
 Lcom/android/server/power/LowPowerStandbyController$LocalService;
@@ -1092,8 +990,7 @@
 Lcom/android/server/power/LowPowerStandbyController$SettingsObserver;
 Lcom/android/server/power/LowPowerStandbyController$TempAllowlistChangeListener;
 Lcom/android/server/power/LowPowerStandbyController;
-Lcom/android/server/power/LowPowerStandbyControllerInternal;
-Lcom/android/server/power/PowerGroup$PowerGroupListener;
+Lcom/android/server/power/Notifier$NotifierHandler;
 Lcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda0;
 Lcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda1;
 Lcom/android/server/power/PowerManagerService$1;
@@ -1104,11 +1001,8 @@
 Lcom/android/server/power/PowerManagerService$Clock;
 Lcom/android/server/power/PowerManagerService$Constants;
 Lcom/android/server/power/PowerManagerService$DockReceiver;
-Lcom/android/server/power/PowerManagerService$DreamReceiver;
 Lcom/android/server/power/PowerManagerService$Injector$$ExternalSyntheticLambda0;
 Lcom/android/server/power/PowerManagerService$Injector$1;
-Lcom/android/server/power/PowerManagerService$Injector$2;
-Lcom/android/server/power/PowerManagerService$Injector$3;
 Lcom/android/server/power/PowerManagerService$Injector;
 Lcom/android/server/power/PowerManagerService$LocalService;
 Lcom/android/server/power/PowerManagerService$NativeWrapper;
@@ -1120,17 +1014,19 @@
 Lcom/android/server/power/PowerManagerService$SuspendBlockerImpl;
 Lcom/android/server/power/PowerManagerService$UserSwitchedReceiver;
 Lcom/android/server/power/PowerManagerService;
+Lcom/android/server/power/PowerManagerShellCommand$1;
 Lcom/android/server/power/PowerManagerShellCommand;
 Lcom/android/server/power/ScreenUndimDetector$InternalClock;
 Lcom/android/server/power/ScreenUndimDetector;
-Lcom/android/server/power/SuspendBlocker;
 Lcom/android/server/power/SystemPropertiesWrapper;
 Lcom/android/server/power/ThermalManagerService$1;
+Lcom/android/server/power/ThermalManagerService$2;
+Lcom/android/server/power/ThermalManagerService$HeadroomCallbackData;
 Lcom/android/server/power/ThermalManagerService$TemperatureWatcher;
 Lcom/android/server/power/ThermalManagerService$ThermalHal10Wrapper;
 Lcom/android/server/power/ThermalManagerService$ThermalHal11Wrapper;
-Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;
 Lcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;
+Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper$WrapperThermalChangedCallback;
 Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;
 Lcom/android/server/power/ThermalManagerService$ThermalShellCommand;
 Lcom/android/server/power/ThermalManagerService;
@@ -1138,37 +1034,25 @@
 Lcom/android/server/power/feature/PowerManagerFlags$$ExternalSyntheticLambda0;
 Lcom/android/server/power/feature/PowerManagerFlags$FlagState;
 Lcom/android/server/power/feature/PowerManagerFlags;
-Lcom/android/server/power/hint/HintManagerService$BinderService;
-Lcom/android/server/power/hint/HintManagerService$Injector;
-Lcom/android/server/power/hint/HintManagerService$MyUidObserver;
 Lcom/android/server/power/hint/HintManagerService$NativeWrapper;
-Lcom/android/server/power/hint/HintManagerService;
-Lcom/android/server/power/optimization/FeatureFlags;
-Lcom/android/server/power/optimization/FeatureFlagsImpl;
-Lcom/android/server/power/optimization/Flags;
-Lcom/android/server/power/stats/AggregatedPowerStatsConfig$1;
-Lcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;
-Lcom/android/server/power/stats/AggregatedPowerStatsConfig;
-Lcom/android/server/power/stats/AggregatedPowerStatsProcessor;
-Lcom/android/server/power/stats/AggregatedPowerStatsSection;
-Lcom/android/server/power/stats/BatteryChargeCalculator;
-Lcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda0;
-Lcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda5;
+Lcom/android/server/power/stats/AccumulatedBatteryUsageStatsSection$Reader;
+Lcom/android/server/power/stats/AccumulatedBatteryUsageStatsSection;
 Lcom/android/server/power/stats/BatteryExternalStatsWorker$1;
 Lcom/android/server/power/stats/BatteryExternalStatsWorker$2;
 Lcom/android/server/power/stats/BatteryExternalStatsWorker$Injector;
 Lcom/android/server/power/stats/BatteryExternalStatsWorker;
 Lcom/android/server/power/stats/BatteryStatsDumpHelperImpl;
-Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda10;
-Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda6;
-Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda7;
-Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda9;
+Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda2;
+Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda3;
+Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda4;
+Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda5;
 Lcom/android/server/power/stats/BatteryStatsImpl$1;
 Lcom/android/server/power/stats/BatteryStatsImpl$2;
-Lcom/android/server/power/stats/BatteryStatsImpl$3;
-Lcom/android/server/power/stats/BatteryStatsImpl$4;
+Lcom/android/server/power/stats/BatteryStatsImpl$5;
+Lcom/android/server/power/stats/BatteryStatsImpl$6;
+Lcom/android/server/power/stats/BatteryStatsImpl$7;
+Lcom/android/server/power/stats/BatteryStatsImpl$8;
 Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;
-Lcom/android/server/power/stats/BatteryStatsImpl$BatteryCallback;
 Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;
 Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;
 Lcom/android/server/power/stats/BatteryStatsImpl$BinderCallStats;
@@ -1179,15 +1063,12 @@
 Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;
 Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;
 Lcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;
-Lcom/android/server/power/stats/BatteryStatsImpl$EnergyStatsRetriever;
-Lcom/android/server/power/stats/BatteryStatsImpl$ExternalStatsSync;
 Lcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;
 Lcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;
 Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;
 Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;
 Lcom/android/server/power/stats/BatteryStatsImpl$MyHandler;
-Lcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;
-Lcom/android/server/power/stats/BatteryStatsImpl$PlatformIdleStateCallback;
+Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;
 Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;
 Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;
 Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
@@ -1197,8 +1078,6 @@
 Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
 Lcom/android/server/power/stats/BatteryStatsImpl$Timer;
 Lcom/android/server/power/stats/BatteryStatsImpl$Uid$1;
-Lcom/android/server/power/stats/BatteryStatsImpl$Uid$2;
-Lcom/android/server/power/stats/BatteryStatsImpl$Uid$3;
 Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;
 Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;
 Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;
@@ -1208,36 +1087,70 @@
 Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;
 Lcom/android/server/power/stats/BatteryStatsImpl;
 Lcom/android/server/power/stats/BatteryUsageStatsProvider;
+Lcom/android/server/power/stats/BatteryUsageStatsSection$Reader;
 Lcom/android/server/power/stats/BatteryUsageStatsSection;
 Lcom/android/server/power/stats/BluetoothPowerCalculator;
-Lcom/android/server/power/stats/CpuAggregatedPowerStatsProcessor;
+Lcom/android/server/power/stats/BluetoothPowerStatsCollector;
+Lcom/android/server/power/stats/CameraPowerStatsCollector;
 Lcom/android/server/power/stats/CpuPowerCalculator;
-Lcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda1;
-Lcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;
 Lcom/android/server/power/stats/CpuPowerStatsCollector$KernelCpuStatsReader;
 Lcom/android/server/power/stats/CpuPowerStatsCollector;
+Lcom/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector;
+Lcom/android/server/power/stats/EnergyConsumerPowerStatsCollector;
 Lcom/android/server/power/stats/EnergyConsumerSnapshot;
+Lcom/android/server/power/stats/GnssPowerStatsCollector;
 Lcom/android/server/power/stats/KernelWakelockReader;
-Lcom/android/server/power/stats/KernelWakelockStats$Entry;
 Lcom/android/server/power/stats/KernelWakelockStats;
 Lcom/android/server/power/stats/MobileRadioPowerCalculator;
+Lcom/android/server/power/stats/MobileRadioPowerStatsCollector;
 Lcom/android/server/power/stats/PowerCalculator;
-Lcom/android/server/power/stats/PowerStatsAggregator;
-Lcom/android/server/power/stats/PowerStatsCollector$$ExternalSyntheticLambda1;
-Lcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;
+Lcom/android/server/power/stats/PowerStatsCollector$$ExternalSyntheticLambda0;
+Lcom/android/server/power/stats/PowerStatsCollector$1;
 Lcom/android/server/power/stats/PowerStatsCollector;
-Lcom/android/server/power/stats/PowerStatsExporter;
-Lcom/android/server/power/stats/PowerStatsScheduler$AlarmScheduler;
 Lcom/android/server/power/stats/PowerStatsScheduler;
 Lcom/android/server/power/stats/PowerStatsSpan$Section;
 Lcom/android/server/power/stats/PowerStatsSpan$SectionReader;
-Lcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda1;
-Lcom/android/server/power/stats/PowerStatsStore$DefaultSectionReader;
+Lcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda0;
 Lcom/android/server/power/stats/PowerStatsStore;
 Lcom/android/server/power/stats/PowerStatsUidResolver$Listener;
 Lcom/android/server/power/stats/PowerStatsUidResolver;
-Lcom/android/server/power/stats/WakelockPowerCalculator;
+Lcom/android/server/power/stats/ScreenPowerStatsCollector;
+Lcom/android/server/power/stats/UserPowerCalculator;
+Lcom/android/server/power/stats/WakelockPowerStatsCollector;
+Lcom/android/server/power/stats/WakelockStatsFrameworkEvents$StatsPullCallbackHandler;
+Lcom/android/server/power/stats/WakelockStatsFrameworkEvents;
 Lcom/android/server/power/stats/WifiPowerCalculator;
+Lcom/android/server/power/stats/WifiPowerStatsCollector$WifiScanTimes;
+Lcom/android/server/power/stats/WifiPowerStatsCollector;
+Lcom/android/server/power/stats/format/BasePowerStatsLayout;
+Lcom/android/server/power/stats/format/BinaryStatePowerStatsLayout;
+Lcom/android/server/power/stats/format/BluetoothPowerStatsLayout;
+Lcom/android/server/power/stats/format/CpuPowerStatsLayout;
+Lcom/android/server/power/stats/format/EnergyConsumerPowerStatsLayout;
+Lcom/android/server/power/stats/format/GnssPowerStatsLayout;
+Lcom/android/server/power/stats/format/MobileRadioPowerStatsLayout;
+Lcom/android/server/power/stats/format/PowerStatsLayout;
+Lcom/android/server/power/stats/format/ScreenPowerStatsLayout;
+Lcom/android/server/power/stats/format/WakelockPowerStatsLayout;
+Lcom/android/server/power/stats/format/WifiPowerStatsLayout;
+Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$1;
+Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;
+Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;
+Lcom/android/server/power/stats/processor/AggregatedPowerStatsSection$Reader;
+Lcom/android/server/power/stats/processor/AggregatedPowerStatsSection;
+Lcom/android/server/power/stats/processor/AudioPowerStatsProcessor;
+Lcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;
+Lcom/android/server/power/stats/processor/CameraPowerStatsProcessor;
+Lcom/android/server/power/stats/processor/FlashlightPowerStatsProcessor;
+Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda1;
+Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda5;
+Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda6;
+Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda8;
+Lcom/android/server/power/stats/processor/MultiStatePowerAttributor;
+Lcom/android/server/power/stats/processor/PowerStatsAggregator;
+Lcom/android/server/power/stats/processor/PowerStatsExporter;
+Lcom/android/server/power/stats/processor/PowerStatsProcessor;
+Lcom/android/server/power/stats/processor/VideoPowerStatsProcessor;
 Lcom/android/server/power/stats/wakeups/CpuWakeupStats$$ExternalSyntheticLambda0;
 Lcom/android/server/power/stats/wakeups/CpuWakeupStats$Config;
 Lcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;
@@ -1247,7 +1160,6 @@
 Lcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;
 Lcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;
 Lcom/android/server/powerstats/PowerStatsHALWrapper$VintfHalCache;
-Lcom/android/server/powerstats/PowerStatsHALWrapper;
 Lcom/android/server/powerstats/PowerStatsService$1;
 Lcom/android/server/powerstats/PowerStatsService$DeviceConfigListener;
 Lcom/android/server/powerstats/PowerStatsService$Injector;
@@ -1259,9 +1171,10 @@
 Lcom/android/server/recoverysystem/RecoverySystemService;
 Lcom/android/server/recoverysystem/RecoverySystemShellCommand;
 Lcom/android/server/resources/ResourcesManagerService;
-Lcom/android/server/security/FileIntegrityService$1;
+Lcom/android/server/security/FileIntegrityService$BinderService;
 Lcom/android/server/security/FileIntegrityService$FileIntegrityServiceShellCommand;
 Lcom/android/server/security/FileIntegrityService;
+Lcom/android/server/selinux/RateLimiter;
 Lcom/android/server/sensorprivacy/SensorPrivacyService;
 Lcom/android/server/sensors/SensorManagerInternal$ProximityActiveListener;
 Lcom/android/server/sensors/SensorManagerInternal$RuntimeSensorCallback;
@@ -1271,8 +1184,12 @@
 Lcom/android/server/soundtrigger_middleware/ICaptureStateNotifier;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;
 Lcom/android/server/stats/pull/StatsPullAtomService;
+Lcom/android/server/storage/AppFuseBridge$MountScope;
 Lcom/android/server/storage/AppFuseBridge;
+Lcom/android/server/timedetector/NetworkTimeUpdateService$AutoTimeSettingObserver;
+Lcom/android/server/timedetector/NetworkTimeUpdateService$NetworkConnectivityCallback;
 Lcom/android/server/tv/TvInputHal;
+Lcom/android/server/tv/TvInputHardwareManager$ListenerHandler;
 Lcom/android/server/tv/UinputBridge;
 Lcom/android/server/uri/UriGrantsManagerInternal;
 Lcom/android/server/uri/UriGrantsManagerService$1;
@@ -1280,32 +1197,41 @@
 Lcom/android/server/uri/UriGrantsManagerService$Lifecycle;
 Lcom/android/server/uri/UriGrantsManagerService$LocalService;
 Lcom/android/server/uri/UriGrantsManagerService;
-Lcom/android/server/uri/UriMetricsHelper$PersistentUriGrantsProvider;
 Lcom/android/server/uri/UriMetricsHelper;
+Lcom/android/server/uri/UriPermissionOwner$ExternalToken;
+Lcom/android/server/usage/BroadcastResponseStatsLogger$BroadcastEvent;
+Lcom/android/server/usage/BroadcastResponseStatsLogger$Data;
+Lcom/android/server/usage/BroadcastResponseStatsLogger$LogBuffer;
+Lcom/android/server/usage/UsageStatsService$H;
 Lcom/android/server/usb/UsbAlsaJackDetector;
 Lcom/android/server/usb/UsbAlsaMidiDevice$2;
 Lcom/android/server/usb/UsbAlsaMidiDevice$3;
 Lcom/android/server/usb/UsbAlsaMidiDevice$InputReceiverProxy;
 Lcom/android/server/usb/UsbAlsaMidiDevice;
+Lcom/android/server/usb/UsbDeviceManager$1;
+Lcom/android/server/usb/UsbDeviceManager$6;
+Lcom/android/server/usb/UsbDeviceManager$UsbHandler;
+Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;
+Lcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;
+Lcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;
 Lcom/android/server/usb/UsbDeviceManager;
 Lcom/android/server/usb/UsbHostManager;
 Lcom/android/server/usb/descriptors/UsbDescriptor;
 Lcom/android/server/usb/descriptors/UsbInterfaceDescriptor;
+Lcom/android/server/utils/AnrTimer$1;
+Lcom/android/server/utils/AnrTimer$Args;
 Lcom/android/server/utils/AnrTimer$Error;
 Lcom/android/server/utils/AnrTimer$FeatureDisabled;
 Lcom/android/server/utils/AnrTimer$FeatureEnabled;
 Lcom/android/server/utils/AnrTimer$FeatureSwitch;
 Lcom/android/server/utils/AnrTimer$Injector;
 Lcom/android/server/utils/AnrTimer;
-Lcom/android/server/utils/FeatureFlags;
-Lcom/android/server/utils/FeatureFlagsImpl;
-Lcom/android/server/utils/Flags;
 Lcom/android/server/utils/FoldSettingProvider;
+Lcom/android/server/utils/LazyJniRegistrar;
 Lcom/android/server/utils/PriorityDump$PriorityDumper;
 Lcom/android/server/utils/Slogf;
 Lcom/android/server/utils/Snappable;
 Lcom/android/server/utils/SnapshotCache$Auto;
-Lcom/android/server/utils/SnapshotCache$Sealed;
 Lcom/android/server/utils/SnapshotCache$Statistics;
 Lcom/android/server/utils/SnapshotCache;
 Lcom/android/server/utils/Snapshots;
@@ -1332,26 +1258,25 @@
 Lcom/android/server/vibrator/VibratorController$OnVibrationCompleteListener;
 Lcom/android/server/vibrator/VibratorManagerService$VibratorManagerNativeCallbacks;
 Lcom/android/server/vibrator/VibratorManagerService;
-Lcom/android/server/vr/EnabledComponentsObserver$EnabledComponentChangeListener;
-Lcom/android/server/vr/VrManagerService;
 Lcom/android/server/wm/AbsAppSnapshotController;
+Lcom/android/server/wm/ActionChain$Tracker;
 Lcom/android/server/wm/ActivityClientController;
 Lcom/android/server/wm/ActivityMetricsLaunchObserver;
-Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
 Lcom/android/server/wm/ActivityMetricsLogger;
 Lcom/android/server/wm/ActivityRecord;
+Lcom/android/server/wm/ActivitySnapshotController;
 Lcom/android/server/wm/ActivityStartController;
 Lcom/android/server/wm/ActivityStartInterceptor;
 Lcom/android/server/wm/ActivityStarter$DefaultFactory;
 Lcom/android/server/wm/ActivityStarter$Factory;
 Lcom/android/server/wm/ActivityTaskManagerInternal$ScreenObserver;
-Lcom/android/server/wm/ActivityTaskManagerInternal$SleepTokenAcquirer;
 Lcom/android/server/wm/ActivityTaskManagerInternal;
 Lcom/android/server/wm/ActivityTaskManagerService$1;
 Lcom/android/server/wm/ActivityTaskManagerService$H;
 Lcom/android/server/wm/ActivityTaskManagerService$Lifecycle;
 Lcom/android/server/wm/ActivityTaskManagerService$LocalService;
-Lcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirerImpl;
+Lcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;
+Lcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirer;
 Lcom/android/server/wm/ActivityTaskManagerService$UiHandler;
 Lcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;
 Lcom/android/server/wm/ActivityTaskManagerService;
@@ -1364,38 +1289,46 @@
 Lcom/android/server/wm/AppWarnings$UiHandler;
 Lcom/android/server/wm/AppWarnings$WriteConfigTask;
 Lcom/android/server/wm/AppWarnings;
+Lcom/android/server/wm/AsyncRotationController;
 Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;
 Lcom/android/server/wm/BackNavigationController$NavigationMonitor;
 Lcom/android/server/wm/BackNavigationController;
 Lcom/android/server/wm/BackgroundActivityStartController$FinishedActivityEntry;
 Lcom/android/server/wm/BackgroundActivityStartController;
+Lcom/android/server/wm/BackgroundLaunchProcessController$BalCheckConfiguration;
 Lcom/android/server/wm/ClientLifecycleManager;
 Lcom/android/server/wm/CompatModePackages$CompatHandler;
 Lcom/android/server/wm/CompatModePackages;
+Lcom/android/server/wm/CompatScaleProvider;
 Lcom/android/server/wm/ConfigurationContainer;
 Lcom/android/server/wm/ConfigurationContainerListener;
 Lcom/android/server/wm/DeprecatedAbiDialog;
 Lcom/android/server/wm/DeprecatedTargetSdkVersionDialog;
 Lcom/android/server/wm/DesktopModeLaunchParamsModifier;
 Lcom/android/server/wm/DisplayArea$Dimmable;
+Lcom/android/server/wm/DisplayArea$Tokens;
 Lcom/android/server/wm/DisplayArea;
 Lcom/android/server/wm/DisplayAreaOrganizerController;
+Lcom/android/server/wm/DisplayContent$ImeContainer;
 Lcom/android/server/wm/DisplayContent;
-Lcom/android/server/wm/FactoryErrorDialog;
+Lcom/android/server/wm/DisplayRotation$OrientationListener;
+Lcom/android/server/wm/FadeAnimationController;
 Lcom/android/server/wm/InputTarget;
 Lcom/android/server/wm/InsetsControlTarget;
-Lcom/android/server/wm/KeyguardController$$ExternalSyntheticLambda0;
+Lcom/android/server/wm/InsetsTarget;
+Lcom/android/server/wm/KeyguardController$$ExternalSyntheticLambda1;
 Lcom/android/server/wm/KeyguardController;
 Lcom/android/server/wm/LaunchObserverRegistryImpl;
 Lcom/android/server/wm/LaunchParamsController$LaunchParams;
 Lcom/android/server/wm/LaunchParamsController$LaunchParamsModifier;
 Lcom/android/server/wm/LaunchParamsController;
-Lcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda2;
+Lcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda3;
 Lcom/android/server/wm/LaunchParamsPersister;
 Lcom/android/server/wm/LockTaskController$LockTaskToken;
 Lcom/android/server/wm/LockTaskController;
 Lcom/android/server/wm/MirrorActiveUids;
 Lcom/android/server/wm/PackageConfigPersister;
+Lcom/android/server/wm/PageSizeMismatchDialog;
 Lcom/android/server/wm/PendingRemoteAnimationRegistry;
 Lcom/android/server/wm/PersisterQueue$$ExternalSyntheticLambda0;
 Lcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;
@@ -1408,39 +1341,19 @@
 Lcom/android/server/wm/RecentTasks$Callbacks;
 Lcom/android/server/wm/RecentTasks;
 Lcom/android/server/wm/RootDisplayArea;
+Lcom/android/server/wm/RootWindowContainer$MyHandler;
 Lcom/android/server/wm/RootWindowContainer;
+Lcom/android/server/wm/RotationWatcherController$DisplayRotationWatcher;
+Lcom/android/server/wm/RotationWatcherController$ProposedRotationListener;
+Lcom/android/server/wm/RotationWatcherController$RotationWatcher;
 Lcom/android/server/wm/RunningTasks;
+Lcom/android/server/wm/SnapshotCache;
+Lcom/android/server/wm/SnapshotPersistQueue$1;
 Lcom/android/server/wm/SurfaceAnimationThread;
 Lcom/android/server/wm/SurfaceAnimator$Animatable;
-Lcom/android/server/wm/SurfaceFreezer$Freezable;
 Lcom/android/server/wm/Task;
 Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda10;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda11;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda12;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda13;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda14;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda15;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda16;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda17;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda18;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda19;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda1;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda20;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda21;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda22;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda23;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda24;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda2;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda3;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda4;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda5;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda6;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda7;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda8;
-Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda9;
 Lcom/android/server/wm/TaskChangeNotificationController$MainHandler;
-Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 Lcom/android/server/wm/TaskChangeNotificationController;
 Lcom/android/server/wm/TaskDisplayArea;
 Lcom/android/server/wm/TaskFpsCallbackController;
@@ -1449,10 +1362,10 @@
 Lcom/android/server/wm/TaskLaunchParamsModifier;
 Lcom/android/server/wm/TaskOrganizerController;
 Lcom/android/server/wm/TaskPersister;
+Lcom/android/server/wm/TaskSnapshotCache;
 Lcom/android/server/wm/TaskSnapshotController;
 Lcom/android/server/wm/Transition$ReadyCondition;
 Lcom/android/server/wm/Transition;
-Lcom/android/server/wm/TransitionController$$ExternalSyntheticLambda4;
 Lcom/android/server/wm/TransitionController$Lock;
 Lcom/android/server/wm/TransitionController$RemotePlayer;
 Lcom/android/server/wm/TransitionController$TransitionMetricsReporter;
@@ -1462,52 +1375,45 @@
 Lcom/android/server/wm/VisibleActivityProcessTracker;
 Lcom/android/server/wm/VrController$1;
 Lcom/android/server/wm/VrController;
+Lcom/android/server/wm/WallpaperWindowToken;
 Lcom/android/server/wm/WindowContainer;
-Lcom/android/server/wm/WindowList;
 Lcom/android/server/wm/WindowManagerGlobalLock;
-Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;
+Lcom/android/server/wm/WindowManagerService$1;
 Lcom/android/server/wm/WindowManagerService$2;
-Lcom/android/server/wm/WindowManagerService$4;
-Lcom/android/server/wm/WindowManagerService$8;
-Lcom/android/server/wm/WindowManagerService$AppFreezeListener;
 Lcom/android/server/wm/WindowManagerService$H;
 Lcom/android/server/wm/WindowManagerService;
 Lcom/android/server/wm/WindowManagerShellCommand;
 Lcom/android/server/wm/WindowManagerThreadPriorityBooster;
 Lcom/android/server/wm/WindowOrganizerController;
-Lcom/android/server/wm/WindowProcessController$ComputeOomAdjCallback;
+Lcom/android/server/wm/WindowOrientationListener;
 Lcom/android/server/wm/WindowProcessController;
 Lcom/android/server/wm/WindowProcessControllerMap;
-Lcom/android/server/wm/WindowProcessListener;
 Lcom/android/server/wm/WindowState;
 Lcom/android/server/wm/WindowToken;
-Lcom/android/server/wm/utils/DisplayInfoOverrides$$ExternalSyntheticLambda0;
-Lcom/android/server/wm/utils/DisplayInfoOverrides$DisplayInfoFieldsUpdater;
-Lcom/android/server/wm/utils/DisplayInfoOverrides;
-Lcom/android/wm/shell/FeatureFlags;
-Lcom/android/wm/shell/FeatureFlagsImpl;
-Lcom/android/wm/shell/Flags;
-[Landroid/hardware/light/HwLight;
+Lorg/apache/commons/math/MathException;
+Lorg/apache/commons/math/distribution/AbstractContinuousDistribution;
+Lorg/apache/commons/math/distribution/AbstractDistribution;
+Lorg/apache/commons/math/distribution/BetaDistributionImpl;
 [Landroid/hardware/power/stats/Channel;
 [Landroid/hardware/power/stats/EnergyConsumer;
-[Landroid/hardware/power/stats/State;
-[Landroid/hardware/power/stats/StateResidency;
 [Lcom/android/server/am/ActivityManagerService$ProcessChangeItem;
 [Lcom/android/server/am/BroadcastProcessQueue;
-[Lcom/android/server/am/BroadcastQueue;
 [Lcom/android/server/am/BroadcastRecord;
 [Lcom/android/server/am/CachedAppOptimizer$CancelCompactReason;
 [Lcom/android/server/am/CachedAppOptimizer$CompactSource;
-[Lcom/android/server/am/OomAdjProfiler$CpuTimes;
+[Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNode;
+[Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$LinkedProcessRecordList;
 [Lcom/android/server/am/UidObserverController$ChangeRecord;
 [Lcom/android/server/display/config/AutoBrightnessModeName;
 [Lcom/android/server/display/config/AutoBrightnessSettingName;
 [Lcom/android/server/firewall/FilterFactory;
 [Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;
+[Lcom/android/server/input/TouchpadFingerState;
 [Lcom/android/server/lights/LightsService$LightImpl;
 [Lcom/android/server/pm/DefaultCrossProfileIntentFilter;
 [Lcom/android/server/pm/PreferredActivity;
 [Lcom/android/server/pm/SnapshotStatistics$Stats;
+[Lcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;
 [Lcom/android/server/power/stats/BatteryStatsImpl$Counter;
 [Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;
 [Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;
@@ -1517,92 +1423,125 @@
 [Lcom/android/server/utils/AnrTimer$Error;
 [Lcom/android/server/wm/ActivityRecord;
 [[Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;
-PLandroid/app/usage/UsageStatsManagerInternal;-><init>()V
-HSPLandroid/content/pm/PackageManagerInternal;-><init>()V
-HPLandroid/content/pm/PackageManagerInternal;->filterAppAccess(Ljava/lang/String;II)Z
-PLandroid/content/pm/PackageManagerInternal;->getPackageList()Lcom/android/server/pm/PackageList;
-PLandroid/frameworks/vibrator/IVibratorControlService$Stub;-><init>()V
+PLandroid/companion/virtualcamera/SupportedStreamConfiguration$$ExternalSyntheticOutline0;->m(IILandroid/os/Parcel;I)V
+PLandroid/content/pm/PackageManagerInternal$InstalledLoadingProgressCallback$LoadingProgressCallbackBinder;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageLoadingProgressCallback;)V
+PLandroid/content/pm/PackageManagerInternal$PackageListObserver;->onPackageChanged(ILjava/lang/String;)V
+PLandroid/frameworks/devicestate/IDeviceStateService;-><clinit>()V
+PLandroid/frameworks/vibrator/IVibratorControlService$Stub;->getMaxTransactionId()I
+PLandroid/frameworks/vibrator/IVibratorControlService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLandroid/frameworks/vibrator/IVibratorControlService;-><clinit>()V
-PLandroid/hardware/authsecret/IAuthSecret$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/authsecret/IAuthSecret;
+PLandroid/frameworks/vibrator/VibrationParam$1$$ExternalSyntheticOutline0;->m(ILjava/lang/String;)Ljava/lang/String;
+PLandroid/hardware/audio/common/V2_0/AudioConfig$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;JLjava/lang/String;)Ljava/lang/String;
+HSPLandroid/hardware/audio/common/V2_0/AudioOffloadInfo$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/hardware/audio/common/V2_0/Uuid;-><init>()V
+PLandroid/hardware/audio/common/V2_0/Uuid;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
 PLandroid/hardware/authsecret/IAuthSecret;-><clinit>()V
-PLandroid/hardware/authsecret/V1_0/IAuthSecret;->getService(Ljava/lang/String;Z)Landroid/hardware/authsecret/V1_0/IAuthSecret;
-PLandroid/hardware/authsecret/V1_0/IAuthSecret;->getService(Z)Landroid/hardware/authsecret/V1_0/IAuthSecret;
-PLandroid/hardware/configstore/V1_1/ISurfaceFlingerConfigs;->getService()Landroid/hardware/configstore/V1_1/ISurfaceFlingerConfigs;
-PLandroid/hardware/configstore/V1_1/ISurfaceFlingerConfigs;->getService(Ljava/lang/String;)Landroid/hardware/configstore/V1_1/ISurfaceFlingerConfigs;
-PLandroid/hardware/health/HealthInfo$1;-><init>()V
+HSPLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Landroid/os/HwParcel;
+PLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;->getService()Landroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;
+PLandroid/hardware/biometrics/face/V1_0/OptionalBool$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ZLjava/lang/String;)Ljava/lang/String;
+PLandroid/hardware/broadcastradio/V2_0/AmFmBandRange$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/String;
+PLandroid/hardware/health/BatteryHealthData;-><clinit>()V
+PLandroid/hardware/health/DiskStats$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/health/DiskStats;-><clinit>()V
+HPLandroid/hardware/health/HealthInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 PLandroid/hardware/health/HealthInfo;-><clinit>()V
 HPLandroid/hardware/health/HealthInfo;-><init>()V
-PLandroid/hardware/health/IHealth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/health/IHealth;
+PLandroid/hardware/health/HingeInfo;-><clinit>()V
+HPLandroid/hardware/health/IHealth$Stub$Proxy;->getCapacity()I
+PLandroid/hardware/health/IHealth$Stub$Proxy;->getChargeStatus()I
+HPLandroid/hardware/health/IHealth$Stub$Proxy;->getHealthInfo()Landroid/hardware/health/HealthInfo;
+PLandroid/hardware/health/IHealth$Stub$Proxy;->registerCallback(Lcom/android/server/health/HealthRegCallbackAidl$HalInfoCallback;)V
+PLandroid/hardware/health/IHealth$Stub$Proxy;->update()V
 PLandroid/hardware/health/IHealth;-><clinit>()V
-PLandroid/hardware/health/IHealthInfoCallback$Stub;-><init>()V
 PLandroid/hardware/health/IHealthInfoCallback;-><clinit>()V
-HPLandroid/hardware/health/Translate;->h2aTranslate(Landroid/hardware/health/V2_1/HealthInfo;)Landroid/hardware/health/HealthInfo;
-HPLandroid/hardware/health/Translate;->h2aTranslateInternal(Landroid/hardware/health/HealthInfo;Landroid/hardware/health/V1_0/HealthInfo;)V
-HPLandroid/hardware/health/V1_0/HealthInfo;-><init>()V
-HPLandroid/hardware/health/V1_0/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-HPLandroid/hardware/health/V2_0/HealthInfo;-><init>()V
-HPLandroid/hardware/health/V2_0/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/health/V2_0/IHealth$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/health/V2_0/IHealth$Proxy;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hardware/health/V2_0/IHealth$Proxy;->equals(Ljava/lang/Object;)Z
-PLandroid/hardware/health/V2_0/IHealth$Proxy;->getCapacity(Landroid/hardware/health/V2_0/IHealth$getCapacityCallback;)V
-PLandroid/hardware/health/V2_0/IHealth$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/health/V2_0/IHealth$Proxy;->registerCallback(Landroid/hardware/health/V2_0/IHealthInfoCallback;)I
-PLandroid/hardware/health/V2_0/IHealth$Proxy;->update()I
-PLandroid/hardware/health/V2_0/IHealth;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/health/V2_0/IHealth;
-PLandroid/hardware/health/V2_0/IHealth;->getService(Ljava/lang/String;Z)Landroid/hardware/health/V2_0/IHealth;
-PLandroid/hardware/health/V2_1/HealthInfo;-><init>()V
-PLandroid/hardware/health/V2_1/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/health/V2_1/HealthInfo;->readFromParcel(Landroid/os/HwParcel;)V
-PLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;-><init>()V
-PLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
-HSPLandroid/hardware/light/HwLight$1;-><init>()V
-HSPLandroid/hardware/light/HwLight$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/light/HwLight;
-HSPLandroid/hardware/light/HwLight$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/light/HwLight$1;->newArray(I)[Landroid/hardware/light/HwLight;
-HSPLandroid/hardware/light/HwLight$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/health/StorageInfo$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/health/StorageInfo;-><clinit>()V
 HSPLandroid/hardware/light/HwLight;-><clinit>()V
 HSPLandroid/hardware/light/HwLight;-><init>()V
-HSPLandroid/hardware/light/HwLight;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/hardware/light/HwLightState$1;-><init>()V
-PLandroid/hardware/light/HwLightState;-><clinit>()V
-PLandroid/hardware/light/HwLightState;-><init>()V
-PLandroid/hardware/light/HwLightState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/hardware/light/ILights$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/light/ILights$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/light/ILights$Stub$Proxy;->getLights()[Landroid/hardware/light/HwLight;
-PLandroid/hardware/light/ILights$Stub$Proxy;->setLightState(ILandroid/hardware/light/HwLightState;)V
-HSPLandroid/hardware/light/ILights$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/light/ILights;
 HSPLandroid/hardware/light/ILights;-><clinit>()V
-PLandroid/hardware/oemlock/IOemLock$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/oemlock/IOemLock;
 PLandroid/hardware/oemlock/IOemLock;-><clinit>()V
-PLandroid/hardware/oemlock/V1_0/IOemLock;->getService(Ljava/lang/String;Z)Landroid/hardware/oemlock/V1_0/IOemLock;
-PLandroid/hardware/oemlock/V1_0/IOemLock;->getService(Z)Landroid/hardware/oemlock/V1_0/IOemLock;
-HSPLandroid/hardware/power/stats/Channel$1;-><init>()V
-HSPLandroid/hardware/power/stats/Channel;-><clinit>()V
-HSPLandroid/hardware/power/stats/EnergyMeasurement$1;-><init>()V
-HSPLandroid/hardware/power/stats/EnergyMeasurement;-><clinit>()V
-HSPLandroid/hardware/power/stats/PowerEntity$1;-><init>()V
-HSPLandroid/hardware/power/stats/PowerEntity;-><clinit>()V
-PLandroid/hardware/power/stats/PowerEntity;-><init>()V
-HSPLandroid/hardware/power/stats/State$1;-><init>()V
-HSPLandroid/hardware/power/stats/State;-><clinit>()V
-PLandroid/hardware/power/stats/State;-><init>()V
-HSPLandroid/hardware/power/stats/StateResidency$1;-><init>()V
-HSPLandroid/hardware/power/stats/StateResidency;-><clinit>()V
+PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->getService()Landroid/hardware/oemlock/V1_0/IOemLock$Proxy;
+PLandroid/hardware/power/stats/Channel$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/Channel;-><clinit>()V
+PLandroid/hardware/power/stats/EnergyConsumer$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/EnergyConsumer;-><clinit>()V
+PLandroid/hardware/power/stats/EnergyConsumerResult$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/EnergyConsumerResult;-><clinit>()V
+PLandroid/hardware/power/stats/EnergyMeasurement$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/EnergyMeasurement;-><clinit>()V
+PLandroid/hardware/power/stats/IPowerStats$Stub$Proxy;->getEnergyConsumed([I)[Landroid/hardware/power/stats/EnergyConsumerResult;
+PLandroid/hardware/power/stats/IPowerStats$Stub$Proxy;->getEnergyConsumerInfo()[Landroid/hardware/power/stats/EnergyConsumer;
+PLandroid/hardware/power/stats/IPowerStats$Stub$Proxy;->getEnergyMeterInfo()[Landroid/hardware/power/stats/Channel;
+PLandroid/hardware/power/stats/IPowerStats$Stub$Proxy;->getPowerEntityInfo()[Landroid/hardware/power/stats/PowerEntity;
+PLandroid/hardware/power/stats/IPowerStats$Stub$Proxy;->getStateResidency([I)[Landroid/hardware/power/stats/StateResidencyResult;
+PLandroid/hardware/power/stats/IPowerStats$Stub$Proxy;->readEnergyMeter([I)[Landroid/hardware/power/stats/EnergyMeasurement;
+HSPLandroid/hardware/power/stats/IPowerStats;-><clinit>()V
+PLandroid/hardware/power/stats/PowerEntity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/power/stats/PowerEntity$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/PowerEntity;-><clinit>()V
+PLandroid/hardware/power/stats/State$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/power/stats/State$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/State;-><clinit>()V
+PLandroid/hardware/power/stats/StateResidency$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/power/stats/StateResidency$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/StateResidency;-><clinit>()V
 PLandroid/hardware/power/stats/StateResidency;-><init>()V
-HSPLandroid/hardware/power/stats/StateResidencyResult$1;-><init>()V
-HSPLandroid/hardware/power/stats/StateResidencyResult;-><clinit>()V
+PLandroid/hardware/power/stats/StateResidencyResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/power/stats/StateResidencyResult$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/power/stats/StateResidencyResult;-><clinit>()V
 PLandroid/hardware/power/stats/StateResidencyResult;-><init>()V
-PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;->getService(Ljava/lang/String;Z)Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;
-PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;->getService(Z)Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;
-PLandroid/hardware/usb/V1_0/IUsb;->getService(Ljava/lang/String;Z)Landroid/hardware/usb/V1_0/IUsb;
-PLandroid/hardware/usb/V1_0/IUsb;->getService(Z)Landroid/hardware/usb/V1_0/IUsb;
-HPLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;-><init>()V
-HPLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-HPLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+PLandroid/hardware/security/keymint/IRemotelyProvisionedComponent$Stub$Proxy;->getHardwareInfo()Landroid/hardware/security/keymint/RpcHardwareInfo;
+PLandroid/hardware/security/keymint/IRemotelyProvisionedComponent;-><clinit>()V
+PLandroid/hardware/security/keymint/RpcHardwareInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/security/keymint/RpcHardwareInfo;-><clinit>()V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Phrase;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;-><init>()V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;)V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Proxy;->asBinder()Landroid/os/IHwBinder;
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Proxy;->interfaceChain()Ljava/util/ArrayList;
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$RecognitionConfig;->writeEmbeddedToBlob(Landroid/os/HwBlob;)V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$SoundModel;-><init>()V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$SoundModel;->writeEmbeddedToBlob(Landroid/os/HwBlob;)V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHwCallback$RecognitionEvent;-><init>()V
+PLandroid/hardware/soundtrigger/V2_0/ISoundTriggerHwCallback$RecognitionEvent;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;)V
+PLandroid/hardware/soundtrigger/V2_0/PhraseRecognitionExtra;-><init>()V
+PLandroid/hardware/soundtrigger/V2_0/PhraseRecognitionExtra;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;-><init>()V
+PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;-><init>(I)V
+PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;->writeToParcel(Landroid/os/HwParcel;)V
+PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;-><init>(I)V
+PLandroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;)V
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->getProperties_2_3(Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$$ExternalSyntheticLambda1;)V
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->interfaceChain()Ljava/util/ArrayList;
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->loadPhraseSoundModel_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$ModelCallbackWrapper;Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$$ExternalSyntheticLambda3;)V
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->startRecognition_2_3(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;)I
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->stopRecognition(I)I
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->unloadSoundModel(I)I
+PLandroid/hardware/soundtrigger/V2_3/Properties;-><init>()V
+PLandroid/hardware/usb/IUsb$Stub$Proxy;->queryPortStatus(J)V
+PLandroid/hardware/usb/IUsb$Stub$Proxy;->setCallback(Landroid/hardware/usb/IUsbCallback;)V
+PLandroid/hardware/usb/IUsb$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsb;
+PLandroid/hardware/usb/IUsb;-><clinit>()V
+PLandroid/hardware/usb/IUsbCallback;-><clinit>()V
+PLandroid/hardware/usb/PortStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/usb/PortStatus$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/usb/PortStatus;-><clinit>()V
+PLandroid/hardware/weaver/IWeaver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/weaver/IWeaver$Stub$Proxy;->getConfig()Landroid/hardware/weaver/WeaverConfig;
+PLandroid/hardware/weaver/IWeaver$Stub$Proxy;->getInterfaceVersion()I
+PLandroid/hardware/weaver/IWeaver$Stub$Proxy;->read(I[B)Landroid/hardware/weaver/WeaverReadResponse;
+PLandroid/hardware/weaver/IWeaver$Stub$Proxy;->write([B[BI)V
+PLandroid/hardware/weaver/IWeaver;-><clinit>()V
+PLandroid/hardware/weaver/WeaverConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/weaver/WeaverConfig;-><clinit>()V
+PLandroid/hardware/weaver/WeaverConfig;-><init>()V
+PLandroid/hardware/weaver/WeaverReadResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/weaver/WeaverReadResponse;-><clinit>()V
+PLandroid/hardware/weaver/WeaverReadResponse;-><init>()V
+PLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;-><init>()V
+PLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
 HSPLandroid/hidl/manager/V1_0/IServiceManager$Proxy;-><init>(Landroid/os/IHwBinder;)V
 PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->debugDump()Ljava/util/ArrayList;
 HSPLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->getTransport(Ljava/lang/String;Ljava/lang/String;)B
@@ -1615,15 +1554,15 @@
 HSPLandroid/hidl/manager/V1_0/IServiceNotification$Stub;-><init>()V
 HSPLandroid/hidl/manager/V1_0/IServiceNotification$Stub;->asBinder()Landroid/os/IHwBinder;
 HSPLandroid/hidl/manager/V1_0/IServiceNotification$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
-HSPLandroid/net/ConnectivityModuleConnector$DependenciesImpl;-><init>()V
-HSPLandroid/net/ConnectivityModuleConnector$DependenciesImpl;-><init>(Landroid/net/ConnectivityModuleConnector$DependenciesImpl-IA;)V
+PLandroid/internal/os/profiling/Flags;-><clinit>()V
+PLandroid/internal/os/profiling/Flags;->systemTriggeredProfilingNew()Z
+HSPLandroid/net/ConnectivityModuleConnector$$ExternalSyntheticOutline0;->m$1(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/net/ConnectivityModuleConnector$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLandroid/net/ConnectivityModuleConnector$DependenciesImpl;->getModuleServiceIntent(Landroid/content/pm/PackageManager;Ljava/lang/String;Ljava/lang/String;Z)Landroid/content/Intent;
 PLandroid/net/ConnectivityModuleConnector$ModuleServiceConnection;-><init>(Landroid/net/ConnectivityModuleConnector;Ljava/lang/String;Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;)V
-PLandroid/net/ConnectivityModuleConnector$ModuleServiceConnection;-><init>(Landroid/net/ConnectivityModuleConnector;Ljava/lang/String;Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;Landroid/net/ConnectivityModuleConnector$ModuleServiceConnection-IA;)V
 PLandroid/net/ConnectivityModuleConnector$ModuleServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLandroid/net/ConnectivityModuleConnector;->-$$Nest$mlogi(Landroid/net/ConnectivityModuleConnector;Ljava/lang/String;)V
+PLandroid/net/ConnectivityModuleConnector;->-$$Nest$mlogi(Landroid/net/ConnectivityModuleConnector;)V
 PLandroid/net/ConnectivityModuleConnector;->-$$Nest$smcheckModuleServicePermission(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;Ljava/lang/String;)V
-HSPLandroid/net/ConnectivityModuleConnector;-><clinit>()V
 HSPLandroid/net/ConnectivityModuleConnector;-><init>()V
 HSPLandroid/net/ConnectivityModuleConnector;-><init>(Landroid/net/ConnectivityModuleConnector$Dependencies;)V
 PLandroid/net/ConnectivityModuleConnector;->checkModuleServicePermission(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;Ljava/lang/String;)V
@@ -1633,57 +1572,55 @@
 PLandroid/net/ConnectivityModuleConnector;->logi(Ljava/lang/String;)V
 PLandroid/net/ConnectivityModuleConnector;->registerHealthListener(Landroid/net/ConnectivityModuleConnector$ConnectivityModuleHealthListener;)V
 PLandroid/net/ConnectivityModuleConnector;->startModuleService(Ljava/lang/String;Ljava/lang/String;Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;)V
-PLandroid/net/INetd$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/INetd$Stub$Proxy;->bandwidthRemoveInterfaceQuota(Ljava/lang/String;)V
+PLandroid/net/INetd$Stub$Proxy;->bandwidthSetInterfaceQuota(Ljava/lang/String;J)V
 PLandroid/net/INetd$Stub$Proxy;->firewallSetFirewallType(I)V
+PLandroid/net/INetd$Stub$Proxy;->isAlive()Z
 PLandroid/net/INetd$Stub$Proxy;->registerUnsolicitedEventListener(Landroid/net/INetdUnsolicitedEventListener;)V
 PLandroid/net/INetd$Stub;-><clinit>()V
 PLandroid/net/INetd$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetd;
 PLandroid/net/INetdUnsolicitedEventListener$Stub;-><init>()V
 PLandroid/net/INetdUnsolicitedEventListener$Stub;->asBinder()Landroid/os/IBinder;
-PLandroid/net/INetdUnsolicitedEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/INetdUnsolicitedEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLandroid/net/INetdUnsolicitedEventListener;-><clinit>()V
-PLandroid/net/INetworkStackConnector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 PLandroid/net/INetworkStackConnector$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStackConnector;
 PLandroid/net/INetworkStackConnector;-><clinit>()V
 PLandroid/net/NetworkFactory;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkCapabilities;)V
 PLandroid/net/NetworkFactory;->acceptRequest(Landroid/net/NetworkRequest;)Z
-HPLandroid/net/NetworkFactory;->log(Ljava/lang/String;)V
+PLandroid/net/NetworkFactory;->log(Ljava/lang/String;)V
 PLandroid/net/NetworkFactory;->needNetworkFor(Landroid/net/NetworkRequest;)V
+PLandroid/net/NetworkFactory;->reevaluateAllRequests()V
 PLandroid/net/NetworkFactory;->register()V
 PLandroid/net/NetworkFactory;->registerIgnoringScore()V
 PLandroid/net/NetworkFactory;->releaseNetworkFor(Landroid/net/NetworkRequest;)V
+PLandroid/net/NetworkFactory;->setScoreFilter(I)V
 PLandroid/net/NetworkFactory;->startNetwork()V
+PLandroid/net/NetworkFactory;->stopNetwork()V
 PLandroid/net/NetworkFactoryImpl$$ExternalSyntheticLambda0;-><init>(Landroid/net/NetworkFactoryImpl;)V
-HPLandroid/net/NetworkFactoryImpl$$ExternalSyntheticLambda0;->execute(Ljava/lang/Runnable;)V
+PLandroid/net/NetworkFactoryImpl$$ExternalSyntheticLambda0;->execute(Ljava/lang/Runnable;)V
 PLandroid/net/NetworkFactoryImpl$1;-><init>(Landroid/net/NetworkFactoryImpl;)V
 PLandroid/net/NetworkFactoryImpl$1;->onNetworkNeeded(Landroid/net/NetworkRequest;)V
 PLandroid/net/NetworkFactoryImpl$1;->onNetworkUnneeded(Landroid/net/NetworkRequest;)V
 PLandroid/net/NetworkFactoryImpl$2;-><init>(Landroid/net/NetworkFactoryImpl;Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;)V
-HPLandroid/net/NetworkFactoryImpl$NetworkRequestInfo;-><init>(Landroid/net/NetworkRequest;)V
-HPLandroid/net/NetworkFactoryImpl;->$r8$lambda$gco469I383HoexMSXOHYvcsWJ0M(Landroid/net/NetworkFactoryImpl;Ljava/lang/Runnable;)V
-PLandroid/net/NetworkFactoryImpl;->-$$Nest$mhandleAddRequest(Landroid/net/NetworkFactoryImpl;Landroid/net/NetworkRequest;)V
-PLandroid/net/NetworkFactoryImpl;->-$$Nest$mhandleRemoveRequest(Landroid/net/NetworkFactoryImpl;Landroid/net/NetworkRequest;)V
+PLandroid/net/NetworkFactoryImpl$NetworkRequestInfo;-><init>(Landroid/net/NetworkRequest;)V
 PLandroid/net/NetworkFactoryImpl;-><clinit>()V
 PLandroid/net/NetworkFactoryImpl;-><init>(Landroid/net/NetworkFactory;Landroid/os/Looper;Landroid/content/Context;Landroid/net/NetworkCapabilities;)V
 HPLandroid/net/NetworkFactoryImpl;->handleAddRequest(Landroid/net/NetworkRequest;)V
 PLandroid/net/NetworkFactoryImpl;->handleMessage(Landroid/os/Message;)V
-PLandroid/net/NetworkFactoryImpl;->handleOfferNetwork(Landroid/net/NetworkScore;)V
 PLandroid/net/NetworkFactoryImpl;->handleRemoveRequest(Landroid/net/NetworkRequest;)V
-PLandroid/net/NetworkFactoryImpl;->lambda$new$0(Ljava/lang/Runnable;)V
+PLandroid/net/NetworkFactoryImpl;->reevaluateAllRequests()V
 PLandroid/net/NetworkFactoryImpl;->register(Ljava/lang/String;)V
 PLandroid/net/NetworkFactoryImpl;->register(Ljava/lang/String;Z)V
 PLandroid/net/NetworkFactoryImpl;->registerIgnoringScore(Ljava/lang/String;)V
+PLandroid/net/NetworkFactoryImpl;->setScoreFilter(I)V
+PLandroid/net/NetworkFactoryImpl;->setScoreFilter(Landroid/net/NetworkScore;)V
 PLandroid/net/NetworkFactoryLegacyImpl;-><init>(Landroid/net/NetworkFactory;Landroid/os/Looper;Landroid/content/Context;Landroid/net/NetworkCapabilities;)V
-PLandroid/net/NetworkStackClient$DependenciesImpl;-><init>()V
-PLandroid/net/NetworkStackClient$DependenciesImpl;-><init>(Landroid/net/NetworkStackClient$DependenciesImpl-IA;)V
 PLandroid/net/NetworkStackClient$DependenciesImpl;->addToServiceManager(Landroid/os/IBinder;)V
 PLandroid/net/NetworkStackClient$DependenciesImpl;->getConnectivityModuleConnector()Landroid/net/ConnectivityModuleConnector;
 PLandroid/net/NetworkStackClient$NetworkStackConnection;-><init>(Landroid/net/NetworkStackClient;)V
-PLandroid/net/NetworkStackClient$NetworkStackConnection;-><init>(Landroid/net/NetworkStackClient;Landroid/net/NetworkStackClient$NetworkStackConnection-IA;)V
 PLandroid/net/NetworkStackClient$NetworkStackConnection;->onModuleServiceConnected(Landroid/os/IBinder;)V
-PLandroid/net/NetworkStackClient;->-$$Nest$mlogi(Landroid/net/NetworkStackClient;Ljava/lang/String;)V
+PLandroid/net/NetworkStackClient;->-$$Nest$mlogi(Landroid/net/NetworkStackClient;)V
 PLandroid/net/NetworkStackClient;->-$$Nest$mregisterNetworkStackService(Landroid/net/NetworkStackClient;Landroid/os/IBinder;)V
-PLandroid/net/NetworkStackClient;-><clinit>()V
 PLandroid/net/NetworkStackClient;-><init>()V
 PLandroid/net/NetworkStackClient;-><init>(Landroid/net/NetworkStackClient$Dependencies;)V
 PLandroid/net/NetworkStackClient;->getInstance()Landroid/net/NetworkStackClient;
@@ -1695,31 +1632,30 @@
 PLandroid/net/metrics/INetdEventListener$Stub;-><init>()V
 HPLandroid/net/metrics/INetdEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLandroid/net/metrics/INetdEventListener;-><clinit>()V
-PLandroid/net/util/NetdService;-><clinit>()V
+PLandroid/net/shared/InitialConfiguration$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLandroid/net/util/NetdService;->get()Landroid/net/INetd;
 PLandroid/net/util/NetdService;->get(J)Landroid/net/INetd;
 PLandroid/net/util/NetdService;->getInstance()Landroid/net/INetd;
 HSPLandroid/os/BatteryStatsInternal;-><init>()V
-HSPLandroid/power/PowerStatsInternal;-><init>()V
-PLandroid/security/keystore/IKeyAttestationApplicationIdProvider$Stub;-><init>()V
-PLandroid/security/keystore/IKeyAttestationApplicationIdProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLandroid/security/keystore/KeyAttestationApplicationId$1;-><init>()V
 PLandroid/security/keystore/KeyAttestationApplicationId;-><clinit>()V
-PLandroid/security/keystore/KeyAttestationApplicationId;-><init>()V
 PLandroid/security/keystore/KeyAttestationApplicationId;->writeToParcel(Landroid/os/Parcel;I)V
-PLandroid/security/keystore/KeyAttestationPackageInfo$1;-><init>()V
 PLandroid/security/keystore/KeyAttestationPackageInfo;-><clinit>()V
 PLandroid/security/keystore/KeyAttestationPackageInfo;-><init>()V
 PLandroid/security/keystore/KeyAttestationPackageInfo;->writeToParcel(Landroid/os/Parcel;I)V
-PLandroid/security/keystore/Signature$1;-><init>()V
 PLandroid/security/keystore/Signature;-><clinit>()V
-PLandroid/security/keystore/Signature;-><init>()V
 PLandroid/security/keystore/Signature;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/sysprop/SurfaceFlingerProperties;->enable_frame_rate_override()Ljava/util/Optional;
-PLandroid/sysprop/SurfaceFlingerProperties;->has_HDR_display()Ljava/util/Optional;
-PLandroid/sysprop/SurfaceFlingerProperties;->has_wide_color_display()Ljava/util/Optional;
 HSPLandroid/sysprop/SurfaceFlingerProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
 PLcom/android/internal/art/ArtStatsLog;->write(II)V
+PLcom/android/internal/protolog/ProtoLogImpl_704172511$$ExternalSyntheticLambda0;->update(Lcom/android/internal/protolog/common/IProtoLog;)V
+PLcom/android/internal/protolog/ProtoLogImpl_704172511$Cache;-><clinit>()V
+PLcom/android/internal/protolog/ProtoLogImpl_704172511;-><clinit>()V
+PLcom/android/internal/protolog/ProtoLogImpl_704172511;->d(Lcom/android/internal/protolog/common/IProtoLogGroup;JI[Ljava/lang/Object;)V
+HPLcom/android/internal/protolog/ProtoLogImpl_704172511;->getSingleInstance()Lcom/android/internal/protolog/common/IProtoLog;
+PLcom/android/internal/protolog/ProtoLogImpl_704172511;->i(Lcom/android/internal/protolog/common/IProtoLogGroup;JI[Ljava/lang/Object;)V
+PLcom/android/internal/protolog/ProtoLogImpl_704172511;->isEnabled(Lcom/android/internal/protolog/common/IProtoLogGroup;Lcom/android/internal/protolog/common/LogLevel;)Z
+PLcom/android/internal/protolog/ProtoLogImpl_704172511;->v(Lcom/android/internal/protolog/common/IProtoLogGroup;JI[Ljava/lang/Object;)V
+PLcom/android/internal/protolog/ProtoLogImpl_704172511;->w(Lcom/android/internal/protolog/common/IProtoLogGroup;JI[Ljava/lang/Object;)V
+HSPLcom/android/internal/util/jobs/ArrayUtils$$ExternalSyntheticOutline0;->m(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLcom/android/internal/util/jobs/ArrayUtils;-><clinit>()V
 PLcom/android/internal/util/jobs/ArrayUtils;->appendInt([II)[I
 PLcom/android/internal/util/jobs/ArrayUtils;->appendInt([IIZ)[I
@@ -1727,30 +1663,66 @@
 PLcom/android/internal/util/jobs/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
 PLcom/android/internal/util/jobs/ArrayUtils;->filter([Ljava/lang/Object;Ljava/util/function/IntFunction;Ljava/util/function/Predicate;)[Ljava/lang/Object;
 PLcom/android/internal/util/jobs/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/internal/util/jobs/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z
 PLcom/android/internal/util/jobs/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z
 PLcom/android/internal/util/jobs/ArrayUtils;->size([Ljava/lang/Object;)I
-PLcom/android/internal/util/jobs/ConcurrentUtils$DirectExecutor;-><init>()V
-PLcom/android/internal/util/jobs/ConcurrentUtils$DirectExecutor;-><init>(Lcom/android/internal/util/jobs/ConcurrentUtils$DirectExecutor-IA;)V
+PLcom/android/internal/util/jobs/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z
+PLcom/android/internal/util/jobs/CollectionUtils;->size(Ljava/util/Collection;)I
 PLcom/android/internal/util/jobs/ConcurrentUtils;-><clinit>()V
 PLcom/android/internal/util/jobs/ConcurrentUtils;->waitForCountDownNoInterrupt(Ljava/util/concurrent/CountDownLatch;JLjava/lang/String;)V
+PLcom/android/internal/util/jobs/DumpUtils$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/internal/util/jobs/DumpUtils;-><clinit>()V
+PLcom/android/internal/util/jobs/DumpUtils;->checkDumpAndUsageStatsPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+PLcom/android/internal/util/jobs/DumpUtils;->checkDumpPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+PLcom/android/internal/util/jobs/DumpUtils;->checkUsageStatsPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+PLcom/android/internal/util/jobs/FastXmlSerializer;-><clinit>()V
+PLcom/android/internal/util/jobs/FastXmlSerializer;-><init>()V
+PLcom/android/internal/util/jobs/FastXmlSerializer;-><init>(I)V
+HPLcom/android/internal/util/jobs/FastXmlSerializer;->append(C)V
+HPLcom/android/internal/util/jobs/FastXmlSerializer;->append(Ljava/lang/String;)V
+HPLcom/android/internal/util/jobs/FastXmlSerializer;->append(Ljava/lang/String;II)V+]Lcom/android/internal/util/jobs/FastXmlSerializer;Lcom/android/internal/util/jobs/FastXmlSerializer;
+HPLcom/android/internal/util/jobs/FastXmlSerializer;->appendIndent(I)V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+PLcom/android/internal/util/jobs/FastXmlSerializer;->endDocument()V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HPLcom/android/internal/util/jobs/FastXmlSerializer;->escapeAndAppendString(Ljava/lang/String;)V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->flush()V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->flushBytes()V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->setFeature(Ljava/lang/String;Z)V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V
+PLcom/android/internal/util/jobs/FastXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
+HPLcom/android/internal/util/jobs/FastXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+PLcom/android/internal/util/jobs/Preconditions$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLcom/android/internal/util/jobs/RingBufferIndices;-><init>(I)V
 HPLcom/android/internal/util/jobs/RingBufferIndices;->add()I
-HPLcom/android/internal/util/jobs/StatLogger;-><init>(Ljava/lang/String;[Ljava/lang/String;)V
+PLcom/android/internal/util/jobs/RingBufferIndices;->indexOf(I)I
+PLcom/android/internal/util/jobs/RingBufferIndices;->size()I
+PLcom/android/internal/util/jobs/StatLogger;-><init>(Ljava/lang/String;[Ljava/lang/String;)V
 PLcom/android/internal/util/jobs/StatLogger;-><init>([Ljava/lang/String;)V
+PLcom/android/internal/util/jobs/StatLogger;->dump(Landroid/util/IndentingPrintWriter;)V
 HPLcom/android/internal/util/jobs/StatLogger;->getTime()J
-HPLcom/android/internal/util/jobs/StatLogger;->logDurationStat(IJ)J
-HPLcom/android/internal/util/jobs/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z
-PLcom/android/media/audio/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/media/audio/FeatureFlagsImpl;-><init>()V
-PLcom/android/media/audio/FeatureFlagsImpl;->alarmMinVolumeZero()Z
-HPLcom/android/media/audio/FeatureFlagsImpl;->disablePrescaleAbsoluteVolume()Z
-PLcom/android/media/audio/FeatureFlagsImpl;->load_overrides_media_audio()V
-PLcom/android/media/audio/FeatureFlagsImpl;->ringerModeAffectsAlarm()Z
+HPLcom/android/internal/util/jobs/StatLogger;->logDurationStat(IJ)J+]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;
+HSPLcom/android/internal/util/jobs/XmlUtils$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/util/jobs/XmlUtils$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/util/jobs/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z
+PLcom/android/launcher3/Flags;-><clinit>()V
+HPLcom/android/launcher3/Flags;->enableRefactorTaskThumbnail()Z
+PLcom/android/media/audio/FeatureFlagsImpl;->init()V
 PLcom/android/media/audio/Flags;-><clinit>()V
+HPLcom/android/media/audio/Flags;->absVolumeIndexFix()Z
 PLcom/android/media/audio/Flags;->alarmMinVolumeZero()Z
-HPLcom/android/media/audio/Flags;->disablePrescaleAbsoluteVolume()Z
+PLcom/android/media/audio/Flags;->asDeviceConnectionFailure()Z
+PLcom/android/media/audio/Flags;->audioserverPermissions()Z
+PLcom/android/media/audio/Flags;->disablePrescaleAbsoluteVolume()Z
+PLcom/android/media/audio/Flags;->equalScoLeaVcIndexRange()Z
+PLcom/android/media/audio/Flags;->portToPiidSimplification()Z
+HPLcom/android/media/audio/Flags;->replaceStreamBtSco()Z
+PLcom/android/media/audio/Flags;->ringMyCar()Z
 PLcom/android/media/audio/Flags;->ringerModeAffectsAlarm()Z
-PLcom/android/modules/utils/build/SdkLevel;->isAtLeastPreReleaseCodename(Ljava/lang/String;)Z
+PLcom/android/media/audio/Flags;->setStreamVolumeOrder()Z
+PLcom/android/media/audio/Flags;->vgsVssSyncMuteOrder()Z
+PLcom/android/modules/utils/HandlerExecutor;-><init>(Landroid/os/Handler;)V
+PLcom/android/modules/utils/HandlerExecutor;->execute(Ljava/lang/Runnable;)V
 HSPLcom/android/modules/utils/build/SdkLevel;->isAtLeastR()Z
 PLcom/android/modules/utils/build/SdkLevel;->isAtLeastS()Z
 HSPLcom/android/modules/utils/build/SdkLevel;->isAtLeastT()Z
@@ -1762,90 +1734,62 @@
 HSPLcom/android/modules/utils/build/UnboundedSdkLevel;->isCodename(Ljava/lang/String;)Z
 HSPLcom/android/modules/utils/build/UnboundedSdkLevel;->removeFingerprint(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/modules/utils/build/UnboundedSdkLevel;->setOf([Ljava/lang/String;)Ljava/util/Set;
-PLcom/android/net/module/util/BaseNetdEventListener;-><init>()V
-PLcom/android/server/AccessibilityManagerInternal$1;-><init>()V
+PLcom/android/net/module/util/HandlerUtils$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Runnable;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/net/module/util/HandlerUtils$$ExternalSyntheticLambda0;->run()V
+PLcom/android/net/module/util/HandlerUtils;->lambda$runWithScissorsForDump$0(Ljava/lang/Runnable;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/net/module/util/HandlerUtils;->runWithScissorsForDump(Landroid/os/Handler;Ljava/lang/Runnable;J)Z
+PLcom/android/security/SecureBox$AesGcmOperation;-><clinit>()V
+PLcom/android/security/SecureBox;-><clinit>()V
+PLcom/android/security/SecureBox;->aesGcmInternal(Lcom/android/security/SecureBox$AesGcmOperation;Ljavax/crypto/SecretKey;[B[B[B)[B
+PLcom/android/security/SecureBox;->encodePublicKey(Ljava/security/PublicKey;)[B
+PLcom/android/security/SecureBox;->encrypt(Ljava/security/PublicKey;[B[B[B)[B
+PLcom/android/security/SecureBox;->genKeyPair()Ljava/security/KeyPair;
+PLcom/android/security/SecureBox;->hkdfDeriveKey([B[B[B)Ljavax/crypto/SecretKey;
 PLcom/android/server/AccessibilityManagerInternal;-><clinit>()V
-PLcom/android/server/AccessibilityManagerInternal;-><init>()V
 PLcom/android/server/AccessibilityManagerInternal;->get()Lcom/android/server/AccessibilityManagerInternal;
-HSPLcom/android/server/AnimationThread;-><init>()V
 HSPLcom/android/server/AnimationThread;->ensureThreadLocked()V
-HSPLcom/android/server/AnimationThread;->get()Lcom/android/server/AnimationThread;
 HSPLcom/android/server/AnimationThread;->getHandler()Landroid/os/Handler;
 PLcom/android/server/AnyMotionDetector$1;-><init>(Lcom/android/server/AnyMotionDetector;)V
-PLcom/android/server/AnyMotionDetector$2;-><init>(Lcom/android/server/AnyMotionDetector;)V
-PLcom/android/server/AnyMotionDetector$3;-><init>(Lcom/android/server/AnyMotionDetector;)V
-PLcom/android/server/AnyMotionDetector$4;-><init>(Lcom/android/server/AnyMotionDetector;)V
-PLcom/android/server/AnyMotionDetector$RunningSignalStats;-><init>()V
+PLcom/android/server/AnyMotionDetector$2;-><init>(Lcom/android/server/AnyMotionDetector;I)V
+HSPLcom/android/server/AnyMotionDetector$RunningSignalStats$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/AnyMotionDetector$RunningSignalStats;->reset()V
-PLcom/android/server/AnyMotionDetector$Vector3;-><init>(JFFF)V
-PLcom/android/server/AnyMotionDetector;-><init>(Landroid/os/PowerManager;Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/android/server/AnyMotionDetector$DeviceIdleCallback;F)V
-PLcom/android/server/AppSchedulingModuleThread;-><init>()V
-HPLcom/android/server/AppSchedulingModuleThread;->ensureThreadLocked()V
+PLcom/android/server/AnyMotionDetector$Vector3;-><init>(FFFJ)V
+PLcom/android/server/AnyMotionDetector;-><init>(Landroid/os/PowerManager;Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/android/server/DeviceIdleController;F)V
+HPLcom/android/server/AnyMotionDetector;->stop()V
+PLcom/android/server/AppSchedulingModuleThread;->ensureThreadLocked()V
 PLcom/android/server/AppSchedulingModuleThread;->get()Lcom/android/server/AppSchedulingModuleThread;
 PLcom/android/server/AppSchedulingModuleThread;->getExecutor()Ljava/util/concurrent/Executor;
-HPLcom/android/server/AppSchedulingModuleThread;->getHandler()Landroid/os/Handler;
+PLcom/android/server/AppSchedulingModuleThread;->getHandler()Landroid/os/Handler;
 PLcom/android/server/AppStateTrackerImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$1;-><init>(Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTracker$BackgroundRestrictedAppListener;)V
+PLcom/android/server/AppStateTrackerImpl$1;-><init>(Lcom/android/server/AppStateTracker$BackgroundRestrictedAppListener;)V
 PLcom/android/server/AppStateTrackerImpl$2;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
 PLcom/android/server/AppStateTrackerImpl$3;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
 HPLcom/android/server/AppStateTrackerImpl$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/AppStateTrackerImpl$AppOpsWatcher;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$AppOpsWatcher;-><init>(Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl$AppOpsWatcher-IA;)V
 PLcom/android/server/AppStateTrackerImpl$FeatureFlagsObserver;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$FeatureFlagsObserver;->isForcedAppStandbyForSmallBatteryEnabled()Z
-PLcom/android/server/AppStateTrackerImpl$FeatureFlagsObserver;->register()V
-PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monExemptedBucketChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monTempPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monUidActiveStateChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;I)V
-PLcom/android/server/AppStateTrackerImpl$Listener;-><init>()V
-PLcom/android/server/AppStateTrackerImpl$Listener;->handleUidCachedChanged(IZ)V
-PLcom/android/server/AppStateTrackerImpl$Listener;->onExemptedBucketChanged(Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$Listener;->onTempPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl;)V
-HPLcom/android/server/AppStateTrackerImpl$Listener;->onUidActiveStateChanged(Lcom/android/server/AppStateTrackerImpl;I)V
 PLcom/android/server/AppStateTrackerImpl$Listener;->unblockAlarmsForUid(I)V
 PLcom/android/server/AppStateTrackerImpl$Listener;->updateAlarmsForUid(I)V
-PLcom/android/server/AppStateTrackerImpl$Listener;->updateAllAlarms()V
 PLcom/android/server/AppStateTrackerImpl$Listener;->updateAllJobs()V
 PLcom/android/server/AppStateTrackerImpl$Listener;->updateJobsForUid(IZ)V
+PLcom/android/server/AppStateTrackerImpl$MyHandler$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/AppStateTrackerImpl$MyHandler;-><init>(Lcom/android/server/AppStateTrackerImpl;Landroid/os/Looper;)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleUidActive(I)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleUidCached(IZ)V
-PLcom/android/server/AppStateTrackerImpl$MyHandler;->handleUidGone(I)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleUidIdle(I)V
-PLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyAllExemptionListChanged()V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyExemptedBucketChanged()V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyTempExemptionListChanged()V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyUidActiveStateChanged(I)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->onUidActive(I)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->onUidCachedChanged(IZ)V
-PLcom/android/server/AppStateTrackerImpl$MyHandler;->onUidGone(IZ)V
-HPLcom/android/server/AppStateTrackerImpl$MyHandler;->onUidIdle(IZ)V
+HPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl$1;,Lcom/android/server/alarm/AlarmManagerService$7;,Lcom/android/server/job/controllers/BackgroundJobsController$2;
 HPLcom/android/server/AppStateTrackerImpl$MyHandler;->removeUid(IZ)V
 PLcom/android/server/AppStateTrackerImpl$StandbyTracker;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
-HPLcom/android/server/AppStateTrackerImpl$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
+PLcom/android/server/AppStateTrackerImpl$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 PLcom/android/server/AppStateTrackerImpl$UidObserver;-><init>(Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl$UidObserver;-><init>(Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl$UidObserver-IA;)V
-HPLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidActive(I)V
-HPLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidCachedChanged(IZ)V
-HPLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidGone(IZ)V
-HPLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidIdle(IZ)V
-PLcom/android/server/AppStateTrackerImpl;->-$$Nest$fgetmContext(Lcom/android/server/AppStateTrackerImpl;)Landroid/content/Context;
-HPLcom/android/server/AppStateTrackerImpl;->-$$Nest$fgetmHandler(Lcom/android/server/AppStateTrackerImpl;)Lcom/android/server/AppStateTrackerImpl$MyHandler;
-HPLcom/android/server/AppStateTrackerImpl;->-$$Nest$fgetmLock(Lcom/android/server/AppStateTrackerImpl;)Ljava/lang/Object;
-HPLcom/android/server/AppStateTrackerImpl;->-$$Nest$fgetmStatLogger(Lcom/android/server/AppStateTrackerImpl;)Lcom/android/internal/util/jobs/StatLogger;
+PLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidActive(I)V
+PLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidCachedChanged(IZ)V
+PLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidGone(IZ)V
+PLcom/android/server/AppStateTrackerImpl$UidObserver;->onUidIdle(IZ)V
 HPLcom/android/server/AppStateTrackerImpl;->-$$Nest$mcloneListeners(Lcom/android/server/AppStateTrackerImpl;)[Lcom/android/server/AppStateTrackerImpl$Listener;
-PLcom/android/server/AppStateTrackerImpl;->-$$Nest$mupdateForceAllAppStandbyState(Lcom/android/server/AppStateTrackerImpl;)V
-PLcom/android/server/AppStateTrackerImpl;->-$$Nest$smaddUidToArray(Landroid/util/SparseBooleanArray;I)Z
-HPLcom/android/server/AppStateTrackerImpl;->-$$Nest$smremoveUidFromArray(Landroid/util/SparseBooleanArray;IZ)Z
 PLcom/android/server/AppStateTrackerImpl;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 PLcom/android/server/AppStateTrackerImpl;->addBackgroundRestrictedAppListener(Lcom/android/server/AppStateTracker$BackgroundRestrictedAppListener;)V
 PLcom/android/server/AppStateTrackerImpl;->addListener(Lcom/android/server/AppStateTrackerImpl$Listener;)V
-HPLcom/android/server/AppStateTrackerImpl;->addUidToArray(Landroid/util/SparseBooleanArray;I)Z
 PLcom/android/server/AppStateTrackerImpl;->areAlarmsRestricted(ILjava/lang/String;)Z
-HPLcom/android/server/AppStateTrackerImpl;->areAlarmsRestrictedByBatterySaver(ILjava/lang/String;)Z
-HPLcom/android/server/AppStateTrackerImpl;->areJobsRestricted(ILjava/lang/String;Z)Z
-HPLcom/android/server/AppStateTrackerImpl;->cloneListeners()[Lcom/android/server/AppStateTrackerImpl$Listener;
+PLcom/android/server/AppStateTrackerImpl;->areAlarmsRestrictedByBatterySaver(ILjava/lang/String;)Z
+HPLcom/android/server/AppStateTrackerImpl;->areJobsRestricted(ILjava/lang/String;Z)Z+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;
+PLcom/android/server/AppStateTrackerImpl;->dump(Landroid/util/IndentingPrintWriter;)V
 HPLcom/android/server/AppStateTrackerImpl;->findForcedAppStandbyUidPackageIndexLocked(ILjava/lang/String;)I
 PLcom/android/server/AppStateTrackerImpl;->injectActivityManagerInternal()Landroid/app/ActivityManagerInternal;
 PLcom/android/server/AppStateTrackerImpl;->injectAppOpsManager()Landroid/app/AppOpsManager;
@@ -1856,36 +1800,26 @@
 PLcom/android/server/AppStateTrackerImpl;->injectPowerManagerInternal()Landroid/os/PowerManagerInternal;
 PLcom/android/server/AppStateTrackerImpl;->isAnyAppIdUnexempt([I[I)Z
 HPLcom/android/server/AppStateTrackerImpl;->isAppBackgroundRestricted(ILjava/lang/String;)Z
-PLcom/android/server/AppStateTrackerImpl;->isForceAllAppsStandbyEnabled()Z
 HPLcom/android/server/AppStateTrackerImpl;->isRunAnyInBackgroundAppOpsAllowed(ILjava/lang/String;)Z
-HPLcom/android/server/AppStateTrackerImpl;->isRunAnyRestrictedLocked(ILjava/lang/String;)Z
-HPLcom/android/server/AppStateTrackerImpl;->isUidActive(I)Z
-PLcom/android/server/AppStateTrackerImpl;->isUidActiveSynced(I)Z
-HPLcom/android/server/AppStateTrackerImpl;->isUidPowerSaveUserExempt(I)Z
-HPLcom/android/server/AppStateTrackerImpl;->onSystemServicesReady()V
+PLcom/android/server/AppStateTrackerImpl;->isSmallBatteryDevice()Z
+HPLcom/android/server/AppStateTrackerImpl;->isUidActive(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+PLcom/android/server/AppStateTrackerImpl;->onSystemServicesReady()V
 PLcom/android/server/AppStateTrackerImpl;->refreshForcedAppStandbyUidPackagesLocked()V
-HPLcom/android/server/AppStateTrackerImpl;->removeUidFromArray(Landroid/util/SparseBooleanArray;IZ)Z
-HPLcom/android/server/AppStateTrackerImpl;->setPowerSaveExemptionListAppIds([I[I[I)V
-PLcom/android/server/AppStateTrackerImpl;->toggleForceAllAppsStandbyLocked(Z)V
 PLcom/android/server/AppStateTrackerImpl;->updateForceAllAppStandbyState()V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda4;->update(Landroid/hardware/health/HealthInfo;)V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
-PLcom/android/server/BatteryService$$ExternalSyntheticLambda5;->run()V
+HPLcom/android/server/BatteryService$$ExternalSyntheticLambda1;->handleMessage(Landroid/os/Message;)Z
+PLcom/android/server/BatteryService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/BatteryService;I)V
+PLcom/android/server/BatteryService$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/BatteryService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/BatteryService;)V
+PLcom/android/server/BatteryService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;)Landroid/content/Intent;
+PLcom/android/server/BatteryService$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/BatteryService$2;-><init>(Lcom/android/server/BatteryService;Landroid/os/Handler;)V
 PLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$BatteryPropertiesRegistrar-IA;)V
 PLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->getProperty(ILandroid/os/BatteryProperty;)I
+PLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->scheduleUpdate()V
 PLcom/android/server/BatteryService$BinderService;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$BinderService;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$BinderService-IA;)V
+PLcom/android/server/BatteryService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/BatteryService$Led;-><init>(Lcom/android/server/BatteryService;Landroid/content/Context;Lcom/android/server/lights/LightsManager;)V
-PLcom/android/server/BatteryService$Led;->updateLightsLocked()V
 PLcom/android/server/BatteryService$LocalService;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$LocalService;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$LocalService-IA;)V
 PLcom/android/server/BatteryService$LocalService;->getBatteryFullCharge()I
 PLcom/android/server/BatteryService$LocalService;->getBatteryHealth()I
 PLcom/android/server/BatteryService$LocalService;->getBatteryLevel()I
@@ -1894,493 +1828,364 @@
 PLcom/android/server/BatteryService$LocalService;->getPlugType()I
 PLcom/android/server/BatteryService$LocalService;->isPowered(I)Z
 PLcom/android/server/BatteryService$LocalService;->registerChargingPolicyChangeListener(Landroid/os/BatteryManagerInternal$ChargingPolicyChangeListener;)V
-PLcom/android/server/BatteryService;->$r8$lambda$N8ClakoF19_iwV3c15yk39OjjgA(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
-PLcom/android/server/BatteryService;->$r8$lambda$QITgs02JU2zUgONUrF7rVY3JmZw(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService;->$r8$lambda$kI548aEkD-5ubzJcKyoIH4vQF6M(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService;->$r8$lambda$rpwqZVDE4vm803PIdo4dJE92WYc(Lcom/android/server/BatteryService;Landroid/hardware/health/HealthInfo;)V
-PLcom/android/server/BatteryService;->-$$Nest$fgetmBatteryLevelLow(Lcom/android/server/BatteryService;)Z
-PLcom/android/server/BatteryService;->-$$Nest$fgetmChargingPolicyChangeListeners(Lcom/android/server/BatteryService;)Ljava/util/concurrent/CopyOnWriteArraySet;
-PLcom/android/server/BatteryService;->-$$Nest$fgetmHealthInfo(Lcom/android/server/BatteryService;)Landroid/hardware/health/HealthInfo;
-PLcom/android/server/BatteryService;->-$$Nest$fgetmHealthServiceWrapper(Lcom/android/server/BatteryService;)Lcom/android/server/health/HealthServiceWrapper;
-PLcom/android/server/BatteryService;->-$$Nest$fgetmLastChargingPolicy(Lcom/android/server/BatteryService;)I
-PLcom/android/server/BatteryService;->-$$Nest$fgetmLock(Lcom/android/server/BatteryService;)Ljava/lang/Object;
-PLcom/android/server/BatteryService;->-$$Nest$fgetmPlugType(Lcom/android/server/BatteryService;)I
-PLcom/android/server/BatteryService;->-$$Nest$fputmBatteryNearlyFullLevel(Lcom/android/server/BatteryService;I)V
-PLcom/android/server/BatteryService;->-$$Nest$misPoweredLocked(Lcom/android/server/BatteryService;I)Z
 PLcom/android/server/BatteryService;-><clinit>()V
-HPLcom/android/server/BatteryService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/BatteryService;->broadcastBatteryChangedIntent(Landroid/content/Intent;Landroid/os/Bundle;)V
-PLcom/android/server/BatteryService;->getIconLocked(I)I
-PLcom/android/server/BatteryService;->isPoweredLocked(I)Z
-PLcom/android/server/BatteryService;->lambda$sendBatteryChangedIntentLocked$0(Landroid/content/Intent;)V
-PLcom/android/server/BatteryService;->notifyChargingPolicyChanged()V
+PLcom/android/server/BatteryService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/BatteryService;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HPLcom/android/server/BatteryService;->isPoweredLocked(I)Z
+PLcom/android/server/BatteryService;->logBatteryStatsLocked()V
 PLcom/android/server/BatteryService;->onBootPhase(I)V
 PLcom/android/server/BatteryService;->onStart()V
-PLcom/android/server/BatteryService;->plugType(Landroid/hardware/health/HealthInfo;)I
 HPLcom/android/server/BatteryService;->processValuesLocked(Z)V
-PLcom/android/server/BatteryService;->registerHealthCallback()V
-HPLcom/android/server/BatteryService;->sendBatteryChangedIntentLocked()V
-HPLcom/android/server/BatteryService;->sendBatteryLevelChangedIntentLocked()V
-PLcom/android/server/BatteryService;->sendEnqueuedBatteryLevelChangedEvents()V
-PLcom/android/server/BatteryService;->shouldSendBatteryLowLocked()Z
-PLcom/android/server/BatteryService;->shouldShutdownLocked()Z
-PLcom/android/server/BatteryService;->shutdownIfNoPowerLocked()V
-PLcom/android/server/BatteryService;->shutdownIfOverTempLocked()V
-PLcom/android/server/BatteryService;->traceBegin(Ljava/lang/String;)V
-PLcom/android/server/BatteryService;->traceEnd()V
 HPLcom/android/server/BatteryService;->update(Landroid/hardware/health/HealthInfo;)V
 PLcom/android/server/BatteryService;->updateBatteryWarningLevelLocked()V
-PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/BinaryTransparencyService;)V
-PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/BinaryTransparencyService;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m$1(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m$1(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m$1(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ILjava/io/PrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/io/PrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ZLjava/io/PrintWriter;)V
+PLcom/android/server/BinaryTransparencyService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ZLjava/io/PrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLcom/android/server/BinaryTransparencyService$3;-><init>(Lcom/android/server/BinaryTransparencyService;)V
 PLcom/android/server/BinaryTransparencyService$BinaryTransparencyServiceImpl;-><init>(Lcom/android/server/BinaryTransparencyService;)V
+PLcom/android/server/BinaryTransparencyService$BinaryTransparencyServiceImpl;->collectAllApexInfo(Z)Ljava/util/List;
+PLcom/android/server/BinaryTransparencyService$BinaryTransparencyServiceImpl;->computeApkContentDigest(Ljava/lang/String;)Ljava/util/Map;
+PLcom/android/server/BinaryTransparencyService$BinaryTransparencyServiceImpl;->computePackageSignerSha256Digests(Landroid/content/pm/SigningInfo;)[Ljava/lang/String;
+PLcom/android/server/BinaryTransparencyService$BinaryTransparencyServiceImpl;->measureApk(Ljava/lang/String;)Lcom/android/server/BinaryTransparencyService$Digest;
+PLcom/android/server/BinaryTransparencyService$BinaryTransparencyServiceImpl;->recordMeasurementsForAllPackages()V
 PLcom/android/server/BinaryTransparencyService$BiometricLogger;-><clinit>()V
 PLcom/android/server/BinaryTransparencyService$BiometricLogger;-><init>()V
-PLcom/android/server/BinaryTransparencyService$BiometricLogger;->getInstance()Lcom/android/server/BinaryTransparencyService$BiometricLogger;
+PLcom/android/server/BinaryTransparencyService$Digest;-><init>(I[B)V
 PLcom/android/server/BinaryTransparencyService$PackageUpdatedReceiver;-><init>(Lcom/android/server/BinaryTransparencyService;)V
-PLcom/android/server/BinaryTransparencyService$PackageUpdatedReceiver;-><init>(Lcom/android/server/BinaryTransparencyService;Lcom/android/server/BinaryTransparencyService$PackageUpdatedReceiver-IA;)V
-PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService;-><clinit>()V
-PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService;->scheduleBinaryMeasurements(Landroid/content/Context;Lcom/android/server/BinaryTransparencyService;)V
-PLcom/android/server/BinaryTransparencyService;->$r8$lambda$e2eFFQ4jadgx-pDFIBv7RiSb2IE(Lcom/android/server/BinaryTransparencyService;)V
+PLcom/android/server/BinaryTransparencyService$PackageUpdatedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService;Landroid/app/job/JobParameters;)V
+PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService;-><init>()V
+PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/BinaryTransparencyService$UpdateMeasurementsJobService;->scheduleBinaryMeasurements(Landroid/content/Context;)V
+PLcom/android/server/BinaryTransparencyService;->-$$Nest$mgetCurrentInstalledApexs(Lcom/android/server/BinaryTransparencyService;)Ljava/util/List;
 PLcom/android/server/BinaryTransparencyService;-><clinit>()V
 PLcom/android/server/BinaryTransparencyService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/BinaryTransparencyService;-><init>(Landroid/content/Context;Lcom/android/server/BinaryTransparencyService$BiometricLogger;)V
 PLcom/android/server/BinaryTransparencyService;->collectBiometricProperties()V
-PLcom/android/server/BinaryTransparencyService;->collectBootIntegrityInfo()V
-PLcom/android/server/BinaryTransparencyService;->lambda$collectBootIntegrityInfo$0()V
 PLcom/android/server/BinaryTransparencyService;->onBootPhase(I)V
 PLcom/android/server/BinaryTransparencyService;->onStart()V
-PLcom/android/server/BinaryTransparencyService;->registerAllPackageUpdateObservers()V
-PLcom/android/server/BinaryTransparencyService;->registerApkAndNonStagedApexUpdateListener()V
-PLcom/android/server/BinaryTransparencyService;->registerStagedApexUpdateObserver()V
-PLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;-><init>()V
-PLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->createAppidTrustlist(Landroid/content/Context;)Landroid/util/ArraySet;
-HPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->getCallingUid()I
 HPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->resolveWorkSourceUid(I)I
-PLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->systemReady(Landroid/content/Context;)V
+PLcom/android/server/BinderCallsStatsService$BinderCallsStatsShellCommand;-><init>(Lcom/android/server/BinderCallsStatsService;Ljava/io/PrintWriter;)V
+PLcom/android/server/BinderCallsStatsService$BinderCallsStatsShellCommand;->getOutPrintWriter()Ljava/io/PrintWriter;
+PLcom/android/server/BinderCallsStatsService$BinderCallsStatsShellCommand;->onCommand(Ljava/lang/String;)I
 PLcom/android/server/BinderCallsStatsService$Internal;-><init>(Lcom/android/internal/os/BinderCallsStats;)V
 PLcom/android/server/BinderCallsStatsService$LifeCycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/BinderCallsStatsService$LifeCycle;->onBootPhase(I)V
 PLcom/android/server/BinderCallsStatsService$LifeCycle;->onStart()V
 PLcom/android/server/BinderCallsStatsService$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/internal/os/BinderCallsStats;Lcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;)V
-HPLcom/android/server/BinderCallsStatsService$SettingsObserver;->onChange()V
+PLcom/android/server/BinderCallsStatsService$SettingsObserver;->onChange()V
+PLcom/android/server/BinderCallsStatsService$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V
 PLcom/android/server/BinderCallsStatsService;-><init>(Lcom/android/internal/os/BinderCallsStats;Lcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;)V
-PLcom/android/server/BinderCallsStatsService;->systemReady(Landroid/content/Context;)V
+PLcom/android/server/BinderCallsStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/BootReceiver$$ExternalSyntheticOutline0;->m$1(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver$$ExternalSyntheticOutline0;->m(ILjava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/BootReceiver$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;JLjava/lang/String;)V
 PLcom/android/server/BootReceiver$1;-><init>(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
 PLcom/android/server/BootReceiver$1;->run()V
 PLcom/android/server/BootReceiver;->-$$Nest$mlogBootEvents(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
-PLcom/android/server/BootReceiver;->-$$Nest$mremoveOldUpdatePackages(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
 PLcom/android/server/BootReceiver;-><clinit>()V
 PLcom/android/server/BootReceiver;-><init>()V
-HPLcom/android/server/BootReceiver;->addAuditErrorsToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/BootReceiver;->addAugmentedProtoToDropbox(Ljava/io/File;Landroid/os/DropBoxManager;Lcom/android/server/am/DropboxRateLimiter$RateLimitResult;)V
-PLcom/android/server/BootReceiver;->addFileToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/BootReceiver;->addFileWithFootersToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/BootReceiver;->addFsckErrorsToDropBoxAndLogFsStat(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/BootReceiver;->addLastkToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/BootReceiver;->addTextToDropBox(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/BootReceiver;->addTombstoneToDropBox(Landroid/content/Context;Ljava/io/File;ZLjava/lang/String;Ljava/util/concurrent/locks/ReentrantLock;)V
+PLcom/android/server/BootReceiver;->addLastkToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/BootReceiver;->fixFsckFsStat(Ljava/lang/String;I[Ljava/lang/String;II)I
 PLcom/android/server/BootReceiver;->getBootHeadersToLogAndUpdate()Ljava/lang/String;
-HPLcom/android/server/BootReceiver;->getCurrentBootHeaders()Ljava/lang/String;
-PLcom/android/server/BootReceiver;->getPreviousBootHeaders()Ljava/lang/String;
-HPLcom/android/server/BootReceiver;->handleFsckFsStat(Ljava/util/regex/Matcher;[Ljava/lang/String;II)V
-PLcom/android/server/BootReceiver;->initDropboxRateLimiter()V
-PLcom/android/server/BootReceiver;->logBootEvents(Landroid/content/Context;)V
-PLcom/android/server/BootReceiver;->logFsMountTime()V
-PLcom/android/server/BootReceiver;->logFsShutdownTime()V
-PLcom/android/server/BootReceiver;->logSystemServerShutdownTimeMetrics()V
 PLcom/android/server/BootReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HPLcom/android/server/BootReceiver;->readTimestamps()Ljava/util/HashMap;
+PLcom/android/server/BootReceiver;->readTimestamps()Ljava/util/HashMap;
 PLcom/android/server/BootReceiver;->recordFileTimestamp(Ljava/io/File;Ljava/util/HashMap;)Z
-PLcom/android/server/BootReceiver;->removeOldUpdatePackages(Landroid/content/Context;)V
-HPLcom/android/server/BootReceiver;->writeTimestamps(Ljava/util/HashMap;)V
+PLcom/android/server/BootReceiver;->writeTimestamps(Ljava/util/HashMap;)V
 PLcom/android/server/BundleUtils;->clone(Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLcom/android/server/BundleUtils;->isEmpty(Landroid/os/Bundle;)Z
 PLcom/android/server/CachedDeviceStateService$1;-><init>(Lcom/android/server/CachedDeviceStateService;)V
-PLcom/android/server/CachedDeviceStateService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/CachedDeviceStateService;->-$$Nest$fgetmDeviceState(Lcom/android/server/CachedDeviceStateService;)Lcom/android/internal/os/CachedDeviceState;
+HPLcom/android/server/CachedDeviceStateService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/CachedDeviceStateService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/CachedDeviceStateService;->onBootPhase(I)V
 PLcom/android/server/CachedDeviceStateService;->onStart()V
-PLcom/android/server/CachedDeviceStateService;->queryIsCharging()Z
-PLcom/android/server/CachedDeviceStateService;->queryScreenInteractive(Landroid/content/Context;)Z
-PLcom/android/server/CertBlacklister$BlacklistObserver;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentResolver;)V
-PLcom/android/server/CertBlacklister;-><clinit>()V
-PLcom/android/server/CertBlacklister;-><init>(Landroid/content/Context;)V
-PLcom/android/server/CertBlacklister;->buildPubkeyObserver(Landroid/content/ContentResolver;)Lcom/android/server/CertBlacklister$BlacklistObserver;
-PLcom/android/server/CertBlacklister;->buildSerialObserver(Landroid/content/ContentResolver;)Lcom/android/server/CertBlacklister$BlacklistObserver;
-PLcom/android/server/CertBlacklister;->registerObservers(Landroid/content/ContentResolver;)V
-PLcom/android/server/CommunalProfileInitializer;-><clinit>()V
+PLcom/android/server/CertBlocklister$BlocklistObserver$1;-><init>(Lcom/android/server/CertBlocklister$BlocklistObserver;)V
+PLcom/android/server/CertBlocklister$BlocklistObserver$1;->run()V
+PLcom/android/server/CertBlocklister$BlocklistObserver;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentResolver;)V
+PLcom/android/server/CertBlocklister$BlocklistObserver;->onChange(Z)V
+PLcom/android/server/CertBlocklister;-><clinit>()V
+PLcom/android/server/CertBlocklister;-><init>(Landroid/content/Context;)V
 PLcom/android/server/CommunalProfileInitializer;->removeCommunalProfileIfPresent()V
+PLcom/android/server/ConnectivityServiceInitializerB$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Landroid/content/IntentFilter;
+PLcom/android/server/ConnectivityServiceInitializerB;-><init>(Landroid/content/Context;)V
+PLcom/android/server/ConnectivityServiceInitializerB;->onBootPhase(I)V
+PLcom/android/server/ConnectivityServiceInitializerB;->onStart()V
 PLcom/android/server/ContextHubSystemService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/ContextHubSystemService;Landroid/content/Context;)V
 PLcom/android/server/ContextHubSystemService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/ContextHubSystemService;->$r8$lambda$rh2pjqKKW3BPmYQWkE44zlrrbEc(Lcom/android/server/ContextHubSystemService;Landroid/content/Context;)V
 PLcom/android/server/ContextHubSystemService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/ContextHubSystemService;->lambda$new$0(Landroid/content/Context;)V
 PLcom/android/server/ContextHubSystemService;->onBootPhase(I)V
 PLcom/android/server/ContextHubSystemService;->onStart()V
 PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/CountryDetectorService;)V
-PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/CountryDetectorService;Landroid/location/CountryListener;)V
+PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda0;->onCountryDetected(Landroid/location/Country;)V
+PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/CountryDetectorService;Ljava/lang/Object;I)V
 PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/CountryDetectorService;)V
 PLcom/android/server/CountryDetectorService$$ExternalSyntheticLambda2;->run()V
 PLcom/android/server/CountryDetectorService$Receiver;-><init>(Lcom/android/server/CountryDetectorService;Landroid/location/ICountryListener;)V
 PLcom/android/server/CountryDetectorService$Receiver;->binderDied()V
-PLcom/android/server/CountryDetectorService;->$r8$lambda$HYkxybtKcKj3KOzS426QA588kgg(Lcom/android/server/CountryDetectorService;Landroid/location/CountryListener;)V
-PLcom/android/server/CountryDetectorService;->$r8$lambda$w1hnAvR_BRhLPQmveSOw4E6Hh5M(Lcom/android/server/CountryDetectorService;)V
-PLcom/android/server/CountryDetectorService;->-$$Nest$mremoveListener(Lcom/android/server/CountryDetectorService;Landroid/os/IBinder;)V
 PLcom/android/server/CountryDetectorService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/CountryDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 PLcom/android/server/CountryDetectorService;->addCountryListener(Landroid/location/ICountryListener;)V
-PLcom/android/server/CountryDetectorService;->addListener(Landroid/location/ICountryListener;)V
 PLcom/android/server/CountryDetectorService;->detectCountry()Landroid/location/Country;
+PLcom/android/server/CountryDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/CountryDetectorService;->initialize()V
-PLcom/android/server/CountryDetectorService;->lambda$setCountryListener$3(Landroid/location/CountryListener;)V
-PLcom/android/server/CountryDetectorService;->lambda$systemRunning$0()V
-PLcom/android/server/CountryDetectorService;->loadCustomCountryDetectorIfAvailable(Ljava/lang/String;)Lcom/android/server/location/countrydetector/CountryDetectorBase;
 PLcom/android/server/CountryDetectorService;->removeListener(Landroid/os/IBinder;)V
-PLcom/android/server/CountryDetectorService;->setCountryListener(Landroid/location/CountryListener;)V
-PLcom/android/server/CountryDetectorService;->systemRunning()V
 PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/DeviceIdleController;)V
+PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda0;->onAlarm()V
 PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/DeviceIdleController;)V
 PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/DeviceIdleController;)V
 PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda6;-><init>()V
+PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda4;-><init>(I)V
 PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/DeviceIdleController;II)V
 PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda7;->test(Ljava/lang/Object;)Z
 PLcom/android/server/DeviceIdleController$1;-><init>(Lcom/android/server/DeviceIdleController;)V
 HPLcom/android/server/DeviceIdleController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/DeviceIdleController$2;-><init>(Lcom/android/server/DeviceIdleController;)V
 PLcom/android/server/DeviceIdleController$3;-><init>(Lcom/android/server/DeviceIdleController;)V
+PLcom/android/server/DeviceIdleController$3;->onAlarm()V
 PLcom/android/server/DeviceIdleController$4;-><init>(Lcom/android/server/DeviceIdleController;)V
+PLcom/android/server/DeviceIdleController$4;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 PLcom/android/server/DeviceIdleController$5;-><init>(Lcom/android/server/DeviceIdleController;)V
+PLcom/android/server/DeviceIdleController$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/DeviceIdleController$6;-><init>(Lcom/android/server/DeviceIdleController;)V
 PLcom/android/server/DeviceIdleController$7;-><init>(Lcom/android/server/DeviceIdleController;)V
 PLcom/android/server/DeviceIdleController$8;-><init>(Lcom/android/server/DeviceIdleController;)V
+PLcom/android/server/DeviceIdleController$8;->onAwakeStateChanged(Z)V
 PLcom/android/server/DeviceIdleController$8;->onKeyguardStateChanged(Z)V
 PLcom/android/server/DeviceIdleController$BinderService;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$BinderService;-><init>(Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController$BinderService-IA;)V
-PLcom/android/server/DeviceIdleController$BinderService;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JIILjava/lang/String;)V
+HPLcom/android/server/DeviceIdleController$BinderService;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JIILjava/lang/String;)V
+PLcom/android/server/DeviceIdleController$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/DeviceIdleController$BinderService;->getAppIdWhitelist()[I
 PLcom/android/server/DeviceIdleController$BinderService;->getAppIdWhitelistExceptIdle()[I
 PLcom/android/server/DeviceIdleController$BinderService;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
-HPLcom/android/server/DeviceIdleController$Constants;-><init>(Lcom/android/server/DeviceIdleController;Landroid/os/Handler;Landroid/content/ContentResolver;)V
-PLcom/android/server/DeviceIdleController$Constants;->getTimeout(JJ)J
-HPLcom/android/server/DeviceIdleController$Constants;->initDefault()V
+PLcom/android/server/DeviceIdleController$BinderService;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z
+PLcom/android/server/DeviceIdleController$Constants$$ExternalSyntheticOutline0;->m(JLjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/DeviceIdleController$Constants$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/DeviceIdleController$Constants;-><init>(Lcom/android/server/DeviceIdleController;Landroid/os/Handler;Landroid/content/ContentResolver;)V
+PLcom/android/server/DeviceIdleController$Constants;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/DeviceIdleController$Constants;->updateConstantsLocked()V
 PLcom/android/server/DeviceIdleController$Constants;->updateSettingsConstantLocked()V
 PLcom/android/server/DeviceIdleController$EmergencyCallListener;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$EmergencyCallListener;-><init>(Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController$EmergencyCallListener-IA;)V
+PLcom/android/server/DeviceIdleController$EmergencyCallListener;->onCallStateChanged(I)V
 PLcom/android/server/DeviceIdleController$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/DeviceIdleController$Injector;->getAlarmManager()Landroid/app/AlarmManager;
-PLcom/android/server/DeviceIdleController$Injector;->getAnyMotionDetector(Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/android/server/AnyMotionDetector$DeviceIdleCallback;F)Lcom/android/server/AnyMotionDetector;
-PLcom/android/server/DeviceIdleController$Injector;->getAppStateTracker(Landroid/content/Context;Landroid/os/Looper;)Lcom/android/server/AppStateTrackerImpl;
-PLcom/android/server/DeviceIdleController$Injector;->getConnectivityManager()Landroid/net/ConnectivityManager;
-PLcom/android/server/DeviceIdleController$Injector;->getConstants(Lcom/android/server/DeviceIdleController;Landroid/os/Handler;Landroid/content/ContentResolver;)Lcom/android/server/DeviceIdleController$Constants;
-PLcom/android/server/DeviceIdleController$Injector;->getConstraintController(Landroid/os/Handler;Lcom/android/server/DeviceIdleInternal;)Lcom/android/server/deviceidle/ConstraintController;
-PLcom/android/server/DeviceIdleController$Injector;->getHandler(Lcom/android/server/DeviceIdleController;)Lcom/android/server/DeviceIdleController$MyHandler;
-PLcom/android/server/DeviceIdleController$Injector;->getMotionSensor()Landroid/hardware/Sensor;
-PLcom/android/server/DeviceIdleController$Injector;->getPowerManager()Landroid/os/PowerManager;
-PLcom/android/server/DeviceIdleController$Injector;->getSensorManager()Landroid/hardware/SensorManager;
-PLcom/android/server/DeviceIdleController$Injector;->getTelephonyManager()Landroid/telephony/TelephonyManager;
-PLcom/android/server/DeviceIdleController$Injector;->isLocationPrefetchEnabled()Z
-PLcom/android/server/DeviceIdleController$Injector;->useMotionSensor()Z
 PLcom/android/server/DeviceIdleController$LocalPowerAllowlistService;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$LocalPowerAllowlistService;-><init>(Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController$LocalPowerAllowlistService-IA;)V
 PLcom/android/server/DeviceIdleController$LocalPowerAllowlistService;->registerTempAllowlistChangeListener(Lcom/android/server/PowerAllowlistInternal$TempAllowlistChangeListener;)V
 PLcom/android/server/DeviceIdleController$LocalService;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$LocalService;-><init>(Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController$LocalService-IA;)V
-HPLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistAppDirect(IJIZILjava/lang/String;I)V
-PLcom/android/server/DeviceIdleController$LocalService;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
+PLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistApp(ILjava/lang/String;JIIZILjava/lang/String;)V
+PLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistApp(ILjava/lang/String;JIZILjava/lang/String;)V
+PLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistAppDirect(IJIZILjava/lang/String;I)V
 PLcom/android/server/DeviceIdleController$LocalService;->getNotificationAllowlistDuration()J
-HPLcom/android/server/DeviceIdleController$LocalService;->getPowerSaveTempWhitelistAppIds()[I
+PLcom/android/server/DeviceIdleController$LocalService;->getPowerSaveTempWhitelistAppIds()[I
 PLcom/android/server/DeviceIdleController$LocalService;->getPowerSaveWhitelistUserAppIds()[I
-HPLcom/android/server/DeviceIdleController$LocalService;->getTempAllowListType(II)I
+PLcom/android/server/DeviceIdleController$LocalService;->getTempAllowListType(II)I
 PLcom/android/server/DeviceIdleController$LocalService;->isAppOnWhitelist(I)Z
 PLcom/android/server/DeviceIdleController$LocalService;->setAlarmsActive(Z)V
 PLcom/android/server/DeviceIdleController$LocalService;->setJobsActive(Z)V
 PLcom/android/server/DeviceIdleController$ModeManagerOffBodyStateConsumer;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$ModeManagerOffBodyStateConsumer;->accept(Ljava/lang/Boolean;)V
 PLcom/android/server/DeviceIdleController$ModeManagerOffBodyStateConsumer;->accept(Ljava/lang/Object;)V
-PLcom/android/server/DeviceIdleController$ModeManagerOffBodyStateConsumer;->onModeManagerOffBodyChangedLocked()V
 PLcom/android/server/DeviceIdleController$ModeManagerQuickDozeRequestConsumer;-><init>(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController$ModeManagerQuickDozeRequestConsumer;->accept(Ljava/lang/Boolean;)V
-PLcom/android/server/DeviceIdleController$ModeManagerQuickDozeRequestConsumer;->accept(Ljava/lang/Object;)V
 PLcom/android/server/DeviceIdleController$MotionListener;-><init>(Lcom/android/server/DeviceIdleController;)V
 PLcom/android/server/DeviceIdleController$MyHandler;-><init>(Lcom/android/server/DeviceIdleController;Landroid/os/Looper;)V
-HPLcom/android/server/DeviceIdleController$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/DeviceIdleController;->$r8$lambda$aNkRWECW9WeDkUwaGny7VNmedfc(Lcom/android/server/DeviceIdleController;IILjava/lang/String;)Z
-PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmConstants(Lcom/android/server/DeviceIdleController;)Lcom/android/server/DeviceIdleController$Constants;
-PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmForceModeManagerOffBodyState(Lcom/android/server/DeviceIdleController;)Z
-PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmForceModeManagerQuickDozeRequest(Lcom/android/server/DeviceIdleController;)Z
-PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmIsOffBody(Lcom/android/server/DeviceIdleController;)Z
-PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmModeManagerRequestedQuickDoze(Lcom/android/server/DeviceIdleController;)Z
-HPLcom/android/server/DeviceIdleController;->-$$Nest$fgetmNetworkPolicyManagerInternal(Lcom/android/server/DeviceIdleController;)Lcom/android/server/net/NetworkPolicyManagerInternal;
-HPLcom/android/server/DeviceIdleController;->-$$Nest$fgetmTempAllowlistChangeListeners(Lcom/android/server/DeviceIdleController;)Landroid/util/ArraySet;
-PLcom/android/server/DeviceIdleController;->-$$Nest$fputmIsOffBody(Lcom/android/server/DeviceIdleController;Z)V
-PLcom/android/server/DeviceIdleController;->-$$Nest$mgetFullPowerWhitelistExceptIdleInternal(Lcom/android/server/DeviceIdleController;II)[Ljava/lang/String;
-PLcom/android/server/DeviceIdleController;->-$$Nest$mgetFullPowerWhitelistInternalUnchecked(Lcom/android/server/DeviceIdleController;)[Ljava/lang/String;
-HPLcom/android/server/DeviceIdleController;->-$$Nest$mgetTempAllowListType(Lcom/android/server/DeviceIdleController;II)I
+HPLcom/android/server/DeviceIdleController$MyHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/net/INetworkPolicyManager;Lcom/android/server/net/NetworkPolicyManagerService;]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;]Lcom/android/server/PowerAllowlistInternal$TempAllowlistChangeListener;Lcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;
 PLcom/android/server/DeviceIdleController;->-$$Nest$mmaybeBecomeActiveOnModeManagerEventsLocked(Lcom/android/server/DeviceIdleController;)V
-PLcom/android/server/DeviceIdleController;->-$$Nest$mregisterTempAllowlistChangeListener(Lcom/android/server/DeviceIdleController;Lcom/android/server/PowerAllowlistInternal$TempAllowlistChangeListener;)V
 PLcom/android/server/DeviceIdleController;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/DeviceIdleController;-><init>(Landroid/content/Context;Lcom/android/server/DeviceIdleController$Injector;)V
-HPLcom/android/server/DeviceIdleController;->addPowerSaveTempAllowlistAppChecked(Ljava/lang/String;JIILjava/lang/String;)V
-PLcom/android/server/DeviceIdleController;->addPowerSaveTempAllowlistAppInternal(ILjava/lang/String;JIIZILjava/lang/String;)V
-HPLcom/android/server/DeviceIdleController;->addPowerSaveTempWhitelistAppDirectInternal(IIJIZILjava/lang/String;)V
-PLcom/android/server/DeviceIdleController;->becomeActiveLocked(Ljava/lang/String;I)V
-PLcom/android/server/DeviceIdleController;->becomeActiveLocked(Ljava/lang/String;IJZ)V
+PLcom/android/server/DeviceIdleController;-><init>(Landroid/content/Context;Lcom/android/server/DeviceIdleController$Injector;)V
+PLcom/android/server/DeviceIdleController;->addEvent(ILjava/lang/String;)V
+HPLcom/android/server/DeviceIdleController;->addPowerSaveTempAllowlistAppChecked(IILjava/lang/String;Ljava/lang/String;J)V+]Landroid/app/IActivityManager;Lcom/android/server/am/ActivityManagerService;]Landroid/content/Context;Landroid/app/ContextImpl;
+HPLcom/android/server/DeviceIdleController;->addPowerSaveTempAllowlistAppInternal(ILjava/lang/String;JIIZILjava/lang/String;)V
+HPLcom/android/server/DeviceIdleController;->addPowerSaveTempWhitelistAppDirectInternal(IJIZILjava/lang/String;I)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;
+PLcom/android/server/DeviceIdleController;->becomeActiveLocked(ILjava/lang/String;)V
+HPLcom/android/server/DeviceIdleController;->becomeActiveLocked(Ljava/lang/String;IJZ)V
+HPLcom/android/server/DeviceIdleController;->becomeInactiveIfAppropriateLocked()V
 PLcom/android/server/DeviceIdleController;->buildAppIdArray(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseBooleanArray;)[I
-HPLcom/android/server/DeviceIdleController;->checkTempAppWhitelistTimeout(I)V
+PLcom/android/server/DeviceIdleController;->cancelAlarmLocked()V
+PLcom/android/server/DeviceIdleController;->cancelLocatingLocked()V
+PLcom/android/server/DeviceIdleController;->cancelSensingTimeoutAlarmLocked()V
+PLcom/android/server/DeviceIdleController;->decActiveIdleOps()V
+PLcom/android/server/DeviceIdleController;->dumpTempWhitelistScheduleLocked(Ljava/io/PrintWriter;Z)V
 PLcom/android/server/DeviceIdleController;->exitMaintenanceEarlyIfNeededLocked()V
-HPLcom/android/server/DeviceIdleController;->getAppIdTempWhitelistInternal()[I
-PLcom/android/server/DeviceIdleController;->getAppIdWhitelistExceptIdleInternal()[I
-PLcom/android/server/DeviceIdleController;->getAppIdWhitelistInternal()[I
-PLcom/android/server/DeviceIdleController;->getFullPowerWhitelistExceptIdleInternal(II)[Ljava/lang/String;
-PLcom/android/server/DeviceIdleController;->getFullPowerWhitelistInternalUnchecked()[Ljava/lang/String;
-PLcom/android/server/DeviceIdleController;->getPowerSaveWhitelistUserAppIds()[I
-PLcom/android/server/DeviceIdleController;->getSystemDir()Ljava/io/File;
-PLcom/android/server/DeviceIdleController;->getTempAllowListType(II)I
-PLcom/android/server/DeviceIdleController;->isAppOnWhitelistInternal(I)Z
+PLcom/android/server/DeviceIdleController;->isUpcomingAlarmClock()Z
 PLcom/android/server/DeviceIdleController;->keyguardShowingLocked(Z)V
-PLcom/android/server/DeviceIdleController;->lambda$getFullPowerWhitelistExceptIdleInternal$13(IILjava/lang/String;)Z
-PLcom/android/server/DeviceIdleController;->maybeBecomeActiveOnModeManagerEventsLocked()V
+PLcom/android/server/DeviceIdleController;->lightStateToString(I)Ljava/lang/String;
+PLcom/android/server/DeviceIdleController;->maybeStopMonitoringMotionLocked()V
 PLcom/android/server/DeviceIdleController;->moveToLightStateLocked(ILjava/lang/String;)V
 PLcom/android/server/DeviceIdleController;->moveToStateLocked(ILjava/lang/String;)V
 HPLcom/android/server/DeviceIdleController;->onAppRemovedFromTempWhitelistLocked(ILjava/lang/String;)V
-HPLcom/android/server/DeviceIdleController;->onBootPhase(I)V
-HPLcom/android/server/DeviceIdleController;->onStart()V
+PLcom/android/server/DeviceIdleController;->onBootPhase(I)V
+PLcom/android/server/DeviceIdleController;->onStart()V
 HPLcom/android/server/DeviceIdleController;->passWhiteListsToForceAppStandbyTrackerLocked()V
-HPLcom/android/server/DeviceIdleController;->postTempActiveTimeoutMessage(IJ)V
-PLcom/android/server/DeviceIdleController;->readConfigFileLocked()V
-PLcom/android/server/DeviceIdleController;->registerTempAllowlistChangeListener(Lcom/android/server/PowerAllowlistInternal$TempAllowlistChangeListener;)V
-HPLcom/android/server/DeviceIdleController;->reportTempWhitelistChangedLocked(IZ)V
-PLcom/android/server/DeviceIdleController;->setAlarmsActive(Z)V
-PLcom/android/server/DeviceIdleController;->setJobsActive(Z)V
+PLcom/android/server/DeviceIdleController;->resetIdleManagementLocked()V
+PLcom/android/server/DeviceIdleController;->scheduleAlarmLocked(J)V
+PLcom/android/server/DeviceIdleController;->scheduleLightAlarmLocked(JJ)V
+PLcom/android/server/DeviceIdleController;->scheduleReportActiveLocked(Ljava/lang/String;I)V
+PLcom/android/server/DeviceIdleController;->startMonitoringMotionLocked()V
+PLcom/android/server/DeviceIdleController;->stateToString(I)Ljava/lang/String;
+PLcom/android/server/DeviceIdleController;->stepIdleStateLocked(Ljava/lang/String;)V
+PLcom/android/server/DeviceIdleController;->stepLightIdleStateLocked(Ljava/lang/String;)V
 PLcom/android/server/DeviceIdleController;->updateActiveConstraintsLocked()V
-PLcom/android/server/DeviceIdleController;->updateChargingLocked(Z)V
 PLcom/android/server/DeviceIdleController;->updateConnectivityState(Landroid/content/Intent;)V
 PLcom/android/server/DeviceIdleController;->updateInteractivityLocked()V
 PLcom/android/server/DeviceIdleController;->updateQuickDozeFlagLocked()V
 PLcom/android/server/DeviceIdleController;->updateQuickDozeFlagLocked(Z)V
-HPLcom/android/server/DeviceIdleController;->updateTempWhitelistAppIdsLocked(IZJIILjava/lang/String;I)V
+HPLcom/android/server/DeviceIdleController;->updateTempWhitelistAppIdsLocked(IJIZILjava/lang/String;I)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/DeviceIdleController;->updateWhitelistAppIdsLocked()V
 PLcom/android/server/DiskStatsService;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/DisplayThread;-><init>()V
+PLcom/android/server/DiskStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/DiskStatsService;->reportFreeSpace(Ljava/io/File;Ljava/lang/String;Ljava/io/PrintWriter;Landroid/util/proto/ProtoOutputStream;I)V
 HSPLcom/android/server/DisplayThread;->ensureThreadLocked()V
 HSPLcom/android/server/DisplayThread;->get()Lcom/android/server/DisplayThread;
 HSPLcom/android/server/DisplayThread;->getHandler()Landroid/os/Handler;
-PLcom/android/server/DockObserver$1;-><init>(Lcom/android/server/DockObserver;Z)V
+PLcom/android/server/DockObserver$1;-><init>(Lcom/android/server/DockObserver;)V
 PLcom/android/server/DockObserver$2;-><init>(Lcom/android/server/DockObserver;)V
 PLcom/android/server/DockObserver$BinderService;-><init>(Lcom/android/server/DockObserver;)V
-PLcom/android/server/DockObserver$BinderService;-><init>(Lcom/android/server/DockObserver;Lcom/android/server/DockObserver$BinderService-IA;)V
-PLcom/android/server/DockObserver$DeviceProvisionedObserver;-><init>(Lcom/android/server/DockObserver;Landroid/os/Handler;)V
+PLcom/android/server/DockObserver$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/DockObserver$DeviceProvisionedObserver;-><init>(Lcom/android/server/DockObserver;Lcom/android/server/DockObserver$1;)V
 PLcom/android/server/DockObserver$DeviceProvisionedObserver;->isDeviceProvisioned()Z
-PLcom/android/server/DockObserver$DeviceProvisionedObserver;->onSystemReady()V
+PLcom/android/server/DockObserver$DeviceProvisionedObserver;->onChange(ZLandroid/net/Uri;)V
 PLcom/android/server/DockObserver$DeviceProvisionedObserver;->updateRegistration()V
 PLcom/android/server/DockObserver;-><init>(Landroid/content/Context;)V
-PLcom/android/server/DockObserver;->loadExtconStateConfigs(Landroid/content/Context;)Ljava/util/List;
 PLcom/android/server/DockObserver;->onBootPhase(I)V
 PLcom/android/server/DockObserver;->onStart()V
-PLcom/android/server/DockObserver;->updateIfDockedLocked()V
-PLcom/android/server/DropBoxManagerInternal;-><init>()V
 PLcom/android/server/DropBoxManagerService$1$1;-><init>(Lcom/android/server/DropBoxManagerService$1;)V
 PLcom/android/server/DropBoxManagerService$1$1;->run()V
 PLcom/android/server/DropBoxManagerService$1;-><init>(Lcom/android/server/DropBoxManagerService;)V
 PLcom/android/server/DropBoxManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/DropBoxManagerService$2;-><init>(Lcom/android/server/DropBoxManagerService;)V
-HPLcom/android/server/DropBoxManagerService$2;->addData(Ljava/lang/String;[BI)V
+PLcom/android/server/DropBoxManagerService$2;->addData(Ljava/lang/String;[BI)V
 PLcom/android/server/DropBoxManagerService$2;->addFile(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;I)V
-HPLcom/android/server/DropBoxManagerService$2;->getNextEntryWithAttribution(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)Landroid/os/DropBoxManager$Entry;
-HPLcom/android/server/DropBoxManagerService$2;->isTagEnabled(Ljava/lang/String;)Z
+PLcom/android/server/DropBoxManagerService$2;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/DropBoxManagerService$2;->getNextEntryWithAttribution(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)Landroid/os/DropBoxManager$Entry;
+PLcom/android/server/DropBoxManagerService$2;->isTagEnabled(Ljava/lang/String;)Z
 PLcom/android/server/DropBoxManagerService$3;-><init>(Lcom/android/server/DropBoxManagerService;Landroid/os/Handler;)V
 PLcom/android/server/DropBoxManagerService$3;->onChange(Z)V
 PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;-><init>(Lcom/android/server/DropBoxManagerService;Landroid/os/Looper;)V
-HPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->createBroadcastOptions(Landroid/content/Intent;)Landroid/os/Bundle;
-HPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->createIntent(Ljava/lang/String;J)Landroid/content/Intent;
-HPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->maybeDeferBroadcast(Ljava/lang/String;J)V
-HPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->prepareAndSendBroadcast(Landroid/content/Intent;Landroid/os/Bundle;)V
-PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->sendBroadcast(Ljava/lang/String;J)V
+PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->maybeDeferBroadcast(JLjava/lang/String;)V
+PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->prepareAndSendBroadcast(Landroid/content/Intent;Z)V
+PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->setBroadcastOptionsForDeferral(Landroid/app/BroadcastOptions;Ljava/lang/String;)V
 PLcom/android/server/DropBoxManagerService$DropBoxManagerInternalImpl;-><init>(Lcom/android/server/DropBoxManagerService;)V
-PLcom/android/server/DropBoxManagerService$DropBoxManagerInternalImpl;-><init>(Lcom/android/server/DropBoxManagerService;Lcom/android/server/DropBoxManagerService$DropBoxManagerInternalImpl-IA;)V
-HPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(J)V
-HPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;I)V
-HPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;JII)V
-HPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Lcom/android/server/DropBoxManagerService$EntryFile;)I
-HPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Ljava/lang/Object;)I
-HPLcom/android/server/DropBoxManagerService$EntryFile;->getExtension()Ljava/lang/String;
-HPLcom/android/server/DropBoxManagerService$EntryFile;->getFile(Ljava/io/File;)Ljava/io/File;
-HPLcom/android/server/DropBoxManagerService$EntryFile;->getFilename()Ljava/lang/String;
-PLcom/android/server/DropBoxManagerService$EntryFile;->hasFile()Z
+PLcom/android/server/DropBoxManagerService$EntryFile;-><init>(J)V
+PLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;I)V
+PLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;JII)V
+PLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Ljava/lang/Object;)I
+PLcom/android/server/DropBoxManagerService$EntryFile;->getFile(Ljava/io/File;)Ljava/io/File;
 PLcom/android/server/DropBoxManagerService$FileList;-><init>()V
-PLcom/android/server/DropBoxManagerService$FileList;-><init>(Lcom/android/server/DropBoxManagerService$FileList-IA;)V
-HPLcom/android/server/DropBoxManagerService$SimpleEntrySource;-><init>(Ljava/io/InputStream;JZ)V
-HPLcom/android/server/DropBoxManagerService$SimpleEntrySource;->close()V
+PLcom/android/server/DropBoxManagerService$SimpleEntrySource;-><init>(JLjava/io/InputStream;Z)V
+PLcom/android/server/DropBoxManagerService$SimpleEntrySource;->close()V
 PLcom/android/server/DropBoxManagerService$SimpleEntrySource;->length()J
-HPLcom/android/server/DropBoxManagerService$SimpleEntrySource;->writeTo(Ljava/io/FileDescriptor;)V
-PLcom/android/server/DropBoxManagerService;->-$$Nest$fgetmBooted(Lcom/android/server/DropBoxManagerService;)Z
-PLcom/android/server/DropBoxManagerService;->-$$Nest$fgetmLowPriorityRateLimitPeriod(Lcom/android/server/DropBoxManagerService;)J
-PLcom/android/server/DropBoxManagerService;->-$$Nest$fgetmReceiver(Lcom/android/server/DropBoxManagerService;)Landroid/content/BroadcastReceiver;
-PLcom/android/server/DropBoxManagerService;->-$$Nest$fputmCachedQuotaUptimeMillis(Lcom/android/server/DropBoxManagerService;J)V
-PLcom/android/server/DropBoxManagerService;->-$$Nest$minit(Lcom/android/server/DropBoxManagerService;)V
-PLcom/android/server/DropBoxManagerService;->-$$Nest$mtrimToFit(Lcom/android/server/DropBoxManagerService;)J
+PLcom/android/server/DropBoxManagerService$SimpleEntrySource;->writeTo(Ljava/io/FileDescriptor;)V
 PLcom/android/server/DropBoxManagerService;-><clinit>()V
 PLcom/android/server/DropBoxManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/DropBoxManagerService;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Looper;)V
-HPLcom/android/server/DropBoxManagerService;->addData(Ljava/lang/String;[BI)V
-HPLcom/android/server/DropBoxManagerService;->addEntry(Ljava/lang/String;Lcom/android/server/DropBoxManagerInternal$EntrySource;I)V
-HPLcom/android/server/DropBoxManagerService;->addEntry(Ljava/lang/String;Ljava/io/InputStream;JI)V
-PLcom/android/server/DropBoxManagerService;->addFile(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;I)V
-HPLcom/android/server/DropBoxManagerService;->checkPermission(ILjava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/DropBoxManagerService;->createEntry(Ljava/io/File;Ljava/lang/String;I)J
-HPLcom/android/server/DropBoxManagerService;->enrollEntry(Lcom/android/server/DropBoxManagerService$EntryFile;)V
+PLcom/android/server/DropBoxManagerService;->addEntry(Ljava/lang/String;Lcom/android/server/DropBoxManagerInternal$EntrySource;I)V
+PLcom/android/server/DropBoxManagerService;->addEntry(Ljava/lang/String;Ljava/io/InputStream;JI)V
+PLcom/android/server/DropBoxManagerService;->checkPermission(ILjava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/DropBoxManagerService;->createEntry(Ljava/io/File;Ljava/lang/String;I)J
+PLcom/android/server/DropBoxManagerService;->enrollEntry(Lcom/android/server/DropBoxManagerService$EntryFile;)V
 PLcom/android/server/DropBoxManagerService;->getLowPriorityResourceConfigs()V
-HPLcom/android/server/DropBoxManagerService;->getNextEntry(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)Landroid/os/DropBoxManager$Entry;
-HPLcom/android/server/DropBoxManagerService;->init()V
+PLcom/android/server/DropBoxManagerService;->init$1()V
 HPLcom/android/server/DropBoxManagerService;->isTagEnabled(Ljava/lang/String;)Z
+PLcom/android/server/DropBoxManagerService;->matchEntry(Lcom/android/server/DropBoxManagerService$EntryFile;Ljava/util/ArrayList;)Z
 PLcom/android/server/DropBoxManagerService;->onBootPhase(I)V
 PLcom/android/server/DropBoxManagerService;->onStart()V
 HPLcom/android/server/DropBoxManagerService;->trimToFit()J
+HSPLcom/android/server/DynamicSystemService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/DynamicSystemService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/EntropyMixer$1;-><init>(Lcom/android/server/EntropyMixer;Landroid/os/Looper;)V
+PLcom/android/server/EntropyMixer$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/EntropyMixer$2;-><init>(Lcom/android/server/EntropyMixer;)V
+PLcom/android/server/EntropyMixer$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/EntropyMixer;-><clinit>()V
 PLcom/android/server/EntropyMixer;-><init>(Landroid/content/Context;)V
 PLcom/android/server/EntropyMixer;-><init>(Landroid/content/Context;Ljava/io/File;Ljava/io/File;Ljava/io/File;)V
 PLcom/android/server/EntropyMixer;->getDeviceSpecificInformation()[B
-PLcom/android/server/EntropyMixer;->getSystemDir()Ljava/io/File;
-PLcom/android/server/EntropyMixer;->loadInitialEntropy()V
-PLcom/android/server/EntropyMixer;->longToBytes(J)[B
 PLcom/android/server/EntropyMixer;->readSeedFile()[B
-PLcom/android/server/EntropyMixer;->scheduleSeedUpdater()V
 PLcom/android/server/EntropyMixer;->updateSeedFile()V
-PLcom/android/server/EntropyMixer;->writeNewSeed([B)V
-PLcom/android/server/EventLogTags;->writeDeviceIdle(ILjava/lang/String;)V
-PLcom/android/server/EventLogTags;->writeDeviceIdleLight(ILjava/lang/String;)V
-HPLcom/android/server/EventLogTags;->writeNotificationCancelAll(IILjava/lang/String;IIIILjava/lang/String;)V
-PLcom/android/server/EventLogTags;->writeNotificationEnqueue(IILjava/lang/String;ILjava/lang/String;ILjava/lang/String;I)V
-PLcom/android/server/EventLogTags;->writePmCriticalInfo(Ljava/lang/String;)V
-HSPLcom/android/server/EventLogTags;->writePmSnapshotRebuild(II)V
-HSPLcom/android/server/EventLogTags;->writeRescueNote(IIJ)V
-PLcom/android/server/EventLogTags;->writeStorageState(Ljava/lang/String;IIJJ)V
-PLcom/android/server/EventLogTags;->writeStreamDevicesChanged(III)V
-PLcom/android/server/EventLogTags;->writeVolumeChanged(IIIILjava/lang/String;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/ExplicitHealthCheckController;Ljava/util/Set;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/ExplicitHealthCheckController;Ljava/util/List;Ljava/util/Set;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda2;-><init>(Ljava/util/function/Consumer;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda2;->onResult(Landroid/os/Bundle;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda5;-><init>(Ljava/util/function/Consumer;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda5;->onResult(Landroid/os/Bundle;)V
-PLcom/android/server/ExplicitHealthCheckController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
-PLcom/android/server/ExplicitHealthCheckController$1;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
-PLcom/android/server/ExplicitHealthCheckController$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/ExplicitHealthCheckController;->$r8$lambda$IIsfdI4E19kYetXH_5L-g69gD5U(Lcom/android/server/ExplicitHealthCheckController;Ljava/util/Set;Ljava/util/List;)V
-PLcom/android/server/ExplicitHealthCheckController;->$r8$lambda$aL6X4oZMCjln5Vk0sguqqu-vOzk(Ljava/util/function/Consumer;Landroid/os/Bundle;)V
-PLcom/android/server/ExplicitHealthCheckController;->$r8$lambda$eUe0MojcRAKKWZDwi3yGDDE4Q6Y(Lcom/android/server/ExplicitHealthCheckController;Ljava/util/List;Ljava/util/Set;Ljava/util/List;)V
-PLcom/android/server/ExplicitHealthCheckController;->$r8$lambda$mGwCwsEZmtVNkWk1gYFRO7gIRQk(Ljava/util/function/Consumer;Landroid/os/Bundle;)V
-PLcom/android/server/ExplicitHealthCheckController;->-$$Nest$minitState(Lcom/android/server/ExplicitHealthCheckController;Landroid/os/IBinder;)V
-HSPLcom/android/server/ExplicitHealthCheckController;-><init>(Landroid/content/Context;)V
-PLcom/android/server/ExplicitHealthCheckController;->actOnDifference(Ljava/util/Collection;Ljava/util/Collection;Ljava/util/function/Consumer;)V
-PLcom/android/server/ExplicitHealthCheckController;->bindService()V
-PLcom/android/server/ExplicitHealthCheckController;->getRequestedPackages(Ljava/util/function/Consumer;)V
-PLcom/android/server/ExplicitHealthCheckController;->getServiceComponentNameLocked()Landroid/content/ComponentName;
-PLcom/android/server/ExplicitHealthCheckController;->getServiceInfoLocked()Landroid/content/pm/ServiceInfo;
-PLcom/android/server/ExplicitHealthCheckController;->getSupportedPackages(Ljava/util/function/Consumer;)V
-PLcom/android/server/ExplicitHealthCheckController;->initState(Landroid/os/IBinder;)V
-PLcom/android/server/ExplicitHealthCheckController;->lambda$getRequestedPackages$5(Ljava/util/function/Consumer;Landroid/os/Bundle;)V
-PLcom/android/server/ExplicitHealthCheckController;->lambda$getSupportedPackages$4(Ljava/util/function/Consumer;Landroid/os/Bundle;)V
-PLcom/android/server/ExplicitHealthCheckController;->lambda$syncRequests$2(Ljava/util/List;Ljava/util/Set;Ljava/util/List;)V
-PLcom/android/server/ExplicitHealthCheckController;->lambda$syncRequests$3(Ljava/util/Set;Ljava/util/List;)V
-PLcom/android/server/ExplicitHealthCheckController;->prepareServiceLocked(Ljava/lang/String;)Z
-PLcom/android/server/ExplicitHealthCheckController;->setCallbacks(Ljava/util/function/Consumer;Ljava/util/function/Consumer;Ljava/lang/Runnable;)V
-PLcom/android/server/ExplicitHealthCheckController;->setEnabled(Z)V
-PLcom/android/server/ExplicitHealthCheckController;->syncRequests(Ljava/util/Set;)V
-PLcom/android/server/ExplicitHealthCheckController;->unbindService()V
+PLcom/android/server/EventLogTags;->writeNotificationAdjusted(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/ExtconUEventObserver$ExtconInfo$$ExternalSyntheticLambda0;->accept(Ljava/io/File;Ljava/lang/String;)Z
 PLcom/android/server/ExtconUEventObserver$ExtconInfo;-><clinit>()V
+PLcom/android/server/ExtconUEventObserver$ExtconInfo;-><init>(Ljava/lang/String;)V
 PLcom/android/server/ExtconUEventObserver$ExtconInfo;->getExtconInfoForTypes([Ljava/lang/String;)Ljava/util/List;
 PLcom/android/server/ExtconUEventObserver$ExtconInfo;->initExtconInfos()V
 PLcom/android/server/ExtconUEventObserver;-><init>()V
-HSPLcom/android/server/FgThread;-><init>()V
-HSPLcom/android/server/FgThread;->ensureThreadLocked()V
-HSPLcom/android/server/FgThread;->get()Lcom/android/server/FgThread;
-PLcom/android/server/FgThread;->getExecutor()Ljava/util/concurrent/Executor;
-HSPLcom/android/server/FgThread;->getHandler()Landroid/os/Handler;
 PLcom/android/server/GestureLauncherService$1;-><init>(Lcom/android/server/GestureLauncherService;)V
 PLcom/android/server/GestureLauncherService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/GestureLauncherService$2;-><init>(Lcom/android/server/GestureLauncherService;Landroid/os/Handler;)V
+PLcom/android/server/GestureLauncherService$2;->onChange(ZLandroid/net/Uri;I)V
 PLcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener;-><init>(Lcom/android/server/GestureLauncherService;)V
-PLcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener;-><init>(Lcom/android/server/GestureLauncherService;Lcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener-IA;)V
 PLcom/android/server/GestureLauncherService$GestureEventListener;-><init>(Lcom/android/server/GestureLauncherService;)V
-PLcom/android/server/GestureLauncherService$GestureEventListener;-><init>(Lcom/android/server/GestureLauncherService;Lcom/android/server/GestureLauncherService$GestureEventListener-IA;)V
-PLcom/android/server/GestureLauncherService;->-$$Nest$fgetmContext(Lcom/android/server/GestureLauncherService;)Landroid/content/Context;
-PLcom/android/server/GestureLauncherService;->-$$Nest$fgetmSettingObserver(Lcom/android/server/GestureLauncherService;)Landroid/database/ContentObserver;
-PLcom/android/server/GestureLauncherService;->-$$Nest$fputmUserId(Lcom/android/server/GestureLauncherService;I)V
-PLcom/android/server/GestureLauncherService;->-$$Nest$mregisterContentObservers(Lcom/android/server/GestureLauncherService;)V
-PLcom/android/server/GestureLauncherService;->-$$Nest$mupdateCameraRegistered(Lcom/android/server/GestureLauncherService;)V
+PLcom/android/server/GestureLauncherService$GestureLauncherEvent;-><clinit>()V
+PLcom/android/server/GestureLauncherService$GestureLauncherEvent;-><init>(IILjava/lang/String;)V
+PLcom/android/server/GestureLauncherService$GestureLauncherEvent;->getId()I
+PLcom/android/server/GestureLauncherService;-><clinit>()V
 PLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;Lcom/android/internal/logging/MetricsLogger;Lcom/android/internal/logging/UiEventLogger;)V
+PLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;Lcom/android/internal/logging/MetricsLogger;Landroid/service/quickaccesswallet/QuickAccessWalletClient;Lcom/android/internal/logging/UiEventLogger;)V
 PLcom/android/server/GestureLauncherService;->getEmergencyGesturePowerButtonCooldownPeriodMs(Landroid/content/Context;I)I
-PLcom/android/server/GestureLauncherService;->isCameraDoubleTapPowerEnabled(Landroid/content/res/Resources;)Z
-PLcom/android/server/GestureLauncherService;->isCameraDoubleTapPowerSettingEnabled(Landroid/content/Context;I)Z
-PLcom/android/server/GestureLauncherService;->isCameraLaunchEnabled(Landroid/content/res/Resources;)Z
-PLcom/android/server/GestureLauncherService;->isCameraLaunchSettingEnabled(Landroid/content/Context;I)Z
-PLcom/android/server/GestureLauncherService;->isCameraLiftTriggerEnabled(Landroid/content/res/Resources;)Z
-PLcom/android/server/GestureLauncherService;->isCameraLiftTriggerSettingEnabled(Landroid/content/Context;I)Z
-PLcom/android/server/GestureLauncherService;->isDefaultEmergencyGestureEnabled(Landroid/content/res/Resources;)Z
-PLcom/android/server/GestureLauncherService;->isEmergencyGestureEnabled(Landroid/content/res/Resources;)Z
+PLcom/android/server/GestureLauncherService;->handleCameraGesture(ZI)Z
 PLcom/android/server/GestureLauncherService;->isEmergencyGestureSettingEnabled(Landroid/content/Context;I)Z
 PLcom/android/server/GestureLauncherService;->isGestureLauncherEnabled(Landroid/content/res/Resources;)Z
+PLcom/android/server/GestureLauncherService;->isUserSetupComplete()Z
 PLcom/android/server/GestureLauncherService;->onBootPhase(I)V
 PLcom/android/server/GestureLauncherService;->onStart()V
-HPLcom/android/server/GestureLauncherService;->registerContentObservers()V
-PLcom/android/server/GestureLauncherService;->unregisterCameraLaunchGesture()V
-PLcom/android/server/GestureLauncherService;->unregisterCameraLiftTrigger()V
+PLcom/android/server/GestureLauncherService;->registerContentObservers()V
 PLcom/android/server/GestureLauncherService;->updateCameraDoubleTapPowerEnabled()V
 PLcom/android/server/GestureLauncherService;->updateCameraRegistered()V
 PLcom/android/server/GestureLauncherService;->updateEmergencyGestureEnabled()V
 PLcom/android/server/GestureLauncherService;->updateEmergencyGesturePowerButtonCooldownPeriodMs()V
+PLcom/android/server/GestureLauncherService;->updateWalletDoubleTapPowerEnabled()V
+PLcom/android/server/HardwarePropertiesManagerService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLcom/android/server/HardwarePropertiesManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/HsumBootUserInitializer;-><clinit>()V
+PLcom/android/server/HardwarePropertiesManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(ILjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/HardwarePropertiesManagerService;->enforceHardwarePropertiesRetrievalAllowed(Ljava/lang/String;)V
+PLcom/android/server/HardwarePropertiesManagerService;->getDeviceTemperatures(Ljava/lang/String;II)[F
 PLcom/android/server/HsumBootUserInitializer;->createInstance(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/pm/PackageManagerService;Landroid/content/ContentResolver;Z)Lcom/android/server/HsumBootUserInitializer;
-HSPLcom/android/server/IntentResolver$1;-><init>()V
 HPLcom/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
+PLcom/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/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V
-HSPLcom/android/server/IntentResolver;->addFilter(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Ljava/lang/Object;)V
-HPLcom/android/server/IntentResolver;->buildResolveList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/util/List;IJ)V
+HSPLcom/android/server/IntentResolver;->addFilter(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V+]Lcom/android/server/IntentResolver;megamorphic_types
+HSPLcom/android/server/IntentResolver;->addFilter(Ljava/lang/Object;)V+]Lcom/android/server/IntentResolver;megamorphic_types]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
+PLcom/android/server/IntentResolver;->allowFilterResult(Ljava/util/List;Ljava/lang/Object;)Z
+HPLcom/android/server/IntentResolver;->buildResolveList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/util/List;IJ)V+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/IntentResolver;Lcom/android/server/am/BroadcastController$1;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Ljava/util/List;Ljava/util/ArrayList;
 HSPLcom/android/server/IntentResolver;->collectFilters([Ljava/lang/Object;Landroid/content/IntentFilter;)Ljava/util/ArrayList;
-HSPLcom/android/server/IntentResolver;->copyFrom(Lcom/android/server/IntentResolver;)V
-HSPLcom/android/server/IntentResolver;->copyInto(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
-HSPLcom/android/server/IntentResolver;->copyInto(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
-HPLcom/android/server/IntentResolver;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Z
-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
-PLcom/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;
-HPLcom/android/server/IntentResolver;->getFastIntentCategories(Landroid/content/Intent;)Landroid/util/FastImmutableArraySet;
-HPLcom/android/server/IntentResolver;->intentMatchesFilter(Landroid/content/IntentFilter;Landroid/content/Intent;Ljava/lang/String;)Z
+HSPLcom/android/server/IntentResolver;->copyFrom(Lcom/android/server/IntentResolver;)V+]Lcom/android/server/IntentResolver;Lcom/android/server/pm/PreferredIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;
+HSPLcom/android/server/IntentResolver;->copyInto(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V+]Lcom/android/server/IntentResolver;Lcom/android/server/pm/PreferredIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;
+PLcom/android/server/IntentResolver;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Z
+PLcom/android/server/IntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)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+]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/IntentResolver;Lcom/android/server/am/BroadcastController$1;,Lcom/android/server/pm/PreferredIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;
+PLcom/android/server/IntentResolver;->filterIterator()Lcom/android/server/IntentResolver$IteratorWrapper;
+HPLcom/android/server/IntentResolver;->filterResults(Ljava/util/List;)V
 PLcom/android/server/IntentResolver;->isFilterStopped(Lcom/android/server/pm/Computer;Ljava/lang/Object;I)Z
 PLcom/android/server/IntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;
-HPLcom/android/server/IntentResolver;->queryIntent(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/content/Intent;Ljava/lang/String;ZI)Ljava/util/List;
-HPLcom/android/server/IntentResolver;->queryIntent(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/content/Intent;Ljava/lang/String;ZIJ)Ljava/util/List;
-HPLcom/android/server/IntentResolver;->queryIntentFromList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;IJ)Ljava/util/List;
-HSPLcom/android/server/IntentResolver;->register_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
-HSPLcom/android/server/IntentResolver;->register_mime_types(Ljava/lang/Object;Ljava/lang/String;)I
-HPLcom/android/server/IntentResolver;->removeFilter(Ljava/lang/Object;)V
-HPLcom/android/server/IntentResolver;->removeFilterInternal(Ljava/lang/Object;)V
-HPLcom/android/server/IntentResolver;->remove_all_objects(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V
-PLcom/android/server/IntentResolver;->snapshot(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/IntentResolver;->queryIntent(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/content/Intent;Ljava/lang/String;ZIJ)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/IntentResolver;megamorphic_types]Ljava/util/Set;Landroid/util/ArraySet;
+HPLcom/android/server/IntentResolver;->queryIntentFromList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;IJ)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/IntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Set;Landroid/util/ArraySet;
+HSPLcom/android/server/IntentResolver;->register_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;)I+]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;
+PLcom/android/server/IntentResolver;->removeFilter(Ljava/lang/Object;)V
+HPLcom/android/server/IntentResolver;->removeFilterInternal(Ljava/lang/Object;)V+]Lcom/android/server/IntentResolver;Lcom/android/server/am/BroadcastController$1;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
+HPLcom/android/server/IntentResolver;->remove_all_objects(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V+]Lcom/android/server/IntentResolver;megamorphic_types
+HPLcom/android/server/IntentResolver;->snapshot(Ljava/lang/Object;)Ljava/lang/Object;
 HPLcom/android/server/IntentResolver;->sortResults(Ljava/util/List;)V
-HPLcom/android/server/IntentResolver;->unregister_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
-HPLcom/android/server/IntentResolver;->unregister_mime_types(Ljava/lang/Object;Ljava/lang/String;)I
-HSPLcom/android/server/IoThread;-><init>()V
+HPLcom/android/server/IntentResolver;->unregister_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;)I+]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;
+PLcom/android/server/IntentResolver;->writeProtoMap(Landroid/util/proto/ProtoOutputStream;JLandroid/util/ArrayMap;)V
 HSPLcom/android/server/IoThread;->ensureThreadLocked()V
 HSPLcom/android/server/IoThread;->get()Lcom/android/server/IoThread;
 PLcom/android/server/IoThread;->getExecutor()Ljava/util/concurrent/Executor;
@@ -2389,520 +2194,278 @@
 HSPLcom/android/server/LocalManagerRegistry;->addManager(Ljava/lang/Class;Ljava/lang/Object;)V
 HSPLcom/android/server/LocalManagerRegistry;->getManager(Ljava/lang/Class;)Ljava/lang/Object;
 HSPLcom/android/server/LocalManagerRegistry;->getManagerOrThrow(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLcom/android/server/LockGuard$LockInfo;-><init>()V
-HSPLcom/android/server/LockGuard$LockInfo;-><init>(Lcom/android/server/LockGuard$LockInfo-IA;)V
 HSPLcom/android/server/LockGuard;-><clinit>()V
 HSPLcom/android/server/LockGuard;->findOrCreateLockInfo(Ljava/lang/Object;)Lcom/android/server/LockGuard$LockInfo;
-HPLcom/android/server/LockGuard;->guard(I)V
-HSPLcom/android/server/LockGuard;->installLock(Ljava/lang/Object;I)Ljava/lang/Object;
-HSPLcom/android/server/LockGuard;->installLock(Ljava/lang/Object;IZ)Ljava/lang/Object;
-HSPLcom/android/server/LockGuard;->installNewLock(I)Ljava/lang/Object;
-HSPLcom/android/server/LockGuard;->installNewLock(IZ)Ljava/lang/Object;
+HSPLcom/android/server/LockGuard;->installLock(Lcom/android/server/pm/PackageManagerTracedLock;)V
+HSPLcom/android/server/LockGuard;->installLock(Ljava/lang/Object;IZ)V
 HSPLcom/android/server/LockGuard;->lockToString(I)Ljava/lang/String;
-PLcom/android/server/LogMteState$1;-><init>()V
 PLcom/android/server/LogMteState;->register(Landroid/content/Context;)V
+PLcom/android/server/LooperStatsService$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/LooperStatsService$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/LooperStatsService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/LooperStatsService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/LooperStatsService$Lifecycle;->onStart()V
 PLcom/android/server/LooperStatsService$SettingsObserver;-><init>(Lcom/android/server/LooperStatsService;)V
 PLcom/android/server/LooperStatsService;->-$$Nest$minitFromSettings(Lcom/android/server/LooperStatsService;)V
 PLcom/android/server/LooperStatsService;-><init>(Landroid/content/Context;Lcom/android/internal/os/LooperStats;)V
-PLcom/android/server/LooperStatsService;-><init>(Landroid/content/Context;Lcom/android/internal/os/LooperStats;Lcom/android/server/LooperStatsService-IA;)V
-PLcom/android/server/LooperStatsService;->initFromSettings()V
+PLcom/android/server/LooperStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/LooperStatsService;->setEnabled(Z)V
-PLcom/android/server/LooperStatsService;->setIgnoreBatteryStatus(Z)V
-PLcom/android/server/LooperStatsService;->setSamplingInterval(I)V
-PLcom/android/server/LooperStatsService;->setTrackScreenInteractive(Z)V
 PLcom/android/server/MmsServiceBroker$1;-><init>(Lcom/android/server/MmsServiceBroker;)V
 PLcom/android/server/MmsServiceBroker$2;-><init>(Lcom/android/server/MmsServiceBroker;)V
 PLcom/android/server/MmsServiceBroker$3;-><init>(Lcom/android/server/MmsServiceBroker;)V
 PLcom/android/server/MmsServiceBroker$BinderService;-><init>(Lcom/android/server/MmsServiceBroker;)V
-PLcom/android/server/MmsServiceBroker$BinderService;-><init>(Lcom/android/server/MmsServiceBroker;Lcom/android/server/MmsServiceBroker$BinderService-IA;)V
 PLcom/android/server/MmsServiceBroker;-><clinit>()V
 PLcom/android/server/MmsServiceBroker;-><init>(Landroid/content/Context;)V
 PLcom/android/server/MmsServiceBroker;->onStart()V
-PLcom/android/server/MmsServiceBroker;->systemRunning()V
 PLcom/android/server/MountServiceIdler;-><clinit>()V
 PLcom/android/server/MountServiceIdler;->offsetFromTodayMidnight(II)Ljava/util/Calendar;
 PLcom/android/server/MountServiceIdler;->scheduleIdlePass(Landroid/content/Context;)V
 PLcom/android/server/NetworkScoreService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/NetworkScoreService;)V
-PLcom/android/server/NetworkScoreService$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/NetworkScoreService$1;-><init>(Lcom/android/server/NetworkScoreService;)V
+PLcom/android/server/NetworkScoreService$1;-><init>(Lcom/android/server/NetworkScoreService;I)V
 PLcom/android/server/NetworkScoreService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/NetworkScoreService$2;-><init>(Lcom/android/server/NetworkScoreService;)V
-PLcom/android/server/NetworkScoreService$3;-><init>(Lcom/android/server/NetworkScoreService;Landroid/os/Handler;)V
-PLcom/android/server/NetworkScoreService$4;-><init>(Lcom/android/server/NetworkScoreService;)V
-PLcom/android/server/NetworkScoreService$DispatchingContentObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/NetworkScoreService$DispatchingContentObserver;->observe(Landroid/net/Uri;I)V
+PLcom/android/server/NetworkScoreService$3;-><init>(Lcom/android/server/NetworkScoreService;Lcom/android/server/NetworkScoreService$ServiceHandler;)V
+PLcom/android/server/NetworkScoreService$DispatchingContentObserver;-><init>(Landroid/content/Context;Lcom/android/server/NetworkScoreService$ServiceHandler;)V
+PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/NetworkScoreService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/NetworkScoreService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/NetworkScoreService$Lifecycle;->onStart()V
 PLcom/android/server/NetworkScoreService$ServiceHandler;-><init>(Lcom/android/server/NetworkScoreService;Landroid/os/Looper;)V
-PLcom/android/server/NetworkScoreService;->-$$Nest$sfgetDBG()Z
 PLcom/android/server/NetworkScoreService;-><clinit>()V
-PLcom/android/server/NetworkScoreService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/NetworkScoreService;-><init>(Landroid/content/Context;Lcom/android/server/NetworkScorerAppManager;Ljava/util/function/Function;Landroid/os/Looper;)V
-PLcom/android/server/NetworkScoreService;->bindToScoringServiceIfNeeded()V
 PLcom/android/server/NetworkScoreService;->bindToScoringServiceIfNeeded(Landroid/net/NetworkScorerAppData;)V
 PLcom/android/server/NetworkScoreService;->clearInternal()V
-HPLcom/android/server/NetworkScoreService;->enforceSystemOrHasScoreNetworks()V
-HPLcom/android/server/NetworkScoreService;->getActiveScorerPackage()Ljava/lang/String;
-PLcom/android/server/NetworkScoreService;->getScoreCacheLists()Ljava/util/Collection;
+PLcom/android/server/NetworkScoreService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/NetworkScoreService;->getActiveScorerPackage()Ljava/lang/String;
 PLcom/android/server/NetworkScoreService;->onUserUnlocked(I)V
 PLcom/android/server/NetworkScoreService;->refreshBinding()V
-PLcom/android/server/NetworkScoreService;->registerPackageMonitorIfNeeded()V
-PLcom/android/server/NetworkScoreService;->registerRecommendationSettingsObserver()V
 PLcom/android/server/NetworkScoreService;->sendCacheUpdateCallback(Ljava/util/function/BiConsumer;Ljava/util/Collection;)V
-PLcom/android/server/NetworkScoreService;->systemReady()V
-PLcom/android/server/NetworkScoreService;->systemRunning()V
 PLcom/android/server/NetworkScoreService;->unbindFromScoringServiceIfNeeded()V
-PLcom/android/server/NetworkScorerAppManager$SettingsFacade;-><init>()V
-HPLcom/android/server/NetworkScorerAppManager$SettingsFacade;->getInt(Landroid/content/Context;Ljava/lang/String;I)I
-HPLcom/android/server/NetworkScorerAppManager$SettingsFacade;->getString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/NetworkScorerAppManager$SettingsFacade;->putInt(Landroid/content/Context;Ljava/lang/String;I)Z
 PLcom/android/server/NetworkScorerAppManager;-><clinit>()V
-PLcom/android/server/NetworkScorerAppManager;-><init>(Landroid/content/Context;)V
 PLcom/android/server/NetworkScorerAppManager;-><init>(Landroid/content/Context;Lcom/android/server/NetworkScorerAppManager$SettingsFacade;)V
 HPLcom/android/server/NetworkScorerAppManager;->getActiveScorer()Landroid/net/NetworkScorerAppData;
-PLcom/android/server/NetworkScorerAppManager;->getDefaultPackageSetting()Ljava/lang/String;
-HPLcom/android/server/NetworkScorerAppManager;->getNetworkRecommendationsEnabledSetting()I
-HPLcom/android/server/NetworkScorerAppManager;->getNetworkRecommendationsPackage()Ljava/lang/String;
-HPLcom/android/server/NetworkScorerAppManager;->getScorer(Ljava/lang/String;)Landroid/net/NetworkScorerAppData;
+PLcom/android/server/NetworkScorerAppManager;->getScorer(Ljava/lang/String;)Landroid/net/NetworkScorerAppData;
 PLcom/android/server/NetworkScorerAppManager;->migrateNetworkScorerAppSettingIfNeeded()V
 PLcom/android/server/NetworkScorerAppManager;->setNetworkRecommendationsEnabledSetting(I)V
 PLcom/android/server/NetworkScorerAppManager;->updateState()V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda0;->uptimeMillis()J
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda5;->run()V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda6;->run()V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/PackageWatchdog;)V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/PackageWatchdog;)V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda8;->run()V
-HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/PackageWatchdog;)V
-HSPLcom/android/server/PackageWatchdog$BootThreshold;-><init>(Lcom/android/server/PackageWatchdog;IJ)V
-HSPLcom/android/server/PackageWatchdog$BootThreshold;->getCount()I
-HSPLcom/android/server/PackageWatchdog$BootThreshold;->getMitigationStart()J
-HSPLcom/android/server/PackageWatchdog$BootThreshold;->getStart()J
-HSPLcom/android/server/PackageWatchdog$BootThreshold;->incrementAndTest()Z
-HSPLcom/android/server/PackageWatchdog$BootThreshold;->readMitigationCountFromMetadataIfNecessary()V
-HSPLcom/android/server/PackageWatchdog$BootThreshold;->setCount(I)V
-HSPLcom/android/server/PackageWatchdog$ObserverInternal;-><init>(Ljava/lang/String;Ljava/util/List;)V
-HSPLcom/android/server/PackageWatchdog$ObserverInternal;->getMonitoredPackages()Landroid/util/ArrayMap;
-HSPLcom/android/server/PackageWatchdog$ObserverInternal;->read(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/PackageWatchdog;)Lcom/android/server/PackageWatchdog$ObserverInternal;
-HSPLcom/android/server/PackageWatchdog$ObserverInternal;->updatePackagesLocked(Ljava/util/List;)V
-HSPLcom/android/server/PackageWatchdog$ObserverInternal;->writeLocked(Lcom/android/modules/utils/TypedXmlSerializer;)Z
-PLcom/android/server/PackageWatchdog;->$r8$lambda$4H7cBnuwvCSeT91m1YdCwvg43e8(Lcom/android/server/PackageWatchdog;Ljava/util/List;)V
-HSPLcom/android/server/PackageWatchdog;->$r8$lambda$HDOKg5GmSwaFTU2vt9rf-KyK8Hk(Lcom/android/server/PackageWatchdog;)Z
-PLcom/android/server/PackageWatchdog;->$r8$lambda$gJ37k2zmlFG8nBixsI_xMYfaYp0(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog;->$r8$lambda$yDaKFi4XRxb3OsEfqTdgaQOn8Hg(Lcom/android/server/PackageWatchdog;)V
-HSPLcom/android/server/PackageWatchdog;->-$$Nest$fgetmSystemClock(Lcom/android/server/PackageWatchdog;)Lcom/android/server/PackageWatchdog$SystemClock;
-HSPLcom/android/server/PackageWatchdog;-><clinit>()V
-HSPLcom/android/server/PackageWatchdog;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/PackageWatchdog;-><init>(Landroid/content/Context;Landroid/util/AtomicFile;Landroid/os/Handler;Landroid/os/Handler;Lcom/android/server/ExplicitHealthCheckController;Landroid/net/ConnectivityModuleConnector;Lcom/android/server/PackageWatchdog$SystemClock;)V
-HSPLcom/android/server/PackageWatchdog;->getInstance(Landroid/content/Context;)Lcom/android/server/PackageWatchdog;
-HSPLcom/android/server/PackageWatchdog;->getNextStateSyncMillisLocked()J
-PLcom/android/server/PackageWatchdog;->getPackagesPendingHealthChecksLocked()Ljava/util/Set;
-PLcom/android/server/PackageWatchdog;->lambda$onPackagesReady$1(Ljava/util/List;)V
-HSPLcom/android/server/PackageWatchdog;->loadFromFile()V
-HSPLcom/android/server/PackageWatchdog;->noteBoot()V
-PLcom/android/server/PackageWatchdog;->onPackagesReady()V
-PLcom/android/server/PackageWatchdog;->onSupportedPackages(Ljava/util/List;)V
-PLcom/android/server/PackageWatchdog;->onSyncRequestNotified()V
-HSPLcom/android/server/PackageWatchdog;->pruneObserversLocked()V
-PLcom/android/server/PackageWatchdog;->registerConnectivityModuleHealthListener()V
-HSPLcom/android/server/PackageWatchdog;->registerHealthObserver(Lcom/android/server/PackageWatchdog$PackageHealthObserver;)V
-HSPLcom/android/server/PackageWatchdog;->saveToFile()Z
-HSPLcom/android/server/PackageWatchdog;->saveToFileAsync()V
-HSPLcom/android/server/PackageWatchdog;->scheduleNextSyncStateLocked()V
-PLcom/android/server/PackageWatchdog;->setExplicitHealthCheckEnabled(Z)V
-PLcom/android/server/PackageWatchdog;->setPropertyChangedListenerLocked()V
-PLcom/android/server/PackageWatchdog;->syncRequests()V
-HSPLcom/android/server/PackageWatchdog;->syncRequestsAsync()V
-HSPLcom/android/server/PackageWatchdog;->syncState(Ljava/lang/String;)V
-PLcom/android/server/PackageWatchdog;->updateConfigs()V
 PLcom/android/server/PermissionThread;-><clinit>()V
-PLcom/android/server/PermissionThread;-><init>()V
 PLcom/android/server/PermissionThread;->ensureThreadLocked()V
+PLcom/android/server/PermissionThread;->getExecutor()Ljava/util/concurrent/Executor;
 PLcom/android/server/PermissionThread;->getHandler()Landroid/os/Handler;
-PLcom/android/server/PinnerService$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/PinnerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/PinnerService$1;-><init>(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService$2;-><init>(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService$3;-><init>(Lcom/android/server/PinnerService;Landroid/os/Handler;Landroid/net/Uri;)V
-PLcom/android/server/PinnerService$4$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/PinnerService$4$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/PinnerService$4$$ExternalSyntheticLambda1;-><init>()V
-HPLcom/android/server/PinnerService$4$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/PinnerService$4;->$r8$lambda$JKP9FOe5dDnst80l_XkFWpt_l38(Lcom/android/server/PinnerService;I)V
-PLcom/android/server/PinnerService$4;->$r8$lambda$g8CC-koera5q3TVS1KdRY9fBXII(Lcom/android/server/PinnerService;I)V
-PLcom/android/server/PinnerService$4;-><init>(Lcom/android/server/PinnerService;)V
-HPLcom/android/server/PinnerService$4;->onUidActive(I)V
-HPLcom/android/server/PinnerService$4;->onUidGone(IZ)V
-PLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService$Injector;-><init>()V
-PLcom/android/server/PinnerService$Injector;->getDeviceConfigInterface()Landroid/provider/DeviceConfigInterface;
-PLcom/android/server/PinnerService$Injector;->pinFileInternal(Ljava/lang/String;IZ)Lcom/android/server/PinnerService$PinnedFile;
-PLcom/android/server/PinnerService$Injector;->publishBinderService(Lcom/android/server/PinnerService;Landroid/os/Binder;)V
-PLcom/android/server/PinnerService$PinRange;-><init>()V
-PLcom/android/server/PinnerService$PinRangeSource;-><init>()V
-PLcom/android/server/PinnerService$PinRangeSource;-><init>(Lcom/android/server/PinnerService$PinRangeSource-IA;)V
-PLcom/android/server/PinnerService$PinRangeSourceStatic;-><init>(II)V
-PLcom/android/server/PinnerService$PinRangeSourceStatic;->read(Lcom/android/server/PinnerService$PinRange;)Z
-PLcom/android/server/PinnerService$PinnedFile;-><init>(JILjava/lang/String;I)V
-PLcom/android/server/PinnerService$PinnerHandler;-><init>(Lcom/android/server/PinnerService;Landroid/os/Looper;)V
-PLcom/android/server/PinnerService$PinnerHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/PinnerService;->$r8$lambda$Lg5HhffEN45yR2JlIq0obZpr-Xc(Lcom/android/server/PinnerService;I)V
-HPLcom/android/server/PinnerService;->-$$Nest$fgetmPinnerHandler(Lcom/android/server/PinnerService;)Lcom/android/server/PinnerService$PinnerHandler;
-PLcom/android/server/PinnerService;->-$$Nest$mhandlePinOnStart(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService;->-$$Nest$mhandleUidActive(Lcom/android/server/PinnerService;I)V
-PLcom/android/server/PinnerService;->-$$Nest$mhandleUidGone(Lcom/android/server/PinnerService;I)V
-PLcom/android/server/PinnerService;->-$$Nest$smpinFileInternal(Ljava/lang/String;IZ)Lcom/android/server/PinnerService$PinnedFile;
-PLcom/android/server/PinnerService;-><clinit>()V
-PLcom/android/server/PinnerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/PinnerService;-><init>(Landroid/content/Context;Lcom/android/server/PinnerService$Injector;)V
-PLcom/android/server/PinnerService;->clamp(III)I
-PLcom/android/server/PinnerService;->createPinKeys()Landroid/util/ArraySet;
-PLcom/android/server/PinnerService;->getPinKeys()Landroid/util/ArraySet;
-PLcom/android/server/PinnerService;->handlePinOnStart()V
-PLcom/android/server/PinnerService;->handleUidActive(I)V
-HPLcom/android/server/PinnerService;->handleUidGone(I)V
-PLcom/android/server/PinnerService;->onBootPhase(I)V
-PLcom/android/server/PinnerService;->onStart()V
-PLcom/android/server/PinnerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/PinnerService;->pinApps(I)V
-PLcom/android/server/PinnerService;->pinAppsInternal(IZ)V
-PLcom/android/server/PinnerService;->pinFileInternal(Ljava/lang/String;IZ)Lcom/android/server/PinnerService$PinnedFile;
-HPLcom/android/server/PinnerService;->pinFileRanges(Ljava/lang/String;ILcom/android/server/PinnerService$PinRangeSource;)Lcom/android/server/PinnerService$PinnedFile;
-HPLcom/android/server/PinnerService;->pinOptimizedDexDependencies(Lcom/android/server/PinnerService$PinnedFile;ILandroid/content/pm/ApplicationInfo;)I
-PLcom/android/server/PinnerService;->refreshPinAnonConfig()V
-PLcom/android/server/PinnerService;->registerUidListener()V
-PLcom/android/server/PinnerService;->registerUserSetupCompleteListener()V
-PLcom/android/server/PinnerService;->safeClose(Ljava/io/Closeable;)V
-PLcom/android/server/PinnerService;->safeClose(Ljava/io/FileDescriptor;)V
-PLcom/android/server/PinnerService;->sendPinAppsMessage(I)V
-PLcom/android/server/PinnerService;->unpinFile(Ljava/lang/String;)V
-HPLcom/android/server/PinnerService;->updateActiveState(IZ)V
-PLcom/android/server/RescueParty$RescuePartyMonitorCallback;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/RescueParty$RescuePartyMonitorCallback;->onDeviceConfigAccess(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/RescueParty$RescuePartyObserver;->-$$Nest$mrecordDeviceConfigAccess(Lcom/android/server/RescueParty$RescuePartyObserver;Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/RescueParty$RescuePartyObserver;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/RescueParty$RescuePartyObserver;->getInstance(Landroid/content/Context;)Lcom/android/server/RescueParty$RescuePartyObserver;
-HSPLcom/android/server/RescueParty$RescuePartyObserver;->getName()Ljava/lang/String;
-HPLcom/android/server/RescueParty$RescuePartyObserver;->recordDeviceConfigAccess(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/RescueParty;-><clinit>()V
-PLcom/android/server/RescueParty;->handleNativeRescuePartyResets()V
-PLcom/android/server/RescueParty;->onSettingsProviderPublished(Landroid/content/Context;)V
-HSPLcom/android/server/RescueParty;->registerHealthObserver(Landroid/content/Context;)V
-PLcom/android/server/ResourcePressureUtil$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/ResourcePressureUtil$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/ResourcePressureUtil$$ExternalSyntheticLambda1;-><init>(Ljava/io/StringWriter;)V
-PLcom/android/server/ResourcePressureUtil$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/ResourcePressureUtil;->$r8$lambda$YqRwUJ2GaBiqQtdp5zJtNgfVUt0(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/ResourcePressureUtil;-><clinit>()V
-PLcom/android/server/ResourcePressureUtil;->currentPsiState()Ljava/lang/String;
-PLcom/android/server/ResourcePressureUtil;->readResourcePsiState(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/RuntimeService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/RuntimeService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/SecurityStateManagerService;-><clinit>()V
 PLcom/android/server/SecurityStateManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/SensitiveContentProtectionManagerService;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$$ExternalSyntheticLambda1;-><init>(Landroid/os/IBinder;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$1;-><init>(Lcom/android/server/SensitiveContentProtectionManagerService;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$NotificationListener;-><init>(Lcom/android/server/SensitiveContentProtectionManagerService;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$NotificationListener;->onListenerConnected()V
+HPLcom/android/server/SensitiveContentProtectionManagerService$NotificationListener;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$NotificationListener;->onNotificationRankingUpdate(Landroid/service/notification/NotificationListenerService$RankingMap;)V
+PLcom/android/server/SensitiveContentProtectionManagerService$SensitiveContentProtectionManagerServiceBinder$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/SensitiveContentProtectionManagerService$SensitiveContentProtectionManagerServiceBinder;-><init>(Lcom/android/server/SensitiveContentProtectionManagerService;)V
+PLcom/android/server/SensitiveContentProtectionManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/SensitiveContentProtectionManagerService;->init(Landroid/media/projection/MediaProjectionManager;Lcom/android/server/wm/WindowManagerInternal;Landroid/content/pm/PackageManagerInternal;Landroid/util/ArraySet;)V
+PLcom/android/server/SensitiveContentProtectionManagerService;->onBootPhase(I)V
+PLcom/android/server/SensitiveContentProtectionManagerService;->onStart()V
 PLcom/android/server/SensorNotificationService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/SensorNotificationService;->onBootPhase(I)V
+PLcom/android/server/SensorNotificationService;->onLocationChanged(Landroid/location/Location;)V
+PLcom/android/server/SensorNotificationService;->onProviderDisabled(Ljava/lang/String;)V
+PLcom/android/server/SensorNotificationService;->onProviderEnabled(Ljava/lang/String;)V
 PLcom/android/server/SensorNotificationService;->onStart()V
-HSPLcom/android/server/ServiceThread;-><init>(Ljava/lang/String;IZ)V
-HSPLcom/android/server/ServiceThread;->makeSharedHandler(Landroid/os/Looper;)Landroid/os/Handler;
-HSPLcom/android/server/ServiceThread;->run()V
-PLcom/android/server/StorageManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/SmartStorageMaintIdler;-><clinit>()V
+PLcom/android/server/SmartStorageMaintIdler;->scheduleSmartIdlePass(Landroid/content/Context;I)V
+PLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m$1(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/String;JLjava/lang/String;)Ljava/lang/StringBuilder;
+HPLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ZLjava/lang/String;)V
 PLcom/android/server/StorageManagerService$1;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService$2;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Handler;)V
+PLcom/android/server/StorageManagerService$2;-><init>(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService$2;->onChange(Z)V
 PLcom/android/server/StorageManagerService$3;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService$3;->onVolumeCreated(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/StorageManagerService$3;->onVolumeDestroyed(Ljava/lang/String;)V
 PLcom/android/server/StorageManagerService$3;->onVolumeInternalPathChanged(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/StorageManagerService$3;->onVolumePathChanged(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/StorageManagerService$3;->onVolumeStateChanged(Ljava/lang/String;II)V
-PLcom/android/server/StorageManagerService$4;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService$5;-><init>(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService$3;->onVolumeStateChanged(Ljava/lang/String;II)V
+PLcom/android/server/StorageManagerService$4;-><init>(Lcom/android/server/StorageManagerService;I)V
 PLcom/android/server/StorageManagerService$6;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService$7;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
 PLcom/android/server/StorageManagerService$7;->onVolumeChecking(Ljava/io/FileDescriptor;Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/StorageManagerService$Callbacks;->-$$Nest$mnotifyStorageStateChanged(Lcom/android/server/StorageManagerService$Callbacks;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/StorageManagerService$Callbacks;->-$$Nest$mnotifyVolumeStateChanged(Lcom/android/server/StorageManagerService$Callbacks;Landroid/os/storage/VolumeInfo;II)V
+PLcom/android/server/StorageManagerService$8;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;I)V
+PLcom/android/server/StorageManagerService$8;->onFinished(ILandroid/os/PersistableBundle;)V
+PLcom/android/server/StorageManagerService$8;->onStatus(ILandroid/os/PersistableBundle;)V
 PLcom/android/server/StorageManagerService$Callbacks;-><init>(Landroid/os/Looper;)V
+PLcom/android/server/StorageManagerService$Callbacks;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;I)V
 PLcom/android/server/StorageManagerService$Callbacks;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/StorageManagerService$Callbacks;->invokeCallback(Landroid/os/storage/IStorageEventListener;ILcom/android/internal/os/SomeArgs;)V
-PLcom/android/server/StorageManagerService$Callbacks;->notifyStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/StorageManagerService$Callbacks;->notifyVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
-PLcom/android/server/StorageManagerService$Callbacks;->register(Landroid/os/storage/IStorageEventListener;)V
 PLcom/android/server/StorageManagerService$ExternalStorageServiceAnrController;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService$ExternalStorageServiceAnrController;-><init>(Lcom/android/server/StorageManagerService;Lcom/android/server/StorageManagerService$ExternalStorageServiceAnrController-IA;)V
 PLcom/android/server/StorageManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/StorageManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/StorageManagerService$Lifecycle;->onStart()V
 PLcom/android/server/StorageManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/StorageManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/StorageManagerService$ObbActionHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;-><init>(Lcom/android/server/StorageManagerService;Lcom/android/server/StorageManagerService$StorageManagerInternalImpl-IA;)V
 HPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->getExternalStorageMountMode(ILjava/lang/String;)I
-PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasExternalStorage(ILjava/lang/String;)Z
-HPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasExternalStorageAccess(ILjava/lang/String;)Z
-HPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasLegacyExternalStorage(I)Z
-HPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->isExternalStorageService(I)Z
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasExternalStorageAccess(ILjava/lang/String;)Z
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasLegacyExternalStorage(I)Z
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->isCeStoragePrepared(I)Z
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->isExternalStorageService(I)Z
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->markCeStoragePrepared(I)V
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onAppOpsChanged(IILjava/lang/String;II)V
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onReset(Landroid/os/IVold;)V
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->prepareAppDataAfterInstall(Ljava/lang/String;I)V
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->registerCloudProviderChangeListener(Landroid/os/storage/StorageManagerInternal$CloudProviderChangeListener;)V
-PLcom/android/server/StorageManagerService$StorageManagerServiceHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
-HPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/StorageManagerService$WatchedUnlockedUsers;-><init>()V
-PLcom/android/server/StorageManagerService$WatchedUnlockedUsers;->append(I)V
-HPLcom/android/server/StorageManagerService$WatchedUnlockedUsers;->contains(I)Z
-PLcom/android/server/StorageManagerService$WatchedUnlockedUsers;->invalidateIsUserUnlockedCache()V
-PLcom/android/server/StorageManagerService;->$r8$lambda$3W1bgg_uBq6o73zqwNdqgsQVYZE(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmCeStoragePreparedUsers(Lcom/android/server/StorageManagerService;)Ljava/util/Set;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmContext(Lcom/android/server/StorageManagerService;)Landroid/content/Context;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmDisks(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmHandler(Lcom/android/server/StorageManagerService;)Landroid/os/Handler;
-HPLcom/android/server/StorageManagerService;->-$$Nest$fgetmIAppOpsService(Lcom/android/server/StorageManagerService;)Lcom/android/internal/app/IAppOpsService;
-HPLcom/android/server/StorageManagerService;->-$$Nest$fgetmIPackageManager(Lcom/android/server/StorageManagerService;)Landroid/content/pm/IPackageManager;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmLock(Lcom/android/server/StorageManagerService;)Ljava/lang/Object;
-HPLcom/android/server/StorageManagerService;->-$$Nest$fgetmMediaStoreAuthorityAppId(Lcom/android/server/StorageManagerService;)I
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmStorageSessionController(Lcom/android/server/StorageManagerService;)Lcom/android/server/storage/StorageSessionController;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmUidsWithLegacyExternalStorage(Lcom/android/server/StorageManagerService;)Ljava/util/Set;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmVold(Lcom/android/server/StorageManagerService;)Landroid/os/IVold;
-PLcom/android/server/StorageManagerService;->-$$Nest$fgetmVolumes(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
-PLcom/android/server/StorageManagerService;->-$$Nest$mbootCompleted(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->registerStorageLockEventListener(Landroid/os/storage/ICeStorageLockEventListener;)V
+PLcom/android/server/StorageManagerService$WatchedUnlockedUsers;->toString()Ljava/lang/String;
 PLcom/android/server/StorageManagerService;->-$$Nest$mcompleteUnlockUser(Lcom/android/server/StorageManagerService;I)V
-HPLcom/android/server/StorageManagerService;->-$$Nest$mgetMountModeInternal(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
-PLcom/android/server/StorageManagerService;->-$$Nest$mhandleBootCompleted(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$mhandleDaemonConnected(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$mhandleSystemReady(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$misMountDisallowed(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)Z
-PLcom/android/server/StorageManagerService;->-$$Nest$mmount(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$mnotifyCloudMediaProviderChangedAsync(Lcom/android/server/StorageManagerService;Landroid/os/storage/StorageManagerInternal$CloudProviderChangeListener;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$monUserUnlocking(Lcom/android/server/StorageManagerService;I)V
+PLcom/android/server/StorageManagerService;->-$$Nest$mdispatchOnFinished(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
+PLcom/android/server/StorageManagerService;->-$$Nest$mdispatchOnStatus(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
 PLcom/android/server/StorageManagerService;->-$$Nest$monVolumeCreatedLocked(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$monVolumeStateChangedAsync(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;II)V
-PLcom/android/server/StorageManagerService;->-$$Nest$monVolumeStateChangedLocked(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;I)V
-PLcom/android/server/StorageManagerService;->-$$Nest$mservicesReady(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$msnapshotAndMonitorLegacyStorageAppOp(Lcom/android/server/StorageManagerService;Landroid/os/UserHandle;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$mstart(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->-$$Nest$msystemReady(Lcom/android/server/StorageManagerService;)V
-HPLcom/android/server/StorageManagerService;->-$$Nest$sfgetLOCAL_LOGV()Z
+PLcom/android/server/StorageManagerService;->-$$Nest$mscrubPath(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/StorageManagerService;-><clinit>()V
-HPLcom/android/server/StorageManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/StorageManagerService;->addInternalVolumeLocked()V
-PLcom/android/server/StorageManagerService;->bootCompleted()V
+PLcom/android/server/StorageManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/StorageManagerService;->adjustAllocateFlags(IILjava/lang/String;)I
+PLcom/android/server/StorageManagerService;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V
 PLcom/android/server/StorageManagerService;->commitChanges()V
-PLcom/android/server/StorageManagerService;->completeUnlockUser(I)V
-PLcom/android/server/StorageManagerService;->configureTranscoding()V
 PLcom/android/server/StorageManagerService;->connectStoraged()V
 PLcom/android/server/StorageManagerService;->connectVold()V
+PLcom/android/server/StorageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/StorageManagerService;->enforceExternalStorageService()V
-PLcom/android/server/StorageManagerService;->enforcePermission(Ljava/lang/String;)V
 PLcom/android/server/StorageManagerService;->extendWatchdogTimeout(Ljava/lang/String;)V
-PLcom/android/server/StorageManagerService;->getDefaultPrimaryStorageUuid()Ljava/lang/String;
-HPLcom/android/server/StorageManagerService;->getMountModeInternal(ILjava/lang/String;)I
-PLcom/android/server/StorageManagerService;->getProviderInfo(Ljava/lang/String;)Landroid/content/pm/ProviderInfo;
+PLcom/android/server/StorageManagerService;->findRecordForPath(Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
+PLcom/android/server/StorageManagerService;->fstrim(ILandroid/os/IVoldTaskListener;)V
+HPLcom/android/server/StorageManagerService;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
+PLcom/android/server/StorageManagerService;->getCacheQuotaBytes(Ljava/lang/String;I)J
+PLcom/android/server/StorageManagerService;->getExternalStorageMountMode(ILjava/lang/String;)I
+PLcom/android/server/StorageManagerService;->getPrimaryStorageUuid()Ljava/lang/String;
 HPLcom/android/server/StorageManagerService;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
 HPLcom/android/server/StorageManagerService;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
-PLcom/android/server/StorageManagerService;->handleBootCompleted()V
-PLcom/android/server/StorageManagerService;->handleDaemonConnected()V
-PLcom/android/server/StorageManagerService;->handleSystemReady()V
-PLcom/android/server/StorageManagerService;->isBroadcastWorthy(Landroid/os/storage/VolumeInfo;)Z
 HPLcom/android/server/StorageManagerService;->isCeStorageUnlocked(I)Z
-PLcom/android/server/StorageManagerService;->isHevcDecoderSupported()Z
 PLcom/android/server/StorageManagerService;->isMountDisallowed(Landroid/os/storage/VolumeInfo;)Z
-HPLcom/android/server/StorageManagerService;->isSystemUnlocked(I)Z
-HPLcom/android/server/StorageManagerService;->isUidOwnerOfPackageOrSystem(Ljava/lang/String;I)Z
-PLcom/android/server/StorageManagerService;->lambda$resetIfBootedAndConnected$0()V
 PLcom/android/server/StorageManagerService;->lastMaintenance()J
-PLcom/android/server/StorageManagerService;->maybeLogMediaMount(Landroid/os/storage/VolumeInfo;I)V
-HPLcom/android/server/StorageManagerService;->monitor()V
+PLcom/android/server/StorageManagerService;->mkdirs(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService;->monitor()V
 PLcom/android/server/StorageManagerService;->mount(Landroid/os/storage/VolumeInfo;)V
 PLcom/android/server/StorageManagerService;->needsCheckpoint()Z
-PLcom/android/server/StorageManagerService;->notifyCloudMediaProviderChangedAsync(Landroid/os/storage/StorageManagerInternal$CloudProviderChangeListener;)V
-PLcom/android/server/StorageManagerService;->onDaemonConnected()V
+PLcom/android/server/StorageManagerService;->onAwakeStateChanged(Z)V
 PLcom/android/server/StorageManagerService;->onKeyguardStateChanged(Z)V
-PLcom/android/server/StorageManagerService;->onUserUnlocking(I)V
-PLcom/android/server/StorageManagerService;->onVolumeCreatedLocked(Landroid/os/storage/VolumeInfo;)V
-HPLcom/android/server/StorageManagerService;->onVolumeStateChangedAsync(Landroid/os/storage/VolumeInfo;II)V
-PLcom/android/server/StorageManagerService;->onVolumeStateChangedLocked(Landroid/os/storage/VolumeInfo;I)V
-PLcom/android/server/StorageManagerService;->prepareSmartIdleMaint()Z
 PLcom/android/server/StorageManagerService;->prepareUserStorage(Ljava/lang/String;II)V
 PLcom/android/server/StorageManagerService;->prepareUserStorageIfNeeded(Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/StorageManagerService;->prepareUserStorageInternal(Ljava/lang/String;II)V
+PLcom/android/server/StorageManagerService;->prepareUserStorageInternal(IILjava/lang/String;)V
 PLcom/android/server/StorageManagerService;->readSettingsLocked()V
+PLcom/android/server/StorageManagerService;->refreshLifetimeConstraint()Z
 PLcom/android/server/StorageManagerService;->refreshZramSettings()V
 PLcom/android/server/StorageManagerService;->registerListener(Landroid/os/storage/IStorageEventListener;)V
-HPLcom/android/server/StorageManagerService;->resetIfBootedAndConnected()V
-PLcom/android/server/StorageManagerService;->restoreCeUnlockedUsers()V
+PLcom/android/server/StorageManagerService;->resetIfBootedAndConnected()V
 PLcom/android/server/StorageManagerService;->restoreSystemUnlockedUsers(Landroid/os/UserManager;Ljava/util/List;[I)V
-PLcom/android/server/StorageManagerService;->servicesReady()V
+PLcom/android/server/StorageManagerService;->runMaintenance()V
 PLcom/android/server/StorageManagerService;->setCloudMediaProvider(Ljava/lang/String;)V
-HPLcom/android/server/StorageManagerService;->snapshotAndMonitorLegacyStorageAppOp(Landroid/os/UserHandle;)V
-PLcom/android/server/StorageManagerService;->start()V
 PLcom/android/server/StorageManagerService;->supportsCheckpoint()Z
-PLcom/android/server/StorageManagerService;->systemReady()V
 PLcom/android/server/StorageManagerService;->unlockCeStorage(I[B)V
-HPLcom/android/server/StorageManagerService;->updateLegacyStorageApps(Ljava/lang/String;IZ)V
+PLcom/android/server/StorageManagerService;->updateLegacyStorageApps(ILjava/lang/String;Z)V
 PLcom/android/server/SystemClockTime;-><clinit>()V
-PLcom/android/server/SystemClockTime;->addDebugLogEntry(Ljava/lang/String;)V
-PLcom/android/server/SystemClockTime;->getCurrentTimeMillis()J
-PLcom/android/server/SystemClockTime;->initializeIfRequired()V
+PLcom/android/server/SystemClockTime;->setTimeAndConfidence(ILjava/lang/String;J)V
+HSPLcom/android/server/SystemConfig$Injector;-><init>()V
 HSPLcom/android/server/SystemConfig$PermissionEntry;-><init>(Ljava/lang/String;Z)V
 HSPLcom/android/server/SystemConfig$SharedLibraryEntry;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/SystemConfig$SharedLibraryEntry;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/SystemConfig$SharedLibraryEntry;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)V
 HSPLcom/android/server/SystemConfig;-><clinit>()V
 HSPLcom/android/server/SystemConfig;-><init>()V
-HSPLcom/android/server/SystemConfig;->addFeature(Ljava/lang/String;I)V
-HSPLcom/android/server/SystemConfig;->enableIpSecTunnelMigrationOnVsrUAndAbove()V
-PLcom/android/server/SystemConfig;->getAllowImplicitBroadcasts()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getAllowInDataUsageSave()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getAllowInPowerSave()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getAllowInPowerSaveExceptIdle()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getAllowUnthrottledLocation()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getAllowedAssociations()Landroid/util/ArrayMap;
-HSPLcom/android/server/SystemConfig;->getAndClearPackageToUserTypeBlacklist()Landroid/util/ArrayMap;
-HSPLcom/android/server/SystemConfig;->getAndClearPackageToUserTypeWhitelist()Landroid/util/ArrayMap;
-HSPLcom/android/server/SystemConfig;->getApexModuleNameFromFilePath(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/lang/String;
-HSPLcom/android/server/SystemConfig;->getAppDataIsolationWhitelistedApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->addFeature(ILjava/lang/String;)V
 HSPLcom/android/server/SystemConfig;->getAvailableFeatures()Landroid/util/ArrayMap;
-PLcom/android/server/SystemConfig;->getBackupTransportWhitelist()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getBgRestrictionExemption()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getBugreportWhitelistedPackages()Landroid/util/ArraySet;
-HPLcom/android/server/SystemConfig;->getComponentsEnabledStates(Ljava/lang/String;)Landroid/util/ArrayMap;
-PLcom/android/server/SystemConfig;->getDisabledUntilUsedPreinstalledCarrierApps()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getDisabledUntilUsedPreinstalledCarrierAssociatedApps()Landroid/util/ArrayMap;
-PLcom/android/server/SystemConfig;->getEnhancedConfirmationTrustedInstallers()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getEnhancedConfirmationTrustedPackages()Landroid/util/ArraySet;
-HPLcom/android/server/SystemConfig;->getGlobalGids()[I
-PLcom/android/server/SystemConfig;->getInitialNonStoppedSystemPackages()Ljava/util/Set;
+HSPLcom/android/server/SystemConfig;->getInitialNonStoppedSystemPackages()Ljava/util/Set;
 HSPLcom/android/server/SystemConfig;->getInstance()Lcom/android/server/SystemConfig;
-HPLcom/android/server/SystemConfig;->getLinkedApps()Landroid/util/ArraySet;
-PLcom/android/server/SystemConfig;->getNamedActors()Ljava/util/Map;
+HSPLcom/android/server/SystemConfig;->getOemDefinedUids()Landroid/util/ArrayMap;
 PLcom/android/server/SystemConfig;->getOverlayConfigSignaturePackage()Ljava/lang/String;
-HSPLcom/android/server/SystemConfig;->getPermissionAllowlist()Lcom/android/server/pm/permission/PermissionAllowlist;
-HSPLcom/android/server/SystemConfig;->getPermissions()Landroid/util/ArrayMap;
-PLcom/android/server/SystemConfig;->getPreinstallPackagesWithStrictSignatureCheck()Ljava/util/Set;
 HSPLcom/android/server/SystemConfig;->getSharedLibraries()Landroid/util/ArrayMap;
-HSPLcom/android/server/SystemConfig;->getSplitPermissions()Ljava/util/ArrayList;
-HPLcom/android/server/SystemConfig;->getSystemAppUpdateOwnerPackageName(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/SystemConfig;->getSystemPermissions()Landroid/util/SparseArray;
-HSPLcom/android/server/SystemConfig;->isErofsSupported()Z
-HSPLcom/android/server/SystemConfig;->isSystemProcess()Z
+HSPLcom/android/server/SystemConfig;->isKernelVersionAtLeast(II)Z
 HSPLcom/android/server/SystemConfig;->readAllPermissions()V
 HSPLcom/android/server/SystemConfig;->readApexPrivAppPermissions(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;Ljava/nio/file/Path;)V
+HSPLcom/android/server/SystemConfig;->readComponentOverrides(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;)V
 HSPLcom/android/server/SystemConfig;->readInstallInUserType(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Map;Ljava/util/Map;)V
 HSPLcom/android/server/SystemConfig;->readPermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
 HSPLcom/android/server/SystemConfig;->readPermissionAllowlist(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/ArrayMap;Ljava/lang/String;)V
 HSPLcom/android/server/SystemConfig;->readPermissions(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;I)V
 HSPLcom/android/server/SystemConfig;->readPermissionsFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;I)V
-HSPLcom/android/server/SystemConfig;->readPrivAppPermissions(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/ArrayMap;)V
 HSPLcom/android/server/SystemConfig;->readPublicLibrariesListFile(Ljava/io/File;)V
 HSPLcom/android/server/SystemConfig;->readPublicNativeLibrariesList()V
 HSPLcom/android/server/SystemConfig;->readSplitPermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;)V
-PLcom/android/server/SystemConfigService$1$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/SystemConfigService$1$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/SystemConfigService$1;-><init>(Lcom/android/server/SystemConfigService;)V
 PLcom/android/server/SystemConfigService$1;->getDisabledUntilUsedPreinstalledCarrierApps()Ljava/util/List;
 PLcom/android/server/SystemConfigService$1;->getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries()Ljava/util/Map;
 PLcom/android/server/SystemConfigService$1;->getEnhancedConfirmationTrustedInstallers()Ljava/util/List;
 PLcom/android/server/SystemConfigService$1;->getEnhancedConfirmationTrustedPackages()Ljava/util/List;
 PLcom/android/server/SystemConfigService$1;->getSystemPermissionUids(Ljava/lang/String;)[I
-PLcom/android/server/SystemConfigService;->-$$Nest$fgetmContext(Lcom/android/server/SystemConfigService;)Landroid/content/Context;
 PLcom/android/server/SystemConfigService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/SystemConfigService;->onStart()V
-HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda0;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
-HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda1;-><init>(III)V
-HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda2;-><init>()V
+HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda2;-><init>(III)V
 HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda5;-><init>()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda5;->run()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;ZLandroid/content/Context;ZLandroid/net/ConnectivityManager;Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/VpnManagerService;Lcom/android/server/VcnManagementService;Lcom/android/server/HsumBootUserInitializer;Lcom/android/server/CountryDetectorService;Lcom/android/server/timedetector/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/SystemServer$$ExternalSyntheticLambda8;->onModuleServiceConnected(Landroid/os/IBinder;)V
+HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda3;-><init>(I)V
+HSPLcom/android/server/SystemServer$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/SystemServer$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;Landroid/content/Context;ZLandroid/net/ConnectivityManager;Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/VpnManagerService;Lcom/android/server/HsumBootUserInitializer;Lcom/android/server/CountryDetectorService;Lcom/android/server/timedetector/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
+PLcom/android/server/SystemServer$$ExternalSyntheticLambda7;->run()V
+PLcom/android/server/SystemServer$$ExternalSyntheticLambda9;->onModuleServiceConnected(Landroid/os/IBinder;)V
+HSPLcom/android/server/SystemServer$$ExternalSyntheticOutline0;->m(Lcom/android/server/SystemServiceManager;Ljava/lang/Class;Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;)V
 PLcom/android/server/SystemServer$1;-><init>(Lcom/android/server/SystemServer;)V
 PLcom/android/server/SystemServer$1;->onTransactionError(IIII)V
 HSPLcom/android/server/SystemServer$SystemServerDumper;->-$$Nest$maddDumpable(Lcom/android/server/SystemServer$SystemServerDumper;Landroid/util/Dumpable;)V
-HSPLcom/android/server/SystemServer$SystemServerDumper;-><init>(Lcom/android/server/SystemServer;)V
-HSPLcom/android/server/SystemServer$SystemServerDumper;-><init>(Lcom/android/server/SystemServer;Lcom/android/server/SystemServer$SystemServerDumper-IA;)V
-HSPLcom/android/server/SystemServer$SystemServerDumper;->addDumpable(Landroid/util/Dumpable;)V
+HSPLcom/android/server/SystemServer$SystemServerDumper;-><init>()V
+PLcom/android/server/SystemServer$SystemServerDumper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/SystemServer;->$r8$lambda$0ek3wX68xKbgZMUwZfiBRkUNTFs()V
 HSPLcom/android/server/SystemServer;->$r8$lambda$2PdG6KuU0ZTvilD515PGrttj0sk(III)V
 PLcom/android/server/SystemServer;->$r8$lambda$CJLFlg8wnqihjN12r-2Qq_1qSd8()V
-PLcom/android/server/SystemServer;->$r8$lambda$CKXj3ds6gqFm1f6gBL5oAqAHviY(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
-PLcom/android/server/SystemServer;->$r8$lambda$R8_YVQM1rsXoSgswlNNq9SsFhyw(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;ZLandroid/content/Context;ZLandroid/net/ConnectivityManager;Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/VpnManagerService;Lcom/android/server/VcnManagementService;Lcom/android/server/HsumBootUserInitializer;Lcom/android/server/CountryDetectorService;Lcom/android/server/timedetector/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
-PLcom/android/server/SystemServer;->$r8$lambda$SEp7M2CWq7mEDzo8pfMdSQNkGv4()V
-PLcom/android/server/SystemServer;->$r8$lambda$W9fBdZlq2B12i1BBxZIhG9kbSqM(Landroid/os/IBinder;)V
-PLcom/android/server/SystemServer;->-$$Nest$fgetmActivityManagerService(Lcom/android/server/SystemServer;)Lcom/android/server/am/ActivityManagerService;
+PLcom/android/server/SystemServer;->$r8$lambda$CQoJ9no8PBCQWigXqZnOQkSAyrE(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;Landroid/content/Context;ZLandroid/net/ConnectivityManager;Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/VpnManagerService;Lcom/android/server/HsumBootUserInitializer;Lcom/android/server/CountryDetectorService;Lcom/android/server/timedetector/NetworkTimeUpdateService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
 HSPLcom/android/server/SystemServer;-><clinit>()V
 HSPLcom/android/server/SystemServer;-><init>()V
-HSPLcom/android/server/SystemServer;->createSystemContext()V
 PLcom/android/server/SystemServer;->deviceHasConfigString(Landroid/content/Context;I)Z
+PLcom/android/server/SystemServer;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/SystemServer;->getDumpableName()Ljava/lang/String;
 HSPLcom/android/server/SystemServer;->getMaxFd()I
-PLcom/android/server/SystemServer;->handleEarlySystemWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
-PLcom/android/server/SystemServer;->isFirstBootOrUpgrade()Z
-HSPLcom/android/server/SystemServer;->lambda$spawnFdLeakCheckThread$0(III)V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$1()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$2()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$3()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$5(Landroid/os/IBinder;)V
-HPLcom/android/server/SystemServer;->lambda$startOtherServices$6(Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;ZLandroid/content/Context;ZLandroid/net/ConnectivityManager;Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/VpnManagerService;Lcom/android/server/VcnManagementService;Lcom/android/server/HsumBootUserInitializer;Lcom/android/server/CountryDetectorService;Lcom/android/server/timedetector/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
 HSPLcom/android/server/SystemServer;->main([Ljava/lang/String;)V
 HSPLcom/android/server/SystemServer;->performPendingShutdown()V
-HSPLcom/android/server/SystemServer;->run()V
-HSPLcom/android/server/SystemServer;->spawnFdLeakCheckThread()V
 PLcom/android/server/SystemServer;->startApexServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
 PLcom/android/server/SystemServer;->startAttentionService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
 HSPLcom/android/server/SystemServer;->startBootstrapServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
 PLcom/android/server/SystemServer;->startContentCaptureService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
-HPLcom/android/server/SystemServer;->startCoreServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
-HPLcom/android/server/SystemServer;->startOtherServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+PLcom/android/server/SystemServer;->startCoreServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+PLcom/android/server/SystemServer;->startOnDeviceIntelligenceService(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+PLcom/android/server/SystemServer;->startOtherServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
 PLcom/android/server/SystemServer;->startRotationResolverService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
 PLcom/android/server/SystemServer;->startSystemCaptionsManagerService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
 PLcom/android/server/SystemServer;->startSystemUi(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/SystemServer;->startTextToSpeechManagerService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
-PLcom/android/server/SystemServer;->startWearableSensingService(Lcom/android/server/utils/TimingsTraceAndSlog;)V
-PLcom/android/server/SystemServer;->updateWatchdogTimeout(Lcom/android/server/utils/TimingsTraceAndSlog;)V
-PLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda0;->execute(Ljava/lang/Runnable;)V
-HSPLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/SystemServerInitThreadPool;Ljava/lang/String;Ljava/lang/Runnable;)V
-HSPLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/SystemServerInitThreadPool;->$r8$lambda$KBkrFsHiqcxWyjNRg1WxRI4WNHA(Lcom/android/server/SystemServerInitThreadPool;Ljava/lang/String;Ljava/lang/Runnable;)V
+PLcom/android/server/SystemServer;->startTextToSpeechManagerService(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+PLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V
+HSPLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/SystemServerInitThreadPool;Ljava/lang/String;Ljava/lang/Runnable;)V
+HSPLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda2;->run()V
+HSPLcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/SystemServerInitThreadPool;-><clinit>()V
 HSPLcom/android/server/SystemServerInitThreadPool;-><init>()V
+PLcom/android/server/SystemServerInitThreadPool;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/SystemServerInitThreadPool;->getDumpableName()Ljava/lang/String;
-HSPLcom/android/server/SystemServerInitThreadPool;->lambda$submitTask$0(Ljava/lang/String;Ljava/lang/Runnable;)V
-PLcom/android/server/SystemServerInitThreadPool;->shutdown()V
-HSPLcom/android/server/SystemServerInitThreadPool;->start()Lcom/android/server/SystemServerInitThreadPool;
 HSPLcom/android/server/SystemServerInitThreadPool;->submit(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/util/concurrent/Future;
-HSPLcom/android/server/SystemServerInitThreadPool;->submitTask(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/util/concurrent/Future;
 PLcom/android/server/SystemService$TargetUser;-><init>(Landroid/content/pm/UserInfo;)V
+PLcom/android/server/SystemService$TargetUser;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/SystemService$TargetUser;->getUserHandle()Landroid/os/UserHandle;
 PLcom/android/server/SystemService$TargetUser;->getUserIdentifier()I
 PLcom/android/server/SystemService$TargetUser;->isFull()Z
 PLcom/android/server/SystemService$TargetUser;->isPreCreated()Z
+PLcom/android/server/SystemService$TargetUser;->isProfile()Z
 PLcom/android/server/SystemService$TargetUser;->toString()Ljava/lang/String;
 PLcom/android/server/SystemService$UserCompletedEventType;-><init>(I)V
-HPLcom/android/server/SystemService$UserCompletedEventType;->includesOnUserStarting()Z
+PLcom/android/server/SystemService$UserCompletedEventType;->includesOnUserStarting()Z
 PLcom/android/server/SystemService$UserCompletedEventType;->includesOnUserSwitching()Z
-HPLcom/android/server/SystemService$UserCompletedEventType;->includesOnUserUnlocked()Z
-HPLcom/android/server/SystemService$UserCompletedEventType;->toString()Ljava/lang/String;
+PLcom/android/server/SystemService$UserCompletedEventType;->includesOnUserUnlocked()Z
+PLcom/android/server/SystemService$UserCompletedEventType;->toString()Ljava/lang/String;
 HSPLcom/android/server/SystemService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/SystemService;-><init>(Landroid/content/Context;Ljava/util/List;)V
+PLcom/android/server/SystemService;->dumpSupportedUsers(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/SystemService;->getBinderService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLcom/android/server/SystemService;->getContext()Landroid/content/Context;
 PLcom/android/server/SystemService;->getLocalService(Ljava/lang/Class;)Ljava/lang/Object;
@@ -2918,937 +2481,956 @@
 HSPLcom/android/server/SystemService;->publishBinderService(Ljava/lang/String;Landroid/os/IBinder;Z)V
 HSPLcom/android/server/SystemService;->publishBinderService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 HSPLcom/android/server/SystemService;->publishLocalService(Ljava/lang/Class;Ljava/lang/Object;)V
-PLcom/android/server/SystemServiceManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/SystemServiceManager;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;Ljava/lang/String;Lcom/android/server/SystemService;)V
-HPLcom/android/server/SystemServiceManager$$ExternalSyntheticLambda0;->run()V
-HPLcom/android/server/SystemServiceManager;->$r8$lambda$-x2iNvPr7Y3U1ISY6dmkmFA351E(Lcom/android/server/SystemServiceManager;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;Ljava/lang/String;Lcom/android/server/SystemService;)V
+PLcom/android/server/SystemServiceManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/SystemServiceManager;Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;Ljava/lang/String;Lcom/android/server/SystemService;)V
+PLcom/android/server/SystemServiceManager$$ExternalSyntheticLambda3;->run()V
+HSPLcom/android/server/SystemServiceManager$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/StringBuilder;)V
+HPLcom/android/server/SystemServiceManager$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
+HSPLcom/android/server/SystemServiceManager$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/SystemServiceManager;-><clinit>()V
 HSPLcom/android/server/SystemServiceManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/SystemServiceManager;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/SystemServiceManager;->ensureSystemDir()Ljava/io/File;
 HSPLcom/android/server/SystemServiceManager;->getDumpableName()Ljava/lang/String;
-PLcom/android/server/SystemServiceManager;->getOnUserCompletedEventRunnable(Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/SystemService;Ljava/lang/String;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;)Ljava/lang/Runnable;
+PLcom/android/server/SystemServiceManager;->getRuntimeStartUptime()J
 PLcom/android/server/SystemServiceManager;->getTargetUser(I)Lcom/android/server/SystemService$TargetUser;
-PLcom/android/server/SystemServiceManager;->isBootCompleted()Z
-HPLcom/android/server/SystemServiceManager;->isJarInTestApex(Ljava/lang/String;)Z
 PLcom/android/server/SystemServiceManager;->isRuntimeRestarted()Z
-PLcom/android/server/SystemServiceManager;->isSafeMode()Z
-HPLcom/android/server/SystemServiceManager;->lambda$getOnUserCompletedEventRunnable$1(Lcom/android/server/utils/TimingsTraceAndSlog;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;Ljava/lang/String;Lcom/android/server/SystemService;)V
 HSPLcom/android/server/SystemServiceManager;->loadClassFromLoader(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
 PLcom/android/server/SystemServiceManager;->newTargetUser(I)Lcom/android/server/SystemService$TargetUser;
-PLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;)V
-PLcom/android/server/SystemServiceManager;->onUser(Ljava/lang/String;I)V
-PLcom/android/server/SystemServiceManager;->onUserCompletedEvent(II)V
-PLcom/android/server/SystemServiceManager;->onUserStarting(Lcom/android/server/utils/TimingsTraceAndSlog;I)V
-PLcom/android/server/SystemServiceManager;->onUserUnlocked(I)V
-PLcom/android/server/SystemServiceManager;->onUserUnlocking(I)V
-PLcom/android/server/SystemServiceManager;->preSystemReady()V
-PLcom/android/server/SystemServiceManager;->sealStartedServices()V
+PLcom/android/server/SystemServiceManager;->onUser(ILjava/lang/String;)V
+PLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;)V
 PLcom/android/server/SystemServiceManager;->setSafeMode(Z)V
-HSPLcom/android/server/SystemServiceManager;->setStartInfo(ZJJ)V
 HSPLcom/android/server/SystemServiceManager;->startBootPhase(Lcom/android/server/utils/TimingsTraceAndSlog;I)V
 HSPLcom/android/server/SystemServiceManager;->startService(Lcom/android/server/SystemService;)V
 HSPLcom/android/server/SystemServiceManager;->startService(Ljava/lang/Class;)Lcom/android/server/SystemService;
 HSPLcom/android/server/SystemServiceManager;->startService(Ljava/lang/String;)Lcom/android/server/SystemService;
-PLcom/android/server/SystemServiceManager;->startServiceFromJar(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/SystemService;
+PLcom/android/server/SystemServiceManager;->startServiceFromJar(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/SystemServiceManager;->updateOtherServicesStartIndex()V
-PLcom/android/server/SystemServiceManager;->useThreadPool(ILjava/lang/String;)Z
-HPLcom/android/server/SystemServiceManager;->useThreadPoolForService(Ljava/lang/String;I)Z
 HSPLcom/android/server/SystemServiceManager;->warnIfTooLong(JLcom/android/server/SystemService;Ljava/lang/String;)V
 HSPLcom/android/server/SystemTimeZone;-><clinit>()V
-PLcom/android/server/SystemTimeZone;->addDebugLogEntry(Ljava/lang/String;)V
 HSPLcom/android/server/SystemTimeZone;->initializeTimeZoneSettingsIfRequired()V
-HSPLcom/android/server/SystemTimeZone;->isValidTimeZoneId(Ljava/lang/String;)Z
+PLcom/android/server/SystemTimeZone;->setTimeZoneId(ILjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/SystemUpdateManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/SystemUpdateManagerService;->loadSystemUpdateInfoLocked()Landroid/os/Bundle;
 PLcom/android/server/SystemUpdateManagerService;->removeInfoFileAndGetDefaultInfoBundleLocked()Landroid/os/Bundle;
+PLcom/android/server/SystemUpdateManagerService;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
+PLcom/android/server/TelephonyRegistry$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ILjava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/TelephonyRegistry$1;-><init>(Lcom/android/server/TelephonyRegistry;)V
 PLcom/android/server/TelephonyRegistry$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/TelephonyRegistry$2;-><init>(Lcom/android/server/TelephonyRegistry;)V
 PLcom/android/server/TelephonyRegistry$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda0;-><init>(ILandroid/os/UserHandle;Ljava/lang/String;)V
 PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda0;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;Landroid/os/UserHandle;)V
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda3;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda6;-><init>()V
-HPLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda6;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider;->$r8$lambda$C6OjoOM6QjWKuvRgmR-CDyixxwM(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/lang/Boolean;
-HPLcom/android/server/TelephonyRegistry$ConfigurationProvider;->$r8$lambda$fiLSZuDgZl0ukk9Pd8o7udet0Lc()Ljava/lang/Integer;
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider;->$r8$lambda$ia5Kj1BuRYcdkS9zbfBdAW8KTno(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/lang/Boolean;
+PLcom/android/server/TelephonyRegistry$ConfigurationProvider$$ExternalSyntheticLambda6;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/TelephonyRegistry$ConfigurationProvider;-><init>()V
-HPLcom/android/server/TelephonyRegistry$ConfigurationProvider;->getRegistrationLimit()I
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider;->isActiveDataSubIdReadPhoneStateEnforcedInPlatformCompat(Ljava/lang/String;Landroid/os/UserHandle;)Z
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider;->isCallStateReadPhoneStateEnforcedInPlatformCompat(Ljava/lang/String;Landroid/os/UserHandle;)Z
-HPLcom/android/server/TelephonyRegistry$ConfigurationProvider;->lambda$getRegistrationLimit$0()Ljava/lang/Integer;
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider;->lambda$isActiveDataSubIdReadPhoneStateEnforcedInPlatformCompat$3(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/lang/Boolean;
-PLcom/android/server/TelephonyRegistry$ConfigurationProvider;->lambda$isCallStateReadPhoneStateEnforcedInPlatformCompat$2(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/lang/Boolean;
-HPLcom/android/server/TelephonyRegistry$Record;-><init>()V
-PLcom/android/server/TelephonyRegistry$Record;-><init>(Lcom/android/server/TelephonyRegistry$Record-IA;)V
-PLcom/android/server/TelephonyRegistry$Record;->matchCarrierConfigChangeListener()Z
-PLcom/android/server/TelephonyRegistry$Record;->matchCarrierPrivilegesCallback()Z
-PLcom/android/server/TelephonyRegistry$Record;->matchTelephonyCallbackEvent(I)Z
+PLcom/android/server/TelephonyRegistry$Record;->canReadCallLog()Z
+HPLcom/android/server/TelephonyRegistry$Record;->matchTelephonyCallbackEvent(I)Z+]Ljava/util/Set;Ljava/util/HashSet;
+PLcom/android/server/TelephonyRegistry$Record;->toString()Ljava/lang/String;
 PLcom/android/server/TelephonyRegistry$TelephonyRegistryDeathRecipient;-><init>(Lcom/android/server/TelephonyRegistry;Landroid/os/IBinder;)V
-PLcom/android/server/TelephonyRegistry;->-$$Nest$fgetmCellIdentity(Lcom/android/server/TelephonyRegistry;)[Landroid/telephony/CellIdentity;
-PLcom/android/server/TelephonyRegistry;->-$$Nest$fgetmHandler(Lcom/android/server/TelephonyRegistry;)Landroid/os/Handler;
-PLcom/android/server/TelephonyRegistry;->-$$Nest$mgetTelephonyManager(Lcom/android/server/TelephonyRegistry;)Landroid/telephony/TelephonyManager;
-PLcom/android/server/TelephonyRegistry;->-$$Nest$mnotifyCellLocationForSubscriber(Lcom/android/server/TelephonyRegistry;ILandroid/telephony/CellIdentity;Z)V
+PLcom/android/server/TelephonyRegistry$TelephonyRegistryDeathRecipient;->binderDied()V
 PLcom/android/server/TelephonyRegistry;-><clinit>()V
-HPLcom/android/server/TelephonyRegistry;-><init>(Landroid/content/Context;Lcom/android/server/TelephonyRegistry$ConfigurationProvider;)V
-HPLcom/android/server/TelephonyRegistry;->add(Landroid/os/IBinder;IIZ)Lcom/android/server/TelephonyRegistry$Record;
-HPLcom/android/server/TelephonyRegistry;->addCarrierConfigChangeListener(Lcom/android/internal/telephony/ICarrierConfigChangeListener;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/TelephonyRegistry;->addCarrierPrivilegesCallback(ILcom/android/internal/telephony/ICarrierPrivilegesCallback;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;-><init>(Landroid/content/Context;Lcom/android/server/TelephonyRegistry$ConfigurationProvider;)V
+HPLcom/android/server/TelephonyRegistry;->add(IILandroid/os/IBinder;Z)Lcom/android/server/TelephonyRegistry$Record;+]Landroid/os/IBinder;Landroid/os/BinderProxy;,Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;,Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/TelephonyRegistry;->addCarrierConfigChangeListener(Lcom/android/internal/telephony/ICarrierConfigChangeListener;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;->addCarrierPrivilegesCallback(ILcom/android/internal/telephony/ICarrierPrivilegesCallback;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/TelephonyRegistry;->addOnOpportunisticSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
-HPLcom/android/server/TelephonyRegistry;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
-PLcom/android/server/TelephonyRegistry;->broadcastServiceStateChanged(Landroid/telephony/ServiceState;II)V
-PLcom/android/server/TelephonyRegistry;->broadcastSignalStrengthChanged(Landroid/telephony/SignalStrength;II)V
-HPLcom/android/server/TelephonyRegistry;->checkListenerPermission(Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/TelephonyRegistry;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
+PLcom/android/server/TelephonyRegistry;->broadcastCallStateChanged(IIILjava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;->broadcastServiceStateChanged(IILandroid/telephony/ServiceState;)V
+HPLcom/android/server/TelephonyRegistry;->checkListenerPermission(Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/TelephonyRegistry;->checkNotifyPermission()Z
-PLcom/android/server/TelephonyRegistry;->checkNotifyPermission(Ljava/lang/String;)Z
 PLcom/android/server/TelephonyRegistry;->createCallQuality()Landroid/telephony/CallQuality;
-PLcom/android/server/TelephonyRegistry;->createPreciseCallState()Landroid/telephony/PreciseCallState;
 PLcom/android/server/TelephonyRegistry;->createServiceStateBroadcastOptions(IILjava/lang/String;)Landroid/app/BroadcastOptions;
 PLcom/android/server/TelephonyRegistry;->createServiceStateIntent(Landroid/telephony/ServiceState;IIZ)Landroid/content/Intent;
 PLcom/android/server/TelephonyRegistry;->doesLimitApplyForListeners(II)Z
-PLcom/android/server/TelephonyRegistry;->fillInSignalStrengthNotifierBundle(Landroid/telephony/SignalStrength;Landroid/os/Bundle;)V
-HPLcom/android/server/TelephonyRegistry;->getPhoneIdFromSubId(I)I
-PLcom/android/server/TelephonyRegistry;->getTelephonyManager()Landroid/telephony/TelephonyManager;
+PLcom/android/server/TelephonyRegistry;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;->getPhoneIdFromSubId(I)I
 PLcom/android/server/TelephonyRegistry;->handleRemoveListLocked()V
 PLcom/android/server/TelephonyRegistry;->idMatch(Lcom/android/server/TelephonyRegistry$Record;II)Z
-HPLcom/android/server/TelephonyRegistry;->isActiveEmergencySessionPermissionRequired(Ljava/util/Set;)Z
-HPLcom/android/server/TelephonyRegistry;->isLocationPermissionRequired(Ljava/util/Set;)Z
-HPLcom/android/server/TelephonyRegistry;->isPhoneStatePermissionRequired(Ljava/util/Set;Ljava/lang/String;Landroid/os/UserHandle;)Z
-HPLcom/android/server/TelephonyRegistry;->isPrecisePhoneStatePermissionRequired(Ljava/util/Set;)Z
-HPLcom/android/server/TelephonyRegistry;->isPrivilegedPhoneStatePermissionRequired(Ljava/util/Set;)Z
+PLcom/android/server/TelephonyRegistry;->idMatchRelaxed(Lcom/android/server/TelephonyRegistry$Record;II)Z
 HPLcom/android/server/TelephonyRegistry;->listen(ZZLjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;Ljava/util/Set;ZI)V
-HPLcom/android/server/TelephonyRegistry;->listenWithEventList(ZZILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;[IZ)V
+PLcom/android/server/TelephonyRegistry;->listenWithEventList(ZZILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;[IZ)V
 PLcom/android/server/TelephonyRegistry;->log(Ljava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;->loge(Ljava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;->notifyActiveDataSubIdChanged(I)V
 PLcom/android/server/TelephonyRegistry;->notifyCallForwardingChangedForSubscriber(IZ)V
+PLcom/android/server/TelephonyRegistry;->notifyCallStateForAllSubs(ILjava/lang/String;)V
 PLcom/android/server/TelephonyRegistry;->notifyCarrierConfigChanged(IIII)V
+PLcom/android/server/TelephonyRegistry;->notifyCarrierRoamingNtnEligibleStateChanged(IZ)V
+PLcom/android/server/TelephonyRegistry;->notifyCarrierRoamingNtnSignalStrengthChanged(ILandroid/telephony/satellite/NtnSignalStrength;)V
+PLcom/android/server/TelephonyRegistry;->notifyCellInfoForSubscriber(ILjava/util/List;)V
 PLcom/android/server/TelephonyRegistry;->notifyCellLocationForSubscriber(ILandroid/telephony/CellIdentity;Z)V
 PLcom/android/server/TelephonyRegistry;->notifyDataEnabled(IIZI)V
-HPLcom/android/server/TelephonyRegistry;->notifyEmergencyNumberList(II)V
+PLcom/android/server/TelephonyRegistry;->notifyEmergencyNumberList(II)V
 PLcom/android/server/TelephonyRegistry;->notifyPhoneCapabilityChanged(Landroid/telephony/PhoneCapability;)V
 PLcom/android/server/TelephonyRegistry;->notifyRadioPowerStateChanged(III)V
 PLcom/android/server/TelephonyRegistry;->notifyServiceStateForPhoneId(IILandroid/telephony/ServiceState;)V
-PLcom/android/server/TelephonyRegistry;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V
+HPLcom/android/server/TelephonyRegistry;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/telephony/SignalStrength;Landroid/telephony/SignalStrength;]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;]Lcom/android/internal/telephony/IPhoneStateListener;Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;,Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;,Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/TelephonyRegistry;->onMultiSimConfigChanged()V
-PLcom/android/server/TelephonyRegistry;->pii(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/TelephonyRegistry;->pii(Ljava/util/List;)Ljava/lang/String;
 PLcom/android/server/TelephonyRegistry;->remove(Landroid/os/IBinder;)V
+PLcom/android/server/TelephonyRegistry;->removeOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
 PLcom/android/server/TelephonyRegistry;->systemRunning()V
-PLcom/android/server/TelephonyRegistry;->validatePhoneId(I)Z
-HSPLcom/android/server/ThreadPriorityBooster$1;-><init>(Lcom/android/server/ThreadPriorityBooster;)V
-HSPLcom/android/server/ThreadPriorityBooster$1;->initialValue()Lcom/android/server/ThreadPriorityBooster$PriorityState;
+HPLcom/android/server/TelephonyRegistry;->validatePhoneId(I)Z
 HSPLcom/android/server/ThreadPriorityBooster$1;->initialValue()Ljava/lang/Object;
 HSPLcom/android/server/ThreadPriorityBooster$PriorityState;-><init>()V
-HSPLcom/android/server/ThreadPriorityBooster$PriorityState;-><init>(Lcom/android/server/ThreadPriorityBooster$PriorityState-IA;)V
 HSPLcom/android/server/ThreadPriorityBooster;-><init>(II)V
-HSPLcom/android/server/ThreadPriorityBooster;->boost()V
-HSPLcom/android/server/ThreadPriorityBooster;->reset()V
+HSPLcom/android/server/ThreadPriorityBooster;->boost()V+]Ljava/lang/ThreadLocal;Lcom/android/server/ThreadPriorityBooster$1;
+HSPLcom/android/server/ThreadPriorityBooster;->reset()V+]Ljava/lang/ThreadLocal;Lcom/android/server/ThreadPriorityBooster$1;
 PLcom/android/server/ThreadPriorityBooster;->setBoostToPriority(I)V
-PLcom/android/server/UiModeManagerInternal;-><init>()V
+HSPLcom/android/server/TradeInModeService$TradeInMode$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/UiModeManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;)V
 PLcom/android/server/UiModeManagerService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/UiModeManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$10;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
-PLcom/android/server/UiModeManagerService$11;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
-PLcom/android/server/UiModeManagerService$12;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$13;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$1;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$1;->get()I
+PLcom/android/server/UiModeManagerService$10;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;I)V
+PLcom/android/server/UiModeManagerService$10;->onChange(ZLandroid/net/Uri;)V
 PLcom/android/server/UiModeManagerService$1;->set(I)V
-PLcom/android/server/UiModeManagerService$2;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$3;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$4;-><init>(Lcom/android/server/UiModeManagerService;)V
-HPLcom/android/server/UiModeManagerService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/UiModeManagerService$5;-><init>(Lcom/android/server/UiModeManagerService;)V
+PLcom/android/server/UiModeManagerService$3;-><init>(Lcom/android/server/UiModeManagerService;I)V
+HPLcom/android/server/UiModeManagerService$3;->onReceive$com$android$server$UiModeManagerService$5(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/UiModeManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/UiModeManagerService$6;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$7;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$8;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$9;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
+PLcom/android/server/UiModeManagerService$9;-><init>(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/UiModeManagerService$Injector;-><init>()V
 PLcom/android/server/UiModeManagerService$LocalService;-><init>(Lcom/android/server/UiModeManagerService;)V
+PLcom/android/server/UiModeManagerService$Shell;->nightModeToStr(II)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Stub;-><init>(Lcom/android/server/UiModeManagerService;Landroid/content/Context;)V
 PLcom/android/server/UiModeManagerService$Stub;->addCallback(Landroid/app/IUiModeManagerCallback;)V
-HPLcom/android/server/UiModeManagerService$Stub;->addOnProjectionStateChangedListener(Landroid/app/IOnProjectionStateChangedListener;I)V
+PLcom/android/server/UiModeManagerService$Stub;->addOnProjectionStateChangedListener(Landroid/app/IOnProjectionStateChangedListener;I)V
+PLcom/android/server/UiModeManagerService$Stub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/UiModeManagerService$Stub;->getActiveProjectionTypes()I
 PLcom/android/server/UiModeManagerService$Stub;->getContrast()F
 PLcom/android/server/UiModeManagerService$Stub;->getCurrentModeType()I
-PLcom/android/server/UiModeManagerService;->$r8$lambda$QPwDb2teQBOty6gCNDQwNIaFO6w(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;)V
-PLcom/android/server/UiModeManagerService;->-$$Nest$fgetmLock(Lcom/android/server/UiModeManagerService;)Ljava/lang/Object;
-PLcom/android/server/UiModeManagerService;->-$$Nest$fgetmProjectionHolders(Lcom/android/server/UiModeManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/UiModeManagerService;->-$$Nest$fgetmProjectionListeners(Lcom/android/server/UiModeManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/UiModeManagerService;->-$$Nest$fgetmUiModeManagerCallbacks(Lcom/android/server/UiModeManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/UiModeManagerService;->-$$Nest$fputmCharging(Lcom/android/server/UiModeManagerService;Z)V
-PLcom/android/server/UiModeManagerService;->-$$Nest$fputmProjectionListeners(Lcom/android/server/UiModeManagerService;Landroid/util/SparseArray;)V
-PLcom/android/server/UiModeManagerService;->-$$Nest$mgetContrastLocked(Lcom/android/server/UiModeManagerService;)F
-PLcom/android/server/UiModeManagerService;->-$$Nest$mpopulateWithRelevantActivePackageNames(Lcom/android/server/UiModeManagerService;ILjava/util/List;)I
 PLcom/android/server/UiModeManagerService;-><clinit>()V
 PLcom/android/server/UiModeManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/UiModeManagerService;-><init>(Landroid/content/Context;ZLcom/android/server/twilight/TwilightManager;Lcom/android/server/UiModeManagerService$Injector;)V
+PLcom/android/server/UiModeManagerService;-><init>(Landroid/content/Context;ZLcom/android/server/twilight/TwilightManager;Lcom/android/server/UiModeManagerService$Injector;)V
 PLcom/android/server/UiModeManagerService;->applyConfigurationExternallyLocked()V
-PLcom/android/server/UiModeManagerService;->getComputedUiModeConfiguration(I)I
-PLcom/android/server/UiModeManagerService;->getContrastLocked()F
-PLcom/android/server/UiModeManagerService;->initPowerSave()V
 PLcom/android/server/UiModeManagerService;->isDeskDockState(I)Z
-PLcom/android/server/UiModeManagerService;->lambda$onStart$1(Landroid/content/Context;Landroid/content/res/Resources;)V
-HPLcom/android/server/UiModeManagerService;->onBootPhase(I)V
+PLcom/android/server/UiModeManagerService;->onBootPhase(I)V
 PLcom/android/server/UiModeManagerService;->onStart()V
 PLcom/android/server/UiModeManagerService;->populateWithRelevantActivePackageNames(ILjava/util/List;)I
-PLcom/android/server/UiModeManagerService;->registerVrStateListener()V
-PLcom/android/server/UiModeManagerService;->resetNightModeOverrideLocked()Z
 PLcom/android/server/UiModeManagerService;->sendConfigurationAndStartDreamOrDockAppLocked(Ljava/lang/String;)V
-PLcom/android/server/UiModeManagerService;->setupWizardCompleteForCurrentUser()Z
-PLcom/android/server/UiModeManagerService;->unregisterTimeChangeEvent()V
-HPLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked(Z)V
+PLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked(Z)V
 HPLcom/android/server/UiModeManagerService;->updateConfigurationLocked()V
 PLcom/android/server/UiModeManagerService;->updateContrastLocked()Z
 HPLcom/android/server/UiModeManagerService;->updateLocked(II)V
 PLcom/android/server/UiModeManagerService;->updateNightModeFromSettingsLocked(Landroid/content/Context;Landroid/content/res/Resources;I)V
 PLcom/android/server/UiModeManagerService;->updateSystemProperties()V
 PLcom/android/server/UiModeManagerService;->verifySetupWizardCompleted()V
-HSPLcom/android/server/UiThread;-><init>()V
 HSPLcom/android/server/UiThread;->ensureThreadLocked()V
 HSPLcom/android/server/UiThread;->get()Lcom/android/server/UiThread;
 HSPLcom/android/server/UiThread;->getHandler()Landroid/os/Handler;
 HSPLcom/android/server/UiThread;->run()V
-PLcom/android/server/UpdateLockService$LockWatcher;-><init>(Lcom/android/server/UpdateLockService;Landroid/os/Handler;Ljava/lang/String;)V
+PLcom/android/server/UpdateLockService$LockWatcher;-><init>(Lcom/android/server/UpdateLockService;Landroid/os/Handler;)V
 PLcom/android/server/UpdateLockService$LockWatcher;->acquired()V
 PLcom/android/server/UpdateLockService$LockWatcher;->released()V
 PLcom/android/server/UpdateLockService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/UpdateLockService;->acquireUpdateLock(Landroid/os/IBinder;Ljava/lang/String;)V
-PLcom/android/server/UpdateLockService;->makeTag(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/UpdateLockService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/UpdateLockService;->releaseUpdateLock(Landroid/os/IBinder;)V
 PLcom/android/server/UpdateLockService;->sendLockChangedBroadcast(Z)V
-PLcom/android/server/UserspaceRebootLogger;->shouldLogUserspaceRebootEvent()Z
+PLcom/android/server/VcnManagementService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/VcnManagementService;Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;I)V
+PLcom/android/server/VcnManagementService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/VcnManagementService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/VcnManagementService;)V
 PLcom/android/server/VcnManagementService$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/VcnManagementService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/VcnManagementService;Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/VcnManagementService$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/VcnManagementService$Dependencies;-><init>()V
-PLcom/android/server/VcnManagementService$Dependencies;->getLooper()Landroid/os/Looper;
-PLcom/android/server/VcnManagementService$Dependencies;->newPersistableBundleLockingReadWriteHelper(Ljava/lang/String;)Lcom/android/server/vcn/util/PersistableBundleUtils$LockingReadWriteHelper;
-PLcom/android/server/VcnManagementService$Dependencies;->newTelephonySubscriptionTracker(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionTrackerCallback;)Lcom/android/server/vcn/TelephonySubscriptionTracker;
-PLcom/android/server/VcnManagementService$TrackingNetworkCallback;-><init>(Lcom/android/server/VcnManagementService;)V
-PLcom/android/server/VcnManagementService$TrackingNetworkCallback;-><init>(Lcom/android/server/VcnManagementService;Lcom/android/server/VcnManagementService$TrackingNetworkCallback-IA;)V
+PLcom/android/server/VcnManagementService$PolicyListenerBinderDeath;-><init>(Lcom/android/server/VcnManagementService;Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V
+PLcom/android/server/VcnManagementService$TrackingNetworkCallback;-><init>()V
+PLcom/android/server/VcnManagementService$TrackingNetworkCallback;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/VcnManagementService$TrackingNetworkCallback;->onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V
+PLcom/android/server/VcnManagementService$TrackingNetworkCallback;->onLost(Landroid/net/Network;)V
 PLcom/android/server/VcnManagementService$VcnBroadcastReceiver;-><init>(Lcom/android/server/VcnManagementService;)V
-PLcom/android/server/VcnManagementService$VcnBroadcastReceiver;-><init>(Lcom/android/server/VcnManagementService;Lcom/android/server/VcnManagementService$VcnBroadcastReceiver-IA;)V
+PLcom/android/server/VcnManagementService$VcnBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;-><init>(Lcom/android/server/VcnManagementService;)V
-PLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;-><init>(Lcom/android/server/VcnManagementService;Lcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback-IA;)V
 PLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;->onNewSnapshot(Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)V
-PLcom/android/server/VcnManagementService;->$r8$lambda$Ef7L22K53jlZvoAbNN6oKOpv0Wo(Lcom/android/server/VcnManagementService;)V
-PLcom/android/server/VcnManagementService;->-$$Nest$fgetmConfigs(Lcom/android/server/VcnManagementService;)Ljava/util/Map;
-PLcom/android/server/VcnManagementService;->-$$Nest$fgetmLastSnapshot(Lcom/android/server/VcnManagementService;)Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;
-PLcom/android/server/VcnManagementService;->-$$Nest$fgetmLock(Lcom/android/server/VcnManagementService;)Ljava/lang/Object;
-PLcom/android/server/VcnManagementService;->-$$Nest$fgetmVcns(Lcom/android/server/VcnManagementService;)Ljava/util/Map;
-PLcom/android/server/VcnManagementService;->-$$Nest$fputmLastSnapshot(Lcom/android/server/VcnManagementService;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)V
 PLcom/android/server/VcnManagementService;->-$$Nest$mgetSubGroupToSubIdMappings(Lcom/android/server/VcnManagementService;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)Ljava/util/Map;
-PLcom/android/server/VcnManagementService;->-$$Nest$mlogInfo(Lcom/android/server/VcnManagementService;Ljava/lang/String;)V
-PLcom/android/server/VcnManagementService;->-$$Nest$sfgetTAG()Ljava/lang/String;
 PLcom/android/server/VcnManagementService;-><clinit>()V
-HPLcom/android/server/VcnManagementService;-><init>(Landroid/content/Context;Lcom/android/server/VcnManagementService$Dependencies;)V
-PLcom/android/server/VcnManagementService;->create(Landroid/content/Context;)Lcom/android/server/VcnManagementService;
-PLcom/android/server/VcnManagementService;->getSubGroupToSubIdMappings(Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)Ljava/util/Map;
-PLcom/android/server/VcnManagementService;->lambda$new$0()V
+PLcom/android/server/VcnManagementService;-><init>(Landroid/content/Context;Lcom/android/server/VcnManagementService$Dependencies;)V
+PLcom/android/server/VcnManagementService;->addVcnUnderlyingNetworkPolicyListener(Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V
+PLcom/android/server/VcnManagementService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/VcnManagementService;->lambda$dump$10(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/VcnManagementService;->logInfo(Ljava/lang/String;)V
-PLcom/android/server/VcnManagementService;->systemReady()V
-PLcom/android/server/VpnManagerService$1;-><init>(Lcom/android/server/VpnManagerService;)V
-PLcom/android/server/VpnManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/VpnManagerService$2;-><init>(Lcom/android/server/VpnManagerService;)V
-PLcom/android/server/VpnManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/VpnManagerService$Dependencies;-><init>()V
-PLcom/android/server/VpnManagerService$Dependencies;->createVpn(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/net/INetd;I)Lcom/android/server/connectivity/Vpn;
-PLcom/android/server/VpnManagerService$Dependencies;->getCallingUid()I
-PLcom/android/server/VpnManagerService$Dependencies;->getINetworkManagementService()Landroid/os/INetworkManagementService;
-PLcom/android/server/VpnManagerService$Dependencies;->getMainUserId()I
-PLcom/android/server/VpnManagerService$Dependencies;->getNetd()Landroid/net/INetd;
-PLcom/android/server/VpnManagerService$Dependencies;->getVpnProfileStore()Lcom/android/server/connectivity/VpnProfileStore;
-PLcom/android/server/VpnManagerService$Dependencies;->makeHandlerThread()Landroid/os/HandlerThread;
-PLcom/android/server/VpnManagerService;->-$$Nest$mensureRunningOnHandlerThread(Lcom/android/server/VpnManagerService;)V
-PLcom/android/server/VpnManagerService;->-$$Nest$monUserStarted(Lcom/android/server/VpnManagerService;I)V
-PLcom/android/server/VpnManagerService;->-$$Nest$monUserUnlocked(Lcom/android/server/VpnManagerService;I)V
-PLcom/android/server/VpnManagerService;-><clinit>()V
-PLcom/android/server/VpnManagerService;-><init>(Landroid/content/Context;Lcom/android/server/VpnManagerService$Dependencies;)V
-PLcom/android/server/VpnManagerService;->create(Landroid/content/Context;)Lcom/android/server/VpnManagerService;
-PLcom/android/server/VpnManagerService;->ensureRunningOnHandlerThread()V
-PLcom/android/server/VpnManagerService;->isLockdownVpnEnabled()Z
-PLcom/android/server/VpnManagerService;->log(Ljava/lang/String;)V
-PLcom/android/server/VpnManagerService;->onUserStarted(I)V
-PLcom/android/server/VpnManagerService;->onUserUnlocked(I)V
-PLcom/android/server/VpnManagerService;->registerReceivers()V
-PLcom/android/server/VpnManagerService;->setLockdownTracker(Lcom/android/server/net/LockdownVpnTracker;)V
-PLcom/android/server/VpnManagerService;->startAlwaysOnVpn(I)Z
-PLcom/android/server/VpnManagerService;->systemReady()V
-PLcom/android/server/VpnManagerService;->updateLockdownVpn()Z
+PLcom/android/server/VcnManagementService;->removeVcnUnderlyingNetworkPolicyListener(Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V
 HSPLcom/android/server/Watchdog$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/Watchdog;)V
 HSPLcom/android/server/Watchdog$$ExternalSyntheticLambda0;->run()V
-HSPLcom/android/server/Watchdog$BinderThreadMonitor;-><init>()V
-HSPLcom/android/server/Watchdog$BinderThreadMonitor;-><init>(Lcom/android/server/Watchdog$BinderThreadMonitor-IA;)V
 HSPLcom/android/server/Watchdog$BinderThreadMonitor;->monitor()V
 HSPLcom/android/server/Watchdog$HandlerChecker;-><init>(Landroid/os/Handler;Ljava/lang/String;Ljava/lang/Object;)V
-HSPLcom/android/server/Watchdog$HandlerChecker;-><init>(Landroid/os/Handler;Ljava/lang/String;Ljava/lang/Object;Ljava/time/Clock;)V
-HSPLcom/android/server/Watchdog$HandlerChecker;->addMonitorLocked(Lcom/android/server/Watchdog$Monitor;)V
-HPLcom/android/server/Watchdog$HandlerChecker;->getCompletionStateLocked()I
-HSPLcom/android/server/Watchdog$HandlerChecker;->getThread()Ljava/lang/Thread;
-HSPLcom/android/server/Watchdog$HandlerChecker;->isHandlerPolling()Z
+PLcom/android/server/Watchdog$HandlerChecker;->getCompletionStateLocked()I
 PLcom/android/server/Watchdog$HandlerChecker;->pauseForLocked(ILjava/lang/String;)V
 HSPLcom/android/server/Watchdog$HandlerChecker;->pauseLocked(Ljava/lang/String;)V
 PLcom/android/server/Watchdog$HandlerChecker;->resumeLocked(Ljava/lang/String;)V
 HSPLcom/android/server/Watchdog$HandlerChecker;->run()V
 HSPLcom/android/server/Watchdog$HandlerChecker;->scheduleCheckLocked(J)V
 HSPLcom/android/server/Watchdog$HandlerCheckerAndTimeout;-><init>(Lcom/android/server/Watchdog$HandlerChecker;Ljava/util/Optional;)V
-HSPLcom/android/server/Watchdog$HandlerCheckerAndTimeout;->checker()Lcom/android/server/Watchdog$HandlerChecker;
-HSPLcom/android/server/Watchdog$HandlerCheckerAndTimeout;->customTimeoutMillis()Ljava/util/Optional;
-HSPLcom/android/server/Watchdog$HandlerCheckerAndTimeout;->withCustomTimeout(Lcom/android/server/Watchdog$HandlerChecker;J)Lcom/android/server/Watchdog$HandlerCheckerAndTimeout;
 HSPLcom/android/server/Watchdog$HandlerCheckerAndTimeout;->withDefaultTimeout(Lcom/android/server/Watchdog$HandlerChecker;)Lcom/android/server/Watchdog$HandlerCheckerAndTimeout;
 PLcom/android/server/Watchdog$RebootRequestReceiver;-><init>(Lcom/android/server/Watchdog;)V
 PLcom/android/server/Watchdog$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/server/Watchdog;)V
 PLcom/android/server/Watchdog$SettingsObserver;->onChange()V
-HSPLcom/android/server/Watchdog;->$r8$lambda$IHmOjeSmDoiNkZR0B-wv71mYNoM(Lcom/android/server/Watchdog;)V
 HSPLcom/android/server/Watchdog;-><clinit>()V
 HSPLcom/android/server/Watchdog;-><init>()V
 HSPLcom/android/server/Watchdog;->addMonitor(Lcom/android/server/Watchdog$Monitor;)V
 HSPLcom/android/server/Watchdog;->addThread(Landroid/os/Handler;)V
 HSPLcom/android/server/Watchdog;->addThread(Landroid/os/Handler;J)V
-PLcom/android/server/Watchdog;->evaluateCheckerCompletionLocked()I
+PLcom/android/server/Watchdog;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/Watchdog;->getInstance()Lcom/android/server/Watchdog;
-PLcom/android/server/Watchdog;->init(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/Watchdog;->isInterestingJavaProcess(Ljava/lang/String;)Z
 HSPLcom/android/server/Watchdog;->pauseWatchingCurrentThread(Ljava/lang/String;)V
 PLcom/android/server/Watchdog;->pauseWatchingCurrentThreadFor(ILjava/lang/String;)V
-PLcom/android/server/Watchdog;->pauseWatchingMonitorsFor(ILjava/lang/String;)V
-PLcom/android/server/Watchdog;->processDied(Ljava/lang/String;I)V
-HPLcom/android/server/Watchdog;->processStarted(Ljava/lang/String;I)V
-PLcom/android/server/Watchdog;->registerSettingsObserver(Landroid/content/Context;)V
-HPLcom/android/server/Watchdog;->resumeWatchingCurrentThread(Ljava/lang/String;)V
-HSPLcom/android/server/Watchdog;->run()V
-HSPLcom/android/server/Watchdog;->start()V
-PLcom/android/server/Watchdog;->updateWatchdogTimeout(J)V
+PLcom/android/server/Watchdog;->processStarted(ILjava/lang/String;)V
+PLcom/android/server/Watchdog;->resumeWatchingCurrentThread(Ljava/lang/String;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$1;-><init>(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;Landroid/os/Looper;)V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$1;->handleMessage(Landroid/os/Message;)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
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->-$$Nest$mnotifyAccessibilityEventInternal(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;ILandroid/view/accessibility/AccessibilityEvent;Z)V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;-><init>(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;Landroid/accessibilityservice/AccessibilityTrace;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/accessibilityservice/AccessibilityTrace;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->addWindowTokenForDisplay(I)V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->addWindowTokensForAllDisplays()V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->canReceiveEventsLocked()Z
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->ensureWindowsAvailableTimedLocked(I)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->findAccessibilityNodeInfoByAccessibilityId(IJILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IJLandroid/os/Bundle;)[Ljava/lang/String;
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getCapabilities()I
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getComponentName()Landroid/content/ComponentName;
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getRelevantEventTypes()I
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindowTransformationMatrixAndMagnificationSpec(I)Landroid/util/Pair;
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->findFocus(IJIILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getClientSafely()Landroid/accessibilityservice/IAccessibilityServiceClient;
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getMagnificationConfig(I)Landroid/accessibilityservice/MagnificationConfig;
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindow(I)Landroid/view/accessibility/AccessibilityWindowInfo;
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindows()Landroid/view/accessibility/AccessibilityWindowInfo$WindowListSparseArray;
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getWindowsByDisplayLocked(I)Ljava/util/List;
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->intConnTracingEnabled()Z
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyAccessibilityEventInternal(ILandroid/view/accessibility/AccessibilityEvent;Z)V
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->replaceCallbackIfNeeded(Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIIJ)Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->isMagnificationCallbackEnabled(I)Z
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->isServiceDetectsGesturesEnabled(I)Z
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onDisplayRemoved(I)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onKeyEvent(Landroid/view/KeyEvent;I)Z
+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;->replaceCallbackIfNeeded(Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIIJ)Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->resetLocked()V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->resolveAccessibilityWindowIdForFindFocusLocked(II)I
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->resolveAccessibilityWindowIdLocked(I)I
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setDisplayTypes(I)V
-HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setDynamicallyConfigurableProperties(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
-HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setAttributionTag(Ljava/lang/String;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setDynamicallyConfigurableProperties(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setMagnificationCallbackEnabled(IZ)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setOnKeyEventResult(ZI)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->setTouchExplorationPassthroughRegion(ILandroid/graphics/Region;)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->supportsFlagForNotImportantViews(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->svcClientTracingEnabled()Z
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->svcConnTracingEnabled()Z
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->wantsEventLocked(Landroid/view/accessibility/AccessibilityEvent;)Z
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->wmTracingEnabled()Z
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda12;->run()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda13;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda16;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda18;->onResult(IZ)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda19;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda22;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda22;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda23;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda24;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda25;-><init>(Ljava/util/List;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda30;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda35;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda38;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda38;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda41;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda44;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda46;-><init>(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda47;-><init>(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/Set;Ljava/util/Set;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda49;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda49;->acceptOrThrow(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda52;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;J)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda52;->acceptOrThrow(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda54;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda54;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda55;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda55;->acceptOrThrow(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda56;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda62;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda62;->acceptOrThrow(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda63;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda63;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda9;-><init>()V
-PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/StringBuilder;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter$1;-><init>(Lcom/android/server/accessibility/AccessibilityInputFilter;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter$2;-><init>(Lcom/android/server/accessibility/AccessibilityInputFilter;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter$2;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;-><init>()V
+PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->inputSourceValid()Z
+PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->shouldProcessScroll()Z
+PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->updateInputSource(I)Z
+PLcom/android/server/accessibility/AccessibilityInputFilter$GenericMotionEventStreamState;-><init>(Lcom/android/server/accessibility/AccessibilityInputFilter;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;->inputSourceValid()Z
+PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;->reset()V
+PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;->shouldProcessKeyEvent(Landroid/view/KeyEvent;)Z
+PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;->updateInputSource(I)Z
+PLcom/android/server/accessibility/AccessibilityInputFilter$TouchScreenEventStreamState;->reset()V
+PLcom/android/server/accessibility/AccessibilityInputFilter$TouchScreenEventStreamState;->shouldProcessMotionEvent(Landroid/view/MotionEvent;)Z
+PLcom/android/server/accessibility/AccessibilityInputFilter;->-$$Nest$manyServiceWantsGenericMotionEvent(Lcom/android/server/accessibility/AccessibilityInputFilter;Landroid/view/MotionEvent;)Z
+PLcom/android/server/accessibility/AccessibilityInputFilter;-><clinit>()V
+PLcom/android/server/accessibility/AccessibilityInputFilter;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->addFirstEventHandler(ILcom/android/server/accessibility/EventStreamTransformation;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->clearEvents(I)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->createMagnificationGestureHandler(Landroid/content/Context;I)Lcom/android/server/accessibility/magnification/MagnificationGestureHandler;
+PLcom/android/server/accessibility/AccessibilityInputFilter;->disableFeatures()V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->disableFeaturesForDisplay(I)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->enableFeatures()V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->enableFeaturesForDisplay(Landroid/view/Display;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+HPLcom/android/server/accessibility/AccessibilityInputFilter;->onInputEvent(Landroid/view/InputEvent;I)V
+HPLcom/android/server/accessibility/AccessibilityInputFilter;->onInputEventInternal(Landroid/view/InputEvent;I)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->onInstalled()V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->onUninstalled()V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->refreshMagnificationMode(Landroid/view/Display;)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->resetAllStreamState()V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->resetStreamStateForDisplay(I)V
+PLcom/android/server/accessibility/AccessibilityInputFilter;->setUserAndEnabledFeatures(II)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;-><init>(I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;->accept$com$android$server$accessibility$AccessibilityManagerService$$ExternalSyntheticLambda26(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;->accept$com$android$server$accessibility$AccessibilityManagerService$$ExternalSyntheticLambda34(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda16;-><init>(I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda22;-><init>(ILcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda24;->onResult(IZ)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda2;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda35;-><init>(I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda35;->accept(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda48;-><init>(ILcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda48;->acceptOrThrow(Ljava/lang/Object;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda50;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;J)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda50;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda56;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda56;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda6;-><init>(I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda6;->accept$com$android$server$accessibility$AccessibilityManagerService$$ExternalSyntheticLambda41(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda6;->accept$com$android$server$accessibility$AccessibilityManagerService$$ExternalSyntheticLambda43(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda6;->accept$com$android$server$accessibility$AccessibilityManagerService$$ExternalSyntheticLambda62(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda7;-><init>(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda8;-><init>(Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ILjava/io/PrintWriter;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$1;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$1;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
-PLcom/android/server/accessibility/AccessibilityManagerService$3;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$4;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$2;-><init>(ILcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Handler;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;->register(Landroid/content/ContentResolver;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/content/Context;Landroid/os/Handler;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->getValidDisplayList()Ljava/util/ArrayList;
-PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->initializeDisplayList()V
+PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;->onChange(ZLandroid/net/Uri;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->isValidDisplay(Landroid/view/Display;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->onDisplayChanged(I)V
-HPLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;ILcom/android/server/accessibility/AccessibilityManagerService$Client-IA;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge$1;->supportsFlagForNotImportantViews(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge;->getAccessibilityFocusNotLocked()Landroid/view/accessibility/AccessibilityNodeInfo;
 PLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;->onStart()V
 PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->bindInput()V
-PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->createImeSession(Landroid/util/ArraySet;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->createImeSession(Landroid/util/ArraySet;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->startInput(Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;Z)V
+PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->unbindInput()V
 PLcom/android/server/accessibility/AccessibilityManagerService$MainHandler;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Looper;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$4Xl_kWd5nUlOJpqnPRLhjur2PxQ(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$FCnKv_Ut84T3aNcEnU4D12D8l6Y(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/RemoteCallbackList;J)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$HPhUjXfCPlcxeEddVlx5oqAs2d4(Lcom/android/server/accessibility/AccessibilityManagerService;JLjava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$IYYIwjVu0bO5FTn9IS3RVPPeDiY(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$JB6TZPFG0N2h7zdKOCgM4OOCpf8(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;Z)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$KFC275e1a0Nf4HzkH5ujj0liXIg(Lcom/android/server/accessibility/AccessibilityManagerService;II)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$Qha0yO4BlErsZ1OeDWa1PxGEaNA(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/util/ArraySet;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$VD7IcTrYlIEbLD7q-dNQxZYFZs4(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$XpL8pm9VEQwLAqYA1AVZJvP4ZkA(Lcom/android/server/accessibility/AccessibilityManagerService;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$_gBIiOvr-Vr0gJkDVFAi3JBURXE(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$c2sb4fePdTUn6QD12AOuX4CLSEw(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$cfUn8_rRT4Qib40MwfhpW9o6DZY(Lcom/android/server/accessibility/AccessibilityManagerService;ILjava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$j68DccWKI_ecJheQGTvw8Cpflic(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$mdjZbluv7Qcd_o_Ype1SGqTxgkY(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$p1awZzkw3tQaXOYBFrrZx5_PAC0(Lcom/android/server/accessibility/AccessibilityManagerService;II)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->$r8$lambda$wYPfPbaBszuUF6sjhczksiy53FI(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$fgetmCurrentUserId(Lcom/android/server/accessibility/AccessibilityManagerService;)I
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$fgetmLock(Lcom/android/server/accessibility/AccessibilityManagerService;)Ljava/lang/Object;
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$fgetmPackageManager(Lcom/android/server/accessibility/AccessibilityManagerService;)Landroid/content/pm/PackageManager;
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$fgetmProxyManager(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/ProxyManager;
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$fgetmTraceManager(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/AccessibilityTraceManager;
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mcomputeRelevantEventTypesLocked(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mgetUserStateLocked(Lcom/android/server/accessibility/AccessibilityManagerService;I)Lcom/android/server/accessibility/AccessibilityUserState;
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$monBootPhase(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$munlockUser(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$ManagerPackageMonitor;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$ManagerPackageMonitor;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService$ManagerPackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
+PLcom/android/server/accessibility/AccessibilityManagerService$ManagerPackageMonitor;->onSomePackagesChanged()V
+PLcom/android/server/accessibility/AccessibilityManagerService$SendWindowStateChangedEventRunnable;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/AccessibilityEvent;)V
+PLcom/android/server/accessibility/AccessibilityManagerService$SendWindowStateChangedEventRunnable;->run()V
 PLcom/android/server/accessibility/AccessibilityManagerService;-><clinit>()V
-HPLcom/android/server/accessibility/AccessibilityManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;-><init>(Landroid/content/Context;)V
 PLcom/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;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
-PLcom/android/server/accessibility/AccessibilityManagerService;->bindInput()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->broadcastToClients(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/function/Consumer;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->changeCurrentUserForTestAutomationIfNeededLocked(I)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->computeRelevantEventTypesLocked(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
-PLcom/android/server/accessibility/AccessibilityManagerService;->createImeSession(Landroid/util/ArraySet;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
+PLcom/android/server/accessibility/AccessibilityManagerService;->computeRelevantEventTypesLocked(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
 PLcom/android/server/accessibility/AccessibilityManagerService;->disableAccessibilityMenuToMigrateIfNeeded()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->dispatchAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->dispatchAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->fallBackMagnificationModeSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;I)Z
-HPLcom/android/server/accessibility/AccessibilityManagerService;->getClientStateLocked(Lcom/android/server/accessibility/AccessibilityUserState;)I
-PLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserIdLocked()I
-HPLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserStateLocked()Lcom/android/server/accessibility/AccessibilityUserState;
-HPLcom/android/server/accessibility/AccessibilityManagerService;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
-HPLcom/android/server/accessibility/AccessibilityManagerService;->getFocusColor()I
-HPLcom/android/server/accessibility/AccessibilityManagerService;->getFocusStrokeWidth()I
+PLcom/android/server/accessibility/AccessibilityManagerService;->getClientStateLocked(Lcom/android/server/accessibility/AccessibilityUserState;)I
+PLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserState()Lcom/android/server/accessibility/AccessibilityUserState;
+PLcom/android/server/accessibility/AccessibilityManagerService;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
+PLcom/android/server/accessibility/AccessibilityManagerService;->getFocusColor()I
+PLcom/android/server/accessibility/AccessibilityManagerService;->getFocusStrokeWidth()I
 PLcom/android/server/accessibility/AccessibilityManagerService;->getInstalledAccessibilityServiceList(I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/accessibility/AccessibilityManagerService;->getInteractionBridge()Lcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge;
+PLcom/android/server/accessibility/AccessibilityManagerService;->getKeyEventDispatcher()Lcom/android/server/accessibility/KeyEventDispatcher;
+PLcom/android/server/accessibility/AccessibilityManagerService;->getLock()Ljava/lang/Object;
 PLcom/android/server/accessibility/AccessibilityManagerService;->getMagnificationConnectionManager()Lcom/android/server/accessibility/magnification/MagnificationConnectionManager;
-HPLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillis()J
-PLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillisLocked(Lcom/android/server/accessibility/AccessibilityUserState;)J
+PLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillis()J
 PLcom/android/server/accessibility/AccessibilityManagerService;->getSystemActionPerformer()Lcom/android/server/accessibility/SystemActionPerformer;
-PLcom/android/server/accessibility/AccessibilityManagerService;->getTraceManager()Lcom/android/server/accessibility/AccessibilityTraceManager;
-PLcom/android/server/accessibility/AccessibilityManagerService;->getUserState(I)Lcom/android/server/accessibility/AccessibilityUserState;
 HPLcom/android/server/accessibility/AccessibilityManagerService;->getUserStateLocked(I)Lcom/android/server/accessibility/AccessibilityUserState;
 PLcom/android/server/accessibility/AccessibilityManagerService;->getValidDisplayList()Ljava/util/ArrayList;
 HPLcom/android/server/accessibility/AccessibilityManagerService;->getWindowTransformationMatrixAndMagnificationSpec(I)Landroid/util/Pair;
 PLcom/android/server/accessibility/AccessibilityManagerService;->init()V
+PLcom/android/server/accessibility/AccessibilityManagerService;->interrupt(I)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->isAccessibilityTargetAllowed(Ljava/lang/String;II)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->isClientInPackageAllowlist(Landroid/accessibilityservice/AccessibilityServiceInfo;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$notifyClientsOfServicesStateChange$18(JLjava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$onPackagesForceStoppedLocked$2(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$sendStateToClients$17(ILjava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateFocusAppearanceDataLocked$31(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateFocusAppearanceDataLocked$32(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateRelevantEventsLocked$12(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateRelevantEventsLocked$13(Lcom/android/server/accessibility/AccessibilityUserState;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->migrateAccessibilityButtonSettingsIfNecessaryLocked(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/lang/String;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityServicesDelayedLocked(Landroid/view/accessibility/AccessibilityEvent;Z)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityServicesDelayedLocked(Landroid/view/accessibility/AccessibilityEvent;Z)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyClientsOfServicesStateChange(Landroid/os/RemoteCallbackList;J)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->notifyRefreshMagnificationModeToInputFilter(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->onBootPhase(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->onClientChangeLocked(Z)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->notifyKeyEvent(Landroid/view/KeyEvent;I)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->onClientChangeLocked(ZZ)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->onMagnificationTransitionEndedLocked(IZ)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->onPackagesForceStoppedLocked([Ljava/lang/String;Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->onUserStateChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->onServiceInfoChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->onTouchInteractionEnd()V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->onUserStateChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;Z)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->parseAccessibilityServiceInfos(I)Ljava/util/List;
-PLcom/android/server/accessibility/AccessibilityManagerService;->parseAccessibilityShortcutInfos(I)Ljava/util/List;
 PLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityButtonTargetComponentLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityButtonTargetsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityShortcutKeySettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityShortcutTargetsLocked(Lcom/android/server/accessibility/AccessibilityUserState;I)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->readAlwaysOnMagnificationLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readAudioDescriptionEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readAutoclickEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->readColonDelimitedSettingToSet(Ljava/lang/String;ILjava/util/function/Function;Ljava/util/Set;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->readColonDelimitedStringToSet(Ljava/lang/String;Ljava/util/function/Function;Ljava/util/Set;Z)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->readComponentNamesFromSettingLocked(Ljava/lang/String;ILjava/util/Set;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->readConfigurationForUserStateLocked(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/List;Ljava/util/List;)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readConfigurationForUserStateLocked(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/List;Ljava/util/List;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->readEnabledAccessibilityServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readHighTextContrastEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readInstalledAccessibilityServiceLocked(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/List;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readInstalledAccessibilityShortcutLocked(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/List;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readMagnificationCapabilitiesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readMagnificationEnabledSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->readMagnificationFollowTypingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readMagnificationModeForDefaultDisplayLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readTouchExplorationEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->readMouseKeysEnabledLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->readTouchExplorationGrantedAccessibilityServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->readUserRecommendedUiTimeoutSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->registerBroadcastReceivers()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->registerUiTestAutomationService(Landroid/os/IBinder;Landroid/accessibilityservice/IAccessibilityServiceClient;Landroid/accessibilityservice/AccessibilityServiceInfo;II)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleBindInput()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleCreateImeSession(Landroid/util/ArraySet;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->removeClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleNotifyClientsOfServicesStateChangeLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleStartInput(Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;Z)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateClientsIfNeededLocked(Lcom/android/server/accessibility/AccessibilityUserState;Z)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateFingerprintGestureHandling(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateInputFilter(Lcom/android/server/accessibility/AccessibilityUserState;)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventForCurrentUserLocked(Landroid/view/accessibility/AccessibilityEvent;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->sendPendingWindowStateChangedEventsForAvailableWindowLocked(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->sendServicesStateChanged(Landroid/os/RemoteCallbackList;J)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToAllClients(II)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToClients(II)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToClients(ILandroid/os/RemoteCallbackList;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->setAccessibilityWindowAttributes(IIILandroid/view/accessibility/AccessibilityWindowAttributes;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->setMagnificationConnection(Landroid/view/accessibility/IMagnificationConnection;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->setNonA11yToolNotificationToMatchSafetyCenter()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->startInput(Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;Z)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->startFlashNotificationSequence(Ljava/lang/String;ILandroid/os/IBinder;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->stopFlashNotificationSequence(Ljava/lang/String;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->switchUser(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->unlockUser(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityButtonTargetsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityShortcutKeyTargetsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateFilterKeyEventsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateFingerprintGestureHandling(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateFocusAppearanceDataLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateInputFilter(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateLegacyCapabilitiesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityShortcutTargetsLocked(Lcom/android/server/accessibility/AccessibilityUserState;I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationCapabilitiesSettingsChangeLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationConnectionIfNeeded(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationModeChangeSettingsForAllDisplaysLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationModeChangeSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updatePerformGesturesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateRecommendedUiTimeoutLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->updateRelevantEventsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateTouchExplorationLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateWindowsForAccessibilityCallbackLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->userHasListeningMagnificationServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;I)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->userHasMagnificationServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->updateShortcutTargetSets(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/Set;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->updateShortcutsForCurrentNavigationMode()V
+PLcom/android/server/accessibility/AccessibilityManagerService;->updateWindowsForAccessibilityCallbackLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilitySecurityPolicy$$ExternalSyntheticOutline0;->m(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;-><clinit>()V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;-><init>(Lcom/android/server/accessibility/PolicyWarningUIController;Landroid/content/Context;Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;Landroid/content/pm/PackageManagerInternal;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canDispatchAccessibilityEventLocked(ILandroid/view/accessibility/AccessibilityEvent;)Z
+PLcom/android/server/accessibility/AccessibilitySecurityPolicy;-><init>(Lcom/android/server/accessibility/PolicyWarningUIController;Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/content/pm/PackageManagerInternal;)V
+PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canControlMagnification(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canGetAccessibilityNodeInfoLocked(ILcom/android/server/accessibility/AbstractAccessibilityServiceConnection;I)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canRegisterService(Landroid/content/pm/ServiceInfo;)Z
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canRetrieveWindowContentLocked(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canRetrieveWindowsLocked(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->checkAccessibilityAccess(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->computeValidReportedPackages(Ljava/lang/String;I)[Ljava/lang/String;
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->hasPermission(Ljava/lang/String;)Z
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->checkAccessibilityAccess(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z+]Landroid/accessibilityservice/AccessibilityServiceInfo;Landroid/accessibilityservice/AccessibilityServiceInfo;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;Lcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge$1;,Lcom/android/server/accessibility/AccessibilityServiceConnection;
+PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->computeValidReportedPackages(ILjava/lang/String;)[Ljava/lang/String;
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isCallerInteractingAcrossUsers(I)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isRetrievalAllowingWindowLocked(II)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isValidPackageForUid(Ljava/lang/String;I)Z
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isRetrievalAllowingWindowLocked(II)Z
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->onSwitchUserLocked(ILjava/util/Set;)V
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveCallingUserIdEnforcingPermissionsLocked(I)I
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveProfileParentLocked(I)I
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveProfileParentLocked(I)I
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveValidReportedPackageLocked(Ljava/lang/CharSequence;III)Ljava/lang/String;
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAccessibilityWindowManager(Lcom/android/server/accessibility/AccessibilityWindowManager;)V
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setSendingNonA11yToolNotificationLocked(Z)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->updateEventSourceLocked(Landroid/view/accessibility/AccessibilityEvent;)V
-PLcom/android/server/accessibility/AccessibilityTraceManager;-><clinit>()V
+PLcom/android/server/accessibility/AccessibilityServiceConnection$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)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/AccessibilityManagerService;Landroid/accessibilityservice/AccessibilityTrace;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;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
+HPLcom/android/server/accessibility/AccessibilityServiceConnection;->hasRightsToCurrentUserLocked()Z
+PLcom/android/server/accessibility/AccessibilityServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/accessibility/AccessibilityServiceConnection;->resetLocked()V
+PLcom/android/server/accessibility/AccessibilityServiceConnection;->setFocusAppearance(II)V
+PLcom/android/server/accessibility/AccessibilityServiceConnection;->unbindLocked()V
 PLcom/android/server/accessibility/AccessibilityTraceManager;-><init>(Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal;Lcom/android/server/accessibility/AccessibilityManagerService;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/AccessibilityTraceManager;->getInstance(Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal;Lcom/android/server/accessibility/AccessibilityManagerService;Ljava/lang/Object;)Lcom/android/server/accessibility/AccessibilityTraceManager;
-HPLcom/android/server/accessibility/AccessibilityTraceManager;->getTraceStateForAccessibilityManagerClientState()I
+PLcom/android/server/accessibility/AccessibilityTraceManager;->getTraceStateForAccessibilityManagerClientState()I
 HPLcom/android/server/accessibility/AccessibilityTraceManager;->isA11yTracingEnabledForTypes(J)Z
-PLcom/android/server/accessibility/AccessibilityUserState;-><clinit>()V
-HPLcom/android/server/accessibility/AccessibilityUserState;-><init>(ILandroid/content/Context;Lcom/android/server/accessibility/AccessibilityUserState$ServiceInfoChangeListener;)V
-PLcom/android/server/accessibility/AccessibilityUserState;->getBindInstantServiceAllowedLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->getBindingServicesLocked()Ljava/util/Set;
-PLcom/android/server/accessibility/AccessibilityUserState;->getClientStateLocked(ZI)I
-PLcom/android/server/accessibility/AccessibilityUserState;->getCrashedServicesLocked()Ljava/util/Set;
-PLcom/android/server/accessibility/AccessibilityUserState;->getFocusColorLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getFocusStrokeWidthLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getInteractiveUiTimeoutLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getLastSentClientStateLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getMagnificationCapabilitiesLocked()I
+PLcom/android/server/accessibility/AccessibilityUserState$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/AccessibilityUserState;I)V
+PLcom/android/server/accessibility/AccessibilityUserState$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityUserState$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/AccessibilityUserState;-><init>(ILandroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/AccessibilityUserState;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/accessibility/AccessibilityUserState;->dumpShortcutTargets(ILjava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/accessibility/AccessibilityUserState;->getA11yFeatureToTileService()Ljava/util/Map;
 PLcom/android/server/accessibility/AccessibilityUserState;->getMagnificationModeLocked(I)I
-PLcom/android/server/accessibility/AccessibilityUserState;->getNonInteractiveUiTimeoutLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getShortcutTargetsLocked(I)Landroid/util/ArraySet;
-PLcom/android/server/accessibility/AccessibilityUserState;->getTargetAssignedToAccessibilityButton()Ljava/lang/String;
-PLcom/android/server/accessibility/AccessibilityUserState;->getUserInteractiveUiTimeoutLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getUserNonInteractiveUiTimeoutLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->isAlwaysOnMagnificationEnabled()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isAudioDescriptionByDefaultEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isAutoclickEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isFilterKeyEventsEnabledLocked()Z
+HPLcom/android/server/accessibility/AccessibilityUserState;->getShortcutTargetsLocked(I)Landroid/util/ArraySet;+]Ljava/util/HashMap;Ljava/util/HashMap;
 PLcom/android/server/accessibility/AccessibilityUserState;->isHandlingAccessibilityEventsLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isMagnificationFollowTypingEnabled()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isMagnificationSingleFingerTripleTapEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isMagnificationTwoFingerTripleTapEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isPerformGesturesEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isSendMotionEventsEnabled()Z
-HPLcom/android/server/accessibility/AccessibilityUserState;->isShortcutMagnificationEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isTextHighContrastEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isTouchExplorationEnabledLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isValidMagnificationModeLocked(I)Z
+PLcom/android/server/accessibility/AccessibilityUserState;->isShortcutMagnificationEnabledLocked()Z
 PLcom/android/server/accessibility/AccessibilityUserState;->onSwitchToAnotherUserLocked()V
-PLcom/android/server/accessibility/AccessibilityUserState;->resetServiceDetectsGestures()V
-PLcom/android/server/accessibility/AccessibilityUserState;->setAccessibilityFocusOnlyInActiveWindow(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setFilterKeyEventsEnabledLocked(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setInteractiveUiTimeoutLocked(I)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setLastSentClientStateLocked(I)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setMagnificationCapabilitiesLocked(I)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setMagnificationModeLocked(II)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setMultiFingerGesturesLocked(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setNonInteractiveUiTimeoutLocked(I)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setPerformGesturesEnabledLocked(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setSendMotionEventsEnabled(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setServiceHandlesDoubleTapLocked(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setTwoFingerPassthroughLocked(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->unbindAllServicesLocked()V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->-$$Nest$fgetmDisplayId(Lcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->-$$Nest$fgetmIsProxy(Lcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;)Z
+PLcom/android/server/accessibility/AccessibilityUserState;->removeDisabledServicesFromTemporaryStatesLocked()V
+PLcom/android/server/accessibility/AccessibilityUserState;->removeServiceLocked(Lcom/android/server/accessibility/AccessibilityServiceConnection;)V
+PLcom/android/server/accessibility/AccessibilityUserState;->updateShortcutTargetsLocked(ILjava/util/Set;)Z
+PLcom/android/server/accessibility/AccessibilityWindowManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;-><init>(Lcom/android/server/accessibility/AccessibilityWindowManager;I)V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->cacheWindows(Ljava/util/List;)V
-HPLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->computePartialInteractiveRegionForWindowLocked(IZLandroid/graphics/Region;)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->findA11yWindowInfoByIdLocked(I)Landroid/view/accessibility/AccessibilityWindowInfo;
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->findWindowInfoByIdLocked(I)Landroid/view/WindowInfo;
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->getTypeForWindowManagerWindowType(I)I
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->getWindowListLocked()Ljava/util/List;
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->isTrackingWindowsLocked()Z
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->onWindowsForAccessibilityChanged(ZILandroid/os/IBinder;Ljava/util/List;)V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->populateReportedWindowLocked(ILandroid/view/WindowInfo;Landroid/util/SparseArray;)Landroid/view/accessibility/AccessibilityWindowInfo;
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->sendEventsForChangedWindowsLocked(Ljava/util/List;Landroid/util/SparseArray;)V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->shouldUpdateWindowsLocked(ZLjava/util/List;)Z
+HPLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->createWindowInfoListLocked(Landroid/graphics/Point;Ljava/util/List;)Ljava/util/List;
+PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->getWatchOutsideTouchWindowIdLocked(I)Ljava/util/List;
+PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->setAccessibilityFocusedWindowLocked(I)Z
+PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->shouldUpdateWindowsLocked(Ljava/util/List;)Z
 PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->startTrackingWindowsLocked()V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->updateWindowWithWindowAttributes(Landroid/view/WindowInfo;Landroid/view/accessibility/AccessibilityWindowAttributes;)V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->updateWindowsByWindowAttributesLocked(Ljava/util/List;)V
+PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->stopTrackingWindowsLocked()V
 HPLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->updateWindowsLocked(ILjava/util/List;)V
-PLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->windowChangedNoLayer(Landroid/view/WindowInfo;Landroid/view/WindowInfo;)Z
 PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;-><init>(Lcom/android/server/accessibility/AccessibilityWindowManager;ILandroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;II)V
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getPackageName()Ljava/lang/String;
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getRemote()Landroid/view/accessibility/IAccessibilityInteractionConnection;
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getUid()I
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->linkToDeath()V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmAccessibilityEventSender(Lcom/android/server/accessibility/AccessibilityWindowManager;)Lcom/android/server/accessibility/AccessibilityWindowManager$AccessibilityEventSender;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmAccessibilityFocusedDisplayId(Lcom/android/server/accessibility/AccessibilityWindowManager;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmAccessibilityFocusedWindowId(Lcom/android/server/accessibility/AccessibilityWindowManager;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmAccessibilityUserManager(Lcom/android/server/accessibility/AccessibilityWindowManager;)Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmActiveWindowId(Lcom/android/server/accessibility/AccessibilityWindowManager;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmLock(Lcom/android/server/accessibility/AccessibilityWindowManager;)Ljava/lang/Object;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmTopFocusedDisplayId(Lcom/android/server/accessibility/AccessibilityWindowManager;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmTopFocusedWindowToken(Lcom/android/server/accessibility/AccessibilityWindowManager;)Landroid/os/IBinder;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmTouchInteractionInProgress(Lcom/android/server/accessibility/AccessibilityWindowManager;)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmWindowAttributes(Lcom/android/server/accessibility/AccessibilityWindowManager;)Landroid/util/SparseArray;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fgetmWindowManagerInternal(Lcom/android/server/accessibility/AccessibilityWindowManager;)Lcom/android/server/wm/WindowManagerInternal;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fputmActiveWindowId(Lcom/android/server/accessibility/AccessibilityWindowManager;I)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fputmLastNonProxyTopFocusedDisplayId(Lcom/android/server/accessibility/AccessibilityWindowManager;I)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fputmTopFocusedDisplayId(Lcom/android/server/accessibility/AccessibilityWindowManager;I)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fputmTopFocusedWindowId(Lcom/android/server/accessibility/AccessibilityWindowManager;I)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$fputmTopFocusedWindowToken(Lcom/android/server/accessibility/AccessibilityWindowManager;Landroid/os/IBinder;)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$misProxyed(Lcom/android/server/accessibility/AccessibilityWindowManager;I)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->-$$Nest$mtraceWMEnabled(Lcom/android/server/accessibility/AccessibilityWindowManager;)Z
-PLcom/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;Lcom/android/server/accessibility/AccessibilityTraceManager;)V
-HPLcom/android/server/accessibility/AccessibilityWindowManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->computePartialInteractiveRegionForWindowLocked(ILandroid/graphics/Region;)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->findA11yWindowInfoByIdLocked(I)Landroid/view/accessibility/AccessibilityWindowInfo;
+PLcom/android/server/accessibility/AccessibilityWindowManager;-><init>(Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityTraceManager;)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->clearAccessibilityFocusLocked(I)V
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->computePartialInteractiveRegionForWindowLocked(ILandroid/graphics/Region;)Z
+PLcom/android/server/accessibility/AccessibilityWindowManager;->disassociateLocked(Landroid/os/IBinder;)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->findA11yWindowInfoByIdLocked(I)Landroid/view/accessibility/AccessibilityWindowInfo;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->findFocusedWindowId(I)I
 PLcom/android/server/accessibility/AccessibilityWindowManager;->findWindowIdLocked(ILandroid/os/IBinder;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->findWindowInfoByIdLocked(I)Landroid/view/WindowInfo;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->getActiveWindowId(I)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->getConnectionLocked(II)Lcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayIdByUserIdAndWindowIdLocked(II)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayListLocked(I)Ljava/util/ArrayList;
-HPLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayWindowObserverByWindowIdLocked(I)Lcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;
-HPLcom/android/server/accessibility/AccessibilityWindowManager;->getHostTokenLocked(Landroid/os/IBinder;)Landroid/os/IBinder;
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->getConnectionLocked(II)Lcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;
+PLcom/android/server/accessibility/AccessibilityWindowManager;->getDefaultFocus(I)I
+PLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayIdByUserIdAndWindowId(II)I
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->getDisplayWindowObserverByWindowIdLocked(I)Lcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->getInteractionConnectionsForUserLocked(I)Landroid/util/SparseArray;
-HPLcom/android/server/accessibility/AccessibilityWindowManager;->getLeashTokenLocked(I)Landroid/os/IBinder;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->getPictureInPictureActionReplacingConnection()Lcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;
-HPLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowIdLocked(Landroid/os/IBinder;)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowListLocked(I)Ljava/util/List;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowTokenForUserAndWindowIdLocked(II)Landroid/os/IBinder;
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowTokenForUserAndWindowIdLocked(II)Landroid/os/IBinder;
 PLcom/android/server/accessibility/AccessibilityWindowManager;->getWindowTokensForUserLocked(I)Landroid/util/SparseArray;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->isEmbeddedHierarchyWindowsLocked(I)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->isProxyed(I)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->isTrackingWindowsLocked()Z
 PLcom/android/server/accessibility/AccessibilityWindowManager;->isTrackingWindowsLocked(I)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->isValidUserForInteractionConnectionsLocked(I)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->isValidUserForWindowTokensLocked(I)Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->registerIdLocked(Landroid/os/IBinder;I)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->notifyOutsideTouch(II)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->onAccessibilityInteractionConnectionRemovedLocked(ILandroid/os/IBinder;)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->removeAccessibilityInteractionConnectionInternalLocked(Landroid/os/IBinder;Landroid/util/SparseArray;Landroid/util/SparseArray;)I
 PLcom/android/server/accessibility/AccessibilityWindowManager;->resetHasProxyIfNeededLocked()V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->resolveParentWindowIdLocked(I)I
-PLcom/android/server/accessibility/AccessibilityWindowManager;->resolveTopParentTokenLocked(Landroid/os/IBinder;)Landroid/os/IBinder;
-PLcom/android/server/accessibility/AccessibilityWindowManager;->setAccessibilityWindowAttributes(IIILandroid/view/accessibility/AccessibilityWindowAttributes;)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->startTrackingWindows(IZ)V
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->resolveParentWindowIdLocked(I)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/accessibility/AccessibilityWindowManager;->resolveTopParentTokenLocked(Landroid/os/IBinder;)Landroid/os/IBinder;
+PLcom/android/server/accessibility/AccessibilityWindowManager;->setAccessibilityFocusedWindowLocked(I)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->setActiveWindowLocked(I)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->stopTrackingWindows(I)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->traceWMEnabled()Z
-PLcom/android/server/accessibility/AccessibilityWindowManager;->updateActiveAndAccessibilityFocusedWindowLocked(IIJII)V
+PLcom/android/server/accessibility/AccessibilityWindowManager;->updateActiveAndAccessibilityFocusedWindowLocked(IIIIJ)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->windowIdBelongsToDisplayType(II)Z
+PLcom/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/BrailleDisplayConnection$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/accessibility/CaptioningManagerImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accessibility/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/accessibility/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/accessibility/FeatureFlagsImpl;->addWindowTokenWithoutLock()Z
-PLcom/android/server/accessibility/FeatureFlagsImpl;->deprecatePackageListObserver()Z
-PLcom/android/server/accessibility/FeatureFlagsImpl;->disableContinuousShortcutOnForceStop()Z
-PLcom/android/server/accessibility/FeatureFlagsImpl;->enableMagnificationMultipleFingerMultipleTapGesture()Z
-PLcom/android/server/accessibility/FeatureFlagsImpl;->load_overrides_accessibility()V
-PLcom/android/server/accessibility/FeatureFlagsImpl;->scanPackagesWithoutLock()Z
+PLcom/android/server/accessibility/EventStreamTransformation;->clearEvents(I)V
+PLcom/android/server/accessibility/EventStreamTransformation;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+PLcom/android/server/accessibility/EventStreamTransformation;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/FeatureFlagsImpl;->init()V
+PLcom/android/server/accessibility/FingerprintGestureDispatcher$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/StringBuilder;)V
 PLcom/android/server/accessibility/Flags;-><clinit>()V
-PLcom/android/server/accessibility/Flags;->addWindowTokenWithoutLock()Z
-PLcom/android/server/accessibility/Flags;->deprecatePackageListObserver()Z
-PLcom/android/server/accessibility/Flags;->disableContinuousShortcutOnForceStop()Z
+PLcom/android/server/accessibility/Flags;->enableColorCorrectionSaturation()Z
 PLcom/android/server/accessibility/Flags;->enableMagnificationMultipleFingerMultipleTapGesture()Z
-PLcom/android/server/accessibility/Flags;->scanPackagesWithoutLock()Z
+PLcom/android/server/accessibility/Flags;->enableMagnificationOneFingerPanningGesture()Z
+PLcom/android/server/accessibility/Flags;->fullscreenFlingGesture()Z
+PLcom/android/server/accessibility/Flags;->handleMultiDeviceInput()Z
+PLcom/android/server/accessibility/Flags;->packageMonitorDedicatedThread()Z
+PLcom/android/server/accessibility/Flags;->resetInputDispatcherBeforeFirstTouchExploration()Z
+PLcom/android/server/accessibility/Flags;->sendA11yEventsBasedOnState()Z
+PLcom/android/server/accessibility/FlashNotificationsController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;Ljava/lang/String;)V
 PLcom/android/server/accessibility/FlashNotificationsController$1;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;)V
 PLcom/android/server/accessibility/FlashNotificationsController$2;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;)V
+PLcom/android/server/accessibility/FlashNotificationsController$3$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 PLcom/android/server/accessibility/FlashNotificationsController$3;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;)V
+PLcom/android/server/accessibility/FlashNotificationsController$3;->onPlaybackConfigChanged(Ljava/util/List;)V
 PLcom/android/server/accessibility/FlashNotificationsController$4;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;)V
-PLcom/android/server/accessibility/FlashNotificationsController$4;->onDisplayChanged(I)V
+HPLcom/android/server/accessibility/FlashNotificationsController$4;->onDisplayChanged(I)V
 PLcom/android/server/accessibility/FlashNotificationsController$FlashBroadcastReceiver;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;)V
 PLcom/android/server/accessibility/FlashNotificationsController$FlashBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/accessibility/FlashNotificationsController$FlashContentObserver;-><init>(Lcom/android/server/accessibility/FlashNotificationsController;Landroid/os/Handler;)V
-PLcom/android/server/accessibility/FlashNotificationsController$FlashContentObserver;->register(Landroid/content/ContentResolver;)V
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fgetmAudioPlaybackCallback(Lcom/android/server/accessibility/FlashNotificationsController;)Landroid/media/AudioManager$AudioPlaybackCallback;
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fgetmCallbackHandler(Lcom/android/server/accessibility/FlashNotificationsController;)Landroid/os/Handler;
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fgetmCameraManager(Lcom/android/server/accessibility/FlashNotificationsController;)Landroid/hardware/camera2/CameraManager;
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fgetmContext(Lcom/android/server/accessibility/FlashNotificationsController;)Landroid/content/Context;
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fgetmDisplayManager(Lcom/android/server/accessibility/FlashNotificationsController;)Landroid/hardware/display/DisplayManager;
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fgetmIsCameraFlashNotificationEnabled(Lcom/android/server/accessibility/FlashNotificationsController;)Z
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fputmCameraManager(Lcom/android/server/accessibility/FlashNotificationsController;Landroid/hardware/camera2/CameraManager;)V
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fputmDisplayState(Lcom/android/server/accessibility/FlashNotificationsController;I)V
-PLcom/android/server/accessibility/FlashNotificationsController;->-$$Nest$fputmIsCameraFlashNotificationEnabled(Lcom/android/server/accessibility/FlashNotificationsController;Z)V
+PLcom/android/server/accessibility/FlashNotificationsController$FlashNotification;-><init>(IILjava/lang/String;)V
+PLcom/android/server/accessibility/FlashNotificationsController$FlashNotification;-><init>(Ljava/lang/String;IILandroid/os/IBinder;Lcom/android/server/accessibility/FlashNotificationsController$$ExternalSyntheticLambda0;)V
 PLcom/android/server/accessibility/FlashNotificationsController;-><init>(Landroid/content/Context;)V
 PLcom/android/server/accessibility/FlashNotificationsController;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)V
-PLcom/android/server/accessibility/FlashNotificationsController;->getStartedHandler(Ljava/lang/String;)Landroid/os/Handler;
-PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/PolicyWarningUIController;)V
+PLcom/android/server/accessibility/FlashNotificationsController;->getScreenFlashColorPreference$1()I
+PLcom/android/server/accessibility/FlashNotificationsController;->removeFlashNotificationLocked(Ljava/lang/String;)Lcom/android/server/accessibility/FlashNotificationsController$FlashNotification;
+PLcom/android/server/accessibility/FlashNotificationsController;->requestStartFlashNotification(Lcom/android/server/accessibility/FlashNotificationsController$FlashNotification;)V
+PLcom/android/server/accessibility/FlashNotificationsController;->startFlashNotification(Lcom/android/server/accessibility/FlashNotificationsController$FlashNotification;)V
+PLcom/android/server/accessibility/FlashNotificationsController;->stopFlashNotification(Ljava/lang/String;)V
+PLcom/android/server/accessibility/KeyEventDispatcher$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/StringBuilder;)V
+PLcom/android/server/accessibility/KeyEventDispatcher;-><init>(Landroid/os/Handler;Ljava/lang/Object;Landroid/os/PowerManager;)V
+PLcom/android/server/accessibility/KeyEventDispatcher;->notifyKeyEventLocked(Landroid/view/KeyEvent;ILjava/util/List;)Z
+PLcom/android/server/accessibility/KeyEventDispatcher;->removeReferenceToPendingEventLocked(Lcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;)Z
+PLcom/android/server/accessibility/KeyEventDispatcher;->setOnKeyEventResult(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;ZI)V
+PLcom/android/server/accessibility/KeyboardInterceptor;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/policy/WindowManagerPolicy;)V
+PLcom/android/server/accessibility/KeyboardInterceptor;->onKeyEvent(Landroid/view/KeyEvent;I)V
+PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/accessibility/PolicyWarningUIController;)V
-PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/PolicyWarningUIController$NotificationController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/PolicyWarningUIController$NotificationController;)V
+PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/accessibility/PolicyWarningUIController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/PolicyWarningUIController$NotificationController;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accessibility/PolicyWarningUIController$NotificationController;->cancelSentNotifications()V
-PLcom/android/server/accessibility/PolicyWarningUIController$NotificationController;->onSwitchUser(I)V
-PLcom/android/server/accessibility/PolicyWarningUIController$NotificationController;->readNotifiedServiceList(I)Landroid/util/ArraySet;
-PLcom/android/server/accessibility/PolicyWarningUIController$NotificationController;->setSendingNotification(Z)V
-PLcom/android/server/accessibility/PolicyWarningUIController;->$r8$lambda$FLmotYt3XsdyYeosV5FvzhGVtLY(Lcom/android/server/accessibility/PolicyWarningUIController;Z)V
-PLcom/android/server/accessibility/PolicyWarningUIController;->$r8$lambda$Gr6qzlAd0Ku36cCnv-sLqB_nbeM(Lcom/android/server/accessibility/PolicyWarningUIController;ILjava/util/Set;)V
 PLcom/android/server/accessibility/PolicyWarningUIController;-><clinit>()V
-PLcom/android/server/accessibility/PolicyWarningUIController;-><init>(Landroid/os/Handler;Landroid/content/Context;Lcom/android/server/accessibility/PolicyWarningUIController$NotificationController;)V
-PLcom/android/server/accessibility/PolicyWarningUIController;->enableSendingNonA11yToolNotification(Z)V
-PLcom/android/server/accessibility/PolicyWarningUIController;->enableSendingNonA11yToolNotificationInternal(Z)V
-PLcom/android/server/accessibility/PolicyWarningUIController;->onSwitchUser(ILjava/util/Set;)V
-PLcom/android/server/accessibility/PolicyWarningUIController;->onSwitchUserInternal(ILjava/util/Set;)V
+PLcom/android/server/accessibility/PolicyWarningUIController;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;Landroid/content/Context;Lcom/android/server/accessibility/PolicyWarningUIController$NotificationController;)V
 PLcom/android/server/accessibility/ProxyManager;-><clinit>()V
-PLcom/android/server/accessibility/ProxyManager;-><init>(Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilityWindowManager;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/accessibility/UiAutomationManager;Lcom/android/server/accessibility/ProxyManager$SystemSupport;)V
-PLcom/android/server/accessibility/ProxyManager;->canRetrieveInteractiveWindowsLocked()Z
-HPLcom/android/server/accessibility/ProxyManager;->getFirstDeviceIdForUidLocked(I)I
-HPLcom/android/server/accessibility/ProxyManager;->getLocalVdm()Lcom/android/server/companion/virtual/VirtualDeviceManagerInternal;
+PLcom/android/server/accessibility/ProxyManager;-><init>(Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilityWindowManager;Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;Lcom/android/server/accessibility/UiAutomationManager;Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/ProxyManager;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/accessibility/ProxyManager;->getFirstDeviceIdForUidLocked(I)I
+PLcom/android/server/accessibility/ProxyManager;->getLocalVdm()Lcom/android/server/companion/virtual/VirtualDeviceManagerInternal;
 PLcom/android/server/accessibility/ProxyManager;->isProxyedDeviceId(I)Z
-PLcom/android/server/accessibility/ProxyManager;->isProxyedDisplay(I)Z
-PLcom/android/server/accessibility/ProxyManager;->updateTimeoutsIfNeeded(II)V
-PLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Ljava/util/function/Supplier;Lcom/android/server/accessibility/SystemActionPerformer$SystemActionsChangedListener;Lcom/android/server/accessibility/SystemActionPerformer$DisplayUpdateCallBack;)V
+HPLcom/android/server/accessibility/ProxyManager;->isProxyedDisplay(I)Z
+PLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Ljava/util/function/Supplier;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityManagerService;)V
 PLcom/android/server/accessibility/UiAutomationManager$1;-><init>(Lcom/android/server/accessibility/UiAutomationManager;)V
-PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/UiAutomationManager$UiAutomationService;)V
-PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->$r8$lambda$EBbVjiQaLueOGoICPHv_0YkCzl4(Lcom/android/server/accessibility/UiAutomationManager$UiAutomationService;)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;Landroid/accessibilityservice/AccessibilityTrace;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
-PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->lambda$connectServiceUnknownThread$0()V
-PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->supportsFlagForNotImportantViews(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
-PLcom/android/server/accessibility/UiAutomationManager;->-$$Nest$fgetmUiAutomationService(Lcom/android/server/accessibility/UiAutomationManager;)Lcom/android/server/accessibility/UiAutomationManager$UiAutomationService;
-PLcom/android/server/accessibility/UiAutomationManager;->-$$Nest$sfgetCOMPONENT_NAME()Landroid/content/ComponentName;
 PLcom/android/server/accessibility/UiAutomationManager;-><clinit>()V
 PLcom/android/server/accessibility/UiAutomationManager;-><init>(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/UiAutomationManager;->canIntrospect()Z
-PLcom/android/server/accessibility/UiAutomationManager;->canRetrieveInteractiveWindowsLocked()Z
-PLcom/android/server/accessibility/UiAutomationManager;->getRelevantEventTypes()I
-PLcom/android/server/accessibility/UiAutomationManager;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
-PLcom/android/server/accessibility/UiAutomationManager;->isTouchExplorationEnabledLocked()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;Landroid/accessibilityservice/AccessibilityTrace;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
 PLcom/android/server/accessibility/UiAutomationManager;->suppressingAccessibilityServicesLocked()Z
-PLcom/android/server/accessibility/UiAutomationManager;->useAccessibility()Z
-PLcom/android/server/accessibility/magnification/AlwaysOnMagnificationFeatureFlag;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accessibility/magnification/AlwaysOnMagnificationFeatureFlag;->addOnChangedListener(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Landroid/provider/DeviceConfig$OnPropertiesChangedListener;
+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
+PLcom/android/server/accessibility/gestures/EventDispatcher;->computeInjectionAction(II)I
+PLcom/android/server/accessibility/gestures/EventDispatcher;->sendAccessibilityEvent(I)V
+HPLcom/android/server/accessibility/gestures/EventDispatcher;->sendMotionEvent(IIILandroid/view/MotionEvent;Landroid/view/MotionEvent;)V
+HPLcom/android/server/accessibility/gestures/GestureManifold;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/gestures/TouchExplorer;Lcom/android/server/accessibility/gestures/TouchState;)V
+HPLcom/android/server/accessibility/gestures/GestureManifold;->clear()V
+PLcom/android/server/accessibility/gestures/GestureManifold;->onStateChanged(IIILandroid/view/MotionEvent;Landroid/view/MotionEvent;)V
+PLcom/android/server/accessibility/gestures/GestureMatcher$DelayedTransition;-><init>(Lcom/android/server/accessibility/gestures/GestureMatcher;)V
+HPLcom/android/server/accessibility/gestures/GestureMatcher$DelayedTransition;->cancel()V
+PLcom/android/server/accessibility/gestures/GestureMatcher$DelayedTransition;->post(IJLandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/GestureMatcher$DelayedTransition;->recycleEvent()V
+PLcom/android/server/accessibility/gestures/GestureMatcher$DelayedTransition;->run()V
+PLcom/android/server/accessibility/gestures/GestureMatcher;-><init>(ILandroid/os/Handler;Lcom/android/server/accessibility/gestures/GestureManifold;)V
+PLcom/android/server/accessibility/gestures/GestureMatcher;->clear()V
+PLcom/android/server/accessibility/gestures/GestureMatcher;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/GestureMatcher;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/GestureMatcher;->setState(ILandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/GestureUtils;->getActionIndex(Landroid/view/MotionEvent;)I
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;-><init>(Landroid/content/Context;IIILcom/android/server/accessibility/gestures/GestureManifold;)V
+HPLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->clear()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->findNearestPoint(Landroid/view/MotionEvent;FZ)Landroid/graphics/PointF;
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->initBaseLocation(Landroid/view/MotionEvent;)Landroid/graphics/PointF;
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->onMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTap;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTapAndHold;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerMultiTapAndHold;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerSwipe;-><init>(Landroid/content/Context;IIILcom/android/server/accessibility/gestures/GestureManifold;)V
+HPLcom/android/server/accessibility/gestures/MultiFingerSwipe;->clear()V
+PLcom/android/server/accessibility/gestures/MultiFingerSwipe;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/MultiFingerSwipe;->onMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerSwipe;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiFingerSwipe;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/MultiTap;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureManifold;)V
+PLcom/android/server/accessibility/gestures/MultiTap;-><init>(Landroid/content/Context;ILcom/android/server/accessibility/gestures/GestureManifold;)V
+PLcom/android/server/accessibility/gestures/MultiTap;->clear()V
+PLcom/android/server/accessibility/gestures/MultiTap;->isInsideSlop(ILandroid/view/MotionEvent;)Z
+PLcom/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;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/gestures/GestureManifold;)V
+PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->clear()V
+PLcom/android/server/accessibility/gestures/SecondFingerMultiTap;->isSecondFingerInsideSlop(ILandroid/view/MotionEvent;)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/GestureManifold;)V
+PLcom/android/server/accessibility/gestures/Swipe;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureManifold;)V
+HPLcom/android/server/accessibility/gestures/Swipe;-><init>(Landroid/content/Context;[IILcom/android/server/accessibility/gestures/GestureManifold;)V
+PLcom/android/server/accessibility/gestures/Swipe;->clear()V
+PLcom/android/server/accessibility/gestures/Swipe;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/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
+PLcom/android/server/accessibility/gestures/Swipe;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/Swipe;->toDirection(FF)I
+PLcom/android/server/accessibility/gestures/TouchExplorer$ExitGestureDetectionModeDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;II)V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;->cancel()V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;->forceSendAndRemove()V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;->isPending()Z
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->addEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->cancel()V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->clear()V
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->isPending()Z
+PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->run()V
+PLcom/android/server/accessibility/gestures/TouchExplorer;-><clinit>()V
+PLcom/android/server/accessibility/gestures/TouchExplorer;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/gestures/GestureManifold;Landroid/os/Handler;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->checkForMalformedEvent(Landroid/view/MotionEvent;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->clear(ILandroid/view/MotionEvent;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->clearEvents(I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->computeDownEventForDrag(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
+PLcom/android/server/accessibility/gestures/TouchExplorer;->computeDraggingPointerIdIfNeeded(Landroid/view/MotionEvent;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionMoveStateTouchInteracting(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionPointerDown(ILandroid/view/MotionEvent;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/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;->onDoubleTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/accessibility/gestures/TouchExplorer;->sendHoverExitAndTouchExplorationGestureEndIfNeeded(I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->setNext(Lcom/android/server/accessibility/EventStreamTransformation;)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->setServiceDetectsGestures(Z)V
+PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;-><init>(Lcom/android/server/accessibility/gestures/TouchState;)V
+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
+PLcom/android/server/accessibility/gestures/TouchState;-><init>(ILcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/gestures/TouchState;->clear()V
+PLcom/android/server/accessibility/gestures/TouchState;->isInjectedPointerDown(I)Z
+PLcom/android/server/accessibility/gestures/TouchState;->isTouchExploring()Z
+PLcom/android/server/accessibility/gestures/TouchState;->isTouchInteracting()Z
+PLcom/android/server/accessibility/gestures/TouchState;->setState(I)V
 PLcom/android/server/accessibility/magnification/AlwaysOnMagnificationFeatureFlag;->getDefaultValue()Z
 PLcom/android/server/accessibility/magnification/AlwaysOnMagnificationFeatureFlag;->getFeatureName()Ljava/lang/String;
 PLcom/android/server/accessibility/magnification/AlwaysOnMagnificationFeatureFlag;->getNamespace()Ljava/lang/String;
-PLcom/android/server/accessibility/magnification/AlwaysOnMagnificationFeatureFlag;->isFeatureFlagEnabled()Z
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;Lcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda2;-><init>(Landroid/content/Context;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda5;-><init>(IZ)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/input/InputManagerService$LocalService;Landroid/os/Handler;J)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification$$ExternalSyntheticLambda2;-><init>(I)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;I)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;->getCenterX()F
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;->getCenterY()F
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;->refreshThumbnail()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;->register()Z
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;->reset(Landroid/view/accessibility/MagnificationAnimationCallback;)Z
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$DisplayMagnification;->unregister(Z)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$ScreenStateObserver;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$SpecAnimationBridge$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationController$SpecAnimationBridge;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$SpecAnimationBridge;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;Ljava/lang/Object;ILjava/util/function/Supplier;Ljava/util/function/Supplier;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$SpecAnimationBridge;->setEnabled(Z)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityTraceManager;Ljava/lang/Object;Lcom/android/server/accessibility/magnification/MagnificationController;Lcom/android/server/accessibility/magnification/MagnificationScaleProvider;Ljava/util/concurrent/Executor;Lcom/android/server/accessibility/magnification/MagnificationController$$ExternalSyntheticLambda0;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;Ljava/lang/Object;Lcom/android/server/accessibility/magnification/FullScreenMagnificationController$MagnificationInfoChangedCallback;Lcom/android/server/accessibility/magnification/MagnificationScaleProvider;Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->getCenterX(I)F
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->getCenterY(I)F
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->getIdOfLastServiceToMagnify(I)I
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->getMagnificationRegion(ILandroid/graphics/Region;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->getScale(I)F
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->isActivated(I)Z
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->isRegistered(I)Z
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->register(I)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->reset(ILandroid/view/accessibility/MagnificationAnimationCallback;)Z
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->resetIfNeeded(II)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationController;->unregisterLocked(IZ)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$1;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$1;->onImeWindowVisibilityChanged(IZ)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DelegatingState;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DetectingState$TwoFingerDoubleTapHandler;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DetectingState;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DetectingState;-><clinit>()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DetectingState;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DetectingState;->clear()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$DetectingState;->setShortcutTriggered(Z)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$OverscrollHandler;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$PanningScalingState;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$SinglePanningState;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$ViewportDraggingState;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;-><clinit>()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;Lcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/accessibility/magnification/MagnificationGestureHandler$Callback;ZZZLcom/android/server/accessibility/magnification/WindowMagnificationPromptController;ILcom/android/server/accessibility/magnification/FullScreenMagnificationVibrationHelper;Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$MagnificationLogger;Landroid/view/ViewConfiguration;Lcom/android/server/accessibility/magnification/OneFingerPanningSettingsProvider;Lcom/android/server/accessibility/magnification/MouseEventHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;Lcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/accessibility/magnification/MagnificationGestureHandler$Callback;ZZZLcom/android/server/accessibility/magnification/WindowMagnificationPromptController;ILcom/android/server/accessibility/magnification/FullScreenMagnificationVibrationHelper;Lcom/android/server/accessibility/magnification/MouseEventHandler;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;->clearAndTransitionToStateDetecting()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;->clearEvents(I)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;->getMode()I
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;->onDestroy()V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler;->transitionTo(Lcom/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler$State;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationVibrationHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationVibrationHelper;)V
+PLcom/android/server/accessibility/magnification/FullScreenMagnificationVibrationHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/accessibility/magnification/MagnificationConnectionManager$1;-><init>(Lcom/android/server/accessibility/magnification/MagnificationConnectionManager;)V
-PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/accessibility/magnification/MagnificationConnectionManager$Callback;Lcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/accessibility/magnification/MagnificationScaleProvider;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager$ConnectionCallback;-><init>(Lcom/android/server/accessibility/magnification/MagnificationConnectionManager;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;-><clinit>()V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/accessibility/magnification/MagnificationController;Lcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/accessibility/magnification/MagnificationScaleProvider;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->connectionStateToString(I)Ljava/lang/String;
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->disableAllWindowMagnifiers()V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->disableWindowMagnification(IZLandroid/view/accessibility/MagnificationAnimationCallback;)Z
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->isConnected()Z
 PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->isWindowMagnifierEnabled(I)Z
-PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->removeMagnificationButton(I)Z
-PLcom/android/server/accessibility/magnification/MagnificationController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->removeMagnificationButton(I)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->requestConnection(Z)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionManager;->setConnection(Landroid/view/accessibility/IMagnificationConnection;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionWrapper;-><init>(Landroid/view/accessibility/IMagnificationConnection;Lcom/android/server/accessibility/AccessibilityTraceManager;)V
+PLcom/android/server/accessibility/magnification/MagnificationConnectionWrapper;->setConnectionCallback(Landroid/view/accessibility/IMagnificationConnectionCallback;)V
+PLcom/android/server/accessibility/magnification/MagnificationController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/magnification/MagnificationController;)V
+PLcom/android/server/accessibility/magnification/MagnificationController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+PLcom/android/server/accessibility/magnification/MagnificationController$$ExternalSyntheticLambda2;->run()V
 PLcom/android/server/accessibility/magnification/MagnificationController;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Ljava/lang/Object;Landroid/content/Context;Lcom/android/server/accessibility/magnification/MagnificationScaleProvider;Ljava/util/concurrent/Executor;)V
 PLcom/android/server/accessibility/magnification/MagnificationController;->getCurrentMagnificationCenterLocked(II)Landroid/graphics/PointF;
-PLcom/android/server/accessibility/magnification/MagnificationController;->getDisableMagnificationEndRunnableLocked(I)Lcom/android/server/accessibility/magnification/MagnificationController$DisableMagnificationCallback;
+PLcom/android/server/accessibility/magnification/MagnificationController;->getFullScreenMagnificationController()Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;
 PLcom/android/server/accessibility/magnification/MagnificationController;->getMagnificationConnectionManager()Lcom/android/server/accessibility/magnification/MagnificationConnectionManager;
 PLcom/android/server/accessibility/magnification/MagnificationController;->isActivated(II)Z
-PLcom/android/server/accessibility/magnification/MagnificationController;->isAlwaysOnMagnificationFeatureFlagEnabled()Z
 PLcom/android/server/accessibility/magnification/MagnificationController;->isFullScreenMagnificationControllerInitialized()Z
+PLcom/android/server/accessibility/magnification/MagnificationController;->logMagnificationModeWithImeOnIfNeeded(I)V
+PLcom/android/server/accessibility/magnification/MagnificationController;->onImeWindowVisibilityChanged(IZ)V
 PLcom/android/server/accessibility/magnification/MagnificationController;->onRectangleOnScreenRequested(IIIII)V
-PLcom/android/server/accessibility/magnification/MagnificationController;->setMagnificationCapabilities(I)V
-PLcom/android/server/accessibility/magnification/MagnificationController;->supportWindowMagnification()Z
-PLcom/android/server/accessibility/magnification/MagnificationController;->transitionMagnificationModeLocked(IILcom/android/server/accessibility/magnification/MagnificationController$TransitionCallBack;)V
-PLcom/android/server/accessibility/magnification/MagnificationController;->updateUserIdIfNeeded(I)V
 PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/lang/Runnable;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
+PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/Executor;Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda0;)V
 PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/atomic/AtomicBoolean;)V
+PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/atomic/AtomicBoolean;I)V
 PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/atomic/AtomicBoolean;)V
 PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda7;-><init>(Ljava/lang/Runnable;)V
 PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase$$ExternalSyntheticLambda7;->runOrThrow()V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->$r8$lambda$-Kf-nTTxGJWSQrXs1QThaOrkPek(Ljava/lang/Runnable;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->$r8$lambda$KXsRNBwfYHScpt3V4aI4KVvs4mk(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/atomic/AtomicBoolean;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->$r8$lambda$axYtYuWd7ezeyobLYU1aL4M31Ak(Lcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;-><init>()V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->addOnChangedListener(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Landroid/provider/DeviceConfig$OnPropertiesChangedListener;
 PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->clearCallingIdentifyAndTryCatch(Ljava/lang/Runnable;Ljava/lang/Runnable;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->isFeatureFlagEnabled()Z
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->lambda$addOnChangedListener$6(Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->lambda$clearCallingIdentifyAndTryCatch$0(Ljava/lang/Runnable;)V
-PLcom/android/server/accessibility/magnification/MagnificationFeatureFlagBase;->lambda$isFeatureFlagEnabled$1(Ljava/util/concurrent/atomic/AtomicBoolean;)V
+PLcom/android/server/accessibility/magnification/MagnificationGestureHandler;-><clinit>()V
+PLcom/android/server/accessibility/magnification/MagnificationGestureHandler;-><init>(IZZZLcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/accessibility/magnification/MagnificationGestureHandler$Callback;)V
+PLcom/android/server/accessibility/magnification/MagnificationGestureHandler;->dispatchTransformedEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/magnification/MagnificationGestureHandler;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/magnification/MagnificationGestureMatcher;->getMagnificationMultiTapTimeout(Landroid/content/Context;)I
 PLcom/android/server/accessibility/magnification/MagnificationProcessor;-><init>(Lcom/android/server/accessibility/magnification/MagnificationController;)V
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->dump(Ljava/io/PrintWriter;Ljava/util/ArrayList;)V
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->getControllingMode(I)I
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->getCurrentMagnificationRegion(ILandroid/graphics/Region;Z)V
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->getFullscreenMagnificationRegion(ILandroid/graphics/Region;Z)V
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->getMagnificationConfig(I)Landroid/accessibilityservice/MagnificationConfig;
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->resetAllIfNeeded(I)V
+PLcom/android/server/accessibility/magnification/MagnificationProcessor;->unregister(I)V
+PLcom/android/server/accessibility/magnification/MagnificationScaleProvider;-><clinit>()V
 PLcom/android/server/accessibility/magnification/MagnificationScaleProvider;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;-><init>()V
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;-><init>(Lcom/android/server/accounts/AccountAuthenticatorCache$MySerializer-IA;)V
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->createFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/accounts/AuthenticatorDescription;
+PLcom/android/server/accessibility/magnification/MagnificationThumbnailFeatureFlag;->getDefaultValue()Z
+PLcom/android/server/accessibility/magnification/MagnificationThumbnailFeatureFlag;->getFeatureName()Ljava/lang/String;
+PLcom/android/server/accessibility/magnification/MagnificationThumbnailFeatureFlag;->getNamespace()Ljava/lang/String;
+PLcom/android/server/accessibility/magnification/MouseEventHandler;-><init>(Lcom/android/server/accessibility/magnification/FullScreenMagnificationController;)V
+PLcom/android/server/accessibility/magnification/OneFingerPanningSettingsProvider;-><clinit>()V
+PLcom/android/server/accessibility/magnification/OneFingerPanningSettingsProvider;->isOneFingerPanningEnabledDefault(Landroid/content/Context;)Z
+PLcom/android/server/accessibility/magnification/WindowMagnificationPromptController$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Landroid/content/IntentFilter;
+PLcom/android/server/accessibility/magnification/WindowMagnificationPromptController$1;-><init>(Lcom/android/server/accessibility/magnification/WindowMagnificationPromptController;)V
+PLcom/android/server/accessibility/magnification/WindowMagnificationPromptController;-><clinit>()V
+PLcom/android/server/accessibility/magnification/WindowMagnificationPromptController;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/accessibility/magnification/WindowMagnificationPromptController;->onDestroy()V
 PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->createFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)Ljava/lang/Object;
 PLcom/android/server/accounts/AccountAuthenticatorCache;-><clinit>()V
 PLcom/android/server/accounts/AccountAuthenticatorCache;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accounts/AccountAuthenticatorCache;->getServiceInfo(Landroid/accounts/AuthenticatorDescription;I)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
-HPLcom/android/server/accounts/AccountAuthenticatorCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/accounts/AuthenticatorDescription;
 PLcom/android/server/accounts/AccountAuthenticatorCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
-PLcom/android/server/accounts/AccountManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
-PLcom/android/server/accounts/AccountManagerService$1;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
-PLcom/android/server/accounts/AccountManagerService$2;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+PLcom/android/server/accounts/AccountManagerBackupHelper;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;)V
+PLcom/android/server/accounts/AccountManagerBackupHelper;->backupAccountAccessPermissions(I)[B
+PLcom/android/server/accounts/AccountManagerService$$ExternalSyntheticLambda4;-><init>(Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;Landroid/accounts/Account;II)V
+PLcom/android/server/accounts/AccountManagerService$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/accounts/AccountManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/accounts/AccountManagerService;IILjava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService$$ExternalSyntheticLambda7;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/accounts/AccountManagerService$$ExternalSyntheticLambda8;->onPermissionsChanged(I)V
+PLcom/android/server/accounts/AccountManagerService$11;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService$11;->onResult(Landroid/os/Bundle;)V
+PLcom/android/server/accounts/AccountManagerService$11;->run()V
+PLcom/android/server/accounts/AccountManagerService$1;-><init>(Lcom/android/server/accounts/AccountManagerService;I)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
+PLcom/android/server/accounts/AccountManagerService$1LogRecordTask;->run()V
 PLcom/android/server/accounts/AccountManagerService$3;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
-PLcom/android/server/accounts/AccountManagerService$4;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+PLcom/android/server/accounts/AccountManagerService$7;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZLjava/lang/String;Landroid/os/Bundle;Landroid/accounts/Account;Ljava/lang/String;ZZLjava/lang/String;IZ[BLcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+PLcom/android/server/accounts/AccountManagerService$7;->onResult(Landroid/os/Bundle;)V
+PLcom/android/server/accounts/AccountManagerService$7;->run()V
 PLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
-PLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl-IA;)V
 PLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;->addOnAppPermissionChangeListener(Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;)V
+PLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;->backupAccountAccessPermissions(I)[B
+PLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;->hasAccountAccess(Landroid/accounts/Account;I)Z
 PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;ILjava/lang/String;Z)V
 PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->checkAccount()V
-HPLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->run()V
-HPLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->sendResult()V
+PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->onResult(Landroid/os/Bundle;)V
+PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->run()V
 PLcom/android/server/accounts/AccountManagerService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accounts/AccountManagerService$Injector;->addLocalService(Landroid/accounts/AccountManagerInternal;)V
-PLcom/android/server/accounts/AccountManagerService$Injector;->getAccountAuthenticatorCache()Lcom/android/server/accounts/IAccountAuthenticatorCache;
-PLcom/android/server/accounts/AccountManagerService$Injector;->getCeDatabaseName(I)Ljava/lang/String;
-PLcom/android/server/accounts/AccountManagerService$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/accounts/AccountManagerService$Injector;->getDeDatabaseName(I)Ljava/lang/String;
-PLcom/android/server/accounts/AccountManagerService$Injector;->getMessageHandlerLooper()Landroid/os/Looper;
 PLcom/android/server/accounts/AccountManagerService$Injector;->getPreNDatabaseName(I)Ljava/lang/String;
 PLcom/android/server/accounts/AccountManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/accounts/AccountManagerService$Lifecycle;->onStart()V
 PLcom/android/server/accounts/AccountManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/accounts/AccountManagerService$MessageHandler;-><init>(Lcom/android/server/accounts/AccountManagerService;Landroid/os/Looper;)V
-PLcom/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
+PLcom/android/server/accounts/AccountManagerService$NotificationId;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/accounts/AccountManagerService$OnInterestingAppOpChangedListener;-><init>(Lcom/android/server/accounts/AccountManagerService;)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
-PLcom/android/server/accounts/AccountManagerService$Session;->bind()V
-HPLcom/android/server/accounts/AccountManagerService$Session;->bindToAuthenticator(Ljava/lang/String;)Z
-PLcom/android/server/accounts/AccountManagerService$Session;->cancelTimeout()V
-HPLcom/android/server/accounts/AccountManagerService$Session;->close()V
+HPLcom/android/server/accounts/AccountManagerService$Session;->bind()V
+PLcom/android/server/accounts/AccountManagerService$Session;->checkKeyIntent(ILandroid/os/Bundle;)Z
+PLcom/android/server/accounts/AccountManagerService$Session;->close()V
 PLcom/android/server/accounts/AccountManagerService$Session;->getResponseAndClose()Landroid/accounts/IAccountManagerResponse;
+PLcom/android/server/accounts/AccountManagerService$Session;->onResult(Landroid/os/Bundle;)V
 PLcom/android/server/accounts/AccountManagerService$Session;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/accounts/AccountManagerService$Session;->scheduleTimeout()V
-PLcom/android/server/accounts/AccountManagerService$Session;->unbind()V
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;->-$$Nest$fgetmReceiversForType(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;->-$$Nest$fgetuserId(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)I
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;->-$$Nest$fgetvisibilityCache(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
 PLcom/android/server/accounts/AccountManagerService$UserAccounts;-><init>(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)V
-PLcom/android/server/accounts/AccountManagerService;->-$$Nest$fgetmAppPermissionChangeListeners(Lcom/android/server/accounts/AccountManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
-PLcom/android/server/accounts/AccountManagerService;->-$$Nest$fgetmAuthenticatorCache(Lcom/android/server/accounts/AccountManagerService;)Lcom/android/server/accounts/IAccountAuthenticatorCache;
-PLcom/android/server/accounts/AccountManagerService;->-$$Nest$fgetmSessions(Lcom/android/server/accounts/AccountManagerService;)Ljava/util/LinkedHashMap;
-PLcom/android/server/accounts/AccountManagerService;->-$$Nest$misLocalUnlockedUser(Lcom/android/server/accounts/AccountManagerService;I)Z
 PLcom/android/server/accounts/AccountManagerService;-><clinit>()V
-HPLcom/android/server/accounts/AccountManagerService;-><init>(Lcom/android/server/accounts/AccountManagerService$Injector;)V
+PLcom/android/server/accounts/AccountManagerService;-><init>(Lcom/android/server/accounts/AccountManagerService$Injector;)V
+HPLcom/android/server/accounts/AccountManagerService;->accountExistsCache(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Z
+PLcom/android/server/accounts/AccountManagerService;->addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->addAccountExplicitlyWithVisibility(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;Ljava/lang/String;)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;Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->calculatePackageSignatureDigest(ILjava/lang/String;)[B
+PLcom/android/server/accounts/AccountManagerService;->canCallerAccessPackage(IILjava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->canUserModifyAccounts(II)Z
+PLcom/android/server/accounts/AccountManagerService;->canUserModifyAccountsForType(IILjava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Landroid/accounts/Account;IZLcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+PLcom/android/server/accounts/AccountManagerService;->cancelNotification(Lcom/android/server/accounts/AccountManagerService$NotificationId;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+PLcom/android/server/accounts/AccountManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/accounts/AccountManagerService;->filterAccounts(Lcom/android/server/accounts/AccountManagerService$UserAccounts;[Landroid/accounts/Account;ILjava/lang/String;Z)[Landroid/accounts/Account;+]Ljava/util/Map;Ljava/util/LinkedHashMap;]Ljava/util/Set;Ljava/util/LinkedHashMap$LinkedKeySet;
+HPLcom/android/server/accounts/AccountManagerService;->filterSharedAccounts(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/util/Map;ILjava/lang/String;)Ljava/util/Map;
+PLcom/android/server/accounts/AccountManagerService;->getAccountVisibilityFromCache(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)I
 PLcom/android/server/accounts/AccountManagerService;->getAccounts(ILjava/lang/String;)[Landroid/accounts/Account;
+PLcom/android/server/accounts/AccountManagerService;->getAccountsAndVisibilityForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
+PLcom/android/server/accounts/AccountManagerService;->getAccountsAndVisibilityForPackage(Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
 HPLcom/android/server/accounts/AccountManagerService;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
-HPLcom/android/server/accounts/AccountManagerService;->getAccountsAsUserForPackage(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Z)[Landroid/accounts/Account;
-HPLcom/android/server/accounts/AccountManagerService;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/accounts/AccountManagerService;->getAccountsAsUserForPackage(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)[Landroid/accounts/Account;
+PLcom/android/server/accounts/AccountManagerService;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/accounts/AccountManagerService;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
 PLcom/android/server/accounts/AccountManagerService;->getAccountsForSystem([I)[Landroid/accounts/AccountAndUser;
 HPLcom/android/server/accounts/AccountManagerService;->getAccountsFromCache(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;ILjava/lang/String;Z)[Landroid/accounts/Account;
-HPLcom/android/server/accounts/AccountManagerService;->getAccountsInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;ILjava/lang/String;Ljava/util/List;Z)[Landroid/accounts/Account;
+HPLcom/android/server/accounts/AccountManagerService;->getAccountsInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;ILjava/lang/String;Ljava/util/List;Z)[Landroid/accounts/Account;+]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/accounts/AccountManagerService;->getAllAccountsForSystemProcess()[Landroid/accounts/AccountAndUser;
-PLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypeAndUIDForUser(Lcom/android/server/accounts/IAccountAuthenticatorCache;I)Ljava/util/HashMap;
-PLcom/android/server/accounts/AccountManagerService;->getRunningAccountsForSystem()[Landroid/accounts/AccountAndUser;
+HPLcom/android/server/accounts/AccountManagerService;->getAuthToken(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZZLandroid/os/Bundle;)V
+PLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypeAndUIDForUser(Lcom/android/server/accounts/AccountAuthenticatorCache;I)Ljava/util/HashMap;
+PLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription;
+PLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypesInternal(II)[Landroid/accounts/AuthenticatorDescription;
+PLcom/android/server/accounts/AccountManagerService;->getCredentialPermissionNotificationId(ILandroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)Lcom/android/server/accounts/AccountManagerService$NotificationId;
+PLcom/android/server/accounts/AccountManagerService;->getPackageNameForUid(I)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->getPackagesAndVisibilityForAccountLocked(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
+PLcom/android/server/accounts/AccountManagerService;->getPackagesForVisibilityStr(ILjava/util/Map;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->getPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->getRequestingPackages(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
+PLcom/android/server/accounts/AccountManagerService;->getSigninRequiredNotificationId(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Lcom/android/server/accounts/AccountManagerService$NotificationId;
 PLcom/android/server/accounts/AccountManagerService;->getSingleton()Lcom/android/server/accounts/AccountManagerService;
-HPLcom/android/server/accounts/AccountManagerService;->getTypesForCaller(IIZ)Ljava/util/List;
-HPLcom/android/server/accounts/AccountManagerService;->getTypesManagedByCaller(II)Ljava/util/List;
-HPLcom/android/server/accounts/AccountManagerService;->getTypesVisibleToCaller(IILjava/lang/String;)Ljava/util/List;
-HPLcom/android/server/accounts/AccountManagerService;->getUserAccounts(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;
-HPLcom/android/server/accounts/AccountManagerService;->getUserAccountsNotChecked(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;
+HPLcom/android/server/accounts/AccountManagerService;->getTypesForCaller(IIZ)Ljava/util/List;+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;
+PLcom/android/server/accounts/AccountManagerService;->getUserAccounts(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;
+HPLcom/android/server/accounts/AccountManagerService;->getUserAccountsNotChecked(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/accounts/AccountManagerService;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/accounts/AccountManagerService;->getUserManager()Landroid/os/UserManager;
-PLcom/android/server/accounts/AccountManagerService;->isAccountManagedByCaller(Ljava/lang/String;II)Z
+PLcom/android/server/accounts/AccountManagerService;->grantAppPermission(Landroid/accounts/Account;Ljava/lang/String;I)V
+PLcom/android/server/accounts/AccountManagerService;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;I)Z
+PLcom/android/server/accounts/AccountManagerService;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Z
+PLcom/android/server/accounts/AccountManagerService;->hasFeatures(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->insertAccountIntoCacheLocked(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Landroid/accounts/Account;
+HPLcom/android/server/accounts/AccountManagerService;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->invalidateAuthTokenLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/accounts/AccountManagerService;->isAccountManagedByCaller(IILjava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->isCrossUser(II)Z
 PLcom/android/server/accounts/AccountManagerService;->isLocalUnlockedUser(I)Z
-HPLcom/android/server/accounts/AccountManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/server/accounts/AccountManagerService;->isPermittedForPackage(Ljava/lang/String;I[Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->isProfileOwner(I)Z
+PLcom/android/server/accounts/AccountManagerService;->isSpecialPackageKey(Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->logGetAuthTokenMetrics(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->logRecord(Ljava/lang/String;Ljava/lang/String;JLcom/android/server/accounts/AccountManagerService$UserAccounts;I)V
+PLcom/android/server/accounts/AccountManagerService;->notifyPackage(Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+PLcom/android/server/accounts/AccountManagerService;->onAccountAccessed(Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->onResult(Landroid/accounts/IAccountManagerResponse;Landroid/os/Bundle;)V
+PLcom/android/server/accounts/AccountManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/accounts/AccountManagerService;->onUnlockUser(I)V
+HPLcom/android/server/accounts/AccountManagerService;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/accounts/AccountManagerService;->permissionIsGranted(Landroid/accounts/Account;Ljava/lang/String;II)Z
 PLcom/android/server/accounts/AccountManagerService;->purgeOldGrants(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
-HPLcom/android/server/accounts/AccountManagerService;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/accounts/AccountManagerService;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+PLcom/android/server/accounts/AccountManagerService;->readAuthTokenInternal(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->readCachedTokenInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)Lcom/android/server/accounts/TokenCache$Value;
+PLcom/android/server/accounts/AccountManagerService;->readPasswordInternal(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->readPreviousNameInternal(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/lang/String;
+HPLcom/android/server/accounts/AccountManagerService;->readUserDataInternal(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountManagerService;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+HPLcom/android/server/accounts/AccountManagerService;->resolveAccountVisibility(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)Ljava/lang/Integer;+]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;
+HPLcom/android/server/accounts/AccountManagerService;->saveAuthTokenToDatabase(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->sendAccountsChangedBroadcast(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/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
+PLcom/android/server/accounts/AccountManagerService;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;IZLcom/android/server/accounts/AccountManagerService$UserAccounts;I)Z
+PLcom/android/server/accounts/AccountManagerService;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->setPassword(Landroid/accounts/Account;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->setPasswordInternal(ILandroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/accounts/AccountManagerService;->setUserdataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/accounts/AccountManagerService;->syncDeCeAccountsLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
 PLcom/android/server/accounts/AccountManagerService;->unregisterAccountListener([Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/accounts/AccountManagerService;->unregisterAccountListener([Ljava/lang/String;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
-PLcom/android/server/accounts/AccountManagerService;->validateAccounts(I)V
-HPLcom/android/server/accounts/AccountManagerService;->validateAccountsInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Z)V
-PLcom/android/server/accounts/AccountsDb$CeDatabaseHelper;-><init>(Landroid/content/Context;Ljava/lang/String;)V
-PLcom/android/server/accounts/AccountsDb$CeDatabaseHelper;->create(Landroid/content/Context;Ljava/io/File;Ljava/io/File;)Lcom/android/server/accounts/AccountsDb$CeDatabaseHelper;
+PLcom/android/server/accounts/AccountManagerService;->updateAccountVisibilityLocked(ILandroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService;->updateAppPermission(Landroid/accounts/Account;Ljava/lang/String;IZ)V
+PLcom/android/server/accounts/AccountManagerService;->validateAccountsInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Z)V
+PLcom/android/server/accounts/AccountManagerService;->writeAuthTokenIntoCacheLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/accounts/AccountsDb$CeDatabaseHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V
-HPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->-$$Nest$fgetmCeAttached(Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper;)Z
-PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->-$$Nest$fputmCeAttached(Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper;Z)V
-PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;-><init>(Landroid/content/Context;ILjava/lang/String;)V
-PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;-><init>(Landroid/content/Context;ILjava/lang/String;Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper-IA;)V
+PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;-><init>(Ljava/lang/String;Landroid/content/Context;I)V
 PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->getReadableDatabaseUserIsUnlocked()Landroid/database/sqlite/SQLiteDatabase;
+PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->getWritableDatabaseUserIsUnlocked()Landroid/database/sqlite/SQLiteDatabase;
 PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V
 PLcom/android/server/accounts/AccountsDb;-><clinit>()V
 PLcom/android/server/accounts/AccountsDb;-><init>(Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper;Landroid/content/Context;Ljava/io/File;)V
 PLcom/android/server/accounts/AccountsDb;->attachCeDatabase(Ljava/io/File;)V
+PLcom/android/server/accounts/AccountsDb;->beginTransaction()V
 PLcom/android/server/accounts/AccountsDb;->create(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)Lcom/android/server/accounts/AccountsDb;
+PLcom/android/server/accounts/AccountsDb;->dumpDebugTable(Ljava/io/PrintWriter;)V
+PLcom/android/server/accounts/AccountsDb;->endTransaction()V
+PLcom/android/server/accounts/AccountsDb;->findAccountPasswordByNameAndType(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/accounts/AccountsDb;->findAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/Integer;
+PLcom/android/server/accounts/AccountsDb;->findAllAccountGrants()Ljava/util/List;
 PLcom/android/server/accounts/AccountsDb;->findAllDeAccounts()Ljava/util/Map;
 PLcom/android/server/accounts/AccountsDb;->findAllUidGrants()Ljava/util/List;
 PLcom/android/server/accounts/AccountsDb;->findAllVisibilityValues()Ljava/util/Map;
-PLcom/android/server/accounts/AccountsDb;->findCeAccountsNotInDe()Ljava/util/List;
+PLcom/android/server/accounts/AccountsDb;->findAuthTokensByAccount(Landroid/accounts/Account;)Ljava/util/Map;
+PLcom/android/server/accounts/AccountsDb;->findCeAccountId(Landroid/accounts/Account;)J
+PLcom/android/server/accounts/AccountsDb;->findDeAccountId(Landroid/accounts/Account;)J
+PLcom/android/server/accounts/AccountsDb;->findDeAccountPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
+HPLcom/android/server/accounts/AccountsDb;->findExtrasIdByAccountId(JLjava/lang/String;)J
 PLcom/android/server/accounts/AccountsDb;->findMetaAuthUid()Ljava/util/Map;
-HPLcom/android/server/accounts/AccountsDb;->isCeDatabaseAttached()Z
-PLcom/android/server/accounts/TokenCache$TokenLruCache;-><init>()V
-PLcom/android/server/accounts/TokenCache;-><init>()V
-PLcom/android/server/adb/AdbDebuggingManager$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/accounts/AccountsDb;->findUserExtrasForAccount(Landroid/accounts/Account;)Ljava/util/Map;
+PLcom/android/server/accounts/AccountsDb;->getStatementForLogging()Landroid/database/sqlite/SQLiteStatement;
+PLcom/android/server/accounts/AccountsDb;->insertDeAccount(Landroid/accounts/Account;J)J
+PLcom/android/server/accounts/AccountsDb;->insertExtra(Ljava/lang/String;JLjava/lang/String;)J
+PLcom/android/server/accounts/AccountsDb;->setTransactionSuccessful()V
+PLcom/android/server/accounts/TokenCache$Key;-><init>(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)V
+PLcom/android/server/accounts/TokenCache$Key;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/accounts/TokenCache$Key;->hashCode()I
+PLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;-><init>(Lcom/android/server/accounts/TokenCache$TokenLruCache;)V
+PLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;->evict()V
+PLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/accounts/TokenCache$TokenLruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/accounts/TokenCache$Value;-><init>(JLjava/lang/String;)V
+PLcom/android/server/accounts/TokenCache;->put(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BJ)V
 PLcom/android/server/adb/AdbDebuggingManager$$ExternalSyntheticLambda0;->currentTimeMillis()J
-PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;-><init>()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$2;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Landroid/os/Handler;)V
+PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$2;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;-><init>(Lcom/android/server/adb/AdbDebuggingManager;Landroid/os/Looper;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->cancelJobToUpdateAdbKeyStore()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->initKeyStore()V
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->logAdbConnectionChanged(Ljava/lang/String;IZ)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->registerForAuthTimeChanges()V
+PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->logAdbConnectionChanged(ILjava/lang/String;Z)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->scheduleJobToUpdateAdbKeyStore()J
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->startAdbDebuggingThread()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;-><init>()V
@@ -3856,2312 +3438,1637 @@
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->listenToSocket()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->openSocketLocked()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->run()V
+PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->sendResponse(Ljava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->setHandler(Landroid/os/Handler;)V
+HPLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->addExistingUserKeysToKeyStore()V
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->deleteKeyStore()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->filterOutOldKeys()Z
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getAllowedConnectionTime()J
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getLastConnectionTime(Ljava/lang/String;)J
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getNextExpirationTime()J
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getSystemKeysFromFile(Ljava/lang/String;)Ljava/util/Set;
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->initKeyFile()V
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->persistKeyStore()V
+PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->readKeyStoreContents(Lcom/android/modules/utils/TypedXmlPullParser;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->readTempKeysFile()V
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->setLastConnectionTime(Ljava/lang/String;J)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->setLastConnectionTime(Ljava/lang/String;JZ)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->updateKeyStore()V
 PLcom/android/server/adb/AdbDebuggingManager$PortListenerImpl;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V
-PLcom/android/server/adb/AdbDebuggingManager;->$r8$lambda$I3NlJTMol-2JFN3dPyCB7gKkrsk()J
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmAdbUsbEnabled(Lcom/android/server/adb/AdbDebuggingManager;)Z
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmAdbWifiEnabled(Lcom/android/server/adb/AdbDebuggingManager;)Z
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmConnectedKeys(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/util/Map;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmConnectionPortPoller(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortPoller;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmContext(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/content/Context;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmTempKeysFile(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/io/File;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmThread(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmTicker(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$Ticker;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmUserKeyFile(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/io/File;
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmAdbUsbEnabled(Lcom/android/server/adb/AdbDebuggingManager;Z)V
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmThread(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)V
+PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$mgetFingerprints(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$msendPersistKeyStoreMessage(Lcom/android/server/adb/AdbDebuggingManager;)V
-PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$sfgetTAG()Ljava/lang/String;
+PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$mwriteKeys(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/Iterable;)V
 PLcom/android/server/adb/AdbDebuggingManager;-><clinit>()V
-PLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;)V
 PLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;Lcom/android/server/adb/AdbDebuggingManager$Ticker;)V
+PLcom/android/server/adb/AdbDebuggingManager;->createConfirmationIntent(Landroid/content/ComponentName;Ljava/util/List;)Landroid/content/Intent;
+PLcom/android/server/adb/AdbDebuggingManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
 PLcom/android/server/adb/AdbDebuggingManager;->getAdbFile(Ljava/lang/String;)Ljava/io/File;
-PLcom/android/server/adb/AdbDebuggingManager;->lambda$static$0()J
-PLcom/android/server/adb/AdbDebuggingManager;->sendPersistKeyStoreMessage()V
 PLcom/android/server/adb/AdbDebuggingManager;->setAdbEnabled(ZB)V
+PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/util/List;)Z
 PLcom/android/server/adb/AdbService$AdbConnectionPortListener;-><init>(Lcom/android/server/adb/AdbService;)V
 PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;-><init>(Lcom/android/server/adb/AdbService;)V
-PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;-><init>(Lcom/android/server/adb/AdbService;Lcom/android/server/adb/AdbService$AdbManagerInternalImpl-IA;)V
 PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->isAdbEnabled(B)Z
 PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->registerTransport(Landroid/debug/IAdbTransport;)V
 PLcom/android/server/adb/AdbService$AdbSettingsObserver;-><init>(Lcom/android/server/adb/AdbService;)V
-PLcom/android/server/adb/AdbService$Lifecycle$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/adb/AdbService$Lifecycle$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/adb/AdbService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/adb/AdbService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/adb/AdbService$Lifecycle;->onStart()V
-PLcom/android/server/adb/AdbService;->-$$Nest$fgetmIsAdbUsbEnabled(Lcom/android/server/adb/AdbService;)Z
-PLcom/android/server/adb/AdbService;->-$$Nest$fgetmTransports(Lcom/android/server/adb/AdbService;)Landroid/util/ArrayMap;
 PLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;Lcom/android/server/adb/AdbService-IA;)V
-PLcom/android/server/adb/AdbService;->bootCompleted()V
-PLcom/android/server/adb/AdbService;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/adb/AdbService;->registerContentObservers()V
-PLcom/android/server/adb/AdbService;->systemReady()V
+PLcom/android/server/adb/AdbService;->allowDebugging(ZLjava/lang/String;)V
+PLcom/android/server/adb/AdbService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/alarm/Alarm$Snapshot;-><init>(Lcom/android/server/alarm/Alarm;)V
-PLcom/android/server/alarm/Alarm;->-$$Nest$fgetmPolicyWhenElapsed(Lcom/android/server/alarm/Alarm;)[J
-HPLcom/android/server/alarm/Alarm;-><init>(IJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;ILandroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;Landroid/os/Bundle;I)V
-PLcom/android/server/alarm/Alarm;->getMaxWhenElapsed()J
-PLcom/android/server/alarm/Alarm;->getRequestedElapsed()J
-PLcom/android/server/alarm/Alarm;->getWhenElapsed()J
-HPLcom/android/server/alarm/Alarm;->makeTag(Landroid/app/PendingIntent;Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/alarm/Alarm;->matches(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)Z
+HPLcom/android/server/alarm/Alarm;-><init>(IIIIJJJJLandroid/app/AlarmManager$AlarmClockInfo;Landroid/app/IAlarmListener;Landroid/app/PendingIntent;Landroid/os/Bundle;Landroid/os/WorkSource;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/alarm/Alarm;->dump(Landroid/util/IndentingPrintWriter;JLjava/text/SimpleDateFormat;)V
+PLcom/android/server/alarm/Alarm;->policyIndexToString(I)Ljava/lang/String;
 HPLcom/android/server/alarm/Alarm;->setPolicyElapsed(IJ)Z
-HPLcom/android/server/alarm/Alarm;->updateWhenElapsed()Z
+PLcom/android/server/alarm/Alarm;->toString()Ljava/lang/String;
+PLcom/android/server/alarm/Alarm;->typeToString(I)Ljava/lang/String;
 PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;-><init>(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
-HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;->test(Ljava/lang/Object;)Z
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda14;-><init>(I)V
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;)Z
-HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;)V
-HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda15;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda22;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;)V
+HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;-><init>(ILjava/lang/String;)V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;->test(Ljava/lang/Object;)Z
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
+HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda1;->onUidFrozenStateChanged([I[I)V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/alarm/AlarmManagerService;I)V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/alarm/AlarmManagerService;I)V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda4;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda6;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda8;-><init>(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
+HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z+]Landroid/app/IAlarmListener;Landroid/app/AlarmManager$ListenerWrapper;,Landroid/app/IAlarmListener$Stub$Proxy;,Lcom/android/server/alarm/AlarmManagerService$2;]Landroid/os/IBinder;Landroid/app/AlarmManager$ListenerWrapper;,Landroid/os/BinderProxy;,Lcom/android/server/alarm/AlarmManagerService$2;
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda9;-><init>(II)V
+PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z
 PLcom/android/server/alarm/AlarmManagerService$1;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
+PLcom/android/server/alarm/AlarmManagerService$1;->binderDied(Landroid/os/IBinder;)V
 PLcom/android/server/alarm/AlarmManagerService$2$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/alarm/AlarmManagerService$2;Landroid/app/IAlarmCompleteListener;)V
 PLcom/android/server/alarm/AlarmManagerService$2$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/alarm/AlarmManagerService$2;->$r8$lambda$FzGTY398wY7rsveJl5qWIzqCYlQ(Lcom/android/server/alarm/AlarmManagerService$2;Landroid/app/IAlarmCompleteListener;)V
 PLcom/android/server/alarm/AlarmManagerService$2;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
 HPLcom/android/server/alarm/AlarmManagerService$2;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
-HPLcom/android/server/alarm/AlarmManagerService$2;->lambda$doAlarm$0(Landroid/app/IAlarmCompleteListener;)V
 PLcom/android/server/alarm/AlarmManagerService$3;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
 PLcom/android/server/alarm/AlarmManagerService$4;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
 PLcom/android/server/alarm/AlarmManagerService$4;->canScheduleExactAlarms(Ljava/lang/String;)Z
+PLcom/android/server/alarm/AlarmManagerService$4;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/alarm/AlarmManagerService$4;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+PLcom/android/server/alarm/AlarmManagerService$4;->getNextWakeFromIdleTime()J
 HPLcom/android/server/alarm/AlarmManagerService$4;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
-HPLcom/android/server/alarm/AlarmManagerService$4;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
+HPLcom/android/server/alarm/AlarmManagerService$4;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
+PLcom/android/server/alarm/AlarmManagerService$4;->setTime(J)Z
+PLcom/android/server/alarm/AlarmManagerService$4;->setTimeZone(Ljava/lang/String;)V
+PLcom/android/server/alarm/AlarmManagerService$5;-><init>(I)V
+PLcom/android/server/alarm/AlarmManagerService$5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/alarm/AlarmManagerService$7;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$8$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/alarm/AlarmManagerService$8;)V
-PLcom/android/server/alarm/AlarmManagerService$8$$ExternalSyntheticLambda0;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService$8$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/alarm/AlarmManagerService$8;I)V
-HPLcom/android/server/alarm/AlarmManagerService$8$$ExternalSyntheticLambda1;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService$8;->$r8$lambda$HnHZA72qLxi-ubEMVN7MFMyc2DI(Lcom/android/server/alarm/AlarmManagerService$8;ILcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService$8;->$r8$lambda$R67M3X63FHlLLApwXe7t37Hv1Ao(Lcom/android/server/alarm/AlarmManagerService$8;Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService$8;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-HPLcom/android/server/alarm/AlarmManagerService$8;->handleUidCachedChanged(IZ)V
-HPLcom/android/server/alarm/AlarmManagerService$8;->lambda$updateAlarmsForUid$1(ILcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService$8;->lambda$updateAllAlarms$0(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService$8;->unblockAlarmsForUid(I)V
-HPLcom/android/server/alarm/AlarmManagerService$8;->updateAlarmsForUid(I)V
-PLcom/android/server/alarm/AlarmManagerService$8;->updateAllAlarms()V
-PLcom/android/server/alarm/AlarmManagerService$AlarmHandler$$ExternalSyntheticLambda0;-><init>(I)V
-HPLcom/android/server/alarm/AlarmManagerService$AlarmHandler$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/alarm/AlarmManagerService$AlarmHandler;->$r8$lambda$fGF9k_ZLsVmKzJSadhA1hLMfPXM(ILcom/android/server/alarm/Alarm;)Z
+PLcom/android/server/alarm/AlarmManagerService$7;->unblockAlarmsForUid(I)V
+HPLcom/android/server/alarm/AlarmManagerService$7;->updateAlarmsForUid(I)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
 PLcom/android/server/alarm/AlarmManagerService$AlarmHandler;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-HPLcom/android/server/alarm/AlarmManagerService$AlarmHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/alarm/AlarmManagerService$AlarmHandler;->lambda$handleMessage$0(ILcom/android/server/alarm/Alarm;)Z
+HPLcom/android/server/alarm/AlarmManagerService$AlarmHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;
 PLcom/android/server/alarm/AlarmManagerService$AlarmThread;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
 HPLcom/android/server/alarm/AlarmManagerService$AlarmThread;->run()V
 PLcom/android/server/alarm/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService$AppStandbyTracker-IA;)V
-HPLcom/android/server/alarm/AlarmManagerService$AppStandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
-PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;-><init>(J)V
-HPLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->recordAlarmForPackage(Ljava/lang/String;IJ)V
-PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->removeForPackage(Ljava/lang/String;I)V
-PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->snapToWindow(Landroid/util/LongArrayQueue;)V
+PLcom/android/server/alarm/AlarmManagerService$AppStandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
+PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;-><init>()V
+PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->dump(Landroid/util/IndentingPrintWriter;J)V
+PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->getNthLastWakeupForPackage(IILjava/lang/String;)J
+HPLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->getTotalWakeupsInWindow(ILjava/lang/String;)I+]Landroid/util/LongArrayQueue;Landroid/util/LongArrayQueue;
+PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->recordAlarmForPackage(ILjava/lang/String;J)V
 PLcom/android/server/alarm/AlarmManagerService$BroadcastStats;-><init>(ILjava/lang/String;)V
 PLcom/android/server/alarm/AlarmManagerService$ChargingReceiver;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
+PLcom/android/server/alarm/AlarmManagerService$ChargingReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/alarm/AlarmManagerService$ClockReceiver;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
+PLcom/android/server/alarm/AlarmManagerService$ClockReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/alarm/AlarmManagerService$ClockReceiver;->scheduleDateChangedEvent()V
 HPLcom/android/server/alarm/AlarmManagerService$ClockReceiver;->scheduleTimeTickEvent()V
-PLcom/android/server/alarm/AlarmManagerService$Constants;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/os/Handler;)V
+PLcom/android/server/alarm/AlarmManagerService$Constants;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
+PLcom/android/server/alarm/AlarmManagerService$Constants;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/alarm/AlarmManagerService$Constants;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/alarm/AlarmManagerService$Constants;->onTareEnabledModeChanged(I)V
-PLcom/android/server/alarm/AlarmManagerService$Constants;->start()V
 PLcom/android/server/alarm/AlarmManagerService$Constants;->updateAllowWhileIdleWhitelistDurationLocked()V
-PLcom/android/server/alarm/AlarmManagerService$Constants;->updateTareSettings(I)V
+PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/alarm/AlarmManagerService$DeliveryTracker;Lcom/android/server/alarm/Alarm;ZZI)V
+PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker$$ExternalSyntheticLambda1;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z
+PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;)V
 PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
 HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->alarmComplete(Landroid/os/IBinder;)V
+PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->alarmTimedOut(Landroid/os/IBinder;)V
 HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->deliverLocked(Lcom/android/server/alarm/Alarm;J)V
-HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
-HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/app/PendingIntent;Landroid/content/Intent;)Lcom/android/server/alarm/AlarmManagerService$InFlight;
+PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/app/PendingIntent;Landroid/content/Intent;)Lcom/android/server/alarm/AlarmManagerService$InFlight;
 HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/os/IBinder;)Lcom/android/server/alarm/AlarmManagerService$InFlight;
-HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->updateStatsLocked(Lcom/android/server/alarm/AlarmManagerService$InFlight;)V
 HPLcom/android/server/alarm/AlarmManagerService$DeliveryTracker;->updateTrackingLocked(Lcom/android/server/alarm/AlarmManagerService$InFlight;)V
 PLcom/android/server/alarm/AlarmManagerService$FilterStats;-><init>(Lcom/android/server/alarm/AlarmManagerService$BroadcastStats;Ljava/lang/String;)V
 HPLcom/android/server/alarm/AlarmManagerService$InFlight;-><init>(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;J)V
-PLcom/android/server/alarm/AlarmManagerService$InFlight;->isBroadcast()Z
-PLcom/android/server/alarm/AlarmManagerService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/alarm/AlarmManagerService$Injector;->getAlarmWakeLock()Landroid/os/PowerManager$WakeLock;
-PLcom/android/server/alarm/AlarmManagerService$Injector;->getAppOpsService()Lcom/android/internal/app/IAppOpsService;
-HPLcom/android/server/alarm/AlarmManagerService$Injector;->getCallingUid()I
-PLcom/android/server/alarm/AlarmManagerService$Injector;->getClockReceiver(Lcom/android/server/alarm/AlarmManagerService;)Lcom/android/server/alarm/AlarmManagerService$ClockReceiver;
-HPLcom/android/server/alarm/AlarmManagerService$Injector;->getCurrentTimeMillis()J
-HPLcom/android/server/alarm/AlarmManagerService$Injector;->getElapsedRealtimeMillis()J
-PLcom/android/server/alarm/AlarmManagerService$Injector;->getSystemUiUid(Landroid/content/pm/PackageManagerInternal;)I
-PLcom/android/server/alarm/AlarmManagerService$Injector;->init()V
+PLcom/android/server/alarm/AlarmManagerService$Injector;->getCurrentTimeMillis()J
+PLcom/android/server/alarm/AlarmManagerService$Injector;->getElapsedRealtimeMillis()J
 PLcom/android/server/alarm/AlarmManagerService$Injector;->initializeTimeIfRequired()V
-HPLcom/android/server/alarm/AlarmManagerService$Injector;->isAlarmDriverPresent()Z
-PLcom/android/server/alarm/AlarmManagerService$Injector;->registerDeviceConfigListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-HPLcom/android/server/alarm/AlarmManagerService$Injector;->setAlarm(IJ)V
-PLcom/android/server/alarm/AlarmManagerService$Injector;->waitForAlarm()I
-PLcom/android/server/alarm/AlarmManagerService$InteractiveStateReceiver;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
 PLcom/android/server/alarm/AlarmManagerService$LocalService;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$LocalService;-><init>(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService$LocalService-IA;)V
-HPLcom/android/server/alarm/AlarmManagerService$LocalService;->remove(Landroid/app/PendingIntent;)V
-HPLcom/android/server/alarm/AlarmManagerService$LocalService;->shouldGetBucketElevation(Ljava/lang/String;I)Z
 HPLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;-><init>(Lcom/android/server/alarm/Alarm;IJJ)V
-PLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;->isLoggable(I)Z
-PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;-><init>(J)V
-PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->cleanUpExpiredQuotas(J)V
-PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->removeForPackage(Ljava/lang/String;I)V
-PLcom/android/server/alarm/AlarmManagerService$UninstallReceiver;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService$UninstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$-ljxB-II3TsrNDjjSE-gaVuQkPU(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$ADG0EAACpycMPBOZGFyKeH7UxXU(ILcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$L82siL18ro7TYb8gZPPKO1HL33E(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;)I
-PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$gTBrLqI8lRe-eLGhoAoKns8vULU(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$lO7FlqYCXbhzV969DpFL5GaI-Ko(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$tqdFahJPkNbOEr_3mNLrRNcYMTM(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmActivityManagerInternal(Lcom/android/server/alarm/AlarmManagerService;)Landroid/app/ActivityManagerInternal;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmAppStateTracker(Lcom/android/server/alarm/AlarmManagerService;)Lcom/android/server/AppStateTrackerImpl;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmBackgroundIntent(Lcom/android/server/alarm/AlarmManagerService;)Landroid/content/Intent;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmBatteryStatsInternal(Lcom/android/server/alarm/AlarmManagerService;)Landroid/os/BatteryStatsInternal;
-HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmInjector(Lcom/android/server/alarm/AlarmManagerService;)Lcom/android/server/alarm/AlarmManagerService$Injector;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmListenerCount(Lcom/android/server/alarm/AlarmManagerService;)I
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmListenerFinishCount(Lcom/android/server/alarm/AlarmManagerService;)I
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmNextTickHistory(Lcom/android/server/alarm/AlarmManagerService;)I
-HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmPackageManagerInternal(Lcom/android/server/alarm/AlarmManagerService;)Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmSendCount(Lcom/android/server/alarm/AlarmManagerService;)I
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmSendFinishCount(Lcom/android/server/alarm/AlarmManagerService;)I
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmTickHistory(Lcom/android/server/alarm/AlarmManagerService;)[J
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTickReceived(Lcom/android/server/alarm/AlarmManagerService;J)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTickSet(Lcom/android/server/alarm/AlarmManagerService;J)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTrigger(Lcom/android/server/alarm/AlarmManagerService;J)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastWakeup(Lcom/android/server/alarm/AlarmManagerService;J)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmListenerCount(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmListenerFinishCount(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmNextTickHistory(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmSendCount(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmSendFinishCount(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$madjustDeliveryTimeBasedOnBatterySaver(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mgetAlarmOperationBundle(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Landroid/os/Bundle;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mgetStatsLocked(Lcom/android/server/alarm/AlarmManagerService;ILjava/lang/String;)Lcom/android/server/alarm/AlarmManagerService$BroadcastStats;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mgetStatsLocked(Lcom/android/server/alarm/AlarmManagerService;Landroid/app/PendingIntent;)Lcom/android/server/alarm/AlarmManagerService$BroadcastStats;
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mlogAlarmBatchDelivered(Lcom/android/server/alarm/AlarmManagerService;IILandroid/util/SparseIntArray;Landroid/util/SparseIntArray;)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mnotifyBroadcastAlarmCompleteLocked(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mnotifyBroadcastAlarmPendingLocked(Lcom/android/server/alarm/AlarmManagerService;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mremoveAlarmsInternalLocked(Lcom/android/server/alarm/AlarmManagerService;Ljava/util/function/Predicate;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mupdateNextAlarmClockLocked(Lcom/android/server/alarm/AlarmManagerService;)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smgetAlarmAttributionUid(Lcom/android/server/alarm/Alarm;)I
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smincrement(Landroid/util/SparseIntArray;I)V
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$sminit()J
-PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smisExactAlarmChangeEnabled(Ljava/lang/String;I)Z
-HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smset(JIJJ)I
+PLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;->dump(Landroid/util/IndentingPrintWriter;JLjava/text/SimpleDateFormat;)V
+PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;-><init>()V
+PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->dump(Landroid/util/IndentingPrintWriter;J)V
+PLcom/android/server/alarm/AlarmManagerService$UninstallReceiver;-><init>(Lcom/android/server/alarm/AlarmManagerService;I)V
+HPLcom/android/server/alarm/AlarmManagerService$UninstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mlogAlarmBatchDelivered(Lcom/android/server/alarm/AlarmManagerService;IILandroid/util/SparseIntArray;Landroid/util/SparseIntArray;)V
+PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smgetNextAlarm(IJ)J
 PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smwaitForAlarm(J)I
 PLcom/android/server/alarm/AlarmManagerService;-><clinit>()V
 PLcom/android/server/alarm/AlarmManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/alarm/AlarmManagerService;-><init>(Landroid/content/Context;Lcom/android/server/alarm/AlarmManagerService$Injector;)V
+PLcom/android/server/alarm/AlarmManagerService;-><init>(Landroid/content/Context;Lcom/android/server/alarm/AlarmManagerService$Injector;)V
 PLcom/android/server/alarm/AlarmManagerService;->addClampPositive(JJ)J
 HPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnBatterySaver(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnBucketLocked(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnTareLocked(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->calculateDeliveryPriorities(Ljava/util/ArrayList;)V
+HPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnBucketLocked(Lcom/android/server/alarm/Alarm;)Z+]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService;
+HPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnDeviceIdle(Lcom/android/server/alarm/Alarm;)Z
+PLcom/android/server/alarm/AlarmManagerService;->adjustIdleUntilTime(Lcom/android/server/alarm/Alarm;)Z
+HPLcom/android/server/alarm/AlarmManagerService;->calculateDeliveryPriorities(Ljava/util/ArrayList;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/alarm/AlarmManagerService;->checkAllowNonWakeupDelayLocked(J)Z
-HPLcom/android/server/alarm/AlarmManagerService;->convertToElapsed(JI)J
-HPLcom/android/server/alarm/AlarmManagerService;->decrementAlarmCount(II)V
-HPLcom/android/server/alarm/AlarmManagerService;->deliverAlarmsLocked(Ljava/util/ArrayList;J)V
-PLcom/android/server/alarm/AlarmManagerService;->getAlarmAttributionUid(Lcom/android/server/alarm/Alarm;)I
-PLcom/android/server/alarm/AlarmManagerService;->getAlarmOperationBundle(Lcom/android/server/alarm/Alarm;)Landroid/os/Bundle;
-PLcom/android/server/alarm/AlarmManagerService;->getMinimumAllowedWindow(JJ)J
-PLcom/android/server/alarm/AlarmManagerService;->getNextAlarmClockImpl(I)Landroid/app/AlarmManager$AlarmClockInfo;
-HPLcom/android/server/alarm/AlarmManagerService;->getStatsLocked(ILjava/lang/String;)Lcom/android/server/alarm/AlarmManagerService$BroadcastStats;
-PLcom/android/server/alarm/AlarmManagerService;->getStatsLocked(Landroid/app/PendingIntent;)Lcom/android/server/alarm/AlarmManagerService$BroadcastStats;
-HPLcom/android/server/alarm/AlarmManagerService;->hasScheduleExactAlarmInternal(Ljava/lang/String;I)Z
-HPLcom/android/server/alarm/AlarmManagerService;->hasUseExactAlarmInternal(Ljava/lang/String;I)Z
-HPLcom/android/server/alarm/AlarmManagerService;->increment(Landroid/util/SparseIntArray;I)V
-HPLcom/android/server/alarm/AlarmManagerService;->incrementAlarmCount(I)V
-HPLcom/android/server/alarm/AlarmManagerService;->isBackgroundRestricted(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->isExactAlarmChangeEnabled(Ljava/lang/String;I)Z
+HPLcom/android/server/alarm/AlarmManagerService;->convertToElapsed(IJ)J
+PLcom/android/server/alarm/AlarmManagerService;->currentNonWakeupFuzzLocked(J)J
+HPLcom/android/server/alarm/AlarmManagerService;->decrementAlarmCount(I)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/alarm/AlarmManagerService;->deliverAlarmsLocked(JLjava/util/ArrayList;)V
+PLcom/android/server/alarm/AlarmManagerService;->dumpAlarmList(Landroid/util/IndentingPrintWriter;Ljava/util/ArrayList;JLjava/text/SimpleDateFormat;)V
+PLcom/android/server/alarm/AlarmManagerService;->dumpImpl(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/alarm/AlarmManagerService;->getQuotaForBucketLocked(I)I
+PLcom/android/server/alarm/AlarmManagerService;->getStatsLocked(ILjava/lang/String;)Lcom/android/server/alarm/AlarmManagerService$BroadcastStats;
+HPLcom/android/server/alarm/AlarmManagerService;->hasScheduleExactAlarmInternal(ILjava/lang/String;)Z
+HPLcom/android/server/alarm/AlarmManagerService;->hasUseExactAlarmInternal(ILjava/lang/String;)Z
+HPLcom/android/server/alarm/AlarmManagerService;->increment(ILandroid/util/SparseIntArray;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/alarm/AlarmManagerService;->interactiveStateChangedLocked(Z)V
+PLcom/android/server/alarm/AlarmManagerService;->isAllowedWhileIdleRestricted(Lcom/android/server/alarm/Alarm;)Z
+PLcom/android/server/alarm/AlarmManagerService;->isBackgroundRestricted(Lcom/android/server/alarm/Alarm;)Z
+PLcom/android/server/alarm/AlarmManagerService;->isExactAlarmChangeEnabled(ILjava/lang/String;)Z
 HPLcom/android/server/alarm/AlarmManagerService;->isExemptFromAppStandby(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->isExemptFromBatterySaver(Lcom/android/server/alarm/Alarm;)Z
 HPLcom/android/server/alarm/AlarmManagerService;->isExemptFromExactAlarmPermissionNoLock(I)Z
 PLcom/android/server/alarm/AlarmManagerService;->isRtc(I)Z
-PLcom/android/server/alarm/AlarmManagerService;->isScheduleExactAlarmDeniedByDefault(Ljava/lang/String;I)Z
-HPLcom/android/server/alarm/AlarmManagerService;->isTimeTickAlarm(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->isUseExactAlarmEnabled(Ljava/lang/String;I)Z
-PLcom/android/server/alarm/AlarmManagerService;->lambda$new$1(Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;)I
-HPLcom/android/server/alarm/AlarmManagerService;->lambda$onUserStarting$7(I)V
-PLcom/android/server/alarm/AlarmManagerService;->lambda$reevaluateRtcAlarms$2(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->lambda$removeLocked$17(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/alarm/Alarm;)Z
-PLcom/android/server/alarm/AlarmManagerService;->lambda$removeLocked$18(ILcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->lambda$reorderAlarmsBasedOnStandbyBuckets$5(Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->logAlarmBatchDelivered(IILandroid/util/SparseIntArray;Landroid/util/SparseIntArray;)V
-PLcom/android/server/alarm/AlarmManagerService;->makeBasicAlarmBroadcastOptions()Landroid/app/BroadcastOptions;
 HPLcom/android/server/alarm/AlarmManagerService;->maxTriggerTime(JJJ)J
-HPLcom/android/server/alarm/AlarmManagerService;->maybeUnregisterTareListenerLocked(Lcom/android/server/alarm/Alarm;)V
-PLcom/android/server/alarm/AlarmManagerService;->notifyBroadcastAlarmCompleteLocked(I)V
-PLcom/android/server/alarm/AlarmManagerService;->notifyBroadcastAlarmPendingLocked(I)V
 PLcom/android/server/alarm/AlarmManagerService;->onBootPhase(I)V
-HPLcom/android/server/alarm/AlarmManagerService;->onStart()V
+PLcom/android/server/alarm/AlarmManagerService;->onStart()V
 PLcom/android/server/alarm/AlarmManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/alarm/AlarmManagerService;->reevaluateRtcAlarms()V
 PLcom/android/server/alarm/AlarmManagerService;->refreshExactAlarmCandidates()V
-HPLcom/android/server/alarm/AlarmManagerService;->registerTareListener(Lcom/android/server/alarm/Alarm;)V
-HPLcom/android/server/alarm/AlarmManagerService;->removeAlarmsInternalLocked(Ljava/util/function/Predicate;I)V
-PLcom/android/server/alarm/AlarmManagerService;->removeImpl(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
-PLcom/android/server/alarm/AlarmManagerService;->removeLocked(II)V
+HPLcom/android/server/alarm/AlarmManagerService;->removeAlarmsInternalLocked(ILjava/util/function/Predicate;)V+]Landroid/app/IAlarmListener;Landroid/app/AlarmManager$ListenerWrapper;,Landroid/app/IAlarmListener$Stub$Proxy;,Lcom/android/server/alarm/AlarmManagerService$2;]Landroid/os/IBinder;Landroid/app/AlarmManager$ListenerWrapper;,Landroid/os/BinderProxy;,Lcom/android/server/alarm/AlarmManagerService$2;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/util/RingBuffer;Lcom/android/internal/util/RingBuffer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/function/Predicate;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda6;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda8;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda9;
+PLcom/android/server/alarm/AlarmManagerService;->removeExactAlarmsOnPermissionRevoked(ILjava/lang/String;Z)V
+PLcom/android/server/alarm/AlarmManagerService;->removeImpl(Landroid/app/PendingIntent;Lcom/android/server/alarm/AlarmManagerService$2;)V
 HPLcom/android/server/alarm/AlarmManagerService;->removeLocked(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;I)V
-HPLcom/android/server/alarm/AlarmManagerService;->reorderAlarmsBasedOnStandbyBuckets(Landroid/util/ArraySet;)Z
-PLcom/android/server/alarm/AlarmManagerService;->reportAlarmEventToTare(Lcom/android/server/alarm/Alarm;)V
-HPLcom/android/server/alarm/AlarmManagerService;->rescheduleKernelAlarmsLocked()V
-PLcom/android/server/alarm/AlarmManagerService;->restoreRequestedTime(Lcom/android/server/alarm/Alarm;)Z
-HPLcom/android/server/alarm/AlarmManagerService;->sendPendingBackgroundAlarmsLocked(ILjava/lang/String;)V
-HPLcom/android/server/alarm/AlarmManagerService;->setImpl(IJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;ILandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;Landroid/os/Bundle;I)V
-HPLcom/android/server/alarm/AlarmManagerService;->setImplLocked(IJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;ILandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;Landroid/os/Bundle;I)V
-HPLcom/android/server/alarm/AlarmManagerService;->setImplLocked(Lcom/android/server/alarm/Alarm;)V
+PLcom/android/server/alarm/AlarmManagerService;->reorderAlarmsBasedOnStandbyBuckets(Landroid/util/ArraySet;)Z
+HPLcom/android/server/alarm/AlarmManagerService;->rescheduleKernelAlarmsLocked()V+]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/alarm/AlarmManagerService;->sendPendingBackgroundAlarmsLocked(ILjava/lang/String;)V
+HPLcom/android/server/alarm/AlarmManagerService;->setImpl(IJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;ILandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;Landroid/os/Bundle;I)V+]Landroid/app/IAlarmListener;Landroid/app/AlarmManager$ListenerWrapper;,Landroid/app/IAlarmListener$Stub$Proxy;,Lcom/android/server/alarm/AlarmManagerService$2;]Landroid/os/IBinder;Landroid/app/AlarmManager$ListenerWrapper;,Landroid/os/BinderProxy;,Lcom/android/server/alarm/AlarmManagerService$2;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/alarm/AlarmManagerService;->setImplLocked(IIIIJJJJLandroid/app/AlarmManager$AlarmClockInfo;Landroid/app/IAlarmListener;Landroid/app/PendingIntent;Landroid/os/Bundle;Landroid/os/WorkSource;Ljava/lang/String;Ljava/lang/String;)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
 HPLcom/android/server/alarm/AlarmManagerService;->setLocked(IJ)V
+PLcom/android/server/alarm/AlarmManagerService;->setTimeZoneImpl(ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/alarm/AlarmManagerService;->setWakelockWorkSource(Landroid/os/WorkSource;ILjava/lang/String;Z)V
-HPLcom/android/server/alarm/AlarmManagerService;->triggerAlarmsLocked(Ljava/util/ArrayList;J)I
+HPLcom/android/server/alarm/AlarmManagerService;->triggerAlarmsLocked(JLjava/util/ArrayList;)I+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
 HPLcom/android/server/alarm/AlarmManagerService;->updateNextAlarmClockLocked()V
-PLcom/android/server/alarm/LazyAlarmStore$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/alarm/Flags;-><clinit>()V
+PLcom/android/server/alarm/Flags;->startUserBeforeScheduledAlarms()Z
 HPLcom/android/server/alarm/LazyAlarmStore$$ExternalSyntheticLambda0;->applyAsLong(Ljava/lang/Object;)J
 PLcom/android/server/alarm/LazyAlarmStore;-><clinit>()V
 PLcom/android/server/alarm/LazyAlarmStore;-><init>()V
-HPLcom/android/server/alarm/LazyAlarmStore;->add(Lcom/android/server/alarm/Alarm;)V
-HPLcom/android/server/alarm/LazyAlarmStore;->addAll(Ljava/util/ArrayList;)V
-HPLcom/android/server/alarm/LazyAlarmStore;->getNextDeliveryTime()J
-HPLcom/android/server/alarm/LazyAlarmStore;->getNextWakeupDeliveryTime()J
-HPLcom/android/server/alarm/LazyAlarmStore;->remove(Ljava/util/function/Predicate;)Ljava/util/ArrayList;
-HPLcom/android/server/alarm/LazyAlarmStore;->removePendingAlarms(J)Ljava/util/ArrayList;
-PLcom/android/server/alarm/LazyAlarmStore;->setAlarmClockRemovalListener(Ljava/lang/Runnable;)V
-HPLcom/android/server/alarm/LazyAlarmStore;->size()I
-HPLcom/android/server/alarm/LazyAlarmStore;->updateAlarmDeliveries(Lcom/android/server/alarm/AlarmStore$AlarmDeliveryCalculator;)Z
-PLcom/android/server/alarm/MetricsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/alarm/MetricsHelper;Ljava/util/function/Supplier;)V
+PLcom/android/server/alarm/LazyAlarmStore;->dump(Landroid/util/IndentingPrintWriter;JLjava/text/SimpleDateFormat;)V
+HPLcom/android/server/alarm/LazyAlarmStore;->remove(Ljava/util/function/Predicate;)Ljava/util/ArrayList;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda6;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda8;
+PLcom/android/server/alarm/LazyAlarmStore;->size()I
+HPLcom/android/server/alarm/LazyAlarmStore;->updateAlarmDeliveries(Lcom/android/server/alarm/AlarmStore$AlarmDeliveryCalculator;)Z+]Lcom/android/server/alarm/AlarmStore$AlarmDeliveryCalculator;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;,Lcom/android/server/alarm/AlarmManagerService$DeliveryTracker$$ExternalSyntheticLambda1;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
+PLcom/android/server/alarm/MetricsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/alarm/MetricsHelper;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;)V
 PLcom/android/server/alarm/MetricsHelper;-><init>(Landroid/content/Context;Ljava/lang/Object;)V
-PLcom/android/server/alarm/MetricsHelper;->pushAlarmBatchDelivered(II[I[I[I)V
-HPLcom/android/server/alarm/MetricsHelper;->pushAlarmScheduled(Lcom/android/server/alarm/Alarm;I)V
-PLcom/android/server/alarm/MetricsHelper;->reasonToStatsReason(I)I
-PLcom/android/server/alarm/MetricsHelper;->registerPuller(Ljava/util/function/Supplier;)V
-PLcom/android/server/am/ActiveInstrumentation;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ActiveServices;ILandroid/util/ArraySet;)V
-PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/ActiveServices;)V
+PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ActiveServices;ILandroid/util/ArraySet;I)V
+HPLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda2;->run()V
 PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/ActiveServices;IZ)V
-HPLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda6;-><init>(I)V
 HPLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/am/ActiveServices;ILandroid/util/ArraySet;)V
-HPLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda9;-><init>()V
-HSPLcom/android/server/am/ActiveServices$1;-><init>(Lcom/android/server/am/ActiveServices;)V
-HSPLcom/android/server/am/ActiveServices$5;-><init>(Lcom/android/server/am/ActiveServices;)V
-PLcom/android/server/am/ActiveServices$5;->run()V
+PLcom/android/server/am/ActiveServices$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/am/ActiveServices$1;-><init>(Lcom/android/server/am/ActiveServices;I)V
+PLcom/android/server/am/ActiveServices$1;->run()V
+PLcom/android/server/am/ActiveServices$4;-><init>(Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZIZLandroid/app/IServiceConnection;ILjava/lang/String;IZLandroid/app/BackgroundStartPrivileges;)V
 PLcom/android/server/am/ActiveServices$ActiveForegroundApp;-><init>()V
 PLcom/android/server/am/ActiveServices$AppOpCallback$1;-><init>(Lcom/android/server/am/ActiveServices$AppOpCallback;)V
-PLcom/android/server/am/ActiveServices$AppOpCallback$1;->onOpNoted(IILjava/lang/String;Ljava/lang/String;II)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback$1;->onOpNoted(IILjava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/am/ActiveServices$AppOpCallback$2;-><init>(Lcom/android/server/am/ActiveServices$AppOpCallback;)V
-PLcom/android/server/am/ActiveServices$AppOpCallback;->-$$Nest$mincrementOpCountIfNeeded(Lcom/android/server/am/ActiveServices$AppOpCallback;III)V
+PLcom/android/server/am/ActiveServices$AppOpCallback$2;->onOpStarted(IILjava/lang/String;Ljava/lang/String;II)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->-$$Nest$mincrementOpCountIfNeeded(Lcom/android/server/am/ActiveServices$AppOpCallback;III)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 PLcom/android/server/am/ActiveServices$AppOpCallback;-><clinit>()V
-HPLcom/android/server/am/ActiveServices$AppOpCallback;-><init>(Lcom/android/server/am/ProcessRecord;Landroid/app/AppOpsManager;)V
-PLcom/android/server/am/ActiveServices$AppOpCallback;->incrementOpCountIfNeeded(III)V
-PLcom/android/server/am/ActiveServices$AppOpCallback;->isNotTop()Z
-PLcom/android/server/am/ActiveServices$AppOpCallback;->isObsoleteLocked()Z
-PLcom/android/server/am/ActiveServices$AppOpCallback;->registerLocked()V
+PLcom/android/server/am/ActiveServices$AppOpCallback;-><init>(Lcom/android/server/am/ProcessRecord;Landroid/app/AppOpsManager;)V
 PLcom/android/server/am/ActiveServices$BackgroundRestrictedListener;-><init>(Lcom/android/server/am/ActiveServices;)V
-PLcom/android/server/am/ActiveServices$MediaProjectionFgsTypeCustomPermission;-><init>(Lcom/android/server/am/ActiveServices;)V
+HSPLcom/android/server/am/ActiveServices$ProcessAnrTimer;-><init>(Landroid/os/Handler;ILjava/lang/String;Lcom/android/server/utils/AnrTimer$Args;)V
 HSPLcom/android/server/am/ActiveServices$ProcessAnrTimer;-><init>(Lcom/android/server/am/ActivityManagerService;ILjava/lang/String;)V
-HPLcom/android/server/am/ActiveServices$ProcessAnrTimer;->start(Lcom/android/server/am/ProcessRecord;J)V
-HSPLcom/android/server/am/ActiveServices$ServiceAnrTimer;-><init>(Lcom/android/server/am/ActivityManagerService;ILjava/lang/String;)V
-PLcom/android/server/am/ActiveServices$ServiceAnrTimer;->start(Lcom/android/server/am/ServiceRecord;J)V
-HPLcom/android/server/am/ActiveServices$ServiceLookupResult;-><init>(Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ServiceRecord;Landroid/content/ComponentName;)V
+HPLcom/android/server/am/ActiveServices$ProcessAnrTimer;->getPid(Ljava/lang/Object;)I
+HPLcom/android/server/am/ActiveServices$ProcessAnrTimer;->getUid(Ljava/lang/Object;)I
+PLcom/android/server/am/ActiveServices$ServiceDumper$$ExternalSyntheticOutline0;->m(ILjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActiveServices$ServiceDumper;-><init>(Lcom/android/server/am/ActiveServices;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
+PLcom/android/server/am/ActiveServices$ServiceDumper;->dumpHeaderLocked()V
+PLcom/android/server/am/ActiveServices$ServiceDumper;->dumpLocked()V
+PLcom/android/server/am/ActiveServices$ServiceDumper;->dumpRemainsLocked()V
+PLcom/android/server/am/ActiveServices$ServiceDumper;->dumpServiceLocalLocked(Lcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/ActiveServices$ServiceDumper;->dumpUserRemainsLocked(I)V
+PLcom/android/server/am/ActiveServices$ServiceLookupResult;-><init>(Lcom/android/server/am/ServiceRecord;Landroid/content/ComponentName;)V
 PLcom/android/server/am/ActiveServices$ServiceMap;-><init>(Lcom/android/server/am/ActiveServices;Landroid/os/Looper;I)V
-HPLcom/android/server/am/ActiveServices$ServiceMap;->ensureNotStartingBackgroundLocked(Lcom/android/server/am/ServiceRecord;)V
-PLcom/android/server/am/ActiveServices$ServiceMap;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/am/ActiveServices$ServiceMap;->rescheduleDelayedStartsLocked()V
+HPLcom/android/server/am/ActiveServices$ServiceMap;->ensureNotStartingBackgroundLocked(Lcom/android/server/am/ServiceRecord;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices$ServiceMap;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/am/ActiveServices$ServiceMap;->rescheduleDelayedStartsLocked()V
 PLcom/android/server/am/ActiveServices$ServiceRestarter;-><init>(Lcom/android/server/am/ActiveServices;)V
-HPLcom/android/server/am/ActiveServices$ServiceRestarter;-><init>(Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices$ServiceRestarter-IA;)V
 PLcom/android/server/am/ActiveServices$ServiceRestarter;->run()V
-HPLcom/android/server/am/ActiveServices$ServiceRestarter;->setService(Lcom/android/server/am/ServiceRecord;)V
-PLcom/android/server/am/ActiveServices$SystemExemptedFgsTypePermission;-><init>(Lcom/android/server/am/ActiveServices;)V
+PLcom/android/server/am/ActiveServices$SystemExemptedFgsTypePermission;-><init>(Lcom/android/server/am/ActiveServices;I)V
 PLcom/android/server/am/ActiveServices$SystemExemptedFgsTypePermission;->checkPermission(Landroid/content/Context;IILjava/lang/String;Z)I
-PLcom/android/server/am/ActiveServices;->$r8$lambda$0qkjeNpxaTsg0ZNHkscOuBnZYxA(Lcom/android/server/am/ActiveServices;)V
-HPLcom/android/server/am/ActiveServices;->$r8$lambda$btpRyn2QvHxPy1BXkZJjoK5OB78(Lcom/android/server/am/ActiveServices;IZLcom/android/server/am/ProcessRecord;)Ljava/lang/Integer;
-HPLcom/android/server/am/ActiveServices;->$r8$lambda$dtupl9fjxv8RDOZGvTs4p44nKJI(Lcom/android/server/am/ActiveServices;ILandroid/util/ArraySet;Lcom/android/server/am/ProcessRecord;)Ljava/lang/Integer;
-HPLcom/android/server/am/ActiveServices;->$r8$lambda$jK_UxrI6agW1buIHNND7c_BI120(ILcom/android/server/am/ProcessRecord;)Ljava/lang/Integer;
-PLcom/android/server/am/ActiveServices;->$r8$lambda$p_X4sOJTkojjyDKVG3R4by9T9zs(Lcom/android/server/am/ActiveServices;ILandroid/util/ArraySet;Lcom/android/server/am/ProcessRecord;)Landroid/util/Pair;
 HSPLcom/android/server/am/ActiveServices;-><clinit>()V
 HSPLcom/android/server/am/ActiveServices;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActiveServices;->appRestrictedAnyInBackground(ILjava/lang/String;)Z
-HPLcom/android/server/am/ActiveServices;->applyForegroundServiceNotificationLocked(Landroid/app/Notification;Ljava/lang/String;ILjava/lang/String;I)Landroid/app/ActivityManagerInternal$ServiceNotificationPolicy;
+HPLcom/android/server/am/ActiveServices;->applyForegroundServiceNotificationLocked(Landroid/app/Notification;Ljava/lang/String;ILjava/lang/String;I)Landroid/app/ActivityManagerInternal$ServiceNotificationPolicy;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/ActiveServices;->attachApplicationLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z
-HPLcom/android/server/am/ActiveServices;->bindServiceLocked(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;ZILjava/lang/String;Landroid/app/IApplicationThread;Ljava/lang/String;I)I
-PLcom/android/server/am/ActiveServices;->bringDownDisabledPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;IZZZ)Z
-HPLcom/android/server/am/ActiveServices;->bringDownServiceIfNeededLocked(Lcom/android/server/am/ServiceRecord;ZZZLjava/lang/String;)V
-HPLcom/android/server/am/ActiveServices;->bringDownServiceLocked(Lcom/android/server/am/ServiceRecord;Z)V
-HPLcom/android/server/am/ActiveServices;->bringUpServiceInnerLocked(Lcom/android/server/am/ServiceRecord;IZZZZZI)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->bringUpServiceLocked(Lcom/android/server/am/ServiceRecord;IZZZZZI)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->bumpServiceExecutingLocked(Lcom/android/server/am/ServiceRecord;ZLjava/lang/String;IZ)Z
+HPLcom/android/server/am/ActiveServices;->bindServiceLocked(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;ZILjava/lang/String;Lcom/android/server/am/ApplicationThreadDeferred;Ljava/lang/String;I)I+]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Landroid/app/IServiceConnection;Landroid/app/IServiceConnection$Stub$Proxy;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActiveServices;->bringDownDisabledPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;IZZZI)Z
+HPLcom/android/server/am/ActiveServices;->bringDownServiceIfNeededLocked(Lcom/android/server/am/ServiceRecord;ZZZ)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->bringDownServiceLocked(Lcom/android/server/am/ServiceRecord;Z)V+]Landroid/app/IServiceConnection;Landroid/app/IServiceConnection$Stub$Proxy;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->bringUpServiceInnerLocked(Lcom/android/server/am/ServiceRecord;IZZZZI)Ljava/lang/String;+]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->bringUpServiceLocked(Lcom/android/server/am/ServiceRecord;IZZZZI)Ljava/lang/String;
+HPLcom/android/server/am/ActiveServices;->bumpServiceExecutingLocked(Lcom/android/server/am/ServiceRecord;ZIZ)V
 PLcom/android/server/am/ActiveServices;->canBindingClientStartFgsLocked(I)Ljava/lang/String;
 HPLcom/android/server/am/ActiveServices;->cancelForegroundNotificationLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->clearRestartingIfNeededLocked(Lcom/android/server/am/ServiceRecord;)V
-PLcom/android/server/am/ActiveServices;->collectPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;ZZLandroid/util/ArrayMap;)Z
-HPLcom/android/server/am/ActiveServices;->deferServiceBringupIfFrozenLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;IZZILandroid/app/BackgroundStartPrivileges;ZLandroid/app/IServiceConnection;)Z
-HPLcom/android/server/am/ActiveServices;->dropFgsNotificationStateLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->dumpService(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[I[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
-PLcom/android/server/am/ActiveServices;->fgsStopReasonToString(I)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->findServiceLocked(Landroid/content/ComponentName;Landroid/os/IBinder;I)Lcom/android/server/am/ServiceRecord;
-PLcom/android/server/am/ActiveServices;->forceStopPackageLocked(Ljava/lang/String;I)V
-HPLcom/android/server/am/ActiveServices;->foregroundServiceProcStateChangedLocked(Lcom/android/server/am/UidRecord;)V
-HPLcom/android/server/am/ActiveServices;->generateAdditionalSeInfoFromService(Landroid/content/Intent;)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->getAllowMode(Landroid/content/Intent;Ljava/lang/String;)I
-HPLcom/android/server/am/ActiveServices;->getAppStateTracker()Lcom/android/server/AppStateTracker;
+PLcom/android/server/am/ActiveServices;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
+PLcom/android/server/am/ActiveServices;->clearRestartingIfNeededLocked(Lcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/ActiveServices;->collectPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;ZZILandroid/util/ArrayMap;)Z
+PLcom/android/server/am/ActiveServices;->decActiveForegroundAppLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ServiceRecord;)V
+HPLcom/android/server/am/ActiveServices;->deferServiceBringupIfFrozenLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;IZZILandroid/app/BackgroundStartPrivileges;ZLandroid/app/IServiceConnection;)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->dropFgsNotificationStateLocked(Lcom/android/server/am/ServiceRecord;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/ActiveServices;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/ActiveServices;->dumpService(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ServiceRecord;[Ljava/lang/String;Z)V
+PLcom/android/server/am/ActiveServices;->dumpService(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[I[Ljava/lang/String;Z)Z
+PLcom/android/server/am/ActiveServices;->forceStopPackageLocked(ILjava/lang/String;)V
+PLcom/android/server/am/ActiveServices;->foregroundAppShownEnoughLocked(Lcom/android/server/am/ActiveServices$ActiveForegroundApp;J)Z
+HPLcom/android/server/am/ActiveServices;->generateAdditionalSeInfoFromService(Landroid/content/Intent;)Ljava/lang/String;+]Landroid/content/Intent;Landroid/content/Intent;
 PLcom/android/server/am/ActiveServices;->getExtraRestartTimeInBetweenLocked()J
-HPLcom/android/server/am/ActiveServices;->getHostingRecordTriggerType(Lcom/android/server/am/ServiceRecord;)Ljava/lang/String;
+PLcom/android/server/am/ActiveServices;->getFgsTimeLimitedInfo(II)Lcom/android/server/am/ServiceRecord$TimeLimitedFgsInfo;
+PLcom/android/server/am/ActiveServices;->getForegroundServiceTypeLocked(Landroid/content/ComponentName;Landroid/os/IBinder;)I
 HPLcom/android/server/am/ActiveServices;->getProcessNameForService(Landroid/content/pm/ServiceInfo;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;ZZZ)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->getRunningServiceInfoLocked(IIIZZ)Ljava/util/List;
+HPLcom/android/server/am/ActiveServices;->getRunningServiceInfoLocked(IIZZ)Ljava/util/List;
 HPLcom/android/server/am/ActiveServices;->getServiceBindingOomAdjPolicyForAddLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ConnectionRecord;)I
-HPLcom/android/server/am/ActiveServices;->getServiceBindingOomAdjPolicyForRemovalLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ConnectionRecord;)I
-HPLcom/android/server/am/ActiveServices;->getServiceByNameLocked(Landroid/content/ComponentName;I)Lcom/android/server/am/ServiceRecord;
-HPLcom/android/server/am/ActiveServices;->getServiceMapLocked(I)Lcom/android/server/am/ActiveServices$ServiceMap;
-PLcom/android/server/am/ActiveServices;->getServicesLocked(I)Landroid/util/ArrayMap;
-HPLcom/android/server/am/ActiveServices;->getShortProcessNameForStats(ILjava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->getShortServiceNameForStats(Lcom/android/server/am/ServiceRecord;)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->hasForegroundServiceNotificationLocked(Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/am/ActiveServices;->initMediaProjectFgsTypeCustomPermission()V
-PLcom/android/server/am/ActiveServices;->initSystemExemptedFgsTypePermission()V
-PLcom/android/server/am/ActiveServices;->isBgFgsRestrictionEnabled(Lcom/android/server/am/ServiceRecord;I)Z
+HPLcom/android/server/am/ActiveServices;->getServiceMapLocked(I)Lcom/android/server/am/ActiveServices$ServiceMap;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/am/ActiveServices;->getShortProcessNameForStats(ILjava/lang/String;)Ljava/lang/String;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+PLcom/android/server/am/ActiveServices;->getTimeLimitedFgsType(I)I
+HPLcom/android/server/am/ActiveServices;->hasForegroundServiceNotificationLocked(ILjava/lang/String;Ljava/lang/String;)Z+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/ActiveServices;->isBgFgsRestrictionEnabled(ILcom/android/server/am/ServiceRecord;)Z
 PLcom/android/server/am/ActiveServices;->isDeviceProvisioningPackage(Ljava/lang/String;)Z
-PLcom/android/server/am/ActiveServices;->isForegroundServiceAllowedInBackgroundRestricted(ILjava/lang/String;)Z
+HPLcom/android/server/am/ActiveServices;->isForegroundServiceAllowedInBackgroundRestricted(ILjava/lang/String;)Z
 PLcom/android/server/am/ActiveServices;->isForegroundServiceAllowedInBackgroundRestricted(Lcom/android/server/am/ProcessRecord;)Z
 HPLcom/android/server/am/ActiveServices;->isServiceNeededLocked(Lcom/android/server/am/ServiceRecord;ZZ)Z
-PLcom/android/server/am/ActiveServices;->isServiceRestartBackoffEnabledLocked(Ljava/lang/String;)Z
 HPLcom/android/server/am/ActiveServices;->killServicesLocked(Lcom/android/server/am/ProcessRecord;Z)V
-PLcom/android/server/am/ActiveServices;->lambda$attachApplicationLocked$2()V
-PLcom/android/server/am/ActiveServices;->lambda$canBindingClientStartFgsLocked$6(ILandroid/util/ArraySet;Lcom/android/server/am/ProcessRecord;)Landroid/util/Pair;
-HPLcom/android/server/am/ActiveServices;->lambda$shouldAllowFgsStartForegroundNoBindingCheckLocked$7(IZLcom/android/server/am/ProcessRecord;)Ljava/lang/Integer;
-HPLcom/android/server/am/ActiveServices;->lambda$shouldAllowFgsWhileInUsePermissionByBindingsLocked$5(ILandroid/util/ArraySet;Lcom/android/server/am/ProcessRecord;)Ljava/lang/Integer;
-HPLcom/android/server/am/ActiveServices;->lambda$shouldAllowFgsWhileInUsePermissionLocked$4(ILcom/android/server/am/ProcessRecord;)Ljava/lang/Integer;
 HPLcom/android/server/am/ActiveServices;->logFGSStateChangeLocked(Lcom/android/server/am/ServiceRecord;IIIIIZ)V
-PLcom/android/server/am/ActiveServices;->logFgsApiBeginLocked(III)V
-PLcom/android/server/am/ActiveServices;->logFgsApiEndLocked(III)V
-HPLcom/android/server/am/ActiveServices;->logFgsBackgroundStart(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->makeRunningServiceInfoLocked(Lcom/android/server/am/ServiceRecord;)Landroid/app/ActivityManager$RunningServiceInfo;
-HPLcom/android/server/am/ActiveServices;->maybeLogBindCrossProfileService(ILjava/lang/String;I)V
+PLcom/android/server/am/ActiveServices;->logFgsBackgroundStart(Lcom/android/server/am/ServiceRecord;)V
+HPLcom/android/server/am/ActiveServices;->makeRunningServiceInfoLocked(Lcom/android/server/am/ServiceRecord;)Landroid/app/ActivityManager$RunningServiceInfo;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActiveServices;->maybeStopFgsTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V
 HPLcom/android/server/am/ActiveServices;->maybeStopShortFgsTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/ActiveServices;->maybeUpdateFgsTrackingLocked(ILcom/android/server/am/ServiceRecord;)V
 PLcom/android/server/am/ActiveServices;->maybeUpdateShortFgsTrackingLocked(Lcom/android/server/am/ServiceRecord;Z)V
-HPLcom/android/server/am/ActiveServices;->notifyBindingServiceEventLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
-HPLcom/android/server/am/ActiveServices;->onForegroundServiceNotificationUpdateLocked(ZLandroid/app/Notification;ILjava/lang/String;I)V
-HPLcom/android/server/am/ActiveServices;->performRescheduleServiceRestartOnMemoryPressureLocked(JJLjava/lang/String;J)V
-HPLcom/android/server/am/ActiveServices;->performScheduleRestartLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;J)V
+HPLcom/android/server/am/ActiveServices;->onForegroundServiceNotificationUpdateLocked(ZLandroid/app/Notification;ILjava/lang/String;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActiveServices;->performRescheduleServiceRestartOnMemoryPressureLocked(JJJLjava/lang/String;)V
+PLcom/android/server/am/ActiveServices;->performScheduleRestartLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;J)V
 PLcom/android/server/am/ActiveServices;->performServiceRestartLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->publishServiceLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Landroid/os/IBinder;)V
-HPLcom/android/server/am/ActiveServices;->realStartServiceLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ProcessRecord;Landroid/app/IApplicationThread;ILcom/android/server/am/UidRecord;ZZI)V
+HPLcom/android/server/am/ActiveServices;->publishServiceLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Landroid/os/IBinder;)V+]Landroid/app/IServiceConnection;Landroid/app/IServiceConnection$Stub$Proxy;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->realStartServiceLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ProcessRecord;Landroid/app/IApplicationThread;ZI)V+]Landroid/app/IApplicationThread;Lcom/android/server/am/ApplicationThreadDeferred;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/am/ActiveServices;->registerAppOpCallbackLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->removeConnectionLocked(Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;Z)I
-PLcom/android/server/am/ActiveServices;->removeServiceNotificationDeferralsLocked(Ljava/lang/String;I)V
-PLcom/android/server/am/ActiveServices;->removeServiceRestartBackoffEnabledLocked(Ljava/lang/String;)V
+HPLcom/android/server/am/ActiveServices;->removeConnectionLocked(Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;Z)I+]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Landroid/app/IServiceConnection;Landroid/app/IServiceConnection$Stub$Proxy;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZI)Z
-HPLcom/android/server/am/ActiveServices;->requestServiceBindingsLocked(Lcom/android/server/am/ServiceRecord;ZI)V
-HPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZIZLandroid/app/IServiceConnection;)Z
+HPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZIZLandroid/app/IServiceConnection;)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;
 PLcom/android/server/am/ActiveServices;->requestUpdateActiveForegroundAppsLocked(Lcom/android/server/am/ActiveServices$ServiceMap;J)V
-PLcom/android/server/am/ActiveServices;->rescheduleServiceRestartIfPossibleLocked(JJLjava/lang/String;J)V
-HPLcom/android/server/am/ActiveServices;->rescheduleServiceRestartOnMemoryPressureIfNeededLocked(IILjava/lang/String;J)V
+PLcom/android/server/am/ActiveServices;->rescheduleServiceRestartIfPossibleLocked(JJJLjava/lang/String;)V
 HPLcom/android/server/am/ActiveServices;->resetFgsRestrictionLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZLandroid/app/ForegroundServiceDelegationOptions;ZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;
-HPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZLandroid/app/ForegroundServiceDelegationOptions;ZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;
-PLcom/android/server/am/ActiveServices;->scheduleServiceForegroundTransitionTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->scheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;Z)Z
+HPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZLandroid/app/ForegroundServiceDelegationOptions;ZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActiveServices;->schedulePendingServiceStartLocked(ILjava/lang/String;)V
+PLcom/android/server/am/ActiveServices;->scheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;Z)Z
 HPLcom/android/server/am/ActiveServices;->scheduleServiceTimeoutLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActiveServices;->sendServiceArgsLocked(Lcom/android/server/am/ServiceRecord;ZZ)V
-HPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;IIIZLandroid/content/Intent;)V
-HPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;ZZZI)V
+HPLcom/android/server/am/ActiveServices;->sendServiceArgsLocked(Lcom/android/server/am/ServiceRecord;ZZ)V+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;III)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;ZZZI)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/am/ActiveServices;->serviceTimeout(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActiveServices;->setAllowListWhileInUsePermissionInFgs()V
-HPLcom/android/server/am/ActiveServices;->setFgsRestrictionLocked(Ljava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;ILandroid/app/BackgroundStartPrivileges;Z)V
-HPLcom/android/server/am/ActiveServices;->setFgsRestrictionLocked(Ljava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;ILandroid/app/BackgroundStartPrivileges;ZZ)V
+HPLcom/android/server/am/ActiveServices;->setFgsRestrictionLocked(Ljava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;Landroid/app/BackgroundStartPrivileges;ZZ)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
 HPLcom/android/server/am/ActiveServices;->setServiceForegroundInnerLocked(Lcom/android/server/am/ServiceRecord;ILandroid/app/Notification;III)V
-PLcom/android/server/am/ActiveServices;->setServiceForegroundLocked(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
-PLcom/android/server/am/ActiveServices;->shouldAllowBootCompletedStart(Lcom/android/server/am/ServiceRecord;I)Z
-HPLcom/android/server/am/ActiveServices;->shouldAllowFgsStartForegroundNoBindingCheckLocked(IIILjava/lang/String;Lcom/android/server/am/ServiceRecord;Landroid/app/BackgroundStartPrivileges;)I
-HPLcom/android/server/am/ActiveServices;->shouldAllowFgsStartForegroundWithBindingCheckLocked(ILjava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;Landroid/app/BackgroundStartPrivileges;Z)I
-HPLcom/android/server/am/ActiveServices;->shouldAllowFgsWhileInUsePermissionByBindingsLocked(I)I
-HPLcom/android/server/am/ActiveServices;->shouldAllowFgsWhileInUsePermissionLocked(Ljava/lang/String;IILcom/android/server/am/ProcessRecord;Landroid/app/BackgroundStartPrivileges;)I
-PLcom/android/server/am/ActiveServices;->shouldShowFgsNotificationLocked(Lcom/android/server/am/ServiceRecord;)Z
+HPLcom/android/server/am/ActiveServices;->setServiceForegroundLocked(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
+PLcom/android/server/am/ActiveServices;->shouldAllowBootCompletedStart(ILcom/android/server/am/ServiceRecord;)Z
+HPLcom/android/server/am/ActiveServices;->shouldAllowFgsStartForegroundNoBindingCheckLocked(IIILjava/lang/String;Lcom/android/server/am/ServiceRecord;Landroid/app/BackgroundStartPrivileges;)I+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Landroid/content/Context;Landroid/app/ContextImpl;
+HPLcom/android/server/am/ActiveServices;->shouldAllowFgsWhileInUsePermissionLocked(Ljava/lang/String;IILcom/android/server/am/ProcessRecord;Landroid/app/BackgroundStartPrivileges;)I+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;
 PLcom/android/server/am/ActiveServices;->signalForegroundServiceObserversLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->startFgsDeferralTimerLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Landroid/content/Intent;Lcom/android/server/am/ServiceRecord;ZZILjava/lang/String;IZLjava/lang/String;)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;IILjava/lang/String;IZZLandroid/app/BackgroundStartPrivileges;Ljava/lang/String;)Landroid/content/ComponentName;
-PLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;ILandroid/app/BackgroundStartPrivileges;)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;ILandroid/app/BackgroundStartPrivileges;ZILjava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;IZILjava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V
+HPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Landroid/content/Intent;Lcom/android/server/am/ServiceRecord;ZZILjava/lang/String;IZLjava/lang/String;)Landroid/content/ComponentName;+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;IILjava/lang/String;IZZLandroid/app/BackgroundStartPrivileges;Ljava/lang/String;)Landroid/content/ComponentName;+]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;ILandroid/app/BackgroundStartPrivileges;ZILjava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTrackerImpl;
+HPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/am/ActiveServices;->stopServiceAndUpdateAllowlistManagerLocked(Lcom/android/server/am/ServiceRecord;)V
 PLcom/android/server/am/ActiveServices;->stopServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IZILjava/lang/String;Ljava/lang/String;)I
+PLcom/android/server/am/ActiveServices;->stopServiceLocked(Lcom/android/server/am/ServiceRecord;Z)V
 HPLcom/android/server/am/ActiveServices;->stopServiceTokenLocked(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
-PLcom/android/server/am/ActiveServices;->systemServicesReady()V
 HPLcom/android/server/am/ActiveServices;->traceInstant(Ljava/lang/String;Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->unbindFinishedLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Z)V
-HPLcom/android/server/am/ActiveServices;->unbindServiceLocked(Landroid/app/IServiceConnection;)Z
-HPLcom/android/server/am/ActiveServices;->unscheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;IZ)Z
+PLcom/android/server/am/ActiveServices;->unbindFinishedLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;)V
+HPLcom/android/server/am/ActiveServices;->unbindServiceLocked(Landroid/app/IServiceConnection;)Z+]Landroid/app/IServiceConnection;Landroid/app/IServiceConnection$Stub$Proxy;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActiveServices;->unregisterAppOpCallbackLocked(Lcom/android/server/am/ServiceRecord;)V
+HPLcom/android/server/am/ActiveServices;->unscheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;IZ)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/am/ActiveServices;->unscheduleShortFgsTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V
-PLcom/android/server/am/ActiveServices;->updateAllowlistManagerLocked(Lcom/android/server/am/ProcessServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->updateForegroundApps(Lcom/android/server/am/ActiveServices$ServiceMap;)V
-HPLcom/android/server/am/ActiveServices;->updateNumForegroundServicesLocked()V
-HPLcom/android/server/am/ActiveServices;->updateServiceClientActivitiesLocked(Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ConnectionRecord;Z)Z
+HPLcom/android/server/am/ActiveServices;->updateAllowlistManagerLocked(Lcom/android/server/am/ProcessServiceRecord;)V
+HPLcom/android/server/am/ActiveServices;->updateNumForegroundServicesLocked()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActiveServices;->updateScreenStateLocked(Z)V
+PLcom/android/server/am/ActiveServices;->updateServiceApplicationInfoLocked(Landroid/content/pm/ApplicationInfo;)V
+HPLcom/android/server/am/ActiveServices;->updateServiceClientActivitiesLocked(Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ConnectionRecord;Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/ActiveServices;->updateServiceConnectionActivitiesLocked(Lcom/android/server/am/ProcessServiceRecord;)V
 HPLcom/android/server/am/ActiveServices;->updateServiceForegroundLocked(Lcom/android/server/am/ProcessServiceRecord;Z)V
 HPLcom/android/server/am/ActiveServices;->validateForegroundServiceType(Lcom/android/server/am/ServiceRecord;III)Landroid/util/Pair;
-PLcom/android/server/am/ActiveServices;->verifyPackage(Ljava/lang/String;I)Z
-PLcom/android/server/am/ActiveServices;->withinFgsDeferRateLimit(Lcom/android/server/am/ServiceRecord;J)Z
+PLcom/android/server/am/ActiveUids$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ActiveUids$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/am/ActiveUids;-><init>(Lcom/android/server/am/ActivityManagerService;Z)V
-HSPLcom/android/server/am/ActiveUids;->clear()V
-HPLcom/android/server/am/ActiveUids;->get(I)Lcom/android/server/am/UidRecord;
-HPLcom/android/server/am/ActiveUids;->put(ILcom/android/server/am/UidRecord;)V
-HPLcom/android/server/am/ActiveUids;->remove(I)V
-HSPLcom/android/server/am/ActiveUids;->size()I
-HPLcom/android/server/am/ActiveUids;->valueAt(I)Lcom/android/server/am/UidRecord;
-HSPLcom/android/server/am/ActivityManagerConstants$1;-><init>(Lcom/android/server/am/ActivityManagerConstants;)V
+PLcom/android/server/am/ActiveUids;->dump(ILjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/am/ActiveUids;->dumpProto(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;IJ)V
+HPLcom/android/server/am/ActiveUids;->get(I)Lcom/android/server/am/UidRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/am/ActiveUids;->put(ILcom/android/server/am/UidRecord;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/am/ActiveUids;->remove(I)V
+HPLcom/android/server/am/ActiveUids;->valueAt(I)Lcom/android/server/am/UidRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/ActivityManagerConstants$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/PhantomProcessList;)V
+PLcom/android/server/am/ActivityManagerConstants$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/am/ActivityManagerConstants$$ExternalSyntheticOutline0;->m(JLjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerConstants$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerConstants$1;-><init>(Lcom/android/server/am/ActivityManagerConstants;I)V
 PLcom/android/server/am/ActivityManagerConstants$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
-HSPLcom/android/server/am/ActivityManagerConstants$2;-><init>(Lcom/android/server/am/ActivityManagerConstants;)V
-PLcom/android/server/am/ActivityManagerConstants$2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/am/ActivityManagerConstants;-><clinit>()V
-HSPLcom/android/server/am/ActivityManagerConstants;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;)V
-HSPLcom/android/server/am/ActivityManagerConstants;->computeEmptyProcessLimit(I)I
-PLcom/android/server/am/ActivityManagerConstants;->loadDeviceConfigConstants()V
-HSPLcom/android/server/am/ActivityManagerConstants;->loadNativeBootDeviceConfigConstants()V
-PLcom/android/server/am/ActivityManagerConstants;->start(Landroid/content/ContentResolver;)V
-PLcom/android/server/am/ActivityManagerConstants;->updateActivityStartsLoggingEnabled()V
-HPLcom/android/server/am/ActivityManagerConstants;->updateConstants()V
-PLcom/android/server/am/ActivityManagerConstants;->updateForceEnablePssProfiling()V
-PLcom/android/server/am/ActivityManagerConstants;->updateForegroundServiceStartsLoggingEnabled()V
+HSPLcom/android/server/am/ActivityManagerConstants;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService$UiHandler;)V
+PLcom/android/server/am/ActivityManagerConstants;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ActivityManagerConstants;->onChange(ZLandroid/net/Uri;)V
+PLcom/android/server/am/ActivityManagerConstants;->updateConstants()V
 PLcom/android/server/am/ActivityManagerDebugConfig;-><clinit>()V
-HSPLcom/android/server/am/ActivityManagerProcLock;-><init>()V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda0;-><init>([ILjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/util/LinkedList;)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda18;->run()V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/am/ActivityManagerService;JJZZ)V
-HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
-HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;->run()V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/wm/ActivityTaskManagerInternal;)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda23;->run()V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/am/ActivityManagerService;JZLcom/android/server/am/ProcessRecord;IJ)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda16;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda16;->run()V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda1;-><init>(Ljava/lang/String;[I)V
+HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/am/ActivityManagerService;JJZZ)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda23;-><init>(Ljava/io/PrintWriter;JJ)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda28;-><init>(Landroid/util/SparseArray;[Landroid/os/Debug$MemoryInfo;Lcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[J[J[JLjava/util/ArrayList;[J[J[J[J[J[J[J[J[J[J[Ljava/util/ArrayList;[J[J)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda28;->accept(Ljava/lang/Object;)V
 PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda3;-><init>(Ljava/lang/StringBuilder;Landroid/content/pm/IPackageManager;I)V
 PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/app/IUnsafeIntentStrictModeCallback;Landroid/content/Intent;I)V
-PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda6;->run()V
-HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda7;-><init>(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda7;->run()V
-HPLcom/android/server/am/ActivityManagerService$14;-><init>(Lcom/android/server/am/ActivityManagerService;I)V
-PLcom/android/server/am/ActivityManagerService$14;->binderDied()V
-HPLcom/android/server/am/ActivityManagerService$15;-><init>(Lcom/android/server/am/ActivityManagerService;IILandroid/os/IBinder;Ljava/lang/String;Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;)V
-HPLcom/android/server/am/ActivityManagerService$15;->run()V
-PLcom/android/server/am/ActivityManagerService$16;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/io/File;Landroid/app/ApplicationErrorReport$CrashInfo;ZLandroid/os/DropBoxManager;)V
-PLcom/android/server/am/ActivityManagerService$16;->run()V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/ActivityManagerService;I)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda4;->binderDied()V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/ActivityManagerService;I)V
+HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/am/ActivityManagerService;I)V
+HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda7;->run()V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/am/ActivityManagerService;ZILjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda9;-><init>(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda9;->run()V
+PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$11;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Landroid/content/Context;)V
+PLcom/android/server/am/ActivityManagerService$11;->onChange(Z)V
+PLcom/android/server/am/ActivityManagerService$12;-><init>(Lcom/android/server/am/ActivityManagerService;IILandroid/os/IBinder;Ljava/lang/String;Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;)V
+PLcom/android/server/am/ActivityManagerService$12;->run()V
+PLcom/android/server/am/ActivityManagerService$14;-><init>(Z)V
+PLcom/android/server/am/ActivityManagerService$14;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/am/ActivityManagerService$1;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/ActivityManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/am/ActivityManagerService$1;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/am/ActivityManagerService$1;->dumpNormal(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 HSPLcom/android/server/am/ActivityManagerService$2;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchCancelled(J)V
 PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchFinished(JLandroid/content/ComponentName;JI)V
-PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunched(JLandroid/content/ComponentName;II)V
+HPLcom/android/server/am/ActivityManagerService$2;->onActivityLaunched(IIJLandroid/content/ComponentName;)V
+PLcom/android/server/am/ActivityManagerService$2;->onIntentFailed(J)V
 PLcom/android/server/am/ActivityManagerService$2;->onIntentStarted(Landroid/content/Intent;J)V
 PLcom/android/server/am/ActivityManagerService$2;->onReportFullyDrawn(JJ)V
-HSPLcom/android/server/am/ActivityManagerService$3;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActivityManagerService$3;->allowFilterResult(Lcom/android/server/am/BroadcastFilter;Ljava/util/List;)Z
-HPLcom/android/server/am/ActivityManagerService$3;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
-PLcom/android/server/am/ActivityManagerService$3;->getIntentFilter(Lcom/android/server/am/BroadcastFilter;)Landroid/content/IntentFilter;
-HPLcom/android/server/am/ActivityManagerService$3;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
-HPLcom/android/server/am/ActivityManagerService$3;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/am/BroadcastFilter;)Z
-HPLcom/android/server/am/ActivityManagerService$3;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
-HPLcom/android/server/am/ActivityManagerService$3;->newArray(I)[Lcom/android/server/am/BroadcastFilter;
-HPLcom/android/server/am/ActivityManagerService$3;->newArray(I)[Ljava/lang/Object;
-HPLcom/android/server/am/ActivityManagerService$3;->newResult(Lcom/android/server/pm/Computer;Lcom/android/server/am/BroadcastFilter;IIJ)Lcom/android/server/am/BroadcastFilter;
-HPLcom/android/server/am/ActivityManagerService$3;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;
+PLcom/android/server/am/ActivityManagerService$3;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/ActivityManagerService$4;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$5;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$8;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$9$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ActivityManagerService$9;)V
-PLcom/android/server/am/ActivityManagerService$9;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$9;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-HPLcom/android/server/am/ActivityManagerService$AppDeathRecipient;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;)V
-HPLcom/android/server/am/ActivityManagerService$AppDeathRecipient;->binderDied()V
-PLcom/android/server/am/ActivityManagerService$CacheBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$DbBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HSPLcom/android/server/am/ActivityManagerService$FgsTempAllowListItem;-><init>(JILjava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService$6;-><init>(Lcom/android/server/am/ActivityManagerService;I)V
+PLcom/android/server/am/ActivityManagerService$7;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$7;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+PLcom/android/server/am/ActivityManagerService$AppDeathRecipient;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;)V
+PLcom/android/server/am/ActivityManagerService$AppDeathRecipient;->binderDied()V
+PLcom/android/server/am/ActivityManagerService$DbBinder;-><init>(I)V
+PLcom/android/server/am/ActivityManagerService$DbBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService$FgsTempAllowListItem;-><init>(IILjava/lang/String;J)V
 HSPLcom/android/server/am/ActivityManagerService$GetBackgroundStartPrivilegesFunctor;-><init>()V
-HSPLcom/android/server/am/ActivityManagerService$GetBackgroundStartPrivilegesFunctor;-><init>(Lcom/android/server/am/ActivityManagerService$GetBackgroundStartPrivilegesFunctor-IA;)V
-PLcom/android/server/am/ActivityManagerService$GraphicsBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;-><init>(Landroid/os/Handler;Landroid/content/Context;)V
-PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->getPolicy()I
-PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->getValidEnforcementPolicy(Ljava/lang/String;)I
-PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->isDisabled()Z
-PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->registerObserver()V
+HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;-><init>(Lcom/android/server/am/ActivityManagerService$UiHandler;Landroid/content/Context;)V
+PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->update()V
-HSPLcom/android/server/am/ActivityManagerService$Injector;->-$$Nest$fputmUserController(Lcom/android/server/am/ActivityManagerService$Injector;Lcom/android/server/am/UserController;)V
 HSPLcom/android/server/am/ActivityManagerService$Injector;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/am/ActivityManagerService$Injector;->clearCallingIdentity()J
-HPLcom/android/server/am/ActivityManagerService$Injector;->ensureHasNetworkManagementInternal()Z
-HSPLcom/android/server/am/ActivityManagerService$Injector;->getAppOpsService(Ljava/io/File;Ljava/io/File;Landroid/os/Handler;)Lcom/android/server/appop/AppOpsService;
-HSPLcom/android/server/am/ActivityManagerService$Injector;->getBroadcastQueues(Lcom/android/server/am/ActivityManagerService;)[Lcom/android/server/am/BroadcastQueue;
-HPLcom/android/server/am/ActivityManagerService$Injector;->getCallingPid()I
-HPLcom/android/server/am/ActivityManagerService$Injector;->getCallingUid()I
-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;
-HPLcom/android/server/am/ActivityManagerService$Injector;->isNetworkRestrictedForUid(I)Z
-HPLcom/android/server/am/ActivityManagerService$Injector;->restoreCallingIdentity(J)V
-HSPLcom/android/server/am/ActivityManagerService$IntentFirewallInterface;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HSPLcom/android/server/am/ActivityManagerService$IntentFirewallInterface;->getAMSLock()Ljava/lang/Object;
+PLcom/android/server/am/ActivityManagerService$IntentCreatorToken$Key;-><init>(Landroid/content/Intent;Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService$IntentCreatorToken$Key;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/am/ActivityManagerService$IntentCreatorToken$Key;->hashCode()I
+PLcom/android/server/am/ActivityManagerService$IntentCreatorToken;-><init>(Landroid/content/Intent;Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService$IntentCreatorToken;->finalize()V
+PLcom/android/server/am/ActivityManagerService$IntentCreatorToken;->isValid(Landroid/content/Intent;)Z
 PLcom/android/server/am/ActivityManagerService$ItemMatcher;-><init>()V
-PLcom/android/server/am/ActivityManagerService$ItemMatcher;->build(Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService$ItemMatcher;->match(Ljava/lang/Object;Landroid/content/ComponentName;)Z
+PLcom/android/server/am/ActivityManagerService$ItemMatcher;->match(Landroid/content/ComponentName;Ljava/lang/Object;)Z
 HSPLcom/android/server/am/ActivityManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/am/ActivityManagerService$Lifecycle;->getService()Lcom/android/server/am/ActivityManagerService;
 HSPLcom/android/server/am/ActivityManagerService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/am/ActivityManagerService$Lifecycle;->onStart()V
-HSPLcom/android/server/am/ActivityManagerService$Lifecycle;->startService(Lcom/android/server/SystemServiceManager;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/am/ActivityManagerService;
+PLcom/android/server/am/ActivityManagerService$LocalService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ActivityManagerService$LocalService;Landroid/app/IUnsafeIntentStrictModeCallback;ILandroid/content/Intent;I)V
+PLcom/android/server/am/ActivityManagerService$LocalService$$ExternalSyntheticLambda1;->run()V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->addAppBackgroundRestrictionListener(Landroid/app/ActivityManagerInternal$AppBackgroundRestrictionListener;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->addBindServiceEventListener(Landroid/app/ActivityManagerInternal$BindServiceEventListener;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->addBroadcastEventListener(Landroid/app/ActivityManagerInternal$BroadcastEventListener;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->addCreatorToken(Landroid/content/Intent;Ljava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->addForegroundServiceStateListener(Landroid/app/ActivityManagerInternal$ForegroundServiceStateListener;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->addPendingTopUid(IILandroid/app/IApplicationThread;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->applyForegroundServiceNotification(Landroid/app/Notification;Ljava/lang/String;ILjava/lang/String;I)Landroid/app/ActivityManagerInternal$ServiceNotificationPolicy;
+HPLcom/android/server/am/ActivityManagerService$LocalService;->addPendingTopUid(IILandroid/app/IApplicationThread;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->addStartInfoTimestamp(IJIII)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->applyForegroundServiceNotification(Landroid/app/Notification;Ljava/lang/String;ILjava/lang/String;I)Landroid/app/ActivityManagerInternal$ServiceNotificationPolicy;
+PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastCloseSystemDialogs(Ljava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastGlobalConfigurationChanged(IZ)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntent(Landroid/content/Intent;Landroid/content/IIntentReceiver;[Ljava/lang/String;ZI[ILjava/util/function/BiFunction;Landroid/os/Bundle;)I
 PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/app/IApplicationThread;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZILandroid/app/BackgroundStartPrivileges;[I)I
-HPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/am/ActivityManagerService$LocalService;->deletePendingTopUid(IJ)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentWithCallback(Landroid/content/Intent;Landroid/content/IIntentReceiver;[Ljava/lang/String;I[ILjava/util/function/BiFunction;Landroid/os/Bundle;)I
+PLcom/android/server/am/ActivityManagerService$LocalService;->canAllowWhileInUsePermissionInFgs(IILjava/lang/String;)Z
+HPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;
+PLcom/android/server/am/ActivityManagerService$LocalService;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->clearPendingIntentAllowBgActivityStarts(Landroid/content/IIntentSender;Landroid/os/IBinder;)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->deletePendingTopUid(IJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/am/ActivityManagerService$LocalService;->enforceBroadcastOptionsPermissions(Landroid/os/Bundle;I)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->ensureNotSpecialUser(I)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->finishBooting()V
 PLcom/android/server/am/ActivityManagerService$LocalService;->getBootTimeTempAllowListDuration()J
 PLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentProfileIds()[I
 HPLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentUserId()I
 PLcom/android/server/am/ActivityManagerService$LocalService;->getInstrumentationSourceUid(I)I
+PLcom/android/server/am/ActivityManagerService$LocalService;->getMemoryStateForProcesses()Ljava/util/List;
+PLcom/android/server/am/ActivityManagerService$LocalService;->getPendingIntentActivityAsApp(ILandroid/content/Intent;ILandroid/os/Bundle;Ljava/lang/String;I)Landroid/app/PendingIntent;
+PLcom/android/server/am/ActivityManagerService$LocalService;->getPendingIntentActivityAsApp(I[Landroid/content/Intent;ILandroid/os/Bundle;Ljava/lang/String;I)Landroid/app/PendingIntent;
 HPLcom/android/server/am/ActivityManagerService$LocalService;->getRestrictionLevel(I)I
 PLcom/android/server/am/ActivityManagerService$LocalService;->getServiceStartForegroundTimeout()I
 HPLcom/android/server/am/ActivityManagerService$LocalService;->getUidProcessState(I)I
 HPLcom/android/server/am/ActivityManagerService$LocalService;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I
 HPLcom/android/server/am/ActivityManagerService$LocalService;->hasForegroundServiceNotification(Ljava/lang/String;ILjava/lang/String;)Z
 PLcom/android/server/am/ActivityManagerService$LocalService;->hasStartedUserState(I)Z
-HPLcom/android/server/am/ActivityManagerService$LocalService;->isAppBad(Ljava/lang/String;I)Z
+PLcom/android/server/am/ActivityManagerService$LocalService;->isActivityStartsLoggingEnabled()Z
+HPLcom/android/server/am/ActivityManagerService$LocalService;->isAppBad(Ljava/lang/String;I)Z+]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap;
+PLcom/android/server/am/ActivityManagerService$LocalService;->isAppForeground(I)Z
 HPLcom/android/server/am/ActivityManagerService$LocalService;->isAppStartModeDisabled(ILjava/lang/String;)Z
 HPLcom/android/server/am/ActivityManagerService$LocalService;->isAssociatedCompanionApp(II)Z
+PLcom/android/server/am/ActivityManagerService$LocalService;->isBackgroundActivityStartsEnabled()Z
 HPLcom/android/server/am/ActivityManagerService$LocalService;->isBgAutoRestrictedBucketFeatureFlagEnabled()Z
 PLcom/android/server/am/ActivityManagerService$LocalService;->isBooted()Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isBooting()Z
-HPLcom/android/server/am/ActivityManagerService$LocalService;->isDeviceOwner(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isModernQueueEnabled()Z
-HPLcom/android/server/am/ActivityManagerService$LocalService;->isPendingTopUid(I)Z
+HPLcom/android/server/am/ActivityManagerService$LocalService;->isBooting()Z
+PLcom/android/server/am/ActivityManagerService$LocalService;->isDeviceOwner(I)Z
+HPLcom/android/server/am/ActivityManagerService$LocalService;->isPendingTopUid(I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/am/ActivityManagerService$LocalService;->isProfileOwner(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isSplitConfigurationChange(I)Z
 PLcom/android/server/am/ActivityManagerService$LocalService;->isSystemReady()Z
 HPLcom/android/server/am/ActivityManagerService$LocalService;->isTempAllowlistedForFgsWhileInUse(I)Z
 HPLcom/android/server/am/ActivityManagerService$LocalService;->isUidActive(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isUserRunning(II)Z
+HPLcom/android/server/am/ActivityManagerService$LocalService;->isUserRunning(II)Z
 PLcom/android/server/am/ActivityManagerService$LocalService;->killAllBackgroundProcessesExcept(II)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->logFgsApiBegin(III)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->logFgsApiEnd(III)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->noteAlarmFinish(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService$LocalService;->noteAlarmStart(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->noteAlarmStart(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->noteWakeupAlarm(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->notifyNetworkPolicyRulesUpdated(IJ)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->onForegroundServiceNotificationUpdate(ZLandroid/app/Notification;ILjava/lang/String;I)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->onUidBlockedReasonsChanged(II)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->onWakefulnessChanged(I)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->prepareForPossibleShutdown()V
 PLcom/android/server/am/ActivityManagerService$LocalService;->registerAnrController(Landroid/app/AnrController;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->registerNetworkPolicyUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->scheduleAppGcs()V
+PLcom/android/server/am/ActivityManagerService$LocalService;->reportCurKeyguardUsageEvent(Z)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->scheduleAppGcs()V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setBooted(Z)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setBooting(Z)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setCompanionAppUids(ILjava/util/Set;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setDeviceIdleAllowlist([I[I)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setDeviceOwnerUid(I)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setHasOverlayUi(IZ)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->setPendingIntentAllowBgActivityStarts(Landroid/content/IIntentSender;Landroid/os/IBinder;I)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->setPendingIntentAllowlistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;JIILjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->setPendingIntentAllowBgActivityStarts(Landroid/content/IIntentSender;Landroid/os/IBinder;I)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->setPendingIntentAllowlistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;JIILjava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setProfileOwnerUid(Landroid/util/ArraySet;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setVoiceInteractionManagerProvider(Landroid/app/ActivityManagerInternal$VoiceInteractionManagerProvider;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->shouldConfirmCredentials(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->shouldWaitForNetworkRulesUpdate(I)Z
-HPLcom/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;Ljava/lang/String;ILandroid/app/BackgroundStartPrivileges;)Landroid/content/ComponentName;
-PLcom/android/server/am/ActivityManagerService$LocalService;->trimApplications()V
-PLcom/android/server/am/ActivityManagerService$LocalService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;Landroid/app/assist/ActivityId;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->shouldConfirmCredentials(I)Z
+PLcom/android/server/am/ActivityManagerService$LocalService;->shouldDelayHomeLaunch(I)Z
+PLcom/android/server/am/ActivityManagerService$LocalService;->startProcess(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZZLjava/lang/String;Landroid/content/ComponentName;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->startServiceInPackage(ILandroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;ILandroid/app/BackgroundStartPrivileges;)Landroid/content/ComponentName;
+PLcom/android/server/am/ActivityManagerService$LocalService;->tempAllowWhileInUsePermissionInFgs(IJ)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->tempAllowlistForPendingIntent(IIIJIILjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->triggerUnsafeIntentStrictMode(IILandroid/content/Intent;)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->trimApplications()V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;Landroid/app/assist/ActivityId;)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->updateCpuStats()V
-HPLcom/android/server/am/ActivityManagerService$LocalService;->updateDeviceIdleTempAllowlist([IIZJIILjava/lang/String;I)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->updateDeviceIdleTempAllowlist([IIZJIILjava/lang/String;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/am/ActivityManagerService$LocalService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->updateOomAdj(I)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->updateOomLevelsForDisplay(I)V
-PLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda1;-><init>(Landroid/os/Message;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda2;-><init>(Landroid/os/Message;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler;->$r8$lambda$-BaOH0nhWmB1j4fAdRCLVwJvRCA(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BindServiceEventListener;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler;->$r8$lambda$bz9CTa7TXqawLiiOdBfpNP_dnbI(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BroadcastEventListener;)V
-HSPLcom/android/server/am/ActivityManagerService$MainHandler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler;->lambda$handleMessage$1(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BroadcastEventListener;)V
-HPLcom/android/server/am/ActivityManagerService$MainHandler;->lambda$handleMessage$2(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BindServiceEventListener;)V
+PLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda1;-><init>(Landroid/os/Message;I)V
+HPLcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V+]Landroid/app/ActivityManagerInternal$BindServiceEventListener;Lcom/android/server/am/AppBindServiceEventsTracker;]Landroid/app/ActivityManagerInternal$BroadcastEventListener;Lcom/android/server/am/AppBroadcastEventsTracker;
 PLcom/android/server/am/ActivityManagerService$MemBinder$1;-><init>(Lcom/android/server/am/ActivityManagerService$MemBinder;)V
+PLcom/android/server/am/ActivityManagerService$MemBinder$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/am/ActivityManagerService$MemBinder$1;->dumpHigh(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 PLcom/android/server/am/ActivityManagerService$MemBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActivityManagerService$PendingTempAllowlist;-><init>(IJILjava/lang/String;II)V
-PLcom/android/server/am/ActivityManagerService$PermissionController;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActivityManagerService$PermissionController;->checkPermission(Ljava/lang/String;II)Z
-PLcom/android/server/am/ActivityManagerService$PermissionController;->getPackagesForUid(I)[Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService$MemBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$MemItem;-><init>(Ljava/lang/String;Ljava/lang/String;JJJJI)V
+PLcom/android/server/am/ActivityManagerService$MemItem;-><init>(Ljava/lang/String;Ljava/lang/String;JJJJIIZ)V
+PLcom/android/server/am/ActivityManagerService$MyBinderProxyCountEventListener;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HPLcom/android/server/am/ActivityManagerService$PendingTempAllowlist;-><init>(IILjava/lang/String;IJI)V
+PLcom/android/server/am/ActivityManagerService$PermissionController;->checkPermission(Ljava/lang/String;II)Z
+HPLcom/android/server/am/ActivityManagerService$PermissionController;->getPackagesForUid(I)[Ljava/lang/String;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
 PLcom/android/server/am/ActivityManagerService$PermissionController;->isRuntimePermission(Ljava/lang/String;)Z
 HSPLcom/android/server/am/ActivityManagerService$PidMap;-><init>()V
-HPLcom/android/server/am/ActivityManagerService$PidMap;->doAddInternal(ILcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService$PidMap;->doRemoveInternal(ILcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/ActivityManagerService$PidMap;->get(I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService$PidMap;->size()I
+HSPLcom/android/server/am/ActivityManagerService$PidMap;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HPLcom/android/server/am/ActivityManagerService$PidMap;->get(I)Lcom/android/server/am/ProcessRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/am/ActivityManagerService$PidMap;->valueAt(I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService$ProcessChangeItem;-><init>()V
+PLcom/android/server/am/ActivityManagerService$ProcStatsRunnable;-><init>(Lcom/android/server/am/ProcessStatsService;)V
+PLcom/android/server/am/ActivityManagerService$ProcStatsRunnable;->run()V
 PLcom/android/server/am/ActivityManagerService$ProcessInfoService;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$StickyBroadcast;-><init>()V
-HPLcom/android/server/am/ActivityManagerService$StickyBroadcast;->create(Landroid/content/Intent;ZII)Lcom/android/server/am/ActivityManagerService$StickyBroadcast;
+PLcom/android/server/am/ActivityManagerService$ProcessInfoService;->getProcessStatesAndOomScoresFromPids([I[I[I)V
 HSPLcom/android/server/am/ActivityManagerService$UiHandler;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActivityManagerService$UiHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;-><init>(Ljava/lang/Boolean;)V
-PLcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;->isProcessFrozen()Ljava/lang/Boolean;
-PLcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;->withProcessFrozenState(Z)Lcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;
-HSPLcom/android/server/am/ActivityManagerService;->$r8$lambda$4jAnBrF-SmuZoSRgfVhHQN2lKao(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->$r8$lambda$Dp0egYYO_wvfUqcu1s5QAPQddjA([ILjava/lang/String;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->$r8$lambda$IE8SqRKSFsLlY7GC_8cKvVDeK0g(Lcom/android/server/am/ActivityManagerService;Ljava/util/LinkedList;)V
-PLcom/android/server/am/ActivityManagerService;->$r8$lambda$IzjUh_o8KWqydvYO0dnNprsu32k(Lcom/android/server/am/ActivityManagerService;JJZZLcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->$r8$lambda$e8WnLKSH7e6sDHRELddgL3PL_d8(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->$r8$lambda$gwpxWp5Qwn61kRYqtmpQ9WyBNik(Lcom/android/server/am/ActivityManagerService;Landroid/app/IUnsafeIntentStrictModeCallback;Landroid/content/Intent;I)V
-PLcom/android/server/am/ActivityManagerService;->$r8$lambda$p1-L-hA5wy-OdXKEh0TX_hvZ7h0(Ljava/lang/StringBuilder;Landroid/content/pm/IPackageManager;ILjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmCompanionAppUidsMap(Lcom/android/server/am/ActivityManagerService;)Ljava/util/Map;
-HPLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmDeviceOwnerUid(Lcom/android/server/am/ActivityManagerService;)I
-HPLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmFgsWhileInUseTempAllowList(Lcom/android/server/am/ActivityManagerService;)Lcom/android/server/am/FgsTempAllowList;
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmNetworkPolicyUidObserver(Lcom/android/server/am/ActivityManagerService;)Landroid/app/IUidObserver;
-HPLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmPendingStartActivityUids(Lcom/android/server/am/ActivityManagerService;)Lcom/android/server/am/PendingStartActivityUids;
-HPLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmProfileOwnerUids(Lcom/android/server/am/ActivityManagerService;)Landroid/util/ArraySet;
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmStrictModeCallbacks(Lcom/android/server/am/ActivityManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fgetmUidNetworkBlockedReasons(Lcom/android/server/am/ActivityManagerService;)Landroid/util/SparseIntArray;
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fputmDeviceOwnerUid(Lcom/android/server/am/ActivityManagerService;I)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fputmNetworkPolicyUidObserver(Lcom/android/server/am/ActivityManagerService;Landroid/app/IUidObserver;)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$fputmProfileOwnerUids(Lcom/android/server/am/ActivityManagerService;Landroid/util/ArraySet;)V
+HSPLcom/android/server/am/ActivityManagerService$UiHandler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V
+HPLcom/android/server/am/ActivityManagerService$UiHandler;->handleMessage$com$android$server$am$ActivityManagerService$UiHandler(Landroid/os/Message;)V
+HPLcom/android/server/am/ActivityManagerService$UiHandler;->handleMessage(Landroid/os/Message;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;
+PLcom/android/server/am/ActivityManagerService;->-$$Nest$mcheckExcessivePowerUsage(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/ActivityManagerService;->-$$Nest$mdoDump(Lcom/android/server/am/ActivityManagerService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$mhandleBindApplicationTimeoutHard(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$mhandleBindApplicationTimeoutSoft(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;I)V
-HPLcom/android/server/am/ActivityManagerService;->-$$Nest$misAppBad(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;I)Z
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$msetHomeTimeout(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$msetVoiceInteractionManagerProvider(Lcom/android/server/am/ActivityManagerService;Landroid/app/ActivityManagerInternal$VoiceInteractionManagerProvider;)V
-HSPLcom/android/server/am/ActivityManagerService;->-$$Nest$mstart(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$mstartBroadcastObservers(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->-$$Nest$mtrimApplications(Lcom/android/server/am/ActivityManagerService;ZI)V
+PLcom/android/server/am/ActivityManagerService;->-$$Nest$mhandleFollowUpOomAdjusterUpdate(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/ActivityManagerService;-><clinit>()V
 HSPLcom/android/server/am/ActivityManagerService;-><init>(Landroid/content/Context;Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZILjava/lang/String;ZZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->addBackgroundCheckViolationLocked(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->addBroadcastStatLocked(Ljava/lang/String;Ljava/lang/String;IIJ)V
-HPLcom/android/server/am/ActivityManagerService;->addErrorToDropBox(Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Landroid/app/ApplicationErrorReport$CrashInfo;Ljava/lang/Float;Landroid/os/incremental/IncrementalMetrics;Ljava/util/UUID;Lcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;)V
-HPLcom/android/server/am/ActivityManagerService;->addPackageDependency(Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->addPidLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZILjava/lang/String;ZZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ActivityManagerService;->addCreatorToken(Landroid/content/Intent;Ljava/lang/String;)V+]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/Set;Landroid/util/ArraySet;
+PLcom/android/server/am/ActivityManagerService;->addErrorToDropBox(Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Landroid/app/ApplicationErrorReport$CrashInfo;Ljava/lang/Float;Landroid/os/incremental/IncrementalMetrics;Ljava/util/UUID;Lcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;)V
+PLcom/android/server/am/ActivityManagerService;->addPackageDependency(Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->addPidLocked(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ActivityManagerService;->addServiceToMap(Landroid/util/ArrayMap;Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->addStartInfoTimestampInternal(IIIJ)V
 HPLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;ZLjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->appRestrictedInBackgroundLOSP(ILjava/lang/String;I)I
-PLcom/android/server/am/ActivityManagerService;->appServicesRestrictedInBackgroundLOSP(ILjava/lang/String;I)I
-HPLcom/android/server/am/ActivityManagerService;->appendDropBoxProcessHeaders(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Lcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;Ljava/lang/StringBuilder;)V
-HPLcom/android/server/am/ActivityManagerService;->attachApplication(Landroid/app/IApplicationThread;J)V
+PLcom/android/server/am/ActivityManagerService;->appRestrictedInBackgroundLOSP(IILjava/lang/String;)I
+PLcom/android/server/am/ActivityManagerService;->appendDropBoxProcessHeaders(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Lcom/android/server/am/ActivityManagerService$VolatileDropboxEntryStates;Ljava/lang/StringBuilder;)V
+PLcom/android/server/am/ActivityManagerService;->attachApplication(Landroid/app/IApplicationThread;J)V
 HPLcom/android/server/am/ActivityManagerService;->attachApplicationLocked(Landroid/app/IApplicationThread;IIJ)V
-PLcom/android/server/am/ActivityManagerService;->backgroundServicesFinishedLocked(I)V
-PLcom/android/server/am/ActivityManagerService;->batteryNeedsCpuUpdate()V
+PLcom/android/server/am/ActivityManagerService;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;I)V
+PLcom/android/server/am/ActivityManagerService;->bindBackupAgent(Ljava/lang/String;IIIZ)Z
 HPLcom/android/server/am/ActivityManagerService;->bindServiceInstance(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/am/ActivityManagerService;->bindServiceInstance(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;ZILjava/lang/String;Landroid/app/IApplicationThread;Ljava/lang/String;I)I
-HPLcom/android/server/am/ActivityManagerService;->boostPriorityForLockedSection()V
-HSPLcom/android/server/am/ActivityManagerService;->boostPriorityForProcLockedSection()V
+HPLcom/android/server/am/ActivityManagerService;->bindServiceInstance(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;ZILjava/lang/String;Lcom/android/server/am/ApplicationThreadDeferred;Ljava/lang/String;I)I+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/ActivityManagerService;->boostPriorityForLockedSection()V+]Lcom/android/server/ThreadPriorityBooster;Lcom/android/server/ThreadPriorityBooster;
+HSPLcom/android/server/am/ActivityManagerService;->boostPriorityForProcLockedSection()V+]Lcom/android/server/ThreadPriorityBooster;Lcom/android/server/ThreadPriorityBooster;
 PLcom/android/server/am/ActivityManagerService;->bootAnimationComplete()V
-PLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZILandroid/app/BackgroundStartPrivileges;[I)I
-PLcom/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;[Ljava/lang/String;[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;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIILandroid/app/BackgroundStartPrivileges;[ILjava/util/function/BiFunction;)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLockedTraced(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;ZZIIIIILandroid/app/BackgroundStartPrivileges;[ILjava/util/function/BiFunction;)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;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastQueueForFlags(I)Lcom/android/server/am/BroadcastQueue;
-HPLcom/android/server/am/ActivityManagerService;->broadcastQueueForFlags(ILjava/lang/Object;)Lcom/android/server/am/BroadcastQueue;
-HPLcom/android/server/am/ActivityManagerService;->broadcastQueueForIntent(Landroid/content/Intent;)Lcom/android/server/am/BroadcastQueue;
-HPLcom/android/server/am/ActivityManagerService;->cancelIntentSender(Landroid/content/IIntentSender;)V
-HPLcom/android/server/am/ActivityManagerService;->checkBroadcastFromSystem(Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;IZLjava/util/List;)V
+PLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Landroid/content/Intent;Landroid/content/IIntentReceiver;[Ljava/lang/String;Landroid/os/Bundle;ZIIII)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;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I+]Landroid/content/Intent;Landroid/content/Intent;
+PLcom/android/server/am/ActivityManagerService;->canScheduleUserInitiatedJobs(IILjava/lang/String;)Z
+HPLcom/android/server/am/ActivityManagerService;->cancelIntentSender(Landroid/content/IIntentSender;)V+]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;
 HPLcom/android/server/am/ActivityManagerService;->checkCallingPermission(Ljava/lang/String;)I
-HPLcom/android/server/am/ActivityManagerService;->checkComponentPermission(Ljava/lang/String;IIIIZ)I
-HPLcom/android/server/am/ActivityManagerService;->checkComponentPermission(Ljava/lang/String;IIIZ)I
-PLcom/android/server/am/ActivityManagerService;->checkExcessivePowerUsage()V
-HPLcom/android/server/am/ActivityManagerService;->checkPermission(Ljava/lang/String;II)I
+HPLcom/android/server/am/ActivityManagerService;->checkComponentPermission(IILjava/lang/String;IIZ)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/ActivityManagerService;->checkComponentPermission(IILjava/lang/String;IZ)I
+PLcom/android/server/am/ActivityManagerService;->checkExcessivePowerUsageLPr(JZJLjava/lang/String;ILcom/android/server/am/ProcessRecord;)Z
+PLcom/android/server/am/ActivityManagerService;->checkPermission(Ljava/lang/String;II)I
 HPLcom/android/server/am/ActivityManagerService;->checkPermissionForDevice(Ljava/lang/String;III)I
-HPLcom/android/server/am/ActivityManagerService;->checkTime(JLjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->checkTime(JLjava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
 PLcom/android/server/am/ActivityManagerService;->checkUriPermission(Landroid/net/Uri;IIIIZLjava/lang/String;)I
-HPLcom/android/server/am/ActivityManagerService;->cleanUpApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;IZZIZZ)Z
-HPLcom/android/server/am/ActivityManagerService;->clearProcessForegroundLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->collectReceiverComponents(Landroid/content/Intent;Ljava/lang/String;I[I[I)Ljava/util/List;
-HPLcom/android/server/am/ActivityManagerService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
-HPLcom/android/server/am/ActivityManagerService;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+HPLcom/android/server/am/ActivityManagerService;->cleanUpApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;IZZZZ)Z
+PLcom/android/server/am/ActivityManagerService;->cleanupDisabledPackageComponentsLocked(Ljava/lang/String;I[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->closeSystemDialogs(Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->collectProcesses(IZ[Ljava/lang/String;)Ljava/util/ArrayList;
+PLcom/android/server/am/ActivityManagerService;->createOrGetIntentCreatorToken(Landroid/content/Intent;Lcom/android/server/am/ActivityManagerService$IntentCreatorToken$Key;)Lcom/android/server/am/ActivityManagerService$IntentCreatorToken;
 PLcom/android/server/am/ActivityManagerService;->doStopUidLocked(ILcom/android/server/am/UidRecord;)V
-PLcom/android/server/am/ActivityManagerService;->doesReasonCodeAllowSchedulingUserInitiatedJobs(I)Z
+PLcom/android/server/am/ActivityManagerService;->doesReasonCodeAllowSchedulingUserInitiatedJobs(II)Z
 PLcom/android/server/am/ActivityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpAllResources(Landroid/os/ParcelFileDescriptor;Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ActivityManagerService;->dumpAllowedAssociationsLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpAppRestrictionController(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsage(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[Ljava/lang/String;Ljava/util/ArrayList;)V
+PLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsageHeader(Ljava/io/PrintWriter;JJZZ)V
+PLcom/android/server/am/ActivityManagerService;->dumpBinderCacheContents(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpDbInfo(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpEverything(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;IZZIZ)V
+PLcom/android/server/am/ActivityManagerService;->dumpGraphicsHardwareUsage(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpLmkLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ActivityManagerService;->dumpMemItems(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;ZZZZZ)V
+PLcom/android/server/am/ActivityManagerService;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/am/ActivityManagerService;->dumpUsers(Ljava/io/PrintWriter;)V
 HPLcom/android/server/am/ActivityManagerService;->enforceAllowedToStartOrBindServiceIfSdkSandbox(Landroid/content/Intent;)V
-PLcom/android/server/am/ActivityManagerService;->enforceBroadcastOptionPermissionsInternal(Landroid/app/BroadcastOptions;I)V
-HPLcom/android/server/am/ActivityManagerService;->enforceBroadcastOptionPermissionsInternal(Landroid/os/Bundle;I)V
-HPLcom/android/server/am/ActivityManagerService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->enforceDumpPermissionForPackage(Ljava/lang/String;IILjava/lang/String;)I
+PLcom/android/server/am/ActivityManagerService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->enforceDumpPermissionForPackage(IILjava/lang/String;Ljava/lang/String;)I
 HPLcom/android/server/am/ActivityManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->enforceNotIsolatedOrSdkSandboxCaller(Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->enforcePermission(IILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->enqueueOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->enqueueUidChangeLocked(Lcom/android/server/am/UidRecord;II)V
+HPLcom/android/server/am/ActivityManagerService;->enqueuePendingTopAppIfNecessaryLocked()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/am/ActivityManagerService;->enqueueUidChangeLocked(Lcom/android/server/am/UidRecord;II)V+]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/ActivityManagerService;->ensureAllowedAssociations()V
-HPLcom/android/server/am/ActivityManagerService;->filterNonExportedComponents(Landroid/content/Intent;IILjava/util/List;Lcom/android/server/compat/PlatformCompat;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService;->findAppProcess(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->finishAttachApplication(J)V
-HPLcom/android/server/am/ActivityManagerService;->finishAttachApplicationInner(JII)V
-HPLcom/android/server/am/ActivityManagerService;->finishBooting()V
-PLcom/android/server/am/ActivityManagerService;->finishForceStopPackageLocked(Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->finishAttachApplication(JJ)V
+HPLcom/android/server/am/ActivityManagerService;->finishAttachApplicationInner(IIJ)V
+PLcom/android/server/am/ActivityManagerService;->finishBooting()V
 HPLcom/android/server/am/ActivityManagerService;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
-PLcom/android/server/am/ActivityManagerService;->forceStopPackage(Ljava/lang/String;I)V
-PLcom/android/server/am/ActivityManagerService;->forceStopPackage(Ljava/lang/String;IILjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->forceStopPackageInternalLocked(Ljava/lang/String;IZZZZZZILjava/lang/String;II)Z
 PLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;IZZZZZZILjava/lang/String;)Z
-HPLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;IZZZZZZILjava/lang/String;I)Z
 PLcom/android/server/am/ActivityManagerService;->frozenBinderTransactionDetected(IIII)V
 PLcom/android/server/am/ActivityManagerService;->getAppId(Ljava/lang/String;)I
-PLcom/android/server/am/ActivityManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/am/ActivityManagerService;->getAppOpsManager()Landroid/app/AppOpsManager;
-HPLcom/android/server/am/ActivityManagerService;->getAppStartModeLOSP(ILjava/lang/String;IIZZZ)I
-HPLcom/android/server/am/ActivityManagerService;->getBackgroundLaunchBroadcasts()Landroid/util/ArraySet;
-HPLcom/android/server/am/ActivityManagerService;->getCommonServicesLocked(Z)Landroid/util/ArrayMap;
+PLcom/android/server/am/ActivityManagerService;->getAppOpsManager$1()Landroid/app/AppOpsManager;
+HPLcom/android/server/am/ActivityManagerService;->getAppStartModeLOSP(ILjava/lang/String;IIZZZ)I+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/am/ActivityManagerService;->getCommonServicesLocked(Z)Landroid/util/ArrayMap;
 PLcom/android/server/am/ActivityManagerService;->getConfiguration()Landroid/content/res/Configuration;
 HPLcom/android/server/am/ActivityManagerService;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
 PLcom/android/server/am/ActivityManagerService;->getContentProviderHelper()Lcom/android/server/am/ContentProviderHelper;
 PLcom/android/server/am/ActivityManagerService;->getCurrentUser()Landroid/content/pm/UserInfo;
-HPLcom/android/server/am/ActivityManagerService;->getCurrentUserId()I
+PLcom/android/server/am/ActivityManagerService;->getCurrentUserId()I
+PLcom/android/server/am/ActivityManagerService;->getFocusedRootTaskInfo()Landroid/app/ActivityTaskManager$RootTaskInfo;
+PLcom/android/server/am/ActivityManagerService;->getForegroundServiceType(Landroid/content/ComponentName;Landroid/os/IBinder;)I
 HPLcom/android/server/am/ActivityManagerService;->getHistoricalProcessExitReasons(Ljava/lang/String;III)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/am/ActivityManagerService;->getInfoForIntentSender(Landroid/content/IIntentSender;)Landroid/app/ActivityManager$PendingIntentInfo;
+PLcom/android/server/am/ActivityManagerService;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
 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;
-HPLcom/android/server/am/ActivityManagerService;->getIntentSenderWithFeatureAsApp(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;II)Landroid/content/IIntentSender;
-PLcom/android/server/am/ActivityManagerService;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
+HPLcom/android/server/am/ActivityManagerService;->getIntentSenderWithFeatureAsApp(IIIIILandroid/os/Bundle;Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;)Lcom/android/server/am/PendingIntentRecord;+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;
+PLcom/android/server/am/ActivityManagerService;->getKsmInfo()[J
+HPLcom/android/server/am/ActivityManagerService;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
 HPLcom/android/server/am/ActivityManagerService;->getMemoryTrimLevel()I
 HPLcom/android/server/am/ActivityManagerService;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
 HPLcom/android/server/am/ActivityManagerService;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/am/ActivityManagerService;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
-HPLcom/android/server/am/ActivityManagerService;->getProcessRecordLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->getRealProcessStateLocked(Lcom/android/server/am/ProcessRecord;I)I
-HPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ActivityManagerService;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
+PLcom/android/server/am/ActivityManagerService;->getProcessStatesAndOomScoresForPIDs([I[I[I)V
+HPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;+]Landroid/app/IApplicationThread;Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/IApplicationThread$Stub$Proxy;
 HPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->getRunningAppProcesses()Ljava/util/List;
-HPLcom/android/server/am/ActivityManagerService;->getRunningUserIds()[I
+HPLcom/android/server/am/ActivityManagerService;->getRunningAppProcesses()Ljava/util/List;+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
+PLcom/android/server/am/ActivityManagerService;->getRunningUserIds()[I
 PLcom/android/server/am/ActivityManagerService;->getServices(II)Ljava/util/List;
-HPLcom/android/server/am/ActivityManagerService;->getShortAction(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/am/ActivityManagerService;->getTagForIntentSender(Landroid/content/IIntentSender;Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/am/ActivityManagerService;->getTagForIntentSenderLocked(Lcom/android/server/am/PendingIntentRecord;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/am/ActivityManagerService;->getTaskForActivity(Landroid/os/IBinder;Z)I
 HSPLcom/android/server/am/ActivityManagerService;->getTopApp()Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->getUidProcessCapabilityLocked(I)I
-HPLcom/android/server/am/ActivityManagerService;->getUidProcessState(ILjava/lang/String;)I
-PLcom/android/server/am/ActivityManagerService;->getUidProcessStateInnerLOSP(I)I
+PLcom/android/server/am/ActivityManagerService;->getUidProcessState(ILjava/lang/String;)I
 HPLcom/android/server/am/ActivityManagerService;->getUidState(I)I
-HPLcom/android/server/am/ActivityManagerService;->getUidStateLocked(I)I
-HPLcom/android/server/am/ActivityManagerService;->grantImplicitAccess(ILandroid/content/Intent;II)V
-HPLcom/android/server/am/ActivityManagerService;->handleAppDiedLocked(Lcom/android/server/am/ProcessRecord;IZZZ)V
+HPLcom/android/server/am/ActivityManagerService;->grantImplicitAccess(ILandroid/content/Intent;II)V+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;
+PLcom/android/server/am/ActivityManagerService;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+HPLcom/android/server/am/ActivityManagerService;->handleAppDiedLocked(ILcom/android/server/am/ProcessRecord;ZZZ)V
 HPLcom/android/server/am/ActivityManagerService;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
-HPLcom/android/server/am/ActivityManagerService;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
-HPLcom/android/server/am/ActivityManagerService;->handleApplicationWtfInner(IILandroid/os/IBinder;Ljava/lang/String;Landroid/app/ApplicationErrorReport$CrashInfo;)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService;->handleBindApplicationTimeoutHard(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->handleBindApplicationTimeoutSoft(Lcom/android/server/am/ProcessRecord;I)V
+PLcom/android/server/am/ActivityManagerService;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
+PLcom/android/server/am/ActivityManagerService;->handleApplicationWtfInner(IILandroid/os/IBinder;Ljava/lang/String;Landroid/app/ApplicationErrorReport$CrashInfo;)Lcom/android/server/am/ProcessRecord;
 HPLcom/android/server/am/ActivityManagerService;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/am/ActivityManagerService;->handlePendingSystemServerWtfs(Ljava/util/LinkedList;)V
 HPLcom/android/server/am/ActivityManagerService;->hasUsageStatsPermission(Ljava/lang/String;)Z
-HPLcom/android/server/am/ActivityManagerService;->hasUsageStatsPermission(Ljava/lang/String;II)Z
-HPLcom/android/server/am/ActivityManagerService;->idleUids()V
-PLcom/android/server/am/ActivityManagerService;->initDropboxRateLimiter()V
-HSPLcom/android/server/am/ActivityManagerService;->initPowerManagement()V
+PLcom/android/server/am/ActivityManagerService;->idleUids()V
 PLcom/android/server/am/ActivityManagerService;->isAllowedWhileBooting(Landroid/content/pm/ApplicationInfo;)Z
 HPLcom/android/server/am/ActivityManagerService;->isAllowlistedForFgsStartLOSP(I)Lcom/android/server/am/ActivityManagerService$FgsTempAllowListItem;
-HPLcom/android/server/am/ActivityManagerService;->isAppBad(Ljava/lang/String;I)Z
-HPLcom/android/server/am/ActivityManagerService;->isAppFreezerExemptInstPkg()Z
-HPLcom/android/server/am/ActivityManagerService;->isAppStartModeDisabled(ILjava/lang/String;)Z
-PLcom/android/server/am/ActivityManagerService;->isDeviceProvisioned(Landroid/content/Context;)Z
-HPLcom/android/server/am/ActivityManagerService;->isInstantApp(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;I)Z
+PLcom/android/server/am/ActivityManagerService;->isAppFreezerExemptInstPkg()Z
+PLcom/android/server/am/ActivityManagerService;->isBackgroundRestricted(Ljava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->isBackgroundRestrictedNoCheck(ILjava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->isHomeLaunchDelayable()Z
+PLcom/android/server/am/ActivityManagerService;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
 PLcom/android/server/am/ActivityManagerService;->isOnDeviceIdleAllowlistLOSP(IZ)Z
-HPLcom/android/server/am/ActivityManagerService;->isReceivingBroadcastLocked(Lcom/android/server/am/ProcessRecord;[I)Z
+PLcom/android/server/am/ActivityManagerService;->isProcessInStateToScheduleUserInitiatedJobsLocked(IJLcom/android/server/am/ProcessRecord;)Z
 HPLcom/android/server/am/ActivityManagerService;->isSingleton(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)Z
-PLcom/android/server/am/ActivityManagerService;->isSystemUserOnly(I)Z
-HPLcom/android/server/am/ActivityManagerService;->isUidActive(ILjava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->isTopActivityImmersive()Z
+PLcom/android/server/am/ActivityManagerService;->isTopOfTask(Landroid/os/IBinder;)Z
+PLcom/android/server/am/ActivityManagerService;->isUidActive(ILjava/lang/String;)Z
 HPLcom/android/server/am/ActivityManagerService;->isUidActiveLOSP(I)Z
-HPLcom/android/server/am/ActivityManagerService;->isUserAMonkey()Z
+PLcom/android/server/am/ActivityManagerService;->isUserAMonkey()Z
 PLcom/android/server/am/ActivityManagerService;->isUserRunning(II)Z
+PLcom/android/server/am/ActivityManagerService;->isValidSingletonCall(II)Z
 PLcom/android/server/am/ActivityManagerService;->killAllBackgroundProcessesExcept(II)V
-HPLcom/android/server/am/ActivityManagerService;->lambda$appendDropBoxProcessHeaders$12(Ljava/lang/StringBuilder;Landroid/content/pm/IPackageManager;ILjava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->lambda$checkExcessivePowerUsage$20(JJZZLcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->lambda$filterNonExportedComponents$19(Landroid/app/IUnsafeIntentStrictModeCallback;Landroid/content/Intent;I)V
-PLcom/android/server/am/ActivityManagerService;->lambda$getPackageProcessState$0([ILjava/lang/String;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->lambda$logStrictModeViolationToDropBox$10(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->lambda$schedulePendingSystemServerWtfs$11(Ljava/util/LinkedList;)V
-HSPLcom/android/server/am/ActivityManagerService;->lambda$scheduleUpdateBinderHeavyHitterWatcherConfig$33()V
+PLcom/android/server/am/ActivityManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->killApplicationProcess(Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->killUidForPermissionChange(IILjava/lang/String;)V
 PLcom/android/server/am/ActivityManagerService;->logFgsApiBegin(III)V
-PLcom/android/server/am/ActivityManagerService;->logFgsApiEnd(III)V
-HPLcom/android/server/am/ActivityManagerService;->logStrictModeViolationToDropBox(Lcom/android/server/am/ProcessRecord;Landroid/os/StrictMode$ViolationInfo;)V
-PLcom/android/server/am/ActivityManagerService;->maybeLogUserspaceRebootEvent()V
-HPLcom/android/server/am/ActivityManagerService;->maybeSendBootCompletedLocked(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ActivityManagerService;->logFgsApiEnd(III)V
+HPLcom/android/server/am/ActivityManagerService;->maybeSendBootCompletedLocked(Lcom/android/server/am/ProcessRecord;Z)V
 PLcom/android/server/am/ActivityManagerService;->monitor()V
-PLcom/android/server/am/ActivityManagerService;->noteAlarmFinish(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->noteAlarmStart(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->noteAlarmFinish(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->noteAlarmStart(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->noteAppRestrictionEnabled(Ljava/lang/String;IIZILjava/lang/String;IJ)V
 HPLcom/android/server/am/ActivityManagerService;->noteUidProcessState(III)V
-PLcom/android/server/am/ActivityManagerService;->noteWakeupAlarm(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->notifyBroadcastFinishedLocked(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->notifyPackageUse(Ljava/lang/String;I)V
-PLcom/android/server/am/ActivityManagerService;->onCoreSettingsChange(Landroid/os/Bundle;)V
-HPLcom/android/server/am/ActivityManagerService;->onProcessFreezableChangedLocked(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ActivityManagerService;->noteWakeupAlarm(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->notifyPackageUse(Ljava/lang/String;I)V
 PLcom/android/server/am/ActivityManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 HPLcom/android/server/am/ActivityManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HPLcom/android/server/am/ActivityManagerService;->processClass(Lcom/android/server/am/ProcessRecord;)Ljava/lang/String;
-HPLcom/android/server/am/ActivityManagerService;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
-HPLcom/android/server/am/ActivityManagerService;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
-HPLcom/android/server/am/ActivityManagerService;->pushTempAllowlist()V
+PLcom/android/server/am/ActivityManagerService;->processClass(Lcom/android/server/am/ProcessRecord;)Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
+HPLcom/android/server/am/ActivityManagerService;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/ActivityManagerService;->pushTempAllowlist()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;
+PLcom/android/server/am/ActivityManagerService;->queryIntentComponentsForIntentSender(Landroid/content/IIntentSender;I)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/am/ActivityManagerService;->refContentProvider(Landroid/os/IBinder;II)Z
 PLcom/android/server/am/ActivityManagerService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
 HPLcom/android/server/am/ActivityManagerService;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
-HPLcom/android/server/am/ActivityManagerService;->registerStrictModeCallback(Landroid/os/IBinder;)V
+PLcom/android/server/am/ActivityManagerService;->registerStrictModeCallback(Landroid/os/IBinder;)V
+PLcom/android/server/am/ActivityManagerService;->registerUidFrozenStateChangedCallback(Landroid/app/IUidFrozenStateChangedCallback;)V
 PLcom/android/server/am/ActivityManagerService;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->registerUidObserverForUids(Landroid/app/IUidObserver;IILjava/lang/String;[I)Landroid/os/IBinder;
+PLcom/android/server/am/ActivityManagerService;->registerUidObserverForUids(Landroid/app/IUidObserver;IILjava/lang/String;[I)Landroid/os/IBinder;
 PLcom/android/server/am/ActivityManagerService;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->removeContentProvider(Landroid/os/IBinder;Z)V
-PLcom/android/server/am/ActivityManagerService;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->removeOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;Z)V
 HPLcom/android/server/am/ActivityManagerService;->removePidLocked(ILcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/ActivityManagerService;->removeReceiverLocked(Lcom/android/server/am/ReceiverList;)V
-PLcom/android/server/am/ActivityManagerService;->reportCurWakefulnessUsageEvent()V
-PLcom/android/server/am/ActivityManagerService;->reportGlobalUsageEvent(I)V
-HPLcom/android/server/am/ActivityManagerService;->reportUidFrozenStateChanged([I[I)V
-HPLcom/android/server/am/ActivityManagerService;->reportUidInfoMessageLocked(Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/am/ActivityManagerService;->resetPriorityAfterLockedSection()V
-HSPLcom/android/server/am/ActivityManagerService;->resetPriorityAfterProcLockedSection()V
+HPLcom/android/server/am/ActivityManagerService;->reportGlobalUsageEvent(I)V
+PLcom/android/server/am/ActivityManagerService;->reportLmkKillAtOrBelow(ILjava/io/PrintWriter;)Z
+HPLcom/android/server/am/ActivityManagerService;->reportStartInfoViewTimestamps(JJ)V
+PLcom/android/server/am/ActivityManagerService;->reportUidInfoMessageLocked(ILjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->requestBugReportWithDescription(Ljava/lang/String;Ljava/lang/String;IJLjava/util/List;)V
+HPLcom/android/server/am/ActivityManagerService;->resetPriorityAfterLockedSection()V+]Lcom/android/server/ThreadPriorityBooster;Lcom/android/server/ThreadPriorityBooster;
+HSPLcom/android/server/am/ActivityManagerService;->resetPriorityAfterProcLockedSection()V+]Lcom/android/server/ThreadPriorityBooster;Lcom/android/server/ThreadPriorityBooster;
 PLcom/android/server/am/ActivityManagerService;->retrieveSettings()V
 PLcom/android/server/am/ActivityManagerService;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
-HPLcom/android/server/am/ActivityManagerService;->rotateBroadcastStatsIfNeededLocked()V
 PLcom/android/server/am/ActivityManagerService;->scheduleApplicationInfoChanged(Ljava/util/List;I)V
-PLcom/android/server/am/ActivityManagerService;->scheduleAsFifoPriority(IZ)Z
-PLcom/android/server/am/ActivityManagerService;->schedulePendingSystemServerWtfs(Ljava/util/LinkedList;)V
-HSPLcom/android/server/am/ActivityManagerService;->scheduleUpdateBinderHeavyHitterWatcherConfig()V
-PLcom/android/server/am/ActivityManagerService;->sendBootBroadcastToAppLocked(Lcom/android/server/am/ProcessRecord;Landroid/content/Intent;I)V
-HPLcom/android/server/am/ActivityManagerService;->sendIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
+PLcom/android/server/am/ActivityManagerService;->scheduleAsFifoPriority(IZ)V
+PLcom/android/server/am/ActivityManagerService;->scheduleAsRegularPriority(IZ)V
+PLcom/android/server/am/ActivityManagerService;->sendBootBroadcastToAppLocked(Lcom/android/server/am/ProcessRecord;Landroid/content/Intent;)V
+PLcom/android/server/am/ActivityManagerService;->sendIntentSender(Landroid/app/IApplicationThread;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;->serviceDoneExecuting(Landroid/os/IBinder;IIILandroid/content/Intent;)V
-HPLcom/android/server/am/ActivityManagerService;->setAppIdTempAllowlistStateLSP(IZ)V
-PLcom/android/server/am/ActivityManagerService;->setAppOpsPolicy(Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;)V
-PLcom/android/server/am/ActivityManagerService;->setHomeTimeout()V
-HSPLcom/android/server/am/ActivityManagerService;->setInstaller(Lcom/android/server/pm/Installer;)V
-HPLcom/android/server/am/ActivityManagerService;->setProcessTrackerStateLOSP(Lcom/android/server/am/ProcessRecord;I)V
-HPLcom/android/server/am/ActivityManagerService;->setRenderThread(I)V
+PLcom/android/server/am/ActivityManagerService;->setFifoPriority(Lcom/android/server/am/ProcessRecord;Z)V
+PLcom/android/server/am/ActivityManagerService;->setHasTopUi(Z)V
+PLcom/android/server/am/ActivityManagerService;->setProcessImportant(Landroid/os/IBinder;IZLjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->setProcessStateSummary([B)V
+HPLcom/android/server/am/ActivityManagerService;->setProcessTrackerStateLOSP(ILcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ActivityManagerService;->setRenderThread(I)V
 PLcom/android/server/am/ActivityManagerService;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
-HPLcom/android/server/am/ActivityManagerService;->setSystemProcess()V
-HSPLcom/android/server/am/ActivityManagerService;->setSystemServiceManager(Lcom/android/server/SystemServiceManager;)V
 HPLcom/android/server/am/ActivityManagerService;->setUidTempAllowlistStateLSP(IZ)V
-PLcom/android/server/am/ActivityManagerService;->setUsageStatsManager(Landroid/app/usage/UsageStatsManagerInternal;)V
-PLcom/android/server/am/ActivityManagerService;->setVoiceInteractionManagerProvider(Landroid/app/ActivityManagerInternal$VoiceInteractionManagerProvider;)V
 PLcom/android/server/am/ActivityManagerService;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/am/ActivityManagerService;->shouldIgnoreDeliveryGroupPolicy(Ljava/lang/String;)Z
-PLcom/android/server/am/ActivityManagerService;->showConsoleNotificationIfActive()V
-PLcom/android/server/am/ActivityManagerService;->showMteOverrideNotificationIfActive()V
-HSPLcom/android/server/am/ActivityManagerService;->start()V
-HPLcom/android/server/am/ActivityManagerService;->startAssociationLocked(ILjava/lang/String;IIJLandroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/am/ActivityManagerService$Association;
-PLcom/android/server/am/ActivityManagerService;->startBroadcastObservers()V
-HPLcom/android/server/am/ActivityManagerService;->startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;ILandroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;ILjava/lang/String;)Z
-PLcom/android/server/am/ActivityManagerService;->startObservingNativeCrashes()V
-HPLcom/android/server/am/ActivityManagerService;->startPersistentApps(I)V
-HPLcom/android/server/am/ActivityManagerService;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;IZZ)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ActivityManagerService;->startAssociationLocked(ILjava/lang/String;IILandroid/content/ComponentName;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->startPersistentApps(I)V
+PLcom/android/server/am/ActivityManagerService;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;IZZ)Lcom/android/server/am/ProcessRecord;
 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;
-HPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;IZILjava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActivityManagerService;->stopAssociationLocked(ILjava/lang/String;IJLandroid/content/ComponentName;Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;IZILjava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;+]Landroid/content/Intent;Landroid/content/Intent;
+PLcom/android/server/am/ActivityManagerService;->stopAppSwitches()V
+HPLcom/android/server/am/ActivityManagerService;->stopAssociationLocked(Landroid/content/ComponentName;Ljava/lang/String;II)V
 PLcom/android/server/am/ActivityManagerService;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
 PLcom/android/server/am/ActivityManagerService;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IZILjava/lang/String;Ljava/lang/String;)I
 HPLcom/android/server/am/ActivityManagerService;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
-HPLcom/android/server/am/ActivityManagerService;->systemReady(Ljava/lang/Runnable;Lcom/android/server/utils/TimingsTraceAndSlog;)V
-HPLcom/android/server/am/ActivityManagerService;->tempAllowlistUidLocked(IJILjava/lang/String;II)V
-HPLcom/android/server/am/ActivityManagerService;->traceBegin(JLjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->trimApplications(ZI)V
-HPLcom/android/server/am/ActivityManagerService;->trimApplicationsLocked(ZI)V
-PLcom/android/server/am/ActivityManagerService;->uidOnBackgroundAllowlistLOSP(I)Z
-PLcom/android/server/am/ActivityManagerService;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
+PLcom/android/server/am/ActivityManagerService;->stringifyKBSize(J)Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService;->stringifySize(J)Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService;->systemReady(Lcom/android/server/SystemServer$$ExternalSyntheticLambda7;Lcom/android/server/utils/TimingsTraceAndSlog;)V
+PLcom/android/server/am/ActivityManagerService;->tempAllowlistForPendingIntentLocked(IIIJIILjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->tempAllowlistUidLocked(IILjava/lang/String;IJI)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;
+PLcom/android/server/am/ActivityManagerService;->traceBegin(Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->trimApplicationsLocked(IZ)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ActivityManagerService;->unbindBackupAgent(Landroid/content/pm/ApplicationInfo;)V
+PLcom/android/server/am/ActivityManagerService;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;)V
 HPLcom/android/server/am/ActivityManagerService;->unbindService(Landroid/app/IServiceConnection;)Z
+PLcom/android/server/am/ActivityManagerService;->unlockUser2(ILandroid/os/IProgressListener;)Z
 HPLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
-PLcom/android/server/am/ActivityManagerService;->unstableProviderDied(Landroid/os/IBinder;)V
-PLcom/android/server/am/ActivityManagerService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;Landroid/app/assist/ActivityId;)V
-PLcom/android/server/am/ActivityManagerService;->updateAppProcessCpuTimeLPr(JZJILcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->updateApplicationInfoLOSP(Ljava/util/List;ZI)V
-PLcom/android/server/am/ActivityManagerService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V
+PLcom/android/server/am/ActivityManagerService;->updateApplicationInfoLOSP(ILjava/util/List;Z)V
+PLcom/android/server/am/ActivityManagerService;->updateAssociationForApp(Landroid/content/pm/ApplicationInfo;)V
+PLcom/android/server/am/ActivityManagerService;->updateConfiguration(Landroid/content/res/Configuration;)Z
 HPLcom/android/server/am/ActivityManagerService;->updateCpuStats()V
 PLcom/android/server/am/ActivityManagerService;->updateCpuStatsNow()V
 PLcom/android/server/am/ActivityManagerService;->updateForceBackgroundCheck(Z)V
 PLcom/android/server/am/ActivityManagerService;->updateForegroundServiceUsageStats(Landroid/content/ComponentName;IZ)V
-HPLcom/android/server/am/ActivityManagerService;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;ZLcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ActivityManagerService;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;Z)V
 HSPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(I)V
-HPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;I)Z
+PLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(ILcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/ActivityManagerService;->updateOomAdjPendingTargetsLocked(I)V
-PLcom/android/server/am/ActivityManagerService;->updatePhantomProcessCpuTimeLPr(JZJILcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->updateProcessForegroundLocked(Lcom/android/server/am/ProcessRecord;ZIZZ)V
-HPLcom/android/server/am/ActivityManagerService;->validateAssociationAllowedLocked(Ljava/lang/String;ILjava/lang/String;I)Z
-PLcom/android/server/am/ActivityManagerService;->validateServiceInstanceName(Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->verifyBroadcastLocked(Landroid/content/Intent;)Landroid/content/Intent;
-PLcom/android/server/am/ActivityManagerService;->watchDeviceProvisioning(Landroid/content/Context;)V
+HPLcom/android/server/am/ActivityManagerService;->updateProcessForegroundLocked(ILcom/android/server/am/ProcessRecord;ZZZ)V+]Landroid/app/ActivityManagerInternal$ForegroundServiceStateListener;Lcom/android/server/am/AppFGSTracker;]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ActivityManagerService;->validateAssociationAllowedLocked(IILjava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->waitForNetworkStateUpdate(J)V
 PLcom/android/server/am/ActivityManagerShellCommand$1;-><init>(Lcom/android/server/am/ActivityManagerShellCommand;)V
+PLcom/android/server/am/ActivityManagerShellCommand$1;->handleOption(Ljava/lang/String;Landroid/os/ShellCommand;)Z
 PLcom/android/server/am/ActivityManagerShellCommand$IntentReceiver;-><init>(Ljava/io/PrintWriter;)V
 PLcom/android/server/am/ActivityManagerShellCommand$IntentReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-PLcom/android/server/am/ActivityManagerShellCommand$IntentReceiver;->waitForFinish()V
 PLcom/android/server/am/ActivityManagerShellCommand;-><clinit>()V
 PLcom/android/server/am/ActivityManagerShellCommand;-><init>(Lcom/android/server/am/ActivityManagerService;Z)V
-PLcom/android/server/am/ActivityManagerShellCommand;->makeIntent(I)Landroid/content/Intent;
+PLcom/android/server/am/ActivityManagerShellCommand;->makeIntent()Landroid/content/Intent;
 PLcom/android/server/am/ActivityManagerShellCommand;->onCommand(Ljava/lang/String;)I
-PLcom/android/server/am/ActivityManagerShellCommand;->runForceStop(Ljava/io/PrintWriter;)I
-HPLcom/android/server/am/ActivityManagerShellCommand;->runSendBroadcast(Ljava/io/PrintWriter;)I
+PLcom/android/server/am/ActivityManagerShellCommand;->runSendBroadcast(Ljava/io/PrintWriter;)V
 PLcom/android/server/am/ActivityManagerUtils;-><clinit>()V
-PLcom/android/server/am/ActivityManagerUtils;->extractByte([BI)I
+PLcom/android/server/am/ActivityManagerUtils;->extractByte(I[B)I
 PLcom/android/server/am/ActivityManagerUtils;->getAndroidIdHash()I
 PLcom/android/server/am/ActivityManagerUtils;->getUnsignedHashCached(Ljava/lang/String;)I
 PLcom/android/server/am/ActivityManagerUtils;->getUnsignedHashUnCached(Ljava/lang/String;)I
-PLcom/android/server/am/ActivityManagerUtils;->logUnsafeIntentEvent(IILandroid/content/Intent;Ljava/lang/String;Z)V
-PLcom/android/server/am/ActivityManagerUtils;->shouldSamplePackageForAtom(Ljava/lang/String;F)Z
+PLcom/android/server/am/ActivityManagerUtils;->shouldSamplePackageForAtom(FLjava/lang/String;)Z
 PLcom/android/server/am/ActivityManagerUtils;->unsignedIntFromBytes([B)I
-HSPLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-HSPLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/AnrHelper;ILcom/android/internal/os/TimeoutRecord;)V
-PLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda2;->call()Ljava/lang/Object;
-PLcom/android/server/am/AnrHelper$AnrConsumerThread;-><init>(Lcom/android/server/am/AnrHelper;)V
-PLcom/android/server/am/AnrHelper$AnrConsumerThread;->next()Lcom/android/server/am/AnrHelper$AnrRecord;
-PLcom/android/server/am/AnrHelper$AnrConsumerThread;->run()V
-PLcom/android/server/am/AnrHelper$AnrRecord;-><init>(Lcom/android/server/am/AnrHelper;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/wm/WindowProcessController;ZLcom/android/internal/os/TimeoutRecord;ZLjava/util/concurrent/Future;)V
-PLcom/android/server/am/AnrHelper$AnrRecord;->appNotResponding(Z)V
-PLcom/android/server/am/AnrHelper;->$r8$lambda$o4U1b8DdepzPilDk5ASRfiFAv34(Lcom/android/server/am/AnrHelper;ILcom/android/internal/os/TimeoutRecord;)Ljava/io/File;
-PLcom/android/server/am/AnrHelper;->$r8$lambda$w_5HmdP7xJVX9IY4uygDlAQ5zxQ(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/am/AnrHelper;->$r8$lambda$y7RFlsVN6Rac_UO6nHdK_btKHW0(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/am/AnrHelper;->-$$Nest$fgetmAnrRecords(Lcom/android/server/am/AnrHelper;)Ljava/util/ArrayList;
-PLcom/android/server/am/AnrHelper;->-$$Nest$fgetmAuxiliaryTaskExecutor(Lcom/android/server/am/AnrHelper;)Ljava/util/concurrent/ExecutorService;
-PLcom/android/server/am/AnrHelper;->-$$Nest$fgetmRunning(Lcom/android/server/am/AnrHelper;)Ljava/util/concurrent/atomic/AtomicBoolean;
-PLcom/android/server/am/AnrHelper;->-$$Nest$fputmProcessingPid(Lcom/android/server/am/AnrHelper;I)V
-PLcom/android/server/am/AnrHelper;->-$$Nest$mscheduleBinderHeavyHitterAutoSamplerIfNecessary(Lcom/android/server/am/AnrHelper;)V
-PLcom/android/server/am/AnrHelper;->-$$Nest$sfgetEXPIRED_REPORT_TIME_MS()J
-PLcom/android/server/am/AnrHelper;->-$$Nest$sfgetSELF_ONLY_AFTER_BOOT_MS()J
+HSPLcom/android/server/am/AnrHelper$$ExternalSyntheticLambda0;-><init>(I)V
 HSPLcom/android/server/am/AnrHelper;-><clinit>()V
 HSPLcom/android/server/am/AnrHelper;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/AnrHelper;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;)V
-PLcom/android/server/am/AnrHelper;->appNotResponding(Lcom/android/server/am/ProcessRecord;Lcom/android/internal/os/TimeoutRecord;)V
-PLcom/android/server/am/AnrHelper;->appNotResponding(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/wm/WindowProcessController;ZLcom/android/internal/os/TimeoutRecord;Z)V
-PLcom/android/server/am/AnrHelper;->lambda$appNotResponding$2(ILcom/android/internal/os/TimeoutRecord;)Ljava/io/File;
-PLcom/android/server/am/AnrHelper;->lambda$static$0(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/am/AnrHelper;->lambda$static$1(Ljava/lang/Runnable;)Ljava/lang/Thread;
-HSPLcom/android/server/am/AnrHelper;->makeExpiringThreadPoolWithSize(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ThreadPoolExecutor;
-PLcom/android/server/am/AnrHelper;->scheduleBinderHeavyHitterAutoSamplerIfNecessary()V
-PLcom/android/server/am/AnrHelper;->startAnrConsumerIfNeeded()V
-PLcom/android/server/am/AppBatteryExemptionTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppBatteryExemptionTracker;)V
-PLcom/android/server/am/AppBatteryExemptionTracker$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppBatteryExemptionTracker;)V
 PLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;->$r8$lambda$jMixVCQDkf-BsCQ_bwWqAgEzrk0(Lcom/android/server/am/AppBatteryExemptionTracker;)V
-HSPLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppBatteryExemptionTracker;)V
-PLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;->onMaxTrackingDurationChanged(J)V
-PLcom/android/server/am/AppBatteryExemptionTracker;->$r8$lambda$iWmJGcyLLkDvNkQor9pOnxtCJY0(Lcom/android/server/am/AppBatteryExemptionTracker;Lcom/android/server/am/BaseAppStateTracker;)V
-PLcom/android/server/am/AppBatteryExemptionTracker;->-$$Nest$mtrimDurations(Lcom/android/server/am/AppBatteryExemptionTracker;)V
-HSPLcom/android/server/am/AppBatteryExemptionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppBatteryExemptionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/AppBatteryExemptionTracker;->lambda$onSystemReady$0(Lcom/android/server/am/BaseAppStateTracker;)V
-PLcom/android/server/am/AppBatteryExemptionTracker;->onStateChange(ILjava/lang/String;ZJI)V
+PLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;->onMaxTrackingDurationChanged()V
+PLcom/android/server/am/AppBatteryExemptionTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppBatteryExemptionTracker;->onStateChange(IIJLjava/lang/String;Z)V
 PLcom/android/server/am/AppBatteryExemptionTracker;->onSystemReady()V
-PLcom/android/server/am/AppBatteryExemptionTracker;->trimDurations()V
-HSPLcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppBatteryTracker;)V
-HSPLcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/AppBatteryTracker;)V
+HSPLcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppBatteryTracker;I)V
+PLcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda2;-><init>(Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/server/am/AppBatteryTracker$$ExternalSyntheticLambda2;->queueIdle()Z
+PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Z)V
 HSPLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppBatteryTracker;)V
+PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->getCurrentDrainThresholdIndex(IJJ)I
 HSPLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->getFloatArray(Landroid/content/res/TypedArray;)[F
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->getProposedRestrictionLevel(Ljava/lang/String;II)I
+PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->getProposedRestrictionLevel(IILjava/lang/String;)I
+PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->handleUidBatteryUsage(ILcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;)V
 PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->onSystemReady()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->onUserInteractionStarted(Ljava/lang/String;I)V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateBgCurrentDrainAutoRestrictAbusiveAppsEnabled()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainDecoupleThresholds()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainEventDurationBasedThresholdEnabled()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainExemptedTypes()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainInteractionGracePeriod()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainLocationMinDuration()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainMediaPlaybackMinDuration()V
 PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainThreshold()V
-PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateCurrentDrainWindow()V
 PLcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;->updateTrackerEnabled()V
 HSPLcom/android/server/am/AppBatteryTracker$BatteryUsage;-><clinit>()V
 HSPLcom/android/server/am/AppBatteryTracker$BatteryUsage;-><init>()V
-HSPLcom/android/server/am/AppBatteryTracker$BatteryUsage;-><init>(DDDDD)V
-HSPLcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;-><init>()V
+PLcom/android/server/am/AppBatteryTracker$BatteryUsage;-><init>(Lcom/android/server/am/AppBatteryTracker$BatteryUsage;)V
+PLcom/android/server/am/AppBatteryTracker$BatteryUsage;->calcPercentage(ILcom/android/server/am/AppBatteryTracker$AppBatteryPolicy;)V
+PLcom/android/server/am/AppBatteryTracker$BatteryUsage;->percentageToString()Ljava/lang/String;
+PLcom/android/server/am/AppBatteryTracker$BatteryUsage;->scaleInternal(D)V
+PLcom/android/server/am/AppBatteryTracker$BatteryUsage;->subtract(Lcom/android/server/am/AppBatteryTracker$BatteryUsage;)Lcom/android/server/am/AppBatteryTracker$BatteryUsage;
+PLcom/android/server/am/AppBatteryTracker$BatteryUsage;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/AppBatteryTracker;-><clinit>()V
 HSPLcom/android/server/am/AppBatteryTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppBatteryTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
+PLcom/android/server/am/AppBatteryTracker;->checkBatteryUsageStats()V
+PLcom/android/server/am/AppBatteryTracker;->copyUidBatteryUsage(Landroid/util/SparseArray;Landroid/util/SparseArray;)V
+PLcom/android/server/am/AppBatteryTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppBatteryTracker;->onSystemReady()V
 PLcom/android/server/am/AppBatteryTracker;->onUserInteractionStarted(Ljava/lang/String;I)V
 PLcom/android/server/am/AppBatteryTracker;->scheduleBatteryUsageStatsUpdateIfNecessary(J)V
+PLcom/android/server/am/AppBatteryTracker;->scheduleBgBatteryUsageStatsCheck()V
+PLcom/android/server/am/AppBatteryTracker;->updateBatteryUsageStatsIfNecessary(JZ)Z
+PLcom/android/server/am/AppBatteryTracker;->updateBatteryUsageStatsOnce(J)V
+PLcom/android/server/am/AppBatteryTracker;->updateBatteryUsageStatsOnceInternal(JLandroid/util/SparseArray;Landroid/os/BatteryUsageStatsQuery$Builder;Landroid/util/ArraySet;Landroid/os/BatteryStatsInternal;)Landroid/os/BatteryUsageStats;
 HPLcom/android/server/am/AppBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/AppBindRecord;->dumpInIntentBind(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HSPLcom/android/server/am/AppBindServiceEventsTracker$AppBindServiceEventsPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppBindServiceEventsTracker;)V
-HSPLcom/android/server/am/AppBindServiceEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppBindServiceEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
+PLcom/android/server/am/AppBindRecord;->toString()Ljava/lang/String;
+PLcom/android/server/am/AppBindServiceEventsTracker$AppBindServiceEventsPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppBindServiceEventsTracker;->createAppStateEvents(ILjava/lang/String;)Lcom/android/server/am/BaseAppStateEvents;
-HPLcom/android/server/am/AppBindServiceEventsTracker;->createAppStateEvents(ILjava/lang/String;)Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker$SimpleAppStateTimeslotEvents;
+PLcom/android/server/am/AppBindServiceEventsTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppBindServiceEventsTracker;->getTrackerInfoForStatsd(I)[B
 PLcom/android/server/am/AppBindServiceEventsTracker;->getType()I
 HPLcom/android/server/am/AppBindServiceEventsTracker;->onBindingService(Ljava/lang/String;I)V
 PLcom/android/server/am/AppBindServiceEventsTracker;->onSystemReady()V
-HSPLcom/android/server/am/AppBroadcastEventsTracker$AppBroadcastEventsPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppBroadcastEventsTracker;)V
-HSPLcom/android/server/am/AppBroadcastEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppBroadcastEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
+PLcom/android/server/am/AppBroadcastEventsTracker$AppBroadcastEventsPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppBroadcastEventsTracker;->createAppStateEvents(ILjava/lang/String;)Lcom/android/server/am/BaseAppStateEvents;
-PLcom/android/server/am/AppBroadcastEventsTracker;->createAppStateEvents(ILjava/lang/String;)Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker$SimpleAppStateTimeslotEvents;
+PLcom/android/server/am/AppBroadcastEventsTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/am/AppBroadcastEventsTracker;->onSendingBroadcast(Ljava/lang/String;I)V
 PLcom/android/server/am/AppBroadcastEventsTracker;->onSystemReady()V
 HSPLcom/android/server/am/AppErrors;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;Lcom/android/server/PackageWatchdog;)V
-HPLcom/android/server/am/AppErrors;->isBadProcess(Ljava/lang/String;I)Z
-PLcom/android/server/am/AppErrors;->loadAppsNotReportingCrashesFromConfig(Ljava/lang/String;)V
-HPLcom/android/server/am/AppErrors;->resetProcessCrashTime(Ljava/lang/String;I)V
-PLcom/android/server/am/AppErrors;->resetProcessCrashTime(ZII)V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppExitInfoTracker;ILjava/util/ArrayList;I)V
-HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda12;-><init>()V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda15;->run()V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/AppExitInfoTracker;ILjava/util/ArrayList;ILjava/lang/Integer;Ljava/lang/Integer;)V
-HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda7;-><init>()V
-PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;
-PLcom/android/server/am/AppExitInfoTracker$1;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
-PLcom/android/server/am/AppExitInfoTracker$2;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->$r8$lambda$Y4wPp1NAYnFwArAHF0m1DTLetnA(Landroid/app/ApplicationExitInfo;Landroid/app/ApplicationExitInfo;)I
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->-$$Nest$fputmUid(Lcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;I)V
-HPLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;-><init>(Lcom/android/server/am/AppExitInfoTracker;I)V
+PLcom/android/server/am/AppErrors;->dumpDebugLPr(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)V
+PLcom/android/server/am/AppErrors;->dumpLPr(Ljava/io/PrintWriter;Ljava/lang/String;Z)Z
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppExitInfoTracker;I)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda10;-><init>(I)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda10;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/am/AppExitInfoTracker;Ljava/io/PrintWriter;Landroid/icu/text/SimpleDateFormat;)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/am/AppExitInfoTracker;II[ZLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda14;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda6;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda7;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda7;->accept(Ljava/io/File;)Z
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda9;-><init>(IILjava/util/List;)V
+PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/AppExitInfoTracker$1;-><init>(Lcom/android/server/am/AppExitInfoTracker;I)V
+PLcom/android/server/am/AppExitInfoTracker$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;-><init>(Lcom/android/server/am/AppExitInfoTracker;I)V
 PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->addExitInfoLocked(Landroid/app/ApplicationExitInfo;)V
-HPLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->addInfoLocked(Landroid/util/SparseArray;Landroid/app/ApplicationExitInfo;)V
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->getExitInfoLocked(IILjava/util/ArrayList;)V
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->getInfosLocked(Landroid/util/SparseArray;IILjava/util/ArrayList;)V
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->lambda$getInfosLocked$0(Landroid/app/ApplicationExitInfo;Landroid/app/ApplicationExitInfo;)I
-PLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->toListLocked(Ljava/util/List;I)Ljava/util/List;
-HSPLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;-><init>(Lcom/android/server/am/AppExitInfoTracker;Ljava/lang/String;Ljava/lang/Integer;)V
-HPLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;->addLocked(IILjava/lang/Object;)V
-HPLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;->onProcDied(IILjava/lang/Integer;)V
-HPLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;->remove(II)Landroid/util/Pair;
+HPLcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;->getExitInfosLocked(IILjava/util/List;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HSPLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;-><init>(Lcom/android/server/am/AppExitInfoTracker;Ljava/lang/Integer;)V
+PLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;->addLocked(IILjava/lang/Object;)V
+PLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;->onProcDied(IILjava/lang/Integer;Ljava/lang/Long;)V
+PLcom/android/server/am/AppExitInfoTracker$AppExitInfoExternalSource;->remove(II)Landroid/util/Pair;
 HSPLcom/android/server/am/AppExitInfoTracker$AppTraceRetriever;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
 HSPLcom/android/server/am/AppExitInfoTracker$IsolatedUidRecords;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
 PLcom/android/server/am/AppExitInfoTracker$IsolatedUidRecords;->getUidByIsolatedUid(I)Ljava/lang/Integer;
-PLcom/android/server/am/AppExitInfoTracker$IsolatedUidRecords;->removeIsolatedUidLocked(I)I
 HSPLcom/android/server/am/AppExitInfoTracker$KillHandler;-><init>(Lcom/android/server/am/AppExitInfoTracker;Landroid/os/Looper;)V
-HPLcom/android/server/am/AppExitInfoTracker$KillHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/am/AppExitInfoTracker;->$r8$lambda$4bSqVHM7qj6v6DxMNp66FfiZ0SQ(Lcom/android/server/am/AppExitInfoTracker;ILjava/util/ArrayList;ILjava/lang/String;Landroid/util/SparseArray;)Ljava/lang/Integer;
-PLcom/android/server/am/AppExitInfoTracker;->$r8$lambda$8ldOFQfwVDb6WsbCLIHcgkKxIAI(Lcom/android/server/am/AppExitInfoTracker;ILjava/util/ArrayList;ILjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Landroid/util/SparseArray;)Ljava/lang/Integer;
-PLcom/android/server/am/AppExitInfoTracker;->$r8$lambda$h-8YP32HtmCPcUbOWTowipwKDNc(Lcom/android/server/am/AppExitInfoTracker;)V
-HPLcom/android/server/am/AppExitInfoTracker;->-$$Nest$fgetmLock(Lcom/android/server/am/AppExitInfoTracker;)Ljava/lang/Object;
-PLcom/android/server/am/AppExitInfoTracker;->-$$Nest$fgetmService(Lcom/android/server/am/AppExitInfoTracker;)Lcom/android/server/am/ActivityManagerService;
-PLcom/android/server/am/AppExitInfoTracker;->-$$Nest$mupdateExitInfoIfNecessaryLocked(Lcom/android/server/am/AppExitInfoTracker;IILjava/lang/Integer;Ljava/lang/Integer;)Z
-PLcom/android/server/am/AppExitInfoTracker;->-$$Nest$smfindAndRemoveFromSparse2dArray(Landroid/util/SparseArray;II)Ljava/lang/Object;
+PLcom/android/server/am/AppExitInfoTracker$KillHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/am/AppExitInfoTracker;->-$$Nest$smfindAndRemoveFromSparse2dArray(IILandroid/util/SparseArray;)Ljava/lang/Object;
 HSPLcom/android/server/am/AppExitInfoTracker;-><clinit>()V
 HSPLcom/android/server/am/AppExitInfoTracker;-><init>()V
-HPLcom/android/server/am/AppExitInfoTracker;->addExitInfoInnerLocked(Ljava/lang/String;ILandroid/app/ApplicationExitInfo;Z)V
+PLcom/android/server/am/AppExitInfoTracker;->addExitInfoInnerLocked(Ljava/lang/String;ILandroid/app/ApplicationExitInfo;)V
 PLcom/android/server/am/AppExitInfoTracker;->addExitInfoLocked(Landroid/app/ApplicationExitInfo;)Landroid/app/ApplicationExitInfo;
-HPLcom/android/server/am/AppExitInfoTracker;->addExitInfoLocked(Landroid/app/ApplicationExitInfo;Z)Landroid/app/ApplicationExitInfo;
-PLcom/android/server/am/AppExitInfoTracker;->copyToGzFile(Ljava/io/File;Ljava/io/File;JJ)Z
-PLcom/android/server/am/AppExitInfoTracker;->findAndRemoveFromSparse2dArray(Landroid/util/SparseArray;II)Ljava/lang/Object;
-HPLcom/android/server/am/AppExitInfoTracker;->forEachPackageLocked(Ljava/util/function/BiFunction;)V
-HPLcom/android/server/am/AppExitInfoTracker;->getExitInfo(Ljava/lang/String;IIILjava/util/ArrayList;)V
-HPLcom/android/server/am/AppExitInfoTracker;->getExitInfoLocked(Ljava/lang/String;II)Landroid/app/ApplicationExitInfo;
-PLcom/android/server/am/AppExitInfoTracker;->handleLogAnrTrace(II[Ljava/lang/String;Ljava/io/File;JJ)V
+PLcom/android/server/am/AppExitInfoTracker;->dumpHistoryProcessExitInfo(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppExitInfoTracker;->dumpHistoryProcessExitInfoLocked(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseArray;Landroid/icu/text/SimpleDateFormat;)V
+HPLcom/android/server/am/AppExitInfoTracker;->forEachPackageLocked(Ljava/util/function/BiFunction;)V+]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap;]Ljava/util/function/BiFunction;Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda14;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda6;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda9;
+PLcom/android/server/am/AppExitInfoTracker;->getExitInfo(Ljava/lang/String;IIILjava/util/List;)V
+PLcom/android/server/am/AppExitInfoTracker;->getExitInfoLocked(IILjava/lang/String;)Landroid/app/ApplicationExitInfo;
 PLcom/android/server/am/AppExitInfoTracker;->handleNoteAppKillLocked(Landroid/app/ApplicationExitInfo;)V
 HPLcom/android/server/am/AppExitInfoTracker;->handleNoteProcessDiedLocked(Landroid/app/ApplicationExitInfo;)V
-PLcom/android/server/am/AppExitInfoTracker;->handleZygoteSigChld(III)V
-HSPLcom/android/server/am/AppExitInfoTracker;->init(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/AppExitInfoTracker;->isFresh(J)Z
-HPLcom/android/server/am/AppExitInfoTracker;->lambda$getExitInfo$3(ILjava/util/ArrayList;ILjava/lang/String;Landroid/util/SparseArray;)Ljava/lang/Integer;
-PLcom/android/server/am/AppExitInfoTracker;->lambda$onSystemReady$0()V
-HPLcom/android/server/am/AppExitInfoTracker;->lambda$updateExitInfoIfNecessaryLocked$2(ILjava/util/ArrayList;ILjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Landroid/util/SparseArray;)Ljava/lang/Integer;
 PLcom/android/server/am/AppExitInfoTracker;->loadExistingProcessExitInfo()V
+PLcom/android/server/am/AppExitInfoTracker;->loadPackagesFromProto(Landroid/util/proto/ProtoInputStream;J)V
 HPLcom/android/server/am/AppExitInfoTracker;->obtainRawRecord(Lcom/android/server/am/ProcessRecord;J)Landroid/app/ApplicationExitInfo;
-PLcom/android/server/am/AppExitInfoTracker;->onSystemReady()V
-HPLcom/android/server/am/AppExitInfoTracker;->performLogToStatsdLocked(Landroid/app/ApplicationExitInfo;)V
-PLcom/android/server/am/AppExitInfoTracker;->putToSparse2dArray(Landroid/util/SparseArray;IILjava/lang/Object;Ljava/util/function/Supplier;Ljava/util/function/Consumer;)V
-HPLcom/android/server/am/AppExitInfoTracker;->recycleRawRecord(Landroid/app/ApplicationExitInfo;)V
-PLcom/android/server/am/AppExitInfoTracker;->registerForPackageRemoval()V
-PLcom/android/server/am/AppExitInfoTracker;->registerForUserRemoval()V
-PLcom/android/server/am/AppExitInfoTracker;->scheduleChildProcDied(III)V
-PLcom/android/server/am/AppExitInfoTracker;->scheduleLogAnrTrace(II[Ljava/lang/String;Ljava/io/File;JJ)V
-HPLcom/android/server/am/AppExitInfoTracker;->scheduleLogToStatsdLocked(Landroid/app/ApplicationExitInfo;Z)V
+PLcom/android/server/am/AppExitInfoTracker;->performLogToStatsdLocked(Landroid/app/ApplicationExitInfo;)V
+PLcom/android/server/am/AppExitInfoTracker;->persistProcessExitInfo()V
+PLcom/android/server/am/AppExitInfoTracker;->pruneAnrTracesIfNecessaryLocked()V
+PLcom/android/server/am/AppExitInfoTracker;->putToSparse2dArray(Landroid/util/SparseArray;IILjava/lang/Object;Ljava/util/function/Supplier;Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda3;)V
+PLcom/android/server/am/AppExitInfoTracker;->recycleRawRecord(Landroid/app/ApplicationExitInfo;)V
+PLcom/android/server/am/AppExitInfoTracker;->scheduleLogToStatsdLocked(Landroid/app/ApplicationExitInfo;Z)V
 PLcom/android/server/am/AppExitInfoTracker;->scheduleNoteAppKill(Lcom/android/server/am/ProcessRecord;IILjava/lang/String;)V
-HPLcom/android/server/am/AppExitInfoTracker;->scheduleNoteLmkdProcKilled(II)V
-HPLcom/android/server/am/AppExitInfoTracker;->scheduleNoteProcessDied(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/AppExitInfoTracker;->schedulePersistProcessExitInfo(Z)V
-HPLcom/android/server/am/AppExitInfoTracker;->updateExistingExitInfoRecordLocked(Landroid/app/ApplicationExitInfo;Ljava/lang/Integer;Ljava/lang/Integer;)V
-HPLcom/android/server/am/AppExitInfoTracker;->updateExitInfoIfNecessaryLocked(IILjava/lang/Integer;Ljava/lang/Integer;)Z
+PLcom/android/server/am/AppExitInfoTracker;->schedulePersistProcessExitInfo(Z)V
+PLcom/android/server/am/AppExitInfoTracker;->setProcessStateSummary(II[B)V
+PLcom/android/server/am/AppExitInfoTracker;->updateExistingExitInfoRecordLocked(Landroid/app/ApplicationExitInfo;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;)V
 HSPLcom/android/server/am/AppFGSTracker$1;-><init>(Lcom/android/server/am/AppFGSTracker;)V
 PLcom/android/server/am/AppFGSTracker$1;->onForegroundActivitiesChanged(IIZ)V
 PLcom/android/server/am/AppFGSTracker$1;->onForegroundServicesChanged(III)V
 PLcom/android/server/am/AppFGSTracker$1;->onProcessDied(II)V
-HSPLcom/android/server/am/AppFGSTracker$AppFGSPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppFGSTracker;)V
-PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->getFgsLongRunningThreshold()J
-PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->onMaxTrackingDurationChanged(J)V
+PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->getExemptionReasonString(IILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->onMaxTrackingDurationChanged()V
 PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->onSystemReady()V
 PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->onTrackerEnabled(Z)V
-PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->updateBgFgsLocationThreshold()V
-PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->updateBgFgsLongRunningThreshold()V
-PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->updateBgFgsMediaPlaybackThreshold()V
+PLcom/android/server/am/AppFGSTracker$AppFGSPolicy;->shouldExemptMediaPlaybackFGS(IJJLjava/lang/String;)Z
 HSPLcom/android/server/am/AppFGSTracker$MyHandler;-><init>(Lcom/android/server/am/AppFGSTracker;)V
 HPLcom/android/server/am/AppFGSTracker$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/am/AppFGSTracker$NotificationListener;-><init>(Lcom/android/server/am/AppFGSTracker;)V
-PLcom/android/server/am/AppFGSTracker$NotificationListener;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+HPLcom/android/server/am/AppFGSTracker$NotificationListener;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+PLcom/android/server/am/AppFGSTracker$NotificationListener;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V
 PLcom/android/server/am/AppFGSTracker$PackageDurations;-><clinit>()V
-PLcom/android/server/am/AppFGSTracker$PackageDurations;-><init>(ILjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;Lcom/android/server/am/AppFGSTracker;)V
+PLcom/android/server/am/AppFGSTracker$PackageDurations;-><init>(ILjava/lang/String;Lcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;Lcom/android/server/am/AppFGSTracker;)V
 PLcom/android/server/am/AppFGSTracker$PackageDurations;-><init>(Lcom/android/server/am/AppFGSTracker$PackageDurations;)V
-PLcom/android/server/am/AppFGSTracker$PackageDurations;->addEvent(ZJ)V
-PLcom/android/server/am/AppFGSTracker$PackageDurations;->hasForegroundServices()Z
-PLcom/android/server/am/AppFGSTracker$PackageDurations;->isLongRunning()Z
-PLcom/android/server/am/AppFGSTracker$PackageDurations;->notifyListenersOnStateChangeIfNecessary(ZJI)V
+PLcom/android/server/am/AppFGSTracker$PackageDurations;->addEvent(JZ)V
+PLcom/android/server/am/AppFGSTracker$PackageDurations;->formatEventTypeLabel(I)Ljava/lang/String;
+PLcom/android/server/am/AppFGSTracker$PackageDurations;->notifyListenersOnStateChangeIfNecessary(IJZ)V
 PLcom/android/server/am/AppFGSTracker$PackageDurations;->setForegroundServiceType(IJ)V
-PLcom/android/server/am/AppFGSTracker;->-$$Nest$fgetmHandler(Lcom/android/server/am/AppFGSTracker;)Lcom/android/server/am/AppFGSTracker$MyHandler;
 PLcom/android/server/am/AppFGSTracker;->-$$Nest$mhandleForegroundServiceNotificationUpdated(Lcom/android/server/am/AppFGSTracker;Ljava/lang/String;IIZ)V
 PLcom/android/server/am/AppFGSTracker;->-$$Nest$mhandleForegroundServicesChanged(Lcom/android/server/am/AppFGSTracker;Ljava/lang/String;II)V
-PLcom/android/server/am/AppFGSTracker;->-$$Nest$mhandleForegroundServicesChanged(Lcom/android/server/am/AppFGSTracker;Ljava/lang/String;IIZ)V
-PLcom/android/server/am/AppFGSTracker;->-$$Nest$mhandleNotificationPosted(Lcom/android/server/am/AppFGSTracker;Ljava/lang/String;II)V
+PLcom/android/server/am/AppFGSTracker;->-$$Nest$mhandleForegroundServicesChanged(Lcom/android/server/am/AppFGSTracker;Ljava/lang/String;IZ)V
 PLcom/android/server/am/AppFGSTracker;->-$$Nest$monBgFgsLongRunningThresholdChanged(Lcom/android/server/am/AppFGSTracker;)V
-PLcom/android/server/am/AppFGSTracker;->-$$Nest$monBgFgsMonitorEnabled(Lcom/android/server/am/AppFGSTracker;Z)V
 HSPLcom/android/server/am/AppFGSTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppFGSTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/AppFGSTracker;->createAppStateEvents(ILjava/lang/String;)Lcom/android/server/am/AppFGSTracker$PackageDurations;
-PLcom/android/server/am/AppFGSTracker;->createAppStateEvents(Lcom/android/server/am/AppFGSTracker$PackageDurations;)Lcom/android/server/am/AppFGSTracker$PackageDurations;
-PLcom/android/server/am/AppFGSTracker;->createAppStateEvents(Lcom/android/server/am/BaseAppStateEvents;)Lcom/android/server/am/BaseAppStateEvents;
+PLcom/android/server/am/AppFGSTracker;->createAppStateEvents(Lcom/android/server/am/BaseAppStateDurations;)Lcom/android/server/am/BaseAppStateEvents;
+PLcom/android/server/am/AppFGSTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppFGSTracker;->dumpOthers(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppFGSTracker;->foregroundServiceTypeToIndex(I)I
 PLcom/android/server/am/AppFGSTracker;->getTotalDurations(Lcom/android/server/am/AppFGSTracker$PackageDurations;J)J
-PLcom/android/server/am/AppFGSTracker;->handleForegroundServiceNotificationUpdated(Ljava/lang/String;IIZ)V
-PLcom/android/server/am/AppFGSTracker;->handleForegroundServicesChanged(Ljava/lang/String;II)V
-PLcom/android/server/am/AppFGSTracker;->handleForegroundServicesChanged(Ljava/lang/String;IIZ)V
-PLcom/android/server/am/AppFGSTracker;->handleNotificationPosted(Ljava/lang/String;II)V
-HPLcom/android/server/am/AppFGSTracker;->hasForegroundServices(Ljava/lang/String;I)Z
-PLcom/android/server/am/AppFGSTracker;->onBgFgsLongRunningThresholdChanged()V
-PLcom/android/server/am/AppFGSTracker;->onBgFgsMonitorEnabled(Z)V
+PLcom/android/server/am/AppFGSTracker;->hasForegroundServiceNotificationsLocked(ILjava/lang/String;)Z
 PLcom/android/server/am/AppFGSTracker;->onForegroundServiceNotificationUpdated(Ljava/lang/String;IIZ)V
 PLcom/android/server/am/AppFGSTracker;->onForegroundServiceStateChanged(Ljava/lang/String;IIZ)V
 PLcom/android/server/am/AppFGSTracker;->onSystemReady()V
-HPLcom/android/server/am/AppFGSTracker;->scheduleDurationCheckLocked(J)V
+PLcom/android/server/am/AppFGSTracker;->scheduleDurationCheckLocked(J)V
 HSPLcom/android/server/am/AppMediaSessionTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppMediaSessionTracker;)V
 PLcom/android/server/am/AppMediaSessionTracker$$ExternalSyntheticLambda0;->onActiveSessionsChanged(Ljava/util/List;)V
 PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppMediaSessionTracker;)V
 PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy;->$r8$lambda$vU9Y6O_Ak5yd1fFgiQvvDQnuaxQ(Lcom/android/server/am/AppMediaSessionTracker;)V
-HSPLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppMediaSessionTracker;)V
-PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy;->onMaxTrackingDurationChanged(J)V
+PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy;->onMaxTrackingDurationChanged()V
 PLcom/android/server/am/AppMediaSessionTracker$AppMediaSessionPolicy;->onTrackerEnabled(Z)V
-PLcom/android/server/am/AppMediaSessionTracker;->$r8$lambda$QGd-MrvifawKK7V_H96hUv85JPk(Lcom/android/server/am/AppMediaSessionTracker;Ljava/util/List;)V
-PLcom/android/server/am/AppMediaSessionTracker;->-$$Nest$monBgMediaSessionMonitorEnabled(Lcom/android/server/am/AppMediaSessionTracker;Z)V
-PLcom/android/server/am/AppMediaSessionTracker;->-$$Nest$mtrimDurations(Lcom/android/server/am/AppMediaSessionTracker;)V
 HSPLcom/android/server/am/AppMediaSessionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppMediaSessionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/AppMediaSessionTracker;->handleMediaSessionChanged(Ljava/util/List;)V
-PLcom/android/server/am/AppMediaSessionTracker;->onBgMediaSessionMonitorEnabled(Z)V
-PLcom/android/server/am/AppMediaSessionTracker;->trimDurations()V
+PLcom/android/server/am/AppMediaSessionTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;-><clinit>()V
-HSPLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/AppPermissionTracker;)V
-PLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;->getBgPermissionsInMonitor()[Landroid/util/Pair;
+PLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;->onSystemReady()V
 PLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;->onTrackerEnabled(Z)V
 HSPLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;->parsePermissionConfig([Ljava/lang/String;)[Landroid/util/Pair;
 PLcom/android/server/am/AppPermissionTracker$AppPermissionPolicy;->updateBgPermissionsInMonitor()V
 PLcom/android/server/am/AppPermissionTracker$MyAppOpsCallback;-><init>(Lcom/android/server/am/AppPermissionTracker;)V
-PLcom/android/server/am/AppPermissionTracker$MyAppOpsCallback;-><init>(Lcom/android/server/am/AppPermissionTracker;Lcom/android/server/am/AppPermissionTracker$MyAppOpsCallback-IA;)V
 PLcom/android/server/am/AppPermissionTracker$MyAppOpsCallback;->opChanged(IILjava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/am/AppPermissionTracker$MyHandler;-><init>(Lcom/android/server/am/AppPermissionTracker;)V
 PLcom/android/server/am/AppPermissionTracker$MyHandler;->handleMessage(Landroid/os/Message;)V
 HPLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;-><init>(Lcom/android/server/am/AppPermissionTracker;ILjava/lang/String;I)V
-HPLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->hashCode()I
-HPLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->isGranted()Z
-HPLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->updateAppOps()V
-HPLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->updatePermissionState()V
-PLcom/android/server/am/AppPermissionTracker;->-$$Nest$fgetmHandler(Lcom/android/server/am/AppPermissionTracker;)Lcom/android/server/am/AppPermissionTracker$MyHandler;
-PLcom/android/server/am/AppPermissionTracker;->-$$Nest$mhandleAppOpsInit(Lcom/android/server/am/AppPermissionTracker;)V
-PLcom/android/server/am/AppPermissionTracker;->-$$Nest$mhandleOpChanged(Lcom/android/server/am/AppPermissionTracker;IILjava/lang/String;)V
+PLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;->hashCode()I
 PLcom/android/server/am/AppPermissionTracker;->-$$Nest$mhandlePermissionsInit(Lcom/android/server/am/AppPermissionTracker;)V
-PLcom/android/server/am/AppPermissionTracker;->-$$Nest$monPermissionTrackerEnabled(Lcom/android/server/am/AppPermissionTracker;Z)V
 HSPLcom/android/server/am/AppPermissionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppPermissionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/AppPermissionTracker;->handleAppOpsInit()V
-PLcom/android/server/am/AppPermissionTracker;->handleOpChanged(IILjava/lang/String;)V
+PLcom/android/server/am/AppPermissionTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/AppPermissionTracker;->handlePermissionsChangedLocked(I[Lcom/android/server/am/AppPermissionTracker$UidGrantedPermissionState;)V
-HPLcom/android/server/am/AppPermissionTracker;->handlePermissionsInit()V
 PLcom/android/server/am/AppPermissionTracker;->onLockedBootCompleted()V
 PLcom/android/server/am/AppPermissionTracker;->onPermissionTrackerEnabled(Z)V
-PLcom/android/server/am/AppPermissionTracker;->startWatchingMode([Ljava/lang/Integer;)V
+PLcom/android/server/am/AppPermissionTracker;->onPermissionsChanged(I)V
 PLcom/android/server/am/AppPermissionTracker;->stopWatchingMode()V
-HSPLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/AppProfiler;ZJ)V
+PLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda3;-><init>(I)V
+PLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda3;->needed(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
+HPLcom/android/server/am/AppProfiler$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/am/AppProfiler$1;-><init>(Lcom/android/server/am/AppProfiler;)V
+PLcom/android/server/am/AppProfiler$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/am/AppProfiler$BgHandler;-><init>(Lcom/android/server/am/AppProfiler;Landroid/os/Looper;)V
 HPLcom/android/server/am/AppProfiler$BgHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/am/AppProfiler$CachedAppsWatermarkData$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppProfiler$CachedAppsWatermarkData;J)V
-HPLcom/android/server/am/AppProfiler$CachedAppsWatermarkData$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/am/AppProfiler$CachedAppsWatermarkData;->$r8$lambda$zI0BBTvUIJgiEIeZIL8U6fuo_8Y(Lcom/android/server/am/AppProfiler$CachedAppsWatermarkData;JLcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/AppProfiler$CachedAppsWatermarkData$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/AppProfiler$CachedAppsWatermarkData;J)V
+PLcom/android/server/am/AppProfiler$CachedAppsWatermarkData$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/am/AppProfiler$CachedAppsWatermarkData;-><init>(Lcom/android/server/am/AppProfiler;)V
-HPLcom/android/server/am/AppProfiler$CachedAppsWatermarkData;->lambda$updateCachedAppsSnapshot$0(JLcom/android/server/am/ProcessRecord;)V
-HSPLcom/android/server/am/AppProfiler$CachedAppsWatermarkData;->updateCachedAppsHighWatermarkIfNecessaryLocked(IJ)V
-HPLcom/android/server/am/AppProfiler$CachedAppsWatermarkData;->updateCachedAppsSnapshot(J)V
+PLcom/android/server/am/AppProfiler$CachedAppsWatermarkData;->updateCachedAppsSnapshot(J)V
 PLcom/android/server/am/AppProfiler$CpuBinder$1;-><init>(Lcom/android/server/am/AppProfiler$CpuBinder;)V
+PLcom/android/server/am/AppProfiler$CpuBinder$1;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 PLcom/android/server/am/AppProfiler$CpuBinder;-><init>(Lcom/android/server/am/AppProfiler;)V
-HSPLcom/android/server/am/AppProfiler$ProcessCpuThread;-><init>(Lcom/android/server/am/AppProfiler;Ljava/lang/String;)V
+PLcom/android/server/am/AppProfiler$CpuBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/am/AppProfiler$ProcessCpuThread;-><init>(Lcom/android/server/am/AppProfiler;)V
 HSPLcom/android/server/am/AppProfiler$ProcessCpuThread;->run()V
 HSPLcom/android/server/am/AppProfiler$ProfileData;-><init>(Lcom/android/server/am/AppProfiler;)V
-HSPLcom/android/server/am/AppProfiler$ProfileData;-><init>(Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler$ProfileData-IA;)V
-PLcom/android/server/am/AppProfiler$ProfileData;->getProfileApp()Ljava/lang/String;
-PLcom/android/server/am/AppProfiler$ProfileData;->getProfileProc()Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/AppProfiler;->$r8$lambda$O0KXijwG7-p0M_PB8ZuTBcOSGho(Lcom/android/server/am/ProcessRecord;)V
-HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmLastCpuTime(Lcom/android/server/am/AppProfiler;)Ljava/util/concurrent/atomic/AtomicLong;
-HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmLastWriteTime(Lcom/android/server/am/AppProfiler;)J
-HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmProcessCpuInitLatch(Lcom/android/server/am/AppProfiler;)Ljava/util/concurrent/CountDownLatch;
-HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmProcessCpuMutexFree(Lcom/android/server/am/AppProfiler;)Ljava/util/concurrent/atomic/AtomicBoolean;
-HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmProcessCpuTracker(Lcom/android/server/am/AppProfiler;)Lcom/android/internal/os/ProcessCpuTracker;
-HPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmService(Lcom/android/server/am/AppProfiler;)Lcom/android/server/am/ActivityManagerService;
-PLcom/android/server/am/AppProfiler;->-$$Nest$mhandleMemoryPressureChangedLocked(Lcom/android/server/am/AppProfiler;II)V
+HPLcom/android/server/am/AppProfiler;->-$$Nest$mcollectRssInBackground(Lcom/android/server/am/AppProfiler;)V+]Landroid/util/IntArray;Landroid/util/IntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/am/AppProfiler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;Lcom/android/server/am/LowMemDetector;)V
-HPLcom/android/server/am/AppProfiler;->doLowMemReportIfNeededLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/AppProfiler;->getCpuDelayTimeForPid(I)J
-PLcom/android/server/am/AppProfiler;->getCpuTimeForPid(I)J
+PLcom/android/server/am/AppProfiler;->doLowMemReportIfNeededLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/AppProfiler;->dumpMemWatchProcessesLPf(Ljava/io/PrintWriter;Z)Z
+PLcom/android/server/am/AppProfiler;->dumpProcessesToGc(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/am/AppProfiler;->forAllCpuStats(Ljava/util/function/Consumer;)V
 PLcom/android/server/am/AppProfiler;->getLastMemoryLevelLocked()I
-HPLcom/android/server/am/AppProfiler;->handleMemoryPressureChangedLocked(II)V
-HPLcom/android/server/am/AppProfiler;->isLastMemoryLevelNormal()Z
+PLcom/android/server/am/AppProfiler;->getLowRamTimeSinceIdleLPr(J)J
+HSPLcom/android/server/am/AppProfiler;->isLastMemoryLevelNormal()Z
 HPLcom/android/server/am/AppProfiler;->isProfilingPss()Z
-HPLcom/android/server/am/AppProfiler;->lambda$updateLowMemStateLSP$3(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/AppProfiler;->onActivityLaunched()V
-HSPLcom/android/server/am/AppProfiler;->onActivityManagerInternalAdded()V
-HPLcom/android/server/am/AppProfiler;->onAppDiedLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/AppProfiler;->onCleanupApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/AppProfiler;->printCurrentCpuState(Ljava/lang/StringBuilder;J)V
-PLcom/android/server/am/AppProfiler;->retrieveSettings()V
+PLcom/android/server/am/AppProfiler;->requestPssAllProcsLPr(JZ)V
 HPLcom/android/server/am/AppProfiler;->scheduleAppGcsLPf()V
-PLcom/android/server/am/AppProfiler;->setAllowLowerMemLevelLocked(Z)V
-PLcom/android/server/am/AppProfiler;->setCpuInfoService()V
-HPLcom/android/server/am/AppProfiler;->setupProfilerInfoLocked(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ActiveInstrumentation;)Landroid/app/ProfilerInfo;
-HPLcom/android/server/am/AppProfiler;->updateCpuStats()V
-HPLcom/android/server/am/AppProfiler;->updateCpuStatsNow()V
-HSPLcom/android/server/am/AppProfiler;->updateLowMemStateLSP(IIIJ)Z
-HPLcom/android/server/am/AppProfiler;->updateNextPssTimeLPf(ILcom/android/server/am/ProcessProfileRecord;JZ)V
+PLcom/android/server/am/AppProfiler;->setupProfilerInfoLocked(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ActiveInstrumentation;)Landroid/app/ProfilerInfo;
+HSPLcom/android/server/am/AppProfiler;->updateCpuStatsNow()V+]Lcom/android/internal/os/ProcessCpuTracker;Lcom/android/internal/os/ProcessCpuTracker;
+HPLcom/android/server/am/AppProfiler;->updateNextPssTimeLPf(ILcom/android/server/am/ProcessProfileRecord;JZ)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/AppProfiler;->writeMemWatchProcessToProtoLPf(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/AppProfiler;->writeProcessesToGcToProto(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)V
 HSPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-HPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda2;-><init>(ILjava/lang/String;I)V
-HPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/AppRestrictionController;ILcom/android/server/usage/AppStandbyInternal;I)V
-HPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda1;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda2;-><init>(IILjava/lang/String;)V
+PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/AppRestrictionController;ILcom/android/server/usage/AppStandbyInternal;I)V
+PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/AppRestrictionController;)V
 PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda4;->run()V
-HSPLcom/android/server/am/AppRestrictionController$1;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-HSPLcom/android/server/am/AppRestrictionController$2;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-PLcom/android/server/am/AppRestrictionController$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/am/AppRestrictionController$1;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/am/AppRestrictionController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/am/AppRestrictionController$3;-><init>(Lcom/android/server/am/AppRestrictionController;)V
 HSPLcom/android/server/am/AppRestrictionController$4;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-HPLcom/android/server/am/AppRestrictionController$4;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
+PLcom/android/server/am/AppRestrictionController$4;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 PLcom/android/server/am/AppRestrictionController$4;->onUserInteractionStarted(Ljava/lang/String;I)V
 HSPLcom/android/server/am/AppRestrictionController$5;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-HPLcom/android/server/am/AppRestrictionController$5;->onUidActive(I)V
-HPLcom/android/server/am/AppRestrictionController$5;->onUidGone(IZ)V
-HPLcom/android/server/am/AppRestrictionController$5;->onUidIdle(IZ)V
-HPLcom/android/server/am/AppRestrictionController$5;->onUidStateChanged(IIJI)V
+PLcom/android/server/am/AppRestrictionController$5;->onUidActive(I)V
+PLcom/android/server/am/AppRestrictionController$5;->onUidGone(IZ)V
+PLcom/android/server/am/AppRestrictionController$5;->onUidIdle(IZ)V
+PLcom/android/server/am/AppRestrictionController$5;->onUidStateChanged(IIJI)V
 HSPLcom/android/server/am/AppRestrictionController$BgHandler;-><init>(Landroid/os/Looper;Lcom/android/server/am/AppRestrictionController$Injector;)V
-HPLcom/android/server/am/AppRestrictionController$BgHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/am/AppRestrictionController$ConstantsObserver;-><init>(Lcom/android/server/am/AppRestrictionController;Landroid/os/Handler;Landroid/content/Context;)V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->start()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgAbusiveNotificationMinimalInterval()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgAutoRestrictAbusiveApps()V
+HPLcom/android/server/am/AppRestrictionController$BgHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/BaseAppStateTracker;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;
+HSPLcom/android/server/am/AppRestrictionController$ConstantsObserver;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
+PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgAutoRestrictedBucketChanged()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgLongFgsNotificationMinimalInterval()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgPromptAbusiveAppToBgRestricted()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgPromptFgsOnLongRunning()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgPromptFgsWithNotiOnLongRunning()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgPromptFgsWithNotiToBgRestricted()V
 PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateBgRestrictionExemptedPackages()V
-PLcom/android/server/am/AppRestrictionController$ConstantsObserver;->updateDeviceConfig()V
 HSPLcom/android/server/am/AppRestrictionController$Injector;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/am/AppRestrictionController$Injector;->currentTimeMillis()J
-HPLcom/android/server/am/AppRestrictionController$Injector;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getActivityManagerService()Lcom/android/server/am/ActivityManagerService;
-PLcom/android/server/am/AppRestrictionController$Injector;->getAppFGSTracker()Lcom/android/server/am/AppFGSTracker;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getAppHibernationInternal()Lcom/android/server/apphibernation/AppHibernationManagerInternal;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getAppOpsManager()Landroid/app/AppOpsManager;
-PLcom/android/server/am/AppRestrictionController$Injector;->getAppRestrictionController()Lcom/android/server/am/AppRestrictionController;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getAppStandbyInternal()Lcom/android/server/usage/AppStandbyInternal;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getAppStateTracker()Lcom/android/server/AppStateTracker;
-HSPLcom/android/server/am/AppRestrictionController$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/am/AppRestrictionController$Injector;->getDataSystemDeDirectory(I)Ljava/io/File;
-PLcom/android/server/am/AppRestrictionController$Injector;->getIActivityManager()Landroid/app/IActivityManager;
-HSPLcom/android/server/am/AppRestrictionController$Injector;->getNotificationManager()Landroid/app/NotificationManager;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getPackageManager()Landroid/content/pm/PackageManager;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/am/AppRestrictionController$Injector;->getPackageName(I)Ljava/lang/String;
+PLcom/android/server/am/AppRestrictionController$Injector;->getAppStandbyInternal()Lcom/android/server/usage/AppStandbyInternal;
+PLcom/android/server/am/AppRestrictionController$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
 PLcom/android/server/am/AppRestrictionController$Injector;->getRoleManager()Landroid/app/role/RoleManager;
-PLcom/android/server/am/AppRestrictionController$Injector;->getTelephonyManager()Landroid/telephony/TelephonyManager;
-HPLcom/android/server/am/AppRestrictionController$Injector;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
-HSPLcom/android/server/am/AppRestrictionController$Injector;->initAppStateTrackers(Lcom/android/server/am/AppRestrictionController;)V
-PLcom/android/server/am/AppRestrictionController$Injector;->isTest()Z
-PLcom/android/server/am/AppRestrictionController$Injector;->scheduleInitTrackers(Landroid/os/Handler;Ljava/lang/Runnable;)V
-HSPLcom/android/server/am/AppRestrictionController$NotificationHelper$1;-><init>(Lcom/android/server/am/AppRestrictionController$NotificationHelper;)V
+PLcom/android/server/am/AppRestrictionController$Injector;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
 HSPLcom/android/server/am/AppRestrictionController$NotificationHelper;-><clinit>()V
 HSPLcom/android/server/am/AppRestrictionController$NotificationHelper;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-HPLcom/android/server/am/AppRestrictionController$NotificationHelper;->notificationTimeAttrToType(Ljava/lang/String;)I
-PLcom/android/server/am/AppRestrictionController$NotificationHelper;->notificationTypeToTimeAttr(I)Ljava/lang/String;
-PLcom/android/server/am/AppRestrictionController$NotificationHelper;->onSystemReady()V
 PLcom/android/server/am/AppRestrictionController$PhoneCarrierPrivilegesCallback;-><init>(Lcom/android/server/am/AppRestrictionController;I)V
 PLcom/android/server/am/AppRestrictionController$PhoneCarrierPrivilegesCallback;->onCarrierPrivilegesChanged(Ljava/util/Set;Ljava/util/Set;)V
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->-$$Nest$fgetmCurrentRestrictionLevel(Lcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;)I
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->-$$Nest$fgetmLevelChangeTime(Lcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;)J
-PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->-$$Nest$fgetmReason(Lcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;)I
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;-><init>(Lcom/android/server/am/AppRestrictionController$RestrictionSettings;Ljava/lang/String;I)V
-PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->getCurrentRestrictionLevel()I
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->getLastNotificationTime(I)J
-PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->getPackageName()Ljava/lang/String;
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->getReason()I
-PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->getUid()I
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings$$ExternalSyntheticLambda0;-><init>(Ljava/util/ArrayList;)V
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings$$ExternalSyntheticLambda1;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;-><init>(Lcom/android/server/am/AppRestrictionController$RestrictionSettings;Ljava/lang/String;I)V
 PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->setLevelChangeTime(J)V
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->update(III)I
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->toString()Ljava/lang/String;
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;->update(III)I
 HSPLcom/android/server/am/AppRestrictionController$RestrictionSettings;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->forEachPackageInUidLocked(ILcom/android/internal/util/function/TriConsumer;)V
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getReason(Ljava/lang/String;I)I
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getRestrictionLevel(I)I
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getRestrictionLevel(ILjava/lang/String;)I
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getRestrictionSettingsLocked(ILjava/lang/String;)Lcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->forEachPackageInUidLocked(ILcom/android/internal/util/function/TriConsumer;)V
+HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getRestrictionLevel(I)I+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getRestrictionLevel(ILjava/lang/String;)I
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getRestrictionSettingsLocked(ILjava/lang/String;)Lcom/android/server/am/AppRestrictionController$RestrictionSettings$PkgSettings;
 PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->getXmlFileNameForUser(I)Ljava/io/File;
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->loadFromXml(IZ)V
 PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->loadFromXml(Z)V
 HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->loadOneFromXml(Lcom/android/modules/utils/TypedXmlPullParser;J[JZ)V
 PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->persistToXml(I)V
 PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->scheduleLoadFromXml()V
 PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->schedulePersistToXml(I)V
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->toXmlByteArray(I)[B
-HPLcom/android/server/am/AppRestrictionController$RestrictionSettings;->update(Ljava/lang/String;IIII)I
-HSPLcom/android/server/am/AppRestrictionController$TrackerInfo;-><init>(Lcom/android/server/am/AppRestrictionController;)V
-PLcom/android/server/am/AppRestrictionController$TrackerInfo;-><init>(Lcom/android/server/am/AppRestrictionController;I[B)V
-PLcom/android/server/am/AppRestrictionController;->$r8$lambda$_ydL4E-eseJqSvYCC9_LF-yu1d4(ILjava/lang/String;ILandroid/app/ActivityManagerInternal$AppBackgroundRestrictionListener;)V
-PLcom/android/server/am/AppRestrictionController;->$r8$lambda$cCOwIzhwVMmMXJ70sQK3rFQtGL0(Lcom/android/server/am/AppRestrictionController;)V
-PLcom/android/server/am/AppRestrictionController;->$r8$lambda$oY7vGD6ZBYgVNvNPzUZAGcXnf7g(Lcom/android/server/am/AppRestrictionController;ILcom/android/server/usage/AppStandbyInternal;ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
-HSPLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmAppStateTrackers(Lcom/android/server/am/AppRestrictionController;)Ljava/util/ArrayList;
-HPLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmBgHandler(Lcom/android/server/am/AppRestrictionController;)Lcom/android/server/am/AppRestrictionController$BgHandler;
-PLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmCarrierPrivilegedApps(Lcom/android/server/am/AppRestrictionController;)Landroid/util/SparseArray;
-PLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmCarrierPrivilegedLock(Lcom/android/server/am/AppRestrictionController;)Ljava/lang/Object;
-PLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmEmptyTrackerInfo(Lcom/android/server/am/AppRestrictionController;)Lcom/android/server/am/AppRestrictionController$TrackerInfo;
-HSPLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmInjector(Lcom/android/server/am/AppRestrictionController;)Lcom/android/server/am/AppRestrictionController$Injector;
-HSPLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmLock(Lcom/android/server/am/AppRestrictionController;)Ljava/lang/Object;
-PLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmRestrictionSettingsXmlLoaded(Lcom/android/server/am/AppRestrictionController;)Ljava/util/concurrent/atomic/AtomicBoolean;
-HSPLcom/android/server/am/AppRestrictionController;->-$$Nest$fgetmSettingsLock(Lcom/android/server/am/AppRestrictionController;)Ljava/lang/Object;
-PLcom/android/server/am/AppRestrictionController;->-$$Nest$mdispatchAppRestrictionLevelChanges(Lcom/android/server/am/AppRestrictionController;ILjava/lang/String;I)V
-PLcom/android/server/am/AppRestrictionController;->-$$Nest$monLockedBootCompleted(Lcom/android/server/am/AppRestrictionController;)V
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->toXmlByteArray(I)[B
+PLcom/android/server/am/AppRestrictionController$RestrictionSettings;->update(IIIILjava/lang/String;)V
+HSPLcom/android/server/am/AppRestrictionController$TrackerInfo;-><init>()V
+PLcom/android/server/am/AppRestrictionController$TrackerInfo;-><init>(I[B)V
 HSPLcom/android/server/am/AppRestrictionController;-><clinit>()V
 HSPLcom/android/server/am/AppRestrictionController;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;)V
-HSPLcom/android/server/am/AppRestrictionController;-><init>(Lcom/android/server/am/AppRestrictionController$Injector;Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/AppRestrictionController;->addAppBackgroundRestrictionListener(Landroid/app/ActivityManagerInternal$AppBackgroundRestrictionListener;)V
-HPLcom/android/server/am/AppRestrictionController;->applyRestrictionLevel(Ljava/lang/String;IILcom/android/server/am/AppRestrictionController$TrackerInfo;IZII)V
-HPLcom/android/server/am/AppRestrictionController;->calcAppRestrictionLevel(IILjava/lang/String;IZZ)Landroid/util/Pair;
-HPLcom/android/server/am/AppRestrictionController;->calcAppRestrictionLevelFromTackers(ILjava/lang/String;I)Landroid/util/Pair;
-HPLcom/android/server/am/AppRestrictionController;->dispatchAppRestrictionLevelChanges(ILjava/lang/String;I)V
-PLcom/android/server/am/AppRestrictionController;->forEachTracker(Ljava/util/function/Consumer;)V
-HSPLcom/android/server/am/AppRestrictionController;->getBackgroundHandler()Landroid/os/Handler;
+PLcom/android/server/am/AppRestrictionController;->applyRestrictionLevel(Ljava/lang/String;IILcom/android/server/am/AppRestrictionController$TrackerInfo;IZII)V
+PLcom/android/server/am/AppRestrictionController;->calcAppRestrictionLevel(IIILjava/lang/String;ZZ)Landroid/util/Pair;
+PLcom/android/server/am/AppRestrictionController;->calcAppRestrictionLevelFromTackers(IILjava/lang/String;)Landroid/util/Pair;
 HPLcom/android/server/am/AppRestrictionController;->getBackgroundRestrictionExemptionReason(I)I
-HSPLcom/android/server/am/AppRestrictionController;->getLock()Ljava/lang/Object;
-PLcom/android/server/am/AppRestrictionController;->getPackageName(I)Ljava/lang/String;
-HPLcom/android/server/am/AppRestrictionController;->getPotentialSystemExemptionReason(I)I
+HPLcom/android/server/am/AppRestrictionController;->getPotentialSystemExemptionReason(I)I+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;
 HPLcom/android/server/am/AppRestrictionController;->getPotentialSystemExemptionReason(ILjava/lang/String;)I
 HPLcom/android/server/am/AppRestrictionController;->getPotentialUserAllowedExemptionReason(ILjava/lang/String;)I
-HPLcom/android/server/am/AppRestrictionController;->getRestrictionLevel(I)I
-HPLcom/android/server/am/AppRestrictionController;->getRestrictionLevel(ILjava/lang/String;)I
-HPLcom/android/server/am/AppRestrictionController;->handleAppStandbyBucketChanged(ILjava/lang/String;I)V
-HPLcom/android/server/am/AppRestrictionController;->handleUidActive(I)V
-HPLcom/android/server/am/AppRestrictionController;->handleUidGone(I)V
-HPLcom/android/server/am/AppRestrictionController;->handleUidInactive(IZ)V
-HPLcom/android/server/am/AppRestrictionController;->handleUidProcStateChanged(II)V
-HPLcom/android/server/am/AppRestrictionController;->hasForegroundServices(Ljava/lang/String;I)Z
-PLcom/android/server/am/AppRestrictionController;->initBgRestrictionExemptioFromSysConfig()V
+PLcom/android/server/am/AppRestrictionController;->getRestrictionLevelStatsd(I)I
+PLcom/android/server/am/AppRestrictionController;->getUidBatteryExemptedUsageSince(IIJJ)Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;
+PLcom/android/server/am/AppRestrictionController;->handleUidInactive(I)V
+HPLcom/android/server/am/AppRestrictionController;->hasForegroundServices(ILjava/lang/String;)Z
 PLcom/android/server/am/AppRestrictionController;->initRestrictionStates()V
-PLcom/android/server/am/AppRestrictionController;->initRolesInInterest()V
-PLcom/android/server/am/AppRestrictionController;->initSystemModuleNames()V
-HPLcom/android/server/am/AppRestrictionController;->isBgAutoRestrictedBucketFeatureFlagEnabled()Z
-HPLcom/android/server/am/AppRestrictionController;->isCarrierApp(Ljava/lang/String;)Z
-HPLcom/android/server/am/AppRestrictionController;->isExemptedFromSysConfig(Ljava/lang/String;)Z
-HPLcom/android/server/am/AppRestrictionController;->isOnDeviceIdleAllowlist(I)Z
-HPLcom/android/server/am/AppRestrictionController;->isOnSystemDeviceIdleAllowlist(I)Z
-HPLcom/android/server/am/AppRestrictionController;->isRoleHeldByUid(Ljava/lang/String;I)Z
-HPLcom/android/server/am/AppRestrictionController;->isSystemModule(Ljava/lang/String;)Z
-PLcom/android/server/am/AppRestrictionController;->lambda$dispatchAppRestrictionLevelChanges$2(ILjava/lang/String;ILandroid/app/ActivityManagerInternal$AppBackgroundRestrictionListener;)V
-HPLcom/android/server/am/AppRestrictionController;->lambda$handleUidActive$9(ILcom/android/server/usage/AppStandbyInternal;ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
-PLcom/android/server/am/AppRestrictionController;->lambda$onSystemReady$0()V
+PLcom/android/server/am/AppRestrictionController;->isRoleHeldByUid(ILjava/lang/String;)Z
 PLcom/android/server/am/AppRestrictionController;->loadAppIdsFromPackageList(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
-PLcom/android/server/am/AppRestrictionController;->onLockedBootCompleted()V
+PLcom/android/server/am/AppRestrictionController;->logAppBackgroundRestrictionInfo(Ljava/lang/String;IIILcom/android/server/am/AppRestrictionController$TrackerInfo;I)V
 PLcom/android/server/am/AppRestrictionController;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/am/AppRestrictionController;->onSystemReady()V
-PLcom/android/server/am/AppRestrictionController;->onUserInteractionStarted(Ljava/lang/String;I)V
-HPLcom/android/server/am/AppRestrictionController;->refreshAppRestrictionLevelForUid(IIIZ)V
-HPLcom/android/server/am/AppRestrictionController;->refreshAppRestrictionLevelForUser(III)V
+PLcom/android/server/am/AppRestrictionController;->refreshAppRestrictionLevelForUid(IIIZ)V
+PLcom/android/server/am/AppRestrictionController;->refreshAppRestrictionLevelForUser(I)V
 PLcom/android/server/am/AppRestrictionController;->registerCarrierPrivilegesCallbacks()V
-PLcom/android/server/am/AppRestrictionController;->registerForSystemBroadcasts()V
-PLcom/android/server/am/AppRestrictionController;->registerForUidObservers()V
-PLcom/android/server/am/AppRestrictionController;->setDeviceIdleAllowlist([I[I)V
-PLcom/android/server/am/AppRestrictionController;->standbyBucketToRestrictionLevel(I)I
-PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/AppStartInfoTracker;)V
-PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/AppStartInfoTracker;)V
-PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/am/AppStartInfoTracker$1;-><init>(Lcom/android/server/am/AppStartInfoTracker;)V
-PLcom/android/server/am/AppStartInfoTracker$2;-><init>(Lcom/android/server/am/AppStartInfoTracker;)V
-PLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;->$r8$lambda$m8mTdqn0Kp9LC0IM3Ch2QHqUGag(Landroid/app/ApplicationStartInfo;Landroid/app/ApplicationStartInfo;)I
-PLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;->-$$Nest$fputmUid(Lcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;I)V
-HPLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;-><init>(Lcom/android/server/am/AppStartInfoTracker;I)V
-HPLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;->addStartInfoLocked(Landroid/app/ApplicationStartInfo;)V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda2;-><init>(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/AppStartInfoTracker;I)V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/AppStartInfoTracker;Ljava/io/PrintWriter;Landroid/icu/text/SimpleDateFormat;)V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/am/AppStartInfoTracker;)V
+PLcom/android/server/am/AppStartInfoTracker$$ExternalSyntheticLambda8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/am/AppStartInfoTracker$1;-><init>(Lcom/android/server/am/AppStartInfoTracker;I)V
+PLcom/android/server/am/AppStartInfoTracker$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;-><init>(Lcom/android/server/am/AppStartInfoTracker;I)V
 HPLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;->addTimestampToStartLocked(IJ)V
-PLcom/android/server/am/AppStartInfoTracker$AppStartInfoContainer;->lambda$addStartInfoLocked$0(Landroid/app/ApplicationStartInfo;Landroid/app/ApplicationStartInfo;)I
-PLcom/android/server/am/AppStartInfoTracker;->$r8$lambda$VdR_UMu5lcdcEkpdcV9tz9DCksE(Lcom/android/server/am/AppStartInfoTracker;)V
-PLcom/android/server/am/AppStartInfoTracker;->-$$Nest$smgetStartTimestamp(Landroid/app/ApplicationStartInfo;)J
 HSPLcom/android/server/am/AppStartInfoTracker;-><clinit>()V
 HSPLcom/android/server/am/AppStartInfoTracker;-><init>()V
 HPLcom/android/server/am/AppStartInfoTracker;->addBaseFieldsFromProcessRecord(Landroid/app/ApplicationStartInfo;Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/AppStartInfoTracker;->addStartInfoLocked(Landroid/app/ApplicationStartInfo;)Landroid/app/ApplicationStartInfo;
-HPLcom/android/server/am/AppStartInfoTracker;->addTimestampToStart(Lcom/android/server/am/ProcessRecord;JI)V
-HPLcom/android/server/am/AppStartInfoTracker;->addTimestampToStart(Ljava/lang/String;IJI)V
+HPLcom/android/server/am/AppStartInfoTracker;->addTimestampToStart(IILjava/lang/String;J)V
 PLcom/android/server/am/AppStartInfoTracker;->checkCompletenessAndCallback(Landroid/app/ApplicationStartInfo;)V
-HPLcom/android/server/am/AppStartInfoTracker;->getStartTimestamp(Landroid/app/ApplicationStartInfo;)J
-HPLcom/android/server/am/AppStartInfoTracker;->handleProcessServiceStart(JLcom/android/server/am/ProcessRecord;Lcom/android/server/am/ServiceRecord;Z)V
-HSPLcom/android/server/am/AppStartInfoTracker;->init(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/AppStartInfoTracker;->lambda$onSystemReady$0()V
+PLcom/android/server/am/AppStartInfoTracker;->dumpHistoryProcessStartInfo(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppStartInfoTracker;->dumpHistoryProcessStartInfoLocked(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseArray;Landroid/icu/text/SimpleDateFormat;)V
+PLcom/android/server/am/AppStartInfoTracker;->forEachPackageLocked(Ljava/util/function/BiFunction;)Z
+PLcom/android/server/am/AppStartInfoTracker;->getMonotonicTime()J
+PLcom/android/server/am/AppStartInfoTracker;->handleProcessBackupStart(JLcom/android/server/am/ProcessRecord;Z)V
+PLcom/android/server/am/AppStartInfoTracker;->handleProcessContentProviderStart(Lcom/android/server/am/ProcessRecord;J)V
 PLcom/android/server/am/AppStartInfoTracker;->loadExistingProcessStartInfo()V
-PLcom/android/server/am/AppStartInfoTracker;->onActivityLaunchFinished(JLandroid/content/ComponentName;JI)V
-PLcom/android/server/am/AppStartInfoTracker;->onActivityLaunched(JLandroid/content/ComponentName;JLcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/AppStartInfoTracker;->onIntentStarted(Landroid/content/Intent;J)V
-PLcom/android/server/am/AppStartInfoTracker;->onReportFullyDrawn(JJ)V
-PLcom/android/server/am/AppStartInfoTracker;->onSystemReady()V
-PLcom/android/server/am/AppStartInfoTracker;->registerForPackageRemoval()V
-PLcom/android/server/am/AppStartInfoTracker;->registerForUserRemoval()V
-HPLcom/android/server/am/AppStartInfoTracker;->reportBindApplicationTimeNanos(Lcom/android/server/am/ProcessRecord;J)V
-HPLcom/android/server/am/AppStartInfoTracker;->schedulePersistProcessStartInfo(Z)V
-PLcom/android/server/am/BaseAppStateDurations;-><init>(ILjava/lang/String;ILjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-PLcom/android/server/am/BaseAppStateDurations;-><init>(Lcom/android/server/am/BaseAppStateDurations;)V
+PLcom/android/server/am/AppStartInfoTracker;->loadPackagesFromProto(Landroid/util/proto/ProtoInputStream;J)V
+HPLcom/android/server/am/AppStartInfoTracker;->maybeTrimInProgressRecordsLocked()V
+HPLcom/android/server/am/AppStartInfoTracker;->onActivityIntentStarted(Landroid/content/Intent;J)V
+PLcom/android/server/am/AppStartInfoTracker;->onActivityLaunched(JJLcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/AppStartInfoTracker;->persistProcessStartInfo()V
+PLcom/android/server/am/AppStartInfoTracker;->schedulePersistProcessStartInfo(Z)V
+PLcom/android/server/am/ApplicationThreadDeferred$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ApplicationThreadDeferred;I)V
+PLcom/android/server/am/ApplicationThreadDeferred$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/am/ApplicationThreadDeferred;->$r8$lambda$PP7wSw0gGLmO6hi1tOkPocTG8v8(Lcom/android/server/am/ApplicationThreadDeferred;)V
+PLcom/android/server/am/ApplicationThreadDeferred;->$r8$lambda$pzCGrkeFAdnodnDYXv9us5vUB_A(Lcom/android/server/am/ApplicationThreadDeferred;)V
+HPLcom/android/server/am/ApplicationThreadDeferred;-><init>(Landroid/app/IApplicationThread;Z)V
+HPLcom/android/server/am/ApplicationThreadDeferred;->asBinder()Landroid/os/IBinder;+]Landroid/app/IApplicationThread;Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/IApplicationThread$Stub$Proxy;
+PLcom/android/server/am/ApplicationThreadDeferred;->execute(I)V
+PLcom/android/server/am/ApplicationThreadDeferred;->onProcessUnpaused()V
+PLcom/android/server/am/ApplicationThreadDeferred;->updateTimeZone()V
+PLcom/android/server/am/AssistDataRequester$AssistDataRequesterCallbacks;->onAssistRequestCompleted()V
+PLcom/android/server/am/AssistDataRequester;-><init>(Landroid/content/Context;Landroid/view/IWindowManager;Landroid/app/AppOpsManager;Lcom/android/server/am/AssistDataRequester$AssistDataRequesterCallbacks;Ljava/lang/Object;I)V
+PLcom/android/server/am/AssistDataRequester;->dispatchAssistDataReceived(Landroid/os/Bundle;)V
+PLcom/android/server/am/AssistDataRequester;->flushPendingAssistData()V
+PLcom/android/server/am/AssistDataRequester;->onHandleAssistData(Landroid/os/Bundle;)V
+PLcom/android/server/am/AssistDataRequester;->onHandleAssistScreenshot(Landroid/graphics/Bitmap;)V
+PLcom/android/server/am/AssistDataRequester;->requestAssistData(Ljava/util/List;ZZZZZZILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/AssistDataRequester;->tryDispatchRequestComplete()V
+PLcom/android/server/am/BackupRecord;-><init>(Landroid/content/pm/ApplicationInfo;IIIZ)V
 PLcom/android/server/am/BaseAppStateDurations;->addEvent(ZLcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;I)V
-PLcom/android/server/am/BaseAppStateDurations;->getTotalDurations(JI)J
-PLcom/android/server/am/BaseAppStateDurations;->getTotalDurationsSince(JJI)J
+PLcom/android/server/am/BaseAppStateDurations;->formatEventSummary(IJ)Ljava/lang/String;
+PLcom/android/server/am/BaseAppStateDurations;->getTotalDurationsSince(IJJ)J
 PLcom/android/server/am/BaseAppStateDurations;->isActive(I)Z
-PLcom/android/server/am/BaseAppStateDurations;->subtract(Lcom/android/server/am/BaseAppStateDurations;II)V
+PLcom/android/server/am/BaseAppStateDurations;->subtract(Lcom/android/server/am/BaseAppStateDurationsTracker$UidStateDurations;I)V
 PLcom/android/server/am/BaseAppStateDurations;->subtract(Ljava/util/LinkedList;Ljava/util/LinkedList;)Ljava/util/LinkedList;
-PLcom/android/server/am/BaseAppStateDurations;->trimEvents(JI)V
-PLcom/android/server/am/BaseAppStateDurations;->trimEvents(JLjava/util/LinkedList;)V
-PLcom/android/server/am/BaseAppStateDurationsTracker$SimplePackageDurations;-><init>(ILjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-PLcom/android/server/am/BaseAppStateDurationsTracker$SimplePackageDurations;->addEvent(ZJ)V
-PLcom/android/server/am/BaseAppStateDurationsTracker$UidStateDurations;-><init>(ILcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-HSPLcom/android/server/am/BaseAppStateDurationsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/BaseAppStateDurationsTracker;->getTotalDurations(Ljava/lang/String;IJI)J
-PLcom/android/server/am/BaseAppStateDurationsTracker;->getTotalDurations(Ljava/lang/String;IJIZ)J
+PLcom/android/server/am/BaseAppStateDurations;->trimEvents(IJ)V
+PLcom/android/server/am/BaseAppStateDurationsTracker$SimplePackageDurations;-><init>(ILjava/lang/String;Lcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;)V
+HSPLcom/android/server/am/BaseAppStateDurationsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
+PLcom/android/server/am/BaseAppStateDurationsTracker;->dumpEventLocked(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/am/BaseAppStateEvents;J)V
+PLcom/android/server/am/BaseAppStateDurationsTracker;->getTotalDurationsSince(IILjava/lang/String;JJ)J
 PLcom/android/server/am/BaseAppStateDurationsTracker;->onUidGone(I)V
-HPLcom/android/server/am/BaseAppStateDurationsTracker;->onUidProcStateChanged(II)V
+PLcom/android/server/am/BaseAppStateDurationsTracker;->onUidProcStateChanged(II)V
 PLcom/android/server/am/BaseAppStateDurationsTracker;->trimLocked(J)V
-HPLcom/android/server/am/BaseAppStateEvents;-><init>(ILjava/lang/String;ILjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-PLcom/android/server/am/BaseAppStateEvents;-><init>(Lcom/android/server/am/BaseAppStateEvents;)V
-HPLcom/android/server/am/BaseAppStateEvents;->getEarliest(J)J
-HPLcom/android/server/am/BaseAppStateEvents;->getTotalEvents(JI)I
+PLcom/android/server/am/BaseAppStateEvents;-><init>(ILjava/lang/String;ILcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;)V
+PLcom/android/server/am/BaseAppStateEvents;-><init>(Lcom/android/server/am/BaseAppStateDurations;)V
+PLcom/android/server/am/BaseAppStateEvents;->dump(Ljava/io/PrintWriter;Ljava/lang/String;J)V
+PLcom/android/server/am/BaseAppStateEvents;->getEarliest(J)J
 PLcom/android/server/am/BaseAppStateEvents;->isEmpty()Z
 HSPLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/BaseAppStateEventsTracker;Ljava/lang/String;ZLjava/lang/String;J)V
-HPLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;->getMaxTrackingDuration()J
+PLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;->getExemptionReasonString(IILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;->onSystemReady()V
-PLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;->updateMaxTrackingDuration()V
-HSPLcom/android/server/am/BaseAppStateEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
+HSPLcom/android/server/am/BaseAppStateEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
+PLcom/android/server/am/BaseAppStateEventsTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/BaseAppStateEventsTracker;->dumpEventLocked(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/am/BaseAppStateEvents;J)V
+PLcom/android/server/am/BaseAppStateEventsTracker;->dumpOthers(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/BaseAppStateEventsTracker;->getUidEventsLocked(I)Lcom/android/server/am/BaseAppStateEvents;
-HPLcom/android/server/am/BaseAppStateEventsTracker;->isUidOnTop(I)Z
-HPLcom/android/server/am/BaseAppStateEventsTracker;->onUidGone(I)V
-HPLcom/android/server/am/BaseAppStateEventsTracker;->onUidProcStateChanged(II)V
-PLcom/android/server/am/BaseAppStateEventsTracker;->onUidProcStateChangedUncheckedLocked(II)V
+PLcom/android/server/am/BaseAppStateEventsTracker;->onUidGone(I)V
+PLcom/android/server/am/BaseAppStateEventsTracker;->onUidProcStateChanged(II)V
 PLcom/android/server/am/BaseAppStateEventsTracker;->trim(J)V
 PLcom/android/server/am/BaseAppStateEventsTracker;->trimLocked(J)V
 HSPLcom/android/server/am/BaseAppStatePolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/BaseAppStateTracker;Ljava/lang/String;Z)V
-PLcom/android/server/am/BaseAppStatePolicy;->getProposedRestrictionLevel(Ljava/lang/String;II)I
-HPLcom/android/server/am/BaseAppStatePolicy;->isEnabled()Z
-PLcom/android/server/am/BaseAppStatePolicy;->onSystemReady()V
-HPLcom/android/server/am/BaseAppStatePolicy;->shouldExemptUid(I)I
+PLcom/android/server/am/BaseAppStatePolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/BaseAppStatePolicy;->getProposedRestrictionLevel(IILjava/lang/String;)I
 PLcom/android/server/am/BaseAppStatePolicy;->updateTrackerEnabled()V
 PLcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;-><init>(J)V
-PLcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;-><init>(Lcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;)V
 PLcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;->clone()Ljava/lang/Object;
-PLcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;->getTimestamp()J
 PLcom/android/server/am/BaseAppStateTimeEvents$BaseTimeEvent;->trimTo(J)V
-PLcom/android/server/am/BaseAppStateTimeEvents;-><init>(ILjava/lang/String;ILjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-PLcom/android/server/am/BaseAppStateTimeEvents;-><init>(Lcom/android/server/am/BaseAppStateTimeEvents;)V
-PLcom/android/server/am/BaseAppStateTimeSlotEvents;-><init>(ILjava/lang/String;IJLjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-HPLcom/android/server/am/BaseAppStateTimeSlotEvents;->addEvent(JI)V
-HPLcom/android/server/am/BaseAppStateTimeSlotEvents;->getSlotStartTime(J)J
-HPLcom/android/server/am/BaseAppStateTimeSlotEvents;->getTotalEventsSince(JJI)I
-HPLcom/android/server/am/BaseAppStateTimeSlotEvents;->trimEvents(JI)V
+PLcom/android/server/am/BaseAppStateTimeSlotEvents;-><init>(ILjava/lang/String;JLcom/android/server/am/BaseAppStateEventsTracker$BaseAppStateEventsPolicy;)V
+PLcom/android/server/am/BaseAppStateTimeSlotEvents;->add(Lcom/android/server/am/BaseAppStateEvents;)V
+HPLcom/android/server/am/BaseAppStateTimeSlotEvents;->addEvent(J)V
+HPLcom/android/server/am/BaseAppStateTimeSlotEvents;->getTotalEventsSince(JJ)I+]Ljava/util/Iterator;Ljava/util/LinkedList$DescendingIterator;]Ljava/util/LinkedList;Ljava/util/LinkedList;
+PLcom/android/server/am/BaseAppStateTimeSlotEvents;->trimEvents(IJ)V
 PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;)V
 PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->$r8$lambda$kd2ZnF50Kq1e96018ClxXCBOF9w(Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;)V
-HSPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;Ljava/lang/String;ZLjava/lang/String;JLjava/lang/String;I)V
-HPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->getNumOfEventsThreshold()I
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->getProposedRestrictionLevel(Ljava/lang/String;II)I
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->getTimeSlotSize()J
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->onMaxTrackingDurationChanged(J)V
+HSPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;-><init>(Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->getProposedRestrictionLevel(IILjava/lang/String;)I
+PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->onMaxTrackingDurationChanged()V
 PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->onSystemReady()V
 PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->onTrackerEnabled(Z)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->onUserInteractionStarted(Ljava/lang/String;I)V
-HPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->shouldExempt(Ljava/lang/String;I)I
 PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$BaseAppStateTimeSlotEventsPolicy;->updateNumOfEventsThreshold()V
 HSPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$H;-><init>(Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;)V
-HPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$H;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$SimpleAppStateTimeslotEvents;-><init>(ILjava/lang/String;JLjava/lang/String;Lcom/android/server/am/BaseAppStateEvents$MaxTrackingDurationConfig;)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->-$$Nest$mtrimEvents(Lcom/android/server/am/BaseAppStateTimeSlotEventsTracker;)V
-HSPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->getTotalEventsLocked(IJ)I
-HPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->handleNewEvent(Ljava/lang/String;I)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->onMonitorEnabled(Z)V
-HPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->onNewEvent(Ljava/lang/String;I)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->onNumOfEventsThresholdChanged(I)V
+HPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$H;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/am/BaseAppStateEventsTracker;Lcom/android/server/am/AppBindServiceEventsTracker;,Lcom/android/server/am/AppBroadcastEventsTracker;
+PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$SimpleAppStateTimeslotEvents;->formatEventSummary(IJ)Ljava/lang/String;
+PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker$SimpleAppStateTimeslotEvents;->formatEventTypeLabel(I)Ljava/lang/String;
+HSPLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
 PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->onUserInteractionStarted(Ljava/lang/String;I)V
-PLcom/android/server/am/BaseAppStateTimeSlotEventsTracker;->trimEvents()V
-HSPLcom/android/server/am/BaseAppStateTracker$Injector;-><init>()V
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getBatteryManagerInternal()Landroid/os/BatteryManagerInternal;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getIAppOpsService()Lcom/android/internal/app/IAppOpsService;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getMediaSessionManager()Landroid/media/session/MediaSessionManager;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getPackageManager()Landroid/content/pm/PackageManager;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getPermissionManager()Landroid/permission/PermissionManager;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getPermissionManagerServiceInternal()Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getPolicy()Lcom/android/server/am/BaseAppStatePolicy;
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getServiceStartForegroundTimeout()J
-PLcom/android/server/am/BaseAppStateTracker$Injector;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
-HPLcom/android/server/am/BaseAppStateTracker$Injector;->onSystemReady()V
-HSPLcom/android/server/am/BaseAppStateTracker$Injector;->setPolicy(Lcom/android/server/am/BaseAppStatePolicy;)V
-HSPLcom/android/server/am/BaseAppStateTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V
-PLcom/android/server/am/BaseAppStateTracker;->getPolicy()Lcom/android/server/am/BaseAppStatePolicy;
-HPLcom/android/server/am/BaseAppStateTracker;->notifyListenersOnStateChange(ILjava/lang/String;ZJI)V
+HSPLcom/android/server/am/BaseAppStateTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;)V
+PLcom/android/server/am/BaseAppStateTracker;->notifyListenersOnStateChange(IIJLjava/lang/String;Z)V
 PLcom/android/server/am/BaseAppStateTracker;->onLockedBootCompleted()V
 PLcom/android/server/am/BaseAppStateTracker;->onSystemReady()V
 PLcom/android/server/am/BaseAppStateTracker;->onUidGone(I)V
 PLcom/android/server/am/BaseAppStateTracker;->onUidProcStateChanged(II)V
 PLcom/android/server/am/BaseAppStateTracker;->onUserInteractionStarted(Ljava/lang/String;I)V
-PLcom/android/server/am/BaseAppStateTracker;->registerStateListener(Lcom/android/server/am/BaseAppStateTracker$StateListener;)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda100;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda100;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;-><init>(Lcom/android/server/am/BatteryStatsService;ZJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda104;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda104;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda106;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda106;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/BatteryStatsService;JJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda27()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda35()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda39()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda47()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda59()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run()V
+HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;-><init>(Lcom/android/server/am/BatteryStatsService;)V
+HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda103;-><init>(Lcom/android/server/am/BatteryStatsService;)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda103;->get()Ljava/lang/Object;
 PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/am/BatteryStatsService;JJJ)V
 PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda10;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJI)V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda11;->run()V
-HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda14;->scheduleAlarm(JLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
-HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda15;->run()V
-HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/BatteryStatsService;IJ[I)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda17;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/BatteryStatsService;ZIJJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/am/BatteryStatsService;IJ[I)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda14;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda15;-><init>(IJJLcom/android/server/am/BatteryStatsService;Z)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda15;->run()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda17;->run()V+]Landroid/os/WorkSource;Landroid/os/WorkSource;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda18;-><init>(IIIJJJLcom/android/server/am/BatteryStatsService;)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJJ)V
 PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda18;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda19;->run()V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/BatteryStatsService;IILjava/lang/String;Ljava/lang/String;IZJJ)V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda1;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda20;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda23;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda31;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda32;->run()V
-HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda33;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda33;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda35;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda38;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda39;-><init>(Lcom/android/server/am/BatteryStatsService;JJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda39;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda41;-><init>(Lcom/android/server/am/BatteryStatsService;IZJJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda25;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJI)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda25;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/telephony/SignalStrength;JJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda26;->run()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJI)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda76()V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;->run()V+]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda29;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;-><init>(IJJLcom/android/server/am/BatteryStatsService;Z)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/BatteryStatsService;IJJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda37()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda40()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda49()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda72()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda90()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda2;->run()V
+HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/am/BatteryStatsService;I)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda30;->run()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34;->run()V+]Landroid/os/WorkSource;Landroid/os/WorkSource;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda36;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;JJJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda36;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;J)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda38;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;JJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda3;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda56()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda3;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda62()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda41;-><init>(IJJLandroid/os/WorkSource;Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda41;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/am/BatteryStatsService;JJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda43;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda52;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda52;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda54;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda54;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda55;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda55;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;IJJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda33()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda96()V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda61;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda61;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda65;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda65;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda67;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda67;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda68;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IIJJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda61;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda61;->run()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda64;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;IJJI)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda64;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJI)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda64;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda66;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;IJJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda66;->run()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda68;-><init>(IIIJJJLcom/android/server/am/BatteryStatsService;)V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda68;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda71;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/telephony/SignalStrength;JJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda71;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda73;-><init>(Lcom/android/server/am/BatteryStatsService;II)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda73;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda75;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda75;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda76;-><init>(Lcom/android/server/am/BatteryStatsService;IJJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda76;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda77;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda77;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ZJJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda70;-><init>(Lcom/android/server/am/BatteryStatsService;II)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda70;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda79;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;[I)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda79;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJI)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJI)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda13()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda19()V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda31()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda51()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run$com$android$server$am$BatteryStatsService$$ExternalSyntheticLambda57()V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda82;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda82;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda84;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda84;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda93;-><init>(Lcom/android/server/am/BatteryStatsService;IJJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda93;->run()V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda94;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda94;->run()V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda98;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda98;->run()V
+HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;-><init>(ILjava/lang/Object;)V
+HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda81;-><init>(IJJLandroid/os/WorkSource;Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda81;->run()V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda89;-><init>(Lcom/android/server/am/BatteryStatsService;IJJJ)V
+HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda89;->run()V
+HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;-><init>(Lcom/android/server/am/BatteryStatsService;)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;->getAsDouble()D
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda99;-><init>(Lcom/android/server/am/BatteryStatsService;ZJ)V
+PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda99;->run()V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/am/BatteryStatsService;IILjava/lang/String;Ljava/lang/String;IJJ)V
 HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda9;->run()V
 HSPLcom/android/server/am/BatteryStatsService$1;-><init>(Lcom/android/server/am/BatteryStatsService;)V
 HSPLcom/android/server/am/BatteryStatsService$2;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-HSPLcom/android/server/am/BatteryStatsService$3;-><init>(Lcom/android/server/am/BatteryStatsService;)V
+PLcom/android/server/am/BatteryStatsService$2;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/am/BatteryStatsService$2;->onLost(Landroid/net/Network;)V
 HSPLcom/android/server/am/BatteryStatsService$LocalService;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-HSPLcom/android/server/am/BatteryStatsService$LocalService;-><init>(Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService$LocalService-IA;)V
+PLcom/android/server/am/BatteryStatsService$LocalService;->getBatteryUsageStats(Ljava/util/List;)Ljava/util/List;
+HPLcom/android/server/am/BatteryStatsService$LocalService;->noteCpuWakingBluetoothProxyPacket(IJ)V
+PLcom/android/server/am/BatteryStatsService$LocalService;->noteCpuWakingNetworkPacket(Landroid/net/Network;JI)V
+PLcom/android/server/am/BatteryStatsService$LocalService;->noteJobsDeferred(IIJ)V
 PLcom/android/server/am/BatteryStatsService$LocalService;->noteWakingAlarmBatch(J[I)V
+PLcom/android/server/am/BatteryStatsService$LocalService;->noteWakingSoundTrigger(JI)V
 PLcom/android/server/am/BatteryStatsService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService$StatsPullAtomCallbackImpl-IA;)V
+PLcom/android/server/am/BatteryStatsService$StatsPullAtomCallbackImpl;->onPullAtom(ILjava/util/List;)I
 HSPLcom/android/server/am/BatteryStatsService$WakeupReasonThread;-><init>(Lcom/android/server/am/BatteryStatsService;)V
 HSPLcom/android/server/am/BatteryStatsService$WakeupReasonThread;->run()V
 HSPLcom/android/server/am/BatteryStatsService$WakeupReasonThread;->waitWakeup()Ljava/lang/String;
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$05VuxEHPxv9bihz9kfDhxNYcUeg(Lcom/android/server/am/BatteryStatsService;II)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$0fzjwUAJJ2V4v0Cay7jzrTdU40o(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$5NUW-CFGVE8WF6xUKrwN74CSvqk(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$5c9rjGQgA92fhsoBQw9Y09QbGbc(Lcom/android/server/am/BatteryStatsService;IILjava/lang/String;Ljava/lang/String;IZJJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$66TrSI7HPB2r78-NHdlVdzcoo0I(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$6bEZ99kbZB3XX6HcnBga24l6aUc(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$70eN_K-s58p6l5EY1KYPtppqPbc(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$9YKwtw1IoxWGgto0UI2p_sj-9dQ(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$9grG_uws1JUn8unR54WcHbhwn5c(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$9w4mwgpslyOzt3AR9Ha0zPYHpwA(Lcom/android/server/am/BatteryStatsService;)Ljava/lang/Long;
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$AVovY0AMHiiXsBa6jBuOU51vHcs(Lcom/android/server/am/BatteryStatsService;Landroid/telephony/SignalStrength;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$Aja08BbHSMMTwusvvYTiqkGKBAQ(Lcom/android/server/am/BatteryStatsService;ZIJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$C6FpWSABUutRWNI5WWUNUMlbhX8(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$DU-o6h6aLnoKPvLYt0hicwKfF64(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IIJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$E2zZySja-QLWcx-iSOhrqHJf6yg(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$EgeH5604sbT6COs9ssH7Gnc9_UY(Lcom/android/server/am/BatteryStatsService;ZJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$HB6PHpsf2JO-bV8EaT-6cBmi25g(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$HPK3ieJxw8HM__PfnZB13lFXngg(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$I4JXgMyze7aO4AYNI9qaJb5DHnE(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$IupxpBj-T3QQ4VPpQdAn45060Bk(Lcom/android/server/am/BatteryStatsService;JJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$KWnpYgez9XnIYTdHYwFXQBEtGWA(Lcom/android/server/am/BatteryStatsService;IZJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$L6Emotnq_h9BsIXrMev47t-2ues(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$OMr0PYqqN0qekZ4Oq5EyCc3f6yY(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$QChUd1G6g1_FJ1G5zg2vCcUJr6g(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$S2EACvTzdacLK36CDf9BLXIiBdE(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$TItPRlBD8FUMtanBE_REU0Bc7wI(Lcom/android/server/am/BatteryStatsService;IILjava/lang/String;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$TQviDJidtGDxQAAKQbSr5Ay1c4w(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$UvPVJvfLJUv7DtJ03YLFls1_iP0(Lcom/android/server/am/BatteryStatsService;JLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$VOEBeS3jOU02rZfcXEfni9PuRDQ(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$WhP3tsKNyaWq4EKerIaU2_tdTiA(Lcom/android/server/am/BatteryStatsService;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$WkwX9rcT9mMOtA9bjNLRt0WfrYM(Lcom/android/server/am/BatteryStatsService;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$YruM32EUvUPcBIsiSaEzCqeUrpI(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$ZbDBcGr7GIjhlP9uVlhIJ6H-yI0(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$_wc9i2CN7elpRhTTxnndgHftIik(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$dF-U_JxRR-TXS-G38yOId48wzV8(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$f7YTA7KXLeuJfd9ui_uSHE_x4U4(Lcom/android/server/am/BatteryStatsService;IIJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$g5F2iod5rkuBWKW51BpAD_uY9EM(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$hQPDLi0WrcPIkhfpv4ZQEEC1HwU(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$hobJ83HHMdRmCpAK-IwwsUAHx5I(Lcom/android/server/am/BatteryStatsService;IJJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$rbX6PWNefdfv6B_50VnXELEMDf0(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$sqB_0NoPbXgwuh-ZQaJfwVslwMU(Lcom/android/server/am/BatteryStatsService;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$v5i86d7gh9jhycRQIAW4bfFGFFo(Lcom/android/server/am/BatteryStatsService;IJ[I)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$vLt9HebbnK7vzU1AuoOmeTlgDO4(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V
-PLcom/android/server/am/BatteryStatsService;->$r8$lambda$xojdHRayd8rEc5I8EnGVfIYEOYE(Lcom/android/server/am/BatteryStatsService;IJJJ)V
-HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$zkXyGfuKC6HI4x68m_-LppSuQG4(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;IJJ)V
 HSPLcom/android/server/am/BatteryStatsService;->-$$Nest$smnativeWaitWakeup(Ljava/nio/ByteBuffer;)I
 HSPLcom/android/server/am/BatteryStatsService;-><init>(Landroid/content/Context;Ljava/io/File;)V
-HSPLcom/android/server/am/BatteryStatsService;->create(Landroid/content/Context;Ljava/io/File;Landroid/os/Handler;Lcom/android/server/power/stats/BatteryStatsImpl$BatteryCallback;)Lcom/android/server/am/BatteryStatsService;
-HSPLcom/android/server/am/BatteryStatsService;->createAggregatedPowerStatsConfig()Lcom/android/server/power/stats/AggregatedPowerStatsConfig;
-HSPLcom/android/server/am/BatteryStatsService;->createPowerStatsScheduler(Landroid/content/Context;)Lcom/android/server/power/stats/PowerStatsScheduler;
-HSPLcom/android/server/am/BatteryStatsService;->fillLowPowerStats(Lcom/android/internal/os/RpmStats;)V
-HSPLcom/android/server/am/BatteryStatsService;->fillRailDataStats(Lcom/android/internal/os/RailStats;)V
-HSPLcom/android/server/am/BatteryStatsService;->getActiveStatistics()Lcom/android/server/power/stats/BatteryStatsImpl;
+HPLcom/android/server/am/BatteryStatsService;->awaitCompletion()V
+PLcom/android/server/am/BatteryStatsService;->computeBatteryTimeRemaining()J
+PLcom/android/server/am/BatteryStatsService;->computeChargeTimeRemaining()J
+PLcom/android/server/am/BatteryStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService;->dumpHelp$1(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/BatteryStatsService;->dumpUnmonitored(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService;->fillRailDataStats(Lcom/android/internal/os/RailStats;)V
+PLcom/android/server/am/BatteryStatsService;->getBatteryUsageStats(Ljava/util/List;)Ljava/util/List;
+PLcom/android/server/am/BatteryStatsService;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+PLcom/android/server/am/BatteryStatsService;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+HPLcom/android/server/am/BatteryStatsService;->getHealthStatsForUidLocked(I)Landroid/os/health/HealthStatsParceler;+]Landroid/os/BatteryStats$ControllerActivityCounter;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/os/BatteryStats$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Landroid/os/BatteryStats$LongCounter;Lcom/android/server/power/stats/BatteryStatsImpl$1;,Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;,Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;]Landroid/os/BatteryStats$Uid$Pkg$Serv;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;]Landroid/os/BatteryStats$Uid$Pkg;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;]Landroid/os/BatteryStats$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Landroid/os/BatteryStats$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Landroid/os/BatteryStats$Uid$Wakelock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator;]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;
 PLcom/android/server/am/BatteryStatsService;->getService()Lcom/android/internal/app/IBatteryStats;
-PLcom/android/server/am/BatteryStatsService;->getSubsystemLowPowerStats()Ljava/lang/String;
-HSPLcom/android/server/am/BatteryStatsService;->initPowerManagement()V
+PLcom/android/server/am/BatteryStatsService;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+PLcom/android/server/am/BatteryStatsService;->isBatteryUsageStatsAccumulationSupported()Z
 PLcom/android/server/am/BatteryStatsService;->isCharging()Z
-PLcom/android/server/am/BatteryStatsService;->isOnBattery()Z
-PLcom/android/server/am/BatteryStatsService;->lambda$createPowerStatsScheduler$0(JLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
-PLcom/android/server/am/BatteryStatsService;->lambda$createPowerStatsScheduler$1()Ljava/lang/Long;
-PLcom/android/server/am/BatteryStatsService;->lambda$noteAlarmFinish$22(Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteAlarmStart$21(Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteBleScanReset$90(JJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteChangeWakelockFromSource$26(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteCpuWakingActivity$2(IJ[I)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteCurrentTimeChanged$99(JJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteEvent$14(ILjava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteInteractive$42(ZJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteJobFinish$18(Ljava/lang/String;IIJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteJobStart$17(Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteNetworkStatsEnabled$84()V
-PLcom/android/server/am/BatteryStatsService;->lambda$notePhoneSignalStrength$47(Landroid/telephony/SignalStrength;JJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$notePhoneState$49(IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteProcessAnr$11(Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteProcessDied$101(II)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteProcessFinish$12(Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteProcessStart$9(Ljava/lang/String;IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteScreenBrightness$39(IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteScreenState$38(IJJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteServiceStartLaunch$105(ILjava/lang/String;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteServiceStartRunning$103(ILjava/lang/String;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteServiceStopLaunch$106(ILjava/lang/String;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteServiceStopRunning$104(ILjava/lang/String;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteStartAudio$52(IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteStartSensor$32(IIJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteStartWakelock$23(IILjava/lang/String;Ljava/lang/String;IZJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteStartWakelockFromSource$25(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteStopAudio$53(IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteStopSensor$33(IIJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteStopWakelock$24(IILjava/lang/String;Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteStopWakelockFromSource$27(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V
-HPLcom/android/server/am/BatteryStatsService;->lambda$noteUidProcessState$13(IIJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteUserActivity$40(IIJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteVibratorOff$35(IJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteVibratorOn$34(IJJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteWakupAlarm$20(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;JJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteWifiOn$50(JJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$noteWifiSupplicantStateChanged$69(IZJJ)V
-HSPLcom/android/server/am/BatteryStatsService;->lambda$scheduleWriteToDisk$5()V
-PLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$96(IIIIIIIIJJJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$97(IIIIIIIIJJJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$updateBatteryStatsOnActivityUsage$100(ZIJJ)V
-PLcom/android/server/am/BatteryStatsService;->lambda$updateForegroundTimeIfOnBattery$98(ILjava/lang/String;JJJ)V
-HPLcom/android/server/am/BatteryStatsService;->monitor()V
-HPLcom/android/server/am/BatteryStatsService;->noteAlarmFinish(Ljava/lang/String;Landroid/os/WorkSource;I)V
-HPLcom/android/server/am/BatteryStatsService;->noteAlarmStart(Ljava/lang/String;Landroid/os/WorkSource;I)V
+PLcom/android/server/am/BatteryStatsService;->monitor()V
 PLcom/android/server/am/BatteryStatsService;->noteBleScanReset()V
-PLcom/android/server/am/BatteryStatsService;->noteChangeWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
-PLcom/android/server/am/BatteryStatsService;->noteCpuWakingActivity(IJ[I)V
+PLcom/android/server/am/BatteryStatsService;->noteBleScanResults(Landroid/os/WorkSource;I)V
+PLcom/android/server/am/BatteryStatsService;->noteBleScanStarted(Landroid/os/WorkSource;Z)V
+PLcom/android/server/am/BatteryStatsService;->noteBleScanStopped(Landroid/os/WorkSource;Z)V
+HPLcom/android/server/am/BatteryStatsService;->noteChangeWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+PLcom/android/server/am/BatteryStatsService;->noteConnectivityChanged(ILjava/lang/String;)V
+HPLcom/android/server/am/BatteryStatsService;->noteCpuWakingActivity(IJ[I)V
 PLcom/android/server/am/BatteryStatsService;->noteCurrentTimeChanged()V
+PLcom/android/server/am/BatteryStatsService;->noteDeviceIdleMode(ILjava/lang/String;I)V
 HPLcom/android/server/am/BatteryStatsService;->noteEvent(ILjava/lang/String;I)V
 PLcom/android/server/am/BatteryStatsService;->noteInteractive(Z)V
 HPLcom/android/server/am/BatteryStatsService;->noteJobFinish(Ljava/lang/String;II)V
 HPLcom/android/server/am/BatteryStatsService;->noteJobStart(Ljava/lang/String;I)V
+PLcom/android/server/am/BatteryStatsService;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/am/BatteryStatsService;->noteLongPartialWakelockFinishFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+PLcom/android/server/am/BatteryStatsService;->noteLongPartialWakelockStart(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/am/BatteryStatsService;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+PLcom/android/server/am/BatteryStatsService;->noteNetworkInterfaceForTransports(Ljava/lang/String;[I)V
 PLcom/android/server/am/BatteryStatsService;->noteNetworkStatsEnabled()V
+PLcom/android/server/am/BatteryStatsService;->notePackageInstalled(JLjava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService;->notePhoneOff()V
+PLcom/android/server/am/BatteryStatsService;->notePhoneOn()V
 PLcom/android/server/am/BatteryStatsService;->notePhoneSignalStrength(Landroid/telephony/SignalStrength;)V
 PLcom/android/server/am/BatteryStatsService;->notePhoneState(I)V
-PLcom/android/server/am/BatteryStatsService;->noteProcessAnr(Ljava/lang/String;I)V
-HPLcom/android/server/am/BatteryStatsService;->noteProcessDied(II)V
-HPLcom/android/server/am/BatteryStatsService;->noteProcessFinish(Ljava/lang/String;I)V
-HPLcom/android/server/am/BatteryStatsService;->noteProcessStart(Ljava/lang/String;I)V
-PLcom/android/server/am/BatteryStatsService;->noteScreenBrightness(I)V
-PLcom/android/server/am/BatteryStatsService;->noteScreenState(I)V
+PLcom/android/server/am/BatteryStatsService;->noteProcessFinish(ILjava/lang/String;)V
+HPLcom/android/server/am/BatteryStatsService;->noteScreenBrightness(II)V
+HPLcom/android/server/am/BatteryStatsService;->noteScreenState(III)V
 HPLcom/android/server/am/BatteryStatsService;->noteServiceStartLaunch(ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/BatteryStatsService;->noteServiceStartRunning(ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/BatteryStatsService;->noteServiceStopLaunch(ILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/BatteryStatsService;->noteServiceStopRunning(ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/am/BatteryStatsService;->noteStartAudio(I)V
-PLcom/android/server/am/BatteryStatsService;->noteStartSensor(II)V
+HPLcom/android/server/am/BatteryStatsService;->noteStartSensor(II)V
 HPLcom/android/server/am/BatteryStatsService;->noteStartWakelock(IILjava/lang/String;Ljava/lang/String;IZ)V
 HPLcom/android/server/am/BatteryStatsService;->noteStartWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
 PLcom/android/server/am/BatteryStatsService;->noteStopAudio(I)V
-PLcom/android/server/am/BatteryStatsService;->noteStopSensor(II)V
+HPLcom/android/server/am/BatteryStatsService;->noteStopSensor(II)V
 HPLcom/android/server/am/BatteryStatsService;->noteStopWakelock(IILjava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/am/BatteryStatsService;->noteStopWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/am/BatteryStatsService;->noteUidProcessState(II)V
-PLcom/android/server/am/BatteryStatsService;->noteUserActivity(II)V
-PLcom/android/server/am/BatteryStatsService;->noteVibratorOff(I)V
-PLcom/android/server/am/BatteryStatsService;->noteVibratorOn(IJ)V
+PLcom/android/server/am/BatteryStatsService;->noteSyncFinish(Ljava/lang/String;I)V
+PLcom/android/server/am/BatteryStatsService;->noteSyncStart(Ljava/lang/String;I)V
+HPLcom/android/server/am/BatteryStatsService;->noteUserActivity(II)V
+HPLcom/android/server/am/BatteryStatsService;->noteVibratorOff(I)V
+HPLcom/android/server/am/BatteryStatsService;->noteVibratorOn(IJ)V
+PLcom/android/server/am/BatteryStatsService;->noteWakeUp(Ljava/lang/String;I)V
 PLcom/android/server/am/BatteryStatsService;->noteWakeupSensorEvent(JII)V
-HPLcom/android/server/am/BatteryStatsService;->noteWakupAlarm(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiOff()V
 PLcom/android/server/am/BatteryStatsService;->noteWifiOn()V
+PLcom/android/server/am/BatteryStatsService;->noteWifiRadioPowerState(IJI)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiRssiChanged(I)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiScanStartedFromSource(Landroid/os/WorkSource;)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiScanStoppedFromSource(Landroid/os/WorkSource;)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiState(ILjava/lang/String;)V
 PLcom/android/server/am/BatteryStatsService;->noteWifiSupplicantStateChanged(IZ)V
-PLcom/android/server/am/BatteryStatsService;->onSystemReady()V
 PLcom/android/server/am/BatteryStatsService;->populatePowerEntityMaps()V
-HSPLcom/android/server/am/BatteryStatsService;->publish()V
-PLcom/android/server/am/BatteryStatsService;->registerStatsCallbacks()V
 HSPLcom/android/server/am/BatteryStatsService;->scheduleWriteToDisk()V
 HPLcom/android/server/am/BatteryStatsService;->setBatteryState(IIIIIIIIJ)V
-PLcom/android/server/am/BatteryStatsService;->systemServicesReady()V
-PLcom/android/server/am/BatteryStatsService;->updateBatteryStatsOnActivityUsage(Ljava/lang/String;Ljava/lang/String;IIZ)V
-PLcom/android/server/am/BatteryStatsService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V
+PLcom/android/server/am/BatteryStatsService;->shouldCollectExternalStats()Z
+PLcom/android/server/am/BatteryStatsService;->syncStats(Ljava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
 PLcom/android/server/am/BroadcastConstants$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/BroadcastConstants;)V
+PLcom/android/server/am/BroadcastConstants$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/am/BroadcastConstants$SettingsObserver;-><init>(Lcom/android/server/am/BroadcastConstants;Landroid/os/Handler;)V
 HSPLcom/android/server/am/BroadcastConstants;-><clinit>()V
 HSPLcom/android/server/am/BroadcastConstants;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/am/BroadcastConstants;->getDeviceConfigBoolean(Ljava/lang/String;Z)Z
-HSPLcom/android/server/am/BroadcastConstants;->getDeviceConfigInt(Ljava/lang/String;I)I
-HSPLcom/android/server/am/BroadcastConstants;->getDeviceConfigLong(Ljava/lang/String;J)J
-HSPLcom/android/server/am/BroadcastConstants;->getMaxRunningQueues()I
-HSPLcom/android/server/am/BroadcastConstants;->propertyFor(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/server/am/BroadcastConstants;->propertyOverrideFor(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/am/BroadcastConstants;->dump(Landroid/util/IndentingPrintWriter;)V
+HSPLcom/android/server/am/BroadcastConstants;->getDeviceConfigInt(ILjava/lang/String;)I
+HSPLcom/android/server/am/BroadcastConstants;->getDeviceConfigLong(JLjava/lang/String;)J
 PLcom/android/server/am/BroadcastConstants;->startObserving(Landroid/os/Handler;Landroid/content/ContentResolver;)V
 HSPLcom/android/server/am/BroadcastConstants;->updateDeviceConfigConstants()V
 PLcom/android/server/am/BroadcastConstants;->updateSettingsConstants()V
-HPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZZ)V
+HPLcom/android/server/am/BroadcastController$1;->allowFilterResult(Ljava/util/List;Ljava/lang/Object;)Z+]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastController$1;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
+HPLcom/android/server/am/BroadcastController$1;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
+PLcom/android/server/am/BroadcastController$1;->newArray(I)[Ljava/lang/Object;
+HPLcom/android/server/am/BroadcastController$1;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;
+PLcom/android/server/am/BroadcastController$StickyBroadcast;-><init>()V
+HSPLcom/android/server/am/BroadcastController;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/BroadcastQueueModernImpl;)V
+HPLcom/android/server/am/BroadcastController;->addBroadcastStatLocked(IILjava/lang/String;Ljava/lang/String;J)V
+PLcom/android/server/am/BroadcastController;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZILandroid/app/BackgroundStartPrivileges;[I)I
+HPLcom/android/server/am/BroadcastController;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIILandroid/app/BackgroundStartPrivileges;[ILjava/util/function/BiFunction;)I
+HPLcom/android/server/am/BroadcastController;->broadcastIntentLockedTraced(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;ZZIIIIILandroid/app/BackgroundStartPrivileges;[ILjava/util/function/BiFunction;Lcom/android/server/am/BroadcastSentEventRecord;)I+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/IIntentReceiver;megamorphic_types]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Landroid/net/Uri;Landroid/net/Uri$OpaqueUri;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastController;->checkBroadcastFromSystem(Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;IZLjava/util/List;)V+]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastController;->collectReceiverComponents(Landroid/content/Intent;Ljava/lang/String;II[I[I)Ljava/util/List;+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+PLcom/android/server/am/BroadcastController;->dumpBroadcastStatsLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/am/BroadcastController;->dumpBroadcastsLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
+HPLcom/android/server/am/BroadcastController;->enforceBroadcastOptionPermissionsInternal(ILandroid/os/Bundle;)V
+HPLcom/android/server/am/BroadcastController;->getBackgroundLaunchBroadcasts()Landroid/util/ArraySet;
+HPLcom/android/server/am/BroadcastController;->getRealProcessStateLocked(ILcom/android/server/am/ProcessRecord;)I
+HPLcom/android/server/am/BroadcastController;->getRealUidStateLocked(ILcom/android/server/am/ProcessRecord;)I
+HPLcom/android/server/am/BroadcastController;->getWearRemoteIntentAction()Ljava/lang/String;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;
+HPLcom/android/server/am/BroadcastController;->isInstantApp(ILcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;
+HPLcom/android/server/am/BroadcastController;->registerReceiverWithFeatureTraced(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;+]Landroid/app/IApplicationThread;Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/IApplicationThread$Stub$Proxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+HPLcom/android/server/am/BroadcastController;->removeReceiverLocked(Lcom/android/server/am/ReceiverList;)V+]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;]Ljava/util/HashMap;Ljava/util/HashMap;
+HPLcom/android/server/am/BroadcastController;->rotateBroadcastStatsIfNeededLocked()V
+PLcom/android/server/am/BroadcastController;->sendPackageBroadcastLocked(II[Ljava/lang/String;)V
+HPLcom/android/server/am/BroadcastController;->unregisterReceiverTraced(Landroid/content/IIntentReceiver;)V
+HPLcom/android/server/am/BroadcastController;->verifyBroadcastLocked(Landroid/content/Intent;)V+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/BroadcastController;->writeBroadcastsToProtoLocked(Landroid/util/proto/ProtoOutputStream;)V
+HPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZZLandroid/content/pm/ApplicationInfo;Lcom/android/server/compat/PlatformCompat;)V
+HPLcom/android/server/am/BroadcastFilter;->calculateAdjustedPriority(IILandroid/content/pm/ApplicationInfo;Lcom/android/server/compat/PlatformCompat;)I
+PLcom/android/server/am/BroadcastFilter;->dumpBroadcastFilterState(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/BroadcastFilter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/am/BroadcastFilter;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/BroadcastHistory;-><init>(Lcom/android/server/am/BroadcastConstants;)V
-HPLcom/android/server/am/BroadcastHistory;->addBroadcastToHistoryLocked(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastHistory;->onBroadcastEnqueuedLocked(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastHistory;->onBroadcastFinishedLocked(Lcom/android/server/am/BroadcastRecord;)V
+PLcom/android/server/am/BroadcastHistory;->dumpBroadcastList(Ljava/io/PrintWriter;Ljava/text/SimpleDateFormat;Ljava/util/ArrayList;Ljava/lang/String;)V
 PLcom/android/server/am/BroadcastHistory;->ringAdvance(III)I
 PLcom/android/server/am/BroadcastLoopers;-><clinit>()V
 HPLcom/android/server/am/BroadcastLoopers;->addMyLooper()V
-PLcom/android/server/am/BroadcastProcessQueue$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/am/BroadcastProcessQueue$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/am/BroadcastProcessQueue$$ExternalSyntheticLambda0;->test(Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastProcessQueue$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/am/BroadcastProcessQueue$$ExternalSyntheticLambda1;->test(Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastProcessQueue;->$r8$lambda$7jvfHufVyE3JdVe4Li1zoeZOhgw(Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastProcessQueue;->$r8$lambda$uTkPoca9PFx_MiK361g77-Nbtxk(Lcom/android/server/am/BroadcastRecord;I)Z
-HPLcom/android/server/am/BroadcastProcessQueue;-><init>(Lcom/android/server/am/BroadcastConstants;Ljava/lang/String;I)V
-HPLcom/android/server/am/BroadcastProcessQueue;->assertHealthLocked()V
-HPLcom/android/server/am/BroadcastProcessQueue;->assertHealthLocked(Ljava/util/ArrayDeque;)V
-HPLcom/android/server/am/BroadcastProcessQueue;->clearDeferredStates(Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;)V
-HPLcom/android/server/am/BroadcastProcessQueue;->enqueueOrReplaceBroadcast(Lcom/android/server/am/BroadcastRecord;ILcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;)Lcom/android/server/am/BroadcastRecord;
+PLcom/android/server/am/BroadcastProcessQueue;-><init>(Lcom/android/server/am/BroadcastConstants;Ljava/lang/String;I)V
+HPLcom/android/server/am/BroadcastProcessQueue;->assertHealthLocked(Ljava/util/ArrayDeque;)V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DescendingIterator;
 HPLcom/android/server/am/BroadcastProcessQueue;->forEachMatchingBroadcast(Lcom/android/server/am/BroadcastProcessQueue$BroadcastPredicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Z)Z
-HPLcom/android/server/am/BroadcastProcessQueue;->forEachMatchingBroadcastInQueue(Ljava/util/ArrayDeque;Lcom/android/server/am/BroadcastProcessQueue$BroadcastPredicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Z)Z
+HPLcom/android/server/am/BroadcastProcessQueue;->forEachMatchingBroadcastInQueue(Ljava/util/ArrayDeque;Lcom/android/server/am/BroadcastProcessQueue$BroadcastPredicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Z)Z+]Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda17;]Lcom/android/server/am/BroadcastProcessQueue$BroadcastPredicate;megamorphic_types]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator;
 HPLcom/android/server/am/BroadcastProcessQueue;->getActive()Lcom/android/server/am/BroadcastRecord;
-HPLcom/android/server/am/BroadcastProcessQueue;->getActiveAssumedDeliveryCountSinceIdle()I
-HPLcom/android/server/am/BroadcastProcessQueue;->getActiveCountSinceIdle()I
-HPLcom/android/server/am/BroadcastProcessQueue;->getActiveIndex()I
-HPLcom/android/server/am/BroadcastProcessQueue;->getActiveViaColdStart()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->getActiveWasStopped()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->getPreferredSchedulingGroupLocked()I
-HPLcom/android/server/am/BroadcastProcessQueue;->getQueueForBroadcast(Lcom/android/server/am/BroadcastRecord;)Ljava/util/ArrayDeque;
+PLcom/android/server/am/BroadcastProcessQueue;->getActiveIndex()I
+HPLcom/android/server/am/BroadcastProcessQueue;->getQueueForBroadcast(Lcom/android/server/am/BroadcastRecord;)Ljava/util/ArrayDeque;+]Landroid/content/Intent;Landroid/content/Intent;
 HPLcom/android/server/am/BroadcastProcessQueue;->getRunnableAt()J
 HPLcom/android/server/am/BroadcastProcessQueue;->insertIntoRunnableList(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/BroadcastProcessQueue;)Lcom/android/server/am/BroadcastProcessQueue;
-HPLcom/android/server/am/BroadcastProcessQueue;->invalidateRunnableAt()V
 HPLcom/android/server/am/BroadcastProcessQueue;->isActive()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->isEmpty()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->isPendingManifest()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->isPendingOrdered()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->isPendingResultTo()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->isPendingUrgent()Z
+HPLcom/android/server/am/BroadcastProcessQueue;->isEmpty()Z+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
 HPLcom/android/server/am/BroadcastProcessQueue;->isProcessWarm()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->isQueueEmpty(Ljava/util/ArrayDeque;)Z
+PLcom/android/server/am/BroadcastProcessQueue;->isQueueEmpty(Ljava/util/ArrayDeque;)Z
 HPLcom/android/server/am/BroadcastProcessQueue;->isRunnable()Z
-PLcom/android/server/am/BroadcastProcessQueue;->lambda$updateDeferredStates$0(Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastProcessQueue;->lambda$updateDeferredStates$1(Lcom/android/server/am/BroadcastRecord;I)Z
-HPLcom/android/server/am/BroadcastProcessQueue;->makeActiveIdle()V
-HPLcom/android/server/am/BroadcastProcessQueue;->makeActiveNextPending()V
-HPLcom/android/server/am/BroadcastProcessQueue;->onBroadcastDequeued(Lcom/android/server/am/BroadcastRecord;I)V
-HPLcom/android/server/am/BroadcastProcessQueue;->onBroadcastEnqueued(Lcom/android/server/am/BroadcastRecord;I)V
-HPLcom/android/server/am/BroadcastProcessQueue;->peekNextBroadcast()Lcom/android/internal/os/SomeArgs;
-HPLcom/android/server/am/BroadcastProcessQueue;->peekNextBroadcastRecord()Lcom/android/server/am/BroadcastRecord;
+HPLcom/android/server/am/BroadcastProcessQueue;->makeActiveNextPending()V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastProcessQueue;->onBroadcastDequeued(Lcom/android/server/am/BroadcastRecord;I)V+]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastProcessQueue;->onBroadcastEnqueued(Lcom/android/server/am/BroadcastRecord;I)V+]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/am/BroadcastProcessQueue;->peekNextBroadcastRecord()Lcom/android/server/am/BroadcastRecord;
 HPLcom/android/server/am/BroadcastProcessQueue;->queueForNextBroadcast()Ljava/util/ArrayDeque;
-HPLcom/android/server/am/BroadcastProcessQueue;->queueForNextBroadcast(Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;II)Ljava/util/ArrayDeque;
+HPLcom/android/server/am/BroadcastProcessQueue;->queueForNextBroadcast(Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;II)Ljava/util/ArrayDeque;+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
 HPLcom/android/server/am/BroadcastProcessQueue;->removeFromRunnableList(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/BroadcastProcessQueue;)Lcom/android/server/am/BroadcastProcessQueue;
-HPLcom/android/server/am/BroadcastProcessQueue;->removeNextBroadcast()Lcom/android/internal/os/SomeArgs;
-HPLcom/android/server/am/BroadcastProcessQueue;->replaceBroadcast(Lcom/android/server/am/BroadcastRecord;I)Lcom/android/server/am/BroadcastRecord;
-HPLcom/android/server/am/BroadcastProcessQueue;->replaceBroadcastInQueue(Ljava/util/ArrayDeque;Lcom/android/server/am/BroadcastRecord;I)Lcom/android/server/am/BroadcastRecord;
-PLcom/android/server/am/BroadcastProcessQueue;->setActiveViaColdStart(Z)V
 HPLcom/android/server/am/BroadcastProcessQueue;->setProcessAndUidState(Lcom/android/server/am/ProcessRecord;ZZ)Z
-HPLcom/android/server/am/BroadcastProcessQueue;->setProcessFreezable(Z)Z
-HPLcom/android/server/am/BroadcastProcessQueue;->setProcessInstrumented(Z)Z
-HPLcom/android/server/am/BroadcastProcessQueue;->setProcessPersistent(Z)Z
-HPLcom/android/server/am/BroadcastProcessQueue;->setTimeoutScheduled(Z)V
-HPLcom/android/server/am/BroadcastProcessQueue;->setUidForeground(Z)Z
 HPLcom/android/server/am/BroadcastProcessQueue;->shouldBeDeferred()Z
-HPLcom/android/server/am/BroadcastProcessQueue;->timeoutScheduled()Z
 HPLcom/android/server/am/BroadcastProcessQueue;->toShortString()Ljava/lang/String;
 PLcom/android/server/am/BroadcastProcessQueue;->toString()Ljava/lang/String;
-HPLcom/android/server/am/BroadcastProcessQueue;->traceActiveBegin()V
-HPLcom/android/server/am/BroadcastProcessQueue;->traceActiveEnd()V
-HPLcom/android/server/am/BroadcastProcessQueue;->traceProcessEnd()V
 HPLcom/android/server/am/BroadcastProcessQueue;->traceProcessRunningBegin()V
-HPLcom/android/server/am/BroadcastProcessQueue;->traceProcessStartingBegin()V
-HPLcom/android/server/am/BroadcastProcessQueue;->updateDeferredStates(Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;)V
-HPLcom/android/server/am/BroadcastProcessQueue;->updateRunnableAt()V
-HSPLcom/android/server/am/BroadcastQueue;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Ljava/lang/String;Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastHistory;)V
+HPLcom/android/server/am/BroadcastProcessQueue;->updateRunnableAt()V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
+HSPLcom/android/server/am/BroadcastQueue;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastHistory;)V
 PLcom/android/server/am/BroadcastQueue;->checkState(ZLjava/lang/String;)V
 HPLcom/android/server/am/BroadcastQueue;->traceBegin(Ljava/lang/String;)I
 HPLcom/android/server/am/BroadcastQueue;->traceEnd(I)V
-HPLcom/android/server/am/BroadcastQueueImpl;->logBootCompletedBroadcastCompletionLatencyIfPossible(Lcom/android/server/am/BroadcastRecord;)V
 HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda12;->handleMessage(Landroid/os/Message;)Z
-HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;)V
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda13;->accept(Lcom/android/server/am/BroadcastRecord;I)V
-HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda14;->accept(Lcom/android/server/am/BroadcastRecord;I)V
-HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;)V
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda15;->accept(Lcom/android/server/am/BroadcastRecord;I)V
-HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;)V
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda16;->accept(Lcom/android/server/am/BroadcastRecord;I)V
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;Landroid/os/BundleMerger;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;Landroid/util/ArrayMap;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda18;->test(Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda2;-><init>(I)V
+HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda12;->handleMessage(Landroid/os/Message;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda17;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda17;->accept(Lcom/android/server/am/BroadcastRecord;I)V+]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;Ljava/lang/Object;)V
+HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda18;->test(Lcom/android/server/am/BroadcastRecord;I)Z+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/List;Ljava/util/ArrayList;
+HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda1;-><init>(I)V
+HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
+PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda2;-><init>(II)V
 PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda4;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda6;-><init>()V
-HPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z
-HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda7;-><init>()V
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda8;->test(Lcom/android/server/am/BroadcastRecord;I)Z
+PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;Ljava/util/Set;)V
+PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda3;->test(Lcom/android/server/am/BroadcastRecord;I)Z
+HSPLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda7;-><init>(I)V
+PLcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda7;->test(Lcom/android/server/am/BroadcastRecord;I)Z
 PLcom/android/server/am/BroadcastQueueModernImpl$1;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;)V
 HPLcom/android/server/am/BroadcastQueueModernImpl$1;->onUidStateChanged(IIJI)V
-HSPLcom/android/server/am/BroadcastQueueModernImpl$BroadcastAnrTimer;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;Landroid/os/Handler;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl$BroadcastAnrTimer;->start(Lcom/android/server/am/BroadcastProcessQueue;J)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$1141mqPXqA39gHvm8k1RvJok8ag(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;I)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$IA0U1TDYlMnhLy7gkIvyunwabTM(ILcom/android/server/am/BroadcastProcessQueue;)Z
-PLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$N57OdIm--GFn45qEJb2p5M2c1j0(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;I)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$XfkV9LwUrXbMSXZ_yM6OxtAr1eQ(Lcom/android/server/am/BroadcastRecord;I)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$d79aYiK04-SKNC9AXzRIc2ug0aQ(Lcom/android/server/am/BroadcastQueueModernImpl;Landroid/os/Message;)Z
-PLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$e8id_ODzsrGaHviXqkfUDpIVDZk(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;I)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$hPIdd26uRdf2eZATmbOexHo1U30(Lcom/android/server/am/BroadcastProcessQueue;)Z
-PLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$iMV30Exe2X2No64mUUsPPvg246Q(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;I)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->$r8$lambda$wimp7yt_FsAyLko1-wOxiCNCaqo(Lcom/android/server/am/BroadcastQueueModernImpl;Lcom/android/server/am/BroadcastRecord;Landroid/util/ArrayMap;Lcom/android/server/am/BroadcastRecord;I)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->-$$Nest$fgetmLocalHandler(Lcom/android/server/am/BroadcastQueueModernImpl;)Landroid/os/Handler;
+HPLcom/android/server/am/BroadcastQueueModernImpl$BroadcastAnrTimer;->getPid(Ljava/lang/Object;)I
+HPLcom/android/server/am/BroadcastQueueModernImpl$BroadcastAnrTimer;->getUid(Ljava/lang/Object;)I
 HSPLcom/android/server/am/BroadcastQueueModernImpl;-><clinit>()V
 HSPLcom/android/server/am/BroadcastQueueModernImpl;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Lcom/android/server/am/BroadcastConstants;Lcom/android/server/am/BroadcastConstants;)V
-HSPLcom/android/server/am/BroadcastQueueModernImpl;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Lcom/android/server/am/BroadcastConstants;Lcom/android/server/am/BroadcastConstants;Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastHistory;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->applyDeliveryGroupPolicy(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->assertHealthLocked()V
-PLcom/android/server/am/BroadcastQueueModernImpl;->backgroundServicesFinishedLocked(I)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->cancelDeliveryTimeoutLocked(Lcom/android/server/am/BroadcastProcessQueue;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->checkAndRemoveWaitingFor()V
+HPLcom/android/server/am/BroadcastQueueModernImpl;->assertHealthLocked()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/am/BroadcastQueueModernImpl;->checkHealth()V
-PLcom/android/server/am/BroadcastQueueModernImpl;->checkHealthLocked()V
 HPLcom/android/server/am/BroadcastQueueModernImpl;->checkPendingColdStartValidityLocked()V
-PLcom/android/server/am/BroadcastQueueModernImpl;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;I)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->containsAllReceivers(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;Landroid/util/ArrayMap;)Z
+PLcom/android/server/am/BroadcastQueueModernImpl;->cleanupDisabledPackageReceiversLocked(ILjava/lang/String;Ljava/util/Set;)Z
 HPLcom/android/server/am/BroadcastQueueModernImpl;->demoteFromRunningLocked(Lcom/android/server/am/BroadcastProcessQueue;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->dispatchReceivers(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/BroadcastRecord;I)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->enqueueBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
+PLcom/android/server/am/BroadcastQueueModernImpl;->dumpLocked(Ljava/io/PrintWriter;ZZZLjava/lang/String;Z)Z
+HPLcom/android/server/am/BroadcastQueueModernImpl;->enqueueBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda17;]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DescendingIterator;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/ImmutableCollections$ListN;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->enqueueUpdateRunningList()V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->finishReceiverActiveLocked(Lcom/android/server/am/BroadcastProcessQueue;ILjava/lang/String;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->finishReceiverLocked(Lcom/android/server/am/ProcessRecord;ILjava/lang/String;Landroid/os/Bundle;ZZ)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->forEachMatchingBroadcast(Ljava/util/function/Predicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastPredicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;Z)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->getDeliveryState(Lcom/android/server/am/BroadcastRecord;I)I
-HPLcom/android/server/am/BroadcastQueueModernImpl;->getOrCreateProcessQueue(Ljava/lang/String;I)Lcom/android/server/am/BroadcastProcessQueue;
-HPLcom/android/server/am/BroadcastQueueModernImpl;->getPreferredSchedulingGroupLocked(Lcom/android/server/am/ProcessRecord;)I
+HPLcom/android/server/am/BroadcastQueueModernImpl;->finishReceiverActiveLocked(Lcom/android/server/am/BroadcastProcessQueue;ILjava/lang/String;)V+]Lcom/android/server/utils/AnrTimer$FeatureSwitch;Lcom/android/server/utils/AnrTimer$FeatureEnabled;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->finishReceiverLocked(Lcom/android/server/am/ProcessRecord;ILjava/lang/String;Landroid/os/Bundle;Z)Z+]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->forEachMatchingBroadcast(Ljava/util/function/Predicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastPredicate;Lcom/android/server/am/BroadcastProcessQueue$BroadcastConsumer;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/function/Predicate;Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda1;,Lcom/android/server/am/BroadcastQueueModernImpl$$ExternalSyntheticLambda2;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->getOrCreateProcessQueue(Ljava/lang/String;I)Lcom/android/server/am/BroadcastProcessQueue;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->getProcessQueue(Lcom/android/server/am/ProcessRecord;)Lcom/android/server/am/BroadcastProcessQueue;
-HPLcom/android/server/am/BroadcastQueueModernImpl;->getProcessQueue(Ljava/lang/String;I)Lcom/android/server/am/BroadcastProcessQueue;
-HPLcom/android/server/am/BroadcastQueueModernImpl;->getRecordsLookupCache()Landroid/util/ArrayMap;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->getProcessQueue(Ljava/lang/String;I)Lcom/android/server/am/BroadcastProcessQueue;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->getRunningIndexOf(Lcom/android/server/am/BroadcastProcessQueue;)I
 HPLcom/android/server/am/BroadcastQueueModernImpl;->getRunningSize()I
-HPLcom/android/server/am/BroadcastQueueModernImpl;->getRunningUrgentCount()I
-HPLcom/android/server/am/BroadcastQueueModernImpl;->isPendingColdStartValid()Z
+HPLcom/android/server/am/BroadcastQueueModernImpl;->handleProcessFreezableChanged(Lcom/android/server/am/ProcessRecord;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->isProcessFreezable(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->lambda$applyDeliveryGroupPolicy$3(Lcom/android/server/am/BroadcastRecord;Landroid/util/ArrayMap;Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastQueueModernImpl;->lambda$cleanupDisabledPackageReceiversLocked$4(ILcom/android/server/am/BroadcastProcessQueue;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->lambda$new$0(Landroid/os/Message;)Z
-PLcom/android/server/am/BroadcastQueueModernImpl;->lambda$new$10(Lcom/android/server/am/BroadcastRecord;I)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->lambda$new$11(Lcom/android/server/am/BroadcastRecord;I)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->lambda$new$12(Lcom/android/server/am/BroadcastRecord;I)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->lambda$new$13(Lcom/android/server/am/BroadcastRecord;I)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->lambda$onApplicationCleanupLocked$1(Lcom/android/server/am/BroadcastRecord;I)Z
-PLcom/android/server/am/BroadcastQueueModernImpl;->lambda$static$8(Lcom/android/server/am/BroadcastProcessQueue;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->logBroadcastDeliveryEventReported(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;ILjava/lang/Object;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyFinishBroadcast(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyFinishReceiver(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;ILjava/lang/Object;)V
+HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyFinishBroadcast(Lcom/android/server/am/BroadcastRecord;)V+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/ImmutableCollections$ListN;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyScheduleReceiver(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;Landroid/content/pm/ResolveInfo;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyScheduleRegisteredReceiver(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyStartedRunning(Lcom/android/server/am/BroadcastProcessQueue;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyStoppedRunning(Lcom/android/server/am/BroadcastProcessQueue;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->onApplicationAttachedLocked(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->onApplicationCleanupLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->onProcessFreezableChangedLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->promoteToRunningLocked(Lcom/android/server/am/BroadcastProcessQueue;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->refreshProcessQueueLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->refreshProcessQueuesLocked(I)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->removeProcessQueue(Ljava/lang/String;I)Lcom/android/server/am/BroadcastProcessQueue;
-HPLcom/android/server/am/BroadcastQueueModernImpl;->reportUsageStatsBroadcastDispatched(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->scheduleReceiverColdLocked(Lcom/android/server/am/BroadcastProcessQueue;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->scheduleReceiverWarmLocked(Lcom/android/server/am/BroadcastProcessQueue;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->scheduleResultTo(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->setDeliveryState(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;ILjava/lang/Object;ILjava/lang/String;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->setQueueProcess(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/BroadcastQueueModernImpl;->notifyStartedRunning(Lcom/android/server/am/BroadcastProcessQueue;)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;
+PLcom/android/server/am/BroadcastQueueModernImpl;->onApplicationAttachedLocked(Lcom/android/server/am/ProcessRecord;)Z
+PLcom/android/server/am/BroadcastQueueModernImpl;->onApplicationCleanupLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/BroadcastQueueModernImpl;->removeProcessQueue(Ljava/lang/String;I)Lcom/android/server/am/BroadcastProcessQueue;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->reportUsageStatsBroadcastDispatched(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/util/LongArrayQueue;Landroid/util/LongArrayQueue;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;]Lcom/android/server/usage/BroadcastResponseStatsLogger$Data;Lcom/android/server/usage/BroadcastResponseStatsLogger$BroadcastEvent;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->scheduleReceiverWarmLocked(Lcom/android/server/am/BroadcastProcessQueue;)Z+]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/app/IApplicationThread;Lcom/android/server/am/ApplicationThreadDeferred;,Lcom/android/server/am/SameProcessApplicationThread;]Lcom/android/server/utils/AnrTimer$FeatureSwitch;Lcom/android/server/utils/AnrTimer$FeatureEnabled;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->scheduleResultTo(Lcom/android/server/am/BroadcastRecord;)V+]Landroid/app/IApplicationThread;Lcom/android/server/am/ApplicationThreadDeferred;,Lcom/android/server/am/SameProcessApplicationThread;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->setDeliveryState(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;ILjava/lang/Object;ILjava/lang/String;)V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->setQueueProcess(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/ProcessRecord;)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->shouldRetire(Lcom/android/server/am/BroadcastProcessQueue;)Z
-HPLcom/android/server/am/BroadcastQueueModernImpl;->shouldSkipReceiver(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/BroadcastRecord;I)Ljava/lang/String;
-HPLcom/android/server/am/BroadcastQueueModernImpl;->skipAndCancelReplacedBroadcasts(Landroid/util/ArraySet;)V
-PLcom/android/server/am/BroadcastQueueModernImpl;->start(Landroid/content/ContentResolver;)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->startDeliveryTimeoutLocked(Lcom/android/server/am/BroadcastProcessQueue;I)V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->updateRunnableList(Lcom/android/server/am/BroadcastProcessQueue;)V
+HPLcom/android/server/am/BroadcastQueueModernImpl;->shouldSkipReceiver(Lcom/android/server/am/BroadcastProcessQueue;Lcom/android/server/am/BroadcastRecord;I)Ljava/lang/String;+]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastQueueModernImpl;->updateRunnableList(Lcom/android/server/am/BroadcastProcessQueue;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/BroadcastQueueModernImpl;->updateRunningList()V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->updateRunningListLocked()V
-HPLcom/android/server/am/BroadcastQueueModernImpl;->updateWarmProcess(Lcom/android/server/am/BroadcastProcessQueue;)V
+HPLcom/android/server/am/BroadcastQueueModernImpl;->updateRunningListLocked()V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
 HSPLcom/android/server/am/BroadcastRecord;-><clinit>()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;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIILandroid/app/BackgroundStartPrivileges;ZLjava/util/function/BiFunction;I)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;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZILandroid/app/BackgroundStartPrivileges;ZLjava/util/function/BiFunction;I)V
-HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V
-HPLcom/android/server/am/BroadcastRecord;->applySingletonPolicy(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/BroadcastRecord;->areMatchingKeysEqual(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;)Z
-HPLcom/android/server/am/BroadcastRecord;->calculateBlockedUntilBeyondCount(Ljava/util/List;Z)[I
-HPLcom/android/server/am/BroadcastRecord;->calculateDeferUntilActive(ILandroid/app/BroadcastOptions;Landroid/content/IIntentReceiver;ZZ)Z
-HPLcom/android/server/am/BroadcastRecord;->calculateTypeForLogging()I
-HPLcom/android/server/am/BroadcastRecord;->calculateUrgent(Landroid/content/Intent;Landroid/app/BroadcastOptions;)Z
-PLcom/android/server/am/BroadcastRecord;->clearMatchingRecordsCache()V
-PLcom/android/server/am/BroadcastRecord;->containsAllReceivers(Ljava/util/List;)Z
-HPLcom/android/server/am/BroadcastRecord;->containsReceiver(Ljava/lang/Object;)Z
-HPLcom/android/server/am/BroadcastRecord;->getDeliveryGroupMatchingFilter(Lcom/android/server/am/BroadcastRecord;)Landroid/content/IntentFilter;
-HPLcom/android/server/am/BroadcastRecord;->getDeliveryGroupMatchingKeyFragment(Lcom/android/server/am/BroadcastRecord;)Ljava/lang/String;
-HPLcom/android/server/am/BroadcastRecord;->getDeliveryGroupMatchingNamespaceFragment(Lcom/android/server/am/BroadcastRecord;)Ljava/lang/String;
-HPLcom/android/server/am/BroadcastRecord;->getDeliveryGroupPolicy()I
-HPLcom/android/server/am/BroadcastRecord;->getDeliveryState(I)I
-HPLcom/android/server/am/BroadcastRecord;->getHostingRecordTriggerType()Ljava/lang/String;
-HPLcom/android/server/am/BroadcastRecord;->getReceiverIntent(Ljava/lang/Object;)Landroid/content/Intent;
-HPLcom/android/server/am/BroadcastRecord;->getReceiverPriority(Ljava/lang/Object;)I
-HPLcom/android/server/am/BroadcastRecord;->getReceiverProcessName(Ljava/lang/Object;)Ljava/lang/String;
+HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZILandroid/app/BackgroundStartPrivileges;ZLjava/util/function/BiFunction;ILcom/android/server/compat/PlatformCompat;)V
+HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueueModernImpl;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIILandroid/app/BackgroundStartPrivileges;ZLjava/util/function/BiFunction;ILcom/android/server/compat/PlatformCompat;)V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/BroadcastRecord;->calculateBlockedUntilBeyondCount(Ljava/util/List;ZLcom/android/server/compat/PlatformCompat;)[I+]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/ImmutableCollections$ListN;
+HPLcom/android/server/am/BroadcastRecord;->calculateChangeStateForReceivers(Ljava/util/List;JLcom/android/server/compat/PlatformCompat;)[Z+]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastRecord;->calculateDeferUntilActive(ILandroid/app/BroadcastOptions;Landroid/content/IIntentReceiver;ZZ)Z+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;
+HPLcom/android/server/am/BroadcastRecord;->calculateUrgent(Landroid/content/Intent;Landroid/app/BroadcastOptions;)Z+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/BroadcastRecord;->containsReceiver(Ljava/lang/Object;)Z+]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/am/BroadcastRecord;->dump(Ljava/io/PrintWriter;Ljava/text/SimpleDateFormat;)V
+PLcom/android/server/am/BroadcastRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/am/BroadcastRecord;->getReceiverIntent(Ljava/lang/Object;)Landroid/content/Intent;+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Ljava/util/function/BiFunction;Lcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda4;
 HPLcom/android/server/am/BroadcastRecord;->getReceiverUid(Ljava/lang/Object;)I
-HPLcom/android/server/am/BroadcastRecord;->isAssumedDelivered(I)Z
-HPLcom/android/server/am/BroadcastRecord;->isBlocked(I)Z
-HPLcom/android/server/am/BroadcastRecord;->isCallerInstrumented(Lcom/android/server/am/ProcessRecord;I)Z
-PLcom/android/server/am/BroadcastRecord;->isDeferUntilActive()Z
-PLcom/android/server/am/BroadcastRecord;->isDeliveryStateBeyond(I)Z
 HPLcom/android/server/am/BroadcastRecord;->isDeliveryStateTerminal(I)Z
-HPLcom/android/server/am/BroadcastRecord;->isForeground()Z
-HPLcom/android/server/am/BroadcastRecord;->isMatchingKeyNull(Lcom/android/server/am/BroadcastRecord;)Z
-PLcom/android/server/am/BroadcastRecord;->isNoAbort()Z
-HPLcom/android/server/am/BroadcastRecord;->isOffload()Z
+HPLcom/android/server/am/BroadcastRecord;->isForeground()Z+]Landroid/content/Intent;Landroid/content/Intent;
 PLcom/android/server/am/BroadcastRecord;->isPrioritized([IZ)Z
 PLcom/android/server/am/BroadcastRecord;->isReceiverEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
-HPLcom/android/server/am/BroadcastRecord;->isReplacePending()Z
-HPLcom/android/server/am/BroadcastRecord;->isUrgent()Z
-HPLcom/android/server/am/BroadcastRecord;->matchesDeliveryGroup(Lcom/android/server/am/BroadcastRecord;)Z
-HPLcom/android/server/am/BroadcastRecord;->matchesDeliveryGroup(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;)Z
-HPLcom/android/server/am/BroadcastRecord;->maybeStripForHistory()Lcom/android/server/am/BroadcastRecord;
-HPLcom/android/server/am/BroadcastRecord;->setDeliveryState(IILjava/lang/String;)Z
-PLcom/android/server/am/BroadcastRecord;->setMatchingRecordsCache(Landroid/util/ArrayMap;)V
-HPLcom/android/server/am/BroadcastRecord;->toShortString()Ljava/lang/String;
+HPLcom/android/server/am/BroadcastRecord;->toShortString()Ljava/lang/String;+]Landroid/content/Intent;Landroid/content/Intent;
 HPLcom/android/server/am/BroadcastRecord;->toString()Ljava/lang/String;
-HPLcom/android/server/am/BroadcastRecord;->wasDeliveryAttempted(I)Z
+HPLcom/android/server/am/BroadcastSentEventRecord;->logToStatsd()V+]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/ImmutableCollections$ListN;
+PLcom/android/server/am/BroadcastSentEventRecord;->setBroadcastRecord(Lcom/android/server/am/BroadcastRecord;)V
 HSPLcom/android/server/am/BroadcastSkipPolicy;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/BroadcastSkipPolicy;->broadcastDescription(Lcom/android/server/am/BroadcastRecord;Landroid/content/ComponentName;)Ljava/lang/String;
-HPLcom/android/server/am/BroadcastSkipPolicy;->disallowBackgroundStart(Lcom/android/server/am/BroadcastRecord;)Z
-HPLcom/android/server/am/BroadcastSkipPolicy;->isSignaturePerm([Ljava/lang/String;)Z
-PLcom/android/server/am/BroadcastSkipPolicy;->noteOpForManifestReceiver(ILcom/android/server/am/BroadcastRecord;Landroid/content/pm/ResolveInfo;Landroid/content/ComponentName;)Z
-HPLcom/android/server/am/BroadcastSkipPolicy;->noteOpForManifestReceiverInner(ILcom/android/server/am/BroadcastRecord;Landroid/content/pm/ResolveInfo;Landroid/content/ComponentName;Ljava/lang/String;)Z
-HPLcom/android/server/am/BroadcastSkipPolicy;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;I)Z
-HPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkipMessage(Lcom/android/server/am/BroadcastRecord;Landroid/content/pm/ResolveInfo;)Ljava/lang/String;
-HPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkipMessage(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;)Ljava/lang/String;
-HPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkipMessage(Lcom/android/server/am/BroadcastRecord;Ljava/lang/Object;)Ljava/lang/String;
-PLcom/android/server/am/BroadcastStats$1;-><init>()V
-HPLcom/android/server/am/BroadcastStats$ActionEntry;-><init>(Ljava/lang/String;)V
-PLcom/android/server/am/BroadcastStats$PackageEntry;-><init>()V
-PLcom/android/server/am/BroadcastStats$ViolationEntry;-><init>()V
+PLcom/android/server/am/BroadcastSkipPolicy;->broadcastDescription(Lcom/android/server/am/BroadcastRecord;Landroid/content/ComponentName;)Ljava/lang/String;
+HPLcom/android/server/am/BroadcastSkipPolicy;->hasPermissionForDataDelivery(Ljava/lang/String;Ljava/lang/String;[Landroid/content/AttributionSource;)Z
+HPLcom/android/server/am/BroadcastSkipPolicy;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;
+HPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkipMessage(Lcom/android/server/am/BroadcastRecord;Ljava/lang/Object;)Ljava/lang/String;+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/permission/IPermissionManager;Lcom/android/server/pm/permission/PermissionManagerService;
+PLcom/android/server/am/BroadcastStats$$ExternalSyntheticOutline0;->m(ILjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/BroadcastStats$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/am/BroadcastStats$ActionEntry;-><init>(Ljava/lang/String;)V
 PLcom/android/server/am/BroadcastStats;-><clinit>()V
 PLcom/android/server/am/BroadcastStats;-><init>()V
-HPLcom/android/server/am/BroadcastStats;->addBackgroundCheckViolation(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/BroadcastStats;->addBroadcast(Ljava/lang/String;Ljava/lang/String;IIJ)V
+PLcom/android/server/am/BroadcastStats;->dumpStats(Ljava/io/PrintWriter;Ljava/lang/String;)Z
 HSPLcom/android/server/am/CacheOomRanker$1;-><init>(Lcom/android/server/am/CacheOomRanker;)V
-HSPLcom/android/server/am/CacheOomRanker$CacheUseComparator;-><init>()V
-HSPLcom/android/server/am/CacheOomRanker$CacheUseComparator;-><init>(Lcom/android/server/am/CacheOomRanker$CacheUseComparator-IA;)V
-HSPLcom/android/server/am/CacheOomRanker$LastActivityTimeComparator;-><init>()V
-HSPLcom/android/server/am/CacheOomRanker$LastActivityTimeComparator;-><init>(Lcom/android/server/am/CacheOomRanker$LastActivityTimeComparator-IA;)V
-HSPLcom/android/server/am/CacheOomRanker$LastRssComparator;-><init>()V
-HSPLcom/android/server/am/CacheOomRanker$LastRssComparator;-><init>(Lcom/android/server/am/CacheOomRanker$LastRssComparator-IA;)V
-HSPLcom/android/server/am/CacheOomRanker$ProcessDependenciesImpl;-><init>()V
-HSPLcom/android/server/am/CacheOomRanker$ProcessDependenciesImpl;-><init>(Lcom/android/server/am/CacheOomRanker$ProcessDependenciesImpl-IA;)V
-PLcom/android/server/am/CacheOomRanker$RankedProcessRecord;-><init>()V
-PLcom/android/server/am/CacheOomRanker$RankedProcessRecord;-><init>(Lcom/android/server/am/CacheOomRanker$RankedProcessRecord-IA;)V
-HSPLcom/android/server/am/CacheOomRanker$RssComparator;-><init>()V
-HSPLcom/android/server/am/CacheOomRanker$RssComparator;-><init>(Lcom/android/server/am/CacheOomRanker$RssComparator-IA;)V
-HSPLcom/android/server/am/CacheOomRanker$ScoreComparator;-><init>()V
-HSPLcom/android/server/am/CacheOomRanker$ScoreComparator;-><init>(Lcom/android/server/am/CacheOomRanker$ScoreComparator-IA;)V
+PLcom/android/server/am/CacheOomRanker$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/am/CacheOomRanker$RssComparator;-><init>(I)V
 HSPLcom/android/server/am/CacheOomRanker;-><clinit>()V
-HSPLcom/android/server/am/CacheOomRanker;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/CacheOomRanker;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/CacheOomRanker$ProcessDependencies;)V
 PLcom/android/server/am/CacheOomRanker;->getNumberToReRank()I
-PLcom/android/server/am/CacheOomRanker;->init(Ljava/util/concurrent/Executor;)V
-PLcom/android/server/am/CacheOomRanker;->updateLruWeight()V
 PLcom/android/server/am/CacheOomRanker;->updateNumberToReRank()V
-PLcom/android/server/am/CacheOomRanker;->updateRssWeight()V
-PLcom/android/server/am/CacheOomRanker;->updateUseOomReranking()V
-PLcom/android/server/am/CacheOomRanker;->updateUsesWeight()V
-HSPLcom/android/server/am/CacheOomRanker;->useOomReranking()Z
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/CachedAppOptimizer;Z)V
-HPLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/CachedAppOptimizer;Z)V
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda2;-><init>(Landroid/util/ArraySet;)V
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
 PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/CachedAppOptimizer;ILjava/lang/String;II)V
-PLcom/android/server/am/CachedAppOptimizer$$ExternalSyntheticLambda5;->run()V
-HSPLcom/android/server/am/CachedAppOptimizer$1;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
-HSPLcom/android/server/am/CachedAppOptimizer$2;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
+HSPLcom/android/server/am/CachedAppOptimizer$1;-><init>(Lcom/android/server/am/CachedAppOptimizer;I)V
+PLcom/android/server/am/CachedAppOptimizer$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/am/CachedAppOptimizer$3;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
 PLcom/android/server/am/CachedAppOptimizer$3;->removeEldestEntry(Ljava/util/Map$Entry;)Z
 HSPLcom/android/server/am/CachedAppOptimizer$4;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
-HPLcom/android/server/am/CachedAppOptimizer$4;->add(Lcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;)Z
-HPLcom/android/server/am/CachedAppOptimizer$4;->add(Ljava/lang/Object;)Z
-PLcom/android/server/am/CachedAppOptimizer$5;-><clinit>()V
-HPLcom/android/server/am/CachedAppOptimizer$AggregatedCompactionStats;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
+PLcom/android/server/am/CachedAppOptimizer$4;->add(Ljava/lang/Object;)Z
 HPLcom/android/server/am/CachedAppOptimizer$AggregatedCompactionStats;->addMemStats(JJJJJ)V
-HPLcom/android/server/am/CachedAppOptimizer$AggregatedProcessCompactionStats;-><init>(Lcom/android/server/am/CachedAppOptimizer;Ljava/lang/String;)V
-PLcom/android/server/am/CachedAppOptimizer$AggregatedSourceCompactionStats;-><init>(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$CompactSource;)V
-HSPLcom/android/server/am/CachedAppOptimizer$CancelCompactReason;->$values()[Lcom/android/server/am/CachedAppOptimizer$CancelCompactReason;
+PLcom/android/server/am/CachedAppOptimizer$AggregatedCompactionStats;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/CachedAppOptimizer$AggregatedProcessCompactionStats;-><init>(Ljava/lang/String;)V
+PLcom/android/server/am/CachedAppOptimizer$AggregatedSourceCompactionStats;-><init>(Lcom/android/server/am/CachedAppOptimizer$CompactSource;)V
 HSPLcom/android/server/am/CachedAppOptimizer$CancelCompactReason;-><clinit>()V
-HSPLcom/android/server/am/CachedAppOptimizer$CancelCompactReason;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/am/CachedAppOptimizer$CancelCompactReason;->values()[Lcom/android/server/am/CachedAppOptimizer$CancelCompactReason;
-PLcom/android/server/am/CachedAppOptimizer$CompactProfile;->$values()[Lcom/android/server/am/CachedAppOptimizer$CompactProfile;
 PLcom/android/server/am/CachedAppOptimizer$CompactProfile;-><clinit>()V
-PLcom/android/server/am/CachedAppOptimizer$CompactProfile;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/am/CachedAppOptimizer$CompactProfile;->values()[Lcom/android/server/am/CachedAppOptimizer$CompactProfile;
-HSPLcom/android/server/am/CachedAppOptimizer$CompactSource;->$values()[Lcom/android/server/am/CachedAppOptimizer$CompactSource;
 HSPLcom/android/server/am/CachedAppOptimizer$CompactSource;-><clinit>()V
-HSPLcom/android/server/am/CachedAppOptimizer$CompactSource;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/am/CachedAppOptimizer$CompactSource;->values()[Lcom/android/server/am/CachedAppOptimizer$CompactSource;
-HSPLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;-><clinit>()V
-HSPLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;-><init>()V
-HSPLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;-><init>(Lcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies-IA;)V
-HPLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;->getRss(I)[J
-HPLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;->performCompaction(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;I)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->$r8$lambda$IAfIfEcFxcOjA58aDQgnJCZBAt4(Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->$r8$lambda$JrdK-GOHWyvTveD-A9PVDkKW66c(Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->$r8$lambda$dwqBiMSA3Eh5CYi4YkeM0J8Nh5U(Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;->getRss(I)[J
+PLcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;->performCompaction(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;I)V
 PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$FreezeHandler-IA;)V
-HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->freezeProcess(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->handleBinderFreezerFailure(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
-HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->lambda$freezeProcess$1(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->lambda$freezeProcess$2(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->lambda$handleBinderFreezerFailure$0(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->freezeProcess(Lcom/android/server/am/ProcessRecord;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Random;Ljava/util/Random;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;
+PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->handleBinderFreezerFailure(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
+HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/app/IUidFrozenStateChangedCallback;Landroid/app/ActivityManager$2;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/ProcLocksReader;Lcom/android/internal/os/ProcLocksReader;
 HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->reportUnfreeze(Lcom/android/server/am/ProcessRecord;IILjava/lang/String;I)V
 PLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
-PLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$MemCompactionHandler-IA;)V
-HPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->shouldOomAdjThrottleCompaction(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->shouldRssThrottleCompaction(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;ILjava/lang/String;[J)Z
-HPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->shouldThrottleMiscCompaction(Lcom/android/server/am/ProcessRecord;I)Z
-HPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->shouldTimeThrottleCompaction(Lcom/android/server/am/ProcessRecord;JLcom/android/server/am/CachedAppOptimizer$CompactProfile;Lcom/android/server/am/CachedAppOptimizer$CompactSource;)Z
+HPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/am/CachedAppOptimizer$ProcessDependencies;Lcom/android/server/am/CachedAppOptimizer$DefaultProcessDependencies;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/EnumMap;Ljava/util/EnumMap;]Ljava/util/LinkedHashMap;Lcom/android/server/am/CachedAppOptimizer$3;,Ljava/util/LinkedHashMap;]Ljava/util/LinkedList;Lcom/android/server/am/CachedAppOptimizer$4;]Ljava/util/Set;Ljava/util/HashSet;
 HSPLcom/android/server/am/CachedAppOptimizer$SettingsContentObserver;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V
 PLcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;-><clinit>()V
 HPLcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;-><init>([JLcom/android/server/am/CachedAppOptimizer$CompactSource;Ljava/lang/String;JJJJJIIII)V
-PLcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;->getRssAfterCompaction()[J
-HPLcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;->sendStat()V
-PLcom/android/server/am/CachedAppOptimizer;->$r8$lambda$50-5szAMI3_Lo87NbZnc0_MNRnM(Lcom/android/server/am/CachedAppOptimizer;ILjava/lang/String;II)V
-PLcom/android/server/am/CachedAppOptimizer;->$r8$lambda$IZHebRIY4Ji4Hhts59PebGRJdjw(Lcom/android/server/am/CachedAppOptimizer;Ljava/lang/Integer;Ljava/lang/Integer;)V
-PLcom/android/server/am/CachedAppOptimizer;->$r8$lambda$JxGAByAESCLWWhMw0Ii9S5PJx-0(Lcom/android/server/am/CachedAppOptimizer;Z)V
-PLcom/android/server/am/CachedAppOptimizer;->$r8$lambda$ZH029cmpkk4u9PrurAANG_5gCdM(Lcom/android/server/am/CachedAppOptimizer;ZLcom/android/server/am/ProcessRecord;)V
-HSPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmAm(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/server/am/ActivityManagerService;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmFreezeHandler(Lcom/android/server/am/CachedAppOptimizer;)Landroid/os/Handler;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmFreezerOverride(Lcom/android/server/am/CachedAppOptimizer;)Z
-HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmFrozenProcesses(Lcom/android/server/am/CachedAppOptimizer;)Landroid/util/SparseArray;
-HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmPendingCompactionProcesses(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/ArrayList;
-HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmProcLock(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/server/am/ActivityManagerGlobalLock;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmProcLocksReader(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/internal/os/ProcLocksReader;
-HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmProcessDependencies(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/server/am/CachedAppOptimizer$ProcessDependencies;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$fgetmRandom(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/Random;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mbinderErrorLocked(Lcom/android/server/am/CachedAppOptimizer;Landroid/util/IntArray;)V
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mfreezeAppAsyncLSP(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/ProcessRecord;J)V
-HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mgetPerProcessAggregatedCompactStat(Lcom/android/server/am/CachedAppOptimizer;Ljava/lang/String;)Lcom/android/server/am/CachedAppOptimizer$AggregatedProcessCompactionStats;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mgetPerSourceAggregatedCompactStat(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$CompactSource;)Lcom/android/server/am/CachedAppOptimizer$AggregatedSourceCompactionStats;
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mpostUidFrozenMessage(Lcom/android/server/am/CachedAppOptimizer;IZ)V
-HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mreportOneUidFrozenStateChanged(Lcom/android/server/am/CachedAppOptimizer;IZ)V
+PLcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/CachedAppOptimizer$SingleCompactionStats;->sendStat()V
 PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smcompactProcess(II)V
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smgetBinderFreezeInfo(I)I
 PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smgetUsedZramMemory()J
 PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smthreadCpuTimeNs()J
-PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smtraceAppFreeze(Ljava/lang/String;II)V
 HSPLcom/android/server/am/CachedAppOptimizer;-><clinit>()V
-HSPLcom/android/server/am/CachedAppOptimizer;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/CachedAppOptimizer;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/CachedAppOptimizer$PropertyChangedCallbackForTest;Lcom/android/server/am/CachedAppOptimizer$ProcessDependencies;)V
-HPLcom/android/server/am/CachedAppOptimizer;->binderError(ILcom/android/server/am/ProcessRecord;III)V
-HPLcom/android/server/am/CachedAppOptimizer;->binderErrorLocked(Landroid/util/IntArray;)V
-HPLcom/android/server/am/CachedAppOptimizer;->cancelCompactionForProcess(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/CachedAppOptimizer$CancelCompactReason;)V
-HPLcom/android/server/am/CachedAppOptimizer;->compactApp(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/CachedAppOptimizer$CompactProfile;Lcom/android/server/am/CachedAppOptimizer$CompactSource;Z)Z
-HPLcom/android/server/am/CachedAppOptimizer;->enableFreezer(Z)Z
-HPLcom/android/server/am/CachedAppOptimizer;->freezeAppAsyncInternalLSP(Lcom/android/server/am/ProcessRecord;JZ)V
-HPLcom/android/server/am/CachedAppOptimizer;->freezeAppAsyncLSP(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/CachedAppOptimizer;->freezeAppAsyncLSP(Lcom/android/server/am/ProcessRecord;J)V
-HPLcom/android/server/am/CachedAppOptimizer;->freezerExemptInstPkg()Z
-HPLcom/android/server/am/CachedAppOptimizer;->getPerProcessAggregatedCompactStat(Ljava/lang/String;)Lcom/android/server/am/CachedAppOptimizer$AggregatedProcessCompactionStats;
-HPLcom/android/server/am/CachedAppOptimizer;->getPerSourceAggregatedCompactStat(Lcom/android/server/am/CachedAppOptimizer$CompactSource;)Lcom/android/server/am/CachedAppOptimizer$AggregatedSourceCompactionStats;
-HPLcom/android/server/am/CachedAppOptimizer;->getUnfreezeReasonCodeFromOomAdjReason(I)I
-PLcom/android/server/am/CachedAppOptimizer;->init()V
-PLcom/android/server/am/CachedAppOptimizer;->isFreezerSupported()Z
-PLcom/android/server/am/CachedAppOptimizer;->killProcess(ILjava/lang/String;II)V
-PLcom/android/server/am/CachedAppOptimizer;->lambda$binderErrorLocked$3(Ljava/lang/Integer;Ljava/lang/Integer;)V
-PLcom/android/server/am/CachedAppOptimizer;->lambda$enableFreezer$0(ZLcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer;->lambda$killProcess$2(ILjava/lang/String;II)V
-PLcom/android/server/am/CachedAppOptimizer;->lambda$updateUseFreezer$1(Z)V
-HPLcom/android/server/am/CachedAppOptimizer;->onCleanupApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/CachedAppOptimizer;->onOomAdjustChanged(IILcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/CachedAppOptimizer;->onProcessFrozen(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CachedAppOptimizer;->onProcessFrozenCancelled(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/CachedAppOptimizer;->cancelCompactionForProcess(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/CachedAppOptimizer$CancelCompactReason;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/EnumMap;Ljava/util/EnumMap;
+HPLcom/android/server/am/CachedAppOptimizer;->compactApp(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/CachedAppOptimizer$CompactProfile;Lcom/android/server/am/CachedAppOptimizer$CompactSource;Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/EnumMap;Ljava/util/EnumMap;]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;
+PLcom/android/server/am/CachedAppOptimizer;->enableFreezer(Z)Z
+HPLcom/android/server/am/CachedAppOptimizer;->freezeAppAsyncInternalLSP(JLcom/android/server/am/ProcessRecord;Z)V
+PLcom/android/server/am/CachedAppOptimizer;->getUnfreezeReasonCodeFromOomAdjReason(I)I
+PLcom/android/server/am/CachedAppOptimizer;->onCleanupApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/CachedAppOptimizer;->onProcessFrozen(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/CachedAppOptimizer;->parseProcStateThrottle(Ljava/lang/String;)Z
 HPLcom/android/server/am/CachedAppOptimizer;->postUidFrozenMessage(IZ)V
-HPLcom/android/server/am/CachedAppOptimizer;->reportOneUidFrozenStateChanged(IZ)V
 HPLcom/android/server/am/CachedAppOptimizer;->reportProcessFreezableChangedLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/CachedAppOptimizer;->resolveCompactionProfile(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;)Lcom/android/server/am/CachedAppOptimizer$CompactProfile;
-HPLcom/android/server/am/CachedAppOptimizer;->traceAppFreeze(Ljava/lang/String;II)V
-HPLcom/android/server/am/CachedAppOptimizer;->unfreezeAppInternalLSP(Lcom/android/server/am/ProcessRecord;IZ)V
-HPLcom/android/server/am/CachedAppOptimizer;->unfreezeAppLSP(Lcom/android/server/am/ProcessRecord;I)V
-PLcom/android/server/am/CachedAppOptimizer;->unfreezeProcess(II)V
-PLcom/android/server/am/CachedAppOptimizer;->unfreezeTemporarily(Lcom/android/server/am/ProcessRecord;I)V
-HPLcom/android/server/am/CachedAppOptimizer;->unfreezeTemporarily(Lcom/android/server/am/ProcessRecord;IJ)V
-PLcom/android/server/am/CachedAppOptimizer;->updateCompactStatsdSampleRate()V
+HPLcom/android/server/am/CachedAppOptimizer;->traceAppFreeze(IILjava/lang/String;)V
+HPLcom/android/server/am/CachedAppOptimizer;->unfreezeAppInternalLSP(Lcom/android/server/am/ProcessRecord;IZ)Z
+PLcom/android/server/am/CachedAppOptimizer;->unfreezeAppLSP(Lcom/android/server/am/ProcessRecord;IZ)V
+HPLcom/android/server/am/CachedAppOptimizer;->unfreezeProcess(II)V
+HPLcom/android/server/am/CachedAppOptimizer;->unfreezeTemporarily(IJLcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/CachedAppOptimizer;->updateCompactionThrottles()V
 HPLcom/android/server/am/CachedAppOptimizer;->updateEarliestFreezableTime(Lcom/android/server/am/ProcessRecord;J)J
 PLcom/android/server/am/CachedAppOptimizer;->updateFreezerDebounceTimeout()V
 PLcom/android/server/am/CachedAppOptimizer;->updateFreezerExemptInstPkg()V
-PLcom/android/server/am/CachedAppOptimizer;->updateFreezerStatsdSampleRate()V
-PLcom/android/server/am/CachedAppOptimizer;->updateFullDeltaRssThrottle()V
-PLcom/android/server/am/CachedAppOptimizer;->updateFullRssThrottle()V
-PLcom/android/server/am/CachedAppOptimizer;->updateMaxOomAdjThrottle()V
-PLcom/android/server/am/CachedAppOptimizer;->updateMinOomAdjThrottle()V
 PLcom/android/server/am/CachedAppOptimizer;->updateProcStateThrottle()V
 PLcom/android/server/am/CachedAppOptimizer;->updateUseCompaction()V
 PLcom/android/server/am/CachedAppOptimizer;->updateUseFreezer()V
 HPLcom/android/server/am/CachedAppOptimizer;->useCompaction()Z
 HPLcom/android/server/am/CachedAppOptimizer;->useFreezer()Z
-PLcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda0;-><init>(Landroid/content/pm/ResolveInfo;)V
-HPLcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda1;-><init>(Landroid/content/Intent;Ljava/lang/String;III)V
 HSPLcom/android/server/am/ComponentAliasResolver$1;-><init>(Lcom/android/server/am/ComponentAliasResolver;)V
-HPLcom/android/server/am/ComponentAliasResolver$Resolution;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/am/ComponentAliasResolver$Resolution;->getAlias()Ljava/lang/Object;
-PLcom/android/server/am/ComponentAliasResolver$Resolution;->getTarget()Ljava/lang/Object;
-HPLcom/android/server/am/ComponentAliasResolver$Resolution;->isAlias()Z
 HSPLcom/android/server/am/ComponentAliasResolver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ComponentAliasResolver;->onSystemReady(ZLjava/lang/String;)V
-HPLcom/android/server/am/ComponentAliasResolver;->resolveComponentAlias(Ljava/util/function/Supplier;)Lcom/android/server/am/ComponentAliasResolver$Resolution;
-HPLcom/android/server/am/ComponentAliasResolver;->resolveReceiver(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;Ljava/lang/String;JIIZ)Lcom/android/server/am/ComponentAliasResolver$Resolution;
-HPLcom/android/server/am/ComponentAliasResolver;->resolveService(Landroid/content/Intent;Ljava/lang/String;III)Lcom/android/server/am/ComponentAliasResolver$Resolution;
-PLcom/android/server/am/ComponentAliasResolver;->update(ZLjava/lang/String;)V
+PLcom/android/server/am/ComponentAliasResolver;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ComponentAliasResolver;->onSystemReady(Ljava/lang/String;Z)V
+PLcom/android/server/am/ComponentAliasResolver;->update(Ljava/lang/String;Z)V
 PLcom/android/server/am/ConnectionRecord;-><clinit>()V
 HPLcom/android/server/am/ConnectionRecord;-><init>(Lcom/android/server/am/AppBindRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;Landroid/app/IServiceConnection;JILandroid/app/PendingIntent;ILjava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;)V
-PLcom/android/server/am/ConnectionRecord;->getFlags()J
+HPLcom/android/server/am/ConnectionRecord;->computeHostOomAdjLSP(Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;JLcom/android/server/am/ProcessRecord;ZI)V
 HPLcom/android/server/am/ConnectionRecord;->hasFlag(I)Z
-HPLcom/android/server/am/ConnectionRecord;->hasFlag(J)Z
+PLcom/android/server/am/ConnectionRecord;->hasFlag(J)Z
 HPLcom/android/server/am/ConnectionRecord;->notHasFlag(I)Z
 HPLcom/android/server/am/ConnectionRecord;->startAssociationIfNeeded()V
 HPLcom/android/server/am/ConnectionRecord;->stopAssociation()V
@@ -6169,1906 +5076,1178 @@
 HPLcom/android/server/am/ConnectionRecord;->trackProcState(II)V
 HPLcom/android/server/am/ContentProviderConnection;-><init>(Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;I)V
 HPLcom/android/server/am/ContentProviderConnection;->adjustCounts(II)V
-HPLcom/android/server/am/ContentProviderConnection;->decrementCount(Z)I
-HPLcom/android/server/am/ContentProviderConnection;->incrementCount(Z)I
-HPLcom/android/server/am/ContentProviderConnection;->initializeCount(Z)V
-PLcom/android/server/am/ContentProviderConnection;->stableCount()I
+PLcom/android/server/am/ContentProviderConnection;->computeHostOomAdjLSP(Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;JLcom/android/server/am/ProcessRecord;ZI)V
+PLcom/android/server/am/ContentProviderConnection;->decrementCount(Z)I
 HPLcom/android/server/am/ContentProviderConnection;->startAssociationIfNeeded()V
-HPLcom/android/server/am/ContentProviderConnection;->stopAssociation()V
-HPLcom/android/server/am/ContentProviderConnection;->totalRefCount()I
-HPLcom/android/server/am/ContentProviderConnection;->trackProcState(II)V
-HPLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ProcessRecord;Landroid/content/pm/ProviderInfo;)V
+PLcom/android/server/am/ContentProviderConnection;->stopAssociation()V
+PLcom/android/server/am/ContentProviderConnection;->toClientString(Ljava/lang/StringBuilder;)V
+PLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ProcessRecord;Landroid/content/pm/ProviderInfo;)V
 HPLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderConnection;ZZ)V
-HPLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderConnection;ZZ)V
+PLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ContentProviderHelper$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
 PLcom/android/server/am/ContentProviderHelper$DevelopmentSettingsObserver;-><init>(Lcom/android/server/am/ContentProviderHelper;)V
 PLcom/android/server/am/ContentProviderHelper$DevelopmentSettingsObserver;->onChange()V
-HPLcom/android/server/am/ContentProviderHelper;->$r8$lambda$7SqNWgaMV7-OpTBuN-1CMmNHiyU(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ProcessRecord;Landroid/content/pm/ProviderInfo;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/am/ContentProviderHelper;->$r8$lambda$WgT9vu5eZilG5Q2yFu6AlQnBbWA(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderConnection;ZZ)V
-PLcom/android/server/am/ContentProviderHelper;->$r8$lambda$Ybb6ASgJllmnwf29cCLpR_JR-Yg(Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
-PLcom/android/server/am/ContentProviderHelper;->-$$Nest$fgetmService(Lcom/android/server/am/ContentProviderHelper;)Lcom/android/server/am/ActivityManagerService;
+PLcom/android/server/am/ContentProviderHelper$DevelopmentSettingsObserver;->onChange(ZLandroid/net/Uri;I)V
 HSPLcom/android/server/am/ContentProviderHelper;-><clinit>()V
 HSPLcom/android/server/am/ContentProviderHelper;-><init>(Lcom/android/server/am/ActivityManagerService;Z)V
-HPLcom/android/server/am/ContentProviderHelper;->canAccessContentProviderFromSdkSandbox(Landroid/content/pm/ProviderInfo;I)Z
-HPLcom/android/server/am/ContentProviderHelper;->checkAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;)Z
 HPLcom/android/server/am/ContentProviderHelper;->checkAssociationAndPermissionLocked(Lcom/android/server/am/ProcessRecord;Landroid/content/pm/ProviderInfo;IIZLjava/lang/String;J)V
-HPLcom/android/server/am/ContentProviderHelper;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/am/ContentProviderHelper;->checkContentProviderAssociation(Lcom/android/server/am/ProcessRecord;ILandroid/content/pm/ProviderInfo;)Ljava/lang/String;
 HPLcom/android/server/am/ContentProviderHelper;->checkContentProviderPermission(Landroid/content/pm/ProviderInfo;IIIZLjava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/am/ContentProviderHelper;->checkTime(JLjava/lang/String;)V
-HPLcom/android/server/am/ContentProviderHelper;->cleanupAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;Z)Z
+PLcom/android/server/am/ContentProviderHelper;->checkTime(JLjava/lang/String;)V
+PLcom/android/server/am/ContentProviderHelper;->cleanupAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;Z)Z
 HPLcom/android/server/am/ContentProviderHelper;->decProviderCountLocked(Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;ZZZ)Z
+PLcom/android/server/am/ContentProviderHelper;->dumpProvidersLocked(Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
 HPLcom/android/server/am/ContentProviderHelper;->generateApplicationProvidersLocked(Lcom/android/server/am/ProcessRecord;)Ljava/util/List;
 HPLcom/android/server/am/ContentProviderHelper;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
 HPLcom/android/server/am/ContentProviderHelper;->getContentProviderImpl(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;ZI)Landroid/app/ContentProviderHolder;
-PLcom/android/server/am/ContentProviderHelper;->getProviderInfoLocked(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
-PLcom/android/server/am/ContentProviderHelper;->getProviderMap()Lcom/android/server/am/ProviderMap;
 HPLcom/android/server/am/ContentProviderHelper;->handleProviderRemoval(Lcom/android/server/am/ContentProviderConnection;ZZ)V
 HPLcom/android/server/am/ContentProviderHelper;->hasProviderConnectionLocked(Lcom/android/server/am/ProcessRecord;)Z
 HPLcom/android/server/am/ContentProviderHelper;->incProviderCountLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;ZZJLcom/android/server/am/ProcessList;I)Lcom/android/server/am/ContentProviderConnection;
-PLcom/android/server/am/ContentProviderHelper;->installEncryptionUnawareProviders(I)V
 PLcom/android/server/am/ContentProviderHelper;->installSystemProviders()V
-HPLcom/android/server/am/ContentProviderHelper;->isAuthorityRedirectedForCloneProfileCached(Ljava/lang/String;)Z
+HPLcom/android/server/am/ContentProviderHelper;->isAuthorityRedirectedForCloneProfileCached(Ljava/lang/String;)Z+]Ljava/util/Map;Ljava/util/HashMap;
 HPLcom/android/server/am/ContentProviderHelper;->isProcessAliveLocked(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/ContentProviderHelper;->isSingletonOrSystemUserOnly(Landroid/content/pm/ProviderInfo;)Z
-HPLcom/android/server/am/ContentProviderHelper;->lambda$checkContentProviderAssociation$4(Lcom/android/server/am/ProcessRecord;Landroid/content/pm/ProviderInfo;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/am/ContentProviderHelper;->lambda$decProviderCountLocked$3(Lcom/android/server/am/ContentProviderConnection;ZZ)V
-HPLcom/android/server/am/ContentProviderHelper;->lambda$installEncryptionUnawareProviders$2(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
 HPLcom/android/server/am/ContentProviderHelper;->maybeUpdateProviderUsageStatsLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/ContentProviderHelper;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
-HPLcom/android/server/am/ContentProviderHelper;->refContentProvider(Landroid/os/IBinder;II)Z
-HPLcom/android/server/am/ContentProviderHelper;->removeContentProvider(Landroid/os/IBinder;Z)V
 HPLcom/android/server/am/ContentProviderHelper;->removeDyingProviderLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ContentProviderRecord;Z)Z
 PLcom/android/server/am/ContentProviderHelper;->requestTargetProviderPermissionsReviewIfNeededLocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/am/ProcessRecord;ILandroid/content/Context;)Z
-PLcom/android/server/am/ContentProviderHelper;->unstableProviderDied(Landroid/os/IBinder;)V
-HPLcom/android/server/am/ContentProviderRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ProviderInfo;Landroid/content/pm/ApplicationInfo;Landroid/content/ComponentName;Z)V
+PLcom/android/server/am/ContentProviderRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ProviderInfo;Landroid/content/pm/ApplicationInfo;Landroid/content/ComponentName;Z)V
 HPLcom/android/server/am/ContentProviderRecord;->canRunHere(Lcom/android/server/am/ProcessRecord;)Z
+PLcom/android/server/am/ContentProviderRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/am/ContentProviderRecord;->getComponentName()Landroid/content/ComponentName;
 HPLcom/android/server/am/ContentProviderRecord;->hasExternalProcessHandles()Z
 HPLcom/android/server/am/ContentProviderRecord;->newHolder(Lcom/android/server/am/ContentProviderConnection;Z)Landroid/app/ContentProviderHolder;
-HPLcom/android/server/am/ContentProviderRecord;->onProviderPublishStatusLocked(Z)V
-HPLcom/android/server/am/ContentProviderRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ContentProviderRecord;->toString()Ljava/lang/String;
+PLcom/android/server/am/ContentProviderRecord;->onProviderPublishStatusLocked(Z)V
+PLcom/android/server/am/ContentProviderRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ContentProviderRecord;->toShortString()Ljava/lang/String;
+PLcom/android/server/am/ContentProviderRecord;->toString()Ljava/lang/String;
 PLcom/android/server/am/CoreSettingsObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/CoreSettingsObserver;)V
-PLcom/android/server/am/CoreSettingsObserver$DeviceConfigEntry;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)V
+PLcom/android/server/am/CoreSettingsObserver$DeviceConfigEntry;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)V
 PLcom/android/server/am/CoreSettingsObserver;-><clinit>()V
 PLcom/android/server/am/CoreSettingsObserver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/CoreSettingsObserver;->beginObserveCoreSettings()V
-HPLcom/android/server/am/CoreSettingsObserver;->getCoreSettingsLocked()Landroid/os/Bundle;
-PLcom/android/server/am/CoreSettingsObserver;->loadDeviceConfigContextEntries(Landroid/content/Context;)V
-HPLcom/android/server/am/CoreSettingsObserver;->populateSettings(Landroid/os/Bundle;Ljava/util/Map;)V
-HPLcom/android/server/am/CoreSettingsObserver;->populateSettingsFromDeviceConfig()V
+PLcom/android/server/am/CoreSettingsObserver;->onChange(Z)V
+PLcom/android/server/am/CoreSettingsObserver;->populateSettings(Landroid/os/Bundle;Ljava/util/Map;)V
 PLcom/android/server/am/CoreSettingsObserver;->sendCoreSettings()V
 PLcom/android/server/am/DataConnectionStats$PhoneStateListenerExecutor;-><init>(Landroid/os/Handler;)V
-PLcom/android/server/am/DataConnectionStats$PhoneStateListenerImpl;-><init>(Lcom/android/server/am/DataConnectionStats;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/am/DataConnectionStats$PhoneStateListenerImpl;-><init>(Lcom/android/server/am/DataConnectionStats;Lcom/android/server/am/DataConnectionStats$PhoneStateListenerExecutor;)V
 PLcom/android/server/am/DataConnectionStats;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/am/DataConnectionStats;->notePhoneDataConnectionState()V
+HPLcom/android/server/am/DataConnectionStats;->notePhoneDataConnectionState()V
 PLcom/android/server/am/DataConnectionStats;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/am/DataConnectionStats;->startMonitoring()V
-PLcom/android/server/am/DataConnectionStats;->updateSimState(Landroid/content/Intent;)V
-HSPLcom/android/server/am/DropboxRateLimiter$DefaultClock;-><init>()V
-HSPLcom/android/server/am/DropboxRateLimiter$DefaultClock;-><init>(Lcom/android/server/am/DropboxRateLimiter$DefaultClock-IA;)V
-PLcom/android/server/am/DropboxRateLimiter$DefaultClock;->uptimeMillis()J
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;-><init>(Lcom/android/server/am/DropboxRateLimiter;JI)V
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;->getAllowedEntries()I
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;->getBufferDuration()J
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;->getCount()I
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;->getStartTime()J
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;->incrementCount()V
-PLcom/android/server/am/DropboxRateLimiter$ErrorRecord;->isRepeated()Z
-PLcom/android/server/am/DropboxRateLimiter$RateLimitResult;-><init>(Lcom/android/server/am/DropboxRateLimiter;ZI)V
-PLcom/android/server/am/DropboxRateLimiter$RateLimitResult;->createHeader()Ljava/lang/String;
-PLcom/android/server/am/DropboxRateLimiter$RateLimitResult;->droppedCountSinceRateLimitActivated()I
-PLcom/android/server/am/DropboxRateLimiter$RateLimitResult;->shouldRateLimit()Z
-PLcom/android/server/am/DropboxRateLimiter;->-$$Nest$fgetmRateLimitAllowedEntries(Lcom/android/server/am/DropboxRateLimiter;)I
-PLcom/android/server/am/DropboxRateLimiter;->-$$Nest$fgetmRateLimitBufferDuration(Lcom/android/server/am/DropboxRateLimiter;)J
 HSPLcom/android/server/am/DropboxRateLimiter;-><init>()V
-HSPLcom/android/server/am/DropboxRateLimiter;-><init>(Lcom/android/server/am/DropboxRateLimiter$Clock;)V
-PLcom/android/server/am/DropboxRateLimiter;->errorKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/am/DropboxRateLimiter;->init()V
-PLcom/android/server/am/DropboxRateLimiter;->maybeRemoveExpiredRecords(J)V
-HPLcom/android/server/am/DropboxRateLimiter;->shouldRateLimit(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/am/DropboxRateLimiter$RateLimitResult;
-HPLcom/android/server/am/ErrorDialogController;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ErrorDialogController;->clearAllErrorDialogs()V
+PLcom/android/server/am/ErrorDialogController;-><init>(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ErrorDialogController;->clearAnrDialogs()V
-PLcom/android/server/am/ErrorDialogController;->clearCrashDialogs()V
-PLcom/android/server/am/ErrorDialogController;->clearCrashDialogs(Z)V
-PLcom/android/server/am/ErrorDialogController;->clearViolationDialogs()V
-PLcom/android/server/am/ErrorDialogController;->clearWaitingDialog()V
-PLcom/android/server/am/EventLogTags;->writeAmMemFactor(II)V
-HPLcom/android/server/am/EventLogTags;->writeAmProcBound(IILjava/lang/String;)V
-HPLcom/android/server/am/EventLogTags;->writeAmProcDied(IILjava/lang/String;II)V
-PLcom/android/server/am/EventLogTags;->writeAmUidActive(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUidIdle(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUidRunning(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUidStopped(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUserStateChanged(II)V
-HPLcom/android/server/am/EventLogTags;->writeAmWtf(IILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/EventLogTags;->writeBootProgressAmsReady(J)V
-PLcom/android/server/am/EventLogTags;->writeBootProgressEnableScreen(J)V
-PLcom/android/server/am/EventLogTags;->writeConfigurationChanged(I)V
-PLcom/android/server/am/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/am/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/am/FeatureFlagsImpl;->fgsBootCompleted()Z
-PLcom/android/server/am/FeatureFlagsImpl;->load_overrides_backstage_power()V
-HPLcom/android/server/am/FeatureFlagsImpl;->newFgsRestrictionLogic()Z
-HPLcom/android/server/am/FeatureFlagsImpl;->serviceBindingOomAdjPolicy()Z
+PLcom/android/server/am/EventLogTags;->writeAmMeminfo(JJJJJ)V
+PLcom/android/server/am/FeatureFlagsImpl;->init()V
 HSPLcom/android/server/am/FgsTempAllowList;-><init>()V
-HPLcom/android/server/am/FgsTempAllowList;->add(IJLjava/lang/Object;)V
+HPLcom/android/server/am/FgsTempAllowList;->add(IJLjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/FgsTempAllowList;->forEach(Lcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda23;)V
 HPLcom/android/server/am/FgsTempAllowList;->get(I)Landroid/util/Pair;
-HPLcom/android/server/am/FgsTempAllowList;->isAllowed(I)Z
-HPLcom/android/server/am/FgsTempAllowList;->removeUid(I)V
 PLcom/android/server/am/Flags;-><clinit>()V
+PLcom/android/server/am/Flags;->appStartInfoIsolatedProcess()Z
 PLcom/android/server/am/Flags;->fgsBootCompleted()Z
+PLcom/android/server/am/Flags;->fgsDisableSaw()Z
+PLcom/android/server/am/Flags;->followUpOomadjUpdates()Z
+PLcom/android/server/am/Flags;->migrateFullOomadjUpdates()Z
 HPLcom/android/server/am/Flags;->newFgsRestrictionLogic()Z
+HPLcom/android/server/am/Flags;->phantomProcessesFix()Z
+HPLcom/android/server/am/Flags;->pushGlobalStateToOomadjuster()Z
+PLcom/android/server/am/Flags;->resetOnForkEnabled()Z
 HPLcom/android/server/am/Flags;->serviceBindingOomAdjPolicy()Z
-PLcom/android/server/am/ForegroundServiceTypeLoggerModule$FgsApiRecord;-><init>(IILjava/lang/String;IJ)V
-HPLcom/android/server/am/ForegroundServiceTypeLoggerModule$UidState;-><init>()V
-PLcom/android/server/am/ForegroundServiceTypeLoggerModule$UidState;-><init>(Lcom/android/server/am/ForegroundServiceTypeLoggerModule$UidState-IA;)V
+HPLcom/android/server/am/Flags;->skipUnimportantConnections()Z
+PLcom/android/server/am/Flags;->unfreezeBindPolicyFix()Z
+HPLcom/android/server/am/Flags;->useCpuTimeCapability()Z
+PLcom/android/server/am/ForegroundServiceTypeLoggerModule$FgsApiRecord;-><init>(J)V
+PLcom/android/server/am/ForegroundServiceTypeLoggerModule$UidState;-><init>()V
 HSPLcom/android/server/am/ForegroundServiceTypeLoggerModule;-><init>()V
 PLcom/android/server/am/ForegroundServiceTypeLoggerModule;->convertFgsTypeToApiTypes(I)Landroid/util/IntArray;
-PLcom/android/server/am/ForegroundServiceTypeLoggerModule;->hasValidActiveFgs(II)Z
-HPLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceApiEventBegin(IIILjava/lang/String;)J
-PLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceApiEventEnd(III)J
-HPLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceStart(IILcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logFgsApiEvent(Lcom/android/server/am/ServiceRecord;IIIJ)V
+HPLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceApiEventBegin(II)V
+HPLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceApiEventEnd(II)V
+PLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceStart(ILcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/ForegroundServiceTypeLoggerModule;->logForegroundServiceStop(ILcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/Freezer;->freezeBinder(IIZ)I
+PLcom/android/server/am/Freezer;->getBinderFreezeInfo(I)I
+PLcom/android/server/am/Freezer;->isFreezerSupported()Z
+PLcom/android/server/am/HealthStatsBatteryStatsWriter;-><init>()V
+PLcom/android/server/am/HealthStatsBatteryStatsWriter;->addTimer(Landroid/os/health/HealthStatsWriter;ILandroid/os/BatteryStats$Timer;)V
+HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->addTimers(Landroid/os/health/HealthStatsWriter;ILjava/lang/String;Landroid/os/BatteryStats$Timer;)V
+PLcom/android/server/am/HostingRecord;-><init>(Landroid/content/ComponentName;)V
 HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;)V
-PLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;)V
-PLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;I)V
-HPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Z)V
 PLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/HostingRecord;->getAction()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->getDefiningPackageName()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->getDefiningProcessName()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->getDefiningUid()I
-HPLcom/android/server/am/HostingRecord;->getHostingTypeIdStatsd(Ljava/lang/String;)I
-PLcom/android/server/am/HostingRecord;->getName()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->getTriggerType()Ljava/lang/String;
-HPLcom/android/server/am/HostingRecord;->getTriggerTypeForStatsd(Ljava/lang/String;)I
-PLcom/android/server/am/HostingRecord;->getType()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->isTopApp()Z
-HPLcom/android/server/am/HostingRecord;->usesAppZygote()Z
-HPLcom/android/server/am/HostingRecord;->usesWebviewZygote()Z
+PLcom/android/server/am/HostingRecord;->getHostingTypeIdStatsd(Ljava/lang/String;)I
 HSPLcom/android/server/am/InstrumentationReporter;-><init>()V
 HPLcom/android/server/am/IntentBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent$FilterComparison;)V
 PLcom/android/server/am/IntentBindRecord;->collectFlags()J
-PLcom/android/server/am/IntentBindRecord;->dumpInService(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/am/LmkdConnection$1;-><init>(Lcom/android/server/am/LmkdConnection;)V
 PLcom/android/server/am/LmkdConnection$1;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I
-PLcom/android/server/am/LmkdConnection;->-$$Nest$mfileDescriptorEventHandler(Lcom/android/server/am/LmkdConnection;Ljava/io/FileDescriptor;I)I
-HSPLcom/android/server/am/LmkdConnection;-><init>(Landroid/os/MessageQueue;Lcom/android/server/am/LmkdConnection$LmkdConnectionListener;)V
-PLcom/android/server/am/LmkdConnection;->connect()Z
-HPLcom/android/server/am/LmkdConnection;->exchange(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z
-PLcom/android/server/am/LmkdConnection;->fileDescriptorEventHandler(Ljava/io/FileDescriptor;I)I
-HPLcom/android/server/am/LmkdConnection;->isConnected()Z
+HSPLcom/android/server/am/LmkdConnection;-><init>(Landroid/os/MessageQueue;Lcom/android/server/am/ProcessList$1;)V
 PLcom/android/server/am/LmkdConnection;->openSocket()Landroid/net/LocalSocket;
-HPLcom/android/server/am/LmkdConnection;->processIncomingData()V
-HPLcom/android/server/am/LmkdConnection;->read(Ljava/nio/ByteBuffer;)I
-PLcom/android/server/am/LmkdConnection;->waitForConnection(J)Z
-HPLcom/android/server/am/LmkdConnection;->write(Ljava/nio/ByteBuffer;)Z
-HPLcom/android/server/am/LmkdStatsReporter;->logKillOccurred(Ljava/io/DataInputStream;II)V
-PLcom/android/server/am/LmkdStatsReporter;->mapKillReason(I)I
+PLcom/android/server/am/LmkdConnection;->processIncomingData()V
+HPLcom/android/server/am/LmkdConnection;->write(Ljava/nio/ByteBuffer;)Z+]Ljava/io/OutputStream;Landroid/net/LocalSocketImpl$SocketOutputStream;
+PLcom/android/server/am/LmkdStatsReporter;->logKillOccurred(Ljava/io/DataInputStream;II)V
 HSPLcom/android/server/am/LowMemDetector$LowMemThread;-><init>(Lcom/android/server/am/LowMemDetector;)V
 HSPLcom/android/server/am/LowMemDetector$LowMemThread;->run()V
-PLcom/android/server/am/LowMemDetector;->-$$Nest$fgetmPressureStateLock(Lcom/android/server/am/LowMemDetector;)Ljava/lang/Object;
-PLcom/android/server/am/LowMemDetector;->-$$Nest$fputmPressureState(Lcom/android/server/am/LowMemDetector;I)V
 HSPLcom/android/server/am/LowMemDetector;->-$$Nest$mwaitForPressure(Lcom/android/server/am/LowMemDetector;)I
-HSPLcom/android/server/am/LowMemDetector;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HSPLcom/android/server/am/LowMemDetector;->getMemFactor()I
-HSPLcom/android/server/am/LowMemDetector;->isAvailable()Z
-PLcom/android/server/am/MemoryStatUtil$MemoryStat;-><init>()V
+HSPLcom/android/server/am/LowMemDetector;-><init>()V
 PLcom/android/server/am/MemoryStatUtil;-><clinit>()V
-PLcom/android/server/am/MemoryStatUtil;->hasMemcg()Z
 PLcom/android/server/am/MemoryStatUtil;->parseMemoryStatFromProcfs(Ljava/lang/String;)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
-PLcom/android/server/am/MemoryStatUtil;->readFileContents(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/am/MemoryStatUtil;->readMemoryStatFromFilesystem(II)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
-PLcom/android/server/am/MemoryStatUtil;->readMemoryStatFromProcfs(I)Lcom/android/server/am/MemoryStatUtil$MemoryStat;
 PLcom/android/server/am/NativeCrashListener;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/NativeCrashListener;->run()V
-HSPLcom/android/server/am/OomAdjProfiler$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/am/OomAdjProfiler$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLcom/android/server/am/OomAdjProfiler$CpuTimes;-><init>(Lcom/android/server/am/OomAdjProfiler;)V
-HSPLcom/android/server/am/OomAdjProfiler$CpuTimes;-><init>(Lcom/android/server/am/OomAdjProfiler;Lcom/android/server/am/OomAdjProfiler$CpuTimes-IA;)V
-HSPLcom/android/server/am/OomAdjProfiler$CpuTimes;->addCpuTimeMs(JZZ)V
-HSPLcom/android/server/am/OomAdjProfiler$CpuTimes;->addCpuTimeUs(J)V
-HSPLcom/android/server/am/OomAdjProfiler$CpuTimes;->addCpuTimeUs(JZZ)V
-HSPLcom/android/server/am/OomAdjProfiler;->$r8$lambda$c4Q2P5csnq29GPhTB7rlnNqRQWs(Lcom/android/server/am/OomAdjProfiler;ZZZ)V
-HSPLcom/android/server/am/OomAdjProfiler;->-$$Nest$fgetmOnBattery(Lcom/android/server/am/OomAdjProfiler;)Z
-HSPLcom/android/server/am/OomAdjProfiler;->-$$Nest$fgetmScreenOff(Lcom/android/server/am/OomAdjProfiler;)Z
-HSPLcom/android/server/am/OomAdjProfiler;-><init>()V
-HSPLcom/android/server/am/OomAdjProfiler;->batteryPowerChanged(Z)V
-HSPLcom/android/server/am/OomAdjProfiler;->oomAdjEnded()V
-HSPLcom/android/server/am/OomAdjProfiler;->oomAdjStarted()V
-HSPLcom/android/server/am/OomAdjProfiler;->scheduleSystemServerCpuTimeUpdate()V
-HSPLcom/android/server/am/OomAdjProfiler;->updateSystemServerCpuTime(ZZZ)V
-HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/OomAdjuster;)V
-HPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/OomAdjuster;)V
+PLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda1;->handleMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;-><init>(Lcom/android/server/am/OomAdjuster;)V
-HPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->initialize(Lcom/android/server/am/ProcessRecord;IZZIIIII)V
-HPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onOtherActivity()V
-HPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onPausedActivity()V
-PLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onStoppingActivity(Z)V
-HPLcom/android/server/am/OomAdjuster;->$r8$lambda$WdlWDnyVtMFVApq1sSUGD1QBVaM(Landroid/os/Message;)Z
-HSPLcom/android/server/am/OomAdjuster;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessList;Lcom/android/server/am/ActiveUids;)V
-HSPLcom/android/server/am/OomAdjuster;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessList;Lcom/android/server/am/ActiveUids;Lcom/android/server/ServiceThread;)V
-HPLcom/android/server/am/OomAdjuster;->applyOomAdjLSP(Lcom/android/server/am/ProcessRecord;ZJJI)Z
-HSPLcom/android/server/am/OomAdjuster;->assignCachedAdjIfNecessary(Ljava/util/ArrayList;)V
-HSPLcom/android/server/am/OomAdjuster;->checkAndEnqueueOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/OomAdjuster;->collectReachableProcessesLocked(Landroid/util/ArraySet;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;)Z
-HPLcom/android/server/am/OomAdjuster;->computeOomAdjLSP(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJZZIZ)Z
+HSPLcom/android/server/am/OomAdjuster$Injector;-><init>()V
+PLcom/android/server/am/OomAdjuster$Injector;->setThreadPriority(II)V
+HSPLcom/android/server/am/OomAdjuster;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessList;Lcom/android/server/am/ActiveUids;Lcom/android/server/ServiceThread;Lcom/android/server/am/ProcessStateController$GlobalState;Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/OomAdjuster$Injector;)V
+HSPLcom/android/server/am/OomAdjuster;->applyLruAdjust(Ljava/util/ArrayList;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjuster;->applyOomAdjLSP(Lcom/android/server/am/ProcessRecord;ZJJIZ)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjuster;->collectReachableProcessesLocked(Landroid/util/ArraySet;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjuster;->computeOomAdjLSP(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJZZIZ)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjusterModernImpl;
 HPLcom/android/server/am/OomAdjuster;->computeProviderHostOomAdjLSP(Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;JLcom/android/server/am/ProcessRecord;ZZZIIZZ)Z
 HPLcom/android/server/am/OomAdjuster;->computeServiceHostOomAdjLSP(Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;JLcom/android/server/am/ProcessRecord;ZZZIIZZ)Z
-HSPLcom/android/server/am/OomAdjuster;->createAdjusterThread()Lcom/android/server/ServiceThread;
-HPLcom/android/server/am/OomAdjuster;->enqueueOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/OomAdjuster;->getBfslCapabilityFromClient(Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/OomAdjuster;->getDefaultCapability(Lcom/android/server/am/ProcessRecord;I)I
-HPLcom/android/server/am/OomAdjuster;->getInitialAdj(Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/OomAdjuster;->getInitialCapability(Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/OomAdjuster;->getInitialIsCurBoundByNonBgRestrictedApp(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/OomAdjuster;->getInitialProcState(Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/OomAdjuster;->idleUidsLocked()V
-PLcom/android/server/am/OomAdjuster;->initSettings()V
-HPLcom/android/server/am/OomAdjuster;->isChangeEnabled(ILandroid/content/pm/ApplicationInfo;Z)Z
-PLcom/android/server/am/OomAdjuster;->isScreenOnOrAnimatingLocked(Lcom/android/server/am/ProcessStateRecord;)Z
-HPLcom/android/server/am/OomAdjuster;->lambda$new$0(Landroid/os/Message;)Z
-HPLcom/android/server/am/OomAdjuster;->maybeUpdateLastTopTime(Lcom/android/server/am/ProcessStateRecord;J)V
-HPLcom/android/server/am/OomAdjuster;->maybeUpdateUsageStatsLSP(Lcom/android/server/am/ProcessRecord;J)V
-PLcom/android/server/am/OomAdjuster;->onProcessEndLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/OomAdjuster;->onProcessOomAdjChanged(Lcom/android/server/am/ProcessRecord;I)V
-PLcom/android/server/am/OomAdjuster;->onProcessStateChanged(Lcom/android/server/am/ProcessRecord;I)V
+PLcom/android/server/am/OomAdjuster;->dumpCacheOomRankerSettings(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/OomAdjuster;->dumpCachedAppOptimizerSettings(Ljava/io/PrintWriter;)V
+HPLcom/android/server/am/OomAdjuster;->enqueuePendingTopAppIfNecessaryLSP()I+]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;
+HPLcom/android/server/am/OomAdjuster;->evaluateConnectionPrelude(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;)Z
+HPLcom/android/server/am/OomAdjuster;->evaluateProviderConnectionAdd(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;)Z
+HPLcom/android/server/am/OomAdjuster;->getDefaultCapability(ILcom/android/server/am/ProcessRecord;)I
+HPLcom/android/server/am/OomAdjuster;->idleUidsLocked()V+]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/am/OomAdjuster;->isDeviceFullyAwake()Z
+HPLcom/android/server/am/OomAdjuster;->maybeSetProcessFollowUpUpdateLocked(JJLcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/OomAdjuster;->maybeUpdateUsageStatsLSP(Lcom/android/server/am/ProcessRecord;J)V+]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;
 HSPLcom/android/server/am/OomAdjuster;->oomAdjReasonToString(I)Ljava/lang/String;
-HSPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjLSP(I)V
-HPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjLSP(Lcom/android/server/am/ProcessRecord;I)Z
-HPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjLSP(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;JI)Z
-HPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjPendingTargetsLocked(I)V
-HSPLcom/android/server/am/OomAdjuster;->postUpdateOomAdjInnerLSP(ILcom/android/server/am/ActiveUids;JJJ)V
-HPLcom/android/server/am/OomAdjuster;->removeOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;Z)V
-HSPLcom/android/server/am/OomAdjuster;->resetUidRecordsLsp(Lcom/android/server/am/ActiveUids;)V
-HPLcom/android/server/am/OomAdjuster;->setAppIdTempAllowlistStateLSP(IZ)V
+HSPLcom/android/server/am/OomAdjuster;->postUpdateOomAdjInnerLSP(ILcom/android/server/am/ActiveUids;JJJZ)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjuster;->scheduleFollowUpOomAdjusterUpdateLocked(JJ)V
 HPLcom/android/server/am/OomAdjuster;->setAttachingProcessStatesLSP(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/OomAdjuster;->setIntermediateAdjLSP(Lcom/android/server/am/ProcessRecord;III)I
-HPLcom/android/server/am/OomAdjuster;->setIntermediateProcStateLSP(Lcom/android/server/am/ProcessRecord;II)V
+HPLcom/android/server/am/OomAdjuster;->setIntermediateAdjLSP(Lcom/android/server/am/ProcessRecord;II)I
 HPLcom/android/server/am/OomAdjuster;->setIntermediateSchedGroupLSP(Lcom/android/server/am/ProcessStateRecord;I)V
-HPLcom/android/server/am/OomAdjuster;->setUidTempAllowlistStateLSP(IZ)V
-HSPLcom/android/server/am/OomAdjuster;->shouldKillExcessiveProcesses(J)Z
-HPLcom/android/server/am/OomAdjuster;->shouldSkipDueToCycle(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessStateRecord;IIZ)Z
-HPLcom/android/server/am/OomAdjuster;->unfreezeTemporarily(Lcom/android/server/am/ProcessRecord;I)V
-HSPLcom/android/server/am/OomAdjuster;->updateAndTrimProcessLSP(JJJLcom/android/server/am/ActiveUids;I)Z
-HPLcom/android/server/am/OomAdjuster;->updateAppFreezeStateLSP(Lcom/android/server/am/ProcessRecord;IZ)V
-HPLcom/android/server/am/OomAdjuster;->updateAppUidRecIfNecessaryLSP(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/OomAdjuster;->updateAppUidRecLSP(Lcom/android/server/am/ProcessRecord;)V
-HSPLcom/android/server/am/OomAdjuster;->updateOomAdjInnerLSP(ILcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;ZZ)V
+PLcom/android/server/am/OomAdjuster;->setProcessGroup(IILjava/lang/String;)V
+HPLcom/android/server/am/OomAdjuster;->unfreezeTemporarily(ILcom/android/server/am/ProcessRecord;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjuster;->updateAppFreezeStateLSP(Lcom/android/server/am/ProcessRecord;IZI)V
+HPLcom/android/server/am/OomAdjuster;->updateAppUidRecLSP(Lcom/android/server/am/ProcessRecord;)V+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;
 HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLSP(I)V
-HPLcom/android/server/am/OomAdjuster;->updateOomAdjLSP(Lcom/android/server/am/ProcessRecord;I)Z
-HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(I)V
-HPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;I)Z
-HSPLcom/android/server/am/OomAdjuster;->updateOomAdjPendingTargetsLocked(I)V
-HSPLcom/android/server/am/OomAdjuster;->updateUidsLSP(Lcom/android/server/am/ActiveUids;J)V
+HSPLcom/android/server/am/OomAdjuster;->updateOomAdjPendingTargetsLocked(I)V+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjusterModernImpl;
+HSPLcom/android/server/am/OomAdjuster;->updateUidsLSP(Lcom/android/server/am/ActiveUids;J)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HSPLcom/android/server/am/OomAdjusterDebugLogger;-><init>(Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/ActivityManagerConstants;)V
+HPLcom/android/server/am/OomAdjusterDebugLogger;->shouldLog(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+HSPLcom/android/server/am/OomAdjusterModernImpl$ComputeConnectionIgnoringReachableClientsConsumer;-><init>(Lcom/android/server/am/OomAdjusterModernImpl;)V
+HPLcom/android/server/am/OomAdjusterModernImpl$ComputeConnectionIgnoringReachableClientsConsumer;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Lcom/android/server/am/OomAdjusterModernImpl$Connection;Lcom/android/server/am/ConnectionRecord;,Lcom/android/server/am/ContentProviderConnection;
+HSPLcom/android/server/am/OomAdjusterModernImpl$ComputeConnectionsConsumer;-><init>(Lcom/android/server/am/OomAdjusterModernImpl;)V
+HPLcom/android/server/am/OomAdjusterModernImpl$ComputeConnectionsConsumer;->accept(Lcom/android/server/am/OomAdjusterModernImpl$OomAdjusterArgs;)V
+HSPLcom/android/server/am/OomAdjusterModernImpl$ComputeHostConsumer;-><init>(Lcom/android/server/am/OomAdjusterModernImpl;)V
+HPLcom/android/server/am/OomAdjusterModernImpl$ComputeHostConsumer;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Lcom/android/server/am/OomAdjusterModernImpl$Connection;Lcom/android/server/am/ConnectionRecord;,Lcom/android/server/am/ContentProviderConnection;
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNode;-><init>(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNode;->unlink()V
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$LinkedProcessRecordList;-><init>(Ljava/util/function/ToIntFunction;)V
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$LinkedProcessRecordList;->reset()V
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes;-><init>(Lcom/android/server/am/OomAdjusterModernImpl;II)V
+HPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes;->offer(Lcom/android/server/am/ProcessRecord;)V+]Ljava/util/function/ToIntFunction;Lcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes$$ExternalSyntheticLambda0;
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes;->poll()Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/OomAdjusterModernImpl$ProcessRecordNodes;->reset()V
+HPLcom/android/server/am/OomAdjusterModernImpl$ReachableCollectingConsumer;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjusterModernImpl;->-$$Nest$smunimportantConnectionLSP(Lcom/android/server/am/OomAdjusterModernImpl$Connection;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;)Z
+HSPLcom/android/server/am/OomAdjusterModernImpl;-><clinit>()V
+HSPLcom/android/server/am/OomAdjusterModernImpl;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessList;Lcom/android/server/am/ActiveUids;Lcom/android/server/ServiceThread;Lcom/android/server/am/ProcessStateController$GlobalState;Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/OomAdjuster$Injector;)V
+HSPLcom/android/server/am/OomAdjusterModernImpl;->computeConnectionsLSP()V
+HPLcom/android/server/am/OomAdjusterModernImpl;->computeOomAdjIgnoringReachablesLSP(Lcom/android/server/am/OomAdjusterModernImpl$OomAdjusterArgs;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjusterModernImpl;->forEachConnectionLSP(Lcom/android/server/am/ProcessRecord;Ljava/util/function/BiConsumer;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/BiConsumer;Lcom/android/server/am/OomAdjusterModernImpl$ComputeHostConsumer;,Lcom/android/server/am/OomAdjusterModernImpl$ReachableCollectingConsumer;
+PLcom/android/server/am/OomAdjusterModernImpl;->getInitialAdj(Lcom/android/server/am/ProcessRecord;)I
+PLcom/android/server/am/OomAdjusterModernImpl;->getInitialCapability(Lcom/android/server/am/ProcessRecord;)I
+PLcom/android/server/am/OomAdjusterModernImpl;->getInitialIsCurBoundByNonBgRestrictedApp(Lcom/android/server/am/ProcessRecord;)Z
+PLcom/android/server/am/OomAdjusterModernImpl;->getInitialProcState(Lcom/android/server/am/ProcessRecord;)I
+PLcom/android/server/am/OomAdjusterModernImpl;->onProcessEndLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/OomAdjusterModernImpl;->onProcessOomAdjChanged(ILcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/OomAdjusterModernImpl;->onProcessStateChanged(ILcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/OomAdjusterModernImpl;->partialUpdateLSP(ILandroid/util/ArraySet;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HSPLcom/android/server/am/OomAdjusterModernImpl;->performUpdateOomAdjLSP(I)V+]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/OomAdjusterModernImpl;->performUpdateOomAdjLSP(ILcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/OomAdjusterModernImpl;->performUpdateOomAdjPendingTargetsLocked(I)V
 HSPLcom/android/server/am/OomConnection$OomConnectionThread;-><init>(Lcom/android/server/am/OomConnection;)V
-HSPLcom/android/server/am/OomConnection$OomConnectionThread;-><init>(Lcom/android/server/am/OomConnection;Lcom/android/server/am/OomConnection$OomConnectionThread-IA;)V
 HSPLcom/android/server/am/OomConnection$OomConnectionThread;->run()V
 HSPLcom/android/server/am/OomConnection;->-$$Nest$smwaitOom()[Landroid/os/OomKillRecord;
-HSPLcom/android/server/am/OomConnection;-><init>(Lcom/android/server/am/OomConnection$OomConnectionListener;)V
-HPLcom/android/server/am/PackageList;-><init>(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/OomConnection;-><init>(Lcom/android/server/am/ProcessList$1;)V
+PLcom/android/server/am/PackageList;-><init>(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/PackageList;->clear()V
 HPLcom/android/server/am/PackageList;->containsKey(Ljava/lang/Object;)Z
-HPLcom/android/server/am/PackageList;->forEachPackage(Ljava/util/function/BiConsumer;)V
-HPLcom/android/server/am/PackageList;->forEachPackage(Ljava/util/function/Consumer;)V
-HPLcom/android/server/am/PackageList;->forEachPackageProcessStats(Ljava/util/function/Consumer;)V
-HPLcom/android/server/am/PackageList;->get(Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
-HPLcom/android/server/am/PackageList;->getPackageList()[Ljava/lang/String;
-PLcom/android/server/am/PackageList;->getPackageListLocked()Landroid/util/ArrayMap;
-HPLcom/android/server/am/PackageList;->put(Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
+PLcom/android/server/am/PackageList;->forEachPackage(Ljava/util/function/Consumer;)V
+PLcom/android/server/am/PackageList;->forEachPackageProcessStats(Ljava/util/function/Consumer;)V
+PLcom/android/server/am/PackageList;->get(Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
+PLcom/android/server/am/PackageList;->put(Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
 HPLcom/android/server/am/PackageList;->searchEachPackage(Ljava/util/function/Function;)Ljava/lang/Object;
-HPLcom/android/server/am/PackageList;->size()I
+PLcom/android/server/am/PackageList;->size()I
 HSPLcom/android/server/am/PendingIntentController;-><init>(Landroid/os/Looper;Lcom/android/server/am/UserController;Lcom/android/server/am/ActivityManagerConstants;)V
-HPLcom/android/server/am/PendingIntentController;->cancelIntentSender(Landroid/content/IIntentSender;)V
-HPLcom/android/server/am/PendingIntentController;->cancelIntentSender(Lcom/android/server/am/PendingIntentRecord;Z)V
-HPLcom/android/server/am/PendingIntentController;->decrementUidStatLocked(Lcom/android/server/am/PendingIntentRecord;)V
-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;->incrementUidStatLocked(Lcom/android/server/am/PendingIntentRecord;)V
-HPLcom/android/server/am/PendingIntentController;->makeIntentSenderCanceled(Lcom/android/server/am/PendingIntentRecord;)V
-HSPLcom/android/server/am/PendingIntentController;->onActivityManagerInternalAdded()V
-PLcom/android/server/am/PendingIntentController;->removePendingIntentsForPackage(Ljava/lang/String;IIZ)Z
-PLcom/android/server/am/PendingIntentController;->setPendingIntentAllowlistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;JIILjava/lang/String;)V
-PLcom/android/server/am/PendingIntentRecord$$ExternalSyntheticLambda0;-><init>()V
+HPLcom/android/server/am/PendingIntentController;->cancelIntentSender(Lcom/android/server/am/PendingIntentRecord;ZI)V+]Ljava/util/HashMap;Ljava/util/HashMap;
+HPLcom/android/server/am/PendingIntentController;->decrementUidStatLocked(Lcom/android/server/am/PendingIntentRecord;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/am/PendingIntentController;->dumpPendingIntents(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/am/PendingIntentController;->getIntentSender(IIIIILandroid/os/Bundle;Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;)Lcom/android/server/am/PendingIntentRecord;+]Landroid/content/Intent;Landroid/content/Intent;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/HashMap;Ljava/util/HashMap;
+HPLcom/android/server/am/PendingIntentController;->incrementUidStatLocked(Lcom/android/server/am/PendingIntentRecord;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/am/PendingIntentController;->makeIntentSenderCanceled(Lcom/android/server/am/PendingIntentRecord;I)V
 PLcom/android/server/am/PendingIntentRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)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
-HPLcom/android/server/am/PendingIntentRecord$Key;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/am/PendingIntentRecord$Key;->hashCode()I
-PLcom/android/server/am/PendingIntentRecord$TempAllowListDuration;-><init>(JIILjava/lang/String;)V
-PLcom/android/server/am/PendingIntentRecord;->$r8$lambda$n7a96RwVvewtpifhQ2aQt1qSbXo(Lcom/android/server/am/PendingIntentRecord;)V
+PLcom/android/server/am/PendingIntentRecord$Key$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/StringBuilder;)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+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/PendingIntentRecord$Key;->equals(Ljava/lang/Object;)Z+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/am/PendingIntentRecord$Key;->hashCode()I
+PLcom/android/server/am/PendingIntentRecord$Key;->typeName()Ljava/lang/String;
 HPLcom/android/server/am/PendingIntentRecord;-><init>(Lcom/android/server/am/PendingIntentController;Lcom/android/server/am/PendingIntentRecord$Key;I)V
-PLcom/android/server/am/PendingIntentRecord;->completeFinalize()V
-HPLcom/android/server/am/PendingIntentRecord;->detachCancelListenersLocked()Landroid/os/RemoteCallbackList;
-HPLcom/android/server/am/PendingIntentRecord;->finalize()V
-HPLcom/android/server/am/PendingIntentRecord;->getBackgroundStartPrivilegesForActivitySender(Landroid/util/ArraySet;Landroid/os/IBinder;Landroid/os/Bundle;I)Landroid/app/BackgroundStartPrivileges;
+PLcom/android/server/am/PendingIntentRecord;->cancelReasonToString(I)Ljava/lang/String;
+PLcom/android/server/am/PendingIntentRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/PendingIntentRecord;->finalize()V
+PLcom/android/server/am/PendingIntentRecord;->getBackgroundStartPrivilegesForActivitySender(Landroid/util/ArraySet;Landroid/os/IBinder;Landroid/os/Bundle;I)Landroid/app/BackgroundStartPrivileges;
+PLcom/android/server/am/PendingIntentRecord;->getDefaultBackgroundStartPrivileges(ILjava/lang/String;)Landroid/app/BackgroundStartPrivileges;
 HPLcom/android/server/am/PendingIntentRecord;->sendInner(Landroid/app/IApplicationThread;ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I
-PLcom/android/server/am/PendingIntentRecord;->sendWithResult(Landroid/app/IApplicationThread;ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
-PLcom/android/server/am/PendingIntentRecord;->setAllowBgActivityStarts(Landroid/os/IBinder;I)V
-PLcom/android/server/am/PendingIntentRecord;->setAllowlistDurationLocked(Landroid/os/IBinder;JIILjava/lang/String;)V
+HPLcom/android/server/am/PendingIntentRecord;->setAllowlistDurationLocked(Landroid/os/IBinder;IILjava/lang/String;J)V
+PLcom/android/server/am/PendingIntentRecord;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/PendingStartActivityUids;-><init>()V
-PLcom/android/server/am/PendingStartActivityUids;->add(II)Z
-HPLcom/android/server/am/PendingStartActivityUids;->delete(IJ)V
-HPLcom/android/server/am/PendingStartActivityUids;->isPendingTopUid(I)Z
-HSPLcom/android/server/am/PendingTempAllowlists;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/PendingTempAllowlists;->indexOfKey(I)I
-HPLcom/android/server/am/PendingTempAllowlists;->put(ILcom/android/server/am/ActivityManagerService$PendingTempAllowlist;)V
-HPLcom/android/server/am/PendingTempAllowlists;->removeAt(I)V
-HPLcom/android/server/am/PendingTempAllowlists;->size()I
-HPLcom/android/server/am/PendingTempAllowlists;->valueAt(I)Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist;
+HSPLcom/android/server/am/PendingTempAllowlists;-><init>()V
+PLcom/android/server/am/PendingTempAllowlists;->size()I
+PLcom/android/server/am/PendingTempAllowlists;->valueAt(I)Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist;
+PLcom/android/server/am/PhantomProcessList$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/PhantomProcessList;)V
+PLcom/android/server/am/PhantomProcessList$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/PhantomProcessList$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/PhantomProcessList;)V
+PLcom/android/server/am/PhantomProcessList$$ExternalSyntheticLambda1;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I
 HSPLcom/android/server/am/PhantomProcessList$Injector;-><init>()V
-HPLcom/android/server/am/PhantomProcessList$Injector;->openCgroupProcs(Ljava/lang/String;)Ljava/io/InputStream;
-PLcom/android/server/am/PhantomProcessList$Injector;->readCgroupProcs(Ljava/io/InputStream;[BII)I
 HSPLcom/android/server/am/PhantomProcessList;-><clinit>()V
 HSPLcom/android/server/am/PhantomProcessList;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/PhantomProcessList;->addChildPidLocked(Lcom/android/server/am/ProcessRecord;II)V
-PLcom/android/server/am/PhantomProcessList;->forEachPhantomProcessOfApp(Lcom/android/server/am/ProcessRecord;Ljava/util/function/Function;)V
-HPLcom/android/server/am/PhantomProcessList;->getCgroupFilePath(II)Ljava/lang/String;
-PLcom/android/server/am/PhantomProcessList;->getOrCreatePhantomProcessIfNeededLocked(Ljava/lang/String;IIZ)Lcom/android/server/am/PhantomProcessRecord;
-PLcom/android/server/am/PhantomProcessList;->isAppProcess(I)Z
-HPLcom/android/server/am/PhantomProcessList;->lookForPhantomProcessesLocked()V
-HPLcom/android/server/am/PhantomProcessList;->lookForPhantomProcessesLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/PhantomProcessList;->onAppDied(I)V
-HSPLcom/android/server/am/PhantomProcessList;->probeCgroupVersion()V
+PLcom/android/server/am/PhantomProcessList;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/PhantomProcessList;->dumpPhantomeProcessLocked(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseArray;)V
+PLcom/android/server/am/PhantomProcessList;->getCgroupFilePath(II)Ljava/lang/String;
+HPLcom/android/server/am/PhantomProcessList;->getOrCreatePhantomProcessIfNeededLocked(ILjava/lang/String;IZ)Lcom/android/server/am/PhantomProcessRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/PhantomProcessList;->lookForPhantomProcessesLocked()V
+HPLcom/android/server/am/PhantomProcessList;->lookForPhantomProcessesLocked(Lcom/android/server/am/ProcessRecord;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/io/InputStream;Ljava/io/FileInputStream;
+PLcom/android/server/am/PhantomProcessList;->onPhantomProcessKilledLocked(Lcom/android/server/am/PhantomProcessRecord;)V
 PLcom/android/server/am/PhantomProcessList;->pruneStaleProcessesLocked()V
-PLcom/android/server/am/PhantomProcessList;->updateProcessCpuStatesLocked(Lcom/android/internal/os/ProcessCpuTracker;)V
+HPLcom/android/server/am/PhantomProcessList;->updateProcessCpuStatesLocked(Lcom/android/internal/os/ProcessCpuTracker;)V
+PLcom/android/server/am/PhantomProcessRecord$1;-><init>(Lcom/android/server/am/PhantomProcessRecord;)V
+PLcom/android/server/am/PhantomProcessRecord;-><clinit>()V
+PLcom/android/server/am/PhantomProcessRecord;-><init>(Ljava/lang/String;IIILcom/android/server/am/ActivityManagerService;Lcom/android/server/am/PhantomProcessList$$ExternalSyntheticLambda0;)V
+PLcom/android/server/am/PhantomProcessRecord;->onProcDied(Z)V
+PLcom/android/server/am/PhantomProcessRecord;->toString()Ljava/lang/String;
 PLcom/android/server/am/PlatformCompatCache$CacheItem;-><init>(Lcom/android/server/compat/PlatformCompat;J)V
 HPLcom/android/server/am/PlatformCompatCache$CacheItem;->fetchLocked(Landroid/content/pm/ApplicationInfo;I)Z
-HPLcom/android/server/am/PlatformCompatCache$CacheItem;->invalidate(Landroid/content/pm/ApplicationInfo;)V
-HPLcom/android/server/am/PlatformCompatCache$CacheItem;->isChangeEnabled(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/am/PlatformCompatCache$CacheItem;->isChangeEnabled(Landroid/content/pm/ApplicationInfo;)Z
 PLcom/android/server/am/PlatformCompatCache;-><clinit>()V
 PLcom/android/server/am/PlatformCompatCache;-><init>([J)V
-HPLcom/android/server/am/PlatformCompatCache;->getInstance()Lcom/android/server/am/PlatformCompatCache;
-HPLcom/android/server/am/PlatformCompatCache;->invalidate(Landroid/content/pm/ApplicationInfo;)V
-HPLcom/android/server/am/PlatformCompatCache;->isChangeEnabled(ILandroid/content/pm/ApplicationInfo;Z)Z
-HPLcom/android/server/am/PlatformCompatCache;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;Z)Z
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getEarliestFreezableTime()J
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getFreezeUnfreezeTime()J
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->getLastCompactProfile()Lcom/android/server/am/CachedAppOptimizer$CompactProfile;
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getLastCompactTime()J
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getLastOomAdjChangeReason()I
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getLastUsedTimeout()J
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getReqCompactProfile()Lcom/android/server/am/CachedAppOptimizer$CompactProfile;
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->getReqCompactSource()Lcom/android/server/am/CachedAppOptimizer$CompactSource;
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->hasFreezerOverride()Z
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->hasPendingCompact()Z
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->init(J)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->isForceCompact()Z
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->isFreezeExempt()Z
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->isFreezeSticky()Z
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->isFrozen()Z
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->isPendingFreeze()Z
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setEarliestFreezableTime(J)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setForceCompact(Z)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setFreezeUnfreezeTime(J)V
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->setFreezerOverride(Z)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setFrozen(Z)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setHasCollectedFrozenPSS(Z)V
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->setHasPendingCompact(Z)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setLastCompactProfile(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setLastCompactTime(J)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setLastOomAdjChangeReason(I)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setLastUsedTimeout(J)V
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->setPendingFreeze(Z)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setReqCompactProfile(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;)V
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->setReqCompactSource(Lcom/android/server/am/CachedAppOptimizer$CompactSource;)V
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->setShouldNotFreeze(Z)V
-HPLcom/android/server/am/ProcessCachedOptimizerRecord;->setShouldNotFreeze(ZZ)Z
-PLcom/android/server/am/ProcessCachedOptimizerRecord;->shouldNotFreeze()Z
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/internal/os/anr/AnrLatencyTracker;Ljava/lang/String;)V
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/internal/os/anr/AnrLatencyTracker;)V
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/internal/os/anr/AnrLatencyTracker;ZZ)V
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda3;->call()Ljava/lang/Object;
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/ProcessErrorStateRecord;)V
-PLcom/android/server/am/ProcessErrorStateRecord$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/ProcessErrorStateRecord;)V
-PLcom/android/server/am/ProcessErrorStateRecord;->$r8$lambda$DQtvmgZQqXnoidXVW34IrZY3fRc(Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/internal/os/anr/AnrLatencyTracker;ZZ)Ljava/util/ArrayList;
-PLcom/android/server/am/ProcessErrorStateRecord;->$r8$lambda$iJnj86igrSWbTddnzSwFSnBtv04(Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/internal/os/anr/AnrLatencyTracker;)V
-HPLcom/android/server/am/ProcessErrorStateRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessErrorStateRecord;->appNotResponding(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/wm/WindowProcessController;ZLcom/android/internal/os/TimeoutRecord;Ljava/util/concurrent/ExecutorService;ZZLjava/util/concurrent/Future;)V
-PLcom/android/server/am/ProcessErrorStateRecord;->buildMemoryHeadersFor(I)Ljava/lang/String;
-PLcom/android/server/am/ProcessErrorStateRecord;->getAnrAnnotation()Ljava/lang/String;
-PLcom/android/server/am/ProcessErrorStateRecord;->getDialogController()Lcom/android/server/am/ErrorDialogController;
-PLcom/android/server/am/ProcessErrorStateRecord;->getShowBackground()Z
-PLcom/android/server/am/ProcessErrorStateRecord;->isBad()Z
-HPLcom/android/server/am/ProcessErrorStateRecord;->isCrashing()Z
-PLcom/android/server/am/ProcessErrorStateRecord;->isInterestingForBackgroundTraces()Z
-PLcom/android/server/am/ProcessErrorStateRecord;->isMonitorCpuUsage()Z
-PLcom/android/server/am/ProcessErrorStateRecord;->isNotResponding()Z
-PLcom/android/server/am/ProcessErrorStateRecord;->isSilentAnr()Z
-PLcom/android/server/am/ProcessErrorStateRecord;->lambda$appNotResponding$1(Lcom/android/internal/os/anr/AnrLatencyTracker;)V
-PLcom/android/server/am/ProcessErrorStateRecord;->lambda$appNotResponding$3(Lcom/android/internal/os/anr/AnrLatencyTracker;ZZ)Ljava/util/ArrayList;
-HPLcom/android/server/am/ProcessErrorStateRecord;->onCleanupApplicationRecordLSP()V
-PLcom/android/server/am/ProcessErrorStateRecord;->setAnrAnnotation(Ljava/lang/String;)V
-PLcom/android/server/am/ProcessErrorStateRecord;->setCrashHandler(Ljava/lang/Runnable;)V
-HPLcom/android/server/am/ProcessErrorStateRecord;->setCrashing(Z)V
-HPLcom/android/server/am/ProcessErrorStateRecord;->setNotResponding(Z)V
-PLcom/android/server/am/ProcessErrorStateRecord;->skipAnrLocked(Ljava/lang/String;)Z
-PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda2;-><init>(ZLjava/util/List;Landroid/util/ArrayMap;Lcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;)V
-PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/ProcessList;J)V
-HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/ProcessList;)V
-PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I
-HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/am/PlatformCompatCache;->getInstance()Lcom/android/server/am/PlatformCompatCache;
+PLcom/android/server/am/ProcessCachedOptimizerRecord$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/am/ProcessCachedOptimizerRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ProcessCachedOptimizerRecord;->setShouldNotFreeze(IIZZ)Z
+PLcom/android/server/am/ProcessErrorStateRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ProcessErrorStateRecord;->setNotResponding(Z)V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda3;-><init>(ZLjava/util/List;Landroid/util/ArrayMap;Lcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;)V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/ProcessList;J)V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/ProcessList;)V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda5;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I
+PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/am/ProcessList$$ExternalSyntheticOutline0;->m(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/am/ProcessList$1;-><init>(Lcom/android/server/am/ProcessList;)V
-HSPLcom/android/server/am/ProcessList$2;-><init>(Lcom/android/server/am/ProcessList;)V
-HPLcom/android/server/am/ProcessList$2;->handleUnsolicitedMessage(Ljava/io/DataInputStream;I)Z
-PLcom/android/server/am/ProcessList$2;->onConnect(Ljava/io/OutputStream;)Z
-HSPLcom/android/server/am/ProcessList$ImperceptibleKillRunner$H;-><init>(Lcom/android/server/am/ProcessList$ImperceptibleKillRunner;Landroid/os/Looper;)V
+PLcom/android/server/am/ProcessList$1;->handleUnsolicitedMessage(Ljava/io/DataInputStream;I)Z
+PLcom/android/server/am/ProcessList$1;->onConnect(Ljava/io/OutputStream;)Z
+PLcom/android/server/am/ProcessList$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/am/ProcessList$ImperceptibleKillRunner;-><init>(Lcom/android/server/am/ProcessList;Landroid/os/Looper;)V
-HSPLcom/android/server/am/ProcessList$IsolatedUidRange;-><init>(Lcom/android/server/am/ProcessList;II)V
-HPLcom/android/server/am/ProcessList$IsolatedUidRange;->freeIsolatedUidLocked(I)V
-HSPLcom/android/server/am/ProcessList$IsolatedUidRangeAllocator;-><init>(Lcom/android/server/am/ProcessList;III)V
-HSPLcom/android/server/am/ProcessList$KillHandler;-><init>(Lcom/android/server/am/ProcessList;Landroid/os/Looper;)V
+HSPLcom/android/server/am/ProcessList$IsolatedUidRange;-><init>(II)V
+HSPLcom/android/server/am/ProcessList$IsolatedUidRangeAllocator;-><init>(Lcom/android/server/am/ProcessList;)V
 PLcom/android/server/am/ProcessList$KillHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/am/ProcessList$MyProcessMap;-><init>(Lcom/android/server/am/ProcessList;)V
-HPLcom/android/server/am/ProcessList$MyProcessMap;->put(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ProcessList$MyProcessMap;->remove(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ProcessList$MyProcessMap;->put(ILcom/android/server/am/ProcessRecord;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ProcessList$MyProcessMap;->remove(ILjava/lang/String;)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ProcessList$ProcStartHandler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/am/ProcessList$ProcStartHandler;-><init>(Lcom/android/server/am/ProcessList$ImperceptibleKillRunner;Landroid/os/Looper;)V
 PLcom/android/server/am/ProcessList$ProcStartHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/am/ProcessList$ProcStateMemTracker;-><init>()V
-HPLcom/android/server/am/ProcessList;->$r8$lambda$3Aeowc7Aa0A47bbOcoIMPuNZ44Y(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-HPLcom/android/server/am/ProcessList;->$r8$lambda$3aT8AjDesFyouy4iqaLN2hUmayA(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-HPLcom/android/server/am/ProcessList;->$r8$lambda$CC7yn4e5nUPqzC8siIAeG5XlMLQ(Lcom/android/server/am/ProcessList;JLcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->$r8$lambda$JNHuPiwSzts8mouEo9gde_DuUw8(ZLjava/util/List;Landroid/util/ArrayMap;Lcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;Ljava/lang/String;)V
-PLcom/android/server/am/ProcessList;->$r8$lambda$_2hhy3f6tCYNbqfLdggq9vFVtX4(Lcom/android/server/am/ProcessList;Ljava/io/FileDescriptor;I)I
-PLcom/android/server/am/ProcessList;->-$$Nest$mhandlePredecessorProcDied(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->-$$Nest$sfgetsLmkdConnection()Lcom/android/server/am/LmkdConnection;
+PLcom/android/server/am/ProcessList$ProcStateMemTracker;-><init>()V
+PLcom/android/server/am/ProcessList$ProcStateMemTracker;->dumpLine(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/am/ProcessList;-><clinit>()V
 HSPLcom/android/server/am/ProcessList;-><init>()V
 HPLcom/android/server/am/ProcessList;->addProcessNameLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->applyDisplaySize(Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/am/ProcessList;->buildOomTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZ)Ljava/lang/String;
+PLcom/android/server/am/ProcessList;->buildOomTag(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
 HPLcom/android/server/am/ProcessList;->checkSlow(JLjava/lang/String;)V
+PLcom/android/server/am/ProcessList;->collectProcessesLOSP(IZ[Ljava/lang/String;)Ljava/util/ArrayList;
 HPLcom/android/server/am/ProcessList;->computeGidsForProcess(II[IZ)[I
-HPLcom/android/server/am/ProcessList;->computeNextPssTime(ILcom/android/server/am/ProcessList$ProcStateMemTracker;ZZJJ)J
-HSPLcom/android/server/am/ProcessList;->createSystemServerSocketForZygote()Landroid/net/LocalSocket;
-HPLcom/android/server/am/ProcessList;->dispatchProcessDied(II)V
-PLcom/android/server/am/ProcessList;->dispatchProcessStarted(Lcom/android/server/am/ProcessRecord;I)V
-HPLcom/android/server/am/ProcessList;->dispatchProcessesChanged()V
+HPLcom/android/server/am/ProcessList;->dispatchProcessesChanged()V+]Landroid/app/IProcessObserver;Lcom/android/server/am/AppFGSTracker$1;,Lcom/android/server/devicestate/DeviceStateManagerService$1;,Lcom/android/server/media/projection/MediaProjectionManagerService$1;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ProcessList;->dumpLruEntryLocked(Ljava/io/PrintWriter;ILcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
+PLcom/android/server/am/ProcessList;->dumpLruLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ProcessList;->dumpOomLocked(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/am/ProcessList;->dumpProcessOomList(Ljava/io/PrintWriter;Lcom/android/server/am/ActivityManagerService;Ljava/util/List;ZLjava/lang/String;)V
+PLcom/android/server/am/ProcessList;->dumpProcessesLSP(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZLjava/lang/String;I)V
 HPLcom/android/server/am/ProcessList;->enqueueProcessChangeItemLocked(II)Lcom/android/server/am/ActivityManagerService$ProcessChangeItem;
 HPLcom/android/server/am/ProcessList;->fillInProcMemInfoLOSP(Lcom/android/server/am/ProcessRecord;Landroid/app/ActivityManager$RunningAppProcessInfo;I)V
-HPLcom/android/server/am/ProcessList;->findAppProcessLOSP(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
-HSPLcom/android/server/am/ProcessList;->forEachLruProcessesLOSP(ZLjava/util/function/Consumer;)V
+PLcom/android/server/am/ProcessList;->findAppProcessLOSP(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->forEachLruProcessesLOSP(Ljava/util/function/Consumer;Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Consumer;Lcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda1;,Lcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;,Lcom/android/server/am/ActivityManagerService$MainHandler$$ExternalSyntheticLambda0;,Lcom/android/server/am/AppProfiler$$ExternalSyntheticLambda4;,Lcom/android/server/am/AppProfiler$CachedAppsWatermarkData$$ExternalSyntheticLambda0;
+PLcom/android/server/am/ProcessList;->freezePackageCgroup(IZ)Z
 PLcom/android/server/am/ProcessList;->getAppStartInfoTracker()Lcom/android/server/am/AppStartInfoTracker;
-PLcom/android/server/am/ProcessList;->getCachedRestoreThresholdKb()J
-HPLcom/android/server/am/ProcessList;->getLRURecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;
-HSPLcom/android/server/am/ProcessList;->getLruProcessesLOSP()Ljava/util/ArrayList;
-HSPLcom/android/server/am/ProcessList;->getLruSizeLOSP()I
+HPLcom/android/server/am/ProcessList;->getBlockStateForUid(Lcom/android/server/am/UidRecord;)I
+HPLcom/android/server/am/ProcessList;->getLRURecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;+]Landroid/app/IApplicationThread;Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/IApplicationThread$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ProcessList;->getLmkdKillCount(II)Ljava/lang/Integer;
 HSPLcom/android/server/am/ProcessList;->getMemLevel(I)J
-HPLcom/android/server/am/ProcessList;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
-HPLcom/android/server/am/ProcessList;->getNextProcStateSeq()J
-HPLcom/android/server/am/ProcessList;->getNumForegroundServices()Landroid/util/Pair;
-HPLcom/android/server/am/ProcessList;->getPackageAppDataInfoMap(Landroid/content/pm/PackageManagerInternal;[Ljava/lang/String;I)Ljava/util/Map;
-PLcom/android/server/am/ProcessList;->getProcessNamesLOSP()Lcom/android/server/am/ProcessList$MyProcessMap;
-HPLcom/android/server/am/ProcessList;->getProcessRecordLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ProcessList;->getRunningAppProcessesLOSP(ZIZII)Ljava/util/List;
-HPLcom/android/server/am/ProcessList;->getSdkSandboxProcessesForAppLocked(I)Ljava/util/List;
+PLcom/android/server/am/ProcessList;->getPackageAppDataInfoMap(Landroid/content/pm/PackageManagerInternal;[Ljava/lang/String;I)Ljava/util/Map;
+HPLcom/android/server/am/ProcessList;->getProcessRecordLocked(ILjava/lang/String;)Lcom/android/server/am/ProcessRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/am/ProcessList;->getRunningAppProcessesLOSP(IIIZZ)Ljava/util/List;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/ProcessList;->getUidProcStateLOSP(I)I
-HPLcom/android/server/am/ProcessList;->getUidProcessCapabilityLOSP(I)I
-HPLcom/android/server/am/ProcessList;->getUidRecordLOSP(I)Lcom/android/server/am/UidRecord;
-PLcom/android/server/am/ProcessList;->handleDyingAppDeathLocked(Lcom/android/server/am/ProcessRecord;I)Z
+PLcom/android/server/am/ProcessList;->getUidProcessCapabilityLOSP(I)I
+PLcom/android/server/am/ProcessList;->getUidRecordLOSP(I)Lcom/android/server/am/UidRecord;
 PLcom/android/server/am/ProcessList;->handlePrecedingAppDiedLocked(Lcom/android/server/am/ProcessRecord;)Z
-PLcom/android/server/am/ProcessList;->handlePredecessorProcDied(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessList;->handleProcessStart(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-PLcom/android/server/am/ProcessList;->handleProcessStartWithPredecessor(Lcom/android/server/am/ProcessRecord;Ljava/lang/Runnable;)V
 HPLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;IZJZ)Z
-HPLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;Landroid/os/Process$ProcessStartResult;J)Z
-HPLcom/android/server/am/ProcessList;->handleZygoteMessages(Ljava/io/FileDescriptor;I)I
-HPLcom/android/server/am/ProcessList;->hasAppStorage(Landroid/content/pm/PackageManagerInternal;Ljava/lang/String;)Z
-HPLcom/android/server/am/ProcessList;->haveBackgroundProcessLOSP()Z
-HSPLcom/android/server/am/ProcessList;->incrementProcStateSeqAndNotifyAppsLOSP(Lcom/android/server/am/ActiveUids;)V
+HSPLcom/android/server/am/ProcessList;->incrementProcStateSeqAndNotifyAppsLOSP(Lcom/android/server/am/ActiveUids;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/am/ProcessList;->init(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActiveUids;Lcom/android/server/compat/PlatformCompat;)V
-PLcom/android/server/am/ProcessList;->isInLruListLOSP(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/ProcessList;->isProcStartValidLocked(Lcom/android/server/am/ProcessRecord;J)Ljava/lang/String;
 PLcom/android/server/am/ProcessList;->killAllBackgroundProcessesExceptLSP(II)V
-HPLcom/android/server/am/ProcessList;->killAppIfBgRestrictedAndCachedIdleLocked(Lcom/android/server/am/ProcessRecord;J)J
-HPLcom/android/server/am/ProcessList;->killAppIfBgRestrictedAndCachedIdleLocked(Lcom/android/server/am/UidRecord;)V
+PLcom/android/server/am/ProcessList;->killAppIfBgRestrictedAndCachedIdleLocked(Lcom/android/server/am/ProcessRecord;J)J
+PLcom/android/server/am/ProcessList;->killAppZygotesLocked(ILjava/lang/String;IZ)V
 HPLcom/android/server/am/ProcessList;->killPackageProcessesLSP(Ljava/lang/String;IIIZZZZZZIILjava/lang/String;)Z
-HPLcom/android/server/am/ProcessList;->killProcessGroup(II)V
-HPLcom/android/server/am/ProcessList;->lambda$handleProcessStart$1(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-HPLcom/android/server/am/ProcessList;->lambda$killAppIfBgRestrictedAndCachedIdleLocked$5(JLcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessList;->lambda$startProcessLocked$0(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-PLcom/android/server/am/ProcessList;->lambda$updateApplicationInfoLOSP$3(ZLjava/util/List;Landroid/util/ArrayMap;Lcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;Ljava/lang/String;)V
-HPLcom/android/server/am/ProcessList;->makeOomAdjString(IZ)Ljava/lang/String;
-PLcom/android/server/am/ProcessList;->makeProcStateString(I)Ljava/lang/String;
-PLcom/android/server/am/ProcessList;->minTimeFromStateChange(Z)J
-HPLcom/android/server/am/ProcessList;->needsStorageDataIsolation(Landroid/os/storage/StorageManagerInternal;Lcom/android/server/am/ProcessRecord;)Z
+PLcom/android/server/am/ProcessList;->killProcessGroup(II)V
+PLcom/android/server/am/ProcessList;->makeOomAdjString(IZ)Ljava/lang/String;
+PLcom/android/server/am/ProcessList;->makeProcStateProtoEnum(I)I
 HPLcom/android/server/am/ProcessList;->newProcessRecordLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZIZILjava/lang/String;Lcom/android/server/am/HostingRecord;)Lcom/android/server/am/ProcessRecord;
 PLcom/android/server/am/ProcessList;->noteAppKill(Lcom/android/server/am/ProcessRecord;IILjava/lang/String;)V
 HPLcom/android/server/am/ProcessList;->noteProcessDiedLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->onLmkdConnect(Ljava/io/OutputStream;)Z
+HPLcom/android/server/am/ProcessList;->offerLruProcessInternalLSP(Lcom/android/server/am/ProcessRecord;JLjava/lang/String;Ljava/lang/Object;Lcom/android/server/am/ProcessRecord;)I
 PLcom/android/server/am/ProcessList;->onSystemReady()V
-HPLcom/android/server/am/ProcessList;->procStateToImportance(IILandroid/app/ActivityManager$RunningAppProcessInfo;I)I
-HPLcom/android/server/am/ProcessList;->procStatesDifferForMem(II)Z
-PLcom/android/server/am/ProcessList;->registerProcessObserver(Landroid/app/IProcessObserver;)V
-HPLcom/android/server/am/ProcessList;->remove(I)V
+PLcom/android/server/am/ProcessList;->printOomLevel(ILjava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/ProcessList;->remove(I)V
 HPLcom/android/server/am/ProcessList;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ProcessList;->scheduleDispatchProcessDiedLocked(II)V
-HPLcom/android/server/am/ProcessList;->searchEachLruProcessesLOSP(ZLjava/util/function/Function;)Ljava/lang/Object;
-HPLcom/android/server/am/ProcessList;->setOomAdj(III)V
-HPLcom/android/server/am/ProcessList;->startProcess(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Landroid/os/Process$ProcessStartResult;
-HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJ)Z
-PLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;I)V
-HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;ILjava/lang/String;)Z
+PLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZIILjava/lang/String;Z)Z
+HPLcom/android/server/am/ProcessList;->removeProcessNameLocked(ILcom/android/server/am/ProcessRecord;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ProcessList;->searchEachLruProcessesLOSP(Ljava/util/function/Function;Z)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Function;Lcom/android/server/am/ActiveServices$$ExternalSyntheticLambda1;,Lcom/android/server/am/ActiveServices$$ExternalSyntheticLambda5;,Lcom/android/server/am/ActiveServices$$ExternalSyntheticLambda6;
+PLcom/android/server/am/ProcessList;->sortProcessOomList(Ljava/lang/String;Ljava/util/List;)Ljava/util/ArrayList;
+HPLcom/android/server/am/ProcessList;->startProcess(Lcom/android/server/am/HostingRecord;Lcom/android/server/am/ProcessRecord;I[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Landroid/os/Process$ProcessStartResult;
+HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/HostingRecord;Lcom/android/server/am/ProcessRecord;I[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJ)Z+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Ljava/util/Collection;Ljava/util/concurrent/ConcurrentHashMap$ValuesView;]Ljava/util/Iterator;Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
 HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;IZZLjava/lang/String;)Z
 HPLcom/android/server/am/ProcessList;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;IZZIZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Runnable;)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ProcessList;->startPsiMonitoringAfterBoot()V
-PLcom/android/server/am/ProcessList;->updateApplicationInfoLOSP(Ljava/util/List;IZ)V
-HPLcom/android/server/am/ProcessList;->updateClientActivitiesOrderingLSP(Lcom/android/server/am/ProcessRecord;III)V
-PLcom/android/server/am/ProcessList;->updateCoreSettingsLOSP(Landroid/os/Bundle;)V
-HPLcom/android/server/am/ProcessList;->updateLruProcessInternalLSP(Lcom/android/server/am/ProcessRecord;JIILjava/lang/String;Ljava/lang/Object;Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/ProcessList;->updateLruProcessLSP(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;ZZ)V
-HPLcom/android/server/am/ProcessList;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;ZLcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ProcessList;->updateClientActivitiesOrderingLSP(Lcom/android/server/am/ProcessRecord;III)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ProcessList;->updateLruProcessLSP(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ProcessList;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;Z)V
 HSPLcom/android/server/am/ProcessList;->updateOomLevels(IIZ)V
 HPLcom/android/server/am/ProcessList;->updateSeInfo(Lcom/android/server/am/ProcessRecord;)Ljava/lang/String;
 HPLcom/android/server/am/ProcessList;->writeLmkd(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z
+PLcom/android/server/am/ProcessList;->writeProcessesToProtoLSP(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)V
 PLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/app/procstats/ProcessState;)V
-HPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ProcessProfileRecord;Lcom/android/internal/app/procstats/ProcessState;Lcom/android/server/am/ProcessStatsService;ILcom/android/internal/app/procstats/ProcessState;)V
-HPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/am/ProcessProfileRecord;->$r8$lambda$IUdC3S34rs87Xa1P5tzUxV1FgmY(Lcom/android/server/am/ProcessProfileRecord;Lcom/android/internal/app/procstats/ProcessState;Lcom/android/server/am/ProcessStatsService;ILcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
-PLcom/android/server/am/ProcessProfileRecord;->$r8$lambda$JxHNnB95IHo4uPFFKjkpWwJexpY(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
+PLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/am/ProcessProfileRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessProfileRecord;->abortNextPssTime()V
-PLcom/android/server/am/ProcessProfileRecord;->abortNextPssTime(Lcom/android/server/am/ProcessList$ProcStateMemTracker;)V
+HPLcom/android/server/am/ProcessProfileRecord;->abortNextPssTime()V
 HPLcom/android/server/am/ProcessProfileRecord;->addHostingComponentType(I)V
+PLcom/android/server/am/ProcessProfileRecord;->addPss(JJJZIJ)V
 HPLcom/android/server/am/ProcessProfileRecord;->clearHostingComponentType(I)V
-HPLcom/android/server/am/ProcessProfileRecord;->computeNextPssTime(IZZJ)J
-PLcom/android/server/am/ProcessProfileRecord;->getBaseProcessTracker()Lcom/android/internal/app/procstats/ProcessState;
-PLcom/android/server/am/ProcessProfileRecord;->getLastPss()J
-HPLcom/android/server/am/ProcessProfileRecord;->getLastPssTime()J
-PLcom/android/server/am/ProcessProfileRecord;->getLastRss()J
-HPLcom/android/server/am/ProcessProfileRecord;->getLastStateTime()J
-HPLcom/android/server/am/ProcessProfileRecord;->getNextPssTime()J
-PLcom/android/server/am/ProcessProfileRecord;->getTrimMemoryLevel()I
-HPLcom/android/server/am/ProcessProfileRecord;->getUidForAttribution(Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/ProcessProfileRecord;->hasPendingUiClean()Z
-PLcom/android/server/am/ProcessProfileRecord;->init(J)V
-HPLcom/android/server/am/ProcessProfileRecord;->lambda$onProcessActive$0(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/server/am/ProcessStatsService;ILcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
-HPLcom/android/server/am/ProcessProfileRecord;->lambda$onProcessInactive$1(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
-HPLcom/android/server/am/ProcessProfileRecord;->onProcessActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V
-HPLcom/android/server/am/ProcessProfileRecord;->onProcessFrozen()V
-HPLcom/android/server/am/ProcessProfileRecord;->onProcessInactive(Lcom/android/server/am/ProcessStatsService;)V
-HPLcom/android/server/am/ProcessProfileRecord;->onProcessUnfrozen()V
-PLcom/android/server/am/ProcessProfileRecord;->setBaseProcessTracker(Lcom/android/internal/app/procstats/ProcessState;)V
-PLcom/android/server/am/ProcessProfileRecord;->setLastLowMemory(J)V
-PLcom/android/server/am/ProcessProfileRecord;->setLastRequestedGc(J)V
-HPLcom/android/server/am/ProcessProfileRecord;->setNextPssTime(J)V
-HPLcom/android/server/am/ProcessProfileRecord;->setPendingUiClean(Z)V
-HPLcom/android/server/am/ProcessProfileRecord;->setPid(I)V
-HPLcom/android/server/am/ProcessProfileRecord;->setProcessTrackerState(II)V
-HPLcom/android/server/am/ProcessProfileRecord;->updateProcState(Lcom/android/server/am/ProcessStateRecord;)V
-HPLcom/android/server/am/ProcessProviderRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessProviderRecord;->addProviderConnection(Lcom/android/server/am/ContentProviderConnection;)V
-PLcom/android/server/am/ProcessProviderRecord;->ensureProviderCapacity(I)V
-PLcom/android/server/am/ProcessProviderRecord;->getLastProviderTime()J
-HPLcom/android/server/am/ProcessProviderRecord;->getProvider(Ljava/lang/String;)Lcom/android/server/am/ContentProviderRecord;
-HPLcom/android/server/am/ProcessProviderRecord;->getProviderAt(I)Lcom/android/server/am/ContentProviderRecord;
-HPLcom/android/server/am/ProcessProviderRecord;->getProviderConnectionAt(I)Lcom/android/server/am/ContentProviderConnection;
-PLcom/android/server/am/ProcessProviderRecord;->hasProvider(Ljava/lang/String;)Z
-PLcom/android/server/am/ProcessProviderRecord;->installProvider(Ljava/lang/String;Lcom/android/server/am/ContentProviderRecord;)V
-HPLcom/android/server/am/ProcessProviderRecord;->numberOfProviderConnections()I
-HPLcom/android/server/am/ProcessProviderRecord;->numberOfProviders()I
-HPLcom/android/server/am/ProcessProviderRecord;->onCleanupApplicationRecordLocked(Z)Z
-HPLcom/android/server/am/ProcessProviderRecord;->removeProviderConnection(Lcom/android/server/am/ContentProviderConnection;)Z
-PLcom/android/server/am/ProcessProviderRecord;->setLastProviderTime(J)V
-HPLcom/android/server/am/ProcessReceiverRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessReceiverRecord;->addReceiver(Lcom/android/server/am/ReceiverList;)V
-HPLcom/android/server/am/ProcessReceiverRecord;->decrementCurReceivers()V
-HPLcom/android/server/am/ProcessReceiverRecord;->incrementCurReceivers()V
-HPLcom/android/server/am/ProcessReceiverRecord;->numberOfReceivers()I
-HPLcom/android/server/am/ProcessReceiverRecord;->onCleanupApplicationRecordLocked()V
-HPLcom/android/server/am/ProcessReceiverRecord;->removeReceiver(Lcom/android/server/am/ReceiverList;)V
+PLcom/android/server/am/ProcessProviderRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ProcessReceiverRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
 PLcom/android/server/am/ProcessRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/app/procstats/ProcessState;)V
 PLcom/android/server/am/ProcessRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/am/ProcessRecord;->$r8$lambda$HANeJKZz4r720moq9uNElrY05J8(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
 HPLcom/android/server/am/ProcessRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/am/ProcessRecord;->addOrUpdateBackgroundStartPrivileges(Landroid/os/Binder;Landroid/app/BackgroundStartPrivileges;)V
-HPLcom/android/server/am/ProcessRecord;->addPackage(Ljava/lang/String;JLcom/android/server/am/ProcessStatsService;)Z
-PLcom/android/server/am/ProcessRecord;->getActiveInstrumentation()Lcom/android/server/am/ActiveInstrumentation;
-PLcom/android/server/am/ProcessRecord;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/am/ProcessRecord;->getBindApplicationTime()J
-PLcom/android/server/am/ProcessRecord;->getCompat()Landroid/content/res/CompatibilityInfo;
-HPLcom/android/server/am/ProcessRecord;->getCpuDelayTime()J
-PLcom/android/server/am/ProcessRecord;->getCpuTime()J
-PLcom/android/server/am/ProcessRecord;->getDeathRecipient()Landroid/os/IBinder$DeathRecipient;
-PLcom/android/server/am/ProcessRecord;->getDisabledCompatChanges()[J
-PLcom/android/server/am/ProcessRecord;->getDyingPid()I
-HPLcom/android/server/am/ProcessRecord;->getHostingRecord()Lcom/android/server/am/HostingRecord;
-PLcom/android/server/am/ProcessRecord;->getIsolatedEntryPoint()Ljava/lang/String;
-HPLcom/android/server/am/ProcessRecord;->getLastActivityTime()J
-HPLcom/android/server/am/ProcessRecord;->getLruSeq()I
-HPLcom/android/server/am/ProcessRecord;->getMountMode()I
-PLcom/android/server/am/ProcessRecord;->getOnewayThread()Landroid/app/IApplicationThread;
+HPLcom/android/server/am/ProcessRecord;->addOrUpdateBackgroundStartPrivileges(Landroid/os/Binder;Landroid/app/BackgroundStartPrivileges;)V
+HPLcom/android/server/am/ProcessRecord;->addPackage(Ljava/lang/String;JLcom/android/server/am/ProcessStatsService;)V
+HPLcom/android/server/am/ProcessRecord;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/am/ProcessRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/am/ProcessRecord;->getBackgroundStartPrivileges()Landroid/app/BackgroundStartPrivileges;
 HPLcom/android/server/am/ProcessRecord;->getPackageList()[Ljava/lang/String;
-HPLcom/android/server/am/ProcessRecord;->getPid()I
-PLcom/android/server/am/ProcessRecord;->getPkgDeps()Landroid/util/ArraySet;
-HPLcom/android/server/am/ProcessRecord;->getPkgList()Lcom/android/server/am/PackageList;
+PLcom/android/server/am/ProcessRecord;->getPid()I
 PLcom/android/server/am/ProcessRecord;->getProcessClassEnum()I
-HPLcom/android/server/am/ProcessRecord;->getRenderThreadTid()I
-PLcom/android/server/am/ProcessRecord;->getRss(I)J
-HPLcom/android/server/am/ProcessRecord;->getSeInfo()Ljava/lang/String;
-HPLcom/android/server/am/ProcessRecord;->getSetAdj()I
-HPLcom/android/server/am/ProcessRecord;->getSetProcState()I
-HPLcom/android/server/am/ProcessRecord;->getStartElapsedTime()J
-HPLcom/android/server/am/ProcessRecord;->getStartSeq()J
-HPLcom/android/server/am/ProcessRecord;->getStartTime()J
-HPLcom/android/server/am/ProcessRecord;->getStartUid()I
-HPLcom/android/server/am/ProcessRecord;->getStartUptime()J
-HPLcom/android/server/am/ProcessRecord;->getThread()Landroid/app/IApplicationThread;
-HPLcom/android/server/am/ProcessRecord;->getUidRecord()Lcom/android/server/am/UidRecord;
-HPLcom/android/server/am/ProcessRecord;->getWaitingToKill()Ljava/lang/String;
-HPLcom/android/server/am/ProcessRecord;->getWindowProcessController()Lcom/android/server/wm/WindowProcessController;
-HPLcom/android/server/am/ProcessRecord;->hasActivities()Z
+PLcom/android/server/am/ProcessRecord;->getUidRecord()Lcom/android/server/am/UidRecord;
 HPLcom/android/server/am/ProcessRecord;->hasActivitiesOrRecentTasks()Z
-HPLcom/android/server/am/ProcessRecord;->isCached()Z
-HPLcom/android/server/am/ProcessRecord;->isDebuggable()Z
-PLcom/android/server/am/ProcessRecord;->isDebugging()Z
-HPLcom/android/server/am/ProcessRecord;->isInFullBackup()Z
-PLcom/android/server/am/ProcessRecord;->isInterestingToUserLocked()Z
-HPLcom/android/server/am/ProcessRecord;->isKilled()Z
-HPLcom/android/server/am/ProcessRecord;->isKilledByAm()Z
-HPLcom/android/server/am/ProcessRecord;->isPendingFinishAttach()Z
-HPLcom/android/server/am/ProcessRecord;->isPendingStart()Z
-HPLcom/android/server/am/ProcessRecord;->isPersistent()Z
-HPLcom/android/server/am/ProcessRecord;->isRemoved()Z
-HPLcom/android/server/am/ProcessRecord;->isThreadReady()Z
-PLcom/android/server/am/ProcessRecord;->isUnlocked()Z
-PLcom/android/server/am/ProcessRecord;->isUsingWrapper()Z
-PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;IIZ)V
-PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;IIZZ)V
-PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;IZ)V
-PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;Ljava/lang/String;IIZ)V
-HPLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;Ljava/lang/String;IIZZ)V
-HPLcom/android/server/am/ProcessRecord;->killProcessGroupIfNecessaryLocked(Z)V
-PLcom/android/server/am/ProcessRecord;->lambda$resetPackageList$0(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V
-HPLcom/android/server/am/ProcessRecord;->makeActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V
-HPLcom/android/server/am/ProcessRecord;->makeInactive(Lcom/android/server/am/ProcessStatsService;)V
+PLcom/android/server/am/ProcessRecord;->isDebuggable()Z
+PLcom/android/server/am/ProcessRecord;->isFreezable()Z
+PLcom/android/server/am/ProcessRecord;->isThreadReady()Z
+HPLcom/android/server/am/ProcessRecord;->killLocked(IILjava/lang/String;Ljava/lang/String;ZZ)V
+PLcom/android/server/am/ProcessRecord;->killProcessGroupIfNecessaryLocked(Z)V
+HPLcom/android/server/am/ProcessRecord;->makeActive(Lcom/android/server/am/ApplicationThreadDeferred;Lcom/android/server/am/ProcessStatsService;)V
 HPLcom/android/server/am/ProcessRecord;->onCleanupApplicationRecordLSP(Lcom/android/server/am/ProcessStatsService;ZZ)Z
-HPLcom/android/server/am/ProcessRecord;->onProcessFrozen()V
-PLcom/android/server/am/ProcessRecord;->onProcessFrozenCancelled()V
-HPLcom/android/server/am/ProcessRecord;->onProcessUnfrozen()V
-PLcom/android/server/am/ProcessRecord;->onStartActivity(IZLjava/lang/String;J)V
 HPLcom/android/server/am/ProcessRecord;->removeBackgroundStartPrivileges(Landroid/os/Binder;)V
-HPLcom/android/server/am/ProcessRecord;->resetPackageList(Lcom/android/server/am/ProcessStatsService;)V
-PLcom/android/server/am/ProcessRecord;->setActiveInstrumentation(Lcom/android/server/am/ActiveInstrumentation;)V
+PLcom/android/server/am/ProcessRecord;->resetPackageList(Lcom/android/server/am/ProcessStatsService;)V
 HPLcom/android/server/am/ProcessRecord;->setBackgroundStartPrivileges(Landroid/os/Binder;Landroid/app/BackgroundStartPrivileges;)V
-HPLcom/android/server/am/ProcessRecord;->setBindApplicationTime(J)V
-PLcom/android/server/am/ProcessRecord;->setCompat(Landroid/content/res/CompatibilityInfo;)V
-PLcom/android/server/am/ProcessRecord;->setDeathRecipient(Landroid/os/IBinder$DeathRecipient;)V
-HPLcom/android/server/am/ProcessRecord;->setDebugging(Z)V
-PLcom/android/server/am/ProcessRecord;->setDisabledCompatChanges([J)V
-HPLcom/android/server/am/ProcessRecord;->setDyingPid(I)V
-PLcom/android/server/am/ProcessRecord;->setGids([I)V
-PLcom/android/server/am/ProcessRecord;->setInstructionSet(Ljava/lang/String;)V
-PLcom/android/server/am/ProcessRecord;->setIsolatedEntryPoint(Ljava/lang/String;)V
-PLcom/android/server/am/ProcessRecord;->setIsolatedEntryPointArgs([Ljava/lang/String;)V
-HPLcom/android/server/am/ProcessRecord;->setKilled(Z)V
-HPLcom/android/server/am/ProcessRecord;->setKilledByAm(Z)V
-HPLcom/android/server/am/ProcessRecord;->setLastActivityTime(J)V
-HPLcom/android/server/am/ProcessRecord;->setLruSeq(I)V
-HPLcom/android/server/am/ProcessRecord;->setMountMode(I)V
-HPLcom/android/server/am/ProcessRecord;->setPendingFinishAttach(Z)V
-HPLcom/android/server/am/ProcessRecord;->setPendingStart(Z)V
 HPLcom/android/server/am/ProcessRecord;->setPendingUiClean(Z)V
-HPLcom/android/server/am/ProcessRecord;->setPersistent(Z)V
-HPLcom/android/server/am/ProcessRecord;->setPid(I)V
-PLcom/android/server/am/ProcessRecord;->setPkgDeps(Landroid/util/ArraySet;)V
-HPLcom/android/server/am/ProcessRecord;->setRemoved(Z)V
-HPLcom/android/server/am/ProcessRecord;->setRenderThreadTid(I)V
-HPLcom/android/server/am/ProcessRecord;->setRequiredAbi(Ljava/lang/String;)V
-PLcom/android/server/am/ProcessRecord;->setRunningRemoteAnimation(Z)V
-HPLcom/android/server/am/ProcessRecord;->setStartParams(ILcom/android/server/am/HostingRecord;Ljava/lang/String;JJ)V
-HPLcom/android/server/am/ProcessRecord;->setStartSeq(J)V
-HPLcom/android/server/am/ProcessRecord;->setUidRecord(Lcom/android/server/am/UidRecord;)V
-HPLcom/android/server/am/ProcessRecord;->setUnlocked(Z)V
-HPLcom/android/server/am/ProcessRecord;->setUsingWrapper(Z)V
-PLcom/android/server/am/ProcessRecord;->setWaitingToKill(Ljava/lang/String;)V
-PLcom/android/server/am/ProcessRecord;->setWasForceStopped(Z)V
+PLcom/android/server/am/ProcessRecord;->setPid(I)V
+HPLcom/android/server/am/ProcessRecord;->setRunningRemoteAnimation(Z)V
 PLcom/android/server/am/ProcessRecord;->toShortString()Ljava/lang/String;
 HPLcom/android/server/am/ProcessRecord;->toShortString(Ljava/lang/StringBuilder;)V
 HPLcom/android/server/am/ProcessRecord;->toString()Ljava/lang/String;
-HPLcom/android/server/am/ProcessRecord;->unlinkDeathRecipient()V
-PLcom/android/server/am/ProcessRecord;->updateProcessInfo(ZZZ)V
-HPLcom/android/server/am/ProcessRecord;->updateProcessRecordNodes(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessRecord;->updateServiceConnectionActivities()V
-HPLcom/android/server/am/ProcessRecord;->wasForceStopped()Z
+PLcom/android/server/am/ProcessRecord;->unlinkDeathRecipient()V
+HPLcom/android/server/am/ProcessRecord;->updateProcessInfo(ZZZ)V
+PLcom/android/server/am/ProcessRecord;->updateProcessRecordNodes(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ProcessRecord;->useFifoUiScheduling()Z
 HPLcom/android/server/am/ProcessServiceRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->addBoundClientUid(ILjava/lang/String;J)V
-HPLcom/android/server/am/ProcessServiceRecord;->addBoundClientUidsOfNewService(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->addConnection(Lcom/android/server/am/ConnectionRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->addSdkSandboxConnectionIfNecessary(Lcom/android/server/am/ConnectionRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->areAllShortForegroundServicesProcstateTimedOut(J)Z
-HPLcom/android/server/am/ProcessServiceRecord;->areForegroundServiceTypesSame(IZ)Z
-HPLcom/android/server/am/ProcessServiceRecord;->clearBoundClientUids()V
-HPLcom/android/server/am/ProcessServiceRecord;->getConnectionAt(I)Lcom/android/server/am/ConnectionRecord;
-PLcom/android/server/am/ProcessServiceRecord;->getConnectionGroup()I
-HPLcom/android/server/am/ProcessServiceRecord;->getExecutingServiceAt(I)Lcom/android/server/am/ServiceRecord;
-HPLcom/android/server/am/ProcessServiceRecord;->getForegroundServiceTypes()I
-HPLcom/android/server/am/ProcessServiceRecord;->getNumForegroundServices()I
+HPLcom/android/server/am/ProcessServiceRecord;->clearBoundClientUids()V+]Landroid/util/IntArray;Landroid/util/IntArray;
+PLcom/android/server/am/ProcessServiceRecord;->getConnectionAt(I)Lcom/android/server/am/ConnectionRecord;
 HPLcom/android/server/am/ProcessServiceRecord;->getRunningServiceAt(I)Lcom/android/server/am/ServiceRecord;
-HPLcom/android/server/am/ProcessServiceRecord;->hasClientActivities()Z
-PLcom/android/server/am/ProcessServiceRecord;->hasForegroundServices()Z
 HPLcom/android/server/am/ProcessServiceRecord;->hasNonShortForegroundServices()Z
-PLcom/android/server/am/ProcessServiceRecord;->hasReportedForegroundServices()Z
-HPLcom/android/server/am/ProcessServiceRecord;->hasTopStartedAlmostPerceptibleServices()Z
+HPLcom/android/server/am/ProcessServiceRecord;->hasUndemotedShortForegroundService(J)Z
 PLcom/android/server/am/ProcessServiceRecord;->isAlmostPerceptible(Lcom/android/server/am/ServiceRecord;)Z
-HPLcom/android/server/am/ProcessServiceRecord;->isTreatedLikeActivity()Z
 HPLcom/android/server/am/ProcessServiceRecord;->modifyRawOomAdj(I)I
-PLcom/android/server/am/ProcessServiceRecord;->noteScheduleServiceTimeoutPending(Z)V
-HPLcom/android/server/am/ProcessServiceRecord;->numberOfConnections()I
-HPLcom/android/server/am/ProcessServiceRecord;->numberOfExecutingServices()I
-HPLcom/android/server/am/ProcessServiceRecord;->numberOfRunningServices()I
-HPLcom/android/server/am/ProcessServiceRecord;->onCleanupApplicationRecordLocked()V
-PLcom/android/server/am/ProcessServiceRecord;->onProcessFrozenCancelled()V
-PLcom/android/server/am/ProcessServiceRecord;->onProcessUnfrozen()V
-HPLcom/android/server/am/ProcessServiceRecord;->removeAllConnections()V
-PLcom/android/server/am/ProcessServiceRecord;->removeAllSdkSandboxConnections()V
-HPLcom/android/server/am/ProcessServiceRecord;->removeConnection(Lcom/android/server/am/ConnectionRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->removeSdkSandboxConnectionIfNecessary(Lcom/android/server/am/ConnectionRecord;)V
 PLcom/android/server/am/ProcessServiceRecord;->scheduleServiceTimeoutIfNeededLocked()V
-HPLcom/android/server/am/ProcessServiceRecord;->setExecServicesFg(Z)V
-HPLcom/android/server/am/ProcessServiceRecord;->setHasClientActivities(Z)V
-PLcom/android/server/am/ProcessServiceRecord;->setHasForegroundServices(ZIZ)V
-HPLcom/android/server/am/ProcessServiceRecord;->setHasReportedForegroundServices(Z)V
-PLcom/android/server/am/ProcessServiceRecord;->setReportedForegroundServiceTypes(I)V
-HPLcom/android/server/am/ProcessServiceRecord;->shouldExecServicesFg()Z
-HPLcom/android/server/am/ProcessServiceRecord;->startExecutingService(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->startService(Lcom/android/server/am/ServiceRecord;)Z
-PLcom/android/server/am/ProcessServiceRecord;->stopAllExecutingServices()V
-HPLcom/android/server/am/ProcessServiceRecord;->stopExecutingService(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ProcessServiceRecord;->stopService(Lcom/android/server/am/ServiceRecord;)Z
-HPLcom/android/server/am/ProcessServiceRecord;->updateBoundClientUids()V
+HPLcom/android/server/am/ProcessServiceRecord;->updateBoundClientUids()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/am/ProcessServiceRecord;->updateHasTopStartedAlmostPerceptibleServices()V
 HPLcom/android/server/am/ProcessServiceRecord;->updateHostingComonentTypeForBindingsLocked()V
+HSPLcom/android/server/am/ProcessStateController$GlobalState;-><init>()V
+HSPLcom/android/server/am/ProcessStateController;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessList;Lcom/android/server/am/ActiveUids;Lcom/android/server/ServiceThread;Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/OomAdjuster$Injector;Z)V
+PLcom/android/server/am/ProcessStateController;->addPublishedProvider(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Lcom/android/server/am/ContentProviderRecord;)Z
+HPLcom/android/server/am/ProcessStateController;->runFollowUpUpdate()V
+HPLcom/android/server/am/ProcessStateController;->runUpdate(ILcom/android/server/am/ProcessRecord;)Z+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjusterModernImpl;
+PLcom/android/server/am/ProcessStateController;->setForegroundServiceType(ILcom/android/server/am/ServiceRecord;)V
+HPLcom/android/server/am/ProcessStateController;->setWakefulness(I)V
+HPLcom/android/server/am/ProcessStateController;->startService(Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ServiceRecord;)Z
+HPLcom/android/server/am/ProcessStateController;->stopService(Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ServiceRecord;)V
 HPLcom/android/server/am/ProcessStateRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessStateRecord;->computeOomAdjFromActivitiesIfNecessary(Lcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;IZZIIIII)V
-HPLcom/android/server/am/ProcessStateRecord;->containsCycle()Z
-HPLcom/android/server/am/ProcessStateRecord;->forceProcessStateUpTo(I)V
-HPLcom/android/server/am/ProcessStateRecord;->getAdjSeq()I
-PLcom/android/server/am/ProcessStateRecord;->getAdjSource()Ljava/lang/Object;
-PLcom/android/server/am/ProcessStateRecord;->getAdjSourceProcState()I
-PLcom/android/server/am/ProcessStateRecord;->getAdjTarget()Ljava/lang/Object;
-PLcom/android/server/am/ProcessStateRecord;->getAdjTypeCode()I
-HPLcom/android/server/am/ProcessStateRecord;->getCachedCompatChange(I)Z
+HPLcom/android/server/am/ProcessStateRecord;->forceProcessStateUpTo(I)V+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjusterModernImpl;
+HPLcom/android/server/am/ProcessStateRecord;->getCachedCompatChange(I)Z+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;
 HPLcom/android/server/am/ProcessStateRecord;->getCachedHasActivities()Z
-HPLcom/android/server/am/ProcessStateRecord;->getCachedHasRecentTasks()Z
 HPLcom/android/server/am/ProcessStateRecord;->getCachedHasVisibleActivities()Z
-HPLcom/android/server/am/ProcessStateRecord;->getCachedIsHeavyWeight()Z
 HPLcom/android/server/am/ProcessStateRecord;->getCachedIsHomeProcess()Z
-HPLcom/android/server/am/ProcessStateRecord;->getCachedIsPreviousProcess()Z
-HPLcom/android/server/am/ProcessStateRecord;->getCachedIsReceivingBroadcast([I)Z
-HPLcom/android/server/am/ProcessStateRecord;->getCompletedAdjSeq()I
-HPLcom/android/server/am/ProcessStateRecord;->getCurAdj()I
-HPLcom/android/server/am/ProcessStateRecord;->getCurCapability()I
-HPLcom/android/server/am/ProcessStateRecord;->getCurProcState()I
-HPLcom/android/server/am/ProcessStateRecord;->getCurRawAdj()I
-HPLcom/android/server/am/ProcessStateRecord;->getCurRawProcState()I
-HPLcom/android/server/am/ProcessStateRecord;->getCurrentSchedulingGroup()I
-PLcom/android/server/am/ProcessStateRecord;->getFgInteractionTime()J
-PLcom/android/server/am/ProcessStateRecord;->getForcingToImportant()Ljava/lang/Object;
-PLcom/android/server/am/ProcessStateRecord;->getInteractionEventTime()J
-PLcom/android/server/am/ProcessStateRecord;->getLastCanKillOnBgRestrictedAndIdleTime()J
-PLcom/android/server/am/ProcessStateRecord;->getLastInvisibleTime()J
-HPLcom/android/server/am/ProcessStateRecord;->getLastStateTime()J
-HPLcom/android/server/am/ProcessStateRecord;->getMaxAdj()I
-HPLcom/android/server/am/ProcessStateRecord;->getReportedProcState()I
-HPLcom/android/server/am/ProcessStateRecord;->getSetAdj()I
-HPLcom/android/server/am/ProcessStateRecord;->getSetCapability()I
-HPLcom/android/server/am/ProcessStateRecord;->getSetProcState()I
-PLcom/android/server/am/ProcessStateRecord;->getSetRawAdj()I
-HPLcom/android/server/am/ProcessStateRecord;->getSetSchedGroup()I
-HPLcom/android/server/am/ProcessStateRecord;->getVerifiedAdj()I
-PLcom/android/server/am/ProcessStateRecord;->getWhenUnimportant()J
-HPLcom/android/server/am/ProcessStateRecord;->hasForegroundActivities()Z
-HPLcom/android/server/am/ProcessStateRecord;->hasOverlayUi()Z
-HPLcom/android/server/am/ProcessStateRecord;->hasProcStateChanged()Z
-PLcom/android/server/am/ProcessStateRecord;->hasRepForegroundActivities()Z
-PLcom/android/server/am/ProcessStateRecord;->hasReportedInteraction()Z
-HPLcom/android/server/am/ProcessStateRecord;->hasShownUi()Z
-HPLcom/android/server/am/ProcessStateRecord;->hasTopUi()Z
-PLcom/android/server/am/ProcessStateRecord;->init(J)V
-HPLcom/android/server/am/ProcessStateRecord;->isBackgroundRestricted()Z
+PLcom/android/server/am/ProcessStateRecord;->getSetAdjWithServices()I
+PLcom/android/server/am/ProcessStateRecord;->getVerifiedAdj()I
 HPLcom/android/server/am/ProcessStateRecord;->isCached()Z
-HPLcom/android/server/am/ProcessStateRecord;->isCurBoundByNonBgRestrictedApp()Z
-HPLcom/android/server/am/ProcessStateRecord;->isReachable()Z
-HPLcom/android/server/am/ProcessStateRecord;->isRunningRemoteAnimation()Z
-PLcom/android/server/am/ProcessStateRecord;->isServiceB()Z
-PLcom/android/server/am/ProcessStateRecord;->isSetBoundByNonBgRestrictedApp()Z
-HPLcom/android/server/am/ProcessStateRecord;->isSystemNoUi()Z
-HPLcom/android/server/am/ProcessStateRecord;->onCleanupApplicationRecordLSP()V
 HPLcom/android/server/am/ProcessStateRecord;->resetCachedInfo()V
-HPLcom/android/server/am/ProcessStateRecord;->setAdjSeq(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setAdjSource(Ljava/lang/Object;)V
-HPLcom/android/server/am/ProcessStateRecord;->setAdjSourceProcState(I)V
-PLcom/android/server/am/ProcessStateRecord;->setAdjTarget(Ljava/lang/Object;)V
 PLcom/android/server/am/ProcessStateRecord;->setAdjType(Ljava/lang/String;)V
-HPLcom/android/server/am/ProcessStateRecord;->setAdjTypeCode(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setBackgroundRestricted(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setCached(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setCached(ZZ)Z
-HPLcom/android/server/am/ProcessStateRecord;->setCompletedAdjSeq(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setContainsCycle(Z)V
 HPLcom/android/server/am/ProcessStateRecord;->setCurAdj(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setCurBoundByNonBgRestrictedApp(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setCurCapability(I)V
 HPLcom/android/server/am/ProcessStateRecord;->setCurProcState(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setCurRawAdj(I)V
 HPLcom/android/server/am/ProcessStateRecord;->setCurRawAdj(IZ)Z
-HPLcom/android/server/am/ProcessStateRecord;->setCurRawProcState(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setCurRawProcState(IZ)Z
 HPLcom/android/server/am/ProcessStateRecord;->setCurrentSchedulingGroup(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setEmpty(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setFgInteractionTime(J)V
-PLcom/android/server/am/ProcessStateRecord;->setForcingToImportant(Ljava/lang/Object;)V
-HPLcom/android/server/am/ProcessStateRecord;->setHasForegroundActivities(Z)V
-PLcom/android/server/am/ProcessStateRecord;->setHasOverlayUi(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setHasShownUi(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setHasStartedServices(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setInteractionEventTime(J)V
-PLcom/android/server/am/ProcessStateRecord;->setLastStateTime(J)V
-PLcom/android/server/am/ProcessStateRecord;->setLastTopTime(J)V
-PLcom/android/server/am/ProcessStateRecord;->setMaxAdj(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setNoKillOnBgRestrictedAndIdle(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setProcStateChanged(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setReachable(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setReportedInteraction(Z)V
 HPLcom/android/server/am/ProcessStateRecord;->setReportedProcState(I)V
-PLcom/android/server/am/ProcessStateRecord;->setRunningRemoteAnimation(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setScheduleLikeTopApp(Z)V
-PLcom/android/server/am/ProcessStateRecord;->setServiceB(Z)V
-PLcom/android/server/am/ProcessStateRecord;->setSetAdj(I)V
-PLcom/android/server/am/ProcessStateRecord;->setSetCached(Z)V
-PLcom/android/server/am/ProcessStateRecord;->setSetCapability(I)V
-PLcom/android/server/am/ProcessStateRecord;->setSetNoKillOnBgRestrictedAndIdle(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setSetProcState(I)V
-PLcom/android/server/am/ProcessStateRecord;->setSetRawAdj(I)V
-PLcom/android/server/am/ProcessStateRecord;->setSetSchedGroup(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setSystemNoUi(Z)V
-HPLcom/android/server/am/ProcessStateRecord;->setVerifiedAdj(I)V
-HPLcom/android/server/am/ProcessStateRecord;->setWhenUnimportant(J)V
-PLcom/android/server/am/ProcessStateRecord;->shouldNotKillOnBgRestrictedAndIdle()Z
-HPLcom/android/server/am/ProcessStateRecord;->updateLastInvisibleTime(Z)V
+PLcom/android/server/am/ProcessStateRecord;->setVerifiedAdj(I)V
+PLcom/android/server/am/ProcessStatsService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ProcessStatsService;)V
+PLcom/android/server/am/ProcessStatsService$$ExternalSyntheticLambda0;->run()V
 HSPLcom/android/server/am/ProcessStatsService$1;-><init>(Lcom/android/server/am/ProcessStatsService;)V
+PLcom/android/server/am/ProcessStatsService$2;-><init>(Lcom/android/server/am/ProcessStatsService;J)V
+PLcom/android/server/am/ProcessStatsService$2;->run()V
+PLcom/android/server/am/ProcessStatsService$4;-><init>([Landroid/os/ParcelFileDescriptor;[B)V
+PLcom/android/server/am/ProcessStatsService$4;->run()V
 HSPLcom/android/server/am/ProcessStatsService$LocalService;-><init>(Lcom/android/server/am/ProcessStatsService;)V
-HSPLcom/android/server/am/ProcessStatsService$LocalService;-><init>(Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService$LocalService-IA;)V
-HSPLcom/android/server/am/ProcessStatsService;-><clinit>()V
 HSPLcom/android/server/am/ProcessStatsService;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/io/File;)V
+PLcom/android/server/am/ProcessStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ProcessStatsService;->dumpAggregatedStats(Ljava/io/PrintWriter;JJLjava/lang/String;ZZZZZI)V
+PLcom/android/server/am/ProcessStatsService;->dumpInner(Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ProcessStatsService;->getCommittedFilesLF(IZZ)Ljava/util/ArrayList;
+PLcom/android/server/am/ProcessStatsService;->getCurrentFile()Ljava/io/File;
 HSPLcom/android/server/am/ProcessStatsService;->getMemFactorLocked()I
-HPLcom/android/server/am/ProcessStatsService;->getProcessStateLocked(Ljava/lang/String;IJLjava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
-HPLcom/android/server/am/ProcessStatsService;->getServiceState(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/ServiceState;
-HSPLcom/android/server/am/ProcessStatsService;->publish()V
-HSPLcom/android/server/am/ProcessStatsService;->setMemFactorLocked(IZJ)Z
-HSPLcom/android/server/am/ProcessStatsService;->shouldWriteNowLocked(J)Z
+PLcom/android/server/am/ProcessStatsService;->getStatsOverTime(J)Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/am/ProcessStatsService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/am/ProcessStatsService;->performWriteState(J)V
+HSPLcom/android/server/am/ProcessStatsService;->setMemFactorLocked(IJZ)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap;
+PLcom/android/server/am/ProcessStatsService;->trimHistoricStatesWriteLF()V
 HSPLcom/android/server/am/ProcessStatsService;->updateFileLocked()V
-HPLcom/android/server/am/ProcessStatsService;->updateProcessStateHolderLocked(Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;Ljava/lang/String;IJLjava/lang/String;)V
-HSPLcom/android/server/am/ProcessStatsService;->updateTrackingAssociationsLocked(IJ)V
+PLcom/android/server/am/ProcessStatsService;->writeStateLocked(Z)V
+PLcom/android/server/am/ProcessStatsService;->writeStateLocked(ZZ)V
+PLcom/android/server/am/ProviderMap$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/am/ProviderMap;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZILjava/util/ArrayList;)Z
 PLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZLjava/util/HashMap;Ljava/util/ArrayList;)Z
-HPLcom/android/server/am/ProviderMap;->getProviderByClass(Landroid/content/ComponentName;I)Lcom/android/server/am/ContentProviderRecord;
-HPLcom/android/server/am/ProviderMap;->getProviderByName(Ljava/lang/String;I)Lcom/android/server/am/ContentProviderRecord;
-HPLcom/android/server/am/ProviderMap;->getProvidersByClass(I)Ljava/util/HashMap;
+PLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ContentProviderRecord;[Ljava/lang/String;Z)V
+PLcom/android/server/am/ProviderMap;->dumpProvidersByClassLocked(Ljava/io/PrintWriter;ZLjava/lang/String;Ljava/lang/String;ZLjava/util/HashMap;)Z
+PLcom/android/server/am/ProviderMap;->dumpProvidersByNameLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;ZLjava/util/HashMap;)Z
+PLcom/android/server/am/ProviderMap;->dumpToTransferPipe(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ContentProviderRecord;Landroid/app/IApplicationThread;[Ljava/lang/String;)V
+PLcom/android/server/am/ProviderMap;->getProviderByClass(ILandroid/content/ComponentName;)Lcom/android/server/am/ContentProviderRecord;
+HPLcom/android/server/am/ProviderMap;->getProviderByName(ILjava/lang/String;)Lcom/android/server/am/ContentProviderRecord;
+PLcom/android/server/am/ProviderMap;->getProvidersByClass(I)Ljava/util/HashMap;
 HPLcom/android/server/am/ProviderMap;->getProvidersByName(I)Ljava/util/HashMap;
-HPLcom/android/server/am/ProviderMap;->putProviderByClass(Landroid/content/ComponentName;Lcom/android/server/am/ContentProviderRecord;)V
-HPLcom/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
-HPLcom/android/server/am/ProviderMap;->removeProviderByName(Ljava/lang/String;I)V
+PLcom/android/server/am/ProviderMap;->getProvidersForName(Ljava/lang/String;)Ljava/util/ArrayList;
+PLcom/android/server/am/ProviderMap;->putProviderByClass(Landroid/content/ComponentName;Lcom/android/server/am/ContentProviderRecord;)V
 HPLcom/android/server/am/ReceiverList;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;IIILandroid/content/IIntentReceiver;)V
-HPLcom/android/server/am/ReceiverList;->containsFilter(Landroid/content/IntentFilter;)Z
 PLcom/android/server/am/ReceiverList;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/am/ReceiverList;->hashCode()I
+HPLcom/android/server/am/ReceiverList;->toString()Ljava/lang/String;+]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;
 PLcom/android/server/am/SameProcessApplicationThread$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/SameProcessApplicationThread;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZZIIILjava/lang/String;)V
 PLcom/android/server/am/SameProcessApplicationThread$$ExternalSyntheticLambda0;->run()V
 HPLcom/android/server/am/SameProcessApplicationThread$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/SameProcessApplicationThread;Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIIILjava/lang/String;)V
-HPLcom/android/server/am/SameProcessApplicationThread$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/am/SameProcessApplicationThread;->$r8$lambda$30wFUSGfb92ROcaDhzRGaDhM0Kc(Lcom/android/server/am/SameProcessApplicationThread;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZZIIILjava/lang/String;)V
-PLcom/android/server/am/SameProcessApplicationThread;->$r8$lambda$xSNZcV-izZZ4vzJCToJP1hgj54U(Lcom/android/server/am/SameProcessApplicationThread;Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIIILjava/lang/String;)V
+HPLcom/android/server/am/SameProcessApplicationThread$$ExternalSyntheticLambda1;->run()V+]Landroid/app/IApplicationThread;Lcom/android/server/am/ApplicationThreadDeferred;
 PLcom/android/server/am/SameProcessApplicationThread;-><init>(Landroid/app/IApplicationThread;Landroid/os/Handler;)V
-PLcom/android/server/am/SameProcessApplicationThread;->lambda$scheduleReceiver$0(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZZIIILjava/lang/String;)V
-HPLcom/android/server/am/SameProcessApplicationThread;->lambda$scheduleRegisteredReceiver$1(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIIILjava/lang/String;)V
 PLcom/android/server/am/SameProcessApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZZIIILjava/lang/String;)V
 HPLcom/android/server/am/SameProcessApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIIILjava/lang/String;)V
-HPLcom/android/server/am/ServiceRecord$1;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;I)V
-HPLcom/android/server/am/ServiceRecord$1;->run()V
+PLcom/android/server/am/ServiceRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/ServiceRecord$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/am/ServiceRecord$1;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;I)V
+HPLcom/android/server/am/ServiceRecord$1;->run()V+]Lcom/android/server/notification/NotificationManagerInternal;Lcom/android/server/notification/NotificationManagerService$13;
 PLcom/android/server/am/ServiceRecord$2;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;ILandroid/app/Notification;IIZLcom/android/server/am/ServiceRecord;)V
 HPLcom/android/server/am/ServiceRecord$2;->run()V
+PLcom/android/server/am/ServiceRecord$3;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;III)V
+PLcom/android/server/am/ServiceRecord$3;->run()V
+PLcom/android/server/am/ServiceRecord$4;-><init>(IILjava/lang/String;)V
+PLcom/android/server/am/ServiceRecord$4;->run()V
 HPLcom/android/server/am/ServiceRecord$StartItem;-><init>(Lcom/android/server/am/ServiceRecord;ZILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;ILjava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/am/ServiceRecord$StartItem;->removeUriPermissionsLocked()V
-PLcom/android/server/am/ServiceRecord;->-$$Nest$msignalForegroundServiceNotification(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;IIZ)V
-HPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLjava/lang/Runnable;Ljava/lang/String;ILjava/lang/String;Z)V
-HPLcom/android/server/am/ServiceRecord;->addConnection(Landroid/os/IBinder;Lcom/android/server/am/ConnectionRecord;)V
-PLcom/android/server/am/ServiceRecord;->allowedChanged(II)Z
+PLcom/android/server/am/ServiceRecord$StartItem;->toString()Ljava/lang/String;
+PLcom/android/server/am/ServiceRecord;->-$$Nest$msignalForegroundServiceNotification(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;IZ)V
+HPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLcom/android/server/am/ActiveServices$ServiceRestarter;Ljava/lang/String;ILjava/lang/String;Z)V
+HPLcom/android/server/am/ServiceRecord;->addConnection(Landroid/os/IBinder;Lcom/android/server/am/ConnectionRecord;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/am/ServiceRecord;->canStopIfKilled(Z)Z
-HPLcom/android/server/am/ServiceRecord;->clearDeliveredStartsLocked()V
-HPLcom/android/server/am/ServiceRecord;->clearFgsAllowStart()V
-HPLcom/android/server/am/ServiceRecord;->clearFgsAllowWiu()V
-HPLcom/android/server/am/ServiceRecord;->clearShortFgsInfo()V
+PLcom/android/server/am/ServiceRecord;->cancelNotification()V
 HPLcom/android/server/am/ServiceRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-PLcom/android/server/am/ServiceRecord;->dumpReasonCode(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/am/ServiceRecord;->findDeliveredStart(IZZ)Lcom/android/server/am/ServiceRecord$StartItem;
-PLcom/android/server/am/ServiceRecord;->forceClearTracker()V
-HPLcom/android/server/am/ServiceRecord;->getBackgroundStartPrivilegesWithExclusiveToken()Landroid/app/BackgroundStartPrivileges;
-HPLcom/android/server/am/ServiceRecord;->getComponentName()Landroid/content/ComponentName;
-PLcom/android/server/am/ServiceRecord;->getConnections()Landroid/util/ArrayMap;
+HPLcom/android/server/am/ServiceRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/ServiceRecord;->dumpReasonCode(ILjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/am/ServiceRecord;->findDeliveredStart(IZZ)Lcom/android/server/am/ServiceRecord$StartItem;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/am/ServiceRecord;->getBackgroundStartPrivilegesWithExclusiveToken()Landroid/app/BackgroundStartPrivileges;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/ServiceRecord;->getComponentName()Landroid/content/ComponentName;
 PLcom/android/server/am/ServiceRecord;->getFgsAllowStart()I
-PLcom/android/server/am/ServiceRecord;->getFgsAllowStart_legacy()I
-PLcom/android/server/am/ServiceRecord;->getFgsAllowStart_new()I
-HPLcom/android/server/am/ServiceRecord;->getFgsAllowWiu_forCapabilities()I
 HPLcom/android/server/am/ServiceRecord;->getFgsAllowWiu_forStart()I
-HPLcom/android/server/am/ServiceRecord;->getFgsAllowWiu_legacy()I
-PLcom/android/server/am/ServiceRecord;->getFgsAllowWiu_new()I
-HPLcom/android/server/am/ServiceRecord;->getLastStartId()I
 HPLcom/android/server/am/ServiceRecord;->getTracker()Lcom/android/internal/app/procstats/ServiceState;
-HPLcom/android/server/am/ServiceRecord;->hasAutoCreateConnections()Z
-PLcom/android/server/am/ServiceRecord;->isAppAlive()Z
+HPLcom/android/server/am/ServiceRecord;->hasAutoCreateConnections()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/am/ServiceRecord;->isFgsAllowedStart()Z
 HPLcom/android/server/am/ServiceRecord;->isFgsAllowedWiu_forCapabilities()Z
-HPLcom/android/server/am/ServiceRecord;->isFgsAllowedWiu_forStart()Z
 HPLcom/android/server/am/ServiceRecord;->isShortFgs()Z
-HPLcom/android/server/am/ServiceRecord;->makeNextStartId()I
 PLcom/android/server/am/ServiceRecord;->makeRestarting(IJ)V
 PLcom/android/server/am/ServiceRecord;->maybeLogFgsLogicChange()V
 HPLcom/android/server/am/ServiceRecord;->postNotification(Z)V
-PLcom/android/server/am/ServiceRecord;->reasonOr(II)I
-PLcom/android/server/am/ServiceRecord;->reasonOr(III)I
-HPLcom/android/server/am/ServiceRecord;->removeConnection(Landroid/os/IBinder;)V
-HPLcom/android/server/am/ServiceRecord;->resetRestartCounter()V
-HPLcom/android/server/am/ServiceRecord;->retrieveAppBindingLocked(Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;)Lcom/android/server/am/AppBindRecord;
-PLcom/android/server/am/ServiceRecord;->setAllowedBgActivityStartsByBinding(Z)V
-HPLcom/android/server/am/ServiceRecord;->setProcess(Lcom/android/server/am/ProcessRecord;Landroid/app/IApplicationThread;ILcom/android/server/am/UidRecord;)V
+HPLcom/android/server/am/ServiceRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V+]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/am/ServiceRecord;->shouldTriggerShortFgsTimedEvent(JJ)Z
-PLcom/android/server/am/ServiceRecord;->shouldTriggerShortFgsTimeout(J)Z
-HPLcom/android/server/am/ServiceRecord;->signalForegroundServiceNotification(Ljava/lang/String;IIZ)V
 HPLcom/android/server/am/ServiceRecord;->toString()Ljava/lang/String;
-HPLcom/android/server/am/ServiceRecord;->updateAllowUiJobScheduling(Z)V
-PLcom/android/server/am/ServiceRecord;->updateAllowlistManager()V
-HPLcom/android/server/am/ServiceRecord;->updateFgsHasNotificationPermission()V
-PLcom/android/server/am/ServiceRecord;->updateIsAllowedBgActivityStartsByBinding()V
 HPLcom/android/server/am/ServiceRecord;->updateKeepWarmLocked()V
-PLcom/android/server/am/ServiceRecord;->updateParentProcessBgActivityStartsToken()V
+HPLcom/android/server/am/ServiceRecord;->updateOomAdjSeq()V
 HPLcom/android/server/am/ServiceRecord;->updateProcessStateOnRequest()V
-PLcom/android/server/am/ServiceRecord;->useNewBfslLogic()Z
-HPLcom/android/server/am/ServiceRecord;->useNewWiuLogic_forCapabilities()Z
-HPLcom/android/server/am/ServiceRecord;->useNewWiuLogic_forStart()Z
-PLcom/android/server/am/SettingsToPropertiesMapper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;)V
-PLcom/android/server/am/SettingsToPropertiesMapper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;)V
-PLcom/android/server/am/SettingsToPropertiesMapper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;)V
-PLcom/android/server/am/SettingsToPropertiesMapper$1;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/SettingsToPropertiesMapper;-><clinit>()V
+HPLcom/android/server/am/ServiceRecord;->wasOomAdjUpdated()Z
+PLcom/android/server/am/SettingsToPropertiesMapper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;I)V
+PLcom/android/server/am/SettingsToPropertiesMapper$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/am/SettingsToPropertiesMapper$1;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/SettingsToPropertiesMapper;-><clinit>()V
 PLcom/android/server/am/SettingsToPropertiesMapper;-><init>(Landroid/content/ContentResolver;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
-PLcom/android/server/am/SettingsToPropertiesMapper;->isNativeFlagsResetPerformed()Z
+PLcom/android/server/am/SettingsToPropertiesMapper;->logErr(Ljava/lang/String;)V
+PLcom/android/server/am/SettingsToPropertiesMapper;->makeAconfigFlagPropertyName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/am/SettingsToPropertiesMapper;->makePropertyName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/am/SettingsToPropertiesMapper;->setProperty(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/SettingsToPropertiesMapper;->start(Landroid/content/ContentResolver;)Lcom/android/server/am/SettingsToPropertiesMapper;
-HPLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertiesFromSettings()V
+PLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertiesFromSettings()V
 PLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertyFromSetting(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/StackTracesDumpHelper$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/am/StackTracesDumpHelper$$ExternalSyntheticLambda1;->applyAsLong(Ljava/lang/Object;)J
-PLcom/android/server/am/StackTracesDumpHelper;-><clinit>()V
-PLcom/android/server/am/StackTracesDumpHelper;->appendtoANRFile(Ljava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/am/StackTracesDumpHelper;->collectPids(Ljava/util/concurrent/Future;Ljava/lang/String;)Ljava/util/ArrayList;
-PLcom/android/server/am/StackTracesDumpHelper;->copyFirstPidTempDump(Ljava/lang/String;Ljava/util/concurrent/Future;JLcom/android/internal/os/anr/AnrLatencyTracker;)Z
-PLcom/android/server/am/StackTracesDumpHelper;->createAnrDumpFile(Ljava/io/File;)Ljava/io/File;
-PLcom/android/server/am/StackTracesDumpHelper;->dumpJavaTracesTombstoned(ILjava/lang/String;J)J
-PLcom/android/server/am/StackTracesDumpHelper;->dumpStackTraces(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/concurrent/Future;Ljava/util/concurrent/Future;Ljava/util/concurrent/Future;Lcom/android/internal/os/anr/AnrLatencyTracker;)J
-PLcom/android/server/am/StackTracesDumpHelper;->dumpStackTraces(Ljava/util/ArrayList;Lcom/android/internal/os/ProcessCpuTracker;Landroid/util/SparseBooleanArray;Ljava/util/concurrent/Future;Ljava/io/StringWriter;Ljava/util/concurrent/atomic/AtomicLong;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Future;Lcom/android/internal/os/anr/AnrLatencyTracker;)Ljava/io/File;
-PLcom/android/server/am/StackTracesDumpHelper;->dumpStackTracesTempFile(ILcom/android/internal/os/anr/AnrLatencyTracker;)Ljava/io/File;
-PLcom/android/server/am/StackTracesDumpHelper;->maybePruneOldTraces(Ljava/io/File;)V
-PLcom/android/server/am/StackTracesDumpHelper;->writeUptimeStartHeaderForPid(ILjava/lang/String;)I
-HSPLcom/android/server/am/TraceErrorLogger;-><init>()V
-PLcom/android/server/am/TraceErrorLogger;->addProcessInfoAndErrorIdToTrace(Ljava/lang/String;ILjava/util/UUID;)V
-PLcom/android/server/am/TraceErrorLogger;->addSubjectToTrace(Ljava/lang/String;Ljava/util/UUID;)V
-PLcom/android/server/am/TraceErrorLogger;->generateErrorId()Ljava/util/UUID;
-PLcom/android/server/am/TraceErrorLogger;->isAddErrorIdEnabled()Z
+PLcom/android/server/am/StackTracesDumpHelper$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/am/UidObserverController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/UidObserverController;)V
 HPLcom/android/server/am/UidObserverController$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/am/UidObserverController$ChangeRecord;-><init>()V
 HPLcom/android/server/am/UidObserverController$ChangeRecord;->copyTo(Lcom/android/server/am/UidObserverController$ChangeRecord;)V
-HPLcom/android/server/am/UidObserverController$UidObserverRegistration;->-$$Nest$fgetmCutpoint(Lcom/android/server/am/UidObserverController$UidObserverRegistration;)I
-HPLcom/android/server/am/UidObserverController$UidObserverRegistration;->-$$Nest$fgetmUid(Lcom/android/server/am/UidObserverController$UidObserverRegistration;)I
-HPLcom/android/server/am/UidObserverController$UidObserverRegistration;->-$$Nest$fgetmWhich(Lcom/android/server/am/UidObserverController$UidObserverRegistration;)I
 PLcom/android/server/am/UidObserverController$UidObserverRegistration;-><clinit>()V
-HPLcom/android/server/am/UidObserverController$UidObserverRegistration;-><init>(ILjava/lang/String;IIZ[ILandroid/os/IBinder;)V
-HPLcom/android/server/am/UidObserverController$UidObserverRegistration;->isWatchingUid(I)Z
-HSPLcom/android/server/am/UidObserverController;-><init>(Landroid/os/Handler;)V
-HPLcom/android/server/am/UidObserverController;->dispatchUidsChanged()V
-HPLcom/android/server/am/UidObserverController;->dispatchUidsChangedForObserver(Landroid/app/IUidObserver;Lcom/android/server/am/UidObserverController$UidObserverRegistration;I)V
-HPLcom/android/server/am/UidObserverController;->enqueueUidChange(Lcom/android/server/am/UidObserverController$ChangeRecord;IIIIJIZ)I
-HPLcom/android/server/am/UidObserverController;->getOrCreateChangeRecordLocked()Lcom/android/server/am/UidObserverController$ChangeRecord;
+PLcom/android/server/am/UidObserverController$UidObserverRegistration;-><init>(ILjava/lang/String;IIZ[ILandroid/os/IBinder;)V
+PLcom/android/server/am/UidObserverController$UidObserverRegistration;->dump(Ljava/io/PrintWriter;Landroid/app/IUidObserver;)V
+PLcom/android/server/am/UidObserverController$UidObserverRegistration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+HSPLcom/android/server/am/UidObserverController;-><init>(Lcom/android/server/am/ActivityManagerService$UiHandler;)V
+HPLcom/android/server/am/UidObserverController;->dispatchUidsChanged()V+]Landroid/app/IUidObserver;megamorphic_types]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/am/UidObserverController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/UidObserverController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)V
 PLcom/android/server/am/UidObserverController;->mergeWithPendingChange(II)I
-HPLcom/android/server/am/UidObserverController;->register(Landroid/app/IUidObserver;IILjava/lang/String;I[I)Landroid/os/IBinder;
+PLcom/android/server/am/UidObserverController;->register(Landroid/app/IUidObserver;IILjava/lang/String;I[I)Landroid/os/IBinder;
 HSPLcom/android/server/am/UidProcessMap;-><init>()V
-HPLcom/android/server/am/UidProcessMap;->get(ILjava/lang/String;)Ljava/lang/Object;
-PLcom/android/server/am/UidProcessMap;->getMap()Landroid/util/SparseArray;
-HPLcom/android/server/am/UidProcessMap;->put(ILjava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/am/UidProcessMap;->get(ILjava/lang/String;)Ljava/lang/Object;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/UidProcessMap;->put(Ljava/lang/String;ILjava/lang/Object;)V
 PLcom/android/server/am/UidRecord;-><clinit>()V
-HPLcom/android/server/am/UidRecord;-><init>(ILcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/UidRecord;->addProcess(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/UidRecord;->areAllProcessesFrozen()Z
-HPLcom/android/server/am/UidRecord;->areAllProcessesFrozen(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/UidRecord;->clearProcAdjChanged()V
-HPLcom/android/server/am/UidRecord;->forEachProcess(Ljava/util/function/Consumer;)V
-PLcom/android/server/am/UidRecord;->getCurCapability()I
+HPLcom/android/server/am/UidRecord;-><init>(I)V
+PLcom/android/server/am/UidRecord;->areAllProcessesFrozen(Lcom/android/server/am/ProcessRecord;)Z
+PLcom/android/server/am/UidRecord;->forEachProcess(Ljava/util/function/Consumer;)V
 PLcom/android/server/am/UidRecord;->getCurProcState()I
-PLcom/android/server/am/UidRecord;->getLastBackgroundTime()J
-PLcom/android/server/am/UidRecord;->getLastIdleTime()J
-HPLcom/android/server/am/UidRecord;->getMinProcAdj()I
-HPLcom/android/server/am/UidRecord;->getNumOfProcs()I
-HPLcom/android/server/am/UidRecord;->getProcAdjChanged()Z
-PLcom/android/server/am/UidRecord;->getProcessInPackage(Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/UidRecord;->getSetCapability()I
-HPLcom/android/server/am/UidRecord;->getSetProcState()I
-HPLcom/android/server/am/UidRecord;->getUid()I
-HPLcom/android/server/am/UidRecord;->hasForegroundServices()Z
-HPLcom/android/server/am/UidRecord;->isCurAllowListed()Z
-HPLcom/android/server/am/UidRecord;->isEphemeral()Z
-HPLcom/android/server/am/UidRecord;->isFrozen()Z
-HPLcom/android/server/am/UidRecord;->isIdle()Z
-HPLcom/android/server/am/UidRecord;->isSetAllowListed()Z
-HPLcom/android/server/am/UidRecord;->isSetIdle()Z
-PLcom/android/server/am/UidRecord;->noteProcAdjChanged()V
-PLcom/android/server/am/UidRecord;->removeProcess(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/UidRecord;->reset()V
-HPLcom/android/server/am/UidRecord;->setCurAllowListed(Z)V
-PLcom/android/server/am/UidRecord;->setCurCapability(I)V
-PLcom/android/server/am/UidRecord;->setCurProcState(I)V
-HPLcom/android/server/am/UidRecord;->setEphemeral(Z)V
-HPLcom/android/server/am/UidRecord;->setForegroundServices(Z)V
-PLcom/android/server/am/UidRecord;->setFrozen(Z)V
-PLcom/android/server/am/UidRecord;->setIdle(Z)V
-PLcom/android/server/am/UidRecord;->setLastBackgroundTime(J)V
-PLcom/android/server/am/UidRecord;->setLastIdleTime(J)V
-HPLcom/android/server/am/UidRecord;->setLastReportedChange(I)V
-HPLcom/android/server/am/UidRecord;->setSetAllowListed(Z)V
-HPLcom/android/server/am/UidRecord;->setSetCapability(I)V
-HPLcom/android/server/am/UidRecord;->setSetIdle(Z)V
-HPLcom/android/server/am/UidRecord;->setSetProcState(I)V
-HPLcom/android/server/am/UidRecord;->updateHasInternetPermission()V
-PLcom/android/server/am/UserController$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/UserController;Landroid/content/pm/UserInfo;)V
+PLcom/android/server/am/UidRecord;->toString()Ljava/lang/String;
+PLcom/android/server/am/UserController$$ExternalSyntheticLambda17;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/am/UserController$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/UserController;Landroid/content/Intent;III)V
 PLcom/android/server/am/UserController$$ExternalSyntheticLambda18;->run()V
-PLcom/android/server/am/UserController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/UserController;)V
-PLcom/android/server/am/UserController$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/am/UserController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/UserController;ILcom/android/server/am/UserState;)V
-PLcom/android/server/am/UserController$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/am/UserController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/UserController;ILjava/lang/Object;I)V
+PLcom/android/server/am/UserController$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/am/UserController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/UserController;I)V
 PLcom/android/server/am/UserController$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/am/UserController$$ExternalSyntheticLambda8;-><init>(IILjava/lang/Object;)V
+PLcom/android/server/am/UserController$$ExternalSyntheticLambda8;->run()V
+PLcom/android/server/am/UserController$$ExternalSyntheticOutline0;->m(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/String;
 HSPLcom/android/server/am/UserController$1;-><init>(Lcom/android/server/am/UserController;)V
 PLcom/android/server/am/UserController$3;-><init>(Lcom/android/server/am/UserController;I)V
 PLcom/android/server/am/UserController$3;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-PLcom/android/server/am/UserController$8;-><init>(Lcom/android/server/am/UserController;)V
 PLcom/android/server/am/UserController$8;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 HSPLcom/android/server/am/UserController$Injector;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/UserController$Injector;->broadcastIntent(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/UserController$Injector;->checkCallingPermission(Ljava/lang/String;)I
-PLcom/android/server/am/UserController$Injector;->checkComponentPermission(Ljava/lang/String;IIIZ)I
-HSPLcom/android/server/am/UserController$Injector;->getContext()Landroid/content/Context;
-HSPLcom/android/server/am/UserController$Injector;->getHandler(Landroid/os/Handler$Callback;)Landroid/os/Handler;
-HSPLcom/android/server/am/UserController$Injector;->getLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
-PLcom/android/server/am/UserController$Injector;->getSystemServiceManager()Lcom/android/server/SystemServiceManager;
-HSPLcom/android/server/am/UserController$Injector;->getUiHandler(Landroid/os/Handler$Callback;)Landroid/os/Handler;
-PLcom/android/server/am/UserController$Injector;->getUserJourneyLogger()Lcom/android/server/pm/UserJourneyLogger;
+PLcom/android/server/am/UserController$Injector;->broadcastIntent(Landroid/content/Intent;Landroid/content/IIntentReceiver;[Ljava/lang/String;Landroid/os/Bundle;IIII)V
 HPLcom/android/server/am/UserController$Injector;->getUserManager()Lcom/android/server/pm/UserManagerService;
 PLcom/android/server/am/UserController$Injector;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
-PLcom/android/server/am/UserController$Injector;->installEncryptionUnawareProviders(I)V
-HPLcom/android/server/am/UserController$Injector;->isCallerRecents(I)Z
-PLcom/android/server/am/UserController$Injector;->isFirstBootOrUpgrade()Z
-PLcom/android/server/am/UserController$Injector;->isHeadlessSystemUserMode()Z
-PLcom/android/server/am/UserController$Injector;->isRuntimeRestarted()Z
-PLcom/android/server/am/UserController$Injector;->loadUserRecents(I)V
-PLcom/android/server/am/UserController$Injector;->onSystemUserVisibilityChanged(Z)V
 PLcom/android/server/am/UserController$Injector;->onUserStarting(I)V
-PLcom/android/server/am/UserController$Injector;->reportCurWakefulnessUsageEvent()V
-PLcom/android/server/am/UserController$Injector;->startPersistentApps(I)V
-PLcom/android/server/am/UserController$Injector;->startUserWidgets(I)V
-PLcom/android/server/am/UserController$Injector;->systemServiceManagerOnUserCompletedEvent(II)V
-HSPLcom/android/server/am/UserController$UserProgressListener;-><init>()V
-HSPLcom/android/server/am/UserController$UserProgressListener;-><init>(Lcom/android/server/am/UserController$UserProgressListener-IA;)V
 PLcom/android/server/am/UserController$UserProgressListener;->onFinished(ILandroid/os/Bundle;)V
 PLcom/android/server/am/UserController$UserProgressListener;->onProgress(IILandroid/os/Bundle;)V
 PLcom/android/server/am/UserController$UserProgressListener;->onStarted(ILandroid/os/Bundle;)V
-PLcom/android/server/am/UserController;->$r8$lambda$0_wyI9pjpiFPa1zdQhMhe6rQbs0(Lcom/android/server/am/UserController;I)V
-PLcom/android/server/am/UserController;->$r8$lambda$CJMUgyUXssLbrLSA211iBjtm80Q(Lcom/android/server/am/UserController;)V
-PLcom/android/server/am/UserController;->$r8$lambda$LYgwFBbxx9XRrYfMSUASCs9H6MY(Lcom/android/server/am/UserController;Landroid/content/Intent;III)V
-PLcom/android/server/am/UserController;->$r8$lambda$aXrMhheLTVS7w6eap82_5eQPhJk(Lcom/android/server/am/UserController;ILcom/android/server/am/UserState;)V
-HSPLcom/android/server/am/UserController;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/UserController;-><init>(Lcom/android/server/am/UserController$Injector;)V
-PLcom/android/server/am/UserController;->canInteractWithAcrossProfilesPermission(IZIILjava/lang/String;)Z
 PLcom/android/server/am/UserController;->checkCallingHasOneOfThosePermissions(Ljava/lang/String;[Ljava/lang/String;)V
-PLcom/android/server/am/UserController;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/UserController;->checkGetCurrentUserPermissions()V
-PLcom/android/server/am/UserController;->dispatchLockedBootComplete(I)V
-PLcom/android/server/am/UserController;->ensureNotSpecialUser(I)V
-HPLcom/android/server/am/UserController;->exists(I)Z
-PLcom/android/server/am/UserController;->finishUserBoot(Lcom/android/server/am/UserState;Landroid/content/IIntentReceiver;)V
-PLcom/android/server/am/UserController;->finishUserUnlocked(Lcom/android/server/am/UserState;)V
+PLcom/android/server/am/UserController;->checkGetCurrentUserPermissions()V
+PLcom/android/server/am/UserController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/UserController;->finishUserBoot(Lcom/android/server/am/UserState;Lcom/android/server/am/ActivityManagerService$7;)V
 PLcom/android/server/am/UserController;->finishUserUnlockedCompleted(Lcom/android/server/am/UserState;)V
-PLcom/android/server/am/UserController;->finishUserUnlocking(Lcom/android/server/am/UserState;)Z
 PLcom/android/server/am/UserController;->getCurrentProfileIds()[I
 PLcom/android/server/am/UserController;->getCurrentUser()Landroid/content/pm/UserInfo;
 HPLcom/android/server/am/UserController;->getCurrentUserId()I
-HPLcom/android/server/am/UserController;->getCurrentUserIdChecked()I
-HSPLcom/android/server/am/UserController;->getLastUserUnlockingUptime()J
-HPLcom/android/server/am/UserController;->getStartedUserArray()[I
-HPLcom/android/server/am/UserController;->getStartedUserState(I)Lcom/android/server/am/UserState;
-PLcom/android/server/am/UserController;->getTemporaryAppAllowlistBroadcastOptions(I)Landroid/app/BroadcastOptions;
+HPLcom/android/server/am/UserController;->getStartedUserState(I)Lcom/android/server/am/UserState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/am/UserController;->getUserInfo(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/am/UserController;->getUserProperties(I)Landroid/content/pm/UserProperties;
 PLcom/android/server/am/UserController;->getUsers()[I
 HPLcom/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;->hasStartedUserState(I)Z
-HPLcom/android/server/am/UserController;->isSameProfileGroup(II)Z
+HPLcom/android/server/am/UserController;->hasStartedUserState(I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/am/UserController;->isSameProfileGroup(II)Z
+PLcom/android/server/am/UserController;->isStopUserOnSwitchEnabled()Z
 HPLcom/android/server/am/UserController;->isUserOrItsParentRunning(I)Z
 HPLcom/android/server/am/UserController;->isUserRunning(II)Z
-PLcom/android/server/am/UserController;->lambda$finishUserUnlockedCompleted$4(Landroid/content/Intent;III)V
-PLcom/android/server/am/UserController;->lambda$finishUserUnlocking$1(ILcom/android/server/am/UserState;)V
-PLcom/android/server/am/UserController;->lambda$handleMessage$18(I)V
-PLcom/android/server/am/UserController;->lambda$scheduleStartProfiles$13()V
-PLcom/android/server/am/UserController;->maybeUnlockUser(I)Z
 PLcom/android/server/am/UserController;->maybeUnlockUser(ILandroid/os/IProgressListener;)Z
-PLcom/android/server/am/UserController;->onBootComplete(Landroid/content/IIntentReceiver;)V
-PLcom/android/server/am/UserController;->onSystemReady()V
-PLcom/android/server/am/UserController;->onSystemUserStarting()V
-PLcom/android/server/am/UserController;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
+PLcom/android/server/am/UserController;->onBootComplete(Lcom/android/server/am/ActivityManagerService$7;)V
 PLcom/android/server/am/UserController;->reportOnUserCompletedEvent(Ljava/lang/Integer;)V
 PLcom/android/server/am/UserController;->scheduleOnUserCompletedEvent(III)V
-PLcom/android/server/am/UserController;->scheduleStartProfiles()V
-PLcom/android/server/am/UserController;->sendLockedBootCompletedBroadcast(Landroid/content/IIntentReceiver;I)V
+PLcom/android/server/am/UserController;->sendLockedBootCompletedBroadcast(Lcom/android/server/am/ActivityManagerService$7;I)V
 PLcom/android/server/am/UserController;->sendUserStartedBroadcast(III)V
 PLcom/android/server/am/UserController;->sendUserStartingBroadcast(III)V
 PLcom/android/server/am/UserController;->sendUserSwitchBroadcasts(II)V
 PLcom/android/server/am/UserController;->setAllowUserUnlocking(Z)V
-PLcom/android/server/am/UserController;->setInitialConfig(ZIZ)V
-PLcom/android/server/am/UserController;->shouldConfirmCredentials(I)Z
 PLcom/android/server/am/UserController;->startProfiles()V
-HPLcom/android/server/am/UserController;->unsafeConvertIncomingUser(I)I
+PLcom/android/server/am/UserController;->unlockUser(ILandroid/os/IProgressListener;)Z
 PLcom/android/server/am/UserController;->updateProfileRelatedCaches()V
 HSPLcom/android/server/am/UserController;->updateStartedUserArrayLU()V
 HSPLcom/android/server/am/UserState;-><init>(Landroid/os/UserHandle;)V
-HPLcom/android/server/am/UserState;->setState(I)V
+PLcom/android/server/am/UserState;->setState(I)V
 PLcom/android/server/am/UserState;->setState(II)Z
 PLcom/android/server/am/UserState;->stateToString(I)Ljava/lang/String;
-PLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;
-PLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService$3;-><init>(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService$4;-><init>(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService$DeviceConfigListener;-><init>(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService$Injector$1;-><init>(Lcom/android/server/app/GameManagerService$Injector;)V
-PLcom/android/server/app/GameManagerService$Injector$1;->getInt(Ljava/lang/String;I)I
-PLcom/android/server/app/GameManagerService$Injector;-><init>()V
-PLcom/android/server/app/GameManagerService$Injector;->createSystemPropertiesWrapper()Lcom/android/server/app/GameManagerServiceSystemPropertiesWrapper;
-PLcom/android/server/app/GameManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/app/GameManagerService$Lifecycle;->onBootPhase(I)V
-PLcom/android/server/app/GameManagerService$Lifecycle;->onStart()V
-PLcom/android/server/app/GameManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/app/GameManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/app/GameManagerService$LocalService;-><init>(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService$LocalService;-><init>(Lcom/android/server/app/GameManagerService;Lcom/android/server/app/GameManagerService$LocalService-IA;)V
-HPLcom/android/server/app/GameManagerService$LocalService;->getCompatScale(Ljava/lang/String;I)Landroid/content/res/CompatibilityInfo$CompatScale;
-HPLcom/android/server/app/GameManagerService$LocalService;->getResolutionScalingFactor(Ljava/lang/String;I)F
-PLcom/android/server/app/GameManagerService$MyUidObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/app/GameManagerService$MyUidObserver;I)V
-PLcom/android/server/app/GameManagerService$MyUidObserver$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/app/GameManagerService$MyUidObserver;->$r8$lambda$mE-7E21f94kUEAgfV42TQXpejok(Lcom/android/server/app/GameManagerService$MyUidObserver;ILjava/lang/String;)Z
-PLcom/android/server/app/GameManagerService$MyUidObserver;-><init>(Lcom/android/server/app/GameManagerService;)V
-HPLcom/android/server/app/GameManagerService$MyUidObserver;->handleUidMovedOffTop(I)V
-PLcom/android/server/app/GameManagerService$MyUidObserver;->handleUidMovedToTop(I)V
-PLcom/android/server/app/GameManagerService$MyUidObserver;->lambda$handleUidMovedToTop$0(ILjava/lang/String;)Z
-PLcom/android/server/app/GameManagerService$MyUidObserver;->onUidGone(IZ)V
-HPLcom/android/server/app/GameManagerService$MyUidObserver;->onUidStateChanged(IIJI)V
-PLcom/android/server/app/GameManagerService$SettingsHandler;-><init>(Lcom/android/server/app/GameManagerService;Landroid/os/Looper;)V
-PLcom/android/server/app/GameManagerService$SettingsHandler;->doHandleMessage(Landroid/os/Message;)V
-PLcom/android/server/app/GameManagerService$SettingsHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/app/GameManagerService;->$r8$lambda$Sir-wtA0n6T1spL0WarCI-ChMjA(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/app/GameManagerService;->$r8$lambda$v0loNmftGWUMC3VLYZhDYOY54xM(I)[Ljava/lang/String;
-PLcom/android/server/app/GameManagerService;->-$$Nest$fgetmContext(Lcom/android/server/app/GameManagerService;)Landroid/content/Context;
-HPLcom/android/server/app/GameManagerService;->-$$Nest$fgetmGameForegroundUids(Lcom/android/server/app/GameManagerService;)Ljava/util/Set;
-HPLcom/android/server/app/GameManagerService;->-$$Nest$fgetmNonGameForegroundUids(Lcom/android/server/app/GameManagerService;)Ljava/util/Set;
-PLcom/android/server/app/GameManagerService;->-$$Nest$fgetmPackageManager(Lcom/android/server/app/GameManagerService;)Landroid/content/pm/PackageManager;
-HPLcom/android/server/app/GameManagerService;->-$$Nest$fgetmUidObserverLock(Lcom/android/server/app/GameManagerService;)Ljava/lang/Object;
-HPLcom/android/server/app/GameManagerService;->-$$Nest$mgetGameModeFromSettingsUnchecked(Lcom/android/server/app/GameManagerService;Ljava/lang/String;I)I
-PLcom/android/server/app/GameManagerService;->-$$Nest$mgetInstalledGamePackageNames(Lcom/android/server/app/GameManagerService;I)[Ljava/lang/String;
-PLcom/android/server/app/GameManagerService;->-$$Nest$misPackageGame(Lcom/android/server/app/GameManagerService;Ljava/lang/String;I)Z
-PLcom/android/server/app/GameManagerService;->-$$Nest$mpublishLocalService(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService;->-$$Nest$mregisterDeviceConfigListener(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService;->-$$Nest$mregisterPackageReceiver(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService;->-$$Nest$mregisterStatsCallbacks(Lcom/android/server/app/GameManagerService;)V
-PLcom/android/server/app/GameManagerService;->-$$Nest$mwriteGameModeInterventionsToFile(Lcom/android/server/app/GameManagerService;I)V
-PLcom/android/server/app/GameManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/app/GameManagerService;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-HPLcom/android/server/app/GameManagerService;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/io/File;Lcom/android/server/app/GameManagerService$Injector;)V
-PLcom/android/server/app/GameManagerService;->createServiceThread()Lcom/android/server/ServiceThread;
-PLcom/android/server/app/GameManagerService;->getAllUserIds(I)[I
-HPLcom/android/server/app/GameManagerService;->getConfig(Ljava/lang/String;I)Lcom/android/server/app/GameManagerService$GamePackageConfiguration;
-HPLcom/android/server/app/GameManagerService;->getGameModeFromSettingsUnchecked(Ljava/lang/String;I)I
-PLcom/android/server/app/GameManagerService;->getInstalledGamePackageNames(I)[Ljava/lang/String;
-PLcom/android/server/app/GameManagerService;->getInstalledGamePackageNamesByAllUsers(I)Ljava/util/List;
-HPLcom/android/server/app/GameManagerService;->getResolutionScalingFactorInternal(Ljava/lang/String;II)F
-PLcom/android/server/app/GameManagerService;->isPackageGame(Ljava/lang/String;I)Z
-PLcom/android/server/app/GameManagerService;->lambda$getInstalledGamePackageNames$2(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/app/GameManagerService;->lambda$getInstalledGamePackageNames$4(I)[Ljava/lang/String;
-PLcom/android/server/app/GameManagerService;->onBootCompleted()V
-PLcom/android/server/app/GameManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;Ljava/io/File;)V
-PLcom/android/server/app/GameManagerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/app/GameManagerService;->publishLocalService()V
-PLcom/android/server/app/GameManagerService;->registerDeviceConfigListener()V
-PLcom/android/server/app/GameManagerService;->registerPackageReceiver()V
-PLcom/android/server/app/GameManagerService;->registerStatsCallbacks()V
-PLcom/android/server/app/GameManagerService;->sendUserMessage(IILjava/lang/String;I)V
-PLcom/android/server/app/GameManagerService;->updateConfigsForUser(IZ[Ljava/lang/String;)V
-PLcom/android/server/app/GameManagerService;->writeGameModeInterventionsToFile(I)V
-PLcom/android/server/app/GameManagerSettings;-><init>(Ljava/io/File;)V
-HPLcom/android/server/app/GameManagerSettings;->getConfigOverrideLocked(Ljava/lang/String;)Lcom/android/server/app/GameManagerService$GamePackageConfiguration;
-HPLcom/android/server/app/GameManagerSettings;->getGameModeLocked(Ljava/lang/String;)I
-PLcom/android/server/app/GameManagerSettings;->readPersistentDataLocked()Z
+PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService$$ExternalSyntheticOutline0;->m(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/appbinding/AppBindingConstants;-><init>(Ljava/lang/String;)V
-PLcom/android/server/appbinding/AppBindingConstants;->initializeFromString(Ljava/lang/String;)Lcom/android/server/appbinding/AppBindingConstants;
+PLcom/android/server/appbinding/AppBindingConstants;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/appbinding/AppBindingService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
-PLcom/android/server/appbinding/AppBindingService$$ExternalSyntheticLambda2;-><init>()V
+PLcom/android/server/appbinding/AppBindingService$$ExternalSyntheticLambda1;-><init>(ILjava/io/PrintWriter;)V
+PLcom/android/server/appbinding/AppBindingService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appbinding/AppBindingService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/appbinding/AppBindingService$1;-><init>(Lcom/android/server/appbinding/AppBindingService;Landroid/os/Handler;)V
+PLcom/android/server/appbinding/AppBindingService$1;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
 PLcom/android/server/appbinding/AppBindingService$2;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
-PLcom/android/server/appbinding/AppBindingService$Injector;-><init>()V
-PLcom/android/server/appbinding/AppBindingService$Injector;->getGlobalSettingString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/appbinding/AppBindingService$Injector;->getIPackageManager()Landroid/content/pm/IPackageManager;
+PLcom/android/server/appbinding/AppBindingService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/appbinding/AppBindingService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/appbinding/AppBindingService$Lifecycle;-><init>(Landroid/content/Context;Lcom/android/server/appbinding/AppBindingService$Injector;)V
 PLcom/android/server/appbinding/AppBindingService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/appbinding/AppBindingService$Lifecycle;->onStart()V
 PLcom/android/server/appbinding/AppBindingService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/appbinding/AppBindingService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/appbinding/AppBindingService;->-$$Nest$monBootPhase(Lcom/android/server/appbinding/AppBindingService;I)V
-PLcom/android/server/appbinding/AppBindingService;->-$$Nest$monStartUser(Lcom/android/server/appbinding/AppBindingService;I)V
-PLcom/android/server/appbinding/AppBindingService;->-$$Nest$monUnlockUser(Lcom/android/server/appbinding/AppBindingService;I)V
+PLcom/android/server/appbinding/AppBindingService;->-$$Nest$mhandlePackageAddedReplacing(Lcom/android/server/appbinding/AppBindingService;Ljava/lang/String;I)V
 PLcom/android/server/appbinding/AppBindingService;-><init>(Lcom/android/server/appbinding/AppBindingService$Injector;Landroid/content/Context;)V
-PLcom/android/server/appbinding/AppBindingService;-><init>(Lcom/android/server/appbinding/AppBindingService$Injector;Landroid/content/Context;Lcom/android/server/appbinding/AppBindingService-IA;)V
-PLcom/android/server/appbinding/AppBindingService;->bindServicesLocked(ILcom/android/server/appbinding/finders/AppServiceFinder;Ljava/lang/String;)V
-PLcom/android/server/appbinding/AppBindingService;->findConnectionLock(ILcom/android/server/appbinding/finders/AppServiceFinder;)Lcom/android/server/appbinding/AppBindingService$AppServiceConnection;
+PLcom/android/server/appbinding/AppBindingService;->bindServicesLocked(ILcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;)V
+PLcom/android/server/appbinding/AppBindingService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/appbinding/AppBindingService;->forAllAppsLocked(Ljava/util/function/Consumer;)V
-PLcom/android/server/appbinding/AppBindingService;->onBootPhase(I)V
-PLcom/android/server/appbinding/AppBindingService;->onPhaseActivityManagerReady()V
-PLcom/android/server/appbinding/AppBindingService;->onPhaseThirdPartyAppsCanStart()V
-PLcom/android/server/appbinding/AppBindingService;->onStartUser(I)V
-PLcom/android/server/appbinding/AppBindingService;->onUnlockUser(I)V
-PLcom/android/server/appbinding/AppBindingService;->rebindAllLocked(Ljava/lang/String;)V
 PLcom/android/server/appbinding/AppBindingService;->refreshConstants()V
+PLcom/android/server/appbinding/AppBindingService;->unbindServicesLocked(ILcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;)V
 PLcom/android/server/appbinding/AppBindingUtils;->findService(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/Class;Landroid/content/pm/IPackageManager;Ljava/lang/StringBuilder;)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/appbinding/finders/AppServiceFinder;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;Landroid/os/Handler;)V
-PLcom/android/server/appbinding/finders/AppServiceFinder;->findService(ILandroid/content/pm/IPackageManager;Lcom/android/server/appbinding/AppBindingConstants;)Landroid/content/pm/ServiceInfo;
 PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;)V
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;Landroid/os/Handler;)V
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->getServiceAction()Ljava/lang/String;
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->getServiceClass()Ljava/lang/Class;
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->getServicePermission()Ljava/lang/String;
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->getTargetPackage(I)Ljava/lang/String;
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->isEnabled(Lcom/android/server/appbinding/AppBindingConstants;)Z
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->startMonitoring()V
-PLcom/android/server/apphibernation/AppHibernationManagerInternal;-><init>()V
+PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder$$ExternalSyntheticLambda0;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;-><init>(Landroid/content/Context;Lcom/android/server/appbinding/AppBindingService$$ExternalSyntheticLambda0;)V
+PLcom/android/server/appfunctions/AppFunctionDumpHelper;->buildAppFunctionMetadataSearchSpec()Landroid/app/appsearch/SearchSpec;
+PLcom/android/server/appfunctions/AppFunctionDumpHelper;->dumpAppFunctionsState(Landroid/content/Context;Ljava/io/PrintWriter;)V
+PLcom/android/server/appfunctions/AppFunctionExecutors;-><clinit>()V
+PLcom/android/server/appfunctions/AppFunctionManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/appfunctions/AppFunctionManagerService;->onStart()V
+PLcom/android/server/appfunctions/AppFunctionManagerService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/appfunctions/FutureGlobalSearchSession;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$AppFunctionMetadataObserver;-><init>(Landroid/content/Context;Landroid/os/UserHandle;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$AppFunctionMetadataObserver;->onDocumentChanged(Landroid/app/appsearch/observer/DocumentChangeInfo;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl$AppFunctionMetadataObserver;->onSchemaChanged(Landroid/app/appsearch/observer/SchemaChangeInfo;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl;-><clinit>()V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/appfunctions/RemoteServiceCaller;Lcom/android/server/appfunctions/CallerValidator;Lcom/android/server/appfunctions/ServiceHelper;Lcom/android/server/appfunctions/ServiceConfig;)V
+PLcom/android/server/appfunctions/AppFunctionManagerServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/appfunctions/CallerValidatorImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda4;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/internal/infra/AndroidFuture;)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda8;-><init>(I)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl;-><clinit>()V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl;-><init>(Landroid/app/appsearch/AppSearchManager;Ljava/util/concurrent/Executor;Landroid/app/appsearch/AppSearchManager$SearchContext;)V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl;->close()V
+PLcom/android/server/appfunctions/FutureAppSearchSessionImpl;->getSessionAsync()Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/server/appfunctions/FutureGlobalSearchSession$$ExternalSyntheticLambda0;-><init>(Landroid/app/appsearch/observer/ObserverSpec;Ljava/util/concurrent/Executor;Lcom/android/server/appfunctions/AppFunctionManagerServiceImpl$AppFunctionMetadataObserver;)V
+PLcom/android/server/appfunctions/FutureGlobalSearchSession$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appfunctions/FutureGlobalSearchSession$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appfunctions/FutureGlobalSearchSession$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/appfunctions/FutureGlobalSearchSession$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appfunctions/FutureGlobalSearchSession$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appfunctions/FutureGlobalSearchSession;-><clinit>()V
+PLcom/android/server/appfunctions/FutureGlobalSearchSession;-><init>(Landroid/app/appsearch/AppSearchManager;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/appfunctions/FutureGlobalSearchSession;->close()V
+PLcom/android/server/appfunctions/FutureSearchResultsImpl$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appfunctions/FutureSearchResultsImpl;-><init>(Landroid/app/appsearch/SearchResults;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/appfunctions/FutureSearchResultsImpl;->close()V
+PLcom/android/server/appfunctions/FutureSearchResultsImpl;->getNextPage()Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/server/appfunctions/MetadataSyncAdapter$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/appfunctions/MetadataSyncAdapter;Landroid/app/appsearch/AppSearchManager$SearchContext;Landroid/app/appsearch/AppSearchManager$SearchContext;Lcom/android/internal/infra/AndroidFuture;)V
+PLcom/android/server/appfunctions/MetadataSyncAdapter$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/appfunctions/MetadataSyncAdapter;-><init>(Landroid/content/pm/PackageManager;Landroid/app/appsearch/AppSearchManager;)V
+PLcom/android/server/appfunctions/MetadataSyncAdapter;->getAddedFunctionsDiffMap(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+PLcom/android/server/appfunctions/MetadataSyncAdapter;->getFunctionsDiffMap(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+PLcom/android/server/appfunctions/MetadataSyncAdapter;->getPackageToFunctionIdMap(Lcom/android/server/appfunctions/FutureAppSearchSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/util/ArrayMap;
+PLcom/android/server/appfunctions/MetadataSyncAdapter;->getRemovedFunctionsDiffMap(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+PLcom/android/server/appfunctions/MetadataSyncAdapter;->submitSyncRequest()Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/server/appfunctions/MetadataSyncAdapter;->trySyncAppFunctionMetadataBlocking(Lcom/android/server/appfunctions/FutureAppSearchSession;Lcom/android/server/appfunctions/FutureAppSearchSession;)V
+PLcom/android/server/appfunctions/MetadataSyncPerUser;-><clinit>()V
+PLcom/android/server/appfunctions/MetadataSyncPerUser;->getPerUserMetadataSyncAdapter(Landroid/content/Context;Landroid/os/UserHandle;)Lcom/android/server/appfunctions/MetadataSyncAdapter;
+PLcom/android/server/appfunctions/NamedThreadFactory;-><init>(Ljava/lang/String;)V
+PLcom/android/server/appfunctions/NamedThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+PLcom/android/server/appfunctions/RemoteServiceCallerImpl;-><init>(Landroid/content/Context;Lcom/android/server/appfunctions/AppFunctionManagerServiceImpl$$ExternalSyntheticLambda0;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/appfunctions/ServiceHelperImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
 HPLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda0;->onUsageEvent(ILandroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
 PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
-PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/apphibernation/AppHibernationService;Lcom/android/server/apphibernation/HibernationStateDiskStore;I)V
+PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/apphibernation/AppHibernationService;Ljava/lang/Object;II)V
 PLcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/apphibernation/AppHibernationService$1;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
+PLcom/android/server/apphibernation/AppHibernationService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/apphibernation/AppHibernationService$AppHibernationServiceStub;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
+PLcom/android/server/apphibernation/AppHibernationService$AppHibernationServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/apphibernation/AppHibernationService$AppHibernationServiceStub;->isHibernatingGlobally(Ljava/lang/String;)Z
 PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getActivityManager()Landroid/app/IActivityManager;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getBackgroundExecutor()Ljava/util/concurrent/Executor;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getContext()Landroid/content/Context;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getGlobalLevelDiskStore()Lcom/android/server/apphibernation/HibernationStateDiskStore;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getPackageManager()Landroid/content/pm/IPackageManager;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getStorageStatsManager()Landroid/app/usage/StorageStatsManager;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getUsageStatsManagerInternal()Landroid/app/usage/UsageStatsManagerInternal;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getUserLevelDiskStore(I)Lcom/android/server/apphibernation/HibernationStateDiskStore;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->getUserManager()Landroid/os/UserManager;
-PLcom/android/server/apphibernation/AppHibernationService$InjectorImpl;->isOatArtifactDeletionEnabled()Z
 PLcom/android/server/apphibernation/AppHibernationService$LocalService;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
-HPLcom/android/server/apphibernation/AppHibernationService$LocalService;->isHibernatingForUser(Ljava/lang/String;I)Z
-PLcom/android/server/apphibernation/AppHibernationService$LocalService;->isHibernatingGlobally(Ljava/lang/String;)Z
 PLcom/android/server/apphibernation/AppHibernationService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/apphibernation/AppHibernationService;)V
-PLcom/android/server/apphibernation/AppHibernationService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/apphibernation/AppHibernationService;Lcom/android/server/apphibernation/AppHibernationService$StatsPullAtomCallbackImpl-IA;)V
-PLcom/android/server/apphibernation/AppHibernationService;->$r8$lambda$Fws_Wf_jgjjpMDT6HEIS6H9GGIc(Lcom/android/server/apphibernation/AppHibernationService;)V
-HPLcom/android/server/apphibernation/AppHibernationService;->$r8$lambda$fT12eBCv0K0U7e7DCdE6loRthKg(Lcom/android/server/apphibernation/AppHibernationService;ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/apphibernation/AppHibernationService;->$r8$lambda$pmiSg0_3IcxhUY6KWcWtKuVRLt4(Lcom/android/server/apphibernation/AppHibernationService;Lcom/android/server/apphibernation/HibernationStateDiskStore;I)V
 PLcom/android/server/apphibernation/AppHibernationService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/apphibernation/AppHibernationService;-><init>(Lcom/android/server/apphibernation/AppHibernationService$Injector;)V
-HPLcom/android/server/apphibernation/AppHibernationService;->checkUserStatesExist(ILjava/lang/String;Z)Z
-HPLcom/android/server/apphibernation/AppHibernationService;->handleIncomingUser(ILjava/lang/String;)I
+HPLcom/android/server/apphibernation/AppHibernationService;->checkUserStatesExist(ILjava/lang/String;Z)Z+]Landroid/os/UserManager;Landroid/os/UserManager;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/apphibernation/AppHibernationService;->handleIncomingUser(ILjava/lang/String;)I+]Landroid/app/IActivityManager;Lcom/android/server/am/ActivityManagerService;
 PLcom/android/server/apphibernation/AppHibernationService;->initializeGlobalHibernationStates(Ljava/util/List;)V
 PLcom/android/server/apphibernation/AppHibernationService;->initializeUserHibernationStates(ILjava/util/List;)V
-PLcom/android/server/apphibernation/AppHibernationService;->isAppHibernationEnabled()Z
-PLcom/android/server/apphibernation/AppHibernationService;->isDeviceConfigAppHibernationEnabled()Z
-HPLcom/android/server/apphibernation/AppHibernationService;->isHibernatingForUser(Ljava/lang/String;I)Z
-PLcom/android/server/apphibernation/AppHibernationService;->isHibernatingGlobally(Ljava/lang/String;)Z
-HPLcom/android/server/apphibernation/AppHibernationService;->lambda$new$6(ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/apphibernation/AppHibernationService;->lambda$onBootPhase$0()V
-PLcom/android/server/apphibernation/AppHibernationService;->lambda$onUserUnlocking$5(Lcom/android/server/apphibernation/HibernationStateDiskStore;I)V
+HPLcom/android/server/apphibernation/AppHibernationService;->isHibernatingForUser(Ljava/lang/String;I)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Map;Landroid/util/ArrayMap;
+HPLcom/android/server/apphibernation/AppHibernationService;->isHibernatingGlobally(Ljava/lang/String;)Z
 PLcom/android/server/apphibernation/AppHibernationService;->onBootPhase(I)V
 PLcom/android/server/apphibernation/AppHibernationService;->onStart()V
 PLcom/android/server/apphibernation/AppHibernationService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/apphibernation/AppHibernationService;->setHibernatingForUser(Ljava/lang/String;IZ)V
-HPLcom/android/server/apphibernation/AppHibernationService;->setHibernatingGlobally(Ljava/lang/String;Z)V
-PLcom/android/server/apphibernation/GlobalLevelHibernationProto;-><init>()V
+HPLcom/android/server/apphibernation/AppHibernationService;->setHibernatingForUser(Ljava/lang/String;IZ)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Map;Landroid/util/ArrayMap;
+HPLcom/android/server/apphibernation/AppHibernationService;->setHibernatingGlobally(Ljava/lang/String;Z)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
 PLcom/android/server/apphibernation/GlobalLevelState;-><clinit>()V
-PLcom/android/server/apphibernation/GlobalLevelState;-><init>()V
+PLcom/android/server/apphibernation/GlobalLevelState;->toString()Ljava/lang/String;
 PLcom/android/server/apphibernation/HibernationStateDiskStore;-><init>(Ljava/io/File;Lcom/android/server/apphibernation/ProtoReadWriter;Ljava/util/concurrent/ScheduledExecutorService;)V
 PLcom/android/server/apphibernation/HibernationStateDiskStore;-><init>(Ljava/io/File;Lcom/android/server/apphibernation/ProtoReadWriter;Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/String;)V
 PLcom/android/server/apphibernation/HibernationStateDiskStore;->readHibernationStates()Ljava/util/List;
-PLcom/android/server/apphibernation/UserLevelHibernationProto;-><init>()V
 PLcom/android/server/apphibernation/UserLevelState;-><clinit>()V
-PLcom/android/server/apphibernation/UserLevelState;-><init>()V
+PLcom/android/server/apphibernation/UserLevelState;->toString()Ljava/lang/String;
 HSPLcom/android/server/appop/AppOpMigrationHelperImpl;-><init>()V
 HSPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;-><init>(Lcom/android/server/appop/AppOpsCheckingServiceInterface;)V
-HSPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->addAppOpsModeChangedListener(Lcom/android/server/appop/AppOpsCheckingServiceInterface$AppOpsModeChangedListener;)Z
+HSPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->addAppOpsModeChangedListener(Lcom/android/server/appop/AppOpsService$2;)Z
 HSPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->clearAllModes()V
-HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getForegroundOps(ILjava/lang/String;)Landroid/util/SparseBooleanArray;
-HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getForegroundOps(Ljava/lang/String;I)Landroid/util/SparseBooleanArray;
-PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getNonDefaultPackageModes(Ljava/lang/String;I)Landroid/util/SparseIntArray;
-HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getPackageMode(Ljava/lang/String;II)I
-HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getUidMode(ILjava/lang/String;I)I
+PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getForegroundOps(I)Landroid/util/SparseBooleanArray;
+PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getForegroundOps(ILjava/lang/String;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getNonDefaultPackageModes(ILjava/lang/String;)Landroid/util/SparseIntArray;
+PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getNonDefaultUidModes(I)Landroid/util/SparseIntArray;
+HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getPackageMode(IILjava/lang/String;)I+]Lcom/android/server/appop/AppOpsCheckingServiceInterface;Lcom/android/server/permission/access/appop/AppOpService;
+HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->getUidMode(IILjava/lang/String;)I+]Lcom/android/server/appop/AppOpsCheckingServiceInterface;Lcom/android/server/permission/access/appop/AppOpService;
 HSPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->readState()V
-HPLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->removePackage(Ljava/lang/String;I)Z
-PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->removeUid(I)V
-PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->setUidMode(ILjava/lang/String;II)Z
+PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->setPackageMode(IIILjava/lang/String;)V
+PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->setUidMode(III)Z
 PLcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;->systemReady()V
-HSPLcom/android/server/appop/AppOpsRestrictionsImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/appop/AppOpsRestrictions$AppOpsRestrictionRemovedListener;)V
-HPLcom/android/server/appop/AppOpsRestrictionsImpl;->getUserRestriction(Ljava/lang/Object;II)Z
-HPLcom/android/server/appop/AppOpsRestrictionsImpl;->getUserRestriction(Ljava/lang/Object;IILjava/lang/String;Ljava/lang/String;Z)Z
-PLcom/android/server/appop/AppOpsRestrictionsImpl;->hasGlobalRestrictions(Ljava/lang/Object;)Z
-PLcom/android/server/appop/AppOpsRestrictionsImpl;->hasUserRestrictions(Ljava/lang/Object;)Z
-PLcom/android/server/appop/AppOpsRestrictionsImpl;->putUserRestriction(Ljava/lang/Object;IIZ)Z
-HPLcom/android/server/appop/AppOpsRestrictionsImpl;->putUserRestrictionExclusions(Ljava/lang/Object;ILandroid/os/PackageTagsList;)Z
-PLcom/android/server/appop/AppOpsRestrictionsImpl;->resolveUserId(I)[I
-PLcom/android/server/appop/AppOpsRestrictionsImpl;->setGlobalRestriction(Ljava/lang/Object;IZ)Z
-PLcom/android/server/appop/AppOpsRestrictionsImpl;->setUserRestriction(Ljava/lang/Object;IIZLandroid/os/PackageTagsList;)Z
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda10;->onUidStateChanged(IIZ)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda13;-><init>()V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda13;->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;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda14;->run()V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda15;-><init>()V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda16;-><init>(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda5;-><init>()V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda6;-><init>()V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;->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;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda9;->execute(Ljava/lang/Runnable;)V
+HSPLcom/android/server/appop/AppOpsRecentAccessPersistence;-><init>(Landroid/util/AtomicFile;Lcom/android/server/appop/AppOpsService;)V
+HSPLcom/android/server/appop/AppOpsRecentAccessPersistence;->readPackage(Lcom/android/modules/utils/TypedXmlPullParser;Landroid/util/SparseArray;)V
+HSPLcom/android/server/appop/AppOpsRecentAccessPersistence;->readRecentAccesses(Landroid/util/SparseArray;)V
+HPLcom/android/server/appop/AppOpsRecentAccessPersistence;->writeDeviceAttributedOps(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/appop/AppOpsService$Op;)V
+PLcom/android/server/appop/AppOpsRecentAccessPersistence;->writeRecentAccesses(Landroid/util/SparseArray;)V
+HSPLcom/android/server/appop/AppOpsRestrictionsImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda7;)V
+PLcom/android/server/appop/AppOpsRestrictionsImpl;->dumpRestrictions(Ljava/io/PrintWriter;ILjava/lang/String;Z)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda0;->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;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/appop/AppOpsService;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda12;->execute(Ljava/lang/Runnable;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/appop/AppOpsService;)V
+HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda14;->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;)V+]Lcom/android/internal/app/IAppOpsNotedCallback;Landroid/app/AppOpsManager$6;
+HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda15;-><init>(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V+]Lcom/android/internal/app/IAppOpsAsyncNotedCallback;Lcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub$Proxy;
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda16;-><init>(I)V
+HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda18;-><init>(Landroid/util/SparseLongArray;I)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1;->onInterfaceDied(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda20;-><init>(Landroid/util/SparseLongArray;Lcom/android/server/appop/AttributedOp;I)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda2;-><init>(I)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda3;->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/AppOpsService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/appop/AppOpsService;)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;-><init>(I)V
+PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/appop/AppOpsService$1$1;-><init>(Lcom/android/server/appop/AppOpsService$1;)V
 PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void;
-HSPLcom/android/server/appop/AppOpsService$1;-><init>(Lcom/android/server/appop/AppOpsService;)V
+HSPLcom/android/server/appop/AppOpsService$1;-><init>(Lcom/android/server/appop/AppOpsService;I)V
 PLcom/android/server/appop/AppOpsService$1;->run()V
 HSPLcom/android/server/appop/AppOpsService$2;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HSPLcom/android/server/appop/AppOpsService$3;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/appop/AppOpsService$4;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$5;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$5;->run()V
-PLcom/android/server/appop/AppOpsService$6;-><init>(Lcom/android/server/appop/AppOpsService;)V
+PLcom/android/server/appop/AppOpsService$2;->onUidModeChanged(IILjava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService$3;-><init>(Lcom/android/server/appop/AppOpsService;I)V
+PLcom/android/server/appop/AppOpsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/appop/AppOpsService$6;-><init>(Lcom/android/server/appop/AppOpsService;)V
 PLcom/android/server/appop/AppOpsService$7;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$8;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/util/Pair;)V
 PLcom/android/server/appop/AppOpsService$9;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;)V
-PLcom/android/server/appop/AppOpsService$9;->accept(Landroid/app/AppOpsManager$HistoricalOps;)V
 PLcom/android/server/appop/AppOpsService$9;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appop/AppOpsService$ActiveCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsActiveCallback;III)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$AppOpsManagerInternalImpl-IA;)V
 PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setDeviceAndProfileOwners(Landroid/util/SparseIntArray;)V
-HPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setGlobalRestriction(IZLandroid/os/IBinder;)V
-HSPLcom/android/server/appop/AppOpsService$AppOpsManagerLocalImpl;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HSPLcom/android/server/appop/AppOpsService$AppOpsManagerLocalImpl;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$AppOpsManagerLocalImpl-IA;)V
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda1;->apply(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;
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/appop/AppOpsService;)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda7;->apply(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;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/appop/AppOpsService;)V
+PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setGlobalRestriction(IZLandroid/os/IBinder;)V
+PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setUidModeFromPermissionPolicy(IIILcom/android/internal/app/IAppOpsCallback;)V
+PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda10;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/appop/AppOpsService;I)V
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda4;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda4;->apply(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;
+PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda6;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda6;->apply(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;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/appop/AppOpsService;I)V
 HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->$r8$lambda$9t8iLhni7XlJaYUbHyUsLY8CxCM(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->$r8$lambda$TqGvemNPXzXUjdqWw7kwupm3azw(Lcom/android/server/appop/AppOpsService;IIILjava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->$r8$lambda$isKDS9RXD9cfyW6vB1LFop2lwy4(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->$r8$lambda$p7Z0eGBUU1-Gt7vHG9S-93UhGlY(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;Ljava/lang/String;IZ)I
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->$r8$lambda$q8BbxI-iIBB256_4cFe16ffKxiE(Lcom/android/server/appop/AppOpsService;ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->$r8$lambda$vZeNm9U4ce-mUj2m0fon_vppmA0(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->-$$Nest$fgetmCheckOpsDelegate(Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;)Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;
 HSPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->checkAudioOperation(IIILjava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->checkOperation(IILjava/lang/String;Ljava/lang/String;IZ)I
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->noteOperation(IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->noteProxyOperation(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->checkOperation(IILjava/lang/String;Ljava/lang/String;IZ)I+]Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Lcom/android/server/policy/AppOpsPolicy;
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;I)V+]Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Lcom/android/server/policy/AppOpsPolicy;
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->noteOperation(IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;ZI)Landroid/app/SyncNotedAppOp;+]Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Lcom/android/server/policy/AppOpsPolicy;
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->noteProxyOperation(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;+]Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Lcom/android/server/policy/AppOpsPolicy;
+HPLcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;+]Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Lcom/android/server/policy/AppOpsPolicy;
 PLcom/android/server/appop/AppOpsService$ClientGlobalRestrictionState;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;)V
-PLcom/android/server/appop/AppOpsService$ClientGlobalRestrictionState;->destroy()V
-PLcom/android/server/appop/AppOpsService$ClientGlobalRestrictionState;->isDefault()Z
 PLcom/android/server/appop/AppOpsService$ClientGlobalRestrictionState;->setRestriction(IZ)Z
 PLcom/android/server/appop/AppOpsService$ClientUserRestrictionState;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;)V
-PLcom/android/server/appop/AppOpsService$ClientUserRestrictionState;->destroy()V
-HPLcom/android/server/appop/AppOpsService$ClientUserRestrictionState;->hasRestriction(ILjava/lang/String;Ljava/lang/String;IZ)Z
-PLcom/android/server/appop/AppOpsService$ClientUserRestrictionState;->isDefault()Z
+HPLcom/android/server/appop/AppOpsService$ClientUserRestrictionState;->hasRestriction(ZILjava/lang/String;ILjava/lang/String;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 PLcom/android/server/appop/AppOpsService$ClientUserRestrictionState;->setRestriction(IZLandroid/os/PackageTagsList;I)Z
 HSPLcom/android/server/appop/AppOpsService$Constants;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/Handler;)V
-PLcom/android/server/appop/AppOpsService$Constants;->startMonitoring(Landroid/content/ContentResolver;)V
+PLcom/android/server/appop/AppOpsService$Constants;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/appop/AppOpsService$Constants;->updateConstants()V
-HPLcom/android/server/appop/AppOpsService$ModeCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsCallback;IIIII)V
-PLcom/android/server/appop/AppOpsService$ModeCallback;->onOpModeChanged(IILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/appop/AppOpsService$ModeCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsCallback;IIII)V
+PLcom/android/server/appop/AppOpsService$ModeCallback;->binderDied()V
+PLcom/android/server/appop/AppOpsService$ModeCallback;->toString()Ljava/lang/String;
 PLcom/android/server/appop/AppOpsService$NotedCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsNotedCallback;III)V
-HSPLcom/android/server/appop/AppOpsService$Op;->-$$Nest$mgetOrCreateAttribution(Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AttributedOp;
+PLcom/android/server/appop/AppOpsService$NotedCallback;->toString()Ljava/lang/String;
 HSPLcom/android/server/appop/AppOpsService$Op;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;II)V
-HPLcom/android/server/appop/AppOpsService$Op;->createEntryLocked()Landroid/app/AppOpsManager$OpEntry;
 HSPLcom/android/server/appop/AppOpsService$Op;->getOrCreateAttribution(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AttributedOp;
 HPLcom/android/server/appop/AppOpsService$Op;->isRunning()Z
+PLcom/android/server/appop/AppOpsService$Op;->removeAttributionsWithNoTime()V
 HSPLcom/android/server/appop/AppOpsService$Ops;-><init>(Ljava/lang/String;Lcom/android/server/appop/AppOpsService$UidState;)V
 PLcom/android/server/appop/AppOpsService$PackageVerificationResult;-><init>(Landroid/app/AppOpsManager$RestrictionBypass;Z)V
 PLcom/android/server/appop/AppOpsService$StartedCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsStartedCallback;III)V
+PLcom/android/server/appop/AppOpsService$StartedCallback;->toString()Ljava/lang/String;
 HSPLcom/android/server/appop/AppOpsService$UidState;-><init>(Lcom/android/server/appop/AppOpsService;I)V
-PLcom/android/server/appop/AppOpsService$UidState;->clear()V
+HPLcom/android/server/appop/AppOpsService$UidState;->dump(Ljava/io/PrintWriter;J)V
 HPLcom/android/server/appop/AppOpsService$UidState;->evalMode(II)I
-HPLcom/android/server/appop/AppOpsService$UidState;->getState()I
-HPLcom/android/server/appop/AppOpsService;->$r8$lambda$6k_N9hZ8kvjX_OAIx8qy1xpZV_s(Lcom/android/server/appop/AppOpsService;Ljava/lang/Runnable;)V
-HPLcom/android/server/appop/AppOpsService;->$r8$lambda$K1us0zRuosg7DEfhttpLHrRzwQ8(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/appop/AppOpsService;->$r8$lambda$KZ8csPYjnHRgqtsqPZIdzSZk2M0(Lcom/android/server/appop/AppOpsService;IZI)V
-PLcom/android/server/appop/AppOpsService;->$r8$lambda$_3mKgx97gA3YgX5RtEESYaD_JvY(Lcom/android/server/appop/AppOpsService;II)V
-PLcom/android/server/appop/AppOpsService;->$r8$lambda$iHRjxQ_m4gxYrCioytzJw8v4y_Q(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
-HPLcom/android/server/appop/AppOpsService;->$r8$lambda$sKlvEb6CGkKf4LV4kVBIOznFZ9c(Lcom/android/server/appop/AppOpsService;IIZ)V
-PLcom/android/server/appop/AppOpsService;->$r8$lambda$tCrK7GHyC4CL9PmON8WCNADuzSQ(Lcom/android/server/appop/AppOpsService;IIZLjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->$r8$lambda$uCCOXFJxz3bCZJrsIAuF17lDZks(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;III)V
-PLcom/android/server/appop/AppOpsService;->$r8$lambda$xAhQeGPgXGiSjmtMzzdf_avZ1GE(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/OnOpModeChangedListener;IILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->-$$Nest$fgetmOpGlobalRestrictions(Lcom/android/server/appop/AppOpsService;)Landroid/util/ArrayMap;
-PLcom/android/server/appop/AppOpsService;->-$$Nest$fgetmRarelyUsedPackages(Lcom/android/server/appop/AppOpsService;)Landroid/util/ArraySet;
-PLcom/android/server/appop/AppOpsService;->-$$Nest$fputmRarelyUsedPackages(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;)V
-PLcom/android/server/appop/AppOpsService;->-$$Nest$mcheckAudioOperationImpl(Lcom/android/server/appop/AppOpsService;IIILjava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService;->-$$Nest$mcheckOperationImpl(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;Ljava/lang/String;IZ)I
+HPLcom/android/server/appop/AppOpsService$UidState;->getState()I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/appop/AppOpsService;->-$$Nest$mcheckAudioOperationImpl(Lcom/android/server/appop/AppOpsService;IIILjava/lang/String;)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/appop/AppOpsService;->-$$Nest$mcheckOperationImpl(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;Ljava/lang/String;IZ)I+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/appop/AppOpsCheckingServiceInterface;Lcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;
 HPLcom/android/server/appop/AppOpsService;->-$$Nest$mfinishOperationImpl(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/appop/AppOpsService;->-$$Nest$mgetPackageListAndResample(Lcom/android/server/appop/AppOpsService;)Ljava/util/List;
-HPLcom/android/server/appop/AppOpsService;->-$$Nest$mgetPackageManagerInternal(Lcom/android/server/appop/AppOpsService;)Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/appop/AppOpsService;->-$$Nest$minitializeRarelyUsedPackagesList(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;)V
-HPLcom/android/server/appop/AppOpsService;->-$$Nest$mnoteOperationImpl(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/appop/AppOpsService;->-$$Nest$mnoteProxyOperationImpl(Lcom/android/server/appop/AppOpsService;ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/appop/AppOpsService;->-$$Nest$mpackageRemovedLocked(Lcom/android/server/appop/AppOpsService;ILjava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->-$$Nest$mnoteOperationImpl(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;ZI)Landroid/app/SyncNotedAppOp;
+HPLcom/android/server/appop/AppOpsService;->-$$Nest$mnoteProxyOperationImpl(Lcom/android/server/appop/AppOpsService;ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;+]Landroid/content/Context;Landroid/app/ContextImpl;
 HPLcom/android/server/appop/AppOpsService;->-$$Nest$mstartOperationImpl(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;
 HSPLcom/android/server/appop/AppOpsService;-><clinit>()V
 HSPLcom/android/server/appop/AppOpsService;-><init>(Ljava/io/File;Ljava/io/File;Landroid/os/Handler;Landroid/content/Context;)V
-HPLcom/android/server/appop/AppOpsService;->checkAudioOperation(IIILjava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService;->checkAudioOperationImpl(IIILjava/lang/String;)I
+HPLcom/android/server/appop/AppOpsService;->checkAudioOperation(IIILjava/lang/String;)I+]Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;Lcom/android/server/policy/AppOpsPolicy;
 HPLcom/android/server/appop/AppOpsService;->checkOperation(IILjava/lang/String;)I
-PLcom/android/server/appop/AppOpsService;->checkOperationForDevice(IILjava/lang/String;I)I
-HPLcom/android/server/appop/AppOpsService;->checkOperationImpl(IILjava/lang/String;Ljava/lang/String;IZ)I
-HPLcom/android/server/appop/AppOpsService;->checkOperationRaw(IILjava/lang/String;Ljava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService;->checkOperationUnchecked(IILjava/lang/String;Ljava/lang/String;IZ)I
-HPLcom/android/server/appop/AppOpsService;->checkPackage(ILjava/lang/String;)I
+PLcom/android/server/appop/AppOpsService;->checkOperationForDevice(IILjava/lang/String;Ljava/lang/String;I)I
+HPLcom/android/server/appop/AppOpsService;->checkOperationRawForDevice(IILjava/lang/String;Ljava/lang/String;I)I
+HPLcom/android/server/appop/AppOpsService;->checkPackage(ILjava/lang/String;)I+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
 PLcom/android/server/appop/AppOpsService;->checkSystemUid(Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->collectAsyncNotedOp(ILjava/lang/String;ILjava/lang/String;ILjava/lang/String;Z)V
-HPLcom/android/server/appop/AppOpsService;->collectOps(Lcom/android/server/appop/AppOpsService$Ops;[I)Ljava/util/ArrayList;
-PLcom/android/server/appop/AppOpsService;->createSandboxUidStateIfNotExistsForAppLocked(I)V
-HPLcom/android/server/appop/AppOpsService;->enforceManageAppOpsModes(III)V
+HPLcom/android/server/appop/AppOpsService;->collectAsyncNotedOp(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V+]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList$Builder$1;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/appop/AppOpsService;->collectOps(Lcom/android/server/appop/AppOpsService$Ops;[ILjava/lang/String;)Ljava/util/ArrayList;+]Landroid/content/Context;Landroid/app/ContextImpl;
+PLcom/android/server/appop/AppOpsService;->doForAllAttributedOpsInUidLocked(ILjava/util/function/Consumer;)V
+HPLcom/android/server/appop/AppOpsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;Ljava/lang/String;IJLcom/android/server/appop/AppOpsService$Op;JLjava/text/SimpleDateFormat;Ljava/util/Date;)V
+PLcom/android/server/appop/AppOpsService;->enforceManageAppOpsModes(III)V
 PLcom/android/server/appop/AppOpsService;->ensureHistoricalOpRequestIsValid(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJI)V
 PLcom/android/server/appop/AppOpsService;->extractAsyncOps(Ljava/lang/String;)Ljava/util/List;
-HPLcom/android/server/appop/AppOpsService;->filterAppAccessUnlocked(Ljava/lang/String;I)Z
 HPLcom/android/server/appop/AppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->finishOperationImpl(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/appop/AppOpsService;->finishOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/appop/AppOpsService;->getAsyncNotedOpsKey(Ljava/lang/String;I)Landroid/util/Pair;
-HPLcom/android/server/appop/AppOpsService;->getBypassforPackage(Lcom/android/server/pm/pkg/PackageState;)Landroid/app/AppOpsManager$RestrictionBypass;
 PLcom/android/server/appop/AppOpsService;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IIJJILandroid/os/RemoteCallback;)V
-PLcom/android/server/appop/AppOpsService;->getOpEntryForResult(Lcom/android/server/appop/AppOpsService$Op;)Landroid/app/AppOpsManager$OpEntry;
-HPLcom/android/server/appop/AppOpsService;->getOpLocked(IILjava/lang/String;Ljava/lang/String;ZLandroid/app/AppOpsManager$RestrictionBypass;Z)Lcom/android/server/appop/AppOpsService$Op;
+PLcom/android/server/appop/AppOpsService;->getOpEntryForResult(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)Landroid/app/AppOpsManager$OpEntry;
 HPLcom/android/server/appop/AppOpsService;->getOpLocked(Lcom/android/server/appop/AppOpsService$Ops;IIZ)Lcom/android/server/appop/AppOpsService$Op;
 HPLcom/android/server/appop/AppOpsService;->getOpsLocked(ILjava/lang/String;Ljava/lang/String;ZLandroid/app/AppOpsManager$RestrictionBypass;Z)Lcom/android/server/appop/AppOpsService$Ops;
 PLcom/android/server/appop/AppOpsService;->getPackageListAndResample()Ljava/util/List;
 HPLcom/android/server/appop/AppOpsService;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/appop/AppOpsService;->getPackageManagerLocal()Lcom/android/server/pm/PackageManagerLocal;
-HPLcom/android/server/appop/AppOpsService;->getPackageNamesForSampling()Ljava/util/List;
-HPLcom/android/server/appop/AppOpsService;->getPackagesForOps([I)Ljava/util/List;
-HPLcom/android/server/appop/AppOpsService;->getPackagesForUid(I)[Ljava/lang/String;
+PLcom/android/server/appop/AppOpsService;->getPackagesForOpsForDevice([ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/appop/AppOpsService;->getPackagesForUid(I)[Ljava/lang/String;
 HPLcom/android/server/appop/AppOpsService;->getPersistentId(I)Ljava/lang/String;
-PLcom/android/server/appop/AppOpsService;->getRuntimeAppOpsList()Ljava/util/List;
-HSPLcom/android/server/appop/AppOpsService;->getUidStateLocked(IZ)Lcom/android/server/appop/AppOpsService$UidState;
-HPLcom/android/server/appop/AppOpsService;->getUidStateTracker()Lcom/android/server/appop/AppOpsUidStateTracker;
-PLcom/android/server/appop/AppOpsService;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
-PLcom/android/server/appop/AppOpsService;->initializePackageUidStateLocked(IILjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->initializeRarelyUsedPackagesList(Landroid/util/ArraySet;)V
+HPLcom/android/server/appop/AppOpsService;->getUidStateLocked(IZ)Lcom/android/server/appop/AppOpsService$UidState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/appop/AppOpsService;->getUidStateTracker()Lcom/android/server/appop/AppOpsUidStateTrackerImpl;
 PLcom/android/server/appop/AppOpsService;->initializeUidStates()V
-PLcom/android/server/appop/AppOpsService;->initializeUserUidStatesLocked(ILjava/util/Map;)V
-HPLcom/android/server/appop/AppOpsService;->isAttributionInPackage(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z
-HPLcom/android/server/appop/AppOpsService;->isIncomingPackageValid(Ljava/lang/String;I)Z
-HPLcom/android/server/appop/AppOpsService;->isOpRestrictedDueToSuspend(ILjava/lang/String;I)Z
-HPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$RestrictionBypass;Z)Z
-HPLcom/android/server/appop/AppOpsService;->isPackageExisted(Ljava/lang/String;)Z
+PLcom/android/server/appop/AppOpsService;->initializeUserUidStatesLocked(ILjava/util/Map;Landroid/util/SparseBooleanArray;)V
+PLcom/android/server/appop/AppOpsService;->isAttributionInPackage(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z
+PLcom/android/server/appop/AppOpsService;->isAttributionTagDefined(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/appop/AppOpsService;->isIncomingPackageValid(ILjava/lang/String;)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
+HPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$RestrictionBypass;Z)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+PLcom/android/server/appop/AppOpsService;->isOperationActive(IILjava/lang/String;)Z
 PLcom/android/server/appop/AppOpsService;->isSamplingTarget(Landroid/content/pm/PackageInfo;)Z
-HPLcom/android/server/appop/AppOpsService;->isSpecialPackage(ILjava/lang/String;)Z
-PLcom/android/server/appop/AppOpsService;->isValidVirtualDeviceId(I)Z
-PLcom/android/server/appop/AppOpsService;->lambda$collectAsyncNotedOp$4(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
-HPLcom/android/server/appop/AppOpsService;->lambda$getUidStateTracker$0(Ljava/lang/Runnable;)V
-HPLcom/android/server/appop/AppOpsService;->lambda$systemReady$2(Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/appop/AppOpsService;->noteOperation(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService;->noteOperationImpl(IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService;->noteOperationUnchecked(IILjava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService;->noteProxyOperationImpl(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/appop/AppOpsService;->noteProxyOperationWithState(ILandroid/content/AttributionSourceState;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;
+HPLcom/android/server/appop/AppOpsService;->isValidVirtualDeviceId(I)Z
+PLcom/android/server/appop/AppOpsService;->logVerifyAndGetBypassFailure(ILjava/lang/SecurityException;Ljava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->noteOperation(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;+]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;
+HPLcom/android/server/appop/AppOpsService;->noteOperationUnchecked(IILjava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;IIZLjava/lang/String;ZI)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsCheckingServiceInterface;Lcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;
+HPLcom/android/server/appop/AppOpsService;->noteOperationsInBatch(Ljava/util/Map;)V
+HPLcom/android/server/appop/AppOpsService;->noteProxyOperationWithState(ILandroid/content/AttributionSourceState;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp;
 PLcom/android/server/appop/AppOpsService;->notifyOpChanged(Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Lcom/android/server/appop/OnOpModeChangedListener;IILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->notifyOpChangedForAllPkgsInUid(IIZLjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->notifyOpChecked(Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;III)V
-PLcom/android/server/appop/AppOpsService;->notifyStorageManagerOpModeChangedSync(IILjava/lang/String;II)V
+HPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Lcom/android/server/appop/AppOpsService$ModeCallback;IILjava/lang/String;Ljava/lang/String;)V+]Lcom/android/internal/app/IAppOpsCallback;Landroid/app/AppOpsManager$3;,Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;,Lcom/android/server/am/AppPermissionTracker$MyAppOpsCallback;
 PLcom/android/server/appop/AppOpsService;->notifyWatchersOnDefaultDevice(II)V
-HPLcom/android/server/appop/AppOpsService;->onUidStateChanged(IIZ)V
-HPLcom/android/server/appop/AppOpsService;->packageRemovedLocked(ILjava/lang/String;)V
+PLcom/android/server/appop/AppOpsService;->onUidProcessDeathLocked(I)V
 PLcom/android/server/appop/AppOpsService;->permissionToOpCode(Ljava/lang/String;)I
 PLcom/android/server/appop/AppOpsService;->prepareInternalCallbacks()V
-HSPLcom/android/server/appop/AppOpsService;->publish()V
-HSPLcom/android/server/appop/AppOpsService;->readAttributionOp(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)V
-HSPLcom/android/server/appop/AppOpsService;->readOp(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;)V
-HSPLcom/android/server/appop/AppOpsService;->readPackage(Lcom/android/modules/utils/TypedXmlPullParser;)V
+PLcom/android/server/appop/AppOpsService;->pruneOpLocked(Lcom/android/server/appop/AppOpsService$Op;ILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->readRecentAccesses()V
-HSPLcom/android/server/appop/AppOpsService;->readRecentAccesses(Landroid/util/AtomicFile;)V
-HSPLcom/android/server/appop/AppOpsService;->readUid(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageAndGetConfig(Ljava/lang/String;Landroid/app/SyncNotedAppOp;Ljava/lang/String;)Lcom/android/internal/app/MessageSamplingConfig;
-HPLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageAsyncLocked(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageInternalLocked(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/appop/AppOpsService;->refreshAttributionsLocked(Lcom/android/server/pm/pkg/AndroidPackage;I)V
+PLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageAndGetConfig(Ljava/lang/String;Landroid/app/SyncNotedAppOp;Ljava/lang/String;)Lcom/android/internal/app/MessageSamplingConfig;
+HPLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageInternalLocked(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/appop/AppOpsService;->resampleAppOpForPackageLocked(Ljava/lang/String;Z)V
 PLcom/android/server/appop/AppOpsService;->resamplePackageAndAppOpLocked(Ljava/util/List;)V
 HPLcom/android/server/appop/AppOpsService;->resolveUid(Ljava/lang/String;)I
 PLcom/android/server/appop/AppOpsService;->scheduleFastWriteLocked()V
-HPLcom/android/server/appop/AppOpsService;->scheduleOpActiveChangedIfNeededLocked(IILjava/lang/String;Ljava/lang/String;IZII)V
-HPLcom/android/server/appop/AppOpsService;->scheduleOpNotedIfNeededLocked(IILjava/lang/String;Ljava/lang/String;III)V
-HPLcom/android/server/appop/AppOpsService;->scheduleOpStartedIfNeededLocked(IILjava/lang/String;Ljava/lang/String;IIIIII)V
-HPLcom/android/server/appop/AppOpsService;->scheduleWriteLocked()V
-PLcom/android/server/appop/AppOpsService;->setAppOpsPolicy(Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;)V
-HPLcom/android/server/appop/AppOpsService;->setAudioRestriction(IIII[Ljava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->scheduleOpActiveChangedIfNeededLocked(IILjava/lang/String;Ljava/lang/String;IZII)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/appop/AppOpsService;->scheduleOpNotedIfNeededLocked(IIILjava/lang/String;Ljava/lang/String;II)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/appop/AppOpsService;->scheduleOpStartedIfNeededLocked(IILjava/lang/String;Ljava/lang/String;IIIIII)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/appop/AppOpsService;->setAudioRestriction(IIII[Ljava/lang/String;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/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
 PLcom/android/server/appop/AppOpsService;->setUidMode(III)V
 HPLcom/android/server/appop/AppOpsService;->setUidMode(IIILcom/android/internal/app/IAppOpsCallback;)V
-HPLcom/android/server/appop/AppOpsService;->setUserRestriction(IZLandroid/os/IBinder;ILandroid/os/PackageTagsList;)V
-HPLcom/android/server/appop/AppOpsService;->setUserRestrictionNoCheck(IZLandroid/os/IBinder;ILandroid/os/PackageTagsList;)V
+PLcom/android/server/appop/AppOpsService;->setUserRestriction(IZLandroid/os/IBinder;ILandroid/os/PackageTagsList;)V
+PLcom/android/server/appop/AppOpsService;->setUserRestrictionNoCheck(IZLandroid/os/IBinder;ILandroid/os/PackageTagsList;)V
 PLcom/android/server/appop/AppOpsService;->setUserRestrictions(Landroid/os/Bundle;Landroid/os/IBinder;I)V
-HPLcom/android/server/appop/AppOpsService;->shouldCollectNotes(I)Z
-PLcom/android/server/appop/AppOpsService;->shouldIgnoreCallback(III)Z
+PLcom/android/server/appop/AppOpsService;->shouldCollectNotes(I)Z
+HPLcom/android/server/appop/AppOpsService;->shouldIgnoreCallback(III)Z
+PLcom/android/server/appop/AppOpsService;->shouldStartForMode(IZ)Z
+HPLcom/android/server/appop/AppOpsService;->shouldUseNewCheckOp()Z
 HPLcom/android/server/appop/AppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService;->startOperationImpl(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService;->startOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/appop/AppOpsService;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
+HPLcom/android/server/appop/AppOpsService;->startOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;IIZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsCheckingServiceInterface;Lcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;
+PLcom/android/server/appop/AppOpsService;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
 PLcom/android/server/appop/AppOpsService;->startWatchingAsyncNoted(Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
 PLcom/android/server/appop/AppOpsService;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V
 HPLcom/android/server/appop/AppOpsService;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
-HPLcom/android/server/appop/AppOpsService;->startWatchingNoted([ILcom/android/internal/app/IAppOpsNotedCallback;)V
-HPLcom/android/server/appop/AppOpsService;->startWatchingStarted([ILcom/android/internal/app/IAppOpsStartedCallback;)V
+PLcom/android/server/appop/AppOpsService;->startWatchingNoted([ILcom/android/internal/app/IAppOpsNotedCallback;)V
+PLcom/android/server/appop/AppOpsService;->startWatchingStarted([ILcom/android/internal/app/IAppOpsStartedCallback;)V
+PLcom/android/server/appop/AppOpsService;->stopWatchingActive(Lcom/android/internal/app/IAppOpsActiveCallback;)V
+PLcom/android/server/appop/AppOpsService;->stopWatchingAsyncNoted(Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
+HPLcom/android/server/appop/AppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V+]Landroid/os/IBinder;Landroid/app/AppOpsManager$3;,Landroid/os/BinderProxy;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/app/IAppOpsCallback;Landroid/app/AppOpsManager$3;,Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;
+PLcom/android/server/appop/AppOpsService;->stopWatchingNoted(Lcom/android/internal/app/IAppOpsNotedCallback;)V
+PLcom/android/server/appop/AppOpsService;->stopWatchingStarted(Lcom/android/internal/app/IAppOpsStartedCallback;)V
 HPLcom/android/server/appop/AppOpsService;->switchPackageIfBootTimeOrRarelyUsedLocked(Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->systemReady()V
-HPLcom/android/server/appop/AppOpsService;->updatePermissionRevokedCompat(III)V
-PLcom/android/server/appop/AppOpsService;->updateStartedOpModeForUidForDefaultDeviceLocked(IZI)V
-PLcom/android/server/appop/AppOpsService;->updateStartedOpModeForUserForDefaultDevice(IZI)V
-HPLcom/android/server/appop/AppOpsService;->updateUidProcState(III)V
-HPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;
-HPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;
-HPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;
-HPLcom/android/server/appop/AppOpsService;->verifyIncomingOp(I)V
-PLcom/android/server/appop/AppOpsService;->verifyIncomingProxyUid(Landroid/content/AttributionSource;)V
-HPLcom/android/server/appop/AppOpsService;->verifyIncomingUid(I)V
-HPLcom/android/server/appop/AppOpsService;->writeRecentAccesses()V
-PLcom/android/server/appop/AppOpsUidStateTracker;->processStateToUidState(I)I
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1;-><init>()V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
+PLcom/android/server/appop/AppOpsService;->systemReady()V
+PLcom/android/server/appop/AppOpsService;->trimUidStatesLocked(Landroid/util/SparseBooleanArray;Ljava/util/Map;)V
+PLcom/android/server/appop/AppOpsService;->updateStartedOpModeForUidForDefaultDeviceLocked(IIZ)V
+HPLcom/android/server/appop/AppOpsService;->validateOpRequest(IILjava/lang/String;Ljava/lang/String;IZ)Ljava/lang/String;
+HPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/compat/IPlatformCompat;Lcom/android/server/compat/PlatformCompat;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
+HPLcom/android/server/appop/AppOpsService;->verifyIncomingOp(I)V+]Landroid/content/Context;Landroid/app/ContextImpl;
+HPLcom/android/server/appop/AppOpsService;->verifyIncomingProxyUid(Landroid/content/AttributionSource;)V
+HPLcom/android/server/appop/AppOpsService;->verifyIncomingUid(I)V+]Landroid/content/Context;Landroid/app/ContextImpl;
+PLcom/android/server/appop/AppOpsService;->writeRecentAccesses()V
+PLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/appop/AppOpsCheckingServiceInterface;Lcom/android/server/appop/AppOpsCheckingServiceTracingDecorator;
+HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda12;Ljava/lang/Runnable;I)V
 HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda0;->run()V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda1;->run()V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->$r8$lambda$BDK_o82z4D0CLSzizoWclTSuQPc(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->$r8$lambda$Xv0rzRrxYVvZ3ael2cDamJtHe_M(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;-><init>(Landroid/os/Handler;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;-><init>(Landroid/os/Handler;Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda12;)V
 HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->execute(Ljava/lang/Runnable;)V
 HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->executeDelayed(Ljava/lang/Runnable;J)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->lambda$execute$0(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->lambda$executeDelayed$1(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda0;-><init>(I)V
 HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda0;->accept(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/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1;-><init>()V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda2;-><init>()V
 HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;-><init>(Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;Ljava/lang/Thread;)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logCommitUidState(IIIZZ)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logCommitUidStateAsync(JIIIZZ)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logEvalForegroundMode(IIIII)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logEvalForegroundModeAsync(JIIIII)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logUpdateUidProcState(III)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logUpdateUidProcStateAsync(JIII)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->$r8$lambda$DDarXSJMLhcQjOvjQGC1suxs48A(Lcom/android/server/appop/AppOpsUidStateTrackerImpl;I)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl;-><clinit>()V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl;-><init>(Landroid/app/ActivityManagerInternal;Landroid/os/Handler;Ljava/util/concurrent/Executor;Lcom/android/internal/os/Clock;Lcom/android/server/appop/AppOpsService$Constants;)V
+PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;-><init>(Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;)V
 PLcom/android/server/appop/AppOpsUidStateTrackerImpl;-><init>(Landroid/app/ActivityManagerInternal;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;Lcom/android/internal/os/Clock;Lcom/android/server/appop/AppOpsService$Constants;Ljava/lang/Thread;)V
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->addUidStateChangedCallback(Ljava/util/concurrent/Executor;Lcom/android/server/appop/AppOpsUidStateTracker$UidStateChangedCallback;)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->commitUidPendingState(I)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->evalMode(III)I
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->evalModeInternal(IIII)I
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getOpCapability(I)I
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidAppWidgetVisible(I)Z
-PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidCapability(I)I
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidState(I)I
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidStateLocked(I)I
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidPendingStateIfNeeded(I)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidPendingStateIfNeededLocked(I)V
-HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidProcState(III)V
-PLcom/android/server/appop/AttributedOp$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;-><init>(JJLandroid/os/IBinder;ILjava/lang/String;Ljava/lang/Runnable;ILandroid/app/AppOpsManager$OpEventProxyInfo;III)V
-HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->finish()V
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getAttributionChainId()I
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getAttributionFlags()I
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getClientId()Landroid/os/IBinder;
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getFlags()I
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getProxy()Landroid/app/AppOpsManager$OpEventProxyInfo;
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getStartElapsedTime()J
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getStartTime()J
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getUidState()I
-PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getVirtualDeviceId()I
-HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->reinit(JJLandroid/os/IBinder;Ljava/lang/String;ILjava/lang/Runnable;IILandroid/app/AppOpsManager$OpEventProxyInfo;IILandroid/util/Pools$Pool;)V
-HSPLcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;-><init>(Lcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;I)V
-HPLcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;->acquire(JJLandroid/os/IBinder;Ljava/lang/String;ILjava/lang/Runnable;ILjava/lang/String;Ljava/lang/String;IIII)Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;
-HSPLcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;-><init>(I)V
-HSPLcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;->acquire(ILjava/lang/String;Ljava/lang/String;)Landroid/app/AppOpsManager$OpEventProxyInfo;
+HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->commitUidPendingState(I)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Ljava/util/concurrent/Executor;Landroid/os/HandlerExecutor;,Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1;
+PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->dumpEvents(Ljava/io/PrintWriter;)V
+HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->evalMode(III)I+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/concurrent/Executor;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1;
+HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidPendingStateIfNeeded(I)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;
+HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidProcState(III)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1;]Ljava/util/concurrent/Executor;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1;
 HSPLcom/android/server/appop/AttributedOp;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/appop/AppOpsService$Op;)V
-HPLcom/android/server/appop/AttributedOp;->accessed(ILjava/lang/String;Ljava/lang/String;II)V
-HSPLcom/android/server/appop/AttributedOp;->accessed(JJILjava/lang/String;Ljava/lang/String;II)V
-HPLcom/android/server/appop/AttributedOp;->createAttributedOpEntryLocked()Landroid/app/AppOpsManager$AttributedOpEntry;
-HPLcom/android/server/appop/AttributedOp;->deepClone(Landroid/util/LongSparseArray;)Landroid/util/LongSparseArray;
-HPLcom/android/server/appop/AttributedOp;->finishOrPause(Landroid/os/IBinder;ZZ)V
-HPLcom/android/server/appop/AttributedOp;->finished(Landroid/os/IBinder;)V
-HPLcom/android/server/appop/AttributedOp;->finished(Landroid/os/IBinder;Z)V
-HPLcom/android/server/appop/AttributedOp;->isPaused()Z
+HSPLcom/android/server/appop/AttributedOp;->accessed(JJILjava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;
+PLcom/android/server/appop/AttributedOp;->createAttributedOpEntryLocked()Landroid/app/AppOpsManager$AttributedOpEntry;
+PLcom/android/server/appop/AttributedOp;->deepClone(Landroid/util/LongSparseArray;)Landroid/util/LongSparseArray;
+PLcom/android/server/appop/AttributedOp;->doForAllInProgressStartOpEvents(Ljava/util/function/Consumer;)V
+HPLcom/android/server/appop/AttributedOp;->finishOrPause(Landroid/os/IBinder;ZZ)V+]Landroid/os/IBinder;Landroid/os/Binder;,Landroid/os/BinderProxy;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;
+PLcom/android/server/appop/AttributedOp;->isPaused()Z
 HPLcom/android/server/appop/AttributedOp;->isRunning()Z
 HPLcom/android/server/appop/AttributedOp;->onUidStateChanged(I)V
 HPLcom/android/server/appop/AttributedOp;->rejected(II)V
-HSPLcom/android/server/appop/AttributedOp;->rejected(JII)V
-HPLcom/android/server/appop/AttributedOp;->started(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIIII)V
-HPLcom/android/server/appop/AttributedOp;->startedOrPaused(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIIZZII)V
+HSPLcom/android/server/appop/AttributedOp;->rejected(IIJ)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;
+HPLcom/android/server/appop/AttributedOp;->startedOrPaused(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIZZ)V+]Landroid/os/IBinder;Landroid/os/Binder;,Landroid/os/BinderProxy;
 PLcom/android/server/appop/AudioRestrictionManager$Restriction;-><clinit>()V
-PLcom/android/server/appop/AudioRestrictionManager$Restriction;-><init>()V
-PLcom/android/server/appop/AudioRestrictionManager$Restriction;-><init>(Lcom/android/server/appop/AudioRestrictionManager$Restriction-IA;)V
 HSPLcom/android/server/appop/AudioRestrictionManager;-><clinit>()V
 HSPLcom/android/server/appop/AudioRestrictionManager;-><init>()V
-PLcom/android/server/appop/AudioRestrictionManager;->checkAudioOperation(IIILjava/lang/String;)I
-HPLcom/android/server/appop/AudioRestrictionManager;->checkZenModeRestrictionLocked(IIILjava/lang/String;)I
-HPLcom/android/server/appop/AudioRestrictionManager;->setZenModeAudioRestriction(IIII[Ljava/lang/String;)V
+PLcom/android/server/appop/AudioRestrictionManager;->hasActiveRestrictions()Z
 PLcom/android/server/appop/DiscreteRegistry$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/appop/DiscreteRegistry;)V
-PLcom/android/server/appop/DiscreteRegistry$DiscreteOp$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;-><init>(Lcom/android/server/appop/DiscreteRegistry;)V
-PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->addDiscreteAccess(Ljava/lang/String;IIJJII)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->deserialize(Lcom/android/modules/utils/TypedXmlPullParser;J)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->getOrCreateDiscreteOpEventsList(Ljava/lang/String;)Ljava/util/List;
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->serialize(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;->-$$Nest$mserialize(Lcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;-><init>(Lcom/android/server/appop/DiscreteRegistry;JJIIII)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;->serialize(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->-$$Nest$mclearHistory(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;ILjava/lang/String;)V
-PLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->-$$Nest$mreadFromFile(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;Ljava/io/File;J)V
+PLcom/android/server/appop/DiscreteRegistry$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HPLcom/android/server/appop/DiscreteRegistry$DiscreteDeviceOp;->getOrCreateDiscreteOpEventsList(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/appop/DiscreteRegistry$DiscreteOp$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/appop/DiscreteRegistry$DiscreteOp$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;-><init>(IIJJII)V
 PLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->-$$Nest$mwriteToStream(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;Ljava/io/FileOutputStream;)V
-HSPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;-><init>(Lcom/android/server/appop/DiscreteRegistry;I)V
-PLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->addDiscreteAccess(IILjava/lang/String;Ljava/lang/String;IIJJII)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->clearHistory(ILjava/lang/String;)V
+HSPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;-><init>(I)V
+HPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->addDiscreteAccess(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIJJII)V+]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->getOrCreateDiscreteUidOps(I)Lcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;
-PLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->isEmpty()Z
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->readFromFile(Ljava/io/File;J)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteOps;->writeToStream(Ljava/io/FileOutputStream;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;-><init>(Lcom/android/server/appop/DiscreteRegistry;)V
-PLcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;->addDiscreteAccess(ILjava/lang/String;IIJJII)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;->deserialize(Lcom/android/modules/utils/TypedXmlPullParser;J)V
 HPLcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;->getOrCreateDiscreteOp(I)Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;
-HPLcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;->serialize(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;-><init>(Lcom/android/server/appop/DiscreteRegistry;)V
-PLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->addDiscreteAccess(ILjava/lang/String;Ljava/lang/String;IIJJII)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->deserialize(Lcom/android/modules/utils/TypedXmlPullParser;J)V
 HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->getOrCreateDiscretePackageOps(Ljava/lang/String;)Lcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;)V
-HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->serialize(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/DiscreteRegistry;->-$$Nest$smstableListMerge(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
+PLcom/android/server/appop/DiscreteRegistry;->-$$Nest$smdiscretizeDuration(J)J
 HSPLcom/android/server/appop/DiscreteRegistry;-><clinit>()V
-HSPLcom/android/server/appop/DiscreteRegistry;-><init>(Ljava/lang/Object;)V
-HPLcom/android/server/appop/DiscreteRegistry;->clearHistory()V
-HPLcom/android/server/appop/DiscreteRegistry;->clearHistory(ILjava/lang/String;)V
-HPLcom/android/server/appop/DiscreteRegistry;->clearOnDiskHistoryLocked()V
-HPLcom/android/server/appop/DiscreteRegistry;->createDiscreteAccessDir()V
-HSPLcom/android/server/appop/DiscreteRegistry;->createDiscreteAccessDirLocked()V
+HSPLcom/android/server/appop/DiscreteRegistry;-><init>(Lcom/android/server/appop/AppOpsService;)V
 PLcom/android/server/appop/DiscreteRegistry;->deleteOldDiscreteHistoryFilesLocked()V
-HPLcom/android/server/appop/DiscreteRegistry;->getAllDiscreteOps()Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;
-HPLcom/android/server/appop/DiscreteRegistry;->isDiscreteOp(II)Z
 PLcom/android/server/appop/DiscreteRegistry;->parseOpsList(Ljava/lang/String;)[I
-HPLcom/android/server/appop/DiscreteRegistry;->persistDiscreteOpsLocked(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;)V
-HPLcom/android/server/appop/DiscreteRegistry;->readDiscreteOpsFromDisk(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;)V
+PLcom/android/server/appop/DiscreteRegistry;->persistDiscreteOpsLocked(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;)V
 HSPLcom/android/server/appop/DiscreteRegistry;->readLargestChainIdFromDiskLocked()I
-HPLcom/android/server/appop/DiscreteRegistry;->recordDiscreteAccess(ILjava/lang/String;ILjava/lang/String;IIJJII)V
+HPLcom/android/server/appop/DiscreteRegistry;->recordDiscreteAccess(ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;IIJJIII)V
 PLcom/android/server/appop/DiscreteRegistry;->setDiscreteHistoryParameters(Landroid/provider/DeviceConfig$Properties;)V
-HPLcom/android/server/appop/DiscreteRegistry;->stableListMerge(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/appop/DiscreteRegistry;->systemReady()V
 PLcom/android/server/appop/DiscreteRegistry;->writeAndClearAccessHistory()V
+PLcom/android/server/appop/HistoricalRegistry$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appop/HistoricalRegistry$1;-><init>(Lcom/android/server/appop/HistoricalRegistry;Landroid/os/Handler;Landroid/content/ContentResolver;)V
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->-$$Nest$mcollectHistoricalOpsDLocked(Lcom/android/server/appop/HistoricalRegistry$Persistence;Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)V
 PLcom/android/server/appop/HistoricalRegistry$Persistence;-><clinit>()V
 PLcom/android/server/appop/HistoricalRegistry$Persistence;-><init>(JJ)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->clearHistoryDLocked()V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->clearHistoryDLocked(ILjava/lang/String;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsBaseDLocked(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)Ljava/util/LinkedList;
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JLjava/util/LinkedList;ILjava/util/Set;)Ljava/util/LinkedList;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->computeGlobalIntervalBeginMillis(I)J
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->generateFile(Ljava/io/File;I)Ljava/io/File;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->getHistoricalFileNames(Ljava/io/File;)Ljava/util/Set;
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->clearHistoryDLocked$1()V
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsBaseDLocked(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)Ljava/util/LinkedList;
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/LinkedList;
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->generateFile(Ljava/io/File;I)Ljava/io/File;
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->getHistoricalFileNames(Ljava/io/File;)Ljava/util/Set;
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->getLastPersistTimeMillisDLocked()J
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->handlePersistHistoricalOpsRecursiveDLocked(Ljava/io/File;Ljava/io/File;Ljava/util/List;Ljava/util/Set;I)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->normalizeSnapshotForSlotDuration(Ljava/util/List;J)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->persistHistoricalOpsDLocked(Ljava/util/List;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalAttributionOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlPullParser;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Ljava/util/List;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/List;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lcom/android/modules/utils/TypedXmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoryDLocked()Ljava/util/List;
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoryRawDLocked()Ljava/util/List;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readStateDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;ILcom/android/modules/utils/TypedXmlPullParser;ID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readeHistoricalOpsDLocked(Lcom/android/modules/utils/TypedXmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalAttributionOpsDLocked(Landroid/app/AppOpsManager$AttributedHistoricalOps;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOp;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpsDLocked(Ljava/util/List;JLjava/io/File;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalPackageOps;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalUidOps;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeStateOnLocked(Landroid/app/AppOpsManager$HistoricalOp;JLcom/android/modules/utils/TypedXmlSerializer;)V
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->persistHistoricalOpsDLocked(Ljava/util/List;)V
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/List;
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoryDLocked()Ljava/util/List;
+HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readeHistoricalOpsDLocked(Lcom/android/modules/utils/TypedXmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Landroid/app/AppOpsManager$HistoricalOps;+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/ArtBinaryXmlPullParser;
+HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lcom/android/modules/utils/TypedXmlSerializer;)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;
 HSPLcom/android/server/appop/HistoricalRegistry;-><clinit>()V
-HSPLcom/android/server/appop/HistoricalRegistry;-><init>(Ljava/lang/Object;)V
-HPLcom/android/server/appop/HistoricalRegistry;->clearHistory(ILjava/lang/String;)V
-PLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IIJJI[Ljava/lang/String;Landroid/os/RemoteCallback;)V
-HPLcom/android/server/appop/HistoricalRegistry;->getUpdatedPendingHistoricalOpsMLocked(J)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry;->increaseOpAccessDuration(IILjava/lang/String;Ljava/lang/String;IIJJII)V
-HPLcom/android/server/appop/HistoricalRegistry;->incrementOpAccessedCount(IILjava/lang/String;Ljava/lang/String;IIJII)V
-HPLcom/android/server/appop/HistoricalRegistry;->incrementOpRejected(IILjava/lang/String;Ljava/lang/String;II)V
-HPLcom/android/server/appop/HistoricalRegistry;->isPersistenceInitializedMLocked()Z
+HSPLcom/android/server/appop/HistoricalRegistry;-><init>(Lcom/android/server/appop/AppOpsService;)V
+PLcom/android/server/appop/HistoricalRegistry;->clearHistoricalRegistry()V
+PLcom/android/server/appop/HistoricalRegistry;->clearHistoryOnDiskDLocked()V
+HPLcom/android/server/appop/HistoricalRegistry;->getUpdatedPendingHistoricalOpsMLocked(J)Landroid/app/AppOpsManager$HistoricalOps;+]Ljava/util/LinkedList;Ljava/util/LinkedList;
+HPLcom/android/server/appop/HistoricalRegistry;->incrementOpAccessedCount(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIJIIII)V
+PLcom/android/server/appop/HistoricalRegistry;->isPersistenceInitializedMLocked()Z
+PLcom/android/server/appop/HistoricalRegistry;->offsetHistory(J)V
+PLcom/android/server/appop/HistoricalRegistry;->persistPendingHistory()V
 PLcom/android/server/appop/HistoricalRegistry;->persistPendingHistory(Ljava/util/List;)V
 PLcom/android/server/appop/HistoricalRegistry;->systemReady(Landroid/content/ContentResolver;)V
 PLcom/android/server/appop/HistoricalRegistry;->updateParametersFromSetting(Landroid/content/ContentResolver;)V
-PLcom/android/server/appop/HistoricalRegistry;->writeAndClearDiscreteHistory()V
-HPLcom/android/server/appop/OnOpModeChangedListener;-><init>(IIIII)V
-PLcom/android/server/appop/OnOpModeChangedListener;->getCallingPid()I
-PLcom/android/server/appop/OnOpModeChangedListener;->getCallingUid()I
-PLcom/android/server/appop/OnOpModeChangedListener;->getFlags()I
-PLcom/android/server/appop/OnOpModeChangedListener;->getWatchedOpCode()I
-PLcom/android/server/appop/OnOpModeChangedListener;->getWatchingUid()I
-HPLcom/android/server/appop/OnOpModeChangedListener;->isWatchingUid(I)Z
-PLcom/android/server/attention/AttentionManagerService;->getServiceConfigPackage(Landroid/content/Context;)Ljava/lang/String;
-PLcom/android/server/attention/AttentionManagerService;->isServiceConfigured(Landroid/content/Context;)Z
-PLcom/android/server/audio/AdiDeviceState;->getPeristedMaxSize()I
+PLcom/android/server/audio/AdiDeviceState;-><init>(IILjava/lang/String;)V
+PLcom/android/server/audio/AdiDeviceState;->getAudioDeviceAttributes()Landroid/media/AudioDeviceAttributes;
+PLcom/android/server/audio/AdiDeviceState;->getAudioDeviceCategory()I
+PLcom/android/server/audio/AdiDeviceState;->getDeviceAddress()Ljava/lang/String;
+PLcom/android/server/audio/AdiDeviceState;->getDeviceType()I
+PLcom/android/server/audio/AdiDeviceState;->getInternalDeviceType()I
+PLcom/android/server/audio/AdiDeviceState;->setAudioDeviceCategory(I)V
+PLcom/android/server/audio/AdiDeviceState;->setHasHeadTracker(Z)V
+PLcom/android/server/audio/AdiDeviceState;->setHeadTrackerEnabled(Z)V
+PLcom/android/server/audio/AdiDeviceState;->setSAEnabled(Z)V
+PLcom/android/server/audio/AdiDeviceState;->toPersistableString()Ljava/lang/String;
+PLcom/android/server/audio/AdiDeviceState;->toString()Ljava/lang/String;
+PLcom/android/server/audio/AdiDeviceState;->updateAudioDeviceCategory()Z
+PLcom/android/server/audio/AudioDeviceBroker$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioDeviceBroker$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/audio/AudioDeviceBroker$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
 PLcom/android/server/audio/AudioDeviceBroker$AudioModeInfo;-><init>(III)V
+PLcom/android/server/audio/AudioDeviceBroker$AudioModeInfo;->toString()Ljava/lang/String;
 PLcom/android/server/audio/AudioDeviceBroker$BrokerHandler;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
-PLcom/android/server/audio/AudioDeviceBroker$BrokerHandler;-><init>(Lcom/android/server/audio/AudioDeviceBroker;Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler-IA;)V
 HPLcom/android/server/audio/AudioDeviceBroker$BrokerHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/audio/AudioDeviceBroker$BrokerThread;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
 PLcom/android/server/audio/AudioDeviceBroker$BrokerThread;->run()V
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$fgetmBtHelper(Lcom/android/server/audio/AudioDeviceBroker;)Lcom/android/server/audio/BtHelper;
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$fgetmDeviceStateLock(Lcom/android/server/audio/AudioDeviceBroker;)Ljava/lang/Object;
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$fputmBrokerHandler(Lcom/android/server/audio/AudioDeviceBroker;Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;)V
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$monSetForceUse(Lcom/android/server/audio/AudioDeviceBroker;IIZLjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$monUpdateCommunicationRouteClient(Lcom/android/server/audio/AudioDeviceBroker;ZLjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$sfgetMESSAGES_MUTE_MUSIC()Ljava/util/Set;
-PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$smisMessageHandledUnderWakelock(I)Z
+PLcom/android/server/audio/AudioDeviceBroker$BtDeviceChangedData;-><init>(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothDevice;Landroid/media/BluetoothProfileConnectionInfo;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;-><init>(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceChangedData;Landroid/bluetooth/BluetoothDevice;II)V
+PLcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;->toString()Ljava/lang/String;
+PLcom/android/server/audio/AudioDeviceBroker$CommunicationDeviceInfo;-><init>(Landroid/os/IBinder;Landroid/content/AttributionSource;Landroid/media/AudioDeviceAttributes;ZILjava/lang/String;Z)V
+PLcom/android/server/audio/AudioDeviceBroker$CommunicationRouteClient;-><init>(Lcom/android/server/audio/AudioDeviceBroker;Landroid/os/IBinder;Landroid/content/AttributionSource;Landroid/media/AudioDeviceAttributes;Z)V
+PLcom/android/server/audio/AudioDeviceBroker$CommunicationRouteClient;->isActive()Z
+PLcom/android/server/audio/AudioDeviceBroker$UpdateCommRouteClientInfo;-><init>(Landroid/content/AttributionSource;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$monReceiveBtEvent(Lcom/android/server/audio/AudioDeviceBroker;Landroid/content/Intent;)V
+PLcom/android/server/audio/AudioDeviceBroker;->-$$Nest$monUpdateCommunicationRouteClient(Lcom/android/server/audio/AudioDeviceBroker;Landroid/content/AttributionSource;Ljava/lang/String;)V
 PLcom/android/server/audio/AudioDeviceBroker;-><clinit>()V
 PLcom/android/server/audio/AudioDeviceBroker;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioSystemAdapter;)V
-PLcom/android/server/audio/AudioDeviceBroker;->clearA2dpSuspended(Z)V
-PLcom/android/server/audio/AudioDeviceBroker;->clearLeAudioSuspended(Z)V
-PLcom/android/server/audio/AudioDeviceBroker;->communnicationDeviceHaCompatOn()Z
-PLcom/android/server/audio/AudioDeviceBroker;->communnicationDeviceLeAudioCompatOn()Z
-PLcom/android/server/audio/AudioDeviceBroker;->dispatchCommunicationDevice()V
+PLcom/android/server/audio/AudioDeviceBroker;->addCommunicationRouteClient(Landroid/os/IBinder;Landroid/content/AttributionSource;Landroid/media/AudioDeviceAttributes;Z)Lcom/android/server/audio/AudioDeviceBroker$CommunicationRouteClient;
+PLcom/android/server/audio/AudioDeviceBroker;->bluetoothScoRequestOwnerAttributionSource()Landroid/content/AttributionSource;
+PLcom/android/server/audio/AudioDeviceBroker;->btMediaMetricRecord(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;Lcom/android/server/audio/AudioDeviceBroker$BtDeviceChangedData;)V
+PLcom/android/server/audio/AudioDeviceBroker;->checkMessagesMuteMusic(I)V
+PLcom/android/server/audio/AudioDeviceBroker;->createBtDeviceInfo(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceChangedData;Landroid/bluetooth/BluetoothDevice;I)Lcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;
+PLcom/android/server/audio/AudioDeviceBroker;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioDeviceBroker;->getAvailableCommunicationDevices()Ljava/util/List;
+PLcom/android/server/audio/AudioDeviceBroker;->getCommunicationDevice()Landroid/media/AudioDeviceInfo;
 PLcom/android/server/audio/AudioDeviceBroker;->getCommunicationDeviceInt()Landroid/media/AudioDeviceInfo;
-PLcom/android/server/audio/AudioDeviceBroker;->getContext()Landroid/content/Context;
-PLcom/android/server/audio/AudioDeviceBroker;->getDefaultCommunicationDevice()Landroid/media/AudioDeviceAttributes;
+PLcom/android/server/audio/AudioDeviceBroker;->getCommunicationRouteClientForUid(I)Lcom/android/server/audio/AudioDeviceBroker$CommunicationRouteClient;
 PLcom/android/server/audio/AudioDeviceBroker;->getImmutableDeviceInventory()Ljava/util/Collection;
-PLcom/android/server/audio/AudioDeviceBroker;->handleCancelFailureToConnectToBtHeadsetService()V
-PLcom/android/server/audio/AudioDeviceBroker;->handleFailureToConnectToBtHeadsetService(I)V
-PLcom/android/server/audio/AudioDeviceBroker;->init()V
-PLcom/android/server/audio/AudioDeviceBroker;->initAudioHalBluetoothState()V
+PLcom/android/server/audio/AudioDeviceBroker;->handleDeviceConnection(Landroid/media/AudioDeviceAttributes;ZLandroid/bluetooth/BluetoothDevice;)Z
 PLcom/android/server/audio/AudioDeviceBroker;->initRoutingStrategyIds()V
-PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothA2dpOn()Z
 PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoRequested()Z
 PLcom/android/server/audio/AudioDeviceBroker;->isDeviceActiveForCommunication(I)Z
-PLcom/android/server/audio/AudioDeviceBroker;->isDeviceRequestedForCommunication(I)Z
+PLcom/android/server/audio/AudioDeviceBroker;->isDeviceOnForCommunication(I)Z
 PLcom/android/server/audio/AudioDeviceBroker;->isMessageHandledUnderWakelock(I)Z
-PLcom/android/server/audio/AudioDeviceBroker;->isSpeakerphoneActive()Z
 PLcom/android/server/audio/AudioDeviceBroker;->isValidCommunicationDevice(Landroid/media/AudioDeviceInfo;)Z
-PLcom/android/server/audio/AudioDeviceBroker;->isValidCommunicationDeviceType(I)Z
-PLcom/android/server/audio/AudioDeviceBroker;->onReadAudioDeviceSettings()V
-PLcom/android/server/audio/AudioDeviceBroker;->onSetForceUse(IIZLjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->onSystemReady()V
-PLcom/android/server/audio/AudioDeviceBroker;->onUpdateCommunicationRouteClient(ZLjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->onUpdatePhoneStrategyDevice(Landroid/media/AudioDeviceAttributes;)V
-PLcom/android/server/audio/AudioDeviceBroker;->postBroadcastScoConnectionState(I)V
-PLcom/android/server/audio/AudioDeviceBroker;->postBtProfileConnected(ILandroid/bluetooth/BluetoothProfile;)V
-PLcom/android/server/audio/AudioDeviceBroker;->postUpdateCommunicationRouteClient(ZLjava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceBroker;->messageMutesMusic(I)Z
+PLcom/android/server/audio/AudioDeviceBroker;->onPersistAudioDeviceSettings()V
+PLcom/android/server/audio/AudioDeviceBroker;->onSetCommunicationDeviceForClient(Lcom/android/server/audio/AudioDeviceBroker$CommunicationDeviceInfo;)V
+PLcom/android/server/audio/AudioDeviceBroker;->onSetForceUse(ILjava/lang/String;IZ)V
+PLcom/android/server/audio/AudioDeviceBroker;->postCheckCommunicationDeviceRemoval(Landroid/media/AudioDeviceAttributes;)V
+PLcom/android/server/audio/AudioDeviceBroker;->postPersistAudioDeviceSettings()V
+PLcom/android/server/audio/AudioDeviceBroker;->postUpdatedAdiDeviceState(Lcom/android/server/audio/AdiDeviceState;Z)V
 PLcom/android/server/audio/AudioDeviceBroker;->preferredCommunicationDevice()Landroid/media/AudioDeviceAttributes;
+PLcom/android/server/audio/AudioDeviceBroker;->queueOnBluetoothActiveDeviceChanged(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceChangedData;)V
 PLcom/android/server/audio/AudioDeviceBroker;->readDeviceSettings()Ljava/lang/String;
 PLcom/android/server/audio/AudioDeviceBroker;->reapplyAudioHalBluetoothState()V
-PLcom/android/server/audio/AudioDeviceBroker;->requestedCommunicationDevice()Landroid/media/AudioDeviceAttributes;
-PLcom/android/server/audio/AudioDeviceBroker;->sendIILMsg(IIIILjava/lang/Object;I)V
-PLcom/android/server/audio/AudioDeviceBroker;->sendIILMsgNoDelay(IIIILjava/lang/Object;)V
-PLcom/android/server/audio/AudioDeviceBroker;->sendILMsgNoDelay(IIILjava/lang/Object;)V
-PLcom/android/server/audio/AudioDeviceBroker;->sendIMsgNoDelay(III)V
-PLcom/android/server/audio/AudioDeviceBroker;->sendMsg(III)V
-PLcom/android/server/audio/AudioDeviceBroker;->setBluetoothScoOn(ZLjava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceBroker;->removeCommunicationRouteClient(Landroid/os/IBinder;)Lcom/android/server/audio/AudioDeviceBroker$CommunicationRouteClient;
+HPLcom/android/server/audio/AudioDeviceBroker;->sendIILMsg(IIIILjava/lang/Object;I)V
+PLcom/android/server/audio/AudioDeviceBroker;->sendLMsgNoDelay(IILjava/lang/Object;)V
+PLcom/android/server/audio/AudioDeviceBroker;->setAvrcpAbsoluteVolumeSupported(Z)V
+PLcom/android/server/audio/AudioDeviceBroker;->setBluetoothA2dpOnInt(Ljava/lang/String;ZZ)V
+PLcom/android/server/audio/AudioDeviceBroker;->setBluetoothScoOn(Ljava/lang/String;Z)V
+PLcom/android/server/audio/AudioDeviceBroker;->setCommunicationDevice(Landroid/os/IBinder;Landroid/content/AttributionSource;Landroid/media/AudioDeviceInfo;ZLjava/lang/String;)Z
+PLcom/android/server/audio/AudioDeviceBroker;->setCommunicationRouteForClient(Landroid/os/IBinder;Landroid/content/AttributionSource;Landroid/media/AudioDeviceAttributes;IZLjava/lang/String;)V
 PLcom/android/server/audio/AudioDeviceBroker;->setForceUse_Async(IILjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->setupMessaging(Landroid/content/Context;)V
-PLcom/android/server/audio/AudioDeviceBroker;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
 PLcom/android/server/audio/AudioDeviceBroker;->topCommunicationRouteClient()Lcom/android/server/audio/AudioDeviceBroker$CommunicationRouteClient;
 PLcom/android/server/audio/AudioDeviceBroker;->updateActiveCommunicationDevice()V
 PLcom/android/server/audio/AudioDeviceBroker;->updateAudioHalBluetoothState()V
-PLcom/android/server/audio/AudioDeviceBroker;->updateCommunicationRoute(Ljava/lang/String;)V
+HPLcom/android/server/audio/AudioDeviceBroker;->updateCommunicationRoute(Ljava/lang/String;)V
 PLcom/android/server/audio/AudioDeviceBroker;->updateCommunicationRouteClientsActivity(Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/audio/AudioDeviceBroker;->waitForBrokerHandlerCreation()V
-PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda36;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
-PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
-PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
-PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/audio/AudioDeviceInventory;I)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda0;->deviceRoleAction(IILjava/util/List;)I
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda10;-><init>(ILjava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda31;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/audio/AudioDeviceInventory;I)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda5;-><init>(Ljava/util/concurrent/atomic/AtomicBoolean;)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda9;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V
 PLcom/android/server/audio/AudioDeviceInventory$1;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+PLcom/android/server/audio/AudioDeviceInventory$1;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioDeviceInventory$1;->record(Ljava/lang/String;ZLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
+PLcom/android/server/audio/AudioDeviceInventory$1;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->makeDeviceListKey(ILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/audio/AudioDeviceInventory;-><clinit>()V
 PLcom/android/server/audio/AudioDeviceInventory;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
-PLcom/android/server/audio/AudioDeviceInventory;-><init>(Lcom/android/server/audio/AudioDeviceBroker;Lcom/android/server/audio/AudioSystemAdapter;)V
-PLcom/android/server/audio/AudioDeviceInventory;->applyConnectedDevicesRoles()V
+PLcom/android/server/audio/AudioDeviceInventory;->addAudioDeviceInInventoryIfNeeded(ZILjava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory;->addOrUpdateAudioDeviceCategoryInInventory(Lcom/android/server/audio/AdiDeviceState;Z)V
+PLcom/android/server/audio/AudioDeviceInventory;->addOrUpdateDeviceSAStateInInventory(Lcom/android/server/audio/AdiDeviceState;Z)V
 PLcom/android/server/audio/AudioDeviceInventory;->applyConnectedDevicesRoles_l()V
-PLcom/android/server/audio/AudioDeviceInventory;->clearDevicesRole(Landroid/util/ArrayMap;Lcom/android/server/audio/AudioDeviceInventory$AudioSystemInterface;II)I
-PLcom/android/server/audio/AudioDeviceInventory;->clearDevicesRoleForStrategy(IIZ)I
-PLcom/android/server/audio/AudioDeviceInventory;->getImmutableDeviceInventory()Ljava/util/Collection;
+PLcom/android/server/audio/AudioDeviceInventory;->checkDeviceInventorySize_l()V
+PLcom/android/server/audio/AudioDeviceInventory;->checkSendBecomingNoisyIntentInt(II)I
+PLcom/android/server/audio/AudioDeviceInventory;->clearDevicesRoleForStrategy(IZ)I
+PLcom/android/server/audio/AudioDeviceInventory;->findBtDeviceStateForAddress(Ljava/lang/String;I)Lcom/android/server/audio/AdiDeviceState;
+HPLcom/android/server/audio/AudioDeviceInventory;->handleDeviceConnection(Landroid/media/AudioDeviceAttributes;ZZLandroid/bluetooth/BluetoothDevice;)Z
+PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceAvailable(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceUnavailableNow(ILjava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory;->onReportNewRoutes()V
+PLcom/android/server/audio/AudioDeviceInventory;->onSetBtActiveDevice(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;II)V
+PLcom/android/server/audio/AudioDeviceInventory;->onSynchronizeAdiDeviceInInventory_l(Lcom/android/server/audio/AdiDeviceState;)V
+PLcom/android/server/audio/AudioDeviceInventory;->onSynchronizeAdiDevicesInInventory(Lcom/android/server/audio/AdiDeviceState;)V
+PLcom/android/server/audio/AudioDeviceInventory;->purgeDevicesRoles_l()V
+PLcom/android/server/audio/AudioDeviceInventory;->purgeRoles(Landroid/util/ArrayMap;Lcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda0;)V
 PLcom/android/server/audio/AudioDeviceInventory;->reapplyExternalDevicesRoles()V
-PLcom/android/server/audio/AudioDeviceInventory;->removePreferredDevicesForStrategyInt(I)I
-PLcom/android/server/audio/AudioDeviceInventory;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda20;-><init>()V
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda8;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/audio/AudioDeviceInventory;->setBluetoothActiveDevice(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;)V
+PLcom/android/server/audio/AudioDeviceInventory;->setCurrentAudioRouteNameIfPossible(Ljava/lang/String;Z)V
+PLcom/android/server/audio/AudioDeviceInventory;->setDevicesRole(Landroid/util/ArrayMap;Lcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda0;Lcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda0;ILjava/util/List;)I
+PLcom/android/server/audio/AudioDeviceInventory;->setDevicesRoleForStrategy(ILjava/util/List;Z)I
+PLcom/android/server/audio/AudioDeviceInventory;->updateBluetoothPreferredModes_l(Landroid/bluetooth/BluetoothDevice;)V
+PLcom/android/server/audio/AudioServerPermissionProvider$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/audio/AudioServerPermissionProvider$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioServerPermissionProvider$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/audio/AudioServerPermissionProvider$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
+PLcom/android/server/audio/AudioServerPermissionProvider;-><clinit>()V
+PLcom/android/server/audio/AudioServerPermissionProvider;-><init>(Ljava/util/Collection;Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda14;Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda15;)V
+HPLcom/android/server/audio/AudioServerPermissionProvider;->getUidsHoldingPerm(I)[I+]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashMap$KeySet;
+PLcom/android/server/audio/AudioServerPermissionProvider;->onModifyPackageState(ILjava/lang/String;Z)V
+PLcom/android/server/audio/AudioServerPermissionProvider;->onPermissionStateChanged()V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/audio/AudioService;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda10;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda10;->accept(I)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda13;-><init>(I)V
+HPLcom/android/server/audio/AudioService$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/pm/UserManagerInternal;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda15;->get()Ljava/lang/Object;
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda16;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda16;->run()V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda17;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/audio/AudioService;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda1;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/audio/AudioService;I)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda26;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda31;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda31;->run()V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda3;-><init>(I)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda6;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/audio/AudioService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/audio/AudioService;Z)V
 PLcom/android/server/audio/AudioService$1;-><init>(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService$1;->onError(I)V
 PLcom/android/server/audio/AudioService$2;-><init>(Lcom/android/server/audio/AudioService;)V
@@ -8078,771 +6257,898 @@
 PLcom/android/server/audio/AudioService$5;-><init>(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService$5;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
 PLcom/android/server/audio/AudioService$6;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$7;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IVolumeController;)V
-PLcom/android/server/audio/AudioService$8;-><init>(Lcom/android/server/audio/AudioService;)V
+PLcom/android/server/audio/AudioService$6;->dispatchRecordingConfigChange(Ljava/util/List;)V
+PLcom/android/server/audio/AudioService$7$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/audio/AudioServerPermissionProvider;ILjava/lang/String;I)V
+PLcom/android/server/audio/AudioService$7$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/audio/AudioService$7;-><init>(Ljava/util/concurrent/Executor;Lcom/android/server/audio/AudioServerPermissionProvider;)V
+PLcom/android/server/audio/AudioService$7;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/audio/AudioService$8;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IVolumeController;)V
+PLcom/android/server/audio/AudioService$9;-><init>(Lcom/android/server/audio/AudioService;)V
+PLcom/android/server/audio/AudioService$AsdProxy;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IAudioServerStateDispatcher;)V
 PLcom/android/server/audio/AudioService$AudioHandler;-><init>(Lcom/android/server/audio/AudioService;)V
-HPLcom/android/server/audio/AudioService$AudioHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/audio/AudioService$AudioHandler;->persistVolume(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V
-PLcom/android/server/audio/AudioService$AudioHandler;->setAllVolumes(Lcom/android/server/audio/AudioService$VolumeStreamState;)V
+HPLcom/android/server/audio/AudioService$AudioHandler;->handleMessage$com$android$server$audio$AudioService$AudioHandler(Landroid/os/Message;)V+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/media/IAudioModeDispatcher;Landroid/media/IAudioModeDispatcher$Stub$Proxy;]Landroid/media/MediaMetrics$Item;Landroid/media/MediaMetrics$Item;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/audio/AudioService$AudioHandler;->handleMessage(Landroid/os/Message;)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;Landroid/content/AttributionSource;)V
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->binderDied()V
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->connectMixes()I
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->getRegistrationId()Ljava/lang/String;
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->hasMixAffectingUsage()Z
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->logFriendlyAttributeDeviceArrayMap(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->release()V
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->removeMixes(Ljava/util/ArrayList;)I
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->toLogFriendlyString()Ljava/lang/String;
 PLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver-IA;)V
-HPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/audio/AudioService$AudioServiceInternal;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$AudioServiceInternal;->getRingerModeInternal()I
-HPLcom/android/server/audio/AudioService$AudioServiceInternal;->setAccessibilityServiceUids(Landroid/util/IntArray;)V
+PLcom/android/server/audio/AudioService$AudioServiceInternal;->setAccessibilityServiceUids(Landroid/util/IntArray;)V
 PLcom/android/server/audio/AudioService$AudioServiceInternal;->setInputMethodServiceUid(I)V
 PLcom/android/server/audio/AudioService$AudioServiceInternal;->setRingerModeDelegate(Landroid/media/AudioManagerInternal$RingerModeDelegate;)V
 PLcom/android/server/audio/AudioService$AudioServiceInternal;->setRingerModeInternal(ILjava/lang/String;)V
 PLcom/android/server/audio/AudioService$AudioServiceInternal;->updateRingerModeAffectedStreamsInternal()V
 PLcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener-IA;)V
 PLcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/audio/AudioService$AudioSystemThread;-><init>(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService$AudioSystemThread;->run()V
+PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;-><init>(IIILjava/lang/String;)V
+PLcom/android/server/audio/AudioService$Lifecycle$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
 PLcom/android/server/audio/AudioService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/audio/AudioService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/audio/AudioService$Lifecycle;->onStart()V
 PLcom/android/server/audio/AudioService$MyHdmiCecVolumeControlFeatureListener;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$MyHdmiCecVolumeControlFeatureListener;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$MyHdmiCecVolumeControlFeatureListener-IA;)V
 PLcom/android/server/audio/AudioService$MyHdmiControlStatusChangeListenerCallback;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$MyHdmiControlStatusChangeListenerCallback;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$MyHdmiControlStatusChangeListenerCallback-IA;)V
 PLcom/android/server/audio/AudioService$RestorableParameters$1;-><init>(Lcom/android/server/audio/AudioService$RestorableParameters;)V
-PLcom/android/server/audio/AudioService$RestorableParameters;-><init>()V
-PLcom/android/server/audio/AudioService$RestorableParameters;-><init>(Lcom/android/server/audio/AudioService$RestorableParameters-IA;)V
 PLcom/android/server/audio/AudioService$RoleObserver;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$RoleObserver;->getAssistantRoleHolder()Ljava/lang/String;
+PLcom/android/server/audio/AudioService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/audio/AudioService$RoleObserver;->register()V
+PLcom/android/server/audio/AudioService$SetModeDeathHandler;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;IIZLjava/lang/String;I)V
+PLcom/android/server/audio/AudioService$SetModeDeathHandler;->isActive()Z
 PLcom/android/server/audio/AudioService$SettingsObserver;-><init>(Lcom/android/server/audio/AudioService;)V
+PLcom/android/server/audio/AudioService$SettingsObserver;->onChange(Z)V
+PLcom/android/server/audio/AudioService$SettingsObserver;->updateEncodedSurroundOutput()V
+PLcom/android/server/audio/AudioService$UpdateAudioModeInfo;-><init>(IILjava/lang/String;)V
 PLcom/android/server/audio/AudioService$VolumeController;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$VolumeController;->asBinder()Landroid/os/IBinder;
-PLcom/android/server/audio/AudioService$VolumeController;->binder(Landroid/media/IVolumeController;)Landroid/os/IBinder;
-PLcom/android/server/audio/AudioService$VolumeController;->isSameBinder(Landroid/media/IVolumeController;)Z
-PLcom/android/server/audio/AudioService$VolumeController;->loadSettings(Landroid/content/ContentResolver;)V
-PLcom/android/server/audio/AudioService$VolumeController;->postDismiss()V
-PLcom/android/server/audio/AudioService$VolumeController;->setController(Landroid/media/IVolumeController;)V
-PLcom/android/server/audio/AudioService$VolumeController;->setLayoutDirection(I)V
-HPLcom/android/server/audio/AudioService$VolumeGroupState;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioVolumeGroup;)V
-PLcom/android/server/audio/AudioService$VolumeGroupState;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioVolumeGroup;Lcom/android/server/audio/AudioService$VolumeGroupState-IA;)V
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->applyAllVolumes(Z)V
-PLcom/android/server/audio/AudioService$VolumeGroupState;->clearIndexCache()V
-PLcom/android/server/audio/AudioService$VolumeGroupState;->getDeviceForVolume()I
+PLcom/android/server/audio/AudioService$VolumeController;->toString()Ljava/lang/String;
+PLcom/android/server/audio/AudioService$VolumeGroupState;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioVolumeGroup;)V
+PLcom/android/server/audio/AudioService$VolumeGroupState;->applyAllVolumes(Z)V
 PLcom/android/server/audio/AudioService$VolumeGroupState;->getIndex(I)I
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->getLegacyStreamTypes()[I
-PLcom/android/server/audio/AudioService$VolumeGroupState;->getMinIndex()I
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->getSettingNameForDevice(I)Ljava/lang/String;
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->getValidIndex(I)I
-PLcom/android/server/audio/AudioService$VolumeGroupState;->isMusic()Z
-PLcom/android/server/audio/AudioService$VolumeGroupState;->isMutable()Z
-PLcom/android/server/audio/AudioService$VolumeGroupState;->isMuted()Z
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->isValidStream(I)Z
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->isVssMuteBijective(I)Z
+PLcom/android/server/audio/AudioService$VolumeGroupState;->getSettingNameForDevice(I)Ljava/lang/String;
+PLcom/android/server/audio/AudioService$VolumeGroupState;->getValidIndex(I)I
+PLcom/android/server/audio/AudioService$VolumeGroupState;->isVssMuteBijective(I)Z
 PLcom/android/server/audio/AudioService$VolumeGroupState;->mute(Z)Z
-PLcom/android/server/audio/AudioService$VolumeGroupState;->name()Ljava/lang/String;
-PLcom/android/server/audio/AudioService$VolumeGroupState;->persistVolumeGroup(I)V
 HPLcom/android/server/audio/AudioService$VolumeGroupState;->readSettings()V
-PLcom/android/server/audio/AudioService$VolumeGroupState;->setSettingName(Ljava/lang/String;)V
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->setVolumeIndexInt(III)V
-HPLcom/android/server/audio/AudioService$VolumeGroupState;->updateVolumeIndex(II)V
-PLcom/android/server/audio/AudioService$VolumeStreamState$1;-><init>(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V
-HPLcom/android/server/audio/AudioService$VolumeStreamState$1;->put(II)V
-HPLcom/android/server/audio/AudioService$VolumeStreamState$1;->record(Ljava/lang/String;II)V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->-$$Nest$fgetmIndexMax(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->-$$Nest$fgetmIndexMin(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->-$$Nest$fgetmIsMuted(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->-$$Nest$fgetmStreamType(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->-$$Nest$mhasValidSettingsName(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
-HPLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(Lcom/android/server/audio/AudioService;Ljava/lang/String;I)V
-PLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(Lcom/android/server/audio/AudioService;Ljava/lang/String;ILcom/android/server/audio/AudioService$VolumeStreamState-IA;)V
+PLcom/android/server/audio/AudioService$VolumeGroupState;->setVolumeIndexInt(II)V
+PLcom/android/server/audio/AudioService$VolumeGroupState;->updateVolumeIndex(II)V
+PLcom/android/server/audio/AudioService$VolumeStreamState$1;-><init>(Lcom/android/server/audio/AudioService$VolumeStreamState;)V
+PLcom/android/server/audio/AudioService$VolumeStreamState$1;->put(II)V
+HPLcom/android/server/audio/AudioService$VolumeStreamState$1;->record(IILjava/lang/String;)V
+PLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(ILcom/android/server/audio/AudioService;Ljava/lang/String;)V
 HPLcom/android/server/audio/AudioService$VolumeStreamState;->applyAllVolumes()V
 HPLcom/android/server/audio/AudioService$VolumeStreamState;->applyDeviceVolume_syncVSS(I)V
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->checkFixedVolumeDevices()V
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->getAbsoluteVolumeIndex(I)I
+PLcom/android/server/audio/AudioService$VolumeStreamState;->checkFixedVolumeDevices()V
+PLcom/android/server/audio/AudioService$VolumeStreamState;->doMute()V
+PLcom/android/server/audio/AudioService$VolumeStreamState;->getAbsoluteVolumeIndex(I)I
 HPLcom/android/server/audio/AudioService$VolumeStreamState;->getIndex(I)I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getMaxIndex()I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getMinIndex()I
 HPLcom/android/server/audio/AudioService$VolumeStreamState;->getSettingNameForDevice(I)Ljava/lang/String;
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getStreamType()I
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->getValidIndex(IZ)I
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->hasIndexForDevice(I)Z
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->hasValidSettingsName()Z
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->isFullyMuted()Z
-PLcom/android/server/audio/AudioService$VolumeStreamState;->isMutable()Z
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->observeDevicesForStream_syncVSS(Z)Ljava/util/Set;
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->readSettings()V
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->setAllIndexes(Lcom/android/server/audio/AudioService$VolumeStreamState;Ljava/lang/String;)V
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;Z)Z
+PLcom/android/server/audio/AudioService$VolumeStreamState;->isFullyMuted()Z
+PLcom/android/server/audio/AudioService$VolumeStreamState;->mute(Ljava/lang/String;Z)Z
+PLcom/android/server/audio/AudioService$VolumeStreamState;->mute(Ljava/lang/String;ZZ)Z
+HPLcom/android/server/audio/AudioService$VolumeStreamState;->observeDevicesForStream_syncVSS(Z)Ljava/util/Set;+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/Set;Ljava/util/TreeSet;
+PLcom/android/server/audio/AudioService$VolumeStreamState;->readSettings()V
+PLcom/android/server/audio/AudioService$VolumeStreamState;->setAllIndexes(Lcom/android/server/audio/AudioService$VolumeStreamState;Ljava/lang/String;)V
+HPLcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(ILjava/lang/String;IZ)Z+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 HPLcom/android/server/audio/AudioService$VolumeStreamState;->setStreamVolumeIndex(II)V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->setVolumeGroupState(Lcom/android/server/audio/AudioService$VolumeGroupState;)V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->updateNoPermMinIndex(I)V
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->updateVolumeGroupIndex(IZ)V
-PLcom/android/server/audio/AudioService;->$r8$lambda$8YoXBPw5AJRvFMFFUjQwGxGhzQY(Landroid/media/AudioAttributes;)Z
-PLcom/android/server/audio/AudioService;->$r8$lambda$maUm3rQ2PSmFbQzqlmwf8bqyg_g(Lcom/android/server/audio/AudioService;Landroid/media/PlayerBase;)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmAccessibilityServiceUidsLock(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmAudioEventWakeLock(Lcom/android/server/audio/AudioService;)Landroid/os/PowerManager$WakeLock;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmAudioHandler(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioService$AudioHandler;
-HPLcom/android/server/audio/AudioService;->-$$Nest$fgetmAudioSystem(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioSystemAdapter;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmCameraSoundForced(Lcom/android/server/audio/AudioService;)Z
-HPLcom/android/server/audio/AudioService;->-$$Nest$fgetmContentResolver(Lcom/android/server/audio/AudioService;)Landroid/content/ContentResolver;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmDisplayManager(Lcom/android/server/audio/AudioService;)Landroid/hardware/display/DisplayManager;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmInputMethodServiceUid(Lcom/android/server/audio/AudioService;)I
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmInputMethodServiceUidLock(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmIsSingleVolume(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmMediaFocusControl(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/MediaFocusControl;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmMonitorRotation(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmRingerModeDelegate(Lcom/android/server/audio/AudioService;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
-HPLcom/android/server/audio/AudioService;->-$$Nest$fgetmSettings(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SettingsAdapter;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmSettingsLock(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmSoundDoseHelper(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SoundDoseHelper;
-HPLcom/android/server/audio/AudioService;->-$$Nest$fgetmStreamStates(Lcom/android/server/audio/AudioService;)[Lcom/android/server/audio/AudioService$VolumeStreamState;
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmSupportsMicPrivacyToggle(Lcom/android/server/audio/AudioService;)Z
-HPLcom/android/server/audio/AudioService;->-$$Nest$fgetmSystemServer(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SystemServerAdapter;
-HPLcom/android/server/audio/AudioService;->-$$Nest$fgetmUseFixedVolume(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$fgetmUserSwitchedReceived(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmAccessibilityServiceUids(Lcom/android/server/audio/AudioService;[I)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmAudioHandler(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$AudioHandler;)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmEnabledSurroundFormats(Lcom/android/server/audio/AudioService;Ljava/lang/String;)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmEncodedSurroundMode(Lcom/android/server/audio/AudioService;I)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmInputMethodServiceUid(Lcom/android/server/audio/AudioService;I)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmRingerModeDelegate(Lcom/android/server/audio/AudioService;Landroid/media/AudioManagerInternal$RingerModeDelegate;)V
-PLcom/android/server/audio/AudioService;->-$$Nest$fputmUserSwitchedReceived(Lcom/android/server/audio/AudioService;Z)V
-PLcom/android/server/audio/AudioService;->-$$Nest$mgetDeviceSetForStreamDirect(Lcom/android/server/audio/AudioService;I)Ljava/util/Set;
-PLcom/android/server/audio/AudioService;->-$$Nest$misA2dpAbsoluteVolumeDevice(Lcom/android/server/audio/AudioService;I)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$misAbsoluteVolumeDevice(Lcom/android/server/audio/AudioService;I)Z
-HPLcom/android/server/audio/AudioService;->-$$Nest$misFixedVolumeDevice(Lcom/android/server/audio/AudioService;I)Z
-HPLcom/android/server/audio/AudioService;->-$$Nest$misFullVolumeDevice(Lcom/android/server/audio/AudioService;I)Z
+PLcom/android/server/audio/AudioService$VolumeStreamState;->updateIndexFactors()V
+PLcom/android/server/audio/AudioService$VolumeStreamState;->updateVolumeGroupIndex(IZ)V
+PLcom/android/server/audio/AudioService;->-$$Nest$monAccessoryPlugMediaUnmute(Lcom/android/server/audio/AudioService;I)V
+PLcom/android/server/audio/AudioService;->-$$Nest$monConfigurationChanged(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService;->-$$Nest$monInitStreamsAndVolumes(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService;->-$$Nest$monObserveDevicesForAllStreams(Lcom/android/server/audio/AudioService;I)V
-PLcom/android/server/audio/AudioService;->-$$Nest$mreadAudioSettings(Lcom/android/server/audio/AudioService;Z)V
-PLcom/android/server/audio/AudioService;->-$$Nest$mrescaleIndex(Lcom/android/server/audio/AudioService;III)I
-PLcom/android/server/audio/AudioService;->-$$Nest$msendBroadcastToAll(Lcom/android/server/audio/AudioService;Landroid/content/Intent;Landroid/os/Bundle;)V
-PLcom/android/server/audio/AudioService;->-$$Nest$mupdateAssistantUIdLocked(Lcom/android/server/audio/AudioService;Z)V
-PLcom/android/server/audio/AudioService;->-$$Nest$mupdateRingerAndZenModeAffectedStreams(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$smisCallStream(I)Z
-PLcom/android/server/audio/AudioService;->-$$Nest$smsendMsg(Landroid/os/Handler;IIIILjava/lang/Object;I)V
+PLcom/android/server/audio/AudioService;->-$$Nest$monPlaybackConfigChange(Lcom/android/server/audio/AudioService;Ljava/util/List;)V
+PLcom/android/server/audio/AudioService;->-$$Nest$monUpdateAccessibilityServiceUids(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService;-><clinit>()V
-PLcom/android/server/audio/AudioService;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioSystemAdapter;Lcom/android/server/audio/SystemServerAdapter;Lcom/android/server/audio/SettingsAdapter;Lcom/android/server/audio/AudioPolicyFacade;Landroid/os/Looper;)V
-HPLcom/android/server/audio/AudioService;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioSystemAdapter;Lcom/android/server/audio/SystemServerAdapter;Lcom/android/server/audio/SettingsAdapter;Lcom/android/server/audio/AudioPolicyFacade;Landroid/os/Looper;Landroid/app/AppOpsManager;Landroid/os/PermissionEnforcer;)V
+PLcom/android/server/audio/AudioService;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioSystemAdapter;Lcom/android/server/audio/SystemServerAdapter;Lcom/android/server/audio/SettingsAdapter;Lcom/android/server/audio/AudioService$AudioVolumeGroupHelper;Lcom/android/server/audio/DefaultAudioPolicyFacade;Landroid/app/AppOpsManager;Landroid/os/PermissionEnforcer;Lcom/android/server/audio/AudioServerPermissionProvider;Ljava/util/concurrent/Executor;)V
 PLcom/android/server/audio/AudioService;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
 PLcom/android/server/audio/AudioService;->addAssistantServiceUidsLocked([I)V
-PLcom/android/server/audio/AudioService;->broadcastRingerMode(Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioService;->addOnDevicesForAttributesChangedListener(Landroid/media/AudioAttributes;Landroid/media/IDevicesForAttributesCallback;)V
+PLcom/android/server/audio/AudioService;->areNavigationRepeatSoundEffectsEnabled()Z
+PLcom/android/server/audio/AudioService;->broadcastRingerMode(ILjava/lang/String;)V
 PLcom/android/server/audio/AudioService;->broadcastVibrateSetting(I)V
-HPLcom/android/server/audio/AudioService;->checkAllAliasStreamVolumes()V
-PLcom/android/server/audio/AudioService;->checkAllFixedVolumeDevices()V
+PLcom/android/server/audio/AudioService;->callerHasPermission(Ljava/lang/String;)Z
+PLcom/android/server/audio/AudioService;->checkAllAliasStreamVolumes()V
+PLcom/android/server/audio/AudioService;->checkAudioSettingsPermission(Ljava/lang/String;)Z
+PLcom/android/server/audio/AudioService;->checkMonitorAudioServerStatePermission()V
 PLcom/android/server/audio/AudioService;->checkMuteAffectedStreams()V
+PLcom/android/server/audio/AudioService;->checkNoteAppOp(IILjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/audio/AudioService;->checkVolumeRangeInitialization(Ljava/lang/String;)Z
-PLcom/android/server/audio/AudioService;->createAudioSystemThread()V
-PLcom/android/server/audio/AudioService;->createStreamStates()V
-PLcom/android/server/audio/AudioService;->dispatchStreamAliasingUpdate()V
+PLcom/android/server/audio/AudioService;->decrementAudioModeResetCount()V
+PLcom/android/server/audio/AudioService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/audio/AudioService;->dumpAccessibilityServiceUids(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService;->dumpAssistantServicesUids(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService;->dumpAudioPolicies(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService;->dumpDeviceTypes(Ljava/util/Set;)Ljava/lang/String;
+PLcom/android/server/audio/AudioService;->dumpRingerModeStreams(ILjava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioService;->dumpSupportedSystemUsage(Ljava/io/PrintWriter;)V
 PLcom/android/server/audio/AudioService;->enforceVolumeController(Ljava/lang/String;)V
-HPLcom/android/server/audio/AudioService;->ensureValidAttributes(Landroid/media/audiopolicy/AudioVolumeGroup;)V
-PLcom/android/server/audio/AudioService;->ensureValidRingerMode(I)V
-HPLcom/android/server/audio/AudioService;->ensureValidStreamType(I)V
-PLcom/android/server/audio/AudioService;->forceFocusDuckingForAccessibility(Landroid/media/AudioAttributes;II)Z
-PLcom/android/server/audio/AudioService;->getAudioAidlHalPids(Ljava/util/HashSet;)V
-PLcom/android/server/audio/AudioService;->getAudioHalHidlPids(Ljava/util/HashSet;)V
-PLcom/android/server/audio/AudioService;->getAudioHalPids()Ljava/util/Set;
-PLcom/android/server/audio/AudioService;->getAudioModeOwner()Lcom/android/server/audio/AudioDeviceBroker$AudioModeInfo;
+PLcom/android/server/audio/AudioService;->ensureValidStreamType(I)V
+PLcom/android/server/audio/AudioService;->ensureValidVolumeGroup(Landroid/media/audiopolicy/AudioVolumeGroup;)Z
+PLcom/android/server/audio/AudioService;->forceVolumeControlStream(ILandroid/os/IBinder;)V
+PLcom/android/server/audio/AudioService;->getAbsoluteVolumeDevicesWithBehavior(I)Ljava/util/Set;
+PLcom/android/server/audio/AudioService;->getActivePlaybackConfigurations()Ljava/util/List;
+PLcom/android/server/audio/AudioService;->getActiveRecordingConfigurations()Ljava/util/List;
+PLcom/android/server/audio/AudioService;->getActiveStreamType(I)I
 PLcom/android/server/audio/AudioService;->getAudioModeOwnerHandler()Lcom/android/server/audio/AudioService$SetModeDeathHandler;
+PLcom/android/server/audio/AudioService;->getAudioProductStrategies()Ljava/util/List;
 PLcom/android/server/audio/AudioService;->getAudioVolumeGroups()Ljava/util/List;
-PLcom/android/server/audio/AudioService;->getContentResolver()Landroid/content/ContentResolver;
+PLcom/android/server/audio/AudioService;->getAvailableCommunicationDeviceIds()[I
+PLcom/android/server/audio/AudioService;->getBluetoothContextualVolumeStream()I
 PLcom/android/server/audio/AudioService;->getCurrentUserId()I
-HPLcom/android/server/audio/AudioService;->getDeviceForStream(I)I
+HPLcom/android/server/audio/AudioService;->getDeviceForStream(I)I+]Ljava/util/Iterator;Ljava/util/TreeMap$KeyIterator;]Ljava/util/Set;Ljava/util/TreeSet;
+PLcom/android/server/audio/AudioService;->getDeviceMaskForStream(I)I
 HPLcom/android/server/audio/AudioService;->getDeviceSetForStream(I)Ljava/util/Set;
-HPLcom/android/server/audio/AudioService;->getDeviceSetForStreamDirect(I)Ljava/util/Set;
 PLcom/android/server/audio/AudioService;->getDeviceVolumeBehaviorInt(Landroid/media/AudioDeviceAttributes;)I
-HPLcom/android/server/audio/AudioService;->getDevicesForAttributesInt(Landroid/media/AudioAttributes;Z)Ljava/util/ArrayList;
+PLcom/android/server/audio/AudioService;->getDevicesForAttributes(Landroid/media/AudioAttributes;)Ljava/util/List;
+PLcom/android/server/audio/AudioService;->getDevicesForAttributesInt(Landroid/media/AudioAttributes;Z)Ljava/util/ArrayList;
+PLcom/android/server/audio/AudioService;->getFocusStack()Ljava/util/List;
+PLcom/android/server/audio/AudioService;->getLastAudibleStreamVolume(I)I
+PLcom/android/server/audio/AudioService;->getMode()I
+PLcom/android/server/audio/AudioService;->getMutingExpectedDevice()Landroid/media/AudioDeviceAttributes;
+PLcom/android/server/audio/AudioService;->getNewRingerMode(III)I
+PLcom/android/server/audio/AudioService;->getPreferredDevicesForStrategy(I)Ljava/util/List;
 PLcom/android/server/audio/AudioService;->getRingerModeExternal()I
 PLcom/android/server/audio/AudioService;->getRingerModeInternal()I
+PLcom/android/server/audio/AudioService;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
 PLcom/android/server/audio/AudioService;->getSettings()Lcom/android/server/audio/SettingsAdapter;
-PLcom/android/server/audio/AudioService;->getSettingsNameForDeviceVolumeBehavior(I)Ljava/lang/String;
+PLcom/android/server/audio/AudioService;->getSpatializerImmersiveAudioLevel()I
 PLcom/android/server/audio/AudioService;->getStreamMaxVolume(I)I
-PLcom/android/server/audio/AudioService;->getUiDefaultRescaledIndex(II)I
+PLcom/android/server/audio/AudioService;->getStreamMinVolume(I)I
+HPLcom/android/server/audio/AudioService;->getStreamVolume(I)I
+HPLcom/android/server/audio/AudioService;->getStreamVolume(II)I
+PLcom/android/server/audio/AudioService;->getUiSoundsStreamType()I
 PLcom/android/server/audio/AudioService;->getVibrateSetting(I)I
-PLcom/android/server/audio/AudioService;->getVolumeGroupForStreamType(I)I
-PLcom/android/server/audio/AudioService;->getVssVolumeForStream(I)Lcom/android/server/audio/AudioService$VolumeStreamState;
-PLcom/android/server/audio/AudioService;->ignorePlayerLogs(Landroid/media/PlayerBase;)V
-PLcom/android/server/audio/AudioService;->initA11yMonitoring()V
-PLcom/android/server/audio/AudioService;->initExternalEventReceivers()V
-PLcom/android/server/audio/AudioService;->initMinStreamVolumeWithoutModifyAudioSettings()V
-HPLcom/android/server/audio/AudioService;->initVolumeGroupStates()V
-PLcom/android/server/audio/AudioService;->initVolumeStreamStates()V
-HPLcom/android/server/audio/AudioService;->isA2dpAbsoluteVolumeDevice(I)Z
+PLcom/android/server/audio/AudioService;->getVssForStream(I)Lcom/android/server/audio/AudioService$VolumeStreamState;
+HPLcom/android/server/audio/AudioService;->getVssForStreamOrDefault(I)Lcom/android/server/audio/AudioService$VolumeStreamState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/audio/AudioService;->handleBluetoothActiveDeviceChanged(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothDevice;Landroid/media/BluetoothProfileConnectionInfo;)V
+PLcom/android/server/audio/AudioService;->hasAudioFocusUsers()Z
+PLcom/android/server/audio/AudioService;->hasMediaDynamicPolicy()Z
+PLcom/android/server/audio/AudioService;->initStreamVolumeAlias([I)V
+HPLcom/android/server/audio/AudioService;->isA2dpAbsoluteVolumeDevice(I)Z+]Ljava/util/Set;Ljava/util/HashSet;
 HPLcom/android/server/audio/AudioService;->isAbsoluteVolumeDevice(I)Z
+PLcom/android/server/audio/AudioService;->isAndroidNPlus(Ljava/lang/String;)Z
+PLcom/android/server/audio/AudioService;->isAudioServerRunning()Z
 PLcom/android/server/audio/AudioService;->isBluetoothA2dpOn()Z
-PLcom/android/server/audio/AudioService;->isCallStream(I)Z
-HPLcom/android/server/audio/AudioService;->isFixedVolumeDevice(I)Z
-HPLcom/android/server/audio/AudioService;->isFullVolumeDevice(I)Z
+PLcom/android/server/audio/AudioService;->isBluetoothPrividged()Z
+PLcom/android/server/audio/AudioService;->isBluetoothScoOn()Z
+PLcom/android/server/audio/AudioService;->isCameraSoundForced()Z
+HPLcom/android/server/audio/AudioService;->isFixedVolumeDevice(I)Z+]Ljava/util/Set;Ljava/util/HashSet;
+HPLcom/android/server/audio/AudioService;->isFullVolumeDevice(I)Z+]Ljava/util/Set;Ljava/util/HashSet;
 PLcom/android/server/audio/AudioService;->isInCommunication()Z
-PLcom/android/server/audio/AudioService;->isMicrophoneSupposedToBeMuted()Z
-PLcom/android/server/audio/AudioService;->isPlatformAutomotive()Z
-PLcom/android/server/audio/AudioService;->isPlatformTelevision()Z
+PLcom/android/server/audio/AudioService;->isMicrophoneMuted()Z
+PLcom/android/server/audio/AudioService;->isMusicActive(Z)Z
+PLcom/android/server/audio/AudioService;->isPlaybackActiveForUid(I)Z
+PLcom/android/server/audio/AudioService;->isSpatializerEnabled()Z
 PLcom/android/server/audio/AudioService;->isStreamAffectedByMute(I)Z
-HPLcom/android/server/audio/AudioService;->isStreamMute(I)Z
+PLcom/android/server/audio/AudioService;->isStreamAffectedByRingerMode(I)Z
+PLcom/android/server/audio/AudioService;->isStreamBluetoothSco(I)Z
+PLcom/android/server/audio/AudioService;->isStreamMute(I)Z
 PLcom/android/server/audio/AudioService;->isStreamMutedByRingerOrZenMode(I)Z
 PLcom/android/server/audio/AudioService;->isValidAudioAttributesUsage(Landroid/media/AudioAttributes;)Z
 PLcom/android/server/audio/AudioService;->isValidRingerMode(I)Z
 PLcom/android/server/audio/AudioService;->isVolumeFixed()Z
-PLcom/android/server/audio/AudioService;->lambda$ensureValidAttributes$11(Landroid/media/AudioAttributes;)Z
-PLcom/android/server/audio/AudioService;->lambda$new$0(Landroid/media/PlayerBase;)V
+PLcom/android/server/audio/AudioService;->maybeSendSystemAudioStatusCommand(Z)V
+HPLcom/android/server/audio/AudioService;->muteAliasStreams(IZ)V
 HPLcom/android/server/audio/AudioService;->muteRingerModeStreams()V
+PLcom/android/server/audio/AudioService;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
 PLcom/android/server/audio/AudioService;->onAccessibilityServicesStateChanged(Landroid/view/accessibility/AccessibilityManager;)V
-PLcom/android/server/audio/AudioService;->onConfigurationChanged()V
 PLcom/android/server/audio/AudioService;->onIndicateSystemReady()V
-PLcom/android/server/audio/AudioService;->onInitAdiDeviceStates()V
-PLcom/android/server/audio/AudioService;->onInitSpatializer()V
-PLcom/android/server/audio/AudioService;->onInitStreamsAndVolumes()V
-HPLcom/android/server/audio/AudioService;->onObserveDevicesForAllStreams(I)V
-PLcom/android/server/audio/AudioService;->onPlaybackConfigChange(Ljava/util/List;)V
+PLcom/android/server/audio/AudioService;->onRoutingUpdatedFromAudioThread()V
+PLcom/android/server/audio/AudioService;->onRoutingUpdatedFromNative()V
+PLcom/android/server/audio/AudioService;->onSetStreamVolume(IIIILjava/lang/String;ZZ)V
 PLcom/android/server/audio/AudioService;->onSystemReady()V
-PLcom/android/server/audio/AudioService;->onUpdateAccessibilityServiceUids()V
-PLcom/android/server/audio/AudioService;->onUpdateRingerModeServiceInt()V
+PLcom/android/server/audio/AudioService;->onTouchExplorationStateChanged(Z)V
+PLcom/android/server/audio/AudioService;->onUpdateAudioMode(Ljava/lang/String;IIZZ)V
+PLcom/android/server/audio/AudioService;->onUpdateContextualVolumes()V
+PLcom/android/server/audio/AudioService;->onUpdatedAdiDeviceState(Lcom/android/server/audio/AdiDeviceState;Z)V
+PLcom/android/server/audio/AudioService;->permissionUpdateBarrier()V
+PLcom/android/server/audio/AudioService;->playSoundEffect(II)V
 PLcom/android/server/audio/AudioService;->playerAttributes(ILandroid/media/AudioAttributes;)V
-PLcom/android/server/audio/AudioService;->playerEvent(III)V
-PLcom/android/server/audio/AudioService;->portEvent(IILandroid/os/PersistableBundle;)V
+HPLcom/android/server/audio/AudioService;->playerEvent(II[I)V
+HPLcom/android/server/audio/AudioService;->portEvent(IILandroid/os/PersistableBundle;)V
+PLcom/android/server/audio/AudioService;->postAccessoryPlugMediaUnmute(I)V
+PLcom/android/server/audio/AudioService;->postObserveDevicesForAllStreams()V
 PLcom/android/server/audio/AudioService;->postObserveDevicesForAllStreams(I)V
-PLcom/android/server/audio/AudioService;->postUpdateRingerModeServiceInt()V
-PLcom/android/server/audio/AudioService;->queueMsgUnderWakeLock(Landroid/os/Handler;IIILjava/lang/Object;I)V
+PLcom/android/server/audio/AudioService;->postSetVolumeIndexOnDevice(IIILjava/lang/String;)V
+PLcom/android/server/audio/AudioService;->postUpdateAudioMode(IILjava/lang/String;IIZ)V
+PLcom/android/server/audio/AudioService;->queueMsgUnderWakeLock(Landroid/os/Handler;III)V
 PLcom/android/server/audio/AudioService;->readAndSetLowRamDevice()V
 PLcom/android/server/audio/AudioService;->readAudioSettings(Z)V
 PLcom/android/server/audio/AudioService;->readCameraSoundForced()Z
 PLcom/android/server/audio/AudioService;->readDockAudioSettings(Landroid/content/ContentResolver;)V
-HPLcom/android/server/audio/AudioService;->readPersistedSettings()V
+PLcom/android/server/audio/AudioService;->readPersistedSettings()V
 PLcom/android/server/audio/AudioService;->readUserRestrictions()V
-HPLcom/android/server/audio/AudioService;->readVolumeGroupsSettings(Z)V
+PLcom/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;Landroid/content/AttributionSource;)Ljava/lang/String;
+PLcom/android/server/audio/AudioService;->registerAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
+PLcom/android/server/audio/AudioService;->registerCommunicationDeviceDispatcher(Landroid/media/ICommunicationDeviceDispatcher;)V
+PLcom/android/server/audio/AudioService;->registerLoudnessCodecUpdatesDispatcher(Landroid/media/ILoudnessCodecUpdatesDispatcher;)V
+PLcom/android/server/audio/AudioService;->registerModeDispatcher(Landroid/media/IAudioModeDispatcher;)V
+PLcom/android/server/audio/AudioService;->registerMuteAwaitConnectionDispatcher(Landroid/media/IMuteAwaitConnectionCallback;Z)V
 PLcom/android/server/audio/AudioService;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+PLcom/android/server/audio/AudioService;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+PLcom/android/server/audio/AudioService;->releasePlayer(I)V
+PLcom/android/server/audio/AudioService;->releaseRecorder(I)V
+PLcom/android/server/audio/AudioService;->removePreferredDevicesForStrategy(I)I
+HPLcom/android/server/audio/AudioService;->replaceBtScoStreamWithVoiceCall(I)I
 PLcom/android/server/audio/AudioService;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
-HPLcom/android/server/audio/AudioService;->rescaleIndex(III)I
+PLcom/android/server/audio/AudioService;->rescaleIndex(III)I
 PLcom/android/server/audio/AudioService;->rescaleIndex(IIIII)I
-PLcom/android/server/audio/AudioService;->resetActiveAssistantUidsLocked()V
-PLcom/android/server/audio/AudioService;->restoreDeviceVolumeBehavior()V
-PLcom/android/server/audio/AudioService;->retrieveStoredDeviceVolumeBehavior(I)I
-PLcom/android/server/audio/AudioService;->scheduleLoadSoundEffects()V
-HPLcom/android/server/audio/AudioService;->selectOneAudioDevice(Ljava/util/Set;)I
-HPLcom/android/server/audio/AudioService;->sendBroadcastToAll(Landroid/content/Intent;Landroid/os/Bundle;)V
+PLcom/android/server/audio/AudioService;->retrieveBluetoothAddress(Landroid/media/AudioDeviceAttributes;)Landroid/media/AudioDeviceAttributes;
+PLcom/android/server/audio/AudioService;->sendBroadcastToAll(Landroid/content/Intent;Landroid/os/Bundle;)V
 PLcom/android/server/audio/AudioService;->sendEnabledSurroundFormats(Landroid/content/ContentResolver;Z)V
 PLcom/android/server/audio/AudioService;->sendEncodedSurroundMode(ILjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->sendEncodedSurroundMode(Landroid/content/ContentResolver;Ljava/lang/String;)V
 HPLcom/android/server/audio/AudioService;->sendMsg(Landroid/os/Handler;IIIILjava/lang/Object;I)V
-PLcom/android/server/audio/AudioService;->sendStickyBroadcastToAll(Landroid/content/Intent;)V
-HPLcom/android/server/audio/AudioService;->setDeviceVolume(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V
-PLcom/android/server/audio/AudioService;->setMasterMuteInternalNoCallerCheck(ZIILjava/lang/String;)V
+PLcom/android/server/audio/AudioService;->sendVolumeUpdate(III)V
+PLcom/android/server/audio/AudioService;->setA2dpSuspended(Z)V
+PLcom/android/server/audio/AudioService;->setAvrcpAbsoluteVolumeSupported(Z)V
+PLcom/android/server/audio/AudioService;->setBluetoothA2dpOn(Z)V
+PLcom/android/server/audio/AudioService;->setCommunicationDevice(Landroid/os/IBinder;ILandroid/content/AttributionSource;)Z
+PLcom/android/server/audio/AudioService;->setDeviceVolume(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V
+PLcom/android/server/audio/AudioService;->setDeviceVolumeBehavior(Landroid/media/AudioDeviceAttributes;ILjava/lang/String;)V
+PLcom/android/server/audio/AudioService;->setLeAudioSuspended(Z)V
+PLcom/android/server/audio/AudioService;->setMasterMuteInternalNoCallerCheck(IIZ)V
 PLcom/android/server/audio/AudioService;->setMicMuteFromSwitchInput()V
+PLcom/android/server/audio/AudioService;->setMicrophoneMute(ZLjava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/audio/AudioService;->setMicrophoneMuteNoCallerCheck(I)V
+PLcom/android/server/audio/AudioService;->setMode(ILandroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioService;->setMusicMute(Z)V
 PLcom/android/server/audio/AudioService;->setRingerMode(ILjava/lang/String;Z)V
 PLcom/android/server/audio/AudioService;->setRingerModeExt(I)V
 PLcom/android/server/audio/AudioService;->setRingerModeInt(IZ)V
 PLcom/android/server/audio/AudioService;->setRingerModeInternal(ILjava/lang/String;)V
+HPLcom/android/server/audio/AudioService;->setStreamVolume(IIILandroid/media/AudioDeviceAttributes;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)V
+PLcom/android/server/audio/AudioService;->setStreamVolumeInt(IIILjava/lang/String;ZZ)V
+PLcom/android/server/audio/AudioService;->setStreamVolumeWithAttribution(IIILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioService;->setStreamVolumeWithAttributionInt(IIILandroid/media/AudioDeviceAttributes;Ljava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/audio/AudioService;->setVolumeController(Landroid/media/IVolumeController;)V
-PLcom/android/server/audio/AudioService;->shouldZenMuteStream(I)Z
+PLcom/android/server/audio/AudioService;->shouldNotificationSoundPlay(Landroid/media/AudioAttributes;)Z
+PLcom/android/server/audio/AudioService;->startLoudnessCodecUpdates(I)V
 PLcom/android/server/audio/AudioService;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
-PLcom/android/server/audio/AudioService;->systemReady()V
-PLcom/android/server/audio/AudioService;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+HPLcom/android/server/audio/AudioService;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+PLcom/android/server/audio/AudioService;->trackRecorder(Landroid/os/IBinder;)I
+PLcom/android/server/audio/AudioService;->unregisterModeDispatcher(Landroid/media/IAudioModeDispatcher;)V
+PLcom/android/server/audio/AudioService;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+PLcom/android/server/audio/AudioService;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
 PLcom/android/server/audio/AudioService;->updateA11yVolumeAlias(Z)V
 PLcom/android/server/audio/AudioService;->updateActiveAssistantServiceUids()V
-PLcom/android/server/audio/AudioService;->updateAssistantServicesUidsLocked()V
 PLcom/android/server/audio/AudioService;->updateAssistantUIdLocked(Z)V
 PLcom/android/server/audio/AudioService;->updateAudioHalPids()V
 PLcom/android/server/audio/AudioService;->updateAudioModeHandlers(Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/audio/AudioService;->updateDefaultStreamOverrideDelay(Z)V
 PLcom/android/server/audio/AudioService;->updateDefaultVolumes()V
 PLcom/android/server/audio/AudioService;->updateMasterBalance(Landroid/content/ContentResolver;)V
 PLcom/android/server/audio/AudioService;->updateMasterMono(Landroid/content/ContentResolver;)V
-HPLcom/android/server/audio/AudioService;->updateRingerAndZenModeAffectedStreams()Z
-PLcom/android/server/audio/AudioService;->updateStreamVolumeAlias(ZLjava/lang/String;)V
+PLcom/android/server/audio/AudioService;->updateRingerAndZenModeAffectedStreams()Z
+PLcom/android/server/audio/AudioService;->updateStreamVolumeAlias(Ljava/lang/String;Z)V
 PLcom/android/server/audio/AudioService;->updateVibratorInfos()V
-HPLcom/android/server/audio/AudioService;->updateVolumeStates(IILjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->updateZenModeAffectedStreams()Z
+HPLcom/android/server/audio/AudioService;->updateVolumeStates(IILjava/lang/String;)V+]Landroid/media/AudioAttributes$Builder;Landroid/media/AudioAttributes$Builder;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Set;Ljava/util/HashSet;
 PLcom/android/server/audio/AudioService;->validateAudioAttributesUsage(Landroid/media/AudioAttributes;)V
-PLcom/android/server/audio/AudioService;->waitForAudioHandlerCreation()V
+PLcom/android/server/audio/AudioService;->volumeAdjustmentAllowedByDnd(II)Z
+PLcom/android/server/audio/AudioService;->wasStreamActiveRecently(II)Z
+PLcom/android/server/audio/AudioService;->wouldToggleZenMode(I)Z
 PLcom/android/server/audio/AudioServiceEvents$ForceUseEvent;-><init>(IILjava/lang/String;)V
+PLcom/android/server/audio/AudioServiceEvents$ForceUseEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/audio/AudioServiceEvents$LoudnessEvent;-><init>(III)V
+PLcom/android/server/audio/AudioServiceEvents$LoudnessEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/audio/AudioServiceEvents$PhoneStateEvent;-><init>(IIIILjava/lang/String;)V
 PLcom/android/server/audio/AudioServiceEvents$RingerZenMutedStreamsEvent;-><init>(ILjava/lang/String;)V
-PLcom/android/server/audio/AudioServiceEvents$VolChangedBroadcastEvent;-><init>(IIII)V
+PLcom/android/server/audio/AudioServiceEvents$RingerZenMutedStreamsEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/audio/AudioServiceEvents$StreamMuteEvent;-><init>(ILjava/lang/String;Z)V
+PLcom/android/server/audio/AudioServiceEvents$StreamMuteEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/audio/AudioServiceEvents$VolChangedBroadcastEvent;-><init>(IIILjava/lang/String;)V
+PLcom/android/server/audio/AudioServiceEvents$VolumeEvent;-><init>(I)V
+PLcom/android/server/audio/AudioServiceEvents$VolumeEvent;-><init>(IIIILjava/lang/String;I)V
+PLcom/android/server/audio/AudioServiceEvents$VolumeEvent;-><init>(IZ)V
+PLcom/android/server/audio/AudioServiceEvents$VolumeEvent;-><init>(ZIII)V
+HPLcom/android/server/audio/AudioServiceEvents$VolumeEvent;->logMetricEvent$1()V
 PLcom/android/server/audio/AudioSystemAdapter;-><clinit>()V
 PLcom/android/server/audio/AudioSystemAdapter;-><init>()V
+PLcom/android/server/audio/AudioSystemAdapter;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/audio/AudioSystemAdapter;->getDefaultAdapter()Lcom/android/server/audio/AudioSystemAdapter;
-HPLcom/android/server/audio/AudioSystemAdapter;->getDevicesForAttributes(Landroid/media/AudioAttributes;Z)Ljava/util/ArrayList;
-HPLcom/android/server/audio/AudioSystemAdapter;->getDevicesForAttributesImpl(Landroid/media/AudioAttributes;Z)Ljava/util/ArrayList;
+HPLcom/android/server/audio/AudioSystemAdapter;->getDevicesForAttributes(Landroid/media/AudioAttributes;Z)Ljava/util/ArrayList;+]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
 HPLcom/android/server/audio/AudioSystemAdapter;->invalidateRoutingCache()V
-PLcom/android/server/audio/AudioSystemAdapter;->isMicrophoneMuted()Z
-PLcom/android/server/audio/AudioSystemAdapter;->muteMicrophone(Z)I
-PLcom/android/server/audio/AudioSystemAdapter;->onRoutingUpdated()V
-PLcom/android/server/audio/AudioSystemAdapter;->setCurrentImeUid(I)I
-PLcom/android/server/audio/AudioSystemAdapter;->setForceUse(II)I
-PLcom/android/server/audio/AudioSystemAdapter;->setRoutingListener(Lcom/android/server/audio/AudioSystemAdapter$OnRoutingUpdatedListener;)V
-HPLcom/android/server/audio/AudioSystemAdapter;->setStreamVolumeIndexAS(III)I
-PLcom/android/server/audio/AudioSystemAdapter;->setVolRangeInitReqListener(Lcom/android/server/audio/AudioSystemAdapter$OnVolRangeInitRequestListener;)V
+HPLcom/android/server/audio/AudioSystemAdapter;->onRoutingUpdated()V
+PLcom/android/server/audio/AudioSystemAdapter;->setDeviceConnectionState(Landroid/media/AudioDeviceAttributes;II)I
+PLcom/android/server/audio/AudioVolumeGroupHelperBase;-><init>()V
 PLcom/android/server/audio/BtHelper$1;-><init>(Lcom/android/server/audio/BtHelper;)V
 PLcom/android/server/audio/BtHelper$1;->onServiceConnected(ILandroid/bluetooth/BluetoothProfile;)V
-PLcom/android/server/audio/BtHelper;->-$$Nest$fgetmDeviceBroker(Lcom/android/server/audio/BtHelper;)Lcom/android/server/audio/AudioDeviceBroker;
 PLcom/android/server/audio/BtHelper;-><init>(Lcom/android/server/audio/AudioDeviceBroker;Landroid/content/Context;)V
 PLcom/android/server/audio/BtHelper;->broadcastScoConnectionState(I)V
+PLcom/android/server/audio/BtHelper;->btHeadsetDeviceToAudioDevice(Landroid/bluetooth/BluetoothDevice;)Landroid/media/AudioDeviceAttributes;
 PLcom/android/server/audio/BtHelper;->checkScoAudioState()V
 PLcom/android/server/audio/BtHelper;->getBluetoothHeadset()Z
-PLcom/android/server/audio/BtHelper;->isBluetoothScoOn()Z
-PLcom/android/server/audio/BtHelper;->onBroadcastScoConnectionState(I)V
+PLcom/android/server/audio/BtHelper;->getBtDeviceCategory(Ljava/lang/String;)I
+PLcom/android/server/audio/BtHelper;->getCodec(Landroid/bluetooth/BluetoothDevice;I)Landroid/util/Pair;
+PLcom/android/server/audio/BtHelper;->getCodecWithFallback(Landroid/bluetooth/BluetoothDevice;IZLjava/lang/String;)Landroid/util/Pair;
+PLcom/android/server/audio/BtHelper;->handleBtScoActiveDeviceChange(Landroid/bluetooth/BluetoothDevice;Z)Z
+PLcom/android/server/audio/BtHelper;->isProfilePoxyConnected(I)Z
 PLcom/android/server/audio/BtHelper;->onBtProfileConnected(ILandroid/bluetooth/BluetoothProfile;)V
 PLcom/android/server/audio/BtHelper;->onHeadsetProfileConnected(Landroid/bluetooth/BluetoothHeadset;)V
+PLcom/android/server/audio/BtHelper;->onScoAudioStateChanged(I)V
+PLcom/android/server/audio/BtHelper;->onSetBtScoActiveDevice(Landroid/bluetooth/BluetoothDevice;)V
 PLcom/android/server/audio/BtHelper;->onSystemReady()V
 PLcom/android/server/audio/BtHelper;->resetBluetoothSco()V
+PLcom/android/server/audio/BtHelper;->scoAudioModeToString(I)Ljava/lang/String;
 PLcom/android/server/audio/BtHelper;->sendStickyBroadcastToAll(Landroid/content/Intent;)V
-PLcom/android/server/audio/DefaultAudioPolicyFacade;-><init>()V
-PLcom/android/server/audio/DefaultAudioPolicyFacade;->getAudioPolicyOrInit()Landroid/media/IAudioPolicyService;
+PLcom/android/server/audio/BtHelper;->setAvrcpAbsoluteVolumeIndex(I)V
+PLcom/android/server/audio/DefaultAudioPolicyFacade$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/audio/DefaultAudioPolicyFacade$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda16;)V
+PLcom/android/server/audio/DefaultAudioPolicyFacade$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/audio/DefaultAudioPolicyFacade;-><init>(Ljava/util/concurrent/Executor;)V
 PLcom/android/server/audio/FadeConfigurations;-><clinit>()V
 PLcom/android/server/audio/FadeConfigurations;-><init>()V
+PLcom/android/server/audio/FadeConfigurations;->getActiveFadeMgrConfigLocked()Landroid/media/FadeManagerConfiguration;
+PLcom/android/server/audio/FadeConfigurations;->getFadeOutVolumeShaperConfig(Landroid/media/AudioAttributes;)Landroid/media/VolumeShaper$Configuration;
+PLcom/android/server/audio/FadeConfigurations;->getUpdatedFadeManagerConfigLocked()Landroid/media/FadeManagerConfiguration;
 PLcom/android/server/audio/FadeOutManager;-><init>()V
-PLcom/android/server/audio/FadeOutManager;->removeReleased(Landroid/media/AudioPlaybackConfiguration;)V
 PLcom/android/server/audio/FadeOutManager;->unfadeOutUid(ILjava/util/Map;)V
-PLcom/android/server/audio/FocusRequester;-><init>(Landroid/media/AudioAttributes;IILandroid/media/IAudioFocusDispatcher;Landroid/os/IBinder;Ljava/lang/String;Lcom/android/server/audio/MediaFocusControl$AudioFocusDeathHandler;Ljava/lang/String;ILcom/android/server/audio/MediaFocusControl;I)V
+PLcom/android/server/audio/FocusRequester$FocusRequestEvent;-><init>(Lcom/android/server/audio/FocusRequester;ILjava/lang/String;)V
+PLcom/android/server/audio/FocusRequester;-><init>(Landroid/media/AudioAttributes;IILandroid/media/IAudioFocusDispatcher;Landroid/os/IBinder;Ljava/lang/String;Lcom/android/server/audio/MediaFocusControl$AudioFocusDeathHandler;Ljava/lang/String;ILcom/android/server/audio/MediaFocusControl;ILcom/android/server/utils/EventLogger;)V
 PLcom/android/server/audio/FocusRequester;->finalize()V
-PLcom/android/server/audio/FocusRequester;->getClientUid()I
-PLcom/android/server/audio/FocusRequester;->handleFocusGainFromRequest(I)V
+PLcom/android/server/audio/FocusRequester;->handleFocusGain()V
+PLcom/android/server/audio/FocusRequester;->handleFocusLoss(ILcom/android/server/audio/FocusRequester;Z)V
+PLcom/android/server/audio/FocusRequester;->handleFocusLossFromGain(ILcom/android/server/audio/FocusRequester;Z)Z
 PLcom/android/server/audio/FocusRequester;->hasSameClient(Ljava/lang/String;)Z
-PLcom/android/server/audio/FocusRequester;->maybeRelease()V
 PLcom/android/server/audio/FocusRequester;->release()V
 PLcom/android/server/audio/FocusRequester;->toAudioFocusInfo()Landroid/media/AudioFocusInfo;
-PLcom/android/server/audio/HardeningEnforcer;-><init>(Landroid/content/Context;Z)V
+PLcom/android/server/audio/HardeningEnforcer;-><clinit>()V
+PLcom/android/server/audio/HardeningEnforcer;-><init>(Landroid/content/Context;ZLandroid/app/AppOpsManager;Landroid/content/pm/PackageManager;)V
+PLcom/android/server/audio/HardeningEnforcer;->blockFocusMethod(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+PLcom/android/server/audio/HardeningEnforcer;->blockVolumeMethod(I)Z
+PLcom/android/server/audio/HardeningEnforcer;->metricsLogFocusReq(IIZZ)V
+PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda1;-><init>(III)V
+PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
+PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/audio/LoudnessCodecHelper;Ljava/util/HashSet;I)V
 PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/audio/LoudnessCodecHelper;)V
+PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
+PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda5;-><init>(II)V
+PLcom/android/server/audio/LoudnessCodecHelper$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
 PLcom/android/server/audio/LoudnessCodecHelper$LoudnessRemoteCallbackList;-><init>(Lcom/android/server/audio/LoudnessCodecHelper;)V
+PLcom/android/server/audio/LoudnessCodecHelper$LoudnessRemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V
+PLcom/android/server/audio/LoudnessCodecHelper$LoudnessTrackId;-><init>(II)V
+PLcom/android/server/audio/LoudnessCodecHelper$LoudnessTrackId;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/audio/LoudnessCodecHelper$LoudnessTrackId;->hashCode()I
 PLcom/android/server/audio/LoudnessCodecHelper;-><clinit>()V
 PLcom/android/server/audio/LoudnessCodecHelper;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/LoudnessCodecHelper;->updateCodecParameters(Ljava/util/List;)V
+PLcom/android/server/audio/LoudnessCodecHelper;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/MediaFocusControl$1;-><init>(Lcom/android/server/audio/MediaFocusControl;Landroid/media/audiopolicy/IAudioPolicyCallback;)V
+PLcom/android/server/audio/MediaFocusControl$1;->run()V
+PLcom/android/server/audio/MediaFocusControl$3;-><init>(Lcom/android/server/audio/MediaFocusControl;Z)V
+PLcom/android/server/audio/MediaFocusControl$3;->run()V
 PLcom/android/server/audio/MediaFocusControl$4;-><init>(Lcom/android/server/audio/MediaFocusControl;Landroid/os/Looper;)V
 PLcom/android/server/audio/MediaFocusControl$AudioFocusDeathHandler;-><init>(Lcom/android/server/audio/MediaFocusControl;Landroid/os/IBinder;)V
 PLcom/android/server/audio/MediaFocusControl$ForgetFadeUidInfo;-><init>(I)V
 PLcom/android/server/audio/MediaFocusControl;-><clinit>()V
-PLcom/android/server/audio/MediaFocusControl;-><init>(Landroid/content/Context;Lcom/android/server/audio/PlayerFocusEnforcer;)V
-PLcom/android/server/audio/MediaFocusControl;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
-PLcom/android/server/audio/MediaFocusControl;->canReassignAudioFocus()Z
-PLcom/android/server/audio/MediaFocusControl;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
-PLcom/android/server/audio/MediaFocusControl;->initFocusThreading()V
-PLcom/android/server/audio/MediaFocusControl;->isFocusFrozenForTest()Z
-PLcom/android/server/audio/MediaFocusControl;->maybeDiscardAudioFocusOwner()Z
+PLcom/android/server/audio/MediaFocusControl;-><init>(Landroid/content/Context;Lcom/android/server/audio/PlaybackActivityMonitor;)V
+HPLcom/android/server/audio/MediaFocusControl;->abandonAudioFocus(Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)V
+PLcom/android/server/audio/MediaFocusControl;->getFocusRampTimeMs(Landroid/media/AudioAttributes;)I
+PLcom/android/server/audio/MediaFocusControl;->isLockedFocusOwner(Lcom/android/server/audio/FocusRequester;)Z
 PLcom/android/server/audio/MediaFocusControl;->notifyExtPolicyFocusGrant_syncAf(Landroid/media/AudioFocusInfo;I)V
 PLcom/android/server/audio/MediaFocusControl;->notifyExtPolicyFocusLoss_syncAf(Landroid/media/AudioFocusInfo;Z)V
 PLcom/android/server/audio/MediaFocusControl;->notifyTopOfAudioFocusStack()V
 PLcom/android/server/audio/MediaFocusControl;->propagateFocusLossFromGain_syncAf(ILcom/android/server/audio/FocusRequester;Z)V
+PLcom/android/server/audio/MediaFocusControl;->removeFocusFollower(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
 PLcom/android/server/audio/MediaFocusControl;->removeFocusStackEntry(Ljava/lang/String;ZZ)V
-HPLcom/android/server/audio/MediaFocusControl;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZI)I
+HPLcom/android/server/audio/MediaFocusControl;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;IIZI)I
 PLcom/android/server/audio/MediaFocusControl;->restoreVShapedPlayers(Lcom/android/server/audio/FocusRequester;)V
 PLcom/android/server/audio/MusicFxHelper$1;-><init>(Lcom/android/server/audio/MusicFxHelper;)V
-PLcom/android/server/audio/MusicFxHelper$2;-><init>(Lcom/android/server/audio/MusicFxHelper;)V
 PLcom/android/server/audio/MusicFxHelper$MySparseArray;-><init>(Lcom/android/server/audio/MusicFxHelper;)V
-PLcom/android/server/audio/MusicFxHelper$MySparseArray;-><init>(Lcom/android/server/audio/MusicFxHelper;Lcom/android/server/audio/MusicFxHelper$MySparseArray-IA;)V
 PLcom/android/server/audio/MusicFxHelper;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioService$AudioHandler;)V
 PLcom/android/server/audio/PlaybackActivityMonitor$1;-><init>(Lcom/android/server/audio/PlaybackActivityMonitor;Landroid/os/Looper;)V
 PLcom/android/server/audio/PlaybackActivityMonitor$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/audio/PlaybackActivityMonitor$AudioAttrEvent;-><init>(ILandroid/media/AudioAttributes;)V
+PLcom/android/server/audio/PlaybackActivityMonitor$AudioAttrEvent;-><init>(ILandroid/media/AudioPlaybackConfiguration$FormatInfo;)V
+PLcom/android/server/audio/PlaybackActivityMonitor$AudioAttrEvent;->eventToString()Ljava/lang/String;
 PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;-><init>()V
-PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;-><init>(Lcom/android/server/audio/PlaybackActivityMonitor$DuckingManager-IA;)V
 PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;->removeReleased(Landroid/media/AudioPlaybackConfiguration;)V
 PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;->unduckUid(ILjava/util/HashMap;)V
-HPLcom/android/server/audio/PlaybackActivityMonitor$NewPlayerEvent;-><init>(Landroid/media/AudioPlaybackConfiguration;)V
-PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;-><init>(Landroid/media/IPlaybackConfigDispatcher;Z)V
+PLcom/android/server/audio/PlaybackActivityMonitor$NewPlayerEvent;-><init>(Landroid/media/AudioPlaybackConfiguration;Ljava/lang/String;)V
+PLcom/android/server/audio/PlaybackActivityMonitor$NewPlayerEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;-><init>(Landroid/media/IPlaybackConfigDispatcher;ZII)V
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->binderDied()V
 PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
-PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->init()Z
-PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->isPrivileged()Z
-PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->reachedMaxErrorCount()Z
-PLcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;-><init>(III)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->-$$Nest$fgetmPlayerLock(Lcom/android/server/audio/PlaybackActivityMonitor;)Ljava/lang/Object;
-PLcom/android/server/audio/PlaybackActivityMonitor;->-$$Nest$fgetmPortIdToPiid(Lcom/android/server/audio/PlaybackActivityMonitor;)Landroid/util/SparseIntArray;
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->toString()Ljava/lang/String;
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;-><init>(II[I)V
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;->eventToString()Ljava/lang/String;
 PLcom/android/server/audio/PlaybackActivityMonitor;-><clinit>()V
-PLcom/android/server/audio/PlaybackActivityMonitor;-><init>(Landroid/content/Context;ILjava/util/function/Consumer;)V
+PLcom/android/server/audio/PlaybackActivityMonitor;-><init>(Landroid/content/Context;ILcom/android/server/audio/AudioService$$ExternalSyntheticLambda17;Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda19;)V
+PLcom/android/server/audio/PlaybackActivityMonitor;->anonymizeForPublicConsumption(Ljava/util/List;)Ljava/util/ArrayList;
 PLcom/android/server/audio/PlaybackActivityMonitor;->checkConfigurationCaller(ILandroid/media/AudioPlaybackConfiguration;I)Z
 PLcom/android/server/audio/PlaybackActivityMonitor;->checkVolumeForPrivilegedAlarm(Landroid/media/AudioPlaybackConfiguration;I)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->dispatchPlaybackChange(Z)V
+HPLcom/android/server/audio/PlaybackActivityMonitor;->dispatchPlaybackChange(Z)V
+PLcom/android/server/audio/PlaybackActivityMonitor;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/audio/PlaybackActivityMonitor;->ignorePlayerIId(I)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->initEventHandler()V
 PLcom/android/server/audio/PlaybackActivityMonitor;->maybeMutePlayerAwaitingConnection(Landroid/media/AudioPlaybackConfiguration;)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->playerAttributes(ILandroid/media/AudioAttributes;I)V
+PLcom/android/server/audio/PlaybackActivityMonitor;->mutePlayersForCall([I)V
 PLcom/android/server/audio/PlaybackActivityMonitor;->playerDeath(I)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->playerEvent(IIII)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->portEvent(IILandroid/os/PersistableBundle;I)V
 PLcom/android/server/audio/PlaybackActivityMonitor;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;Z)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->releasePlayer(II)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->restoreVShapedPlayers(Lcom/android/server/audio/FocusRequester;)V
-HPLcom/android/server/audio/PlaybackActivityMonitor;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+HPLcom/android/server/audio/PlaybackActivityMonitor;->releasePlayer(II)V
+PLcom/android/server/audio/PlaybackActivityMonitor;->unmutePlayersForCall()V
+PLcom/android/server/audio/PlaybackActivityMonitor;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
 PLcom/android/server/audio/RecordingActivityMonitor$RecMonitorClient;-><init>(Landroid/media/IRecordingConfigDispatcher;Z)V
-PLcom/android/server/audio/RecordingActivityMonitor$RecMonitorClient;->init()Z
+PLcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;-><init>(ILandroid/os/IBinder;)V
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingEvent;-><init>(IILandroid/media/AudioRecordingConfiguration;)V
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;-><init>(ILcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;)V
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->isActiveConfiguration()Z
 PLcom/android/server/audio/RecordingActivityMonitor;-><clinit>()V
 PLcom/android/server/audio/RecordingActivityMonitor;-><init>(Landroid/content/Context;)V
-PLcom/android/server/audio/RecordingActivityMonitor;->initMonitor()V
+PLcom/android/server/audio/RecordingActivityMonitor;->dispatchCallbacks(Ljava/util/List;)V
+PLcom/android/server/audio/RecordingActivityMonitor;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/RecordingActivityMonitor;->getActiveRecordingConfigurations(Z)Ljava/util/List;
+PLcom/android/server/audio/RecordingActivityMonitor;->isRecordingActiveForUid(I)Z
+PLcom/android/server/audio/RecordingActivityMonitor;->onRecordingConfigurationChanged(IIIIIIZ[I[Landroid/media/audiofx/AudioEffect$Descriptor;[Landroid/media/audiofx/AudioEffect$Descriptor;ILjava/lang/String;)V
 PLcom/android/server/audio/RecordingActivityMonitor;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;Z)V
-PLcom/android/server/audio/SettingsAdapter;-><init>()V
-PLcom/android/server/audio/SettingsAdapter;->getDefaultAdapter()Lcom/android/server/audio/SettingsAdapter;
-PLcom/android/server/audio/SettingsAdapter;->getGlobalInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
-PLcom/android/server/audio/SettingsAdapter;->getGlobalString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/audio/SettingsAdapter;->getSecureIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
-PLcom/android/server/audio/SettingsAdapter;->getSecureStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/audio/SettingsAdapter;->getSystemIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
-PLcom/android/server/audio/SettingsAdapter;->putGlobalInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
-PLcom/android/server/audio/SettingsAdapter;->putSystemIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
+PLcom/android/server/audio/RecordingActivityMonitor;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+PLcom/android/server/audio/RecordingActivityMonitor;->updateSnapshot(IILandroid/media/AudioRecordingConfiguration;)Ljava/util/List;
+PLcom/android/server/audio/ServiceHolder$$ExternalSyntheticLambda0;-><init>(Ljava/util/function/Consumer;Landroid/os/IInterface;I)V
+PLcom/android/server/audio/ServiceHolder$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/audio/ServiceHolder$1;-><init>(Lcom/android/server/audio/ServiceHolder;)V
+PLcom/android/server/audio/ServiceHolder$1;->onRegistration(Ljava/lang/String;Landroid/os/IBinder;)V
+PLcom/android/server/audio/ServiceHolder;-><init>(Lcom/android/server/audio/DefaultAudioPolicyFacade$$ExternalSyntheticLambda0;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/audio/ServiceHolder;->onServiceInited(Landroid/os/IBinder;)Landroid/os/IInterface;
 PLcom/android/server/audio/SoundDoseHelper$1;-><init>(Lcom/android/server/audio/SoundDoseHelper;)V
-PLcom/android/server/audio/SoundDoseHelper;-><init>(Lcom/android/server/audio/AudioService;Landroid/content/Context;Lcom/android/server/audio/AudioService$AudioHandler;Lcom/android/server/audio/SettingsAdapter;Lcom/android/server/audio/AudioService$ISafeHearingVolumeController;)V
-PLcom/android/server/audio/SoundDoseHelper;->configureSafeMedia(ZLjava/lang/String;)V
+PLcom/android/server/audio/SoundDoseHelper;-><init>(Lcom/android/server/audio/AudioService;Landroid/content/Context;Lcom/android/server/audio/AudioService$AudioHandler;Lcom/android/server/audio/SettingsAdapter;Lcom/android/server/audio/AudioService$VolumeController;)V
+PLcom/android/server/audio/SoundDoseHelper;->checkSafeMediaVolume_l(III)Z
+PLcom/android/server/audio/SoundDoseHelper;->configureSafeMedia(Z)V
 PLcom/android/server/audio/SoundDoseHelper;->enforceSafeMediaVolume(Ljava/lang/String;)V
-PLcom/android/server/audio/SoundDoseHelper;->enforceSafeMediaVolumeIfActive(Ljava/lang/String;)V
-PLcom/android/server/audio/SoundDoseHelper;->getSafeDeviceMediaVolumeIndex(I)I
 PLcom/android/server/audio/SoundDoseHelper;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/audio/SoundDoseHelper;->initCachedAudioDeviceCategories(Ljava/util/Collection;)V
 PLcom/android/server/audio/SoundDoseHelper;->initCsd()V
 PLcom/android/server/audio/SoundDoseHelper;->initSafeMediaVolumeIndex()V
-PLcom/android/server/audio/SoundDoseHelper;->initSafeVolumes()V
-PLcom/android/server/audio/SoundDoseHelper;->onConfigureSafeMedia(ZLjava/lang/String;)V
-PLcom/android/server/audio/SoundDoseHelper;->onPersistSafeVolumeState(I)V
-PLcom/android/server/audio/SoundDoseHelper;->restoreMusicActiveMs()V
+PLcom/android/server/audio/SoundDoseHelper;->safeDevicesContains(I)Z
 PLcom/android/server/audio/SoundDoseHelper;->safeMediaVolumeIndex(I)I
+PLcom/android/server/audio/SoundDoseHelper;->scheduleMusicActiveCheck()V
+PLcom/android/server/audio/SoundDoseHelper;->setAudioDeviceCategory(ILjava/lang/String;Z)V
 PLcom/android/server/audio/SoundDoseHelper;->updateCsdEnabled(Ljava/lang/String;)V
-PLcom/android/server/audio/SoundDoseHelper;->updateDoseAttenuation(IIIZ)V
 PLcom/android/server/audio/SoundDoseHelper;->updateSafeMediaVolume_l(Ljava/lang/String;)V
-PLcom/android/server/audio/SoundEffectsHelper$1;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
+PLcom/android/server/audio/SoundDoseHelper;->willDisplayWarningAfterCheckVolume(IIII)Z
+PLcom/android/server/audio/SoundEffectsHelper$1;-><init>(Lcom/android/server/audio/SoundEffectsHelper;I)V
 PLcom/android/server/audio/SoundEffectsHelper$1;->run(Z)V
 PLcom/android/server/audio/SoundEffectsHelper$Resource;-><init>(Ljava/lang/String;)V
 PLcom/android/server/audio/SoundEffectsHelper$SfxHandler;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
-PLcom/android/server/audio/SoundEffectsHelper$SfxHandler;-><init>(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SfxHandler-IA;)V
 PLcom/android/server/audio/SoundEffectsHelper$SfxHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/audio/SoundEffectsHelper$SfxWorker;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
 PLcom/android/server/audio/SoundEffectsHelper$SfxWorker;->run()V
 PLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
-PLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;->addHandler(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
 PLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;->onComplete(Z)V
-PLcom/android/server/audio/SoundEffectsHelper;->-$$Nest$fgetmSoundPool(Lcom/android/server/audio/SoundEffectsHelper;)Landroid/media/SoundPool;
-PLcom/android/server/audio/SoundEffectsHelper;->-$$Nest$fputmSfxHandler(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;)V
-PLcom/android/server/audio/SoundEffectsHelper;->-$$Nest$fputmSoundPoolLoader(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;)V
-PLcom/android/server/audio/SoundEffectsHelper;->-$$Nest$mlogEvent(Lcom/android/server/audio/SoundEffectsHelper;Ljava/lang/String;)V
 PLcom/android/server/audio/SoundEffectsHelper;->-$$Nest$monLoadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
-PLcom/android/server/audio/SoundEffectsHelper;-><init>(Landroid/content/Context;Ljava/util/function/Consumer;)V
+PLcom/android/server/audio/SoundEffectsHelper;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda17;)V
 PLcom/android/server/audio/SoundEffectsHelper;->allNavigationRepeatSoundsParsed(Ljava/util/Map;)Z
 PLcom/android/server/audio/SoundEffectsHelper;->findOrAddResourceByFileName(Ljava/lang/String;)I
-HPLcom/android/server/audio/SoundEffectsHelper;->getResourceFilePath(Lcom/android/server/audio/SoundEffectsHelper$Resource;)Ljava/lang/String;
-PLcom/android/server/audio/SoundEffectsHelper;->loadSoundAssetDefaults()V
-PLcom/android/server/audio/SoundEffectsHelper;->loadSoundAssets()V
-PLcom/android/server/audio/SoundEffectsHelper;->loadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
+PLcom/android/server/audio/SoundEffectsHelper;->getResourceFilePath(Lcom/android/server/audio/SoundEffectsHelper$Resource;)Ljava/lang/String;
 PLcom/android/server/audio/SoundEffectsHelper;->logEvent(Ljava/lang/String;)V
-HPLcom/android/server/audio/SoundEffectsHelper;->onLoadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
-PLcom/android/server/audio/SoundEffectsHelper;->sendMsg(IIILjava/lang/Object;I)V
-PLcom/android/server/audio/SoundEffectsHelper;->startWorker()V
-PLcom/android/server/audio/SpatializerHelper$1;-><init>(I)V
 PLcom/android/server/audio/SpatializerHelper$SpatializerHeadTrackingCallback;-><init>(Lcom/android/server/audio/SpatializerHelper;)V
-PLcom/android/server/audio/SpatializerHelper$SpatializerHeadTrackingCallback;-><init>(Lcom/android/server/audio/SpatializerHelper;Lcom/android/server/audio/SpatializerHelper$SpatializerHeadTrackingCallback-IA;)V
 PLcom/android/server/audio/SpatializerHelper;-><clinit>()V
 PLcom/android/server/audio/SpatializerHelper;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioSystemAdapter;Lcom/android/server/audio/AudioDeviceBroker;ZZZ)V
+PLcom/android/server/audio/SpatializerHelper;->findSACompatibleDeviceStateForAudioDeviceAttributes(Landroid/media/AudioDeviceAttributes;)Lcom/android/server/audio/AdiDeviceState;
+PLcom/android/server/audio/SpatializerHelper;->getCanonicalDeviceType(II)I
 PLcom/android/server/audio/SpatializerHelper;->init(Z)V
+PLcom/android/server/audio/SpatializerHelper;->isDeviceCompatibleWithSpatializationModes(Landroid/media/AudioDeviceAttributes;)Z
+PLcom/android/server/audio/SpatializerHelper;->isSADevice(Lcom/android/server/audio/AdiDeviceState;)Z
 PLcom/android/server/audio/SpatializerHelper;->loglogi(Ljava/lang/String;)V
+PLcom/android/server/audio/SpatializerHelper;->refreshDevice(Landroid/media/AudioDeviceAttributes;Z)V
+PLcom/android/server/audio/SpatializerHelper;->removeCompatibleAudioDevice(Landroid/media/AudioDeviceAttributes;)V
 PLcom/android/server/audio/SpatializerHelper;->setFeatureEnabled(Z)V
 PLcom/android/server/audio/SystemServerAdapter$1;-><init>(Lcom/android/server/audio/SystemServerAdapter;)V
 PLcom/android/server/audio/SystemServerAdapter$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/audio/SystemServerAdapter;-><init>(Landroid/content/Context;)V
-PLcom/android/server/audio/SystemServerAdapter;->getDefaultAdapter(Landroid/content/Context;)Lcom/android/server/audio/SystemServerAdapter;
-PLcom/android/server/audio/SystemServerAdapter;->isPrivileged()Z
-PLcom/android/server/audio/SystemServerAdapter;->registerUserStartedReceiver(Landroid/content/Context;)V
+PLcom/android/server/backup/AppGrammaticalGenderBackupHelper;-><init>(I)V
+PLcom/android/server/backup/AppGrammaticalGenderBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+PLcom/android/server/backup/AppSpecificLocalesBackupHelper;-><init>(I)V
+PLcom/android/server/backup/AppSpecificLocalesBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/backup/BackupAgentConnectionManager$BackupAgentConnection;-><init>(Landroid/content/pm/ApplicationInfo;IZ)V
+PLcom/android/server/backup/BackupAgentConnectionManager;-><init>(Lcom/android/server/backup/internal/LifecycleOperationStorage;Landroid/content/pm/PackageManager;Lcom/android/server/backup/UserBackupManagerService;I)V
+PLcom/android/server/backup/BackupAgentConnectionManager;->bindToAgentSynchronous(Landroid/content/pm/ApplicationInfo;II)Landroid/app/IBackupAgent;
+PLcom/android/server/backup/BackupAgentConnectionManager;->clearNoRestrictedModePackages()V
+PLcom/android/server/backup/BackupAgentConnectionManager;->getCallingUid()I
+PLcom/android/server/backup/BackupAgentConnectionManager;->setNoRestrictedModePackages(ILjava/util/Set;)V
+PLcom/android/server/backup/BackupAgentConnectionManager;->shouldUseRestrictedBackupModeForPackage(ILjava/lang/String;)Z
+PLcom/android/server/backup/BackupAgentConnectionManager;->unbindAgent(Landroid/content/pm/ApplicationInfo;Z)V
 PLcom/android/server/backup/BackupAgentTimeoutParameters;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;)V
+PLcom/android/server/backup/BackupAgentTimeoutParameters;->getFullBackupAgentTimeoutMillis()J
+PLcom/android/server/backup/BackupAgentTimeoutParameters;->getKvBackupAgentTimeoutMillis()J
+PLcom/android/server/backup/BackupAgentTimeoutParameters;->getQuotaExceededTimeoutMillis()J
+PLcom/android/server/backup/BackupAgentTimeoutParameters;->getRestoreAgentTimeoutMillis(I)J
 PLcom/android/server/backup/BackupAgentTimeoutParameters;->getSettingValue(Landroid/content/ContentResolver;)Ljava/lang/String;
 PLcom/android/server/backup/BackupAgentTimeoutParameters;->update(Landroid/util/KeyValueListParser;)V
 PLcom/android/server/backup/BackupAndRestoreFeatureFlags;->getBackupTransportFutureTimeoutMillis()J
-PLcom/android/server/backup/BackupManagerConstants;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;)V
-PLcom/android/server/backup/BackupManagerConstants;->getKeyValueBackupFuzzMilliseconds()J
+PLcom/android/server/backup/BackupManagerConstants;->getFullBackupIntervalMilliseconds()J
 PLcom/android/server/backup/BackupManagerConstants;->getKeyValueBackupIntervalMilliseconds()J
-PLcom/android/server/backup/BackupManagerConstants;->getKeyValueBackupRequireCharging()Z
-PLcom/android/server/backup/BackupManagerConstants;->getKeyValueBackupRequiredNetworkType()I
 PLcom/android/server/backup/BackupManagerConstants;->getSettingValue(Landroid/content/ContentResolver;)Ljava/lang/String;
 PLcom/android/server/backup/BackupManagerConstants;->update(Landroid/util/KeyValueListParser;)V
 PLcom/android/server/backup/BackupManagerService$1;-><init>(Lcom/android/server/backup/BackupManagerService;)V
 PLcom/android/server/backup/BackupManagerService$Lifecycle$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/backup/BackupManagerService$Lifecycle$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/backup/BackupManagerService$Lifecycle;->$r8$lambda$tO1pYFIf1Pz1lck-Xhogn_8LPto(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/backup/BackupManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/backup/BackupManagerService$Lifecycle;-><init>(Landroid/content/Context;Lcom/android/server/backup/BackupManagerService;)V
-PLcom/android/server/backup/BackupManagerService$Lifecycle;->lambda$onUserUnlocking$0(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/backup/BackupManagerService$Lifecycle;->onStart()V
 PLcom/android/server/backup/BackupManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/backup/BackupManagerService$Lifecycle;->publishService(Ljava/lang/String;Landroid/os/IBinder;)V
-PLcom/android/server/backup/BackupManagerService;->-$$Nest$fputmHasFirstUserUnlockedSinceBoot(Lcom/android/server/backup/BackupManagerService;Z)V
-PLcom/android/server/backup/BackupManagerService;->-$$Nest$mupdateDefaultBackupUserIdIfNeeded(Lcom/android/server/backup/BackupManagerService;)V
 PLcom/android/server/backup/BackupManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/backup/BackupManagerService;->agentConnectedForUser(ILjava/lang/String;Landroid/os/IBinder;)V
+PLcom/android/server/backup/BackupManagerService;->backupNow()V
+PLcom/android/server/backup/BackupManagerService;->backupNowForUser(I)V
 PLcom/android/server/backup/BackupManagerService;->binderGetCallingUserId()I
-PLcom/android/server/backup/BackupManagerService;->dataChanged(ILjava/lang/String;)V
 PLcom/android/server/backup/BackupManagerService;->dataChanged(Ljava/lang/String;)V
-PLcom/android/server/backup/BackupManagerService;->dataChangedForUser(ILjava/lang/String;)V
-PLcom/android/server/backup/BackupManagerService;->enforceCallingPermissionOnUserId(ILjava/lang/String;)V
+HPLcom/android/server/backup/BackupManagerService;->dataChangedForUser(ILjava/lang/String;)V
+PLcom/android/server/backup/BackupManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/backup/BackupManagerService;->getCurrentTransport()Ljava/lang/String;
-PLcom/android/server/backup/BackupManagerService;->getCurrentTransport(I)Ljava/lang/String;
-PLcom/android/server/backup/BackupManagerService;->getCurrentTransportComponent(I)Landroid/content/ComponentName;
 PLcom/android/server/backup/BackupManagerService;->getCurrentTransportComponentForUser(I)Landroid/content/ComponentName;
 PLcom/android/server/backup/BackupManagerService;->getCurrentTransportForUser(I)Ljava/lang/String;
-PLcom/android/server/backup/BackupManagerService;->getServiceForUserIfCallerHasPermission(ILjava/lang/String;)Lcom/android/server/backup/UserBackupManagerService;
+PLcom/android/server/backup/BackupManagerService;->getDataManagementIntentForUser(ILjava/lang/String;)Landroid/content/Intent;
+HPLcom/android/server/backup/BackupManagerService;->getServiceForUserIfCallerHasPermission(ILjava/lang/String;)Lcom/android/server/backup/UserBackupManagerService;
 PLcom/android/server/backup/BackupManagerService;->getSuppressFileForUser(I)Ljava/io/File;
 PLcom/android/server/backup/BackupManagerService;->getUserManager()Landroid/os/UserManager;
+PLcom/android/server/backup/BackupManagerService;->isAppEligibleForBackupForUser(ILjava/lang/String;)Z
 PLcom/android/server/backup/BackupManagerService;->isBackupActivatedForUser(I)Z
 PLcom/android/server/backup/BackupManagerService;->isBackupDisabled()Z
 PLcom/android/server/backup/BackupManagerService;->isBackupEnabled()Z
-PLcom/android/server/backup/BackupManagerService;->isBackupEnabled(I)Z
 PLcom/android/server/backup/BackupManagerService;->isBackupEnabledForUser(I)Z
+PLcom/android/server/backup/BackupManagerService;->isBackupServiceActive(I)Z
 HPLcom/android/server/backup/BackupManagerService;->isUserReadyForBackup(I)Z
+PLcom/android/server/backup/BackupManagerService;->listAllTransports()[Ljava/lang/String;
+PLcom/android/server/backup/BackupManagerService;->listAllTransportsForUser(I)[Ljava/lang/String;
+PLcom/android/server/backup/BackupManagerService;->opCompleteForUser(IIJ)V
 PLcom/android/server/backup/BackupManagerService;->postToHandler(Ljava/lang/Runnable;)V
+PLcom/android/server/backup/BackupManagerService;->requestBackup(I[Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
+PLcom/android/server/backup/BackupManagerService;->requestBackup([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
+PLcom/android/server/backup/BackupManagerService;->restoreAtInstallForUser(ILjava/lang/String;I)V
+PLcom/android/server/backup/BackupManagerService;->setBackupEnabled(Z)V
+PLcom/android/server/backup/BackupManagerService;->setBackupEnabledForUser(IZ)V
 PLcom/android/server/backup/BackupManagerService;->startServiceForUser(I)V
 PLcom/android/server/backup/BackupManagerService;->startServiceForUser(ILcom/android/server/backup/UserBackupManagerService;)V
-PLcom/android/server/backup/BackupManagerService;->updateDefaultBackupUserIdIfNeeded()V
-PLcom/android/server/backup/BackupManagerService;->updateTransportAttributes(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
 PLcom/android/server/backup/BackupManagerService;->updateTransportAttributesForUser(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
-PLcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec;-><init>()V
-PLcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec;-><init>(Lcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec-IA;)V
-PLcom/android/server/backup/BackupPasswordManager$PasswordVersionFileCodec;-><init>()V
-PLcom/android/server/backup/BackupPasswordManager$PasswordVersionFileCodec;-><init>(Lcom/android/server/backup/BackupPasswordManager$PasswordVersionFileCodec-IA;)V
 PLcom/android/server/backup/BackupPasswordManager;-><init>(Landroid/content/Context;Ljava/io/File;Ljava/security/SecureRandom;)V
-PLcom/android/server/backup/BackupPasswordManager;->getPasswordHashFile()Ljava/io/File;
-PLcom/android/server/backup/BackupPasswordManager;->getPasswordHashFileCodec()Lcom/android/server/backup/utils/DataStreamFileCodec;
-PLcom/android/server/backup/BackupPasswordManager;->getPasswordVersionFileCodec()Lcom/android/server/backup/utils/DataStreamFileCodec;
-PLcom/android/server/backup/BackupPasswordManager;->loadStateFromFilesystem()V
+PLcom/android/server/backup/BackupUtils;->hashSignatureArray([Landroid/content/pm/Signature;)Ljava/util/ArrayList;
 PLcom/android/server/backup/DataChangedJournal;-><init>(Ljava/io/File;)V
-HPLcom/android/server/backup/DataChangedJournal;->addPackage(Ljava/lang/String;)V
 PLcom/android/server/backup/DataChangedJournal;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/backup/DataChangedJournal;->forEach(Ljava/util/function/Consumer;)V
-PLcom/android/server/backup/DataChangedJournal;->listJournals(Ljava/io/File;)Ljava/util/ArrayList;
-PLcom/android/server/backup/DataChangedJournal;->newJournal(Ljava/io/File;)Lcom/android/server/backup/DataChangedJournal;
-PLcom/android/server/backup/JobIdManager;->getJobIdForUserId(III)I
+PLcom/android/server/backup/DataChangedJournal;->forEach(Lcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda10;)V
+PLcom/android/server/backup/FullBackupJob;-><clinit>()V
+PLcom/android/server/backup/FullBackupJob;-><init>()V
+PLcom/android/server/backup/FullBackupJob;->finishBackupPass(I)V
+PLcom/android/server/backup/FullBackupJob;->getJobIdForUserId(I)I
+HPLcom/android/server/backup/FullBackupJob;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/backup/FullBackupJob;->onStopJob(Landroid/app/job/JobParameters;)Z
+HPLcom/android/server/backup/FullBackupJob;->schedule(ILandroid/content/Context;JLcom/android/server/backup/UserBackupManagerService;)V
 PLcom/android/server/backup/KeyValueBackupJob;-><clinit>()V
-PLcom/android/server/backup/KeyValueBackupJob;->cancel(ILandroid/content/Context;)V
-PLcom/android/server/backup/KeyValueBackupJob;->clearScheduledForUserId(I)V
+PLcom/android/server/backup/KeyValueBackupJob;-><init>()V
+PLcom/android/server/backup/KeyValueBackupJob;->cancel(Landroid/content/Context;I)V
 PLcom/android/server/backup/KeyValueBackupJob;->getJobIdForUserId(I)I
-HPLcom/android/server/backup/KeyValueBackupJob;->schedule(ILandroid/content/Context;JLcom/android/server/backup/UserBackupManagerService;)V
-PLcom/android/server/backup/KeyValueBackupJob;->schedule(ILandroid/content/Context;Lcom/android/server/backup/UserBackupManagerService;)V
+PLcom/android/server/backup/KeyValueBackupJob;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/backup/KeyValueBackupJob;->schedule(ILandroid/content/Context;JLcom/android/server/backup/UserBackupManagerService;)V
+PLcom/android/server/backup/PackageManagerBackupAgent$Metadata;-><init>(JLjava/util/ArrayList;)V
+PLcom/android/server/backup/PackageManagerBackupAgent;-><init>(Landroid/content/pm/PackageManager;ILcom/android/server/backup/utils/BackupEligibilityRules;)V
 PLcom/android/server/backup/PackageManagerBackupAgent;->getStorableApplications(Landroid/content/pm/PackageManager;ILcom/android/server/backup/utils/BackupEligibilityRules;)Ljava/util/List;
+PLcom/android/server/backup/PackageManagerBackupAgent;->onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+PLcom/android/server/backup/PackageManagerBackupAgent;->writeStateFile(Ljava/util/List;Landroid/os/ParcelFileDescriptor;)V
+PLcom/android/server/backup/PeopleBackupHelper;-><clinit>()V
+PLcom/android/server/backup/PeopleBackupHelper;-><init>(I)V
+PLcom/android/server/backup/PeopleBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
 PLcom/android/server/backup/ProcessedPackagesJournal;-><init>(Ljava/io/File;)V
-PLcom/android/server/backup/ProcessedPackagesJournal;->init()V
 PLcom/android/server/backup/ProcessedPackagesJournal;->loadFromDisk()V
-PLcom/android/server/backup/SetUtils;->union(Ljava/util/Set;Ljava/util/Set;)Ljava/util/Set;
-PLcom/android/server/backup/TransportManager$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/backup/TransportManager$$ExternalSyntheticLambda1;-><init>()V
+PLcom/android/server/backup/SystemBackupAgent;-><clinit>()V
+PLcom/android/server/backup/SystemBackupAgent;-><init>()V
+PLcom/android/server/backup/SystemBackupAgent;->addHelperIfEligibleForUser(Ljava/lang/String;Landroid/app/backup/BackupHelperWithLogger;)V
+PLcom/android/server/backup/SystemBackupAgent;->onCreate(Landroid/os/UserHandle;I)V
+PLcom/android/server/backup/SystemGrammaticalGenderBackupHelper;-><init>(I)V
+PLcom/android/server/backup/SystemGrammaticalGenderBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
 PLcom/android/server/backup/TransportManager$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
-PLcom/android/server/backup/TransportManager$TransportDescription;->-$$Nest$fgetname(Lcom/android/server/backup/TransportManager$TransportDescription;)Ljava/lang/String;
-PLcom/android/server/backup/TransportManager$TransportDescription;->-$$Nest$fputconfigurationIntent(Lcom/android/server/backup/TransportManager$TransportDescription;Landroid/content/Intent;)V
-PLcom/android/server/backup/TransportManager$TransportDescription;->-$$Nest$fputcurrentDestinationString(Lcom/android/server/backup/TransportManager$TransportDescription;Ljava/lang/String;)V
-PLcom/android/server/backup/TransportManager$TransportDescription;->-$$Nest$fputdataManagementIntent(Lcom/android/server/backup/TransportManager$TransportDescription;Landroid/content/Intent;)V
-PLcom/android/server/backup/TransportManager$TransportDescription;->-$$Nest$fputdataManagementLabel(Lcom/android/server/backup/TransportManager$TransportDescription;Ljava/lang/CharSequence;)V
-PLcom/android/server/backup/TransportManager$TransportDescription;->-$$Nest$fputname(Lcom/android/server/backup/TransportManager$TransportDescription;Ljava/lang/String;)V
+PLcom/android/server/backup/TransportManager$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/backup/TransportManager$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
 PLcom/android/server/backup/TransportManager$TransportDescription;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
-PLcom/android/server/backup/TransportManager$TransportDescription;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;Lcom/android/server/backup/TransportManager$TransportDescription-IA;)V
-PLcom/android/server/backup/TransportManager;->$r8$lambda$velBFHaSmoGaDDo2t7urM380RiQ(Landroid/content/ComponentName;)Z
 PLcom/android/server/backup/TransportManager;-><init>(ILandroid/content/Context;Ljava/util/Set;Ljava/lang/String;)V
 PLcom/android/server/backup/TransportManager;->addUserIdToLogMessage(ILjava/lang/String;)Ljava/lang/String;
-PLcom/android/server/backup/TransportManager;->checkCanUseTransport()V
+PLcom/android/server/backup/TransportManager;->disposeOfTransportClient(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V
+PLcom/android/server/backup/TransportManager;->dumpTransportClients(Ljava/io/PrintWriter;)V
+PLcom/android/server/backup/TransportManager;->getCurrentTransportClient(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection;
+PLcom/android/server/backup/TransportManager;->getCurrentTransportClientOrThrow()Lcom/android/server/backup/transport/TransportConnection;
 PLcom/android/server/backup/TransportManager;->getCurrentTransportComponent()Landroid/content/ComponentName;
-PLcom/android/server/backup/TransportManager;->getCurrentTransportName()Ljava/lang/String;
-PLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentLocked(Ljava/lang/String;)Landroid/content/ComponentName;
-PLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentOrThrowLocked(Ljava/lang/String;)Landroid/content/ComponentName;
-PLcom/android/server/backup/TransportManager;->getRegisteredTransportEntryLocked(Ljava/lang/String;)Ljava/util/Map$Entry;
+PLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionOrThrowLocked(Landroid/content/ComponentName;)Lcom/android/server/backup/TransportManager$TransportDescription;
+PLcom/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;->getTransportClient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection;
+PLcom/android/server/backup/TransportManager;->getTransportClientOrThrow(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection;
+PLcom/android/server/backup/TransportManager;->getTransportDirName(Landroid/content/ComponentName;)Ljava/lang/String;
+PLcom/android/server/backup/TransportManager;->getTransportDirName(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/backup/TransportManager;->isTransportRegistered(Ljava/lang/String;)Z
 PLcom/android/server/backup/TransportManager;->isTransportTrusted(Landroid/content/ComponentName;)Z
-PLcom/android/server/backup/TransportManager;->lambda$registerTransports$2(Landroid/content/ComponentName;)Z
+PLcom/android/server/backup/TransportManager;->onPackageRemoved(Ljava/lang/String;)V
 PLcom/android/server/backup/TransportManager;->registerTransport(Landroid/content/ComponentName;)I
 PLcom/android/server/backup/TransportManager;->registerTransport(Landroid/content/ComponentName;Lcom/android/server/backup/transport/BackupTransportClient;)V
-PLcom/android/server/backup/TransportManager;->registerTransports()V
 PLcom/android/server/backup/TransportManager;->registerTransportsForIntent(Landroid/content/Intent;Ljava/util/function/Predicate;)V
-PLcom/android/server/backup/TransportManager;->setOnTransportRegisteredListener(Lcom/android/server/backup/transport/OnTransportRegisteredListener;)V
-PLcom/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/UserBackupManagerFilePersistedSettings;->readBackupEnableState(I)Z
-PLcom/android/server/backup/UserBackupManagerFilePersistedSettings;->readBackupEnableState(Ljava/io/File;)Z
+PLcom/android/server/backup/TransportManager;->registerTransportsFromPackage(Ljava/lang/String;Ljava/util/function/Predicate;)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>(I)V
+PLcom/android/server/backup/UsageStatsBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
 PLcom/android/server/backup/UserBackupManagerFiles;->getBaseStateDir(I)Ljava/io/File;
-PLcom/android/server/backup/UserBackupManagerFiles;->getDataDir(I)Ljava/io/File;
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/util/Set;)V
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportConnection;I)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda0;->onFinished(Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/util/Set;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
 PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
 PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda1;->onTransportRegistered(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/backup/TransportManager;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;)V
-PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/backup/UserBackupManagerService$1;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/backup/UserBackupManagerService$2;Ljava/lang/String;[Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/backup/UserBackupManagerService$1;-><init>(ILcom/android/server/backup/UserBackupManagerService;)V
+PLcom/android/server/backup/UserBackupManagerService$1;->run()V
+PLcom/android/server/backup/UserBackupManagerService$2$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/backup/UserBackupManagerService$2;Ljava/lang/String;I)V
+PLcom/android/server/backup/UserBackupManagerService$2$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/backup/UserBackupManagerService$2;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
+PLcom/android/server/backup/UserBackupManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/backup/UserBackupManagerService$4;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/lang/String;Ljava/util/HashSet;)V
 PLcom/android/server/backup/UserBackupManagerService$4;->run()V
 PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;-><init>(Landroid/os/PowerManager$WakeLock;I)V
-PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$60zOjkfZNFT-L6ih-nuCamP1L9M(Lcom/android/server/backup/UserBackupManagerService;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$heFkS8m3IlrBwPfiAIdWm8iF68E(Lcom/android/server/backup/UserBackupManagerService;Ljava/util/Set;Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$qmyqqN_oMikkXxYcMY9KUtmLjwk(Lcom/android/server/backup/UserBackupManagerService;)V
-PLcom/android/server/backup/UserBackupManagerService;->-$$Nest$mdataChangedImpl(Lcom/android/server/backup/UserBackupManagerService;Ljava/lang/String;Ljava/util/HashSet;)V
-HPLcom/android/server/backup/UserBackupManagerService;-><init>(ILandroid/content/Context;Lcom/android/server/backup/BackupManagerService;Landroid/os/HandlerThread;Ljava/io/File;Ljava/io/File;Lcom/android/server/backup/TransportManager;)V
-PLcom/android/server/backup/UserBackupManagerService;->addPackageParticipantsLocked([Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->acquire()V
+PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->release()V
+PLcom/android/server/backup/UserBackupManagerService;->-$$Nest$mremovePackageParticipantsLocked(Lcom/android/server/backup/UserBackupManagerService;[Ljava/lang/String;I)V
+PLcom/android/server/backup/UserBackupManagerService;-><init>(ILandroid/content/Context;Lcom/android/server/backup/BackupManagerService;Landroid/os/HandlerThread;Ljava/io/File;Ljava/io/File;Lcom/android/server/backup/TransportManager;)V
 PLcom/android/server/backup/UserBackupManagerService;->addPackageParticipantsLockedInner(Ljava/lang/String;Ljava/util/List;)V
 PLcom/android/server/backup/UserBackupManagerService;->addUserIdToLogMessage(ILjava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/backup/UserBackupManagerService;->allAgentPackages()Ljava/util/List;
+PLcom/android/server/backup/UserBackupManagerService;->allAgentPackages()Ljava/util/List;
+PLcom/android/server/backup/UserBackupManagerService;->backupNow()V
 PLcom/android/server/backup/UserBackupManagerService;->createAndInitializeService(ILandroid/content/Context;Lcom/android/server/backup/BackupManagerService;Landroid/os/HandlerThread;Ljava/io/File;Ljava/io/File;Lcom/android/server/backup/TransportManager;)Lcom/android/server/backup/UserBackupManagerService;
-PLcom/android/server/backup/UserBackupManagerService;->createAndInitializeService(ILandroid/content/Context;Lcom/android/server/backup/BackupManagerService;Ljava/util/Set;)Lcom/android/server/backup/UserBackupManagerService;
-PLcom/android/server/backup/UserBackupManagerService;->dataChanged(Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupManagerService;->dataChangedImpl(Ljava/lang/String;)V
-HPLcom/android/server/backup/UserBackupManagerService;->dataChangedImpl(Ljava/lang/String;Ljava/util/HashSet;)V
-HPLcom/android/server/backup/UserBackupManagerService;->dataChangedTargets(Ljava/lang/String;)Ljava/util/HashSet;
-PLcom/android/server/backup/UserBackupManagerService;->getAgentTimeoutParameters()Lcom/android/server/backup/BackupAgentTimeoutParameters;
-PLcom/android/server/backup/UserBackupManagerService;->getConstants()Lcom/android/server/backup/BackupManagerConstants;
-PLcom/android/server/backup/UserBackupManagerService;->getContext()Landroid/content/Context;
-PLcom/android/server/backup/UserBackupManagerService;->getCurrentTransport()Ljava/lang/String;
-PLcom/android/server/backup/UserBackupManagerService;->getCurrentTransportComponent()Landroid/content/ComponentName;
-PLcom/android/server/backup/UserBackupManagerService;->getEligibilityRules(Landroid/content/pm/PackageManager;ILandroid/content/Context;I)Lcom/android/server/backup/utils/BackupEligibilityRules;
-PLcom/android/server/backup/UserBackupManagerService;->getSetupCompleteSettingForUser(Landroid/content/Context;I)Z
-PLcom/android/server/backup/UserBackupManagerService;->getTransportManager()Lcom/android/server/backup/TransportManager;
-PLcom/android/server/backup/UserBackupManagerService;->getUserId()I
-PLcom/android/server/backup/UserBackupManagerService;->initPackageTracking()V
+PLcom/android/server/backup/UserBackupManagerService;->dataChangedImpl(Ljava/lang/String;Ljava/util/HashSet;)V
+HPLcom/android/server/backup/UserBackupManagerService;->dataChangedTargets(Ljava/lang/String;)Ljava/util/HashSet;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/backup/UserBackupManagerService;->dequeueFullBackupLocked(Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->dumpBMMEvents(Ljava/io/PrintWriter;)V
+PLcom/android/server/backup/UserBackupManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
+PLcom/android/server/backup/UserBackupManagerService;->enqueueFullBackup(JLjava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->fullBackupAllowable(Ljava/lang/String;)Z
+PLcom/android/server/backup/UserBackupManagerService;->generateRandomIntegerToken()I
+PLcom/android/server/backup/UserBackupManagerService;->getActivityManager()Landroid/app/IActivityManager;
+PLcom/android/server/backup/UserBackupManagerService;->getAvailableRestoreToken(Ljava/lang/String;)J
+PLcom/android/server/backup/UserBackupManagerService;->getBMMEventSender(Landroid/app/backup/IBackupManagerMonitor;)Lcom/android/server/backup/utils/BackupManagerMonitorEventSender;
+PLcom/android/server/backup/UserBackupManagerService;->getBackupAgentConnectionManager()Lcom/android/server/backup/BackupAgentConnectionManager;
+PLcom/android/server/backup/UserBackupManagerService;->getBackupDestinationFromTransport(Lcom/android/server/backup/transport/TransportConnection;)I
+PLcom/android/server/backup/UserBackupManagerService;->getEligibilityRulesForOperation(I)Lcom/android/server/backup/utils/BackupEligibilityRules;
+PLcom/android/server/backup/UserBackupManagerService;->getMessageIdForOperationType(I)I
+PLcom/android/server/backup/UserBackupManagerService;->getQueueLock()Ljava/lang/Object;
+PLcom/android/server/backup/UserBackupManagerService;->getRequestBackupParams([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;ILcom/android/server/backup/utils/BackupEligibilityRules;Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;)Lcom/android/server/backup/params/BackupParams;
+PLcom/android/server/backup/UserBackupManagerService;->getWakelock()Lcom/android/server/backup/UserBackupManagerService$BackupWakeLock;
+PLcom/android/server/backup/UserBackupManagerService;->handleCancel(IZ)V
 PLcom/android/server/backup/UserBackupManagerService;->initializeBackupEnableState()V
-PLcom/android/server/backup/UserBackupManagerService;->isBackupEnabled()Z
+PLcom/android/server/backup/UserBackupManagerService;->isBackupOperationInProgress()Z
 PLcom/android/server/backup/UserBackupManagerService;->isFrameworkSchedulingEnabled()Z
-PLcom/android/server/backup/UserBackupManagerService;->lambda$parseLeftoverJournals$0(Ljava/util/Set;Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->onTransportRegistered(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->parseLeftoverJournals()V
+PLcom/android/server/backup/UserBackupManagerService;->listAllTransports()[Ljava/lang/String;
+PLcom/android/server/backup/UserBackupManagerService;->logBackupComplete(Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->prepareOperationTimeout(IJLcom/android/server/backup/BackupRestoreTask;I)V
 PLcom/android/server/backup/UserBackupManagerService;->readEnabledState()Z
-HPLcom/android/server/backup/UserBackupManagerService;->readFullBackupSchedule()Ljava/util/ArrayList;
+PLcom/android/server/backup/UserBackupManagerService;->readFullBackupSchedule()Ljava/util/ArrayList;
+PLcom/android/server/backup/UserBackupManagerService;->resetBackupState(Ljava/io/File;)V
+PLcom/android/server/backup/UserBackupManagerService;->scheduleNextFullBackupJob(J)V
 PLcom/android/server/backup/UserBackupManagerService;->setBackupEnabled(ZZ)V
+PLcom/android/server/backup/UserBackupManagerService;->setRunningFullBackupTask()V
+PLcom/android/server/backup/UserBackupManagerService;->setWorkSource(Landroid/os/WorkSource;)V
+PLcom/android/server/backup/UserBackupManagerService;->shouldUseNewBackupEligibilityRules()Z
 PLcom/android/server/backup/UserBackupManagerService;->updateStateOnBackupEnabled(ZZ)V
-PLcom/android/server/backup/UserBackupManagerService;->updateTransportAttributes(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
-PLcom/android/server/backup/UserBackupManagerService;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)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
+PLcom/android/server/backup/UserBackupManagerService;->waitUntilOperationComplete(I)Z
+PLcom/android/server/backup/UserBackupManagerService;->writeEnabledState(Z)V
+PLcom/android/server/backup/UserBackupManagerService;->writeRestoreTokens()V
 PLcom/android/server/backup/UserBackupManagerService;->writeToJournalLocked(Ljava/lang/String;)V
 PLcom/android/server/backup/UserBackupPreferences;-><init>(Landroid/content/Context;Ljava/io/File;)V
-HPLcom/android/server/backup/fullbackup/FullBackupEntry;-><init>(Ljava/lang/String;J)V
-HPLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Lcom/android/server/backup/fullbackup/FullBackupEntry;)I
+PLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;-><init>(Landroid/app/backup/FullBackupDataOutput;Landroid/content/pm/PackageManager;)V
+PLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;->backupManifest(Landroid/content/pm/PackageInfo;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Z)V
+PLcom/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner;-><init>(Lcom/android/server/backup/fullbackup/FullBackupEngine;Lcom/android/server/backup/UserBackupManagerService;Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;Landroid/os/ParcelFileDescriptor;IZ)V
+PLcom/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner;->run()V
+PLcom/android/server/backup/fullbackup/FullBackupEngine;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/io/OutputStream;Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;Landroid/content/pm/PackageInfo;ZLcom/android/server/backup/BackupRestoreTask;JIILcom/android/server/backup/utils/BackupEligibilityRules;Lcom/android/server/backup/utils/BackupManagerMonitorEventSender;)V
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->backupOnePackage()I
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->initializeAgent()Z
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->preflightCheck()I
+PLcom/android/server/backup/fullbackup/FullBackupEntry;-><init>(JLjava/lang/String;)V
 PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Ljava/lang/Object;)I
-PLcom/android/server/backup/internal/BackupHandler;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/OperationStorage;Landroid/os/HandlerThread;)V
+PLcom/android/server/backup/fullbackup/FullBackupTask;-><init>(Landroid/app/backup/IFullBackupRestoreObserver;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportConnection;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$$ExternalSyntheticLambda0;->onFinished(Ljava/lang/String;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;Lcom/android/server/backup/transport/TransportConnection;JII)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->operationComplete(J)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;Landroid/os/ParcelFileDescriptor;Landroid/content/pm/PackageInfo;Lcom/android/server/backup/transport/TransportConnection;JII)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->getBackupResultBlocking()I
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->getPreflightResultBlocking()J
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->operationComplete(J)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->run()V
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/OperationStorage;Lcom/android/server/backup/transport/TransportConnection;[Ljava/lang/String;ZLcom/android/server/backup/FullBackupJob;Ljava/util/concurrent/CountDownLatch;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;ZLcom/android/server/backup/utils/BackupEligibilityRules;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->cleanUpPipes([Landroid/os/ParcelFileDescriptor;)V
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->run()V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->setNoRestrictedModePackages(Lcom/android/server/backup/transport/BackupTransportClient;Ljava/util/List;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->unregisterTask()V
+PLcom/android/server/backup/internal/BackupHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportConnection;)V
+PLcom/android/server/backup/internal/BackupHandler$$ExternalSyntheticLambda0;->onFinished(Ljava/lang/String;)V
+PLcom/android/server/backup/internal/BackupHandler;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/internal/LifecycleOperationStorage;Landroid/os/HandlerThread;)V
 PLcom/android/server/backup/internal/BackupHandler;->dispatchMessage(Landroid/os/Message;)V
 PLcom/android/server/backup/internal/BackupHandler;->dispatchMessageInternal(Landroid/os/Message;)V
-HPLcom/android/server/backup/internal/BackupHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/backup/internal/BackupHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/backup/internal/LifecycleOperationStorage;-><init>(I)V
+PLcom/android/server/backup/internal/LifecycleOperationStorage;->cancelOperation(IZLjava/util/function/IntConsumer;)V
+PLcom/android/server/backup/internal/LifecycleOperationStorage;->registerOperationForPackages(ILjava/util/Set;Lcom/android/server/backup/BackupRestoreTask;I)V
+PLcom/android/server/backup/internal/LifecycleOperationStorage;->removeOperation(I)V
+PLcom/android/server/backup/internal/Operation;-><init>(Lcom/android/server/backup/BackupRestoreTask;I)V
 PLcom/android/server/backup/internal/RunInitializeReceiver;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
-PLcom/android/server/backup/internal/SetupObserver;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/os/Handler;)V
-PLcom/android/server/backup/keyvalue/BackupRequest;-><init>(Ljava/lang/String;)V
+PLcom/android/server/backup/internal/SetupObserver;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/internal/BackupHandler;)V
+PLcom/android/server/backup/internal/SetupObserver;->onChange(Z)V
+PLcom/android/server/backup/keyvalue/AgentException;-><init>(Z)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/BackupException;-><init>()V
+PLcom/android/server/backup/keyvalue/BackupRequest;->toString()Ljava/lang/String;
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/app/backup/IBackupObserver;Lcom/android/server/backup/utils/BackupManagerMonitorEventSender;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/backup/keyvalue/KeyValueBackupTask;Landroid/app/IBackupAgent;JI)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask$$ExternalSyntheticLambda1;->call(Lcom/android/server/backup/remote/FutureBackupCallback;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;-><clinit>()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/OperationStorage;Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;Ljava/util/List;Lcom/android/server/backup/DataChangedJournal;Lcom/android/server/backup/keyvalue/KeyValueBackupReporter;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZLcom/android/server/backup/utils/BackupEligibilityRules;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPackage(Ljava/lang/String;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPm()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->bindAgent(Landroid/content/pm/PackageInfo;)Landroid/app/IBackupAgent;
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->cleanUpAgent(I)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->extractAgentData(Landroid/content/pm/PackageInfo;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->extractAgentData(Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->extractPmAgentData(Landroid/content/pm/PackageInfo;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getTopLevelSuccessStateDirectory(Z)Ljava/io/File;
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->informTransportOfUnchangedApps(Ljava/util/Set;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->run()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->sendDataToTransport()I
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->sendDataToTransport(Landroid/content/pm/PackageInfo;)I
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->setSuccessState(Ljava/lang/String;Z)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->start(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/internal/LifecycleOperationStorage;Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;Ljava/util/List;Lcom/android/server/backup/DataChangedJournal;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZLcom/android/server/backup/utils/BackupEligibilityRules;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->startTask()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->tryCloseFileDescriptor(Ljava/io/Closeable;Ljava/lang/String;)V
+PLcom/android/server/backup/remote/FutureBackupCallback;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/backup/remote/FutureBackupCallback;->operationComplete(J)V
+PLcom/android/server/backup/remote/RemoteCall$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/remote/RemoteCall;)V
+PLcom/android/server/backup/remote/RemoteCall$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/backup/remote/RemoteCall;-><init>(ZLcom/android/server/backup/remote/RemoteCallable;J)V
+PLcom/android/server/backup/remote/RemoteCall;->call()Lcom/android/server/backup/remote/RemoteResult;
+PLcom/android/server/backup/remote/RemoteResult;-><clinit>()V
+PLcom/android/server/backup/remote/RemoteResult;-><init>(IJ)V
 PLcom/android/server/backup/transport/BackupTransportClient$TransportFutures;-><init>()V
-PLcom/android/server/backup/transport/BackupTransportClient$TransportFutures;-><init>(Lcom/android/server/backup/transport/BackupTransportClient$TransportFutures-IA;)V
 PLcom/android/server/backup/transport/BackupTransportClient$TransportFutures;->newFuture()Lcom/android/internal/infra/AndroidFuture;
 PLcom/android/server/backup/transport/BackupTransportClient$TransportFutures;->remove(Lcom/android/internal/infra/AndroidFuture;)V
 PLcom/android/server/backup/transport/BackupTransportClient$TransportStatusCallbackPool;-><init>()V
-PLcom/android/server/backup/transport/BackupTransportClient$TransportStatusCallbackPool;-><init>(Lcom/android/server/backup/transport/BackupTransportClient$TransportStatusCallbackPool-IA;)V
+PLcom/android/server/backup/transport/BackupTransportClient$TransportStatusCallbackPool;->acquire()Lcom/android/server/backup/transport/TransportStatusCallback;
+PLcom/android/server/backup/transport/BackupTransportClient$TransportStatusCallbackPool;->recycle(Lcom/android/server/backup/transport/TransportStatusCallback;)V
 PLcom/android/server/backup/transport/BackupTransportClient;-><init>(Lcom/android/internal/backup/IBackupTransport;)V
-PLcom/android/server/backup/transport/BackupTransportClient;->configurationIntent()Landroid/content/Intent;
-PLcom/android/server/backup/transport/BackupTransportClient;->currentDestinationString()Ljava/lang/String;
-PLcom/android/server/backup/transport/BackupTransportClient;->dataManagementIntent()Landroid/content/Intent;
-PLcom/android/server/backup/transport/BackupTransportClient;->dataManagementIntentLabel()Ljava/lang/CharSequence;
-HPLcom/android/server/backup/transport/BackupTransportClient;->getFutureResult(Lcom/android/internal/infra/AndroidFuture;)Ljava/lang/Object;
+PLcom/android/server/backup/transport/BackupTransportClient;->finishBackup()I
+PLcom/android/server/backup/transport/BackupTransportClient;->getBackupManagerMonitor()Landroid/app/backup/IBackupManagerMonitor;
+PLcom/android/server/backup/transport/BackupTransportClient;->getBackupQuota(Ljava/lang/String;Z)J
+PLcom/android/server/backup/transport/BackupTransportClient;->getFutureResult(Lcom/android/internal/infra/AndroidFuture;)Ljava/lang/Object;
+PLcom/android/server/backup/transport/BackupTransportClient;->getPackagesThatShouldNotUseRestrictedMode(ILjava/util/Set;)Ljava/util/Set;
+PLcom/android/server/backup/transport/BackupTransportClient;->getTransportFlags()I
 PLcom/android/server/backup/transport/BackupTransportClient;->name()Ljava/lang/String;
-PLcom/android/server/backup/transport/BackupTransportClient;->transportDirName()Ljava/lang/String;
-PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;->onTransportConnectionResult(Lcom/android/server/backup/transport/BackupTransportClient;Lcom/android/server/backup/transport/TransportConnection;)V
-PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/server/backup/transport/BackupTransportClient;)V
-PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/backup/transport/BackupTransportClient;->performFullBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+PLcom/android/server/backup/transport/BackupTransportClient;->requestFullBackupTime()J
+PLcom/android/server/backup/transport/BackupTransportClient;->sendBackupData(I)I
+PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;Lcom/android/server/backup/transport/BackupTransportClient;)V
+PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportConnection;)V
-PLcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor-IA;)V
 PLcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/backup/transport/TransportConnection;->$r8$lambda$_NPv7c2usY4KXACL8fH382mvHRc(Ljava/util/concurrent/CompletableFuture;Lcom/android/server/backup/transport/BackupTransportClient;Lcom/android/server/backup/transport/TransportConnection;)V
-PLcom/android/server/backup/transport/TransportConnection;->$r8$lambda$jVSSVWqIk1ltkKJM8W2iUWztX6Y(Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/server/backup/transport/BackupTransportClient;)V
-PLcom/android/server/backup/transport/TransportConnection;->-$$Nest$monServiceConnected(Lcom/android/server/backup/transport/TransportConnection;Landroid/os/IBinder;)V
-PLcom/android/server/backup/transport/TransportConnection;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/backup/transport/TransportConnection;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/os/Handler;)V
 PLcom/android/server/backup/transport/TransportConnection;->checkState(ZLjava/lang/String;)V
-PLcom/android/server/backup/transport/TransportConnection;->checkStateIntegrityLocked()V
-PLcom/android/server/backup/transport/TransportConnection;->connect(Ljava/lang/String;)Lcom/android/server/backup/transport/BackupTransportClient;
-PLcom/android/server/backup/transport/TransportConnection;->connectAsync(Lcom/android/server/backup/transport/TransportConnectionListener;Ljava/lang/String;)V
+HPLcom/android/server/backup/transport/TransportConnection;->checkStateIntegrityLocked()V
+HPLcom/android/server/backup/transport/TransportConnection;->connect(Ljava/lang/String;)Lcom/android/server/backup/transport/BackupTransportClient;
 PLcom/android/server/backup/transport/TransportConnection;->connectOrThrow(Ljava/lang/String;)Lcom/android/server/backup/transport/BackupTransportClient;
 PLcom/android/server/backup/transport/TransportConnection;->finalize()V
-PLcom/android/server/backup/transport/TransportConnection;->lambda$connect$0(Ljava/util/concurrent/CompletableFuture;Lcom/android/server/backup/transport/BackupTransportClient;Lcom/android/server/backup/transport/TransportConnection;)V
-PLcom/android/server/backup/transport/TransportConnection;->lambda$notifyListener$1(Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/server/backup/transport/BackupTransportClient;)V
 PLcom/android/server/backup/transport/TransportConnection;->log(ILjava/lang/String;)V
 PLcom/android/server/backup/transport/TransportConnection;->log(ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/backup/transport/TransportConnection;->markAsDisposed()V
-PLcom/android/server/backup/transport/TransportConnection;->notifyListener(Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/server/backup/transport/BackupTransportClient;Ljava/lang/String;)V
+PLcom/android/server/backup/transport/TransportConnection;->notifyListener(Lcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;Lcom/android/server/backup/transport/BackupTransportClient;Ljava/lang/String;)V
 PLcom/android/server/backup/transport/TransportConnection;->notifyListenersAndClearLocked(Lcom/android/server/backup/transport/BackupTransportClient;)V
-PLcom/android/server/backup/transport/TransportConnection;->onServiceConnected(Landroid/os/IBinder;)V
-PLcom/android/server/backup/transport/TransportConnection;->onStateTransition(II)V
 HPLcom/android/server/backup/transport/TransportConnection;->saveLogEntry(Ljava/lang/String;)V
 HPLcom/android/server/backup/transport/TransportConnection;->setStateLocked(ILcom/android/server/backup/transport/BackupTransportClient;)V
 PLcom/android/server/backup/transport/TransportConnection;->stateToString(I)Ljava/lang/String;
-PLcom/android/server/backup/transport/TransportConnection;->toString()Ljava/lang/String;
-PLcom/android/server/backup/transport/TransportConnection;->transitionThroughState(III)I
-PLcom/android/server/backup/transport/TransportConnection;->unbind(Ljava/lang/String;)V
-PLcom/android/server/backup/transport/TransportConnectionManager$$ExternalSyntheticLambda0;-><init>()V
+HPLcom/android/server/backup/transport/TransportConnection;->toString()Ljava/lang/String;
+HPLcom/android/server/backup/transport/TransportConnection;->unbind(Ljava/lang/String;)V
 PLcom/android/server/backup/transport/TransportConnectionManager$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/backup/transport/TransportConnectionManager;->$r8$lambda$Pwv1Wjcrv8QltS66ojkBLq7QJvg(Landroid/content/ComponentName;)Landroid/content/Intent;
 PLcom/android/server/backup/transport/TransportConnectionManager;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;)V
-PLcom/android/server/backup/transport/TransportConnectionManager;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Ljava/util/function/Function;)V
-PLcom/android/server/backup/transport/TransportConnectionManager;->disposeOfTransportClient(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V
-PLcom/android/server/backup/transport/TransportConnectionManager;->getRealTransportIntent(Landroid/content/ComponentName;)Landroid/content/Intent;
-PLcom/android/server/backup/transport/TransportConnectionManager;->getTransportClient(Landroid/content/ComponentName;Landroid/os/Bundle;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection;
-PLcom/android/server/backup/transport/TransportConnectionManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;)Lcom/android/server/backup/transport/TransportConnection;
-PLcom/android/server/backup/transport/TransportStats$Stats;->-$$Nest$mregister(Lcom/android/server/backup/transport/TransportStats$Stats;J)V
-PLcom/android/server/backup/transport/TransportStats$Stats;-><init>()V
-PLcom/android/server/backup/transport/TransportStats$Stats;->register(J)V
+HPLcom/android/server/backup/transport/TransportConnectionManager;->disposeOfTransportClient(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V
+HPLcom/android/server/backup/transport/TransportConnectionManager;->getTransportClient(Landroid/content/ComponentName;Landroid/os/Bundle;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection;
 PLcom/android/server/backup/transport/TransportStats;-><init>()V
-PLcom/android/server/backup/transport/TransportStats;->registerConnectionTime(Landroid/content/ComponentName;J)V
+HPLcom/android/server/backup/transport/TransportStats;->registerConnectionTime(Landroid/content/ComponentName;J)V
+PLcom/android/server/backup/transport/TransportStatusCallback;-><init>()V
+PLcom/android/server/backup/transport/TransportStatusCallback;->getOperationStatus()I
+PLcom/android/server/backup/transport/TransportStatusCallback;->onOperationComplete()V
+PLcom/android/server/backup/transport/TransportStatusCallback;->onOperationCompleteWithStatus(I)V
 HPLcom/android/server/backup/transport/TransportUtils;->formatMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/backup/transport/TransportUtils;->log(ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/backup/utils/BackupEligibilityRules;-><clinit>()V
 PLcom/android/server/backup/utils/BackupEligibilityRules;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/PackageManagerInternal;ILandroid/content/Context;I)V
-PLcom/android/server/backup/utils/BackupEligibilityRules;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/PackageManagerInternal;ILandroid/content/Context;IZ)V
-HPLcom/android/server/backup/utils/BackupEligibilityRules;->appGetsFullBackup(Landroid/content/pm/PackageInfo;)Z
-HPLcom/android/server/backup/utils/BackupEligibilityRules;->appIsDisabled(Landroid/content/pm/ApplicationInfo;)Z
-HPLcom/android/server/backup/utils/BackupEligibilityRules;->appIsEligibleForBackup(Landroid/content/pm/ApplicationInfo;)Z
-HPLcom/android/server/backup/utils/BackupEligibilityRules;->isAppBackupAllowed(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/backup/utils/BackupEligibilityRules;->appGetsFullBackup(Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/backup/utils/BackupEligibilityRules;->appIsDisabled(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/backup/utils/BackupEligibilityRules;->appIsEligibleForBackup(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/backup/utils/BackupEligibilityRules;->appIsRunningAndEligibleForBackupWithTransport(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)Z
+PLcom/android/server/backup/utils/BackupEligibilityRules;->appIsStopped(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/backup/utils/BackupEligibilityRules;->isAppBackupAllowed(Landroid/content/pm/ApplicationInfo;)Z
 PLcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;-><clinit>()V
 PLcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;-><init>()V
 PLcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;->deleteExpiredBMMEvents()Z
+PLcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;->getBMMEventsFile()Ljava/io/File;
 PLcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;->getSetUpDateFile()Ljava/io/File;
 PLcom/android/server/backup/utils/BackupManagerMonitorDumpsysUtils;->isAfterRetentionPeriod()Z
-PLcom/android/server/backup/utils/DataStreamFileCodec;-><init>(Ljava/io/File;Lcom/android/server/backup/utils/DataStreamCodec;)V
-PLcom/android/server/backup/utils/DataStreamFileCodec;->deserialize()Ljava/lang/Object;
-HPLcom/android/server/backup/utils/SparseArrayUtils;->union(Landroid/util/SparseArray;)Ljava/util/HashSet;
+PLcom/android/server/backup/utils/BackupManagerMonitorEventSender;-><init>(Landroid/app/backup/IBackupManagerMonitor;)V
+PLcom/android/server/backup/utils/BackupManagerMonitorEventSender;->getMonitor()Landroid/app/backup/IBackupManagerMonitor;
+PLcom/android/server/backup/utils/BackupManagerMonitorEventSender;->monitorAgentLoggingResults(Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;)V
+PLcom/android/server/backup/utils/BackupManagerMonitorEventSender;->monitorEvent(ILandroid/content/pm/PackageInfo;ILandroid/os/Bundle;)V
+PLcom/android/server/backup/utils/BackupManagerMonitorEventSender;->setMonitor(Landroid/app/backup/IBackupManagerMonitor;)V
+PLcom/android/server/backup/utils/BackupObserverUtils;->sendBackupFinished(Landroid/app/backup/IBackupObserver;I)V
+PLcom/android/server/backup/utils/BackupObserverUtils;->sendBackupOnPackageResult(Landroid/app/backup/IBackupObserver;Ljava/lang/String;I)V
+PLcom/android/server/backup/utils/FullBackupUtils;->routeSocketDataToOutput(Landroid/os/ParcelFileDescriptor;Ljava/io/OutputStream;)V
+PLcom/android/server/biometrics/AuthService$$ExternalSyntheticLambda0;-><init>(Z[Ljava/lang/String;Landroid/content/Context;[Ljava/lang/String;Landroid/hardware/face/IFaceService;)V
+PLcom/android/server/biometrics/AuthService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/biometrics/AuthService$$ExternalSyntheticLambda1;-><init>([Ljava/lang/String;Landroid/content/Context;[Ljava/lang/String;Landroid/hardware/fingerprint/IFingerprintService;)V
+PLcom/android/server/biometrics/AuthService$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/biometrics/AuthService$AuthServiceImpl;-><init>(Lcom/android/server/biometrics/AuthService;)V
-PLcom/android/server/biometrics/AuthService$AuthServiceImpl;-><init>(Lcom/android/server/biometrics/AuthService;Lcom/android/server/biometrics/AuthService$AuthServiceImpl-IA;)V
+PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->canAuthenticate(Ljava/lang/String;II)I
+PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->getAuthenticatorIds(I)[J
+PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->registerAuthenticationStateListener(Landroid/hardware/biometrics/AuthenticationStateListener;)V
+PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->resetLockout(I[B)V
 PLcom/android/server/biometrics/AuthService$Injector;-><init>()V
 PLcom/android/server/biometrics/AuthService$Injector;->getBiometricService()Landroid/hardware/biometrics/IBiometricService;
 PLcom/android/server/biometrics/AuthService$Injector;->getConfiguration(Landroid/content/Context;)[Ljava/lang/String;
+PLcom/android/server/biometrics/AuthService$Injector;->getFaceAidlInstances()[Ljava/lang/String;
+PLcom/android/server/biometrics/AuthService$Injector;->getFaceConfiguration(Landroid/content/Context;)[Ljava/lang/String;
 PLcom/android/server/biometrics/AuthService$Injector;->getFaceService()Landroid/hardware/face/IFaceService;
+PLcom/android/server/biometrics/AuthService$Injector;->getFingerprintAidlInstances()[Ljava/lang/String;
+PLcom/android/server/biometrics/AuthService$Injector;->getFingerprintConfiguration(Landroid/content/Context;)[Ljava/lang/String;
 PLcom/android/server/biometrics/AuthService$Injector;->getFingerprintService()Landroid/hardware/fingerprint/IFingerprintService;
+PLcom/android/server/biometrics/AuthService$Injector;->getIrisConfiguration(Landroid/content/Context;)[Ljava/lang/String;
 PLcom/android/server/biometrics/AuthService$Injector;->getIrisService()Landroid/hardware/iris/IIrisService;
 PLcom/android/server/biometrics/AuthService$Injector;->isHidlDisabled(Landroid/content/Context;)Z
 PLcom/android/server/biometrics/AuthService$Injector;->publishBinderService(Lcom/android/server/biometrics/AuthService;Landroid/hardware/biometrics/IAuthService$Stub;)V
+PLcom/android/server/biometrics/AuthService;->-$$Nest$mcheckInternalPermission(Lcom/android/server/biometrics/AuthService;)V
+PLcom/android/server/biometrics/AuthService;->-$$Nest$mcheckPermission(Lcom/android/server/biometrics/AuthService;)V
 PLcom/android/server/biometrics/AuthService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/biometrics/AuthService;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/AuthService$Injector;)V
-PLcom/android/server/biometrics/AuthService;->access$000(Lcom/android/server/biometrics/AuthService;Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/AuthService;->onStart()V
-PLcom/android/server/biometrics/AuthService;->registerAuthenticators([Lcom/android/server/biometrics/SensorConfig;)V
 PLcom/android/server/biometrics/BiometricCameraManagerImpl$1;-><init>(Lcom/android/server/biometrics/BiometricCameraManagerImpl;)V
 PLcom/android/server/biometrics/BiometricCameraManagerImpl;-><init>(Landroid/hardware/camera2/CameraManager;Landroid/hardware/SensorPrivacyManager;)V
 PLcom/android/server/biometrics/BiometricHandlerProvider;-><clinit>()V
-PLcom/android/server/biometrics/BiometricHandlerProvider;-><init>()V
 PLcom/android/server/biometrics/BiometricHandlerProvider;->getBiometricCallbackHandler()Landroid/os/Handler;
-PLcom/android/server/biometrics/BiometricHandlerProvider;->getInstance()Lcom/android/server/biometrics/BiometricHandlerProvider;
-PLcom/android/server/biometrics/BiometricHandlerProvider;->getNewHandler(Ljava/lang/String;)Landroid/os/Handler;
+PLcom/android/server/biometrics/BiometricHandlerProvider;->getFaceHandler()Landroid/os/Handler;
+PLcom/android/server/biometrics/BiometricHandlerProvider;->getFingerprintHandler()Landroid/os/Handler;
+PLcom/android/server/biometrics/BiometricHandlerProvider;->getNewHandler(ILjava/lang/String;)Landroid/os/Handler;
+PLcom/android/server/biometrics/BiometricNotificationLogger;-><init>(Lcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;)V
+PLcom/android/server/biometrics/BiometricNotificationLogger;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+PLcom/android/server/biometrics/BiometricNotificationLogger;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V
 PLcom/android/server/biometrics/BiometricService$3;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+PLcom/android/server/biometrics/BiometricService$4;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+PLcom/android/server/biometrics/BiometricService$4;->run()V
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;I)V
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;-><init>(Lcom/android/server/biometrics/BiometricService;)V
-PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;-><init>(Lcom/android/server/biometrics/BiometricService;Lcom/android/server/biometrics/BiometricService$BiometricServiceWrapper-IA;)V
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->canAuthenticate(Ljava/lang/String;III)I
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->getAuthenticatorIds(I)[J
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->resetLockout(I[B)V
 PLcom/android/server/biometrics/BiometricService$Injector$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/atomic/AtomicLong;)V
 PLcom/android/server/biometrics/BiometricService$Injector;-><init>()V
-PLcom/android/server/biometrics/BiometricService$Injector;->getActivityManagerService()Landroid/app/IActivityManager;
-PLcom/android/server/biometrics/BiometricService$Injector;->getBiometricCameraManager(Landroid/content/Context;)Lcom/android/server/biometrics/BiometricCameraManager;
-PLcom/android/server/biometrics/BiometricService$Injector;->getBiometricContext(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricContext;
-PLcom/android/server/biometrics/BiometricService$Injector;->getBiometricStrengthController(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricStrengthController;
-PLcom/android/server/biometrics/BiometricService$Injector;->getDevicePolicyManager(Landroid/content/Context;)Landroid/app/admin/DevicePolicyManager;
-PLcom/android/server/biometrics/BiometricService$Injector;->getGateKeeperService()Landroid/service/gatekeeper/IGateKeeperService;
-PLcom/android/server/biometrics/BiometricService$Injector;->getKeyStore()Landroid/security/KeyStore;
-PLcom/android/server/biometrics/BiometricService$Injector;->getKeystoreAuthorizationService()Landroid/security/authorization/IKeystoreAuthorization;
-PLcom/android/server/biometrics/BiometricService$Injector;->getRequestGenerator()Ljava/util/function/Supplier;
-PLcom/android/server/biometrics/BiometricService$Injector;->getSettingObserver(Landroid/content/Context;Landroid/os/Handler;Ljava/util/List;)Lcom/android/server/biometrics/BiometricService$SettingObserver;
-PLcom/android/server/biometrics/BiometricService$Injector;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
-PLcom/android/server/biometrics/BiometricService$Injector;->getTrustManager()Landroid/app/trust/ITrustManager;
-PLcom/android/server/biometrics/BiometricService$Injector;->getUserManager(Landroid/content/Context;)Landroid/os/UserManager;
-PLcom/android/server/biometrics/BiometricService$Injector;->publishBinderService(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricService$Stub;)V
-PLcom/android/server/biometrics/BiometricService$SettingObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/util/List;)V
+PLcom/android/server/biometrics/BiometricService$SettingObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/util/List;Landroid/os/UserManager;Landroid/hardware/fingerprint/FingerprintManager;Landroid/hardware/face/FaceManager;)V
 PLcom/android/server/biometrics/BiometricService$SettingObserver;->updateContentObserver()V
+PLcom/android/server/biometrics/BiometricService$SettingObserver;->updateMandatoryBiometricsForAllProfiles(I)V
+PLcom/android/server/biometrics/BiometricService$SettingObserver;->updateMandatoryBiometricsRequirementsForAllProfiles(I)V
+PLcom/android/server/biometrics/BiometricService;->-$$Nest$mcreatePreAuthInfo(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;II)Lcom/android/server/biometrics/PreAuthInfo;
+PLcom/android/server/biometrics/BiometricService;->-$$Nest$mdumpInternal(Lcom/android/server/biometrics/BiometricService;Ljava/io/PrintWriter;)V
 PLcom/android/server/biometrics/BiometricService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/biometrics/BiometricService;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/BiometricService$Injector;Lcom/android/server/biometrics/BiometricHandlerProvider;)V
-PLcom/android/server/biometrics/BiometricService;->access$000(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/BiometricService;->onStart()V
 PLcom/android/server/biometrics/BiometricStrengthController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/biometrics/BiometricStrengthController;)V
 PLcom/android/server/biometrics/BiometricStrengthController;-><init>(Lcom/android/server/biometrics/BiometricService;)V
-PLcom/android/server/biometrics/BiometricStrengthController;->startListening()V
-PLcom/android/server/biometrics/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/biometrics/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/biometrics/FeatureFlagsImpl;->deHidl()Z
-PLcom/android/server/biometrics/FeatureFlagsImpl;->load_overrides_biometrics_framework()V
-PLcom/android/server/biometrics/Flags;-><clinit>()V
-PLcom/android/server/biometrics/Flags;->deHidl()Z
-PLcom/android/server/biometrics/log/BiometricContext;->getInstance(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricContext;
+PLcom/android/server/biometrics/PreAuthInfo;-><init>(ZIZLjava/util/List;Ljava/util/List;ZLandroid/hardware/biometrics/PromptInfo;IILcom/android/server/biometrics/BiometricCameraManagerImpl;ZZ)V
+PLcom/android/server/biometrics/PreAuthInfo;->create(Landroid/app/trust/ITrustManager;Landroid/app/admin/DevicePolicyManager;Lcom/android/server/biometrics/BiometricService$SettingObserver;Ljava/util/List;ILandroid/hardware/biometrics/PromptInfo;Ljava/lang/String;ZLandroid/content/Context;Lcom/android/server/biometrics/BiometricCameraManagerImpl;Landroid/os/UserManager;)Lcom/android/server/biometrics/PreAuthInfo;
+PLcom/android/server/biometrics/PreAuthInfo;->getInternalStatus()Landroid/util/Pair;
+PLcom/android/server/biometrics/Utils;->authenticatorStatusToBiometricConstant(I)I
+PLcom/android/server/biometrics/Utils;->isCredentialRequested(I)Z
+PLcom/android/server/biometrics/Utils;->isValidAuthenticatorConfig(Landroid/content/Context;I)Z
+PLcom/android/server/biometrics/log/BiometricContext;->getInstance(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricContextProvider;
 PLcom/android/server/biometrics/log/BiometricContextProvider$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/biometrics/log/BiometricContextProvider;)V
 PLcom/android/server/biometrics/log/BiometricContextProvider$1;-><init>(Lcom/android/server/biometrics/log/BiometricContextProvider;)V
 PLcom/android/server/biometrics/log/BiometricContextProvider$2;-><init>(Lcom/android/server/biometrics/log/BiometricContextProvider;)V
@@ -8850,2274 +7156,1647 @@
 PLcom/android/server/biometrics/log/BiometricContextProvider$2;->onFoldChanged(I)V
 PLcom/android/server/biometrics/log/BiometricContextProvider$2;->onHardwareIgnoreTouchesChanged(Z)V
 PLcom/android/server/biometrics/log/BiometricContextProvider$3;-><init>(Lcom/android/server/biometrics/log/BiometricContextProvider;)V
-PLcom/android/server/biometrics/log/BiometricContextProvider;->-$$Nest$fgetmDisplayState(Lcom/android/server/biometrics/log/BiometricContextProvider;)I
-PLcom/android/server/biometrics/log/BiometricContextProvider;->-$$Nest$fgetmFoldState(Lcom/android/server/biometrics/log/BiometricContextProvider;)I
-PLcom/android/server/biometrics/log/BiometricContextProvider;->-$$Nest$fgetmIsHardwareIgnoringTouches(Lcom/android/server/biometrics/log/BiometricContextProvider;)Z
-PLcom/android/server/biometrics/log/BiometricContextProvider;->-$$Nest$fputmDisplayState(Lcom/android/server/biometrics/log/BiometricContextProvider;I)V
-PLcom/android/server/biometrics/log/BiometricContextProvider;->-$$Nest$mnotifyChanged(Lcom/android/server/biometrics/log/BiometricContextProvider;)V
 PLcom/android/server/biometrics/log/BiometricContextProvider;-><init>(Landroid/content/Context;Landroid/view/WindowManager;Lcom/android/internal/statusbar/IStatusBarService;Landroid/os/Handler;Lcom/android/server/biometrics/sensors/AuthSessionCoordinator;)V
-PLcom/android/server/biometrics/log/BiometricContextProvider;->defaultProvider(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricContextProvider;
-PLcom/android/server/biometrics/log/BiometricContextProvider;->notifyChanged()V
-PLcom/android/server/biometrics/log/BiometricContextProvider;->notifySubscribers()V
-PLcom/android/server/biometrics/log/BiometricContextProvider;->subscribeBiometricContextListener(Lcom/android/internal/statusbar/IStatusBarService;)V
-PLcom/android/server/biometrics/log/BiometricContextProvider;->subscribeDockState(Landroid/content/Context;)V
+PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;-><clinit>()V
 PLcom/android/server/biometrics/sensors/AuthResultCoordinator;-><init>()V
-PLcom/android/server/biometrics/sensors/AuthSessionCoordinator$RingBuffer;-><init>(I)V
+PLcom/android/server/biometrics/sensors/AuthSessionCoordinator$RingBuffer;-><init>()V
+PLcom/android/server/biometrics/sensors/AuthSessionCoordinator$RingBuffer;->addApiCall(Ljava/lang/String;)V
 PLcom/android/server/biometrics/sensors/AuthSessionCoordinator;-><init>()V
 PLcom/android/server/biometrics/sensors/AuthSessionCoordinator;-><init>(Ljava/time/Clock;)V
+PLcom/android/server/biometrics/sensors/AuthSessionCoordinator;->resetLockoutFor(IIJ)V
+PLcom/android/server/biometrics/sensors/MultiBiometricLockoutState$AuthenticatorState;-><init>(Ljava/lang/Integer;)V
 PLcom/android/server/biometrics/sensors/MultiBiometricLockoutState;-><init>(Ljava/time/Clock;)V
-PLcom/android/server/blob/BlobStoreConfig$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/biometrics/sensors/MultiBiometricLockoutState;->clearPermanentLockOut(II)V
+PLcom/android/server/biometrics/sensors/MultiBiometricLockoutState;->clearTimedLockout(II)V
+PLcom/android/server/biometrics/sensors/MultiBiometricLockoutState;->getAuthMapForUser(I)Ljava/util/Map;
+PLcom/android/server/biometrics/sensors/face/FaceService;->getDeclaredInstances()[Ljava/lang/String;
+PLcom/android/server/biometrics/sensors/fingerprint/FingerprintService;->getDeclaredInstances()[Ljava/lang/String;
 PLcom/android/server/blob/BlobStoreConfig$DeviceConfigProperties$$ExternalSyntheticLambda0;-><init>(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/blob/BlobStoreConfig$DeviceConfigProperties;-><clinit>()V
-PLcom/android/server/blob/BlobStoreConfig$DeviceConfigProperties;->refresh(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/blob/BlobStoreConfig;-><clinit>()V
-PLcom/android/server/blob/BlobStoreConfig;->getBlobStoreRootDir()Ljava/io/File;
-PLcom/android/server/blob/BlobStoreConfig;->getIdleJobPeriodMs()J
-PLcom/android/server/blob/BlobStoreConfig;->initialize(Landroid/content/Context;)V
-PLcom/android/server/blob/BlobStoreIdleJobService;->schedule(Landroid/content/Context;)V
-PLcom/android/server/blob/BlobStoreManagerInternal;-><init>()V
-PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
+PLcom/android/server/blob/BlobStoreConfig;->prepareBlobStoreRootDir()Ljava/io/File;
+PLcom/android/server/blob/BlobStoreIdleJobService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/blob/BlobStoreIdleJobService;Landroid/app/job/JobParameters;)V
+PLcom/android/server/blob/BlobStoreIdleJobService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/blob/BlobStoreIdleJobService;-><init>()V
+PLcom/android/server/blob/BlobStoreIdleJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda12;-><init>(ILjava/util/concurrent/atomic/AtomicLong;)V
+PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Ljava/util/ArrayList;)V
+PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Ljava/util/ArrayList;)V
+PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/blob/BlobStoreManagerService;I)V
+PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda1;-><init>(IZLjava/util/concurrent/atomic/AtomicLong;)V
+PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda2;-><init>(Ljava/lang/Object;Ljava/util/concurrent/atomic/AtomicLong;I)V
+PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;Landroid/os/UserHandle;ZLjava/util/concurrent/atomic/AtomicLong;)V
 PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter-IA;)V
+HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForPackageForUser(Landroid/content/pm/PackageStats;Ljava/lang/String;Landroid/os/UserHandle;Z)V
+HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForUid(Landroid/content/pm/PackageStats;IZ)V
+PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForUser(Landroid/content/pm/PackageStats;Landroid/os/UserHandle;)V
+PLcom/android/server/blob/BlobStoreManagerService$DumpArgs;-><init>()V
+PLcom/android/server/blob/BlobStoreManagerService$DumpArgs;->shouldDumpAllSections()Z
 PLcom/android/server/blob/BlobStoreManagerService$Injector;-><init>()V
-PLcom/android/server/blob/BlobStoreManagerService$Injector;->getBackgroundHandler()Landroid/os/Handler;
-PLcom/android/server/blob/BlobStoreManagerService$Injector;->initializeMessageHandler()Landroid/os/Handler;
 PLcom/android/server/blob/BlobStoreManagerService$LocalService;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$LocalService;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$LocalService-IA;)V
-PLcom/android/server/blob/BlobStoreManagerService$PackageChangedReceiver;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$PackageChangedReceiver;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$PackageChangedReceiver-IA;)V
 PLcom/android/server/blob/BlobStoreManagerService$SessionStateChangeListener;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
 PLcom/android/server/blob/BlobStoreManagerService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$StatsPullAtomCallbackImpl-IA;)V
+PLcom/android/server/blob/BlobStoreManagerService$Stub$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/blob/BlobStoreManagerService$Stub;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$Stub;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$Stub-IA;)V
-PLcom/android/server/blob/BlobStoreManagerService$UserActionReceiver;-><init>(Lcom/android/server/blob/BlobStoreManagerService;)V
-PLcom/android/server/blob/BlobStoreManagerService$UserActionReceiver;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$UserActionReceiver-IA;)V
-PLcom/android/server/blob/BlobStoreManagerService;->-$$Nest$sminitializeMessageHandler()Landroid/os/Handler;
+PLcom/android/server/blob/BlobStoreManagerService$Stub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/blob/BlobStoreManagerService$UserActionReceiver;-><init>(Lcom/android/server/blob/BlobStoreManagerService;I)V
+PLcom/android/server/blob/BlobStoreManagerService;->-$$Nest$mdumpBlobsLocked(Lcom/android/server/blob/BlobStoreManagerService;Landroid/util/IndentingPrintWriter;Lcom/android/server/blob/BlobStoreManagerService$DumpArgs;)V
+PLcom/android/server/blob/BlobStoreManagerService;->-$$Nest$mdumpSessionsLocked(Lcom/android/server/blob/BlobStoreManagerService;Landroid/util/IndentingPrintWriter;Lcom/android/server/blob/BlobStoreManagerService$DumpArgs;)V
 PLcom/android/server/blob/BlobStoreManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/blob/BlobStoreManagerService;-><init>(Landroid/content/Context;Lcom/android/server/blob/BlobStoreManagerService$Injector;)V
+PLcom/android/server/blob/BlobStoreManagerService;->forEachBlob(Ljava/util/function/Consumer;)V
+PLcom/android/server/blob/BlobStoreManagerService;->forEachBlobLocked(Ljava/util/function/Consumer;)V
+HPLcom/android/server/blob/BlobStoreManagerService;->forEachSessionInUser(ILjava/util/function/Consumer;)V
 PLcom/android/server/blob/BlobStoreManagerService;->getAllPackages()Landroid/util/SparseArray;
-PLcom/android/server/blob/BlobStoreManagerService;->initializeMessageHandler()Landroid/os/Handler;
+HPLcom/android/server/blob/BlobStoreManagerService;->getUserSessionsLocked(I)Landroid/util/LongSparseArray;
+PLcom/android/server/blob/BlobStoreManagerService;->handleIdleMaintenanceLocked()V
 PLcom/android/server/blob/BlobStoreManagerService;->onBootPhase(I)V
 PLcom/android/server/blob/BlobStoreManagerService;->onStart()V
 PLcom/android/server/blob/BlobStoreManagerService;->readBlobSessionsLocked(Landroid/util/SparseArray;)V
 PLcom/android/server/blob/BlobStoreManagerService;->readBlobsInfoLocked(Landroid/util/SparseArray;)V
-PLcom/android/server/blob/BlobStoreManagerService;->registerBlobStorePuller()V
-PLcom/android/server/blob/BlobStoreManagerService;->registerReceivers()V
-PLcom/android/server/clipboard/ClipboardService$$ExternalSyntheticLambda1;-><init>()V
+PLcom/android/server/blob/BlobStoreManagerService;->writeBlobSessionsAsync()V
+PLcom/android/server/blob/BlobStoreManagerService;->writeBlobSessionsLocked()V
+PLcom/android/server/blob/BlobStoreManagerService;->writeBlobsInfoAsync()V
+PLcom/android/server/blob/BlobStoreManagerService;->writeBlobsInfoLocked()V
 PLcom/android/server/clipboard/ClipboardService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/clipboard/ClipboardService;)V
-PLcom/android/server/clipboard/ClipboardService$2;-><init>(Lcom/android/server/clipboard/ClipboardService;)V
+PLcom/android/server/clipboard/ClipboardService$$ExternalSyntheticLambda2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/clipboard/ClipboardService$ClipboardImpl$ClipboardClearHandler;-><init>(Lcom/android/server/clipboard/ClipboardService$ClipboardImpl;Landroid/os/Looper;)V
 PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;-><init>(Lcom/android/server/clipboard/ClipboardService;)V
-PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;-><init>(Lcom/android/server/clipboard/ClipboardService;Lcom/android/server/clipboard/ClipboardService$ClipboardImpl-IA;)V
-PLcom/android/server/clipboard/ClipboardService;->-$$Nest$fgetmWorkerHandler(Lcom/android/server/clipboard/ClipboardService;)Landroid/os/Handler;
-HPLcom/android/server/clipboard/ClipboardService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/clipboard/ClipboardService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/clipboard/ClipboardService;->onStart()V
-PLcom/android/server/clipboard/ClipboardService;->registerVirtualDeviceListener()V
 PLcom/android/server/clipboard/ClipboardService;->updateConfig()V
-PLcom/android/server/companion/AssociationRequestsProcessor$1;-><init>(Lcom/android/server/companion/AssociationRequestsProcessor;Landroid/os/Handler;)V
-PLcom/android/server/companion/AssociationRequestsProcessor;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Lcom/android/server/companion/AssociationStoreImpl;)V
-PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda2;-><init>(Ljava/lang/String;)V
-PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
-PLcom/android/server/companion/AssociationStoreImpl;->$r8$lambda$60CakuEfGvN-UOxE0riiWYdRC3c(Landroid/companion/AssociationInfo;)V
-PLcom/android/server/companion/AssociationStoreImpl;->$r8$lambda$ca2RCDmyc2KpZMlfSXZiv2X6IYw(Ljava/lang/String;Landroid/companion/AssociationInfo;)Z
-PLcom/android/server/companion/AssociationStoreImpl;-><init>()V
-PLcom/android/server/companion/AssociationStoreImpl;->checkNotRevoked(Landroid/companion/AssociationInfo;)V
-PLcom/android/server/companion/AssociationStoreImpl;->clearLocked()V
-PLcom/android/server/companion/AssociationStoreImpl;->getAssociations()Ljava/util/Collection;
-PLcom/android/server/companion/AssociationStoreImpl;->getAssociationsForPackage(ILjava/lang/String;)Ljava/util/List;
-PLcom/android/server/companion/AssociationStoreImpl;->getAssociationsForUser(I)Ljava/util/List;
-PLcom/android/server/companion/AssociationStoreImpl;->getAssociationsForUserLocked(I)Ljava/util/List;
-PLcom/android/server/companion/AssociationStoreImpl;->lambda$getAssociationsForPackage$2(Ljava/lang/String;Landroid/companion/AssociationInfo;)Z
-PLcom/android/server/companion/AssociationStoreImpl;->registerListener(Lcom/android/server/companion/AssociationStore$OnChangeListener;)V
-PLcom/android/server/companion/AssociationStoreImpl;->setAssociations(Ljava/util/Collection;)V
-PLcom/android/server/companion/AssociationStoreImpl;->setAssociationsLocked(Ljava/util/Collection;)V
-PLcom/android/server/companion/BackupRestoreProcessor;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Lcom/android/server/companion/AssociationStoreImpl;Lcom/android/server/companion/PersistentDataStore;Lcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;Lcom/android/server/companion/AssociationRequestsProcessor;)V
-PLcom/android/server/companion/CompanionApplicationController$AndroidPackageMap;-><init>()V
-PLcom/android/server/companion/CompanionApplicationController$AndroidPackageMap;-><init>(Lcom/android/server/companion/CompanionApplicationController$AndroidPackageMap-IA;)V
-PLcom/android/server/companion/CompanionApplicationController$CompanionServicesRegister;-><init>(Lcom/android/server/companion/CompanionApplicationController;)V
-PLcom/android/server/companion/CompanionApplicationController$CompanionServicesRegister;-><init>(Lcom/android/server/companion/CompanionApplicationController;Lcom/android/server/companion/CompanionApplicationController$CompanionServicesRegister-IA;)V
-PLcom/android/server/companion/CompanionApplicationController;-><init>(Landroid/content/Context;Lcom/android/server/companion/AssociationStore;Lcom/android/server/companion/ObservableUuidStore;Lcom/android/server/companion/presence/CompanionDevicePresenceMonitor;Landroid/os/PowerManagerInternal;)V
-PLcom/android/server/companion/CompanionDeviceConfig;->isEnabled(Ljava/lang/String;)Z
-PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/companion/BackupRestoreProcessor;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/companion/association/AssociationStore;Lcom/android/server/companion/association/AssociationDiskStore;Lcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;Lcom/android/server/companion/association/AssociationRequestsProcessor;)V
+PLcom/android/server/companion/BackupRestoreProcessor;->getBackupPayload(I)[B
+PLcom/android/server/companion/CompanionDeviceConfig;->isEnabled()Z
 PLcom/android/server/companion/CompanionDeviceManagerService$1;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$2;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$3;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
+PLcom/android/server/companion/CompanionDeviceManagerService$1;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/server/companion/CompanionDeviceManagerService$1;->onPackageModified(Ljava/lang/String;)V
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->addOnAssociationsChangedListener(Landroid/companion/IOnAssociationsChangedListener;I)V
+PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->getAllAssociationsForUser(I)Ljava/util/List;
 HPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->getAssociations(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->getBackupPayload(I)[B
 PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/companion/CompanionDeviceManagerService$LocalService;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$LocalService;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Lcom/android/server/companion/CompanionDeviceManagerService$LocalService-IA;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$OnPackageVisibilityChangeListener;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Landroid/app/ActivityManager;)V
-PLcom/android/server/companion/CompanionDeviceManagerService$PerUserAssociationSet;-><init>()V
-PLcom/android/server/companion/CompanionDeviceManagerService$PersistUserStateHandler;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->$r8$lambda$qPiDU_hiTPYcITYcno5QR8cQB_I(Lcom/android/server/companion/CompanionDeviceManagerService;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->-$$Nest$fgetmAssociationStore(Lcom/android/server/companion/CompanionDeviceManagerService;)Lcom/android/server/companion/AssociationStoreImpl;
-PLcom/android/server/companion/CompanionDeviceManagerService;->-$$Nest$fgetmListeners(Lcom/android/server/companion/CompanionDeviceManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/companion/CompanionDeviceManagerService;-><clinit>()V
-HPLcom/android/server/companion/CompanionDeviceManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->getFirstAssociationIdForUser(I)I
-PLcom/android/server/companion/CompanionDeviceManagerService;->getLastAssociationIdForUser(I)I
-PLcom/android/server/companion/CompanionDeviceManagerService;->loadAssociationsFromDisk()V
-PLcom/android/server/companion/CompanionDeviceManagerService;->maybeGrantAutoRevokeExemptions()V
+PLcom/android/server/companion/CompanionDeviceManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->onBootPhase(I)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->onStart()V
 PLcom/android/server/companion/CompanionDeviceManagerService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/companion/CompanionDeviceManagerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->updateAtm(ILjava/util/List;)V
-PLcom/android/server/companion/DataStoreUtils;->createStorageFileForUser(ILjava/lang/String;)Landroid/util/AtomicFile;
-PLcom/android/server/companion/DataStoreUtils;->getBaseStorageFileForUser(ILjava/lang/String;)Ljava/io/File;
-PLcom/android/server/companion/DataStoreUtils;->isEndOfTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
-PLcom/android/server/companion/DataStoreUtils;->isStartOfTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
-PLcom/android/server/companion/InactiveAssociationsRemovalService;-><clinit>()V
-PLcom/android/server/companion/InactiveAssociationsRemovalService;->schedule(Landroid/content/Context;)V
-PLcom/android/server/companion/ObservableUuidStore$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/companion/ObservableUuidStore;I)V
-PLcom/android/server/companion/ObservableUuidStore$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
-PLcom/android/server/companion/ObservableUuidStore$$ExternalSyntheticLambda3;-><init>(I)V
-PLcom/android/server/companion/ObservableUuidStore$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/companion/ObservableUuidStore;->$r8$lambda$JBvSPiYXxTY9FJ_T7R_PkgjUDKs(Lcom/android/server/companion/ObservableUuidStore;I)Ljava/util/List;
-PLcom/android/server/companion/ObservableUuidStore;->$r8$lambda$SWFzFG4e-xRsk2J9VzL5XRljRuw(ILjava/lang/Integer;)Landroid/util/AtomicFile;
-PLcom/android/server/companion/ObservableUuidStore;-><init>()V
-PLcom/android/server/companion/ObservableUuidStore;->getObservableUuidsForUser(I)Ljava/util/List;
-PLcom/android/server/companion/ObservableUuidStore;->getStorageFileForUser(I)Landroid/util/AtomicFile;
-PLcom/android/server/companion/ObservableUuidStore;->lambda$getStorageFileForUser$6(ILjava/lang/Integer;)Landroid/util/AtomicFile;
-PLcom/android/server/companion/ObservableUuidStore;->lambda$readObservableUuidsFromCache$5(I)Ljava/util/List;
-PLcom/android/server/companion/ObservableUuidStore;->readObservableUuidFromStore(I)Ljava/util/List;
-PLcom/android/server/companion/ObservableUuidStore;->readObservableUuidsFromCache(I)Ljava/util/List;
-PLcom/android/server/companion/PermissionsUtils;-><clinit>()V
-PLcom/android/server/companion/PermissionsUtils;->checkCallerCanManageAssociationsForPackage(Landroid/content/Context;ILjava/lang/String;)Z
-PLcom/android/server/companion/PermissionsUtils;->checkCallerCanManageCompanionDevice(Landroid/content/Context;)Z
-PLcom/android/server/companion/PermissionsUtils;->checkCallerIsSystemOr(ILjava/lang/String;)Z
-PLcom/android/server/companion/PermissionsUtils;->enforceCallerCanManageAssociationsForPackage(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/companion/PermissionsUtils;->enforceCallerIsSystemOrCanInteractWithUserId(Landroid/content/Context;I)V
-PLcom/android/server/companion/PersistentDataStore$$ExternalSyntheticLambda1;-><init>(I)V
-PLcom/android/server/companion/PersistentDataStore$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/companion/PersistentDataStore;->$r8$lambda$kZ79xCqh_OiIBnJ6GaylVqvy9jA(ILjava/lang/Integer;)Landroid/util/AtomicFile;
-PLcom/android/server/companion/PersistentDataStore;-><init>()V
-PLcom/android/server/companion/PersistentDataStore;->createAssociationInfoNoThrow(IILjava/lang/String;Ljava/lang/String;Landroid/net/MacAddress;Ljava/lang/CharSequence;Ljava/lang/String;ZZZZJJI)Landroid/companion/AssociationInfo;
-PLcom/android/server/companion/PersistentDataStore;->getStorageFileForUser(I)Landroid/util/AtomicFile;
-PLcom/android/server/companion/PersistentDataStore;->lambda$getStorageFileForUser$1(ILjava/lang/Integer;)Landroid/util/AtomicFile;
-PLcom/android/server/companion/PersistentDataStore;->readAssociationV1(Lcom/android/modules/utils/TypedXmlPullParser;ILjava/util/Collection;)V
-PLcom/android/server/companion/PersistentDataStore;->readAssociationsV1(Lcom/android/modules/utils/TypedXmlPullParser;ILjava/util/Collection;)V
-PLcom/android/server/companion/PersistentDataStore;->readPreviouslyUsedIdsV1(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/Map;)V
-PLcom/android/server/companion/PersistentDataStore;->readStateForUser(ILjava/util/Collection;Ljava/util/Map;)V
-PLcom/android/server/companion/PersistentDataStore;->readStateForUsers(Ljava/util/List;Ljava/util/Set;Landroid/util/SparseArray;)V
-PLcom/android/server/companion/PersistentDataStore;->readStateFromFileLocked(ILandroid/util/AtomicFile;Ljava/lang/String;Ljava/util/Collection;Ljava/util/Map;)I
-PLcom/android/server/companion/PersistentDataStore;->readStateFromInputStream(ILjava/io/InputStream;Ljava/lang/String;Ljava/util/Collection;Ljava/util/Map;)I
-PLcom/android/server/companion/PersistentDataStore;->requireStartOfTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
-PLcom/android/server/companion/PersistentDataStore;->stringToMacAddress(Ljava/lang/String;)Landroid/net/MacAddress;
+PLcom/android/server/companion/CompanionExemptionProcessor$1;-><init>(Lcom/android/server/companion/CompanionExemptionProcessor;)V
+PLcom/android/server/companion/CompanionExemptionProcessor;-><init>(Landroid/content/Context;Landroid/os/PowerExemptionManager;Landroid/app/AppOpsManager;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;Landroid/app/ActivityManagerInternal;Lcom/android/server/companion/association/AssociationStore;)V
+PLcom/android/server/companion/CompanionExemptionProcessor;->updateAtm(ILjava/util/List;)V
+PLcom/android/server/companion/association/AssociationDiskStore$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/companion/association/AssociationDiskStore$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/companion/association/AssociationDiskStore;-><init>()V
+PLcom/android/server/companion/association/AssociationDiskStore;->getStorageFileForUser(I)Landroid/util/AtomicFile;
+PLcom/android/server/companion/association/AssociationDiskStore;->readAssociationsByUsers(Ljava/util/List;)Ljava/util/Map;
+PLcom/android/server/companion/association/AssociationDiskStore;->readAssociationsFromInputStream(ILjava/io/InputStream;Ljava/lang/String;)Lcom/android/server/companion/association/Associations;
+PLcom/android/server/companion/association/AssociationDiskStore;->requireStartOfTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
+PLcom/android/server/companion/association/AssociationRequestsProcessor$1;-><init>(Lcom/android/server/companion/association/AssociationRequestsProcessor;Landroid/os/Handler;)V
+PLcom/android/server/companion/association/AssociationRequestsProcessor;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/companion/association/AssociationStore;)V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda2;-><init>(I)V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda3;-><init>(II)V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/companion/association/AssociationStore;)V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda4;->runOrThrow()V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda7;-><init>(IILjava/lang/String;)V
+PLcom/android/server/companion/association/AssociationStore$$ExternalSyntheticLambda7;->test(Ljava/lang/Object;)Z
+PLcom/android/server/companion/association/AssociationStore;-><init>(Landroid/content/Context;Landroid/os/UserManager;Lcom/android/server/companion/association/AssociationDiskStore;)V
+PLcom/android/server/companion/association/AssociationStore;->getActiveAssociations()Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->getActiveAssociationsByAddress(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->getActiveAssociationsByPackage(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->getActiveAssociationsByUser(I)Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->getAssociations()Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->getAssociationsByPackage(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->getAssociationsByUser(I)Ljava/util/List;
+PLcom/android/server/companion/association/AssociationStore;->registerLocalListener(Lcom/android/server/companion/association/AssociationStore$OnChangeListener;)V
+PLcom/android/server/companion/association/Associations;-><init>()V
+PLcom/android/server/companion/association/DisassociationProcessor$OnPackageVisibilityChangeListener;-><init>(Lcom/android/server/companion/association/DisassociationProcessor;)V
+PLcom/android/server/companion/association/DisassociationProcessor;-><clinit>()V
+PLcom/android/server/companion/association/DisassociationProcessor;-><init>(Landroid/content/Context;Landroid/app/ActivityManager;Lcom/android/server/companion/association/AssociationStore;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/companion/devicepresence/DevicePresenceProcessor;Lcom/android/server/companion/devicepresence/CompanionAppBinder;Lcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;Lcom/android/server/companion/transport/CompanionTransportManager;)V
+PLcom/android/server/companion/association/DisassociationProcessor;->removeIdleSelfManagedAssociations()V
+PLcom/android/server/companion/association/InactiveAssociationsRemovalService;-><clinit>()V
+PLcom/android/server/companion/association/InactiveAssociationsRemovalService;-><init>()V
+PLcom/android/server/companion/association/InactiveAssociationsRemovalService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/companion/datatransfer/SystemDataTransferProcessor$1;-><init>(Lcom/android/server/companion/datatransfer/SystemDataTransferProcessor;)V
 PLcom/android/server/companion/datatransfer/SystemDataTransferProcessor$2;-><init>(Lcom/android/server/companion/datatransfer/SystemDataTransferProcessor;Landroid/os/Handler;)V
-PLcom/android/server/companion/datatransfer/SystemDataTransferProcessor;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/companion/AssociationStore;Lcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;Lcom/android/server/companion/transport/CompanionTransportManager;)V
+PLcom/android/server/companion/datatransfer/SystemDataTransferProcessor;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/companion/association/AssociationStore;Lcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;Lcom/android/server/companion/transport/CompanionTransportManager;)V
+PLcom/android/server/companion/datatransfer/SystemDataTransferRequestStore$$ExternalSyntheticLambda6;-><init>(I)V
+PLcom/android/server/companion/datatransfer/SystemDataTransferRequestStore$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;-><init>()V
+PLcom/android/server/companion/datatransfer/SystemDataTransferRequestStore;->getStorageFileForUser(I)Landroid/util/AtomicFile;
 PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController$1;-><init>(Lcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController;)V
 PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController$1;->onTransportsChanged(Ljava/util/List;)V
 PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController$2;-><init>(Lcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController;)V
 PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController$CallManager;-><init>(Landroid/content/Context;Lcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController$PhoneAccountManager;)V
 PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController$PhoneAccountManager;-><init>(Landroid/content/Context;)V
 PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController;-><init>(Landroid/content/Context;Lcom/android/server/companion/transport/CompanionTransportManager;)V
-PLcom/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController;->onBootCompleted()V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner$1;-><init>(Lcom/android/server/companion/presence/BleCompanionDeviceScanner;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner$2;-><init>(Lcom/android/server/companion/presence/BleCompanionDeviceScanner;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;->-$$Nest$mcheckBleState(Lcom/android/server/companion/presence/BleCompanionDeviceScanner;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;-><clinit>()V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;-><init>(Lcom/android/server/companion/AssociationStore;Lcom/android/server/companion/presence/BleCompanionDeviceScanner$Callback;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;->checkBleState()V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;->enforceInitialized()V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;->init(Landroid/content/Context;Landroid/bluetooth/BluetoothAdapter;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;->registerBluetoothStateBroadcastReceiver(Landroid/content/Context;)V
-PLcom/android/server/companion/presence/BleCompanionDeviceScanner;->startScan()V
-PLcom/android/server/companion/presence/BluetoothCompanionDeviceConnectionListener;-><init>(Landroid/os/UserManager;Lcom/android/server/companion/AssociationStore;Lcom/android/server/companion/ObservableUuidStore;Lcom/android/server/companion/presence/BluetoothCompanionDeviceConnectionListener$Callback;)V
-PLcom/android/server/companion/presence/BluetoothCompanionDeviceConnectionListener;->init(Landroid/bluetooth/BluetoothAdapter;)V
-PLcom/android/server/companion/presence/CompanionDevicePresenceMonitor$SimulatedDevicePresenceSchedulerHelper;-><init>(Lcom/android/server/companion/presence/CompanionDevicePresenceMonitor;)V
-PLcom/android/server/companion/presence/CompanionDevicePresenceMonitor;-><init>(Landroid/os/UserManager;Lcom/android/server/companion/AssociationStore;Lcom/android/server/companion/ObservableUuidStore;Lcom/android/server/companion/presence/CompanionDevicePresenceMonitor$Callback;)V
-PLcom/android/server/companion/presence/CompanionDevicePresenceMonitor;->getPendingConnectedDevices()Landroid/util/SparseArray;
-PLcom/android/server/companion/presence/CompanionDevicePresenceMonitor;->init(Landroid/content/Context;)V
-PLcom/android/server/companion/transport/CompanionTransportManager$$ExternalSyntheticLambda0;-><init>(Landroid/companion/IOnTransportsChangedListener;Ljava/util/List;)V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor$1;-><init>(Lcom/android/server/companion/devicepresence/BleDeviceProcessor;)V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor$2;-><init>(Lcom/android/server/companion/devicepresence/BleDeviceProcessor;)V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor;-><clinit>()V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor;-><init>(Lcom/android/server/companion/association/AssociationStore;Lcom/android/server/companion/devicepresence/DevicePresenceProcessor;)V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor;->checkBleState()V
+PLcom/android/server/companion/devicepresence/BleDeviceProcessor;->startScan()V
+PLcom/android/server/companion/devicepresence/BluetoothDeviceProcessor;-><init>(Lcom/android/server/companion/association/AssociationStore;Lcom/android/server/companion/devicepresence/ObservableUuidStore;Lcom/android/server/companion/devicepresence/DevicePresenceProcessor;)V
+PLcom/android/server/companion/devicepresence/BluetoothDeviceProcessor;->onDeviceConnected(Landroid/bluetooth/BluetoothDevice;)V
+PLcom/android/server/companion/devicepresence/BluetoothDeviceProcessor;->onDeviceConnectivityChanged(Landroid/bluetooth/BluetoothDevice;Z)V
+PLcom/android/server/companion/devicepresence/BluetoothDeviceProcessor;->onDeviceDisconnected(Landroid/bluetooth/BluetoothDevice;I)V
+PLcom/android/server/companion/devicepresence/CompanionAppBinder$CompanionServicesRegister;-><init>(Lcom/android/server/companion/devicepresence/CompanionAppBinder;)V
+PLcom/android/server/companion/devicepresence/CompanionAppBinder;-><init>(Landroid/content/Context;)V
+PLcom/android/server/companion/devicepresence/DevicePresenceProcessor$BleDeviceDisappearedScheduler;-><init>(Lcom/android/server/companion/devicepresence/DevicePresenceProcessor;)V
+PLcom/android/server/companion/devicepresence/DevicePresenceProcessor$SimulatedDevicePresenceSchedulerHelper;-><init>(Lcom/android/server/companion/devicepresence/DevicePresenceProcessor;)V
+PLcom/android/server/companion/devicepresence/DevicePresenceProcessor;-><init>(Landroid/content/Context;Lcom/android/server/companion/devicepresence/CompanionAppBinder;Landroid/os/UserManager;Lcom/android/server/companion/association/AssociationStore;Lcom/android/server/companion/devicepresence/ObservableUuidStore;Landroid/os/PowerManagerInternal;Lcom/android/server/companion/CompanionExemptionProcessor;)V
+PLcom/android/server/companion/devicepresence/DevicePresenceProcessor;->sendDevicePresenceEventOnUnlocked(I)V
+PLcom/android/server/companion/devicepresence/ObservableUuidStore$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/companion/devicepresence/ObservableUuidStore;I)V
+PLcom/android/server/companion/devicepresence/ObservableUuidStore$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
+PLcom/android/server/companion/devicepresence/ObservableUuidStore$$ExternalSyntheticLambda3;-><init>(I)V
+PLcom/android/server/companion/devicepresence/ObservableUuidStore$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/companion/devicepresence/ObservableUuidStore;-><init>()V
+PLcom/android/server/companion/devicepresence/ObservableUuidStore;->readObservableUuidsFromCache(I)Ljava/util/List;
+PLcom/android/server/companion/transport/CompanionTransportManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/companion/transport/CompanionTransportManager;Landroid/companion/IOnTransportsChangedListener;)V
 PLcom/android/server/companion/transport/CompanionTransportManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/companion/transport/CompanionTransportManager;->$r8$lambda$Nes8XDMe0_gDmUo7HQHaB-4pP6I(Landroid/companion/IOnTransportsChangedListener;Ljava/util/List;Landroid/companion/IOnTransportsChangedListener;)V
-PLcom/android/server/companion/transport/CompanionTransportManager;-><init>(Landroid/content/Context;Lcom/android/server/companion/AssociationStore;)V
+PLcom/android/server/companion/transport/CompanionTransportManager;-><init>(Landroid/content/Context;Lcom/android/server/companion/association/AssociationStore;)V
 PLcom/android/server/companion/transport/CompanionTransportManager;->addListener(ILandroid/companion/IOnMessageReceivedListener;)V
 PLcom/android/server/companion/transport/CompanionTransportManager;->addListener(Landroid/companion/IOnTransportsChangedListener;)V
-PLcom/android/server/companion/transport/CompanionTransportManager;->lambda$addListener$0(Landroid/companion/IOnTransportsChangedListener;Ljava/util/List;Landroid/companion/IOnTransportsChangedListener;)V
-PLcom/android/server/companion/virtual/VirtualDeviceLog;-><clinit>()V
-PLcom/android/server/companion/virtual/VirtualDeviceLog;-><init>(Landroid/content/Context;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerInternal;-><init>()V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$1;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$2;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$2;->onInterceptActivityLaunch(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptResult;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;Lcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService-IA;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;->getAllPersistentDeviceIds()Ljava/util/Set;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;->getDeviceIdForDisplayId(I)I
-HPLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;->getDeviceIdsForUid(I)Landroid/util/ArraySet;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;->getPreferredLocaleListForUid(I)Landroid/os/LocaleList;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$LocalService;->registerPersistentDeviceIdRemovedListener(Ljava/util/function/Consumer;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$PendingTrampolineMap;-><init>(Landroid/os/Handler;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$PendingTrampolineMap;->remove(Ljava/lang/String;)Lcom/android/server/companion/virtual/VirtualDeviceImpl$PendingTrampoline;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl$1;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl;->getDeviceIdForDisplayId(I)I
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl;->registerVirtualDeviceListener(Landroid/companion/virtual/IVirtualDeviceListener;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerNativeImpl;-><init>(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)V
-HPLcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerNativeImpl;->getDeviceIdsForUid(I)[I
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmActiveAssociations(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Landroid/util/ArrayMap;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmAppsOnVirtualDevices(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmImpl(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Lcom/android/server/companion/virtual/VirtualDeviceManagerService$VirtualDeviceManagerImpl;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmLocalService(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Lcom/android/server/companion/virtual/VirtualDeviceManagerInternal;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmPendingTrampolines(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Lcom/android/server/companion/virtual/VirtualDeviceManagerService$PendingTrampolineMap;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmVirtualDeviceListeners(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmVirtualDeviceManagerLock(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Ljava/lang/Object;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$mgetVirtualDevicesSnapshot(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;-><clinit>()V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/companion/virtual/VirtualDeviceManagerService;->getVirtualDevicesSnapshot()Ljava/util/ArrayList;
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->onCdmAssociationsChanged(Ljava/util/List;)V
-PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->onStart()V
+PLcom/android/server/companion/transport/CompanionTransportManager;->getAssociationsWithTransport()Ljava/util/List;
+PLcom/android/server/companion/utils/DataStoreUtils;->fileToByteArray(Landroid/util/AtomicFile;)[B
+PLcom/android/server/companion/utils/DataStoreUtils;->isEndOfTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
+PLcom/android/server/companion/utils/DataStoreUtils;->isStartOfTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
+PLcom/android/server/companion/utils/PermissionsUtils;-><clinit>()V
+PLcom/android/server/companion/utils/PermissionsUtils;->enforceCallerCanManageAssociationsForPackage(ILandroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/companion/utils/PermissionsUtils;->enforceCallerIsSystemOrCanInteractWithUserId(Landroid/content/Context;I)V
 HSPLcom/android/server/compat/CompatChange;-><init>(JLjava/lang/String;IIZZLjava/lang/String;Z)V
-HSPLcom/android/server/compat/CompatChange;-><init>(Lcom/android/server/compat/config/Change;)V
-HSPLcom/android/server/compat/CompatChange;->clearOverrides()V
-PLcom/android/server/compat/CompatChange;->defaultValue()Z
-HPLcom/android/server/compat/CompatChange;->isEnabled(Landroid/content/pm/ApplicationInfo;Lcom/android/internal/compat/AndroidBuildClassifier;)Z
-PLcom/android/server/compat/CompatChange;->registerListener(Lcom/android/server/compat/CompatChange$ChangeListener;)V
-HPLcom/android/server/compat/CompatChange;->willBeEnabled(Ljava/lang/String;)Z
+HSPLcom/android/server/compat/CompatChange;->isEnabled(Landroid/content/pm/ApplicationInfo;Lcom/android/internal/compat/AndroidBuildClassifier;)Z+]Lcom/android/internal/compat/AndroidBuildClassifier;Lcom/android/internal/compat/AndroidBuildClassifier;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
+PLcom/android/server/compat/CompatChange;->recheckOverride(Ljava/lang/String;Lcom/android/internal/compat/OverrideAllowedState;Ljava/lang/Long;)Z
+PLcom/android/server/compat/CompatChange;->toString()Ljava/lang/String;
 PLcom/android/server/compat/CompatConfig$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/compat/CompatConfig;Ljava/util/concurrent/atomic/AtomicBoolean;J)V
 HSPLcom/android/server/compat/CompatConfig;-><init>(Lcom/android/internal/compat/AndroidBuildClassifier;Landroid/content/Context;)V
-HSPLcom/android/server/compat/CompatConfig;->create(Lcom/android/internal/compat/AndroidBuildClassifier;Landroid/content/Context;)Lcom/android/server/compat/CompatConfig;
-HPLcom/android/server/compat/CompatConfig;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
+PLcom/android/server/compat/CompatConfig;->getVersionCodeOrNull(Ljava/lang/String;)Ljava/lang/Long;
 HSPLcom/android/server/compat/CompatConfig;->initConfigFromLib(Ljava/io/File;)V
-HSPLcom/android/server/compat/CompatConfig;->initOverrides()V
 HSPLcom/android/server/compat/CompatConfig;->initOverrides(Ljava/io/File;Ljava/io/File;)V
-HSPLcom/android/server/compat/CompatConfig;->invalidateCache()V
-HPLcom/android/server/compat/CompatConfig;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
 HSPLcom/android/server/compat/CompatConfig;->loadOverrides(Ljava/io/File;)V
-HSPLcom/android/server/compat/CompatConfig;->makeBackupFile(Ljava/io/File;)Ljava/io/File;
-HSPLcom/android/server/compat/CompatConfig;->readConfig(Ljava/io/File;)V
-PLcom/android/server/compat/CompatConfig;->registerContentObserver()V
-PLcom/android/server/compat/CompatConfig;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
-HPLcom/android/server/compat/CompatConfig;->willChangeBeEnabled(JLjava/lang/String;)Z
+PLcom/android/server/compat/CompatConfig;->willChangeBeEnabled(JLjava/lang/String;)Z
 PLcom/android/server/compat/OverrideValidatorImpl$SettingsObserver;-><init>(Lcom/android/server/compat/OverrideValidatorImpl;)V
 HSPLcom/android/server/compat/OverrideValidatorImpl;-><init>(Lcom/android/internal/compat/AndroidBuildClassifier;Landroid/content/Context;Lcom/android/server/compat/CompatConfig;)V
-PLcom/android/server/compat/OverrideValidatorImpl;->registerContentObserver()V
+PLcom/android/server/compat/OverrideValidatorImpl;->getOverrideAllowedStateInternal(Ljava/lang/String;JZ)Lcom/android/internal/compat/OverrideAllowedState;
 PLcom/android/server/compat/PlatformCompat$1;-><init>(Lcom/android/server/compat/PlatformCompat;)V
+PLcom/android/server/compat/PlatformCompat$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/compat/PlatformCompat;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/compat/PlatformCompat;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/compat/PlatformCompat;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
-HPLcom/android/server/compat/PlatformCompat;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/compat/PlatformCompat;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/compat/PlatformCompat;->fixTargetSdk(Landroid/content/pm/ApplicationInfo;I)V
+HPLcom/android/server/compat/PlatformCompat;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
+PLcom/android/server/compat/PlatformCompat;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
 HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByPackageName(JLjava/lang/String;I)Z
-HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByUid(JI)Z
-HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByUidInternal(JI)Z
-HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternal(JLandroid/content/pm/ApplicationInfo;)Z
-HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternal(JLjava/lang/String;I)Z
-HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternalNoLogging(JLandroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/compat/PlatformCompat;->registerContentObserver()V
-PLcom/android/server/compat/PlatformCompat;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
+HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByUid(JI)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
+HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternal(JLandroid/content/pm/ApplicationInfo;)Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/internal/compat/ChangeReporter;Lcom/android/internal/compat/ChangeReporter;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
+HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternalNoLogging(JLandroid/content/pm/ApplicationInfo;)Z+]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
+PLcom/android/server/compat/PlatformCompat;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)V
 PLcom/android/server/compat/PlatformCompat;->registerPackageReceiver(Landroid/content/Context;)V
-PLcom/android/server/compat/PlatformCompat;->reportChangeInternal(JII)V
-HPLcom/android/server/compat/PlatformCompat;->resetReporting(Landroid/content/pm/ApplicationInfo;)V
 HSPLcom/android/server/compat/PlatformCompatNative;-><init>(Lcom/android/server/compat/PlatformCompat;)V
-HSPLcom/android/server/compat/config/Change;-><init>()V
-HSPLcom/android/server/compat/config/Change;->getDescription()Ljava/lang/String;
-HSPLcom/android/server/compat/config/Change;->getDisabled()Z
-HSPLcom/android/server/compat/config/Change;->getEnableAfterTargetSdk()I
-HSPLcom/android/server/compat/config/Change;->getEnableSinceTargetSdk()I
-HSPLcom/android/server/compat/config/Change;->getId()J
-HSPLcom/android/server/compat/config/Change;->getLoggingOnly()Z
-HSPLcom/android/server/compat/config/Change;->getName()Ljava/lang/String;
-HSPLcom/android/server/compat/config/Change;->getOverridable()Z
-HSPLcom/android/server/compat/config/Change;->read(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/compat/config/Change;
-HSPLcom/android/server/compat/config/Change;->setDescription(Ljava/lang/String;)V
-HSPLcom/android/server/compat/config/Change;->setDisabled(Z)V
-HSPLcom/android/server/compat/config/Change;->setEnableAfterTargetSdk(I)V
-HSPLcom/android/server/compat/config/Change;->setEnableSinceTargetSdk(I)V
-HSPLcom/android/server/compat/config/Change;->setId(J)V
-HSPLcom/android/server/compat/config/Change;->setName(Ljava/lang/String;)V
-HSPLcom/android/server/compat/config/Change;->setOverridable(Z)V
-HSPLcom/android/server/compat/config/Change;->setValue(Ljava/lang/String;)V
-HSPLcom/android/server/compat/config/Config;-><init>()V
-HSPLcom/android/server/compat/config/Config;->getCompatChange()Ljava/util/List;
-HSPLcom/android/server/compat/config/Config;->read(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/compat/config/Config;
 HSPLcom/android/server/compat/config/XmlParser;->read(Ljava/io/InputStream;)Lcom/android/server/compat/config/Config;
-HSPLcom/android/server/compat/config/XmlParser;->readText(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
 PLcom/android/server/compat/overrides/AppCompatOverridesParser;-><clinit>()V
 PLcom/android/server/compat/overrides/AppCompatOverridesParser;-><init>(Landroid/content/pm/PackageManager;)V
-PLcom/android/server/compat/overrides/AppCompatOverridesService$DeviceConfigListener;->-$$Nest$mregister(Lcom/android/server/compat/overrides/AppCompatOverridesService$DeviceConfigListener;)V
+PLcom/android/server/compat/overrides/AppCompatOverridesParser;->parsePackageOverrides(Ljava/lang/String;Ljava/lang/String;JLjava/util/Set;)Ljava/util/Map;
 PLcom/android/server/compat/overrides/AppCompatOverridesService$DeviceConfigListener;-><init>(Lcom/android/server/compat/overrides/AppCompatOverridesService;Landroid/content/Context;Ljava/lang/String;)V
-PLcom/android/server/compat/overrides/AppCompatOverridesService$DeviceConfigListener;-><init>(Lcom/android/server/compat/overrides/AppCompatOverridesService;Landroid/content/Context;Ljava/lang/String;Lcom/android/server/compat/overrides/AppCompatOverridesService$DeviceConfigListener-IA;)V
-PLcom/android/server/compat/overrides/AppCompatOverridesService$DeviceConfigListener;->register()V
 PLcom/android/server/compat/overrides/AppCompatOverridesService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/compat/overrides/AppCompatOverridesService$Lifecycle;->onStart()V
-PLcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver;->-$$Nest$mregister(Lcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver;)V
 PLcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver;-><init>(Lcom/android/server/compat/overrides/AppCompatOverridesService;Landroid/content/Context;)V
-PLcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver;-><init>(Lcom/android/server/compat/overrides/AppCompatOverridesService;Landroid/content/Context;Lcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver-IA;)V
-PLcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver;->register()V
+PLcom/android/server/compat/overrides/AppCompatOverridesService$PackageReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/compat/overrides/AppCompatOverridesService;-><clinit>()V
-PLcom/android/server/compat/overrides/AppCompatOverridesService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/compat/overrides/AppCompatOverridesService;-><init>(Landroid/content/Context;Lcom/android/internal/compat/IPlatformCompat;Ljava/util/List;)V
-PLcom/android/server/compat/overrides/AppCompatOverridesService;-><init>(Landroid/content/Context;Lcom/android/server/compat/overrides/AppCompatOverridesService-IA;)V
+PLcom/android/server/compat/overrides/AppCompatOverridesService;->getOverridesToRemove(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Map;
+PLcom/android/server/compat/overrides/AppCompatOverridesService;->getOwnedChangeIds(Ljava/lang/String;)Ljava/util/Set;
+PLcom/android/server/compat/overrides/AppCompatOverridesService;->getVersionCodeOrNull(Ljava/lang/String;)Ljava/lang/Long;
 PLcom/android/server/compat/overrides/AppCompatOverridesService;->registerDeviceConfigListeners()V
 PLcom/android/server/compat/overrides/AppCompatOverridesService;->registerPackageReceiver()V
 PLcom/android/server/connectivity/DefaultNetworkMetrics;-><init>()V
-PLcom/android/server/connectivity/DefaultNetworkMetrics;->newDefaultNetwork(JLandroid/net/Network;IZLandroid/net/LinkProperties;Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/connectivity/IpConnectivityMetrics$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/connectivity/IpConnectivityMetrics$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
 PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;)V
 PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
-PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->enforceNetdEventListeningPermission()V
-PLcom/android/server/connectivity/IpConnectivityMetrics$LoggerImpl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;)V
-PLcom/android/server/connectivity/IpConnectivityMetrics$LoggerImpl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;Lcom/android/server/connectivity/IpConnectivityMetrics$LoggerImpl-IA;)V
-PLcom/android/server/connectivity/IpConnectivityMetrics;->$r8$lambda$vBvdubbZbE8NJB5mMZ6KhHRxliM(Landroid/content/Context;)I
+PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->logEvent(Landroid/net/ConnectivityMetricsEvent;)I
 PLcom/android/server/connectivity/IpConnectivityMetrics;-><clinit>()V
 PLcom/android/server/connectivity/IpConnectivityMetrics;-><init>(Landroid/content/Context;)V
-PLcom/android/server/connectivity/IpConnectivityMetrics;-><init>(Landroid/content/Context;Ljava/util/function/ToIntFunction;)V
 PLcom/android/server/connectivity/IpConnectivityMetrics;->bufferCapacity()I
+PLcom/android/server/connectivity/IpConnectivityMetrics;->getEvents()Ljava/util/List;
 PLcom/android/server/connectivity/IpConnectivityMetrics;->initBuffer()V
-PLcom/android/server/connectivity/IpConnectivityMetrics;->lambda$static$1(Landroid/content/Context;)I
-PLcom/android/server/connectivity/IpConnectivityMetrics;->makeRateLimitingBuckets()Landroid/util/ArrayMap;
 PLcom/android/server/connectivity/IpConnectivityMetrics;->onBootPhase(I)V
 PLcom/android/server/connectivity/IpConnectivityMetrics;->onStart()V
 PLcom/android/server/connectivity/MultipathPolicyTracker$1;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
+PLcom/android/server/connectivity/MultipathPolicyTracker$2$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker$2;)V
+PLcom/android/server/connectivity/MultipathPolicyTracker$2$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/connectivity/MultipathPolicyTracker$2;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
+PLcom/android/server/connectivity/MultipathPolicyTracker$2;->onMeteredIfacesChanged([Ljava/lang/String;)V
 PLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;Lcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver-IA;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;-><init>()V
-PLcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;->getClock()Ljava/time/Clock;
+PLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/connectivity/MultipathPolicyTracker$SettingsObserver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;Landroid/os/Handler;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker;-><clinit>()V
+PLcom/android/server/connectivity/MultipathPolicyTracker;->-$$Nest$mupdateAllMultipathBudgets(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
 PLcom/android/server/connectivity/MultipathPolicyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker;->registerNetworkPolicyListener()V
-PLcom/android/server/connectivity/MultipathPolicyTracker;->registerTrackMobileCallback()V
 PLcom/android/server/connectivity/MultipathPolicyTracker;->start()V
-PLcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;-><init>()V
-PLcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;->collect(JLandroid/util/SparseArray;)Lcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;
-PLcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback;-><init>(Lcom/android/server/connectivity/NetdEventListenerService;)V
-PLcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback;-><init>(Lcom/android/server/connectivity/NetdEventListenerService;Lcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback-IA;)V
-HPLcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback;->getNetworkCapabilities(I)Landroid/net/NetworkCapabilities;
+PLcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;->toString()Ljava/lang/String;
+PLcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback;-><init>()V
+PLcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/connectivity/NetdEventListenerService$TransportForNetIdNetworkCallback;->onLost(Landroid/net/Network;)V
 PLcom/android/server/connectivity/NetdEventListenerService;-><clinit>()V
-PLcom/android/server/connectivity/NetdEventListenerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/connectivity/NetdEventListenerService;-><init>(Landroid/net/ConnectivityManager;)V
-PLcom/android/server/connectivity/NetdEventListenerService;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
 HPLcom/android/server/connectivity/NetdEventListenerService;->collectPendingMetricsSnapshot(JZ)V
-HPLcom/android/server/connectivity/NetdEventListenerService;->getMetricsForNetwork(JI)Landroid/net/metrics/NetworkMetrics;
-PLcom/android/server/connectivity/NetdEventListenerService;->isValidCallerType(I)Z
+HPLcom/android/server/connectivity/NetdEventListenerService;->getMetricsForNetwork(IJ)Landroid/net/metrics/NetworkMetrics;
 PLcom/android/server/connectivity/NetdEventListenerService;->onConnectEvent(IIILjava/lang/String;II)V
 HPLcom/android/server/connectivity/NetdEventListenerService;->onDnsEvent(IIIILjava/lang/String;[Ljava/lang/String;II)V
-PLcom/android/server/connectivity/NetdEventListenerService;->projectSnapshotTime(J)J
+PLcom/android/server/connectivity/NetdEventListenerService;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
+PLcom/android/server/connectivity/NetdEventListenerService;->onTcpSocketStatsEvent([I[I[I[I[I)V
+PLcom/android/server/connectivity/NetdEventListenerService;->onWakeupEvent(Ljava/lang/String;III[BLjava/lang/String;Ljava/lang/String;IIJ)V
 PLcom/android/server/connectivity/PacProxyService$1;-><init>(Lcom/android/server/connectivity/PacProxyService;)V
 PLcom/android/server/connectivity/PacProxyService$PacRefreshIntentReceiver;-><init>(Lcom/android/server/connectivity/PacProxyService;)V
 PLcom/android/server/connectivity/PacProxyService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/connectivity/PacProxyService;->addListener(Landroid/net/IPacProxyInstalledListener;)V
-PLcom/android/server/connectivity/Vpn$1;-><init>(Lcom/android/server/connectivity/Vpn;)V
-PLcom/android/server/connectivity/Vpn$Dependencies;-><init>()V
-PLcom/android/server/connectivity/Vpn$Ikev2SessionCreator;-><init>()V
-PLcom/android/server/connectivity/Vpn$SystemServices;-><init>(Landroid/content/Context;)V
-PLcom/android/server/connectivity/Vpn$SystemServices;->getContentResolverAsUser(I)Landroid/content/ContentResolver;
-PLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecureGetIntForUser(Ljava/lang/String;II)I
-PLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecureGetStringForUser(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/connectivity/Vpn;-><clinit>()V
-PLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/net/INetd;ILcom/android/server/connectivity/VpnProfileStore;)V
-HPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Lcom/android/server/connectivity/Vpn$Dependencies;Landroid/os/INetworkManagementService;Landroid/net/INetd;ILcom/android/server/connectivity/VpnProfileStore;Lcom/android/server/connectivity/Vpn$SystemServices;Lcom/android/server/connectivity/Vpn$Ikev2SessionCreator;)V
-PLcom/android/server/connectivity/Vpn;->doesPackageTargetAtLeastQ(Ljava/lang/String;)Z
-PLcom/android/server/connectivity/Vpn;->enforceControlPermissionOrInternalCaller()V
-PLcom/android/server/connectivity/Vpn;->getAlwaysOnPackage()Ljava/lang/String;
-PLcom/android/server/connectivity/Vpn;->getAppUid(Landroid/content/Context;Ljava/lang/String;I)I
-PLcom/android/server/connectivity/Vpn;->isCurrentPreparedPackage(Ljava/lang/String;)Z
-PLcom/android/server/connectivity/Vpn;->isNullOrLegacyVpn(Ljava/lang/String;)Z
-PLcom/android/server/connectivity/Vpn;->loadAlwaysOnPackage()V
-PLcom/android/server/connectivity/Vpn;->setAllowOnlyVpnForUids(ZLjava/util/Collection;)Z
-PLcom/android/server/connectivity/Vpn;->setAlwaysOnPackageInternal(Ljava/lang/String;ZLjava/util/List;)Z
-PLcom/android/server/connectivity/Vpn;->setVpnForcedLocked(Z)V
-PLcom/android/server/connectivity/Vpn;->startAlwaysOnVpn()Z
-PLcom/android/server/connectivity/Vpn;->updateAlwaysOnNotification(Landroid/net/NetworkInfo$DetailedState;)V
-PLcom/android/server/connectivity/VpnProfileStore;-><init>()V
-PLcom/android/server/connectivity/VpnProfileStore;->get(Ljava/lang/String;)[B
 PLcom/android/server/content/ContentService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/content/ContentService;)V
+PLcom/android/server/content/ContentService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/content/ContentService;II)V
+PLcom/android/server/content/ContentService$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
 PLcom/android/server/content/ContentService$1;-><init>(Lcom/android/server/content/ContentService;)V
+PLcom/android/server/content/ContentService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/content/ContentService$2;-><init>(Landroid/util/SparseIntArray;)V
+PLcom/android/server/content/ContentService$2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/content/ContentService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/content/ContentService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/content/ContentService$Lifecycle;->onStart()V
 PLcom/android/server/content/ContentService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/content/ContentService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/content/ContentService$ObserverCollector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V
-PLcom/android/server/content/ContentService$ObserverCollector$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/content/ContentService$ObserverCollector$$ExternalSyntheticLambda0;->run()V+]Landroid/database/IContentObserver;Landroid/database/ContentObserver$Transport;,Landroid/database/IContentObserver$Stub$Proxy;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/content/ContentService$ObserverCollector$Key;-><init>(Landroid/database/IContentObserver;IZII)V
 HPLcom/android/server/content/ContentService$ObserverCollector$Key;->hashCode()I
-PLcom/android/server/content/ContentService$ObserverCollector;->$r8$lambda$Enmwrm6HznBNY378PKC1kmqC6_o(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V
 HPLcom/android/server/content/ContentService$ObserverCollector;-><init>()V
-HPLcom/android/server/content/ContentService$ObserverCollector;->collect(Landroid/database/IContentObserver;IZLandroid/net/Uri;II)V
-HPLcom/android/server/content/ContentService$ObserverCollector;->dispatch()V
-HPLcom/android/server/content/ContentService$ObserverCollector;->lambda$dispatch$0(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V
-PLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->-$$Nest$fgetuserHandle(Lcom/android/server/content/ContentService$ObserverNode$ObserverEntry;)I
-HPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;-><init>(Lcom/android/server/content/ContentService$ObserverNode;Landroid/database/IContentObserver;ZLjava/lang/Object;IIILandroid/net/Uri;)V
+HPLcom/android/server/content/ContentService$ObserverCollector;->dispatch()V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;
+HPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;-><init>(Lcom/android/server/content/ContentService$ObserverNode;Landroid/database/IContentObserver;ZLjava/lang/Object;IIILandroid/net/Uri;)V+]Lcom/android/internal/os/BinderDeathDispatcher;Lcom/android/internal/os/BinderDeathDispatcher;
 PLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->binderDied()V
 HPLcom/android/server/content/ContentService$ObserverNode;-><init>(Ljava/lang/String;)V
-HPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZLjava/lang/Object;III)V
-HPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;Landroid/database/IContentObserver;ZLjava/lang/Object;III)V
-HPLcom/android/server/content/ContentService$ObserverNode;->collectMyObserversLocked(Landroid/net/Uri;ZLandroid/database/IContentObserver;ZIILcom/android/server/content/ContentService$ObserverCollector;)V
-HPLcom/android/server/content/ContentService$ObserverNode;->collectObserversLocked(Landroid/net/Uri;IILandroid/database/IContentObserver;ZIILcom/android/server/content/ContentService$ObserverCollector;)V
-HPLcom/android/server/content/ContentService$ObserverNode;->countUriSegments(Landroid/net/Uri;)I
-HPLcom/android/server/content/ContentService$ObserverNode;->getUriSegment(Landroid/net/Uri;I)Ljava/lang/String;
-HPLcom/android/server/content/ContentService$ObserverNode;->removeObserverLocked(Landroid/database/IContentObserver;)Z
-PLcom/android/server/content/ContentService;->-$$Nest$sfgetsObserverDeathDispatcher()Lcom/android/internal/os/BinderDeathDispatcher;
+HPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZLjava/lang/Object;III)V+]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Landroid/net/Uri$PathSegments;
+HPLcom/android/server/content/ContentService$ObserverNode;->collectMyObserversLocked(Landroid/net/Uri;ZLandroid/database/IContentObserver;ZIILcom/android/server/content/ContentService$ObserverCollector;)V+]Landroid/database/IContentObserver;Landroid/database/ContentObserver$Transport;,Landroid/database/IContentObserver$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/content/ContentService$ObserverNode;->collectObserversLocked(Landroid/net/Uri;IILandroid/database/IContentObserver;ZIILcom/android/server/content/ContentService$ObserverCollector;)V+]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Landroid/net/Uri$PathSegments;
+PLcom/android/server/content/ContentService$ObserverNode;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;[ILandroid/util/SparseIntArray;)V
+HPLcom/android/server/content/ContentService$ObserverNode;->removeObserverLocked(Landroid/database/IContentObserver;)Z+]Landroid/database/IContentObserver;Landroid/database/ContentObserver$Transport;,Landroid/database/IContentObserver$Stub$Proxy;]Lcom/android/internal/os/BinderDeathDispatcher;Lcom/android/internal/os/BinderDeathDispatcher;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/content/ContentService;-><clinit>()V
 PLcom/android/server/content/ContentService;-><init>(Landroid/content/Context;Z)V
+PLcom/android/server/content/ContentService;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
+PLcom/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
+PLcom/android/server/content/ContentService;->cancelSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)V
+PLcom/android/server/content/ContentService;->clampPeriod(J)J
+PLcom/android/server/content/ContentService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/content/ContentService;->enforceCrossUserPermission(ILjava/lang/String;)V
-PLcom/android/server/content/ContentService;->getProcStateForStatsd(I)I
+PLcom/android/server/content/ContentService;->getCurrentSyncs()Ljava/util/List;
+PLcom/android/server/content/ContentService;->getCurrentSyncsAsUser(I)Ljava/util/List;
+PLcom/android/server/content/ContentService;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
+PLcom/android/server/content/ContentService;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I
+PLcom/android/server/content/ContentService;->getMasterSyncAutomatically()Z
+PLcom/android/server/content/ContentService;->getMasterSyncAutomaticallyAsUser(I)Z
+PLcom/android/server/content/ContentService;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Ljava/util/List;
 HPLcom/android/server/content/ContentService;->getProviderPackageName(Landroid/net/Uri;I)Ljava/lang/String;
-PLcom/android/server/content/ContentService;->getRestrictionLevelForStatsd(I)I
+HPLcom/android/server/content/ContentService;->getSyncAdapterPackageAsUser(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/content/ContentService;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+PLcom/android/server/content/ContentService;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
+PLcom/android/server/content/ContentService;->getSyncAdapterTypesAsUser(I)[Landroid/content/SyncAdapterType;
+PLcom/android/server/content/ContentService;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
+PLcom/android/server/content/ContentService;->getSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
 HPLcom/android/server/content/ContentService;->getSyncExemptionAndCleanUpExtrasForCaller(ILandroid/os/Bundle;)I
-HPLcom/android/server/content/ContentService;->getSyncExemptionForCaller(I)I
 HPLcom/android/server/content/ContentService;->getSyncManager()Lcom/android/server/content/SyncManager;
-HPLcom/android/server/content/ContentService;->handleIncomingUser(Landroid/net/Uri;IIIZI)I
+HPLcom/android/server/content/ContentService;->handleIncomingUser(Landroid/net/Uri;IIII)I
+PLcom/android/server/content/ContentService;->hasAccountAccess(Landroid/accounts/Account;I)Z
+PLcom/android/server/content/ContentService;->hasAuthorityAccess(IILjava/lang/String;)Z
 HPLcom/android/server/content/ContentService;->invalidateCacheLocked(ILjava/lang/String;Landroid/net/Uri;)V
-HPLcom/android/server/content/ContentService;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
-PLcom/android/server/content/ContentService;->onBootPhase(I)V
-PLcom/android/server/content/ContentService;->onStartUser(I)V
-PLcom/android/server/content/ContentService;->onUnlockUser(I)V
-HPLcom/android/server/content/ContentService;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
+PLcom/android/server/content/ContentService;->isSyncActive(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
+HPLcom/android/server/content/ContentService;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri;]Ljava/util/List;Landroid/net/Uri$PathSegments;
+HPLcom/android/server/content/ContentService;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri;
+PLcom/android/server/content/ContentService;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/content/ContentService;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
+PLcom/android/server/content/ContentService;->setIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;II)V
+PLcom/android/server/content/ContentService;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+PLcom/android/server/content/ContentService;->syncAsUser(Landroid/content/SyncRequest;ILjava/lang/String;)V
 HPLcom/android/server/content/ContentService;->unregisterContentObserver(Landroid/database/IContentObserver;)V
+PLcom/android/server/content/ContentService;->validateExtras(ILandroid/os/Bundle;)V
+PLcom/android/server/content/SyncAdapterStateFetcher;-><init>()V
+PLcom/android/server/content/SyncJobService;-><clinit>()V
+PLcom/android/server/content/SyncJobService;-><init>()V
+PLcom/android/server/content/SyncJobService;->callJobFinished(ILjava/lang/String;)V
+PLcom/android/server/content/SyncJobService;->jobParametersToString(Landroid/app/job/JobParameters;)Ljava/lang/String;
+PLcom/android/server/content/SyncJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/content/SyncJobService;->onStopJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;-><init>(Lcom/android/server/content/SyncLogger$RotatingFileLogger;Landroid/os/Looper;)V
-PLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;->log(J[Ljava/lang/Object;)V
+HPLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;->handleMessage(Landroid/os/Message;)V+]Ljava/io/Writer;Ljava/io/FileWriter;]Ljava/util/Date;Ljava/util/Date;
 PLcom/android/server/content/SyncLogger$RotatingFileLogger;-><clinit>()V
 PLcom/android/server/content/SyncLogger$RotatingFileLogger;-><init>()V
-PLcom/android/server/content/SyncLogger$RotatingFileLogger;->closeCurrentLogLocked()V
-PLcom/android/server/content/SyncLogger$RotatingFileLogger;->enabled()Z
+PLcom/android/server/content/SyncLogger$RotatingFileLogger;->dumpAll(Ljava/io/PrintWriter;)V
+PLcom/android/server/content/SyncLogger$RotatingFileLogger;->dumpFile(Ljava/io/PrintWriter;Ljava/io/File;)V
+PLcom/android/server/content/SyncLogger$RotatingFileLogger;->jobParametersToString(Landroid/app/job/JobParameters;)Ljava/lang/String;
 PLcom/android/server/content/SyncLogger$RotatingFileLogger;->log([Ljava/lang/Object;)V
-HPLcom/android/server/content/SyncLogger$RotatingFileLogger;->logInner(J[Ljava/lang/Object;)V
 HPLcom/android/server/content/SyncLogger$RotatingFileLogger;->openLogLocked(J)V
-PLcom/android/server/content/SyncLogger;-><init>()V
+PLcom/android/server/content/SyncLogger$RotatingFileLogger;->purgeOldLogs()V
 PLcom/android/server/content/SyncLogger;->getInstance()Lcom/android/server/content/SyncLogger;
-PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/content/SyncManager;I)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda11;-><init>(Landroid/content/Context;Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda11;->run()V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda2;->onAppPermissionChanged(Landroid/accounts/Account;I)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/content/SyncManager;II)V
 PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/content/SyncManager;I)V
-PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda7;->run()V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda8;-><init>(Ljava/lang/StringBuilder;Lcom/android/server/content/SyncManager$PrintTable;)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/content/SyncManager$10;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$1;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$2;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$3;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$4;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/content/SyncManager$5;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/content/SyncManager$11;-><init>(Lcom/android/server/content/SyncManager;Landroid/content/ContentResolver;)V
+PLcom/android/server/content/SyncManager$11;->onChange(Z)V
+PLcom/android/server/content/SyncManager$12;-><init>(I)V
+PLcom/android/server/content/SyncManager$12;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/content/SyncManager$2;-><init>(Lcom/android/server/content/SyncManager;I)V
+PLcom/android/server/content/SyncManager$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/content/SyncManager$6;-><init>(Lcom/android/server/content/SyncManager;)V
 PLcom/android/server/content/SyncManager$6;->run()V
 PLcom/android/server/content/SyncManager$7;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$8;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$9;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$PackageMonitorImpl;-><init>()V
-PLcom/android/server/content/SyncManager$PackageMonitorImpl;-><init>(Lcom/android/server/content/SyncManager$PackageMonitorImpl-IA;)V
-PLcom/android/server/content/SyncManager$PackageMonitorImpl;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZLandroid/os/Bundle;)Z
-PLcom/android/server/content/SyncManager$PackageMonitorImpl;->onPackageUnstopped(Ljava/lang/String;ILandroid/os/Bundle;)V
+PLcom/android/server/content/SyncManager$ActiveSyncContext;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;JI)V
+PLcom/android/server/content/SyncManager$ActiveSyncContext;->onFinished(Landroid/content/SyncResult;)V
+PLcom/android/server/content/SyncManager$ActiveSyncContext;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/content/SyncManager$ActiveSyncContext;->toString()Ljava/lang/String;
+PLcom/android/server/content/SyncManager$ActiveSyncContext;->toString(Ljava/lang/StringBuilder;Z)V
+PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck$1;-><init>(Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)V
+PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck$1;->onUnsyncableAccountDone(Z)V
+PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;-><init>(Landroid/content/pm/RegisteredServicesCache$ServiceInfo;Lcom/android/server/content/SyncManager$$ExternalSyntheticLambda5;)V
+PLcom/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$PrintTable;-><init>()V
+PLcom/android/server/content/SyncManager$PrintTable;->printRow(Ljava/io/PrintWriter;[Ljava/lang/String;[Ljava/lang/Object;)V
+PLcom/android/server/content/SyncManager$PrintTable;->set(II[Ljava/lang/Object;)V
+PLcom/android/server/content/SyncManager$ScheduleSyncMessagePayload;-><init>(Lcom/android/server/content/SyncOperation;J)V
+PLcom/android/server/content/SyncManager$ServiceConnectionData;-><init>(Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/os/IBinder;)V
+PLcom/android/server/content/SyncManager$SyncFinishedOrCancelledMessagePayload;-><init>(Landroid/content/SyncResult;Lcom/android/server/content/SyncManager$ActiveSyncContext;)V
 PLcom/android/server/content/SyncManager$SyncHandler;-><init>(Lcom/android/server/content/SyncManager;Landroid/os/Looper;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->cancelActiveSyncH(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->closeActiveSyncContext(Lcom/android/server/content/SyncManager$ActiveSyncContext;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->computeSyncOpState(Lcom/android/server/content/SyncOperation;)I
+PLcom/android/server/content/SyncManager$SyncHandler;->deferSyncH(Lcom/android/server/content/SyncOperation;JLjava/lang/String;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->findActiveSyncContextH(I)Lcom/android/server/content/SyncManager$ActiveSyncContext;
 PLcom/android/server/content/SyncManager$SyncHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/content/SyncManager$SyncHandler;->handleSyncMessage(Landroid/os/Message;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->handleSyncMessage(Landroid/os/Message;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->removePeriodicSyncH(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->runBoundToAdapterH(Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/os/IBinder;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->runSyncFinishedOrCanceledH(Landroid/content/SyncResult;Lcom/android/server/content/SyncManager$ActiveSyncContext;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->startSyncH(Lcom/android/server/content/SyncOperation;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->updateOrAddPeriodicSyncH(Lcom/android/server/content/SyncStorageEngine$EndPoint;JJLandroid/os/Bundle;)V
 PLcom/android/server/content/SyncManager$SyncHandler;->updateRunningAccountsH(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
 PLcom/android/server/content/SyncManager$SyncTimeTracker;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$SyncTimeTracker;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$SyncTimeTracker-IA;)V
 PLcom/android/server/content/SyncManager$SyncTimeTracker;->update()V
-PLcom/android/server/content/SyncManager;->$r8$lambda$W-Rf2gPTxsU_UZt2y9rLu7Qfz_o(Lcom/android/server/content/SyncManager;I)V
-PLcom/android/server/content/SyncManager;->$r8$lambda$stKFIA2giNVVLgh3fNVz1esLG_U(Lcom/android/server/content/SyncManager;I)V
-PLcom/android/server/content/SyncManager;->-$$Nest$fgetmAccountsLock(Lcom/android/server/content/SyncManager;)Ljava/lang/Object;
-PLcom/android/server/content/SyncManager;->-$$Nest$fgetmLogger(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncLogger;
-PLcom/android/server/content/SyncManager;->-$$Nest$fgetmRunningAccounts(Lcom/android/server/content/SyncManager;)[Landroid/accounts/AccountAndUser;
-PLcom/android/server/content/SyncManager;->-$$Nest$fgetmSyncManagerWakeLock(Lcom/android/server/content/SyncManager;)Landroid/os/PowerManager$WakeLock;
-PLcom/android/server/content/SyncManager;->-$$Nest$fgetmSyncStorageEngine(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncStorageEngine;
-PLcom/android/server/content/SyncManager;->-$$Nest$fputmDataConnectionIsConnected(Lcom/android/server/content/SyncManager;Z)V
-PLcom/android/server/content/SyncManager;->-$$Nest$fputmRunningAccounts(Lcom/android/server/content/SyncManager;[Landroid/accounts/AccountAndUser;)V
-PLcom/android/server/content/SyncManager;->-$$Nest$mgetAllPendingSyncs(Lcom/android/server/content/SyncManager;)Ljava/util/List;
-PLcom/android/server/content/SyncManager;->-$$Nest$monUserUnlocked(Lcom/android/server/content/SyncManager;I)V
-PLcom/android/server/content/SyncManager;->-$$Nest$mreadDataConnectionState(Lcom/android/server/content/SyncManager;)Z
+PLcom/android/server/content/SyncManager$UpdatePeriodicSyncMessagePayload;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;JJLandroid/os/Bundle;)V
+PLcom/android/server/content/SyncManager;->-$$Nest$mcontainsAccountAndUser(Lcom/android/server/content/SyncManager;[Landroid/accounts/AccountAndUser;Landroid/accounts/Account;I)Z
+PLcom/android/server/content/SyncManager;->-$$Nest$mincreaseBackoffSetting(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
+PLcom/android/server/content/SyncManager;->-$$Nest$misSyncStillActiveH(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;)Z
+PLcom/android/server/content/SyncManager;->-$$Nest$mpostMonitorSyncProgressMessage(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;)V
 PLcom/android/server/content/SyncManager;->-$$Nest$mremoveStaleAccounts(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager;->-$$Nest$msendSyncFinishedOrCanceledMessage(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/content/SyncResult;)V
 PLcom/android/server/content/SyncManager;-><clinit>()V
-HPLcom/android/server/content/SyncManager;-><init>(Landroid/content/Context;Z)V
-PLcom/android/server/content/SyncManager;->allowListExistingSyncAdaptersIfNeeded()V
-PLcom/android/server/content/SyncManager;->cleanupJobs()V
+PLcom/android/server/content/SyncManager;-><init>(Landroid/content/Context;Z)V
+PLcom/android/server/content/SyncManager;->canAccessAccount(Landroid/accounts/Account;Ljava/lang/String;I)Z
+PLcom/android/server/content/SyncManager;->cancelActiveSync(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)V
+PLcom/android/server/content/SyncManager;->cancelJob(Lcom/android/server/content/SyncOperation;Ljava/lang/String;)V
+HPLcom/android/server/content/SyncManager;->computeSyncable(Landroid/accounts/Account;ILjava/lang/String;ZZ)I
+PLcom/android/server/content/SyncManager;->dump(Ljava/io/PrintWriter;Z)V
+PLcom/android/server/content/SyncManager;->dumpDayStatistic(Ljava/io/PrintWriter;Lcom/android/server/content/SyncStorageEngine$DayStats;)V
+PLcom/android/server/content/SyncManager;->dumpSyncHistory(Ljava/io/PrintWriter;)V
+PLcom/android/server/content/SyncManager;->dumpTimeSec(Ljava/io/PrintWriter;J)V
+PLcom/android/server/content/SyncManager;->formatDurationHMS(Ljava/lang/StringBuilder;J)V
+PLcom/android/server/content/SyncManager;->formatTime(J)Ljava/lang/String;
 PLcom/android/server/content/SyncManager;->getAccountManagerInternal()Landroid/accounts/AccountManagerInternal;
+PLcom/android/server/content/SyncManager;->getAdapterBindIntent(Landroid/content/Context;Landroid/content/ComponentName;I)Landroid/content/Intent;
 PLcom/android/server/content/SyncManager;->getAllPendingSyncs()Ljava/util/List;
 PLcom/android/server/content/SyncManager;->getConnectivityManager()Landroid/net/ConnectivityManager;
+PLcom/android/server/content/SyncManager;->getInstance()Lcom/android/server/content/SyncManager;
 PLcom/android/server/content/SyncManager;->getJobStats()Ljava/lang/String;
-HPLcom/android/server/content/SyncManager;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;II)[Ljava/lang/String;
+PLcom/android/server/content/SyncManager;->getPeriodicSyncs(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Ljava/util/List;
+PLcom/android/server/content/SyncManager;->getSyncAdapterTypes(II)[Landroid/content/SyncAdapterType;
 PLcom/android/server/content/SyncManager;->isDeviceProvisioned()Z
-PLcom/android/server/content/SyncManager;->lambda$onStartUser$1(I)V
-PLcom/android/server/content/SyncManager;->lambda$onUnlockUser$2(I)V
-PLcom/android/server/content/SyncManager;->likelyHasPeriodicSyncs()Z
+PLcom/android/server/content/SyncManager;->isPackageStopped(ILjava/lang/String;)Z
 PLcom/android/server/content/SyncManager;->migrateSyncJobNamespaceIfNeeded()V
-PLcom/android/server/content/SyncManager;->onBootPhase(I)V
-PLcom/android/server/content/SyncManager;->onStartUser(I)V
-PLcom/android/server/content/SyncManager;->onUnlockUser(I)V
-PLcom/android/server/content/SyncManager;->onUserUnlocked(I)V
-PLcom/android/server/content/SyncManager;->readDataConnectionState()Z
-PLcom/android/server/content/SyncManager;->removeStaleAccounts()V
-HPLcom/android/server/content/SyncManager;->scheduleLocalSync(Landroid/accounts/Account;IILjava/lang/String;IIILjava/lang/String;)V
+PLcom/android/server/content/SyncManager;->postScheduleSyncMessage(Lcom/android/server/content/SyncOperation;J)V
+PLcom/android/server/content/SyncManager;->printTwoDigitNumber(Ljava/lang/StringBuilder;JCZ)Z
+PLcom/android/server/content/SyncManager;->readyToSync(I)Z
+PLcom/android/server/content/SyncManager;->rescheduleSyncs(Lcom/android/server/content/SyncStorageEngine$EndPoint;Ljava/lang/String;)V
 PLcom/android/server/content/SyncManager;->scheduleSync(Landroid/accounts/Account;IILjava/lang/String;Landroid/os/Bundle;IIIILjava/lang/String;)V
-HPLcom/android/server/content/SyncManager;->scheduleSync(Landroid/accounts/Account;IILjava/lang/String;Landroid/os/Bundle;IJZIIILjava/lang/String;)V
+HPLcom/android/server/content/SyncManager;->scheduleSync(Landroid/accounts/Account;IILjava/lang/String;Landroid/os/Bundle;IJZIIILjava/lang/String;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/SyncAdapterType;Landroid/content/SyncAdapterType;]Landroid/content/SyncAdaptersCache;Landroid/content/SyncAdaptersCache;]Lcom/android/server/content/SyncLogger;Lcom/android/server/content/SyncLogger$RotatingFileLogger;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;,Ljava/util/HashMap$KeyIterator;
+PLcom/android/server/content/SyncManager;->scheduleSyncOperationH(Lcom/android/server/content/SyncOperation;)V
+HPLcom/android/server/content/SyncManager;->scheduleSyncOperationH(Lcom/android/server/content/SyncOperation;J)V
+PLcom/android/server/content/SyncManager;->setAuthorityPendingState(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
+PLcom/android/server/content/SyncManager;->shouldDisableSyncForUser(Landroid/content/pm/UserInfo;Ljava/lang/String;)Z
+PLcom/android/server/content/SyncManager;->syncExtrasEquals(Landroid/os/Bundle;Landroid/os/Bundle;Z)Z
+PLcom/android/server/content/SyncManager;->updateOrAddPeriodicSync(Lcom/android/server/content/SyncStorageEngine$EndPoint;JJLandroid/os/Bundle;)V
 PLcom/android/server/content/SyncManager;->updateRunningAccounts(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
 PLcom/android/server/content/SyncManager;->verifyJobScheduler()V
 PLcom/android/server/content/SyncManagerConstants$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/content/SyncManagerConstants;)V
 PLcom/android/server/content/SyncManagerConstants$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/content/SyncManagerConstants;->$r8$lambda$C0hj3KUN5qSzbVr_vPnWooTwtTU(Lcom/android/server/content/SyncManagerConstants;)V
 PLcom/android/server/content/SyncManagerConstants;-><init>(Landroid/content/Context;)V
-PLcom/android/server/content/SyncManagerConstants;->lambda$start$0()V
 PLcom/android/server/content/SyncManagerConstants;->refresh()V
-PLcom/android/server/content/SyncManagerConstants;->start()V
+PLcom/android/server/content/SyncOperation;-><clinit>()V
+PLcom/android/server/content/SyncOperation;-><init>(Landroid/accounts/Account;IILjava/lang/String;IILjava/lang/String;Landroid/os/Bundle;ZI)V
+HPLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;ILjava/lang/String;IILandroid/os/Bundle;ZZIJJI)V
+HPLcom/android/server/content/SyncOperation;->dump(Landroid/content/pm/PackageManager;ZLcom/android/server/content/SyncAdapterStateFetcher;Z)Ljava/lang/String;
+HPLcom/android/server/content/SyncOperation;->extrasToStringBuilder(Landroid/os/Bundle;Ljava/lang/StringBuilder;)V+]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/MapCollections$KeySet;
+PLcom/android/server/content/SyncOperation;->getJobBias()I
+HPLcom/android/server/content/SyncOperation;->maybeCreateFromJobExtras(Landroid/os/PersistableBundle;)Lcom/android/server/content/SyncOperation;+]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/MapCollections$KeySet;
+PLcom/android/server/content/SyncOperation;->reasonToString(Landroid/content/pm/PackageManager;I)Ljava/lang/String;
+HPLcom/android/server/content/SyncOperation;->toJobInfoExtras()Landroid/os/PersistableBundle;
+PLcom/android/server/content/SyncOperation;->toString()Ljava/lang/String;
+PLcom/android/server/content/SyncOperation;->wakeLockName()Ljava/lang/String;
+PLcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;-><init>(Landroid/content/Context;)V
+PLcom/android/server/content/SyncStorageEngine$AccountInfo;-><init>(Landroid/accounts/AccountAndUser;)V
+PLcom/android/server/content/SyncStorageEngine$AuthorityInfo;-><init>(ILcom/android/server/content/SyncStorageEngine$EndPoint;)V
+PLcom/android/server/content/SyncStorageEngine$AuthorityInfo;-><init>(Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;)V
+PLcom/android/server/content/SyncStorageEngine$DayStats;-><init>(I)V
 PLcom/android/server/content/SyncStorageEngine$EndPoint;-><clinit>()V
 PLcom/android/server/content/SyncStorageEngine$EndPoint;-><init>(Landroid/accounts/Account;Ljava/lang/String;I)V
+PLcom/android/server/content/SyncStorageEngine$EndPoint;->matchesSpec(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Z
+PLcom/android/server/content/SyncStorageEngine$EndPoint;->toSafeString()Ljava/lang/String;
+PLcom/android/server/content/SyncStorageEngine$EndPoint;->toString()Ljava/lang/String;
 PLcom/android/server/content/SyncStorageEngine$MyHandler;-><init>(Lcom/android/server/content/SyncStorageEngine;Landroid/os/Looper;)V
+PLcom/android/server/content/SyncStorageEngine$MyHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/content/SyncStorageEngine;-><clinit>()V
-HPLcom/android/server/content/SyncStorageEngine;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Looper;)V
-PLcom/android/server/content/SyncStorageEngine;->getAuthorityCount()I
-PLcom/android/server/content/SyncStorageEngine;->getSingleton()Lcom/android/server/content/SyncStorageEngine;
-PLcom/android/server/content/SyncStorageEngine;->init(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/content/SyncStorageEngine;->isJobAttributionFixed()Z
-PLcom/android/server/content/SyncStorageEngine;->isJobNamespaceMigrated()Z
-PLcom/android/server/content/SyncStorageEngine;->maybeDeleteLegacyPendingInfoLocked(Ljava/io/File;)V
-PLcom/android/server/content/SyncStorageEngine;->readAccountInfoLocked()V
-PLcom/android/server/content/SyncStorageEngine;->readStatisticsLocked()V
+PLcom/android/server/content/SyncStorageEngine;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Looper;)V
+PLcom/android/server/content/SyncStorageEngine;->calculateDefaultFlexTime(J)J
+PLcom/android/server/content/SyncStorageEngine;->getAuthority(I)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+HPLcom/android/server/content/SyncStorageEngine;->getAuthorityLocked(Lcom/android/server/content/SyncStorageEngine$EndPoint;Ljava/lang/String;)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+PLcom/android/server/content/SyncStorageEngine;->getBackoff(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Landroid/util/Pair;
+PLcom/android/server/content/SyncStorageEngine;->getCurrentDayLocked()I
+PLcom/android/server/content/SyncStorageEngine;->getCurrentSyncsCopy(IZ)Ljava/util/List;
+PLcom/android/server/content/SyncStorageEngine;->getDelayUntilTime(Lcom/android/server/content/SyncStorageEngine$EndPoint;)J
+PLcom/android/server/content/SyncStorageEngine;->getMasterSyncAutomatically(I)Z
+PLcom/android/server/content/SyncStorageEngine;->getOrCreateAuthorityLocked(Lcom/android/server/content/SyncStorageEngine$EndPoint;IZ)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+PLcom/android/server/content/SyncStorageEngine;->getOrCreateSyncStatusLocked(I)Landroid/content/SyncStatusInfo;
+PLcom/android/server/content/SyncStorageEngine;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;I)Z
+PLcom/android/server/content/SyncStorageEngine;->isSyncActive(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Z
+PLcom/android/server/content/SyncStorageEngine;->markPending(Lcom/android/server/content/SyncStorageEngine$EndPoint;Z)V
+PLcom/android/server/content/SyncStorageEngine;->parseAuthority(Lcom/android/modules/utils/TypedXmlPullParser;ILcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+PLcom/android/server/content/SyncStorageEngine;->readDayStatsLocked(Ljava/io/InputStream;)V
 PLcom/android/server/content/SyncStorageEngine;->readStatusInfoLocked(Ljava/io/InputStream;)V
 PLcom/android/server/content/SyncStorageEngine;->readStatusLocked()V
+PLcom/android/server/content/SyncStorageEngine;->readSyncStatusStatsLocked(Landroid/util/proto/ProtoInputStream;Landroid/content/SyncStatusInfo$Stats;)V
 PLcom/android/server/content/SyncStorageEngine;->removeStaleAccounts([Landroid/accounts/Account;I)V
-PLcom/android/server/content/SyncStorageEngine;->setClockValid()V
-PLcom/android/server/content/SyncStorageEngine;->setOnAuthorityRemovedListener(Lcom/android/server/content/SyncStorageEngine$OnAuthorityRemovedListener;)V
-PLcom/android/server/content/SyncStorageEngine;->setOnSyncRequestListener(Lcom/android/server/content/SyncStorageEngine$OnSyncRequestListener;)V
-PLcom/android/server/content/SyncStorageEngine;->setPeriodicSyncAddedListener(Lcom/android/server/content/SyncStorageEngine$PeriodicSyncAddedListener;)V
-PLcom/android/server/content/SyncStorageEngine;->shouldGrantSyncAdaptersAccountAccess()Z
-PLcom/android/server/content/SyncStorageEngine;->upgradeStatisticsIfNeededLocked()V
-PLcom/android/server/content/SyncStorageEngine;->upgradeStatusIfNeededLocked()V
+HPLcom/android/server/content/SyncStorageEngine;->reportChange(IILjava/lang/String;)V
+PLcom/android/server/content/SyncStorageEngine;->reportChange(ILcom/android/server/content/SyncStorageEngine$EndPoint;)V
+PLcom/android/server/content/SyncStorageEngine;->resetTodayStats(Z)V
+PLcom/android/server/content/SyncStorageEngine;->setBackoff(Lcom/android/server/content/SyncStorageEngine$EndPoint;JJ)V
+PLcom/android/server/content/SyncStorageEngine;->setIsSyncable(Landroid/accounts/Account;ILjava/lang/String;III)V
+PLcom/android/server/content/SyncStorageEngine;->setSyncAutomatically(Landroid/accounts/Account;ILjava/lang/String;ZIII)V
+PLcom/android/server/content/SyncStorageEngine;->writeAccountInfoLocked()V
+PLcom/android/server/content/SyncStorageEngine;->writeDayStatsLocked(Ljava/io/OutputStream;)V
+PLcom/android/server/content/SyncStorageEngine;->writeStatisticsLocked()V
+HPLcom/android/server/content/SyncStorageEngine;->writeStatusInfoLocked(Ljava/io/OutputStream;)V
+PLcom/android/server/content/SyncStorageEngine;->writeStatusLocked()V
+PLcom/android/server/content/SyncStorageEngine;->writeStatusStatsLocked(Landroid/util/proto/ProtoOutputStream;Landroid/content/SyncStatusInfo$Stats;)V
 PLcom/android/server/coverage/CoverageService;-><clinit>()V
-HPLcom/android/server/cpu/CpuAvailabilityInfo;-><init>(IJIIJ)V
-PLcom/android/server/cpu/CpuInfoReader$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/cpu/CpuInfoReader$$ExternalSyntheticLambda1;->accept(Ljava/io/File;)Z
-PLcom/android/server/cpu/CpuInfoReader$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/cpu/CpuInfoReader$$ExternalSyntheticLambda2;->accept(Ljava/io/File;)Z
-HPLcom/android/server/cpu/CpuInfoReader$CpuInfo;-><init>(IIZJJJJLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;)V
-PLcom/android/server/cpu/CpuInfoReader$CpuInfo;-><init>(IIZJJJLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;)V
-HPLcom/android/server/cpu/CpuInfoReader$CpuInfo;->computeNormalizedAvailableCpuFreqKHz()J
-PLcom/android/server/cpu/CpuInfoReader$CpuInfo;->getNormalizedAvailableCpuFreqKHz()J
-HPLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;-><init>(JJJJJJJJJJ)V
-HPLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;->delta(Lcom/android/server/cpu/CpuInfoReader$CpuUsageStats;)Lcom/android/server/cpu/CpuInfoReader$CpuUsageStats;
+HPLcom/android/server/cpu/CpuAvailabilityInfo;-><init>(IIIJJ)V
+PLcom/android/server/cpu/CpuAvailabilityInfo;->toString()Ljava/lang/String;
+PLcom/android/server/cpu/CpuInfoReader$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/cpu/CpuInfoReader$$ExternalSyntheticLambda0;->accept(Ljava/io/File;)Z
+PLcom/android/server/cpu/CpuInfoReader$CpuInfo;-><init>(IIZJJJJLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;)V
+HPLcom/android/server/cpu/CpuInfoReader$CpuInfo;-><init>(IIZJJJLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;)V
+PLcom/android/server/cpu/CpuInfoReader$CpuInfo;->toString()Ljava/lang/String;
+PLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;-><init>(JJJJJJJJJJ)V
 PLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;->diff(JJ)J
-HPLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;->getTotalTimeMillis()J
+PLcom/android/server/cpu/CpuInfoReader$CpuUsageStats;->toString()Ljava/lang/String;
 PLcom/android/server/cpu/CpuInfoReader$DynamicPolicyInfo;-><init>(JJJLandroid/util/IntArray;)V
 PLcom/android/server/cpu/CpuInfoReader$StaticPolicyInfo;-><init>(Landroid/util/IntArray;)V
-PLcom/android/server/cpu/CpuInfoReader;->$r8$lambda$jQBUynzxWR2ZUcdjqmjLMG5hjjk(Ljava/io/File;)Z
+PLcom/android/server/cpu/CpuInfoReader$StaticPolicyInfo;->toString()Ljava/lang/String;
 PLcom/android/server/cpu/CpuInfoReader;-><clinit>()V
-PLcom/android/server/cpu/CpuInfoReader;-><init>()V
 PLcom/android/server/cpu/CpuInfoReader;-><init>(Ljava/io/File;Ljava/io/File;Ljava/io/File;J)V
 PLcom/android/server/cpu/CpuInfoReader;->calculateAvgCpuFreq(Landroid/util/LongSparseLongArray;)J
-PLcom/android/server/cpu/CpuInfoReader;->calculateDeltaTimeInState(Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;)Landroid/util/LongSparseLongArray;
 PLcom/android/server/cpu/CpuInfoReader;->clockTickStrToMillis(Ljava/lang/String;)J
-PLcom/android/server/cpu/CpuInfoReader;->init()Z
-PLcom/android/server/cpu/CpuInfoReader;->lambda$init$0(Ljava/io/File;)Z
 PLcom/android/server/cpu/CpuInfoReader;->populateCpuFreqPolicyDirsById([Ljava/io/File;)V
-HPLcom/android/server/cpu/CpuInfoReader;->readAvgTimeInStateCpuFrequency(ILjava/io/File;)J
-HPLcom/android/server/cpu/CpuInfoReader;->readCpuCores(Ljava/io/File;)Landroid/util/IntArray;
-HPLcom/android/server/cpu/CpuInfoReader;->readCpuFreqKHz(Ljava/io/File;)J
-HPLcom/android/server/cpu/CpuInfoReader;->readCpuInfos()Landroid/util/SparseArray;
-PLcom/android/server/cpu/CpuInfoReader;->readCpusetCategories()V
-HPLcom/android/server/cpu/CpuInfoReader;->readCumulativeCpuUsageStats()Landroid/util/SparseArray;
-HPLcom/android/server/cpu/CpuInfoReader;->readDynamicPolicyInfo()Landroid/util/SparseArray;
-HPLcom/android/server/cpu/CpuInfoReader;->readLatestCpuUsageStats()Landroid/util/SparseArray;
-PLcom/android/server/cpu/CpuInfoReader;->readStaticPolicyInfo()V
-HPLcom/android/server/cpu/CpuInfoReader;->readTimeInState(Ljava/io/File;)Landroid/util/LongSparseLongArray;
-PLcom/android/server/cpu/CpuMonitorInternal;-><init>()V
-PLcom/android/server/cpu/CpuMonitorService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/cpu/CpuMonitorService;)V
-PLcom/android/server/cpu/CpuMonitorService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/cpu/CpuMonitorService$1;-><init>(Lcom/android/server/cpu/CpuMonitorService;)V
+PLcom/android/server/cpu/CpuInfoReader;->readCpuCores(Ljava/io/File;)Landroid/util/IntArray;
+PLcom/android/server/cpu/CpuInfoReader;->readCpuFreqKHz(Ljava/io/File;)J
+HPLcom/android/server/cpu/CpuInfoReader;->readCpuInfos()Landroid/util/SparseArray;+]Landroid/util/IntArray;Landroid/util/IntArray;]Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/io/File;Ljava/io/File;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/cpu/CpuInfoReader;->readCpusetCategories()Z
+PLcom/android/server/cpu/CpuInfoReader;->toCpusetCategoriesStr(I)Ljava/lang/String;
+PLcom/android/server/cpu/CpuMonitorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/cpu/CpuMonitorService;I)V
+PLcom/android/server/cpu/CpuMonitorService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder$1;-><init>(Lcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder;)V
+PLcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder$1;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 PLcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder;-><init>(Lcom/android/server/cpu/CpuMonitorService;)V
-PLcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder;-><init>(Lcom/android/server/cpu/CpuMonitorService;Lcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder-IA;)V
+PLcom/android/server/cpu/CpuMonitorService$CpuMonitorBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/cpu/CpuMonitorService$CpusetInfo$Snapshot;-><init>(J)V
-HPLcom/android/server/cpu/CpuMonitorService$CpusetInfo$Snapshot;->appendCpuInfo(Lcom/android/server/cpu/CpuInfoReader$CpuInfo;)V
 PLcom/android/server/cpu/CpuMonitorService$CpusetInfo$Snapshot;->getAverageAvailableCpuFreqPercent()I
+PLcom/android/server/cpu/CpuMonitorService$CpusetInfo$Snapshot;->toString()Ljava/lang/String;
 PLcom/android/server/cpu/CpuMonitorService$CpusetInfo;-><init>(I)V
 HPLcom/android/server/cpu/CpuMonitorService$CpusetInfo;->appendCpuInfo(JLcom/android/server/cpu/CpuInfoReader$CpuInfo;)V
-HPLcom/android/server/cpu/CpuMonitorService$CpusetInfo;->getCumulativeAvgAvailabilityPercent(J)I
-PLcom/android/server/cpu/CpuMonitorService$CpusetInfo;->getLatestCpuAvailabilityInfo()Lcom/android/server/cpu/CpuAvailabilityInfo;
-PLcom/android/server/cpu/CpuMonitorService$CpusetInfo;->getPrevCpuAvailabilityPercent()I
 HPLcom/android/server/cpu/CpuMonitorService$CpusetInfo;->populateLatestCpuAvailabilityInfo(JJ)V
-PLcom/android/server/cpu/CpuMonitorService;->$r8$lambda$5b7hWobM0wDK4hsjD37skajm2e8(Lcom/android/server/cpu/CpuMonitorService;)V
-PLcom/android/server/cpu/CpuMonitorService;->-$$Nest$sfgetCACHE_DURATION_MILLISECONDS()J
-PLcom/android/server/cpu/CpuMonitorService;->-$$Nest$smcontainsCpuset(II)Z
+PLcom/android/server/cpu/CpuMonitorService$CpusetInfo;->toString()Ljava/lang/String;
+PLcom/android/server/cpu/CpuMonitorService;->-$$Nest$mdoDump(Lcom/android/server/cpu/CpuMonitorService;Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/cpu/CpuMonitorService;-><clinit>()V
 PLcom/android/server/cpu/CpuMonitorService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/cpu/CpuMonitorService;-><init>(Landroid/content/Context;Lcom/android/server/cpu/CpuInfoReader;Landroid/os/HandlerThread;ZJJJ)V
+PLcom/android/server/cpu/CpuMonitorService;-><init>(Landroid/content/Context;Lcom/android/server/cpu/CpuInfoReader;Landroid/os/HandlerThread;ZJJJJ)V
 PLcom/android/server/cpu/CpuMonitorService;->checkClientThresholdsAndNotifyLocked(Lcom/android/server/cpu/CpuMonitorService$CpusetInfo;)V
-PLcom/android/server/cpu/CpuMonitorService;->containsCpuset(II)Z
-PLcom/android/server/cpu/CpuMonitorService;->hasClientCallbacksLocked()Z
-HPLcom/android/server/cpu/CpuMonitorService;->monitorCpuStats()V
+PLcom/android/server/cpu/CpuMonitorService;->onBootPhase(I)V
 PLcom/android/server/cpu/CpuMonitorService;->onStart()V
+PLcom/android/server/crashrecovery/CrashRecoveryAdaptor;->initializeCrashrecoveryModuleService(Lcom/android/server/SystemServiceManager;)V
+PLcom/android/server/crashrecovery/CrashRecoveryHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/crashrecovery/CrashRecoveryHelper;)V
+HSPLcom/android/server/crashrecovery/CrashRecoveryHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/credentials/CredentialManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/credentials/CredentialManagerService;Ljava/util/List;I)V
+PLcom/android/server/credentials/CredentialManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/credentials/CredentialManagerService$CredentialManagerServiceStub;-><init>(Lcom/android/server/credentials/CredentialManagerService;)V
+PLcom/android/server/credentials/CredentialManagerService$SessionManager;-><init>(Lcom/android/server/credentials/CredentialManagerService;)V
+PLcom/android/server/credentials/CredentialManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/credentials/CredentialManagerService;->getOrConstructSystemServiceListLock(I)Ljava/util/List;
+PLcom/android/server/credentials/CredentialManagerService;->getPrimaryProvidersForUserId(Landroid/content/Context;I)Ljava/util/Set;
+PLcom/android/server/credentials/CredentialManagerService;->getServiceSettingsProperty()Ljava/lang/String;
+PLcom/android/server/credentials/CredentialManagerService;->newServiceListLocked(I[Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/credentials/CredentialManagerService;->onStart()V
+PLcom/android/server/credentials/CredentialManagerServiceImpl;-><init>(Lcom/android/server/credentials/CredentialManagerService;Ljava/lang/Object;ILjava/lang/String;)V
+PLcom/android/server/credentials/CredentialManagerServiceImpl;->handlePackageUpdateLocked(Ljava/lang/String;)V
+PLcom/android/server/credentials/CredentialManagerServiceImpl;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
 HSPLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/criticalevents/CriticalEventLog;)V
 PLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda0;->run()V
 HSPLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/criticalevents/CriticalEventLog;Lcom/android/server/criticalevents/CriticalEventLog$ILogLoader;)V
 HSPLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/criticalevents/CriticalEventLog$LogLoader;-><init>()V
-HSPLcom/android/server/criticalevents/CriticalEventLog$LogLoader;->load(Ljava/io/File;Lcom/android/server/criticalevents/CriticalEventLog$ThreadSafeRingBuffer;)V
-HSPLcom/android/server/criticalevents/CriticalEventLog$LogLoader;->loadLogFromFile(Ljava/io/File;)Lcom/android/server/criticalevents/nano/CriticalEventLogStorageProto;
-PLcom/android/server/criticalevents/CriticalEventLog$LogSanitizer;-><init>(ILjava/lang/String;I)V
-PLcom/android/server/criticalevents/CriticalEventLog$LogSanitizer;->process(Lcom/android/server/criticalevents/nano/CriticalEventProto;)Lcom/android/server/criticalevents/nano/CriticalEventProto;
 HSPLcom/android/server/criticalevents/CriticalEventLog$ThreadSafeRingBuffer;-><init>(Ljava/lang/Class;I)V
-HSPLcom/android/server/criticalevents/CriticalEventLog$ThreadSafeRingBuffer;->append(Ljava/lang/Object;)V
-PLcom/android/server/criticalevents/CriticalEventLog$ThreadSafeRingBuffer;->capacity()I
-PLcom/android/server/criticalevents/CriticalEventLog$ThreadSafeRingBuffer;->toArray()[Ljava/lang/Object;
-HSPLcom/android/server/criticalevents/CriticalEventLog;->$r8$lambda$lY5bRq3e1qTEzCvfI4SPBg_RsKI(Lcom/android/server/criticalevents/CriticalEventLog;Lcom/android/server/criticalevents/CriticalEventLog$ILogLoader;)V
-HSPLcom/android/server/criticalevents/CriticalEventLog;-><clinit>()V
-HSPLcom/android/server/criticalevents/CriticalEventLog;-><init>()V
 HSPLcom/android/server/criticalevents/CriticalEventLog;-><init>(Ljava/lang/String;IIJZLcom/android/server/criticalevents/CriticalEventLog$ILogLoader;)V
 PLcom/android/server/criticalevents/CriticalEventLog;->appendAndSave(Lcom/android/server/criticalevents/nano/CriticalEventProto;)V
 HSPLcom/android/server/criticalevents/CriticalEventLog;->getInstance()Lcom/android/server/criticalevents/CriticalEventLog;
-PLcom/android/server/criticalevents/CriticalEventLog;->getOutputLogProto(ILjava/lang/String;I)Lcom/android/server/criticalevents/nano/CriticalEventLogProto;
 PLcom/android/server/criticalevents/CriticalEventLog;->getWallTimeMillis()J
-HSPLcom/android/server/criticalevents/CriticalEventLog;->init()V
-HSPLcom/android/server/criticalevents/CriticalEventLog;->lambda$new$0(Lcom/android/server/criticalevents/CriticalEventLog$ILogLoader;)V
 PLcom/android/server/criticalevents/CriticalEventLog;->log(Lcom/android/server/criticalevents/nano/CriticalEventProto;)V
-PLcom/android/server/criticalevents/CriticalEventLog;->logAnr(Ljava/lang/String;ILjava/lang/String;II)V
-PLcom/android/server/criticalevents/CriticalEventLog;->logLinesForTraceFile(ILjava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/criticalevents/CriticalEventLog;->logSystemServerStarted()V
-PLcom/android/server/criticalevents/CriticalEventLog;->recentEventsWithMinTimestamp(J)[Lcom/android/server/criticalevents/nano/CriticalEventProto;
 PLcom/android/server/criticalevents/CriticalEventLog;->saveDelayMs()J
-PLcom/android/server/criticalevents/CriticalEventLog;->saveLogToFile()V
 PLcom/android/server/criticalevents/CriticalEventLog;->saveLogToFileNow()V
-HPLcom/android/server/devicepolicy/CallerIdentity;-><init>(ILjava/lang/String;Landroid/content/ComponentName;)V
-PLcom/android/server/devicepolicy/CallerIdentity;->getPackageName()Ljava/lang/String;
-PLcom/android/server/devicepolicy/CallerIdentity;->getUid()I
-PLcom/android/server/devicepolicy/CallerIdentity;->getUserId()I
+PLcom/android/server/deviceidle/FeatureFlagsImpl;->init()V
+PLcom/android/server/deviceidle/Flags;-><clinit>()V
+PLcom/android/server/deviceidle/Flags;->removeIdleLocation()Z
+PLcom/android/server/deviceidle/Flags;->useCpuTimeForTempAllowlist()Z
+HPLcom/android/server/devicepolicy/CallerIdentity;-><init>(Landroid/content/ComponentName;ILjava/lang/String;)V
+PLcom/android/server/devicepolicy/CertificateMonitor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/devicepolicy/CertificateMonitor;I)V
+PLcom/android/server/devicepolicy/CertificateMonitor$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/devicepolicy/CertificateMonitor$1;-><init>(Lcom/android/server/devicepolicy/CertificateMonitor;)V
 PLcom/android/server/devicepolicy/CertificateMonitor$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/devicepolicy/CertificateMonitor;->-$$Nest$mupdateInstalledCertificates(Lcom/android/server/devicepolicy/CertificateMonitor;Landroid/os/UserHandle;)V
 PLcom/android/server/devicepolicy/CertificateMonitor;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Landroid/os/Handler;)V
 PLcom/android/server/devicepolicy/CertificateMonitor;->getInstalledCaCertificates(Landroid/os/UserHandle;)Ljava/util/List;
 PLcom/android/server/devicepolicy/CertificateMonitor;->updateInstalledCertificates(Landroid/os/UserHandle;)V
 PLcom/android/server/devicepolicy/DeviceAdminServiceController;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyConstants;)V
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider$Injector;-><init>()V
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider$Injector;->environmentGetDataSystemDirectory()Ljava/io/File;
+PLcom/android/server/devicepolicy/DeviceAdminServiceController;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider$ResourcesReaderWriter;-><init>(Lcom/android/server/devicepolicy/DeviceManagementResourcesProvider;)V
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider$ResourcesReaderWriter;-><init>(Lcom/android/server/devicepolicy/DeviceManagementResourcesProvider;Lcom/android/server/devicepolicy/DeviceManagementResourcesProvider$ResourcesReaderWriter-IA;)V
 PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider$ResourcesReaderWriter;->readFromFileLocked()V
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->-$$Nest$mgetResourcesFile(Lcom/android/server/devicepolicy/DeviceManagementResourcesProvider;)Ljava/io/File;
 PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;-><init>()V
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;-><init>(Lcom/android/server/devicepolicy/DeviceManagementResourcesProvider$Injector;)V
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->getDrawableForSourceLocked(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->getResourcesFile()Ljava/io/File;
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->getString(Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->load()V
 PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;-><init>()V
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getScreenCaptureDisallowedUser()I
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->isScreenCaptureAllowed(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->isScreenCaptureAllowedInPolicyEngine(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setAdminCanGrantSensorsPermissions(Z)V
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setPasswordQuality(II)V
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setPermissionPolicy(II)V
+PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getPasswordQuality(I)I
+PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getPermissionPolicy(I)I
+HPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->isScreenCaptureAllowed(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setContentProtectionPolicy(ILjava/lang/Integer;)V
 PLcom/android/server/devicepolicy/DevicePolicyConstants;-><init>(Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyConstants;->loadFromString(Ljava/lang/String;)Lcom/android/server/devicepolicy/DevicePolicyConstants;
-HPLcom/android/server/devicepolicy/DevicePolicyData;-><init>(I)V
-HPLcom/android/server/devicepolicy/DevicePolicyData;->load(Lcom/android/server/devicepolicy/DevicePolicyData;Lcom/android/internal/util/JournaledFile;Ljava/util/function/Function;Landroid/content/ComponentName;)V
+PLcom/android/server/devicepolicy/DevicePolicyConstants;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/devicepolicy/DevicePolicyData;-><init>(I)V
+PLcom/android/server/devicepolicy/DevicePolicyData;->load(Lcom/android/server/devicepolicy/DevicePolicyData;Lcom/android/internal/util/JournaledFile;Ljava/util/function/Function;Landroid/content/ComponentName;)V
+PLcom/android/server/devicepolicy/DevicePolicyData;->store(Lcom/android/server/devicepolicy/DevicePolicyData;Lcom/android/internal/util/JournaledFile;)Z
 PLcom/android/server/devicepolicy/DevicePolicyData;->validatePasswordOwner()V
-PLcom/android/server/devicepolicy/DevicePolicyEngine$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/devicepolicy/DevicePolicyEngine;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyEngine$$ExternalSyntheticLambda6;->runOrThrow()V
+PLcom/android/server/devicepolicy/DevicePolicyEngine$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyEngine;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyEngine$$ExternalSyntheticLambda0;->runOrThrow()V
 PLcom/android/server/devicepolicy/DevicePolicyEngine$DevicePoliciesReaderWriter;-><init>(Lcom/android/server/devicepolicy/DevicePolicyEngine;)V
-PLcom/android/server/devicepolicy/DevicePolicyEngine$DevicePoliciesReaderWriter;-><init>(Lcom/android/server/devicepolicy/DevicePolicyEngine;Lcom/android/server/devicepolicy/DevicePolicyEngine$DevicePoliciesReaderWriter-IA;)V
 PLcom/android/server/devicepolicy/DevicePolicyEngine$DevicePoliciesReaderWriter;->readFromFileLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->$r8$lambda$HEsFA9ci1FtT28qaffzy5LIPWrk(Lcom/android/server/devicepolicy/DevicePolicyEngine;ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyEngine;-><clinit>()V
 PLcom/android/server/devicepolicy/DevicePolicyEngine;-><init>(Landroid/content/Context;Lcom/android/server/devicepolicy/DeviceAdminServiceController;Ljava/lang/Object;)V
 PLcom/android/server/devicepolicy/DevicePolicyEngine;->clear()V
+PLcom/android/server/devicepolicy/DevicePolicyEngine;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/devicepolicy/DevicePolicyEngine;->getEnforcingAdminsOnUser(I)Ljava/util/Set;
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->handlePackageChanged(Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->handleStartUser(I)V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->handleUnlockUser(I)V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->lambda$handlePackageChanged$6(ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->load()V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->reapplyAllPoliciesLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyEngine;->updateDeviceAdminsServicesForUser(IZLjava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda100;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda100;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda102;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ZILandroid/content/Context;J)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda102;->runOrThrow()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda113;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda132;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda132;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda142;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda142;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda161;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILandroid/app/role/RoleManager;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda161;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda163;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda163;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda177;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda177;->runOrThrow()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda17;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda188;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda188;->runOrThrow()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda192;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda192;->runOrThrow()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda195;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda195;->runOrThrow()V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda199;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/util/ArrayList;Ljava/util/function/Predicate;)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda199;->runOrThrow()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/DevicePolicyEngine;->getLocalPolicyKeysSetByAllAdmins(Lcom/android/server/devicepolicy/PolicyDefinition;I)Ljava/util/Set;
+PLcom/android/server/devicepolicy/DevicePolicyEngine;->getResolvedPolicy(Lcom/android/server/devicepolicy/PolicyDefinition;I)Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/DevicePolicyEngine;->getResolvedPolicyValue(Lcom/android/server/devicepolicy/PolicyDefinition;I)Landroid/app/admin/PolicyValue;
+PLcom/android/server/devicepolicy/DevicePolicyEngine;->hasGlobalPolicyLocked(Lcom/android/server/devicepolicy/PolicyDefinition;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyEngine;->hasLocalPolicyLocked(Lcom/android/server/devicepolicy/PolicyDefinition;I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/devicepolicy/DevicePolicyEngine;->reapplyAllPoliciesOnBootLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyEngine;->updateDeviceAdminsServicesForUser(IZ)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda106;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ZILandroid/content/Context;J)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda106;->runOrThrow()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda121;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda184;-><init>(Landroid/os/Handler;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda184;->execute(Ljava/lang/Runnable;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda26;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda27;->runOrThrow()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda38;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda42;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda42;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda46;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda46;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda55;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda55;->run()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda68;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda68;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda31;-><init>(IILjava/lang/Object;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda31;->runOrThrow()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda32;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda33;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda33;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/Object;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda37;->run()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda46;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/util/ArrayList;Ljava/util/function/Predicate;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda46;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;ILandroid/os/Bundle;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda46;->runOrThrow()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda51;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/Integer;I)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda51;->getOrThrow()Ljava/lang/Object;+]Landroid/os/UserManager;Landroid/os/UserManager;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda57;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda57;->run()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda58;-><init>(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda58;->test(Ljava/lang/Object;)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;II)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda6;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda72;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda72;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda80;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/CallerIdentity;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda80;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda86;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda89;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda89;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/CallerIdentity;I)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda7;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda88;-><init>(IILjava/lang/Object;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda9;-><init>(ILcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda9;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$1$1;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$1;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$1$1;->run()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$1;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$1;-><init>(ILjava/lang/Object;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$1;->sendDeviceOwnerUserCommand(Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$2;-><init>()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$1;->sendDeviceOwnerUserCommand(ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;-><clinit>()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;->doInBackground([Ljava/lang/Void;)Ljava/util/Map;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;->hasAccountFeatures(Landroid/accounts/AccountManager;Landroid/accounts/Account;[Ljava/lang/String;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;->onPostExecute(Ljava/lang/Object;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;->onPostExecute(Ljava/util/Map;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$CalculateHasIncompatibleAccountsTask;->userHasIncompatibleAccounts(I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyConstantsObserver;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/os/Handler;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyConstantsObserver;->register()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyManagementRoleObserver;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Context;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyManagementRoleObserver;->register()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyManagementRoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$DpmsUpgradeDataProvider;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$DpmsUpgradeDataProvider;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DpmsUpgradeDataProvider-IA;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$DpmsUpgradeDataProvider;->makePoliciesVersionJournaledFile(I)Lcom/android/internal/util/JournaledFile;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderClearCallingIdentity()J
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderGetCallingUid()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderRestoreCallingIdentity(J)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderWithCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderWithCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getAlarmManager()Landroid/app/AlarmManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getDeviceManagementResourcesProvider()Lcom/android/server/devicepolicy/DeviceManagementResourcesProvider;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPackageManager()Landroid/content/pm/IPackageManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPermissionManager()Landroid/permission/IPermissionManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getLockSettingsInternal()Lcom/android/internal/widget/LockSettingsInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getMyLooper()Landroid/os/Looper;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getNetworkPolicyManagerInternal()Lcom/android/server/net/NetworkPolicyManagerInternal;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getNotificationManager()Landroid/app/NotificationManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPackageManager()Landroid/content/pm/PackageManager;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPackageManagerLocal()Lcom/android/server/pm/PackageManagerLocal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPersistentDataBlockManagerInternal()Lcom/android/server/pdb/PersistentDataBlockManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getRoleManager()Landroid/app/role/RoleManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getTelephonyManager()Landroid/telephony/TelephonyManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getUsageStatsManagerInternal()Landroid/app/usage/UsageStatsManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getUserManager()Landroid/os/UserManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->hasFeature()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->keyChainBindAsUser(Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newTransferOwnershipMetadataManager()Lcom/android/server/devicepolicy/TransferOwnershipMetadataManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->postOnSystemServerInitThreadPool(Ljava/lang/Runnable;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->securityLogIsLoggingEnabled()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalGetInt(Ljava/lang/String;I)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalGetString(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsSecureGetIntForUser(Ljava/lang/String;II)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->systemPropertiesGet(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->systemPropertiesSet(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->userHandleGetCallingUserId()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onStart()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->canSilentlyInstallPackage(Ljava/lang/String;I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDeviceOwnerUserId()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDevicePolicyCache()Landroid/app/admin/DevicePolicyCache;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDeviceStateCache()Landroid/app/admin/DeviceStateCache;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getProfileOwnerOrDeviceOwnerSupervisionComponent(Landroid/os/UserHandle;)Landroid/content/ComponentName;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isActiveDeviceOwner(I)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isActiveProfileOwner(I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isDeviceOrProfileOwnerInCallingUser(Ljava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isDeviceOwnerInCallingUser(Ljava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isProfileOwnerInCallingUser(Ljava/lang/String;)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isUserAffiliatedWithDevice(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isUserOrganizationManaged(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->reportSeparateProfileChallengeChanged(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;-><init>(Landroid/content/Context;Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;->resetCrossProfileIntentFiltersIfNeeded(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;->resetUserVpnIfNeeded(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$SetupContentObserver;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/os/Handler;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$SetupContentObserver;->register()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$SetupContentObserver;->onChange(ZLandroid/net/Uri;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$UserLifecycleListener;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$UserLifecycleListener;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$UserLifecycleListener-IA;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$-_z8hGRIb6pQyXYE8_6ZYacGvbw(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$-q-2R58XHKASAfVcXG9652E3rcY(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ZILandroid/content/Context;J)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$4qgfaLwflxT886ZjrVckFVIasDk(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Ljava/lang/Integer;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$6U9Tynmb-Pyx3o9fk3BZ0wh6q3E(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Lcom/android/server/devicepolicy/DevicePolicyData;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$8VXyNGD0KwgqhXPdcXu1QbxETRQ(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/CallerIdentity;)Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$Brh1ZdbohpkBgCPUEetYswzjMkc(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Ljava/lang/Integer;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$CJDroM2Uh4rlsgC9LEZ9aehyHXM(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$CRXhnBHjweCG-8NoO_CQy53GYYk(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$CYNFk6GsglGWHquGPD3vL3X-AUg(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/util/ArrayList;Ljava/util/function/Predicate;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$DyPvkrBjVftwiLi5cgJUKifQ0U0(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$JMLEf7na_pJZ1NV2yiBbR9cYggU(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$OK7dCZ1VEShdEVYkeM54BypjnE8(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$U1W3GVfS6PTjHhnIoEaSz9WC9vo(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$Yyzr3b2Kx_xWuoVgRMQEA4r_WrQ(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$bycuYzhfY5R_qaetM6pnmUlgRYw(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$i6aIKV8B6wjNaZ4yPJzuaqQ_iKs(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$iNjWxaW0J6MCxP6Dq9qZBTkpUPU(Landroid/content/Context;)Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$l-CexO0TUb2n-ZZT32CKYYMXM8Q(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILandroid/app/role/RoleManager;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$nLvlTqg9n5B_Pl5TtcgHJOhZ3Bw(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$oJwZkF-N5rTQ3VjihBKUVksj8oQ(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$qyL5CPTjIZuQtn8bTDK3nNCBcR8(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Lcom/android/server/devicepolicy/ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$y2NbOOaPwzvcsyukbUhSG1v0a0I(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Landroid/content/pm/UserInfo;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$fgetmPolicyCache(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Lcom/android/server/devicepolicy/DevicePolicyCacheImpl;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$fputmHasIncompatibleAccounts(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/util/Map;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$mhandlePackagesChanged(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$mhandlePasswordExpirationNotification(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$misManagedProfile(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$misNetworkLoggingEnabledInternalLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$mmakeJournaledFile(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/lang/String;)Lcom/android/internal/util/JournaledFile;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$mhandlePackagesChanged(ILcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$mmaybeSendAdminEnabledBroadcastLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->-$$Nest$mupdatePersonalAppsSuspensionOnUserStart(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;-><clinit>()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/PolicyPathProvider;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;-><clinit>()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/PolicyPathProvider;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->applyManagedSubscriptionsPolicyIfRequired()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->applyProfileRestrictionsIfDeviceOwnerLocked()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->calculateHasIncompatibleAccounts()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canManageUsers(Lcom/android/server/devicepolicy/CallerIdentity;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canUsbDataSignalingBeDisabledInternal(Landroid/content/Context;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkCanExecuteOrThrowUnsafe(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->cleanUpOldUsers()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->doesCallerHoldRole(Lcom/android/server/devicepolicy/CallerIdentity;Ljava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforcePermission(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforcePermission(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforcePermissionAndGetEnforcingAdmin(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)Lcom/android/server/devicepolicy/EnforcingAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureDeviceOwnerUserStarted()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpApps(Landroid/util/IndentingPrintWriter;Ljava/lang/String;Ljava/util/List;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpApps(Landroid/util/IndentingPrintWriter;Ljava/lang/String;[Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpImmutableState(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpPerUserPolicyData(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpPersonalAppInfoForSystemUserNoLock(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpResources(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->factoryResetIfDelayedEarlier()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->fetchOemSystemHolders([I)Ljava/util/Set;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->fixupAutoTimeRestrictionDuringOrganizationOwnedDeviceMigration()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAcceptedCaCertificates(Landroid/os/UserHandle;)Ljava/util/Set;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccountTypesWithManagementDisabledAsUser(ILjava/lang/String;Z)[Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminPackagesLocked(I)Ljava/util/Set;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminUncheckedLocked(ILandroid/content/ComponentName;)Lcom/android/server/devicepolicy/ActiveAdmin;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdmins(I)Ljava/util/List;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForLockscreenPoliciesLocked(I)Ljava/util/List;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForUserAndItsManagedProfilesLocked(ILjava/util/function/Predicate;)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity()Lcom/android/server/devicepolicy/CallerIdentity;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForLockscreenPoliciesLocked(I)Ljava/util/List;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForUserAndItsManagedProfilesLocked(ILjava/util/function/Predicate;)Ljava/util/List;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAdminWithMinimumFailedPasswordsForWipeLocked(IZ)Lcom/android/server/devicepolicy/ActiveAdmin;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAggregatedPasswordComplexityLocked(IZ)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity(Landroid/content/ComponentName;)Lcom/android/server/devicepolicy/CallerIdentity;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity(Landroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/devicepolicy/CallerIdentity;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity(Ljava/lang/String;)Lcom/android/server/devicepolicy/CallerIdentity;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDefaultRoleHolderPackageName(I)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCredentialOwner(IZ)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOrProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerAdminLocked()Lcom/android/server/devicepolicy/ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponentOnUser(I)Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponentOnUser(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerName()Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrProfileOwnerOfOrganizationOwnedDeviceLocked()Lcom/android/server/devicepolicy/ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrProfileOwnerOfOrganizationOwnedDeviceOrSystemPermissionBasedAdminLocked()Lcom/android/server/devicepolicy/ActiveAdmin;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerUserId()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerUserIdUncheckedLocked()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDpcType(Lcom/android/server/devicepolicy/CallerIdentity;)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getEncryptionStatus()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getFactoryResetProtectionPolicy(Landroid/content/ComponentName;)Landroid/app/admin/FactoryResetProtectionPolicy;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getFrpManagementAgentUid()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getFrpManagementAgentUidOrThrow()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeepUninstalledPackagesLocked()Ljava/util/List;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLockObject()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLockObject()Ljava/lang/Object;+]Lcom/android/internal/util/StatLogger;Lcom/android/internal/util/StatLogger;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLogoutUserIdUnchecked()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMainUserId()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getManagedUserId()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getManagedUserId(I)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumTimeToLockPolicyFromAdmins(Ljava/util/List;)J
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMeteredDisabledPackages(I)Ljava/util/Set;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMinimumRequiredWifiSecurityLevel()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getNetworkLoggingAffectedUser()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getNetworkLoggingControllingAdminLocked()Lcom/android/server/devicepolicy/ActiveAdmin;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOrganizationOwnedProfileUserId()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOwnerComponent(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordExpirationLocked(Landroid/content/ComponentName;IZ)J
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumMetricsUnchecked(IZ)Landroid/app/admin/PasswordMetrics;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPolicyFileDirectory(I)Ljava/io/File;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermissionPolicy(Landroid/content/ComponentName;)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermittedAccessibilityServicesForUser(I)Ljava/util/List;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPolicyManagedProfiles(Landroid/os/UserHandle;)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerName(I)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerNameUnchecked(I)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOfOrganizationOwnedDeviceLocked()Lcom/android/server/devicepolicy/ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOrDeviceOwnerLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOrDeviceOwnerSupervisionComponent(Landroid/os/UserHandle;)Landroid/content/ComponentName;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentId(I)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentId(I)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentUserIfRequested(IZ)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getRoleHolderPackageNameOnUser(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;IZ)J
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getString(Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUnsafeOperationReason(I)I
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserData(I)Lcom/android/server/devicepolicy/DevicePolicyData;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserDataUnchecked(I)Lcom/android/server/devicepolicy/DevicePolicyData;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserData(I)Lcom/android/server/devicepolicy/DevicePolicyData;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserDataUnchecked(I)Lcom/android/server/devicepolicy/DevicePolicyData;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserProvisioningState(I)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleOnUserUnlocked(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handlePackagesChanged(Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handlePasswordExpirationNotification(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getWifiSsidPolicy(Ljava/lang/String;)Landroid/app/admin/WifiSsidPolicy;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleStartUser(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleUnlockUser(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCallingOrSelfPermission(Ljava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCrossUsersPermission(Lcom/android/server/devicepolicy/CallerIdentity;I)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCrossUsersPermission(Lcom/android/server/devicepolicy/CallerIdentity;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasDeviceOwner()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasFullCrossUsersPermission(Lcom/android/server/devicepolicy/CallerIdentity;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasIncompatibleAccountsOnAnyUser()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasPermission(Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->invalidateBinderCaches()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerDevicePolicyManagementRoleHolder(Lcom/android/server/devicepolicy/CallerIdentity;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallingFromPackage(Ljava/lang/String;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasPermission(Ljava/lang/String;Ljava/lang/String;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isAdminActive(Landroid/content/ComponentName;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallingFromPackage(ILjava/lang/String;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCommonCriteriaModeEnabled(Landroid/content/ComponentName;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDefaultDeviceOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwnerLocked(Lcom/android/server/devicepolicy/CallerIdentity;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwnerUserId(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isFinancedDeviceOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isManagedProfile(I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNetworkLoggingEnabledInternalLocked()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isOrganizationOwnedDeviceWithManagedProfile()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPermissionCheckFlagEnabled()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(I)Z
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSeparateProfileChallengeEnabled(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Lcom/android/server/devicepolicy/CallerIdentity;)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSeparateProfileChallengeEnabled(I)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSupervisionComponentLocked(Landroid/content/ComponentName;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUnicornFlagEnabled()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUsbDataSignalingEnabledInternalLocked()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSystemUid(Lcom/android/server/devicepolicy/CallerIdentity;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUserAffiliatedWithDeviceLocked(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$canUsbDataSignalingBeDisabledInternal$179(Landroid/content/Context;)Ljava/lang/Boolean;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForUserAndItsManagedProfilesLocked$22(ILjava/util/ArrayList;Ljava/util/function/Predicate;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getDrawable$185(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getNetworkLoggingAffectedUser$146()Ljava/lang/Integer;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPolicyManagedProfiles$196(I)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$83()Lcom/android/server/devicepolicy/ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$86(I)Ljava/lang/Integer;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getRoleHolderPackageNameOnUser$173(ILandroid/app/role/RoleManager;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getString$189(Ljava/lang/String;)Landroid/app/admin/ParcelableResource;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserDataUnchecked$5(I)Lcom/android/server/devicepolicy/DevicePolicyData;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$38(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isProfileOwner$73(Lcom/android/server/devicepolicy/CallerIdentity;)Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isSeparateProfileChallengeEnabled$24(I)Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$loadAdminDataAsync$14()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$migrateAccountManagementDisabledPolicyLocked$203()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$migratePermittedInputMethodsPolicyLocked$202()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$migratePoliciesToDevicePolicyEngine$200()Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$migrateScreenCapturePolicyLocked$201()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$migrateUserControlDisabledPackagesLocked$204()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setExpirationAlarmCheckLocked$6(ZILandroid/content/Context;J)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$shouldMigrateToDevicePolicyEngine$199()Ljava/lang/Boolean;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$40(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadAdminDataAsync()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadConstants()Lcom/android/server/devicepolicy/DevicePolicyConstants;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadOwners()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadSettingsLocked(Lcom/android/server/devicepolicy/DevicePolicyData;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->makeJournaledFile(ILjava/lang/String;)Lcom/android/internal/util/JournaledFile;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->makeOwners(Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/PolicyPathProvider;)Lcom/android/server/devicepolicy/Owners;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeLogStart()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSendAdminEnabledBroadcastLocked(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeMigrateMemoryTaggingLocked()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeMigratePoliciesPostUpgradeToDevicePolicyEngineLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeMigrateResetPasswordTokenLocked()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeMigrateSetKeyguardDisabledFeatures()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeMigrateSuspendedPackagesLocked()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultProfileOwnerUserRestrictions()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeStartSecurityLogMonitorOnActivityManagerReady()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateAccountManagementDisabledPolicyLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migratePermittedInputMethodsPolicyLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migratePoliciesToDevicePolicyEngine()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateScreenCapturePolicyLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migratePoliciesToPolicyEngineLocked()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateToProfileOnOrganizationOwnedDeviceIfCompLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateUserControlDisabledPackagesLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->onInstalledCertificatesChanged(Landroid/os/UserHandle;Ljava/util/Collection;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->nonTestNonPrecreatedUsersExist()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->onLockSettingsReady()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->performPolicyVersionUpgrade()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushActiveAdminPackages()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushAllMeteredRestrictedPackages()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->removeCaApprovalsIfNeeded(I)Ljava/util/Set;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportFailedPasswordAttempt(IZ)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportPasswordChanged(Landroid/app/admin/PasswordMetrics;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportSuccessfulPasswordAttempt(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->revertTransferOwnershipIfNecessaryLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnershipSystemPropertyLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveSettingsLocked(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandForLockscreenPoliciesLocked(IILjava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandLocked(IILandroid/os/Bundle;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setExpirationAlarmCheckLocked(Landroid/content/Context;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setUserControlDisabledPackages(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->shouldMigrateToDevicePolicyEngine()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->showNewUserDisclaimerIfNecessary(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->startOwnerService(ILjava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->shouldAllowBypassingDevicePolicyManagementRoleQualification()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->startOwnerService(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->suspendPersonalAppsInternal(IIZ)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->systemReady(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->unsuspendWorkAppsIfNecessary()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateAdminCanGrantSensorsPermissionCache(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateMaximumTimeToLockLocked(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateNetworkPreferenceForUser(ILjava/util/List;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePasswordExpirationsLocked(I)Ljava/util/Set;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePasswordQualityCacheForUserGroup(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePermissionPolicyCache(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePersonalAppsSuspensionOnUserStart(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePasswordValidityCheckpointLocked(IZ)Ljava/util/Set;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateSystemUpdateFreezePeriodsRecord(Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateUsbDataSignal(Landroid/content/Context;Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateUserSetupCompleteAndPaired()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->wtfIfInLock()V
+PLcom/android/server/devicepolicy/DeviceStateCacheImpl$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ZLandroid/util/IndentingPrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLcom/android/server/devicepolicy/DeviceStateCacheImpl;-><init>()V
-PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->setDeviceOwnerType(I)V
-PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->setDeviceProvisioned(Z)V
+PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->isDeviceProvisioned()Z
+PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->isUserOrganizationManaged(I)Z
 PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->setHasProfileOwner(IZ)V
-PLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>()V
-PLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>(Lcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector-IA;)V
+PLcom/android/server/devicepolicy/EnforcingAdmin;->getRoleAuthorityOf(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/devicepolicy/MostRestrictive;-><init>(Ljava/util/List;)V
+PLcom/android/server/devicepolicy/OverlayPackagesProvider$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/devicepolicy/OverlayPackagesProvider$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;
 PLcom/android/server/devicepolicy/OverlayPackagesProvider;-><clinit>()V
-PLcom/android/server/devicepolicy/OverlayPackagesProvider;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicepolicy/OverlayPackagesProvider;-><init>(Landroid/content/Context;Lcom/android/server/devicepolicy/OverlayPackagesProvider$Injector;)V
-PLcom/android/server/devicepolicy/Owners$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;-><init>(Landroid/content/Context;Lcom/android/server/devicepolicy/OverlayPackagesProvider$Injector;Lcom/android/server/devicepolicy/RecursiveStringArrayResourceResolver;)V
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->resolveStringArray(I)Ljava/util/Set;
 PLcom/android/server/devicepolicy/Owners$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
-PLcom/android/server/devicepolicy/Owners;->$r8$lambda$6w4HWUbvXPWGKa7vKtQD2v4JRdk(Landroid/content/pm/UserInfo;)I
 PLcom/android/server/devicepolicy/Owners;-><init>(Landroid/os/UserManager;Lcom/android/server/pm/UserManagerInternal;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;Landroid/app/ActivityManagerInternal;Lcom/android/server/devicepolicy/DeviceStateCacheImpl;Lcom/android/server/devicepolicy/PolicyPathProvider;)V
 PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerComponent()Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUidLocked()I
-HPLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUserId()I
+PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUserId()I
 HPLcom/android/server/devicepolicy/Owners;->getProfileOwnerComponent(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/Owners;->getProfileOwnerKeys()Ljava/util/Set;
-PLcom/android/server/devicepolicy/Owners;->getProfileOwnerUidsLocked()Ljava/util/Set;
 PLcom/android/server/devicepolicy/Owners;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
 HPLcom/android/server/devicepolicy/Owners;->hasDeviceOwner()Z
 PLcom/android/server/devicepolicy/Owners;->hasProfileOwner(I)Z
-PLcom/android/server/devicepolicy/Owners;->isMigratedToPolicyEngine()Z
 PLcom/android/server/devicepolicy/Owners;->isProfileOwnerOfOrganizationOwnedDevice(I)Z
-PLcom/android/server/devicepolicy/Owners;->lambda$load$0(Landroid/content/pm/UserInfo;)I
 PLcom/android/server/devicepolicy/Owners;->load()V
-PLcom/android/server/devicepolicy/Owners;->markMigrationToPolicyEngine()V
 PLcom/android/server/devicepolicy/Owners;->notifyChangeLocked()V
 PLcom/android/server/devicepolicy/Owners;->pushDeviceOwnerUidToActivityTaskManagerLocked()V
 PLcom/android/server/devicepolicy/Owners;->pushProfileOwnerUidsToActivityTaskManagerLocked()V
 PLcom/android/server/devicepolicy/Owners;->pushToActivityManagerLocked()V
 PLcom/android/server/devicepolicy/Owners;->pushToAppOpsLocked()V
-PLcom/android/server/devicepolicy/Owners;->pushToDevicePolicyManager()V
-PLcom/android/server/devicepolicy/Owners;->pushToPackageManagerLocked()V
 PLcom/android/server/devicepolicy/Owners;->systemReady()V
 PLcom/android/server/devicepolicy/OwnersData$DeviceOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/OwnersData;)V
-PLcom/android/server/devicepolicy/OwnersData$DeviceOwnerReadWriter;->shouldWrite()Z
+PLcom/android/server/devicepolicy/OwnersData$DeviceOwnerReadWriter;->readInner(ILcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Z
 PLcom/android/server/devicepolicy/OwnersData$FileReadWriter;-><init>(Ljava/io/File;)V
 PLcom/android/server/devicepolicy/OwnersData$FileReadWriter;->readFromFileLocked()V
-PLcom/android/server/devicepolicy/OwnersData$FileReadWriter;->writeToFileLocked()Z
 PLcom/android/server/devicepolicy/OwnersData$ProfileOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/OwnersData;I)V
 PLcom/android/server/devicepolicy/OwnersData;-><init>(Lcom/android/server/devicepolicy/PolicyPathProvider;)V
+PLcom/android/server/devicepolicy/OwnersData;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/devicepolicy/OwnersData;->getDeviceOwnerFile()Ljava/io/File;
 PLcom/android/server/devicepolicy/OwnersData;->getProfileOwnerFile(I)Ljava/io/File;
 PLcom/android/server/devicepolicy/OwnersData;->load([I)V
-PLcom/android/server/devicepolicy/OwnersData;->writeDeviceOwner()Z
-PLcom/android/server/devicepolicy/PolicyPathProvider;->getDataSystemDirectory()Ljava/io/File;
-PLcom/android/server/devicepolicy/PolicyPathProvider;->getUserSystemDirectory(I)Ljava/io/File;
+PLcom/android/server/devicepolicy/PersonalAppsSuspensionHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/devicepolicy/PersonalAppsSuspensionHelper;->getAccessibilityServices()Ljava/util/List;
+PLcom/android/server/devicepolicy/PersonalAppsSuspensionHelper;->getInputMethodPackages()Ljava/util/List;
+PLcom/android/server/devicepolicy/PersonalAppsSuspensionHelper;->getPersonalAppsForSuspension()[Ljava/lang/String;
+PLcom/android/server/devicepolicy/PersonalAppsSuspensionHelper;->getSystemLauncherPackages()Ljava/util/List;
+PLcom/android/server/devicepolicy/PolicyDefinition$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/devicepolicy/PolicyDefinition;-><clinit>()V
+PLcom/android/server/devicepolicy/PolicyDefinition;-><init>(Landroid/app/admin/PolicyKey;Lcom/android/server/devicepolicy/ResolutionMechanism;ILcom/android/internal/util/function/QuadFunction;Lcom/android/server/devicepolicy/PolicySerializer;)V
+PLcom/android/server/devicepolicy/PolicyDefinition;->isGlobalOnlyPolicy()Z
+PLcom/android/server/devicepolicy/PolicyDefinition;->isNonCoexistablePolicy()Z
 PLcom/android/server/devicepolicy/PolicyVersionUpgrader;-><init>(Lcom/android/server/devicepolicy/PolicyUpgraderDataProvider;Lcom/android/server/devicepolicy/PolicyPathProvider;)V
-PLcom/android/server/devicepolicy/PolicyVersionUpgrader;->getVersionFile()Lcom/android/internal/util/JournaledFile;
-PLcom/android/server/devicepolicy/PolicyVersionUpgrader;->readVersion()I
-PLcom/android/server/devicepolicy/PolicyVersionUpgrader;->upgradePolicy(I)V
+PLcom/android/server/devicepolicy/RecursiveStringArrayResourceResolver;-><init>(Landroid/content/res/Resources;)V
+PLcom/android/server/devicepolicy/RecursiveStringArrayResourceResolver;->resolve(ILjava/lang/String;Ljava/util/Collection;)Ljava/util/Set;
 PLcom/android/server/devicepolicy/RemoteBugreportManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/devicepolicy/RemoteBugreportManager;)V
-PLcom/android/server/devicepolicy/RemoteBugreportManager$1;-><init>(Lcom/android/server/devicepolicy/RemoteBugreportManager;)V
-PLcom/android/server/devicepolicy/RemoteBugreportManager$2;-><init>(Lcom/android/server/devicepolicy/RemoteBugreportManager;)V
+PLcom/android/server/devicepolicy/RemoteBugreportManager$1;-><init>(Lcom/android/server/devicepolicy/RemoteBugreportManager;I)V
 PLcom/android/server/devicepolicy/RemoteBugreportManager;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;)V
 PLcom/android/server/devicepolicy/SecurityLogMonitor;-><clinit>()V
-PLcom/android/server/devicepolicy/SecurityLogMonitor;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/SecurityLogMonitor;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;J)V
+PLcom/android/server/devicepolicy/SecurityLogMonitor;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/os/Handler;)V
+PLcom/android/server/devicepolicy/TopPriority;-><init>(Ljava/util/List;)V
 PLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;-><init>()V
-PLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;->getOwnerTransferMetadataDir()Ljava/io/File;
-PLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><clinit>()V
-PLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><init>()V
 PLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><init>(Lcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;)V
-PLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;->metadataFileExists()Z
-PLcom/android/server/devicestate/DeviceState;-><init>(ILjava/lang/String;I)V
-PLcom/android/server/devicestate/DeviceState;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/devicestate/DeviceState;->getIdentifier()I
-PLcom/android/server/devicestate/DeviceState;->getName()Ljava/lang/String;
-PLcom/android/server/devicestate/DeviceState;->hasFlag(I)Z
-PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda0;->setDebugTracingDeviceStateProperty(Ljava/lang/String;)V
 PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;I)V
 PLcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda6;->run()V
 PLcom/android/server/devicestate/DeviceStateManagerService$1;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
 PLcom/android/server/devicestate/DeviceStateManagerService$1;->onForegroundActivitiesChanged(IIZ)V
 PLcom/android/server/devicestate/DeviceStateManagerService$1;->onForegroundServicesChanged(III)V
 PLcom/android/server/devicestate/DeviceStateManagerService$1;->onProcessDied(II)V
 PLcom/android/server/devicestate/DeviceStateManagerService$BinderService;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$BinderService;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;Lcom/android/server/devicestate/DeviceStateManagerService$BinderService-IA;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$BinderService;->registerCallback(Landroid/hardware/devicestate/IDeviceStateManagerCallback;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$BinderService;->registerCallback(Landroid/hardware/devicestate/IDeviceStateManagerCallback;)Landroid/hardware/devicestate/DeviceStateInfo;
 PLcom/android/server/devicestate/DeviceStateManagerService$DeviceStateProviderListener;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$DeviceStateProviderListener;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;Lcom/android/server/devicestate/DeviceStateManagerService$DeviceStateProviderListener-IA;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$DeviceStateProviderListener;->onStateChanged(I)V
-PLcom/android/server/devicestate/DeviceStateManagerService$DeviceStateProviderListener;->onSupportedDeviceStatesChanged([Lcom/android/server/devicestate/DeviceState;I)V
+PLcom/android/server/devicestate/DeviceStateManagerService$HalService;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$HalService;->getMaxTransactionId()I
+PLcom/android/server/devicestate/DeviceStateManagerService$HalService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/devicestate/DeviceStateManagerService$LocalService;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$LocalService;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;Lcom/android/server/devicestate/DeviceStateManagerService$LocalService-IA;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$LocalService;->getSupportedStateIdentifiers()[I
 PLcom/android/server/devicestate/DeviceStateManagerService$OverrideRequestScreenObserver;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$OverrideRequestScreenObserver;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService;Lcom/android/server/devicestate/DeviceStateManagerService$OverrideRequestScreenObserver-IA;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$OverrideRequestScreenObserver;->onAwakeStateChanged(Z)V
 PLcom/android/server/devicestate/DeviceStateManagerService$OverrideRequestScreenObserver;->onKeyguardStateChanged(Z)V
-PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;Landroid/hardware/devicestate/DeviceStateInfo;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;->$r8$lambda$nIhPLI20eH9RacaP39kxGqE_dy4(Lcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;Landroid/hardware/devicestate/DeviceStateInfo;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;-><init>(Landroid/hardware/devicestate/IDeviceStateManagerCallback;ILcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord$DeathListener;Landroid/os/Handler;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;->lambda$notifyDeviceStateInfoAsync$0(Landroid/hardware/devicestate/DeviceStateInfo;)V
-PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;->notifyDeviceStateInfoAsync(Landroid/hardware/devicestate/DeviceStateInfo;)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->$r8$lambda$6S_FM3Urv4lHJLVX2jHkYwHw8e8(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->$r8$lambda$77DysMvX-MjvuW05plFI2snaWgo(Ljava/lang/String;)V
+PLcom/android/server/devicestate/DeviceStateManagerService$ProcessRecord;-><init>(Landroid/hardware/devicestate/IDeviceStateManagerCallback;ILcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda1;Landroid/os/Handler;)V
 PLcom/android/server/devicestate/DeviceStateManagerService;->$r8$lambda$Pt9nYBQnPB5YrI3sLG37X4OCyMY(Lcom/android/server/devicestate/DeviceStateManagerService;)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$fgetmLock(Lcom/android/server/devicestate/DeviceStateManagerService;)Ljava/lang/Object;
-PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$mregisterProcess(Lcom/android/server/devicestate/DeviceStateManagerService;ILandroid/hardware/devicestate/IDeviceStateManagerCallback;)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$msetBaseState(Lcom/android/server/devicestate/DeviceStateManagerService;I)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$mshouldCancelOverrideRequestWhenRequesterNotOnTop(Lcom/android/server/devicestate/DeviceStateManagerService;)Z
-PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$mupdateSupportedStates(Lcom/android/server/devicestate/DeviceStateManagerService;[Lcom/android/server/devicestate/DeviceState;I)V
+PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$mdumpInternal(Lcom/android/server/devicestate/DeviceStateManagerService;Ljava/io/PrintWriter;)V
+PLcom/android/server/devicestate/DeviceStateManagerService;->-$$Nest$mregisterProcess(Lcom/android/server/devicestate/DeviceStateManagerService;ILandroid/hardware/devicestate/IDeviceStateManagerCallback;)Landroid/hardware/devicestate/DeviceStateInfo;
+PLcom/android/server/devicestate/DeviceStateManagerService;-><clinit>()V
 PLcom/android/server/devicestate/DeviceStateManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicestate/DeviceStateManagerService;-><init>(Landroid/content/Context;Lcom/android/server/devicestate/DeviceStatePolicy;)V
 PLcom/android/server/devicestate/DeviceStateManagerService;-><init>(Landroid/content/Context;Lcom/android/server/devicestate/DeviceStatePolicy;Lcom/android/server/devicestate/DeviceStateManagerService$SystemPropertySetter;)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->commitPendingState()V
 PLcom/android/server/devicestate/DeviceStateManagerService;->getDeviceStateInfoLocked()Landroid/hardware/devicestate/DeviceStateInfo;
+PLcom/android/server/devicestate/DeviceStateManagerService;->getOverrideState()Ljava/util/Optional;
 PLcom/android/server/devicestate/DeviceStateManagerService;->getStateLocked(I)Ljava/util/Optional;
 PLcom/android/server/devicestate/DeviceStateManagerService;->getSupportedStateIdentifiersLocked()[I
-PLcom/android/server/devicestate/DeviceStateManagerService;->isSupportedStateLocked(I)Z
-PLcom/android/server/devicestate/DeviceStateManagerService;->lambda$new$0(Ljava/lang/String;)V
+PLcom/android/server/devicestate/DeviceStateManagerService;->getSupportedStatesLocked()Ljava/util/List;
 PLcom/android/server/devicestate/DeviceStateManagerService;->notifyDeviceStateInfoChangedAsync()V
-PLcom/android/server/devicestate/DeviceStateManagerService;->notifyPolicyIfNeeded()V
 PLcom/android/server/devicestate/DeviceStateManagerService;->onStart()V
-PLcom/android/server/devicestate/DeviceStateManagerService;->readFoldedStates()Ljava/util/Set;
-PLcom/android/server/devicestate/DeviceStateManagerService;->readStatesAvailableForRequestFromApps()V
-PLcom/android/server/devicestate/DeviceStateManagerService;->registerProcess(ILandroid/hardware/devicestate/IDeviceStateManagerCallback;)V
 PLcom/android/server/devicestate/DeviceStateManagerService;->setBaseState(I)V
-PLcom/android/server/devicestate/DeviceStateManagerService;->setRearDisplayStateLocked()V
 PLcom/android/server/devicestate/DeviceStateManagerService;->shouldCancelOverrideRequestWhenRequesterNotOnTop()Z
 PLcom/android/server/devicestate/DeviceStateManagerService;->updatePendingStateLocked()Z
-PLcom/android/server/devicestate/DeviceStateManagerService;->updateSupportedStates([Lcom/android/server/devicestate/DeviceState;I)V
 PLcom/android/server/devicestate/DeviceStateNotificationController$NotificationInfoProvider;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicestate/DeviceStateNotificationController;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Runnable;)V
 PLcom/android/server/devicestate/DeviceStateNotificationController;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Runnable;Lcom/android/server/devicestate/DeviceStateNotificationController$NotificationInfoProvider;Landroid/content/pm/PackageManager;Landroid/app/NotificationManager;)V
-PLcom/android/server/devicestate/DeviceStatePolicy$DefaultProvider;-><init>()V
-PLcom/android/server/devicestate/DeviceStatePolicy$DefaultProvider;->instantiate(Landroid/content/Context;)Lcom/android/server/devicestate/DeviceStatePolicy;
-PLcom/android/server/devicestate/DeviceStatePolicy$Provider;->fromResources(Landroid/content/res/Resources;)Lcom/android/server/devicestate/DeviceStatePolicy$Provider;
-PLcom/android/server/devicestate/DeviceStatePolicy;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicestate/OverrideRequestController;-><init>(Lcom/android/server/devicestate/OverrideRequestController$StatusChangeListener;)V
-PLcom/android/server/devicestate/OverrideRequestController;->cancelStickyRequest()V
-PLcom/android/server/devicestate/OverrideRequestController;->handleBaseStateChanged(I)V
-PLcom/android/server/devicestate/OverrideRequestController;->handleNewSupportedStates([II)V
-PLcom/android/server/devicestate/OverrideRequestController;->setStickyRequestsAllowed(Z)V
-HSPLcom/android/server/display/BrightnessMappingStrategy;-><clinit>()V
+PLcom/android/server/devicestate/OverrideRequestController;-><init>(Lcom/android/server/devicestate/DeviceStateManagerService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/devicestate/OverrideRequestController;->dumpInternal(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/AutomaticBrightnessController$1;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
+HPLcom/android/server/display/AutomaticBrightnessController$1;->run()V
+PLcom/android/server/display/AutomaticBrightnessController$2;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
+PLcom/android/server/display/AutomaticBrightnessController$2;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
+HPLcom/android/server/display/AutomaticBrightnessController$2;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HPLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->getTime(I)J
+HPLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->prune(J)V
+PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->toString()Ljava/lang/String;
+PLcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;-><init>(Lcom/android/server/display/AutomaticBrightnessController;Landroid/os/Looper;)V
+HPLcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/display/AutomaticBrightnessController$RealClock;-><init>(Z)V
+HPLcom/android/server/display/AutomaticBrightnessController$RealClock;->getSensorEventScaleTime()J
+PLcom/android/server/display/AutomaticBrightnessController$ShortTermModel;->-$$Nest$mmaybeReset(Lcom/android/server/display/AutomaticBrightnessController$ShortTermModel;F)Z
+PLcom/android/server/display/AutomaticBrightnessController$ShortTermModel;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
+PLcom/android/server/display/AutomaticBrightnessController$ShortTermModel;->toString()Ljava/lang/String;
+PLcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
+PLcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;->onTaskStackChanged()V
+PLcom/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;Landroid/util/SparseArray;IFFFIIJJJJZLcom/android/server/display/config/HysteresisLevels;Lcom/android/server/display/config/HysteresisLevels;Lcom/android/server/display/config/HysteresisLevels;Lcom/android/server/display/config/HysteresisLevels;Landroid/content/Context;Lcom/android/server/display/BrightnessRangeController;Lcom/android/server/display/BrightnessThrottler;IIFFLcom/android/server/display/feature/DisplayManagerFlags;)V
+HPLcom/android/server/display/AutomaticBrightnessController;->calculateAmbientLux(JJ)F
+HPLcom/android/server/display/AutomaticBrightnessController;->clampScreenBrightness(F)F
+HPLcom/android/server/display/AutomaticBrightnessController;->configure(ILandroid/hardware/display/BrightnessConfiguration;FZFZIIZZ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/display/BrightnessMappingStrategy;Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
+HPLcom/android/server/display/AutomaticBrightnessController;->getAutomaticScreenBrightness(Lcom/android/server/display/brightness/BrightnessEvent;)F+]Lcom/android/server/display/BrightnessMappingStrategy;Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
+PLcom/android/server/display/AutomaticBrightnessController;->isInIdleMode()Z
+HPLcom/android/server/display/AutomaticBrightnessController;->nextAmbientLightBrighteningTransition(J)J
+HPLcom/android/server/display/AutomaticBrightnessController;->nextAmbientLightDarkeningTransition(J)J
+PLcom/android/server/display/AutomaticBrightnessController;->resetShortTermModel()V
+HPLcom/android/server/display/AutomaticBrightnessController;->setAmbientLux(F)V
+HPLcom/android/server/display/AutomaticBrightnessController;->setLightSensorEnabled(Z)Z+]Landroid/app/IActivityTaskManager;Lcom/android/server/wm/ActivityTaskManagerService;]Landroid/hardware/SensorManager;Landroid/hardware/SystemSensorManager;
+PLcom/android/server/display/AutomaticBrightnessController;->setScreenBrightnessByUser(FF)Z
+HPLcom/android/server/display/AutomaticBrightnessController;->shouldApplyDozeScaleFactor()Z+]Lcom/android/server/display/BrightnessMappingStrategy;Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
+HPLcom/android/server/display/AutomaticBrightnessController;->switchMode(IZ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/display/BrightnessMappingStrategy;Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
+HPLcom/android/server/display/AutomaticBrightnessController;->updateAmbientLux(J)V
+HPLcom/android/server/display/AutomaticBrightnessController;->updateAutoBrightness(ZZ)V
+HPLcom/android/server/display/AutomaticBrightnessController;->updateForegroundApp()V
+PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;FLjava/io/PrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;-><init>([F[FFJII)V
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->addUserDataPoint(FF)V
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->clearUserDataPoints()V
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->computeSpline$1()V
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->convertToAdjustedNits(F)F
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->convertToNits(F)F
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->dump(Ljava/io/PrintWriter;F)V
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->getAutoBrightnessAdjustment()F
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->getBrightness(FILjava/lang/String;)F
+HPLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->getMode()I
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->getShortTermModelTimeout()J
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->getUserBrightness()F
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->getUserLux()F
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->hasUserDataPoints()Z
+PLcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
+PLcom/android/server/display/BrightnessMappingStrategy;-><clinit>()V
 PLcom/android/server/display/BrightnessMappingStrategy;->create(Landroid/content/Context;Lcom/android/server/display/DisplayDeviceConfig;ILcom/android/server/display/whitebalance/DisplayWhiteBalanceController;)Lcom/android/server/display/BrightnessMappingStrategy;
-HSPLcom/android/server/display/BrightnessMappingStrategy;->getFloatArray(Landroid/content/res/TypedArray;)[F
+PLcom/android/server/display/BrightnessMappingStrategy;->getAdjustedCurve([F[FFFFF)Landroid/util/Pair;
+PLcom/android/server/display/BrightnessMappingStrategy;->inferAutoBrightnessAdjustment(FFF)F
+PLcom/android/server/display/BrightnessMappingStrategy;->insertControlPoint([F[FFF)Landroid/util/Pair;
 PLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[F)Z
-PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda4;-><init>(Ljava/lang/Runnable;)V
+PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/display/BrightnessRangeController;F)V
+PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda2;->getAsBoolean()Z
+PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/display/BrightnessRangeController;F)V
+HPLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda4;-><init>(Ljava/lang/Object;)V
 PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/display/BrightnessRangeController;I)V
-PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda5;->getAsBoolean()Z
+HPLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda5;->getAsBoolean()Z
 PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/display/BrightnessRangeController;I)V
-PLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/display/BrightnessRangeController;->$r8$lambda$dKtp9_j8KRcoYxWMg8d00hzlVN0(Lcom/android/server/display/BrightnessRangeController;I)V
-PLcom/android/server/display/BrightnessRangeController;->$r8$lambda$zpmKQQW2rDvBS46nbBqX3mXvWvI(Lcom/android/server/display/BrightnessRangeController;I)Z
-PLcom/android/server/display/BrightnessRangeController;-><init>(Lcom/android/server/display/HighBrightnessModeController;Ljava/lang/Runnable;Lcom/android/server/display/DisplayDeviceConfig;Landroid/os/Handler;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/os/IBinder;Lcom/android/server/display/DisplayDeviceInfo;)V
-PLcom/android/server/display/BrightnessRangeController;-><init>(Lcom/android/server/display/HighBrightnessModeController;Ljava/lang/Runnable;Lcom/android/server/display/DisplayDeviceConfig;Lcom/android/server/display/brightness/clamper/HdrClamper;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/os/IBinder;Lcom/android/server/display/DisplayDeviceInfo;)V
-PLcom/android/server/display/BrightnessRangeController;->applyChanges(Ljava/util/function/BooleanSupplier;Ljava/lang/Runnable;)V
+HPLcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/display/BrightnessRangeController;-><init>(Lcom/android/server/display/HighBrightnessModeController;Ljava/lang/Runnable;Lcom/android/server/display/DisplayDeviceConfig;Lcom/android/server/display/NormalBrightnessModeController;Lcom/android/server/display/brightness/clamper/HdrClamper;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/os/IBinder;Lcom/android/server/display/DisplayDeviceInfo;)V
+HPLcom/android/server/display/BrightnessRangeController;->applyChanges(Ljava/util/function/BooleanSupplier;Ljava/lang/Runnable;)V+]Ljava/lang/Runnable;Lcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda3;,Lcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda6;]Ljava/util/function/BooleanSupplier;Lcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda2;,Lcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda5;
 HPLcom/android/server/display/BrightnessRangeController;->getCurrentBrightnessMax()F
-PLcom/android/server/display/BrightnessRangeController;->getCurrentBrightnessMin()F
-PLcom/android/server/display/BrightnessRangeController;->getHighBrightnessMode()I
-PLcom/android/server/display/BrightnessRangeController;->getTransitionPoint()F
-PLcom/android/server/display/BrightnessRangeController;->lambda$setAutoBrightnessEnabled$4(I)Z
-PLcom/android/server/display/BrightnessRangeController;->lambda$setAutoBrightnessEnabled$5(I)V
-PLcom/android/server/display/BrightnessRangeController;->onBrightnessChanged(FFI)V
-PLcom/android/server/display/BrightnessRangeController;->setAutoBrightnessEnabled(I)V
+PLcom/android/server/display/BrightnessRangeController;->onAmbientLuxChange(F)V
 PLcom/android/server/display/BrightnessRangeController;->updateHdrClamper(Lcom/android/server/display/DisplayDeviceInfo;Landroid/os/IBinder;Lcom/android/server/display/DisplayDeviceConfig;)V
 PLcom/android/server/display/BrightnessSetting$1;-><init>(Lcom/android/server/display/BrightnessSetting;Landroid/os/Looper;)V
+HPLcom/android/server/display/BrightnessSetting$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/display/BrightnessSetting;-><init>(ILcom/android/server/display/PersistentDataStore;Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/DisplayManagerService$SyncRoot;)V
-PLcom/android/server/display/BrightnessSetting;->getBrightness()F
-PLcom/android/server/display/BrightnessSetting;->registerListener(Lcom/android/server/display/BrightnessSetting$BrightnessSettingListener;)V
-PLcom/android/server/display/BrightnessThrottler$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/display/BrightnessThrottler$$ExternalSyntheticLambda1;-><init>()V
+PLcom/android/server/display/BrightnessThrottler$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/display/BrightnessThrottler$$ExternalSyntheticLambda2;->run()V
 PLcom/android/server/display/BrightnessThrottler$DeviceConfigListener;-><init>(Lcom/android/server/display/BrightnessThrottler;)V
-PLcom/android/server/display/BrightnessThrottler$DeviceConfigListener;->startListening()V
-PLcom/android/server/display/BrightnessThrottler$Injector;-><init>()V
-PLcom/android/server/display/BrightnessThrottler$Injector;->getDeviceConfig()Landroid/provider/DeviceConfigInterface;
+PLcom/android/server/display/BrightnessThrottler$DeviceConfigListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/display/BrightnessThrottler$SkinThermalStatusObserver;-><init>(Lcom/android/server/display/BrightnessThrottler;Lcom/android/server/display/BrightnessThrottler$Injector;Landroid/os/Handler;)V
 PLcom/android/server/display/BrightnessThrottler$SkinThermalStatusObserver;->stopObserving()V
-PLcom/android/server/display/BrightnessThrottler;->-$$Nest$fgetmConfigParameterProvider(Lcom/android/server/display/BrightnessThrottler;)Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-PLcom/android/server/display/BrightnessThrottler;->-$$Nest$fgetmDeviceConfigHandler(Lcom/android/server/display/BrightnessThrottler;)Landroid/os/Handler;
-PLcom/android/server/display/BrightnessThrottler;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/display/BrightnessThrottler;-><clinit>()V
-PLcom/android/server/display/BrightnessThrottler;-><init>(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;Ljava/util/HashMap;)V
-PLcom/android/server/display/BrightnessThrottler;-><init>(Lcom/android/server/display/BrightnessThrottler$Injector;Landroid/os/Handler;Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;Ljava/util/HashMap;)V
-PLcom/android/server/display/BrightnessThrottler;->deviceSupportsThrottling()Z
+PLcom/android/server/display/BrightnessThrottler;-><init>(Lcom/android/server/display/BrightnessThrottler$Injector;Landroid/os/Handler;Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/android/server/display/config/SensorData;)V
 PLcom/android/server/display/BrightnessThrottler;->getConfigFromId(Ljava/lang/String;)Lcom/android/server/display/DisplayDeviceConfig$ThermalBrightnessThrottlingData;
 PLcom/android/server/display/BrightnessThrottler;->loadThermalBrightnessThrottlingDataFromDeviceConfig()V
-PLcom/android/server/display/BrightnessThrottler;->loadThermalBrightnessThrottlingDataFromDisplayDeviceConfig(Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/display/BrightnessThrottler;->resetThermalThrottlingData()V
-PLcom/android/server/display/BrightnessThrottler;->stop()V
+PLcom/android/server/display/BrightnessTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/BrightnessTracker;Ljava/io/PrintWriter;)V
+PLcom/android/server/display/BrightnessTracker$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/display/BrightnessTracker$DisplayListener;-><init>(Lcom/android/server/display/BrightnessTracker;)V
+HPLcom/android/server/display/BrightnessTracker$DisplayListener;->onDisplayChanged(I)V
 PLcom/android/server/display/BrightnessTracker$Injector;-><init>()V
-PLcom/android/server/display/BrightnessTracker$Injector;->getBackgroundHandler()Landroid/os/Handler;
+PLcom/android/server/display/BrightnessTracker$Injector;->isBrightnessModeAutomatic(Landroid/content/ContentResolver;)Z
 PLcom/android/server/display/BrightnessTracker$TrackerHandler;-><init>(Lcom/android/server/display/BrightnessTracker;Landroid/os/Looper;)V
+PLcom/android/server/display/BrightnessTracker$TrackerHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/display/BrightnessTracker;-><clinit>()V
-PLcom/android/server/display/BrightnessTracker;-><init>(Landroid/content/Context;Lcom/android/server/display/BrightnessTracker$Injector;)V
-HSPLcom/android/server/display/DeviceStateToLayoutMap;-><clinit>()V
-HSPLcom/android/server/display/DeviceStateToLayoutMap;-><init>(Lcom/android/server/display/layout/DisplayIdProducer;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/DeviceStateToLayoutMap;-><init>(Lcom/android/server/display/layout/DisplayIdProducer;Lcom/android/server/display/feature/DisplayManagerFlags;Ljava/io/File;)V
+PLcom/android/server/display/BrightnessTracker;-><init>(Landroid/content/Context;)V
+PLcom/android/server/display/BrightnessTracker;->disableColorSampling()V
+PLcom/android/server/display/BrightnessTracker;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/BrightnessTracker;->enableColorSampling()V
+PLcom/android/server/display/BrightnessTracker;->startDisplayListener()V
+PLcom/android/server/display/BrightnessTracker;->startSensorListener()V
+PLcom/android/server/display/BrightnessTracker;->stopSensorListener()V
+HSPLcom/android/server/display/DeviceStateToLayoutMap;-><init>(Lcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda2;Lcom/android/server/display/feature/DisplayManagerFlags;)V
 HSPLcom/android/server/display/DeviceStateToLayoutMap;->createLayout(I)Lcom/android/server/display/layout/Layout;
 HSPLcom/android/server/display/DeviceStateToLayoutMap;->get(I)Lcom/android/server/display/layout/Layout;
-HSPLcom/android/server/display/DeviceStateToLayoutMap;->getConfigFile()Ljava/io/File;
 HSPLcom/android/server/display/DeviceStateToLayoutMap;->loadLayoutsFromConfig(Ljava/io/File;)V
-HSPLcom/android/server/display/DeviceStateToLayoutMap;->size()I
 HSPLcom/android/server/display/DisplayAdapter$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/DisplayAdapter;)V
 HSPLcom/android/server/display/DisplayAdapter$$ExternalSyntheticLambda0;->run()V
 HSPLcom/android/server/display/DisplayAdapter$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/DisplayAdapter;Lcom/android/server/display/DisplayDevice;I)V
 HSPLcom/android/server/display/DisplayAdapter$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/display/DisplayAdapter;->$r8$lambda$9V0Zb4R5pN2d6Ym6JsffUDuLT04(Lcom/android/server/display/DisplayAdapter;)V
-HSPLcom/android/server/display/DisplayAdapter;->$r8$lambda$m53kLy5P6p-BQH88mDK_wnWdYlc(Lcom/android/server/display/DisplayAdapter;Lcom/android/server/display/DisplayDevice;I)V
 HSPLcom/android/server/display/DisplayAdapter;-><clinit>()V
 HSPLcom/android/server/display/DisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Ljava/lang/String;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/DisplayAdapter;->createMode(IIFF[F[I)Landroid/view/Display$Mode;
-HSPLcom/android/server/display/DisplayAdapter;->getContext()Landroid/content/Context;
-HSPLcom/android/server/display/DisplayAdapter;->getFeatureFlags()Lcom/android/server/display/feature/DisplayManagerFlags;
-HSPLcom/android/server/display/DisplayAdapter;->getHandler()Landroid/os/Handler;
-PLcom/android/server/display/DisplayAdapter;->getSyncRoot()Lcom/android/server/display/DisplayManagerService$SyncRoot;
-HSPLcom/android/server/display/DisplayAdapter;->lambda$sendDisplayDeviceEventLocked$0(Lcom/android/server/display/DisplayDevice;I)V
-HSPLcom/android/server/display/DisplayAdapter;->lambda$sendTraversalRequestLocked$1()V
-HSPLcom/android/server/display/DisplayAdapter;->registerLocked()V
+PLcom/android/server/display/DisplayAdapter;->dumpLocked(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayAdapter;->sendDisplayDeviceEventLocked(Lcom/android/server/display/DisplayDevice;I)V
 HSPLcom/android/server/display/DisplayAdapter;->sendTraversalRequestLocked()V
 HPLcom/android/server/display/DisplayBrightnessState$Builder;-><init>()V
-PLcom/android/server/display/DisplayBrightnessState$Builder;->build()Lcom/android/server/display/DisplayBrightnessState;
-HPLcom/android/server/display/DisplayBrightnessState$Builder;->from(Lcom/android/server/display/DisplayBrightnessState;)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getBrightness()F
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getBrightnessReason()Lcom/android/server/display/brightness/BrightnessReason;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getCustomAnimationRate()F
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getDisplayBrightnessStrategyName()Ljava/lang/String;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getMaxBrightness()F
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getMinBrightness()F
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getSdrBrightness()F
-PLcom/android/server/display/DisplayBrightnessState$Builder;->getShouldUseAutoBrightness()Z
-PLcom/android/server/display/DisplayBrightnessState$Builder;->isSlowChange()Z
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setBrightness(F)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setBrightnessReason(Lcom/android/server/display/brightness/BrightnessReason;)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setCustomAnimationRate(F)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setDisplayBrightnessStrategyName(Ljava/lang/String;)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setIsSlowChange(Z)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setMaxBrightness(F)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setMinBrightness(F)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setSdrBrightness(F)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setShouldUpdateScreenBrightnessSetting(Z)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->setShouldUseAutoBrightness(Z)Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState$Builder;->shouldUpdateScreenBrightnessSetting()Z
 HPLcom/android/server/display/DisplayBrightnessState;-><init>(Lcom/android/server/display/DisplayBrightnessState$Builder;)V
-PLcom/android/server/display/DisplayBrightnessState;-><init>(Lcom/android/server/display/DisplayBrightnessState$Builder;Lcom/android/server/display/DisplayBrightnessState-IA;)V
-PLcom/android/server/display/DisplayBrightnessState;->builder()Lcom/android/server/display/DisplayBrightnessState$Builder;
-PLcom/android/server/display/DisplayBrightnessState;->getBrightness()F
-PLcom/android/server/display/DisplayBrightnessState;->getBrightnessReason()Lcom/android/server/display/brightness/BrightnessReason;
-PLcom/android/server/display/DisplayBrightnessState;->getCustomAnimationRate()F
-PLcom/android/server/display/DisplayBrightnessState;->getDisplayBrightnessStrategyName()Ljava/lang/String;
-PLcom/android/server/display/DisplayBrightnessState;->getMaxBrightness()F
-PLcom/android/server/display/DisplayBrightnessState;->getMinBrightness()F
-PLcom/android/server/display/DisplayBrightnessState;->getSdrBrightness()F
-PLcom/android/server/display/DisplayBrightnessState;->getShouldUseAutoBrightness()Z
-PLcom/android/server/display/DisplayBrightnessState;->isSlowChange()Z
-PLcom/android/server/display/DisplayBrightnessState;->shouldUpdateScreenBrightnessSetting()Z
 PLcom/android/server/display/DisplayControl;->getHdrOutputConversionSupport()Z
 HSPLcom/android/server/display/DisplayControl;->getPhysicalDisplayIds()[J
 HSPLcom/android/server/display/DisplayControl;->getPhysicalDisplayToken(J)Landroid/os/IBinder;
 HSPLcom/android/server/display/DisplayDevice;-><clinit>()V
-HSPLcom/android/server/display/DisplayDevice;-><init>(Lcom/android/server/display/DisplayAdapter;Landroid/os/IBinder;Ljava/lang/String;Landroid/content/Context;)V
+HSPLcom/android/server/display/DisplayDevice;-><init>(Lcom/android/server/display/DisplayAdapter;Landroid/os/IBinder;Ljava/lang/String;Landroid/content/Context;Z)V
+PLcom/android/server/display/DisplayDevice;->dumpLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/DisplayDevice;->getDisplayIdToMirrorLocked()I
-PLcom/android/server/display/DisplayDevice;->getDisplayTokenLocked()Landroid/os/IBinder;
-HSPLcom/android/server/display/DisplayDevice;->getUniqueId()Ljava/lang/String;
 PLcom/android/server/display/DisplayDevice;->isWindowManagerMirroringLocked()Z
 PLcom/android/server/display/DisplayDevice;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/display/DisplayDevice;->populateViewportLocked(Landroid/hardware/display/DisplayViewport;)V
-PLcom/android/server/display/DisplayDevice;->setDisplayFlagsLocked(Landroid/view/SurfaceControl$Transaction;I)V
-PLcom/android/server/display/DisplayDevice;->setLayerStackLocked(Landroid/view/SurfaceControl$Transaction;II)V
-HPLcom/android/server/display/DisplayDevice;->setProjectionLocked(Landroid/view/SurfaceControl$Transaction;ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
-PLcom/android/server/display/DisplayDeviceConfig$BrightnessLimitMapType;->$values()[Lcom/android/server/display/DisplayDeviceConfig$BrightnessLimitMapType;
+HSPLcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
+HSPLcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticOutline0;->m([FLjava/lang/StringBuilder;Ljava/lang/String;)V
 PLcom/android/server/display/DisplayDeviceConfig$BrightnessLimitMapType;-><clinit>()V
-PLcom/android/server/display/DisplayDeviceConfig$BrightnessLimitMapType;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/display/DisplayDeviceConfig;-><clinit>()V
 HSPLcom/android/server/display/DisplayDeviceConfig;-><init>(Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->constraintInRangeIfNeeded([F)[F
-HSPLcom/android/server/display/DisplayDeviceConfig;->copyUninitializedValuesFromSecondaryConfig(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->create(Landroid/content/Context;JZLcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/DisplayDeviceConfig;->create(Landroid/content/Context;ZLcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/DisplayDeviceConfig;->createWithoutDefaultValues(Landroid/content/Context;JZLcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientLightSensor()Lcom/android/server/display/config/SensorData;
-PLcom/android/server/display/DisplayDeviceConfig;->getAutoBrightnessBrighteningLevels(II)[F
-PLcom/android/server/display/DisplayDeviceConfig;->getAutoBrightnessBrighteningLevelsLux(II)[F
-PLcom/android/server/display/DisplayDeviceConfig;->getAutoBrightnessBrighteningLevelsNits()[F
-PLcom/android/server/display/DisplayDeviceConfig;->getBacklightFromBrightness(F)F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightness()[F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessCapForWearBedtimeMode()F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessDefault()F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessLevelAndPercentage(Lcom/android/server/display/config/BrightnessThresholds;II[F[F)Landroid/util/Pair;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessLevelAndPercentage(Lcom/android/server/display/config/BrightnessThresholds;II[F[FZ)Landroid/util/Pair;
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampDecreaseMaxIdleMillis()J
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampDecreaseMaxMillis()J
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampFastDecrease()F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampFastIncrease()F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampIncreaseMaxIdleMillis()J
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampIncreaseMaxMillis()J
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampSlowDecrease()F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampSlowDecreaseIdle()F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampSlowIncrease()F
-PLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampSlowIncreaseIdle()F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getConfigFromGlobalXml(Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
+HSPLcom/android/server/display/DisplayDeviceConfig;->constrainNitsAndBacklightArrays()V
+HPLcom/android/server/display/DisplayDeviceConfig;->getAutoBrightnessBrighteningLevels(II)[F+]Ljava/util/Map;Ljava/util/HashMap;
+HPLcom/android/server/display/DisplayDeviceConfig;->getAutoBrightnessBrighteningLevelsLux(II)[F+]Ljava/util/Map;Ljava/util/HashMap;
+HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessFromBacklight(F)F
 HSPLcom/android/server/display/DisplayDeviceConfig;->getConfigFromSuffix(Landroid/content/Context;Ljava/io/File;Ljava/lang/String;JLcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDefaultHighBlockingZoneRefreshRate()I
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDefaultLowBlockingZoneRefreshRate()I
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDefaultPeakRefreshRate()I
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDefaultRefreshRate()I
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDefaultRefreshRateInHbmHdr()I
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDefaultRefreshRateInHbmSunlight()I
-HSPLcom/android/server/display/DisplayDeviceConfig;->getDensityMapping()Lcom/android/server/display/DensityMapping;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getFirstExistingFile(Ljava/util/Collection;)Ljava/io/File;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getFloatArray(Landroid/content/res/TypedArray;F)[F
-PLcom/android/server/display/DisplayDeviceConfig;->getHdrBrightnessData()Lcom/android/server/display/config/HdrBrightnessData;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getHighAmbientBrightnessThresholds()[F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getHighBlockingZoneThermalMap()Landroid/util/SparseArray;
-PLcom/android/server/display/DisplayDeviceConfig;->getHighBrightnessModeData()Lcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getHighDisplayBrightnessThresholds()[F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getLowAmbientBrightnessThresholds()[F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getLowBlockingZoneThermalMap()Landroid/util/SparseArray;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getLowDisplayBrightnessThresholds()[F
-HSPLcom/android/server/display/DisplayDeviceConfig;->getLuxLevels([I)[F
-PLcom/android/server/display/DisplayDeviceConfig;->getLuxThrottlingData()Ljava/util/Map;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getName()Ljava/lang/String;
-PLcom/android/server/display/DisplayDeviceConfig;->getNits()[F
 PLcom/android/server/display/DisplayDeviceConfig;->getNitsFromBacklight(F)F
-PLcom/android/server/display/DisplayDeviceConfig;->getPowerThrottlingConfigData()Lcom/android/server/display/DisplayDeviceConfig$PowerThrottlingConfigData;
-PLcom/android/server/display/DisplayDeviceConfig;->getPowerThrottlingDataMapByThrottlingId()Ljava/util/HashMap;
-PLcom/android/server/display/DisplayDeviceConfig;->getProximitySensor()Lcom/android/server/display/config/SensorData;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getRefreshRange(Ljava/lang/String;)Landroid/view/SurfaceControl$RefreshRateRange;
-PLcom/android/server/display/DisplayDeviceConfig;->getThermalBrightnessThrottlingDataMapByThrottlingId()Ljava/util/HashMap;
-HSPLcom/android/server/display/DisplayDeviceConfig;->getThermalRefreshRateThrottlingData(Ljava/lang/String;)Landroid/util/SparseArray;
-HSPLcom/android/server/display/DisplayDeviceConfig;->hasQuirk(Ljava/lang/String;)Z
-PLcom/android/server/display/DisplayDeviceConfig;->hasSdrToHdrRatioSpline()Z
 HSPLcom/android/server/display/DisplayDeviceConfig;->initFromFile(Ljava/io/File;)Z
-HSPLcom/android/server/display/DisplayDeviceConfig;->initFromGlobalXml()V
-HSPLcom/android/server/display/DisplayDeviceConfig;->isAllInRange([FFF)Z
-PLcom/android/server/display/DisplayDeviceConfig;->isAutoBrightnessAvailable()Z
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientBrightnessThresholds(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientBrightnessThresholdsIdle(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadAutoBrightnessAvailableFromConfigXml()V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadAutoBrightnessConfigsFromConfigXml()V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessCapForWearBedtimeModeFromConfigXml()V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessChangeThresholds(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessChangeThresholdsFromXml()V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadAutoBrightnessConfigValues(Lcom/android/server/display/config/DisplayConfiguration;)V
 HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessConstraintsFromConfigXml()V
 HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessDefaultFromConfigXml()V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessMapFromConfigXml()V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessMap(Lcom/android/server/display/config/DisplayConfiguration;)V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessRamps(Lcom/android/server/display/config/DisplayConfiguration;)V
 HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessRampsFromConfigXml()V
 HSPLcom/android/server/display/DisplayDeviceConfig;->loadConfigFromDirectory(Landroid/content/Context;Ljava/io/File;JLcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadDefaultConfigurationXml(Landroid/content/Context;)Lcom/android/server/display/config/DisplayConfiguration;
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadDefaultRefreshRate(Lcom/android/server/display/config/RefreshRateConfigs;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadDefaultRefreshRateInHbm(Lcom/android/server/display/config/RefreshRateConfigs;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadDisplayBrightnessThresholds(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadDisplayBrightnessThresholdsIdle(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadHigherBlockingZoneDefaultRefreshRate(Lcom/android/server/display/config/BlockingZoneConfig;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadHigherBrightnessThresholds(Lcom/android/server/display/config/BlockingZoneConfig;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadHigherRefreshRateBlockingZones(Lcom/android/server/display/config/BlockingZoneConfig;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadLowerBlockingZoneDefaultRefreshRate(Lcom/android/server/display/config/BlockingZoneConfig;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadLowerBrightnessThresholds(Lcom/android/server/display/config/BlockingZoneConfig;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadLowerRefreshRateBlockingZones(Lcom/android/server/display/config/BlockingZoneConfig;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadPeakDefaultRefreshRate(Lcom/android/server/display/config/RefreshRateConfigs;)V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadDensityMapping(Lcom/android/server/display/config/DisplayConfiguration;)V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadDozeBrightness(Lcom/android/server/display/config/DisplayConfiguration;)V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadIdleScreenRefreshRateTimeoutConfigs(Lcom/android/server/display/config/DisplayConfiguration;)V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadLuxThrottling(Lcom/android/server/display/config/DisplayConfiguration;)V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadPowerThrottlingConfigData(Lcom/android/server/display/config/DisplayConfiguration;)V
 HSPLcom/android/server/display/DisplayDeviceConfig;->loadRefreshRateSetting(Lcom/android/server/display/config/DisplayConfiguration;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->loadRefreshRateZoneProfiles(Lcom/android/server/display/config/RefreshRateConfigs;)V
-HSPLcom/android/server/display/DisplayDeviceConfig;->setSimpleMappingStrategyValues()V
+HSPLcom/android/server/display/DisplayDeviceConfig;->loadThermalThrottlingConfig(Lcom/android/server/display/config/DisplayConfiguration;)V
+PLcom/android/server/display/DisplayDeviceConfig;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/DisplayDeviceInfo;-><init>()V
 HPLcom/android/server/display/DisplayDeviceInfo;->diff(Lcom/android/server/display/DisplayDeviceInfo;)I
-PLcom/android/server/display/DisplayDeviceInfo;->equals(Lcom/android/server/display/DisplayDeviceInfo;)Z
 PLcom/android/server/display/DisplayDeviceInfo;->equals(Ljava/lang/Object;)Z
-HSPLcom/android/server/display/DisplayDeviceInfo;->flagsToString(I)Ljava/lang/String;
 HSPLcom/android/server/display/DisplayDeviceInfo;->toString()Ljava/lang/String;
-HSPLcom/android/server/display/DisplayDeviceInfo;->touchToString(I)Ljava/lang/String;
 HSPLcom/android/server/display/DisplayDeviceRepository;-><clinit>()V
 HSPLcom/android/server/display/DisplayDeviceRepository;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Lcom/android/server/display/PersistentDataStore;)V
-HSPLcom/android/server/display/DisplayDeviceRepository;->addListener(Lcom/android/server/display/DisplayDeviceRepository$Listener;)V
-HSPLcom/android/server/display/DisplayDeviceRepository;->containsLocked(Lcom/android/server/display/DisplayDevice;)Z
+PLcom/android/server/display/DisplayDeviceRepository;->forEachLocked(Ljava/util/function/Consumer;)V
 HSPLcom/android/server/display/DisplayDeviceRepository;->getByAddressLocked(Landroid/view/DisplayAddress;)Lcom/android/server/display/DisplayDevice;
-HSPLcom/android/server/display/DisplayDeviceRepository;->handleDisplayDeviceAdded(Lcom/android/server/display/DisplayDevice;)V
-HPLcom/android/server/display/DisplayDeviceRepository;->handleDisplayDeviceChanged(Lcom/android/server/display/DisplayDevice;)V
 HSPLcom/android/server/display/DisplayDeviceRepository;->onDisplayDeviceEvent(Lcom/android/server/display/DisplayDevice;I)V
-HSPLcom/android/server/display/DisplayDeviceRepository;->onTraversalRequested()V
-PLcom/android/server/display/DisplayDeviceRepository;->sendChangedEventLocked(Lcom/android/server/display/DisplayDevice;I)V
+HPLcom/android/server/display/DisplayDeviceRepository;->sendChangedEventLocked(Lcom/android/server/display/DisplayDevice;I)V
 HSPLcom/android/server/display/DisplayDeviceRepository;->sendEventLocked(Lcom/android/server/display/DisplayDevice;I)V
 HSPLcom/android/server/display/DisplayGroup;-><init>(I)V
-HSPLcom/android/server/display/DisplayGroup;->addDisplayLocked(Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/DisplayGroup;->containsLocked(Lcom/android/server/display/LogicalDisplay;)Z
-HSPLcom/android/server/display/DisplayGroup;->getChangeCountLocked()I
-HPLcom/android/server/display/DisplayGroup;->getIdLocked(I)I
-HPLcom/android/server/display/DisplayGroup;->getSizeLocked()I
-HSPLcom/android/server/display/DisplayGroup;->isEmptyLocked()Z
-HSPLcom/android/server/display/DisplayInfoProxy;-><init>(Landroid/view/DisplayInfo;)V
-HSPLcom/android/server/display/DisplayInfoProxy;->get()Landroid/view/DisplayInfo;
 HSPLcom/android/server/display/DisplayInfoProxy;->set(Landroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/display/DisplayManagerService;I)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda15;->run()V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/display/DisplayManagerService;Landroid/util/SparseArray;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
+HPLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda13;->run()V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/display/DisplayManagerService;II)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/display/DisplayManagerService;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda17;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/DisplayManagerService;I)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/display/DisplayManagerService;)V
+HPLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda4;->getDisplayDeviceConfig(I)Lcom/android/server/display/DisplayDeviceConfig;
+HSPLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/display/DisplayManagerService;)V
+PLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda7;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
+HPLcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/display/DisplayManagerService$1;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$1;->requestDisplayState(IIFF)V
-HSPLcom/android/server/display/DisplayManagerService$2;-><init>(Lcom/android/server/display/DisplayManagerService;)V
+HSPLcom/android/server/display/DisplayManagerService$2;-><init>(Lcom/android/server/display/DisplayManagerService;I)V
+HPLcom/android/server/display/DisplayManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/display/DisplayManagerService$BinderService;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$BinderService;->getBrightness(I)F
-PLcom/android/server/display/DisplayManagerService$BinderService;->getBrightnessInfo(I)Landroid/hardware/display/BrightnessInfo;
-HPLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayIds(Z)[I
+PLcom/android/server/display/DisplayManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/display/DisplayManagerService$BinderService;->getBrightness(I)F
+HPLcom/android/server/display/DisplayManagerService$BinderService;->getBrightnessInfo(I)Landroid/hardware/display/BrightnessInfo;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayIds(Z)[I+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HSPLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayInfo(I)Landroid/view/DisplayInfo;
 HSPLcom/android/server/display/DisplayManagerService$BinderService;->getOverlaySupport()Landroid/hardware/OverlayProperties;
 HSPLcom/android/server/display/DisplayManagerService$BinderService;->getPreferredWideGamutColorSpaceId()I
 PLcom/android/server/display/DisplayManagerService$BinderService;->getStableDisplaySize()Landroid/graphics/Point;
 PLcom/android/server/display/DisplayManagerService$BinderService;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
-HPLcom/android/server/display/DisplayManagerService$BinderService;->registerCallbackWithEventMask(Landroid/hardware/display/IDisplayManagerCallback;J)V
-HSPLcom/android/server/display/DisplayManagerService$BrightnessPair;-><init>(Lcom/android/server/display/DisplayManagerService;FF)V
-HPLcom/android/server/display/DisplayManagerService$CallbackRecord;-><init>(Lcom/android/server/display/DisplayManagerService;IILandroid/hardware/display/IDisplayManagerCallback;J)V
-HPLcom/android/server/display/DisplayManagerService$CallbackRecord;->notifyDisplayEventAsync(II)Z
-PLcom/android/server/display/DisplayManagerService$CallbackRecord;->shouldSendEvent(I)Z
-PLcom/android/server/display/DisplayManagerService$CallbackRecord;->updateEventsMask(J)V
+PLcom/android/server/display/DisplayManagerService$BinderService;->registerCallbackWithEventMask(Landroid/hardware/display/IDisplayManagerCallback;J)V
+PLcom/android/server/display/DisplayManagerService$BinderService;->setBrightness(IF)V
+PLcom/android/server/display/DisplayManagerService$CallbackRecord;-><init>(IIJLandroid/hardware/display/IDisplayManagerCallback;Lcom/android/server/display/DisplayManagerService;)V
+PLcom/android/server/display/DisplayManagerService$CallbackRecord;->binderDied()V
+HPLcom/android/server/display/DisplayManagerService$CallbackRecord;->notifyDisplayEventAsync(II)Z+]Landroid/hardware/display/IDisplayManagerCallback;Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;,Landroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;
 PLcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver;)V
 PLcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver;->$r8$lambda$kO7ZAVjumuDiLx2z8mCVaTQeBAM(Lcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver;Lcom/android/server/display/LogicalDisplay;)V
 PLcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver;->lambda$new$0(Lcom/android/server/display/LogicalDisplay;)V
 PLcom/android/server/display/DisplayManagerService$DesiredDisplayModeSpecsObserver;->onDesiredDisplayModeSpecsChanged()V
 PLcom/android/server/display/DisplayManagerService$DeviceStateListener;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$DeviceStateListener;->onBaseStateChanged(I)V
-PLcom/android/server/display/DisplayManagerService$DeviceStateListener;->onStateChanged(I)V
+PLcom/android/server/display/DisplayManagerService$DeviceStateListener;->onDeviceStateChanged(Landroid/hardware/devicestate/DeviceState;)V
 HSPLcom/android/server/display/DisplayManagerService$DisplayManagerHandler;-><init>(Lcom/android/server/display/DisplayManagerService;Landroid/os/Looper;)V
-HSPLcom/android/server/display/DisplayManagerService$DisplayManagerHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector-IA;)V
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;->getDisplayNotificationManager()Lcom/android/server/display/notifications/DisplayNotificationManager;
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;->getFlags()Lcom/android/server/display/feature/DisplayManagerFlags;
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;->getHandler()Landroid/os/Handler;
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;->getLogicalDisplayMapper()Lcom/android/server/display/LogicalDisplayMapper;
-HSPLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;->getSyncRoot()Lcom/android/server/display/DisplayManagerService$SyncRoot;
-PLcom/android/server/display/DisplayManagerService$ExternalDisplayPolicyInjector;->getThermalService()Landroid/os/IThermalService;
+HSPLcom/android/server/display/DisplayManagerService$DisplayManagerHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/wm/WindowManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
 HSPLcom/android/server/display/DisplayManagerService$Injector;-><init>()V
-HSPLcom/android/server/display/DisplayManagerService$Injector;->getDefaultDisplayDelayTimeout()J
-HSPLcom/android/server/display/DisplayManagerService$Injector;->getFlags()Lcom/android/server/display/feature/DisplayManagerFlags;
-PLcom/android/server/display/DisplayManagerService$Injector;->getHdrOutputConversionSupport()Z
-HSPLcom/android/server/display/DisplayManagerService$Injector;->getLocalDisplayAdapter(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/notifications/DisplayNotificationManager;)Lcom/android/server/display/LocalDisplayAdapter;
-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/feature/DisplayManagerFlags;)Lcom/android/server/display/VirtualDisplayAdapter;
-PLcom/android/server/display/DisplayManagerService$LocalService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/DisplayManagerService$LocalService;Ljava/util/Set;Landroid/util/IntArray;)V
-PLcom/android/server/display/DisplayManagerService$LocalService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/display/DisplayManagerService$LocalService;->$r8$lambda$89AgyCQh3snd66tyHFfbP9_BZ4s(Lcom/android/server/display/DisplayManagerService$LocalService;Ljava/util/Set;Landroid/util/IntArray;Lcom/android/server/display/LogicalDisplay;)V
 HSPLcom/android/server/display/DisplayManagerService$LocalService;-><init>(Lcom/android/server/display/DisplayManagerService;)V
 PLcom/android/server/display/DisplayManagerService$LocalService;->getAmbientLightSensorData(I)Landroid/hardware/display/DisplayManagerInternal$AmbientLightSensorData;
 PLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayGroupIds()Landroid/util/IntArray;
-HPLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayIdToMirror(I)I
+HPLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayIdToMirror(I)I+]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;
+PLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayIdsForGroup(I)[I
 HPLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayInfo(I)Landroid/view/DisplayInfo;
 PLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayWindowPolicyController(I)Landroid/window/DisplayWindowPolicyController;
-PLcom/android/server/display/DisplayManagerService$LocalService;->getNonOverrideDisplayInfo(ILandroid/view/DisplayInfo;)V
+HPLcom/android/server/display/DisplayManagerService$LocalService;->getNonOverrideDisplayInfo(ILandroid/view/DisplayInfo;)V
+PLcom/android/server/display/DisplayManagerService$LocalService;->getPossibleDisplayInfo(I)Ljava/util/Set;
 HPLcom/android/server/display/DisplayManagerService$LocalService;->getRefreshRateSwitchingType()I
 PLcom/android/server/display/DisplayManagerService$LocalService;->initPowerManagement(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Landroid/os/Handler;Landroid/hardware/SensorManager;)V
-PLcom/android/server/display/DisplayManagerService$LocalService;->isProximitySensorAvailable()Z
-PLcom/android/server/display/DisplayManagerService$LocalService;->lambda$getDisplayGroupIds$0(Ljava/util/Set;Landroid/util/IntArray;Lcom/android/server/display/LogicalDisplay;)V
+PLcom/android/server/display/DisplayManagerService$LocalService;->isProximitySensorAvailable(I)Z
+PLcom/android/server/display/DisplayManagerService$LocalService;->onEarlyInteractivityChange(Z)V
 HPLcom/android/server/display/DisplayManagerService$LocalService;->performTraversal(Landroid/view/SurfaceControl$Transaction;Landroid/util/SparseArray;)V
 PLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayGroupListener(Landroid/hardware/display/DisplayManagerInternal$DisplayGroupListener;)V
 PLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayOffloader(ILandroid/hardware/display/DisplayManagerInternal$DisplayOffloader;)Landroid/hardware/display/DisplayManagerInternal$DisplayOffloadSession;
-HPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(ILandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
+HPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(ILandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayAccessUIDs(Landroid/util/SparseArray;)V
 PLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayInfoOverrideFromWindowManager(ILandroid/view/DisplayInfo;)V
 HPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayProperties(IZFIFFZZZ)V
-HSPLcom/android/server/display/DisplayManagerService$LogicalDisplayListener;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-HSPLcom/android/server/display/DisplayManagerService$LogicalDisplayListener;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService$LogicalDisplayListener-IA;)V
-HSPLcom/android/server/display/DisplayManagerService$LogicalDisplayListener;->onDisplayGroupEventLocked(II)V
-HSPLcom/android/server/display/DisplayManagerService$LogicalDisplayListener;->onLogicalDisplayEventLocked(Lcom/android/server/display/LogicalDisplay;I)V
-HSPLcom/android/server/display/DisplayManagerService$LogicalDisplayListener;->onTraversalRequested()V
+HPLcom/android/server/display/DisplayManagerService$LocalService;->setScreenBrightnessOverrideFromWindowManager(Landroid/util/SparseArray;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/display/DisplayManagerService$PendingCallback;-><init>(Lcom/android/server/display/DisplayManagerService$CallbackRecord;II)V
+HPLcom/android/server/display/DisplayManagerService$PendingCallback;->addDisplayEvent(II)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/display/DisplayManagerService$PendingCallback;->sendPendingDisplayEvent()V
 PLcom/android/server/display/DisplayManagerService$SettingsObserver;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-HSPLcom/android/server/display/DisplayManagerService$SyncRoot;-><init>()V
 HSPLcom/android/server/display/DisplayManagerService$UidImportanceListener;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-HSPLcom/android/server/display/DisplayManagerService$UidImportanceListener;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService$UidImportanceListener-IA;)V
-HPLcom/android/server/display/DisplayManagerService$UidImportanceListener;->onUidImportance(II)V
-PLcom/android/server/display/DisplayManagerService;->$r8$lambda$0MAlsLZlHa5skv0nhkou167e-6I(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->$r8$lambda$7iX7XzFpN-QayQDgHGWOvHZ4RH4(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->$r8$lambda$oYWCtx3PEcj2fx_7P6LhCa_tIsw(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)Lcom/android/server/display/DisplayPowerControllerInterface;
-PLcom/android/server/display/DisplayManagerService;->$r8$lambda$sbGEKbzmOtvlr0tn0wH0Gqp3iQE(Lcom/android/server/display/DisplayManagerService;ILcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->$r8$lambda$vHSuA5rkAynhvjoHbD27CpXaGlI(Lcom/android/server/display/DisplayManagerService;Landroid/util/SparseArray;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmContext(Lcom/android/server/display/DisplayManagerService;)Landroid/content/Context;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayGroupListeners(Lcom/android/server/display/DisplayManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayModeDirector(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/mode/DisplayModeDirector;
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayNotificationManager(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/notifications/DisplayNotificationManager;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayPowerCallbacks(Lcom/android/server/display/DisplayManagerService;)Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayPowerControllers(Lcom/android/server/display/DisplayManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayStates(Lcom/android/server/display/DisplayManagerService;)Landroid/util/SparseIntArray;
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmFlags(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/feature/DisplayManagerFlags;
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmHandler(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmInputManagerInternal(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/input/InputManagerInternal;
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmLogicalDisplayMapper(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/LogicalDisplayMapper;
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmSyncRoot(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$SyncRoot;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmTempViewports(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmViewports(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmWindowManagerInternal(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/wm/WindowManagerInternal;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fputmDisplayPowerCallbacks(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fputmPowerHandler(Lcom/android/server/display/DisplayManagerService;Landroid/os/Handler;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$fputmSensorManager(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/SensorManager;)V
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mdeliverDisplayEvent(Lcom/android/server/display/DisplayManagerService;ILandroid/util/ArraySet;I)V
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mdeliverDisplayGroupEvent(Lcom/android/server/display/DisplayManagerService;II)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mextraLogging(Lcom/android/server/display/DisplayManagerService;Ljava/lang/String;)Z
+HPLcom/android/server/display/DisplayManagerService$UidImportanceListener;->onUidImportance(II)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mdeliverDisplayEvent(Lcom/android/server/display/DisplayManagerService;ILandroid/util/ArraySet;I)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/display/DisplayManagerService;->-$$Nest$mdumpInternal(Lcom/android/server/display/DisplayManagerService;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mgetDisplayInfoInternal(Lcom/android/server/display/DisplayManagerService;II)Landroid/view/DisplayInfo;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mgetNonOverrideDisplayInfoInternal(Lcom/android/server/display/DisplayManagerService;ILandroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mgetStableDisplaySizeInternal(Lcom/android/server/display/DisplayManagerService;)Landroid/graphics/Point;
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mgetWifiDisplayStatusInternal(Lcom/android/server/display/DisplayManagerService;)Landroid/hardware/display/WifiDisplayStatus;
 HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mhandleLogicalDisplayAddedLocked(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mhandleLogicalDisplayChangedLocked(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mhandleLogicalDisplayConnectedLocked(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mhandleLogicalDisplayFrameRateOverridesChangedLocked(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$minitializeDisplayPowerControllersLocked(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mloadBrightnessConfigurations(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mregisterCallbackInternal(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/IDisplayManagerCallback;IIJ)V
+PLcom/android/server/display/DisplayManagerService;->-$$Nest$mregisterCallbackInternal(IIJLandroid/hardware/display/IDisplayManagerCallback;Lcom/android/server/display/DisplayManagerService;)V
 HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mregisterDefaultDisplayAdapters(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$mrequestDisplayStateInternal(Lcom/android/server/display/DisplayManagerService;IIFF)V
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$mscheduleTraversalLocked(Lcom/android/server/display/DisplayManagerService;Z)V
-HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$msendDisplayGroupEvent(Lcom/android/server/display/DisplayManagerService;II)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$msetDisplayAccessUIDsInternal(Lcom/android/server/display/DisplayManagerService;Landroid/util/SparseArray;)V
-PLcom/android/server/display/DisplayManagerService;->-$$Nest$sfgetDEBUG()Z
+HPLcom/android/server/display/DisplayManagerService;->-$$Nest$mrequestDisplayStateInternal(Lcom/android/server/display/DisplayManagerService;IIFF)V
 HSPLcom/android/server/display/DisplayManagerService;-><clinit>()V
 HSPLcom/android/server/display/DisplayManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/display/DisplayManagerService;-><init>(Landroid/content/Context;Lcom/android/server/display/DisplayManagerService$Injector;)V
-HSPLcom/android/server/display/DisplayManagerService;->addDisplayPowerControllerLocked(Lcom/android/server/display/LogicalDisplay;)Lcom/android/server/display/DisplayPowerControllerInterface;
-PLcom/android/server/display/DisplayManagerService;->applyDisplayChangedLocked(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->clampBrightness(IF)F
-PLcom/android/server/display/DisplayManagerService;->clearViewportsLocked()V
-HSPLcom/android/server/display/DisplayManagerService;->configureColorModeLocked(Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/DisplayDevice;)V
-HPLcom/android/server/display/DisplayManagerService;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;)V
+HSPLcom/android/server/display/DisplayManagerService;->addDisplayPowerControllerLocked(Lcom/android/server/display/LogicalDisplay;)Lcom/android/server/display/DisplayPowerController;
+HSPLcom/android/server/display/DisplayManagerService;->applyDisplayChangedLocked(Lcom/android/server/display/LogicalDisplay;)V
+PLcom/android/server/display/DisplayManagerService;->clampBrightness(FI)F
 HSPLcom/android/server/display/DisplayManagerService;->configurePreferredDisplayModeLocked(Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayEvent(ILandroid/util/ArraySet;I)V
-HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayGroupEvent(II)V
-PLcom/android/server/display/DisplayManagerService;->extraLogging(Ljava/lang/String;)Z
-PLcom/android/server/display/DisplayManagerService;->getBrightnessConfigForDisplayWithPdsFallbackLocked(Ljava/lang/String;I)Landroid/hardware/display/BrightnessConfiguration;
+HPLcom/android/server/display/DisplayManagerService;->extraLogging(Ljava/lang/String;)Z
+PLcom/android/server/display/DisplayManagerService;->getBrightnessConfigForDisplayWithPdsFallbackLocked(ILjava/lang/String;)Landroid/hardware/display/BrightnessConfiguration;
+PLcom/android/server/display/DisplayManagerService;->getDeviceForDisplayLocked(I)Lcom/android/server/display/DisplayDevice;
 HSPLcom/android/server/display/DisplayManagerService;->getDisplayInfoForFrameRateOverride([Landroid/view/DisplayEventReceiver$FrameRateOverride;Landroid/view/DisplayInfo;I)Landroid/view/DisplayInfo;
-HSPLcom/android/server/display/DisplayManagerService;->getDisplayInfoInternal(II)Landroid/view/DisplayInfo;
-HSPLcom/android/server/display/DisplayManagerService;->getFloatArray(Landroid/content/res/TypedArray;)[F
-PLcom/android/server/display/DisplayManagerService;->getNonOverrideDisplayInfoInternal(ILandroid/view/DisplayInfo;)V
-HSPLcom/android/server/display/DisplayManagerService;->getOverlaySupportInternal()Landroid/hardware/OverlayProperties;
-HSPLcom/android/server/display/DisplayManagerService;->getPreferredWideGamutColorSpaceIdInternal()I
-HPLcom/android/server/display/DisplayManagerService;->getRefreshRateSwitchingTypeInternal()I
-PLcom/android/server/display/DisplayManagerService;->getStableDisplaySizeInternal()Landroid/graphics/Point;
-PLcom/android/server/display/DisplayManagerService;->getUserManager()Landroid/os/UserManager;
-HPLcom/android/server/display/DisplayManagerService;->getViewportLocked(ILjava/lang/String;)Landroid/hardware/display/DisplayViewport;
-PLcom/android/server/display/DisplayManagerService;->getViewportType(Lcom/android/server/display/DisplayDeviceInfo;)Ljava/util/Optional;
-PLcom/android/server/display/DisplayManagerService;->getWifiDisplayStatusInternal()Landroid/hardware/display/WifiDisplayStatus;
-PLcom/android/server/display/DisplayManagerService;->handleBrightnessChange(Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/DisplayManagerService;->handleLogicalDisplayAddedLocked(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->handleLogicalDisplayChangedLocked(Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/DisplayManagerService;->handleLogicalDisplayConnectedLocked(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->handleLogicalDisplayFrameRateOverridesChangedLocked(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->initializeDisplayPowerControllersLocked()V
+HPLcom/android/server/display/DisplayManagerService;->getViewportType(Lcom/android/server/display/DisplayDeviceInfo;)Ljava/util/Optional;
+HPLcom/android/server/display/DisplayManagerService;->handleLogicalDisplayChangedLocked(Lcom/android/server/display/LogicalDisplay;)V
 HPLcom/android/server/display/DisplayManagerService;->isMinimalPostProcessingAllowed()Z
-PLcom/android/server/display/DisplayManagerService;->isResolutionAndRefreshRateValid(Landroid/view/Display$Mode;)Z
-PLcom/android/server/display/DisplayManagerService;->isUidCached(I)Z
-PLcom/android/server/display/DisplayManagerService;->lambda$addDisplayPowerControllerLocked$14(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->lambda$loadBrightnessConfigurations$10(ILcom/android/server/display/LogicalDisplay;)V
-HPLcom/android/server/display/DisplayManagerService;->lambda$performTraversalLocked$11(Landroid/util/SparseArray;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->lambda$updateUserPreferredDisplayModeSettingsLocked$4(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->loadBrightnessConfigurations()V
 HSPLcom/android/server/display/DisplayManagerService;->loadStableDisplayValuesLocked()V
-HSPLcom/android/server/display/DisplayManagerService;->notifyDefaultDisplayDeviceUpdated(Lcom/android/server/display/LogicalDisplay;)V
 HSPLcom/android/server/display/DisplayManagerService;->onBootPhase(I)V
 HSPLcom/android/server/display/DisplayManagerService;->onStart()V
-HPLcom/android/server/display/DisplayManagerService;->performTraversalInternal(Landroid/view/SurfaceControl$Transaction;Landroid/util/SparseArray;)V
-HPLcom/android/server/display/DisplayManagerService;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;Landroid/util/SparseArray;)V
-HPLcom/android/server/display/DisplayManagerService;->populateViewportLocked(IILcom/android/server/display/DisplayDevice;Lcom/android/server/display/DisplayDeviceInfo;)V
-HSPLcom/android/server/display/DisplayManagerService;->recordStableDisplayStatsIfNeededLocked(Lcom/android/server/display/LogicalDisplay;)V
+HPLcom/android/server/display/DisplayManagerService;->performTraversalInternal(Landroid/view/SurfaceControl$Transaction;Landroid/util/SparseArray;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;
 HSPLcom/android/server/display/DisplayManagerService;->recordTopInsetLocked(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->registerAdditionalDisplayAdapters()V
-HPLcom/android/server/display/DisplayManagerService;->registerCallbackInternal(Landroid/hardware/display/IDisplayManagerCallback;IIJ)V
-HSPLcom/android/server/display/DisplayManagerService;->registerDefaultDisplayAdapters()V
-HSPLcom/android/server/display/DisplayManagerService;->registerDisplayAdapterLocked(Lcom/android/server/display/DisplayAdapter;)V
-PLcom/android/server/display/DisplayManagerService;->registerOverlayDisplayAdapterLocked()V
 PLcom/android/server/display/DisplayManagerService;->registerWifiDisplayAdapterLocked()V
-HPLcom/android/server/display/DisplayManagerService;->requestDisplayStateInternal(IIFF)V
 HSPLcom/android/server/display/DisplayManagerService;->scheduleTraversalLocked(Z)V
-PLcom/android/server/display/DisplayManagerService;->sendDisplayEventFrameRateOverrideLocked(I)V
 HSPLcom/android/server/display/DisplayManagerService;->sendDisplayEventIfEnabledLocked(Lcom/android/server/display/LogicalDisplay;I)V
 HSPLcom/android/server/display/DisplayManagerService;->sendDisplayEventLocked(Lcom/android/server/display/LogicalDisplay;I)V
-HSPLcom/android/server/display/DisplayManagerService;->sendDisplayGroupEvent(II)V
-PLcom/android/server/display/DisplayManagerService;->setDisplayAccessUIDsInternal(Landroid/util/SparseArray;)V
 PLcom/android/server/display/DisplayManagerService;->setDisplayInfoOverrideFromWindowManagerInternal(ILandroid/view/DisplayInfo;)V
-HPLcom/android/server/display/DisplayManagerService;->setDisplayPropertiesInternal(IZFIFFZZZ)V
+HPLcom/android/server/display/DisplayManagerService;->setDockedAndIdleEnabled(Z)V
 PLcom/android/server/display/DisplayManagerService;->setHdrConversionModeInternal(Landroid/hardware/display/HdrConversionMode;)V
 PLcom/android/server/display/DisplayManagerService;->setMinimalPostProcessingAllowed(Z)V
 HSPLcom/android/server/display/DisplayManagerService;->setupLogicalDisplay(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->setupSchedulerPolicies()V
-PLcom/android/server/display/DisplayManagerService;->shouldRegisterNonEssentialDisplayAdaptersLocked()Z
+PLcom/android/server/display/DisplayManagerService;->stopWifiDisplayScanLocked(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V
 PLcom/android/server/display/DisplayManagerService;->systemReady(Z)V
-PLcom/android/server/display/DisplayManagerService;->updateDisplayPowerControllerLeaderLocked(Lcom/android/server/display/DisplayPowerControllerInterface;I)V
+PLcom/android/server/display/DisplayManagerService;->updateDisplayPowerControllerLeaderLocked(Lcom/android/server/display/DisplayPowerController;I)V
 HSPLcom/android/server/display/DisplayManagerService;->updateDisplayStateLocked(Lcom/android/server/display/DisplayDevice;)Ljava/lang/Runnable;
-PLcom/android/server/display/DisplayManagerService;->updateHdrConversionModeSettingsLocked()V
-HSPLcom/android/server/display/DisplayManagerService;->updateLogicalDisplayState(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->updateSettingsLocked()V
 PLcom/android/server/display/DisplayManagerService;->updateUserDisabledHdrTypesFromSettingsLocked()V
 PLcom/android/server/display/DisplayManagerService;->updateUserPreferredDisplayModeSettingsLocked()V
-HPLcom/android/server/display/DisplayManagerService;->updateViewportPowerStateLocked(Lcom/android/server/display/LogicalDisplay;)V
+HPLcom/android/server/display/DisplayManagerService;->updateViewportPowerStateLocked(Lcom/android/server/display/LogicalDisplay;)V+]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
 PLcom/android/server/display/DisplayManagerService;->windowManagerAndInputReady()V
-PLcom/android/server/display/DisplayOffloadSessionImpl;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayOffloader;Lcom/android/server/display/DisplayPowerControllerInterface;)V
+PLcom/android/server/display/DisplayOffloadSessionImpl;-><clinit>()V
+PLcom/android/server/display/DisplayOffloadSessionImpl;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayOffloader;Lcom/android/server/display/DisplayPowerController;)V
+HPLcom/android/server/display/DisplayOffloadSessionImpl;->allowAutoBrightnessInDoze()Z
+PLcom/android/server/display/DisplayOffloadSessionImpl;->blockScreenOn(Ljava/lang/Runnable;)Z
 PLcom/android/server/display/DisplayOffloadSessionImpl;->getAutoBrightnessLevels(I)[F
-PLcom/android/server/display/DisplayOffloadSessionImpl;->getAutoBrightnessLuxLevels(I)[F
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HPLcom/android/server/display/DisplayOffloadSessionImpl;->getAutoBrightnessLuxLevels(I)[F
+PLcom/android/server/display/DisplayOffloadSessionImpl;->getBrightness()F
+PLcom/android/server/display/DisplayOffloadSessionImpl;->getDozeBrightness()F
+HPLcom/android/server/display/DisplayOffloadSessionImpl;->setDozeStateOverride(I)V
+PLcom/android/server/display/DisplayOffloadSessionImpl;->updateBrightness(F)V
+PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/display/DisplayPowerController;)V
 PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda1;->run()V
+HPLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/display/DisplayPowerController;ZZLcom/android/server/display/DisplayDevice;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/display/DisplayDeviceConfig;Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/display/DisplayDeviceInfo;Lcom/android/server/display/HighBrightnessModeMetadata;ZLjava/lang/String;)V
+HPLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/display/DisplayPowerController;Ljava/lang/Object;I)V
+PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/display/DisplayPowerController$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ILandroid/util/IndentingPrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
 PLcom/android/server/display/DisplayPowerController$1;-><init>(Lcom/android/server/display/DisplayPowerController;)V
 PLcom/android/server/display/DisplayPowerController$2;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$3;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$CachedBrightnessInfo;-><init>()V
 PLcom/android/server/display/DisplayPowerController$CachedBrightnessInfo;->checkAndSetFloat(Landroid/util/MutableFloat;F)Z
-PLcom/android/server/display/DisplayPowerController$CachedBrightnessInfo;->checkAndSetInt(Landroid/util/MutableInt;I)Z
 PLcom/android/server/display/DisplayPowerController$DisplayControllerHandler;-><init>(Lcom/android/server/display/DisplayPowerController;Landroid/os/Looper;)V
-PLcom/android/server/display/DisplayPowerController$DisplayControllerHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/display/DisplayPowerController$Injector$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/display/DisplayPowerController$Injector$$ExternalSyntheticLambda0;->uptimeMillis()J
+HPLcom/android/server/display/DisplayPowerController$DisplayControllerHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;
 PLcom/android/server/display/DisplayPowerController$Injector;-><init>()V
-PLcom/android/server/display/DisplayPowerController$Injector;->getBrightnessClamperController(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/brightness/clamper/BrightnessClamperController;
-PLcom/android/server/display/DisplayPowerController$Injector;->getBrightnessRangeController(Lcom/android/server/display/HighBrightnessModeController;Ljava/lang/Runnable;Lcom/android/server/display/DisplayDeviceConfig;Landroid/os/Handler;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/os/IBinder;Lcom/android/server/display/DisplayDeviceInfo;)Lcom/android/server/display/BrightnessRangeController;
-PLcom/android/server/display/DisplayPowerController$Injector;->getClock()Lcom/android/server/display/DisplayPowerController$Clock;
-PLcom/android/server/display/DisplayPowerController$Injector;->getDefaultModeBrightnessMapper(Landroid/content/Context;Lcom/android/server/display/DisplayDeviceConfig;Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController;)Lcom/android/server/display/BrightnessMappingStrategy;
-PLcom/android/server/display/DisplayPowerController$Injector;->getDisplayPowerProximityStateController(Lcom/android/server/display/WakelockController;Lcom/android/server/display/DisplayDeviceConfig;Landroid/os/Looper;Ljava/lang/Runnable;ILandroid/hardware/SensorManager;)Lcom/android/server/display/DisplayPowerProximityStateController;
-PLcom/android/server/display/DisplayPowerController$Injector;->getDisplayPowerState(Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/ColorFade;II)Lcom/android/server/display/DisplayPowerState;
-PLcom/android/server/display/DisplayPowerController$Injector;->getDisplayWhiteBalanceController(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController;
-PLcom/android/server/display/DisplayPowerController$Injector;->getDualRampAnimator(Lcom/android/server/display/DisplayPowerState;Landroid/util/FloatProperty;Landroid/util/FloatProperty;)Lcom/android/server/display/RampAnimator$DualRampAnimator;
-PLcom/android/server/display/DisplayPowerController$Injector;->getHighBrightnessModeController(Landroid/os/Handler;IILandroid/os/IBinder;Ljava/lang/String;FFLcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;Lcom/android/server/display/HighBrightnessModeController$HdrBrightnessDeviceConfig;Ljava/lang/Runnable;Lcom/android/server/display/HighBrightnessModeMetadata;Landroid/content/Context;)Lcom/android/server/display/HighBrightnessModeController;
-PLcom/android/server/display/DisplayPowerController$Injector;->getWakelockController(ILandroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;)Lcom/android/server/display/WakelockController;
-PLcom/android/server/display/DisplayPowerController$Injector;->isColorFadeEnabled()Z
-PLcom/android/server/display/DisplayPowerController$SettingsObserver;-><init>(Lcom/android/server/display/DisplayPowerController;Landroid/os/Handler;)V
-PLcom/android/server/display/DisplayPowerController;->$r8$lambda$3lWZJ4BpIHcX_GeenBdRfMVq_oU(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController;->-$$Nest$fputmBootCompleted(Lcom/android/server/display/DisplayPowerController;Z)V
-PLcom/android/server/display/DisplayPowerController;->-$$Nest$mupdatePowerState(Lcom/android/server/display/DisplayPowerController;)V
+PLcom/android/server/display/DisplayPowerController$Injector;->getDisplayWhiteBalanceController(Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController;
+PLcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+PLcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;->onScreenOff()V
+PLcom/android/server/display/DisplayPowerController$ScreenOnUnblocker;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+PLcom/android/server/display/DisplayPowerController$SettingsObserver;-><init>(Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;)V
+PLcom/android/server/display/DisplayPowerController$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
 PLcom/android/server/display/DisplayPowerController;-><clinit>()V
-HPLcom/android/server/display/DisplayPowerController;-><init>(Landroid/content/Context;Lcom/android/server/display/DisplayPowerController$Injector;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/BrightnessTracker;Lcom/android/server/display/BrightnessSetting;Ljava/lang/Runnable;Lcom/android/server/display/HighBrightnessModeMetadata;ZLcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(FFF)V
-PLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(FFFZ)V
-PLcom/android/server/display/DisplayPowerController;->animateScreenStateChange(IZ)V
+PLcom/android/server/display/DisplayPowerController;-><init>(Landroid/content/Context;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/android/server/display/DisplayManagerService$1;Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/BrightnessTracker;Lcom/android/server/display/BrightnessSetting;Lcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda13;Lcom/android/server/display/HighBrightnessModeMetadata;ZLcom/android/server/display/feature/DisplayManagerFlags;)V
+HPLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(FFFZ)V
+HPLcom/android/server/display/DisplayPowerController;->animateScreenStateChange(IIZ)V
 HPLcom/android/server/display/DisplayPowerController;->clampScreenBrightness(F)F
-PLcom/android/server/display/DisplayPowerController;->convertBrightnessReasonToStatsEnum(I)I
-PLcom/android/server/display/DisplayPowerController;->createBrightnessThrottlerLocked()Lcom/android/server/display/BrightnessThrottler;
-PLcom/android/server/display/DisplayPowerController;->createHbmControllerLocked(Lcom/android/server/display/HighBrightnessModeMetadata;Ljava/lang/Runnable;)Lcom/android/server/display/HighBrightnessModeController;
-HPLcom/android/server/display/DisplayPowerController;->getAutoBrightnessLevels(I)[F
-HPLcom/android/server/display/DisplayPowerController;->getAutoBrightnessLuxLevels(I)[F
 HPLcom/android/server/display/DisplayPowerController;->getBrightnessInfo()Landroid/hardware/display/BrightnessInfo;
-PLcom/android/server/display/DisplayPowerController;->getLeadDisplayId()I
-PLcom/android/server/display/DisplayPowerController;->getScreenBrightnessSetting()F
 PLcom/android/server/display/DisplayPowerController;->handleBrightnessModeChange()V
-PLcom/android/server/display/DisplayPowerController;->initialize(I)V
-PLcom/android/server/display/DisplayPowerController;->isProximitySensorAvailable()Z
 PLcom/android/server/display/DisplayPowerController;->loadBrightnessRampRates()V
 PLcom/android/server/display/DisplayPowerController;->loadNitsRange(Landroid/content/res/Resources;)V
-HPLcom/android/server/display/DisplayPowerController;->logBrightnessEvent(Lcom/android/server/display/brightness/BrightnessEvent;F)V
+HPLcom/android/server/display/DisplayPowerController;->logBrightnessEvent(Lcom/android/server/display/brightness/BrightnessEvent;FLcom/android/server/display/DisplayBrightnessState;)V
 PLcom/android/server/display/DisplayPowerController;->logDisplayPolicyChanged(I)V
-PLcom/android/server/display/DisplayPowerController;->nitsToRangeIndex(F)I
-PLcom/android/server/display/DisplayPowerController;->noteScreenBrightness(F)V
-PLcom/android/server/display/DisplayPowerController;->noteScreenState(I)V
-PLcom/android/server/display/DisplayPowerController;->notifyBrightnessTrackerChanged(FZZZZZ)V
-PLcom/android/server/display/DisplayPowerController;->onBootCompleted()V
-PLcom/android/server/display/DisplayPowerController;->postBrightnessChangeRunnable()V
-PLcom/android/server/display/DisplayPowerController;->readyToUpdateDisplayState()Z
-HPLcom/android/server/display/DisplayPowerController;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
-PLcom/android/server/display/DisplayPowerController;->saveBrightnessInfo(F)Z
+HPLcom/android/server/display/DisplayPowerController;->noteScreenBrightness(F)V
+HPLcom/android/server/display/DisplayPowerController;->notifyBrightnessTrackerChanged(FZZZZZ)V
+HPLcom/android/server/display/DisplayPowerController;->onDisplayChanged(Lcom/android/server/display/HighBrightnessModeMetadata;I)V
+HPLcom/android/server/display/DisplayPowerController;->postBrightnessChangeRunnable()V
+HPLcom/android/server/display/DisplayPowerController;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z+]Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;
 HPLcom/android/server/display/DisplayPowerController;->saveBrightnessInfo(FFLcom/android/server/display/DisplayBrightnessState;)Z
-PLcom/android/server/display/DisplayPowerController;->saveBrightnessInfo(FLcom/android/server/display/DisplayBrightnessState;)Z
 PLcom/android/server/display/DisplayPowerController;->sendOnStateChangedWithWakelock()V
 PLcom/android/server/display/DisplayPowerController;->sendUpdatePowerState()V
-PLcom/android/server/display/DisplayPowerController;->sendUpdatePowerStateLocked()V
-PLcom/android/server/display/DisplayPowerController;->setAnimatorRampSpeeds(Z)V
-PLcom/android/server/display/DisplayPowerController;->setDisplayOffloadSession(Landroid/hardware/display/DisplayManagerInternal$DisplayOffloadSession;)V
+HPLcom/android/server/display/DisplayPowerController;->sendUpdatePowerStateLocked()V
+HPLcom/android/server/display/DisplayPowerController;->setAnimatorRampSpeeds(Z)V
 PLcom/android/server/display/DisplayPowerController;->setReportedScreenState(I)V
-PLcom/android/server/display/DisplayPowerController;->setScreenState(I)Z
-PLcom/android/server/display/DisplayPowerController;->setScreenState(IZ)Z
+HPLcom/android/server/display/DisplayPowerController;->setScreenState(IIZ)Z+]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;
 PLcom/android/server/display/DisplayPowerController;->setUpAutoBrightness(Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/display/DisplayPowerController;->unblockScreenOff()V
 PLcom/android/server/display/DisplayPowerController;->unblockScreenOn()V
-PLcom/android/server/display/DisplayPowerController;->unblockScreenOnByDisplayOffload()V
-PLcom/android/server/display/DisplayPowerController;->updatePowerState()V
-HPLcom/android/server/display/DisplayPowerController;->updatePowerStateInternal()V
+HPLcom/android/server/display/DisplayPowerController;->unblockScreenOnByDisplayOffload()V
+HPLcom/android/server/display/DisplayPowerController;->updatePowerState()V+]Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/util/RingBuffer;Lcom/android/internal/util/RingBuffer;]Lcom/android/server/display/brightness/clamper/BrightnessStateModifier;megamorphic_types]Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;]Lcom/android/server/display/brightness/strategy/DisplayBrightnessStrategy;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;,Lcom/android/server/display/brightness/strategy/FallbackBrightnessStrategy;,Lcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;,Lcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/display/DisplayPowerProximityStateController$1;-><init>(Lcom/android/server/display/DisplayPowerProximityStateController;)V
 PLcom/android/server/display/DisplayPowerProximityStateController$DisplayPowerProximityStateHandler;-><init>(Lcom/android/server/display/DisplayPowerProximityStateController;Landroid/os/Looper;)V
-PLcom/android/server/display/DisplayPowerProximityStateController$Injector$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/display/DisplayPowerProximityStateController$Injector;-><init>()V
-PLcom/android/server/display/DisplayPowerProximityStateController$Injector;->createClock()Lcom/android/server/display/DisplayPowerProximityStateController$Clock;
-PLcom/android/server/display/DisplayPowerProximityStateController;-><init>(Lcom/android/server/display/WakelockController;Lcom/android/server/display/DisplayDeviceConfig;Landroid/os/Looper;Ljava/lang/Runnable;ILandroid/hardware/SensorManager;Lcom/android/server/display/DisplayPowerProximityStateController$Injector;)V
-PLcom/android/server/display/DisplayPowerProximityStateController;->isProximitySensorAvailable()Z
-PLcom/android/server/display/DisplayPowerProximityStateController;->isScreenOffBecauseOfProximity()Z
+PLcom/android/server/display/DisplayPowerProximityStateController;-><init>(Lcom/android/server/display/WakelockController;Lcom/android/server/display/DisplayDeviceConfig;Landroid/os/Looper;Lcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda1;ILandroid/hardware/SensorManager;)V
 PLcom/android/server/display/DisplayPowerProximityStateController;->loadProximitySensor()V
-HPLcom/android/server/display/DisplayPowerProximityStateController;->setPendingWaitForNegativeProximityLocked(Z)Z
-PLcom/android/server/display/DisplayPowerProximityStateController;->setProximitySensorEnabled(Z)V
-PLcom/android/server/display/DisplayPowerProximityStateController;->shouldSkipRampBecauseOfProximityChangeToNegative()Z
-PLcom/android/server/display/DisplayPowerProximityStateController;->updatePendingProximityRequestsLocked()V
-PLcom/android/server/display/DisplayPowerProximityStateController;->updateProximityState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;I)V
-PLcom/android/server/display/DisplayPowerState$1;-><init>(Ljava/lang/String;)V
-PLcom/android/server/display/DisplayPowerState$2;-><init>(Ljava/lang/String;)V
-PLcom/android/server/display/DisplayPowerState$2;->setValue(Lcom/android/server/display/DisplayPowerState;F)V
-PLcom/android/server/display/DisplayPowerState$2;->setValue(Ljava/lang/Object;F)V
-PLcom/android/server/display/DisplayPowerState$3;-><init>(Ljava/lang/String;)V
-PLcom/android/server/display/DisplayPowerState$3;->setValue(Lcom/android/server/display/DisplayPowerState;F)V
-PLcom/android/server/display/DisplayPowerState$3;->setValue(Ljava/lang/Object;F)V
-PLcom/android/server/display/DisplayPowerState$4;-><init>(Lcom/android/server/display/DisplayPowerState;)V
+HPLcom/android/server/display/DisplayPowerProximityStateController;->setProximitySensorEnabled(Z)V
+HPLcom/android/server/display/DisplayPowerProximityStateController;->updatePendingProximityRequestsLocked()V
+PLcom/android/server/display/DisplayPowerState$1;-><init>(Ljava/lang/String;I)V
+HPLcom/android/server/display/DisplayPowerState$1;->setValue(Ljava/lang/Object;F)V
+PLcom/android/server/display/DisplayPowerState$4;-><init>(Lcom/android/server/display/DisplayPowerState;I)V
 HPLcom/android/server/display/DisplayPowerState$4;->run()V
-PLcom/android/server/display/DisplayPowerState$5;-><init>(Lcom/android/server/display/DisplayPowerState;)V
 PLcom/android/server/display/DisplayPowerState$PhotonicModulator;-><init>(Lcom/android/server/display/DisplayPowerState;)V
 HPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->run()V
-PLcom/android/server/display/DisplayPowerState$PhotonicModulator;->setState(IFF)Z
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmBlanker(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayBlanker;
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmColorFadeLevel(Lcom/android/server/display/DisplayPowerState;)F
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmDisplayId(Lcom/android/server/display/DisplayPowerState;)I
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmPhotonicModulator(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayPowerState$PhotonicModulator;
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmScreenBrightness(Lcom/android/server/display/DisplayPowerState;)F
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmScreenState(Lcom/android/server/display/DisplayPowerState;)I
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fgetmSdrScreenBrightness(Lcom/android/server/display/DisplayPowerState;)F
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fputmScreenReady(Lcom/android/server/display/DisplayPowerState;Z)V
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$fputmScreenUpdatePending(Lcom/android/server/display/DisplayPowerState;Z)V
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$minvokeCleanListenerIfNeeded(Lcom/android/server/display/DisplayPowerState;)V
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$mpostScreenUpdateThreadSafe(Lcom/android/server/display/DisplayPowerState;)V
-PLcom/android/server/display/DisplayPowerState;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/display/DisplayPowerState;-><clinit>()V
-PLcom/android/server/display/DisplayPowerState;-><init>(Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/ColorFade;II)V
 PLcom/android/server/display/DisplayPowerState;-><init>(Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/ColorFade;IILjava/util/concurrent/Executor;)V
-PLcom/android/server/display/DisplayPowerState;->dismissColorFade()V
-PLcom/android/server/display/DisplayPowerState;->getColorFadeLevel()F
-PLcom/android/server/display/DisplayPowerState;->getScreenBrightness()F
-PLcom/android/server/display/DisplayPowerState;->getScreenState()I
-PLcom/android/server/display/DisplayPowerState;->getSdrScreenBrightness()F
-PLcom/android/server/display/DisplayPowerState;->invokeCleanListenerIfNeeded()V
-PLcom/android/server/display/DisplayPowerState;->postScreenUpdateThreadSafe()V
-PLcom/android/server/display/DisplayPowerState;->scheduleScreenUpdate()V
+HPLcom/android/server/display/DisplayPowerState;->dismissColorFade()V
+HPLcom/android/server/display/DisplayPowerState;->scheduleScreenUpdate()V
 PLcom/android/server/display/DisplayPowerState;->setColorFadeLevel(F)V
-PLcom/android/server/display/DisplayPowerState;->setScreenBrightness(F)V
-PLcom/android/server/display/DisplayPowerState;->setSdrScreenBrightness(F)V
-PLcom/android/server/display/DisplayPowerState;->waitUntilClean(Ljava/lang/Runnable;)Z
+HPLcom/android/server/display/DisplayPowerState;->waitUntilClean(Lcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda1;)Z
 PLcom/android/server/display/ExternalDisplayPolicy$SkinThermalStatusObserver;-><init>(Lcom/android/server/display/ExternalDisplayPolicy;)V
-PLcom/android/server/display/ExternalDisplayPolicy$SkinThermalStatusObserver;-><init>(Lcom/android/server/display/ExternalDisplayPolicy;Lcom/android/server/display/ExternalDisplayPolicy$SkinThermalStatusObserver-IA;)V
 PLcom/android/server/display/ExternalDisplayPolicy$SkinThermalStatusObserver;->notifyThrottling(Landroid/os/Temperature;)V
-PLcom/android/server/display/ExternalDisplayPolicy;->-$$Nest$fgetmStatus(Lcom/android/server/display/ExternalDisplayPolicy;)I
-PLcom/android/server/display/ExternalDisplayPolicy;->-$$Nest$fputmStatus(Lcom/android/server/display/ExternalDisplayPolicy;I)V
 HSPLcom/android/server/display/ExternalDisplayPolicy;-><clinit>()V
-HSPLcom/android/server/display/ExternalDisplayPolicy;-><init>(Lcom/android/server/display/ExternalDisplayPolicy$Injector;)V
-HSPLcom/android/server/display/ExternalDisplayPolicy;->isExternalDisplay(Lcom/android/server/display/LogicalDisplay;)Z
-PLcom/android/server/display/ExternalDisplayPolicy;->onBootCompleted()V
-PLcom/android/server/display/ExternalDisplayPolicy;->registerThermalServiceListener(Landroid/os/IThermalEventListener$Stub;)Z
+HSPLcom/android/server/display/ExternalDisplayPolicy;-><init>(Lcom/android/server/display/DisplayManagerService$1;)V
+HSPLcom/android/server/display/ExternalDisplayPolicy;->isExternalDisplayLocked(Lcom/android/server/display/LogicalDisplay;)Z
+HSPLcom/android/server/display/ExternalDisplayStatsService$1$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/ExternalDisplayStatsService$1;I)V
+HSPLcom/android/server/display/ExternalDisplayStatsService$1;-><init>(Lcom/android/server/display/ExternalDisplayStatsService;)V
+HSPLcom/android/server/display/ExternalDisplayStatsService$2;-><init>(Lcom/android/server/display/ExternalDisplayStatsService;)V
+HSPLcom/android/server/display/ExternalDisplayStatsService$Injector;-><init>(Landroid/content/Context;Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;Lcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda5;)V
+HSPLcom/android/server/display/ExternalDisplayStatsService;-><clinit>()V
+HSPLcom/android/server/display/ExternalDisplayStatsService;-><init>(Lcom/android/server/display/ExternalDisplayStatsService$Injector;)V
 PLcom/android/server/display/HighBrightnessModeController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/HighBrightnessModeController;)V
+PLcom/android/server/display/HighBrightnessModeController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/HighBrightnessModeController;Ljava/io/PrintWriter;)V
+PLcom/android/server/display/HighBrightnessModeController$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/display/HighBrightnessModeController$HdrListener;-><init>(Lcom/android/server/display/HighBrightnessModeController;)V
-PLcom/android/server/display/HighBrightnessModeController$Injector$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/display/HighBrightnessModeController$Injector;-><init>()V
-PLcom/android/server/display/HighBrightnessModeController$Injector;->getClock()Lcom/android/server/display/DisplayManagerService$Clock;
 PLcom/android/server/display/HighBrightnessModeController$SettingsObserver;-><init>(Lcom/android/server/display/HighBrightnessModeController;Landroid/os/Handler;)V
-PLcom/android/server/display/HighBrightnessModeController$SettingsObserver;->stopObserving()V
-PLcom/android/server/display/HighBrightnessModeController;->-$$Nest$fputmIsBlockedByLowPowerMode(Lcom/android/server/display/HighBrightnessModeController;Z)V
+PLcom/android/server/display/HighBrightnessModeController$SettingsObserver;->updateLowPower()V
 PLcom/android/server/display/HighBrightnessModeController;-><clinit>()V
-PLcom/android/server/display/HighBrightnessModeController;-><init>(Landroid/os/Handler;IILandroid/os/IBinder;Ljava/lang/String;FFLcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;Lcom/android/server/display/HighBrightnessModeController$HdrBrightnessDeviceConfig;Ljava/lang/Runnable;Lcom/android/server/display/HighBrightnessModeMetadata;Landroid/content/Context;)V
-PLcom/android/server/display/HighBrightnessModeController;-><init>(Lcom/android/server/display/HighBrightnessModeController$Injector;Landroid/os/Handler;IILandroid/os/IBinder;Ljava/lang/String;FFLcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;Lcom/android/server/display/HighBrightnessModeController$HdrBrightnessDeviceConfig;Ljava/lang/Runnable;Lcom/android/server/display/HighBrightnessModeMetadata;Landroid/content/Context;)V
-PLcom/android/server/display/HighBrightnessModeController;->deviceSupportsHbm()Z
-PLcom/android/server/display/HighBrightnessModeController;->getCurrentBrightnessMax()F
-PLcom/android/server/display/HighBrightnessModeController;->getCurrentBrightnessMin()F
-PLcom/android/server/display/HighBrightnessModeController;->getHighBrightnessMode()I
-PLcom/android/server/display/HighBrightnessModeController;->getTransitionPoint()F
-PLcom/android/server/display/HighBrightnessModeController;->onBrightnessChanged(FFI)V
-PLcom/android/server/display/HighBrightnessModeController;->resetHbmData(IILandroid/os/IBinder;Ljava/lang/String;Lcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;Lcom/android/server/display/HighBrightnessModeController$HdrBrightnessDeviceConfig;)V
-PLcom/android/server/display/HighBrightnessModeController;->setAutoBrightnessEnabled(I)V
-PLcom/android/server/display/HighBrightnessModeController;->unregisterHdrListener()V
+PLcom/android/server/display/HighBrightnessModeController;-><init>(Lcom/android/server/display/HighBrightnessModeController$Injector;Landroid/os/Handler;IILandroid/os/IBinder;Ljava/lang/String;FFLcom/android/server/display/config/HighBrightnessModeData;Lcom/android/server/display/HighBrightnessModeController$HdrBrightnessDeviceConfig;Ljava/lang/Runnable;Lcom/android/server/display/HighBrightnessModeMetadata;Landroid/content/Context;)V
+HPLcom/android/server/display/HighBrightnessModeController;->calculateRemainingTime(J)J+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator;
+HPLcom/android/server/display/HighBrightnessModeController;->deviceSupportsHbm()Z
+HPLcom/android/server/display/HighBrightnessModeController;->getCurrentBrightnessMax()F
+HPLcom/android/server/display/HighBrightnessModeController;->isHbmCurrentlyAllowed()Z
+HPLcom/android/server/display/HighBrightnessModeController;->onBrightnessChanged(FFI)V
+HPLcom/android/server/display/HighBrightnessModeController;->recalculateTimeAllowance()V
+PLcom/android/server/display/HighBrightnessModeController;->resetHbmData(IILandroid/os/IBinder;Ljava/lang/String;Lcom/android/server/display/config/HighBrightnessModeData;Lcom/android/server/display/HighBrightnessModeController$HdrBrightnessDeviceConfig;)V
+HPLcom/android/server/display/HighBrightnessModeController;->updateHbmMode()V
+PLcom/android/server/display/HighBrightnessModeMetadata;-><init>()V
 HSPLcom/android/server/display/HighBrightnessModeMetadataMapper;-><init>()V
-PLcom/android/server/display/HighBrightnessModeMetadataMapper;->getHighBrightnessModeMetadataLocked(Lcom/android/server/display/LogicalDisplay;)Lcom/android/server/display/HighBrightnessModeMetadata;
+HPLcom/android/server/display/HighBrightnessModeMetadataMapper;->getHighBrightnessModeMetadataLocked(Lcom/android/server/display/LogicalDisplay;)Lcom/android/server/display/HighBrightnessModeMetadata;
 HSPLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;-><init>(Landroid/os/IBinder;ZLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;)V
-PLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;->setBacklight(FFFF)V
-HSPLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;->setForceSurfaceControl(Z)V
+HPLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;->setBacklight(FFFF)V
+PLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;-><init>(Landroid/view/SurfaceControl$DisplayMode;[F)V
 HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->hasMatchingMode(Landroid/view/SurfaceControl$DisplayMode;)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$Injector;-><init>()V
-HSPLcom/android/server/display/LocalDisplayAdapter$Injector;->createDisplayDeviceConfig(Landroid/content/Context;JZLcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/LocalDisplayAdapter$Injector;->getSurfaceControlProxy()Lcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;
-HSPLcom/android/server/display/LocalDisplayAdapter$Injector;->setDisplayEventListenerLocked(Landroid/os/Looper;Lcom/android/server/display/LocalDisplayAdapter$DisplayEventListener;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->toString()Ljava/lang/String;
+PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;-><init>(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;IIZFFJLcom/android/server/display/DisplayOffloadSessionImpl;Landroid/os/IBinder;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->backlightToNits(F)F
+HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;-><init>(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;IIZFFJLcom/android/server/display/DisplayOffloadSessionImpl;Landroid/os/IBinder;)V
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->brightnessToBacklight(F)F
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->run()V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setCommittedState(I)V
-HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayBrightness(FF)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayState(I)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->$r8$lambda$nQXuR3rRi3rSRLFK9tosCrQw4ig(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->-$$Nest$fgetmBacklightAdapter(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Lcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->-$$Nest$fputmBrightnessState(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;F)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->-$$Nest$fputmCommittedState(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;I)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->-$$Nest$fputmSdrBrightnessState(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;F)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->-$$Nest$mupdateDeviceInfoLocked(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)V
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;-><clinit>()V
+HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->run()V
+HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayState(I)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;-><init>(Lcom/android/server/display/LocalDisplayAdapter;Landroid/os/IBinder;JLandroid/view/SurfaceControl$StaticDisplayInfo;Landroid/view/SurfaceControl$DynamicDisplayInfo;Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;Z)V
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->applyPendingDisplayDeviceInfoChangesLocked()V
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayModeRecord(Landroid/view/SurfaceControl$DisplayMode;Ljava/util/List;)Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;
+PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->dumpLocked(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findMatchingModeIdLocked(I)I
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findSfDisplayModeIdLocked(II)I
+HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findSfDisplayModeIdLocked(II)I
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findUserPreferredModeIdLocked(Landroid/view/Display$Mode;)I
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getDisplayDeviceConfig()Lcom/android/server/display/DisplayDeviceConfig;
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getDisplayDeviceInfoLocked()Lcom/android/server/display/DisplayDeviceInfo;
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getDisplayModes(Landroid/util/SparseArray;)[Landroid/view/Display$Mode;
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getLogicalDensity()I
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getDisplayDeviceInfoLocked()Lcom/android/server/display/DisplayDeviceInfo;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getModeById([Landroid/view/SurfaceControl$DisplayMode;I)Landroid/view/SurfaceControl$DisplayMode;
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getPreferredModeId()I
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->hasStableUniqueId()Z
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->loadDisplayDeviceConfig()V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActiveDisplayModeChangedLocked(IF)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onFrameRateOverridesChanged([Landroid/view/DisplayEventReceiver$FrameRateOverride;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeLocked(I)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestDisplayStateLocked(IFFLcom/android/server/display/DisplayOffloadSessionImpl;)Ljava/lang/Runnable;
+HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestDisplayStateLocked(IFFLcom/android/server/display/DisplayOffloadSessionImpl;)Ljava/lang/Runnable;
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setAutoLowLatencyModeLocked(Z)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setDesiredDisplayModeSpecsAsync(Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;)V
 HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setDesiredDisplayModeSpecsLocked(Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;)V
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setGameContentTypeLocked(Z)V
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setRequestedColorModeLocked(I)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateActiveModeLocked(IF)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateAllmSupport(Z)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateColorModesLocked([II)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setUserPreferredDisplayModeLocked(Landroid/view/Display$Mode;)V
 PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDeviceInfoLocked()V
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDisplayModesLocked([Landroid/view/SurfaceControl$DisplayMode;IIFLandroid/view/SurfaceControl$DesiredDisplayModeSpecs;)Z
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDisplayPropertiesLocked(Landroid/view/SurfaceControl$StaticDisplayInfo;Landroid/view/SurfaceControl$DynamicDisplayInfo;Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;)Z
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateFrameRateOverridesLocked([Landroid/view/DisplayEventReceiver$FrameRateOverride;)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateGameContentTypeSupport(Z)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateHdrCapabilitiesLocked(Landroid/view/Display$HdrCapabilities;)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateStaticInfo(Landroid/view/SurfaceControl$StaticDisplayInfo;)Z
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;-><init>(Lcom/android/server/display/LocalDisplayAdapter;)V
-HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;-><init>(Lcom/android/server/display/LocalDisplayAdapter;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener-IA;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;->onFrameRateOverridesChanged(JJ[Landroid/view/DisplayEventReceiver$FrameRateOverride;)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;->onModeChanged(JJIJ)V
-HSPLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;-><init>(Landroid/os/Looper;Lcom/android/server/display/LocalDisplayAdapter$DisplayEventListener;)V
-PLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;->onFrameRateOverridesChanged(JJ[Landroid/view/DisplayEventReceiver$FrameRateOverride;)V
+HSPLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;-><init>(Landroid/os/Looper;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;)V
 PLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;->onModeChanged(JJIJ)V
 HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;-><init>()V
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getBootDisplayModeSupport()Z
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getDesiredDisplayModeSpecs(Landroid/os/IBinder;)Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getDisplayBrightnessSupport(Landroid/os/IBinder;)Z
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getDynamicDisplayInfo(J)Landroid/view/SurfaceControl$DynamicDisplayInfo;
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getPhysicalDisplayIds()[J
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getPhysicalDisplayToken(J)Landroid/os/IBinder;
-HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getStaticDisplayInfo(J)Landroid/view/SurfaceControl$StaticDisplayInfo;
-PLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->setDesiredDisplayModeSpecs(Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;)Z
-PLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->setDisplayPowerMode(Landroid/os/IBinder;I)V
-PLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$fgetmDevices(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
-HSPLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$fgetmInjector(Lcom/android/server/display/LocalDisplayAdapter;)Lcom/android/server/display/LocalDisplayAdapter$Injector;
-HSPLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$fgetmSurfaceControlProxy(Lcom/android/server/display/LocalDisplayAdapter;)Lcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;
-HSPLcom/android/server/display/LocalDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/notifications/DisplayNotificationManager;)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;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/notifications/DisplayNotificationManager;Lcom/android/server/display/LocalDisplayAdapter$Injector;)V
-HSPLcom/android/server/display/LocalDisplayAdapter;->getOverlayContext()Landroid/content/Context;
-PLcom/android/server/display/LocalDisplayAdapter;->getPowerModeForState(I)I
 HSPLcom/android/server/display/LocalDisplayAdapter;->registerLocked()V
 HSPLcom/android/server/display/LocalDisplayAdapter;->tryConnectDisplayLocked(J)V
 HSPLcom/android/server/display/LogicalDisplay;-><clinit>()V
-HSPLcom/android/server/display/LogicalDisplay;-><init>(IILcom/android/server/display/DisplayDevice;)V
-HPLcom/android/server/display/LogicalDisplay;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;Z)V
-PLcom/android/server/display/LogicalDisplay;->getDesiredDisplayModeSpecsLocked()Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;
-HSPLcom/android/server/display/LogicalDisplay;->getDisplayGroupNameLocked()Ljava/lang/String;
-HSPLcom/android/server/display/LogicalDisplay;->getDisplayIdLocked()I
+HSPLcom/android/server/display/LogicalDisplay;-><init>(IILcom/android/server/display/DisplayDevice;ZZ)V
+PLcom/android/server/display/LogicalDisplay;->dumpLocked(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/LogicalDisplay;->getDisplayInfoLocked()Landroid/view/DisplayInfo;
-PLcom/android/server/display/LogicalDisplay;->getDisplayOffloadSessionLocked()Lcom/android/server/display/DisplayOffloadSessionImpl;
-HSPLcom/android/server/display/LogicalDisplay;->getFrameRateOverrides()[Landroid/view/DisplayEventReceiver$FrameRateOverride;
-PLcom/android/server/display/LogicalDisplay;->getInsets()Landroid/graphics/Rect;
-PLcom/android/server/display/LogicalDisplay;->getLeadDisplayIdLocked()I
 HSPLcom/android/server/display/LogicalDisplay;->getMaskingInsets(Lcom/android/server/display/DisplayDeviceInfo;)Landroid/graphics/Rect;
-HSPLcom/android/server/display/LogicalDisplay;->getNonOverrideDisplayInfoLocked(Landroid/view/DisplayInfo;)V
-PLcom/android/server/display/LogicalDisplay;->getPowerThrottlingDataIdLocked()Ljava/lang/String;
-HSPLcom/android/server/display/LogicalDisplay;->getPrimaryDisplayDeviceLocked()Lcom/android/server/display/DisplayDevice;
-PLcom/android/server/display/LogicalDisplay;->getRequestedMinimalPostProcessingLocked()Z
-PLcom/android/server/display/LogicalDisplay;->hasContentLocked()Z
-HSPLcom/android/server/display/LogicalDisplay;->isDirtyLocked()Z
-HSPLcom/android/server/display/LogicalDisplay;->isEnabledLocked()Z
-PLcom/android/server/display/LogicalDisplay;->isInTransitionLocked()Z
-HSPLcom/android/server/display/LogicalDisplay;->isValidLocked()Z
-PLcom/android/server/display/LogicalDisplay;->setDesiredDisplayModeSpecsLocked(Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;)V
-HSPLcom/android/server/display/LogicalDisplay;->setDevicePositionLocked(I)V
-HSPLcom/android/server/display/LogicalDisplay;->setDisplayGroupNameLocked(Ljava/lang/String;)V
-PLcom/android/server/display/LogicalDisplay;->setDisplayInfoOverrideFromWindowManagerLocked(Landroid/view/DisplayInfo;)Z
-PLcom/android/server/display/LogicalDisplay;->setDisplayOffloadSessionLocked(Lcom/android/server/display/DisplayOffloadSessionImpl;)V
-HSPLcom/android/server/display/LogicalDisplay;->setLeadDisplayLocked(I)V
-HSPLcom/android/server/display/LogicalDisplay;->setPowerThrottlingDataIdLocked(Ljava/lang/String;)V
 HSPLcom/android/server/display/LogicalDisplay;->setPrimaryDisplayDeviceLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/DisplayDevice;
-HSPLcom/android/server/display/LogicalDisplay;->setRequestedColorModeLocked(I)V
-HSPLcom/android/server/display/LogicalDisplay;->setThermalBrightnessThrottlingDataIdLocked(Ljava/lang/String;)V
-HSPLcom/android/server/display/LogicalDisplay;->swapDisplaysLocked(Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/LogicalDisplay;->updateDisplayGroupIdLocked(I)V
-HSPLcom/android/server/display/LogicalDisplay;->updateFrameRateOverrides(Lcom/android/server/display/DisplayDeviceInfo;)V
-HSPLcom/android/server/display/LogicalDisplay;->updateLayoutLimitedRefreshRateLocked(Landroid/view/SurfaceControl$RefreshRateRange;)V
-HSPLcom/android/server/display/LogicalDisplay;->updateLocked(Lcom/android/server/display/DisplayDeviceRepository;)V
-HSPLcom/android/server/display/LogicalDisplay;->updateThermalRefreshRateThrottling(Landroid/util/SparseArray;)V
-HSPLcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda3;-><init>()V
-HSPLcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda3;->getId(Z)I
+HSPLcom/android/server/display/LogicalDisplay;->updateLocked(Lcom/android/server/display/DisplayDeviceRepository;Lcom/android/server/display/mode/SyntheticModeManager;)V
+HSPLcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda2;-><init>(I)V
+HSPLcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda2;->getId(Z)I
 HSPLcom/android/server/display/LogicalDisplayMapper$LogicalDisplayMapperHandler;-><init>(Lcom/android/server/display/LogicalDisplayMapper;Landroid/os/Looper;)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->$r8$lambda$CLkgta2MkaptkxpiszN50MW0yV0(Z)I
 HSPLcom/android/server/display/LogicalDisplayMapper;-><clinit>()V
-HSPLcom/android/server/display/LogicalDisplayMapper;-><init>(Landroid/content/Context;Lcom/android/server/utils/FoldSettingProvider;Lcom/android/server/display/DisplayDeviceRepository;Lcom/android/server/display/LogicalDisplayMapper$Listener;Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/os/Handler;Lcom/android/server/display/DeviceStateToLayoutMap;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/LogicalDisplayMapper;-><init>(Landroid/content/Context;Lcom/android/server/utils/FoldSettingProvider;Lcom/android/server/display/DisplayDeviceRepository;Lcom/android/server/display/LogicalDisplayMapper$Listener;Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/os/Handler;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+HSPLcom/android/server/display/LogicalDisplayMapper;-><init>(Landroid/content/Context;Lcom/android/server/utils/FoldSettingProvider;Lcom/android/internal/foldables/FoldGracePeriodProvider;Lcom/android/server/display/DisplayDeviceRepository;Lcom/android/server/display/DisplayManagerService$1;Lcom/android/server/display/DisplayManagerService$SyncRoot;Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;Lcom/android/server/display/feature/DisplayManagerFlags;)V
 HSPLcom/android/server/display/LogicalDisplayMapper;->applyLayoutLocked()V
 PLcom/android/server/display/LogicalDisplayMapper;->areAllTransitioningDisplaysOffLocked()Z
-HSPLcom/android/server/display/LogicalDisplayMapper;->assignDisplayGroupIdLocked(ZLjava/lang/String;ZLjava/lang/Integer;)I
-HSPLcom/android/server/display/LogicalDisplayMapper;->assignDisplayGroupLocked(Lcom/android/server/display/LogicalDisplay;)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->assignLayerStackLocked(I)I
 HSPLcom/android/server/display/LogicalDisplayMapper;->createNewLogicalDisplayLocked(Lcom/android/server/display/DisplayDevice;I)Lcom/android/server/display/LogicalDisplay;
-PLcom/android/server/display/LogicalDisplayMapper;->finishStateTransitionLocked(Z)V
-PLcom/android/server/display/LogicalDisplayMapper;->forEachLocked(Ljava/util/function/Consumer;)V
-HPLcom/android/server/display/LogicalDisplayMapper;->forEachLocked(Ljava/util/function/Consumer;Z)V
+PLcom/android/server/display/LogicalDisplayMapper;->dumpLocked(Ljava/io/PrintWriter;)V
+HPLcom/android/server/display/LogicalDisplayMapper;->finishStateTransitionLocked(Z)V
+HPLcom/android/server/display/LogicalDisplayMapper;->forEachLocked(Ljava/util/function/Consumer;Z)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/function/Consumer;Lcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda7;
 HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayGroupIdFromDisplayIdLocked(I)I
-HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayGroupLocked(I)Lcom/android/server/display/DisplayGroup;
-HPLcom/android/server/display/LogicalDisplayMapper;->getDisplayIdsLocked(IZ)[I
-HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayLocked(I)Lcom/android/server/display/LogicalDisplay;
-HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayLocked(IZ)Lcom/android/server/display/LogicalDisplay;
-HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/LogicalDisplay;
-HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayLocked(Lcom/android/server/display/DisplayDevice;Z)Lcom/android/server/display/LogicalDisplay;
-HSPLcom/android/server/display/LogicalDisplayMapper;->handleDisplayDeviceAddedLocked(Lcom/android/server/display/DisplayDevice;)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->initializeDefaultDisplayDeviceLocked(Lcom/android/server/display/DisplayDevice;)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->lambda$new$0(Z)I
-PLcom/android/server/display/LogicalDisplayMapper;->onBootCompleted()V
-PLcom/android/server/display/LogicalDisplayMapper;->onDisplayDeviceChangedLocked(Lcom/android/server/display/DisplayDevice;I)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->onDisplayDeviceEventLocked(Lcom/android/server/display/DisplayDevice;I)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->onTraversalRequested()V
+HPLcom/android/server/display/LogicalDisplayMapper;->getDisplayIdsForGroupLocked(I)[I
+PLcom/android/server/display/LogicalDisplayMapper;->getDisplayInfoForStateLocked(II)Landroid/view/DisplayInfo;
+HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayLocked(IZ)Lcom/android/server/display/LogicalDisplay;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HSPLcom/android/server/display/LogicalDisplayMapper;->getDisplayLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/LogicalDisplay;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/display/LogicalDisplayMapper;->resetLayoutLocked(IIZ)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->sendUpdatesForDisplaysLocked(I)V
+HSPLcom/android/server/display/LogicalDisplayMapper;->sendUpdatesForDisplaysLocked(I)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 HSPLcom/android/server/display/LogicalDisplayMapper;->sendUpdatesForGroupsLocked(I)V
-PLcom/android/server/display/LogicalDisplayMapper;->setDeviceStateLocked(IZ)V
+PLcom/android/server/display/LogicalDisplayMapper;->setDeviceStateLocked(Landroid/hardware/devicestate/DeviceState;)V
 HSPLcom/android/server/display/LogicalDisplayMapper;->setEnabledLocked(Lcom/android/server/display/LogicalDisplay;Z)V
-PLcom/android/server/display/LogicalDisplayMapper;->shouldDeviceBePutToSleep(IIZZZ)Z
-PLcom/android/server/display/LogicalDisplayMapper;->shouldDeviceBeWoken(IIZZ)Z
-HSPLcom/android/server/display/LogicalDisplayMapper;->toSparseBooleanArray([I)Landroid/util/SparseBooleanArray;
+PLcom/android/server/display/LogicalDisplayMapper;->shouldDeviceBePutToSleep(Landroid/hardware/devicestate/DeviceState;Landroid/hardware/devicestate/DeviceState;ZZ)Z
+PLcom/android/server/display/LogicalDisplayMapper;->shouldDeviceBeWoken(Landroid/hardware/devicestate/DeviceState;Landroid/hardware/devicestate/DeviceState;ZZ)Z
 PLcom/android/server/display/LogicalDisplayMapper;->transitionToPendingStateLocked()V
-HSPLcom/android/server/display/LogicalDisplayMapper;->updateLogicalDisplaysLocked()V
-HSPLcom/android/server/display/LogicalDisplayMapper;->updateLogicalDisplaysLocked(I)V
-HSPLcom/android/server/display/LogicalDisplayMapper;->updateLogicalDisplaysLocked(IZ)V
-PLcom/android/server/display/NormalBrightnessModeController;-><init>()V
-PLcom/android/server/display/NormalBrightnessModeController;->getCurrentBrightnessMax()F
-PLcom/android/server/display/NormalBrightnessModeController;->recalculateMaxBrightness()Z
-PLcom/android/server/display/NormalBrightnessModeController;->resetNbmData(Ljava/util/Map;)Z
-PLcom/android/server/display/NormalBrightnessModeController;->setAutoBrightnessState(I)Z
+HPLcom/android/server/display/LogicalDisplayMapper;->updateAndGetMaskForDisplayPropertyChanges(Landroid/view/DisplayInfo;)I
+HSPLcom/android/server/display/LogicalDisplayMapper;->updateLogicalDisplaysLocked$1()V
+HSPLcom/android/server/display/LogicalDisplayMapper;->updateLogicalDisplaysLocked(IZ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/display/NormalBrightnessModeController;->recalculateMaxBrightness()Z
 PLcom/android/server/display/OverlayDisplayAdapter$1$1;-><init>(Lcom/android/server/display/OverlayDisplayAdapter$1;Landroid/os/Handler;)V
 PLcom/android/server/display/OverlayDisplayAdapter$1;-><init>(Lcom/android/server/display/OverlayDisplayAdapter;)V
 PLcom/android/server/display/OverlayDisplayAdapter$1;->run()V
-PLcom/android/server/display/OverlayDisplayAdapter;->-$$Nest$mupdateOverlayDisplayDevices(Lcom/android/server/display/OverlayDisplayAdapter;)V
 PLcom/android/server/display/OverlayDisplayAdapter;-><clinit>()V
 PLcom/android/server/display/OverlayDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Landroid/os/Handler;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/OverlayDisplayAdapter;->registerLocked()V
-PLcom/android/server/display/OverlayDisplayAdapter;->updateOverlayDisplayDevices()V
+PLcom/android/server/display/OverlayDisplayAdapter;->dumpLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/OverlayDisplayAdapter;->updateOverlayDisplayDevicesLocked()V
+PLcom/android/server/display/PersistentDataStore$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/PersistentDataStore;Ljava/io/ByteArrayOutputStream;)V
+PLcom/android/server/display/PersistentDataStore$$ExternalSyntheticLambda0;->run()V
 HSPLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;-><init>()V
-PLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->getBrightnessConfiguration(I)Landroid/hardware/display/BrightnessConfiguration;
+PLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->loadFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)V
+PLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;)V
+HSPLcom/android/server/display/PersistentDataStore$DisplayState;-><init>()V
+HPLcom/android/server/display/PersistentDataStore$DisplayState;->getBrightness(I)F
 HSPLcom/android/server/display/PersistentDataStore$Injector;-><init>()V
-HSPLcom/android/server/display/PersistentDataStore$Injector;->openRead()Ljava/io/InputStream;
-HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->-$$Nest$mgetDisplaySize(Lcom/android/server/display/PersistentDataStore$StableDeviceValues;)Landroid/graphics/Point;
-HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;-><init>()V
-HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;-><init>(Lcom/android/server/display/PersistentDataStore$StableDeviceValues-IA;)V
-HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->getDisplaySize()Landroid/graphics/Point;
-HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->loadFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->loadIntValue(Lcom/android/modules/utils/TypedXmlPullParser;)I
-HSPLcom/android/server/display/PersistentDataStore;-><init>()V
+PLcom/android/server/display/PersistentDataStore$Injector;->finishWrite(Ljava/io/OutputStream;)V
 HSPLcom/android/server/display/PersistentDataStore;-><init>(Lcom/android/server/display/PersistentDataStore$Injector;)V
 HSPLcom/android/server/display/PersistentDataStore;-><init>(Lcom/android/server/display/PersistentDataStore$Injector;Landroid/os/Handler;)V
-HSPLcom/android/server/display/PersistentDataStore;->clearState()V
-PLcom/android/server/display/PersistentDataStore;->getBrightness(Lcom/android/server/display/DisplayDevice;I)F
-PLcom/android/server/display/PersistentDataStore;->getBrightnessConfiguration(I)Landroid/hardware/display/BrightnessConfiguration;
-PLcom/android/server/display/PersistentDataStore;->getBrightnessConfigurationForDisplayLocked(Ljava/lang/String;I)Landroid/hardware/display/BrightnessConfiguration;
-HSPLcom/android/server/display/PersistentDataStore;->getColorMode(Lcom/android/server/display/DisplayDevice;)I
+PLcom/android/server/display/PersistentDataStore;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/PersistentDataStore;->getDisplayState(Ljava/lang/String;Z)Lcom/android/server/display/PersistentDataStore$DisplayState;
-HSPLcom/android/server/display/PersistentDataStore;->getStableDisplaySize()Landroid/graphics/Point;
-HSPLcom/android/server/display/PersistentDataStore;->getUserPreferredRefreshRate(Lcom/android/server/display/DisplayDevice;)F
-HSPLcom/android/server/display/PersistentDataStore;->getUserPreferredResolution(Lcom/android/server/display/DisplayDevice;)Landroid/graphics/Point;
-HSPLcom/android/server/display/PersistentDataStore;->load()V
-HSPLcom/android/server/display/PersistentDataStore;->loadDisplaysFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/display/PersistentDataStore;->loadFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/display/PersistentDataStore;->loadIfNeeded()V
-HSPLcom/android/server/display/PersistentDataStore;->loadRememberedWifiDisplaysFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)V
-PLcom/android/server/display/PersistentDataStore;->saveIfNeeded()V
-PLcom/android/server/display/RampAnimator$$ExternalSyntheticLambda0;-><init>()V
+HSPLcom/android/server/display/PersistentDataStore;->saveIfNeeded()V
+HPLcom/android/server/display/PersistentDataStore;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;)V
+HPLcom/android/server/display/PersistentDataStore;->setBrightness(Lcom/android/server/display/DisplayDevice;FI)V
 PLcom/android/server/display/RampAnimator$DualRampAnimator$1;-><init>(Lcom/android/server/display/RampAnimator$DualRampAnimator;)V
-PLcom/android/server/display/RampAnimator$DualRampAnimator;-><init>(Ljava/lang/Object;Landroid/util/FloatProperty;Landroid/util/FloatProperty;)V
-PLcom/android/server/display/RampAnimator$DualRampAnimator;->animateTo(FFFZ)Z
-PLcom/android/server/display/RampAnimator$DualRampAnimator;->isAnimating()Z
-PLcom/android/server/display/RampAnimator$DualRampAnimator;->setAnimationTimeLimits(JJ)V
-PLcom/android/server/display/RampAnimator$DualRampAnimator;->setListener(Lcom/android/server/display/RampAnimator$Listener;)V
+PLcom/android/server/display/RampAnimator$DualRampAnimator;-><init>(Ljava/lang/Object;Lcom/android/server/display/DisplayPowerState$1;Lcom/android/server/display/DisplayPowerState$1;)V
+HPLcom/android/server/display/RampAnimator$DualRampAnimator;->isAnimating()Z
 PLcom/android/server/display/RampAnimator;-><init>(Ljava/lang/Object;Landroid/util/FloatProperty;)V
-PLcom/android/server/display/RampAnimator;-><init>(Ljava/lang/Object;Landroid/util/FloatProperty;Lcom/android/server/display/RampAnimator$Clock;)V
-PLcom/android/server/display/RampAnimator;->isAnimating()Z
-PLcom/android/server/display/RampAnimator;->setAnimationTarget(FFFF)Z
-PLcom/android/server/display/RampAnimator;->setAnimationTarget(FFZ)Z
+HPLcom/android/server/display/RampAnimator;->setAnimationTarget(FFZ)Z
 PLcom/android/server/display/RampAnimator;->setAnimationTimeLimits(JJ)V
-PLcom/android/server/display/RampAnimator;->setPropertyValue(F)V
 PLcom/android/server/display/SmallAreaDetectionController$OnPropertiesChangedListener;-><init>(Lcom/android/server/display/SmallAreaDetectionController;)V
-PLcom/android/server/display/SmallAreaDetectionController$OnPropertiesChangedListener;-><init>(Lcom/android/server/display/SmallAreaDetectionController;Lcom/android/server/display/SmallAreaDetectionController$OnPropertiesChangedListener-IA;)V
+PLcom/android/server/display/SmallAreaDetectionController$OnPropertiesChangedListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/display/SmallAreaDetectionController$PackageReceiver;-><init>(Lcom/android/server/display/SmallAreaDetectionController;)V
-PLcom/android/server/display/SmallAreaDetectionController$PackageReceiver;-><init>(Lcom/android/server/display/SmallAreaDetectionController;Lcom/android/server/display/SmallAreaDetectionController$PackageReceiver-IA;)V
+PLcom/android/server/display/SmallAreaDetectionController$PackageReceiver;->onPackageAdded(Ljava/lang/String;I)V
 PLcom/android/server/display/SmallAreaDetectionController;-><init>(Landroid/content/Context;Landroid/provider/DeviceConfigInterface;)V
-PLcom/android/server/display/SmallAreaDetectionController;->create(Landroid/content/Context;)Lcom/android/server/display/SmallAreaDetectionController;
 PLcom/android/server/display/SmallAreaDetectionController;->updateAllowlist(Ljava/lang/String;)V
-HSPLcom/android/server/display/VirtualDisplayAdapter$1;-><init>()V
 HSPLcom/android/server/display/VirtualDisplayAdapter;-><clinit>()V
 HSPLcom/android/server/display/VirtualDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Lcom/android/server/display/VirtualDisplayAdapter$SurfaceControlDisplayFactory;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/VirtualDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/VirtualDisplayAdapter;->registerLocked()V
-PLcom/android/server/display/WakelockController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/WakelockController;)V
-PLcom/android/server/display/WakelockController$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/display/WakelockController;->$r8$lambda$DC3Jjdcy5pC5tkL4-1bzHZx_j9Q(Lcom/android/server/display/WakelockController;)V
+PLcom/android/server/display/WakelockController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/WakelockController;I)V
+HPLcom/android/server/display/WakelockController$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/display/WakelockController;-><clinit>()V
 PLcom/android/server/display/WakelockController;-><init>(ILandroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;)V
-PLcom/android/server/display/WakelockController;->acquireStateChangedSuspendBlocker()Z
-PLcom/android/server/display/WakelockController;->acquireUnfinishedBusinessSuspendBlocker()Z
-PLcom/android/server/display/WakelockController;->acquireWakelock(I)Z
-PLcom/android/server/display/WakelockController;->acquireWakelockInternal(I)Z
-PLcom/android/server/display/WakelockController;->getOnStateChangedRunnable()Ljava/lang/Runnable;
-PLcom/android/server/display/WakelockController;->lambda$getOnStateChangedRunnable$1()V
-PLcom/android/server/display/WakelockController;->releaseUnfinishedBusinessSuspendBlocker()Z
-PLcom/android/server/display/WakelockController;->releaseWakelock(I)Z
-PLcom/android/server/display/WakelockController;->releaseWakelockInternal(I)Z
+HPLcom/android/server/display/WakelockController;->acquireWakelock(I)Z+]Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Lcom/android/server/power/PowerManagerService$1;
+PLcom/android/server/display/WakelockController;->hasUnfinishedBusiness()Z
+PLcom/android/server/display/WakelockController;->isOnStateChangedPending()Z
+PLcom/android/server/display/WakelockController;->isOverrideDozeScreenStateAcquired()Z
+PLcom/android/server/display/WakelockController;->isProximityNegativeAcquired()Z
+PLcom/android/server/display/WakelockController;->isProximityPositiveAcquired()Z
+PLcom/android/server/display/WakelockController;->releaseWakelock()V
+HPLcom/android/server/display/WakelockController;->releaseWakelockInternal(I)Z
 PLcom/android/server/display/brightness/BrightnessEvent;-><clinit>()V
-PLcom/android/server/display/brightness/BrightnessEvent;-><init>(I)V
-PLcom/android/server/display/brightness/BrightnessEvent;-><init>(Lcom/android/server/display/brightness/BrightnessEvent;)V
+HPLcom/android/server/display/brightness/BrightnessEvent;-><init>(I)V
+HPLcom/android/server/display/brightness/BrightnessEvent;-><init>(Lcom/android/server/display/brightness/BrightnessEvent;)V
 HPLcom/android/server/display/brightness/BrightnessEvent;->copyFrom(Lcom/android/server/display/brightness/BrightnessEvent;)V
 HPLcom/android/server/display/brightness/BrightnessEvent;->equalsMainData(Lcom/android/server/display/brightness/BrightnessEvent;)Z
-PLcom/android/server/display/brightness/BrightnessEvent;->flagsToString()Ljava/lang/String;
-PLcom/android/server/display/brightness/BrightnessEvent;->getAdjustmentFlags()I
+HPLcom/android/server/display/brightness/BrightnessEvent;->flagsToString()Ljava/lang/String;
 PLcom/android/server/display/brightness/BrightnessEvent;->getBrightness()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getDisplayBrightnessStrategyName()Ljava/lang/String;
-PLcom/android/server/display/brightness/BrightnessEvent;->getDisplayId()I
-PLcom/android/server/display/brightness/BrightnessEvent;->getFlags()I
-PLcom/android/server/display/brightness/BrightnessEvent;->getHbmMax()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getHbmMode()I
-PLcom/android/server/display/brightness/BrightnessEvent;->getInitialBrightness()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getLux()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getPhysicalDisplayId()Ljava/lang/String;
-PLcom/android/server/display/brightness/BrightnessEvent;->getPowerFactor()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getPreThresholdBrightness()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getPreThresholdLux()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getRbcStrength()I
-PLcom/android/server/display/brightness/BrightnessEvent;->getReason()Lcom/android/server/display/brightness/BrightnessReason;
-PLcom/android/server/display/brightness/BrightnessEvent;->getRecommendedBrightness()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getThermalMax()F
-PLcom/android/server/display/brightness/BrightnessEvent;->getTime()J
-PLcom/android/server/display/brightness/BrightnessEvent;->isAutomaticBrightnessEnabled()Z
-PLcom/android/server/display/brightness/BrightnessEvent;->isLowPowerModeSet()Z
-PLcom/android/server/display/brightness/BrightnessEvent;->isRbcEnabled()Z
 HPLcom/android/server/display/brightness/BrightnessEvent;->reset()V
 PLcom/android/server/display/brightness/BrightnessEvent;->setAdjustmentFlags(I)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setAutomaticBrightnessEnabled(Z)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setBrightness(F)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setDisplayBrightnessStrategyName(Ljava/lang/String;)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setFlags(I)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setHbmMax(F)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setHbmMode(I)V
 PLcom/android/server/display/brightness/BrightnessEvent;->setInitialBrightness(F)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setPhysicalDisplayId(Ljava/lang/String;)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setPowerFactor(F)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setRbcStrength(I)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setReason(Lcom/android/server/display/brightness/BrightnessReason;)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setTime(J)V
-PLcom/android/server/display/brightness/BrightnessEvent;->setWasShortTermModelActive(Z)Z
 HPLcom/android/server/display/brightness/BrightnessEvent;->toString(Z)Ljava/lang/String;
-PLcom/android/server/display/brightness/BrightnessEvent;->wasShortTermModelActive()Z
-PLcom/android/server/display/brightness/BrightnessReason;-><init>()V
-PLcom/android/server/display/brightness/BrightnessReason;->addModifier(I)V
-PLcom/android/server/display/brightness/BrightnessReason;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/display/brightness/BrightnessReason;->getModifier()I
+PLcom/android/server/display/brightness/BrightnessReason;-><init>(I)V
+HPLcom/android/server/display/brightness/BrightnessReason;->addModifier(I)V
+HPLcom/android/server/display/brightness/BrightnessReason;->equals(Ljava/lang/Object;)Z
 PLcom/android/server/display/brightness/BrightnessReason;->getReason()I
-PLcom/android/server/display/brightness/BrightnessReason;->reasonToString(I)Ljava/lang/String;
-PLcom/android/server/display/brightness/BrightnessReason;->set(Lcom/android/server/display/brightness/BrightnessReason;)V
-PLcom/android/server/display/brightness/BrightnessReason;->setModifier(I)V
-PLcom/android/server/display/brightness/BrightnessReason;->setReason(I)V
+HPLcom/android/server/display/brightness/BrightnessReason;->set(Lcom/android/server/display/brightness/BrightnessReason;)V
+HPLcom/android/server/display/brightness/BrightnessReason;->setModifier(I)V
+HPLcom/android/server/display/brightness/BrightnessReason;->setReason(I)V
 PLcom/android/server/display/brightness/BrightnessReason;->toString()Ljava/lang/String;
 HPLcom/android/server/display/brightness/BrightnessReason;->toString(I)Ljava/lang/String;
-PLcom/android/server/display/brightness/BrightnessUtils;->clampAbsoluteBrightness(F)F
-PLcom/android/server/display/brightness/BrightnessUtils;->clampBrightnessAdjustment(F)F
-PLcom/android/server/display/brightness/BrightnessUtils;->constructDisplayBrightnessState(IFFLjava/lang/String;)Lcom/android/server/display/DisplayBrightnessState;
-HPLcom/android/server/display/brightness/BrightnessUtils;->constructDisplayBrightnessState(IFFLjava/lang/String;Z)Lcom/android/server/display/DisplayBrightnessState;
-PLcom/android/server/display/brightness/BrightnessUtils;->isValidBrightnessValue(F)Z
+PLcom/android/server/display/brightness/BrightnessUtils;->constructDisplayBrightnessState(IFLjava/lang/String;Z)Lcom/android/server/display/DisplayBrightnessState;
+HPLcom/android/server/display/brightness/BrightnessUtils;->isValidBrightnessValue(F)Z
 PLcom/android/server/display/brightness/DisplayBrightnessController$Injector;-><init>()V
-PLcom/android/server/display/brightness/DisplayBrightnessController$Injector;->getDisplayBrightnessStrategySelector(Landroid/content/Context;ILcom/android/server/display/feature/DisplayManagerFlags;)Lcom/android/server/display/brightness/DisplayBrightnessStrategySelector;
-PLcom/android/server/display/brightness/DisplayBrightnessController;-><init>(Landroid/content/Context;Lcom/android/server/display/brightness/DisplayBrightnessController$Injector;IFLcom/android/server/display/BrightnessSetting;Ljava/lang/Runnable;Landroid/os/HandlerExecutor;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/brightness/DisplayBrightnessController;->addAutomaticBrightnessState(Lcom/android/server/display/DisplayBrightnessState;)Lcom/android/server/display/DisplayBrightnessState;
-PLcom/android/server/display/brightness/DisplayBrightnessController;->convertToAdjustedNits(F)F
-PLcom/android/server/display/brightness/DisplayBrightnessController;->getAutomaticBrightnessStrategy()Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessController;->getCurrentBrightness()F
-PLcom/android/server/display/brightness/DisplayBrightnessController;->getLastUserSetScreenBrightness()F
+PLcom/android/server/display/brightness/DisplayBrightnessController;-><init>(Landroid/content/Context;IFLcom/android/server/display/BrightnessSetting;Lcom/android/server/display/DisplayPowerController$$ExternalSyntheticLambda1;Landroid/os/HandlerExecutor;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+HPLcom/android/server/display/brightness/DisplayBrightnessController;->constructStrategySelectionRequest(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;ILcom/android/server/display/DisplayOffloadSessionImpl;Z)Lcom/android/server/display/brightness/StrategySelectionRequest;
+HPLcom/android/server/display/brightness/DisplayBrightnessController;->convertToAdjustedNits(F)F+]Lcom/android/server/display/BrightnessMappingStrategy;Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
+HPLcom/android/server/display/brightness/DisplayBrightnessController;->getCurrentBrightness()F
 HPLcom/android/server/display/brightness/DisplayBrightnessController;->getScreenBrightnessSetting()F
 PLcom/android/server/display/brightness/DisplayBrightnessController;->isAllowAutoBrightnessWhileDozingConfig()Z
-PLcom/android/server/display/brightness/DisplayBrightnessController;->registerBrightnessSettingChangeListener(Lcom/android/server/display/BrightnessSetting$BrightnessSettingListener;)V
-PLcom/android/server/display/brightness/DisplayBrightnessController;->updateBrightness(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;I)Lcom/android/server/display/DisplayBrightnessState;
-PLcom/android/server/display/brightness/DisplayBrightnessController;->updateUserSetScreenBrightness()Z
+PLcom/android/server/display/brightness/DisplayBrightnessController;->setAutomaticBrightnessController(Lcom/android/server/display/AutomaticBrightnessController;)V
+HPLcom/android/server/display/brightness/DisplayBrightnessController;->setBrightness(FF)V
+HPLcom/android/server/display/brightness/DisplayBrightnessController;->updateScreenBrightnessSetting(FF)V
+HPLcom/android/server/display/brightness/DisplayBrightnessController;->updateUserSetScreenBrightness()Z+]Landroid/os/HandlerExecutor;Landroid/os/HandlerExecutor;
 PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;-><init>()V
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getAutomaticBrightnessStrategy(Landroid/content/Context;I)Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getBoostBrightnessStrategy()Lcom/android/server/display/brightness/strategy/BoostBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getDozeBrightnessStrategy()Lcom/android/server/display/brightness/strategy/DozeBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getFollowerBrightnessStrategy(I)Lcom/android/server/display/brightness/strategy/FollowerBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getInvalidBrightnessStrategy()Lcom/android/server/display/brightness/strategy/InvalidBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getOffloadBrightnessStrategy()Lcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getOverrideBrightnessStrategy()Lcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getScreenOffBrightnessStrategy()Lcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;->getTemporaryBrightnessStrategy()Lcom/android/server/display/brightness/strategy/TemporaryBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;-><init>(Landroid/content/Context;Lcom/android/server/display/brightness/DisplayBrightnessStrategySelector$Injector;ILcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->getAutomaticBrightnessStrategy()Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->isAllowAutoBrightnessWhileDozingConfig()Z
-HPLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->selectStrategy(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;I)Lcom/android/server/display/brightness/strategy/DisplayBrightnessStrategy;
-PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->shouldUseDozeBrightnessStrategy(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
-PLcom/android/server/display/brightness/clamper/BrightnessClamper;-><init>(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;)V
+PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;-><init>(Landroid/content/Context;ILcom/android/server/display/feature/DisplayManagerFlags;)V
+PLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->selectStrategy(Lcom/android/server/display/brightness/StrategySelectionRequest;)Lcom/android/server/display/brightness/strategy/DisplayBrightnessStrategy;+]Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;]Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;]Lcom/android/server/display/brightness/strategy/DisplayBrightnessStrategy;megamorphic_types
+HPLcom/android/server/display/brightness/DisplayBrightnessStrategySelector;->setAllowAutoBrightnessWhileDozing(Landroid/hardware/display/DisplayManagerInternal$DisplayOffloadSession;)V+]Landroid/hardware/display/DisplayManagerInternal$DisplayOffloadSession;Lcom/android/server/display/DisplayOffloadSessionImpl;
+HPLcom/android/server/display/brightness/StrategyExecutionRequest;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;FZZ)V
+HPLcom/android/server/display/brightness/StrategySelectionNotifyRequest;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;ILcom/android/server/display/brightness/strategy/DisplayBrightnessStrategy;FZZZZ)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z+]Lcom/android/server/display/brightness/clamper/BrightnessStateModifier;megamorphic_types
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
 PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController;)V
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController;Ljava/lang/Runnable;)V
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController;)V
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/display/DisplayDeviceConfig;)V
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getBrightnessWearBedtimeModeCap()F
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getPowerThrottlingConfigData()Lcom/android/server/display/DisplayDeviceConfig$PowerThrottlingConfigData;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getPowerThrottlingData()Lcom/android/server/display/DisplayDeviceConfig$PowerThrottlingData;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getPowerThrottlingDataId()Ljava/lang/String;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getThermalBrightnessThrottlingData()Lcom/android/server/display/DisplayDeviceConfig$ThermalBrightnessThrottlingData;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getThermalThrottlingDataId()Ljava/lang/String;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;->getUniqueDisplayId()Ljava/lang/String;
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda3;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda4;->onChanged()V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController;)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda6;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda8;-><init>(I)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController$1;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/display/DisplayDeviceConfig;IILandroid/os/IBinder;I)V
 PLcom/android/server/display/brightness/clamper/BrightnessClamperController$Injector;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$Injector;->getClampers(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/content/Context;)Ljava/util/List;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$Injector;->getDeviceConfigParameterProvider()Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController$Injector;->getModifiers(Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;)Ljava/util/List;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController;-><init>(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$Injector;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HPLcom/android/server/display/brightness/clamper/BrightnessClamperController;->clamp(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;FZ)Lcom/android/server/display/DisplayBrightnessState;
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController;->getBrightnessMaxReason()I
-PLcom/android/server/display/brightness/clamper/BrightnessClamperController;->start()V
-PLcom/android/server/display/brightness/clamper/BrightnessLowPowerModeModifier;-><init>()V
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController$ModifiersAggregatedState;-><init>()V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController;-><init>(Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;Lcom/android/server/display/BrightnessRangeController$$ExternalSyntheticLambda4;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/hardware/SensorManager;F)V
+PLcom/android/server/display/brightness/clamper/BrightnessClamperController;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$Injector;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/hardware/SensorManager;F)V
+HPLcom/android/server/display/brightness/clamper/BrightnessClamperController;->adjustLightSensorSubscription()V+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/ReferencePipeline$Head;
+PLcom/android/server/display/brightness/clamper/BrightnessLowPowerModeModifier;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/brightness/clamper/BrightnessLowPowerModeModifier;->shouldApply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
+PLcom/android/server/display/brightness/clamper/BrightnessLowPowerModeModifier;->shouldListenToLightSensor()Z
 PLcom/android/server/display/brightness/clamper/BrightnessModifier;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessModifier;->apply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Lcom/android/server/display/DisplayBrightnessState$Builder;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper;Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$PowerData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper$Injector;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper$Injector;->getDeviceConfigParameterProvider()Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;->$r8$lambda$-hfcoJ5P6TW4qcVQWR4feG_Xmbw(Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper;Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$PowerData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;-><init>(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$PowerData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$Injector;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$PowerData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;->lambda$new$1(Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$PowerData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;->loadOverrideData()V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;->setDisplayData(Lcom/android/server/display/brightness/clamper/BrightnessPowerClamper$PowerData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessPowerClamper;->start()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper;Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$ThermalData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1;I)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1;->$r8$lambda$ENq4KcyEOUIqb1nFJWEAw_M1iU0(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1;I)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1;->lambda$notifyThrottling$0(I)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$1;->notifyThrottling(Landroid/os/Temperature;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$Injector;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$Injector;->getDeviceConfigParameterProvider()Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper$Injector;->getThermalService()Landroid/os/IThermalService;
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->$r8$lambda$Mo-cWrPIfBxywgDfbuUnjZBYHLg(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper;Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$ThermalData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->-$$Nest$mthermalStatusChanged(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper;I)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;-><init>(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$ThermalData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$Injector;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$ThermalData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->lambda$new$1(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$ThermalData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->loadOverrideData()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->setDisplayData(Lcom/android/server/display/brightness/clamper/BrightnessThermalClamper$ThermalData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->start()V
-PLcom/android/server/display/brightness/clamper/BrightnessThermalClamper;->thermalStatusChanged(I)V
-PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper$1;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper;Landroid/os/Handler;)V
-PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper$Injector;-><init>()V
-PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper$Injector;->registerBedtimeModeObserver(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
-PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper;-><init>(Landroid/os/Handler;Landroid/content/Context;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper$WearBedtimeModeData;)V
-PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper$Injector;Landroid/os/Handler;Landroid/content/Context;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeClamper$WearBedtimeModeData;)V
-PLcom/android/server/display/brightness/clamper/DisplayDimModifier;-><init>(Landroid/content/Context;)V
-PLcom/android/server/display/brightness/clamper/DisplayDimModifier;->getBrightnessAdjusted(FLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)F
-PLcom/android/server/display/brightness/clamper/DisplayDimModifier;->getModifier()I
+HPLcom/android/server/display/brightness/clamper/BrightnessModifier;->apply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Lcom/android/server/display/DisplayBrightnessState$Builder;)V+]Lcom/android/server/display/brightness/clamper/BrightnessModifier;Lcom/android/server/display/brightness/clamper/BrightnessLowPowerModeModifier;,Lcom/android/server/display/brightness/clamper/DisplayDimModifier;
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$Injector;-><init>()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$ThermalStatusObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier$ThermalStatusObserver;I)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$ThermalStatusObserver$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$ThermalStatusObserver;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier;Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier$Injector;Landroid/os/Handler;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$ThermalStatusObserver;->notifyThrottling(Landroid/os/Temperature;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier$ThermalStatusObserver;->registerThermalListener()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessThermalModifier$Injector;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->apply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Lcom/android/server/display/DisplayBrightnessState$Builder;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->applyStateChange(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ModifiersAggregatedState;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->onDeviceConfigChanged()V
+HPLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->onDisplayChanged(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->recalculateActiveData$1()V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->recalculateBrightnessCap$1()V
+HPLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->setDisplayData(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+PLcom/android/server/display/brightness/clamper/BrightnessThermalModifier;->shouldListenToLightSensor()Z
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier$1;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;Landroid/os/Handler;)V
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier$Injector;-><init>()V
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier$Injector;Landroid/os/Handler;Landroid/content/Context;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier$WearBedtimeModeData;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;->apply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Lcom/android/server/display/DisplayBrightnessState$Builder;)V
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;->applyStateChange(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ModifiersAggregatedState;)V
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;->onDisplayChanged(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+PLcom/android/server/display/brightness/clamper/BrightnessWearBedtimeModeModifier;->shouldListenToLightSensor()Z
+PLcom/android/server/display/brightness/clamper/DisplayDimModifier;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/display/brightness/clamper/DisplayDimModifier;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/brightness/clamper/DisplayDimModifier;->shouldApply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
+PLcom/android/server/display/brightness/clamper/DisplayDimModifier;->shouldListenToLightSensor()Z
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/brightness/clamper/HdrBrightnessModifier;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/brightness/clamper/HdrBrightnessModifier;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$1;-><init>(Lcom/android/server/display/brightness/clamper/HdrBrightnessModifier;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$2;-><init>(Lcom/android/server/display/brightness/clamper/HdrBrightnessModifier;Landroid/os/Handler;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$Injector;-><init>(Landroid/content/Context;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier$Mode;-><clinit>()V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;-><init>(Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Lcom/android/server/display/brightness/clamper/HdrBrightnessModifier$Injector;Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+HPLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->apply(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Lcom/android/server/display/DisplayBrightnessState$Builder;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->applyStateChange(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ModifiersAggregatedState;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->findBrightnessLimit(Lcom/android/server/display/config/HdrBrightnessData;F)F
+HPLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->onDisplayChanged(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$DisplayDeviceData;)V
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->recalculateMode(Lcom/android/server/display/config/HdrBrightnessData;)Lcom/android/server/display/brightness/clamper/HdrBrightnessModifier$Mode;
+HPLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->shouldListenToLightSensor()Z
+PLcom/android/server/display/brightness/clamper/HdrBrightnessModifier;->unregisterHdrListener()V
 PLcom/android/server/display/brightness/clamper/HdrClamper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/brightness/clamper/HdrClamper;)V
 PLcom/android/server/display/brightness/clamper/HdrClamper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/brightness/clamper/HdrClamper;)V
-PLcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;->-$$Nest$fgetmHdrMinPixels(Lcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;)F
-PLcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;->-$$Nest$fputmHdrMinPixels(Lcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;F)V
-PLcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;-><init>(Lcom/android/server/display/brightness/clamper/HdrClamper$HdrListener;Landroid/os/Handler;)V
-PLcom/android/server/display/brightness/clamper/HdrClamper$Injector;-><init>()V
-PLcom/android/server/display/brightness/clamper/HdrClamper$Injector;->getHdrListener(Lcom/android/server/display/brightness/clamper/HdrClamper$HdrListener;Landroid/os/Handler;)Lcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;
-PLcom/android/server/display/brightness/clamper/HdrClamper;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Landroid/os/Handler;)V
+PLcom/android/server/display/brightness/clamper/HdrClamper$HdrLayerInfoListener;-><init>(Lcom/android/server/display/brightness/clamper/HdrClamper$$ExternalSyntheticLambda1;Landroid/os/Handler;)V
 PLcom/android/server/display/brightness/clamper/HdrClamper;-><init>(Lcom/android/server/display/brightness/clamper/BrightnessClamperController$ClamperChangeListener;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/HdrClamper$Injector;)V
 PLcom/android/server/display/brightness/clamper/HdrClamper;->recalculateBrightnessCap(Lcom/android/server/display/config/HdrBrightnessData;FZ)V
-PLcom/android/server/display/brightness/clamper/HdrClamper;->reset()V
-PLcom/android/server/display/brightness/clamper/HdrClamper;->resetHdrConfig(Lcom/android/server/display/config/HdrBrightnessData;IIFLandroid/os/IBinder;)V
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;-><init>(Landroid/content/Context;I)V
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->accommodateUserBrightnessChanges(ZFILandroid/hardware/display/BrightnessConfiguration;I)V
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->getAutoBrightnessAdjustmentChanged()Z
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->getAutoBrightnessAdjustmentSetting()F
+PLcom/android/server/display/brightness/clamper/LightSensorController$1;-><init>(Lcom/android/server/display/brightness/clamper/LightSensorController;)V
+PLcom/android/server/display/brightness/clamper/LightSensorController;-><clinit>()V
+PLcom/android/server/display/brightness/clamper/LightSensorController;-><init>(Landroid/hardware/SensorManager;Landroid/content/res/Resources;Lcom/android/server/display/brightness/clamper/LightSensorController$LightSensorListener;Landroid/os/Handler;Lcom/android/server/display/brightness/clamper/LightSensorController$Injector;)V
+PLcom/android/server/display/brightness/clamper/LightSensorController;->stop()V
+PLcom/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy$RealInjector;->getScreenOffBrightnessSensor(Landroid/hardware/SensorManager;Lcom/android/server/display/DisplayDeviceConfig;)Landroid/hardware/Sensor;
+PLcom/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy;-><init>()V
+PLcom/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy;->setupAutoBrightnessFallbackSensor(Landroid/hardware/SensorManager;Lcom/android/server/display/DisplayDeviceConfig;Landroid/os/Handler;Lcom/android/server/display/BrightnessMappingStrategy;ZI)V
+PLcom/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy$RealInjector;->getBrightnessEvent(I)Lcom/android/server/display/brightness/BrightnessEvent;
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;-><init>(Landroid/content/Context;ILcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy$Injector;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->accommodateUserBrightnessChanges(ZFIIZLandroid/hardware/display/BrightnessConfiguration;I)V+]Lcom/android/server/display/BrightnessMappingStrategy;Lcom/android/server/display/BrightnessMappingStrategy$SimpleMappingStrategy;
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->adjustAutomaticBrightnessStateIfValid(F)V
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->getName()Ljava/lang/String;
 PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->isAutoBrightnessDisabledDueToDisplayOff()Z
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->isAutoBrightnessEnabled()Z
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->isAutoBrightnessEnabled()Z
 PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->isShortTermModelActive()Z
 PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->isTemporaryAutoBrightnessAdjustmentApplied()Z
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->processPendingAutoBrightnessAdjustments()Z
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->setAutoBrightnessApplied(Z)V
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->setAutoBrightnessState(IZIIFZ)V
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->processPendingAutoBrightnessAdjustments()V
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->putAutoBrightnessAdjustmentSetting(F)V
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->setAutoBrightnessState(IZIIZFZZ)V+]Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;
+PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->setAutomaticBrightnessController(Lcom/android/server/display/AutomaticBrightnessController;)V
 PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->setUseAutoBrightness(Z)V
 PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->shouldUseAutoBrightness()Z
-PLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->updateTemporaryAutoBrightnessAdjustments()F
-PLcom/android/server/display/brightness/strategy/BoostBrightnessStrategy;-><init>()V
-PLcom/android/server/display/brightness/strategy/DozeBrightnessStrategy;-><init>()V
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->updateBrightness(Lcom/android/server/display/brightness/StrategyExecutionRequest;)Lcom/android/server/display/DisplayBrightnessState;
+HPLcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;->updatePendingAutoBrightnessAdjustments()V
+PLcom/android/server/display/brightness/strategy/BoostBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/BoostBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/DozeBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/DozeBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/FallbackBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/FallbackBrightnessStrategy;->getName()Ljava/lang/String;
+PLcom/android/server/display/brightness/strategy/FallbackBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+HPLcom/android/server/display/brightness/strategy/FallbackBrightnessStrategy;->updateBrightness(Lcom/android/server/display/brightness/StrategyExecutionRequest;)Lcom/android/server/display/DisplayBrightnessState;
 PLcom/android/server/display/brightness/strategy/FollowerBrightnessStrategy;-><init>(I)V
-PLcom/android/server/display/brightness/strategy/FollowerBrightnessStrategy;->getBrightnessToFollow()F
-PLcom/android/server/display/brightness/strategy/InvalidBrightnessStrategy;-><init>()V
-PLcom/android/server/display/brightness/strategy/InvalidBrightnessStrategy;->getName()Ljava/lang/String;
-PLcom/android/server/display/brightness/strategy/InvalidBrightnessStrategy;->updateBrightness(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Lcom/android/server/display/DisplayBrightnessState;
-PLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;-><init>()V
-PLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;->getOffloadScreenBrightness()F
-PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;-><init>()V
+PLcom/android/server/display/brightness/strategy/FollowerBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/FollowerBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/InvalidBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/InvalidBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;-><init>(Lcom/android/server/display/feature/DisplayManagerFlags;)V
+PLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;->getName()Ljava/lang/String;
+HPLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V+]Lcom/android/server/display/brightness/strategy/DisplayBrightnessStrategy;Lcom/android/server/display/brightness/strategy/AutomaticBrightnessStrategy;,Lcom/android/server/display/brightness/strategy/FallbackBrightnessStrategy;,Lcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;,Lcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;
+PLcom/android/server/display/brightness/strategy/OffloadBrightnessStrategy;->updateBrightness(Lcom/android/server/display/brightness/StrategyExecutionRequest;)Lcom/android/server/display/DisplayBrightnessState;
+PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;->getName()Ljava/lang/String;
-PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;->updateBrightness(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Lcom/android/server/display/DisplayBrightnessState;
-PLcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;-><init>()V
-PLcom/android/server/display/brightness/strategy/TemporaryBrightnessStrategy;-><init>()V
-PLcom/android/server/display/brightness/strategy/TemporaryBrightnessStrategy;->getTemporaryScreenBrightness()F
-PLcom/android/server/display/color/AppSaturationController$SaturationController;->-$$Nest$maddColorTransformController(Lcom/android/server/display/color/AppSaturationController$SaturationController;Ljava/lang/ref/WeakReference;)Z
+PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;->getReason()I
+PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/OverrideBrightnessStrategy;->updateBrightness(Lcom/android/server/display/brightness/StrategyExecutionRequest;)Lcom/android/server/display/DisplayBrightnessState;
+PLcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;->getName()Ljava/lang/String;
+PLcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;->getReason()I
+PLcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/brightness/strategy/ScreenOffBrightnessStrategy;->updateBrightness(Lcom/android/server/display/brightness/StrategyExecutionRequest;)Lcom/android/server/display/DisplayBrightnessState;
+PLcom/android/server/display/brightness/strategy/TemporaryBrightnessStrategy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/brightness/strategy/TemporaryBrightnessStrategy;->strategySelectionPostProcessor(Lcom/android/server/display/brightness/StrategySelectionNotifyRequest;)V
+PLcom/android/server/display/color/AppSaturationController$SaturationController;->-$$Nest$mdump(Lcom/android/server/display/color/AppSaturationController$SaturationController;Ljava/io/PrintWriter;)V
 PLcom/android/server/display/color/AppSaturationController$SaturationController;-><init>()V
-PLcom/android/server/display/color/AppSaturationController$SaturationController;-><init>(Lcom/android/server/display/color/AppSaturationController$SaturationController-IA;)V
-PLcom/android/server/display/color/AppSaturationController$SaturationController;->addColorTransformController(Ljava/lang/ref/WeakReference;)Z
-PLcom/android/server/display/color/AppSaturationController$SaturationController;->clearExpiredReferences()V
 PLcom/android/server/display/color/AppSaturationController;-><clinit>()V
 PLcom/android/server/display/color/AppSaturationController;-><init>()V
-PLcom/android/server/display/color/AppSaturationController;->addColorTransformController(Ljava/lang/String;ILjava/lang/ref/WeakReference;)Z
-PLcom/android/server/display/color/AppSaturationController;->getOrCreateSaturationControllerLocked(Landroid/util/SparseArray;I)Lcom/android/server/display/color/AppSaturationController$SaturationController;
-PLcom/android/server/display/color/AppSaturationController;->getOrCreateUserIdMapLocked(Ljava/lang/String;)Landroid/util/SparseArray;
-PLcom/android/server/display/color/AppSaturationController;->getSaturationControllerLocked(Ljava/lang/String;I)Lcom/android/server/display/color/AppSaturationController$SaturationController;
+HPLcom/android/server/display/color/AppSaturationController;->getSaturationControllerLocked(ILjava/lang/String;)Lcom/android/server/display/color/AppSaturationController$SaturationController;
+PLcom/android/server/display/color/ColorDisplayService$1;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Handler;Landroid/content/ContentResolver;)V
+PLcom/android/server/display/color/ColorDisplayService$1;->onChange(ZLandroid/net/Uri;)V
 PLcom/android/server/display/color/ColorDisplayService$2;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Handler;)V
 PLcom/android/server/display/color/ColorDisplayService$BinderService;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
+PLcom/android/server/display/color/ColorDisplayService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
-PLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->attachColorTransformController(Ljava/lang/String;ILjava/lang/ref/WeakReference;)Z
-PLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->getReduceBrightColorsStrength()I
-PLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->setReduceBrightColorsListener(Lcom/android/server/display/color/ColorDisplayService$ReduceBrightColorsListener;)Z
 PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>()V
-PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>(Lcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator-IA;)V
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
-PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$NightDisplayTintController-IA;)V
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->isAvailable(Landroid/content/Context;)Z
 PLcom/android/server/display/color/ColorDisplayService$TintHandler;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Looper;)V
-PLcom/android/server/display/color/ColorDisplayService$TintHandler;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Looper;Lcom/android/server/display/color/ColorDisplayService$TintHandler-IA;)V
 PLcom/android/server/display/color/ColorDisplayService$TintHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$fgetmAppSaturationController(Lcom/android/server/display/color/ColorDisplayService;)Lcom/android/server/display/color/AppSaturationController;
-PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$fgetmReduceBrightColorsTintController(Lcom/android/server/display/color/ColorDisplayService;)Lcom/android/server/display/color/ReduceBrightColorsTintController;
-PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$fputmReduceBrightColorsListener(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$ReduceBrightColorsListener;)V
-PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$msetUp(Lcom/android/server/display/color/ColorDisplayService;)V
+PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$mdumpInternal(Lcom/android/server/display/color/ColorDisplayService;Ljava/io/PrintWriter;)V
 PLcom/android/server/display/color/ColorDisplayService;-><clinit>()V
 PLcom/android/server/display/color/ColorDisplayService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/display/color/ColorDisplayService;->getColorModeInternal()I
-PLcom/android/server/display/color/ColorDisplayService;->getCurrentColorModeFromSystemProperties()I
-PLcom/android/server/display/color/ColorDisplayService;->isAccessibilityEnabled()Z
-PLcom/android/server/display/color/ColorDisplayService;->isAccessiblityDaltonizerEnabled()Z
-PLcom/android/server/display/color/ColorDisplayService;->isAccessiblityInversionEnabled()Z
 PLcom/android/server/display/color/ColorDisplayService;->isColorModeAvailable(I)Z
-PLcom/android/server/display/color/ColorDisplayService;->isUserSetupCompleted(Landroid/content/ContentResolver;I)Z
 PLcom/android/server/display/color/ColorDisplayService;->onAccessibilityDaltonizerChanged()V
 PLcom/android/server/display/color/ColorDisplayService;->onAccessibilityInversionChanged()V
 PLcom/android/server/display/color/ColorDisplayService;->onBootPhase(I)V
@@ -11125,528 +8804,345 @@
 PLcom/android/server/display/color/ColorDisplayService;->onStart()V
 PLcom/android/server/display/color/ColorDisplayService;->onUserChanged(I)V
 PLcom/android/server/display/color/ColorDisplayService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/display/color/ColorDisplayService;->setUp()V
-PLcom/android/server/display/color/ColorDisplayService;->setUpDisplayCompositionColorSpaces(Landroid/content/res/Resources;)V
-PLcom/android/server/display/color/ColorTemperatureTintController;-><init>()V
+PLcom/android/server/display/color/ColorDisplayService;->setUp()V
 PLcom/android/server/display/color/DisplayTransformManager;-><clinit>()V
 PLcom/android/server/display/color/DisplayTransformManager;-><init>()V
 PLcom/android/server/display/color/DisplayTransformManager;->setColorMatrix(I[F)V
-PLcom/android/server/display/color/DisplayTransformManager;->setDaltonizerMode(I)V
+PLcom/android/server/display/color/DisplayTransformManager;->setDaltonizerMode(II)V
 PLcom/android/server/display/color/DisplayWhiteBalanceTintController;-><init>(Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/feature/DisplayManagerFlags;)V
 PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isAvailable(Landroid/content/Context;)Z
 PLcom/android/server/display/color/GlobalSaturationTintController;-><init>()V
 PLcom/android/server/display/color/ReduceBrightColorsTintController;-><init>()V
-PLcom/android/server/display/color/ReduceBrightColorsTintController;->getStrength()I
-PLcom/android/server/display/color/ReduceBrightColorsTintController;->isActivated()Z
-PLcom/android/server/display/color/ReduceBrightColorsTintController;->isAvailable(Landroid/content/Context;)Z
 PLcom/android/server/display/color/TintController;-><init>()V
 PLcom/android/server/display/color/TintController;->isActivated()Z
-HSPLcom/android/server/display/config/AutoBrightnessModeName;->$values()[Lcom/android/server/display/config/AutoBrightnessModeName;
+HSPLcom/android/server/display/config/AutoBrightness;->getLuxToBrightnessMapping()Ljava/util/List;
 HSPLcom/android/server/display/config/AutoBrightnessModeName;-><clinit>()V
-HSPLcom/android/server/display/config/AutoBrightnessModeName;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+HSPLcom/android/server/display/config/AutoBrightnessModeName;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/display/config/AutoBrightnessModeName;->fromString(Ljava/lang/String;)Lcom/android/server/display/config/AutoBrightnessModeName;
 HSPLcom/android/server/display/config/AutoBrightnessModeName;->getRawName()Ljava/lang/String;
-HSPLcom/android/server/display/config/AutoBrightnessSettingName;->$values()[Lcom/android/server/display/config/AutoBrightnessSettingName;
+HSPLcom/android/server/display/config/AutoBrightnessModeName;->values()[Lcom/android/server/display/config/AutoBrightnessModeName;
 HSPLcom/android/server/display/config/AutoBrightnessSettingName;-><clinit>()V
-HSPLcom/android/server/display/config/AutoBrightnessSettingName;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+HSPLcom/android/server/display/config/AutoBrightnessSettingName;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/display/config/AutoBrightnessSettingName;->fromString(Ljava/lang/String;)Lcom/android/server/display/config/AutoBrightnessSettingName;
 HSPLcom/android/server/display/config/AutoBrightnessSettingName;->getRawName()Ljava/lang/String;
+HSPLcom/android/server/display/config/AutoBrightnessSettingName;->values()[Lcom/android/server/display/config/AutoBrightnessSettingName;
 HSPLcom/android/server/display/config/DisplayBrightnessMappingConfig;-><clinit>()V
 HSPLcom/android/server/display/config/DisplayBrightnessMappingConfig;-><init>(Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/config/AutoBrightness;Landroid/util/Spline;)V
-PLcom/android/server/display/config/DisplayBrightnessMappingConfig;->autoBrightnessModeToString(I)Ljava/lang/String;
+HPLcom/android/server/display/config/DisplayBrightnessMappingConfig;->autoBrightnessModeToString(I)Ljava/lang/String;
 PLcom/android/server/display/config/DisplayBrightnessMappingConfig;->autoBrightnessPresetToString(I)Ljava/lang/String;
-HSPLcom/android/server/display/config/DisplayBrightnessMappingConfig;->brightnessArrayIntToFloat([ILandroid/util/Spline;)[F
-HPLcom/android/server/display/config/DisplayBrightnessMappingConfig;->getBrightnessArray(II)[F
-HPLcom/android/server/display/config/DisplayBrightnessMappingConfig;->getLuxArray(II)[F
-PLcom/android/server/display/config/DisplayBrightnessMappingConfig;->getNitsArray()[F
-HSPLcom/android/server/display/config/SensorData;-><init>()V
+PLcom/android/server/display/config/DisplayBrightnessMappingConfig;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/config/HdrBrightnessData;-><init>(Ljava/util/Map;JFJFFFFZLandroid/util/Spline;F)V
+HSPLcom/android/server/display/config/HdrBrightnessData;->loadConfig(Lcom/android/server/display/config/DisplayConfiguration;Lcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticLambda1;)Lcom/android/server/display/config/HdrBrightnessData;
+PLcom/android/server/display/config/HdrBrightnessData;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/config/HighBrightnessModeData;-><init>(FFJJJZFLandroid/util/Spline;Landroid/view/SurfaceControl$RefreshRateRange;Z)V
+HSPLcom/android/server/display/config/HighBrightnessModeData;->loadHighBrightnessModeData(Lcom/android/server/display/config/DisplayConfiguration;Lcom/android/server/display/DisplayDeviceConfig$$ExternalSyntheticLambda1;)Lcom/android/server/display/config/HighBrightnessModeData;
+PLcom/android/server/display/config/HighBrightnessModeData;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/config/HysteresisLevels;-><clinit>()V
+HSPLcom/android/server/display/config/HysteresisLevels;-><init>([F[F[F[FFF)V
+HSPLcom/android/server/display/config/HysteresisLevels;->createHysteresisLevels(Lcom/android/server/display/config/Thresholds;III[F[F[FLandroid/content/res/Resources;Z)Lcom/android/server/display/config/HysteresisLevels;
+HPLcom/android/server/display/config/HysteresisLevels;->getBrighteningThreshold(F)F
+HSPLcom/android/server/display/config/HysteresisLevels;->getBrightnessLevelAndPercentage(Lcom/android/server/display/config/BrightnessThresholds;II[F[FZLandroid/content/res/Resources;)Landroid/util/Pair;
+HPLcom/android/server/display/config/HysteresisLevels;->getDarkeningThreshold(F)F
+PLcom/android/server/display/config/HysteresisLevels;->getReferenceLevel(F[F[F)F
+HSPLcom/android/server/display/config/HysteresisLevels;->setArrayFormat(F[F)[F
+PLcom/android/server/display/config/HysteresisLevels;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/config/NitsMap;->read(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/display/config/NitsMap;
+HSPLcom/android/server/display/config/NonNegativeFloatToFloatMap;->getPoint()Ljava/util/List;
+HSPLcom/android/server/display/config/NonNegativeFloatToFloatMap;->read(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/display/config/NonNegativeFloatToFloatMap;
+HSPLcom/android/server/display/config/RefreshRateData;-><clinit>()V
+HSPLcom/android/server/display/config/RefreshRateData;-><init>(IIIILjava/util/List;Ljava/util/List;)V
+HSPLcom/android/server/display/config/RefreshRateData;->loadRefreshRateData(Lcom/android/server/display/config/DisplayConfiguration;Landroid/content/res/Resources;)Lcom/android/server/display/config/RefreshRateData;
+PLcom/android/server/display/config/RefreshRateData;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/config/SensorData;-><clinit>()V
 HSPLcom/android/server/display/config/SensorData;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/display/config/SensorData;-><init>(Ljava/lang/String;Ljava/lang/String;FF)V
 HSPLcom/android/server/display/config/SensorData;-><init>(Ljava/lang/String;Ljava/lang/String;FFLjava/util/List;)V
-HSPLcom/android/server/display/config/SensorData;->loadAmbientLightSensorConfig(Landroid/content/res/Resources;)Lcom/android/server/display/config/SensorData;
-HSPLcom/android/server/display/config/SensorData;->loadSensorUnspecifiedConfig()Lcom/android/server/display/config/SensorData;
+HSPLcom/android/server/display/config/SensorData;->loadProxSensorConfig(Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/config/DisplayConfiguration;)Lcom/android/server/display/config/SensorData;
+PLcom/android/server/display/config/SensorData;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/config/SupportedModeData;->load(Lcom/android/server/display/config/NonNegativeFloatToFloatMap;)Ljava/util/List;
+HSPLcom/android/server/display/config/XmlParser;->read(Ljava/io/InputStream;)Lcom/android/server/display/config/DisplayConfiguration;
+HSPLcom/android/server/display/config/XmlParser;->readText(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
 HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;-><init>(Landroid/provider/DeviceConfigInterface;)V
-PLcom/android/server/display/feature/DeviceConfigParameterProvider;->addOnPropertiesChangedListener(Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-PLcom/android/server/display/feature/DeviceConfigParameterProvider;->getBrightnessThrottlingData()Ljava/lang/String;
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getHighAmbientBrightnessThresholds()[F
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getHighDisplayBrightnessThresholds()[F
 HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getIntArrayProperty(Ljava/lang/String;)[I
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getLowAmbientBrightnessThresholds()[F
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getLowDisplayBrightnessThresholds()[F
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getPeakRefreshRateDefault()F
-PLcom/android/server/display/feature/DeviceConfigParameterProvider;->getPowerThrottlingData()Ljava/lang/String;
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getRefreshRateInHbmHdr()I
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getRefreshRateInHbmSunlight()I
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getRefreshRateInHighZone()I
-HSPLcom/android/server/display/feature/DeviceConfigParameterProvider;->getRefreshRateInLowZone()I
-PLcom/android/server/display/feature/DeviceConfigParameterProvider;->isDisableScreenWakeLocksWhileCachedFeatureEnabled()Z
-PLcom/android/server/display/feature/DeviceConfigParameterProvider;->isHdrOutputControlFeatureEnabled()Z
-PLcom/android/server/display/feature/DeviceConfigParameterProvider;->removeOnPropertiesChangedListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda10;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda10;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda11;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda11;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda12;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda13;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda13;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda14;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda14;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda15;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda15;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda16;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda17;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda17;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda18;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda18;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda19;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda19;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda20;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda20;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda4;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda5;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda6;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda7;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda9;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;
-HSPLcom/android/server/display/feature/DisplayManagerFlags$FlagState;->-$$Nest$misEnabled(Lcom/android/server/display/feature/DisplayManagerFlags$FlagState;)Z
+HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;-><init>(I)V
+HSPLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
+PLcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Lcom/android/server/display/feature/DisplayManagerFlags$FlagState;Ljava/io/PrintWriter;Ljava/lang/String;)Ljava/lang/StringBuilder;
 HSPLcom/android/server/display/feature/DisplayManagerFlags$FlagState;-><init>(Ljava/lang/String;Ljava/util/function/Supplier;)V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$FlagState;-><init>(Ljava/lang/String;Ljava/util/function/Supplier;Lcom/android/server/display/feature/DisplayManagerFlags$FlagState-IA;)V
-HSPLcom/android/server/display/feature/DisplayManagerFlags$FlagState;->flagOrSystemProperty(Ljava/util/function/Supplier;Ljava/lang/String;)Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags$FlagState;->isEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->-$$Nest$sfgetDEBUG()Z
+HSPLcom/android/server/display/feature/DisplayManagerFlags$FlagState;->isEnabled()Z+]Ljava/util/function/Supplier;Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;
+PLcom/android/server/display/feature/DisplayManagerFlags$FlagState;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/feature/DisplayManagerFlags;-><clinit>()V
 HSPLcom/android/server/display/feature/DisplayManagerFlags;-><init>()V
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->areAutoBrightnessModesEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isAdaptiveTone1Enabled()Z
+PLcom/android/server/display/feature/DisplayManagerFlags;->dump(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/feature/DisplayManagerFlags;->isBackUpSmoothDisplayAndForcePeakRefreshRateEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isBrightnessIntRangeUserPerceptionEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isBrightnessWearBedtimeModeClamperEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isConnectedDisplayErrorHandlingEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isConnectedDisplayManagementEnabled()Z
 HSPLcom/android/server/display/feature/DisplayManagerFlags;->isDisplayOffloadEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isDisplayResolutionRangeVotingEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isDisplaysRefreshRatesSynchronizationEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isEvenDimmerEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isExternalDisplayLimitModeEnabled()Z
 PLcom/android/server/display/feature/DisplayManagerFlags;->isFastHdrTransitionsEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isHdrClamperEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isNbmControllerEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isPortInDisplayLayoutEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isPowerThrottlingClamperEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isRefreshRateVotingTelemetryEnabled()Z
-PLcom/android/server/display/feature/DisplayManagerFlags;->isSmallAreaDetectionEnabled()Z
-HSPLcom/android/server/display/feature/DisplayManagerFlags;->isUserPreferredModeVoteEnabled()Z
+HPLcom/android/server/display/feature/DisplayManagerFlags;->isNormalBrightnessForDozeParameterEnabled(Landroid/content/Context;)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;
 HSPLcom/android/server/display/layout/Layout$Display;-><init>(Landroid/view/DisplayAddress;IZLjava/lang/String;Ljava/lang/String;ILandroid/view/DisplayAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/display/layout/Layout$Display;-><init>(Landroid/view/DisplayAddress;IZLjava/lang/String;Ljava/lang/String;ILandroid/view/DisplayAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/display/layout/Layout$Display-IA;)V
-HSPLcom/android/server/display/layout/Layout$Display;->getAddress()Landroid/view/DisplayAddress;
-HSPLcom/android/server/display/layout/Layout$Display;->getDisplayGroupName()Ljava/lang/String;
-HSPLcom/android/server/display/layout/Layout$Display;->getLeadDisplayId()I
-HSPLcom/android/server/display/layout/Layout$Display;->getLogicalDisplayId()I
-HSPLcom/android/server/display/layout/Layout$Display;->getPosition()I
-HSPLcom/android/server/display/layout/Layout$Display;->getPowerThrottlingMapId()Ljava/lang/String;
-HSPLcom/android/server/display/layout/Layout$Display;->getRefreshRateThermalThrottlingMapId()Ljava/lang/String;
-HSPLcom/android/server/display/layout/Layout$Display;->getRefreshRateZoneId()Ljava/lang/String;
-HSPLcom/android/server/display/layout/Layout$Display;->getThermalBrightnessThrottlingMapId()Ljava/lang/String;
-HSPLcom/android/server/display/layout/Layout$Display;->isEnabled()Z
 HSPLcom/android/server/display/layout/Layout$Display;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/layout/Layout;-><init>()V
-HSPLcom/android/server/display/layout/Layout;->contains(Landroid/view/DisplayAddress;)Z
-HSPLcom/android/server/display/layout/Layout;->createDefaultDisplayLocked(Landroid/view/DisplayAddress;Lcom/android/server/display/layout/DisplayIdProducer;)V
-HSPLcom/android/server/display/layout/Layout;->createDisplayLocked(Landroid/view/DisplayAddress;ZZLjava/lang/String;Lcom/android/server/display/layout/DisplayIdProducer;ILandroid/view/DisplayAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/display/layout/Layout;->getAt(I)Lcom/android/server/display/layout/Layout$Display;
+HSPLcom/android/server/display/layout/Layout;->createDisplayLocked(Landroid/view/DisplayAddress;ZZLjava/lang/String;Lcom/android/server/display/LogicalDisplayMapper$$ExternalSyntheticLambda2;ILandroid/view/DisplayAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/display/layout/Layout;->getByAddress(Landroid/view/DisplayAddress;)Lcom/android/server/display/layout/Layout$Display;
 HSPLcom/android/server/display/layout/Layout;->getById(I)Lcom/android/server/display/layout/Layout$Display;
-HSPLcom/android/server/display/layout/Layout;->size()I
 HSPLcom/android/server/display/layout/Layout;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/mode/DisplayModeDirector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;)V
-PLcom/android/server/display/mode/DisplayModeDirector$$ExternalSyntheticLambda0;->onChanged()V
-HSPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;)V
-HPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;->findModeByIdLocked(II)Landroid/view/Display$Mode;
-HPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;->setAppPreferredRefreshRateRangeLocked(IFF)V
-HPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;->setAppRequest(IIFF)V
-HPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;->setAppRequestedModeLocked(II)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda10;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda11;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda12;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda13;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda2;-><init>()V
+HSPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+HPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;->findModeLocked(IIF)Landroid/view/Display$Mode;
+HPLcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;->setAppRequest(IIFFF)V
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;I)V
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/DisplayDeviceConfig;I)V
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda1;->call()Ljava/lang/Object;
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda2;-><init>(I)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda5;-><init>()V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda6;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda7;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda8;->call()Ljava/lang/Object;
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$$ExternalSyntheticLambda9;->call()Ljava/lang/Object;
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$1;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener$1;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener-IA;)V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->removeCallbacks()V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$8DAn56bU6WgFgsFx-a9p7-LZAcI(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$Ay2prysMHDYMO6gnyiTQlctgcyI(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$IKnEMBFyGRQBJ1PKPV09LlnUYcQ(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$QQJ_8KNK1PlQxWszYy-c-kL2A3U(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$TOfl-cGYXuStF3el4JR8AneQz-w(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$horxynV7MmybweJstKDz3KJXC50(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$q9lF_A0quq49fCqX-dNNPJaLYQ8(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->$r8$lambda$ukYjuV9AUGT_8BbrisQUwkGAqfM(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)[F
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->-$$Nest$fgetmHandler(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;)Landroid/os/Handler;
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->-$$Nest$mobserve(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;Landroid/hardware/SensorManager;)V
+PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->-$$Nest$monDeviceConfigLowBrightnessThresholdsChanged(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;[F[F)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->-$$Nest$mreloadLightSensor(Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/mode/DisplayModeDirector$Injector;ZLcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->getBrightness(I)F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadHighBrightnessThresholds$4()[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadHighBrightnessThresholds$5(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadHighBrightnessThresholds$6()[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadHighBrightnessThresholds$7(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadLowBrightnessThresholds$0()[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadLowBrightnessThresholds$1(Lcom/android/server/display/DisplayDeviceConfig;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadLowBrightnessThresholds$2()[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->lambda$loadLowBrightnessThresholds$3(Lcom/android/server/display/DisplayDeviceConfig;)[F
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/content/Context;Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;Lcom/android/server/display/mode/DisplayModeDirector$Injector;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->dumpLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->getIdleScreenRefreshRateConfig()Landroid/view/SurfaceControl$IdleScreenRefreshRateConfig;
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->hasLowLightVrrConfig()Z
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->loadBrightnessThresholds(Ljava/util/concurrent/Callable;Ljava/util/concurrent/Callable;ILcom/android/server/display/DisplayDeviceConfig;ZLjava/util/function/Function;)[F
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->loadHighBrightnessThresholds(Lcom/android/server/display/DisplayDeviceConfig;Z)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->loadLowBrightnessThresholds(Lcom/android/server/display/DisplayDeviceConfig;Z)V
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->loadIdleScreenRefreshRateConfigs(Lcom/android/server/display/DisplayDeviceConfig;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->loadRefreshRateInHighZone(Lcom/android/server/display/DisplayDeviceConfig;Z)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->loadRefreshRateInLowZone(Lcom/android/server/display/DisplayDeviceConfig;Z)V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->observe(Landroid/hardware/SensorManager;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->onBrightnessChangedLocked()V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->onDisplayChanged(I)V
+HPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->onDisplayChanged(I)V+]Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;
 PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->onLowPowerModeEnabledLocked(Z)V
 PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->onRefreshRateSettingChangedLocked(FF)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->reloadLightSensor(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->reloadLightSensorData(Lcom/android/server/display/DisplayDeviceConfig;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->restartObserver()V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->setDefaultDisplayState(I)V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->unregisterSensorListener()V
+HPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->setDefaultDisplayState(I)V
+HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->shouldRegisterLightSensor()Z
+HPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->unregisterSensorListener()V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->updateBlockingZoneThresholds(Lcom/android/server/display/DisplayDeviceConfig;Z)V
-PLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->updateDefaultDisplayState()V
 HSPLcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;->updateSensorStatus()V
 HSPLcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;-><init>()V
-PLcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;-><init>(IZLandroid/view/SurfaceControl$RefreshRateRanges;Landroid/view/SurfaceControl$RefreshRateRanges;)V
-PLcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;->copyFrom(Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;)V
+PLcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;-><init>(IZLandroid/view/SurfaceControl$RefreshRateRanges;Landroid/view/SurfaceControl$RefreshRateRanges;Landroid/view/SurfaceControl$IdleScreenRefreshRateConfig;)V
 HPLcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;->equals(Ljava/lang/Object;)Z
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda0;->getAsInt()I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda1;->getAsInt()I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda2;->getAsInt()I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/display/DisplayDeviceConfig;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings$$ExternalSyntheticLambda3;->getAsInt()I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->$r8$lambda$4IM44pR3egbsLgKCJgtproSJ4HU(Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->$r8$lambda$UjQJH7qg8DdCnUYR-DTJghZFPuQ(Lcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->$r8$lambda$Zlf8FUrJAId9oJETwAtYDKb3u9M(Lcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->$r8$lambda$p85UmY-pmP6AkHPGqUwdtsPukFw(Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->-$$Nest$mgetRefreshRateInHbmHdr(Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;Lcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->-$$Nest$mgetRefreshRateInHbmSunlight(Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;Lcom/android/server/display/DisplayDeviceConfig;)I
+PLcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;->toString()Ljava/lang/String;
 HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings-IA;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->getRefreshRate(Ljava/util/function/IntSupplier;Ljava/util/function/IntSupplier;ILcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->getRefreshRateInHbmHdr(Lcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->getRefreshRateInHbmSunlight(Lcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->lambda$getRefreshRateInHbmHdr$0()I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->lambda$getRefreshRateInHbmHdr$1(Lcom/android/server/display/DisplayDeviceConfig;)I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->lambda$getRefreshRateInHbmSunlight$2()I
-HSPLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->lambda$getRefreshRateInHbmSunlight$3(Lcom/android/server/display/DisplayDeviceConfig;)I
-PLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->startListening()V
+PLcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$DisplayModeDirectorHandler;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/os/Looper;)V
 PLcom/android/server/display/mode/DisplayModeDirector$DisplayModeDirectorHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/mode/VotesStorage;)V
-PLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->getDisplayInfo(I)Landroid/view/DisplayInfo;
-PLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->isExternalDisplayLocked(I)Z
-PLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->observe()V
+HSPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/content/Context;Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;Lcom/android/server/display/mode/VotesStorage;)V
+HPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->getDisplayInfo(I)Landroid/view/DisplayInfo;
+HPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->onDisplayChanged(I)V
+HPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->updateDisplayDeviceConfig(I)V
+HPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->updateDisplayModes(ILandroid/view/DisplayInfo;)V
+PLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->updateHasArrSupport(ILandroid/view/DisplayInfo;)V
+HPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->updateLayoutLimitedFrameRate(ILandroid/view/DisplayInfo;)V
+HPLcom/android/server/display/mode/DisplayModeDirector$DisplayObserver;->updateUserSettingDisplayPreferredSize(Landroid/view/DisplayInfo;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$HbmObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Lcom/android/server/display/mode/DisplayModeDirector$Injector;Lcom/android/server/display/mode/VotesStorage;Landroid/os/Handler;Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;)V
-PLcom/android/server/display/mode/DisplayModeDirector$HbmObserver;->observe()V
-PLcom/android/server/display/mode/DisplayModeDirector$HbmObserver;->onDisplayChanged(I)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$HbmObserver;->setupHdrRefreshRates(Lcom/android/server/display/DisplayDeviceConfig;)V
+PLcom/android/server/display/mode/DisplayModeDirector$HbmObserver;->dumpLocked(Ljava/io/PrintWriter;)V
+HPLcom/android/server/display/mode/DisplayModeDirector$HbmObserver;->onDisplayChanged(I)V
 PLcom/android/server/display/mode/DisplayModeDirector$Injector;-><clinit>()V
 HSPLcom/android/server/display/mode/DisplayModeDirector$RealInjector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getBrightnessInfo(I)Landroid/hardware/display/BrightnessInfo;
-HSPLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDeviceConfig()Landroid/provider/DeviceConfigInterface;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDisplay(I)Landroid/view/Display;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDisplayInfo(ILandroid/view/DisplayInfo;)Z
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDisplayManager()Landroid/hardware/display/DisplayManager;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDisplayManagerInternal()Landroid/hardware/display/DisplayManagerInternal;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDisplays()[Landroid/view/Display;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getSensorManagerInternal()Lcom/android/server/sensors/SensorManagerInternal;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerInternal;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getThermalService()Landroid/os/IThermalService;
-HSPLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getVotesStatsReporter(Z)Lcom/android/server/display/mode/VotesStatsReporter;
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->isDozeState(Landroid/view/Display;)Z
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;J)V
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->registerMinRefreshRateObserver(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->registerPeakRefreshRateObserver(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
-PLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->registerThermalServiceListener(Landroid/os/IThermalEventListener;)Z
-HSPLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->supportsFrameRateOverride()Z
-HSPLcom/android/server/display/mode/DisplayModeDirector$SensorObserver;-><init>(Landroid/content/Context;Lcom/android/server/display/mode/VotesStorage;Lcom/android/server/display/mode/DisplayModeDirector$Injector;)V
-PLcom/android/server/display/mode/DisplayModeDirector$SensorObserver;->observe()V
-PLcom/android/server/display/mode/DisplayModeDirector$SensorObserver;->onProximityActive(Z)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;ZLcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->observe()V
+HPLcom/android/server/display/mode/DisplayModeDirector$RealInjector;->getDisplayManager()Landroid/hardware/display/DisplayManager;
+HSPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver$1;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;)V
+HPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver$1;->onDisplayChanged(I)V
+HSPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Landroid/content/Context;Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->onDeviceConfigDefaultPeakRefreshRateChanged(Ljava/lang/Float;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->setDefaultPeakRefreshRate(Lcom/android/server/display/DisplayDeviceConfig;Z)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->setRefreshRates(Lcom/android/server/display/DisplayDeviceConfig;Z)V
+HPLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->updateLowPowerModeAllowedModesLocked()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->updateLowPowerModeSettingLocked()V
 PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->updateModeSwitchingTypeSettingLocked()V
 PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked()V
 PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked(FFFI)V
 PLcom/android/server/display/mode/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked(I)V
 HSPLcom/android/server/display/mode/DisplayModeDirector$UdfpsObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector$UdfpsObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector;Lcom/android/server/display/mode/DisplayModeDirector$UdfpsObserver-IA;)V
-PLcom/android/server/display/mode/DisplayModeDirector$UdfpsObserver;->observe()V
-PLcom/android/server/display/mode/DisplayModeDirector;->$r8$lambda$CBSdi5wPAhAASfeb2bCpd2owPvs(Lcom/android/server/display/mode/DisplayModeDirector;)V
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmBrightnessObserver(Lcom/android/server/display/mode/DisplayModeDirector;)Lcom/android/server/display/mode/DisplayModeDirector$BrightnessObserver;
-HSPLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmConfigParameterProvider(Lcom/android/server/display/mode/DisplayModeDirector;)Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmContext(Lcom/android/server/display/mode/DisplayModeDirector;)Landroid/content/Context;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmDefaultDisplayDeviceConfig(Lcom/android/server/display/mode/DisplayModeDirector;)Lcom/android/server/display/DisplayDeviceConfig;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmDefaultModeByDisplay(Lcom/android/server/display/mode/DisplayModeDirector;)Landroid/util/SparseArray;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmDeviceConfigDisplaySettings(Lcom/android/server/display/mode/DisplayModeDirector;)Lcom/android/server/display/mode/DisplayModeDirector$DeviceConfigDisplaySettings;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmInjector(Lcom/android/server/display/mode/DisplayModeDirector;)Lcom/android/server/display/mode/DisplayModeDirector$Injector;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmIsBackUpSmoothDisplayAndForcePeakRefreshRateEnabled(Lcom/android/server/display/mode/DisplayModeDirector;)Z
-HSPLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmLock(Lcom/android/server/display/mode/DisplayModeDirector;)Ljava/lang/Object;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmModeSwitchingType(Lcom/android/server/display/mode/DisplayModeDirector;)I
-HPLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmSupportedModesByDisplay(Lcom/android/server/display/mode/DisplayModeDirector;)Landroid/util/SparseArray;
-PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$fgetmVotesStorage(Lcom/android/server/display/mode/DisplayModeDirector;)Lcom/android/server/display/mode/VotesStorage;
+PLcom/android/server/display/mode/DisplayModeDirector$UdfpsObserver;->dumpLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/mode/DisplayModeDirector;->-$$Nest$mgetMaxRefreshRateLocked(Lcom/android/server/display/mode/DisplayModeDirector;I)F
-HSPLcom/android/server/display/mode/DisplayModeDirector;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-HSPLcom/android/server/display/mode/DisplayModeDirector;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/mode/DisplayModeDirector$Injector;Lcom/android/server/display/feature/DisplayManagerFlags;)V
+HSPLcom/android/server/display/mode/DisplayModeDirector;-><init>(Landroid/content/Context;Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/DisplayManagerService$$ExternalSyntheticLambda4;)V
 HSPLcom/android/server/display/mode/DisplayModeDirector;->defaultDisplayDeviceUpdated(Lcom/android/server/display/DisplayDeviceConfig;)V
-PLcom/android/server/display/mode/DisplayModeDirector;->getAppRequestObserver()Lcom/android/server/display/mode/DisplayModeDirector$AppRequestObserver;
-HPLcom/android/server/display/mode/DisplayModeDirector;->getDesiredDisplayModeSpecs(I)Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;
-PLcom/android/server/display/mode/DisplayModeDirector;->getMaxRefreshRateLocked(I)F
-HPLcom/android/server/display/mode/DisplayModeDirector;->getModeSwitchingType()I
+PLcom/android/server/display/mode/DisplayModeDirector;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/mode/DisplayModeDirector;->getDesiredDisplayModeSpecs(I)Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecs;
+PLcom/android/server/display/mode/DisplayModeDirector;->isVrrSupportedLocked(I)Z
 PLcom/android/server/display/mode/DisplayModeDirector;->notifyDesiredDisplayModeSpecsChangedLocked()V
 PLcom/android/server/display/mode/DisplayModeDirector;->onBootCompleted()V
-PLcom/android/server/display/mode/DisplayModeDirector;->setDesiredDisplayModeSpecsListener(Lcom/android/server/display/mode/DisplayModeDirector$DesiredDisplayModeSpecsListener;)V
 PLcom/android/server/display/mode/DisplayModeDirector;->start(Landroid/hardware/SensorManager;)V
-PLcom/android/server/display/mode/RefreshRateVote$RenderVote;-><init>(FF)V
+HSPLcom/android/server/display/mode/ProximitySensorObserver;-><init>(Lcom/android/server/display/mode/VotesStorage;Lcom/android/server/display/mode/DisplayModeDirector$Injector;)V
+PLcom/android/server/display/mode/ProximitySensorObserver;->observe()V
+HPLcom/android/server/display/mode/ProximitySensorObserver;->onDisplayChanged(I)V
+PLcom/android/server/display/mode/ProximitySensorObserver;->onProximityActive(Z)V
+PLcom/android/server/display/mode/ProximitySensorObserver;->recalculateVotesLocked()V
 PLcom/android/server/display/mode/RefreshRateVote$RenderVote;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/display/mode/RefreshRateVote$RenderVote;->toString()Ljava/lang/String;
 PLcom/android/server/display/mode/RefreshRateVote$RenderVote;->updateSummary(Lcom/android/server/display/mode/VoteSummary;)V
 PLcom/android/server/display/mode/RefreshRateVote;-><init>(FF)V
-HSPLcom/android/server/display/mode/SkinThermalStatusObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$Injector;Lcom/android/server/display/mode/VotesStorage;)V
+PLcom/android/server/display/mode/RefreshRateVote;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/display/mode/RefreshRateVote;->toString()Ljava/lang/String;
+PLcom/android/server/display/mode/SkinThermalStatusObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/mode/SkinThermalStatusObserver;II)V
+HPLcom/android/server/display/mode/SkinThermalStatusObserver$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/display/mode/SkinThermalStatusObserver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/display/mode/SkinThermalStatusObserver;)V
+PLcom/android/server/display/mode/SkinThermalStatusObserver$$ExternalSyntheticLambda1;->run()V
 HSPLcom/android/server/display/mode/SkinThermalStatusObserver;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$Injector;Lcom/android/server/display/mode/VotesStorage;Landroid/os/Handler;)V
+PLcom/android/server/display/mode/SkinThermalStatusObserver;->dumpLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/mode/SkinThermalStatusObserver;->notifyThrottling(Landroid/os/Temperature;)V
 PLcom/android/server/display/mode/SkinThermalStatusObserver;->observe()V
-PLcom/android/server/display/mode/SkinThermalStatusObserver;->populateInitialDisplayInfo()V
-PLcom/android/server/display/mode/Vote;->forRenderFrameRates(FF)Lcom/android/server/display/mode/Vote;
+PLcom/android/server/display/mode/SkinThermalStatusObserver;->onDisplayChanged(I)V
+HPLcom/android/server/display/mode/SkinThermalStatusObserver;->reportThrottlingIfNeeded(IILandroid/util/SparseArray;)V
+HPLcom/android/server/display/mode/SkinThermalStatusObserver;->updateThermalRefreshRateThrottling(I)V
+HSPLcom/android/server/display/mode/SyntheticModeManager;-><init>(Lcom/android/server/display/feature/DisplayManagerFlags;)V
+HSPLcom/android/server/display/mode/SystemRequestObserver$1;-><init>(Lcom/android/server/display/mode/SystemRequestObserver;)V
+HSPLcom/android/server/display/mode/SystemRequestObserver;-><init>(Lcom/android/server/display/mode/VotesStorage;)V
 PLcom/android/server/display/mode/Vote;->priorityToString(I)Ljava/lang/String;
 PLcom/android/server/display/mode/VoteSummary;-><init>(ZZZZ)V
 PLcom/android/server/display/mode/VoteSummary;->adjustSize(Landroid/view/Display$Mode;[Landroid/view/Display$Mode;)V
-PLcom/android/server/display/mode/VoteSummary;->applyVotes(Landroid/util/SparseArray;II)V
+PLcom/android/server/display/mode/VoteSummary;->applyVotes(IILandroid/util/SparseArray;)V
 PLcom/android/server/display/mode/VoteSummary;->equalsWithinFloatTolerance(FF)Z
 PLcom/android/server/display/mode/VoteSummary;->filterModes([Landroid/view/Display$Mode;)Ljava/util/List;
 PLcom/android/server/display/mode/VoteSummary;->isRenderRateAchievable(F)Z
-PLcom/android/server/display/mode/VoteSummary;->isValid()Z
 PLcom/android/server/display/mode/VoteSummary;->limitRefreshRanges(Lcom/android/server/display/mode/VoteSummary;)V
 PLcom/android/server/display/mode/VoteSummary;->reset()V
-PLcom/android/server/display/mode/VoteSummary;->selectBaseMode(Ljava/util/List;Landroid/view/Display$Mode;)Landroid/view/Display$Mode;
-PLcom/android/server/display/mode/VoteSummary;->validateModeRenderRateAchievable(Landroid/view/Display$Mode;)Z
-PLcom/android/server/display/mode/VoteSummary;->validateModeSize(Landroid/view/Display$Mode;)Z
-PLcom/android/server/display/mode/VoteSummary;->validateModeSupported(Landroid/view/Display$Mode;)Z
-PLcom/android/server/display/mode/VoteSummary;->validateModeWithinPhysicalRefreshRange(Landroid/view/Display$Mode;)Z
-PLcom/android/server/display/mode/VoteSummary;->validateModeWithinRenderRefreshRange(Landroid/view/Display$Mode;)Z
 HSPLcom/android/server/display/mode/VotesStatsReporter;-><init>(ZZ)V
 PLcom/android/server/display/mode/VotesStatsReporter;->getMaxRefreshRate(Lcom/android/server/display/mode/Vote;Z)I
-PLcom/android/server/display/mode/VotesStatsReporter;->reportVoteAdded(IILcom/android/server/display/mode/Vote;)V
 PLcom/android/server/display/mode/VotesStatsReporter;->reportVoteChanged(IILcom/android/server/display/mode/Vote;)V
-PLcom/android/server/display/mode/VotesStatsReporter;->reportVotesActivated(IILandroid/view/Display$Mode;Landroid/util/SparseArray;)V
-HSPLcom/android/server/display/mode/VotesStorage;-><init>(Lcom/android/server/display/mode/VotesStorage$Listener;Lcom/android/server/display/mode/VotesStatsReporter;)V
+HSPLcom/android/server/display/mode/VotesStorage;-><init>(Lcom/android/server/display/mode/DisplayModeDirector$$ExternalSyntheticLambda0;Lcom/android/server/display/mode/VotesStatsReporter;)V
 PLcom/android/server/display/mode/VotesStorage;->getVotes(I)Landroid/util/SparseArray;
-PLcom/android/server/display/mode/VotesStorage;->updateGlobalVote(ILcom/android/server/display/mode/Vote;)V
-PLcom/android/server/display/mode/VotesStorage;->updateVote(IILcom/android/server/display/mode/Vote;)V
+HPLcom/android/server/display/mode/VotesStorage;->updateVote(IILcom/android/server/display/mode/Vote;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Object;Lcom/android/server/display/mode/RefreshRateVote$RenderVote;
 PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;)V
-PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector$$ExternalSyntheticLambda0;->getUsbManager()Landroid/hardware/usb/UsbManager;
-PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector;->$r8$lambda$PN4BrLCfdXQAp9PYfft5KYnxARY(Landroid/content/Context;)Landroid/hardware/usb/UsbManager;
-PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector;-><init>(Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/content/Context;)V
 PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector;-><init>(Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/content/Context;Lcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector$Injector;)V
-PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector;->lambda$new$0(Landroid/content/Context;)Landroid/hardware/usb/UsbManager;
-PLcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector;->registerListener(Lcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector$Listener;)V
-HSPLcom/android/server/display/notifications/DisplayNotificationManager$1;-><init>(Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;)V
-PLcom/android/server/display/notifications/DisplayNotificationManager$1;->getNotificationManager()Landroid/app/NotificationManager;
-PLcom/android/server/display/notifications/DisplayNotificationManager$1;->getUsbErrorsDetector()Lcom/android/server/display/notifications/ConnectedDisplayUsbErrorsDetector;
-HSPLcom/android/server/display/notifications/DisplayNotificationManager;-><init>(Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/content/Context;)V
+HSPLcom/android/server/display/notifications/DisplayNotificationManager$1;-><init>(Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/ExternalDisplayStatsService;)V
 HSPLcom/android/server/display/notifications/DisplayNotificationManager;-><init>(Lcom/android/server/display/feature/DisplayManagerFlags;Landroid/content/Context;Lcom/android/server/display/notifications/DisplayNotificationManager$Injector;)V
-PLcom/android/server/display/notifications/DisplayNotificationManager;->onBootCompleted()V
-PLcom/android/server/display/state/DisplayStateController;-><clinit>()V
-PLcom/android/server/display/state/DisplayStateController;-><init>(Lcom/android/server/display/DisplayPowerProximityStateController;)V
-PLcom/android/server/display/state/DisplayStateController;->shouldPerformScreenOffTransition()Z
-PLcom/android/server/display/state/DisplayStateController;->updateDisplayState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;ZZ)I
-PLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;-><init>(Ljava/lang/String;IF)V
-PLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->validateArguments(F)V
+HSPLcom/android/server/display/plugin/PluginManager;-><init>(Landroid/content/Context;Lcom/android/server/display/feature/DisplayManagerFlags;Lcom/android/server/display/plugin/PluginManager$Injector;)V
+PLcom/android/server/display/plugin/PluginManager;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/plugin/PluginStorage$$ExternalSyntheticLambda1;-><init>(Ljava/util/Map;)V
+HSPLcom/android/server/display/plugin/PluginStorage;-><init>()V
+PLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;-><init>(FILjava/lang/String;)V
 PLcom/android/server/display/utils/AmbientFilter;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/display/utils/AmbientFilter;->validateArguments(I)V
-PLcom/android/server/display/utils/AmbientFilterFactory;->createAmbientFilter(Ljava/lang/String;IF)Lcom/android/server/display/utils/AmbientFilter;
-PLcom/android/server/display/utils/AmbientFilterFactory;->createBrightnessFilter(Ljava/lang/String;Landroid/content/res/Resources;)Lcom/android/server/display/utils/AmbientFilter;
-PLcom/android/server/display/utils/AmbientFilterFactory;->getFloat(Landroid/content/res/Resources;I)F
 HSPLcom/android/server/display/utils/DebugUtils;-><clinit>()V
 HSPLcom/android/server/display/utils/DebugUtils;->isDebuggable(Ljava/lang/String;)Z
 HSPLcom/android/server/display/utils/DeviceConfigParsingUtils;->ambientBrightnessThresholdsIntToFloat([I)[F
 HSPLcom/android/server/display/utils/DeviceConfigParsingUtils;->displayBrightnessThresholdsIntToFloat([I)[F
 PLcom/android/server/display/utils/DeviceConfigParsingUtils;->parseDeviceConfigMap(Ljava/lang/String;Ljava/util/function/BiFunction;Ljava/util/function/Function;)Ljava/util/Map;
-PLcom/android/server/display/utils/History;-><init>(I)V
-PLcom/android/server/display/utils/History;-><init>(ILjava/time/Clock;)V
-HSPLcom/android/server/display/utils/Plog$SystemPlog;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/display/utils/Plog;-><init>()V
-HSPLcom/android/server/display/utils/Plog;->createSystemPlog(Ljava/lang/String;)Lcom/android/server/display/utils/Plog;
-PLcom/android/server/display/utils/RollingBuffer;-><init>()V
-PLcom/android/server/display/utils/RollingBuffer;->clear()V
+PLcom/android/server/display/utils/History;-><init>()V
 PLcom/android/server/display/utils/SensorUtils;->findSensor(Landroid/hardware/SensorManager;Lcom/android/server/display/config/SensorData;I)Landroid/hardware/Sensor;
 PLcom/android/server/display/utils/SensorUtils;->findSensor(Landroid/hardware/SensorManager;Ljava/lang/String;Ljava/lang/String;I)Landroid/hardware/Sensor;
+PLcom/android/server/display/utils/SensorUtils;->getSensorTemperatureType(Lcom/android/server/display/config/SensorData;)I
 PLcom/android/server/display/whitebalance/AmbientSensor$1;-><init>(Lcom/android/server/display/whitebalance/AmbientSensor;)V
-PLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
-HPLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;Ljava/lang/String;I)V
 PLcom/android/server/display/whitebalance/AmbientSensor;-><init>(Ljava/lang/String;Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
-PLcom/android/server/display/whitebalance/AmbientSensor;->validateArguments(Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
-PLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->create(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController;
 PLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->createBrightnessSensor(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;
 PLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->createColorTemperatureSensor(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;
+PLcom/android/server/dreams/DreamController$DreamRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;Landroid/os/IBinder;)V
+HPLcom/android/server/dreams/DreamController$DreamRecord$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/dreams/DreamController$DreamRecord$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;I)V
+PLcom/android/server/dreams/DreamController$DreamRecord$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/dreams/DreamController$DreamRecord$1;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
+PLcom/android/server/dreams/DreamController$DreamRecord$1;->sendResult(Landroid/os/Bundle;)V
+HPLcom/android/server/dreams/DreamController$DreamRecord;-><init>(Lcom/android/server/dreams/DreamController;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
+PLcom/android/server/dreams/DreamController$DreamRecord;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/dreams/DreamController$DreamRecord;->releaseWakeLockIfNeeded()V
 PLcom/android/server/dreams/DreamController;-><clinit>()V
-PLcom/android/server/dreams/DreamController;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/dreams/DreamController$Listener;)V
-PLcom/android/server/dreams/DreamController;->createDreamingStartedStoppedOptions()Landroid/os/Bundle;
+PLcom/android/server/dreams/DreamController;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/dreams/DreamManagerService$4;)V
+PLcom/android/server/dreams/DreamController;->stopDream(ZLjava/lang/String;)V
+HPLcom/android/server/dreams/DreamController;->stopDreamInstance(ZLjava/lang/String;Lcom/android/server/dreams/DreamController$DreamRecord;)V
+PLcom/android/server/dreams/DreamController;->stopPreviousDreams()V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/dreams/DreamManagerService;Ljava/lang/Object;I)V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/dreams/DreamManagerService;I)V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/dreams/DreamManagerService;ZLjava/lang/String;)V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/content/ComponentName;Landroid/os/Binder;ZZILandroid/os/PowerManager$WakeLock;Ljava/lang/String;)V
+HPLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda7;->run()V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda8;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/dreams/DreamManagerService$1;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
-PLcom/android/server/dreams/DreamManagerService$2;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
-PLcom/android/server/dreams/DreamManagerService$3;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+PLcom/android/server/dreams/DreamManagerService$2;-><init>(Lcom/android/server/dreams/DreamManagerService;I)V
+PLcom/android/server/dreams/DreamManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/dreams/DreamManagerService$4;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+PLcom/android/server/dreams/DreamManagerService$4;->onDreamStopped(Landroid/os/Binder;)V
+PLcom/android/server/dreams/DreamManagerService$5;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
 PLcom/android/server/dreams/DreamManagerService$5;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Handler;)V
 PLcom/android/server/dreams/DreamManagerService$6;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
 PLcom/android/server/dreams/DreamManagerService$BinderService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
-PLcom/android/server/dreams/DreamManagerService$BinderService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$BinderService-IA;)V
-PLcom/android/server/dreams/DreamManagerService$DreamHandler;-><init>(Landroid/os/Looper;)V
+PLcom/android/server/dreams/DreamManagerService$BinderService;->awaken()V
+PLcom/android/server/dreams/DreamManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/dreams/DreamManagerService$BinderService;->finishSelfOneway(Landroid/os/IBinder;Z)V
+PLcom/android/server/dreams/DreamManagerService$BinderService;->isDreaming()Z
+PLcom/android/server/dreams/DreamManagerService$BinderService;->startDozingOneway(Landroid/os/IBinder;IIFIZ)V
+PLcom/android/server/dreams/DreamManagerService$BinderService;->stopDozing(Landroid/os/IBinder;)V
+PLcom/android/server/dreams/DreamManagerService$DreamRecord;-><init>(Landroid/content/ComponentName;IZZ)V
+PLcom/android/server/dreams/DreamManagerService$DreamRecord;->toString()Ljava/lang/String;
 PLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
-PLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$LocalService-IA;)V
 HPLcom/android/server/dreams/DreamManagerService$LocalService;->isDreaming()Z
 PLcom/android/server/dreams/DreamManagerService$LocalService;->registerDreamManagerStateListener(Landroid/service/dreams/DreamManagerInternal$DreamManagerStateListener;)V
-PLcom/android/server/dreams/DreamManagerService$SettingsObserver;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Handler;)V
-PLcom/android/server/dreams/DreamManagerService;->-$$Nest$fgetmDreamManagerStateListeners(Lcom/android/server/dreams/DreamManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
-PLcom/android/server/dreams/DreamManagerService;->-$$Nest$misDreamingInternal(Lcom/android/server/dreams/DreamManagerService;)Z
-PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mshouldKeepDreamingWhenUnplugging(Lcom/android/server/dreams/DreamManagerService;)Z
-HPLcom/android/server/dreams/DreamManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/dreams/DreamManagerService;->getDozeComponent()Landroid/content/ComponentName;
-PLcom/android/server/dreams/DreamManagerService;->getDozeComponent(I)Landroid/content/ComponentName;
-PLcom/android/server/dreams/DreamManagerService;->getServiceInfo(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/dreams/DreamManagerService;->isDreamingInternal()Z
+PLcom/android/server/dreams/DreamManagerService$LocalService;->startDream(ZLjava/lang/String;)V
+PLcom/android/server/dreams/DreamManagerService$LocalService;->stopDream(ZLjava/lang/String;)V
+PLcom/android/server/dreams/DreamManagerService$PerUserPackageMonitor;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mcheckPermission(Lcom/android/server/dreams/DreamManagerService;Ljava/lang/String;)V
+PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mdumpInternal(Lcom/android/server/dreams/DreamManagerService;Ljava/io/PrintWriter;)V
+PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mfinishSelfInternal(Lcom/android/server/dreams/DreamManagerService;Landroid/os/IBinder;Z)V
+HPLcom/android/server/dreams/DreamManagerService;->-$$Nest$mstartDozingInternal(Lcom/android/server/dreams/DreamManagerService;Landroid/os/IBinder;IIFIZ)V
+PLcom/android/server/dreams/DreamManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/dreams/DreamManagerService;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/dreams/DreamManagerService;->cleanupDreamLocked()V
+HPLcom/android/server/dreams/DreamManagerService;->isDreamingInternal()Z
 PLcom/android/server/dreams/DreamManagerService;->onBootPhase(I)V
 PLcom/android/server/dreams/DreamManagerService;->onStart()V
-PLcom/android/server/dreams/DreamManagerService;->shouldKeepDreamingWhenUnplugging()Z
+PLcom/android/server/dreams/DreamManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/dreams/DreamManagerService;->startDreamInternal(Ljava/lang/String;Z)V
+HPLcom/android/server/dreams/DreamManagerService;->startDreamLocked(Landroid/content/ComponentName;ZZILjava/lang/String;)V
+PLcom/android/server/dreams/DreamManagerService;->stopDozingInternal(Landroid/os/IBinder;)V
+PLcom/android/server/dreams/DreamManagerService;->stopDreamInternal(Ljava/lang/String;Z)V
+HPLcom/android/server/dreams/DreamManagerService;->stopDreamLocked(Ljava/lang/String;Z)V
 PLcom/android/server/dreams/DreamManagerService;->updateWhenToDreamSettings()V
-PLcom/android/server/dreams/DreamManagerService;->validateDream(Landroid/content/ComponentName;)Z
+PLcom/android/server/dreams/DreamManagerService;->validateDream(ILandroid/content/ComponentName;)Z
 PLcom/android/server/dreams/DreamManagerService;->writePulseGestureEnabled()V
 PLcom/android/server/dreams/DreamUiEventLoggerImpl;-><init>([Ljava/lang/String;)V
+PLcom/android/server/dreams/Flags;-><clinit>()V
+PLcom/android/server/dreams/Flags;->useBatteryChangedBroadcast()Z
 PLcom/android/server/emergency/EmergencyAffordanceService$1;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
 PLcom/android/server/emergency/EmergencyAffordanceService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/emergency/EmergencyAffordanceService$2;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
 PLcom/android/server/emergency/EmergencyAffordanceService$BinderService;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
-PLcom/android/server/emergency/EmergencyAffordanceService$BinderService;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;Lcom/android/server/emergency/EmergencyAffordanceService$BinderService-IA;)V
+PLcom/android/server/emergency/EmergencyAffordanceService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/emergency/EmergencyAffordanceService$MyHandler;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;Landroid/os/Looper;)V
 PLcom/android/server/emergency/EmergencyAffordanceService$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/emergency/EmergencyAffordanceService;->-$$Nest$fgetmHandler(Lcom/android/server/emergency/EmergencyAffordanceService;)Lcom/android/server/emergency/EmergencyAffordanceService$MyHandler;
-PLcom/android/server/emergency/EmergencyAffordanceService;->-$$Nest$mhandleInitializeState(Lcom/android/server/emergency/EmergencyAffordanceService;)V
-PLcom/android/server/emergency/EmergencyAffordanceService;->-$$Nest$mhandleNetworkCountryChanged(Lcom/android/server/emergency/EmergencyAffordanceService;Ljava/lang/String;I)V
 PLcom/android/server/emergency/EmergencyAffordanceService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleInitializeState()V
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleNetworkCountryChanged(Ljava/lang/String;I)V
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleThirdPartyBootPhase()V
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateAirplaneModeStatus()V
 PLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateSimSubscriptionInfo()V
-PLcom/android/server/emergency/EmergencyAffordanceService;->isoRequiresEmergencyAffordance(Ljava/lang/String;)Z
 PLcom/android/server/emergency/EmergencyAffordanceService;->onBootPhase(I)V
 PLcom/android/server/emergency/EmergencyAffordanceService;->onStart()V
 PLcom/android/server/emergency/EmergencyAffordanceService;->updateEmergencyAffordanceNeeded()V
 PLcom/android/server/emergency/EmergencyAffordanceService;->updateNetworkCountry()V
-PLcom/android/server/feature/flags/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/feature/flags/FeatureFlagsImpl;-><init>()V
-HPLcom/android/server/feature/flags/FeatureFlagsImpl;->enableReadDropboxPermission()Z
-PLcom/android/server/feature/flags/FeatureFlagsImpl;->load_overrides_preload_safety()V
-PLcom/android/server/feature/flags/Flags;-><clinit>()V
-HPLcom/android/server/feature/flags/Flags;->enableReadDropboxPermission()Z
-HSPLcom/android/server/firewall/AndFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/AndFilter;-><clinit>()V
-HSPLcom/android/server/firewall/CategoryFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/CategoryFilter;-><clinit>()V
 HSPLcom/android/server/firewall/FilterFactory;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/FilterFactory;->getTagName()Ljava/lang/String;
 HSPLcom/android/server/firewall/IntentFirewall$FirewallHandler;-><init>(Lcom/android/server/firewall/IntentFirewall;Landroid/os/Looper;)V
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;-><init>()V
-HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;-><init>(Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver-IA;)V
-HPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->queryByComponent(Landroid/content/ComponentName;Ljava/util/List;)V
-PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->sortResults(Ljava/util/List;)V
+HPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->sortResults(Ljava/util/List;)V
 HSPLcom/android/server/firewall/IntentFirewall$RuleObserver;-><init>(Lcom/android/server/firewall/IntentFirewall;Ljava/io/File;)V
 HSPLcom/android/server/firewall/IntentFirewall;-><clinit>()V
-HSPLcom/android/server/firewall/IntentFirewall;-><init>(Lcom/android/server/firewall/IntentFirewall$AMSInterface;Landroid/os/Handler;)V
-HPLcom/android/server/firewall/IntentFirewall;->checkBroadcast(Landroid/content/Intent;IILjava/lang/String;I)Z
-HPLcom/android/server/firewall/IntentFirewall;->checkIntent(Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;Landroid/content/ComponentName;ILandroid/content/Intent;IILjava/lang/String;I)Z
-HPLcom/android/server/firewall/IntentFirewall;->checkService(Landroid/content/ComponentName;Landroid/content/Intent;IILjava/lang/String;Landroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/firewall/IntentFirewall;->checkStartActivity(Landroid/content/Intent;IILjava/lang/String;Landroid/content/pm/ApplicationInfo;)Z
+HSPLcom/android/server/firewall/IntentFirewall;-><init>(Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$UiHandler;)V
+HPLcom/android/server/firewall/IntentFirewall;->checkIntent(Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;Landroid/content/ComponentName;ILandroid/content/Intent;IILjava/lang/String;I)Z+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/firewall/IntentFirewall;->getPackageManager()Landroid/content/pm/PackageManagerInternal;
-HSPLcom/android/server/firewall/IntentFirewall;->getRulesDir()Ljava/io/File;
 HSPLcom/android/server/firewall/IntentFirewall;->readRulesDir(Ljava/io/File;)V
-HSPLcom/android/server/firewall/NotFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/NotFilter;-><clinit>()V
-HSPLcom/android/server/firewall/OrFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/OrFilter;-><clinit>()V
-HSPLcom/android/server/firewall/PortFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/PortFilter;-><clinit>()V
-HSPLcom/android/server/firewall/SenderFilter$1;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/SenderFilter$2;-><init>()V
-HSPLcom/android/server/firewall/SenderFilter$3;-><init>()V
-HSPLcom/android/server/firewall/SenderFilter$4;-><init>()V
-HSPLcom/android/server/firewall/SenderFilter$5;-><init>()V
+HSPLcom/android/server/firewall/SenderFilter$2;-><init>(I)V
 HSPLcom/android/server/firewall/SenderFilter;-><clinit>()V
-HSPLcom/android/server/firewall/SenderPackageFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/SenderPackageFilter;-><clinit>()V
-HSPLcom/android/server/firewall/SenderPermissionFilter$1;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/firewall/SenderPermissionFilter;-><clinit>()V
-HSPLcom/android/server/firewall/StringFilter$10;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$1;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$2;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$3;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$4;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$5;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$6;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$7;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$8;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$9;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/firewall/StringFilter$ValueProvider;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/firewall/StringFilter$1;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/firewall/StringFilter;-><clinit>()V
-HSPLcom/android/server/flags/DynamicFlagBinderDelegate$$ExternalSyntheticLambda0;-><init>()V
 HSPLcom/android/server/flags/DynamicFlagBinderDelegate$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/flags/DynamicFlagBinderDelegate$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/flags/DynamicFlagBinderDelegate;)V
 HSPLcom/android/server/flags/DynamicFlagBinderDelegate$1;-><init>(Lcom/android/server/flags/DynamicFlagBinderDelegate;)V
 HSPLcom/android/server/flags/DynamicFlagBinderDelegate$BinderGriever;-><init>(Lcom/android/server/flags/DynamicFlagBinderDelegate;I)V
-HSPLcom/android/server/flags/DynamicFlagBinderDelegate$BinderGriever;-><init>(Lcom/android/server/flags/DynamicFlagBinderDelegate;ILcom/android/server/flags/DynamicFlagBinderDelegate$BinderGriever-IA;)V
-HSPLcom/android/server/flags/DynamicFlagBinderDelegate;->$r8$lambda$vcppf9Un-gROJ-J-LEIMgIKeYoY(Ljava/lang/Integer;)Ljava/util/Set;
 HSPLcom/android/server/flags/DynamicFlagBinderDelegate;-><clinit>()V
 HSPLcom/android/server/flags/DynamicFlagBinderDelegate;-><init>(Lcom/android/server/flags/FlagOverrideStore;)V
-HSPLcom/android/server/flags/DynamicFlagBinderDelegate;->lambda$static$0(Ljava/lang/Integer;)Ljava/util/Set;
-HSPLcom/android/server/flags/DynamicFlagBinderDelegate;->registerCallback(ILandroid/flags/IFeatureFlagsCallback;)V
 HSPLcom/android/server/flags/FeatureFlagsBinder;-><init>(Lcom/android/server/flags/FlagOverrideStore;Lcom/android/server/flags/FlagsShellCommand;Lcom/android/server/flags/FeatureFlagsService$PermissionsChecker;)V
 HSPLcom/android/server/flags/FeatureFlagsBinder;->registerCallback(Landroid/flags/IFeatureFlagsCallback;)V
 HSPLcom/android/server/flags/FeatureFlagsService$PermissionsChecker;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/flags/FeatureFlagsService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/flags/FeatureFlagsService;->onBootPhase(I)V
 HSPLcom/android/server/flags/FeatureFlagsService;->onStart()V
-HSPLcom/android/server/flags/FlagCache$$ExternalSyntheticLambda0;-><init>()V
 HSPLcom/android/server/flags/FlagCache;-><init>()V
-HSPLcom/android/server/flags/FlagOverrideStore;-><init>(Lcom/android/server/flags/SettingsProxy;)V
-HSPLcom/android/server/flags/FlagOverrideStore;->setChangeCallback(Lcom/android/server/flags/FlagOverrideStore$FlagChangeCallback;)V
+HSPLcom/android/server/flags/FlagOverrideStore;-><init>(Lcom/android/server/flags/GlobalSettingsProxy;)V
 HSPLcom/android/server/flags/FlagsShellCommand;-><init>(Lcom/android/server/flags/FlagOverrideStore;)V
 HSPLcom/android/server/flags/GlobalSettingsProxy;-><init>(Landroid/content/ContentResolver;)V
 PLcom/android/server/gpu/GpuService;-><init>(Landroid/content/Context;)V
@@ -11654,26 +9150,14 @@
 PLcom/android/server/gpu/GpuService;->onStart()V
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionBackupHelper;-><clinit>()V
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionBackupHelper;-><init>(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;Landroid/content/pm/PackageManager;)V
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionManagerInternal;-><init>()V
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionBinderService;-><init>(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;)V
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionBinderService;-><init>(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;Lcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionBinderService-IA;)V
+PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionBinderService;->peekSystemGrammaticalGenderByUserId(Landroid/content/AttributionSource;I)I
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl;-><init>(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;)V
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl;-><init>(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;Lcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl-IA;)V
-HPLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl;->canGetSystemGrammaticalGender(ILjava/lang/String;)Z
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl;->getSystemGrammaticalGender(I)I
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl;->retrieveSystemGrammaticalGender(Landroid/content/res/Configuration;)I
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->$r8$lambda$sWnJ5Api2DUCiEAZO1zYUXFfRbI(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->-$$Nest$fgetmContext(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;)Landroid/content/Context;
-HPLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->-$$Nest$mcanGetSystemGrammaticalGender(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;Landroid/content/AttributionSource;)Z
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->-$$Nest$mcheckSystemTermsOfAddressIsEnabled(Lcom/android/server/grammaticalinflection/GrammaticalInflectionService;)Z
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->canGetSystemGrammaticalGender(Landroid/content/AttributionSource;)Z
-HPLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->checkSystemTermsOfAddressIsEnabled()Z
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->getGrammaticalGenderFile(I)Ljava/io/File;
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->getSystemGrammaticalGender(Landroid/content/AttributionSource;I)I
-PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->lambda$onUserUnlocked$0(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->checkSystemTermsOfAddressIsEnabled()Z
+PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->getSystemGrammaticalGender(I)I
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->onStart()V
 PLcom/android/server/grammaticalinflection/GrammaticalInflectionService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
 HPLcom/android/server/grammaticalinflection/GrammaticalInflectionUtils;->checkSystemGrammaticalGenderPermission(Landroid/permission/PermissionManager;Landroid/content/AttributionSource;)Z
@@ -11681,98 +9165,67 @@
 PLcom/android/server/graphics/fonts/FontManagerService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/graphics/fonts/FontManagerService$FsverityUtilImpl;-><init>([Ljava/lang/String;)V
 PLcom/android/server/graphics/fonts/FontManagerService$Lifecycle$1;-><init>(Lcom/android/server/graphics/fonts/FontManagerService$Lifecycle;)V
-HPLcom/android/server/graphics/fonts/FontManagerService$Lifecycle$1;->getSerializedSystemFontMap()Landroid/os/SharedMemory;
-HPLcom/android/server/graphics/fonts/FontManagerService$Lifecycle;->-$$Nest$fgetmService(Lcom/android/server/graphics/fonts/FontManagerService$Lifecycle;)Lcom/android/server/graphics/fonts/FontManagerService;
-HPLcom/android/server/graphics/fonts/FontManagerService$Lifecycle;->-$$Nest$fgetmServiceStarted(Lcom/android/server/graphics/fonts/FontManagerService$Lifecycle;)Ljava/util/concurrent/CompletableFuture;
 PLcom/android/server/graphics/fonts/FontManagerService$Lifecycle;-><init>(Landroid/content/Context;Z)V
 PLcom/android/server/graphics/fonts/FontManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/graphics/fonts/FontManagerService$Lifecycle;->onStart()V
-PLcom/android/server/graphics/fonts/FontManagerService;->$r8$lambda$6ntzwgOp0lINWCpV58rCsi7uat4(Lcom/android/server/graphics/fonts/FontManagerService;Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/graphics/fonts/FontManagerService;-><init>(Landroid/content/Context;ZLjava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/graphics/fonts/FontManagerService;-><init>(Landroid/content/Context;ZLjava/util/concurrent/CompletableFuture;Lcom/android/server/graphics/fonts/FontManagerService-IA;)V
 PLcom/android/server/graphics/fonts/FontManagerService;->createUpdatableFontDir()Lcom/android/server/graphics/fonts/UpdatableFontDir;
-HPLcom/android/server/graphics/fonts/FontManagerService;->getCurrentFontMap()Landroid/os/SharedMemory;
+PLcom/android/server/graphics/fonts/FontManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/graphics/fonts/FontManagerService;->getSystemFontConfig()Landroid/text/FontConfig;
 PLcom/android/server/graphics/fonts/FontManagerService;->initialize()V
-PLcom/android/server/graphics/fonts/FontManagerService;->lambda$new$0(Ljava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/graphics/fonts/FontManagerService;->serializeFontMap(Landroid/text/FontConfig;)Landroid/os/SharedMemory;
-PLcom/android/server/graphics/fonts/FontManagerService;->setSerializedFontMap(Landroid/os/SharedMemory;)V
-PLcom/android/server/graphics/fonts/FontManagerService;->setSystemFontMap()V
 PLcom/android/server/graphics/fonts/FontManagerService;->updateSerializedFontMap()V
-PLcom/android/server/graphics/fonts/OtfFontFileParser;-><init>()V
+PLcom/android/server/graphics/fonts/FontManagerShellCommand;-><init>(Lcom/android/server/graphics/fonts/FontManagerService;)V
+PLcom/android/server/graphics/fonts/FontManagerShellCommand;->dumpFontConfig(Landroid/util/IndentingPrintWriter;Landroid/text/FontConfig;)V
+PLcom/android/server/graphics/fonts/FontManagerShellCommand;->dumpSingleFontConfig(Landroid/util/IndentingPrintWriter;Landroid/text/FontConfig$Font;)V
 PLcom/android/server/graphics/fonts/PersistentSystemFontConfig$Config;-><init>()V
-PLcom/android/server/graphics/fonts/UpdatableFontDir$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/graphics/fonts/UpdatableFontDir$$ExternalSyntheticLambda1;-><init>()V
 PLcom/android/server/graphics/fonts/UpdatableFontDir$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/graphics/fonts/UpdatableFontDir;->$r8$lambda$l6wKUt3kHk5foaoReX8Hx16jJGk(Ljava/util/Map;)Landroid/text/FontConfig;
-PLcom/android/server/graphics/fonts/UpdatableFontDir;-><init>(Ljava/io/File;Lcom/android/server/graphics/fonts/UpdatableFontDir$FontFileParser;Lcom/android/server/graphics/fonts/UpdatableFontDir$FsverityUtil;Ljava/io/File;)V
-PLcom/android/server/graphics/fonts/UpdatableFontDir;-><init>(Ljava/io/File;Lcom/android/server/graphics/fonts/UpdatableFontDir$FontFileParser;Lcom/android/server/graphics/fonts/UpdatableFontDir$FsverityUtil;Ljava/io/File;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+PLcom/android/server/graphics/fonts/UpdatableFontDir;-><init>(Ljava/io/File;Lcom/android/server/graphics/fonts/OtfFontFileParser;Lcom/android/server/graphics/fonts/FontManagerService$FsverityUtilImpl;Ljava/io/File;)V
 PLcom/android/server/graphics/fonts/UpdatableFontDir;->getPostScriptMap()Ljava/util/Map;
 PLcom/android/server/graphics/fonts/UpdatableFontDir;->getSystemFontConfig()Landroid/text/FontConfig;
-PLcom/android/server/graphics/fonts/UpdatableFontDir;->lambda$new$0(Ljava/util/Map;)Landroid/text/FontConfig;
 PLcom/android/server/graphics/fonts/UpdatableFontDir;->loadFontFileMap()V
 PLcom/android/server/graphics/fonts/UpdatableFontDir;->readPersistentConfig()Lcom/android/server/graphics/fonts/PersistentSystemFontConfig$Config;
 PLcom/android/server/health/HealthHalCallbackHidl;-><clinit>()V
-PLcom/android/server/health/HealthHalCallbackHidl;-><init>(Lcom/android/server/health/HealthInfoCallback;)V
-PLcom/android/server/health/HealthHalCallbackHidl;->healthInfoChanged_2_1(Landroid/hardware/health/V2_1/HealthInfo;)V
-PLcom/android/server/health/HealthHalCallbackHidl;->onRegistration(Landroid/hardware/health/V2_0/IHealth;Landroid/hardware/health/V2_0/IHealth;Ljava/lang/String;)V
-PLcom/android/server/health/HealthHalCallbackHidl;->traceBegin(Ljava/lang/String;)V
-PLcom/android/server/health/HealthHalCallbackHidl;->traceEnd()V
 PLcom/android/server/health/HealthRegCallbackAidl$HalInfoCallback;-><init>(Lcom/android/server/health/HealthRegCallbackAidl;)V
-PLcom/android/server/health/HealthRegCallbackAidl$HalInfoCallback;-><init>(Lcom/android/server/health/HealthRegCallbackAidl;Lcom/android/server/health/HealthRegCallbackAidl$HalInfoCallback-IA;)V
-PLcom/android/server/health/HealthRegCallbackAidl;-><init>(Lcom/android/server/health/HealthInfoCallback;)V
-PLcom/android/server/health/HealthServiceWrapper$1;-><init>()V
-PLcom/android/server/health/HealthServiceWrapper$2;-><init>()V
-PLcom/android/server/health/HealthServiceWrapper$3;-><init>()V
-PLcom/android/server/health/HealthServiceWrapper;-><init>()V
-PLcom/android/server/health/HealthServiceWrapper;->create(Lcom/android/server/health/HealthInfoCallback;)Lcom/android/server/health/HealthServiceWrapper;
+PLcom/android/server/health/HealthRegCallbackAidl$HalInfoCallback;->asBinder()Landroid/os/IBinder;
+HPLcom/android/server/health/HealthRegCallbackAidl$HalInfoCallback;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/health/HealthRegCallbackAidl;-><init>(Lcom/android/server/BatteryService$$ExternalSyntheticLambda6;)V
+PLcom/android/server/health/HealthRegCallbackAidl;->onRegistration(Landroid/hardware/health/IHealth;Landroid/hardware/health/IHealth;)V
+PLcom/android/server/health/HealthServiceWrapper;->create(Lcom/android/server/BatteryService$$ExternalSyntheticLambda6;)Lcom/android/server/health/HealthServiceWrapper;
 PLcom/android/server/health/HealthServiceWrapper;->create(Lcom/android/server/health/HealthRegCallbackAidl;Lcom/android/server/health/HealthServiceWrapperAidl$ServiceManagerStub;Lcom/android/server/health/HealthServiceWrapperHidl$Callback;Lcom/android/server/health/HealthServiceWrapperHidl$IServiceManagerSupplier;Lcom/android/server/health/HealthServiceWrapperHidl$IHealthSupplier;)Lcom/android/server/health/HealthServiceWrapper;
+PLcom/android/server/health/HealthServiceWrapperAidl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/health/HealthServiceWrapperAidl;)V
+PLcom/android/server/health/HealthServiceWrapperAidl$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback;Landroid/os/IBinder;)V
+PLcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback;-><init>(Lcom/android/server/health/HealthServiceWrapperAidl;)V
-PLcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback;-><init>(Lcom/android/server/health/HealthServiceWrapperAidl;Lcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback-IA;)V
-PLcom/android/server/health/HealthServiceWrapperAidl$ServiceManagerStub;->waitForDeclaredService(Ljava/lang/String;)Landroid/hardware/health/IHealth;
+PLcom/android/server/health/HealthServiceWrapperAidl$ServiceCallback;->onRegistration(Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/health/HealthServiceWrapperAidl;-><clinit>()V
 PLcom/android/server/health/HealthServiceWrapperAidl;-><init>(Lcom/android/server/health/HealthRegCallbackAidl;Lcom/android/server/health/HealthServiceWrapperAidl$ServiceManagerStub;)V
-PLcom/android/server/health/HealthServiceWrapperAidl;->traceBegin(Ljava/lang/String;)V
+PLcom/android/server/health/HealthServiceWrapperAidl;->getHandlerThread()Landroid/os/HandlerThread;
+PLcom/android/server/health/HealthServiceWrapperAidl;->getHealthInfo()Landroid/hardware/health/HealthInfo;
+HPLcom/android/server/health/HealthServiceWrapperAidl;->getProperty(ILandroid/os/BatteryProperty;)I
+HPLcom/android/server/health/HealthServiceWrapperAidl;->getPropertyInternal(ILandroid/os/BatteryProperty;)I
+PLcom/android/server/health/HealthServiceWrapperAidl;->scheduleUpdate()V
 PLcom/android/server/health/HealthServiceWrapperAidl;->traceEnd()V
-PLcom/android/server/health/HealthServiceWrapperHidl$$ExternalSyntheticLambda4;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
-PLcom/android/server/health/HealthServiceWrapperHidl$$ExternalSyntheticLambda4;->onValues(II)V
-PLcom/android/server/health/HealthServiceWrapperHidl$IHealthSupplier;->get(Ljava/lang/String;)Landroid/hardware/health/V2_0/IHealth;
-PLcom/android/server/health/HealthServiceWrapperHidl$IServiceManagerSupplier;->get()Landroid/hidl/manager/V1_0/IServiceManager;
-PLcom/android/server/health/HealthServiceWrapperHidl$Notification$1;-><init>(Lcom/android/server/health/HealthServiceWrapperHidl$Notification;)V
-PLcom/android/server/health/HealthServiceWrapperHidl$Notification$1;->run()V
-PLcom/android/server/health/HealthServiceWrapperHidl$Notification;-><init>(Lcom/android/server/health/HealthServiceWrapperHidl;)V
-PLcom/android/server/health/HealthServiceWrapperHidl$Notification;-><init>(Lcom/android/server/health/HealthServiceWrapperHidl;Lcom/android/server/health/HealthServiceWrapperHidl$Notification-IA;)V
-PLcom/android/server/health/HealthServiceWrapperHidl$Notification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/health/HealthServiceWrapperHidl;->$r8$lambda$eetuJn3PsYCN-V7Scb_L05ajA3Q(Landroid/util/MutableInt;Landroid/os/BatteryProperty;II)V
-PLcom/android/server/health/HealthServiceWrapperHidl;->-$$Nest$fgetmHandlerThread(Lcom/android/server/health/HealthServiceWrapperHidl;)Landroid/os/HandlerThread;
-PLcom/android/server/health/HealthServiceWrapperHidl;->-$$Nest$fgetmHealthSupplier(Lcom/android/server/health/HealthServiceWrapperHidl;)Lcom/android/server/health/HealthServiceWrapperHidl$IHealthSupplier;
-PLcom/android/server/health/HealthServiceWrapperHidl;->-$$Nest$fgetmInstanceName(Lcom/android/server/health/HealthServiceWrapperHidl;)Ljava/lang/String;
-PLcom/android/server/health/HealthServiceWrapperHidl;->-$$Nest$fgetmLastService(Lcom/android/server/health/HealthServiceWrapperHidl;)Ljava/util/concurrent/atomic/AtomicReference;
-HPLcom/android/server/health/HealthServiceWrapperHidl;-><init>(Lcom/android/server/health/HealthServiceWrapperHidl$Callback;Lcom/android/server/health/HealthServiceWrapperHidl$IServiceManagerSupplier;Lcom/android/server/health/HealthServiceWrapperHidl$IHealthSupplier;)V
-PLcom/android/server/health/HealthServiceWrapperHidl;->getProperty(ILandroid/os/BatteryProperty;)I
-PLcom/android/server/health/HealthServiceWrapperHidl;->lambda$getProperty$3(Landroid/util/MutableInt;Landroid/os/BatteryProperty;II)V
-PLcom/android/server/health/HealthServiceWrapperHidl;->traceBegin(Ljava/lang/String;)V
-PLcom/android/server/health/HealthServiceWrapperHidl;->traceEnd()V
 PLcom/android/server/incident/IncidentCompanionService$BinderService;-><init>(Lcom/android/server/incident/IncidentCompanionService;)V
-PLcom/android/server/incident/IncidentCompanionService$BinderService;-><init>(Lcom/android/server/incident/IncidentCompanionService;Lcom/android/server/incident/IncidentCompanionService$BinderService-IA;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/incident/IncidentCompanionService;-><clinit>()V
 PLcom/android/server/incident/IncidentCompanionService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/incident/IncidentCompanionService;->onBootPhase(I)V
 PLcom/android/server/incident/IncidentCompanionService;->onStart()V
 PLcom/android/server/incident/PendingReports;-><init>(Landroid/content/Context;)V
-PLcom/android/server/incident/PendingReports;->onBootCompleted()V
 PLcom/android/server/incident/RequestQueue$1;-><init>(Lcom/android/server/incident/RequestQueue;)V
 PLcom/android/server/incident/RequestQueue;-><init>(Landroid/os/Handler;)V
-PLcom/android/server/incident/RequestQueue;->start()V
 PLcom/android/server/infra/AbstractMasterSystemService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)V
-PLcom/android/server/infra/AbstractMasterSystemService$1$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V
 PLcom/android/server/infra/AbstractMasterSystemService$1;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)V
-PLcom/android/server/infra/AbstractMasterSystemService$1;->getActiveServicePackageNameLocked()Ljava/lang/String;
 PLcom/android/server/infra/AbstractMasterSystemService$1;->handlePackageUpdateLocked(Ljava/lang/String;)V
-PLcom/android/server/infra/AbstractMasterSystemService$1;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
+PLcom/android/server/infra/AbstractMasterSystemService$1;->onPackageModified(Ljava/lang/String;)V
+PLcom/android/server/infra/AbstractMasterSystemService$1;->onPackageUpdateFinished(Ljava/lang/String;I)V
+PLcom/android/server/infra/AbstractMasterSystemService$1;->onPackageUpdateStarted(Ljava/lang/String;I)V
 PLcom/android/server/infra/AbstractMasterSystemService$SettingsObserver;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Landroid/os/Handler;)V
-PLcom/android/server/infra/AbstractMasterSystemService;-><init>(Landroid/content/Context;Lcom/android/server/infra/ServiceNameResolver;Ljava/lang/String;)V
-PLcom/android/server/infra/AbstractMasterSystemService;-><init>(Landroid/content/Context;Lcom/android/server/infra/ServiceNameResolver;Ljava/lang/String;I)V
+PLcom/android/server/infra/AbstractMasterSystemService$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V
+PLcom/android/server/infra/AbstractMasterSystemService;-><init>(Landroid/content/Context;Lcom/android/server/infra/FrameworkResourcesServiceNameResolver;Ljava/lang/String;)V
+PLcom/android/server/infra/AbstractMasterSystemService;-><init>(Landroid/content/Context;Lcom/android/server/infra/ServiceNameBaseResolver;Ljava/lang/String;I)V
+PLcom/android/server/infra/AbstractMasterSystemService;->getServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/infra/AbstractMasterSystemService;->getServiceListForUserLocked(I)Ljava/util/List;
 PLcom/android/server/infra/AbstractMasterSystemService;->getServiceSettingsProperty()Ljava/lang/String;
 PLcom/android/server/infra/AbstractMasterSystemService;->isDisabledLocked(I)Z
@@ -11782,112 +9235,106 @@
 PLcom/android/server/infra/AbstractMasterSystemService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/infra/AbstractMasterSystemService;->peekServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
 PLcom/android/server/infra/AbstractMasterSystemService;->peekServiceListForUserLocked(I)Ljava/util/List;
-PLcom/android/server/infra/AbstractMasterSystemService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
-PLcom/android/server/infra/AbstractMasterSystemService;->removeCachedServiceListLocked(I)Ljava/util/List;
-PLcom/android/server/infra/AbstractMasterSystemService;->startTrackingPackageChanges()V
-PLcom/android/server/infra/AbstractMasterSystemService;->updateCachedServiceListLocked(IZ)Ljava/util/List;
+PLcom/android/server/infra/AbstractMasterSystemService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Lcom/android/server/infra/AbstractMasterSystemService$SettingsObserver;)V
+PLcom/android/server/infra/AbstractMasterSystemService;->removeCachedServiceListLocked(I)V
+PLcom/android/server/infra/AbstractMasterSystemService;->updateCachedServiceListLocked(IZ)V
 PLcom/android/server/infra/AbstractMasterSystemService;->updateCachedServiceLocked(I)V
-PLcom/android/server/infra/AbstractMasterSystemService;->visitServicesLocked(Lcom/android/server/infra/AbstractMasterSystemService$Visitor;)V
 PLcom/android/server/infra/AbstractPerUserSystemService;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Ljava/lang/Object;I)V
 PLcom/android/server/infra/AbstractPerUserSystemService;->getComponentNameLocked()Ljava/lang/String;
-PLcom/android/server/infra/AbstractPerUserSystemService;->getContext()Landroid/content/Context;
 PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceComponent(Ljava/lang/String;)Landroid/content/ComponentName;
+PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceComponentName()Landroid/content/ComponentName;
+PLcom/android/server/infra/AbstractPerUserSystemService;->handlePackageUpdateLocked(Ljava/lang/String;)V
 PLcom/android/server/infra/AbstractPerUserSystemService;->isEnabledLocked()Z
-PLcom/android/server/infra/AbstractPerUserSystemService;->updateIsSetupComplete(I)V
 PLcom/android/server/infra/AbstractPerUserSystemService;->updateLocked(Z)Z
 PLcom/android/server/infra/AbstractPerUserSystemService;->updateServiceInfoListLocked()[Landroid/content/ComponentName;
 PLcom/android/server/infra/AbstractPerUserSystemService;->updateServiceInfoLocked()Landroid/content/ComponentName;
 PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;-><init>(Landroid/content/Context;I)V
 PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->readServiceName(I)Ljava/lang/String;
-PLcom/android/server/infra/ServiceNameBaseResolver;-><clinit>()V
+PLcom/android/server/infra/SecureSettingsServiceNameResolver;-><init>(Landroid/content/Context;Ljava/lang/String;Z)V
+PLcom/android/server/infra/SecureSettingsServiceNameResolver;->readServiceNameList(I)[Ljava/lang/String;
 PLcom/android/server/infra/ServiceNameBaseResolver;-><init>(Landroid/content/Context;Z)V
 PLcom/android/server/infra/ServiceNameBaseResolver;->getDefaultServiceNameList(I)[Ljava/lang/String;
 PLcom/android/server/infra/ServiceNameBaseResolver;->getServiceName(I)Ljava/lang/String;
 PLcom/android/server/infra/ServiceNameBaseResolver;->getServiceNameList(I)[Ljava/lang/String;
-PLcom/android/server/infra/ServiceNameBaseResolver;->isConfiguredInMultipleMode()Z
-PLcom/android/server/infra/ServiceNameBaseResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V
 PLcom/android/server/input/AmbientKeyboardBacklightController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/AmbientKeyboardBacklightController;)V
 PLcom/android/server/input/AmbientKeyboardBacklightController$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep;->-$$Nest$fgetmDecreaseLuxThreshold(Lcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep;)I
-PLcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep;->-$$Nest$fgetmIncreaseLuxThreshold(Lcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep;)I
 PLcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep;-><init>(III)V
-PLcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep;-><init>(IIILcom/android/server/input/AmbientKeyboardBacklightController$BrightnessStep-IA;)V
-PLcom/android/server/input/AmbientKeyboardBacklightController;->$r8$lambda$JJuuzJTMpjI9ZCGBKjwNrMezjco(Lcom/android/server/input/AmbientKeyboardBacklightController;Landroid/os/Message;)Z
 PLcom/android/server/input/AmbientKeyboardBacklightController;-><clinit>()V
 PLcom/android/server/input/AmbientKeyboardBacklightController;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 PLcom/android/server/input/AmbientKeyboardBacklightController;->getAmbientLightSensor(Landroid/hardware/display/DisplayManagerInternal$AmbientLightSensorData;)Landroid/hardware/Sensor;
-PLcom/android/server/input/AmbientKeyboardBacklightController;->handleDisplayChange()V
-PLcom/android/server/input/AmbientKeyboardBacklightController;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/input/AmbientKeyboardBacklightController;->initConfiguration()V
-PLcom/android/server/input/AmbientKeyboardBacklightController;->systemRunning()V
-PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda6;-><init>()V
-PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/input/AmbientKeyboardBacklightController;->handleDisplayChange()V
+PLcom/android/server/input/AmbientKeyboardBacklightController;->onDisplayChanged(I)V
+PLcom/android/server/input/AppLaunchShortcutManager$InterceptKeyResult;-><clinit>()V
+PLcom/android/server/input/AppLaunchShortcutManager$InterceptKeyResult;-><init>(ZLandroid/hardware/input/AppLaunchData;)V
+PLcom/android/server/input/AppLaunchShortcutManager;-><clinit>()V
+PLcom/android/server/input/AppLaunchShortcutManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/input/BatteryController;)V
 PLcom/android/server/input/BatteryController$1;-><init>(Lcom/android/server/input/BatteryController;)V
 PLcom/android/server/input/BatteryController$1;->onInputDeviceAdded(I)V
 PLcom/android/server/input/BatteryController$1;->onInputDeviceChanged(I)V
 PLcom/android/server/input/BatteryController$LocalBluetoothBatteryManager$1;-><init>(Lcom/android/server/input/BatteryController$LocalBluetoothBatteryManager;)V
 PLcom/android/server/input/BatteryController$LocalBluetoothBatteryManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/input/BatteryController;->$r8$lambda$n6_ejU_h9YIm1A7iCB3zx5esPWg(Landroid/view/InputDevice;)Ljava/lang/Boolean;
-PLcom/android/server/input/BatteryController;->-$$Nest$fgetmDeviceMonitors(Lcom/android/server/input/BatteryController;)Landroid/util/ArrayMap;
-PLcom/android/server/input/BatteryController;->-$$Nest$fgetmLock(Lcom/android/server/input/BatteryController;)Ljava/lang/Object;
-PLcom/android/server/input/BatteryController;->-$$Nest$misUsiDevice(Lcom/android/server/input/BatteryController;I)Z
 PLcom/android/server/input/BatteryController;-><clinit>()V
-PLcom/android/server/input/BatteryController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Landroid/os/Looper;Lcom/android/server/input/UEventManager;)V
 PLcom/android/server/input/BatteryController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Landroid/os/Looper;Lcom/android/server/input/UEventManager;Lcom/android/server/input/BatteryController$BluetoothBatteryManager;)V
-PLcom/android/server/input/BatteryController;->isUsiDevice(I)Z
-PLcom/android/server/input/BatteryController;->lambda$isUsiDevice$1(Landroid/view/InputDevice;)Ljava/lang/Boolean;
+PLcom/android/server/input/BatteryController;->findIf(Landroid/util/ArrayMap;Ljava/util/function/Predicate;)Ljava/lang/Object;
 PLcom/android/server/input/BatteryController;->monitor()V
 PLcom/android/server/input/BatteryController;->processInputDevice(ILjava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
-PLcom/android/server/input/BatteryController;->systemRunning()V
+PLcom/android/server/input/BatteryController;->updatePollingLocked(Z)V
 PLcom/android/server/input/GestureMonitorSpyWindow;-><init>(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/view/SurfaceControl;Landroid/view/InputChannel;)V
-PLcom/android/server/input/InputFeatureFlagProvider;-><clinit>()V
-PLcom/android/server/input/InputFeatureFlagProvider;->isAmbientKeyboardBacklightControlEnabled()Z
-PLcom/android/server/input/InputFeatureFlagProvider;->isKeyboardBacklightControlEnabled()Z
-PLcom/android/server/input/InputManagerInternal;-><init>()V
-PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/input/InputManagerService;Landroid/view/InputChannel;)V
-PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda8;-><init>(Ljava/util/List;)V
-PLcom/android/server/input/InputManagerService$1;-><init>(Lcom/android/server/input/InputManagerService;)V
-PLcom/android/server/input/InputManagerService$2;-><init>()V
-PLcom/android/server/input/InputManagerService$4;-><init>(Lcom/android/server/input/InputManagerService;)V
+PLcom/android/server/input/GestureMonitorSpyWindow;->dump()Ljava/lang/String;
+PLcom/android/server/input/InputDataStore$FileInjector;-><init>()V
+PLcom/android/server/input/InputDataStore$FileInjector;->getAtomicFileForUserId(I)Landroid/util/AtomicFile;
+PLcom/android/server/input/InputDataStore;-><init>()V
+PLcom/android/server/input/InputDataStore;->loadInputGestures(I)Ljava/util/List;
+PLcom/android/server/input/InputGestureManager;-><clinit>()V
+PLcom/android/server/input/InputGestureManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/input/InputGestureManager;->createKeyGesture(III)Landroid/hardware/input/InputGestureData;
+PLcom/android/server/input/InputGestureManager;->getCustomGestureForKeyEvent(Landroid/view/KeyEvent;I)Landroid/hardware/input/InputGestureData;
+PLcom/android/server/input/InputGestureManager;->removeAllCustomInputGestures(ILandroid/hardware/input/InputGestureData$Filter;)V
+PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/input/InputManagerService;Landroid/view/InputChannel;)V
+PLcom/android/server/input/InputManagerService$2;-><init>(Lcom/android/server/input/InputManagerService;)V
+PLcom/android/server/input/InputManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/input/InputManagerService$3;-><init>(Lcom/android/server/input/InputManagerService;)V
+PLcom/android/server/input/InputManagerService$3;->isKeyGestureSupported(I)Z
 HSPLcom/android/server/input/InputManagerService$AdditionalDisplayInputProperties;-><init>()V
-HSPLcom/android/server/input/InputManagerService$AdditionalDisplayInputProperties;->reset()V
-PLcom/android/server/input/InputManagerService$Injector;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/input/UEventManager;)V
-PLcom/android/server/input/InputManagerService$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/input/InputManagerService$Injector;->getLooper()Landroid/os/Looper;
-PLcom/android/server/input/InputManagerService$Injector;->getNativeService(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/NativeInputManagerService;
-PLcom/android/server/input/InputManagerService$Injector;->getUEventManager()Lcom/android/server/input/UEventManager;
-PLcom/android/server/input/InputManagerService$Injector;->registerLocalService(Lcom/android/server/input/InputManagerInternal;)V
+PLcom/android/server/input/InputManagerService$Injector;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/input/InputManagerService$1;)V
 PLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;-><init>(Lcom/android/server/input/InputManagerService;ILandroid/hardware/input/IInputDevicesChangedListener;)V
-PLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->notifyInputDevicesChanged([I)V
+PLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->binderDied()V
+PLcom/android/server/input/InputManagerService$InputFilterHost;-><init>(Lcom/android/server/input/InputManagerService;)V
+PLcom/android/server/input/InputManagerService$InputFilterHost;->sendInputEvent(Landroid/view/InputEvent;I)V
 PLcom/android/server/input/InputManagerService$InputManagerHandler;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Looper;)V
 PLcom/android/server/input/InputManagerService$InputManagerHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/input/InputManagerService$InputMonitorHost;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/IBinder;)V
+PLcom/android/server/input/InputManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+PLcom/android/server/input/InputManagerService$Lifecycle;->getService()Lcom/android/server/input/InputManagerService;
+PLcom/android/server/input/InputManagerService$Lifecycle;->onBootPhase(I)V
+PLcom/android/server/input/InputManagerService$Lifecycle;->onStart()V
 PLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;)V
-PLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;Lcom/android/server/input/InputManagerService$LocalService-IA;)V
-PLcom/android/server/input/InputManagerService$LocalService;->notifyUserActivity()V
 PLcom/android/server/input/InputManagerService$LocalService;->onInputMethodSubtypeChangedForKeyboardLayoutMapping(ILcom/android/internal/inputmethod/InputMethodSubtypeHandle;Landroid/view/inputmethod/InputMethodSubtype;)V
-PLcom/android/server/input/InputManagerService$LocalService;->setDisplayViewports(Ljava/util/List;)V
-PLcom/android/server/input/InputManagerService$LocalService;->setPulseGestureEnabled(Z)V
-PLcom/android/server/input/InputManagerService$LocalService;->setStylusButtonMotionEventsEnabled(Z)V
-PLcom/android/server/input/InputManagerService;->-$$Nest$fgetmDoubleTouchGestureEnableFile(Lcom/android/server/input/InputManagerService;)Ljava/io/File;
-PLcom/android/server/input/InputManagerService;->-$$Nest$fgetmKeyboardBacklightController(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/InputManagerService$KeyboardBacklightControllerInterface;
-PLcom/android/server/input/InputManagerService;->-$$Nest$fgetmKeyboardLayoutManager(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/KeyboardLayoutManager;
-PLcom/android/server/input/InputManagerService;->-$$Nest$fgetmNative(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/NativeInputManagerService;
-PLcom/android/server/input/InputManagerService;->-$$Nest$mdeliverInputDevicesChanged(Lcom/android/server/input/InputManagerService;[Landroid/view/InputDevice;)V
-PLcom/android/server/input/InputManagerService;->-$$Nest$mreloadDeviceAliases(Lcom/android/server/input/InputManagerService;)V
-PLcom/android/server/input/InputManagerService;->-$$Nest$msetDisplayViewportsInternal(Lcom/android/server/input/InputManagerService;Ljava/util/List;)V
+HPLcom/android/server/input/InputManagerService$LocalService;->setDisplayInteractivities(Landroid/util/SparseBooleanArray;)V
+PLcom/android/server/input/InputManagerService;->-$$Nest$monBootPhase(Lcom/android/server/input/InputManagerService;I)V
 HSPLcom/android/server/input/InputManagerService;-><clinit>()V
 PLcom/android/server/input/InputManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/input/InputManagerService;-><init>(Lcom/android/server/input/InputManagerService$Injector;)V
-PLcom/android/server/input/InputManagerService;->applyAdditionalDisplayInputProperties()V
-PLcom/android/server/input/InputManagerService;->applyAdditionalDisplayInputPropertiesLocked(Lcom/android/server/input/InputManagerService$AdditionalDisplayInputProperties;)V
-PLcom/android/server/input/InputManagerService;->canDispatchToDisplay(II)Z
+PLcom/android/server/input/InputManagerService;-><init>(Lcom/android/server/input/InputManagerService$Injector;)V
 PLcom/android/server/input/InputManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/input/InputManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;Z)Z
-PLcom/android/server/input/InputManagerService;->createInputChannel(Ljava/lang/String;)Landroid/view/InputChannel;
 PLcom/android/server/input/InputManagerService;->createSpyWindowGestureMonitor(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/SurfaceControl;III)Landroid/view/InputChannel;
-HPLcom/android/server/input/InputManagerService;->deliverInputDevicesChanged([Landroid/view/InputDevice;)V
+PLcom/android/server/input/InputManagerService;->deliverInputDevicesChanged([Landroid/view/InputDevice;)V
+PLcom/android/server/input/InputManagerService;->disableInputDevice(I)V
+PLcom/android/server/input/InputManagerService;->dispatchUnhandledKey(Landroid/os/IBinder;Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;
+PLcom/android/server/input/InputManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/input/InputManagerService;->dumpAssociations(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/input/InputManagerService;->dumpDisplayInputPropertiesValues(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/input/InputManagerService;->dumpSpyWindowGestureMonitors(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/input/InputManagerService;->enableInputDevice(I)V
+PLcom/android/server/input/InputManagerService;->enforceManageKeyGesturePermission()V
+PLcom/android/server/input/InputManagerService;->filterInputEvent(Landroid/view/InputEvent;I)Z
 PLcom/android/server/input/InputManagerService;->flatten(Ljava/util/Map;)[Ljava/lang/String;
+PLcom/android/server/input/InputManagerService;->getAppLaunchBookmarks()[Landroid/hardware/input/AidlInputGestureData;
 PLcom/android/server/input/InputManagerService;->getDeviceAlias(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/input/InputManagerService;->getDeviceTypeAssociations()[Ljava/lang/String;
 PLcom/android/server/input/InputManagerService;->getDoubleTapTimeout()I
@@ -11898,1920 +9345,1353 @@
 PLcom/android/server/input/InputManagerService;->getInputDeviceIds()[I
 PLcom/android/server/input/InputManagerService;->getInputDevices()[Landroid/view/InputDevice;
 PLcom/android/server/input/InputManagerService;->getInputPortAssociations()[Ljava/lang/String;
-PLcom/android/server/input/InputManagerService;->getInputUniqueIdAssociations()[Ljava/lang/String;
-PLcom/android/server/input/InputManagerService;->getKeyCodeState(III)I
+PLcom/android/server/input/InputManagerService;->getInputUniqueIdAssociationsByDescriptor()[Ljava/lang/String;
+PLcom/android/server/input/InputManagerService;->getInputUniqueIdAssociationsByPort()[Ljava/lang/String;
 PLcom/android/server/input/InputManagerService;->getKeyboardLayoutAssociations()[Ljava/lang/String;
 PLcom/android/server/input/InputManagerService;->getKeyboardLayoutOverlay(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
 PLcom/android/server/input/InputManagerService;->getLights(I)Ljava/util/List;
 PLcom/android/server/input/InputManagerService;->getLongPressTimeout()I
-PLcom/android/server/input/InputManagerService;->getScanCodeState(III)I
-PLcom/android/server/input/InputManagerService;->getSwitchState(III)I
 PLcom/android/server/input/InputManagerService;->getTouchCalibrationForInputDevice(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
 PLcom/android/server/input/InputManagerService;->getVelocityTrackerStrategy()Ljava/lang/String;
 PLcom/android/server/input/InputManagerService;->getVirtualKeyQuietTimeMillis()I
-PLcom/android/server/input/InputManagerService;->isInputDeviceEnabled(I)Z
+PLcom/android/server/input/InputManagerService;->initKeyGestures()V
+PLcom/android/server/input/InputManagerService;->injectInputEventToTarget(Landroid/view/InputEvent;II)Z
+HPLcom/android/server/input/InputManagerService;->interceptKeyBeforeDispatching(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J
+HPLcom/android/server/input/InputManagerService;->interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I
+PLcom/android/server/input/InputManagerService;->interceptMotionBeforeQueueingNonInteractive(IIIJI)I
+PLcom/android/server/input/InputManagerService;->interceptUnhandledKey(Landroid/view/KeyEvent;Landroid/os/IBinder;)Z
 PLcom/android/server/input/InputManagerService;->isMicMuted()I
 PLcom/android/server/input/InputManagerService;->loadStaticInputPortAssociations()Ljava/util/Map;
-HPLcom/android/server/input/InputManagerService;->monitor()V
+PLcom/android/server/input/InputManagerService;->monitor()V
 PLcom/android/server/input/InputManagerService;->monitorGestureInput(Landroid/os/IBinder;Ljava/lang/String;I)Landroid/view/InputMonitor;
 PLcom/android/server/input/InputManagerService;->monitorInput(Ljava/lang/String;I)Landroid/view/InputChannel;
-PLcom/android/server/input/InputManagerService;->notifyConfigurationChanged(J)V
 PLcom/android/server/input/InputManagerService;->notifyFocusChanged(Landroid/os/IBinder;Landroid/os/IBinder;)V
+PLcom/android/server/input/InputManagerService;->notifyInputChannelBroken(Landroid/os/IBinder;)V
 PLcom/android/server/input/InputManagerService;->notifyInputDevicesChanged([Landroid/view/InputDevice;)V
+PLcom/android/server/input/InputManagerService;->onBootPhase(I)V
+PLcom/android/server/input/InputManagerService;->onInputDevicesChangedListenerDied(I)V
+PLcom/android/server/input/InputManagerService;->onPointerDownOutsideFocus(Landroid/os/IBinder;)V
 PLcom/android/server/input/InputManagerService;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
+PLcom/android/server/input/InputManagerService;->registerKeyGestureHandler(Landroid/hardware/input/IKeyGestureHandler;)V
 PLcom/android/server/input/InputManagerService;->registerLidSwitchCallbackInternal(Lcom/android/server/input/InputManagerInternal$LidSwitchCallback;)V
 PLcom/android/server/input/InputManagerService;->reloadDeviceAliases()V
 PLcom/android/server/input/InputManagerService;->removeInputChannel(Landroid/os/IBinder;)V
 PLcom/android/server/input/InputManagerService;->setAccessibilityBounceKeysThreshold(I)V
 PLcom/android/server/input/InputManagerService;->setAccessibilitySlowKeysThreshold(I)V
 PLcom/android/server/input/InputManagerService;->setAccessibilityStickyKeysEnabled(Z)V
-PLcom/android/server/input/InputManagerService;->setDisplayViewportsInternal(Ljava/util/List;)V
+HPLcom/android/server/input/InputManagerService;->setDisplayViewportsInternal(Ljava/util/List;)V
 PLcom/android/server/input/InputManagerService;->setFocusedApplication(ILandroid/view/InputApplicationHandle;)V
 PLcom/android/server/input/InputManagerService;->setFocusedDisplay(I)V
 PLcom/android/server/input/InputManagerService;->setInTouchMode(ZIIZI)Z
 PLcom/android/server/input/InputManagerService;->setInputDispatchMode(ZZ)V
+PLcom/android/server/input/InputManagerService;->setInputFilter(Landroid/view/IInputFilter;)V
+PLcom/android/server/input/InputManagerService;->setPointerFillStyle(I)V
+PLcom/android/server/input/InputManagerService;->setPointerScale(F)V
+PLcom/android/server/input/InputManagerService;->setPointerStrokeStyle(I)V
+PLcom/android/server/input/InputManagerService;->setSystemUiLightsOut(Z)V
 PLcom/android/server/input/InputManagerService;->setUseLargePointerIcons(Z)V
 PLcom/android/server/input/InputManagerService;->setWindowManagerCallbacks(Lcom/android/server/input/InputManagerService$WindowManagerCallbacks;)V
 PLcom/android/server/input/InputManagerService;->start()V
 PLcom/android/server/input/InputManagerService;->systemRunning()V
-PLcom/android/server/input/InputManagerService;->updatePointerDisplayIdLocked(I)Z
 PLcom/android/server/input/InputManagerService;->updatePointerLocationEnabled(Z)V
 PLcom/android/server/input/InputManagerService;->updateShowKeyPresses(Z)V
 PLcom/android/server/input/InputManagerService;->updateShowRotaryInput(Z)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
+PLcom/android/server/input/InputManagerService;->updateTouchpadVisualizerEnabled(Z)V
+PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/InputSettingsObserver;I)V
 PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-PLcom/android/server/input/InputSettingsObserver$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V
 PLcom/android/server/input/InputSettingsObserver$1;-><init>(Lcom/android/server/input/InputSettingsObserver;)V
-HPLcom/android/server/input/InputSettingsObserver$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$8-nmfADGlbXR2y7cYvJjCtqiCDU(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$B6UbsHTKEzcrp2SmYSj1UeL9fa0(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$E77TZbEY0Eiqo5odbeeaxq9YVVY(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$EZo0BN6vEeXLyFlM39mQLCNLQRU(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$H1paEVQ6iS1w225jbFS3KlGpUH0(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$IAIqOWxGj0NqFaNlwpNZXIwerhY(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$MotvkOT12GYIlX8NWJLa1hYA0GA(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$QdnpwXhg1-UovvW3vm6K6ReunTA(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$Rr0lgi-WpfNxFXW9-C-Qm7EPPAQ(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$ZZJw7liozvnfpwJy3dHpbXK6TBs(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$_fP8LM44ztL2nXy491rpD7KkA8M(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$bQ6Pakt0-8gsVCTKD29WSS6maqM(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$fenPZ8hwNeHQiC5wNUY7p_Nan68(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$fuEgvfKd7GY8eVSNTB3BzuuJKHQ(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$k6knUOK1nWWHQJdmB93hBPmnk4g(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$pqYW_K7ai5UbiF55BnWTwJfksFE(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$tCrW_EpGwbX9GnJRAW5H1bM6Rsc(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$uo0KjrciiUrgeyPJZXw8X_RZfIU(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->$r8$lambda$uxAhDD-5nvRXXpXuIseeY9peJ1s(Lcom/android/server/input/InputSettingsObserver;Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->-$$Nest$fgetmObservers(Lcom/android/server/input/InputSettingsObserver;)Ljava/util/Map;
-HPLcom/android/server/input/InputSettingsObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/input/InputManagerService;Lcom/android/server/input/NativeInputManagerService;)V
-PLcom/android/server/input/InputSettingsObserver;->configureUserActivityPokeInterval()V
-PLcom/android/server/input/InputSettingsObserver;->constrainPointerSpeedValue(I)I
-PLcom/android/server/input/InputSettingsObserver;->getBoolean(Ljava/lang/String;Z)Z
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$0(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$1(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$10(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$11(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$12(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$13(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$14(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$15(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$16(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$17(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$18(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$2(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$3(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$4(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$5(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$6(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$7(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$8(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->lambda$new$9(Ljava/lang/String;)V
-HPLcom/android/server/input/InputSettingsObserver;->registerAndUpdate()V
-PLcom/android/server/input/InputSettingsObserver;->updateAccessibilityBounceKeys()V
-PLcom/android/server/input/InputSettingsObserver;->updateAccessibilityLargePointer()V
-PLcom/android/server/input/InputSettingsObserver;->updateAccessibilitySlowKeys()V
-PLcom/android/server/input/InputSettingsObserver;->updateAccessibilityStickyKeys()V
+PLcom/android/server/input/InputSettingsObserver$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/input/InputSettingsObserver;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService$InputManagerHandler;Lcom/android/server/input/InputManagerService;Lcom/android/server/input/NativeInputManagerService$NativeImpl;)V
+PLcom/android/server/input/InputSettingsObserver;->getBoolean(Ljava/lang/String;)Z
 PLcom/android/server/input/InputSettingsObserver;->updateKeyRepeatInfo()V
-PLcom/android/server/input/InputSettingsObserver;->updateLongPressTimeout(Ljava/lang/String;)V
-PLcom/android/server/input/InputSettingsObserver;->updateMaximumObscuringOpacityForTouch()V
-PLcom/android/server/input/InputSettingsObserver;->updateMousePointerSpeed()V
-PLcom/android/server/input/InputSettingsObserver;->updatePointerLocation()V
-PLcom/android/server/input/InputSettingsObserver;->updateShowKeyPresses()V
-PLcom/android/server/input/InputSettingsObserver;->updateShowRotaryInput()V
-PLcom/android/server/input/InputSettingsObserver;->updateShowTouches()V
-PLcom/android/server/input/InputSettingsObserver;->updateStylusPointerIconEnabled()V
-PLcom/android/server/input/InputSettingsObserver;->updateTouchpadNaturalScrollingEnabled()V
-PLcom/android/server/input/InputSettingsObserver;->updateTouchpadPointerSpeed()V
-PLcom/android/server/input/InputSettingsObserver;->updateTouchpadRightClickZoneEnabled()V
-PLcom/android/server/input/InputSettingsObserver;->updateTouchpadTapDraggingEnabled()V
-PLcom/android/server/input/InputSettingsObserver;->updateTouchpadTapToClickEnabled()V
+PLcom/android/server/input/KeyGestureController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/KeyGestureController;)V
+HPLcom/android/server/input/KeyGestureController$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z
+PLcom/android/server/input/KeyGestureController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/input/KeyGestureController;)V
+PLcom/android/server/input/KeyGestureController$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/input/KeyGestureController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/input/KeyGestureController;)V
+PLcom/android/server/input/KeyGestureController$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/input/KeyGestureController$1;-><init>(Lcom/android/server/input/KeyGestureController;I)V
+PLcom/android/server/input/KeyGestureController$1;->cancel()V
+PLcom/android/server/input/KeyGestureController$1;->getGestureType()I
+PLcom/android/server/input/KeyGestureController$1;->getKeyInterceptDelayMs()J
+PLcom/android/server/input/KeyGestureController$1;->preCondition()Z
+PLcom/android/server/input/KeyGestureController$KeyGestureHandlerRecord;-><init>(Lcom/android/server/input/KeyGestureController;ILandroid/hardware/input/IKeyGestureHandler;)V
+PLcom/android/server/input/KeyGestureController$SettingsObserver;-><init>(Lcom/android/server/input/KeyGestureController;Landroid/os/Handler;)V
+PLcom/android/server/input/KeyGestureController;->-$$Nest$mhandleMultiKeyGesture(Lcom/android/server/input/KeyGestureController;[IIII)V
+HPLcom/android/server/input/KeyGestureController;->-$$Nest$misKeyGestureSupported(Lcom/android/server/input/KeyGestureController;I)Z
+PLcom/android/server/input/KeyGestureController;-><clinit>()V
+PLcom/android/server/input/KeyGestureController;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/input/InputDataStore;)V
+HPLcom/android/server/input/KeyGestureController;->createKeyGestureEvent(I[IIIIIILandroid/hardware/input/AppLaunchData;)Landroid/hardware/input/AidlKeyGestureEvent;
+PLcom/android/server/input/KeyGestureController;->handleKeyGesture(I[IIIIILandroid/os/IBinder;ILandroid/hardware/input/AppLaunchData;)Z
+PLcom/android/server/input/KeyGestureController;->handleKeyGesture(Landroid/hardware/input/AidlKeyGestureEvent;Landroid/os/IBinder;)Z
+PLcom/android/server/input/KeyGestureController;->initBehaviorsFromSettings()V
 PLcom/android/server/input/KeyRemapper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/KeyRemapper;)V
 PLcom/android/server/input/KeyRemapper$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/input/KeyRemapper;->$r8$lambda$N4TqxA4BYCMFcqyr3TCvlujPC84(Lcom/android/server/input/KeyRemapper;Landroid/os/Message;)Z
-PLcom/android/server/input/KeyRemapper;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;)V
-PLcom/android/server/input/KeyRemapper;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/input/KeyRemapper;->onInputDeviceAdded(I)V
-PLcom/android/server/input/KeyRemapper;->onInputDeviceChanged(I)V
-PLcom/android/server/input/KeyRemapper;->supportRemapping()Z
-PLcom/android/server/input/KeyRemapper;->systemRunning()V
-PLcom/android/server/input/KeyboardBacklightController$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/input/KeyRemapper;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService$NativeImpl;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;)V
+PLcom/android/server/input/KeyRemapper;->getKeyRemapping()Ljava/util/Map;
+PLcom/android/server/input/KeyRemapper;->setKeyRemapping(Ljava/util/Map;)V
 PLcom/android/server/input/KeyboardBacklightController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/input/KeyboardBacklightController;)V
-PLcom/android/server/input/KeyboardBacklightController$$ExternalSyntheticLambda2;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/input/KeyboardBacklightController$$ExternalSyntheticLambda2;->handleMessage(Landroid/os/Message;)Z
 PLcom/android/server/input/KeyboardBacklightController$1;-><init>(Lcom/android/server/input/KeyboardBacklightController;)V
-PLcom/android/server/input/KeyboardBacklightController;->$r8$lambda$x56uNWQ8yZ3aSFy91aBfHRGVrXg(Lcom/android/server/input/KeyboardBacklightController;Landroid/os/Message;)Z
 PLcom/android/server/input/KeyboardBacklightController;-><clinit>()V
-PLcom/android/server/input/KeyboardBacklightController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;Lcom/android/server/input/KeyboardBacklightController$AnimatorFactory;Lcom/android/server/input/UEventManager;)V
-PLcom/android/server/input/KeyboardBacklightController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;Lcom/android/server/input/UEventManager;)V
-PLcom/android/server/input/KeyboardBacklightController;->getInputDevice(I)Landroid/view/InputDevice;
-PLcom/android/server/input/KeyboardBacklightController;->getKeyboardBacklight(Landroid/view/InputDevice;)Landroid/hardware/lights/Light;
-PLcom/android/server/input/KeyboardBacklightController;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/input/KeyboardBacklightController;->handleUserActivity()V
-PLcom/android/server/input/KeyboardBacklightController;->handleUserInactivity()V
-PLcom/android/server/input/KeyboardBacklightController;->notifyUserActivity()V
+PLcom/android/server/input/KeyboardBacklightController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Landroid/os/Looper;Lcom/android/server/input/KeyboardBacklightController$AnimatorFactory;Lcom/android/server/input/UEventManager;)V
+PLcom/android/server/input/KeyboardBacklightController;->handleInteractiveStateChange(Z)V
+HPLcom/android/server/input/KeyboardBacklightController;->handleUserActivity()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/input/KeyboardBacklightController;->onInputDeviceAdded(I)V
 PLcom/android/server/input/KeyboardBacklightController;->onInputDeviceChanged(I)V
-PLcom/android/server/input/KeyboardBacklightController;->systemRunning()V
 PLcom/android/server/input/KeyboardBacklightController;->updateAmbientLightListener()V
-PLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/input/KeyboardLayoutManager;)V
-PLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda5;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda7;-><init>(Ljava/util/HashSet;)V
-HPLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda7;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
+PLcom/android/server/input/KeyboardGlyphManager$1;-><init>(Lcom/android/server/input/KeyboardGlyphManager;)V
+PLcom/android/server/input/KeyboardGlyphManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/input/KeyboardGlyphManager;-><clinit>()V
+PLcom/android/server/input/KeyboardGlyphManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+PLcom/android/server/input/KeyboardGlyphManager;->loadGlyphMapDataList()Ljava/util/List;
+PLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda0;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
+PLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/input/KeyboardLayoutManager;)V
+PLcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda4;->handleMessage(Landroid/os/Message;)Z
 PLcom/android/server/input/KeyboardLayoutManager$1;-><init>(Lcom/android/server/input/KeyboardLayoutManager;)V
-PLcom/android/server/input/KeyboardLayoutManager$3;-><init>(Lcom/android/server/input/KeyboardLayoutManager;Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/input/KeyboardLayoutManager$3;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
+PLcom/android/server/input/KeyboardLayoutManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/input/KeyboardLayoutManager$2;-><init>(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/input/KeyboardLayoutManager$2;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
 PLcom/android/server/input/KeyboardLayoutManager$ImeInfo;-><init>(ILcom/android/internal/inputmethod/InputMethodSubtypeHandle;Landroid/view/inputmethod/InputMethodSubtype;)V
-HPLcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;->-$$Nest$fgetmIdentifier(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;)Landroid/hardware/input/InputDeviceIdentifier;
-PLcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;->-$$Nest$fgetmLanguageTag(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;)Ljava/lang/String;
 PLcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;-><init>(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;-><init>(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier-IA;)V
-HPLcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;->toString()Ljava/lang/String;
-HPLcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutDescriptor;->format(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/input/KeyboardLayoutManager$LayoutKey;-><init>(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;)V
-PLcom/android/server/input/KeyboardLayoutManager$LayoutKey;-><init>(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;Lcom/android/server/input/KeyboardLayoutManager$LayoutKey-IA;)V
-HPLcom/android/server/input/KeyboardLayoutManager$LayoutKey;->toString()Ljava/lang/String;
-PLcom/android/server/input/KeyboardLayoutManager;->$r8$lambda$OSXbhKl2Ydsv_pJa-G91vzms3iI(Ljava/util/HashSet;Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
-PLcom/android/server/input/KeyboardLayoutManager;->$r8$lambda$y-LzIDNoOFY2WLN0_gSck9p-JRA(Lcom/android/server/input/KeyboardLayoutManager;Landroid/os/Message;)Z
-HPLcom/android/server/input/KeyboardLayoutManager;->-$$Nest$smisLayoutCompatibleWithLanguageTag(Landroid/hardware/input/KeyboardLayout;Ljava/lang/String;)Z
+PLcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;->toString()Ljava/lang/String;
 PLcom/android/server/input/KeyboardLayoutManager;-><clinit>()V
-PLcom/android/server/input/KeyboardLayoutManager;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;)V
-PLcom/android/server/input/KeyboardLayoutManager;->getDefaultKeyboardLayoutBasedOnImeInfo(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;[Landroid/hardware/input/KeyboardLayout;)Lcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutInfo;
+PLcom/android/server/input/KeyboardLayoutManager;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService$NativeImpl;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;)V
+PLcom/android/server/input/KeyboardLayoutManager;->getDefaultKeyboardLayoutBasedOnImeInfo(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;[Landroid/hardware/input/KeyboardLayout;)Landroid/hardware/input/KeyboardLayoutSelectionResult;
 PLcom/android/server/input/KeyboardLayoutManager;->getInputDevice(I)Landroid/view/InputDevice;
-HPLcom/android/server/input/KeyboardLayoutManager;->getKeyboardLayoutForInputDeviceInternal(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;)Lcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutInfo;
-HPLcom/android/server/input/KeyboardLayoutManager;->getKeyboardLayoutListForInputDeviceInternal(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;)[Landroid/hardware/input/KeyboardLayout;
-PLcom/android/server/input/KeyboardLayoutManager;->getKeyboardLayoutOverlay(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
-HPLcom/android/server/input/KeyboardLayoutManager;->getLocalesFromLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList;
-PLcom/android/server/input/KeyboardLayoutManager;->getMatchingLayoutForProvidedLanguageTag(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/input/KeyboardLayoutManager;->getKeyboardLayoutForInputDeviceInternal(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;)Landroid/hardware/input/KeyboardLayoutSelectionResult;
+PLcom/android/server/input/KeyboardLayoutManager;->getKeyboardLayoutListForInputDeviceInternal(Lcom/android/server/input/KeyboardLayoutManager$KeyboardIdentifier;Lcom/android/server/input/KeyboardLayoutManager$ImeInfo;)[Landroid/hardware/input/KeyboardLayout;
+PLcom/android/server/input/KeyboardLayoutManager;->getMatchingLayoutForProvidedLanguageTag(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
 PLcom/android/server/input/KeyboardLayoutManager;->getMatchingLayoutForProvidedLanguageTagAndLayoutType([Landroid/hardware/input/KeyboardLayout;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/input/KeyboardLayoutManager;->handleMessage(Landroid/os/Message;)Z
-HPLcom/android/server/input/KeyboardLayoutManager;->isLayoutCompatibleWithLanguageTag(Landroid/hardware/input/KeyboardLayout;Ljava/lang/String;)Z
-HPLcom/android/server/input/KeyboardLayoutManager;->lambda$updateKeyboardLayouts$1(Ljava/util/HashSet;Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
-PLcom/android/server/input/KeyboardLayoutManager;->onInputDeviceAdded(I)V
 PLcom/android/server/input/KeyboardLayoutManager;->onInputDeviceChanged(I)V
 PLcom/android/server/input/KeyboardLayoutManager;->onInputDeviceChangedInternal(IZ)V
-PLcom/android/server/input/KeyboardLayoutManager;->onInputMethodSubtypeChanged(ILcom/android/internal/inputmethod/InputMethodSubtypeHandle;Landroid/view/inputmethod/InputMethodSubtype;)V
-PLcom/android/server/input/KeyboardLayoutManager;->reloadKeyboardLayouts()V
-PLcom/android/server/input/KeyboardLayoutManager;->systemRunning()V
 PLcom/android/server/input/KeyboardLayoutManager;->updateKeyboardLayouts()V
-PLcom/android/server/input/KeyboardLayoutManager;->useNewSettingsUi()Z
-HPLcom/android/server/input/KeyboardLayoutManager;->visitAllKeyboardLayouts(Lcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutVisitor;)V
-HPLcom/android/server/input/KeyboardLayoutManager;->visitKeyboardLayoutsInPackage(Landroid/content/pm/PackageManager;Landroid/content/pm/ActivityInfo;Ljava/lang/String;ILcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutVisitor;)V
+PLcom/android/server/input/KeyboardLayoutManager;->visitAllKeyboardLayouts(Lcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutVisitor;)V
+HPLcom/android/server/input/KeyboardLayoutManager;->visitKeyboardLayoutsInPackage(Landroid/content/pm/PackageManager;Landroid/content/pm/ActivityInfo;Ljava/lang/String;ILcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutVisitor;)V+]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser;]Lcom/android/server/input/KeyboardLayoutManager$KeyboardLayoutVisitor;Lcom/android/server/input/KeyboardLayoutManager$$ExternalSyntheticLambda0;,Lcom/android/server/input/KeyboardLayoutManager$2;]Ljava/lang/CharSequence;Ljava/lang/String;
+PLcom/android/server/input/KeyboardLedController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/KeyboardLedController;)V
+PLcom/android/server/input/KeyboardLedController$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z
+PLcom/android/server/input/KeyboardLedController$1;-><init>(Lcom/android/server/input/KeyboardLedController;I)V
+PLcom/android/server/input/KeyboardLedController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/input/KeyboardLedController;-><clinit>()V
+PLcom/android/server/input/KeyboardLedController;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/input/NativeInputManagerService$NativeImpl;)V
+PLcom/android/server/input/KeyboardLedController;->getKeyboardMicMuteLight(Landroid/view/InputDevice;)Landroid/hardware/lights/Light;
+PLcom/android/server/input/KeyboardLedController;->getKeyboardVolumeMuteLight(Landroid/view/InputDevice;)Landroid/hardware/lights/Light;
+PLcom/android/server/input/KeyboardLedController;->onInputDeviceChanged(I)V
+PLcom/android/server/input/KeyboardMetricsCollector;-><clinit>()V
 PLcom/android/server/input/NativeInputManagerService$NativeImpl;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/MessageQueue;)V
 PLcom/android/server/input/PersistentDataStore$Injector;-><init>()V
-PLcom/android/server/input/PersistentDataStore$Injector;->openRead()Ljava/io/InputStream;
-PLcom/android/server/input/PersistentDataStore;-><init>()V
 PLcom/android/server/input/PersistentDataStore;-><init>(Lcom/android/server/input/PersistentDataStore$Injector;)V
-PLcom/android/server/input/PersistentDataStore;->clearState()V
-PLcom/android/server/input/PersistentDataStore;->getInputDeviceState(Ljava/lang/String;)Lcom/android/server/input/PersistentDataStore$InputDeviceState;
-PLcom/android/server/input/PersistentDataStore;->getKeyboardLayout(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/input/PersistentDataStore;->getTouchCalibration(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
-PLcom/android/server/input/PersistentDataStore;->load()V
 PLcom/android/server/input/PersistentDataStore;->loadIfNeeded()V
-PLcom/android/server/input/PersistentDataStore;->removeUninstalledKeyboardLayouts(Ljava/util/Set;)Z
+PLcom/android/server/input/PersistentDataStore;->removeUninstalledKeyboardLayouts(Ljava/util/Set;)V
 PLcom/android/server/input/PersistentDataStore;->saveIfNeeded()V
+PLcom/android/server/input/PointerIconCache$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/PointerIconCache;II)V
+PLcom/android/server/input/PointerIconCache$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/input/PointerIconCache$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/input/PointerIconCache;F)V
+PLcom/android/server/input/PointerIconCache$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/input/PointerIconCache$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/input/PointerIconCache;Z)V
+PLcom/android/server/input/PointerIconCache$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/input/PointerIconCache$1;-><init>(Lcom/android/server/input/PointerIconCache;)V
+PLcom/android/server/input/PointerIconCache$1;->onDisplayAdded(I)V
+HPLcom/android/server/input/PointerIconCache$1;->onDisplayChanged(I)V
+PLcom/android/server/input/PointerIconCache;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Landroid/os/Handler;)V
+PLcom/android/server/input/PointerIconCache;->monitor()V
+HPLcom/android/server/input/PointerIconCache;->updateDisplayDensityLocked(I)Z
 PLcom/android/server/input/StickyModifierStateController;-><clinit>()V
 PLcom/android/server/input/StickyModifierStateController;-><init>()V
 PLcom/android/server/input/UEventManager$UEventListener$1;-><init>(Lcom/android/server/input/UEventManager$UEventListener;)V
-PLcom/android/server/input/UEventManager$UEventListener;->-$$Nest$fgetmObserver(Lcom/android/server/input/UEventManager$UEventListener;)Landroid/os/UEventObserver;
 PLcom/android/server/input/UEventManager$UEventListener;-><init>()V
-PLcom/android/server/input/UEventManager;->addListener(Lcom/android/server/input/UEventManager$UEventListener;Ljava/lang/String;)V
+PLcom/android/server/input/debug/TouchpadDebugViewController;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/input/InputManagerService;)V
 PLcom/android/server/inputmethod/AdditionalSubtypeMap;-><clinit>()V
 PLcom/android/server/inputmethod/AdditionalSubtypeMap;-><init>(Landroid/util/ArrayMap;)V
-PLcom/android/server/inputmethod/AdditionalSubtypeMap;->get(Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/inputmethod/AdditionalSubtypeUtils;->getAdditionalSubtypeFile(Ljava/io/File;)Landroid/util/AtomicFile;
-PLcom/android/server/inputmethod/AdditionalSubtypeUtils;->getInputMethodDir(I)Ljava/io/File;
-PLcom/android/server/inputmethod/AdditionalSubtypeUtils;->load(I)Lcom/android/server/inputmethod/AdditionalSubtypeMap;
-PLcom/android/server/inputmethod/AutofillSuggestionsController;-><clinit>()V
-PLcom/android/server/inputmethod/AutofillSuggestionsController;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/AdditionalSubtypeMapRepository$SingleThreadedBackgroundWriter$1;-><init>(Lcom/android/server/inputmethod/AdditionalSubtypeMapRepository$SingleThreadedBackgroundWriter;)V
+PLcom/android/server/inputmethod/AdditionalSubtypeMapRepository$SingleThreadedBackgroundWriter$1;->run()V
+PLcom/android/server/inputmethod/AdditionalSubtypeMapRepository$SingleThreadedBackgroundWriter;-><init>()V
+PLcom/android/server/inputmethod/AdditionalSubtypeMapRepository;-><clinit>()V
+PLcom/android/server/inputmethod/AdditionalSubtypeMapRepository;->get(I)Lcom/android/server/inputmethod/AdditionalSubtypeMap;
+PLcom/android/server/inputmethod/AutofillSuggestionsController;-><init>(Lcom/android/server/inputmethod/InputMethodBindingController;)V
 PLcom/android/server/inputmethod/AutofillSuggestionsController;->performOnCreateInlineSuggestionsRequest()V
 PLcom/android/server/inputmethod/ClientController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/inputmethod/ClientController;Lcom/android/server/inputmethod/IInputMethodClientInvoker;)V
 PLcom/android/server/inputmethod/ClientController$$ExternalSyntheticLambda0;->binderDied()V
-PLcom/android/server/inputmethod/ClientController;->$r8$lambda$eF4cD2NQlJ6H-Idt0s1NiLWRSeA(Lcom/android/server/inputmethod/ClientController;Lcom/android/server/inputmethod/IInputMethodClientInvoker;)V
 PLcom/android/server/inputmethod/ClientController;-><init>(Landroid/content/pm/PackageManagerInternal;)V
-HPLcom/android/server/inputmethod/ClientController;->addClient(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Lcom/android/internal/inputmethod/IRemoteInputConnection;III)Lcom/android/server/inputmethod/ClientState;
-PLcom/android/server/inputmethod/ClientController;->addClientControllerCallback(Lcom/android/server/inputmethod/ClientController$ClientControllerCallback;)V
+PLcom/android/server/inputmethod/ClientController;->addClient(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Lcom/android/internal/inputmethod/IRemoteInputConnection;III)V
+PLcom/android/server/inputmethod/ClientController;->forAllClients(Ljava/util/function/Consumer;)V
 PLcom/android/server/inputmethod/ClientController;->getClient(Landroid/os/IBinder;)Lcom/android/server/inputmethod/ClientState;
-PLcom/android/server/inputmethod/ClientController;->lambda$addClient$0(Lcom/android/server/inputmethod/IInputMethodClientInvoker;)V
 PLcom/android/server/inputmethod/ClientController;->removeClientAsBinder(Landroid/os/IBinder;)Z
-HPLcom/android/server/inputmethod/ClientState;-><init>(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Lcom/android/internal/inputmethod/IRemoteInputConnection;IIILandroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/inputmethod/ClientState;-><init>(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Lcom/android/internal/inputmethod/IRemoteInputConnection;IIILcom/android/server/inputmethod/ClientController$$ExternalSyntheticLambda0;)V
 PLcom/android/server/inputmethod/ClientState;->toString()Ljava/lang/String;
 PLcom/android/server/inputmethod/DefaultImeVisibilityApplier;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 PLcom/android/server/inputmethod/DefaultImeVisibilityApplier;->applyImeVisibility(Landroid/os/IBinder;Landroid/view/inputmethod/ImeTracker$Token;II)V
-PLcom/android/server/inputmethod/HandwritingModeController;-><clinit>()V
-PLcom/android/server/inputmethod/HandwritingModeController;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/Runnable;Ljava/util/function/IntConsumer;)V
+PLcom/android/server/inputmethod/HandwritingModeController;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/inputmethod/InputMethodManagerService$InkWindowInitializer;Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda7;)V
 PLcom/android/server/inputmethod/HandwritingModeController;->clearPendingHandwritingDelegation()V
-PLcom/android/server/inputmethod/HandwritingModeController;->reset()V
 PLcom/android/server/inputmethod/HandwritingModeController;->reset(Z)V
-PLcom/android/server/inputmethod/HardwareKeyboardShortcutController;-><init>(Lcom/android/server/inputmethod/InputMethodMap;I)V
-PLcom/android/server/inputmethod/HardwareKeyboardShortcutController;->getUserId()I
-PLcom/android/server/inputmethod/HardwareKeyboardShortcutController;->reset(Lcom/android/server/inputmethod/InputMethodMap;)V
+PLcom/android/server/inputmethod/HardwareKeyboardShortcutController;-><init>()V
+PLcom/android/server/inputmethod/HardwareKeyboardShortcutController;->update(Lcom/android/server/inputmethod/InputMethodSettings;)V
 PLcom/android/server/inputmethod/IInputMethodClientInvoker;-><init>(Lcom/android/internal/inputmethod/IInputMethodClient;ZLandroid/os/Handler;)V
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->asBinder()Landroid/os/IBinder;
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->create(Lcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/Handler;)Lcom/android/server/inputmethod/IInputMethodClientInvoker;
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->onBindMethod(Lcom/android/internal/inputmethod/InputBindResult;)V
 PLcom/android/server/inputmethod/IInputMethodClientInvoker;->onBindMethodInternal(Lcom/android/internal/inputmethod/InputBindResult;)V
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->onUnbindMethod(II)V
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->onUnbindMethodInternal(II)V
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->reportFullscreenMode(Z)V
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->reportFullscreenModeInternal(Z)V
+PLcom/android/server/inputmethod/IInputMethodClientInvoker;->onStartInputResultInternal(Lcom/android/internal/inputmethod/InputBindResult;I)V
 PLcom/android/server/inputmethod/IInputMethodClientInvoker;->setActive(ZZ)V
-PLcom/android/server/inputmethod/IInputMethodClientInvoker;->setActiveInternal(ZZ)V
+PLcom/android/server/inputmethod/IInputMethodClientInvoker;->setImeVisibility(ZLandroid/view/inputmethod/ImeTracker$Token;)V
 PLcom/android/server/inputmethod/IInputMethodInvoker;-><init>(Lcom/android/internal/inputmethod/IInputMethod;)V
-PLcom/android/server/inputmethod/IInputMethodInvoker;->asBinder()Landroid/os/IBinder;
-PLcom/android/server/inputmethod/IInputMethodInvoker;->bindInput(Landroid/view/inputmethod/InputBinding;)V
-PLcom/android/server/inputmethod/IInputMethodInvoker;->create(Lcom/android/internal/inputmethod/IInputMethod;)Lcom/android/server/inputmethod/IInputMethodInvoker;
-PLcom/android/server/inputmethod/IInputMethodInvoker;->createSession(Landroid/view/InputChannel;Lcom/android/internal/inputmethod/IInputMethodSessionCallback;)V
-PLcom/android/server/inputmethod/IInputMethodInvoker;->initializeInternal(Landroid/os/IBinder;Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;I)V
-PLcom/android/server/inputmethod/IInputMethodInvoker;->setSessionEnabled(Lcom/android/internal/inputmethod/IInputMethodSession;Z)V
-PLcom/android/server/inputmethod/IInputMethodInvoker;->startInput(Landroid/os/IBinder;Lcom/android/internal/inputmethod/IRemoteInputConnection;Landroid/view/inputmethod/EditorInfo;ZILandroid/window/ImeOnBackInvokedDispatcher;)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;-><init>(Lcom/android/server/inputmethod/ZeroJankProxy;)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->addClient(Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->getEnabledInputMethodList(I)Lcom/android/internal/inputmethod/InputMethodInfoSafeList;
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->getEnabledInputMethodSubtypeList(Ljava/lang/String;ZI)Ljava/util/List;
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->getImeTrackerService()Lcom/android/internal/inputmethod/IImeTracker;
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->getInputMethodList(II)Lcom/android/internal/inputmethod/InputMethodInfoSafeList;
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->removeImeSurface(I)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->removeImeSurfaceFromWindowAsync(Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/IInputMethodManagerImpl;->reportPerceptibleAsync(Landroid/os/IBinder;Z)V
+HPLcom/android/server/inputmethod/IInputMethodManagerImpl;->startInputOrWindowGainedFocusAsync(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;IZ)V
+PLcom/android/server/inputmethod/ImeBindingState;-><init>(Landroid/os/IBinder;ILcom/android/server/inputmethod/ClientState;Landroid/view/inputmethod/EditorInfo;)V
+PLcom/android/server/inputmethod/ImeBindingState;->dump(Landroid/util/Printer;Ljava/lang/String;)V
 PLcom/android/server/inputmethod/ImePlatformCompatUtils;-><init>()V
-PLcom/android/server/inputmethod/ImePlatformCompatUtils;->isChangeEnabledByUid(JI)Z
-PLcom/android/server/inputmethod/ImePlatformCompatUtils;->shouldClearShowForcedFlag(I)Z
-PLcom/android/server/inputmethod/ImeTrackerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/inputmethod/ImeTrackerService;Landroid/view/inputmethod/ImeTracker$Token;)V
-PLcom/android/server/inputmethod/ImeTrackerService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmDuration(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)J
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmFromUser(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)Z
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmOrigin(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)I
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmPhase(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)I
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmReason(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)I
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmStartTime(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)J
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmStatus(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)I
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmType(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)I
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fgetmUid(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)I
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fputmDuration(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;J)V
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fputmPhase(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;I)V
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;->-$$Nest$fputmStatus(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;I)V
-HPLcom/android/server/inputmethod/ImeTrackerService$History$Entry;-><init>(Ljava/lang/String;IIIIIZ)V
-PLcom/android/server/inputmethod/ImeTrackerService$History$Entry;-><init>(Ljava/lang/String;IIIIIZLcom/android/server/inputmethod/ImeTrackerService$History$Entry-IA;)V
-PLcom/android/server/inputmethod/ImeTrackerService$History;->-$$Nest$maddEntry(Lcom/android/server/inputmethod/ImeTrackerService$History;Landroid/os/IBinder;Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)V
-PLcom/android/server/inputmethod/ImeTrackerService$History;->-$$Nest$mgetEntry(Lcom/android/server/inputmethod/ImeTrackerService$History;Landroid/os/IBinder;)Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;
-PLcom/android/server/inputmethod/ImeTrackerService$History;->-$$Nest$msetFinished(Lcom/android/server/inputmethod/ImeTrackerService$History;Landroid/view/inputmethod/ImeTracker$Token;II)V
-PLcom/android/server/inputmethod/ImeTrackerService$History;->-$$Nest$sfgetsSequenceNumber()Ljava/util/concurrent/atomic/AtomicInteger;
+PLcom/android/server/inputmethod/ImeTrackerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/inputmethod/ImeTrackerService;Landroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/inputmethod/ImeTrackerService$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/inputmethod/ImeTrackerService$History$Entry;-><init>(IILjava/lang/String;IIZ)V
+PLcom/android/server/inputmethod/ImeTrackerService$History;->-$$Nest$mdump(Lcom/android/server/inputmethod/ImeTrackerService$History;Ljava/io/PrintWriter;)V
+HPLcom/android/server/inputmethod/ImeTrackerService$History;->-$$Nest$msetFinished(Lcom/android/server/inputmethod/ImeTrackerService$History;Landroid/view/inputmethod/ImeTracker$Token;II)V
 PLcom/android/server/inputmethod/ImeTrackerService$History;-><clinit>()V
 PLcom/android/server/inputmethod/ImeTrackerService$History;-><init>()V
-PLcom/android/server/inputmethod/ImeTrackerService$History;-><init>(Lcom/android/server/inputmethod/ImeTrackerService$History-IA;)V
-PLcom/android/server/inputmethod/ImeTrackerService$History;->addEntry(Landroid/os/IBinder;Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;)V
-PLcom/android/server/inputmethod/ImeTrackerService$History;->getEntry(Landroid/os/IBinder;)Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;
-HPLcom/android/server/inputmethod/ImeTrackerService$History;->setFinished(Landroid/view/inputmethod/ImeTracker$Token;II)V
-PLcom/android/server/inputmethod/ImeTrackerService;->$r8$lambda$iu5qDG_Qa1HHpnJA5w-tOh7aP38(Lcom/android/server/inputmethod/ImeTrackerService;Landroid/view/inputmethod/ImeTracker$Token;)V
-PLcom/android/server/inputmethod/ImeTrackerService;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/inputmethod/ImeTrackerService;->lambda$onRequestHide$1(Landroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/inputmethod/ImeTrackerService$History;->dumpEntry(Lcom/android/server/inputmethod/ImeTrackerService$History$Entry;Ljava/io/PrintWriter;Ljava/lang/String;Ljava/time/format/DateTimeFormatter;)V
+PLcom/android/server/inputmethod/ImeTrackerService;-><init>(Landroid/os/Handler;)V
 PLcom/android/server/inputmethod/ImeTrackerService;->onCancelled(Landroid/view/inputmethod/ImeTracker$Token;I)V
-PLcom/android/server/inputmethod/ImeTrackerService;->onProgress(Landroid/os/IBinder;I)V
-PLcom/android/server/inputmethod/ImeTrackerService;->onRequestHide(Ljava/lang/String;IIIZ)Landroid/view/inputmethod/ImeTracker$Token;
+PLcom/android/server/inputmethod/ImeTrackerService;->onFailed(Landroid/view/inputmethod/ImeTracker$Token;I)V
+PLcom/android/server/inputmethod/ImeTrackerService;->onHidden(Landroid/view/inputmethod/ImeTracker$Token;)V
+HPLcom/android/server/inputmethod/ImeTrackerService;->onProgress(Landroid/os/IBinder;I)V
+PLcom/android/server/inputmethod/ImeTrackerService;->onShown(Landroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/inputmethod/ImeTrackerService;->onStart(Ljava/lang/String;IIIIZ)Landroid/view/inputmethod/ImeTracker$Token;
 PLcom/android/server/inputmethod/ImeVisibilityStateComputer$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerInternal;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$1;-><init>(Lcom/android/server/inputmethod/ImeVisibilityStateComputer;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$1;->onImeInputTargetVisibilityChanged(Landroid/os/IBinder;ZZ)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->-$$Nest$fgetmSoftInputModeState(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;)I
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->-$$Nest$msetImeDisplayId(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;I)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->-$$Nest$msetRequestedImeVisible(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;Z)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;-><init>(IIZZZI)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->getWindowFlags()I
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->hasEditorFocused()Z
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->hasImeFocusChanged()Z
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->isRequestedImeVisible()Z
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->setImeDisplayId(I)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->setRequestImeToken(Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;->setRequestedImeVisible(Z)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;->-$$Nest$fgetmPendingA11yRequestingHideKeyboard(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;)Z
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;-><init>()V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;->isImeHiddenByDisplayPolicy()Z
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;->setImeHiddenByDisplayPolicy(Z)V
+HPLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;-><init>(IIZZZI)V
 PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityResult;-><init>(II)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityResult;->getReason()I
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityResult;->getState()I
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->-$$Nest$fgetmCurVisibleImeInputTarget(Lcom/android/server/inputmethod/ImeVisibilityStateComputer;)Landroid/os/IBinder;
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->-$$Nest$fputmCurVisibleImeInputTarget(Lcom/android/server/inputmethod/ImeVisibilityStateComputer;Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/inputmethod/InputMethodManagerService$ImeDisplayValidator;Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->canHideIme(Landroid/view/inputmethod/ImeTracker$Token;I)Z
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->clearImeShowFlags()V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->computeImeDisplayId(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;I)I
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->computeState(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;Z)Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityResult;
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->getImePolicy()Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->getOrCreateWindowState(Landroid/os/IBinder;)Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->getWindowStateOrNull(Landroid/os/IBinder;)Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->requestImeVisibility(Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->setWindowState(Landroid/os/IBinder;Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;)V
-PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->setWindowStateInner(Landroid/os/IBinder;Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;)V
+PLcom/android/server/inputmethod/ImeVisibilityStateComputer;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/inputmethod/ImeVisibilityStateComputer$$ExternalSyntheticLambda0;Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeVisibilityPolicy;I)V
+PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->getWindowTokenFrom(ILandroid/os/IBinder;)Landroid/os/IBinder;
+PLcom/android/server/inputmethod/ImeVisibilityStateComputer;->getWindowTokenFrom(Lcom/android/server/inputmethod/ImeVisibilityStateComputer$ImeTargetWindowState;)Landroid/os/IBinder;
+HPLcom/android/server/inputmethod/ImeVisibilityStateComputer;->requestImeVisibility(Landroid/os/IBinder;Z)V
+PLcom/android/server/inputmethod/ImmutableSparseArray;-><clinit>()V
+PLcom/android/server/inputmethod/ImmutableSparseArray;-><init>(Landroid/util/SparseArray;)V
+PLcom/android/server/inputmethod/ImmutableSparseArray;->cloneWithPutOrSelf(ILjava/lang/Object;)Lcom/android/server/inputmethod/ImmutableSparseArray;
 PLcom/android/server/inputmethod/InputMethodBindingController$1;-><init>(Lcom/android/server/inputmethod/InputMethodBindingController;)V
+PLcom/android/server/inputmethod/InputMethodBindingController$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodBindingController$2;-><init>(Lcom/android/server/inputmethod/InputMethodBindingController;)V
 PLcom/android/server/inputmethod/InputMethodBindingController$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/InputMethodBindingController$2;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/inputmethod/InputMethodBindingController$2;->updateCurrentMethodUid()V
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmCurIntent(Lcom/android/server/inputmethod/InputMethodBindingController;)Landroid/content/Intent;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmCurMethod(Lcom/android/server/inputmethod/InputMethodBindingController;)Lcom/android/server/inputmethod/IInputMethodInvoker;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmCurMethodUid(Lcom/android/server/inputmethod/InputMethodBindingController;)I
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmCurToken(Lcom/android/server/inputmethod/InputMethodBindingController;)Landroid/os/IBinder;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmLatchForTesting(Lcom/android/server/inputmethod/InputMethodBindingController;)Ljava/util/concurrent/CountDownLatch;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmPackageManagerInternal(Lcom/android/server/inputmethod/InputMethodBindingController;)Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmSelectedMethodId(Lcom/android/server/inputmethod/InputMethodBindingController;)Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmService(Lcom/android/server/inputmethod/InputMethodBindingController;)Lcom/android/server/inputmethod/InputMethodManagerService;
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fgetmSupportsStylusHw(Lcom/android/server/inputmethod/InputMethodBindingController;)Z
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fputmCurMethod(Lcom/android/server/inputmethod/InputMethodBindingController;Lcom/android/server/inputmethod/IInputMethodInvoker;)V
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fputmCurMethodUid(Lcom/android/server/inputmethod/InputMethodBindingController;I)V
-PLcom/android/server/inputmethod/InputMethodBindingController;->-$$Nest$fputmSupportsStylusHw(Lcom/android/server/inputmethod/InputMethodBindingController;Z)V
-PLcom/android/server/inputmethod/InputMethodBindingController;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodBindingController;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodBindingController;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;ILjava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/inputmethod/InputMethodBindingController;->addFreshWindowToken()V
-PLcom/android/server/inputmethod/InputMethodBindingController;->advanceSequenceNumber()V
+PLcom/android/server/inputmethod/InputMethodBindingController;-><init>(ILcom/android/server/inputmethod/InputMethodManagerService;)V
 PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentInputMethodService(Landroid/content/ServiceConnection;I)Z
-PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentInputMethodServiceMainConnection()Z
 PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentMethod()Lcom/android/internal/inputmethod/InputBindResult;
 PLcom/android/server/inputmethod/InputMethodBindingController;->clearCurMethodAndSessions()V
-PLcom/android/server/inputmethod/InputMethodBindingController;->createImeBindingIntent(Landroid/content/ComponentName;)Landroid/content/Intent;
-PLcom/android/server/inputmethod/InputMethodBindingController;->getCurId()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodBindingController;->getCurMethod()Lcom/android/server/inputmethod/IInputMethodInvoker;
-PLcom/android/server/inputmethod/InputMethodBindingController;->getCurMethodUid()I
-PLcom/android/server/inputmethod/InputMethodBindingController;->getCurToken()Landroid/os/IBinder;
-PLcom/android/server/inputmethod/InputMethodBindingController;->getLastBindTime()J
-PLcom/android/server/inputmethod/InputMethodBindingController;->getSelectedMethodId()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodBindingController;->getSequenceNumber()I
-PLcom/android/server/inputmethod/InputMethodBindingController;->hasMainConnection()Z
-PLcom/android/server/inputmethod/InputMethodBindingController;->isVisibleBound()Z
-PLcom/android/server/inputmethod/InputMethodBindingController;->removeCurrentToken()V
-PLcom/android/server/inputmethod/InputMethodBindingController;->setCurrentMethodNotVisible()V
-PLcom/android/server/inputmethod/InputMethodBindingController;->setSelectedMethodId(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodBindingController;->supportsStylusHandwriting()Z
+PLcom/android/server/inputmethod/InputMethodBindingController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/inputmethod/InputMethodBindingController;->getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
 PLcom/android/server/inputmethod/InputMethodBindingController;->unbindCurrentMethod()V
-PLcom/android/server/inputmethod/InputMethodBindingController;->unbindMainConnection()V
 PLcom/android/server/inputmethod/InputMethodDeviceConfigs$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/inputmethod/InputMethodDeviceConfigs;)V
 PLcom/android/server/inputmethod/InputMethodDeviceConfigs;-><init>()V
+PLcom/android/server/inputmethod/InputMethodDialogWindowContext;-><init>()V
+PLcom/android/server/inputmethod/InputMethodDrawsNavBarResourceMonitor$1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/inputmethod/InputMethodDrawsNavBarResourceMonitor;->evaluate(Landroid/content/Context;I)Z
 PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;-><init>()V
-PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;-><init>(Lcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder-IA;)V
-PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;->build()Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;->fillAuxiliaryImes(Ljava/util/List;Landroid/content/Context;)Lcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;
-PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;->fillImes(Ljava/util/List;Landroid/content/Context;ZLjava/util/Locale;ZLjava/lang/String;)Lcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;
-PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;->isEmpty()Z
+PLcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;->fillImes(Ljava/util/List;Landroid/content/Context;ZLjava/util/Locale;ZLjava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodInfoUtils;->-$$Nest$smisSystemAuxilialyImeThatHasAutomaticSubtype(Landroid/view/inputmethod/InputMethodInfo;Landroid/content/Context;Z)Z
 PLcom/android/server/inputmethod/InputMethodInfoUtils;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodInfoUtils;->chooseSystemVoiceIme(Lcom/android/server/inputmethod/InputMethodMap;Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodInfo;
 PLcom/android/server/inputmethod/InputMethodInfoUtils;->getDefaultEnabledImes(Landroid/content/Context;Ljava/util/List;Z)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/InputMethodInfoUtils;->getFallbackLocaleForDefaultIme(Ljava/util/List;Landroid/content/Context;)Ljava/util/Locale;
-PLcom/android/server/inputmethod/InputMethodInfoUtils;->getMinimumKeyboardSetWithSystemLocale(Ljava/util/List;Landroid/content/Context;Ljava/util/Locale;Ljava/util/Locale;)Lcom/android/server/inputmethod/InputMethodInfoUtils$InputMethodListBuilder;
 PLcom/android/server/inputmethod/InputMethodInfoUtils;->getMostApplicableDefaultIME(Ljava/util/List;)Landroid/view/inputmethod/InputMethodInfo;
-PLcom/android/server/inputmethod/InputMethodManagerInternal$1;-><init>()V
+PLcom/android/server/inputmethod/InputMethodInfoUtils;->isSystemImeThatHasSubtypeOf(Landroid/view/inputmethod/InputMethodInfo;Landroid/content/Context;ZLjava/util/Locale;ZLjava/lang/String;)Z
 PLcom/android/server/inputmethod/InputMethodManagerInternal;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodManagerInternal;-><init>()V
-PLcom/android/server/inputmethod/InputMethodManagerInternal;->get()Lcom/android/server/inputmethod/InputMethodManagerInternal;
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda2;-><init>(Ljava/util/List;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;IILcom/android/server/inputmethod/InputMethodSettings;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda7;->runOrThrow()V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda9;->onClientRemoved(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/IInputMethodInvoker;Landroid/view/InputChannel;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$1;->sessionCreated(Lcom/android/internal/inputmethod/IInputMethodSession;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$3;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/hardware/input/InputManager;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$3;->onInputDeviceChanged(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$3;->remove(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$6;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HPLcom/android/server/inputmethod/InputMethodManagerInternal;->get()Lcom/android/server/inputmethod/InputMethodManagerInternal;
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/ClientState;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;IILcom/android/server/inputmethod/InputMethodSettings;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda16;-><init>(IILjava/lang/Object;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda18;->runOrThrow()V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;->register(Landroid/os/Handler;Landroid/content/ContentResolver;[Ljava/lang/String;Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda26;-><init>(Landroid/util/Printer;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda2;-><init>(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda4;-><init>(ILcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda4;->apply(I)Ljava/lang/Object;
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$2;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/IInputMethodInvoker;Landroid/view/InputChannel;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$2;->sessionCreated(Lcom/android/internal/inputmethod/IInputMethodSession;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$4;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/hardware/input/InputManager;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$4;->onInputDeviceChanged(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$5;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$5;->dumpAsProtoNoCheck(Ljava/io/FileDescriptor;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$5;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService$5;->dumpNormal(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers-IA;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InkWindowInitializer;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$InkWindowInitializer;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$InkWindowInitializer-IA;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportFullscreenModeAsync(Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportStartInputAsync(Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Lcom/android/server/inputmethod/UserData;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->calledWithValidTokenLocked(Landroid/os/IBinder;Lcom/android/server/inputmethod/UserData;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->notifyUserActionAsync()V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportFullscreenModeAsync(Z)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportStartInputAsync(Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->setImeWindowStatusAsync(II)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->updateStatusIconAsync(Ljava/lang/String;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;II)V
+PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;[I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;-><init>(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->initializeUsersAsync([I)V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onStart()V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;ZI)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl-IA;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->onImeParentChanged(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->removeImeSurface(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->reportImeControl(Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getEnabledInputMethodListAsUser(I)Ljava/util/List;
+HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->onImeInputTargetVisibilityChanged(IZLandroid/os/IBinder;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->onImeParentChanged(I)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->reportImeControl(Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->setHasVisibleImeLayeringOverlay(IZ)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->setInteractive(Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->updateImeWindowStatus(IZ)V
 PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->addKnownImePackageNameLocked(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->clearKnownImePackageNamesLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->clearPackageChangeState()V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->isChangingPackagesOfCurrentUserLocked()Z
 PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onBeginPackageChanges()V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onFinishPackageChanges()V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onFinishPackageChangesInternal()V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->shouldRebuildInputMethodListLocked()Z
-PLcom/android/server/inputmethod/InputMethodManagerService$SessionState;-><init>(Lcom/android/server/inputmethod/ClientState;Lcom/android/server/inputmethod/IInputMethodInvoker;Lcom/android/internal/inputmethod/IInputMethodSession;Landroid/view/InputChannel;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/Handler;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;->registerContentObserverLocked(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;-><init>()V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory$Entry;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory$Entry;->set(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>()V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory-IA;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->addEntry(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->getEntrySize()I
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><init>(ILandroid/os/IBinder;ILjava/lang/String;IZIILandroid/os/IBinder;Landroid/view/inputmethod/EditorInfo;II)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$Ldb_lZJoevH2yGpbOQAZ4KPTou4(Lcom/android/server/inputmethod/InputMethodManagerService;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$MzZJToGrqrCYCFD7Mqd0xPdMqLo(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$PHzs3DePqjjuRsDB9un1spyitV8(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$apwJ5GwwA3tRoPWo5dXQONTyNlc(Lcom/android/server/inputmethod/InputMethodManagerService;IILcom/android/server/inputmethod/InputMethodSettings;Landroid/view/inputmethod/InputMethodInfo;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmHandler(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/os/Handler;
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmSettings(Lcom/android/server/inputmethod/InputMethodManagerService;)Lcom/android/server/inputmethod/InputMethodSettings;
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fputmCurPerceptible(Lcom/android/server/inputmethod/InputMethodManagerService;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mpublishLocalService(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mremoveStylusDeviceIdLocked(Lcom/android/server/inputmethod/InputMethodManagerService;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mreportFullscreenMode(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mreportStartInput(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mupdateStatusIcon(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$smisStylusDevice(Landroid/view/InputDevice;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/inputmethod/InputMethodManagerService;-><init>(Landroid/content/Context;Lcom/android/server/ServiceThread;Lcom/android/server/inputmethod/InputMethodBindingController;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->addClient(Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->advanceSequenceNumberLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->attachNewAccessibilityLocked(IZ)V
-HPLcom/android/server/inputmethod/InputMethodManagerService;->attachNewInputLocked(IZ)Lcom/android/internal/inputmethod/InputBindResult;
-HPLcom/android/server/inputmethod/InputMethodManagerService;->buildInputMethodListLocked(Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->calledWithValidTokenLocked(Landroid/os/IBinder;)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onFinishPackageChanges()V
+PLcom/android/server/inputmethod/InputMethodManagerService$SessionState;-><init>(Lcom/android/server/inputmethod/ClientState;Lcom/android/server/inputmethod/IInputMethodInvoker;Lcom/android/internal/inputmethod/IInputMethodSession;Landroid/view/InputChannel;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$SessionState;->toString()Ljava/lang/String;
+PLcom/android/server/inputmethod/InputMethodManagerService$ShellCommandImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$ShellCommandImpl;->onCommand(Ljava/lang/String;)I
+PLcom/android/server/inputmethod/InputMethodManagerService$ShellCommandImpl;->onCommandWithSystemIdentity(Ljava/lang/String;)I
+PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mdumpAsStringNoCheck(Lcom/android/server/inputmethod/InputMethodManagerService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mhandleShellCommandTraceInputMethod(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$ShellCommandImpl;)I
+PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mupdateStatusIconLocked(Lcom/android/server/inputmethod/InputMethodManagerService;Ljava/lang/String;ILcom/android/server/inputmethod/UserData;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;-><init>(Landroid/content/Context;ZLandroid/os/Looper;Landroid/os/Handler;Ljava/util/function/IntFunction;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->attachNewAccessibilityLocked(IIZ)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->attachNewInputLocked(IIZ)Lcom/android/internal/inputmethod/InputBindResult;
 PLcom/android/server/inputmethod/InputMethodManagerService;->canCallerAccessInputMethod(Ljava/lang/String;IILcom/android/server/inputmethod/InputMethodSettings;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->chooseNewDefaultIMELocked()Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->chooseNewDefaultIMELocked(I)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->clearClientSessionForAccessibilityLocked(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->clearClientSessionLocked(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->clearClientSessionsLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->computeCurrentDeviceMethodIdLocked(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodManagerService;->computeImeDisplayIdForTarget(ILcom/android/server/inputmethod/InputMethodManagerService$ImeDisplayValidator;)I
 PLcom/android/server/inputmethod/InputMethodManagerService;->createAccessibilityInputMethodSessions(Landroid/util/SparseArray;)Landroid/util/SparseArray;
-PLcom/android/server/inputmethod/InputMethodManagerService;->createStatsTokenForFocusedClient(ZIIZ)Landroid/view/inputmethod/ImeTracker$Token;
-PLcom/android/server/inputmethod/InputMethodManagerService;->filterInputMethodServices(Lcom/android/server/inputmethod/AdditionalSubtypeMap;Ljava/util/List;Landroid/content/Context;Ljava/util/List;)Lcom/android/server/inputmethod/InputMethodMap;
+HPLcom/android/server/inputmethod/InputMethodManagerService;->createStatsTokenForFocusedClient(IIZ)Landroid/view/inputmethod/ImeTracker$Token;
+PLcom/android/server/inputmethod/InputMethodManagerService;->dumpAsStringNoCheckForUser(Lcom/android/server/inputmethod/UserData;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->finishSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$SessionState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurIdLocked()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurMethodLocked()Lcom/android/server/inputmethod/IInputMethodInvoker;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurMethodUidLocked()I
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurTokenDisplayIdLocked()I
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurTokenLocked()Landroid/os/IBinder;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurrentImeUserIdLocked()I
-PLcom/android/server/inputmethod/InputMethodManagerService;->getDisplayIdToShowImeLocked()I
-PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodList(I)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodListLocked(II)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getImeTrackerService()Lcom/android/internal/inputmethod/IImeTracker;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodNavButtonFlagsLocked()I
-PLcom/android/server/inputmethod/InputMethodManagerService;->getLastBindTimeLocked()J
+PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodListInternal(II)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodSubtypeListInternal(ILjava/lang/String;IZ)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodListInternal(III)Ljava/util/List;
+HPLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodNavButtonFlagsLocked(Lcom/android/server/inputmethod/UserData;)I
 PLcom/android/server/inputmethod/InputMethodManagerService;->getPackageManagerForUser(Landroid/content/Context;I)Landroid/content/pm/PackageManager;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getSelectedMethodIdLocked()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getSequenceNumberLocked()I
-PLcom/android/server/inputmethod/InputMethodManagerService;->getStylusInputDeviceIds(Landroid/hardware/input/InputManager;)Landroid/util/IntArray;
-PLcom/android/server/inputmethod/InputMethodManagerService;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->hasConnectionLocked()Z
-HPLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(Landroid/os/IBinder;Landroid/view/inputmethod/ImeTracker$Token;ILandroid/os/ResultReceiver;I)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->hideStatusBarIconLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->initializeImeLocked(Lcom/android/server/inputmethod/IInputMethodInvoker;Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->isImeTraceEnabled()Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->isSelectedMethodBoundLocked()Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->isShowRequestedForCurrentWindow()Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->getUserData(I)Lcom/android/server/inputmethod/UserData;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/inputmethod/InputMethodManagerService;->handleMessage(Landroid/os/Message;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(ILandroid/os/IBinder;I)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(Landroid/os/IBinder;Landroid/view/inputmethod/ImeTracker$Token;II)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->hideStatusBarIconLocked(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->isShowRequestedForCurrentWindow(I)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->isStylusDevice(Landroid/view/InputDevice;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$getEnabledInputMethodListLocked$6(IILcom/android/server/inputmethod/InputMethodSettings;Landroid/view/inputmethod/InputMethodInfo;)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$new$0(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$reportPerceptibleAsync$7(Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$systemRunning$4(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->maybeInitImeNavbarConfigLocked(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->notifyInputMethodSubtypeChangedLocked(ILandroid/view/inputmethod/InputMethodInfo;Landroid/view/inputmethod/InputMethodSubtype;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->onClientRemoved(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->onSessionCreated(Lcom/android/server/inputmethod/IInputMethodInvoker;Lcom/android/internal/inputmethod/IInputMethodSession;Landroid/view/InputChannel;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->onUnbindCurrentMethodByReset()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->onUnlockUser(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->performOnCreateInlineSuggestionsRequestLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->prepareClientSwitchLocked(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->publishLocalService()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->queryInputMethodForCurrentUserLocked(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodInfo;
-PLcom/android/server/inputmethod/InputMethodManagerService;->queryInputMethodServicesInternal(Landroid/content/Context;ILcom/android/server/inputmethod/AdditionalSubtypeMap;I)Lcom/android/server/inputmethod/InputMethodSettings;
-PLcom/android/server/inputmethod/InputMethodManagerService;->reRequestCurrentClientSessionLocked()V
+PLcom/android/server/inputmethod/InputMethodManagerService;->onSecureSettingsChangedLocked(ILjava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->onSessionCreated(Lcom/android/server/inputmethod/IInputMethodInvoker;Lcom/android/internal/inputmethod/IInputMethodSession;Landroid/view/InputChannel;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->onShowHideSoftInputRequested(ZLandroid/os/IBinder;ILandroid/view/inputmethod/ImeTracker$Token;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->onUnbindCurrentMethodByReset(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->onUserReadyLocked(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->postInputMethodSettingUpdatedLocked(IZ)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->queryRawInputMethodServiceMap(Landroid/content/Context;I)Lcom/android/server/inputmethod/RawInputMethodMap;
 PLcom/android/server/inputmethod/InputMethodManagerService;->registerDeviceListenerAndCheckStylusSupport()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->removeImeSurfaceFromWindowAsync(Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->removeStylusDeviceIdLocked(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->reportFullscreenMode(Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->reportPerceptibleAsync(Landroid/os/IBinder;Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->reportStartInput(Landroid/os/IBinder;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->requestClientSessionForAccessibilityLocked(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->requestClientSessionLocked(Lcom/android/server/inputmethod/ClientState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->resetCurrentMethodAndClientLocked(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->resetSelectedInputMethodAndSubtypeLocked(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->resetSystemUiLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->scheduleNotifyImeUidToAudioService(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->requestClientSessionLocked(Lcom/android/server/inputmethod/ClientState;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->resetDefaultImeLocked(Landroid/content/Context;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->resetSelectedInputMethodAndSubtypeLocked(ILjava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->resolveImeUserIdFromDisplayIdLocked(I)I
+PLcom/android/server/inputmethod/InputMethodManagerService;->resolveImeUserIdFromWindowLocked(Landroid/os/IBinder;)I
 PLcom/android/server/inputmethod/InputMethodManagerService;->scheduleResetStylusHandwriting()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->sendOnNavButtonFlagsChangedLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setCurTokenDisplayIdLocked(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setEnabledSessionForAccessibilityLocked(Landroid/util/SparseArray;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setEnabledSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$SessionState;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodEnabledLocked(Ljava/lang/String;Z)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodLocked(Ljava/lang/String;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodLocked(Ljava/lang/String;II)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setSelectedInputMethodAndSubtypeLocked(Landroid/view/inputmethod/InputMethodInfo;IZ)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->setSelectedMethodIdLocked(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->shouldPreventImeStartupLocked(Ljava/lang/String;II)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->shouldShowImeSwitcherLocked(I)Z
-HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocus(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult;
-HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocusInternalLocked(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;Lcom/android/server/inputmethod/ClientState;)Lcom/android/internal/inputmethod/InputBindResult;
-HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputUncheckedLocked(Lcom/android/server/inputmethod/ClientState;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;IIILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult;
-PLcom/android/server/inputmethod/InputMethodManagerService;->systemRunning()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->tryReuseConnectionLocked(Lcom/android/server/inputmethod/ClientState;)Lcom/android/internal/inputmethod/InputBindResult;
-PLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentClientLocked(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateDefaultVoiceImeIfNeededLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateFromSettingsLocked(Z)V
-HPLcom/android/server/inputmethod/InputMethodManagerService;->updateInputMethodsFromSettingsLocked(Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateStatusIcon(Landroid/os/IBinder;Ljava/lang/String;I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateSystemUiLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateSystemUiLocked(II)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->sendOnNavButtonFlagsChangedLocked(Lcom/android/server/inputmethod/UserData;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->setImeVisibilityOnFocusedWindowClient(ZLcom/android/server/inputmethod/UserData;Landroid/view/inputmethod/ImeTracker$Token;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodEnabledLocked(ILjava/lang/String;Z)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodLocked(IIILjava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->setSelectedInputMethodAndSubtypeLocked(Landroid/view/inputmethod/InputMethodInfo;IZI)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->shouldShowImeSwitcherLocked(II)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputInternal(Landroid/os/IBinder;Landroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(Landroid/os/IBinder;Landroid/view/inputmethod/ImeTracker$Token;III)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocusInternalLocked(ILandroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;ILcom/android/server/inputmethod/InputMethodBindingController;Landroid/window/ImeOnBackInvokedDispatcher;Lcom/android/server/inputmethod/ClientState;)Lcom/android/internal/inputmethod/InputBindResult;
+HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputUncheckedLocked(Lcom/android/server/inputmethod/ClientState;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;IIILandroid/window/ImeOnBackInvokedDispatcher;Lcom/android/server/inputmethod/InputMethodBindingController;)Lcom/android/internal/inputmethod/InputBindResult;
+HPLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentClientLocked(II)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->updateInputMethodsFromSettingsLocked(IZ)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->updateSystemUiLocked(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->updateSystemUiLocked(III)V
 PLcom/android/server/inputmethod/InputMethodMap;-><clinit>()V
 PLcom/android/server/inputmethod/InputMethodMap;-><init>(Landroid/util/ArrayMap;)V
-PLcom/android/server/inputmethod/InputMethodMap;->containsKey(Ljava/lang/String;)Z
-PLcom/android/server/inputmethod/InputMethodMap;->emptyMap()Lcom/android/server/inputmethod/InputMethodMap;
 PLcom/android/server/inputmethod/InputMethodMap;->get(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodInfo;
-PLcom/android/server/inputmethod/InputMethodMap;->of(Landroid/util/ArrayMap;)Lcom/android/server/inputmethod/InputMethodMap;
-PLcom/android/server/inputmethod/InputMethodMap;->values()Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodMenuController;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodMenuController;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodMenuController;->getSwitchingDialogLocked()Landroid/app/AlertDialog;
-PLcom/android/server/inputmethod/InputMethodMenuController;->hideInputMethodMenuLocked()V
-PLcom/android/server/inputmethod/InputMethodMenuController;->updateKeyboardFromSettingsLocked()V
+PLcom/android/server/inputmethod/InputMethodMenuControllerNew;-><init>()V
+PLcom/android/server/inputmethod/InputMethodMenuControllerNew;->hide(II)V
+PLcom/android/server/inputmethod/InputMethodMenuControllerNew;->isShowing()Z
 PLcom/android/server/inputmethod/InputMethodSettings;-><clinit>()V
 PLcom/android/server/inputmethod/InputMethodSettings;-><init>(Lcom/android/server/inputmethod/InputMethodMap;I)V
-PLcom/android/server/inputmethod/InputMethodSettings;->addSubtypeToHistory(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodSettings;->create(Lcom/android/server/inputmethod/InputMethodMap;I)Lcom/android/server/inputmethod/InputMethodSettings;
-PLcom/android/server/inputmethod/InputMethodSettings;->createEmptyMap(I)Lcom/android/server/inputmethod/InputMethodSettings;
-HPLcom/android/server/inputmethod/InputMethodSettings;->createEnabledInputMethodList(Ljava/util/List;Ljava/util/function/Predicate;)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/InputMethodSettings;->getDefaultVoiceInputMethod()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodList()Ljava/util/ArrayList;
 PLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodListWithFilter(Ljava/util/function/Predicate;)Ljava/util/ArrayList;
-HPLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;
+HPLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodsAndSubtypeList()Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSettings;->getEnabledInputMethodsStr()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodSettings;->getInt(Ljava/lang/String;I)I
-PLcom/android/server/inputmethod/InputMethodSettings;->getMethodList()Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSettings;->getMethodMap()Lcom/android/server/inputmethod/InputMethodMap;
 PLcom/android/server/inputmethod/InputMethodSettings;->getSelectedInputMethod()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodSettings;->getSelectedInputMethodSubtypeHashCode()I
-PLcom/android/server/inputmethod/InputMethodSettings;->getSelectedInputMethodSubtypeId(Ljava/lang/String;)I
-PLcom/android/server/inputmethod/InputMethodSettings;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodSettings;->getSubtypeHistoryStr()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodSettings;->getUserId()I
+PLcom/android/server/inputmethod/InputMethodSettings;->getSelectedInputMethodSubtypeIndex(Ljava/lang/String;)I
 PLcom/android/server/inputmethod/InputMethodSettings;->loadInputMethodAndSubtypeHistory()Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSettings;->putInt(Ljava/lang/String;I)V
 PLcom/android/server/inputmethod/InputMethodSettings;->putSelectedDefaultDeviceInputMethod(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodSettings;->putSelectedInputMethod(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodSettings;->putSelectedSubtype(I)V
 PLcom/android/server/inputmethod/InputMethodSettings;->putString(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodSettings;->putSubtypeHistoryStr(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodSettings;->saveCurrentInputMethodAndSubtypeToHistory(Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
-PLcom/android/server/inputmethod/InputMethodSettings;->saveSubtypeHistory(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;-><init>(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;->createFrom(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;Ljava/util/List;)Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;->filterImeSubtypeList(Ljava/util/List;Z)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;->-$$Nest$fgetmImeSubtypeList(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;-><init>(Ljava/util/List;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;-><init>(Ljava/util/List;Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList-IA;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/inputmethod/InputMethodInfo;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodSettingsRepository;-><clinit>()V
+PLcom/android/server/inputmethod/InputMethodSettingsRepository;->get(I)Lcom/android/server/inputmethod/InputMethodSettings;
+PLcom/android/server/inputmethod/InputMethodSettingsRepository;->put(ILcom/android/server/inputmethod/InputMethodSettings;)V
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/inputmethod/InputMethodInfo;ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;->-$$Nest$fgetmImeSubtypeList(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->toString()Ljava/lang/String;
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$RotationList;->-$$Nest$mdump(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$RotationList;Landroid/util/Printer;Ljava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$RotationList;-><init>(ILjava/util/List;)V
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$RotationList;->getIndex(Landroid/view/inputmethod/InputMethodInfo;Landroid/view/inputmethod/InputMethodSubtype;Z)I
 PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;-><init>(Ljava/util/List;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;-><init>(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodMap;I)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->createInstanceLocked(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodMap;I)Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;
-HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->getSortedInputMethodAndSubtypeList(ZZZLandroid/content/Context;Lcom/android/server/inputmethod/InputMethodMap;I)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->getUserId()I
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->resetCircularListLocked(Lcom/android/server/inputmethod/InputMethodMap;)V
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->filterImeSubtypeList(Ljava/util/List;Z)Ljava/util/List;
+HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->getSortedInputMethodAndSubtypeList(ZZZLandroid/content/Context;Lcom/android/server/inputmethod/InputMethodSettings;)Ljava/util/List;
+HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->resetCircularListLocked(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodSettings;)V
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->update(Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/inputmethod/InputMethodUtils$$ExternalSyntheticLambda0;-><init>(Landroid/util/ArraySet;)V
 PLcom/android/server/inputmethod/InputMethodUtils$$ExternalSyntheticLambda0;-><init>(Ljava/util/ArrayList;)V
 PLcom/android/server/inputmethod/InputMethodUtils$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/inputmethod/InputMethodUtils$$ExternalSyntheticLambda1;-><init>(Landroid/util/ArraySet;)V
-PLcom/android/server/inputmethod/InputMethodUtils$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/inputmethod/InputMethodUtils;->canAddToLastInputMethod(Landroid/view/inputmethod/InputMethodSubtype;)Z
-PLcom/android/server/inputmethod/InputMethodUtils;->checkIfPackageBelongsToUid(Landroid/content/pm/PackageManagerInternal;ILjava/lang/String;)Z
-PLcom/android/server/inputmethod/InputMethodUtils;->concatEnabledImeIds(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodUtils;->convertIdToComponentName(Ljava/lang/String;)Landroid/content/ComponentName;
-PLcom/android/server/inputmethod/InputMethodUtils;->getEnabledInputMethodIdsForFiltering(Landroid/content/Context;I)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodUtils;->isSoftInputModeStateVisibleAllowed(II)Z
-PLcom/android/server/inputmethod/InputMethodUtils;->resolveUserId(IILjava/io/PrintWriter;)[I
 PLcom/android/server/inputmethod/InputMethodUtils;->setNonSelectedSystemImesDisabledUntilUsed(Landroid/content/pm/PackageManager;Ljava/util/List;)V
 PLcom/android/server/inputmethod/InputMethodUtils;->splitEnabledImeStr(Ljava/lang/String;Ljava/util/function/Consumer;)V
-PLcom/android/server/inputmethod/LocaleUtils;->getSystemLocaleFromContext(Landroid/content/Context;)Ljava/util/Locale;
-PLcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;Landroid/content/BroadcastReceiver;)V
-PLcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper$1;-><init>(Landroid/content/Context;ILjava/util/concurrent/atomic/AtomicBoolean;Ljava/util/function/Consumer;Lcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper;)V
-PLcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper;-><init>(ILjava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicReference;)V
-PLcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper;->create(Landroid/content/Context;ILandroid/os/Handler;Ljava/util/function/Consumer;)Lcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper;
-PLcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper;->evaluate(Landroid/content/Context;I)Z
-PLcom/android/server/inputmethod/OverlayableSystemBooleanResourceWrapper;->get()Z
-PLcom/android/server/inputmethod/SecureSettingsWrapper$1;-><init>()V
-PLcom/android/server/inputmethod/SecureSettingsWrapper$2;-><init>(I)V
+PLcom/android/server/inputmethod/RawInputMethodMap;-><clinit>()V
+PLcom/android/server/inputmethod/RawInputMethodMap;-><init>(Landroid/util/ArrayMap;)V
+PLcom/android/server/inputmethod/RawInputMethodMap;->toInputMethodMap(Lcom/android/server/inputmethod/AdditionalSubtypeMap;IZ)Lcom/android/server/inputmethod/InputMethodMap;
+PLcom/android/server/inputmethod/SecureSettingsChangeCallback$1$$ExternalSyntheticLambda0;-><init>(Landroid/util/ArrayMap;Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;II)V
+PLcom/android/server/inputmethod/SecureSettingsChangeCallback$1$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/inputmethod/SecureSettingsChangeCallback$1;-><init>(Landroid/os/Handler;Landroid/util/ArrayMap;Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/inputmethod/SecureSettingsChangeCallback$1;->onChange(ZLjava/util/Collection;II)V
 PLcom/android/server/inputmethod/SecureSettingsWrapper$LockedUserImpl;-><init>(ILandroid/content/ContentResolver;)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper$LockedUserImpl;->getInt(Ljava/lang/String;I)I
 PLcom/android/server/inputmethod/SecureSettingsWrapper$LockedUserImpl;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/inputmethod/SecureSettingsWrapper$LockedUserImpl;->putInt(Ljava/lang/String;I)V
+PLcom/android/server/inputmethod/SecureSettingsWrapper$LockedUserImpl;->putInt(ILjava/lang/String;)V
 PLcom/android/server/inputmethod/SecureSettingsWrapper$LockedUserImpl;->putString(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;-><init>(ILandroid/content/ContentResolver;)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->getInt(Ljava/lang/String;I)I
-HPLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->putInt(Ljava/lang/String;I)V
+PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->getInt(ILjava/lang/String;)I
+PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->putInt(ILjava/lang/String;)V
 PLcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;->putString(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->-$$Nest$smgetUserIdForClonedSettings(Ljava/lang/String;I)I
 PLcom/android/server/inputmethod/SecureSettingsWrapper;-><clinit>()V
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->createImpl(Lcom/android/server/pm/UserManagerInternal;I)Lcom/android/server/inputmethod/SecureSettingsWrapper$ReaderWriter;
-HPLcom/android/server/inputmethod/SecureSettingsWrapper;->get(I)Lcom/android/server/inputmethod/SecureSettingsWrapper$ReaderWriter;
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->getBoolean(Ljava/lang/String;ZI)Z
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->getInt(Ljava/lang/String;II)I
+PLcom/android/server/inputmethod/SecureSettingsWrapper;->get(I)Lcom/android/server/inputmethod/SecureSettingsWrapper$ReaderWriter;
 PLcom/android/server/inputmethod/SecureSettingsWrapper;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->getUserIdForClonedSettings(Ljava/lang/String;I)I
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->onStart(Landroid/content/Context;)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->onUserStarting(I)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->onUserUnlocking(I)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->putInt(Ljava/lang/String;II)V
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->putOrGet(ILcom/android/server/inputmethod/SecureSettingsWrapper$ReaderWriter;)Lcom/android/server/inputmethod/SecureSettingsWrapper$ReaderWriter;
-PLcom/android/server/inputmethod/SecureSettingsWrapper;->putString(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/inputmethod/SubtypeUtils$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/inputmethod/SecureSettingsWrapper;->putOrGet(ILcom/android/server/inputmethod/SecureSettingsWrapper$UnlockedUserImpl;)Lcom/android/server/inputmethod/SecureSettingsWrapper$ReaderWriter;
+PLcom/android/server/inputmethod/SoftInputShowHideHistory$Entry;-><init>(Lcom/android/server/inputmethod/ClientState;Landroid/view/inputmethod/EditorInfo;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/inputmethod/SoftInputShowHideHistory;-><clinit>()V
+PLcom/android/server/inputmethod/SoftInputShowHideHistory;-><init>()V
+PLcom/android/server/inputmethod/SoftInputShowHideHistory;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/inputmethod/StartInputHistory$Entry;->set(Lcom/android/server/inputmethod/StartInputInfo;)V
+PLcom/android/server/inputmethod/StartInputHistory;-><init>()V
+PLcom/android/server/inputmethod/StartInputHistory;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/inputmethod/StartInputInfo;-><clinit>()V
+HPLcom/android/server/inputmethod/StartInputInfo;-><init>(ILandroid/os/IBinder;ILjava/lang/String;IZIILandroid/os/IBinder;Landroid/view/inputmethod/EditorInfo;II)V
 PLcom/android/server/inputmethod/SubtypeUtils;-><clinit>()V
-PLcom/android/server/inputmethod/SubtypeUtils;->getImplicitlyApplicableSubtypes(Landroid/os/LocaleList;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/SubtypeUtils;->getImplicitlyApplicableSubtypesImpl(Landroid/os/LocaleList;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/SubtypeUtils;->getSubtypeIdFromHashCode(Landroid/view/inputmethod/InputMethodInfo;I)I
-PLcom/android/server/inputmethod/SubtypeUtils;->getSubtypes(Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/SystemLocaleWrapper$LocaleChangeListener;-><init>(Landroid/content/Context;Lcom/android/server/inputmethod/SystemLocaleWrapper$Callback;)V
+PLcom/android/server/inputmethod/SubtypeUtils;->containsSubtypeOf(Landroid/view/inputmethod/InputMethodInfo;Ljava/util/Locale;ZLjava/lang/String;)Z
+HPLcom/android/server/inputmethod/SubtypeUtils;->getImplicitlyApplicableSubtypes(Landroid/os/LocaleList;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
+PLcom/android/server/inputmethod/SubtypeUtils;->getSubtypeIndexFromHashCode(Landroid/view/inputmethod/InputMethodInfo;I)I
+PLcom/android/server/inputmethod/SystemLocaleWrapper$LocaleChangeListener;-><init>(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/inputmethod/SystemLocaleWrapper$LocaleChangeListener;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/inputmethod/SystemLocaleWrapper;-><clinit>()V
-PLcom/android/server/inputmethod/SystemLocaleWrapper;->get(I)Landroid/os/LocaleList;
-PLcom/android/server/inputmethod/SystemLocaleWrapper;->onStart(Landroid/content/Context;Lcom/android/server/inputmethod/SystemLocaleWrapper$Callback;Landroid/os/Handler;)V
+PLcom/android/server/inputmethod/SystemLocaleWrapper;->get()Landroid/os/LocaleList;
+PLcom/android/server/inputmethod/UserData;-><init>(ILcom/android/server/inputmethod/InputMethodBindingController;Lcom/android/server/inputmethod/ImeVisibilityStateComputer;)V
+PLcom/android/server/inputmethod/UserDataRepository;-><init>(Ljava/util/function/IntFunction;Lcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda4;)V
+PLcom/android/server/inputmethod/UserDataRepository;->forAllUserData(Ljava/util/function/Consumer;)V
+PLcom/android/server/inputmethod/ZeroJankProxy$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/inputmethod/ZeroJankProxy;Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V
+PLcom/android/server/inputmethod/ZeroJankProxy$$ExternalSyntheticLambda12;->runOrThrow()V
+PLcom/android/server/inputmethod/ZeroJankProxy$$ExternalSyntheticLambda13;-><init>(Ljava/lang/Runnable;J)V
+HPLcom/android/server/inputmethod/ZeroJankProxy$$ExternalSyntheticLambda13;->run()V
+HPLcom/android/server/inputmethod/ZeroJankProxy$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/inputmethod/ZeroJankProxy;ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;I)V
+HPLcom/android/server/inputmethod/ZeroJankProxy$$ExternalSyntheticLambda8;->runOrThrow()V
+PLcom/android/server/inputmethod/ZeroJankProxy;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda184;Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HPLcom/android/server/inputmethod/ZeroJankProxy;->offloadInner(Ljava/lang/Runnable;)V
 PLcom/android/server/integrity/AppIntegrityManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/integrity/AppIntegrityManagerService;->onStart()V
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl$1;-><init>(Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;)V
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><clinit>()V
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Ljava/util/function/Supplier;Lcom/android/server/integrity/engine/RuleEvaluationEngine;Lcom/android/server/integrity/IntegrityFileManager;Landroid/os/Handler;)V
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->create(Landroid/content/Context;)Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;
-PLcom/android/server/integrity/IntegrityFileManager;-><clinit>()V
-PLcom/android/server/integrity/IntegrityFileManager;-><init>()V
-PLcom/android/server/integrity/IntegrityFileManager;-><init>(Lcom/android/server/integrity/parser/RuleParser;Lcom/android/server/integrity/serializer/RuleSerializer;Ljava/io/File;)V
-PLcom/android/server/integrity/IntegrityFileManager;->getInstance()Lcom/android/server/integrity/IntegrityFileManager;
-PLcom/android/server/integrity/IntegrityFileManager;->updateRuleIndexingController()V
-PLcom/android/server/integrity/engine/RuleEvaluationEngine;-><init>(Lcom/android/server/integrity/IntegrityFileManager;)V
-PLcom/android/server/integrity/engine/RuleEvaluationEngine;->getRuleEvaluationEngine()Lcom/android/server/integrity/engine/RuleEvaluationEngine;
-PLcom/android/server/integrity/parser/RuleBinaryParser;-><init>()V
-PLcom/android/server/integrity/serializer/RuleBinarySerializer;-><init>()V
-PLcom/android/server/job/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/job/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/job/FeatureFlagsImpl;->batchActiveBucketJobs()Z
-PLcom/android/server/job/FeatureFlagsImpl;->batchConnectivityJobsPerNetwork()Z
-PLcom/android/server/job/FeatureFlagsImpl;->doNotForceRushExecutionAtBoot()Z
-PLcom/android/server/job/FeatureFlagsImpl;->load_overrides_backstage_power()V
+PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Landroid/os/Handler;)V
+PLcom/android/server/job/FeatureFlagsImpl;->init()V
 PLcom/android/server/job/Flags;-><clinit>()V
+PLcom/android/server/job/Flags;->adjustQuotaDefaultConstants()Z
 PLcom/android/server/job/Flags;->batchActiveBucketJobs()Z
 PLcom/android/server/job/Flags;->batchConnectivityJobsPerNetwork()Z
-PLcom/android/server/job/GrantedUriPermissions;->checkGrantFlags(I)Z
-PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/job/Flags;->countQuotaFix()Z
+PLcom/android/server/job/Flags;->createWorkChainByDefault()Z
+PLcom/android/server/job/Flags;->doNotForceRushExecutionAtBoot()Z
+HPLcom/android/server/job/Flags;->enforceQuotaPolicyToFgsJobs()Z
+HPLcom/android/server/job/Flags;->enforceQuotaPolicyToTopStartedJobs()Z
+PLcom/android/server/job/Flags;->relaxPrefetchConnectivityConstraintOnlyOnCharger()Z
+PLcom/android/server/job/Flags;->thermalRestrictionsToFgsJobs()Z
+HPLcom/android/server/job/Flags;->useCorrectProcessStateForLogging()Z
+HPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/JobConcurrencyManager;)V
-PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda1;->run()V
+HPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda3;-><init>(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/job/JobConcurrencyManager$1;-><init>(Lcom/android/server/job/JobConcurrencyManager;)V
+HPLcom/android/server/job/JobConcurrencyManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/job/JobConcurrencyManager$AssignmentInfo;-><init>()V
-HPLcom/android/server/job/JobConcurrencyManager$AssignmentInfo;->clear()V
 PLcom/android/server/job/JobConcurrencyManager$ContextAssignment;-><init>()V
 HPLcom/android/server/job/JobConcurrencyManager$ContextAssignment;->clear()V
 PLcom/android/server/job/JobConcurrencyManager$GracePeriodObserver;-><init>(Landroid/content/Context;)V
 PLcom/android/server/job/JobConcurrencyManager$Injector;-><init>()V
-PLcom/android/server/job/JobConcurrencyManager$Injector;->createJobServiceContext(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobNotificationCoordinator;Lcom/android/internal/app/IBatteryStats;Lcom/android/server/job/JobPackageTracker;Landroid/os/Looper;)Lcom/android/server/job/JobServiceContext;
-PLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$madjustRunningCount(Lcom/android/server/job/JobConcurrencyManager$PackageStats;ZZ)V
-PLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$madjustStagedCount(Lcom/android/server/job/JobConcurrencyManager$PackageStats;ZZ)V
-PLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$mresetStagedCount(Lcom/android/server/job/JobConcurrencyManager$PackageStats;)V
-PLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$msetPackage(Lcom/android/server/job/JobConcurrencyManager$PackageStats;ILjava/lang/String;)V
+HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$madjustRunningCount(Lcom/android/server/job/JobConcurrencyManager$PackageStats;ZZ)V
+HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$madjustStagedCount(Lcom/android/server/job/JobConcurrencyManager$PackageStats;ZZ)V
 PLcom/android/server/job/JobConcurrencyManager$PackageStats;-><init>()V
-HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->adjustRunningCount(ZZ)V
-HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->adjustStagedCount(ZZ)V
-HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->resetStagedCount()V
-HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->setPackage(ILjava/lang/String;)V
 PLcom/android/server/job/JobConcurrencyManager$WorkConfigLimitsPerMemoryTrimLevel;-><init>(Lcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;Lcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;Lcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;Lcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;)V
 PLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;-><init>()V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->adjustPendingJobCount(IZ)I
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->canJobStart(I)I
-PLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->decrementPendingJobCount(I)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->getRunningJobCount(I)I
-PLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->incrementPendingJobCount(I)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->incrementRunningJobCount(I)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->maybeAdjustReservations(I)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->onCountDone()V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->onJobFinished(I)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->onJobStarted(I)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->resetCounts()V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->resetStagingCount()V
-HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->setConfig(Lcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;)V
+HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->adjustPendingJobCount(IZ)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->canJobStart(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->getPendingJobCount(I)I
+HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->maybeAdjustReservations(I)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 HPLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->stageJob(II)V
-HPLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;-><init>(Ljava/lang/String;IILjava/util/List;Ljava/util/List;)V
-PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->getMax(I)I
-PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->getMaxTotal()I
+PLcom/android/server/job/JobConcurrencyManager$WorkCountTracker;->toString()Ljava/lang/String;
+PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;-><init>(Ljava/lang/String;IILjava/util/List;Ljava/util/List;)V
+PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->getMaxValue(Landroid/provider/DeviceConfig$Properties;Ljava/lang/String;II)I
-PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->getMinReserved(I)I
 PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->getMinValue(Landroid/provider/DeviceConfig$Properties;Ljava/lang/String;III)I
-HPLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->update(Landroid/provider/DeviceConfig$Properties;I)V
-PLcom/android/server/job/JobConcurrencyManager;->$r8$lambda$VhD--0a_vmTAP5SEQ54BuaJ_sSE(Lcom/android/server/job/JobConcurrencyManager$ContextAssignment;Lcom/android/server/job/JobConcurrencyManager$ContextAssignment;)I
-PLcom/android/server/job/JobConcurrencyManager;->$r8$lambda$nNxi-L4_H0efU9cBGIS9vGrT-zc(Lcom/android/server/job/JobConcurrencyManager$PackageStats;)V
-HPLcom/android/server/job/JobConcurrencyManager;-><clinit>()V
-PLcom/android/server/job/JobConcurrencyManager;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/JobConcurrencyManager;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobConcurrencyManager$Injector;)V
-HPLcom/android/server/job/JobConcurrencyManager;->assignJobsToContextsInternalLocked()V
-HPLcom/android/server/job/JobConcurrencyManager;->assignJobsToContextsLocked()V
-HPLcom/android/server/job/JobConcurrencyManager;->carryOutAssignmentChangesLocked(Landroid/util/ArraySet;)V
-HPLcom/android/server/job/JobConcurrencyManager;->cleanUpAfterAssignmentChangesLocked(Landroid/util/ArraySet;Landroid/util/ArraySet;Ljava/util/List;Ljava/util/List;Lcom/android/server/job/JobConcurrencyManager$AssignmentInfo;Landroid/util/SparseIntArray;)V
-HPLcom/android/server/job/JobConcurrencyManager;->determineAssignmentsLocked(Landroid/util/ArraySet;Landroid/util/ArraySet;Ljava/util/List;Ljava/util/List;Lcom/android/server/job/JobConcurrencyManager$AssignmentInfo;)V
-HPLcom/android/server/job/JobConcurrencyManager;->getJobWorkTypes(Lcom/android/server/job/controllers/JobStatus;)I
-HPLcom/android/server/job/JobConcurrencyManager;->getPkgStatsLocked(ILjava/lang/String;)Lcom/android/server/job/JobConcurrencyManager$PackageStats;
-HPLcom/android/server/job/JobConcurrencyManager;->getRunningJobsLocked()Landroid/util/ArraySet;
+PLcom/android/server/job/JobConcurrencyManager$WorkTypeConfig;->update(Landroid/provider/DeviceConfig$Properties;I)V
+PLcom/android/server/job/JobConcurrencyManager;->-$$Nest$mstopOvertimeJobsLocked(Lcom/android/server/job/JobConcurrencyManager;Ljava/lang/String;)V
+PLcom/android/server/job/JobConcurrencyManager;-><clinit>()V
+PLcom/android/server/job/JobConcurrencyManager;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobConcurrencyManager$Injector;)V
+HPLcom/android/server/job/JobConcurrencyManager;->assignJobsToContextsLocked()V+]Landroid/util/Pools$SimplePool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/job/JobConcurrencyManager;->createNewJobServiceContext()Lcom/android/server/job/JobServiceContext;
+HPLcom/android/server/job/JobConcurrencyManager;->determineAssignmentsLocked(Landroid/util/ArraySet;Landroid/util/ArraySet;Ljava/util/List;Ljava/util/List;Lcom/android/server/job/JobConcurrencyManager$AssignmentInfo;)V+]Landroid/util/Pools$SimplePool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/job/JobConcurrencyManager;->dumpContextInfoLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;JJ)V
+PLcom/android/server/job/JobConcurrencyManager;->dumpLocked(Landroid/util/IndentingPrintWriter;JJ)V
+HPLcom/android/server/job/JobConcurrencyManager;->getJobWorkTypes(Lcom/android/server/job/controllers/JobStatus;)I+]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager;
+HPLcom/android/server/job/JobConcurrencyManager;->getPkgStatsLocked(ILjava/lang/String;)Lcom/android/server/job/JobConcurrencyManager$PackageStats;+]Landroid/util/Pools$SimplePool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
+PLcom/android/server/job/JobConcurrencyManager;->getRunningJobServiceContextLocked(Lcom/android/server/job/controllers/JobStatus;)Lcom/android/server/job/JobServiceContext;
 HPLcom/android/server/job/JobConcurrencyManager;->hasImmediacyPrivilegeLocked(Lcom/android/server/job/controllers/JobStatus;Landroid/util/SparseIntArray;)Z
-HPLcom/android/server/job/JobConcurrencyManager;->isJobRunningLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobConcurrencyManager;->isNotificationAssociatedWithAnyUserInitiatedJobs(IILjava/lang/String;)Z
-PLcom/android/server/job/JobConcurrencyManager;->isNotificationChannelAssociatedWithAnyUserInitiatedJobs(Ljava/lang/String;ILjava/lang/String;)Z
 HPLcom/android/server/job/JobConcurrencyManager;->isPkgConcurrencyLimitedLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobConcurrencyManager;->lambda$static$0(Lcom/android/server/job/JobConcurrencyManager$ContextAssignment;Lcom/android/server/job/JobConcurrencyManager$ContextAssignment;)I
 HPLcom/android/server/job/JobConcurrencyManager;->noteConcurrency(Z)V
-PLcom/android/server/job/JobConcurrencyManager;->onInteractiveStateChanged(Z)V
-HPLcom/android/server/job/JobConcurrencyManager;->onJobCompletedLocked(Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/controllers/JobStatus;I)V
-PLcom/android/server/job/JobConcurrencyManager;->onSystemReady()V
+HPLcom/android/server/job/JobConcurrencyManager;->onInteractiveStateChanged(Z)V
 PLcom/android/server/job/JobConcurrencyManager;->onThirdPartyAppsCanStart()V
-PLcom/android/server/job/JobConcurrencyManager;->onUidBiasChangedLocked(II)V
-HPLcom/android/server/job/JobConcurrencyManager;->prepareForAssignmentDeterminationLocked(Landroid/util/ArraySet;Ljava/util/List;Ljava/util/List;Lcom/android/server/job/JobConcurrencyManager$AssignmentInfo;)V
-HPLcom/android/server/job/JobConcurrencyManager;->refreshSystemStateLocked()Z
-HPLcom/android/server/job/JobConcurrencyManager;->shouldRunAsFgUserJob(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobConcurrencyManager;->shouldStopRunningJobLocked(Lcom/android/server/job/JobServiceContext;)Ljava/lang/String;
-HPLcom/android/server/job/JobConcurrencyManager;->startJobLocked(Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/controllers/JobStatus;I)V
-PLcom/android/server/job/JobConcurrencyManager;->stopJobOnServiceContextLocked(Lcom/android/server/job/controllers/JobStatus;IILjava/lang/String;)Z
-PLcom/android/server/job/JobConcurrencyManager;->stopNonReadyActiveJobsLocked()V
-HPLcom/android/server/job/JobConcurrencyManager;->updateCounterConfigLocked()V
+HPLcom/android/server/job/JobConcurrencyManager;->prepareForAssignmentDeterminationLocked(Landroid/util/ArraySet;Ljava/util/List;Ljava/util/List;Lcom/android/server/job/JobConcurrencyManager$AssignmentInfo;)V+]Landroid/util/Pools$SimplePool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/job/JobConcurrencyManager;->shouldRunAsFgUserJob(Lcom/android/server/job/controllers/JobStatus;)Z
+HPLcom/android/server/job/JobConcurrencyManager;->shouldStopRunningJobLocked(Lcom/android/server/job/JobServiceContext;)Ljava/lang/String;
+HPLcom/android/server/job/JobConcurrencyManager;->startJobLocked(ILcom/android/server/job/JobServiceContext;Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/job/controllers/StateController;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/job/JobConcurrencyManager;->stopJobOnServiceContextLocked(Lcom/android/server/job/controllers/JobStatus;IILjava/lang/String;)Z
+HPLcom/android/server/job/JobConcurrencyManager;->updateCounterConfigLocked()V+]Landroid/app/IActivityManager;Lcom/android/server/am/ActivityManagerService;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$1;
 HPLcom/android/server/job/JobConcurrencyManager;->updateNonRunningPrioritiesLocked(Lcom/android/server/job/PendingJobQueue;Z)V
 PLcom/android/server/job/JobNotificationCoordinator;-><init>()V
-PLcom/android/server/job/JobNotificationCoordinator;->isNotificationAssociatedWithAnyUserInitiatedJobs(IILjava/lang/String;)Z
-PLcom/android/server/job/JobNotificationCoordinator;->isNotificationChannelAssociatedWithAnyUserInitiatedJobs(Ljava/lang/String;ILjava/lang/String;)Z
-HPLcom/android/server/job/JobNotificationCoordinator;->removeNotificationAssociation(Lcom/android/server/job/JobServiceContext;ILcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/JobNotificationCoordinator;->removeNotificationAssociation(ILcom/android/server/job/JobServiceContext;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/JobPackageTracker$DataSet;-><init>()V
-HPLcom/android/server/job/JobPackageTracker$DataSet;->decActive(ILjava/lang/String;JI)V
-HPLcom/android/server/job/JobPackageTracker$DataSet;->decPending(ILjava/lang/String;J)V
-HPLcom/android/server/job/JobPackageTracker$DataSet;->getEntry(ILjava/lang/String;)Lcom/android/server/job/JobPackageTracker$PackageEntry;
-HPLcom/android/server/job/JobPackageTracker$DataSet;->getOrCreateEntry(ILjava/lang/String;)Lcom/android/server/job/JobPackageTracker$PackageEntry;
-HPLcom/android/server/job/JobPackageTracker$DataSet;->getTotalTime(J)J
-HPLcom/android/server/job/JobPackageTracker$DataSet;->incActive(ILjava/lang/String;J)V
-HPLcom/android/server/job/JobPackageTracker$DataSet;->incPending(ILjava/lang/String;J)V
+PLcom/android/server/job/JobPackageTracker$DataSet;-><init>(Lcom/android/server/job/JobPackageTracker$DataSet;)V
+PLcom/android/server/job/JobPackageTracker$DataSet;->addTo(Lcom/android/server/job/JobPackageTracker$DataSet;J)V
+PLcom/android/server/job/JobPackageTracker$DataSet;->dump(IJJLandroid/util/IndentingPrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/job/JobPackageTracker$DataSet;->getOrCreateEntry(ILjava/lang/String;)Lcom/android/server/job/JobPackageTracker$PackageEntry;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/job/JobPackageTracker$DataSet;->getTotalTime(J)J
+PLcom/android/server/job/JobPackageTracker$DataSet;->printDuration(IJJLandroid/util/IndentingPrintWriter;Ljava/lang/String;)Z
 PLcom/android/server/job/JobPackageTracker$PackageEntry;-><init>()V
-HPLcom/android/server/job/JobPackageTracker$PackageEntry;->getActiveTime(J)J
-HPLcom/android/server/job/JobPackageTracker$PackageEntry;->getPendingTime(J)J
+PLcom/android/server/job/JobPackageTracker$PackageEntry;->getActiveTime(J)J
+PLcom/android/server/job/JobPackageTracker$PackageEntry;->getPendingTime(J)J
 PLcom/android/server/job/JobPackageTracker;-><init>()V
-HPLcom/android/server/job/JobPackageTracker;->addEvent(IILjava/lang/String;IILjava/lang/String;)V
-HPLcom/android/server/job/JobPackageTracker;->getLoadFactor(Lcom/android/server/job/controllers/JobStatus;)F
+HPLcom/android/server/job/JobPackageTracker;->addEvent(IILjava/lang/String;Ljava/lang/String;II)V
+PLcom/android/server/job/JobPackageTracker;->dump(Landroid/util/IndentingPrintWriter;I)V
+PLcom/android/server/job/JobPackageTracker;->dumpHistory(Landroid/util/IndentingPrintWriter;I)Z
 HPLcom/android/server/job/JobPackageTracker;->noteActive(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobPackageTracker;->noteConcurrency(II)V
-HPLcom/android/server/job/JobPackageTracker;->noteInactive(Lcom/android/server/job/controllers/JobStatus;ILjava/lang/String;)V
 HPLcom/android/server/job/JobPackageTracker;->noteNonpending(Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/JobPackageTracker;->notePending(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobPackageTracker;->rebatchIfNeeded(J)V
-PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+HPLcom/android/server/job/JobPackageTracker;->rebatchIfNeeded(J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/JobSchedulerService;I)V
 PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/JobSchedulerService;I)V
 HPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
-PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/job/JobSchedulerService;I)V
+PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda4;->getCategory(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/Category;
-PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/job/JobSchedulerService$1;-><init>(Ljava/time/ZoneId;)V
+HPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda4;->getCategory(Ljava/lang/String;)Lcom/android/server/utils/quota/Category;
+PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;-><init>(II)V
+PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
+PLcom/android/server/job/JobSchedulerService$1;-><init>(Ljava/time/ZoneId;I)V
 HPLcom/android/server/job/JobSchedulerService$1;->millis()J
-PLcom/android/server/job/JobSchedulerService$2;-><init>(Ljava/time/ZoneId;)V
-HPLcom/android/server/job/JobSchedulerService$2;->millis()J
-PLcom/android/server/job/JobSchedulerService$3;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/JobSchedulerService$3;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/job/JobSchedulerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/job/JobSchedulerService$4;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/JobSchedulerService$4;->onUidActive(I)V
-HPLcom/android/server/job/JobSchedulerService$4;->onUidGone(IZ)V
-HPLcom/android/server/job/JobSchedulerService$4;->onUidIdle(IZ)V
+PLcom/android/server/job/JobSchedulerService$4;->onUidActive(I)V
+PLcom/android/server/job/JobSchedulerService$4;->onUidGone(IZ)V
+PLcom/android/server/job/JobSchedulerService$4;->onUidIdle(IZ)V
 HPLcom/android/server/job/JobSchedulerService$4;->onUidStateChanged(IIJI)V
-PLcom/android/server/job/JobSchedulerService$5;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/JobSchedulerService$6;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->isBatteryNotLow()Z
-HPLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->isCharging()Z
 HPLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->isConsideredCharging()Z
-PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->isPowerConnected()Z
 PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->onChargingPolicyChanged(I)V
 PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->onReceiveInternal(Landroid/content/Intent;)V
-PLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->startTracking()V
+HPLcom/android/server/job/JobSchedulerService$BatteryStateTracker;->onReceiveInternal(Landroid/content/Intent;)V
 PLcom/android/server/job/JobSchedulerService$CloudProviderChangeListener;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$CloudProviderChangeListener;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService$CloudProviderChangeListener-IA;)V
-PLcom/android/server/job/JobSchedulerService$Constants;->-$$Nest$mupdateTareSettingsLocked(Lcom/android/server/job/JobSchedulerService$Constants;I)Z
+PLcom/android/server/job/JobSchedulerService$Constants$$ExternalSyntheticOutline0;->m(ILandroid/util/IndentingPrintWriter;Ljava/lang/String;)V
+PLcom/android/server/job/JobSchedulerService$Constants$$ExternalSyntheticOutline0;->m(JLandroid/util/IndentingPrintWriter;Ljava/lang/String;)V
 PLcom/android/server/job/JobSchedulerService$Constants;-><clinit>()V
-PLcom/android/server/job/JobSchedulerService$Constants;-><init>()V
 PLcom/android/server/job/JobSchedulerService$Constants;->copyTransportBatchThresholdDefaults()V
-PLcom/android/server/job/JobSchedulerService$Constants;->updateTareSettingsLocked(I)Z
+PLcom/android/server/job/JobSchedulerService$Constants;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/job/JobSchedulerService$ConstantsObserver;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$ConstantsObserver;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService$ConstantsObserver-IA;)V
 PLcom/android/server/job/JobSchedulerService$ConstantsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/job/JobSchedulerService$ConstantsObserver;->onTareEnabledModeChanged(I)V
-PLcom/android/server/job/JobSchedulerService$ConstantsObserver;->start()V
-PLcom/android/server/job/JobSchedulerService$DeferredJobCounter;-><init>()V
-PLcom/android/server/job/JobSchedulerService$DeferredJobCounter;->numDeferred()I
+PLcom/android/server/job/JobSchedulerService$DeferredJobCounter;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/JobSchedulerService$JobHandler;-><init>(Lcom/android/server/job/JobSchedulerService;Landroid/os/Looper;)V
-HPLcom/android/server/job/JobSchedulerService$JobHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/job/JobSchedulerService$JobHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;
 PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->canPersistJobs(II)Z
 HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->cancel(Ljava/lang/String;I)V
 PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->cancelAllInNamespace(Ljava/lang/String;)V
-HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->enforceBuilderApiPermissions(IILandroid/app/job/JobInfo;)Landroid/app/job/JobInfo;
+PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->enforceBuilderApiPermissions(IILandroid/app/job/JobInfo;)Landroid/app/job/JobInfo;
 HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->enforceValidJobRequest(IILandroid/app/job/JobInfo;)V
-HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->enqueue(Ljava/lang/String;Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
+PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->enqueue(Ljava/lang/String;Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
 HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->getAllPendingJobsInNamespace(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->getPendingJob(Ljava/lang/String;I)Landroid/app/job/JobInfo;
+PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->getPendingJob(Ljava/lang/String;I)Landroid/app/job/JobInfo;
 HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->schedule(Ljava/lang/String;Landroid/app/job/JobInfo;)I
+PLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->scheduleAsPackage(Ljava/lang/String;Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
 HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->validateJob(Landroid/app/job/JobInfo;IIILjava/lang/String;Landroid/app/job/JobWorkItem;)I
 HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->validateNamespace(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/job/JobSchedulerService$LocalService;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/JobSchedulerService$LocalService;->addBackingUpUid(I)V
 PLcom/android/server/job/JobSchedulerService$LocalService;->getPersistStats()Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;
+PLcom/android/server/job/JobSchedulerService$LocalService;->getSystemScheduledOwnJobs(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/job/JobSchedulerService$LocalService;->isAppConsideredBuggy(ILjava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/job/JobSchedulerService$LocalService;->isNotificationAssociatedWithAnyUserInitiatedJobs(IILjava/lang/String;)Z
-PLcom/android/server/job/JobSchedulerService$LocalService;->isNotificationChannelAssociatedWithAnyUserInitiatedJobs(Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/job/JobSchedulerService$LocalService;->isNotificationAssociatedWithAnyUserInitiatedJobs(IILjava/lang/String;)Z
+HPLcom/android/server/job/JobSchedulerService$LocalService;->isNotificationChannelAssociatedWithAnyUserInitiatedJobs(Ljava/lang/String;ILjava/lang/String;)Z
+PLcom/android/server/job/JobSchedulerService$LocalService;->removeBackingUpUid(I)V
 PLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;->accept(Ljava/lang/Object;)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;->postProcessLocked()V
 HPLcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;->reset()V
 PLcom/android/server/job/JobSchedulerService$MySimpleClock;-><init>(Ljava/time/ZoneId;)V
-PLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;->-$$Nest$mpostProcessLocked(Lcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;)V
 PLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;->accept(Ljava/lang/Object;)V
-PLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;->postProcessLocked()V
+HPLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;->accept(Ljava/lang/Object;)V+]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;
 PLcom/android/server/job/JobSchedulerService$StandbyTracker;-><init>(Lcom/android/server/job/JobSchedulerService;)V
 PLcom/android/server/job/JobSchedulerService$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 PLcom/android/server/job/JobSchedulerService$StandbyTracker;->onUserInteractionStarted(Ljava/lang/String;I)V
-HPLcom/android/server/job/JobSchedulerService;->$r8$lambda$Q16HuucOPC3Nu2dDmrkdR058M08(Lcom/android/server/job/JobSchedulerService;ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/Category;
-PLcom/android/server/job/JobSchedulerService;->$r8$lambda$Ulq0lH6hWnerIiBupp3Llq6NoQA(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/JobSchedulerService;->$r8$lambda$_qsiROTbT1bHvhwbOpkod1sMBXE(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService;->$r8$lambda$kFq7qP-VcLL1Ltl-JO7FUKK_Zis(Lcom/android/server/job/JobSchedulerService;I)Z
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmChangedJobList(Lcom/android/server/job/JobSchedulerService;)Landroid/util/ArraySet;
-HPLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmDeviceIdleJobsController(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/job/controllers/DeviceIdleJobsController;
-HPLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmPendingJobQueue(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/job/PendingJobQueue;
-HPLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmQuotaTracker(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/utils/quota/CountQuotaTracker;
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mcancelJob(Lcom/android/server/job/JobSchedulerService;ILjava/lang/String;III)Z
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mcancelJobsForPackageAndUidLocked(Lcom/android/server/job/JobSchedulerService;Ljava/lang/String;IZZIILjava/lang/String;)V
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mcancelJobsForUid(Lcom/android/server/job/JobSchedulerService;IZZLjava/lang/String;IILjava/lang/String;)Z
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mcheckChangedJobListLocked(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mgetPendingJob(Lcom/android/server/job/JobSchedulerService;ILjava/lang/String;I)Landroid/app/job/JobInfo;
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mgetPendingJobsInNamespace(Lcom/android/server/job/JobSchedulerService;ILjava/lang/String;)Ljava/util/List;
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mhasPermission(Lcom/android/server/job/JobSchedulerService;IILjava/lang/String;)Z
+PLcom/android/server/job/JobSchedulerService;->-$$Nest$mcancelJobsForPackageAndUidLocked(Lcom/android/server/job/JobSchedulerService;Ljava/lang/String;IZILjava/lang/String;)V
+HPLcom/android/server/job/JobSchedulerService;->-$$Nest$mgetPendingJob(IILcom/android/server/job/JobSchedulerService;Ljava/lang/String;)Landroid/app/job/JobInfo;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+HPLcom/android/server/job/JobSchedulerService;->-$$Nest$mgetPendingJobsInNamespace(Lcom/android/server/job/JobSchedulerService;ILjava/lang/String;)Ljava/util/List;
+HPLcom/android/server/job/JobSchedulerService;->-$$Nest$mhasPermission(IILcom/android/server/job/JobSchedulerService;Ljava/lang/String;)Z
 PLcom/android/server/job/JobSchedulerService;->-$$Nest$mmaybeQueueReadyJobsForExecutionLocked(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/JobSchedulerService;->-$$Nest$mqueueReadyJobsForExecutionLocked(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/JobSchedulerService;-><clinit>()V
-HPLcom/android/server/job/JobSchedulerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/job/JobSchedulerService;->adjustJobBias(ILcom/android/server/job/controllers/JobStatus;)I
-HPLcom/android/server/job/JobSchedulerService;->areComponentsInPlaceLocked(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/JobSchedulerService;-><clinit>()V
+PLcom/android/server/job/JobSchedulerService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/job/JobSchedulerService;->adjustJobBias(Lcom/android/server/job/controllers/JobStatus;I)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$1;
 HPLcom/android/server/job/JobSchedulerService;->areUsersStartedLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobSchedulerService;->cancelJob(ILjava/lang/String;III)Z
+HPLcom/android/server/job/JobSchedulerService;->cancelJob(IIIILjava/lang/String;)Z
 HPLcom/android/server/job/JobSchedulerService;->cancelJobImplLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;IILjava/lang/String;)V
-PLcom/android/server/job/JobSchedulerService;->cancelJobsForNonExistentUsers()V
-PLcom/android/server/job/JobSchedulerService;->cancelJobsForPackageAndUidLocked(Ljava/lang/String;IZZIILjava/lang/String;)V
-PLcom/android/server/job/JobSchedulerService;->cancelJobsForUid(IZZLjava/lang/String;IILjava/lang/String;)Z
-HPLcom/android/server/job/JobSchedulerService;->checkChangedJobListLocked()V
-HPLcom/android/server/job/JobSchedulerService;->checkIfRestricted(Lcom/android/server/job/controllers/JobStatus;)Lcom/android/server/job/restrictions/JobRestriction;
+PLcom/android/server/job/JobSchedulerService;->cancelJobsForUid(IIIZZLjava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/job/JobSchedulerService;->checkIfRestricted(Lcom/android/server/job/controllers/JobStatus;)Lcom/android/server/job/restrictions/ThermalStatusRestriction;+]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/job/JobSchedulerService;->clearPendingJobQueue()V
 HPLcom/android/server/job/JobSchedulerService;->deriveWorkSource(ILjava/lang/String;)Landroid/os/WorkSource;
-HPLcom/android/server/job/JobSchedulerService;->evaluateControllerStatesLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobSchedulerService;->evaluateJobBiasLocked(Lcom/android/server/job/controllers/JobStatus;)I
-PLcom/android/server/job/JobSchedulerService;->getConstants()Lcom/android/server/job/JobSchedulerService$Constants;
-HPLcom/android/server/job/JobSchedulerService;->getJobStore()Lcom/android/server/job/JobStore;
-PLcom/android/server/job/JobSchedulerService;->getLock()Ljava/lang/Object;
+HPLcom/android/server/job/JobSchedulerService;->dumpInternal(Landroid/util/IndentingPrintWriter;I)V
+HPLcom/android/server/job/JobSchedulerService;->evaluateControllerStatesLocked(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/controllers/StateController;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/job/JobSchedulerService;->evaluateJobBiasLocked(Lcom/android/server/job/controllers/JobStatus;)I+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 HPLcom/android/server/job/JobSchedulerService;->getMaxJobExecutionTimeMs(Lcom/android/server/job/controllers/JobStatus;)J
 HPLcom/android/server/job/JobSchedulerService;->getMinJobExecutionGuaranteeMs(Lcom/android/server/job/controllers/JobStatus;)J
-PLcom/android/server/job/JobSchedulerService;->getPackageName(Landroid/content/Intent;)Ljava/lang/String;
 HPLcom/android/server/job/JobSchedulerService;->getPackagesForUidLocked(I)Landroid/util/ArraySet;
-HPLcom/android/server/job/JobSchedulerService;->getPendingJob(ILjava/lang/String;I)Landroid/app/job/JobInfo;
-HPLcom/android/server/job/JobSchedulerService;->getPendingJobQueue()Lcom/android/server/job/PendingJobQueue;
-HPLcom/android/server/job/JobSchedulerService;->getPendingJobsInNamespace(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/job/JobSchedulerService;->getRescheduleJobForFailureLocked(Lcom/android/server/job/controllers/JobStatus;II)Lcom/android/server/job/controllers/JobStatus;
 PLcom/android/server/job/JobSchedulerService;->getRescheduleJobForPeriodic(Lcom/android/server/job/controllers/JobStatus;)Lcom/android/server/job/controllers/JobStatus;
-PLcom/android/server/job/JobSchedulerService;->getTestableContext()Landroid/content/Context;
-HPLcom/android/server/job/JobSchedulerService;->getUidBias(I)I
+HPLcom/android/server/job/JobSchedulerService;->getUidBias(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 HPLcom/android/server/job/JobSchedulerService;->getUidProcState(I)I
-HPLcom/android/server/job/JobSchedulerService;->hasPermission(IILjava/lang/String;)Z
 HPLcom/android/server/job/JobSchedulerService;->isBatteryCharging()Z
-HPLcom/android/server/job/JobSchedulerService;->isBatteryNotLow()Z
-HPLcom/android/server/job/JobSchedulerService;->isComponentUsable(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobSchedulerService;->isCurrentlyRunningLocked(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/JobSchedulerService;->isBatteryNotLow()Z
+HPLcom/android/server/job/JobSchedulerService;->isComponentUsable(Lcom/android/server/job/controllers/JobStatus;)Z+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;
+PLcom/android/server/job/JobSchedulerService;->isCurrentlyRunningLocked(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/JobSchedulerService;->isJobInOvertimeLocked(Lcom/android/server/job/controllers/JobStatus;)Z
 PLcom/android/server/job/JobSchedulerService;->isPowerConnected()Z
 HPLcom/android/server/job/JobSchedulerService;->isReadyToBeExecutedLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobSchedulerService;->isReadyToBeExecutedLocked(Lcom/android/server/job/controllers/JobStatus;Z)Z
-PLcom/android/server/job/JobSchedulerService;->isUidActive(I)Z
-HPLcom/android/server/job/JobSchedulerService;->lambda$new$2(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/Category;
-HPLcom/android/server/job/JobSchedulerService;->lambda$onBootPhase$4(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/JobSchedulerService;->lambda$startControllerTrackingAsync$5()V
+HPLcom/android/server/job/JobSchedulerService;->isReadyToBeExecutedLocked(Lcom/android/server/job/controllers/JobStatus;Z)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;
 HPLcom/android/server/job/JobSchedulerService;->maybeProcessBuggyJob(Lcom/android/server/job/controllers/JobStatus;I)V
-PLcom/android/server/job/JobSchedulerService;->maybeQueueReadyJobsForExecutionLocked()V
 HPLcom/android/server/job/JobSchedulerService;->maybeRunPendingJobsLocked()V
-PLcom/android/server/job/JobSchedulerService;->noteJobPending(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/JobSchedulerService;->noteJobsPending(Landroid/util/ArraySet;)V
-HPLcom/android/server/job/JobSchedulerService;->onBootPhase(I)V
+PLcom/android/server/job/JobSchedulerService;->onBootPhase(I)V
 HPLcom/android/server/job/JobSchedulerService;->onControllerStateChanged(Landroid/util/ArraySet;)V
-HPLcom/android/server/job/JobSchedulerService;->onJobCompletedLocked(Lcom/android/server/job/controllers/JobStatus;IIZ)V
 PLcom/android/server/job/JobSchedulerService;->onRunJobNow(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/JobSchedulerService;->onStart()V
 PLcom/android/server/job/JobSchedulerService;->onUserCompletedEvent(Lcom/android/server/SystemService$TargetUser;Lcom/android/server/SystemService$UserCompletedEventType;)V
 PLcom/android/server/job/JobSchedulerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/job/JobSchedulerService;->queueReadyJobsForExecutionLocked()V
-HPLcom/android/server/job/JobSchedulerService;->reportActiveLocked()V
-HPLcom/android/server/job/JobSchedulerService;->resetPendingJobReasonCache(Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/JobSchedulerService;->queueReadyJobsForExecutionLocked()V
+HPLcom/android/server/job/JobSchedulerService;->reportActiveLocked()V+]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;
+HPLcom/android/server/job/JobSchedulerService;->resetPendingJobReasonsCache(Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
 PLcom/android/server/job/JobSchedulerService;->safelyScaleBytesToKBForHistogram(J)I
 HPLcom/android/server/job/JobSchedulerService;->scheduleAsPackage(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
-HPLcom/android/server/job/JobSchedulerService;->standbyBucketForPackage(Ljava/lang/String;IJ)I
+HPLcom/android/server/job/JobSchedulerService;->standbyBucketForPackage(ILjava/lang/String;J)I+]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;
 PLcom/android/server/job/JobSchedulerService;->standbyBucketToBucketIndex(I)I
-PLcom/android/server/job/JobSchedulerService;->startControllerTrackingAsync()V
-HPLcom/android/server/job/JobSchedulerService;->startTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/JobSchedulerService;->startTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/job/controllers/StateController;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/job/JobSchedulerService;->stopNonReadyActiveJobsLocked()V
-HPLcom/android/server/job/JobSchedulerService;->stopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)Z
+HPLcom/android/server/job/JobSchedulerService;->stopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/job/controllers/StateController;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/job/JobSchedulerService;->updateQuotaTracker()V
-HPLcom/android/server/job/JobSchedulerService;->updateUidState(III)V
+HPLcom/android/server/job/JobSchedulerService;->updateUidState(III)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/job/controllers/StateController;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/job/JobServiceContext$JobCallback;-><init>(Lcom/android/server/job/JobServiceContext;)V
 PLcom/android/server/job/JobServiceContext$JobCallback;->acknowledgeStartMessage(IZ)V
+PLcom/android/server/job/JobServiceContext$JobCallback;->acknowledgeStopMessage(IZ)V
 PLcom/android/server/job/JobServiceContext$JobCallback;->completeWork(II)Z
 PLcom/android/server/job/JobServiceContext$JobCallback;->dequeueWork(I)Landroid/app/job/JobWorkItem;
-PLcom/android/server/job/JobServiceContext$JobCallback;->jobFinished(IZ)V
+PLcom/android/server/job/JobServiceContext$JobCallback;->handleAbandonedJob(I)V
+HPLcom/android/server/job/JobServiceContext$JobCallback;->jobFinished(IZ)V
 PLcom/android/server/job/JobServiceContext$JobServiceHandler;-><init>(Lcom/android/server/job/JobServiceContext;Landroid/os/Looper;)V
+PLcom/android/server/job/JobServiceContext$JobServiceHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/job/JobServiceContext;-><clinit>()V
 PLcom/android/server/job/JobServiceContext;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobNotificationCoordinator;Lcom/android/internal/app/IBatteryStats;Lcom/android/server/job/JobPackageTracker;Landroid/os/Looper;)V
 HPLcom/android/server/job/JobServiceContext;->applyStoppedReasonLocked(Ljava/lang/String;)V
 PLcom/android/server/job/JobServiceContext;->assertCallerLocked(Lcom/android/server/job/JobServiceContext$JobCallback;)Z
-PLcom/android/server/job/JobServiceContext;->canGetNetworkInformation(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobServiceContext;->clearPreferredUid()V
-HPLcom/android/server/job/JobServiceContext;->closeAndCleanupJobLocked(ZLjava/lang/String;)V
-PLcom/android/server/job/JobServiceContext;->doAcknowledgeStartMessage(Lcom/android/server/job/JobServiceContext$JobCallback;IZ)V
+HPLcom/android/server/job/JobServiceContext;->canGetNetworkInformation(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/JobServiceContext;->cancelExecutingJobLocked(IILjava/lang/String;)V
+HPLcom/android/server/job/JobServiceContext;->closeAndCleanupJobLocked(Ljava/lang/String;Z)V
 HPLcom/android/server/job/JobServiceContext;->doCallback(Lcom/android/server/job/JobServiceContext$JobCallback;ZLjava/lang/String;)V
-HPLcom/android/server/job/JobServiceContext;->doCallbackLocked(ZLjava/lang/String;)V
-PLcom/android/server/job/JobServiceContext;->doCompleteWork(Lcom/android/server/job/JobServiceContext$JobCallback;II)Z
-HPLcom/android/server/job/JobServiceContext;->doDequeueWork(Lcom/android/server/job/JobServiceContext$JobCallback;I)Landroid/app/job/JobWorkItem;
-HPLcom/android/server/job/JobServiceContext;->doJobFinished(Lcom/android/server/job/JobServiceContext$JobCallback;IZ)V
-PLcom/android/server/job/JobServiceContext;->doServiceBoundLocked()V
+HPLcom/android/server/job/JobServiceContext;->doCallbackLocked(Ljava/lang/String;Z)V
+HPLcom/android/server/job/JobServiceContext;->doServiceBoundLocked()V
+PLcom/android/server/job/JobServiceContext;->dumpLocked(Landroid/util/IndentingPrintWriter;J)V
 HPLcom/android/server/job/JobServiceContext;->executeRunnableJob(Lcom/android/server/job/controllers/JobStatus;I)Z
-PLcom/android/server/job/JobServiceContext;->getExecutionStartTimeElapsed()J
-PLcom/android/server/job/JobServiceContext;->getId()I
-PLcom/android/server/job/JobServiceContext;->getPreferredUid()I
-PLcom/android/server/job/JobServiceContext;->getRemainingGuaranteedTimeMs(J)J
-PLcom/android/server/job/JobServiceContext;->getRunningJobLocked()Lcom/android/server/job/controllers/JobStatus;
-PLcom/android/server/job/JobServiceContext;->getRunningJobWorkType()I
-PLcom/android/server/job/JobServiceContext;->getStartActionId(Lcom/android/server/job/controllers/JobStatus;)I
-PLcom/android/server/job/JobServiceContext;->handleFinishedLocked(ZLjava/lang/String;)V
-HPLcom/android/server/job/JobServiceContext;->handleServiceBoundLocked()V
-HPLcom/android/server/job/JobServiceContext;->handleStartedLocked(Z)V
+PLcom/android/server/job/JobServiceContext;->getRunningJobNameLocked()Ljava/lang/String;
+PLcom/android/server/job/JobServiceContext;->handleCancelLocked(Ljava/lang/String;)V
+PLcom/android/server/job/JobServiceContext;->handleFinishedLocked(Ljava/lang/String;Z)V
+PLcom/android/server/job/JobServiceContext;->handleOpTimeoutLocked()V
+PLcom/android/server/job/JobServiceContext;->informOfNetworkChangeLocked(Landroid/net/Network;)V
 PLcom/android/server/job/JobServiceContext;->isWithinExecutionGuaranteeTime()Z
+PLcom/android/server/job/JobServiceContext;->onBindingDied(Landroid/content/ComponentName;)V
 HPLcom/android/server/job/JobServiceContext;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/job/JobServiceContext;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HPLcom/android/server/job/JobServiceContext;->removeOpTimeOutLocked()V
 HPLcom/android/server/job/JobServiceContext;->scheduleOpTimeOutLocked()V
+HPLcom/android/server/job/JobServiceContext;->sendStopMessageLocked(Ljava/lang/String;)V
 PLcom/android/server/job/JobServiceContext;->verifyCallerLocked(Lcom/android/server/job/JobServiceContext$JobCallback;)Z
+PLcom/android/server/job/JobStore$$ExternalSyntheticLambda0;-><init>(JLjava/util/ArrayList;Ljava/util/ArrayList;)V
+PLcom/android/server/job/JobStore$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/JobStore$1;-><init>(Lcom/android/server/job/JobStore;)V
 PLcom/android/server/job/JobStore$1;->run()V
-PLcom/android/server/job/JobStore$2$CopyConsumer;->-$$Nest$fgetmJobStoreCopy(Lcom/android/server/job/JobStore$2$CopyConsumer;)Landroid/util/SparseArray;
 PLcom/android/server/job/JobStore$2$CopyConsumer;->-$$Nest$mprepare(Lcom/android/server/job/JobStore$2$CopyConsumer;)V
-PLcom/android/server/job/JobStore$2$CopyConsumer;->-$$Nest$mreset(Lcom/android/server/job/JobStore$2$CopyConsumer;)V
 PLcom/android/server/job/JobStore$2$CopyConsumer;-><init>(Lcom/android/server/job/JobStore$2;)V
-HPLcom/android/server/job/JobStore$2$CopyConsumer;->accept(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/JobStore$2$CopyConsumer;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/job/JobStore$2$CopyConsumer;->prepare()V
-PLcom/android/server/job/JobStore$2$CopyConsumer;->reset()V
+HPLcom/android/server/job/JobStore$2$CopyConsumer;->accept(Ljava/lang/Object;)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/job/JobStore$2;-><init>(Lcom/android/server/job/JobStore;)V
 HPLcom/android/server/job/JobStore$2;->addAttributesToJobTag(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobStore$2;->deepCopyBundle(Landroid/os/PersistableBundle;I)Landroid/os/PersistableBundle;
+HPLcom/android/server/job/JobStore$2;->deepCopyBundle(ILandroid/os/PersistableBundle;)Landroid/os/PersistableBundle;
 HPLcom/android/server/job/JobStore$2;->run()V
-PLcom/android/server/job/JobStore$2;->writeBundleToXml(Landroid/os/PersistableBundle;Lorg/xmlpull/v1/XmlSerializer;)V
 HPLcom/android/server/job/JobStore$2;->writeConstraintsToXml(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/JobStore$2;->writeDebugInfoToXml(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/JobStore$2;->writeExecutionCriteriaToXml(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/JobStore$2;->writeJobWorkItemListToXml(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/List;)V
-PLcom/android/server/job/JobStore$2;->writeJobWorkItemsToXml(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobStore$2;->writeJobsMapImpl(Landroid/util/AtomicFile;Ljava/util/List;)V
-PLcom/android/server/job/JobStore$JobSet$$ExternalSyntheticLambda0;-><init>([I)V
+PLcom/android/server/job/JobStore$JobSet$$ExternalSyntheticLambda0;-><init>(I[I)V
 PLcom/android/server/job/JobStore$JobSet$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/job/JobStore$JobSet$$ExternalSyntheticLambda1;-><init>([I)V
-PLcom/android/server/job/JobStore$JobSet$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
-PLcom/android/server/job/JobStore$JobSet;->$r8$lambda$Ogrjy8cbnKakGMK8Ug9l_r3Ikrk([ILcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobStore$JobSet;->$r8$lambda$RA6YfP6IBdA_T2lAW98eyR1LWXw([ILcom/android/server/job/controllers/JobStatus;)Z
 PLcom/android/server/job/JobStore$JobSet;-><init>()V
 HPLcom/android/server/job/JobStore$JobSet;->add(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobStore$JobSet;->contains(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobStore$JobSet;->countJobsForUid(I)I
-HPLcom/android/server/job/JobStore$JobSet;->forEachJob(Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V
-HPLcom/android/server/job/JobStore$JobSet;->forEachJobForSourceUid(ILjava/util/function/Consumer;)V
-HPLcom/android/server/job/JobStore$JobSet;->get(ILjava/lang/String;I)Lcom/android/server/job/controllers/JobStatus;
-HPLcom/android/server/job/JobStore$JobSet;->getJobsBySourceUid(I)Landroid/util/ArraySet;
+HPLcom/android/server/job/JobStore$JobSet;->forEachJob(Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/function/Predicate;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;,Lcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda0;,Lcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda0;
+HPLcom/android/server/job/JobStore$JobSet;->get(IILjava/lang/String;)Lcom/android/server/job/controllers/JobStatus;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/job/JobStore$JobSet;->getAllJobs()Ljava/util/List;
 HPLcom/android/server/job/JobStore$JobSet;->getJobsBySourceUid(ILjava/util/Set;)V
-HPLcom/android/server/job/JobStore$JobSet;->getJobsByUid(I)Landroid/util/ArraySet;
-HPLcom/android/server/job/JobStore$JobSet;->getJobsByUid(ILjava/util/Set;)V
-PLcom/android/server/job/JobStore$JobSet;->lambda$removeJobsOfUnlistedUsers$0([ILcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobStore$JobSet;->lambda$removeJobsOfUnlistedUsers$1([ILcom/android/server/job/controllers/JobStatus;)Z
 HPLcom/android/server/job/JobStore$JobSet;->remove(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobStore$JobSet;->removeAll(Ljava/util/function/Predicate;)V
-PLcom/android/server/job/JobStore$JobSet;->removeJobsOfUnlistedUsers([I)V
 PLcom/android/server/job/JobStore$JobSet;->size()I
 PLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;-><init>(Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore$JobSet;ZLjava/util/concurrent/CountDownLatch;)V
-HPLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->buildBuilderFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/app/job/JobInfo$Builder;
-HPLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->buildConstraintsFromXml(Landroid/app/job/JobInfo$Builder;Lcom/android/modules/utils/TypedXmlPullParser;)V
-HPLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->buildRtcExecutionTimesFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/util/Pair;
-PLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->intern(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->maybeBuildBackoffPolicyFromXml(Landroid/app/job/JobInfo$Builder;Lorg/xmlpull/v1/XmlPullParser;)V
-HPLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->readJobMapImpl(Ljava/io/InputStream;ZJ)Ljava/util/List;
-HPLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->restoreJobFromXml(ZLcom/android/modules/utils/TypedXmlPullParser;IJ)Lcom/android/server/job/controllers/JobStatus;
-HPLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->run()V
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmCurrentJobSetSize(Lcom/android/server/job/JobStore;)I
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmEventLogger(Lcom/android/server/job/JobStore;)Landroid/util/SystemConfigFileCommitEventLogger;
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmJobFileDirectory(Lcom/android/server/job/JobStore;)Ljava/io/File;
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmPendingJobWriteUids(Lcom/android/server/job/JobStore;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmPersistInfo(Lcom/android/server/job/JobStore;)Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmScheduledJob30MinHighWaterMark(Lcom/android/server/job/JobStore;)I
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmScheduledJobHighWaterMarkLoggingRunnable(Lcom/android/server/job/JobStore;)Ljava/lang/Runnable;
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmSplitFileMigrationNeeded(Lcom/android/server/job/JobStore;)Z
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmUseSplitFiles(Lcom/android/server/job/JobStore;)Z
-PLcom/android/server/job/JobStore;->-$$Nest$fgetmWriteInProgress(Lcom/android/server/job/JobStore;)Z
-PLcom/android/server/job/JobStore;->-$$Nest$fputmCurrentJobSetSize(Lcom/android/server/job/JobStore;I)V
-PLcom/android/server/job/JobStore;->-$$Nest$fputmScheduledJob30MinHighWaterMark(Lcom/android/server/job/JobStore;I)V
-PLcom/android/server/job/JobStore;->-$$Nest$fputmWriteInProgress(Lcom/android/server/job/JobStore;Z)V
-PLcom/android/server/job/JobStore;->-$$Nest$fputmWriteScheduled(Lcom/android/server/job/JobStore;Z)V
-PLcom/android/server/job/JobStore;->-$$Nest$mcreateJobFile(Lcom/android/server/job/JobStore;Ljava/io/File;)Landroid/util/AtomicFile;
-PLcom/android/server/job/JobStore;->-$$Nest$mcreateJobFile(Lcom/android/server/job/JobStore;Ljava/lang/String;)Landroid/util/AtomicFile;
-PLcom/android/server/job/JobStore;->-$$Nest$sfgetDEBUG()Z
-PLcom/android/server/job/JobStore;->-$$Nest$sfgetSPLIT_FILE_PATTERN()Ljava/util/regex/Pattern;
-PLcom/android/server/job/JobStore;->-$$Nest$sfgetsScheduledJob30MinHighWaterMarkLogger()Lcom/android/modules/expresslog/Histogram;
-PLcom/android/server/job/JobStore;->-$$Nest$smconvertRtcBoundsToElapsed(Landroid/util/Pair;J)Landroid/util/Pair;
-PLcom/android/server/job/JobStore;->-$$Nest$smisSyncJob(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->buildConstraintsFromXml(Landroid/app/job/JobInfo$Builder;Lcom/android/modules/utils/TypedXmlPullParser;)V
+PLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->readJobMapImpl(JLjava/io/InputStream;Z)Ljava/util/List;
+PLcom/android/server/job/JobStore$ReadJobMapFromDiskRunnable;->run()V
 PLcom/android/server/job/JobStore;-><clinit>()V
-PLcom/android/server/job/JobStore;-><init>(Landroid/content/Context;Ljava/lang/Object;Ljava/io/File;)V
-HPLcom/android/server/job/JobStore;->add(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/JobStore;->containsJob(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/JobStore;->convertRtcBoundsToElapsed(Landroid/util/Pair;J)Landroid/util/Pair;
-HPLcom/android/server/job/JobStore;->countJobsForUid(I)I
-PLcom/android/server/job/JobStore;->createJobFile(Ljava/io/File;)Landroid/util/AtomicFile;
-PLcom/android/server/job/JobStore;->createJobFile(Ljava/lang/String;)Landroid/util/AtomicFile;
-HPLcom/android/server/job/JobStore;->forEachJob(Ljava/util/function/Consumer;)V
+PLcom/android/server/job/JobStore;-><init>(Ljava/lang/Object;Ljava/io/File;)V
+HPLcom/android/server/job/JobStore;->containsJob(Lcom/android/server/job/controllers/JobStatus;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/job/JobStore;->convertRtcBoundsToElapsed(Landroid/util/Pair;J)Landroid/util/Pair;
+HPLcom/android/server/job/JobStore;->countJobsForUid(I)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/job/JobStore;->forEachJob(Ljava/util/function/Consumer;)V
 PLcom/android/server/job/JobStore;->forEachJob(Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V
-HPLcom/android/server/job/JobStore;->forEachJobForSourceUid(ILjava/util/function/Consumer;)V
-PLcom/android/server/job/JobStore;->get(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/job/JobStore;
-HPLcom/android/server/job/JobStore;->getJobByUidAndJobId(ILjava/lang/String;I)Lcom/android/server/job/controllers/JobStatus;
-HPLcom/android/server/job/JobStore;->getJobsBySourceUid(I)Landroid/util/ArraySet;
+HPLcom/android/server/job/JobStore;->forEachJobForSourceUid(ILjava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/function/Consumer;Lcom/android/server/job/JobSchedulerService$DeferredJobCounter;,Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;,Lcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleUpdateFunctor;,Lcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;
 HPLcom/android/server/job/JobStore;->getJobsByUid(I)Landroid/util/ArraySet;
-PLcom/android/server/job/JobStore;->getJobsByUid(ILjava/util/Set;)V
 PLcom/android/server/job/JobStore;->getPersistStats()Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;
-PLcom/android/server/job/JobStore;->initAsync(Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/job/JobStore;->intArrayToString([I)Ljava/lang/String;
-PLcom/android/server/job/JobStore;->isSyncJob(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/JobStore;->jobTimesInflatedValid()Z
-HPLcom/android/server/job/JobStore;->maybeUpdateHighWaterMark()V
+HPLcom/android/server/job/JobStore;->intArrayToString([I)Ljava/lang/String;
 PLcom/android/server/job/JobStore;->maybeWriteStatusToDiskAsync()V
-HPLcom/android/server/job/JobStore;->remove(Lcom/android/server/job/controllers/JobStatus;Z)Z
 PLcom/android/server/job/JobStore;->removeJobsOfUnlistedUsers([I)V
 PLcom/android/server/job/JobStore;->stringToIntArray(Ljava/lang/String;)[I
 PLcom/android/server/job/JobStore;->touchJob(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/PendingJobQueue$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue$AdjustedJobStatus;-><init>()V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue$AdjustedJobStatus;-><init>(Lcom/android/server/job/PendingJobQueue$AppJobQueue$AdjustedJobStatus-IA;)V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue$AdjustedJobStatus;->clear()V
+PLcom/android/server/job/PendingJobQueue$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/job/PendingJobQueue$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
 PLcom/android/server/job/PendingJobQueue$AppJobQueue;-><clinit>()V
 PLcom/android/server/job/PendingJobQueue$AppJobQueue;-><init>()V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue;-><init>(Lcom/android/server/job/PendingJobQueue$AppJobQueue-IA;)V
-HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->add(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue;->addAll(Ljava/util/List;)V
-HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->clear()V
 HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->indexOf(Lcom/android/server/job/controllers/JobStatus;)I
-HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->next()Lcom/android/server/job/controllers/JobStatus;
-HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->peekNextTimestamp()J
-HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->remove(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/PendingJobQueue$AppJobQueue;->resetIterator(J)V
-PLcom/android/server/job/PendingJobQueue$AppJobQueue;->size()I
+HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->peekNextOverrideState()I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->peekNextTimestamp()J+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/job/PendingJobQueue;-><init>()V
 HPLcom/android/server/job/PendingJobQueue;->add(Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/PendingJobQueue;->addAll(Landroid/util/ArraySet;)V
-PLcom/android/server/job/PendingJobQueue;->clear()V
-HPLcom/android/server/job/PendingJobQueue;->contains(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/PendingJobQueue;->getAppJobQueue(IZ)Lcom/android/server/job/PendingJobQueue$AppJobQueue;
-HPLcom/android/server/job/PendingJobQueue;->next()Lcom/android/server/job/controllers/JobStatus;
-HPLcom/android/server/job/PendingJobQueue;->remove(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/PendingJobQueue;->contains(Lcom/android/server/job/controllers/JobStatus;)Z
+HPLcom/android/server/job/PendingJobQueue;->getAppJobQueue(IZ)Lcom/android/server/job/PendingJobQueue$AppJobQueue;+]Landroid/util/Pools$SimplePool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/job/PendingJobQueue;->next()Lcom/android/server/job/controllers/JobStatus;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;
+HPLcom/android/server/job/PendingJobQueue;->remove(Lcom/android/server/job/controllers/JobStatus;)Z+]Landroid/util/Pools$SimplePool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;
 PLcom/android/server/job/PendingJobQueue;->resetIterator()V
-PLcom/android/server/job/PendingJobQueue;->size()I
+PLcom/android/server/job/controllers/BackgroundJobsController$$ExternalSyntheticLambda0;-><init>(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/BackgroundJobsController$$ExternalSyntheticLambda0;->accept(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/job/controllers/BackgroundJobsController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;Ljava/lang/Object;I)V
+PLcom/android/server/job/controllers/BackgroundJobsController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/controllers/BackgroundJobsController$1;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;)V
 PLcom/android/server/job/controllers/BackgroundJobsController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/job/controllers/BackgroundJobsController$2;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;)V
-HPLcom/android/server/job/controllers/BackgroundJobsController$2;->updateAllJobs()V
-HPLcom/android/server/job/controllers/BackgroundJobsController$2;->updateJobsForUid(IZ)V
+PLcom/android/server/job/controllers/BackgroundJobsController$2;->updateAllJobs()V
+PLcom/android/server/job/controllers/BackgroundJobsController$2;->updateJobsForUid(IZ)V
 PLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;)V
-PLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor-IA;)V
-HPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->prepare(I)V
-PLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$fgetmPackageStoppedState(Lcom/android/server/job/controllers/BackgroundJobsController;)Landroid/util/SparseArrayMap;
-HPLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$mupdateAllJobRestrictionsLocked(Lcom/android/server/job/controllers/BackgroundJobsController;)V
-HPLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$mupdateJobRestrictionsForUidLocked(Lcom/android/server/job/controllers/BackgroundJobsController;IZ)V
-PLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$mupdateJobRestrictionsLocked(Lcom/android/server/job/controllers/BackgroundJobsController;II)V
-PLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/job/controllers/BackgroundJobsController;-><clinit>()V
 PLcom/android/server/job/controllers/BackgroundJobsController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/controllers/BackgroundJobsController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
 HPLcom/android/server/job/controllers/BackgroundJobsController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/BackgroundJobsController;->isPackageStoppedLocked(Ljava/lang/String;I)Z
+HPLcom/android/server/job/controllers/BackgroundJobsController;->isPackageStoppedLocked(ILjava/lang/String;)Z+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
 HPLcom/android/server/job/controllers/BackgroundJobsController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/BackgroundJobsController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/BackgroundJobsController;->startTrackingLocked()V
-HPLcom/android/server/job/controllers/BackgroundJobsController;->updateAllJobRestrictionsLocked()V
-HPLcom/android/server/job/controllers/BackgroundJobsController;->updateJobRestrictionsForUidLocked(IZ)V
 HPLcom/android/server/job/controllers/BackgroundJobsController;->updateJobRestrictionsLocked(II)V
-HPLcom/android/server/job/controllers/BackgroundJobsController;->updateSingleJobRestrictionLocked(Lcom/android/server/job/controllers/JobStatus;JI)Z
+HPLcom/android/server/job/controllers/BackgroundJobsController;->updateSingleJobRestrictionLocked(Lcom/android/server/job/controllers/JobStatus;JI)Z+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+PLcom/android/server/job/controllers/BatteryController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/BatteryController;)V
+PLcom/android/server/job/controllers/BatteryController$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/job/controllers/BatteryController;-><clinit>()V
 PLcom/android/server/job/controllers/BatteryController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/FlexibilityController;)V
-HPLcom/android/server/job/controllers/BatteryController;->hasTopExemptionLocked(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/controllers/BatteryController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
 HPLcom/android/server/job/controllers/BatteryController;->maybeReportNewChargingStateLocked()V
 HPLcom/android/server/job/controllers/BatteryController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/controllers/BatteryController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/controllers/BatteryController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/BatteryController;->onBatteryStateChangedLocked()V
 PLcom/android/server/job/controllers/BatteryController;->onUidBiasChangedLocked(III)V
 PLcom/android/server/job/controllers/BatteryController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda0;-><init>(ILjava/lang/String;)V
+PLcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 PLcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda1;-><init>(I)V
 PLcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
 PLcom/android/server/job/controllers/ComponentController$1;-><init>(Lcom/android/server/job/controllers/ComponentController;)V
 PLcom/android/server/job/controllers/ComponentController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/job/controllers/ComponentController$ComponentStateUpdateFunctor;->-$$Nest$mreset(Lcom/android/server/job/controllers/ComponentController$ComponentStateUpdateFunctor;)V
 PLcom/android/server/job/controllers/ComponentController$ComponentStateUpdateFunctor;-><init>(Lcom/android/server/job/controllers/ComponentController;)V
-PLcom/android/server/job/controllers/ComponentController$ComponentStateUpdateFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ComponentController$ComponentStateUpdateFunctor;->accept(Ljava/lang/Object;)V
-PLcom/android/server/job/controllers/ComponentController$ComponentStateUpdateFunctor;->reset()V
-PLcom/android/server/job/controllers/ComponentController;->$r8$lambda$M1UwXxQ2lQGkgK0HrVMJlW9dX54(ILcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/ComponentController;->-$$Nest$mupdateComponentEnabledStateLocked(Lcom/android/server/job/controllers/ComponentController;Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/ComponentController;->-$$Nest$mupdateComponentStateForUser(Lcom/android/server/job/controllers/ComponentController;I)V
+PLcom/android/server/job/controllers/ComponentController;->-$$Nest$mupdateComponentStateForPackage(Lcom/android/server/job/controllers/ComponentController;ILjava/lang/String;)V
 PLcom/android/server/job/controllers/ComponentController;-><clinit>()V
 PLcom/android/server/job/controllers/ComponentController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/controllers/ComponentController;->getServiceProcessLocked(Lcom/android/server/job/controllers/JobStatus;)Ljava/lang/String;
-PLcom/android/server/job/controllers/ComponentController;->lambda$updateComponentStateForUser$1(ILcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/ComponentController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ComponentController;->clearComponentsForPackageLocked(ILjava/lang/String;)V
+PLcom/android/server/job/controllers/ComponentController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+PLcom/android/server/job/controllers/ComponentController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ComponentController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ComponentController;->startTrackingLocked()V
 HPLcom/android/server/job/controllers/ComponentController;->updateComponentEnabledStateLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/ComponentController;->updateComponentStateForUser(I)V
 PLcom/android/server/job/controllers/ComponentController;->updateComponentStatesLocked(Ljava/util/function/Predicate;)V
-PLcom/android/server/job/controllers/ConnectivityController$1;-><init>(Lcom/android/server/job/controllers/ConnectivityController;)V
-PLcom/android/server/job/controllers/ConnectivityController$2;-><init>(Lcom/android/server/job/controllers/ConnectivityController;)V
-PLcom/android/server/job/controllers/ConnectivityController$3;-><init>(Lcom/android/server/job/controllers/ConnectivityController;)V
+PLcom/android/server/job/controllers/ConnectivityController$2;-><init>(Lcom/android/server/job/controllers/ConnectivityController;I)V
+PLcom/android/server/job/controllers/ConnectivityController$2;->maybeRegisterSignalStrengthCallbackLocked(Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/job/controllers/ConnectivityController$2;->maybeUnregisterSignalStrengthCallbackLocked(Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/job/controllers/ConnectivityController$2;->maybeUpdateFlexConstraintLocked(Lcom/android/server/job/controllers/ConnectivityController$CachedNetworkMetadata;)V
+PLcom/android/server/job/controllers/ConnectivityController$2;->onAvailable(Landroid/net/Network;)V
+PLcom/android/server/job/controllers/ConnectivityController$2;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/job/controllers/ConnectivityController$2;->onLost(Landroid/net/Network;)V
 PLcom/android/server/job/controllers/ConnectivityController$4;-><init>(Lcom/android/server/job/controllers/ConnectivityController;)V
-PLcom/android/server/job/controllers/ConnectivityController$CcConfig;->-$$Nest$fgetmFlexIsEnabled(Lcom/android/server/job/controllers/ConnectivityController$CcConfig;)Z
-PLcom/android/server/job/controllers/ConnectivityController$CcConfig;->-$$Nest$fgetmShouldReprocessNetworkCapabilities(Lcom/android/server/job/controllers/ConnectivityController$CcConfig;)Z
-PLcom/android/server/job/controllers/ConnectivityController$CcConfig;->-$$Nest$fputmFlexIsEnabled(Lcom/android/server/job/controllers/ConnectivityController$CcConfig;Z)V
-PLcom/android/server/job/controllers/ConnectivityController$CcConfig;->-$$Nest$fputmShouldReprocessNetworkCapabilities(Lcom/android/server/job/controllers/ConnectivityController$CcConfig;Z)V
-PLcom/android/server/job/controllers/ConnectivityController$CcConfig;-><init>(Lcom/android/server/job/controllers/ConnectivityController;)V
+PLcom/android/server/job/controllers/ConnectivityController$4;->onRestrictBackgroundChanged(Z)V
+PLcom/android/server/job/controllers/ConnectivityController$CachedNetworkMetadata;->toString()Ljava/lang/String;
 PLcom/android/server/job/controllers/ConnectivityController$CcHandler;-><init>(Lcom/android/server/job/controllers/ConnectivityController;Landroid/os/Looper;)V
-HPLcom/android/server/job/controllers/ConnectivityController$CcHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->-$$Nest$fgetmBlockedReasons(Lcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;)I
-PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->-$$Nest$fgetmDefaultNetwork(Lcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;)Landroid/net/Network;
-PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->-$$Nest$msetUid(Lcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;I)V
+PLcom/android/server/job/controllers/ConnectivityController$CcHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;-><init>(Lcom/android/server/job/controllers/ConnectivityController;)V
-PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;-><init>(Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback-IA;)V
-PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->setUid(I)V
-HPLcom/android/server/job/controllers/ConnectivityController$UidStats;-><init>(I)V
-PLcom/android/server/job/controllers/ConnectivityController$UidStats;-><init>(ILcom/android/server/job/controllers/ConnectivityController$UidStats-IA;)V
+PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->onAvailable(Landroid/net/Network;)V
+HPLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->onBlockedStatusChanged(Landroid/net/Network;I)V
+PLcom/android/server/job/controllers/ConnectivityController$UidDefaultNetworkCallback;->onLost(Landroid/net/Network;)V
+PLcom/android/server/job/controllers/ConnectivityController$UidStats;-><init>(I)V
 PLcom/android/server/job/controllers/ConnectivityController;->-$$Nest$mmaybeAdjustRegisteredCallbacksLocked(Lcom/android/server/job/controllers/ConnectivityController;)V
 PLcom/android/server/job/controllers/ConnectivityController;-><clinit>()V
-HPLcom/android/server/job/controllers/ConnectivityController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/FlexibilityController;)V
-HPLcom/android/server/job/controllers/ConnectivityController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/ConnectivityController;->getNetworkLocked(Lcom/android/server/job/controllers/JobStatus;)Landroid/net/Network;
-PLcom/android/server/job/controllers/ConnectivityController;->getNetworkMetadata(Landroid/net/Network;)Lcom/android/server/job/controllers/ConnectivityController$CachedNetworkMetadata;
-HPLcom/android/server/job/controllers/ConnectivityController;->getUidStats(ILjava/lang/String;Z)Lcom/android/server/job/controllers/ConnectivityController$UidStats;
+PLcom/android/server/job/controllers/ConnectivityController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/FlexibilityController;)V
+PLcom/android/server/job/controllers/ConnectivityController;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/ConnectivityController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+HPLcom/android/server/job/controllers/ConnectivityController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+HPLcom/android/server/job/controllers/ConnectivityController;->getNetworkLocked(Lcom/android/server/job/controllers/JobStatus;)Landroid/net/Network;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/job/controllers/ConnectivityController;->getNetworkMetadata(Landroid/net/Network;)Lcom/android/server/job/controllers/ConnectivityController$CachedNetworkMetadata;
+HPLcom/android/server/job/controllers/ConnectivityController;->getUidStats(ILjava/lang/String;Z)Lcom/android/server/job/controllers/ConnectivityController$UidStats;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/job/controllers/ConnectivityController;->isNetworkAvailable(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/ConnectivityController;->isSatisfied(Lcom/android/server/job/controllers/JobStatus;Landroid/net/Network;Landroid/net/NetworkCapabilities;Lcom/android/server/job/JobSchedulerService$Constants;)Z
-HPLcom/android/server/job/controllers/ConnectivityController;->isStandbyExceptionRequestedLocked(I)Z
-HPLcom/android/server/job/controllers/ConnectivityController;->maybeAdjustRegisteredCallbacksLocked()V
-HPLcom/android/server/job/controllers/ConnectivityController;->maybeRegisterDefaultNetworkCallbackLocked(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/ConnectivityController;->maybeRevokeStandbyExceptionLocked(Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/controllers/ConnectivityController;->isSatisfied(Lcom/android/server/job/controllers/JobStatus;Landroid/net/Network;Landroid/net/NetworkCapabilities;Lcom/android/server/job/JobSchedulerService$Constants;)Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/net/NetworkPolicyManager;Landroid/net/NetworkPolicyManager;]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+HPLcom/android/server/job/controllers/ConnectivityController;->isStandbyExceptionRequestedLocked(I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/job/controllers/ConnectivityController;->maybeRevokeStandbyExceptionLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService;
 HPLcom/android/server/job/controllers/ConnectivityController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/ConnectivityController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ConnectivityController;->onBatteryStateChangedLocked()V
 PLcom/android/server/job/controllers/ConnectivityController;->onConstantsUpdatedLocked()V
-HPLcom/android/server/job/controllers/ConnectivityController;->onUidBiasChangedLocked(III)V
+PLcom/android/server/job/controllers/ConnectivityController;->onUidBiasChangedLocked(III)V
 PLcom/android/server/job/controllers/ConnectivityController;->postAdjustCallbacks()V
-PLcom/android/server/job/controllers/ConnectivityController;->postAdjustCallbacks(J)V
-HPLcom/android/server/job/controllers/ConnectivityController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ConnectivityController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ConnectivityController;->prepareForUpdatedConstantsLocked()V
-HPLcom/android/server/job/controllers/ConnectivityController;->registerPendingUidCallbacksLocked()V
+PLcom/android/server/job/controllers/ConnectivityController;->reevaluateStateLocked(I)V
+PLcom/android/server/job/controllers/ConnectivityController;->registerPendingUidCallbacksLocked()V
+PLcom/android/server/job/controllers/ConnectivityController;->requestStandbyExceptionLocked(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ConnectivityController;->startTrackingLocked()V
-HPLcom/android/server/job/controllers/ConnectivityController;->updateConstraintsSatisfied(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/controllers/ConnectivityController;->updateAllTrackedJobsLocked(Z)V
+HPLcom/android/server/job/controllers/ConnectivityController;->updateConstraintsSatisfied(Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/ConnectivityController;->updateConstraintsSatisfied(Lcom/android/server/job/controllers/JobStatus;JLandroid/net/Network;Lcom/android/server/job/controllers/ConnectivityController$CachedNetworkMetadata;)Z
-HPLcom/android/server/job/controllers/ContentObserverController$JobInstance;-><init>(Lcom/android/server/job/controllers/ContentObserverController;Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/controllers/ConnectivityController;->updateTrackedJobsLocked(Landroid/net/Network;I)V
+HPLcom/android/server/job/controllers/ConnectivityController;->updateTrackedJobsLocked(Landroid/util/ArraySet;Landroid/net/Network;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Object;Landroid/net/Network;
+PLcom/android/server/job/controllers/ConnectivityController;->updateTransportAffinitySatisfaction(Lcom/android/server/job/controllers/ConnectivityController$CachedNetworkMetadata;)Z
+PLcom/android/server/job/controllers/ContentObserverController$JobInstance;-><init>(Lcom/android/server/job/controllers/ContentObserverController;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ContentObserverController$JobInstance;->detachLocked()V
+PLcom/android/server/job/controllers/ContentObserverController$JobInstance;->scheduleLocked()V
 PLcom/android/server/job/controllers/ContentObserverController$ObserverInstance;-><init>(Lcom/android/server/job/controllers/ContentObserverController;Landroid/os/Handler;Landroid/app/job/JobInfo$TriggerContentUri;I)V
+PLcom/android/server/job/controllers/ContentObserverController$ObserverInstance;->onChange(ZLandroid/net/Uri;)V
 PLcom/android/server/job/controllers/ContentObserverController$TriggerRunnable;-><init>(Lcom/android/server/job/controllers/ContentObserverController$JobInstance;)V
-PLcom/android/server/job/controllers/ContentObserverController;->-$$Nest$sfgetDEBUG()Z
+PLcom/android/server/job/controllers/ContentObserverController$TriggerRunnable;->run()V
 PLcom/android/server/job/controllers/ContentObserverController;-><clinit>()V
 PLcom/android/server/job/controllers/ContentObserverController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/controllers/ContentObserverController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ContentObserverController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+PLcom/android/server/job/controllers/ContentObserverController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ContentObserverController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/ContentObserverController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/ContentObserverController;->rescheduleForFailureLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/DeviceIdleJobsController;)V
+PLcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/controllers/DeviceIdleJobsController;Ljava/lang/Object;I)V
+PLcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/controllers/DeviceIdleJobsController$1;-><init>(Lcom/android/server/job/controllers/DeviceIdleJobsController;)V
 HPLcom/android/server/job/controllers/DeviceIdleJobsController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleJobsDelayHandler;-><init>(Lcom/android/server/job/controllers/DeviceIdleJobsController;Landroid/os/Looper;)V
+PLcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleJobsDelayHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleUpdateFunctor;-><init>(Lcom/android/server/job/controllers/DeviceIdleJobsController;)V
-HPLcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleUpdateFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleUpdateFunctor;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleUpdateFunctor;->prepare()V
-PLcom/android/server/job/controllers/DeviceIdleJobsController;->-$$Nest$fgetmAllowInIdleJobs(Lcom/android/server/job/controllers/DeviceIdleJobsController;)Landroid/util/ArraySet;
-PLcom/android/server/job/controllers/DeviceIdleJobsController;->-$$Nest$fgetmLocalDeviceIdleController(Lcom/android/server/job/controllers/DeviceIdleJobsController;)Lcom/android/server/DeviceIdleInternal;
-HPLcom/android/server/job/controllers/DeviceIdleJobsController;->-$$Nest$fputmPowerSaveTempWhitelistAppIds(Lcom/android/server/job/controllers/DeviceIdleJobsController;[I)V
-PLcom/android/server/job/controllers/DeviceIdleJobsController;->-$$Nest$mupdateTaskStateLocked(Lcom/android/server/job/controllers/DeviceIdleJobsController;Lcom/android/server/job/controllers/JobStatus;J)Z
-HPLcom/android/server/job/controllers/DeviceIdleJobsController;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/job/controllers/DeviceIdleJobsController;-><clinit>()V
 PLcom/android/server/job/controllers/DeviceIdleJobsController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/controllers/DeviceIdleJobsController;->isTempWhitelistedLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/DeviceIdleJobsController;->isWhitelistedLocked(Lcom/android/server/job/controllers/JobStatus;)Z
+PLcom/android/server/job/controllers/DeviceIdleJobsController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
 HPLcom/android/server/job/controllers/DeviceIdleJobsController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/DeviceIdleJobsController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/DeviceIdleJobsController;->setUidActiveLocked(IZ)V
 HPLcom/android/server/job/controllers/DeviceIdleJobsController;->updateTaskStateLocked(Lcom/android/server/job/controllers/JobStatus;J)Z
-PLcom/android/server/job/controllers/FlexibilityController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/FlexibilityController;)V
-PLcom/android/server/job/controllers/FlexibilityController$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/job/controllers/FlexibilityController$$ExternalSyntheticLambda0;-><init>(Landroid/util/IndentingPrintWriter;J)V
+PLcom/android/server/job/controllers/FlexibilityController$$ExternalSyntheticLambda0;->accept(ILjava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/job/controllers/FlexibilityController$1;-><init>(Lcom/android/server/job/controllers/FlexibilityController;)V
-PLcom/android/server/job/controllers/FlexibilityController$2;-><init>(Lcom/android/server/job/controllers/FlexibilityController;)V
-PLcom/android/server/job/controllers/FlexibilityController$FcConfig;->-$$Nest$fgetmShouldReevaluateConstraints(Lcom/android/server/job/controllers/FlexibilityController$FcConfig;)Z
-PLcom/android/server/job/controllers/FlexibilityController$FcConfig;->-$$Nest$fputmShouldReevaluateConstraints(Lcom/android/server/job/controllers/FlexibilityController$FcConfig;Z)V
 PLcom/android/server/job/controllers/FlexibilityController$FcConfig;-><clinit>()V
 PLcom/android/server/job/controllers/FlexibilityController$FcConfig;-><init>(Lcom/android/server/job/controllers/FlexibilityController;)V
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/FlexibilityController$FcHandler;)V
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/controllers/FlexibilityController$FcHandler;JLandroid/util/ArraySet;)V
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler;->$r8$lambda$5CvPVqmgOUfjOuy9DIWNcoGKJmo(Lcom/android/server/job/controllers/FlexibilityController$FcHandler;Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler;->$r8$lambda$yWWuwRoUvOTH-mThpIBxsAo7feI(Lcom/android/server/job/controllers/FlexibilityController$FcHandler;JLandroid/util/ArraySet;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/FlexibilityController$FcHandler;-><init>(Lcom/android/server/job/controllers/FlexibilityController;Landroid/os/Looper;)V
 PLcom/android/server/job/controllers/FlexibilityController$FcHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler;->lambda$handleMessage$0(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/FlexibilityController$FcHandler;->lambda$handleMessage$1(JLandroid/util/ArraySet;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue;-><init>(Lcom/android/server/job/controllers/FlexibilityController;Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue;-><init>(Lcom/android/server/job/controllers/FlexibilityController;Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue-IA;)V
+PLcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue;->processExpiredAlarms(Landroid/util/ArraySet;)V
 HPLcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue;->scheduleDropNumConstraintsAlarm(Lcom/android/server/job/controllers/JobStatus;J)V
 PLcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker;-><init>(Lcom/android/server/job/controllers/FlexibilityController;I)V
 HPLcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker;->add(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker;->remove(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/controllers/FlexibilityController$JobScoreTracker$JobScoreBucket;-><init>()V
-PLcom/android/server/job/controllers/FlexibilityController$JobScoreTracker$JobScoreBucket;-><init>(Lcom/android/server/job/controllers/FlexibilityController$JobScoreTracker$JobScoreBucket-IA;)V
+PLcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker;->calculateNumDroppedConstraints(Lcom/android/server/job/controllers/JobStatus;J)V
 PLcom/android/server/job/controllers/FlexibilityController$JobScoreTracker;-><init>()V
-PLcom/android/server/job/controllers/FlexibilityController$JobScoreTracker;-><init>(Lcom/android/server/job/controllers/FlexibilityController$JobScoreTracker-IA;)V
 HPLcom/android/server/job/controllers/FlexibilityController$JobScoreTracker;->addScore(IJ)V
-HPLcom/android/server/job/controllers/FlexibilityController$JobScoreTracker;->getScore(J)I
-PLcom/android/server/job/controllers/FlexibilityController;->$r8$lambda$fmLZ0Eyb4DjWbt0tDV_WmGlhcUg(Lcom/android/server/job/controllers/FlexibilityController;)V
-HPLcom/android/server/job/controllers/FlexibilityController;->-$$Nest$fgetmDeadlineProximityLimitMs(Lcom/android/server/job/controllers/FlexibilityController;)J
-PLcom/android/server/job/controllers/FlexibilityController;->-$$Nest$fgetmMinTimeBetweenFlexibilityAlarmsMs(Lcom/android/server/job/controllers/FlexibilityController;)J
-PLcom/android/server/job/controllers/FlexibilityController;->-$$Nest$fgetmPackagesToCheck(Lcom/android/server/job/controllers/FlexibilityController;)Landroid/util/ArraySet;
-HPLcom/android/server/job/controllers/FlexibilityController;->-$$Nest$sfgetDEBUG()Z
+PLcom/android/server/job/controllers/FlexibilityController$SpecialAppTracker$1;-><init>(Lcom/android/server/job/controllers/FlexibilityController$SpecialAppTracker;)V
+PLcom/android/server/job/controllers/FlexibilityController$SpecialAppTracker;-><init>(Lcom/android/server/job/controllers/FlexibilityController;)V
 PLcom/android/server/job/controllers/FlexibilityController;-><clinit>()V
-HPLcom/android/server/job/controllers/FlexibilityController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/PrefetchController;)V
+PLcom/android/server/job/controllers/FlexibilityController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/PrefetchController;)V
+PLcom/android/server/job/controllers/FlexibilityController;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/FlexibilityController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+PLcom/android/server/job/controllers/FlexibilityController;->getCurPercentOfLifecycleLocked(Lcom/android/server/job/controllers/JobStatus;J)I
 HPLcom/android/server/job/controllers/FlexibilityController;->getLifeCycleBeginningElapsedLocked(Lcom/android/server/job/controllers/JobStatus;)J
 HPLcom/android/server/job/controllers/FlexibilityController;->getLifeCycleEndElapsedLocked(Lcom/android/server/job/controllers/JobStatus;JJ)J
 HPLcom/android/server/job/controllers/FlexibilityController;->getNextConstraintDropTimeElapsedLocked(Lcom/android/server/job/controllers/JobStatus;JJ)J
 HPLcom/android/server/job/controllers/FlexibilityController;->getPercentsToDropConstraints(I)[I
-HPLcom/android/server/job/controllers/FlexibilityController;->getRelevantAppliedConstraintsLocked(Lcom/android/server/job/controllers/JobStatus;)I
+PLcom/android/server/job/controllers/FlexibilityController;->getRelevantAppliedConstraintsLocked(Lcom/android/server/job/controllers/JobStatus;)I
 HPLcom/android/server/job/controllers/FlexibilityController;->getScoreLocked(ILjava/lang/String;J)I
-PLcom/android/server/job/controllers/FlexibilityController;->isEnabled()Z
 HPLcom/android/server/job/controllers/FlexibilityController;->isFlexibilitySatisfiedLocked(Lcom/android/server/job/controllers/JobStatus;)Z
 HPLcom/android/server/job/controllers/FlexibilityController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/FlexibilityController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/FlexibilityController;->onConstantsUpdatedLocked()V
 PLcom/android/server/job/controllers/FlexibilityController;->onSystemServicesReady()V
-HPLcom/android/server/job/controllers/FlexibilityController;->onUidBiasChangedLocked(III)V
+HPLcom/android/server/job/controllers/FlexibilityController;->onUidBiasChangedLocked(III)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
 HPLcom/android/server/job/controllers/FlexibilityController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/FlexibilityController;->prepareForUpdatedConstantsLocked()V
-PLcom/android/server/job/controllers/FlexibilityController;->setConstraintSatisfied(IZJ)V
+PLcom/android/server/job/controllers/FlexibilityController;->setConstraintSatisfied(IJZ)V
 PLcom/android/server/job/controllers/FlexibilityController;->startTrackingLocked()V
-PLcom/android/server/job/controllers/FlexibilityController;->updatePowerAllowlistCache()V
 PLcom/android/server/job/controllers/IdleController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/FlexibilityController;)V
-PLcom/android/server/job/controllers/IdleController;->initIdleStateTracker()V
-HPLcom/android/server/job/controllers/IdleController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/IdleController;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/IdleController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+PLcom/android/server/job/controllers/IdleController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/IdleController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/IdleController;->onBatteryStateChangedLocked()V
+PLcom/android/server/job/controllers/IdleController;->reportNewIdleState(Z)V
 PLcom/android/server/job/controllers/IdleController;->startTrackingLocked()V
 PLcom/android/server/job/controllers/JobStatus;-><clinit>()V
-HPLcom/android/server/job/controllers/JobStatus;-><init>(Landroid/app/job/JobInfo;ILjava/lang/String;IILjava/lang/String;Ljava/lang/String;IIJJJJJII)V
-PLcom/android/server/job/controllers/JobStatus;-><init>(Landroid/app/job/JobInfo;ILjava/lang/String;IILjava/lang/String;Ljava/lang/String;JJJJJLandroid/util/Pair;II)V
-HPLcom/android/server/job/controllers/JobStatus;-><init>(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/controllers/JobStatus;-><init>(Lcom/android/server/job/controllers/JobStatus;JJIIJJJ)V
+HPLcom/android/server/job/controllers/JobStatus;-><init>(Landroid/app/job/JobInfo;ILjava/lang/String;IILjava/lang/String;Ljava/lang/String;IIIJJJJJII)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/net/NetworkRequest$Builder;Landroid/net/NetworkRequest$Builder;]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate;
+PLcom/android/server/job/controllers/JobStatus;-><init>(Lcom/android/server/job/controllers/JobStatus;JJIIIJJJ)V
 HPLcom/android/server/job/controllers/JobStatus;->addDynamicConstraints(I)V
-PLcom/android/server/job/controllers/JobStatus;->addInternalFlags(I)V
-HPLcom/android/server/job/controllers/JobStatus;->canApplyTransportAffinities()Z
-HPLcom/android/server/job/controllers/JobStatus;->canRunInBatterySaver()Z
-HPLcom/android/server/job/controllers/JobStatus;->canRunInDoze()Z
-PLcom/android/server/job/controllers/JobStatus;->clearPersistedUtcTimes()V
+PLcom/android/server/job/controllers/JobStatus;->applyBasicPiiFilters(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/job/controllers/JobStatus;->bucketName(I)Ljava/lang/String;
+HPLcom/android/server/job/controllers/JobStatus;->canRunInDoze()Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
 HPLcom/android/server/job/controllers/JobStatus;->clearTrackingController(I)Z
-PLcom/android/server/job/controllers/JobStatus;->completeWorkLocked(I)Z
+HPLcom/android/server/job/controllers/JobStatus;->constraintsToPendingJobReasons(I)Ljava/util/ArrayList;
 HPLcom/android/server/job/controllers/JobStatus;->createFromJobInfo(Landroid/app/job/JobInfo;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/job/controllers/JobStatus;
-HPLcom/android/server/job/controllers/JobStatus;->dequeueWorkLocked()Landroid/app/job/JobWorkItem;
-HPLcom/android/server/job/controllers/JobStatus;->enqueueWorkLocked(Landroid/app/job/JobWorkItem;)V
-PLcom/android/server/job/controllers/JobStatus;->generateLoggingId(Ljava/lang/String;I)J
-HPLcom/android/server/job/controllers/JobStatus;->generateNamespaceHash(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/job/controllers/JobStatus;->getAppTraceTag()Ljava/lang/String;
-PLcom/android/server/job/controllers/JobStatus;->getBatteryName()Ljava/lang/String;
-HPLcom/android/server/job/controllers/JobStatus;->getBias()I
-PLcom/android/server/job/controllers/JobStatus;->getCallingPackageName()Ljava/lang/String;
-PLcom/android/server/job/controllers/JobStatus;->getCumulativeExecutionTimeMs()J
-HPLcom/android/server/job/controllers/JobStatus;->getEarliestRunTime()J
-HPLcom/android/server/job/controllers/JobStatus;->getEffectivePriority()I
-HPLcom/android/server/job/controllers/JobStatus;->getEffectiveStandbyBucket()I
-HPLcom/android/server/job/controllers/JobStatus;->getEstimatedNetworkDownloadBytes()J
-HPLcom/android/server/job/controllers/JobStatus;->getEstimatedNetworkUploadBytes()J
-HPLcom/android/server/job/controllers/JobStatus;->getFilteredDebugTags()[Ljava/lang/String;
-HPLcom/android/server/job/controllers/JobStatus;->getFilteredTraceTag()Ljava/lang/String;
-PLcom/android/server/job/controllers/JobStatus;->getFirstForceBatchedTimeElapsed()J
-HPLcom/android/server/job/controllers/JobStatus;->getFlags()I
-HPLcom/android/server/job/controllers/JobStatus;->getInternalFlags()I
-PLcom/android/server/job/controllers/JobStatus;->getJob()Landroid/app/job/JobInfo;
-HPLcom/android/server/job/controllers/JobStatus;->getJobId()I
-PLcom/android/server/job/controllers/JobStatus;->getLastFailedRunTime()J
-PLcom/android/server/job/controllers/JobStatus;->getLastSuccessfulRunTime()J
-HPLcom/android/server/job/controllers/JobStatus;->getLatestRunTimeElapsed()J
-PLcom/android/server/job/controllers/JobStatus;->getLoggingJobId()J
-PLcom/android/server/job/controllers/JobStatus;->getNamespace()Ljava/lang/String;
-PLcom/android/server/job/controllers/JobStatus;->getNamespaceHash()Ljava/lang/String;
-PLcom/android/server/job/controllers/JobStatus;->getNumAppliedFlexibleConstraints()I
-HPLcom/android/server/job/controllers/JobStatus;->getNumDroppedFlexibleConstraints()I
-PLcom/android/server/job/controllers/JobStatus;->getNumFailures()I
-HPLcom/android/server/job/controllers/JobStatus;->getNumPreviousAttempts()I
-HPLcom/android/server/job/controllers/JobStatus;->getNumRequiredFlexibleConstraints()I
-PLcom/android/server/job/controllers/JobStatus;->getNumSystemStops()I
-PLcom/android/server/job/controllers/JobStatus;->getOriginalLatestRunTimeElapsed()J
-PLcom/android/server/job/controllers/JobStatus;->getPersistedUtcTimes()Landroid/util/Pair;
-PLcom/android/server/job/controllers/JobStatus;->getProtoConstraint(I)I
-HPLcom/android/server/job/controllers/JobStatus;->getServiceComponent()Landroid/content/ComponentName;
-HPLcom/android/server/job/controllers/JobStatus;->getSourcePackageName()Ljava/lang/String;
-HPLcom/android/server/job/controllers/JobStatus;->getSourceTag()Ljava/lang/String;
-HPLcom/android/server/job/controllers/JobStatus;->getSourceUid()I
-HPLcom/android/server/job/controllers/JobStatus;->getSourceUserId()I
-HPLcom/android/server/job/controllers/JobStatus;->getStandbyBucket()I
-HPLcom/android/server/job/controllers/JobStatus;->getTimeoutBlamePackageName()Ljava/lang/String;
+HPLcom/android/server/job/controllers/JobStatus;->dump(Landroid/util/IndentingPrintWriter;ZJ)V
+HPLcom/android/server/job/controllers/JobStatus;->dumpConstraints(ILjava/io/PrintWriter;)V
+PLcom/android/server/job/controllers/JobStatus;->enqueueWorkLocked(Landroid/app/job/JobWorkItem;)V
+HPLcom/android/server/job/controllers/JobStatus;->getEffectivePriority()I+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+HPLcom/android/server/job/controllers/JobStatus;->getEffectiveStandbyBucket()I+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Lcom/android/server/job/JobSchedulerInternal;Lcom/android/server/job/JobSchedulerService$LocalService;
+HPLcom/android/server/job/controllers/JobStatus;->getFilteredDebugTags()[Ljava/lang/String;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+HPLcom/android/server/job/controllers/JobStatus;->getFilteredTraceTag()Ljava/lang/String;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+PLcom/android/server/job/controllers/JobStatus;->getNumPreviousAttempts()I
+PLcom/android/server/job/controllers/JobStatus;->getNumRequiredFlexibleConstraints()I
+PLcom/android/server/job/controllers/JobStatus;->getSourceUid()I
+HPLcom/android/server/job/controllers/JobStatus;->getTimeoutBlamePackageName()Ljava/lang/String;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
 HPLcom/android/server/job/controllers/JobStatus;->getTimeoutBlameUserId()I
-HPLcom/android/server/job/controllers/JobStatus;->getUid()I
-HPLcom/android/server/job/controllers/JobStatus;->getUserId()I
+PLcom/android/server/job/controllers/JobStatus;->getTriggerContentMaxDelay()J
+PLcom/android/server/job/controllers/JobStatus;->getTriggerContentUpdateDelay()J
 HPLcom/android/server/job/controllers/JobStatus;->getWakelockTag()Ljava/lang/String;
-PLcom/android/server/job/controllers/JobStatus;->getWhenStandbyDeferred()J
-HPLcom/android/server/job/controllers/JobStatus;->getWorkCount()I
-HPLcom/android/server/job/controllers/JobStatus;->hasBatteryNotLowConstraint()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasChargingConstraint()Z
+HPLcom/android/server/job/controllers/JobStatus;->getWorkCount()I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/job/controllers/JobStatus;->hasConnectivityConstraint()Z
 HPLcom/android/server/job/controllers/JobStatus;->hasConstraint(I)Z
 HPLcom/android/server/job/controllers/JobStatus;->hasContentTriggerConstraint()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasDeadlineConstraint()Z
-PLcom/android/server/job/controllers/JobStatus;->hasExecutingWorkLocked()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasFlexibilityConstraint()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasIdleConstraint()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasPowerConstraint()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasStorageNotLowConstraint()Z
-HPLcom/android/server/job/controllers/JobStatus;->hasTimingDelayConstraint()Z
-PLcom/android/server/job/controllers/JobStatus;->incrementCumulativeExecutionTime(J)V
+PLcom/android/server/job/controllers/JobStatus;->hasFlexibilityConstraint()Z
 HPLcom/android/server/job/controllers/JobStatus;->isConstraintSatisfied(I)Z
 HPLcom/android/server/job/controllers/JobStatus;->isConstraintsSatisfied(I)Z
-HPLcom/android/server/job/controllers/JobStatus;->isPersisted()Z
-HPLcom/android/server/job/controllers/JobStatus;->isPreparedLocked()Z
-HPLcom/android/server/job/controllers/JobStatus;->isProxyJob()Z
-HPLcom/android/server/job/controllers/JobStatus;->isReady()Z
 HPLcom/android/server/job/controllers/JobStatus;->isReady(I)Z
-HPLcom/android/server/job/controllers/JobStatus;->isRequestedExpeditedJob()Z
+HPLcom/android/server/job/controllers/JobStatus;->isRequestedExpeditedJob()Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
 HPLcom/android/server/job/controllers/JobStatus;->isUserVisibleJob()Z
-HPLcom/android/server/job/controllers/JobStatus;->maybeAddForegroundExemption(Ljava/util/function/Predicate;)V
+HPLcom/android/server/job/controllers/JobStatus;->maybeAddForegroundExemption(Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda1;)V
 HPLcom/android/server/job/controllers/JobStatus;->prepareLocked()V
+PLcom/android/server/job/controllers/JobStatus;->printUniqueId(Ljava/io/PrintWriter;)V
 HPLcom/android/server/job/controllers/JobStatus;->readinessStatusWithConstraint(IZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setBackgroundNotRestrictedConstraintSatisfied(JZZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setBatteryNotLowConstraintSatisfied(JZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setChargingConstraintSatisfied(JZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setConnectivityConstraintSatisfied(JZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setConstraintSatisfied(IJZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setContentTriggerConstraintSatisfied(JZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setDeadlineConstraintSatisfied(JZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setDeviceNotDozingConstraintSatisfied(JZZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setExpeditedJobQuotaApproved(JZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setExpeditedJobTareApproved(JZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setFlexibilityConstraintSatisfied(JZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setIdleConstraintSatisfied(JZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setNumAppliedFlexibleConstraints(I)V
-HPLcom/android/server/job/controllers/JobStatus;->setQuotaConstraintSatisfied(JZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setStandbyBucket(I)V
-HPLcom/android/server/job/controllers/JobStatus;->setTareWealthConstraintSatisfied(JZ)Z
-PLcom/android/server/job/controllers/JobStatus;->setTimingDelayConstraintSatisfied(JZ)Z
-HPLcom/android/server/job/controllers/JobStatus;->setTrackingController(I)V
-PLcom/android/server/job/controllers/JobStatus;->setTransportAffinitiesSatisfied(Z)V
-HPLcom/android/server/job/controllers/JobStatus;->setUidActive(Z)Z
-HPLcom/android/server/job/controllers/JobStatus;->shouldBlameSourceForTimeout()Z
+HPLcom/android/server/job/controllers/JobStatus;->setConstraintSatisfied(IJZ)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList$SubList;,Ljava/util/ArrayList;
+PLcom/android/server/job/controllers/JobStatus;->setTrackingController(I)V
 HPLcom/android/server/job/controllers/JobStatus;->shouldTreatAsExpeditedJob()Z
-HPLcom/android/server/job/controllers/JobStatus;->shouldTreatAsUserInitiatedJob()Z
-HPLcom/android/server/job/controllers/JobStatus;->stopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/controllers/JobStatus;->ungrantWorkItem(Landroid/app/job/JobWorkItem;)V
-PLcom/android/server/job/controllers/JobStatus;->ungrantWorkList(Ljava/util/ArrayList;)V
+HPLcom/android/server/job/controllers/JobStatus;->shouldTreatAsUserInitiatedJob()Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
+HPLcom/android/server/job/controllers/JobStatus;->toShortString()Ljava/lang/String;
+HPLcom/android/server/job/controllers/JobStatus;->toString()Ljava/lang/String;
 HPLcom/android/server/job/controllers/JobStatus;->unprepareLocked()V
-PLcom/android/server/job/controllers/JobStatus;->updateExpeditedDependencies()V
 HPLcom/android/server/job/controllers/JobStatus;->updateMediaBackupExemptionStatus()Z
-HPLcom/android/server/job/controllers/JobStatus;->updateNetworkBytesLocked()V
-HPLcom/android/server/job/controllers/JobStatus;->wouldBeReadyWithConstraint(I)Z
+HPLcom/android/server/job/controllers/JobStatus;->updateNetworkBytesLocked()V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/job/controllers/PrefetchController$$ExternalSyntheticLambda1;-><init>(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
 PLcom/android/server/job/controllers/PrefetchController$1;-><init>(Lcom/android/server/job/controllers/PrefetchController;)V
-PLcom/android/server/job/controllers/PrefetchController$1;->onEstimatedLaunchTimeChanged(ILjava/lang/String;J)V
-PLcom/android/server/job/controllers/PrefetchController$PcConstants;->-$$Nest$fgetmShouldReevaluateConstraints(Lcom/android/server/job/controllers/PrefetchController$PcConstants;)Z
-PLcom/android/server/job/controllers/PrefetchController$PcConstants;->-$$Nest$fputmShouldReevaluateConstraints(Lcom/android/server/job/controllers/PrefetchController$PcConstants;Z)V
 PLcom/android/server/job/controllers/PrefetchController$PcConstants;-><init>(Lcom/android/server/job/controllers/PrefetchController;)V
 PLcom/android/server/job/controllers/PrefetchController$PcHandler;-><init>(Lcom/android/server/job/controllers/PrefetchController;Landroid/os/Looper;)V
-PLcom/android/server/job/controllers/PrefetchController$PcHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/job/controllers/PrefetchController$PcHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/job/controllers/PrefetchController$ThresholdAlarmListener;-><init>(Lcom/android/server/job/controllers/PrefetchController;Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/job/controllers/PrefetchController$ThresholdAlarmListener;-><init>(Lcom/android/server/job/controllers/PrefetchController;Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/job/controllers/PrefetchController$ThresholdAlarmListener-IA;)V
-PLcom/android/server/job/controllers/PrefetchController;->-$$Nest$fgetmHandler(Lcom/android/server/job/controllers/PrefetchController;)Lcom/android/server/job/controllers/PrefetchController$PcHandler;
-PLcom/android/server/job/controllers/PrefetchController;->-$$Nest$mmaybeUpdateConstraintForUid(Lcom/android/server/job/controllers/PrefetchController;I)V
 PLcom/android/server/job/controllers/PrefetchController;->-$$Nest$mprocessUpdatedEstimatedLaunchTime(Lcom/android/server/job/controllers/PrefetchController;ILjava/lang/String;J)V
 PLcom/android/server/job/controllers/PrefetchController;-><clinit>()V
 PLcom/android/server/job/controllers/PrefetchController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/controllers/PrefetchController;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/PrefetchController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
 HPLcom/android/server/job/controllers/PrefetchController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/PrefetchController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/PrefetchController;->maybeUpdateConstraintForUid(I)V
 PLcom/android/server/job/controllers/PrefetchController;->onConstantsUpdatedLocked()V
 PLcom/android/server/job/controllers/PrefetchController;->onSystemServicesReady()V
 PLcom/android/server/job/controllers/PrefetchController;->onUidBiasChangedLocked(III)V
 PLcom/android/server/job/controllers/PrefetchController;->prepareForUpdatedConstantsLocked()V
-PLcom/android/server/job/controllers/PrefetchController;->processUpdatedEstimatedLaunchTime(ILjava/lang/String;J)V
 PLcom/android/server/job/controllers/PrefetchController;->startTrackingLocked()V
-PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
+PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/job/controllers/QuotaController;I)V
+PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/QuotaController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/controllers/QuotaController$1;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-PLcom/android/server/job/controllers/QuotaController$EarliestEndTimeFunctor;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-PLcom/android/server/job/controllers/QuotaController$EarliestEndTimeFunctor;-><init>(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController$EarliestEndTimeFunctor-IA;)V
+PLcom/android/server/job/controllers/QuotaController$EarliestEndTimeFunctor;->accept(Ljava/lang/Object;)V
 PLcom/android/server/job/controllers/QuotaController$ExecutionStats;-><init>()V
+PLcom/android/server/job/controllers/QuotaController$ExecutionStats;->toString()Ljava/lang/String;
 PLcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue;-><init>(Lcom/android/server/job/controllers/QuotaController;Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue;-><init>(Lcom/android/server/job/controllers/QuotaController;Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue-IA;)V
-PLcom/android/server/job/controllers/QuotaController$QcConstants;->-$$Nest$fgetmShouldReevaluateConstraints(Lcom/android/server/job/controllers/QuotaController$QcConstants;)Z
-PLcom/android/server/job/controllers/QuotaController$QcConstants;->-$$Nest$fputmEJLimitConstantsUpdated(Lcom/android/server/job/controllers/QuotaController$QcConstants;Z)V
-PLcom/android/server/job/controllers/QuotaController$QcConstants;->-$$Nest$fputmExecutionPeriodConstantsUpdated(Lcom/android/server/job/controllers/QuotaController$QcConstants;Z)V
-PLcom/android/server/job/controllers/QuotaController$QcConstants;->-$$Nest$fputmQuotaBumpConstantsUpdated(Lcom/android/server/job/controllers/QuotaController$QcConstants;Z)V
-PLcom/android/server/job/controllers/QuotaController$QcConstants;->-$$Nest$fputmRateLimitingConstantsUpdated(Lcom/android/server/job/controllers/QuotaController$QcConstants;Z)V
-PLcom/android/server/job/controllers/QuotaController$QcConstants;->-$$Nest$fputmShouldReevaluateConstraints(Lcom/android/server/job/controllers/QuotaController$QcConstants;Z)V
+PLcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue;->processExpiredAlarms(Landroid/util/ArraySet;)V
 PLcom/android/server/job/controllers/QuotaController$QcConstants;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
 PLcom/android/server/job/controllers/QuotaController$QcHandler;-><init>(Lcom/android/server/job/controllers/QuotaController;Landroid/os/Looper;)V
-HPLcom/android/server/job/controllers/QuotaController$QcHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/job/controllers/QuotaController$QcHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;
 PLcom/android/server/job/controllers/QuotaController$QcUidObserver;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-PLcom/android/server/job/controllers/QuotaController$QcUidObserver;-><init>(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController$QcUidObserver-IA;)V
-HPLcom/android/server/job/controllers/QuotaController$QcUidObserver;->onUidStateChanged(IIJI)V
-PLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;-><init>(I)V
-PLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;->getStandbyBucketLocked()I
-PLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;->getTallyLocked()J
-PLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;->setStandbyBucketLocked(I)V
+PLcom/android/server/job/controllers/QuotaController$QcUidObserver;->onUidStateChanged(IIJI)V
+PLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;->toString()Ljava/lang/String;
 PLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;->transactLocked(J)J
-HPLcom/android/server/job/controllers/QuotaController$StandbyTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/QuotaController$StandbyTracker;IILjava/lang/String;)V
+PLcom/android/server/job/controllers/QuotaController$StandbyTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/QuotaController$StandbyTracker;IILjava/lang/String;)V
 PLcom/android/server/job/controllers/QuotaController$StandbyTracker$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/job/controllers/QuotaController$StandbyTracker;->$r8$lambda$t09qsupi5NrKPja4qQPLgVYLvys(Lcom/android/server/job/controllers/QuotaController$StandbyTracker;IILjava/lang/String;)V
 PLcom/android/server/job/controllers/QuotaController$StandbyTracker;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-PLcom/android/server/job/controllers/QuotaController$StandbyTracker;->lambda$onAppIdleStateChanged$0(IILjava/lang/String;)V
-HPLcom/android/server/job/controllers/QuotaController$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
+PLcom/android/server/job/controllers/QuotaController$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 PLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
 HPLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;->onAppAdded(I)V
 HPLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;->onAppRemoved(I)V
-PLcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate;-><init>()V
-PLcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate;-><init>(Lcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate-IA;)V
-HPLcom/android/server/job/controllers/QuotaController$Timer;-><init>(Lcom/android/server/job/controllers/QuotaController;IILjava/lang/String;Z)V
-PLcom/android/server/job/controllers/QuotaController$Timer;->emitSessionLocked(J)V
-PLcom/android/server/job/controllers/QuotaController$Timer;->getCurrentDuration(J)J
-PLcom/android/server/job/controllers/QuotaController$Timer;->isActive()Z
+PLcom/android/server/job/controllers/QuotaController$Timer;-><init>(Lcom/android/server/job/controllers/QuotaController;IILjava/lang/String;Z)V
+PLcom/android/server/job/controllers/QuotaController$Timer;->cancelCutoff()V
+PLcom/android/server/job/controllers/QuotaController$Timer;->dump(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+HPLcom/android/server/job/controllers/QuotaController$Timer;->emitSessionLocked(J)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
+HPLcom/android/server/job/controllers/QuotaController$Timer;->getCurrentDuration(J)J
+HPLcom/android/server/job/controllers/QuotaController$Timer;->isActive()Z
 PLcom/android/server/job/controllers/QuotaController$Timer;->onStateChangedLocked(JZ)V
-HPLcom/android/server/job/controllers/QuotaController$Timer;->shouldTrackLocked()Z
-HPLcom/android/server/job/controllers/QuotaController$Timer;->startTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/controllers/QuotaController$Timer;->scheduleCutoff()V
+HPLcom/android/server/job/controllers/QuotaController$Timer;->shouldTrackLocked()Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;
 HPLcom/android/server/job/controllers/QuotaController$Timer;->stopTrackingJob(Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/controllers/QuotaController$TimerChargingUpdateFunctor;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-PLcom/android/server/job/controllers/QuotaController$TimerChargingUpdateFunctor;-><init>(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController$TimerChargingUpdateFunctor-IA;)V
+PLcom/android/server/job/controllers/QuotaController$TimerChargingUpdateFunctor;->accept(Ljava/lang/Object;)V
+PLcom/android/server/job/controllers/QuotaController$TimingSession;-><init>(IJJ)V
+PLcom/android/server/job/controllers/QuotaController$TimingSession;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/QuotaController$TimingSession;->getEndTimeElapsed()J
 PLcom/android/server/job/controllers/QuotaController$TopAppTimer;-><init>(Lcom/android/server/job/controllers/QuotaController;ILjava/lang/String;)V
-PLcom/android/server/job/controllers/QuotaController$TopAppTimer;->calculateTimeChunks(J)I
-PLcom/android/server/job/controllers/QuotaController$TopAppTimer;->getPendingReward(J)J
-PLcom/android/server/job/controllers/QuotaController$TopAppTimer;->processEventLocked(Landroid/app/usage/UsageEvents$Event;)V
+HPLcom/android/server/job/controllers/QuotaController$TopAppTimer;->processEventLocked(Landroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-PLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;-><init>(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController$UidConstraintUpdater-IA;)V
-HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->postProcess()V
-HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->prepare()V
-HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->reset()V
+HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Ljava/lang/Object;)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
 PLcom/android/server/job/controllers/QuotaController$UsageEventTracker;-><init>(Lcom/android/server/job/controllers/QuotaController;)V
-HPLcom/android/server/job/controllers/QuotaController$UsageEventTracker;->onUsageEvent(ILandroid/app/usage/UsageEvents$Event;)V
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmEJGracePeriodTempAllowlistMs(Lcom/android/server/job/controllers/QuotaController;)J
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmEJGracePeriodTopAppMs(Lcom/android/server/job/controllers/QuotaController;)J
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmEJPkgTimers(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseArrayMap;
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmEJRewardInteractionMs(Lcom/android/server/job/controllers/QuotaController;)J
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmEJRewardTopAppMs(Lcom/android/server/job/controllers/QuotaController;)J
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmEJTopAppTimeChunkSizeMs(Lcom/android/server/job/controllers/QuotaController;)J
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmForegroundUids(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseBooleanArray;
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmHandler(Lcom/android/server/job/controllers/QuotaController;)Lcom/android/server/job/controllers/QuotaController$QcHandler;
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmInQuotaAlarmQueue(Lcom/android/server/job/controllers/QuotaController;)Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue;
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmPkgTimers(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseArrayMap;
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTempAllowlistCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTempAllowlistGraceCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseLongArray;
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTopAppCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTopAppGraceCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseLongArray;
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTopAppTrackers(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseArrayMap;
+PLcom/android/server/job/controllers/QuotaController$UsageEventTracker;->onUsageEvent(ILandroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/job/controllers/QuotaController;->-$$Nest$mgrantRewardForInstantEvent(Lcom/android/server/job/controllers/QuotaController;ILjava/lang/String;J)V
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$mhasTempAllowlistExemptionLocked(Lcom/android/server/job/controllers/QuotaController;IIJ)Z
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$misQuotaFreeLocked(Lcom/android/server/job/controllers/QuotaController;I)Z
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$misTopStartedJobLocked(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$mmaybeUpdateConstraintForPkgLocked(Lcom/android/server/job/controllers/QuotaController;JILjava/lang/String;)Landroid/util/ArraySet;
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$mmaybeUpdateConstraintForUidLocked(Lcom/android/server/job/controllers/QuotaController;I)Landroid/util/ArraySet;
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$msetConstraintSatisfied(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;JZZ)Z
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$msetExpeditedQuotaApproved(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;JZ)Z
-PLcom/android/server/job/controllers/QuotaController;->-$$Nest$mtransactQuotaLocked(Lcom/android/server/job/controllers/QuotaController;ILjava/lang/String;JLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;J)Z
-HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$sfgetDEBUG()Z
+HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$mmaybeUpdateConstraintForUidLocked(Lcom/android/server/job/controllers/QuotaController;I)Landroid/util/ArraySet;+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
+PLcom/android/server/job/controllers/QuotaController;->-$$Nest$smhashLong(J)I
 PLcom/android/server/job/controllers/QuotaController;-><clinit>()V
-HPLcom/android/server/job/controllers/QuotaController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/ConnectivityController;)V
+PLcom/android/server/job/controllers/QuotaController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/ConnectivityController;)V
 PLcom/android/server/job/controllers/QuotaController;->cacheInstallerPackagesLocked(I)V
+HPLcom/android/server/job/controllers/QuotaController;->calculateTimeUntilQuotaConsumedLocked(JJLjava/util/List;)J+]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/job/controllers/QuotaController;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/QuotaController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
 HPLcom/android/server/job/controllers/QuotaController;->getEJDebitsLocked(ILjava/lang/String;)Lcom/android/server/job/controllers/QuotaController$ShrinkableDebits;
-HPLcom/android/server/job/controllers/QuotaController;->getEJLimitMsLocked(ILjava/lang/String;I)J
+HPLcom/android/server/job/controllers/QuotaController;->getEJLimitMsLocked(IILjava/lang/String;)J
 PLcom/android/server/job/controllers/QuotaController;->getExecutionStatsLocked(ILjava/lang/String;I)Lcom/android/server/job/controllers/QuotaController$ExecutionStats;
-HPLcom/android/server/job/controllers/QuotaController;->getExecutionStatsLocked(ILjava/lang/String;IZ)Lcom/android/server/job/controllers/QuotaController$ExecutionStats;
-HPLcom/android/server/job/controllers/QuotaController;->getMaxJobExecutionTimeMsLocked(Lcom/android/server/job/controllers/JobStatus;)J
-HPLcom/android/server/job/controllers/QuotaController;->getRemainingEJExecutionTimeLocked(ILjava/lang/String;)J
-PLcom/android/server/job/controllers/QuotaController;->grantRewardForInstantEvent(ILjava/lang/String;J)V
+HPLcom/android/server/job/controllers/QuotaController;->getExecutionStatsLocked(ILjava/lang/String;IZ)Lcom/android/server/job/controllers/QuotaController$ExecutionStats;+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
+HPLcom/android/server/job/controllers/QuotaController;->getMaxJobExecutionTimeMsLocked(Lcom/android/server/job/controllers/JobStatus;)J+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+PLcom/android/server/job/controllers/QuotaController;->getProcessStateQuotaFreeThreshold(I)I
+HPLcom/android/server/job/controllers/QuotaController;->getRemainingEJExecutionTimeLocked(ILjava/lang/String;)J+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/job/controllers/QuotaController;->getRemainingExecutionTimeLocked(ILjava/lang/String;)J
+PLcom/android/server/job/controllers/QuotaController;->getRemainingExecutionTimeLocked(Lcom/android/server/job/controllers/JobStatus;)J
+HPLcom/android/server/job/controllers/QuotaController;->getTimeUntilEJQuotaConsumedLocked(ILjava/lang/String;)J
+HPLcom/android/server/job/controllers/QuotaController;->getTimeUntilQuotaConsumedLocked(ILjava/lang/String;)J+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/job/controllers/QuotaController;->hasTempAllowlistExemptionLocked(IIJ)Z
-HPLcom/android/server/job/controllers/QuotaController;->isQuotaFreeLocked(I)Z
+HPLcom/android/server/job/controllers/QuotaController;->incrementJobCountLocked(ILjava/lang/String;I)V
+HPLcom/android/server/job/controllers/QuotaController;->invalidateAllExecutionStatsLocked(ILjava/lang/String;)V
+PLcom/android/server/job/controllers/QuotaController;->isQuotaFreeLocked(I)Z
 HPLcom/android/server/job/controllers/QuotaController;->isTopStartedJobLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/QuotaController;->isUidInForeground(I)Z
-HPLcom/android/server/job/controllers/QuotaController;->isUnderJobCountQuotaLocked(Lcom/android/server/job/controllers/QuotaController$ExecutionStats;I)Z
-HPLcom/android/server/job/controllers/QuotaController;->isUnderSessionCountQuotaLocked(Lcom/android/server/job/controllers/QuotaController$ExecutionStats;I)Z
+HPLcom/android/server/job/controllers/QuotaController;->isUidInForeground(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+HPLcom/android/server/job/controllers/QuotaController;->isUnderJobCountQuotaLocked(Lcom/android/server/job/controllers/QuotaController$ExecutionStats;)Z
+HPLcom/android/server/job/controllers/QuotaController;->isUnderSessionCountQuotaLocked(Lcom/android/server/job/controllers/QuotaController$ExecutionStats;)Z
 PLcom/android/server/job/controllers/QuotaController;->isWithinEJQuotaLocked(Lcom/android/server/job/controllers/JobStatus;)Z
 HPLcom/android/server/job/controllers/QuotaController;->isWithinQuotaLocked(ILjava/lang/String;I)Z
 HPLcom/android/server/job/controllers/QuotaController;->isWithinQuotaLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/QuotaController;->maybeScheduleStartAlarmLocked(ILjava/lang/String;I)V
+PLcom/android/server/job/controllers/QuotaController;->maybeScheduleCleanupAlarmLocked()V
+HPLcom/android/server/job/controllers/QuotaController;->maybeScheduleStartAlarmLocked(ILjava/lang/String;I)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
 HPLcom/android/server/job/controllers/QuotaController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/QuotaController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/QuotaController;->maybeUpdateConstraintForPkgLocked(JILjava/lang/String;)Landroid/util/ArraySet;
-HPLcom/android/server/job/controllers/QuotaController;->maybeUpdateConstraintForUidLocked(I)Landroid/util/ArraySet;
+PLcom/android/server/job/controllers/QuotaController;->maybeUpdateAllConstraintsLocked()V
+HPLcom/android/server/job/controllers/QuotaController;->maybeUpdateConstraintForPkgLocked(ILjava/lang/String;J)Landroid/util/ArraySet;+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;
+PLcom/android/server/job/controllers/QuotaController;->onBatteryStateChangedLocked()V
 PLcom/android/server/job/controllers/QuotaController;->onConstantsUpdatedLocked()V
 PLcom/android/server/job/controllers/QuotaController;->onSystemServicesReady()V
 HPLcom/android/server/job/controllers/QuotaController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/QuotaController;->prepareForUpdatedConstantsLocked()V
+PLcom/android/server/job/controllers/QuotaController;->saveTimingSession(ILjava/lang/String;Lcom/android/server/job/controllers/QuotaController$TimingSession;ZJ)V
 HPLcom/android/server/job/controllers/QuotaController;->setConstraintSatisfied(Lcom/android/server/job/controllers/JobStatus;JZZ)Z
-HPLcom/android/server/job/controllers/QuotaController;->setExpeditedQuotaApproved(Lcom/android/server/job/controllers/JobStatus;JZ)Z
+HPLcom/android/server/job/controllers/QuotaController;->setExpeditedQuotaApproved(Lcom/android/server/job/controllers/JobStatus;Z)Z
 PLcom/android/server/job/controllers/QuotaController;->transactQuotaLocked(ILjava/lang/String;JLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;J)Z
 HPLcom/android/server/job/controllers/QuotaController;->unprepareFromExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/QuotaController;->updateExecutionStatsLocked(ILjava/lang/String;Lcom/android/server/job/controllers/QuotaController$ExecutionStats;)V
-HPLcom/android/server/job/controllers/QuotaController;->updateStandbyBucket(ILjava/lang/String;I)V
-PLcom/android/server/job/controllers/RestrictingController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/controllers/StateController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-PLcom/android/server/job/controllers/StateController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V
+HPLcom/android/server/job/controllers/QuotaController;->updateExecutionStatsLocked(ILjava/lang/String;Lcom/android/server/job/controllers/QuotaController$ExecutionStats;)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/job/controllers/QuotaController;->updateStandbyBucket(ILjava/lang/String;I)V
+PLcom/android/server/job/controllers/StateController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
+PLcom/android/server/job/controllers/StateController;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+HPLcom/android/server/job/controllers/StateController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/StateController;->logDeviceWideConstraintStateToStatsd(IZ)V
+PLcom/android/server/job/controllers/StateController;->onBatteryStateChangedLocked()V
 PLcom/android/server/job/controllers/StateController;->onConstantsUpdatedLocked()V
 PLcom/android/server/job/controllers/StateController;->onSystemServicesReady()V
 PLcom/android/server/job/controllers/StateController;->onUidBiasChangedLocked(III)V
+PLcom/android/server/job/controllers/StateController;->packageToString(ILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/job/controllers/StateController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/StateController;->prepareForUpdatedConstantsLocked()V
+PLcom/android/server/job/controllers/StateController;->reevaluateStateLocked(I)V
+PLcom/android/server/job/controllers/StateController;->rescheduleForFailureLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/StateController;->startTrackingLocked()V
-HPLcom/android/server/job/controllers/StateController;->wouldBeReadyWithConstraintLocked(Lcom/android/server/job/controllers/JobStatus;I)Z
+HPLcom/android/server/job/controllers/StateController;->wouldBeReadyWithConstraintLocked(Lcom/android/server/job/controllers/JobStatus;I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 PLcom/android/server/job/controllers/StorageController$StorageTracker;-><init>(Lcom/android/server/job/controllers/StorageController;)V
-PLcom/android/server/job/controllers/StorageController$StorageTracker;->startTracking()V
 PLcom/android/server/job/controllers/StorageController;-><clinit>()V
 PLcom/android/server/job/controllers/StorageController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/controllers/StorageController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/StorageController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+PLcom/android/server/job/controllers/StorageController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/StorageController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 PLcom/android/server/job/controllers/StorageController;->startTrackingLocked()V
-PLcom/android/server/job/controllers/TareController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/TareController;)V
-HPLcom/android/server/job/controllers/TareController;-><clinit>()V
-PLcom/android/server/job/controllers/TareController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/ConnectivityController;)V
-HPLcom/android/server/job/controllers/TareController;->addJobToBillList(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V
-PLcom/android/server/job/controllers/TareController;->canAffordExpeditedBillLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/TareController;->getPossibleStartBills(Lcom/android/server/job/controllers/JobStatus;)Landroid/util/ArraySet;
-PLcom/android/server/job/controllers/TareController;->getRunningActionId(Lcom/android/server/job/controllers/JobStatus;)I
-HPLcom/android/server/job/controllers/TareController;->getRunningBill(Lcom/android/server/job/controllers/JobStatus;)Lcom/android/server/tare/EconomyManagerInternal$ActionBill;
-HPLcom/android/server/job/controllers/TareController;->hasEnoughWealthLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/TareController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/TareController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
-PLcom/android/server/job/controllers/TareController;->onConstantsUpdatedLocked()V
-HPLcom/android/server/job/controllers/TareController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/TareController;->removeJobFromBillList(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V
-HPLcom/android/server/job/controllers/TareController;->setExpeditedTareApproved(Lcom/android/server/job/controllers/JobStatus;JZ)Z
-PLcom/android/server/job/controllers/TimeController$1;-><init>(Lcom/android/server/job/controllers/TimeController;)V
-PLcom/android/server/job/controllers/TimeController$2;-><init>(Lcom/android/server/job/controllers/TimeController;)V
+HPLcom/android/server/job/controllers/TimeController$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/job/controllers/TimeController$2;-><init>(Lcom/android/server/job/controllers/TimeController;I)V
 PLcom/android/server/job/controllers/TimeController$2;->onAlarm()V
-PLcom/android/server/job/controllers/TimeController;->-$$Nest$fputmLastFiredDelayExpiredElapsedMillis(Lcom/android/server/job/controllers/TimeController;J)V
-PLcom/android/server/job/controllers/TimeController;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/job/controllers/TimeController;-><clinit>()V
 PLcom/android/server/job/controllers/TimeController;-><init>(Lcom/android/server/job/JobSchedulerService;)V
 HPLcom/android/server/job/controllers/TimeController;->canStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;)Z
-HPLcom/android/server/job/controllers/TimeController;->checkExpiredDeadlinesAndResetAlarm()V
-HPLcom/android/server/job/controllers/TimeController;->checkExpiredDelaysAndResetAlarm()V
-PLcom/android/server/job/controllers/TimeController;->ensureAlarmServiceLocked()V
-HPLcom/android/server/job/controllers/TimeController;->evaluateDeadlineConstraint(Lcom/android/server/job/controllers/JobStatus;J)Z
-HPLcom/android/server/job/controllers/TimeController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V
-HPLcom/android/server/job/controllers/TimeController;->evaluateTimingDelayConstraint(Lcom/android/server/job/controllers/JobStatus;J)Z
-HPLcom/android/server/job/controllers/TimeController;->maybeAdjustAlarmTime(J)J
+HPLcom/android/server/job/controllers/TimeController;->checkExpiredDeadlinesAndResetAlarm()V+]Ljava/util/Iterator;Ljava/util/PriorityQueue$Itr;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;
+HPLcom/android/server/job/controllers/TimeController;->checkExpiredDelaysAndResetAlarm()V+]Ljava/util/Iterator;Ljava/util/PriorityQueue$Itr;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;
+PLcom/android/server/job/controllers/TimeController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;)V
+PLcom/android/server/job/controllers/TimeController;->evaluateDeadlineConstraint(Lcom/android/server/job/controllers/JobStatus;J)Z
+HPLcom/android/server/job/controllers/TimeController;->evaluateStateLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;
 HPLcom/android/server/job/controllers/TimeController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
 HPLcom/android/server/job/controllers/TimeController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V
+PLcom/android/server/job/controllers/TimeController;->reevaluateStateLocked(I)V
 HPLcom/android/server/job/controllers/TimeController;->setDeadlineExpiredAlarmLocked(JLandroid/os/WorkSource;)V
 HPLcom/android/server/job/controllers/TimeController;->setDelayExpiredAlarmLocked(JLandroid/os/WorkSource;)V
 HPLcom/android/server/job/controllers/TimeController;->updateAlarmWithListenerLocked(Ljava/lang/String;ILandroid/app/AlarmManager$OnAlarmListener;JLandroid/os/WorkSource;)V
 PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/controllers/idle/DeviceIdlenessTracker;)V
 PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/controllers/idle/DeviceIdlenessTracker;)V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker$$ExternalSyntheticLambda1;->onAlarm()V
 PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;-><clinit>()V
 PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;-><init>()V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->dumpConstants(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->exitIdle()V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->handleIdleTrigger()V
 PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->isIdle()Z
-PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->startTracking(Landroid/content/Context;Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/idle/IdlenessListener;)V
-PLcom/android/server/job/restrictions/JobRestriction;-><init>(Lcom/android/server/job/JobSchedulerService;III)V
+HPLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->maybeScheduleIdlenessCheck(Ljava/lang/String;)V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->onBatteryStateChanged(ZZ)V
+HPLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/job/controllers/idle/DeviceIdlenessTracker;->startTracking(Landroid/content/Context;Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/IdleController;)V
 PLcom/android/server/job/restrictions/ThermalStatusRestriction$1;-><init>(Lcom/android/server/job/restrictions/ThermalStatusRestriction;)V
 PLcom/android/server/job/restrictions/ThermalStatusRestriction$1;->onThermalStatusChanged(I)V
-PLcom/android/server/job/restrictions/ThermalStatusRestriction;->-$$Nest$fgetmThermalStatus(Lcom/android/server/job/restrictions/ThermalStatusRestriction;)I
-PLcom/android/server/job/restrictions/ThermalStatusRestriction;->-$$Nest$fputmThermalStatus(Lcom/android/server/job/restrictions/ThermalStatusRestriction;I)V
 PLcom/android/server/job/restrictions/ThermalStatusRestriction;-><init>(Lcom/android/server/job/JobSchedulerService;)V
-HPLcom/android/server/job/restrictions/ThermalStatusRestriction;->isJobRestricted(Lcom/android/server/job/controllers/JobStatus;)Z
-PLcom/android/server/job/restrictions/ThermalStatusRestriction;->onSystemServicesReady()V
-HSPLcom/android/server/lights/LightsManager;-><init>()V
+HPLcom/android/server/job/restrictions/ThermalStatusRestriction;->isJobRestricted(Lcom/android/server/job/controllers/JobStatus;I)Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;
 HSPLcom/android/server/lights/LightsService$1;-><init>(Lcom/android/server/lights/LightsService;)V
-HSPLcom/android/server/lights/LightsService$1;->getLight(I)Lcom/android/server/lights/LogicalLight;
-HSPLcom/android/server/lights/LightsService$LightImpl;->-$$Nest$fgetmHwLight(Lcom/android/server/lights/LightsService$LightImpl;)Landroid/hardware/light/HwLight;
-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$LightImpl-IA;)V
-PLcom/android/server/lights/LightsService$LightImpl;->setBrightness(F)V
-PLcom/android/server/lights/LightsService$LightImpl;->setBrightness(FI)V
-PLcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
-HPLcom/android/server/lights/LightsService$LightImpl;->setLightUnchecked(IIIII)V
-PLcom/android/server/lights/LightsService$LightImpl;->shouldBeInLowPersistenceMode()Z
+PLcom/android/server/lights/LightsService$1;->getLight(I)Lcom/android/server/lights/LightsService$LightImpl;
+HSPLcom/android/server/lights/LightsService$LightImpl;-><init>(Lcom/android/server/lights/LightsService;Landroid/hardware/light/HwLight;)V
+PLcom/android/server/lights/LightsService$LightImpl;->setColor(I)V
+HPLcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIII)V
+PLcom/android/server/lights/LightsService$LightImpl;->turnOff()V
 HSPLcom/android/server/lights/LightsService$LightsManagerBinderService;-><init>(Lcom/android/server/lights/LightsService;)V
-HSPLcom/android/server/lights/LightsService$VintfHalCache;-><init>()V
-HSPLcom/android/server/lights/LightsService$VintfHalCache;-><init>(Lcom/android/server/lights/LightsService$VintfHalCache-IA;)V
-HSPLcom/android/server/lights/LightsService$VintfHalCache;->get()Landroid/hardware/light/ILights;
+PLcom/android/server/lights/LightsService$LightsManagerBinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/lights/LightsService$VintfHalCache;->get()Ljava/lang/Object;
-HSPLcom/android/server/lights/LightsService;->-$$Nest$fgetmLightsByType(Lcom/android/server/lights/LightsService;)[Lcom/android/server/lights/LightsService$LightImpl;
-PLcom/android/server/lights/LightsService;->-$$Nest$fgetmVintfLights(Lcom/android/server/lights/LightsService;)Ljava/util/function/Supplier;
 HSPLcom/android/server/lights/LightsService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/lights/LightsService;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/Looper;)V
 HSPLcom/android/server/lights/LightsService;->onBootPhase(I)V
 HSPLcom/android/server/lights/LightsService;->onStart()V
-HSPLcom/android/server/lights/LightsService;->populateAvailableLights(Landroid/content/Context;)V
-HSPLcom/android/server/lights/LightsService;->populateAvailableLightsFromAidl(Landroid/content/Context;)V
-HSPLcom/android/server/lights/LogicalLight;-><init>()V
+PLcom/android/server/locales/AppLocaleChangedAtomRecord;-><init>(I)V
+PLcom/android/server/locales/AppLocaleChangedAtomRecord;->convertEmptyLocales(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/locales/LocaleManagerBackupHelper$UserMonitor;-><init>(Lcom/android/server/locales/LocaleManagerBackupHelper;)V
-PLcom/android/server/locales/LocaleManagerBackupHelper$UserMonitor;-><init>(Lcom/android/server/locales/LocaleManagerBackupHelper;Lcom/android/server/locales/LocaleManagerBackupHelper$UserMonitor-IA;)V
 PLcom/android/server/locales/LocaleManagerBackupHelper;-><clinit>()V
-PLcom/android/server/locales/LocaleManagerBackupHelper;-><init>(Landroid/content/Context;Lcom/android/server/locales/LocaleManagerService;Landroid/content/pm/PackageManager;Ljava/time/Clock;Landroid/util/SparseArray;Landroid/os/HandlerThread;Landroid/content/SharedPreferences;)V
-PLcom/android/server/locales/LocaleManagerBackupHelper;-><init>(Lcom/android/server/locales/LocaleManagerService;Landroid/content/pm/PackageManager;Landroid/os/HandlerThread;)V
-PLcom/android/server/locales/LocaleManagerBackupHelper;->createPersistedInfo()Landroid/content/SharedPreferences;
-PLcom/android/server/locales/LocaleManagerInternal;-><init>()V
-PLcom/android/server/locales/LocaleManagerService$1;-><init>(Lcom/android/server/locales/LocaleManagerService;Lcom/android/server/locales/SystemAppUpdateTracker;)V
+PLcom/android/server/locales/LocaleManagerBackupHelper;-><init>(Landroid/content/Context;Lcom/android/server/locales/LocaleManagerService;Landroid/content/pm/PackageManager;Ljava/time/Clock;Landroid/os/HandlerThread;Landroid/util/SparseArray;Ljava/io/File;Landroid/content/SharedPreferences;)V
+PLcom/android/server/locales/LocaleManagerBackupHelper;->checkStageDataAndApplyRestore(ILjava/lang/String;)V
+PLcom/android/server/locales/LocaleManagerBackupHelper;->cleanStagedDataForOldEntriesLocked(I)V
+PLcom/android/server/locales/LocaleManagerBackupHelper;->getArchivedPackagesFile()Ljava/io/File;
+PLcom/android/server/locales/LocaleManagerBackupHelper;->getStagedDataSp(I)Landroid/content/SharedPreferences;
+PLcom/android/server/locales/LocaleManagerBackupHelper;->persistLocalesModificationInfo(Ljava/lang/String;IZZ)V
+PLcom/android/server/locales/LocaleManagerService$1;-><init>(Lcom/android/server/locales/SystemAppUpdateTracker;)V
 PLcom/android/server/locales/LocaleManagerService$1;->run()V
 PLcom/android/server/locales/LocaleManagerService$LocaleManagerBinderService;-><init>(Lcom/android/server/locales/LocaleManagerService;)V
-PLcom/android/server/locales/LocaleManagerService$LocaleManagerBinderService;-><init>(Lcom/android/server/locales/LocaleManagerService;Lcom/android/server/locales/LocaleManagerService$LocaleManagerBinderService-IA;)V
+PLcom/android/server/locales/LocaleManagerService$LocaleManagerBinderService;->setApplicationLocales(Ljava/lang/String;ILandroid/os/LocaleList;Z)V
 PLcom/android/server/locales/LocaleManagerService$LocaleManagerInternalImpl;-><init>(Lcom/android/server/locales/LocaleManagerService;)V
-PLcom/android/server/locales/LocaleManagerService$LocaleManagerInternalImpl;-><init>(Lcom/android/server/locales/LocaleManagerService;Lcom/android/server/locales/LocaleManagerService$LocaleManagerInternalImpl-IA;)V
+PLcom/android/server/locales/LocaleManagerService$LocaleManagerInternalImpl;->getBackupPayload(I)[B
 PLcom/android/server/locales/LocaleManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/locales/LocaleManagerService;->getApplicationLocales(Ljava/lang/String;I)Landroid/os/LocaleList;
+PLcom/android/server/locales/LocaleManagerService;->getApplicationLocalesUnchecked(ILjava/lang/String;)Landroid/os/LocaleList;
+PLcom/android/server/locales/LocaleManagerService;->getInstallingPackageName(ILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/locales/LocaleManagerService;->getPackageUid(Ljava/lang/String;I)I
+PLcom/android/server/locales/LocaleManagerService;->isPackageOwnedByCaller(Ljava/lang/String;ILcom/android/server/locales/AppLocaleChangedAtomRecord;Lcom/android/server/locales/AppSupportedLocalesChangedAtomRecord;)Z
 PLcom/android/server/locales/LocaleManagerService;->onStart()V
-PLcom/android/server/locales/LocaleManagerServicePackageMonitor;-><init>(Lcom/android/server/locales/LocaleManagerBackupHelper;Lcom/android/server/locales/SystemAppUpdateTracker;Lcom/android/server/locales/LocaleManagerService;)V
+PLcom/android/server/locales/LocaleManagerService;->setApplicationLocales(Ljava/lang/String;ILandroid/os/LocaleList;ZI)V
+PLcom/android/server/locales/LocaleManagerService;->setApplicationLocalesUnchecked(Ljava/lang/String;ILandroid/os/LocaleList;Lcom/android/server/locales/AppLocaleChangedAtomRecord;)V
+PLcom/android/server/locales/LocaleManagerServicePackageMonitor;->onPackageAddedWithExtras(Ljava/lang/String;ILandroid/os/Bundle;)V
+PLcom/android/server/locales/LocaleManagerServicePackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
 PLcom/android/server/locales/SystemAppUpdateTracker;-><init>(Landroid/content/Context;Lcom/android/server/locales/LocaleManagerService;Landroid/util/AtomicFile;)V
-PLcom/android/server/locales/SystemAppUpdateTracker;-><init>(Lcom/android/server/locales/LocaleManagerService;)V
-PLcom/android/server/locales/SystemAppUpdateTracker;->init()V
-PLcom/android/server/locales/SystemAppUpdateTracker;->loadUpdatedSystemApps()V
-PLcom/android/server/location/GeocoderProxy;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/GeocoderProxy;->createAndRegister(Landroid/content/Context;)Lcom/android/server/location/GeocoderProxy;
-PLcom/android/server/location/GeocoderProxy;->register()Z
+PLcom/android/server/locales/SystemAppUpdateTracker;->readFromXml(Ljava/io/InputStream;)V
+PLcom/android/server/locales/SystemAppUpdateTracker;->updateBroadcastedAppsList(Ljava/lang/String;)V
+PLcom/android/server/locales/SystemAppUpdateTracker;->writeToXmlLocked(Ljava/io/OutputStream;)V
 PLcom/android/server/location/HardwareActivityRecognitionProxy;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/HardwareActivityRecognitionProxy;->createAndRegister(Landroid/content/Context;)Lcom/android/server/location/HardwareActivityRecognitionProxy;
-PLcom/android/server/location/HardwareActivityRecognitionProxy;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;)V
 PLcom/android/server/location/HardwareActivityRecognitionProxy;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;)V
-PLcom/android/server/location/HardwareActivityRecognitionProxy;->register()Z
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda11;-><init>(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda11;->run()V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda12;-><init>(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda12;->run()V
+PLcom/android/server/location/HardwareActivityRecognitionProxy;->onUnbind()V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda0;-><init>(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda10;-><init>(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;I)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda10;->run()V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/LocationManagerService;)V
+HPLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda1;->onOpNoted(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda2;->onOpNoted(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/location/LocationManagerService;)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda3;->onSettingChanged(I)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/LocationManagerService;I)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda4;->onSettingChanged()V
 PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/location/LocationManagerService;)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda6;->onUserChanged(II)V
 PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda7;->onUserChanged(II)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/location/LocationManagerService;)V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda7;->onStateChanged()V
+PLcom/android/server/location/LocationManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/location/LocationManagerService;I)V
 PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;->onUserStarted(I)V
+PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
+PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;->getCurrentUserId()I
+PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;->getRunningUserIds()[I
+PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;->getUserManager()Landroid/os/UserManager;
+PLcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;->isVisibleUserId(I)Z
 PLcom/android/server/location/LocationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/LocationManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/location/LocationManagerService$Lifecycle;->onStart()V
 PLcom/android/server/location/LocationManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/location/LocationManagerService$LocalService$$ExternalSyntheticLambda0;-><init>(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService$LocalService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/location/LocationManagerService$LocalService;->$r8$lambda$zOgkdbQhX97ia_6zLR94eXWADOo(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
 PLcom/android/server/location/LocationManagerService$LocalService;-><init>(Lcom/android/server/location/LocationManagerService;)V
 PLcom/android/server/location/LocationManagerService$LocalService;->addProviderEnabledListener(Ljava/lang/String;Landroid/location/LocationManagerInternal$ProviderEnabledListener;)V
-HPLcom/android/server/location/LocationManagerService$LocalService;->isProvider(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)Z
-HPLcom/android/server/location/LocationManagerService$LocalService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
-PLcom/android/server/location/LocationManagerService$LocalService;->lambda$setLocationPackageTagsListener$0(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
+PLcom/android/server/location/LocationManagerService$LocalService;->isProvider(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)Z
+PLcom/android/server/location/LocationManagerService$LocalService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+PLcom/android/server/location/LocationManagerService$LocalService;->removeProviderEnabledListener(Ljava/lang/String;Landroid/location/LocationManagerInternal$ProviderEnabledListener;)V
 PLcom/android/server/location/LocationManagerService$LocalService;->setLocationPackageTagsListener(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;)V
-PLcom/android/server/location/LocationManagerService$SystemInjector;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/SystemUserInfoHelper;)V
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getAlarmHelper()Lcom/android/server/location/injector/AlarmHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getAppForegroundHelper()Lcom/android/server/location/injector/AppForegroundHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getAppOpsHelper()Lcom/android/server/location/injector/AppOpsHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getEmergencyHelper()Lcom/android/server/location/injector/EmergencyHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationPermissionsHelper()Lcom/android/server/location/injector/LocationPermissionsHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationPowerSaveModeHelper()Lcom/android/server/location/injector/LocationPowerSaveModeHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationSettings()Lcom/android/server/location/settings/LocationSettings;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationUsageLogger()Lcom/android/server/location/injector/LocationUsageLogger;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getPackageResetHelper()Lcom/android/server/location/injector/PackageResetHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getScreenInteractiveHelper()Lcom/android/server/location/injector/ScreenInteractiveHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getSettingsHelper()Lcom/android/server/location/injector/SettingsHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->getUserInfoHelper()Lcom/android/server/location/injector/UserInfoHelper;
-PLcom/android/server/location/LocationManagerService$SystemInjector;->onSystemReady()V
-PLcom/android/server/location/LocationManagerService;->$r8$lambda$eyTQ4ijUbfA4AoGXfSy3i0Mr-d8(Lcom/android/server/location/LocationManagerService;II)V
-PLcom/android/server/location/LocationManagerService;->$r8$lambda$kwp4RhvxNBiY1jhPHD3YdojaxUw(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService;->$r8$lambda$nPBMjpla8mzhPFk-pAdPm6o8AMI(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService;->$r8$lambda$ujQuQQ3Bc3ydTqqn2V1w-z0TnO4(Lcom/android/server/location/LocationManagerService;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/location/LocationManagerService;->-$$Nest$mlogEmergencyState(Lcom/android/server/location/LocationManagerService;)V
-PLcom/android/server/location/LocationManagerService;->-$$Nest$mlogLocationEnabledState(Lcom/android/server/location/LocationManagerService;)V
+PLcom/android/server/location/LocationManagerService$SystemInjector;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;)V
+PLcom/android/server/location/LocationManagerService$SystemInjector;->getEmergencyHelper()Lcom/android/server/location/injector/SystemEmergencyHelper;
 PLcom/android/server/location/LocationManagerService;-><clinit>()V
-PLcom/android/server/location/LocationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;)V
+PLcom/android/server/location/LocationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationManagerService$SystemInjector;)V
 PLcom/android/server/location/LocationManagerService;->addLocationProviderManager(Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/AbstractLocationProvider;)V
-HPLcom/android/server/location/LocationManagerService;->calculateAppOpsLocationSourceTags(I)Landroid/os/PackageTagsList;
-PLcom/android/server/location/LocationManagerService;->geocoderIsPresent()Z
+PLcom/android/server/location/LocationManagerService;->addProviderRequestListener(Landroid/location/provider/IProviderRequestListener;)V
+PLcom/android/server/location/LocationManagerService;->calculateAppOpsLocationSourceTags(I)Landroid/os/PackageTagsList;
+PLcom/android/server/location/LocationManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/location/LocationManagerService;->getAllProviders()Ljava/util/List;
-HPLcom/android/server/location/LocationManagerService;->getLastLocation(Ljava/lang/String;Landroid/location/LastLocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
-HPLcom/android/server/location/LocationManagerService;->getLocationProviderManager(Ljava/lang/String;)Lcom/android/server/location/provider/LocationProviderManager;
+PLcom/android/server/location/LocationManagerService;->getExtraLocationControllerPackage()Ljava/lang/String;
+PLcom/android/server/location/LocationManagerService;->getLastLocation(Ljava/lang/String;Landroid/location/LastLocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
+PLcom/android/server/location/LocationManagerService;->getLocationProviderManager(Ljava/lang/String;)Lcom/android/server/location/provider/LocationProviderManager;
 PLcom/android/server/location/LocationManagerService;->getProviderProperties(Ljava/lang/String;)Landroid/location/provider/ProviderProperties;
 PLcom/android/server/location/LocationManagerService;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
 PLcom/android/server/location/LocationManagerService;->hasProvider(Ljava/lang/String;)Z
+PLcom/android/server/location/LocationManagerService;->isGeocodeAvailable()Z
 HPLcom/android/server/location/LocationManagerService;->isLocationEnabledForUser(I)Z
 PLcom/android/server/location/LocationManagerService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
-PLcom/android/server/location/LocationManagerService;->lambda$new$2(II)V
-PLcom/android/server/location/LocationManagerService;->lambda$onStateChanged$7(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService;->lambda$onStateChanged$8(Landroid/location/LocationManagerInternal$LocationPackageTagsListener;ILandroid/os/PackageTagsList;)V
-PLcom/android/server/location/LocationManagerService;->lambda$onSystemReady$5(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;II)V
+PLcom/android/server/location/LocationManagerService;->isProviderPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/location/LocationManagerService;->logEmergencyState()V
 PLcom/android/server/location/LocationManagerService;->logLocationEnabledState()V
-HPLcom/android/server/location/LocationManagerService;->onStateChanged(Ljava/lang/String;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/LocationManagerService;->onSystemReady()V
-HPLcom/android/server/location/LocationManagerService;->onSystemThirdPartyAppsCanStart()V
-HPLcom/android/server/location/LocationManagerService;->refreshAppOpsRestrictions(I)V
+PLcom/android/server/location/LocationManagerService;->refreshAppOpsRestrictions(I)V
 PLcom/android/server/location/LocationManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/location/LocationManagerService;->registerLocationListener(Ljava/lang/String;Landroid/location/LocationRequest;Landroid/location/ILocationListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/location/LocationManagerService;->registerLocationListener(Ljava/lang/String;Landroid/location/LocationRequest;Landroid/location/ILocationListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/location/LocationManagerService;->reverseGeocode(Landroid/location/provider/ReverseGeocodeRequest;Landroid/location/provider/IGeocodeCallback;)V
 PLcom/android/server/location/LocationManagerService;->setExtraLocationControllerPackageEnabled(Z)V
 PLcom/android/server/location/LocationManagerService;->setLocationEnabledForUser(ZI)V
+PLcom/android/server/location/LocationManagerService;->setProxyPopulationDensityProvider(Lcom/android/server/location/provider/proxy/ProxyPopulationDensityProvider;)V
 PLcom/android/server/location/LocationManagerService;->unregisterLocationListener(Landroid/location/ILocationListener;)V
-PLcom/android/server/location/LocationManagerService;->validateLastLocationRequest(Ljava/lang/String;Landroid/location/LastLocationRequest;Landroid/location/util/identity/CallerIdentity;)Landroid/location/LastLocationRequest;
-HPLcom/android/server/location/LocationManagerService;->validateLocationRequest(Ljava/lang/String;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;)Landroid/location/LocationRequest;
+PLcom/android/server/location/LocationManagerService;->validateLocationRequest(Ljava/lang/String;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;)Landroid/location/LocationRequest;
 PLcom/android/server/location/LocationPermissions;->asAppOp(I)I
-PLcom/android/server/location/LocationPermissions;->asPermission(I)Ljava/lang/String;
-PLcom/android/server/location/LocationPermissions;->checkCallingOrSelfLocationPermission(Landroid/content/Context;I)Z
-PLcom/android/server/location/LocationPermissions;->checkLocationPermission(II)Z
 PLcom/android/server/location/LocationPermissions;->enforceLocationPermission(III)V
-PLcom/android/server/location/LocationPermissions;->getCallingOrSelfPermissionLevel(Landroid/content/Context;)I
 PLcom/android/server/location/LocationPermissions;->getPermissionLevel(Landroid/content/Context;II)I
 PLcom/android/server/location/altitude/AltitudeService$Lifecycle;-><clinit>()V
 PLcom/android/server/location/altitude/AltitudeService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/altitude/AltitudeService$Lifecycle;->onStart()V
 PLcom/android/server/location/altitude/AltitudeService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/contexthub/ConcurrentLinkedEvictingDeque;-><init>(I)V
+PLcom/android/server/location/contexthub/ConcurrentLinkedEvictingDeque;-><init>()V
 PLcom/android/server/location/contexthub/ConcurrentLinkedEvictingDeque;->add(Ljava/lang/Object;)Z
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda1;->runOrThrow()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda2;->runOrThrow()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda3;-><init>(Landroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda3;->accept(Landroid/hardware/location/IContextHubClientCallback;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;JLandroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;Landroid/hardware/location/NanoAppMessage;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;I)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda0;->runOrThrow()V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda5;-><init>(Landroid/hardware/location/NanoAppMessage;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda5;->accept(Landroid/hardware/location/IContextHubClientCallback;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;JLandroid/hardware/location/NanoAppMessage;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;
+PLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;Landroid/hardware/location/NanoAppMessage;)V
 PLcom/android/server/location/contexthub/ContextHubClientBroker$1;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$PendingIntentRequest;-><init>()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker$PendingIntentRequest;->hasPendingIntent()Z
-PLcom/android/server/location/contexthub/ContextHubClientBroker$PendingIntentRequest;->isValid()Z
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->$r8$lambda$5LN1r8kQkqBv9B8howzlawnr-GI(Landroid/hardware/location/NanoAppMessage;Landroid/hardware/location/IContextHubClientCallback;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->$r8$lambda$7GaKk9ODLn9h9dIT1DAjkZFa4iM(Lcom/android/server/location/contexthub/ContextHubClientBroker;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->$r8$lambda$QjaJyLv-rQuyhtluWSnqhPk-eIU(Lcom/android/server/location/contexthub/ContextHubClientBroker;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$1;->onQueryResponse(ILjava/util/List;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$2;-><init>(Lcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda7;Lcom/android/server/location/contexthub/ContextHubClientBroker;)V
+PLcom/android/server/location/contexthub/ContextHubClientBroker$2;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/location/contexthub/ContextHubClientBroker;-><init>(Landroid/content/Context;Lcom/android/server/location/contexthub/IContextHubWrapper;Lcom/android/server/location/contexthub/ContextHubClientManager;Landroid/hardware/location/ContextHubInfo;SLandroid/hardware/location/IContextHubClientCallback;Ljava/lang/String;Lcom/android/server/location/contexthub/ContextHubTransactionManager;Landroid/app/PendingIntent;JLjava/lang/String;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;-><init>(Landroid/content/Context;Lcom/android/server/location/contexthub/IContextHubWrapper;Lcom/android/server/location/contexthub/ContextHubClientManager;Landroid/hardware/location/ContextHubInfo;SLandroid/hardware/location/IContextHubClientCallback;Ljava/lang/String;Lcom/android/server/location/contexthub/ContextHubTransactionManager;Ljava/lang/String;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->acquireWakeLock()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->attachDeathRecipient()V
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->callbackFinished()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->getAttachedContextHubId()I
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->getHostEndPointId()S
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->checkNanoappPermsAsync()V
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->createIntent(I)Landroid/content/Intent;
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->doSendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;Landroid/hardware/location/IContextHubTransactionCallback;)I
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->doSendPendingIntent(Landroid/app/PendingIntent;Landroid/content/Intent;Landroid/app/PendingIntent$OnFinished;)B
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->getId()I
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->hasPermissions(Ljava/util/List;)Z
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->invokeCallback(Lcom/android/server/location/contexthub/ContextHubClientBroker$CallbackConsumer;)B
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->lambda$acquireWakeLock$12()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->lambda$releaseWakeLock$13()V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->lambda$sendMessageToClient$0(Landroid/hardware/location/NanoAppMessage;Landroid/hardware/location/IContextHubClientCallback;)V
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->notePermissions(Ljava/util/List;Ljava/lang/String;)Z
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->releaseWakeLock()V
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->sendHostEndpointConnectedEvent()V
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->sendMessageToClient(Landroid/hardware/location/NanoAppMessage;Ljava/util/List;Ljava/util/List;)B
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->sendPendingIntent(Ljava/util/function/Supplier;JLjava/util/function/Consumer;)B
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->startMonitoringOpChanges()V
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
+PLcom/android/server/location/contexthub/ContextHubClientBroker;->sendPendingIntent(Ljava/util/function/Supplier;JLcom/android/server/location/contexthub/ContextHubClientBroker$$ExternalSyntheticLambda7;)B
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->toString()Ljava/lang/String;
-PLcom/android/server/location/contexthub/ContextHubClientBroker;->updateNanoAppAuthState(JLjava/util/List;Z)I
 PLcom/android/server/location/contexthub/ContextHubClientBroker;->updateNanoAppAuthState(JLjava/util/List;ZZ)I
-PLcom/android/server/location/contexthub/ContextHubClientManager$RegistrationRecord;-><init>(Lcom/android/server/location/contexthub/ContextHubClientManager;Ljava/lang/String;I)V
+PLcom/android/server/location/contexthub/ContextHubClientManager$RegistrationRecord;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/location/contexthub/ContextHubClientManager$RegistrationRecord;->toString()Ljava/lang/String;
 PLcom/android/server/location/contexthub/ContextHubClientManager;-><init>(Landroid/content/Context;Lcom/android/server/location/contexthub/IContextHubWrapper;)V
+PLcom/android/server/location/contexthub/ContextHubClientManager;->getClientBroker(ILandroid/app/PendingIntent;J)Lcom/android/server/location/contexthub/ContextHubClientBroker;
 PLcom/android/server/location/contexthub/ContextHubClientManager;->getHostEndPointId()S
 PLcom/android/server/location/contexthub/ContextHubClientManager;->onMessageFromNanoApp(ISLandroid/hardware/location/NanoAppMessage;Ljava/util/List;Ljava/util/List;)B
 PLcom/android/server/location/contexthub/ContextHubClientManager;->registerClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/IContextHubClientCallback;Ljava/lang/String;Lcom/android/server/location/contexthub/ContextHubTransactionManager;Ljava/lang/String;)Landroid/hardware/location/IContextHubClient;
+PLcom/android/server/location/contexthub/ContextHubClientManager;->toString()Ljava/lang/String;
 PLcom/android/server/location/contexthub/ContextHubEventLogger$ContextHubEventBase;-><init>(JI)V
-PLcom/android/server/location/contexthub/ContextHubEventLogger$NanoappEventBase;-><init>(JIJZ)V
+PLcom/android/server/location/contexthub/ContextHubEventLogger$NanoappEventBase;-><init>(IJJZ)V
 PLcom/android/server/location/contexthub/ContextHubEventLogger$NanoappMessageEvent;-><init>(JILandroid/hardware/location/NanoAppMessage;Z)V
-PLcom/android/server/location/contexthub/ContextHubEventLogger;-><clinit>()V
+PLcom/android/server/location/contexthub/ContextHubEventLogger$NanoappMessageEvent;->toString()Ljava/lang/String;
 PLcom/android/server/location/contexthub/ContextHubEventLogger;-><init>()V
 PLcom/android/server/location/contexthub/ContextHubEventLogger;->getInstance()Lcom/android/server/location/contexthub/ContextHubEventLogger;
 PLcom/android/server/location/contexthub/ContextHubEventLogger;->logMessageFromNanoapp(ILandroid/hardware/location/NanoAppMessage;Z)V
-PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/ContextHubService;)V
+PLcom/android/server/location/contexthub/ContextHubEventLogger;->toString()Ljava/lang/String;
 PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda2;-><init>(Landroid/hardware/location/NanoAppFilter;Ljava/util/ArrayList;)V
-HPLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
 PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/contexthub/ContextHubService;)V
-PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda4;->onSensorPrivacyChanged(IZ)V
-PLcom/android/server/location/contexthub/ContextHubService$10;-><init>(Lcom/android/server/location/contexthub/ContextHubService;I)V
-PLcom/android/server/location/contexthub/ContextHubService$10;->onQueryResponse(ILjava/util/List;)V
+PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/location/contexthub/ContextHubService;)V
+PLcom/android/server/location/contexthub/ContextHubService$$ExternalSyntheticLambda6;->onSensorPrivacyChanged(IZ)V
 PLcom/android/server/location/contexthub/ContextHubService$1;-><init>(Lcom/android/server/location/contexthub/ContextHubService;I)V
 PLcom/android/server/location/contexthub/ContextHubService$1;->finishCallback()V
 PLcom/android/server/location/contexthub/ContextHubService$1;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/contexthub/ContextHubService$2;-><init>(Lcom/android/server/location/contexthub/ContextHubService;Landroid/os/Handler;)V
-PLcom/android/server/location/contexthub/ContextHubService$3;-><init>(Lcom/android/server/location/contexthub/ContextHubService;)V
+PLcom/android/server/location/contexthub/ContextHubService$2;-><init>(Lcom/android/server/location/contexthub/ContextHubService;I)V
+PLcom/android/server/location/contexthub/ContextHubService$2;->onChange(Z)V
+PLcom/android/server/location/contexthub/ContextHubService$3;-><init>(Lcom/android/server/location/contexthub/ContextHubService;I)V
 PLcom/android/server/location/contexthub/ContextHubService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/location/contexthub/ContextHubService$4;-><init>(Lcom/android/server/location/contexthub/ContextHubService;Landroid/os/Handler;)V
-PLcom/android/server/location/contexthub/ContextHubService$5;-><init>(Lcom/android/server/location/contexthub/ContextHubService;Landroid/os/Handler;)V
-PLcom/android/server/location/contexthub/ContextHubService$6;-><init>(Lcom/android/server/location/contexthub/ContextHubService;)V
-PLcom/android/server/location/contexthub/ContextHubService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/location/contexthub/ContextHubService$7;-><init>(Lcom/android/server/location/contexthub/ContextHubService;Landroid/os/Handler;)V
+PLcom/android/server/location/contexthub/ContextHubService$9;-><init>(Lcom/android/server/location/contexthub/ContextHubService;II)V
+PLcom/android/server/location/contexthub/ContextHubService$9;->onQueryResponse(ILjava/util/List;)V
 PLcom/android/server/location/contexthub/ContextHubService$ContextHubServiceCallback;-><init>(Lcom/android/server/location/contexthub/ContextHubService;I)V
 PLcom/android/server/location/contexthub/ContextHubService$ContextHubServiceCallback;->handleNanoappInfo(Ljava/util/List;)V
 PLcom/android/server/location/contexthub/ContextHubService$ContextHubServiceCallback;->handleNanoappMessage(SLandroid/hardware/location/NanoAppMessage;Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/location/contexthub/ContextHubService;->$r8$lambda$bctfr7Wm6zM1mt5FwQ_kHaH8yCA(Lcom/android/server/location/contexthub/ContextHubService;IZ)V
-PLcom/android/server/location/contexthub/ContextHubService;->$r8$lambda$oZBCHNRjaf6Cw4wdWNHDMe-IVbc(Landroid/hardware/location/NanoAppFilter;Ljava/util/ArrayList;Landroid/hardware/location/NanoAppInstanceInfo;)V
-PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$fgetmDefaultClientMap(Lcom/android/server/location/contexthub/ContextHubService;)Ljava/util/Map;
-PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$fgetmNanoAppStateManager(Lcom/android/server/location/contexthub/ContextHubService;)Lcom/android/server/location/contexthub/NanoAppStateManager;
 PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$mhandleClientMessageCallback(Lcom/android/server/location/contexthub/ContextHubService;ISLandroid/hardware/location/NanoAppMessage;Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$mhandleQueryAppsCallback(Lcom/android/server/location/contexthub/ContextHubService;ILjava/util/List;)V
-PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$monMessageReceiptOldApi(Lcom/android/server/location/contexthub/ContextHubService;III[B)I
-PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$msendBtSettingUpdate(Lcom/android/server/location/contexthub/ContextHubService;Z)V
-PLcom/android/server/location/contexthub/ContextHubService;->-$$Nest$msendWifiSettingUpdate(Lcom/android/server/location/contexthub/ContextHubService;Z)V
 PLcom/android/server/location/contexthub/ContextHubService;-><init>(Landroid/content/Context;Lcom/android/server/location/contexthub/IContextHubWrapper;)V
 PLcom/android/server/location/contexthub/ContextHubService;->checkHalProxyAndContextHubId(ILandroid/hardware/location/IContextHubTransactionCallback;I)Z
-PLcom/android/server/location/contexthub/ContextHubService;->createDefaultClientCallback(I)Landroid/hardware/location/IContextHubClientCallback;
-PLcom/android/server/location/contexthub/ContextHubService;->createQueryTransactionCallback(I)Landroid/hardware/location/IContextHubTransactionCallback;
+PLcom/android/server/location/contexthub/ContextHubService;->cleanupReliableMessageRecordQueue()V
+PLcom/android/server/location/contexthub/ContextHubService;->createClient(ILandroid/hardware/location/IContextHubClientCallback;Ljava/lang/String;Ljava/lang/String;)Landroid/hardware/location/IContextHubClient;
+PLcom/android/server/location/contexthub/ContextHubService;->createPendingIntentClient(ILandroid/app/PendingIntent;JLjava/lang/String;)Landroid/hardware/location/IContextHubClient;
+PLcom/android/server/location/contexthub/ContextHubService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/location/contexthub/ContextHubService;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
 PLcom/android/server/location/contexthub/ContextHubService;->getCallingPackageName()Ljava/lang/String;
 PLcom/android/server/location/contexthub/ContextHubService;->getContextHubHandles()[I
 PLcom/android/server/location/contexthub/ContextHubService;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
 PLcom/android/server/location/contexthub/ContextHubService;->getContextHubs()Ljava/util/List;
 PLcom/android/server/location/contexthub/ContextHubService;->getCurrentUserId()I
-PLcom/android/server/location/contexthub/ContextHubService;->handleClientMessageCallback(ISLandroid/hardware/location/NanoAppMessage;Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/location/contexthub/ContextHubService;->handleQueryAppsCallback(ILjava/util/List;)V
-PLcom/android/server/location/contexthub/ContextHubService;->initAirplaneModeSettingNotifications()V
-PLcom/android/server/location/contexthub/ContextHubService;->initBtSettingNotifications()V
-PLcom/android/server/location/contexthub/ContextHubService;->initContextHubServiceState(J)Z
-PLcom/android/server/location/contexthub/ContextHubService;->initDefaultClientMap()V
-PLcom/android/server/location/contexthub/ContextHubService;->initLocationSettingNotifications()V
-PLcom/android/server/location/contexthub/ContextHubService;->initMicrophoneSettingNotifications()V
-PLcom/android/server/location/contexthub/ContextHubService;->initWifiSettingNotifications()V
-PLcom/android/server/location/contexthub/ContextHubService;->isValidContextHubId(I)Z
-PLcom/android/server/location/contexthub/ContextHubService;->lambda$findNanoAppOnHub$1(Landroid/hardware/location/NanoAppFilter;Ljava/util/ArrayList;Landroid/hardware/location/NanoAppInstanceInfo;)V
-PLcom/android/server/location/contexthub/ContextHubService;->lambda$initMicrophoneSettingNotifications$0(IZ)V
 PLcom/android/server/location/contexthub/ContextHubService;->onMessageReceiptOldApi(III[B)I
 PLcom/android/server/location/contexthub/ContextHubService;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
 PLcom/android/server/location/contexthub/ContextHubService;->queryNanoAppsInternal(I)Z
@@ -13820,199 +10700,145 @@
 PLcom/android/server/location/contexthub/ContextHubService;->sendAirplaneModeSettingUpdate()V
 PLcom/android/server/location/contexthub/ContextHubService;->sendBtSettingUpdate(Z)V
 PLcom/android/server/location/contexthub/ContextHubService;->sendLocationSettingUpdate()V
-PLcom/android/server/location/contexthub/ContextHubService;->sendMicrophoneDisableSettingUpdate(Z)V
 PLcom/android/server/location/contexthub/ContextHubService;->sendMicrophoneDisableSettingUpdateForCurrentUser()V
-HPLcom/android/server/location/contexthub/ContextHubService;->sendWifiSettingUpdate(Z)V
+PLcom/android/server/location/contexthub/ContextHubService;->sendWifiSettingUpdate(Z)V
 PLcom/android/server/location/contexthub/ContextHubServiceTransaction;-><init>(IILjava/lang/String;)V
 PLcom/android/server/location/contexthub/ContextHubServiceTransaction;->getTimeout(Ljava/util/concurrent/TimeUnit;)J
-PLcom/android/server/location/contexthub/ContextHubServiceTransaction;->getTransactionType()I
-PLcom/android/server/location/contexthub/ContextHubServiceTransaction;->setComplete()V
 PLcom/android/server/location/contexthub/ContextHubServiceTransaction;->toString()Ljava/lang/String;
 PLcom/android/server/location/contexthub/ContextHubServiceUtil;-><clinit>()V
-PLcom/android/server/location/contexthub/ContextHubServiceUtil;->createContextHubInfoMap(Ljava/util/List;)Ljava/util/HashMap;
-PLcom/android/server/location/contexthub/ContextHubServiceUtil;->createNanoAppMessage(Landroid/hardware/contexthub/ContextHubMessage;)Landroid/hardware/location/NanoAppMessage;
-PLcom/android/server/location/contexthub/ContextHubServiceUtil;->createNanoAppStateList([Landroid/hardware/contexthub/NanoappInfo;)Ljava/util/List;
-PLcom/android/server/location/contexthub/ContextHubServiceUtil;->createPrimitiveIntArray(Ljava/util/Collection;)[I
-PLcom/android/server/location/contexthub/ContextHubStatsLog;->write(IJI)V
-PLcom/android/server/location/contexthub/ContextHubTransactionManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/ContextHubTransactionManager;Lcom/android/server/location/contexthub/ContextHubServiceTransaction;)V
-PLcom/android/server/location/contexthub/ContextHubTransactionManager$6;-><init>(Lcom/android/server/location/contexthub/ContextHubTransactionManager;IILjava/lang/String;ILandroid/hardware/location/IContextHubTransactionCallback;)V
+PLcom/android/server/location/contexthub/ContextHubServiceUtil;->createAidlContextHubMessage(SLandroid/hardware/location/NanoAppMessage;)Landroid/hardware/contexthub/ContextHubMessage;
+PLcom/android/server/location/contexthub/ContextHubServiceUtil;->formatDateFromTimestamp(J)Ljava/lang/String;
+PLcom/android/server/location/contexthub/ContextHubTestModeManager;-><init>()V
+PLcom/android/server/location/contexthub/ContextHubTransactionManager$$ExternalSyntheticLambda2;->acceptTransaction(Lcom/android/server/location/contexthub/ContextHubServiceTransaction;)Z
+PLcom/android/server/location/contexthub/ContextHubTransactionManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/contexthub/ContextHubTransactionManager;Lcom/android/server/location/contexthub/ContextHubServiceTransaction;)V
+PLcom/android/server/location/contexthub/ContextHubTransactionManager$6;-><init>(Lcom/android/server/location/contexthub/ContextHubTransactionManager;ILjava/lang/String;ILandroid/hardware/location/IContextHubTransactionCallback;)V
 PLcom/android/server/location/contexthub/ContextHubTransactionManager$6;->onQueryResponse(ILjava/util/List;)V
 PLcom/android/server/location/contexthub/ContextHubTransactionManager$6;->onTransact()I
-PLcom/android/server/location/contexthub/ContextHubTransactionManager$TransactionRecord;-><init>(Lcom/android/server/location/contexthub/ContextHubTransactionManager;Ljava/lang/String;)V
-PLcom/android/server/location/contexthub/ContextHubTransactionManager;->-$$Nest$fgetmContextHubProxy(Lcom/android/server/location/contexthub/ContextHubTransactionManager;)Lcom/android/server/location/contexthub/IContextHubWrapper;
+PLcom/android/server/location/contexthub/ContextHubTransactionManager$TransactionRecord;-><init>(Ljava/lang/String;)V
+PLcom/android/server/location/contexthub/ContextHubTransactionManager$TransactionRecord;->toString()Ljava/lang/String;
+PLcom/android/server/location/contexthub/ContextHubTransactionManager;-><clinit>()V
 PLcom/android/server/location/contexthub/ContextHubTransactionManager;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper;Lcom/android/server/location/contexthub/ContextHubClientManager;Lcom/android/server/location/contexthub/NanoAppStateManager;)V
 PLcom/android/server/location/contexthub/ContextHubTransactionManager;->addTransaction(Lcom/android/server/location/contexthub/ContextHubServiceTransaction;)V
-PLcom/android/server/location/contexthub/ContextHubTransactionManager;->createQueryTransaction(ILandroid/hardware/location/IContextHubTransactionCallback;Ljava/lang/String;)Lcom/android/server/location/contexthub/ContextHubServiceTransaction;
+PLcom/android/server/location/contexthub/ContextHubTransactionManager;->getTransactionAndHandleNext(Lcom/android/server/location/contexthub/ContextHubTransactionManager$TransactionAcceptConditions;)Lcom/android/server/location/contexthub/ContextHubServiceTransaction;
 PLcom/android/server/location/contexthub/ContextHubTransactionManager;->onQueryResponse(Ljava/util/List;)V
-PLcom/android/server/location/contexthub/ContextHubTransactionManager;->removeTransactionAndStartNext()V
-PLcom/android/server/location/contexthub/ContextHubTransactionManager;->startNextTransaction()V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ICallback;)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Ljava/util/List;)V
+PLcom/android/server/location/contexthub/ContextHubTransactionManager;->startNextTransaction$1()V
+PLcom/android/server/location/contexthub/ContextHubTransactionManager;->toString()Ljava/lang/String;
+PLcom/android/server/location/contexthub/HubInfoRegistry;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper;)V
+PLcom/android/server/location/contexthub/HubInfoRegistry;->refreshCachedHubs()V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$$ExternalSyntheticLambda0;-><init>(SLandroid/hardware/location/NanoAppMessage;Landroid/hardware/contexthub/IContextHub;I)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/contexthub/ContextHubService$ContextHubServiceCallback;)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Ljava/lang/Object;I)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->$r8$lambda$73t3WS8YfVk6BW0zU3MPErwk2sU(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->$r8$lambda$hrYSC_xKcGsK1WsvqlKFNelyQUI(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Ljava/util/List;)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;-><clinit>()V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;ILcom/android/server/location/contexthub/IContextHubWrapper$ICallback;)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;Lcom/android/server/location/contexthub/ContextHubService$ContextHubServiceCallback;)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->handleContextHubMessage(Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->handleNanoappInfo([Landroid/hardware/contexthub/NanoappInfo;)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->lambda$handleContextHubMessage$1(Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->lambda$handleNanoappInfo$0(Ljava/util/List;)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->-$$Nest$fgetmHandler(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;)Landroid/os/Handler;
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;-><init>(Landroid/hardware/contexthub/IContextHub;)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->getContextHubs()Landroid/util/Pair;
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->getHub()Landroid/hardware/contexthub/IContextHub;
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->getHubs()Landroid/util/Pair;
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->linkWrapperToHubDeath()V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->getHubs()Ljava/util/List;
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->getPreloadedNanoappIds(I)[J
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onAirplaneModeSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onBtMainSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onBtScanningSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onHostEndpointConnected(Landroid/hardware/contexthub/HostEndpointInfo;)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onLocationSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onMicrophoneSettingChanged(Z)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onSettingChanged(BZ)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onSettingChanged(ZB)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onWifiMainSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onWifiScanningSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->onWifiSettingChanged(Z)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->queryNanoapps(I)I
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->registerCallback(ILcom/android/server/location/contexthub/IContextHubWrapper$ICallback;)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->registerCallback(ILcom/android/server/location/contexthub/ContextHubService$ContextHubServiceCallback;)V
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->registerExistingCallback(I)V
-PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->setHub(Landroid/hardware/contexthub/IContextHub;)V
+PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->sendMessageToContextHub(SILandroid/hardware/location/NanoAppMessage;)I
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->supportsAirplaneModeSettingNotifications()Z
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->supportsBtSettingNotifications()Z
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->supportsLocationSettingNotifications()Z
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->supportsMicrophoneSettingNotifications()Z
 PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;->supportsWifiSettingNotifications()Z
-PLcom/android/server/location/contexthub/IContextHubWrapper;-><init>()V
-PLcom/android/server/location/contexthub/IContextHubWrapper;->getContextHubWrapper()Lcom/android/server/location/contexthub/IContextHubWrapper;
-PLcom/android/server/location/contexthub/IContextHubWrapper;->maybeConnectToAidl()Lcom/android/server/location/contexthub/IContextHubWrapper;
 PLcom/android/server/location/contexthub/IContextHubWrapper;->maybeConnectToAidlGetProxy()Landroid/hardware/contexthub/IContextHub;
 PLcom/android/server/location/contexthub/NanoAppStateManager;-><init>()V
-HPLcom/android/server/location/contexthub/NanoAppStateManager;->addNanoAppInstance(IJI)V
+PLcom/android/server/location/contexthub/NanoAppStateManager;->addNanoAppInstance(IIJ)V
 PLcom/android/server/location/contexthub/NanoAppStateManager;->foreachNanoAppInstanceInfo(Ljava/util/function/Consumer;)V
-HPLcom/android/server/location/contexthub/NanoAppStateManager;->getNanoAppHandle(IJ)I
-PLcom/android/server/location/contexthub/NanoAppStateManager;->handleQueryAppEntry(IJI)V
-PLcom/android/server/location/contexthub/NanoAppStateManager;->removeNanoAppInstance(IJ)V
-HPLcom/android/server/location/contexthub/NanoAppStateManager;->updateCache(ILjava/util/List;)V
+HPLcom/android/server/location/contexthub/NanoAppStateManager;->getNanoAppHandle(IJ)I+]Landroid/hardware/location/NanoAppInstanceInfo;Landroid/hardware/location/NanoAppInstanceInfo;]Ljava/util/Collection;Ljava/util/HashMap$Values;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$ValueIterator;
+PLcom/android/server/location/contexthub/NanoAppStateManager;->handleQueryAppEntry(IIJ)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector$1;-><init>(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector$1;->onCountryDetected(Landroid/location/Country;)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector$2;-><init>(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;Landroid/location/Country;Landroid/location/Country;ZZ)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector$2;->run()V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector$3;-><init>(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector$4;-><init>(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->-$$Nest$fputmCountryFromLocation(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;Landroid/location/Country;)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->-$$Nest$mdetectCountry(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;ZZ)Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->-$$Nest$mstopLocationBasedDetector(Lcom/android/server/location/countrydetector/ComprehensiveCountryDetector;)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->addPhoneStateListener()V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->addToLogs(Landroid/location/Country;)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->cancelLocationRefresh()V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->createLocationBasedCountryDetector()Lcom/android/server/location/countrydetector/CountryDetectorBase;
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->detectCountry()Landroid/location/Country;
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->detectCountry(ZZ)Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->getCountry()Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->getLastKnownLocationBasedCountry()Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->getLocaleCountry()Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->getNetworkBasedCountry()Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->getSimBasedCountry()Landroid/location/Country;
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->isAirplaneModeOff()Z
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->isGeoCoderImplemented()Z
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->isNetworkCountryCodeAvailable()Z
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->notifyIfCountryChanged(Landroid/location/Country;Landroid/location/Country;)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->removePhoneStateListener()V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->runAfterDetection(Landroid/location/Country;Landroid/location/Country;ZZ)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->runAfterDetectionAsync(Landroid/location/Country;Landroid/location/Country;ZZ)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->scheduleLocationRefresh()V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->setCountryListener(Landroid/location/CountryListener;)V
-PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->startLocationBasedDetector(Landroid/location/CountryListener;)V
 PLcom/android/server/location/countrydetector/ComprehensiveCountryDetector;->stopLocationBasedDetector()V
 PLcom/android/server/location/countrydetector/CountryDetectorBase;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/countrydetector/CountryDetectorBase;->notifyListener(Landroid/location/Country;)V
-PLcom/android/server/location/countrydetector/CountryDetectorBase;->setCountryListener(Landroid/location/CountryListener;)V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector$1;-><init>(Lcom/android/server/location/countrydetector/LocationBasedCountryDetector;)V
+PLcom/android/server/location/countrydetector/LocationBasedCountryDetector$1;->onLocationChanged(Landroid/location/Location;)V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector$2;-><init>(Lcom/android/server/location/countrydetector/LocationBasedCountryDetector;)V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector$2;->run()V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector$3;-><init>(Lcom/android/server/location/countrydetector/LocationBasedCountryDetector;Landroid/location/Location;)V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector$3;->run()V
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->-$$Nest$mqueryCountryCode(Lcom/android/server/location/countrydetector/LocationBasedCountryDetector;Landroid/location/Location;)V
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->detectCountry()Landroid/location/Country;
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->getEnabledProviders()Ljava/util/List;
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->getLastKnownLocation()Landroid/location/Location;
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->getQueryLocationTimeout()J
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->isAcceptableProvider(Ljava/lang/String;)Z
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->queryCountryCode(Landroid/location/Location;)V
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->registerListener(Ljava/lang/String;Landroid/location/LocationListener;)V
 PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->stop()V
-PLcom/android/server/location/countrydetector/LocationBasedCountryDetector;->unregisterListener(Landroid/location/LocationListener;)V
+PLcom/android/server/location/eventlog/LocalEventLog$LogIterator;-><init>(Lcom/android/server/location/eventlog/LocalEventLog;)V
+PLcom/android/server/location/eventlog/LocalEventLog$LogIterator;->hasNext()Z
+PLcom/android/server/location/eventlog/LocalEventLog$LogIterator;->increment()V
+PLcom/android/server/location/eventlog/LocalEventLog$LogIterator;->next()V
 PLcom/android/server/location/eventlog/LocalEventLog;-><clinit>()V
-PLcom/android/server/location/eventlog/LocalEventLog;-><init>(ILjava/lang/Class;)V
-HPLcom/android/server/location/eventlog/LocalEventLog;->addLog(JLjava/lang/Object;)V
-HPLcom/android/server/location/eventlog/LocalEventLog;->addLogEventInternal(ZILjava/lang/Object;)V
-PLcom/android/server/location/eventlog/LocalEventLog;->countTrailingZeros(I)I
-PLcom/android/server/location/eventlog/LocalEventLog;->createEntry(ZI)I
-PLcom/android/server/location/eventlog/LocalEventLog;->incrementIndex(I)I
-PLcom/android/server/location/eventlog/LocalEventLog;->isEmpty()Z
-PLcom/android/server/location/eventlog/LocalEventLog;->wrapIndex(I)I
-PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;-><init>()V
-PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->markRequestActive()V
-PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->markRequestAdded(J)V
-PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->markRequestForeground()V
-PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->markRequestInactive()V
-PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->markRequestRemoved()V
+PLcom/android/server/location/eventlog/LocalEventLog;-><init>(I)V
+PLcom/android/server/location/eventlog/LocalEventLog;->addLog(JLjava/lang/Object;)V
+PLcom/android/server/location/eventlog/LocalEventLog;->addLogEventInternal(Ljava/lang/Object;IZ)V
+PLcom/android/server/location/eventlog/LocalEventLog;->iterate(Lcom/android/server/location/eventlog/LocationEventLog$$ExternalSyntheticLambda0;[Lcom/android/server/location/eventlog/LocalEventLog;)V
+PLcom/android/server/location/eventlog/LocationEventLog$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;Ljava/lang/StringBuilder;JLjava/util/function/Consumer;)V
+PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->intervalToString(J)Ljava/lang/String;
+PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->toString()Ljava/lang/String;
 PLcom/android/server/location/eventlog/LocationEventLog$AggregateStats;->updateTotals()V
-PLcom/android/server/location/eventlog/LocationEventLog$LocationsEventLog;-><init>(I)V
+PLcom/android/server/location/eventlog/LocationEventLog$LocationEnabledEvent;-><init>(IIZ)V
+PLcom/android/server/location/eventlog/LocationEventLog$LocationEnabledEvent;->toString()Ljava/lang/String;
 PLcom/android/server/location/eventlog/LocationEventLog$ProviderClientRegisterEvent;-><init>(Ljava/lang/String;ZLandroid/location/util/identity/CallerIdentity;Landroid/location/LocationRequest;)V
-PLcom/android/server/location/eventlog/LocationEventLog$ProviderEnabledEvent;-><init>(Ljava/lang/String;IZ)V
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderClientRegisterEvent;->toString()Ljava/lang/String;
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderDeliverLocationEvent;-><init>(Ljava/lang/String;ILandroid/location/util/identity/CallerIdentity;)V
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderDeliverLocationEvent;->toString()Ljava/lang/String;
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderEnabledEvent;-><init>(ILjava/lang/String;Z)V
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderEnabledEvent;->toString()Ljava/lang/String;
 PLcom/android/server/location/eventlog/LocationEventLog$ProviderEvent;-><init>(Ljava/lang/String;)V
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderReceiveLocationEvent;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderReceiveLocationEvent;->toString()Ljava/lang/String;
 PLcom/android/server/location/eventlog/LocationEventLog$ProviderUpdateEvent;-><init>(Ljava/lang/String;Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/eventlog/LocationEventLog$UserVisibilityChangedEvent;-><init>(IZ)V
+PLcom/android/server/location/eventlog/LocationEventLog$ProviderUpdateEvent;->toString()Ljava/lang/String;
 PLcom/android/server/location/eventlog/LocationEventLog;-><clinit>()V
 PLcom/android/server/location/eventlog/LocationEventLog;-><init>()V
-PLcom/android/server/location/eventlog/LocationEventLog;->addLog(Ljava/lang/Object;)V
-HPLcom/android/server/location/eventlog/LocationEventLog;->getAggregateStats(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)Lcom/android/server/location/eventlog/LocationEventLog$AggregateStats;
-PLcom/android/server/location/eventlog/LocationEventLog;->getLocationsLogSize()I
-PLcom/android/server/location/eventlog/LocationEventLog;->getLogSize()I
-PLcom/android/server/location/eventlog/LocationEventLog;->logProviderClientActive(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)V
+PLcom/android/server/location/eventlog/LocationEventLog;->addLog$1(Ljava/lang/Object;)V
+PLcom/android/server/location/eventlog/LocationEventLog;->getAggregateStats(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)Lcom/android/server/location/eventlog/LocationEventLog$AggregateStats;
+PLcom/android/server/location/eventlog/LocationEventLog;->iterate(Ljava/lang/String;Ljava/util/function/Consumer;)V
 PLcom/android/server/location/eventlog/LocationEventLog;->logProviderClientForeground(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)V
-PLcom/android/server/location/eventlog/LocationEventLog;->logProviderClientInactive(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)V
-PLcom/android/server/location/eventlog/LocationEventLog;->logProviderClientRegistered(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;Landroid/location/LocationRequest;)V
-PLcom/android/server/location/eventlog/LocationEventLog;->logProviderClientUnregistered(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)V
-PLcom/android/server/location/eventlog/LocationEventLog;->logProviderEnabled(Ljava/lang/String;IZ)V
-PLcom/android/server/location/eventlog/LocationEventLog;->logProviderUpdateRequest(Ljava/lang/String;Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/eventlog/LocationEventLog;->logUserVisibilityChanged(IZ)V
+PLcom/android/server/location/eventlog/LocationEventLog;->logProviderDeliveredLocations(Ljava/lang/String;ILandroid/location/util/identity/CallerIdentity;)V
 PLcom/android/server/location/fudger/LocationFudger;-><clinit>()V
-PLcom/android/server/location/fudger/LocationFudger;-><init>(F)V
 PLcom/android/server/location/fudger/LocationFudger;-><init>(FLjava/time/Clock;Ljava/util/Random;)V
 PLcom/android/server/location/fudger/LocationFudger;->nextRandomOffset()D
-PLcom/android/server/location/fudger/LocationFudger;->resetOffsets()V
 PLcom/android/server/location/geofence/GeofenceManager$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/geofence/GeofenceManager;)V
-PLcom/android/server/location/geofence/GeofenceManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/geofence/GeofenceManager;)V
-PLcom/android/server/location/geofence/GeofenceManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/geofence/GeofenceManager;)V
+PLcom/android/server/location/geofence/GeofenceManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/geofence/GeofenceManager;I)V
 PLcom/android/server/location/geofence/GeofenceManager$1;-><init>(Lcom/android/server/location/geofence/GeofenceManager;)V
-PLcom/android/server/location/geofence/GeofenceManager;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;)V
+PLcom/android/server/location/geofence/GeofenceManager;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationManagerService$SystemInjector;)V
 PLcom/android/server/location/geofence/GeofenceProxy$GeofenceProxyServiceConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/geofence/GeofenceProxy;)V
 PLcom/android/server/location/geofence/GeofenceProxy$GeofenceProxyServiceConnection;-><init>(Lcom/android/server/location/geofence/GeofenceProxy;)V
 PLcom/android/server/location/geofence/GeofenceProxy$GeofenceProxyServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/location/geofence/GeofenceProxy;-><init>(Landroid/content/Context;Landroid/location/IGpsGeofenceHardware;)V
-PLcom/android/server/location/geofence/GeofenceProxy;->createAndBind(Landroid/content/Context;Landroid/location/IGpsGeofenceHardware;)Lcom/android/server/location/geofence/GeofenceProxy;
-PLcom/android/server/location/geofence/GeofenceProxy;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;)V
+PLcom/android/server/location/geofence/GeofenceProxy;-><init>(Landroid/content/Context;Lcom/android/server/location/gnss/GnssGeofenceProxy;)V
 PLcom/android/server/location/geofence/GeofenceProxy;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;)V
-PLcom/android/server/location/geofence/GeofenceProxy;->register(Landroid/content/Context;)Z
-PLcom/android/server/location/geofence/GeofenceProxy;->updateGeofenceHardware(Landroid/os/IBinder;)V
-PLcom/android/server/location/gnss/ExponentialBackOff;-><init>(JJ)V
+PLcom/android/server/location/geofence/GeofenceProxy;->onUnbind()V
+PLcom/android/server/location/gnss/ExponentialBackOff;-><init>()V
+PLcom/android/server/location/gnss/ExponentialBackOff;->toString()Ljava/lang/String;
 PLcom/android/server/location/gnss/GnssAntennaInfoProvider;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;)V
 PLcom/android/server/location/gnss/GnssAntennaInfoProvider;->onHalStarted()V
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda0;->set(I)Z
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda1;->set(I)Z
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda3;->set(I)Z
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda4;->set(I)Z
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda5;-><init>()V
-PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda5;->set(I)Z
+PLcom/android/server/location/gnss/GnssConfiguration$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;-><init>(II)V
 PLcom/android/server/location/gnss/GnssConfiguration;->$r8$lambda$3fQhh0HIdjq4jMHxYVTiFqO2lhg(I)Z
 PLcom/android/server/location/gnss/GnssConfiguration;->$r8$lambda$F9k7STpxBfONZ7Aqgxh165D_nWw(I)Z
@@ -14021,269 +10847,152 @@
 PLcom/android/server/location/gnss/GnssConfiguration;->$r8$lambda$vT_XZFD-4uMu_ePbNOLadVMKlCY(I)Z
 PLcom/android/server/location/gnss/GnssConfiguration;-><clinit>()V
 PLcom/android/server/location/gnss/GnssConfiguration;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/gnss/GnssConfiguration;->getBooleanConfig(Ljava/lang/String;Z)Z
-PLcom/android/server/location/gnss/GnssConfiguration;->getC2KHost()Ljava/lang/String;
-PLcom/android/server/location/gnss/GnssConfiguration;->getC2KPort(I)I
-PLcom/android/server/location/gnss/GnssConfiguration;->getEsExtensionSec()I
-PLcom/android/server/location/gnss/GnssConfiguration;->getHalInterfaceVersion()Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;
-PLcom/android/server/location/gnss/GnssConfiguration;->getIntConfig(Ljava/lang/String;I)I
-PLcom/android/server/location/gnss/GnssConfiguration;->getProxyApps()Ljava/util/List;
-PLcom/android/server/location/gnss/GnssConfiguration;->getRangeCheckedConfigEsExtensionSec()I
-PLcom/android/server/location/gnss/GnssConfiguration;->getSuplEs(I)I
-PLcom/android/server/location/gnss/GnssConfiguration;->getSuplHost()Ljava/lang/String;
-PLcom/android/server/location/gnss/GnssConfiguration;->getSuplMode(I)I
-PLcom/android/server/location/gnss/GnssConfiguration;->getSuplPort(I)I
-PLcom/android/server/location/gnss/GnssConfiguration;->isActiveSimEmergencySuplEnabled()Z
-PLcom/android/server/location/gnss/GnssConfiguration;->isConfigEsExtensionSecSupported(Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/gnss/GnssConfiguration;->isConfigGpsLockSupported(Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/gnss/GnssConfiguration;->isConfigSuplEsSupported(Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/gnss/GnssConfiguration;->isNiSuplMessageInjectionEnabled()Z
-PLcom/android/server/location/gnss/GnssConfiguration;->isSimAbsent(Landroid/content/Context;)Z
-HPLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromCarrierConfig(ZI)V
+PLcom/android/server/location/gnss/GnssConfiguration;->getIntConfig(Ljava/lang/String;)I
+PLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromCarrierConfig(IZ)V
 PLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromGpsDebugConfig(Ljava/util/Properties;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromResource(Landroid/content/Context;Ljava/util/Properties;)V
-HPLcom/android/server/location/gnss/GnssConfiguration;->logConfigurations()V
-PLcom/android/server/location/gnss/GnssConfiguration;->reloadGpsProperties()V
-HPLcom/android/server/location/gnss/GnssConfiguration;->reloadGpsProperties(ZI)V
+PLcom/android/server/location/gnss/GnssConfiguration;->reloadGpsProperties(IZ)V
 PLcom/android/server/location/gnss/GnssConfiguration;->setSatelliteBlocklist([I[I)V
 PLcom/android/server/location/gnss/GnssGeofenceProxy;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;)V
 PLcom/android/server/location/gnss/GnssGeofenceProxy;->isHardwareGeofenceSupported()Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda13;-><init>(Ljava/lang/String;)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda10;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda1;->onProviderEnabledChanged(Ljava/lang/String;IZ)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
-HPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda4;->onAppForegroundChanged(IZ)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda4;->onAppForegroundChanged(IZ)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda5;-><init>(II)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda9;-><init>(IZ)V
-HPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$1;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$1;->onLocationPermissionsChanged(I)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$1;->onLocationPermissionsChanged(Ljava/lang/String;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$2;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$2;->onPackageReset(Ljava/lang/String;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;Ljava/lang/Object;Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getBinderFromKey(Landroid/os/IBinder;)Landroid/os/IBinder;
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getBinderFromKey(Ljava/lang/Object;)Landroid/os/IBinder;
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getIdentity()Landroid/location/util/identity/CallerIdentity;
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getRequest()Ljava/lang/Object;
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->isForeground()Z
-PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->isPermitted()Z
-HPLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->onForegroundChanged(IZ)Z
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getOwner()Lcom/android/server/location/listeners/ListenerMultiplexer;
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getTag()Ljava/lang/String;
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->onLocationPermissionsChanged$2()Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->onRegister()V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$G2kqDLkfuxQMtoPsbj2WpYf8X5s(IZLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z
-HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$_Gfvn5VW9-dlsJfSAPdr0oFIo4s(Lcom/android/server/location/gnss/GnssListenerMultiplexer;IZ)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$vTTdgGmunMW7m6DFokt_QlVxjDg(Ljava/lang/String;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->-$$Nest$monPackageReset(Lcom/android/server/location/gnss/GnssListenerMultiplexer;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;-><init>(Lcom/android/server/location/injector/Injector;)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->addListener(Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->toString()Ljava/lang/String;
+PLcom/android/server/location/gnss/GnssListenerMultiplexer;-><init>(Lcom/android/server/location/LocationManagerService$SystemInjector;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer;->addListener(Ljava/lang/Object;Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer;->createRegistration(Ljava/lang/Object;Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->isActive(Landroid/location/util/identity/CallerIdentity;)Z
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->isActive(Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->isActive(Lcom/android/server/location/listeners/ListenerRegistration;)Z
+PLcom/android/server/location/gnss/GnssListenerMultiplexer;->getServiceState()Ljava/lang/String;
+PLcom/android/server/location/gnss/GnssListenerMultiplexer;->isActive(Lcom/android/server/location/listeners/RemovableListenerRegistration;)Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer;->isSupported()Z
-HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->lambda$onAppForegroundChanged$6(IZLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->lambda$onPackageReset$7(Ljava/lang/String;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z
 PLcom/android/server/location/gnss/GnssListenerMultiplexer;->mergeRegistrations(Ljava/util/Collection;)Ljava/lang/Object;
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onAppForegroundChanged(IZ)V
-PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onPackageReset(Ljava/lang/String;)V
 PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onRegister()V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/location/gnss/NetworkTimeHelper;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda10;->run()V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
+PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onUnregister()V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;Ljava/lang/Object;I)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda11;->run()V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V
 PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;[I[I)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda18;->run()V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda22;->run()V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;[I[I)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda19;->run()V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda20;->onLocationChanged(Landroid/location/Location;)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda21;->onLocationChanged(Landroid/location/Location;)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;ZZ)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V
 PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda8;->run()V
-PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/location/gnss/GnssSatelliteBlocklistHelper;)V
+PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda9;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda9;->run()V
 PLcom/android/server/location/gnss/GnssLocationProvider$1;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$2;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
 PLcom/android/server/location/gnss/GnssLocationProvider$3;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;Landroid/os/Handler;)V
-PLcom/android/server/location/gnss/GnssLocationProvider$4;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V
+PLcom/android/server/location/gnss/GnssLocationProvider$3;->onChange(Z)V
+PLcom/android/server/location/gnss/GnssLocationProvider$4;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V
 PLcom/android/server/location/gnss/GnssLocationProvider$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/location/gnss/GnssLocationProvider$LocationExtras;-><init>()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->$r8$lambda$5cN3NMHDdgiSS9srfJvXXqvdWzA(Lcom/android/server/location/gnss/GnssLocationProvider;Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->$r8$lambda$P4av5E7_VcXCDWc2O4WPS0B6dK8(Lcom/android/server/location/gnss/GnssLocationProvider;[I[I)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->$r8$lambda$WJfBSnGxBdV92rwB-RR4u-lMzmQ(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->$r8$lambda$pvaCHGEUSphUSz5n1PWLLEnhwVM(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->-$$Nest$msubscriptionOrCarrierConfigChanged(Lcom/android/server/location/gnss/GnssLocationProvider;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/location/gnss/GnssLocationProvider;-><clinit>()V
-HPLcom/android/server/location/gnss/GnssLocationProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/gnss/hal/GnssNative;Lcom/android/server/location/gnss/GnssMetrics;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->demandUtcTimeInjection()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->handleEnable()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->handleInitialize()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->isGpsEnabled()Z
-PLcom/android/server/location/gnss/GnssLocationProvider;->lambda$onCapabilitiesChanged$11()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->lambda$onUpdateSatelliteBlocklist$0([I[I)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->lambda$postWithWakeLockHeld$10(Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->onReportAGpsStatus(II[B)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->onRequestSetID(I)V
+PLcom/android/server/location/gnss/GnssLocationProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/gnss/hal/GnssNative;Lcom/android/server/location/gnss/GnssMetrics;)V
+PLcom/android/server/location/gnss/GnssLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/location/gnss/GnssLocationProvider;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;)V
 PLcom/android/server/location/gnss/GnssLocationProvider;->onSetRequest(Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->onSystemReady()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->onUpdateSatelliteBlocklist([I[I)V
 PLcom/android/server/location/gnss/GnssLocationProvider;->postWithWakeLockHeld(Ljava/lang/Runnable;)V
 PLcom/android/server/location/gnss/GnssLocationProvider;->reloadGpsProperties()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->restartLocationRequest()V
 PLcom/android/server/location/gnss/GnssLocationProvider;->setGpsEnabled(Z)V
 PLcom/android/server/location/gnss/GnssLocationProvider;->setStarted(Z)V
-PLcom/android/server/location/gnss/GnssLocationProvider;->setSuplHostPort()V
 PLcom/android/server/location/gnss/GnssLocationProvider;->stopBatching()V
 PLcom/android/server/location/gnss/GnssLocationProvider;->stopNavigating()V
-PLcom/android/server/location/gnss/GnssLocationProvider;->subscriptionOrCarrierConfigChanged()V
 PLcom/android/server/location/gnss/GnssLocationProvider;->updateClientUids(Landroid/os/WorkSource;)V
 PLcom/android/server/location/gnss/GnssLocationProvider;->updateEnabled()V
 PLcom/android/server/location/gnss/GnssLocationProvider;->updateRequirements()V
 PLcom/android/server/location/gnss/GnssManagerService$GnssCapabilitiesHalModule;-><init>(Lcom/android/server/location/gnss/GnssManagerService;Lcom/android/server/location/gnss/hal/GnssNative;)V
-PLcom/android/server/location/gnss/GnssManagerService$GnssCapabilitiesHalModule;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
+PLcom/android/server/location/gnss/GnssManagerService$GnssCapabilitiesHalModule;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;)V
 PLcom/android/server/location/gnss/GnssManagerService$GnssGeofenceHalModule;-><init>(Lcom/android/server/location/gnss/GnssManagerService;Lcom/android/server/location/gnss/hal/GnssNative;)V
 PLcom/android/server/location/gnss/GnssManagerService;-><clinit>()V
-PLcom/android/server/location/gnss/GnssManagerService;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/hal/GnssNative;)V
-PLcom/android/server/location/gnss/GnssManagerService;->getGnssGeofenceProxy()Landroid/location/IGpsGeofenceHardware;
-PLcom/android/server/location/gnss/GnssManagerService;->getGnssLocationProvider()Lcom/android/server/location/gnss/GnssLocationProvider;
-PLcom/android/server/location/gnss/GnssManagerService;->onSystemReady()V
-PLcom/android/server/location/gnss/GnssManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/GnssMeasurementsProvider;-><init>(Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/hal/GnssNative;)V
+PLcom/android/server/location/gnss/GnssManagerService;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationManagerService$SystemInjector;Lcom/android/server/location/gnss/hal/GnssNative;)V
+PLcom/android/server/location/gnss/GnssManagerService;->dump(Ljava/io/FileDescriptor;Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/location/gnss/GnssMeasurementsProvider;-><init>(Lcom/android/server/location/LocationManagerService$SystemInjector;Lcom/android/server/location/gnss/hal/GnssNative;)V
+PLcom/android/server/location/gnss/GnssMeasurementsProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/location/gnss/GnssMeasurementsProvider;->isSupported()Z
 PLcom/android/server/location/gnss/GnssMetrics$GnssPowerMetrics;-><init>(Lcom/android/server/location/gnss/GnssMetrics;Lcom/android/internal/app/IBatteryStats;)V
-PLcom/android/server/location/gnss/GnssMetrics$Statistics;-><init>()V
+PLcom/android/server/location/gnss/GnssMetrics$Statistics;->getCount()I
 PLcom/android/server/location/gnss/GnssMetrics$Statistics;->reset()V
 PLcom/android/server/location/gnss/GnssMetrics$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/location/gnss/GnssMetrics;)V
 PLcom/android/server/location/gnss/GnssMetrics;-><init>(Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Lcom/android/server/location/gnss/hal/GnssNative;)V
-PLcom/android/server/location/gnss/GnssMetrics;->registerGnssStats()V
 PLcom/android/server/location/gnss/GnssMetrics;->reset()V
-PLcom/android/server/location/gnss/GnssMetrics;->resetConstellationTypes()V
-PLcom/android/server/location/gnss/GnssNavigationMessageProvider;-><init>(Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/hal/GnssNative;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/location/gnss/GnssNavigationMessageProvider;-><init>(Lcom/android/server/location/LocationManagerService$SystemInjector;Lcom/android/server/location/gnss/hal/GnssNative;)V
 PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$1;-><init>(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;)V
 PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$2;-><init>(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->$r8$lambda$UI75ZGR_wWeGCDtuWWZygqNH2WI(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->$r8$lambda$uaMjsdErTcMigR-QvUtvFZgEPNE(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;Ljava/lang/Runnable;)V
+PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$2;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler$2;->onLost(Landroid/net/Network;)V
+PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->-$$Nest$mhandleUpdateNetworkState(Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler;Landroid/net/Network;ZLandroid/net/NetworkCapabilities;)V
 PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;-><clinit>()V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;-><init>(Landroid/content/Context;Lcom/android/server/location/gnss/GnssNetworkConnectivityHandler$GnssNetworkListener;Landroid/os/Looper;Lcom/android/internal/location/GpsNetInitiatedHandler;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->createNetworkConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->handleReleaseSuplConnection(I)V
+PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;-><init>(Landroid/content/Context;Lcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda15;Landroid/os/Looper;Lcom/android/internal/location/GpsNetInitiatedHandler;)V
+PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->agpsDataConnStateAsString()Ljava/lang/String;
 PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->isNativeAgpsRilSupported()Z
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->lambda$onReportAGpsStatus$1()V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->lambda$runEventAndReleaseWakeLock$2(Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->onReportAGpsStatus(II[B)V
 PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->registerNetworkCallbacks()V
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->runEventAndReleaseWakeLock(Ljava/lang/Runnable;)Ljava/lang/Runnable;
-PLcom/android/server/location/gnss/GnssNetworkConnectivityHandler;->runOnHandler(Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssNmeaProvider;-><init>(Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/hal/GnssNative;)V
+PLcom/android/server/location/gnss/GnssNmeaProvider;-><init>(Lcom/android/server/location/LocationManagerService$SystemInjector;Lcom/android/server/location/gnss/hal/GnssNative;)V
 PLcom/android/server/location/gnss/GnssSatelliteBlocklistHelper$1;-><init>(Lcom/android/server/location/gnss/GnssSatelliteBlocklistHelper;Landroid/os/Handler;)V
-PLcom/android/server/location/gnss/GnssSatelliteBlocklistHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/gnss/GnssSatelliteBlocklistHelper$GnssSatelliteBlocklistCallback;)V
+PLcom/android/server/location/gnss/GnssSatelliteBlocklistHelper$1;->onChange(Z)V
+PLcom/android/server/location/gnss/GnssSatelliteBlocklistHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/gnss/GnssLocationProvider;)V
 PLcom/android/server/location/gnss/GnssSatelliteBlocklistHelper;->parseSatelliteBlocklist(Ljava/lang/String;)Ljava/util/List;
 PLcom/android/server/location/gnss/GnssSatelliteBlocklistHelper;->updateSatelliteBlocklist()V
-PLcom/android/server/location/gnss/GnssStatusProvider;-><init>(Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/hal/GnssNative;)V
-PLcom/android/server/location/gnss/GnssStatusProvider;->addListener(Landroid/location/util/identity/CallerIdentity;Landroid/location/IGnssStatusListener;)V
-PLcom/android/server/location/gnss/GnssStatusProvider;->onRegistrationAdded(Landroid/os/IBinder;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)V
-PLcom/android/server/location/gnss/GnssStatusProvider;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V
-PLcom/android/server/location/gnss/GnssStatusProvider;->registerWithService(Ljava/lang/Object;Ljava/util/Collection;)Z
-PLcom/android/server/location/gnss/GnssStatusProvider;->registerWithService(Ljava/lang/Void;Ljava/util/Collection;)Z
+PLcom/android/server/location/gnss/GnssStatusProvider;-><init>(Lcom/android/server/location/LocationManagerService$SystemInjector;Lcom/android/server/location/gnss/hal/GnssNative;)V
+PLcom/android/server/location/gnss/GnssStatusProvider;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+PLcom/android/server/location/gnss/GnssStatusProvider;->onRegistrationRemoved(Ljava/lang/Object;Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+PLcom/android/server/location/gnss/GnssStatusProvider;->registerWithService(Ljava/util/Collection;Ljava/lang/Object;)Z
+PLcom/android/server/location/gnss/GnssStatusProvider;->unregisterWithService()V
 PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;Z)V
 PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;Ljava/util/List;)V
+PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;Ljava/lang/Object;I)V
 PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;)V
 PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;)V
 PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl$$ExternalSyntheticLambda6;->run()V
 PLcom/android/server/location/gnss/GnssVisibilityControl$1;-><init>(Lcom/android/server/location/gnss/GnssVisibilityControl;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->$r8$lambda$-C_A0LLAtzxFw2GtgzhvWwBB6Yo(Lcom/android/server/location/gnss/GnssVisibilityControl;Ljava/util/List;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->$r8$lambda$QSIGEde0V8a2umZ6weceH27oZBU(Lcom/android/server/location/gnss/GnssVisibilityControl;Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->$r8$lambda$UFJaGDOfHy8H_6ZhRklIms-8o_A(Lcom/android/server/location/gnss/GnssVisibilityControl;Z)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->$r8$lambda$dJecQTgcsVi1z20DN2Mq2OZgcLo(Lcom/android/server/location/gnss/GnssVisibilityControl;)V
+PLcom/android/server/location/gnss/GnssVisibilityControl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/location/gnss/GnssVisibilityControl;-><clinit>()V
 PLcom/android/server/location/gnss/GnssVisibilityControl;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/location/GpsNetInitiatedHandler;)V
 PLcom/android/server/location/gnss/GnssVisibilityControl;->getLocationPermissionEnabledProxyApps()[Ljava/lang/String;
-PLcom/android/server/location/gnss/GnssVisibilityControl;->handleGpsEnabledChanged(Z)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->handleInitialize()V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->handleUpdateProxyApps(Ljava/util/List;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->isProxyAppListUpdated(Ljava/util/List;)Z
-PLcom/android/server/location/gnss/GnssVisibilityControl;->lambda$onConfigurationUpdated$4(Ljava/util/List;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->lambda$onGpsEnabledChanged$2(Z)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->lambda$runEventAndReleaseWakeLock$6(Ljava/lang/Runnable;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->listenForProxyAppsPackageUpdates()V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->onConfigurationUpdated(Lcom/android/server/location/gnss/GnssConfiguration;)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->onGpsEnabledChanged(Z)V
-PLcom/android/server/location/gnss/GnssVisibilityControl;->runEventAndReleaseWakeLock(Ljava/lang/Runnable;)Ljava/lang/Runnable;
 PLcom/android/server/location/gnss/GnssVisibilityControl;->runOnHandler(Ljava/lang/Runnable;)V
 PLcom/android/server/location/gnss/GnssVisibilityControl;->setNfwLocationAccessProxyAppsInGnssHal([Ljava/lang/String;)V
-PLcom/android/server/location/gnss/NetworkTimeHelper;-><init>()V
-PLcom/android/server/location/gnss/NetworkTimeHelper;->create(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/gnss/NetworkTimeHelper$InjectTimeCallback;)Lcom/android/server/location/gnss/NetworkTimeHelper;
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->$r8$lambda$dEkDddYB5Iz8T29obuGL0xQsU6Y(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->clearDelayedTimeQueryCallback()V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->getLatestNetworkTime()Lcom/android/server/timedetector/NetworkTimeSuggestion;
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->lambda$requestImmediateTimeQueryCallback$0(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->requestDelayedTimeQueryCallback(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;J)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->requestImmediateTimeQueryCallback(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$EnvironmentImpl;->setNetworkTimeUpdateListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;-><clinit>()V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;-><init>(Lcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper$Environment;Lcom/android/server/location/gnss/NetworkTimeHelper$InjectTimeCallback;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->calculateTimeSignalAgeMillis(Lcom/android/server/timedetector/NetworkTimeSuggestion;)J
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->demandUtcTimeInjection()V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->isInUse()Z
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->logToDumpLog(Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->maybeInjectNetworkTime(Lcom/android/server/timedetector/NetworkTimeSuggestion;Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->queryAndInjectNetworkTime(Ljava/lang/String;)V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->removePeriodicNetworkTimeQuery()V
-PLcom/android/server/location/gnss/TimeDetectorNetworkTimeHelper;->setPeriodicTimeInjectionMode(Z)V
-PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
-PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda16;->runOrThrow()V
-PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;I)V
-PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda23;->runOrThrow()V
-PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;II[B)V
-PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda4;->runOrThrow()V
-PLcom/android/server/location/gnss/hal/GnssNative$BaseCallbacks;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/NtpNetworkTimeHelper;)V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/gnss/NtpNetworkTimeHelper;JJI)V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;-><clinit>()V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/gnss/NetworkTimeHelper$InjectTimeCallback;Landroid/util/NtpTrustedTime;)V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;->maybeInjectCachedNtpTime(Ljava/lang/String;)Z
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;->onNetworkAvailable()V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;->retrieveAndInjectNtpTime(Ljava/lang/String;)V
+PLcom/android/server/location/gnss/NtpNetworkTimeHelper;->setPeriodicTimeInjectionMode(Z)V
+PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;I)V
+PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/location/gnss/hal/GnssNative;ZZ)V
+PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda14;->runOrThrow()V
+PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda18;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
+PLcom/android/server/location/gnss/hal/GnssNative$$ExternalSyntheticLambda18;->runOrThrow()V
+PLcom/android/server/location/gnss/hal/GnssNative$BaseCallbacks;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;)V
 PLcom/android/server/location/gnss/hal/GnssNative$BaseCallbacks;->onHalStarted()V
 PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;-><init>()V
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->classInitOnce()V
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->cleanup()V
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->init()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->initBatching()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->initOnce(Lcom/android/server/location/gnss/hal/GnssNative;Z)V
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->isGeofencingSupported()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->isGnssVisibilityControlSupported()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->isPsdsSupported()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->isSupported()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->setAgpsServer(ILjava/lang/String;I)V
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->setAgpsSetId(ILjava/lang/String;)V
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->startAntennaInfoListening()Z
-PLcom/android/server/location/gnss/hal/GnssNative$GnssHal;->startSvStatusCollection()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->$r8$lambda$1tvOlZmXGrQw0TxJr3KhvBNnqY4(Lcom/android/server/location/gnss/hal/GnssNative;II[B)V
-PLcom/android/server/location/gnss/hal/GnssNative;->$r8$lambda$f8mnaV-CqxjxteNWGUfaMwcgJL8(Lcom/android/server/location/gnss/hal/GnssNative;Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
-PLcom/android/server/location/gnss/hal/GnssNative;->$r8$lambda$kX3GdWZHTIR8BsDyWlCdiVJuuvA(Lcom/android/server/location/gnss/hal/GnssNative;I)V
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$mnative_init_once(Lcom/android/server/location/gnss/hal/GnssNative;Z)V
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_agps_set_id(ILjava/lang/String;)V
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_class_init_once()V
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_cleanup()V
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_init()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_init_batching()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_is_geofence_supported()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_is_gnss_visibility_control_supported()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_is_supported()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_set_agps_server(ILjava/lang/String;I)V
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_start_antenna_info_listening()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_start_sv_status_collection()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->-$$Nest$smnative_supports_psds()Z
 PLcom/android/server/location/gnss/hal/GnssNative;-><init>(Lcom/android/server/location/gnss/hal/GnssNative$GnssHal;Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/GnssConfiguration;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->addAntennaInfoCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$AntennaInfoCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->addBaseCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$BaseCallbacks;)V
@@ -14293,1278 +11002,1282 @@
 PLcom/android/server/location/gnss/hal/GnssNative;->addNmeaCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$NmeaCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->addStatusCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$StatusCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->addSvStatusCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$SvStatusCallbacks;)V
+PLcom/android/server/location/gnss/hal/GnssNative;->cleanup()V
+PLcom/android/server/location/gnss/hal/GnssNative;->cleanupBatching()V
 PLcom/android/server/location/gnss/hal/GnssNative;->create(Lcom/android/server/location/injector/Injector;Lcom/android/server/location/gnss/GnssConfiguration;)Lcom/android/server/location/gnss/hal/GnssNative;
-PLcom/android/server/location/gnss/hal/GnssNative;->getCapabilities()Landroid/location/GnssCapabilities;
-PLcom/android/server/location/gnss/hal/GnssNative;->getConfiguration()Lcom/android/server/location/gnss/GnssConfiguration;
+PLcom/android/server/location/gnss/hal/GnssNative;->getBatchSize()I
+PLcom/android/server/location/gnss/hal/GnssNative;->getInternalState()Ljava/lang/String;
 PLcom/android/server/location/gnss/hal/GnssNative;->init()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->initBatching()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->initializeGnss(Z)V
 PLcom/android/server/location/gnss/hal/GnssNative;->initializeHal()V
+PLcom/android/server/location/gnss/hal/GnssNative;->injectLocation(Landroid/location/Location;)V
+PLcom/android/server/location/gnss/hal/GnssNative;->injectTime(JJI)V
+PLcom/android/server/location/gnss/hal/GnssNative;->isAntennaInfoSupported()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->isGeofencingSupported()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->isGnssVisibilityControlSupported()Z
+PLcom/android/server/location/gnss/hal/GnssNative;->isMeasurementSupported()Z
+PLcom/android/server/location/gnss/hal/GnssNative;->isNavigationMessageCollectionSupported()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->isPsdsSupported()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->isSupported()Z
-PLcom/android/server/location/gnss/hal/GnssNative;->lambda$onCapabilitiesChanged$8(Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
-PLcom/android/server/location/gnss/hal/GnssNative;->lambda$reportAGpsStatus$3(II[B)V
-PLcom/android/server/location/gnss/hal/GnssNative;->lambda$requestSetID$17(I)V
+PLcom/android/server/location/gnss/hal/GnssNative;->lambda$onCapabilitiesChanged$13(Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
+PLcom/android/server/location/gnss/hal/GnssNative;->lambda$requestLocation$24(ZZ)V
 PLcom/android/server/location/gnss/hal/GnssNative;->onCapabilitiesChanged(Landroid/location/GnssCapabilities;Landroid/location/GnssCapabilities;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->register()V
-PLcom/android/server/location/gnss/hal/GnssNative;->reportAGpsStatus(II[B)V
-PLcom/android/server/location/gnss/hal/GnssNative;->requestSetID(I)V
+PLcom/android/server/location/gnss/hal/GnssNative;->requestLocation(ZZ)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setAGpsCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$AGpsCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setAgpsServer(ILjava/lang/String;I)V
-PLcom/android/server/location/gnss/hal/GnssNative;->setAgpsSetId(ILjava/lang/String;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setGeofenceCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$GeofenceCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setGnssHardwareModelName(Ljava/lang/String;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setGnssYearOfHardware(I)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setLocationRequestCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$LocationRequestCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setNotificationCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$NotificationCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setPsdsCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$PsdsCallbacks;)V
-PLcom/android/server/location/gnss/hal/GnssNative;->setSubHalMeasurementCorrectionsCapabilities(I)V
+PLcom/android/server/location/gnss/hal/GnssNative;->setSignalTypeCapabilities(Ljava/util/List;)V
+PLcom/android/server/location/gnss/hal/GnssNative;->setSubHalPowerIndicationCapabilities(I)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setTimeCallbacks(Lcom/android/server/location/gnss/hal/GnssNative$TimeCallbacks;)V
 PLcom/android/server/location/gnss/hal/GnssNative;->setTopHalCapabilities(IZ)V
 PLcom/android/server/location/gnss/hal/GnssNative;->startAntennaInfoListening()Z
 PLcom/android/server/location/gnss/hal/GnssNative;->startSvStatusCollection()Z
-PLcom/android/server/location/injector/AlarmHelper;-><init>()V
-PLcom/android/server/location/injector/AppForegroundHelper;-><init>()V
-PLcom/android/server/location/injector/AppForegroundHelper;->addListener(Lcom/android/server/location/injector/AppForegroundHelper$AppForegroundListener;)V
-PLcom/android/server/location/injector/AppForegroundHelper;->isForeground(I)Z
-HPLcom/android/server/location/injector/AppForegroundHelper;->notifyAppForeground(IZ)V
-PLcom/android/server/location/injector/AppOpsHelper;-><init>()V
-PLcom/android/server/location/injector/AppOpsHelper;->addListener(Lcom/android/server/location/injector/AppOpsHelper$LocationAppOpListener;)V
-PLcom/android/server/location/injector/AppOpsHelper;->notifyAppOpChanged(Ljava/lang/String;)V
-PLcom/android/server/location/injector/DeviceIdleHelper;-><init>()V
-PLcom/android/server/location/injector/DeviceStationaryHelper;-><init>()V
+PLcom/android/server/location/gnss/hal/GnssNative;->stopSvStatusCollection()Z
 PLcom/android/server/location/injector/EmergencyHelper;-><init>()V
-PLcom/android/server/location/injector/EmergencyHelper;->addOnEmergencyStateChangedListener(Lcom/android/server/location/injector/EmergencyHelper$EmergencyStateChangedListener;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/LocationPermissionsHelper;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper$$ExternalSyntheticLambda0;->onAppOpsChanged(Ljava/lang/String;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper;->$r8$lambda$WoTjr4sbCqNtECb33nGPjU7MTXA(Lcom/android/server/location/injector/LocationPermissionsHelper;Ljava/lang/String;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper;-><init>(Lcom/android/server/location/injector/AppOpsHelper;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper;->addListener(Lcom/android/server/location/injector/LocationPermissionsHelper$LocationPermissionsListener;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper;->hasLocationPermissions(ILandroid/location/util/identity/CallerIdentity;)Z
-PLcom/android/server/location/injector/LocationPermissionsHelper;->notifyLocationPermissionsChanged(Ljava/lang/String;)V
-PLcom/android/server/location/injector/LocationPermissionsHelper;->onAppOpsChanged(Ljava/lang/String;)V
-PLcom/android/server/location/injector/LocationPowerSaveModeHelper;-><init>()V
-PLcom/android/server/location/injector/LocationPowerSaveModeHelper;->addListener(Lcom/android/server/location/injector/LocationPowerSaveModeHelper$LocationPowerSaveModeChangedListener;)V
-PLcom/android/server/location/injector/LocationUsageLogger;-><init>()V
-PLcom/android/server/location/injector/LocationUsageLogger;->bucketizeDistance(F)I
-PLcom/android/server/location/injector/LocationUsageLogger;->bucketizeExpireIn(J)I
-PLcom/android/server/location/injector/LocationUsageLogger;->bucketizeInterval(J)I
+PLcom/android/server/location/injector/EmergencyHelper;->dispatchEmergencyStateChanged()V
+PLcom/android/server/location/injector/LocationPermissionsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/SystemLocationPermissionsHelper;)V
 PLcom/android/server/location/injector/LocationUsageLogger;->bucketizeProvider(Ljava/lang/String;)I
-PLcom/android/server/location/injector/LocationUsageLogger;->categorizeActivityImportance(Z)I
-PLcom/android/server/location/injector/LocationUsageLogger;->getCallbackType(IZZ)I
 PLcom/android/server/location/injector/LocationUsageLogger;->hitApiUsageLogCap()Z
-PLcom/android/server/location/injector/LocationUsageLogger;->logEmergencyStateChanged(Z)V
-HPLcom/android/server/location/injector/LocationUsageLogger;->logLocationApiUsage(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/location/LocationRequest;ZZLandroid/location/Geofence;Z)V
-PLcom/android/server/location/injector/LocationUsageLogger;->logLocationEnabledStateChanged(Z)V
-PLcom/android/server/location/injector/PackageResetHelper;-><init>()V
-PLcom/android/server/location/injector/PackageResetHelper;->notifyPackageReset(Ljava/lang/String;)V
-PLcom/android/server/location/injector/PackageResetHelper;->register(Lcom/android/server/location/injector/PackageResetHelper$Responder;)V
-PLcom/android/server/location/injector/ScreenInteractiveHelper;-><init>()V
-PLcom/android/server/location/injector/ScreenInteractiveHelper;->addListener(Lcom/android/server/location/injector/ScreenInteractiveHelper$ScreenInteractiveChangedListener;)V
-PLcom/android/server/location/injector/SettingsHelper;-><init>()V
+PLcom/android/server/location/injector/LocationUsageLogger;->logLocationApiUsage(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/location/LocationRequest;ZZLandroid/location/Geofence;Z)V
+PLcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener;->onSettingChanged(I)V
 PLcom/android/server/location/injector/SystemAlarmHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/location/injector/SystemAlarmHelper;->cancel(Landroid/app/AlarmManager$OnAlarmListener;)V
+PLcom/android/server/location/injector/SystemAlarmHelper;->setDelayedAlarm(JLandroid/app/AlarmManager$OnAlarmListener;)V
 PLcom/android/server/location/injector/SystemAppForegroundHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/SystemAppForegroundHelper;)V
 HPLcom/android/server/location/injector/SystemAppForegroundHelper$$ExternalSyntheticLambda0;->onUidImportance(II)V
-HPLcom/android/server/location/injector/SystemAppForegroundHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/injector/SystemAppForegroundHelper;IZ)V
-HPLcom/android/server/location/injector/SystemAppForegroundHelper$$ExternalSyntheticLambda1;->run()V
-HPLcom/android/server/location/injector/SystemAppForegroundHelper;->$r8$lambda$UCfitvFhYxwpzpERUdvbWiHsEkc(Lcom/android/server/location/injector/SystemAppForegroundHelper;IZ)V
-HPLcom/android/server/location/injector/SystemAppForegroundHelper;->$r8$lambda$kCA01rHRoDFHvlSG_pyah-tjHeE(Lcom/android/server/location/injector/SystemAppForegroundHelper;II)V
+PLcom/android/server/location/injector/SystemAppForegroundHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/injector/SystemAppForegroundHelper;IZ)V
+HPLcom/android/server/location/injector/SystemAppForegroundHelper$$ExternalSyntheticLambda1;->run()V+]Lcom/android/server/location/injector/AppForegroundHelper$AppForegroundListener;Lcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda4;,Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda7;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;
 PLcom/android/server/location/injector/SystemAppForegroundHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/injector/SystemAppForegroundHelper;->isAppForeground(I)Z
-PLcom/android/server/location/injector/SystemAppForegroundHelper;->lambda$onAppForegroundChanged$0(IZ)V
-HPLcom/android/server/location/injector/SystemAppForegroundHelper;->onAppForegroundChanged(II)V
-PLcom/android/server/location/injector/SystemAppForegroundHelper;->onSystemReady()V
 PLcom/android/server/location/injector/SystemAppOpsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/SystemAppOpsHelper;)V
 PLcom/android/server/location/injector/SystemAppOpsHelper$$ExternalSyntheticLambda0;->onOpChanged(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/location/injector/SystemAppOpsHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/injector/SystemAppOpsHelper;Ljava/lang/String;)V
 PLcom/android/server/location/injector/SystemAppOpsHelper$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->$r8$lambda$dkvV9ErqRUvUhFKYCKm0OGHp7dQ(Lcom/android/server/location/injector/SystemAppOpsHelper;Ljava/lang/String;)V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->$r8$lambda$nvkNbjGehQgduXV6waQG27WlKTE(Lcom/android/server/location/injector/SystemAppOpsHelper;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/location/injector/SystemAppOpsHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->checkOpNoThrow(ILandroid/location/util/identity/CallerIdentity;)Z
 PLcom/android/server/location/injector/SystemAppOpsHelper;->finishOp(ILandroid/location/util/identity/CallerIdentity;)V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->lambda$onSystemReady$0(Ljava/lang/String;)V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->lambda$onSystemReady$1(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->onSystemReady()V
-PLcom/android/server/location/injector/SystemAppOpsHelper;->startOpNoThrow(ILandroid/location/util/identity/CallerIdentity;)Z
+PLcom/android/server/location/injector/SystemAppOpsHelper;->noteOpNoThrow(ILandroid/location/util/identity/CallerIdentity;)Z
+PLcom/android/server/location/injector/SystemAppOpsHelper;->startOpNoThrow(ILandroid/location/util/identity/CallerIdentity;)V
 PLcom/android/server/location/injector/SystemDeviceIdleHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/injector/SystemDeviceIdleHelper;->onRegistrationStateChanged()V
-PLcom/android/server/location/injector/SystemDeviceIdleHelper;->onSystemReady()V
-PLcom/android/server/location/injector/SystemDeviceStationaryHelper;-><init>()V
-PLcom/android/server/location/injector/SystemDeviceStationaryHelper;->onSystemReady()V
-PLcom/android/server/location/injector/SystemEmergencyHelper$1;-><init>(Lcom/android/server/location/injector/SystemEmergencyHelper;)V
-PLcom/android/server/location/injector/SystemEmergencyHelper$2;-><init>(Lcom/android/server/location/injector/SystemEmergencyHelper;)V
+PLcom/android/server/location/injector/SystemEmergencyHelper$1;-><init>(Lcom/android/server/location/injector/SystemEmergencyHelper;I)V
+PLcom/android/server/location/injector/SystemEmergencyHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/location/injector/SystemEmergencyHelper$EmergencyCallTelephonyCallback;-><init>(Lcom/android/server/location/injector/SystemEmergencyHelper;)V
+PLcom/android/server/location/injector/SystemEmergencyHelper$EmergencyCallTelephonyCallback;->onCallStateChanged(I)V
 PLcom/android/server/location/injector/SystemEmergencyHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/injector/SystemEmergencyHelper;->isInEmergency(J)Z
 PLcom/android/server/location/injector/SystemEmergencyHelper;->onSystemReady()V
 PLcom/android/server/location/injector/SystemLocationPermissionsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/SystemLocationPermissionsHelper;)V
-PLcom/android/server/location/injector/SystemLocationPermissionsHelper;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/AppOpsHelper;)V
-PLcom/android/server/location/injector/SystemLocationPermissionsHelper;->hasPermission(Ljava/lang/String;Landroid/location/util/identity/CallerIdentity;)Z
-PLcom/android/server/location/injector/SystemLocationPermissionsHelper;->onSystemReady()V
+PLcom/android/server/location/injector/SystemLocationPermissionsHelper$$ExternalSyntheticLambda0;->onPermissionsChanged(I)V
+PLcom/android/server/location/injector/SystemLocationPermissionsHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/injector/SystemLocationPermissionsHelper;I)V
+PLcom/android/server/location/injector/SystemLocationPermissionsHelper$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/location/injector/SystemLocationPermissionsHelper;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/SystemAppOpsHelper;)V
+PLcom/android/server/location/injector/SystemLocationPermissionsHelper;->hasLocationPermissions(ILandroid/location/util/identity/CallerIdentity;)Z
 PLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;->getLocationPowerSaveMode()I
-PLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;->onSystemReady()V
-PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver;Ljava/lang/String;)V
-PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;->$r8$lambda$nQjWM_LpqGA0LL_igYwAYJnsylE(Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver;Ljava/lang/String;)V
+PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver;Ljava/lang/String;I)V
+PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper;)V
-PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper;Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver-IA;)V
-PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;->lambda$onReceive$1(Ljava/lang/String;)V
 PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/location/injector/SystemPackageResetHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/location/injector/SystemPackageResetHelper;->notifyPackageReset(Ljava/lang/String;)V
 PLcom/android/server/location/injector/SystemPackageResetHelper;->onRegister()V
+PLcom/android/server/location/injector/SystemPackageResetHelper;->register(Lcom/android/server/location/injector/PackageResetHelper$Responder;)V
+PLcom/android/server/location/injector/SystemPackageResetHelper;->unregister(Lcom/android/server/location/injector/PackageResetHelper$Responder;)V
 PLcom/android/server/location/injector/SystemScreenInteractiveHelper$1;-><init>(Lcom/android/server/location/injector/SystemScreenInteractiveHelper;)V
+HPLcom/android/server/location/injector/SystemScreenInteractiveHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/location/injector/SystemScreenInteractiveHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/injector/SystemScreenInteractiveHelper;->onSystemReady()V
-PLcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-PLcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/location/injector/SystemSettingsHelper$BooleanGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/location/injector/SystemSettingsHelper$DeviceConfigSetting;-><init>(Ljava/lang/String;)V
-PLcom/android/server/location/injector/SystemSettingsHelper$DeviceConfigSetting;->addListener(Lcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper$DeviceConfigSetting;->register()V
-PLcom/android/server/location/injector/SystemSettingsHelper$IntegerSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-HPLcom/android/server/location/injector/SystemSettingsHelper$IntegerSecureSetting;->getValueForUser(II)I
-PLcom/android/server/location/injector/SystemSettingsHelper$IntegerSecureSetting;->register()V
-PLcom/android/server/location/injector/SystemSettingsHelper$LongGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/location/injector/SystemSettingsHelper$LongGlobalSetting;->register()V
+PLcom/android/server/location/injector/SystemSettingsHelper$LongGlobalSetting;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
 PLcom/android/server/location/injector/SystemSettingsHelper$ObservingSetting;-><init>(Landroid/os/Handler;)V
 PLcom/android/server/location/injector/SystemSettingsHelper$ObservingSetting;->addListener(Lcom/android/server/location/injector/SettingsHelper$UserSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper$ObservingSetting;->isRegistered()Z
+PLcom/android/server/location/injector/SystemSettingsHelper$ObservingSetting;->onChange(ZLandroid/net/Uri;I)V
 PLcom/android/server/location/injector/SystemSettingsHelper$ObservingSetting;->register(Landroid/content/Context;Landroid/net/Uri;)V
+PLcom/android/server/location/injector/SystemSettingsHelper$ObservingSetting;->removeListener(Lcom/android/server/location/injector/SettingsHelper$UserSettingChangedListener;)V
 PLcom/android/server/location/injector/SystemSettingsHelper$PackageTagsListSetting;-><init>(Ljava/lang/String;Ljava/util/function/Supplier;)V
+PLcom/android/server/location/injector/SystemSettingsHelper$PackageTagsListSetting;->getValue()Landroid/os/PackageTagsList;
+PLcom/android/server/location/injector/SystemSettingsHelper$PackageTagsListSetting;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/location/injector/SystemSettingsHelper$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
 PLcom/android/server/location/injector/SystemSettingsHelper$StringListCachedSecureSetting;->getValueForUser(I)Ljava/util/List;
-PLcom/android/server/location/injector/SystemSettingsHelper$StringListCachedSecureSetting;->register()V
-PLcom/android/server/location/injector/SystemSettingsHelper$StringSetCachedGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/util/function/Supplier;Landroid/os/Handler;)V
+PLcom/android/server/location/injector/SystemSettingsHelper$StringSetCachedGlobalSetting;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda0;Landroid/os/Handler;)V
 PLcom/android/server/location/injector/SystemSettingsHelper$StringSetCachedGlobalSetting;->getValue()Ljava/util/Set;
-PLcom/android/server/location/injector/SystemSettingsHelper$StringSetCachedGlobalSetting;->register()V
-PLcom/android/server/location/injector/SystemSettingsHelper;->$r8$lambda$D5hSJ3ILCWeTxjNZR6hpkxtM3qo()Landroid/util/ArraySet;
 PLcom/android/server/location/injector/SystemSettingsHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->addAdasAllowlistChangedListener(Lcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->addIgnoreSettingsAllowlistChangedListener(Lcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->addOnBackgroundThrottleIntervalChangedListener(Lcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->addOnBackgroundThrottlePackageWhitelistChangedListener(Lcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->addOnLocationEnabledChangedListener(Lcom/android/server/location/injector/SettingsHelper$UserSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->addOnLocationPackageBlacklistChangedListener(Lcom/android/server/location/injector/SettingsHelper$UserSettingChangedListener;)V
-PLcom/android/server/location/injector/SystemSettingsHelper;->getBackgroundThrottlePackageWhitelist()Ljava/util/Set;
-PLcom/android/server/location/injector/SystemSettingsHelper;->getCoarseLocationAccuracyM()F
-PLcom/android/server/location/injector/SystemSettingsHelper;->isLocationEnabled(I)Z
+HPLcom/android/server/location/injector/SystemSettingsHelper;->isLocationEnabled(I)Z+]Landroid/content/Context;Landroid/app/ContextImpl;
 PLcom/android/server/location/injector/SystemSettingsHelper;->isLocationPackageBlacklisted(ILjava/lang/String;)Z
-PLcom/android/server/location/injector/SystemSettingsHelper;->lambda$new$0()Landroid/util/ArraySet;
 PLcom/android/server/location/injector/SystemSettingsHelper;->onSystemReady()V
-PLcom/android/server/location/injector/SystemSettingsHelper;->setLocationEnabled(ZI)V
-PLcom/android/server/location/injector/SystemUserInfoHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/injector/SystemUserInfoHelper;)V
+PLcom/android/server/location/injector/SystemUserInfoHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/LocationManagerService$Lifecycle$LifecycleUserInfoHelper;)V
 PLcom/android/server/location/injector/SystemUserInfoHelper$$ExternalSyntheticLambda0;->onUserVisibilityChanged(IZ)V
-PLcom/android/server/location/injector/SystemUserInfoHelper;->$r8$lambda$rmbCOanELEWco8WhmNYmOOvB1A0(Lcom/android/server/location/injector/SystemUserInfoHelper;IZ)V
-PLcom/android/server/location/injector/SystemUserInfoHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/injector/SystemUserInfoHelper;->getActivityManager()Landroid/app/IActivityManager;
-PLcom/android/server/location/injector/SystemUserInfoHelper;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
-PLcom/android/server/location/injector/SystemUserInfoHelper;->getCurrentUserId()I
-PLcom/android/server/location/injector/SystemUserInfoHelper;->getRunningUserIds()[I
-PLcom/android/server/location/injector/SystemUserInfoHelper;->isVisibleUserId(I)Z
-PLcom/android/server/location/injector/SystemUserInfoHelper;->lambda$onSystemReady$0(IZ)V
-PLcom/android/server/location/injector/SystemUserInfoHelper;->onSystemReady()V
-PLcom/android/server/location/injector/UserInfoHelper;-><init>()V
-PLcom/android/server/location/injector/UserInfoHelper;->addListener(Lcom/android/server/location/injector/UserInfoHelper$UserListener;)V
-PLcom/android/server/location/injector/UserInfoHelper;->dispatchOnUserStarted(I)V
-PLcom/android/server/location/injector/UserInfoHelper;->dispatchOnVisibleUserChanged(IZ)V
-PLcom/android/server/location/listeners/BinderListenerRegistration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;)V
+PLcom/android/server/location/listeners/BinderListenerRegistration;->binderDied()V
 PLcom/android/server/location/listeners/BinderListenerRegistration;->onRegister()V
+PLcom/android/server/location/listeners/BinderListenerRegistration;->onUnregister()V
 PLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;-><init>(Lcom/android/server/location/listeners/ListenerMultiplexer;)V
-HPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->acquire()Lcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;
+HPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->acquire()V
 HPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->close()V
 PLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->isReentrant()Z
 PLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;-><init>(Lcom/android/server/location/listeners/ListenerMultiplexer;)V
-HPLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;->acquire()Lcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;
+PLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;->acquire()V
 HPLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;->close()V
-PLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;->isBuffered()Z
-PLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;->markUpdateServiceRequired()V
-HPLcom/android/server/location/listeners/ListenerMultiplexer;-><init>()V
+PLcom/android/server/location/listeners/ListenerMultiplexer;-><init>()V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->deliverToListeners(Ljava/util/function/Function;)V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->getServiceState()Ljava/lang/String;
 PLcom/android/server/location/listeners/ListenerMultiplexer;->onActive()V
-PLcom/android/server/location/listeners/ListenerMultiplexer;->onRegistrationActiveChanged(Lcom/android/server/location/listeners/ListenerRegistration;)V
-PLcom/android/server/location/listeners/ListenerMultiplexer;->putRegistration(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->onInactive()V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->onRegistrationActiveChanged(Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->putRegistration(Ljava/lang/Object;Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
 PLcom/android/server/location/listeners/ListenerMultiplexer;->removeRegistration(I)V
 PLcom/android/server/location/listeners/ListenerMultiplexer;->removeRegistration(Ljava/lang/Object;)V
-HPLcom/android/server/location/listeners/ListenerMultiplexer;->replaceRegistration(Ljava/lang/Object;Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V
-PLcom/android/server/location/listeners/ListenerMultiplexer;->unregister(Lcom/android/server/location/listeners/ListenerRegistration;)V
-HPLcom/android/server/location/listeners/ListenerMultiplexer;->updateRegistrations(Ljava/util/function/Predicate;)V
-HPLcom/android/server/location/listeners/ListenerMultiplexer;->updateService()V
-PLcom/android/server/location/listeners/ListenerRegistration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;)V
-PLcom/android/server/location/listeners/ListenerRegistration;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/location/listeners/ListenerRegistration;->getExecutor()Ljava/util/concurrent/Executor;
-PLcom/android/server/location/listeners/ListenerRegistration;->isActive()Z
-PLcom/android/server/location/listeners/ListenerRegistration;->isRegistered()Z
-PLcom/android/server/location/listeners/ListenerRegistration;->onActive()V
-PLcom/android/server/location/listeners/ListenerRegistration;->onRegister(Ljava/lang/Object;)V
-PLcom/android/server/location/listeners/ListenerRegistration;->onUnregister()V
-PLcom/android/server/location/listeners/ListenerRegistration;->setActive(Z)Z
-PLcom/android/server/location/listeners/ListenerRegistration;->unregisterInternal()V
+PLcom/android/server/location/listeners/ListenerMultiplexer;->removeRegistration(Ljava/lang/Object;Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+HPLcom/android/server/location/listeners/ListenerMultiplexer;->updateRegistrations(Ljava/util/function/Predicate;)V+]Ljava/util/function/Predicate;megamorphic_types
+PLcom/android/server/location/listeners/ListenerMultiplexer;->updateService()V
+PLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+PLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
+PLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
 PLcom/android/server/location/listeners/RemovableListenerRegistration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;)V
-PLcom/android/server/location/listeners/RemovableListenerRegistration;->getKey()Ljava/lang/Object;
-PLcom/android/server/location/listeners/RemovableListenerRegistration;->onRegister()V
-PLcom/android/server/location/listeners/RemovableListenerRegistration;->onRegister(Ljava/lang/Object;)V
-PLcom/android/server/location/listeners/RemovableListenerRegistration;->onUnregister()V
+PLcom/android/server/location/listeners/RemovableListenerRegistration;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/location/listeners/RemovableListenerRegistration;->executeOperation(Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;)V
+PLcom/android/server/location/listeners/RemovableListenerRegistration;->onActive()V
+PLcom/android/server/location/listeners/RemovableListenerRegistration;->onInactive()V
+PLcom/android/server/location/listeners/RemovableListenerRegistration;->onListenerUnregister()V
+PLcom/android/server/location/listeners/RemovableListenerRegistration;->remove()V
 PLcom/android/server/location/provider/AbstractLocationProvider$$ExternalSyntheticLambda0;-><init>(Z)V
 PLcom/android/server/location/provider/AbstractLocationProvider$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/location/provider/AbstractLocationProvider$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/location/provider/AbstractLocationProvider$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/location/provider/AbstractLocationProvider$$ExternalSyntheticLambda2;-><init>(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/function/UnaryOperator;)V
 PLcom/android/server/location/provider/AbstractLocationProvider$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider;)V
+PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider;I)V
 PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider$Controller;Landroid/location/provider/ProviderRequest;)V
 PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;)V
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->$r8$lambda$LeNcBraXlYCSFuemITl6ZhAWq-s(Lcom/android/server/location/provider/AbstractLocationProvider$Controller;Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->$r8$lambda$ymAsNas0LO3WeFO8o8yVE4_uJQA(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
 PLcom/android/server/location/provider/AbstractLocationProvider$Controller;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider;)V
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->isStarted()Z
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->lambda$setListener$0(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
-PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->lambda$setRequest$1(Landroid/location/provider/ProviderRequest;)V
-HPLcom/android/server/location/provider/AbstractLocationProvider$Controller;->setListener(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
+PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->setListener(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
 PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->setRequest(Landroid/location/provider/ProviderRequest;)V
 PLcom/android/server/location/provider/AbstractLocationProvider$Controller;->start()V
 PLcom/android/server/location/provider/AbstractLocationProvider$InternalState;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/AbstractLocationProvider$InternalState;->withListener(Lcom/android/server/location/provider/AbstractLocationProvider$Listener;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
-PLcom/android/server/location/provider/AbstractLocationProvider$InternalState;->withState(Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
-PLcom/android/server/location/provider/AbstractLocationProvider$InternalState;->withState(Ljava/util/function/UnaryOperator;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
 PLcom/android/server/location/provider/AbstractLocationProvider$State;-><clinit>()V
 PLcom/android/server/location/provider/AbstractLocationProvider$State;-><init>(ZLandroid/location/provider/ProviderProperties;Landroid/location/util/identity/CallerIdentity;Ljava/util/Set;)V
 PLcom/android/server/location/provider/AbstractLocationProvider$State;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/location/provider/AbstractLocationProvider$State;->withAllowed(Z)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/AbstractLocationProvider$State;->withExtraAttributionTags(Ljava/util/Set;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/AbstractLocationProvider$State;->withIdentity(Landroid/location/util/identity/CallerIdentity;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
 PLcom/android/server/location/provider/AbstractLocationProvider$State;->withProperties(Landroid/location/provider/ProviderProperties;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/AbstractLocationProvider;->$r8$lambda$CeuvNTBi50NGKIcNe9haAXCHlUo(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/function/UnaryOperator;Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
-PLcom/android/server/location/provider/AbstractLocationProvider;->$r8$lambda$xmpiQinuk56UCsTwnnQ2qoBXpWE(ZLcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/AbstractLocationProvider;->-$$Nest$fgetmInternalState(Lcom/android/server/location/provider/AbstractLocationProvider;)Ljava/util/concurrent/atomic/AtomicReference;
-HPLcom/android/server/location/provider/AbstractLocationProvider;-><init>(Ljava/util/concurrent/Executor;Landroid/location/util/identity/CallerIdentity;Landroid/location/provider/ProviderProperties;Ljava/util/Set;)V
-PLcom/android/server/location/provider/AbstractLocationProvider;->getController()Lcom/android/server/location/provider/LocationProviderController;
-HPLcom/android/server/location/provider/AbstractLocationProvider;->getState()Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/AbstractLocationProvider;->lambda$setAllowed$1(ZLcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/AbstractLocationProvider;->lambda$setState$0(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/function/UnaryOperator;Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;)Lcom/android/server/location/provider/AbstractLocationProvider$InternalState;
+PLcom/android/server/location/provider/AbstractLocationProvider;-><init>(Ljava/util/concurrent/Executor;Landroid/location/util/identity/CallerIdentity;Landroid/location/provider/ProviderProperties;Ljava/util/Set;)V
 PLcom/android/server/location/provider/AbstractLocationProvider;->onStart()V
-PLcom/android/server/location/provider/AbstractLocationProvider;->setAllowed(Z)V
-HPLcom/android/server/location/provider/AbstractLocationProvider;->setState(Ljava/util/function/UnaryOperator;)V
+PLcom/android/server/location/provider/AbstractLocationProvider;->reportLocation(Landroid/location/LocationResult;)V
+PLcom/android/server/location/provider/AbstractLocationProvider;->setState(Ljava/util/function/UnaryOperator;)V
+PLcom/android/server/location/provider/DelegateLocationProvider$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/location/provider/DelegateLocationProvider$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda0;->onUserChanged(II)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda13;->run()V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda16;-><init>(I)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda16;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda12;-><init>(I)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda12;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda13;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/Location;)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/provider/ProviderRequest;)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda14;->run()V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/location/provider/LocationProviderManager;[Landroid/location/LocationManagerInternal$ProviderEnabledListener;IZ)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda16;->run()V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda17;-><init>(II)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;)Z
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda20;-><init>(I)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;-><init>()V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;-><init>(Z)V
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;->test(Ljava/lang/Object;)Z
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda27;->run()V
-HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda29;-><init>(IZ)V
-HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda29;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/LocationManagerService;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda29;->run()V
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda32;-><init>(Ljava/lang/String;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda32;->test(Ljava/lang/Object;)Z
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda34;-><init>(Ljava/lang/String;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda34;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda2;->onStateChanged()V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda30;-><init>(IZ)V
+HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda31;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda31;->test(Ljava/lang/Object;)Z
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda6;->onAppForegroundChanged(IZ)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/provider/LocationProviderManager;I)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda4;->onSettingChanged(I)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/location/provider/LocationProviderManager;I)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda5;->onSettingChanged()V
 PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
-PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
+PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda7;->onAppForegroundChanged(IZ)V
 PLcom/android/server/location/provider/LocationProviderManager$1;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
+PLcom/android/server/location/provider/LocationProviderManager$1;->onLocationPermissionsChanged(I)V
 PLcom/android/server/location/provider/LocationProviderManager$1;->onLocationPermissionsChanged(Ljava/lang/String;)V
 PLcom/android/server/location/provider/LocationProviderManager$2;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V
 PLcom/android/server/location/provider/LocationProviderManager$2;->onPackageReset(Ljava/lang/String;)V
 PLcom/android/server/location/provider/LocationProviderManager$ExternalWakeLockReleaser;-><init>(Landroid/location/util/identity/CallerIdentity;Landroid/os/PowerManager$WakeLock;)V
+PLcom/android/server/location/provider/LocationProviderManager$ExternalWakeLockReleaser;->sendResult(Landroid/os/Bundle;)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;I)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->binderDied()V
 PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->onRegister()V
 PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->onUnregister()V
 PLcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;-><init>(Landroid/location/ILocationListener;)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;->deliverOnLocationChanged(Landroid/location/LocationResult;Lcom/android/server/location/provider/LocationProviderManager$ExternalWakeLockReleaser;)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;->deliverOnProviderEnabledChanged(Ljava/lang/String;Z)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;Z)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda1;->operate(Ljava/lang/Object;)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)V
-PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->$r8$lambda$HKlWp9d0ULfN4Uyj27WwtckCg8Y(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;ZLcom/android/server/location/provider/LocationProviderManager$ProviderTransport;)V
-PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->$r8$lambda$MbgOAywiWwljbCZ3_TvCtA84c4I(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)Lcom/android/server/location/provider/LocationProviderManager$ProviderTransport;
-HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;Ljava/util/concurrent/Executor;Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;I)V
-PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->lambda$onProviderEnabledChanged$0()Lcom/android/server/location/provider/LocationProviderManager$ProviderTransport;
-PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->lambda$onProviderEnabledChanged$1(ZLcom/android/server/location/provider/LocationProviderManager$ProviderTransport;)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;->test(Ljava/lang/Object;)Z
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;Landroid/location/LocationResult;Z)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->onPostExecute(Z)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->onPreExecute()V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->operate(Ljava/lang/Object;)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;Ljava/util/concurrent/Executor;Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;I)V
+PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->acceptLocationChange(Landroid/location/LocationResult;)Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->onActive()V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->onListenerUnregister()V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->onProviderEnabledChanged(Ljava/lang/String;IZ)V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->onRegister()V
 PLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->onUnregister()V
-HPLcom/android/server/location/provider/LocationProviderManager$Registration;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;Ljava/util/concurrent/Executor;Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;I)V
+PLcom/android/server/location/provider/LocationProviderManager$Registration;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;Ljava/util/concurrent/Executor;Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;I)V
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->calculateProviderLocationRequest()Landroid/location/LocationRequest;
-PLcom/android/server/location/provider/LocationProviderManager$Registration;->getIdentity()Landroid/location/util/identity/CallerIdentity;
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->getLastDeliveredLocation()Landroid/location/Location;
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->getOwner()Lcom/android/server/location/listeners/ListenerMultiplexer;
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->getPermissionLevel()I
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->getRequest()Landroid/location/LocationRequest;
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->isForeground()Z
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->isOnlyBypassPermitted()Z
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->isPermitted()Z
-PLcom/android/server/location/provider/LocationProviderManager$Registration;->isThrottlingExempt()Z
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->isUsingHighPower()Z
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->onActive()V
-HPLcom/android/server/location/provider/LocationProviderManager$Registration;->onForegroundChanged(IZ)Z
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->onBypassLocationPermissionsChanged(Z)Z
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->onHighPowerUsageChanged()V
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->onInactive()V
-PLcom/android/server/location/provider/LocationProviderManager$Registration;->onLocationPermissionsChanged(Ljava/lang/String;)Z
-PLcom/android/server/location/provider/LocationProviderManager$Registration;->onProviderPropertiesChanged()Z
-HPLcom/android/server/location/provider/LocationProviderManager$Registration;->onRegister()V
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->onLocationPermissionsChanged$2$1()Z
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->onProviderLocationRequestChanged()Z
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->onRegister()V
 PLcom/android/server/location/provider/LocationProviderManager$Registration;->onUnregister()V
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$6v8wLALl9xMKUcHODJ2SqBgIS5w(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$BdUB__o6u_lJsqreFzvuZ5h1yeE(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$O3CIvdiVBWRXOJSW05H8AlBIHWw(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$TlPJnIwBbkvrT20UYrQqqAp6Ncw(IZLcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$UTCpk95Vv15pE_v1KFHCIiq6q2A(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$ZXN_h6DDTo8Q9vBhqWUlQSLwz7I(Lcom/android/server/location/provider/LocationProviderManager;II)V
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$a3Z8nDABZyLkK2LFh8YIMBZZX6E(Lcom/android/server/location/provider/LocationProviderManager;IZ)V
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$aikqiu08UDXI5758wflyUhISwW4(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$nfd58ulm5V48RW-bXnpKnI6wsiQ(Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$monLocationPermissionsChanged(Lcom/android/server/location/provider/LocationProviderManager;Ljava/lang/String;)V
-PLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$monPackageReset(Lcom/android/server/location/provider/LocationProviderManager;Ljava/lang/String;)V
-PLcom/android/server/location/provider/LocationProviderManager;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;Ljava/lang/String;Lcom/android/server/location/provider/PassiveLocationProviderManager;)V
-HPLcom/android/server/location/provider/LocationProviderManager;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;Ljava/lang/String;Lcom/android/server/location/provider/PassiveLocationProviderManager;Ljava/util/Collection;)V
-PLcom/android/server/location/provider/LocationProviderManager;->access$000(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-PLcom/android/server/location/provider/LocationProviderManager;->access$100(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-PLcom/android/server/location/provider/LocationProviderManager;->access$200(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-PLcom/android/server/location/provider/LocationProviderManager;->access$300(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-PLcom/android/server/location/provider/LocationProviderManager;->access$400(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-PLcom/android/server/location/provider/LocationProviderManager;->access$500(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-PLcom/android/server/location/provider/LocationProviderManager;->access$600(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
-HPLcom/android/server/location/provider/LocationProviderManager;->access$900(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object;
+PLcom/android/server/location/provider/LocationProviderManager$Registration;->toString()Ljava/lang/String;
+PLcom/android/server/location/provider/LocationProviderManager;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationManagerService$SystemInjector;Ljava/lang/String;Lcom/android/server/location/provider/PassiveLocationProviderManager;)V
+PLcom/android/server/location/provider/LocationProviderManager;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationManagerService$SystemInjector;Ljava/lang/String;Lcom/android/server/location/provider/PassiveLocationProviderManager;Ljava/util/Collection;)V
 PLcom/android/server/location/provider/LocationProviderManager;->addEnabledListener(Landroid/location/LocationManagerInternal$ProviderEnabledListener;)V
-PLcom/android/server/location/provider/LocationProviderManager;->calculateLastLocationRequest(Landroid/location/LastLocationRequest;Landroid/location/util/identity/CallerIdentity;)Landroid/location/LastLocationRequest;
-PLcom/android/server/location/provider/LocationProviderManager;->getLastLocation(Landroid/location/LastLocationRequest;Landroid/location/util/identity/CallerIdentity;I)Landroid/location/Location;
-PLcom/android/server/location/provider/LocationProviderManager;->getLastLocationUnsafe(IIZJ)Landroid/location/Location;
-PLcom/android/server/location/provider/LocationProviderManager;->getName()Ljava/lang/String;
-PLcom/android/server/location/provider/LocationProviderManager;->getPermittedLocation(Landroid/location/Location;I)Landroid/location/Location;
-PLcom/android/server/location/provider/LocationProviderManager;->getProperties()Landroid/location/provider/ProviderProperties;
-PLcom/android/server/location/provider/LocationProviderManager;->getProviderIdentity()Landroid/location/util/identity/CallerIdentity;
-PLcom/android/server/location/provider/LocationProviderManager;->getState()Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/LocationProviderManager;->isActive(Lcom/android/server/location/listeners/ListenerRegistration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->isActive(Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-HPLcom/android/server/location/provider/LocationProviderManager;->isActive(ZLandroid/location/util/identity/CallerIdentity;)Z
-HPLcom/android/server/location/provider/LocationProviderManager;->isEnabled(I)Z
-HPLcom/android/server/location/provider/LocationProviderManager;->isVisibleToCaller()Z
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$onAppForegroundChanged$10(IZLcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$onEnabledChanged$21(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$onLocationPermissionsChanged$12(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$onPackageReset$14(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$onStateChanged$16(Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$onUserChanged$6(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->lambda$setProviderRequest$5(Landroid/location/provider/ProviderRequest;)V
-HPLcom/android/server/location/provider/LocationProviderManager;->onAppForegroundChanged(IZ)V
-HPLcom/android/server/location/provider/LocationProviderManager;->onEnabledChanged(I)V
-PLcom/android/server/location/provider/LocationProviderManager;->onLocationPermissionsChanged(Ljava/lang/String;)V
-PLcom/android/server/location/provider/LocationProviderManager;->onPackageReset(Ljava/lang/String;)V
+PLcom/android/server/location/provider/LocationProviderManager;->calculateRequestDelayMillis(JLjava/util/Collection;)J
+PLcom/android/server/location/provider/LocationProviderManager;->dump(Ljava/io/FileDescriptor;Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/location/provider/LocationProviderManager;->getLastLocationUnsafe(IIJZ)Landroid/location/Location;
+PLcom/android/server/location/provider/LocationProviderManager;->getPermittedLocationResult(Landroid/location/LocationResult;I)Landroid/location/LocationResult;
+PLcom/android/server/location/provider/LocationProviderManager;->getServiceState()Ljava/lang/String;
+PLcom/android/server/location/provider/LocationProviderManager;->isActive(Lcom/android/server/location/listeners/RemovableListenerRegistration;)Z
+PLcom/android/server/location/provider/LocationProviderManager;->isActive(ZLandroid/location/util/identity/CallerIdentity;)Z
+PLcom/android/server/location/provider/LocationProviderManager;->isEnabled(I)Z
+PLcom/android/server/location/provider/LocationProviderManager;->isVisibleToCaller()Z
+PLcom/android/server/location/provider/LocationProviderManager;->mergeRegistrations(Ljava/util/Collection;)Landroid/location/provider/ProviderRequest;
+PLcom/android/server/location/provider/LocationProviderManager;->mergeRegistrations(Ljava/util/Collection;)Ljava/lang/Object;
+PLcom/android/server/location/provider/LocationProviderManager;->onEnabledChanged(I)V
 PLcom/android/server/location/provider/LocationProviderManager;->onRegister()V
-PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V
-PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/provider/LocationProviderManager$Registration;)V
-PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationRemoved(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V
-PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationRemoved(Ljava/lang/Object;Lcom/android/server/location/provider/LocationProviderManager$Registration;)V
-HPLcom/android/server/location/provider/LocationProviderManager;->onStateChanged(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/LocationProviderManager;->onUserChanged(II)V
+PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationRemoved(Ljava/lang/Object;Lcom/android/server/location/listeners/RemovableListenerRegistration;)V
+PLcom/android/server/location/provider/LocationProviderManager;->onReportLocation(Landroid/location/LocationResult;)V
+PLcom/android/server/location/provider/LocationProviderManager;->onStateChanged(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
 PLcom/android/server/location/provider/LocationProviderManager;->onUserStarted(I)V
-PLcom/android/server/location/provider/LocationProviderManager;->registerLocationRequest(Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;ILandroid/location/ILocationListener;)V
-PLcom/android/server/location/provider/LocationProviderManager;->registerWithService(Landroid/location/provider/ProviderRequest;Ljava/util/Collection;)Z
-PLcom/android/server/location/provider/LocationProviderManager;->registerWithService(Ljava/lang/Object;Ljava/util/Collection;)Z
+PLcom/android/server/location/provider/LocationProviderManager;->registerWithService(Ljava/util/Collection;Ljava/lang/Object;)Z
 PLcom/android/server/location/provider/LocationProviderManager;->removeEnabledListener(Landroid/location/LocationManagerInternal$ProviderEnabledListener;)V
-PLcom/android/server/location/provider/LocationProviderManager;->reregisterWithService(Landroid/location/provider/ProviderRequest;Landroid/location/provider/ProviderRequest;Ljava/util/Collection;)Z
+PLcom/android/server/location/provider/LocationProviderManager;->reregisterWithService(Landroid/location/provider/ProviderRequest;Landroid/location/provider/ProviderRequest;Ljava/util/Collection;)V
+PLcom/android/server/location/provider/LocationProviderManager;->reregisterWithService(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Collection;)Z
+PLcom/android/server/location/provider/LocationProviderManager;->setLastLocation(ILandroid/location/Location;)V
 PLcom/android/server/location/provider/LocationProviderManager;->setProviderRequest(Landroid/location/provider/ProviderRequest;)V
 PLcom/android/server/location/provider/LocationProviderManager;->setRealProvider(Lcom/android/server/location/provider/AbstractLocationProvider;)V
-HPLcom/android/server/location/provider/LocationProviderManager;->startManager(Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;)V
-PLcom/android/server/location/provider/LocationProviderManager;->unregisterLocationRequest(Landroid/location/ILocationListener;)V
-PLcom/android/server/location/provider/MockableLocationProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/MockableLocationProvider$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper;->$r8$lambda$-OaxEM5nNcchTLhF3jHu6bbV1hc(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
+PLcom/android/server/location/provider/LocationProviderManager;->startManager(Lcom/android/server/location/LocationManagerService;)V
+PLcom/android/server/location/provider/LocationProviderManager;->unregisterWithService()V
 PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper;-><init>(Lcom/android/server/location/provider/MockableLocationProvider;Lcom/android/server/location/provider/AbstractLocationProvider;)V
-PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper;->lambda$onStateChanged$0(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
+PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper;->onReportLocation(Landroid/location/LocationResult;)V
 PLcom/android/server/location/provider/MockableLocationProvider$ListenerWrapper;->onStateChanged(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V
-PLcom/android/server/location/provider/MockableLocationProvider;->$r8$lambda$va9Z2xDqK0vFpiJbyUFkO_K-fVw(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/MockableLocationProvider;->-$$Nest$fgetmProvider(Lcom/android/server/location/provider/MockableLocationProvider;)Lcom/android/server/location/provider/AbstractLocationProvider;
 PLcom/android/server/location/provider/MockableLocationProvider;-><init>(Ljava/lang/Object;)V
+PLcom/android/server/location/provider/MockableLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/location/provider/MockableLocationProvider;->isMock()Z
-PLcom/android/server/location/provider/MockableLocationProvider;->lambda$setProviderLocked$0(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
 PLcom/android/server/location/provider/MockableLocationProvider;->onSetRequest(Landroid/location/provider/ProviderRequest;)V
 PLcom/android/server/location/provider/MockableLocationProvider;->onStart()V
-HPLcom/android/server/location/provider/MockableLocationProvider;->setProviderLocked(Lcom/android/server/location/provider/AbstractLocationProvider;)V
-PLcom/android/server/location/provider/MockableLocationProvider;->setRealProvider(Lcom/android/server/location/provider/AbstractLocationProvider;)V
+PLcom/android/server/location/provider/MockableLocationProvider;->setProviderLocked(Lcom/android/server/location/provider/AbstractLocationProvider;)V
 PLcom/android/server/location/provider/PassiveLocationProvider;-><clinit>()V
-PLcom/android/server/location/provider/PassiveLocationProvider;-><init>(Landroid/content/Context;)V
+PLcom/android/server/location/provider/PassiveLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/location/provider/PassiveLocationProvider;->onSetRequest(Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/provider/PassiveLocationProviderManager;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;)V
 PLcom/android/server/location/provider/PassiveLocationProviderManager;->calculateRequestDelayMillis(JLjava/util/Collection;)J
+PLcom/android/server/location/provider/PassiveLocationProviderManager;->getServiceState()Ljava/lang/String;
 PLcom/android/server/location/provider/PassiveLocationProviderManager;->mergeRegistrations(Ljava/util/Collection;)Landroid/location/provider/ProviderRequest;
 PLcom/android/server/location/provider/PassiveLocationProviderManager;->mergeRegistrations(Ljava/util/Collection;)Ljava/lang/Object;
 PLcom/android/server/location/provider/PassiveLocationProviderManager;->setRealProvider(Lcom/android/server/location/provider/AbstractLocationProvider;)V
+PLcom/android/server/location/provider/proxy/ProxyGeocodeProvider$1;-><init>(Landroid/location/provider/ReverseGeocodeRequest;Landroid/location/provider/IGeocodeCallback;)V
+PLcom/android/server/location/provider/proxy/ProxyGeocodeProvider$1;->run(Landroid/os/IBinder;)V
+PLcom/android/server/location/provider/proxy/ProxyGeocodeProvider;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider$$ExternalSyntheticLambda1;-><init>(Landroid/location/provider/ProviderRequest;)V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$1$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$1$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$1;->$r8$lambda$NpVYyz_7AUBxLdPXQhWgbBcYbjI(Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
+PLcom/android/server/location/provider/proxy/ProxyLocationProvider$$ExternalSyntheticLambda1;->run(Landroid/os/IBinder;)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider$1;-><init>(Lcom/android/server/location/provider/proxy/ProxyLocationProvider;)V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$1;->lambda$run$0(Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$1;->run()V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy$$ExternalSyntheticLambda0;-><init>(ZLandroid/location/provider/ProviderProperties;Landroid/location/util/identity/CallerIdentity;Landroid/util/ArraySet;)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;->$r8$lambda$ahStkXOFheXDf68f4rSpZILgStI(ZLandroid/location/provider/ProviderProperties;Landroid/location/util/identity/CallerIdentity;Landroid/util/ArraySet;Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;-><init>(Lcom/android/server/location/provider/proxy/ProxyLocationProvider;)V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;->lambda$onInitialize$0(ZLandroid/location/provider/ProviderProperties;Landroid/location/util/identity/CallerIdentity;Landroid/util/ArraySet;Lcom/android/server/location/provider/AbstractLocationProvider$State;)Lcom/android/server/location/provider/AbstractLocationProvider$State;
-HPLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;->onInitialize(ZLandroid/location/provider/ProviderProperties;Ljava/lang/String;)V
+PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;->onInitialize(ZLandroid/location/provider/ProviderProperties;Ljava/lang/String;)V
+PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;->onReportLocation(Landroid/location/Location;)V
+PLcom/android/server/location/provider/proxy/ProxyLocationProvider$Proxy;->onSetAllowed(Z)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->access$000(Lcom/android/server/location/provider/proxy/ProxyLocationProvider;Ljava/util/function/UnaryOperator;)V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->access$100(Lcom/android/server/location/provider/proxy/ProxyLocationProvider;Ljava/util/function/UnaryOperator;)V
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->checkServiceResolves()Z
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->create(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/location/provider/proxy/ProxyLocationProvider;
-PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;)V
+PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->onSetRequest(Landroid/location/provider/ProviderRequest;)V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->onStart()V
 PLcom/android/server/location/provider/proxy/ProxyLocationProvider;->onUnbind()V
+PLcom/android/server/location/provider/proxy/ProxyPopulationDensityProvider;-><init>(Landroid/content/Context;)V
 PLcom/android/server/location/settings/LocationSettings;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/settings/LocationSettings;->registerLocationUserSettingsListener(Lcom/android/server/location/settings/LocationSettings$LocationUserSettingsListener;)V
+PLcom/android/server/locksettings/BiometricDeferredQueue$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/locksettings/BiometricDeferredQueue;I[B)V
+PLcom/android/server/locksettings/BiometricDeferredQueue$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/locksettings/BiometricDeferredQueue$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/locksettings/BiometricDeferredQueue;)V
+PLcom/android/server/locksettings/BiometricDeferredQueue$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/locksettings/BiometricDeferredQueue$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/locksettings/BiometricDeferredQueue;)V
-PLcom/android/server/locksettings/BiometricDeferredQueue;-><init>(Lcom/android/server/locksettings/SyntheticPasswordManager;Landroid/os/Handler;)V
-PLcom/android/server/locksettings/BiometricDeferredQueue;->systemReady(Landroid/hardware/fingerprint/FingerprintManager;Landroid/hardware/face/FaceManager;Landroid/hardware/biometrics/BiometricManager;)V
+PLcom/android/server/locksettings/BiometricDeferredQueue$UserAuthInfo;-><init>(I[B)V
+PLcom/android/server/locksettings/BiometricDeferredQueue;-><init>(Lcom/android/server/locksettings/SyntheticPasswordManager;)V
+PLcom/android/server/locksettings/BiometricDeferredQueue;->requestHatFromGatekeeperPassword(Lcom/android/server/locksettings/SyntheticPasswordManager;Lcom/android/server/locksettings/BiometricDeferredQueue$UserAuthInfo;J)[B
+PLcom/android/server/locksettings/LockSettingsService$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/locksettings/LockSettingsService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/internal/widget/LockscreenCredential;I)V
+PLcom/android/server/locksettings/LockSettingsService$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/locksettings/LockSettingsService$$ExternalSyntheticLambda5;-><init>(I)V
+PLcom/android/server/locksettings/LockSettingsService$$ExternalSyntheticLambda5;->run()V
 PLcom/android/server/locksettings/LockSettingsService$1;-><init>(Lcom/android/server/locksettings/LockSettingsService;I)V
 PLcom/android/server/locksettings/LockSettingsService$1;->run()V
 PLcom/android/server/locksettings/LockSettingsService$2;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
 PLcom/android/server/locksettings/LockSettingsService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/locksettings/LockSettingsService$3;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
+PLcom/android/server/locksettings/LockSettingsService$4;-><init>(Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/server/locksettings/LockSettingsService$4;->onFinished(ILandroid/os/Bundle;)V
 PLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
 PLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->isProvisioned()Z
-PLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->onSystemReady()V
+PLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->onChange(ZLandroid/net/Uri;I)V
 PLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->updateRegistration()V
 PLcom/android/server/locksettings/LockSettingsService$GateKeeperDiedRecipient;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
-PLcom/android/server/locksettings/LockSettingsService$GateKeeperDiedRecipient;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService$GateKeeperDiedRecipient-IA;)V
-PLcom/android/server/locksettings/LockSettingsService$Injector$1;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;Lcom/android/server/locksettings/LockSettingsStorage;)V
-PLcom/android/server/locksettings/LockSettingsService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getActivityManager()Landroid/app/IActivityManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getBiometricManager()Landroid/hardware/biometrics/BiometricManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getFaceManager()Landroid/hardware/face/FaceManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getFingerprintManager()Landroid/hardware/fingerprint/FingerprintManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getHandler(Lcom/android/server/ServiceThread;)Landroid/os/Handler;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getJavaKeyStore()Ljava/security/KeyStore;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getNotificationManager()Landroid/app/NotificationManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getRebootEscrowManager(Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;)Lcom/android/server/locksettings/RebootEscrowManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getRecoverableKeyStoreManager()Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getServiceThread()Lcom/android/server/ServiceThread;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getStorage()Lcom/android/server/locksettings/LockSettingsStorage;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getStorageManager()Landroid/os/storage/IStorageManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getStrongAuth()Lcom/android/server/locksettings/LockSettingsStrongAuth;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getStrongAuthTracker()Lcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getSyntheticPasswordManager(Lcom/android/server/locksettings/LockSettingsStorage;)Lcom/android/server/locksettings/SyntheticPasswordManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getUnifiedProfilePasswordCache(Ljava/security/KeyStore;)Lcom/android/server/locksettings/UnifiedProfilePasswordCache;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getUserManager()Landroid/os/UserManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->isGsiRunning()Z
+PLcom/android/server/locksettings/LockSettingsService$Injector$1;-><init>(Ljava/lang/Object;)V
 PLcom/android/server/locksettings/LockSettingsService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onStart()V
 PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/locksettings/LockSettingsService$LocalService;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
-PLcom/android/server/locksettings/LockSettingsService$LocalService;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService$LocalService-IA;)V
+PLcom/android/server/locksettings/LockSettingsService$LocalService;->getUserPasswordMetrics(I)Landroid/app/admin/PasswordMetrics;
 PLcom/android/server/locksettings/LockSettingsService$LocalService;->onThirdPartyAppsStarted()V
+PLcom/android/server/locksettings/LockSettingsService$LocalService;->registerLockSettingsStateListener(Lcom/android/internal/widget/LockSettingsStateListener;)V
 PLcom/android/server/locksettings/LockSettingsService$LocalService;->setRebootEscrowListener(Lcom/android/internal/widget/RebootEscrowListener;)V
-PLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
-PLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks-IA;)V
-PLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;->isUserSecure(I)Z
-PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;-><init>(Landroid/content/Context;)V
 PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->getStrongAuthForUser(I)I
 PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->handleStrongAuthRequiredChanged(II)V
-PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->register(Lcom/android/server/locksettings/LockSettingsStrongAuth;)V
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$fgetmContext(Lcom/android/server/locksettings/LockSettingsService;)Landroid/content/Context;
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$fgetmRebootEscrowManager(Lcom/android/server/locksettings/LockSettingsService;)Lcom/android/server/locksettings/RebootEscrowManager;
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mhideEncryptionNotification(Lcom/android/server/locksettings/LockSettingsService;Landroid/os/UserHandle;)V
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$misUserSecure(Lcom/android/server/locksettings/LockSettingsService;I)Z
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mloadEscrowData(Lcom/android/server/locksettings/LockSettingsService;)V
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$monThirdPartyAppsStarted(Lcom/android/server/locksettings/LockSettingsService;)V
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$monUserStarting(Lcom/android/server/locksettings/LockSettingsService;I)V
-PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$monUserUnlocking(Lcom/android/server/locksettings/LockSettingsService;I)V
 PLcom/android/server/locksettings/LockSettingsService;-><clinit>()V
-PLcom/android/server/locksettings/LockSettingsService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/locksettings/LockSettingsService;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;)V
+PLcom/android/server/locksettings/LockSettingsService;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;)V
 PLcom/android/server/locksettings/LockSettingsService;->callToAuthSecretIfNeeded(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;Z)V
-PLcom/android/server/locksettings/LockSettingsService;->checkDatabaseReadPermission(Ljava/lang/String;I)V
-PLcom/android/server/locksettings/LockSettingsService;->checkPasswordHavePermission()V
+PLcom/android/server/locksettings/LockSettingsService;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
+PLcom/android/server/locksettings/LockSettingsService;->checkDatabaseReadPermission(ILjava/lang/String;)V
 PLcom/android/server/locksettings/LockSettingsService;->checkPasswordReadPermission()V
 PLcom/android/server/locksettings/LockSettingsService;->checkWritePermission()V
 PLcom/android/server/locksettings/LockSettingsService;->deleteRepairModePersistentDataIfNeeded()V
-PLcom/android/server/locksettings/LockSettingsService;->getAuthSecretHal()V
+PLcom/android/server/locksettings/LockSettingsService;->disableEscrowTokenOnNonManagedDevicesIfNeeded(I)V
+PLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;I)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;->dumpInternal(Ljava/io/PrintWriter;)V
+PLcom/android/server/locksettings/LockSettingsService;->enforceFrpNotActive()V
+PLcom/android/server/locksettings/LockSettingsService;->generateKey(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/locksettings/LockSettingsService;->getBoolean(Ljava/lang/String;ZI)Z
 PLcom/android/server/locksettings/LockSettingsService;->getCredentialType(I)I
 PLcom/android/server/locksettings/LockSettingsService;->getCredentialTypeInternal(I)I
 PLcom/android/server/locksettings/LockSettingsService;->getCurrentLskfBasedProtectorId(I)J
 PLcom/android/server/locksettings/LockSettingsService;->getGateKeeperService()Landroid/service/gatekeeper/IGateKeeperService;
+PLcom/android/server/locksettings/LockSettingsService;->getKey(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/locksettings/LockSettingsService;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
 PLcom/android/server/locksettings/LockSettingsService;->getLong(Ljava/lang/String;JI)J
+PLcom/android/server/locksettings/LockSettingsService;->getProfilesWithSameLockScreen(I)Ljava/util/Set;
+PLcom/android/server/locksettings/LockSettingsService;->getRecoverySecretTypes()[I
+PLcom/android/server/locksettings/LockSettingsService;->getRecoveryStatus()Ljava/util/Map;
+PLcom/android/server/locksettings/LockSettingsService;->getSeparateProfileChallengeEnabledInternal(I)Z
 PLcom/android/server/locksettings/LockSettingsService;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsService;->getUserManagerFromCache(I)Landroid/os/UserManager;
+PLcom/android/server/locksettings/LockSettingsService;->getUserPasswordMetrics(I)Landroid/app/admin/PasswordMetrics;
 PLcom/android/server/locksettings/LockSettingsService;->hasPermission(Ljava/lang/String;)Z
-PLcom/android/server/locksettings/LockSettingsService;->hideEncryptionNotification(Landroid/os/UserHandle;)V
+PLcom/android/server/locksettings/LockSettingsService;->hasSecureLockScreen()Z
+PLcom/android/server/locksettings/LockSettingsService;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
 PLcom/android/server/locksettings/LockSettingsService;->isCeStorageUnlocked(I)Z
 PLcom/android/server/locksettings/LockSettingsService;->isCredentialSharableWithParent(I)Z
+PLcom/android/server/locksettings/LockSettingsService;->isProfileWithUnifiedLock(I)Z
 PLcom/android/server/locksettings/LockSettingsService;->isUserSecure(I)Z
-PLcom/android/server/locksettings/LockSettingsService;->loadEscrowData()V
 PLcom/android/server/locksettings/LockSettingsService;->maybeShowEncryptionNotificationForUser(ILjava/lang/String;)V
-PLcom/android/server/locksettings/LockSettingsService;->migrateOldData()V
 PLcom/android/server/locksettings/LockSettingsService;->migrateOldDataAfterSystemReady()V
+PLcom/android/server/locksettings/LockSettingsService;->onCredentialVerified(Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;Landroid/app/admin/PasswordMetrics;I)V
+PLcom/android/server/locksettings/LockSettingsService;->onPostPasswordChanged(Lcom/android/internal/widget/LockscreenCredential;I)V
 PLcom/android/server/locksettings/LockSettingsService;->onSyntheticPasswordKnown(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;Z)V
-PLcom/android/server/locksettings/LockSettingsService;->onSyntheticPasswordUnlocked(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;)V
-PLcom/android/server/locksettings/LockSettingsService;->onThirdPartyAppsStarted()V
-PLcom/android/server/locksettings/LockSettingsService;->onUserStarting(I)V
-PLcom/android/server/locksettings/LockSettingsService;->onUserUnlocking(I)V
 PLcom/android/server/locksettings/LockSettingsService;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+PLcom/android/server/locksettings/LockSettingsService;->removeBiometricsForUser(I)V
+PLcom/android/server/locksettings/LockSettingsService;->removeKeystoreProfileKey(I)V
+PLcom/android/server/locksettings/LockSettingsService;->scheduleGc()V
+PLcom/android/server/locksettings/LockSettingsService;->sendBroadcast(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
+PLcom/android/server/locksettings/LockSettingsService;->sendCredentialsOnChangeIfRequired(IZLcom/android/internal/widget/LockscreenCredential;)V
+PLcom/android/server/locksettings/LockSettingsService;->setBoolean(Ljava/lang/String;ZI)V
+PLcom/android/server/locksettings/LockSettingsService;->setCurrentLskfBasedProtectorId(IJ)V
+PLcom/android/server/locksettings/LockSettingsService;->setLockCredential(Lcom/android/internal/widget/LockscreenCredential;Lcom/android/internal/widget/LockscreenCredential;I)Z
+PLcom/android/server/locksettings/LockSettingsService;->setLockCredentialInternal(Lcom/android/internal/widget/LockscreenCredential;Lcom/android/internal/widget/LockscreenCredential;IZ)Z
+PLcom/android/server/locksettings/LockSettingsService;->setLockCredentialWithSpLocked(Lcom/android/internal/widget/LockscreenCredential;Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;I)V
+PLcom/android/server/locksettings/LockSettingsService;->setLong(Ljava/lang/String;JI)V
+PLcom/android/server/locksettings/LockSettingsService;->setRecoverySecretTypes([I)V
+PLcom/android/server/locksettings/LockSettingsService;->setRecoveryStatus(Ljava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsService;->setSeparateProfileChallengeEnabledLocked(IZLcom/android/internal/widget/LockscreenCredential;)V
+PLcom/android/server/locksettings/LockSettingsService;->setServerParams([B)V
+PLcom/android/server/locksettings/LockSettingsService;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
 PLcom/android/server/locksettings/LockSettingsService;->systemReady()V
+PLcom/android/server/locksettings/LockSettingsService;->tieProfileLockIfNecessary(Lcom/android/internal/widget/LockscreenCredential;I)V
 PLcom/android/server/locksettings/LockSettingsService;->unlockCeStorage(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;)V
-PLcom/android/server/locksettings/LockSettingsService;->unlockKeystore(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;)V
+PLcom/android/server/locksettings/LockSettingsService;->unlockUser(I)V
 PLcom/android/server/locksettings/LockSettingsService;->unlockUserKeyIfUnsecured(I)V
 PLcom/android/server/locksettings/LockSettingsService;->userPresent(I)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;-><init>()V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;-><init>(Lcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey-IA;)V
-HPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->hashCode()I
-HPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->set(ILjava/lang/String;I)Lcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->-$$Nest$mgetVersion(Lcom/android/server/locksettings/LockSettingsStorage$Cache;)I
+PLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->hashCode()I
 PLcom/android/server/locksettings/LockSettingsStorage$Cache;-><init>()V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;-><init>(Lcom/android/server/locksettings/LockSettingsStorage$Cache-IA;)V
-HPLcom/android/server/locksettings/LockSettingsStorage$Cache;->contains(ILjava/lang/String;I)Z
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->copyOf([B)[B
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->getVersion()I
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->hasFile(Ljava/io/File;)Z
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->hasKeyValue(Ljava/lang/String;I)Z
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->isFetched(I)Z
-HPLcom/android/server/locksettings/LockSettingsStorage$Cache;->peek(ILjava/lang/String;I)Ljava/lang/Object;
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->peekFile(Ljava/io/File;)[B
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->peekKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/locksettings/LockSettingsStorage$Cache;->contains(IILjava/lang/String;)Z
 PLcom/android/server/locksettings/LockSettingsStorage$Cache;->put(ILjava/lang/String;Ljava/lang/Object;I)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->putFileIfUnchanged(Ljava/io/File;[BI)V
-HPLcom/android/server/locksettings/LockSettingsStorage$Cache;->putIfUnchanged(ILjava/lang/String;Ljava/lang/Object;II)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->putKeyValueIfUnchanged(Ljava/lang/String;Ljava/lang/Object;II)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->remove(ILjava/lang/String;I)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->removeKey(Ljava/lang/String;I)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->setFetched(I)V
-PLcom/android/server/locksettings/LockSettingsStorage$DatabaseHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/locksettings/LockSettingsStorage$DatabaseHelper;->setCallback(Lcom/android/server/locksettings/LockSettingsStorage$Callback;)V
-PLcom/android/server/locksettings/LockSettingsStorage;->-$$Nest$sfgetDEFAULT()Ljava/lang/Object;
+PLcom/android/server/locksettings/LockSettingsStorage$Cache;->putIfUnchanged(ILjava/lang/String;Ljava/lang/Object;II)V
+PLcom/android/server/locksettings/LockSettingsStorage$PersistentData;-><clinit>()V
+PLcom/android/server/locksettings/LockSettingsStorage$PersistentData;-><init>(III[B)V
+PLcom/android/server/locksettings/LockSettingsStorage$PersistentData;->fromBytes([B)Lcom/android/server/locksettings/LockSettingsStorage$PersistentData;
+PLcom/android/server/locksettings/LockSettingsStorage$PersistentData;->toBytes(III[B)[B
 PLcom/android/server/locksettings/LockSettingsStorage;-><clinit>()V
 PLcom/android/server/locksettings/LockSettingsStorage;-><init>(Landroid/content/Context;)V
+PLcom/android/server/locksettings/LockSettingsStorage;->deleteFile(Ljava/io/File;)V
+PLcom/android/server/locksettings/LockSettingsStorage;->fsyncDirectory(Ljava/io/File;)V
 PLcom/android/server/locksettings/LockSettingsStorage;->getBoolean(Ljava/lang/String;ZI)Z
-PLcom/android/server/locksettings/LockSettingsStorage;->getLong(Ljava/lang/String;JI)J
+PLcom/android/server/locksettings/LockSettingsStorage;->getChildProfileLockFile(I)Ljava/io/File;
+PLcom/android/server/locksettings/LockSettingsStorage;->getLockCredentialFileForUser(ILjava/lang/String;)Ljava/io/File;
+PLcom/android/server/locksettings/LockSettingsStorage;->getPersistentDataBlockManager()Lcom/android/server/pdb/PersistentDataBlockManagerInternal;
+PLcom/android/server/locksettings/LockSettingsStorage;->getRepairModePersistentDataFile()Ljava/io/File;
 PLcom/android/server/locksettings/LockSettingsStorage;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
 PLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordDirectoryForUser(I)Ljava/io/File;
-HPLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordStateFileForUser(IJLjava/lang/String;)Ljava/io/File;
+PLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordStateFileForUser(ILjava/lang/String;J)Ljava/io/File;
+PLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordProtectorsForAllUsers(Ljava/lang/String;)Ljava/util/Map;
+PLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordProtectorsForUser(ILjava/lang/String;)Ljava/util/List;
 PLcom/android/server/locksettings/LockSettingsStorage;->prefetchUser(I)V
-HPLcom/android/server/locksettings/LockSettingsStorage;->readFile(Ljava/io/File;)[B
-HPLcom/android/server/locksettings/LockSettingsStorage;->readKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsStorage;->readSyntheticPasswordState(IJLjava/lang/String;)[B
-HPLcom/android/server/locksettings/LockSettingsStorage;->removeKey(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->readFile(Ljava/io/File;)[B
+PLcom/android/server/locksettings/LockSettingsStorage;->readKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/locksettings/LockSettingsStorage;->readPersistentDataBlock()Lcom/android/server/locksettings/LockSettingsStorage$PersistentData;
 PLcom/android/server/locksettings/LockSettingsStorage;->removeKey(Ljava/lang/String;I)V
-PLcom/android/server/locksettings/LockSettingsStorage;->setDatabaseOnCreateCallback(Lcom/android/server/locksettings/LockSettingsStorage$Callback;)V
+PLcom/android/server/locksettings/LockSettingsStorage;->setString(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->writeFile(Ljava/io/File;[BZ)V
+PLcom/android/server/locksettings/LockSettingsStorage;->writeKeyValue(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->writeKeyValue(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->writePersistentDataBlock(III[B)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth$1;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;Landroid/os/Looper;)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth$Injector;-><init>()V
 PLcom/android/server/locksettings/LockSettingsStrongAuth$Injector;->getAlarmManager(Landroid/content/Context;)Landroid/app/AlarmManager;
 PLcom/android/server/locksettings/LockSettingsStrongAuth$Injector;->getDefaultStrongAuthFlags(Landroid/content/Context;)I
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->-$$Nest$mhandleAddStrongAuthTracker(Lcom/android/server/locksettings/LockSettingsStrongAuth;Landroid/app/trust/IStrongAuthTracker;)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->-$$Nest$mhandleRequireStrongAuth(Lcom/android/server/locksettings/LockSettingsStrongAuth;II)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth$Injector;->getElapsedRealtimeMs()J
+PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;JI)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;-><clinit>()V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;-><init>(Landroid/content/Context;)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/LockSettingsStrongAuth$Injector;)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleAddStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRequireStrongAuth(II)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRequireStrongAuthOneUser(II)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->cancelNonStrongBiometricAlarmListener(I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->cancelNonStrongBiometricIdleAlarmListener(I)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->notifyStrongAuthTrackers(II)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->reportUnlock(I)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->requireStrongAuth(II)V
-PLcom/android/server/locksettings/PasswordSlotManager;-><init>()V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->rescheduleStrongAuthTimeoutAlarm(IJ)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->setIsNonStrongBiometricAllowed(ZI)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->setIsNonStrongBiometricAllowedOneUser(IZ)V
+PLcom/android/server/locksettings/PasswordSlotManager;->ensureSlotMapLoaded()V
+PLcom/android/server/locksettings/PasswordSlotManager;->getGsiImageNumber()I
+PLcom/android/server/locksettings/PasswordSlotManager;->getMode()Ljava/lang/String;
+PLcom/android/server/locksettings/PasswordSlotManager;->getSlotMapDir()Ljava/lang/String;
+PLcom/android/server/locksettings/PasswordSlotManager;->markSlotInUse(I)V
+PLcom/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/RebootEscrowKeyStoreManager;-><init>()V
-PLcom/android/server/locksettings/RebootEscrowManager$Injector;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/LockSettingsStorage;)V
-PLcom/android/server/locksettings/RebootEscrowManager$Injector;->getEventLog()Lcom/android/server/locksettings/RebootEscrowManager$RebootEscrowEventLog;
-PLcom/android/server/locksettings/RebootEscrowManager$Injector;->getKeyStoreManager()Lcom/android/server/locksettings/RebootEscrowKeyStoreManager;
-PLcom/android/server/locksettings/RebootEscrowManager$Injector;->getUserManager()Landroid/os/UserManager;
+PLcom/android/server/locksettings/RebootEscrowManager$Injector;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/LockSettingsStorage;Lcom/android/server/pm/UserManagerInternal;)V
 PLcom/android/server/locksettings/RebootEscrowManager$RebootEscrowEventLog;-><init>()V
-PLcom/android/server/locksettings/RebootEscrowManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;Landroid/os/Handler;)V
 PLcom/android/server/locksettings/RebootEscrowManager;-><init>(Lcom/android/server/locksettings/RebootEscrowManager$Injector;Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;Landroid/os/Handler;)V
-PLcom/android/server/locksettings/RebootEscrowManager;->callToRebootEscrowIfNeeded(IB[B)V
 PLcom/android/server/locksettings/RebootEscrowManager;->clearMetricsStorage()V
-PLcom/android/server/locksettings/RebootEscrowManager;->loadRebootEscrowDataIfAvailable(Landroid/os/Handler;)V
-PLcom/android/server/locksettings/RebootEscrowManager;->setRebootEscrowListener(Lcom/android/internal/widget/RebootEscrowListener;)V
-PLcom/android/server/locksettings/SP800Derive;-><init>([B)V
-PLcom/android/server/locksettings/SP800Derive;->getMac()Ljavax/crypto/Mac;
-PLcom/android/server/locksettings/SP800Derive;->update32(Ljavax/crypto/Mac;I)V
-PLcom/android/server/locksettings/SP800Derive;->withContext([B[B)[B
+PLcom/android/server/locksettings/SecureRandomUtils;-><clinit>()V
+PLcom/android/server/locksettings/SecureRandomUtils;->randomBytes(I)[B
 PLcom/android/server/locksettings/SyntheticPasswordCrypto;-><clinit>()V
-PLcom/android/server/locksettings/SyntheticPasswordCrypto;->androidKeystoreProviderName()Ljava/lang/String;
-PLcom/android/server/locksettings/SyntheticPasswordCrypto;->decrypt(Ljavax/crypto/SecretKey;[B)[B
+PLcom/android/server/locksettings/SyntheticPasswordCrypto;->decrypt([BLjavax/crypto/SecretKey;)[B
 PLcom/android/server/locksettings/SyntheticPasswordCrypto;->decrypt([B[B[B)[B
-PLcom/android/server/locksettings/SyntheticPasswordCrypto;->decryptBlob(Ljava/lang/String;[B[B)[B
+PLcom/android/server/locksettings/SyntheticPasswordCrypto;->encrypt([BLjavax/crypto/SecretKey;)[B
+PLcom/android/server/locksettings/SyntheticPasswordCrypto;->encrypt([B[B[B)[B
 PLcom/android/server/locksettings/SyntheticPasswordCrypto;->getKeyStore()Ljava/security/KeyStore;
-PLcom/android/server/locksettings/SyntheticPasswordCrypto;->keyNamespace()I
 PLcom/android/server/locksettings/SyntheticPasswordCrypto;->personalizedHash([B[[B)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationResult;-><init>()V
+PLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->fromBytes([B)Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;
+PLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->toBytes()[B
 PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;-><init>(B)V
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->deriveFileBasedEncryptionKey()[B
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->deriveGkPassword()[B
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->deriveKeyStorePassword()[B
 PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->deriveSubkey([B)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->getSyntheticPassword()[B
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->getVersion()B
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->recreateDirectly([B)V
-PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPasswordBlob;-><init>()V
 PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPasswordBlob;->fromBytes([B)Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPasswordBlob;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->-$$Nest$sfgetPERSONALIZATION_CONTEXT()[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->-$$Nest$sfgetPERSONALIZATION_FBE_KEY()[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->-$$Nest$sfgetPERSONALIZATION_KEY_STORE_PASSWORD()[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->-$$Nest$sfgetPERSONALIZATION_SP_GK_AUTH()[B
+PLcom/android/server/locksettings/SyntheticPasswordManager$WeaverDiedRecipient;-><init>(Lcom/android/server/locksettings/SyntheticPasswordManager;)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;-><clinit>()V
 PLcom/android/server/locksettings/SyntheticPasswordManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/LockSettingsStorage;Landroid/os/UserManager;Lcom/android/server/locksettings/PasswordSlotManager;)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->bytesToHex([B)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->createLskfBasedProtector(Landroid/service/gatekeeper/IGateKeeperService;Lcom/android/internal/widget/LockscreenCredential;Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;I)J
+PLcom/android/server/locksettings/SyntheticPasswordManager;->createSpBlob(Ljava/lang/String;[B[BJ)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->createSyntheticPasswordBlob(JBLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;[BJI)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->decryptSpBlob(Ljava/lang/String;[B[B)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->getCredentialType(JI)I
+PLcom/android/server/locksettings/SyntheticPasswordManager;->destroyLskfBasedProtector(IJ)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->destroyProtectorKey(Ljava/lang/String;)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->destroyState(ILjava/lang/String;J)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->destroyWeaverSlot(IJ)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getNextAvailableWeaverSlot()I
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getPendingTokensForUser(I)Ljava/util/Set;
 PLcom/android/server/locksettings/SyntheticPasswordManager;->getProtectorKeyAlias(J)Ljava/lang/String;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->loadSecdiscardable(JI)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->loadState(Ljava/lang/String;JI)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->loadSyntheticPasswordHandle(I)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->loadWeaverSlot(JI)I
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getSpecialUserPersistentData(I)Lcom/android/server/locksettings/LockSettingsStorage$PersistentData;
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getUsedWeaverSlots()Ljava/util/Set;
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getWeaverService()Landroid/hardware/weaver/IWeaver;
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getWeaverServiceInternal()Landroid/hardware/weaver/IWeaver;
+PLcom/android/server/locksettings/SyntheticPasswordManager;->hasPasswordMetrics(JI)Z
+PLcom/android/server/locksettings/SyntheticPasswordManager;->hasState(ILjava/lang/String;J)Z
+PLcom/android/server/locksettings/SyntheticPasswordManager;->isAutoPinConfirmationFeatureAvailable()Z
+PLcom/android/server/locksettings/SyntheticPasswordManager;->loadState(ILjava/lang/String;J)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->loadWeaverSlot(IJ)I
+PLcom/android/server/locksettings/SyntheticPasswordManager;->savePasswordMetrics(Lcom/android/internal/widget/LockscreenCredential;Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;JI)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->saveState(Ljava/lang/String;[BJI)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->scrypt([B[BIIII)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->shouldSynchronizeFrpCredential(Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;I)Z
 PLcom/android/server/locksettings/SyntheticPasswordManager;->stretchLskf(Lcom/android/internal/widget/LockscreenCredential;Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->stretchedLskfToWeaverKey([B)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->syncState(I)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->synchronizeGatekeeperFrpPassword(Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;II)V
+PLcom/android/server/locksettings/SyntheticPasswordManager;->synchronizeWeaverFrpPassword(Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;III)V
 PLcom/android/server/locksettings/SyntheticPasswordManager;->transformUnderSecdiscardable([B[B)[B
 PLcom/android/server/locksettings/SyntheticPasswordManager;->unlockLskfBasedProtector(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$SyntheticPassword;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->verifyChallenge(Landroid/service/gatekeeper/IGateKeeperService;Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;JI)Lcom/android/internal/widget/VerifyCredentialResponse;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->verifyChallengeInternal(Landroid/service/gatekeeper/IGateKeeperService;[BJI)Lcom/android/internal/widget/VerifyCredentialResponse;
+PLcom/android/server/locksettings/SyntheticPasswordManager;->verifyChallengeInternal(IJLandroid/service/gatekeeper/IGateKeeperService;[B)Lcom/android/internal/widget/VerifyCredentialResponse;
+PLcom/android/server/locksettings/SyntheticPasswordManager;->weaverEnroll(Landroid/hardware/weaver/IWeaver;I[B[B)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->weaverVerify(Landroid/hardware/weaver/IWeaver;I[B)Lcom/android/internal/widget/VerifyCredentialResponse;
 PLcom/android/server/locksettings/UnifiedProfilePasswordCache;-><clinit>()V
 PLcom/android/server/locksettings/UnifiedProfilePasswordCache;-><init>(Ljava/security/KeyStore;)V
+PLcom/android/server/locksettings/UnifiedProfilePasswordCache;->removePassword(I)V
 PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;-><init>(Ljava/security/KeyStore;)V
-PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
+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
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->generateAndStoreCounterId(I)J
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->getKeysToSync(I)Ljava/util/Map;
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->getSnapshotVersion(IZ)I
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->getUiFormat(I)I
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->hashCredentialsBySaltedSha256([B[B)[B
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->run()V
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->syncKeys()V
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->syncKeysForAgent(I)V
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;-><clinit>()V
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;->encryptKeysWithRecoveryKey(Ljavax/crypto/SecretKey;Ljava/util/Map;)Ljava/util/Map;
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;->locallyEncryptRecoveryKey([BLjavax/crypto/SecretKey;)[B
+PLcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;-><init>(ILjavax/crypto/SecretKey;)V
+PLcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;-><init>(ILjavax/crypto/SecretKey;)V
 PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;-><clinit>()V
 PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/KeyStoreProxy;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)V
-PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->ensureDecryptionKeyIsValid(ILcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;)V
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->generateAndLoadKey(II)V
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getDecryptAlias(II)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getDecryptKeyInternal(I)Lcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getEncryptAlias(II)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getEncryptKey(I)Lcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getEncryptKeyInternal(I)Lcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;
 PLcom/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;->isKeyLoaded(II)Z
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;-><init>(Ljavax/crypto/KeyGenerator;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;->newInstance(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;
+PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;->generateAndStoreKey(Lcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;IILjava/lang/String;[B)[B
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorage;Ljava/util/concurrent/ScheduledExecutorService;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;Lcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;Lcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;Lcom/android/server/locksettings/recoverablekeystore/storage/RemoteLockscreenValidationSessionStorage;)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getInstance(Landroid/content/Context;)Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;
-PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;-><init>()V
-PLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;-><init>()V
+PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->checkRecoverKeyStorePermission()V
+PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->generateKeyWithMetadata(Ljava/lang/String;[B)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getAlias(IILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryService(Ljava/lang/String;[B)V
+PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->tryToSendIntent(ILandroid/app/PendingIntent;)V
+PLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;->getDefaultCertificateAliasIfEmpty(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;->getRootCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+PLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;->getValidationDate(Ljava/lang/String;)Ljava/util/Date;
+PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;-><init>([B[B[BII)V
+PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->fromSecretKey(Lcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;Ljavax/crypto/SecretKey;[B)Lcom/android/server/locksettings/recoverablekeystore/WrappedKey;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->buildCertPath(Ljava/security/cert/PKIXParameters;)Ljava/security/cert/CertPath;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->buildPkixParams(Ljava/util/Date;Ljava/security/cert/X509Certificate;Ljava/util/List;Ljava/security/cert/X509Certificate;)Ljava/security/cert/PKIXParameters;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeBase64(Ljava/lang/String;)[B
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeCert([B)Ljava/security/cert/X509Certificate;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlDirectChildren(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlNodeContents(ILorg/w3c/dom/Element;[Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlRootNode([B)Lorg/w3c/dom/Element;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->validateCert(Ljava/util/Date;Ljava/security/cert/X509Certificate;Ljava/util/List;Ljava/security/cert/X509Certificate;)Ljava/security/cert/CertPath;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertXml;-><init>(JLjava/util/List;Ljava/util/List;)V
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertXml;->getEndpointCert(ILjava/util/Date;Ljava/security/cert/X509Certificate;)Ljava/security/cert/CertPath;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/CertXml;->parse([B)Lcom/android/server/locksettings/recoverablekeystore/certificate/CertXml;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;-><init>(Ljava/util/List;Ljava/security/cert/X509Certificate;[B)V
+PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;->parse([B)Lcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;
+PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;->verifyFileSignature(Ljava/security/cert/X509Certificate;[BLjava/util/Date;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->deserializeInternal(Ljava/io/InputStream;)Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readBlobTag(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)[B
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readIntTag(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)I
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readText(Lcom/android/modules/utils/TypedXmlPullParser;)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->serialize(Landroid/security/keystore/recovery/KeyChainSnapshot;Ljava/io/OutputStream;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writePropertyTag(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;J)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writePropertyTag([BLjava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;-><init>(Lcom/android/server/locksettings/recoverablekeystore/KeyStoreProxy;)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->getInstance()Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;
+PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->getInternalAlias(IILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->setSymmetricKeyEntry(Ljava/lang/String;II[B)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager$1;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Landroid/os/UserManager;Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->getInstance(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;)Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;
+PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->registerRecoveryAgent(I)V
+PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->storeUserSerialNumber(IJ)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->verifyKnownUsers()V
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb$$ExternalSyntheticLambda0;-><init>(Ljava/util/StringJoiner;)V
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb$$ExternalSyntheticLambda0;->accept(I)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;)V
+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;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getAllKeys(III)Ljava/util/Map;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBadRemoteGuessCounter(I)I
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;)[B
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;)Ljava/lang/Long;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getPlatformKeyGenerationId(I)I
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoveryAgents(I)Ljava/util/List;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoverySecretTypes(II)[I
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getUserSerialNumbers()Ljava/util/Map;
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->newInstance(Landroid/content/Context;)Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;->getDbVersion(Landroid/content/Context;)I
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->insertKey(IILjava/lang/String;Lcom/android/server/locksettings/recoverablekeystore/WrappedKey;)J
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setLong(IILjava/lang/String;J)J
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setRecoveryServiceCertPath(IILjava/lang/String;Ljava/security/cert/CertPath;)J
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setRecoveryServiceCertSerial(IILjava/lang/String;J)J
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setShouldCreateSnapshot(II)J
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorage;-><init>()V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;-><init>(Ljava/io/File;)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->newInstance()Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->get(I)Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->getSnapshotFile(I)Ljava/io/File;
 PLcom/android/server/locksettings/recoverablekeystore/storage/RemoteLockscreenValidationSessionStorage;-><init>()V
 PLcom/android/server/logcat/LogcatManagerService$BinderService;-><init>(Lcom/android/server/logcat/LogcatManagerService;)V
-PLcom/android/server/logcat/LogcatManagerService$BinderService;-><init>(Lcom/android/server/logcat/LogcatManagerService;Lcom/android/server/logcat/LogcatManagerService$BinderService-IA;)V
-PLcom/android/server/logcat/LogcatManagerService$Injector$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/logcat/LogcatManagerService$Injector;-><init>()V
-PLcom/android/server/logcat/LogcatManagerService$Injector;->createClock()Ljava/util/function/Supplier;
-PLcom/android/server/logcat/LogcatManagerService$Injector;->getLooper()Landroid/os/Looper;
 PLcom/android/server/logcat/LogcatManagerService$LogAccessDialogCallback;-><init>(Lcom/android/server/logcat/LogcatManagerService;)V
 PLcom/android/server/logcat/LogcatManagerService$LogAccessRequestHandler;-><init>(Landroid/os/Looper;Lcom/android/server/logcat/LogcatManagerService;)V
 PLcom/android/server/logcat/LogcatManagerService;-><clinit>()V
 PLcom/android/server/logcat/LogcatManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/logcat/LogcatManagerService;-><init>(Landroid/content/Context;Lcom/android/server/logcat/LogcatManagerService$Injector;)V
 PLcom/android/server/logcat/LogcatManagerService;->onStart()V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/AudioManagerRouteController;)V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/media/AudioManagerRouteController;)V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/media/AudioManagerRouteController;)V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda3;->onDevicesForAttributesChanged(Landroid/media/AudioAttributes;Ljava/util/List;)V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/media/AudioManagerRouteController;)V
+PLcom/android/server/media/AudioManagerRouteController$$ExternalSyntheticLambda4;->onBluetoothRoutesUpdated()V
+PLcom/android/server/media/AudioManagerRouteController$AudioDeviceCallbackImpl;-><init>(Lcom/android/server/media/AudioManagerRouteController;)V
+PLcom/android/server/media/AudioManagerRouteController$AudioDeviceCallbackImpl;->onAudioDevicesAdded([Landroid/media/AudioDeviceInfo;)V
+PLcom/android/server/media/AudioManagerRouteController$AudioDeviceCallbackImpl;->onAudioDevicesRemoved([Landroid/media/AudioDeviceInfo;)V
+PLcom/android/server/media/AudioManagerRouteController$MediaRoute2InfoHolder;-><init>(Landroid/media/MediaRoute2Info;IZ)V
+PLcom/android/server/media/AudioManagerRouteController$SystemRouteInfo;-><init>(IILjava/lang/String;)V
+PLcom/android/server/media/AudioManagerRouteController;-><clinit>()V
+PLcom/android/server/media/AudioManagerRouteController;-><init>(Landroid/content/Context;Landroid/media/AudioManager;Landroid/os/Looper;Landroid/media/audiopolicy/AudioProductStrategy;Landroid/bluetooth/BluetoothAdapter;Lcom/android/server/media/SystemMediaRoute2Provider$$ExternalSyntheticLambda1;)V
+HPLcom/android/server/media/AudioManagerRouteController;->createMediaRoute2Info(Ljava/lang/String;ILjava/lang/CharSequence;Ljava/lang/String;)Landroid/media/MediaRoute2Info;
+PLcom/android/server/media/AudioManagerRouteController;->createMediaRoute2InfoFromAudioDeviceInfo(Landroid/media/AudioDeviceInfo;)Landroid/media/MediaRoute2Info;
+PLcom/android/server/media/AudioManagerRouteController;->getAvailableRoutes()Ljava/util/List;
+PLcom/android/server/media/AudioManagerRouteController;->getSelectedRoute()Landroid/media/MediaRoute2Info;
+HPLcom/android/server/media/AudioManagerRouteController;->rebuildAvailableRoutes()V
+PLcom/android/server/media/AudioManagerRouteController;->rebuildAvailableRoutesAndNotify()V
+PLcom/android/server/media/AudioManagerRouteController;->start(Landroid/os/UserHandle;)V
+PLcom/android/server/media/AudioManagerRouteController;->updateVolume(I)Z
 PLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;)V
-PLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;Lcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener-IA;)V
-HPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;->onPlaybackConfigChanged(Ljava/util/List;)V
+HPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;->onPlaybackConfigChanged(Ljava/util/List;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;-><init>(Landroid/os/Looper;Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;)V
-PLcom/android/server/media/AudioPlayerStateMonitor;->-$$Nest$fgetmLock(Lcom/android/server/media/AudioPlayerStateMonitor;)Ljava/lang/Object;
+PLcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/media/AudioPlayerStateMonitor;->-$$Nest$msendAudioPlayerActiveStateChangedMessageLocked(Lcom/android/server/media/AudioPlayerStateMonitor;Landroid/media/AudioPlaybackConfiguration;Z)V
 PLcom/android/server/media/AudioPlayerStateMonitor;-><clinit>()V
 PLcom/android/server/media/AudioPlayerStateMonitor;-><init>(Landroid/content/Context;)V
+PLcom/android/server/media/AudioPlayerStateMonitor;->dump(Landroid/content/Context;Ljava/io/PrintWriter;)V
 PLcom/android/server/media/AudioPlayerStateMonitor;->getInstance(Landroid/content/Context;)Lcom/android/server/media/AudioPlayerStateMonitor;
-PLcom/android/server/media/AudioPlayerStateMonitor;->getSortedAudioPlaybackClientUids()Ljava/util/List;
 PLcom/android/server/media/AudioPlayerStateMonitor;->isPlaybackActive(I)Z
 PLcom/android/server/media/AudioPlayerStateMonitor;->registerListener(Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;Landroid/os/Handler;)V
+PLcom/android/server/media/AudioRoutingUtils;-><clinit>()V
+PLcom/android/server/media/BluetoothDeviceRoutesManager$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/media/BluetoothDeviceRoutesManager$DeviceStateChangedReceiver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/BluetoothDeviceRoutesManager$DeviceStateChangedReceiver;)V
+PLcom/android/server/media/BluetoothDeviceRoutesManager$DeviceStateChangedReceiver$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/media/BluetoothDeviceRoutesManager$DeviceStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothDeviceRoutesManager;I)V
+PLcom/android/server/media/BluetoothDeviceRoutesManager$DeviceStateChangedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/media/BluetoothDeviceRoutesManager;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/bluetooth/BluetoothAdapter;Lcom/android/server/media/BluetoothProfileMonitor;Lcom/android/server/media/BluetoothRouteController$BluetoothRoutesUpdatedListener;)V
+PLcom/android/server/media/BluetoothDeviceRoutesManager;->createBluetoothRoute(Landroid/bluetooth/BluetoothDevice;)Lcom/android/server/media/BluetoothDeviceRoutesManager$BluetoothRouteInfo;
+PLcom/android/server/media/BluetoothDeviceRoutesManager;->getDeviceName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+PLcom/android/server/media/BluetoothDeviceRoutesManager;->getRouteIdForType(Landroid/bluetooth/BluetoothDevice;I)Ljava/lang/String;
+PLcom/android/server/media/BluetoothDeviceRoutesManager;->updateBluetoothRoutes()V
+PLcom/android/server/media/BluetoothProfileMonitor$ProfileListener;-><init>(Lcom/android/server/media/BluetoothProfileMonitor;)V
+PLcom/android/server/media/BluetoothProfileMonitor$ProfileListener;->onServiceConnected(ILandroid/bluetooth/BluetoothProfile;)V
+PLcom/android/server/media/BluetoothProfileMonitor;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothAdapter;)V
+PLcom/android/server/media/BluetoothProfileMonitor;->isProfileSupported(Landroid/bluetooth/BluetoothDevice;I)Z
+PLcom/android/server/media/BluetoothRouteController$NoOpBluetoothRouteController;->getAllBluetoothRoutes()Ljava/util/List;
+PLcom/android/server/media/BluetoothRouteController$NoOpBluetoothRouteController;->getSelectedRoute()Landroid/media/MediaRoute2Info;
+PLcom/android/server/media/BluetoothRouteController$NoOpBluetoothRouteController;->getTransferableRoutes()Ljava/util/List;
+PLcom/android/server/media/BluetoothRouteController$NoOpBluetoothRouteController;->start(Landroid/os/UserHandle;)V
+PLcom/android/server/media/BluetoothRouteController$NoOpBluetoothRouteController;->updateVolumeForDevices(II)Z
 PLcom/android/server/media/HandlerExecutor;-><init>(Landroid/os/Handler;)V
-PLcom/android/server/media/MediaButtonReceiverHolder;->unflattenFromString(Landroid/content/Context;Ljava/lang/String;)Lcom/android/server/media/MediaButtonReceiverHolder;
-PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V
-HPLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda13;->onUidImportance(II)V
-PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V
+PLcom/android/server/media/MediaButtonReceiverHolder;-><init>(ILandroid/app/PendingIntent;Landroid/content/ComponentName;I)V
+PLcom/android/server/media/MediaButtonReceiverHolder;->create(Ljava/lang/String;Landroid/app/PendingIntent;I)Lcom/android/server/media/MediaButtonReceiverHolder;
+PLcom/android/server/media/MediaRoute2Provider;-><init>(Landroid/content/ComponentName;Z)V
+PLcom/android/server/media/MediaRoute2Provider;->notifyProviderState()V
+HPLcom/android/server/media/MediaRoute2Provider;->setProviderState(Landroid/media/MediaRoute2ProviderInfo;)V
+PLcom/android/server/media/MediaRoute2ProviderWatcher$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaRoute2ProviderWatcher;)V
+PLcom/android/server/media/MediaRoute2ProviderWatcher$$ExternalSyntheticLambda0;->run()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;-><clinit>()V
+PLcom/android/server/media/MediaRoute2ProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V
+HPLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda10;->onUidImportance(II)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11;->onPermissionsChanged(I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda15;-><init>(I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda15;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda20;-><init>(II)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda22;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda6;-><init>(I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda8;-><init>(I)V
+HPLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$1;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V
-HPLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$ataqgynQFVsOBE3vUnQ_-XD3XQg(Lcom/android/server/media/MediaRouter2ServiceImpl;II)V
+HPLcom/android/server/media/MediaRouter2ServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$2;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Landroid/content/Context;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Landroid/media/IMediaRouter2;IILjava/lang/String;ZZZZ)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;->getVisibleRoutes(Ljava/util/List;)Ljava/util/List;
+PLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;->hasSystemRoutingPermission()Z
+PLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;->maybeClearTransferInitiatorIdentity(Landroid/media/RoutingSessionInfo;)Landroid/media/RoutingSessionInfo;
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Landroid/os/Looper;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getManagerRecords()Ljava/util/List;
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getRouterRecords(Z)Ljava/util/List;
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->maybeUpdateDiscoveryPreferenceForUid(I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesUpdatedToRouterRecords(Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionInfoChangedToRouters(Ljava/util/List;Landroid/media/RoutingSessionInfo;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->toLoggingMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)Ljava/lang/String;
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->updateDiscoveryPreferenceOnHandler()V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ILjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;ZLjava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;ILandroid/os/Looper;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$_KlJMldyh-EHjCtdEMZwMuezeUQ(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;-><clinit>()V
-PLcom/android/server/media/MediaRouter2ServiceImpl;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$new$0(II)V
-PLcom/android/server/media/MediaRouter2ServiceImpl;->updateRunningUserAndProfiles(I)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->checkCallerHasBluetoothPermissions(II)Z
+PLcom/android/server/media/MediaRouter2ServiceImpl;->checkMediaContentControlPermission(II)Z
+PLcom/android/server/media/MediaRouter2ServiceImpl;->checkMediaRoutingControlPermission(IILjava/lang/String;)Z
+PLcom/android/server/media/MediaRouter2ServiceImpl;->getOrCreateUserRecordLocked(I)Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;
+PLcom/android/server/media/MediaRouter2ServiceImpl;->getSystemSessionInfo(Ljava/lang/String;Ljava/lang/String;Z)Landroid/media/RoutingSessionInfo;
+PLcom/android/server/media/MediaRouter2ServiceImpl;->registerRouter2Locked(Landroid/media/IMediaRouter2;IILjava/lang/String;IZZZZ)V
 PLcom/android/server/media/MediaRouterService$1;-><init>(Lcom/android/server/media/MediaRouterService;)V
 PLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaRouterService;)V
+PLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl;-><init>(Lcom/android/server/media/MediaRouterService;)V
-PLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl-IA;)V
+PLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl;->onAudioPlayerActiveStateChanged(Landroid/media/AudioPlaybackConfiguration;Z)V
 PLcom/android/server/media/MediaRouterService$AudioRoutesObserverImpl;-><init>(Lcom/android/server/media/MediaRouterService;)V
-PLcom/android/server/media/MediaRouterService$AudioRoutesObserverImpl;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$AudioRoutesObserverImpl-IA;)V
+PLcom/android/server/media/MediaRouterService$AudioRoutesObserverImpl;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
 PLcom/android/server/media/MediaRouterService$ClientRecord;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$UserRecord;Landroid/media/IMediaRouterClient;IILjava/lang/String;Z)V
-PLcom/android/server/media/MediaRouterService$ClientRecord;->getState()Landroid/media/MediaRouterClientState;
+PLcom/android/server/media/MediaRouterService$ClientRecord;->binderDied()V
+PLcom/android/server/media/MediaRouterService$ClientRecord;->toString()Ljava/lang/String;
 PLcom/android/server/media/MediaRouterService$MediaRouterServiceBroadcastReceiver;-><init>(Lcom/android/server/media/MediaRouterService;)V
-PLcom/android/server/media/MediaRouterService$UserHandler;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$UserRecord;)V
+PLcom/android/server/media/MediaRouterService$MediaRouterServiceBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/media/MediaRouterService$UserHandler;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$UserRecord;Landroid/os/Looper;)V
 PLcom/android/server/media/MediaRouterService$UserHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/media/MediaRouterService$UserHandler;->start()V
+PLcom/android/server/media/MediaRouterService$UserRecord$1;-><init>(Lcom/android/server/media/MediaRouterService$UserRecord;Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/media/MediaRouterService$UserRecord$1;->run()V
 PLcom/android/server/media/MediaRouterService$UserRecord;-><init>(Lcom/android/server/media/MediaRouterService;I)V
-PLcom/android/server/media/MediaRouterService;->-$$Nest$fgetmContext(Lcom/android/server/media/MediaRouterService;)Landroid/content/Context;
+PLcom/android/server/media/MediaRouterService$UserRecord;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/media/MediaRouterService$UserRecord;->toString()Ljava/lang/String;
 PLcom/android/server/media/MediaRouterService;-><clinit>()V
 PLcom/android/server/media/MediaRouterService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/media/MediaRouterService;->disposeUserIfNeededLocked(Lcom/android/server/media/MediaRouterService$UserRecord;)V
+PLcom/android/server/media/MediaRouterService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/media/MediaRouterService;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
-PLcom/android/server/media/MediaRouterService;->getStateLocked(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
-PLcom/android/server/media/MediaRouterService;->initializeClientLocked(Lcom/android/server/media/MediaRouterService$ClientRecord;)V
-PLcom/android/server/media/MediaRouterService;->initializeUserLocked(Lcom/android/server/media/MediaRouterService$UserRecord;)V
+PLcom/android/server/media/MediaRouterService;->getSystemRoutes(Ljava/lang/String;Z)Ljava/util/List;
+PLcom/android/server/media/MediaRouterService;->getSystemSessionInfo()Landroid/media/RoutingSessionInfo;
 PLcom/android/server/media/MediaRouterService;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
-PLcom/android/server/media/MediaRouterService;->isUserActiveLocked(I)Z
 PLcom/android/server/media/MediaRouterService;->monitor()V
 PLcom/android/server/media/MediaRouterService;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
 PLcom/android/server/media/MediaRouterService;->registerClientLocked(Landroid/media/IMediaRouterClient;IILjava/lang/String;IZ)V
+PLcom/android/server/media/MediaRouterService;->registerRouter2(Landroid/media/IMediaRouter2;Ljava/lang/String;)V
+PLcom/android/server/media/MediaRouterService;->restoreBluetoothA2dp()V
 PLcom/android/server/media/MediaRouterService;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
 PLcom/android/server/media/MediaRouterService;->setDiscoveryRequestLocked(Landroid/media/IMediaRouterClient;IZ)V
 PLcom/android/server/media/MediaRouterService;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
 PLcom/android/server/media/MediaRouterService;->setSelectedRouteLocked(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
-PLcom/android/server/media/MediaRouterService;->systemRunning()V
+PLcom/android/server/media/MediaRouterService;->unregisterClientLocked(Landroid/media/IMediaRouterClient;Z)V
 PLcom/android/server/media/MediaRouterService;->updateRunningUserAndProfiles(I)V
-PLcom/android/server/media/MediaRouterService;->validatePackageName(ILjava/lang/String;)Z
-PLcom/android/server/media/MediaServerUtils;->enforcePackageName(Landroid/content/Context;Ljava/lang/String;I)V
-PLcom/android/server/media/MediaSessionDeviceConfig$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/media/MediaRouterService;->validatePackageName$1(ILjava/lang/String;)Z
+PLcom/android/server/media/MediaServerUtils;->enforcePackageName(Ljava/lang/String;Landroid/content/Context;I)V
+PLcom/android/server/media/MediaSessionDeviceConfig$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/media/MediaSessionDeviceConfig$$ExternalSyntheticLambda1;-><init>(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/media/MediaSessionDeviceConfig;-><clinit>()V
-PLcom/android/server/media/MediaSessionDeviceConfig;->initialize(Landroid/content/Context;)V
-PLcom/android/server/media/MediaSessionDeviceConfig;->refresh(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/media/MediaSessionRecord$3;-><init>(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionDeviceConfig$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/media/MediaSessionRecord$$ExternalSyntheticLambda1;-><init>(ILcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/media/MediaSessionRecord$$ExternalSyntheticLambda3;->performOn(Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaSessionRecord$ControllerStub;Landroid/media/session/ISessionControllerCallback;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub$$ExternalSyntheticLambda0;->binderDied()V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;-><init>(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/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;
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getMetadata()Landroid/media/MediaMetadata;
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPackageName()Ljava/lang/String;
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPlaybackState()Landroid/media/session/PlaybackState;
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueue()Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueueTitle()Ljava/lang/CharSequence;
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getRatingType()I
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getSessionInfo()Landroid/os/Bundle;
+PLcom/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;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->sendCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->stop(Ljava/lang/String;)V
+PLcom/android/server/media/MediaSessionRecord$ControllerStub;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V
+PLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;-><init>(Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Lcom/android/server/media/MediaSessionRecord$ControllerStub$$ExternalSyntheticLambda0;)V
 PLcom/android/server/media/MediaSessionRecord$MessageHandler;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Looper;)V
 PLcom/android/server/media/MediaSessionRecord$MessageHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/media/MediaSessionRecord$MessageHandler;->post(I)V
-PLcom/android/server/media/MediaSessionRecord$MessageHandler;->post(ILjava/lang/Object;)V
-PLcom/android/server/media/MediaSessionRecord$SessionCb;->-$$Nest$fgetmCb(Lcom/android/server/media/MediaSessionRecord$SessionCb;)Landroid/media/session/ISessionCallback;
 PLcom/android/server/media/MediaSessionRecord$SessionCb;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionCallback;)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaSessionRecord$SessionStub;)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/media/MediaSessionRecord$SessionStub;-><init>(Lcom/android/server/media/MediaSessionRecord;)V
-PLcom/android/server/media/MediaSessionRecord$SessionStub;-><init>(Lcom/android/server/media/MediaSessionRecord;Lcom/android/server/media/MediaSessionRecord$SessionStub-IA;)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->destroySession()V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->getBinderForSetQueue()Landroid/os/IBinder;
 PLcom/android/server/media/MediaSessionRecord$SessionStub;->getController()Landroid/media/session/ISessionController;
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->sanitizeMediaMetadata(Landroid/media/MediaMetadata;)Landroid/media/MediaMetadata;
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setActive(Z)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setExtras(Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$SessionStub;->setFlags(I)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setLaunchPendingIntent(Landroid/app/PendingIntent;)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setMetadata(Landroid/media/MediaMetadata;JLjava/lang/String;)V
+HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setPlaybackState(Landroid/media/session/PlaybackState;)V
 PLcom/android/server/media/MediaSessionRecord$SessionStub;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmController(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$ControllerStub;
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmHandler(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$MessageHandler;
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmLock(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object;
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmService(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionService;
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmVolumeType(Lcom/android/server/media/MediaSessionRecord;)I
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fputmAudioAttrs(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)V
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fputmFlags(Lcom/android/server/media/MediaSessionRecord;J)V
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fputmVolumeControlId(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)V
-PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fputmVolumeType(Lcom/android/server/media/MediaSessionRecord;I)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setQueueTitle(Ljava/lang/CharSequence;)V
+PLcom/android/server/media/MediaSessionRecord$SessionStub;->setRatingType(I)V
+PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mgetControllerHolderIndexForCb(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I
+PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushMetadataUpdate(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushPlaybackStateUpdate(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushQueueTitleUpdate(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushQueueUpdate(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;-><clinit>()V
-PLcom/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
-PLcom/android/server/media/MediaSessionRecord;->createForegroundServiceDelegationOptions()Landroid/app/ForegroundServiceDelegationOptions;
+PLcom/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
+PLcom/android/server/media/MediaSessionRecord;->binderDied()V
+PLcom/android/server/media/MediaSessionRecord;->checkPlaybackActiveState(Z)Z
+PLcom/android/server/media/MediaSessionRecord;->close()V
+PLcom/android/server/media/MediaSessionRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionRecord;->getPackageName()Ljava/lang/String;
-PLcom/android/server/media/MediaSessionRecord;->getSessionBinder()Landroid/media/session/ISession;
+PLcom/android/server/media/MediaSessionRecord;->getSessionPolicies()I
 PLcom/android/server/media/MediaSessionRecord;->getUid()I
 PLcom/android/server/media/MediaSessionRecord;->getUserId()I
+PLcom/android/server/media/MediaSessionRecord;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
+PLcom/android/server/media/MediaSessionRecord;->getVolumeStream(Landroid/media/AudioAttributes;)I
 PLcom/android/server/media/MediaSessionRecord;->isActive()Z
-PLcom/android/server/media/MediaSessionRecord;->toString()Ljava/lang/String;
-PLcom/android/server/media/MediaSessionService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaSessionService;)V
+PLcom/android/server/media/MediaSessionRecord;->isClosed()Z
+PLcom/android/server/media/MediaSessionRecord;->isSystemPriority()Z
+PLcom/android/server/media/MediaSessionRecord;->performOnCallbackHolders(Ljava/lang/String;Lcom/android/server/media/MediaSessionRecord$ControllerCallbackCall;)V
+PLcom/android/server/media/MediaSessionRecord;->sendMediaButton(Ljava/lang/String;IIZLandroid/view/KeyEvent;ILandroid/os/ResultReceiver;)Z
+HPLcom/android/server/media/MediaSessionRecord;->toString()Ljava/lang/String;
+PLcom/android/server/media/MediaSessionRecord;->updateUserEngagedStateIfNeededLocked(ZZ)V
+PLcom/android/server/media/MediaSessionRecordImpl;-><clinit>()V
+PLcom/android/server/media/MediaSessionRecordImpl;-><init>()V
+PLcom/android/server/media/MediaSessionRecordImpl;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/media/MediaSessionRecordImpl;->hashCode()I
+PLcom/android/server/media/MediaSessionService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/media/MediaSessionService;)V
+PLcom/android/server/media/MediaSessionService$$ExternalSyntheticLambda1;->onAudioPlayerActiveStateChanged(Landroid/media/AudioPlaybackConfiguration;Z)V
+PLcom/android/server/media/MediaSessionService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/media/MediaSessionService;)V
+PLcom/android/server/media/MediaSessionService$$ExternalSyntheticLambda2;->run()V
 PLcom/android/server/media/MediaSessionService$1;-><init>(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService$2;-><init>(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService$FullUserRecord$OnMediaKeyEventSessionChangedListenerRecord;-><init>(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/IOnMediaKeyEventSessionChangedListener;I)V
-PLcom/android/server/media/MediaSessionService$FullUserRecord;->-$$Nest$fgetmFullUserId(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
-PLcom/android/server/media/MediaSessionService$FullUserRecord;->-$$Nest$fgetmPriorityStack(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Lcom/android/server/media/MediaSessionStack;
-PLcom/android/server/media/MediaSessionService$FullUserRecord;->-$$Nest$fgetmUidToSessionCount(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/util/SparseIntArray;
 PLcom/android/server/media/MediaSessionService$FullUserRecord;-><init>(Lcom/android/server/media/MediaSessionService;I)V
-PLcom/android/server/media/MediaSessionService$FullUserRecord;->addOnMediaKeyEventSessionChangedListenerLocked(Landroid/media/session/IOnMediaKeyEventSessionChangedListener;I)V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->dumpLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->getMediaButtonSessionLocked()Lcom/android/server/media/MediaSessionRecordImpl;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->pushAddressedPlayerChangedLocked()V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->rememberMediaButtonReceiverLocked(Lcom/android/server/media/MediaSessionRecordImpl;)V
 PLcom/android/server/media/MediaSessionService$MessageHandler;-><init>(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService$MessageHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/media/MediaSessionService$MessageHandler;->postSessionsChanged(Lcom/android/server/media/MediaSessionRecordImpl;)V
+PLcom/android/server/media/MediaSessionService$NotificationListener;-><init>(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventHandler;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;I)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventHandler;->handleKeyEventLocked(Ljava/lang/String;IIZLandroid/view/KeyEvent;ZLjava/lang/String;IZ)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;Landroid/os/Handler;)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->-$$Nest$misVoiceKey(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;I)Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;-><init>(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->addOnMediaKeyEventSessionChangedListener(Landroid/media/session/IOnMediaKeyEventSessionChangedListener;Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
 PLcom/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;->dispatchMediaKeyEvent(Ljava/lang/String;ZLandroid/view/KeyEvent;Z)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchMediaKeyEventLocked(Ljava/lang/String;IIZLandroid/view/KeyEvent;Z)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->handleIncomingUser(IIILjava/lang/String;)I
-PLcom/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;->-$$Nest$fgetmAudioPlayerStateMonitor(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/AudioPlayerStateMonitor;
-PLcom/android/server/media/MediaSessionService;->-$$Nest$fgetmContext(Lcom/android/server/media/MediaSessionService;)Landroid/content/Context;
-PLcom/android/server/media/MediaSessionService;->-$$Nest$fgetmHandler(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
-PLcom/android/server/media/MediaSessionService;->-$$Nest$fgetmLock(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
-PLcom/android/server/media/MediaSessionService;->-$$Nest$fgetmSessionsListeners(Lcom/android/server/media/MediaSessionService;)Ljava/util/ArrayList;
+PLcom/android/server/media/MediaSessionService;->$r8$lambda$dlVeOBNx_uSHjGzXxTVqSiM_-dE(Lcom/android/server/media/MediaSessionService;)V
 PLcom/android/server/media/MediaSessionService;->-$$Nest$mcreateSessionInternal(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;->-$$Nest$menforceMediaPermissions(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;III)V
 PLcom/android/server/media/MediaSessionService;->-$$Nest$mfindIndexOfSessionsListenerLocked(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
-PLcom/android/server/media/MediaSessionService;->-$$Nest$mgetActiveSessionsLocked(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
-PLcom/android/server/media/MediaSessionService;->-$$Nest$mgetFullUserRecordLocked(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
-PLcom/android/server/media/MediaSessionService;->-$$Nest$mpushSession1Changed(Lcom/android/server/media/MediaSessionService;I)V
+PLcom/android/server/media/MediaSessionService;->-$$Nest$mgetCallingPackageName(Lcom/android/server/media/MediaSessionService;I)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionService;-><clinit>()V
 PLcom/android/server/media/MediaSessionService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/media/MediaSessionService;->createSessionInternal(IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
-PLcom/android/server/media/MediaSessionService;->enforceMediaPermissions(Ljava/lang/String;III)V
-PLcom/android/server/media/MediaSessionService;->enforcePhoneStatePermission(II)V
-PLcom/android/server/media/MediaSessionService;->findIndexOfSessionsListenerLocked(Landroid/media/session/IActiveSessionsListener;)I
+PLcom/android/server/media/MediaSessionService;->destroySessionLocked(Lcom/android/server/media/MediaSessionRecordImpl;)V
+PLcom/android/server/media/MediaSessionService;->enforceMediaPermissions(IIILjava/lang/String;)V
 PLcom/android/server/media/MediaSessionService;->getActiveSessionsLocked(I)Ljava/util/List;
 PLcom/android/server/media/MediaSessionService;->getFullUserRecordLocked(I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->hasMediaControlPermission(II)Z
-PLcom/android/server/media/MediaSessionService;->hasStatusBarServicePermission(II)Z
 PLcom/android/server/media/MediaSessionService;->instantiateCustomDispatcher(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionService;->instantiateCustomProvider(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionService;->isGlobalPriorityActiveLocked()Z
 PLcom/android/server/media/MediaSessionService;->monitor()V
 PLcom/android/server/media/MediaSessionService;->onBootPhase(I)V
+PLcom/android/server/media/MediaSessionService;->onMediaButtonReceiverChanged(Lcom/android/server/media/MediaSessionRecordImpl;)V
+PLcom/android/server/media/MediaSessionService;->onSessionActiveStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;Landroid/media/session/PlaybackState;)V
+HPLcom/android/server/media/MediaSessionService;->onSessionPlaybackStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;ZLandroid/media/session/PlaybackState;)V
 PLcom/android/server/media/MediaSessionService;->onStart()V
 PLcom/android/server/media/MediaSessionService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/media/MediaSessionService;->pushRemoteVolumeUpdateLocked(I)V
-PLcom/android/server/media/MediaSessionService;->pushSession1Changed(I)V
+HPLcom/android/server/media/MediaSessionService;->reportMediaInteractionEvent(Lcom/android/server/media/MediaSessionRecordImpl;Z)V
 PLcom/android/server/media/MediaSessionService;->setGlobalPrioritySession(Lcom/android/server/media/MediaSessionRecord;)V
+HPLcom/android/server/media/MediaSessionService;->tempAllowlistTargetPkgIfPossible(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/media/MediaSessionService;->updateUser()V
 PLcom/android/server/media/MediaSessionStack;-><clinit>()V
-PLcom/android/server/media/MediaSessionStack;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;Lcom/android/server/media/MediaSessionStack$OnMediaButtonSessionChangedListener;)V
-PLcom/android/server/media/MediaSessionStack;->addSession(Lcom/android/server/media/MediaSessionRecordImpl;)V
-PLcom/android/server/media/MediaSessionStack;->clearCache(I)V
-PLcom/android/server/media/MediaSessionStack;->contains(Lcom/android/server/media/MediaSessionRecordImpl;)Z
-PLcom/android/server/media/MediaSessionStack;->getActiveSessions(I)Ljava/util/List;
-PLcom/android/server/media/MediaSessionStack;->getDefaultRemoteSession(I)Lcom/android/server/media/MediaSessionRecordImpl;
-PLcom/android/server/media/MediaSessionStack;->getPriorityList(ZI)Ljava/util/List;
+PLcom/android/server/media/MediaSessionStack;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;Lcom/android/server/media/MediaSessionService$FullUserRecord;)V
+PLcom/android/server/media/MediaSessionStack;->findMediaButtonSession(I)Lcom/android/server/media/MediaSessionRecordImpl;
+PLcom/android/server/media/MediaSessionStack;->getPriorityList(IZ)Ljava/util/List;
+PLcom/android/server/media/MediaSessionStack;->onPlaybackStateChanged(Lcom/android/server/media/MediaSessionRecordImpl;Z)V
 PLcom/android/server/media/MediaSessionStack;->removeSession(Lcom/android/server/media/MediaSessionRecordImpl;)V
+PLcom/android/server/media/MediaSessionStack;->updateMediaButtonSession(Lcom/android/server/media/MediaSessionRecordImpl;)V
 PLcom/android/server/media/MediaSessionStack;->updateMediaButtonSessionIfNeeded()V
 PLcom/android/server/media/RemoteDisplayProviderWatcher$1;-><init>(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V
 PLcom/android/server/media/RemoteDisplayProviderWatcher$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/media/RemoteDisplayProviderWatcher$2;-><init>(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V
 PLcom/android/server/media/RemoteDisplayProviderWatcher$2;->run()V
 PLcom/android/server/media/RemoteDisplayProviderWatcher;->-$$Nest$mscanPackages(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V
-PLcom/android/server/media/RemoteDisplayProviderWatcher;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/media/RemoteDisplayProviderWatcher;-><clinit>()V
-PLcom/android/server/media/RemoteDisplayProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/RemoteDisplayProviderWatcher$Callback;Landroid/os/Handler;I)V
-PLcom/android/server/media/RemoteDisplayProviderWatcher;->scanPackages()V
-PLcom/android/server/media/RemoteDisplayProviderWatcher;->start()V
+PLcom/android/server/media/RemoteDisplayProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/MediaRouterService$UserHandler;Lcom/android/server/media/MediaRouterService$UserHandler;I)V
+PLcom/android/server/media/SystemMediaRoute2Provider$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
+PLcom/android/server/media/SystemMediaRoute2Provider$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;I)V
+PLcom/android/server/media/SystemMediaRoute2Provider$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/media/SystemMediaRoute2Provider$AudioManagerBroadcastReceiver;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
+PLcom/android/server/media/SystemMediaRoute2Provider$AudioManagerBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/media/SystemMediaRoute2Provider;-><clinit>()V
+PLcom/android/server/media/SystemMediaRoute2Provider;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Landroid/os/UserHandle;Landroid/os/Looper;)V
+PLcom/android/server/media/SystemMediaRoute2Provider;->notifySessionInfoUpdated()V
+PLcom/android/server/media/SystemMediaRoute2Provider;->reportPendingSessionRequestResultLockedIfNeeded(Landroid/media/RoutingSessionInfo;)V
+HPLcom/android/server/media/SystemMediaRoute2Provider;->updateProviderState()V
+HPLcom/android/server/media/SystemMediaRoute2Provider;->updateSessionInfosIfNeeded()Z
+PLcom/android/server/media/SystemMediaRoute2Provider;->updateVolume()V
 PLcom/android/server/media/metrics/MediaMetricsManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/metrics/MediaMetricsManagerService;)V
+PLcom/android/server/media/metrics/MediaMetricsManagerService$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;-><init>(Lcom/android/server/media/metrics/MediaMetricsManagerService;)V
-PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;-><init>(Lcom/android/server/media/metrics/MediaMetricsManagerService;Lcom/android/server/media/metrics/MediaMetricsManagerService$BinderService-IA;)V
+PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->getPlaybackSessionId(I)Ljava/lang/String;
+PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->getSessionIdInternal()Ljava/lang/String;
+HPLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->loggingLevel()I
+PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->loggingLevelInternal([Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)Ljava/lang/Integer;
+PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->reportNetworkEvent(Ljava/lang/String;Landroid/media/metrics/NetworkEvent;I)V
+PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->reportPlaybackMetrics(Ljava/lang/String;Landroid/media/metrics/PlaybackMetrics;I)V
+PLcom/android/server/media/metrics/MediaMetricsManagerService$BinderService;->reportPlaybackStateEvent(Ljava/lang/String;Landroid/media/metrics/PlaybackStateEvent;I)V
 PLcom/android/server/media/metrics/MediaMetricsManagerService;-><clinit>()V
 PLcom/android/server/media/metrics/MediaMetricsManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/media/metrics/MediaMetricsManagerService;->getListLocked(Ljava/lang/String;)Ljava/util/List;
 PLcom/android/server/media/metrics/MediaMetricsManagerService;->onStart()V
-PLcom/android/server/media/projection/FrameworkStatsLogWrapper;-><init>()V
+PLcom/android/server/media/projection/MediaProjectionManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
+PLcom/android/server/media/projection/MediaProjectionManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService$1;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService$1;->onForegroundActivitiesChanged(IIZ)V
 PLcom/android/server/media/projection/MediaProjectionManagerService$1;->onForegroundServicesChanged(III)V
 PLcom/android/server/media/projection/MediaProjectionManagerService$1;->onProcessDied(II)V
+PLcom/android/server/media/projection/MediaProjectionManagerService$2;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;Landroid/media/projection/IMediaProjectionWatcherCallback;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;Landroid/content/Context;)V
+PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)Landroid/media/projection/MediaProjectionInfo;
+PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService$CallbackDelegate;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/media/projection/MediaProjectionManagerService$Injector$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/media/projection/MediaProjectionManagerService$Injector;-><init>()V
-PLcom/android/server/media/projection/MediaProjectionManagerService$Injector;->createCallbackLooper()Landroid/os/Looper;
-PLcom/android/server/media/projection/MediaProjectionManagerService$Injector;->createClock()Lcom/android/server/media/projection/MediaProjectionManagerService$Clock;
-PLcom/android/server/media/projection/MediaProjectionManagerService$Injector;->mediaProjectionMetricsLogger(Landroid/content/Context;)Lcom/android/server/media/projection/MediaProjectionMetricsLogger;
 PLcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
-PLcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;Lcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback-IA;)V
-PLcom/android/server/media/projection/MediaProjectionManagerService;->-$$Nest$mhandleForegroundServicesChanged(Lcom/android/server/media/projection/MediaProjectionManagerService;III)V
 PLcom/android/server/media/projection/MediaProjectionManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService;-><init>(Landroid/content/Context;Lcom/android/server/media/projection/MediaProjectionManagerService$Injector;)V
-PLcom/android/server/media/projection/MediaProjectionManagerService;->handleForegroundServicesChanged(III)V
+PLcom/android/server/media/projection/MediaProjectionManagerService;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)Landroid/media/projection/MediaProjectionInfo;
 PLcom/android/server/media/projection/MediaProjectionManagerService;->monitor()V
 PLcom/android/server/media/projection/MediaProjectionManagerService;->onStart()V
-PLcom/android/server/media/projection/MediaProjectionMetricsLogger;-><clinit>()V
 PLcom/android/server/media/projection/MediaProjectionMetricsLogger;-><init>(Lcom/android/server/media/projection/FrameworkStatsLogWrapper;Lcom/android/server/media/projection/MediaProjectionSessionIdGenerator;Lcom/android/server/media/projection/MediaProjectionTimestampStore;)V
-PLcom/android/server/media/projection/MediaProjectionMetricsLogger;->getInstance(Landroid/content/Context;)Lcom/android/server/media/projection/MediaProjectionMetricsLogger;
 PLcom/android/server/media/projection/MediaProjectionSessionIdGenerator;-><clinit>()V
 PLcom/android/server/media/projection/MediaProjectionSessionIdGenerator;-><init>(Landroid/content/SharedPreferences;)V
-PLcom/android/server/media/projection/MediaProjectionSessionIdGenerator;->getInstance(Landroid/content/Context;)Lcom/android/server/media/projection/MediaProjectionSessionIdGenerator;
+PLcom/android/server/media/projection/MediaProjectionStopController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/projection/MediaProjectionStopController;)V
+PLcom/android/server/media/projection/MediaProjectionStopController$$ExternalSyntheticLambda0;->onKeyguardLockedStateChanged(Z)V
+PLcom/android/server/media/projection/MediaProjectionStopController$ProjectionTelephonyCallback;-><init>(Lcom/android/server/media/projection/MediaProjectionStopController;)V
+PLcom/android/server/media/projection/MediaProjectionStopController$ProjectionTelephonyCallback;->onCallStateChanged(I)V
+PLcom/android/server/media/projection/MediaProjectionStopController;-><init>(Landroid/content/Context;Lcom/android/server/media/projection/MediaProjectionManagerService$$ExternalSyntheticLambda0;)V
+PLcom/android/server/media/projection/MediaProjectionStopController;->callStateChanged()V
+PLcom/android/server/media/projection/MediaProjectionStopController;->isExempt(Lcom/android/server/media/projection/MediaProjectionManagerService$MediaProjection;IZ)Z
+PLcom/android/server/media/projection/MediaProjectionStopController;->onKeyguardLockedStateChanged(Z)V
 PLcom/android/server/media/projection/MediaProjectionTimestampStore;-><clinit>()V
 PLcom/android/server/media/projection/MediaProjectionTimestampStore;-><init>(Landroid/content/SharedPreferences;Ljava/time/InstantSource;)V
-PLcom/android/server/media/projection/MediaProjectionTimestampStore;->getInstance(Landroid/content/Context;)Lcom/android/server/media/projection/MediaProjectionTimestampStore;
-PLcom/android/server/net/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/net/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/net/FeatureFlagsImpl;->load_overrides_backstage_power()V
-PLcom/android/server/net/FeatureFlagsImpl;->networkBlockedForTopSleepingAndAbove()Z
+PLcom/android/server/net/FeatureFlagsImpl;->init()V
 PLcom/android/server/net/Flags;-><clinit>()V
-PLcom/android/server/net/Flags;->networkBlockedForTopSleepingAndAbove()Z
-PLcom/android/server/net/NetworkManagementInternal;-><init>()V
-PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda4;-><init>(Ljava/lang/String;Z)V
-PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda7;-><init>(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda8;-><init>(Landroid/net/RouteInfo;)V
-PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda9;-><init>(Landroid/net/RouteInfo;)V
-PLcom/android/server/net/NetworkManagementService$Dependencies;-><init>()V
-HPLcom/android/server/net/NetworkManagementService$Dependencies;->getCallingUid()I
-PLcom/android/server/net/NetworkManagementService$Dependencies;->getNetd()Landroid/net/INetd;
-PLcom/android/server/net/NetworkManagementService$Dependencies;->getService(Ljava/lang/String;)Landroid/os/IBinder;
-PLcom/android/server/net/NetworkManagementService$Dependencies;->registerLocalService(Lcom/android/server/net/NetworkManagementInternal;)V
+PLcom/android/server/net/Flags;->neverApplyRulesToCoreUids()Z
+PLcom/android/server/net/Flags;->useDifferentDelaysForBackgroundChain()Z
+PLcom/android/server/net/Flags;->useMeteredFirewallChains()Z
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda0;-><init>(IIJZ)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda0;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda1;-><init>(ILjava/lang/String;Z)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda1;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda2;-><init>(Ljava/lang/String;ILjava/lang/Object;)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda2;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda4;-><init>(Ljava/lang/String;J[Ljava/lang/String;)V
+PLcom/android/server/net/NetworkManagementService$$ExternalSyntheticLambda4;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
 PLcom/android/server/net/NetworkManagementService$LocalService;-><init>(Lcom/android/server/net/NetworkManagementService;)V
-PLcom/android/server/net/NetworkManagementService$LocalService;-><init>(Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkManagementService$LocalService-IA;)V
-HPLcom/android/server/net/NetworkManagementService$LocalService;->isNetworkRestrictedForUid(I)Z
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Z)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;I)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;ZI)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;ZLandroid/net/RouteInfo;)V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;IZJI)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Ljava/lang/Object;I)V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda7;->run()V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;ZLandroid/net/RouteInfo;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda8;->run()V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->$r8$lambda$6H1IPP0xbuUOBJ0zARtLg6fMa-E(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Z)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->$r8$lambda$cEZjblgQTbkhVOZAra8yyTiiXlk(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->$r8$lambda$iqW51JeHJZy_bOi_o6JJ3a9MFEY(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->$r8$lambda$k450O0AvGFGVDrE8Q-YRBpOJme4(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;ZLandroid/net/RouteInfo;)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;J[Ljava/lang/String;)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener$$ExternalSyntheticLambda9;->run()V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;-><init>(Lcom/android/server/net/NetworkManagementService;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;-><init>(Lcom/android/server/net/NetworkManagementService;Lcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener-IA;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceAddressRemoved$4(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceAddressUpdated$3(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceLinkStateChanged$8(Ljava/lang/String;Z)V
-PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onRouteChanged$9(ZLandroid/net/RouteInfo;)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceAdded(Ljava/lang/String;)V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceAddressRemoved(Ljava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceAddressUpdated(Ljava/lang/String;Ljava/lang/String;II)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceClassActivityChanged(ZIJI)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceLinkStateChanged(Ljava/lang/String;Z)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceRemoved(Ljava/lang/String;)V
+PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onQuotaLimitReached(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/net/NetworkManagementService$NetdUnsolicitedEventListener;->onRouteChanged(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/net/NetworkManagementService;->-$$Nest$fgetmDaemonHandler(Lcom/android/server/net/NetworkManagementService;)Landroid/os/Handler;
-HPLcom/android/server/net/NetworkManagementService;->-$$Nest$misNetworkRestrictedInternal(Lcom/android/server/net/NetworkManagementService;I)Z
-PLcom/android/server/net/NetworkManagementService;->-$$Nest$mnotifyAddressRemoved(Lcom/android/server/net/NetworkManagementService;Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService;->-$$Nest$mnotifyAddressUpdated(Lcom/android/server/net/NetworkManagementService;Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService;->-$$Nest$mnotifyInterfaceLinkStateChanged(Lcom/android/server/net/NetworkManagementService;Ljava/lang/String;Z)V
-PLcom/android/server/net/NetworkManagementService;->-$$Nest$mnotifyRouteChange(Lcom/android/server/net/NetworkManagementService;ZLandroid/net/RouteInfo;)V
 PLcom/android/server/net/NetworkManagementService;-><clinit>()V
 PLcom/android/server/net/NetworkManagementService;-><init>(Landroid/content/Context;Lcom/android/server/net/NetworkManagementService$Dependencies;)V
-PLcom/android/server/net/NetworkManagementService;->connectNativeNetdService()V
 PLcom/android/server/net/NetworkManagementService;->create(Landroid/content/Context;)Lcom/android/server/net/NetworkManagementService;
-PLcom/android/server/net/NetworkManagementService;->create(Landroid/content/Context;Lcom/android/server/net/NetworkManagementService$Dependencies;)Lcom/android/server/net/NetworkManagementService;
+PLcom/android/server/net/NetworkManagementService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/net/NetworkManagementService;->dumpUidFirewallRule(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseIntArray;)V
+PLcom/android/server/net/NetworkManagementService;->dumpUidRuleOnQuotaLocked(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseBooleanArray;)V
 HPLcom/android/server/net/NetworkManagementService;->enforceSystemUid()V
-PLcom/android/server/net/NetworkManagementService;->getBatteryStats()Lcom/android/internal/app/IBatteryStats;
-PLcom/android/server/net/NetworkManagementService;->getFirewallChainName(I)Ljava/lang/String;
-HPLcom/android/server/net/NetworkManagementService;->getFirewallChainState(I)Z
+HPLcom/android/server/net/NetworkManagementService;->getFirewallChainState(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 HPLcom/android/server/net/NetworkManagementService;->getUidFirewallRulesLR(I)Landroid/util/SparseIntArray;
 PLcom/android/server/net/NetworkManagementService;->invokeForAllObservers(Lcom/android/server/net/NetworkManagementService$NetworkManagementEventCallback;)V
 PLcom/android/server/net/NetworkManagementService;->isBandwidthControlEnabled()Z
-HPLcom/android/server/net/NetworkManagementService;->isNetworkRestrictedInternal(I)Z
-PLcom/android/server/net/NetworkManagementService;->notifyAddressRemoved(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService;->notifyAddressUpdated(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/net/NetworkManagementService;->notifyInterfaceLinkStateChanged(Ljava/lang/String;Z)V
-PLcom/android/server/net/NetworkManagementService;->notifyRouteChange(ZLandroid/net/RouteInfo;)V
+HPLcom/android/server/net/NetworkManagementService;->isNetworkRestrictedInternal(I)Z+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 PLcom/android/server/net/NetworkManagementService;->prepareNativeDaemon()V
 PLcom/android/server/net/NetworkManagementService;->registerObserver(Landroid/net/INetworkManagementEventObserver;)V
+PLcom/android/server/net/NetworkManagementService;->removeInterfaceQuota(Ljava/lang/String;)V
 PLcom/android/server/net/NetworkManagementService;->setDataSaverModeEnabled(Z)Z
 PLcom/android/server/net/NetworkManagementService;->setFirewallChainEnabled(IZ)V
-PLcom/android/server/net/NetworkManagementService;->setFirewallChainState(IZ)V
 PLcom/android/server/net/NetworkManagementService;->setFirewallEnabled(Z)V
-HPLcom/android/server/net/NetworkManagementService;->setFirewallUidRule(III)V
-HPLcom/android/server/net/NetworkManagementService;->setFirewallUidRuleLocked(III)V
+HPLcom/android/server/net/NetworkManagementService;->setFirewallUidRule(III)V+]Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager;
 PLcom/android/server/net/NetworkManagementService;->setFirewallUidRules(I[I[I)V
-HPLcom/android/server/net/NetworkManagementService;->setUidCleartextNetworkPolicy(II)V
-HPLcom/android/server/net/NetworkManagementService;->setUidOnMeteredNetworkAllowlist(IZ)V
-HPLcom/android/server/net/NetworkManagementService;->setUidOnMeteredNetworkList(IZZ)V
+PLcom/android/server/net/NetworkManagementService;->setInterfaceQuota(Ljava/lang/String;J)V
+HPLcom/android/server/net/NetworkManagementService;->setUidCleartextNetworkPolicy(II)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 PLcom/android/server/net/NetworkManagementService;->syncFirewallChainLocked(ILjava/lang/String;)V
-PLcom/android/server/net/NetworkManagementService;->systemReady()V
-HPLcom/android/server/net/NetworkManagementService;->updateFirewallUidRuleLocked(III)Z
-PLcom/android/server/net/NetworkPolicyLogger$Data;-><init>()V
-HPLcom/android/server/net/NetworkPolicyLogger$Data;-><init>(Lcom/android/server/net/NetworkPolicyLogger$Data-IA;)V
-HPLcom/android/server/net/NetworkPolicyLogger$Data;->reset()V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer$$ExternalSyntheticLambda1;-><init>()V
+HPLcom/android/server/net/NetworkManagementService;->updateFirewallUidRuleLocked(III)Z+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/net/NetworkPolicyLogger$LogBuffer$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
 PLcom/android/server/net/NetworkPolicyLogger$LogBuffer$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->$r8$lambda$-TUy9RKzfUlNRcVYDQQgCGgal-o(I)[Lcom/android/server/net/NetworkPolicyLogger$Data;
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->$r8$lambda$kDNlKKkLZ8vfiKJuYgxljbBLzHE()Lcom/android/server/net/NetworkPolicyLogger$Data;
 PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><clinit>()V
 PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><init>(I)V
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->appIdleStateChanged(IZ)V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->event(Ljava/lang/String;)V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->firewallChainEnabled(IZ)V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->lambda$new$0(I)[Lcom/android/server/net/NetworkPolicyLogger$Data;
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->meteredAllowlistChanged(IZ)V
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->networkBlocked(IIII)V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->paroleStateChanged(Z)V
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->tempPowerSaveWlChanged(IZILjava/lang/String;)V
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->uidFirewallRuleChanged(III)V
-HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->uidStateChanged(IIJI)V
+PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->reverseDump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/net/NetworkPolicyLogger;-><clinit>()V
 PLcom/android/server/net/NetworkPolicyLogger;-><init>()V
-HPLcom/android/server/net/NetworkPolicyLogger;->appIdleStateChanged(IZ)V
+PLcom/android/server/net/NetworkPolicyLogger;->appIdleStateChanged(IZ)V
+PLcom/android/server/net/NetworkPolicyLogger;->appIdleWlChanged(IZ)V
+PLcom/android/server/net/NetworkPolicyLogger;->deviceIdleModeEnabled(Z)V
+PLcom/android/server/net/NetworkPolicyLogger;->dumpLogs(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/net/NetworkPolicyLogger;->firewallChainEnabled(IZ)V
 PLcom/android/server/net/NetworkPolicyLogger;->firewallRulesChanged(I[I[I)V
 PLcom/android/server/net/NetworkPolicyLogger;->getFirewallChainName(I)Ljava/lang/String;
-HPLcom/android/server/net/NetworkPolicyLogger;->meteredAllowlistChanged(IZ)V
+PLcom/android/server/net/NetworkPolicyLogger;->getTempPowerSaveWlChangedLog(ILjava/lang/String;IZ)Ljava/lang/String;
+PLcom/android/server/net/NetworkPolicyLogger;->getUidFirewallRuleChangedLog(III)Ljava/lang/String;
+PLcom/android/server/net/NetworkPolicyLogger;->interfacesChanged(ILandroid/util/ArraySet;)V
 PLcom/android/server/net/NetworkPolicyLogger;->meteredRestrictedPkgsChanged(Ljava/util/Set;)V
-HPLcom/android/server/net/NetworkPolicyLogger;->networkBlocked(ILcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;)V
+PLcom/android/server/net/NetworkPolicyLogger;->meterednessChanged(IZ)V
 PLcom/android/server/net/NetworkPolicyLogger;->paroleStateChanged(Z)V
-HPLcom/android/server/net/NetworkPolicyLogger;->tempPowerSaveWlChanged(IZILjava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyLogger;->restrictBackgroundChanged(ZZ)V
+PLcom/android/server/net/NetworkPolicyLogger;->roamingChanged(IZ)V
+HPLcom/android/server/net/NetworkPolicyLogger;->tempPowerSaveWlChanged(ILjava/lang/String;IZ)V
 HPLcom/android/server/net/NetworkPolicyLogger;->uidFirewallRuleChanged(III)V
-HPLcom/android/server/net/NetworkPolicyLogger;->uidStateChanged(IIJI)V
-PLcom/android/server/net/NetworkPolicyManagerInternal;-><init>()V
-PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HPLcom/android/server/net/NetworkPolicyLogger;->uidStateChanged(IIIJ)V
+PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda0;->accept(I)V
-PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda2;->accept(I)V
+PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/util/SparseIntArray;)V
+PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda2;->accept(I)V
 PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/concurrent/CountDownLatch;)V
 PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda4;->run()V
 PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda5;-><init>(Landroid/util/SparseBooleanArray;ILjava/util/function/IntConsumer;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
+PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
 PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda7;->accept(I)V
-PLcom/android/server/net/NetworkPolicyManagerService$10;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
 PLcom/android/server/net/NetworkPolicyManagerService$11;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+PLcom/android/server/net/NetworkPolicyManagerService$11;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/net/NetworkPolicyManagerService$11;->onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V
+PLcom/android/server/net/NetworkPolicyManagerService$11;->onLost(Landroid/net/Network;)V
 PLcom/android/server/net/NetworkPolicyManagerService$12;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$13;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$14;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$14;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/net/NetworkPolicyManagerService$15;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$15;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/net/NetworkPolicyManagerService$16;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$16;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/net/NetworkPolicyManagerService$1;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$2;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+PLcom/android/server/net/NetworkPolicyManagerService$12;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyManagerService$15;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;I)V
+HPLcom/android/server/net/NetworkPolicyManagerService$15;->handleMessage$com$android$server$net$NetworkPolicyManagerService$15(Landroid/os/Message;)Z+]Landroid/app/usage/NetworkStatsManager;Landroid/app/usage/NetworkStatsManager;]Landroid/net/INetworkPolicyListener;Landroid/net/INetworkPolicyListener$Stub$Proxy;,Lcom/android/server/connectivity/MultipathPolicyTracker$2;,Lcom/android/server/job/controllers/ConnectivityController$4;]Landroid/os/INetworkManagementService;Lcom/android/server/net/NetworkManagementService;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;
+HPLcom/android/server/net/NetworkPolicyManagerService$15;->handleMessage(Landroid/os/Message;)Z+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/net/NetworkPolicyManagerService$1;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 PLcom/android/server/net/NetworkPolicyManagerService$3;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
 PLcom/android/server/net/NetworkPolicyManagerService$4;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$4;->onUidGone(IZ)V
-HPLcom/android/server/net/NetworkPolicyManagerService$4;->onUidStateChanged(IIJI)V
-PLcom/android/server/net/NetworkPolicyManagerService$5;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$6;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$7;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$8;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$9;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+PLcom/android/server/net/NetworkPolicyManagerService$4;->onUidGone(IZ)V
+HPLcom/android/server/net/NetworkPolicyManagerService$4;->onUidStateChanged(IIJI)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/net/NetworkPolicyManagerService$6;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;I)V
+PLcom/android/server/net/NetworkPolicyManagerService$6;->onReceive$com$android$server$net$NetworkPolicyManagerService$14(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/net/NetworkPolicyManagerService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/net/NetworkPolicyManagerService$ActiveDataSubIdListener;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$ActiveDataSubIdListener;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$ActiveDataSubIdListener-IA;)V
+PLcom/android/server/net/NetworkPolicyManagerService$ActiveDataSubIdListener;->onActiveDataSubscriptionIdChanged(I)V
 PLcom/android/server/net/NetworkPolicyManagerService$Dependencies;-><init>(Landroid/content/Context;)V
-PLcom/android/server/net/NetworkPolicyManagerService$Dependencies;->getActivateDataSubId()I
-PLcom/android/server/net/NetworkPolicyManagerService$Dependencies;->getDefaultDataSubId()I
+PLcom/android/server/net/NetworkPolicyManagerService$IfaceQuotas;-><init>(JJLjava/lang/String;)V
 PLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener-IA;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
+PLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 PLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;->onParoleStateChanged(Z)V
 PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl-IA;)V
-PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onAdminDataAvailable()V
-HPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onTempPowerSaveWhitelistChange(IZILjava/lang/String;)V
-PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->setMeteredRestrictedPackagesAsync(Ljava/util/Set;I)V
-PLcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver;-><init>(Landroid/content/Context;Lcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver$RestrictedModeListener;)V
-PLcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver;->isRestrictedModeEnabled()Z
+HPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onTempPowerSaveWhitelistChange(ILjava/lang/String;IZ)V
+PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->updateBlockedReasonsWithProcState(I)I
+PLcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver;-><init>(Landroid/content/Context;Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda6;)V
 PLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$StatsCallback-IA;)V
+PLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;->onThresholdReached(ILjava/lang/String;)V
 PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;-><clinit>()V
 PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;-><init>()V
-HPLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;-><init>(III)V
-HPLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->copyFrom(Lcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;)V
+PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->allowedReasonToString(I)Ljava/lang/String;
+PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->blockedReasonToString(I)Ljava/lang/String;
+PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->blockedReasonsToString(I)Ljava/lang/String;
+HPLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->deriveUidRules()I
 PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->getEffectiveBlockedReasons(II)I
+PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->toString()Ljava/lang/String;
+PLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->toString(III)Ljava/lang/String;
 HPLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;->updateEffectiveBlockedReasons()V
-HPLcom/android/server/net/NetworkPolicyManagerService$UidStateCallbackInfo;-><init>()V
-PLcom/android/server/net/NetworkPolicyManagerService$UidStateCallbackInfo;-><init>(Lcom/android/server/net/NetworkPolicyManagerService$UidStateCallbackInfo-IA;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$UidStateCallbackInfo;->update(IIJI)V
-PLcom/android/server/net/NetworkPolicyManagerService;->$r8$lambda$3GuQhs92xi8ei4ZPpN0P0tku59c(Lcom/android/server/net/NetworkPolicyManagerService;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->$r8$lambda$5Bzemdqa4u7WtPncTGtyV6odZ1o(Lcom/android/server/net/NetworkPolicyManagerService;I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->$r8$lambda$RXPnC-uth1T2bDapl3O5AR4Dkhs(Lcom/android/server/net/NetworkPolicyManagerService;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->$r8$lambda$Vjvidsl51zqXS7fNCzjK8IojqZ8(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->$r8$lambda$y6NbbUE5w9mVKKbVy0XCA9aA5_c(Landroid/util/SparseBooleanArray;ILjava/util/function/IntConsumer;Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$fgetmAdminDataAvailableLatch(Lcom/android/server/net/NetworkPolicyManagerService;)Ljava/util/concurrent/CountDownLatch;
-HPLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$fgetmContext(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/content/Context;
-PLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$fgetmDeps(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkPolicyManagerService$Dependencies;
-HPLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$fgetmLogger(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkPolicyLogger;
-HPLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$fgetmPowerSaveTempWhitelistAppIds(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
-HPLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$fgetmUidStateCallbackInfos(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseArray;
+PLcom/android/server/net/NetworkPolicyManagerService$UidStateCallbackInfo;->toString()Ljava/lang/String;
 PLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$msetMeteredRestrictedPackagesInternal(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/Set;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$mupdateRulesForAppIdleParoleUL(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$mupdateRulesForPowerRestrictionsUL(Lcom/android/server/net/NetworkPolicyManagerService;I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$mupdateRulesForTempAllowlistChangeUL(Lcom/android/server/net/NetworkPolicyManagerService;I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$sfgetLOGV()Z
+PLcom/android/server/net/NetworkPolicyManagerService;->-$$Nest$smupdateCapabilityChange(Landroid/util/SparseBooleanArray;ZLandroid/net/Network;)Z
 PLcom/android/server/net/NetworkPolicyManagerService;-><clinit>()V
-PLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Landroid/os/INetworkManagementService;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Landroid/os/INetworkManagementService;Landroid/content/pm/IPackageManager;Ljava/time/Clock;Ljava/io/File;ZLcom/android/server/net/NetworkPolicyManagerService$Dependencies;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->addDefaultRestrictBackgroundAllowlistUidsUL()Z
+PLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Landroid/os/INetworkManagementService;Landroid/content/pm/IPackageManager;Ljava/time/Clock;Ljava/io/File;ZLcom/android/server/net/NetworkPolicyManagerService$Dependencies;)V
+PLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Lcom/android/server/net/NetworkManagementService;)V
 PLcom/android/server/net/NetworkPolicyManagerService;->addDefaultRestrictBackgroundAllowlistUidsUL(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->addSdkSandboxUidsIfNeeded(Landroid/util/SparseIntArray;)V
 PLcom/android/server/net/NetworkPolicyManagerService;->bindConnectivityManager()V
-PLcom/android/server/net/NetworkPolicyManagerService;->checkAnyPermissionOf([Ljava/lang/String;)Z
+PLcom/android/server/net/NetworkPolicyManagerService;->collectKeys(Landroid/util/SparseArray;Landroid/util/SparseBooleanArray;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/net/NetworkPolicyManagerService;->enableFirewallChainUL(IZ)V
 PLcom/android/server/net/NetworkPolicyManagerService;->enforceAnyPermissionOf([Ljava/lang/String;)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->findRelevantSubIdNL(Landroid/net/NetworkTemplate;)I
 PLcom/android/server/net/NetworkPolicyManagerService;->forEachUid(Ljava/lang/String;Ljava/util/function/IntConsumer;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->getBlockedReasons(I)I
-PLcom/android/server/net/NetworkPolicyManagerService;->getDefaultClock()Ljava/time/Clock;
-PLcom/android/server/net/NetworkPolicyManagerService;->getDefaultSystemDir()Ljava/io/File;
-HPLcom/android/server/net/NetworkPolicyManagerService;->getOrCreateUidBlockedStateForUid(Landroid/util/SparseArray;I)Lcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;
+PLcom/android/server/net/NetworkPolicyManagerService;->getBackgroundTransitioningDelay(I)J
+PLcom/android/server/net/NetworkPolicyManagerService;->getNetworkPolicies(Ljava/lang/String;)[Landroid/net/NetworkPolicy;
+HPLcom/android/server/net/NetworkPolicyManagerService;->getOrCreateUidBlockedStateForUid(ILandroid/util/SparseArray;)Lcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->getPrimarySubscriptionPlanLocked(I)Landroid/telephony/SubscriptionPlan;
 PLcom/android/server/net/NetworkPolicyManagerService;->getRestrictBackgroundStatus(I)I
 PLcom/android/server/net/NetworkPolicyManagerService;->getRestrictBackgroundStatusInternal(I)I
-PLcom/android/server/net/NetworkPolicyManagerService;->getRestrictedModeFirewallRule(I)I
+PLcom/android/server/net/NetworkPolicyManagerService;->getSubscriptionPlan(Landroid/net/NetworkTemplate;)Landroid/telephony/SubscriptionPlan;
 PLcom/android/server/net/NetworkPolicyManagerService;->getUidPolicy(I)I
+HPLcom/android/server/net/NetworkPolicyManagerService;->handleBlockedReasonsChanged(III)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->handleDeviceIdleModeDisabledUL()V
 PLcom/android/server/net/NetworkPolicyManagerService;->handleRestrictedPackagesChangeUL(Ljava/util/Set;Ljava/util/Set;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->handleUidChanged(Lcom/android/server/net/NetworkPolicyManagerService$UidStateCallbackInfo;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->handleUidGone(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->hasInternetPermissionUL(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->hasRestrictedModeAccess(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->initService(Ljava/util/concurrent/CountDownLatch;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->isAllowlistedFromLowPowerStandbyUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isAllowlistedFromPowerSaveExceptIdleUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isAllowlistedFromPowerSaveUL(IZ)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->isBandwidthControlEnabled()Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isRestrictedByAdminUL(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->isSystem(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictBackgroundUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictPowerUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidIdle(II)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidNetworkingBlocked(IZ)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->isUidRestrictedOnMeteredNetworks(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidTop(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForAllowlistRulesUL(I)Z
+HPLcom/android/server/net/NetworkPolicyManagerService;->hasInternetPermissionUL(I)Z+]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+HPLcom/android/server/net/NetworkPolicyManagerService;->isAllowlistedFromPowerSaveUL(IZ)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictBackgroundUL(I)Z
+HPLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictPowerUL(I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->isUidIdle(I)Z
+HPLcom/android/server/net/NetworkPolicyManagerService;->isUidIdle(II)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;
 HPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForDenylistRulesUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->lambda$forEachUid$7(Landroid/util/SparseBooleanArray;ILjava/util/function/IntConsumer;Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->lambda$networkScoreAndNetworkManagementServiceReady$1(Ljava/util/concurrent/CountDownLatch;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->lambda$updateRestrictedModeAllowlistUL$3(I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->lambda$updateRulesForRestrictBackgroundUL$6(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->lambda$updateRulesForRestrictPowerUL$5(I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->networkScoreAndNetworkManagementServiceReady()Ljava/util/concurrent/CountDownLatch;
-HPLcom/android/server/net/NetworkPolicyManagerService;->readPolicyAL()V
+HPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForRulesUL(I)Z
+PLcom/android/server/net/NetworkPolicyManagerService;->normalizePoliciesNL([Landroid/net/NetworkPolicy;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->readPolicyAL()V
 PLcom/android/server/net/NetworkPolicyManagerService;->registerListener(Landroid/net/INetworkPolicyListener;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->removeUidStateUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->setMeteredNetworkAllowlist(IZ)V
-PLcom/android/server/net/NetworkPolicyManagerService;->setMeteredRestrictedPackagesInternal(Ljava/util/Set;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->setRestrictBackgroundUL(ZLjava/lang/String;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRuleUL(III)V
+PLcom/android/server/net/NetworkPolicyManagerService;->removeUidStateUL(I)Z
+PLcom/android/server/net/NetworkPolicyManagerService;->setAppIdleWhitelist(IZ)V
+PLcom/android/server/net/NetworkPolicyManagerService;->setDeviceIdleMode(Z)V
+PLcom/android/server/net/NetworkPolicyManagerService;->setRestrictBackground(Z)V
+PLcom/android/server/net/NetworkPolicyManagerService;->setRestrictBackgroundUL(Ljava/lang/String;Z)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRuleUL(III)V+]Landroid/os/INetworkManagementService;Lcom/android/server/net/NetworkManagementService;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 PLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRulesUL(ILandroid/util/SparseIntArray;)V
 PLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRulesUL(ILandroid/util/SparseIntArray;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->setUidPolicyUncheckedUL(IIZ)V
-PLcom/android/server/net/NetworkPolicyManagerService;->systemReady(Ljava/util/concurrent/CountDownLatch;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateBlockedReasonsForRestrictedModeUL(I)I
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkStats(IZ)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateNotificationsNL()V
+PLcom/android/server/net/NetworkPolicyManagerService;->setUidPolicyUncheckedUL(II)V
+PLcom/android/server/net/NetworkPolicyManagerService;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateBlockedReasonsForRestrictedModeUL(I)I
+PLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkEnabledNL()V
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkRulesNL()V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkStats(IZ)V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateNetworksInternal()V
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateNotificationsNL()V
 PLcom/android/server/net/NetworkPolicyManagerService;->updatePowerSaveAllowlistUL()V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictBackgroundRulesOnUidStatusChangedUL(ILandroid/net/NetworkPolicyManager$UidState;Landroid/net/NetworkPolicyManager$UidState;)V
 PLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictedModeAllowlistUL()V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictedModeForUidUL(I)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForAppIdleUL(II)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForDeviceIdleUL(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForRestrictPowerUL(I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAllowlistedPowerSaveUL(IZI)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAllowlistedPowerSaveUL(ZILandroid/util/SparseIntArray;)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForBackgroundUL(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAllowlistedAppIds(Landroid/util/SparseIntArray;Landroid/util/SparseBooleanArray;I)V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAllowlistedPowerSaveUL(IZ)V
 PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAppIdleParoleUL()V
 PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAppIdleUL()V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDataUsageRestrictionsUL(I)V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForBackgroundChainUL()V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDataUsageRestrictionsUL(I)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDataUsageRestrictionsULInner(I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDeviceIdleUL()V
 PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForGlobalChangeAL(Z)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsUL(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsUL(II)V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsUL(II)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsUL(IZ)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsULInner(IZ)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerSaveUL()V
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsULInner(IZ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService;
 PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForRestrictBackgroundUL()V
 PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForRestrictPowerUL()V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForTempAllowlistChangeUL(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateUidStateUL(IIJI)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->waitForAdminData()V
+PLcom/android/server/net/NetworkPolicyManagerService;->updateSubscriptions()V
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateUidStateUL(IIIJ)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService;
 PLcom/android/server/net/NetworkPolicyManagerService;->writePolicyAL()V
+HPLcom/android/server/net/watchlist/DigestUtils;->getSha256Hash(Ljava/io/File;)[B+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate;
 PLcom/android/server/net/watchlist/NetworkWatchlistService$1;-><init>(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
 PLcom/android/server/net/watchlist/NetworkWatchlistService$1;->onConnectEvent(Ljava/lang/String;IJI)V
 HPLcom/android/server/net/watchlist/NetworkWatchlistService$1;->onDnsEvent(IIILjava/lang/String;[Ljava/lang/String;IJI)V
 PLcom/android/server/net/watchlist/NetworkWatchlistService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/net/watchlist/NetworkWatchlistService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/net/watchlist/NetworkWatchlistService$Lifecycle;->onStart()V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->-$$Nest$fgetmIsLoggingEnabled(Lcom/android/server/net/watchlist/NetworkWatchlistService;)Z
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->-$$Nest$minit(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->-$$Nest$minitIpConnectivityMetrics(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
 PLcom/android/server/net/watchlist/NetworkWatchlistService;-><clinit>()V
 PLcom/android/server/net/watchlist/NetworkWatchlistService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/net/watchlist/NetworkWatchlistService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/net/watchlist/NetworkWatchlistService;->enforceWatchlistLoggingPermission()V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->init()V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->initIpConnectivityMetrics()V
+PLcom/android/server/net/watchlist/NetworkWatchlistService;->reportWatchlistIfNecessary()V
 PLcom/android/server/net/watchlist/NetworkWatchlistService;->startWatchlistLogging()Z
 PLcom/android/server/net/watchlist/NetworkWatchlistService;->startWatchlistLoggingImpl()Z
+PLcom/android/server/net/watchlist/PrivacyUtils;->createDpEncodedReportMap(Z[BLjava/util/List;Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;)Ljava/util/Map;
+PLcom/android/server/net/watchlist/PrivacyUtils;->createSecureDPEncoder([BLjava/lang/String;)Landroid/privacy/DifferentialPrivacyEncoder;
+PLcom/android/server/net/watchlist/ReportEncoder;->serializeReport(Lcom/android/server/net/watchlist/WatchlistConfig;Ljava/util/Map;)[B
 PLcom/android/server/net/watchlist/ReportWatchlistJobService;-><clinit>()V
-PLcom/android/server/net/watchlist/ReportWatchlistJobService;->schedule(Landroid/content/Context;)V
+PLcom/android/server/net/watchlist/ReportWatchlistJobService;-><init>()V
+PLcom/android/server/net/watchlist/ReportWatchlistJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/net/watchlist/WatchlistConfig;-><clinit>()V
-PLcom/android/server/net/watchlist/WatchlistConfig;-><init>()V
 PLcom/android/server/net/watchlist/WatchlistConfig;-><init>(Ljava/io/File;)V
-HPLcom/android/server/net/watchlist/WatchlistConfig;->containsDomain(Ljava/lang/String;)Z
-PLcom/android/server/net/watchlist/WatchlistConfig;->containsIp(Ljava/lang/String;)Z
-PLcom/android/server/net/watchlist/WatchlistConfig;->getInstance()Lcom/android/server/net/watchlist/WatchlistConfig;
+PLcom/android/server/net/watchlist/WatchlistConfig;->getWatchlistConfigHash()[B
 PLcom/android/server/net/watchlist/WatchlistConfig;->reloadConfig()V
-PLcom/android/server/net/watchlist/WatchlistConfig;->removeTestModeConfig()V
+PLcom/android/server/net/watchlist/WatchlistLoggingHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/net/watchlist/WatchlistLoggingHandler;I)V
+PLcom/android/server/net/watchlist/WatchlistLoggingHandler$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/net/watchlist/WatchlistLoggingHandler;-><clinit>()V
 PLcom/android/server/net/watchlist/WatchlistLoggingHandler;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-HPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->asyncNetworkEvent(Ljava/lang/String;[Ljava/lang/String;I)V
-HPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getAllSubDomains(Ljava/lang/String;)[Ljava/lang/String;
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getLastMidnightTime()J
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getMidnightTimestamp(I)J
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getPrimaryUserId()I
+HPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->asyncNetworkEvent(Ljava/lang/String;I[Ljava/lang/String;)V
+PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getAllDigestsForReport(Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;)Ljava/util/List;
+PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getAllSubDomains(Ljava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->handleNetworkEvent(Ljava/lang/String;[Ljava/lang/String;IJ)V
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->isHostInWatchlist(Ljava/lang/String;)Z
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->isIpInWatchlist(Ljava/lang/String;)Z
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->reportWatchlistIfNecessary()V
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->searchAllSubDomainsInWatchlist(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->searchIpInWatchlist([Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->shouldReportNetworkWatchlist(J)Z
 PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->tryAggregateRecords(J)V
+PLcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;-><init>(Ljava/util/Set;Ljava/util/HashMap;)V
 PLcom/android/server/net/watchlist/WatchlistReportDbHelper;-><clinit>()V
-PLcom/android/server/net/watchlist/WatchlistReportDbHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getInstance(Landroid/content/Context;)Lcom/android/server/net/watchlist/WatchlistReportDbHelper;
-PLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getSystemWatchlistDbFile()Ljava/io/File;
+PLcom/android/server/net/watchlist/WatchlistReportDbHelper;->cleanup(J)V
+PLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getAggregatedRecords(J)Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;
 PLcom/android/server/net/watchlist/WatchlistSettings;-><clinit>()V
-PLcom/android/server/net/watchlist/WatchlistSettings;-><init>()V
 PLcom/android/server/net/watchlist/WatchlistSettings;-><init>(Ljava/io/File;)V
-PLcom/android/server/net/watchlist/WatchlistSettings;->getInstance()Lcom/android/server/net/watchlist/WatchlistSettings;
-PLcom/android/server/net/watchlist/WatchlistSettings;->getSystemWatchlistFile()Ljava/io/File;
-PLcom/android/server/net/watchlist/WatchlistSettings;->parseSecretKey(Lorg/xmlpull/v1/XmlPullParser;)[B
-PLcom/android/server/net/watchlist/WatchlistSettings;->reloadSettings()V
-PLcom/android/server/notification/AlertRateLimiter;-><init>()V
 PLcom/android/server/notification/BadgeExtractor;-><init>()V
 PLcom/android/server/notification/BadgeExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-HPLcom/android/server/notification/BadgeExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/BadgeExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 PLcom/android/server/notification/BadgeExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/BadgeExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
 PLcom/android/server/notification/BubbleExtractor;-><init>()V
 PLcom/android/server/notification/BubbleExtractor;->canPresentAsBubble(Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/BubbleExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/BubbleExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/BubbleExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/BubbleExtractor;Lcom/android/server/notification/BubbleExtractor;
 PLcom/android/server/notification/BubbleExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
-PLcom/android/server/notification/BubbleExtractor;->setShortcutHelper(Lcom/android/server/notification/ShortcutHelper;)V
 PLcom/android/server/notification/BubbleExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/CalendarTracker$1;-><init>(Lcom/android/server/notification/CalendarTracker;Landroid/os/Handler;)V
-PLcom/android/server/notification/CalendarTracker$CheckEventResult;-><init>()V
+PLcom/android/server/notification/CalendarTracker$1;-><init>(Lcom/android/server/notification/CalendarTracker;)V
 PLcom/android/server/notification/CalendarTracker;-><clinit>()V
 PLcom/android/server/notification/CalendarTracker;-><init>(Landroid/content/Context;Landroid/content/Context;)V
-PLcom/android/server/notification/CalendarTracker;->checkEvent(Landroid/service/notification/ZenModeConfig$EventInfo;J)Lcom/android/server/notification/CalendarTracker$CheckEventResult;
-PLcom/android/server/notification/CalendarTracker;->getCalendarsWithAccess()Landroid/util/ArraySet;
-PLcom/android/server/notification/CalendarTracker;->setCallback(Lcom/android/server/notification/CalendarTracker$Callback;)V
-PLcom/android/server/notification/CalendarTracker;->setRegistered(Z)V
-PLcom/android/server/notification/ConditionProviders$ConditionRecord;-><init>(Landroid/net/Uri;Landroid/content/ComponentName;)V
-PLcom/android/server/notification/ConditionProviders$ConditionRecord;-><init>(Landroid/net/Uri;Landroid/content/ComponentName;Lcom/android/server/notification/ConditionProviders$ConditionRecord-IA;)V
+PLcom/android/server/notification/CalendarTracker;->setCallback(Lcom/android/server/notification/EventConditionProvider$2;)V
+PLcom/android/server/notification/ConditionProviders$ConditionRecord;-><init>(Landroid/content/ComponentName;Landroid/net/Uri;)V
+PLcom/android/server/notification/ConditionProviders$ConditionRecord;->toString()Ljava/lang/String;
 PLcom/android/server/notification/ConditionProviders;-><init>(Landroid/content/Context;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
 PLcom/android/server/notification/ConditionProviders;->addSystemProvider(Lcom/android/server/notification/SystemConditionProviderService;)V
-PLcom/android/server/notification/ConditionProviders;->checkServiceToken(Landroid/service/notification/IConditionProvider;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+PLcom/android/server/notification/ConditionProviders;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/ConditionProviders;->ensureRecordExists(Landroid/content/ComponentName;Landroid/net/Uri;Landroid/service/notification/IConditionProvider;)V
 HPLcom/android/server/notification/ConditionProviders;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
-HPLcom/android/server/notification/ConditionProviders;->getRecordLocked(Landroid/net/Uri;Landroid/content/ComponentName;Z)Lcom/android/server/notification/ConditionProviders$ConditionRecord;
+PLcom/android/server/notification/ConditionProviders;->getRecordLocked(Landroid/net/Uri;Landroid/content/ComponentName;Z)Lcom/android/server/notification/ConditionProviders$ConditionRecord;
 PLcom/android/server/notification/ConditionProviders;->getRequiredPermission()Ljava/lang/String;
-PLcom/android/server/notification/ConditionProviders;->getSystemProviders()Ljava/lang/Iterable;
 PLcom/android/server/notification/ConditionProviders;->getValidConditions(Ljava/lang/String;[Landroid/service/notification/Condition;)[Landroid/service/notification/Condition;
-PLcom/android/server/notification/ConditionProviders;->isSystemProviderEnabled(Ljava/lang/String;)Z
-PLcom/android/server/notification/ConditionProviders;->notifyConditions(Ljava/lang/String;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;[Landroid/service/notification/Condition;)V
-PLcom/android/server/notification/ConditionProviders;->onBootPhaseAppsCanStart()V
+PLcom/android/server/notification/ConditionProviders;->isValidEntry(ILjava/lang/String;)Z
 PLcom/android/server/notification/ConditionProviders;->onPackagesChanged(Z[Ljava/lang/String;[I)V
 PLcom/android/server/notification/ConditionProviders;->onServiceAdded(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
-PLcom/android/server/notification/ConditionProviders;->onUserSwitched(I)V
-PLcom/android/server/notification/ConditionProviders;->provider(Lcom/android/server/notification/ConditionProviders$ConditionRecord;)Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/ConditionProviders;->provider(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/ConditionProviders;->safeSet([Ljava/lang/Object;)Landroid/util/ArraySet;
-PLcom/android/server/notification/ConditionProviders;->setCallback(Lcom/android/server/notification/ConditionProviders$Callback;)V
-PLcom/android/server/notification/ConditionProviders;->subscribeIfNecessary(Landroid/content/ComponentName;Landroid/net/Uri;)Z
 PLcom/android/server/notification/ConditionProviders;->subscribeLocked(Lcom/android/server/notification/ConditionProviders$ConditionRecord;)V
 PLcom/android/server/notification/ConditionProviders;->writeDefaults(Lcom/android/modules/utils/TypedXmlSerializer;)V
 PLcom/android/server/notification/CountdownConditionProvider$Receiver;-><init>(Lcom/android/server/notification/CountdownConditionProvider;)V
-PLcom/android/server/notification/CountdownConditionProvider$Receiver;-><init>(Lcom/android/server/notification/CountdownConditionProvider;Lcom/android/server/notification/CountdownConditionProvider$Receiver-IA;)V
 PLcom/android/server/notification/CountdownConditionProvider;-><clinit>()V
 PLcom/android/server/notification/CountdownConditionProvider;-><init>()V
-PLcom/android/server/notification/CountdownConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/CountdownConditionProvider;->attachBase(Landroid/content/Context;)V
-PLcom/android/server/notification/CountdownConditionProvider;->getComponent()Landroid/content/ComponentName;
+PLcom/android/server/notification/CountdownConditionProvider;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/notification/CountdownConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
 PLcom/android/server/notification/CountdownConditionProvider;->onBootComplete()V
 PLcom/android/server/notification/CountdownConditionProvider;->onConnected()V
@@ -15573,1106 +12286,804 @@
 PLcom/android/server/notification/CriticalNotificationExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/CriticalNotificationExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/CriticalNotificationExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/CriticalNotificationExtractor;->supportsCriticalNotifications(Landroid/content/Context;)Z
-PLcom/android/server/notification/DefaultDeviceEffectsApplier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/DefaultDeviceEffectsApplier;Landroid/service/notification/ZenDeviceEffects;I)V
-PLcom/android/server/notification/DefaultDeviceEffectsApplier$$ExternalSyntheticLambda0;->runOrThrow()V
+PLcom/android/server/notification/CustomManualConditionProvider;-><clinit>()V
+PLcom/android/server/notification/CustomManualConditionProvider;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/notification/CustomManualConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
+PLcom/android/server/notification/CustomManualConditionProvider;->onBootComplete()V
+PLcom/android/server/notification/CustomManualConditionProvider;->onConnected()V
 PLcom/android/server/notification/DefaultDeviceEffectsApplier$1;-><init>(Lcom/android/server/notification/DefaultDeviceEffectsApplier;)V
-PLcom/android/server/notification/DefaultDeviceEffectsApplier;->$r8$lambda$4LDHIsj0iI2D9FidhGDL9DsNFGA(Lcom/android/server/notification/DefaultDeviceEffectsApplier;Landroid/service/notification/ZenDeviceEffects;I)V
 PLcom/android/server/notification/DefaultDeviceEffectsApplier;-><clinit>()V
 PLcom/android/server/notification/DefaultDeviceEffectsApplier;-><init>(Landroid/content/Context;)V
-PLcom/android/server/notification/DefaultDeviceEffectsApplier;->apply(Landroid/service/notification/ZenDeviceEffects;I)V
-PLcom/android/server/notification/DefaultDeviceEffectsApplier;->lambda$apply$0(Landroid/service/notification/ZenDeviceEffects;I)V
-PLcom/android/server/notification/EventConditionProvider$1;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
+PLcom/android/server/notification/DefaultDeviceEffectsApplier;->maybeDimWallpaper(Z)V
+PLcom/android/server/notification/DefaultDeviceEffectsApplier;->maybeDisplayGrayscale(Z)V
+PLcom/android/server/notification/DefaultDeviceEffectsApplier;->maybeSuppressAmbientDisplay(Z)V
+PLcom/android/server/notification/DefaultDeviceEffectsApplier;->maybeUseNightMode(ZI)V
+PLcom/android/server/notification/EventConditionProvider$1;-><init>(Lcom/android/server/notification/EventConditionProvider;I)V
 PLcom/android/server/notification/EventConditionProvider$2;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
-PLcom/android/server/notification/EventConditionProvider$3;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
-PLcom/android/server/notification/EventConditionProvider$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/notification/EventConditionProvider$4;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
 PLcom/android/server/notification/EventConditionProvider$4;->run()V
-PLcom/android/server/notification/EventConditionProvider;->-$$Nest$mevaluateSubscriptions(Lcom/android/server/notification/EventConditionProvider;)V
-PLcom/android/server/notification/EventConditionProvider;->-$$Nest$mevaluateSubscriptionsW(Lcom/android/server/notification/EventConditionProvider;)V
-PLcom/android/server/notification/EventConditionProvider;->-$$Nest$sfgetDEBUG()Z
 PLcom/android/server/notification/EventConditionProvider;-><clinit>()V
 PLcom/android/server/notification/EventConditionProvider;-><init>()V
-PLcom/android/server/notification/EventConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/EventConditionProvider;->attachBase(Landroid/content/Context;)V
-PLcom/android/server/notification/EventConditionProvider;->createCondition(Landroid/net/Uri;I)Landroid/service/notification/Condition;
+PLcom/android/server/notification/EventConditionProvider;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/notification/EventConditionProvider;->evaluateSubscriptions()V
-HPLcom/android/server/notification/EventConditionProvider;->evaluateSubscriptionsW()V
-PLcom/android/server/notification/EventConditionProvider;->getComponent()Landroid/content/ComponentName;
-PLcom/android/server/notification/EventConditionProvider;->getPendingIntent(J)Landroid/app/PendingIntent;
 PLcom/android/server/notification/EventConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
 PLcom/android/server/notification/EventConditionProvider;->onBootComplete()V
 PLcom/android/server/notification/EventConditionProvider;->onConnected()V
-PLcom/android/server/notification/EventConditionProvider;->onSubscribe(Landroid/net/Uri;)V
-PLcom/android/server/notification/EventConditionProvider;->reloadTrackers()V
+PLcom/android/server/notification/EventConditionProvider;->reloadTrackers(Landroid/os/UserHandle;)V
 PLcom/android/server/notification/EventConditionProvider;->rescheduleAlarm(JJ)V
 PLcom/android/server/notification/EventConditionProvider;->setRegistered(Z)V
-PLcom/android/server/notification/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/notification/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/notification/FeatureFlagsImpl;->crossAppPoliteNotifications()Z
-PLcom/android/server/notification/FeatureFlagsImpl;->expireBitmaps()Z
-PLcom/android/server/notification/FeatureFlagsImpl;->load_overrides_systemui()V
-HPLcom/android/server/notification/FeatureFlagsImpl;->notificationReduceMessagequeueUsage()Z
-PLcom/android/server/notification/FeatureFlagsImpl;->politeNotifications()Z
-PLcom/android/server/notification/FeatureFlagsImpl;->refactorAttentionHelper()Z
-PLcom/android/server/notification/FeatureFlagsImpl;->sensitiveNotificationAppProtection()Z
-PLcom/android/server/notification/FeatureFlagsImpl;->vibrateWhileUnlocked()Z
+PLcom/android/server/notification/FeatureFlagsImpl;->init()V
 PLcom/android/server/notification/Flags;-><clinit>()V
+PLcom/android/server/notification/Flags;->allNotifsNeedTtl()Z
 PLcom/android/server/notification/Flags;->crossAppPoliteNotifications()Z
 PLcom/android/server/notification/Flags;->expireBitmaps()Z
+HPLcom/android/server/notification/Flags;->notificationForceGroupConversations()Z
+PLcom/android/server/notification/Flags;->notificationForceGroupSingletons()Z
 PLcom/android/server/notification/Flags;->notificationReduceMessagequeueUsage()Z
+PLcom/android/server/notification/Flags;->notificationVerifyChannelSoundUri()Z
+PLcom/android/server/notification/Flags;->notificationVibrationInSoundUri()Z
+PLcom/android/server/notification/Flags;->persistIncompleteRestoreData()Z
 PLcom/android/server/notification/Flags;->politeNotifications()Z
-PLcom/android/server/notification/Flags;->refactorAttentionHelper()Z
-PLcom/android/server/notification/Flags;->sensitiveNotificationAppProtection()Z
+PLcom/android/server/notification/Flags;->politeNotificationsAttnUpdate()Z
+PLcom/android/server/notification/Flags;->rejectOldNotifications()Z
+PLcom/android/server/notification/Flags;->traceCancelEvents()Z
+PLcom/android/server/notification/Flags;->useSsmUserSwitchSignal()Z
 PLcom/android/server/notification/Flags;->vibrateWhileUnlocked()Z
-PLcom/android/server/notification/GlobalSortKeyComparator;-><init>()V
-PLcom/android/server/notification/GlobalSortKeyComparator;->compare(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)I
-PLcom/android/server/notification/GlobalSortKeyComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/notification/GroupHelper$NotificationAttributes;-><init>(ILandroid/graphics/drawable/Icon;I)V
-PLcom/android/server/notification/GroupHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;ILcom/android/server/notification/GroupHelper$Callback;)V
-PLcom/android/server/notification/GroupHelper;->generatePackageKey(ILjava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/notification/GroupHelper;->maybeGroup(Landroid/service/notification/StatusBarNotification;Z)V
-PLcom/android/server/notification/GroupHelper;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Z)V
+HPLcom/android/server/notification/GlobalSortKeyComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/notification/GroupHelper$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/notification/GroupHelper$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;-><init>(ILjava/lang/String;Lcom/android/server/notification/GroupHelper$NotificationSectioner;)V
+PLcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;->hashCode()I
+HPLcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;->toString()Ljava/lang/String;
+PLcom/android/server/notification/GroupHelper$NotificationAttributes;-><init>(ILandroid/graphics/drawable/Icon;IIILjava/lang/String;)V
+PLcom/android/server/notification/GroupHelper$NotificationSectioner;-><init>(Ljava/lang/String;ILjava/util/function/Predicate;)V
+HPLcom/android/server/notification/GroupHelper$NotificationSectioner;->isInSection(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/GroupHelper;-><clinit>()V
+PLcom/android/server/notification/GroupHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;ILcom/android/server/notification/NotificationManagerService$1;)V
+PLcom/android/server/notification/GroupHelper;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/notification/GroupHelper;->findCanceledSummary(Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/GroupHelper$CachedSummary;
+PLcom/android/server/notification/GroupHelper;->findCanceledSummary(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)Lcom/android/server/notification/GroupHelper$CachedSummary;
+PLcom/android/server/notification/GroupHelper;->getAutobundledSummaryAttributes(Ljava/lang/String;Ljava/util/List;)Lcom/android/server/notification/GroupHelper$NotificationAttributes;
+PLcom/android/server/notification/GroupHelper;->getAutogroupSummaryFlags(Landroid/util/ArrayMap;)I
+PLcom/android/server/notification/GroupHelper;->getNotificationShadeSections()Ljava/util/List;
+PLcom/android/server/notification/GroupHelper;->getPreviousValidSectionKey(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;
+PLcom/android/server/notification/GroupHelper;->getSection(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/GroupHelper$NotificationSectioner;
+HPLcom/android/server/notification/GroupHelper;->isUpdateForCanceledSummary(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/GroupHelper;->maybeCancelGroupChildrenForCanceledSummary(IIILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/GroupHelper;->maybeClearCanceledSummariesCache(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+HPLcom/android/server/notification/GroupHelper;->maybeGroupWithSections(Lcom/android/server/notification/NotificationRecord;Z)Z
+PLcom/android/server/notification/GroupHelper;->maybeUngroupWithSections(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;)V
+PLcom/android/server/notification/GroupHelper;->onNotificationPosted(Lcom/android/server/notification/NotificationRecord;Z)Z
+PLcom/android/server/notification/GroupHelper;->onNotificationPostedWithDelay(Lcom/android/server/notification/NotificationRecord;Ljava/util/List;Ljava/util/Map;)V
+HPLcom/android/server/notification/GroupHelper;->onNotificationRemoved(Lcom/android/server/notification/NotificationRecord;Ljava/util/List;)V
+PLcom/android/server/notification/GroupHelper;->updateAggregateAppGroup(Lcom/android/server/notification/GroupHelper$FullyQualifiedGroupKey;Ljava/lang/String;ZI)V
 PLcom/android/server/notification/ImportanceExtractor;-><init>()V
 PLcom/android/server/notification/ImportanceExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/ImportanceExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/ImportanceExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/ImportanceExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/ImportanceExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-HPLcom/android/server/notification/ManagedServices$1;-><init>(Lcom/android/server/notification/ManagedServices;ILandroid/util/Pair;ZII)V
-HPLcom/android/server/notification/ManagedServices$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/notification/ManagedServices$1;-><init>(Lcom/android/server/notification/ManagedServices;ILandroid/util/Pair;II)V
+PLcom/android/server/notification/ManagedServices$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/notification/ManagedServices$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
-PLcom/android/server/notification/ManagedServices$Config;-><init>()V
-HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;-><init>(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;II)V
+PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;-><init>(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLcom/android/server/notification/ManagedServices$1;II)V
 PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->binderDied()V
 HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->enabledAndUserMatches(I)Z
-PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->getService()Landroid/os/IInterface;
 HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->hashCode()I
 HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isEnabledForCurrentProfiles()Z
-PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isGuest(Lcom/android/server/notification/ManagedServices;)Z
-PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isSameUser(I)Z
-PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isSystem()Z
 PLcom/android/server/notification/ManagedServices$UserProfiles;-><init>()V
-HPLcom/android/server/notification/ManagedServices$UserProfiles;->getCurrentProfileIds()Landroid/util/IntArray;
+PLcom/android/server/notification/ManagedServices$UserProfiles;->getCurrentProfileIds()Landroid/util/IntArray;
 PLcom/android/server/notification/ManagedServices$UserProfiles;->isCurrentProfile(I)Z
-PLcom/android/server/notification/ManagedServices$UserProfiles;->isProfileUser(I)Z
+PLcom/android/server/notification/ManagedServices$UserProfiles;->isProfileUser(Landroid/content/Context;I)Z
 PLcom/android/server/notification/ManagedServices$UserProfiles;->updateCache(Landroid/content/Context;)V
-PLcom/android/server/notification/ManagedServices;->-$$Nest$fgetmEnabledServicesForCurrentProfiles(Lcom/android/server/notification/ManagedServices;)Landroid/util/ArraySet;
-PLcom/android/server/notification/ManagedServices;->-$$Nest$fgetmServices(Lcom/android/server/notification/ManagedServices;)Ljava/util/ArrayList;
-PLcom/android/server/notification/ManagedServices;->-$$Nest$fgetmServicesRebinding(Lcom/android/server/notification/ManagedServices;)Landroid/util/ArraySet;
-PLcom/android/server/notification/ManagedServices;->-$$Nest$mgetCaption(Lcom/android/server/notification/ManagedServices;)Ljava/lang/String;
-PLcom/android/server/notification/ManagedServices;->-$$Nest$mnewServiceInfo(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;II)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ManagedServices;->-$$Nest$mremoveServiceImpl(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-HPLcom/android/server/notification/ManagedServices;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
-HPLcom/android/server/notification/ManagedServices;->addApprovedList(Ljava/lang/String;IZLjava/lang/String;)V
-HPLcom/android/server/notification/ManagedServices;->bindToServices(Landroid/util/SparseArray;)V
+PLcom/android/server/notification/ManagedServices;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
+PLcom/android/server/notification/ManagedServices;->addApprovedList(ILjava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/notification/ManagedServices;->checkNotNull(Landroid/os/IInterface;)V
 PLcom/android/server/notification/ManagedServices;->checkServiceTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+PLcom/android/server/notification/ManagedServices;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/ManagedServices;->getAllowedComponents(I)Ljava/util/List;
-HPLcom/android/server/notification/ManagedServices;->getAllowedComponents(Landroid/util/IntArray;)Landroid/util/SparseArray;
+PLcom/android/server/notification/ManagedServices;->getAllowedComponents(Landroid/util/IntArray;)Landroid/util/SparseArray;
 PLcom/android/server/notification/ManagedServices;->getAllowedPackages(I)Ljava/util/List;
 PLcom/android/server/notification/ManagedServices;->getApprovedValue(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/notification/ManagedServices;->getBindFlags()I
-PLcom/android/server/notification/ManagedServices;->getCaption()Ljava/lang/String;
-PLcom/android/server/notification/ManagedServices;->getDefaultComponents()Landroid/util/ArraySet;
 PLcom/android/server/notification/ManagedServices;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set;
-HPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ManagedServices;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+PLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set;
+HPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;+]Landroid/os/IInterface;Landroid/service/notification/ConditionProviderService$Provider;,Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/notification/ManagedServices;->getServiceInfo(ILandroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
 HPLcom/android/server/notification/ManagedServices;->getServices()Ljava/util/List;
-PLcom/android/server/notification/ManagedServices;->isAutobindAllowed(Landroid/content/pm/ServiceInfo;)Z
-PLcom/android/server/notification/ManagedServices;->isComponentEnabledForPackage(Ljava/lang/String;)Z
-PLcom/android/server/notification/ManagedServices;->isPackageAllowed(Ljava/lang/String;I)Z
-HPLcom/android/server/notification/ManagedServices;->isPackageOrComponentAllowed(Ljava/lang/String;I)Z
-PLcom/android/server/notification/ManagedServices;->isSameUser(Landroid/os/IInterface;I)Z
-PLcom/android/server/notification/ManagedServices;->isServiceTokenValidLocked(Landroid/os/IInterface;)Z
-HPLcom/android/server/notification/ManagedServices;->loadComponentNamesFromValues(Landroid/util/ArraySet;I)Landroid/util/ArraySet;
-PLcom/android/server/notification/ManagedServices;->newServiceInfo(Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;II)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ManagedServices;->onBootPhaseAppsCanStart()V
+PLcom/android/server/notification/ManagedServices;->isPackageAllowed(ILjava/lang/String;)Z
+HPLcom/android/server/notification/ManagedServices;->isPackageOrComponentAllowed(ILjava/lang/String;)Z
+PLcom/android/server/notification/ManagedServices;->isValidEntry(ILjava/lang/String;)Z
 PLcom/android/server/notification/ManagedServices;->onPackagesChanged(Z[Ljava/lang/String;[I)V
-PLcom/android/server/notification/ManagedServices;->onUserSwitched(I)V
-PLcom/android/server/notification/ManagedServices;->onUserUnlocked(I)V
-HPLcom/android/server/notification/ManagedServices;->populateComponentsToBind(Landroid/util/SparseArray;Landroid/util/IntArray;Landroid/util/SparseArray;)V
+PLcom/android/server/notification/ManagedServices;->populateComponentsToBind(Landroid/util/SparseArray;Landroid/util/IntArray;Landroid/util/SparseArray;)V
 PLcom/android/server/notification/ManagedServices;->populateComponentsToUnbind(ZLjava/util/Set;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
-PLcom/android/server/notification/ManagedServices;->queryPackageForServices(Ljava/lang/String;I)Ljava/util/Set;
-HPLcom/android/server/notification/ManagedServices;->queryPackageForServices(Ljava/lang/String;II)Landroid/util/ArraySet;
-PLcom/android/server/notification/ManagedServices;->readDefaults(Lcom/android/modules/utils/TypedXmlPullParser;)V
-PLcom/android/server/notification/ManagedServices;->readExtraAttributes(Ljava/lang/String;Lcom/android/modules/utils/TypedXmlPullParser;I)V
-HPLcom/android/server/notification/ManagedServices;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/function/TriPredicate;ZI)V
-HPLcom/android/server/notification/ManagedServices;->rebindServices(ZI)V
-PLcom/android/server/notification/ManagedServices;->registerGuestService(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
+PLcom/android/server/notification/ManagedServices;->queryPackageForServices(IILjava/lang/String;)Landroid/util/ArraySet;
+PLcom/android/server/notification/ManagedServices;->readExtraAttributes(ILcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)V
+PLcom/android/server/notification/ManagedServices;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda2;ZI)V
+PLcom/android/server/notification/ManagedServices;->rebindServices(IZ)V
 PLcom/android/server/notification/ManagedServices;->registerService(Landroid/content/ComponentName;I)V
 PLcom/android/server/notification/ManagedServices;->registerService(Landroid/content/pm/ServiceInfo;I)V
-PLcom/android/server/notification/ManagedServices;->registerServiceImpl(Landroid/os/IInterface;Landroid/content/ComponentName;III)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
 PLcom/android/server/notification/ManagedServices;->registerServiceImpl(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ManagedServices;->registerServiceLocked(Landroid/content/ComponentName;I)V
-HPLcom/android/server/notification/ManagedServices;->registerServiceLocked(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/notification/ManagedServices;->registerSystemService(Landroid/os/IInterface;Landroid/content/ComponentName;II)V
+PLcom/android/server/notification/ManagedServices;->registerServiceLocked(ILandroid/content/ComponentName;)V
 PLcom/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;
-PLcom/android/server/notification/ManagedServices;->setPackageOrComponentEnabled(Ljava/lang/String;IZZ)V
-PLcom/android/server/notification/ManagedServices;->setPackageOrComponentEnabled(Ljava/lang/String;IZZZ)V
-PLcom/android/server/notification/ManagedServices;->shouldReflectToSettings()Z
 PLcom/android/server/notification/ManagedServices;->unbindFromServices(Landroid/util/SparseArray;)V
-PLcom/android/server/notification/ManagedServices;->unbindOtherUserServices(I)V
-PLcom/android/server/notification/ManagedServices;->unbindService(Landroid/content/ServiceConnection;Landroid/content/ComponentName;I)V
-PLcom/android/server/notification/ManagedServices;->unbindServicesImpl(IZ)V
-PLcom/android/server/notification/ManagedServices;->unregisterService(Landroid/content/ComponentName;I)V
-PLcom/android/server/notification/ManagedServices;->unregisterService(Landroid/os/IInterface;I)V
-PLcom/android/server/notification/ManagedServices;->unregisterServiceImpl(Landroid/os/IInterface;I)V
-PLcom/android/server/notification/ManagedServices;->unregisterServiceLocked(Landroid/content/ComponentName;I)V
 HPLcom/android/server/notification/ManagedServices;->writeDefaults(Lcom/android/modules/utils/TypedXmlSerializer;)V
 PLcom/android/server/notification/ManagedServices;->writeExtraAttributes(Lcom/android/modules/utils/TypedXmlSerializer;I)V
 PLcom/android/server/notification/ManagedServices;->writeExtraXmlTags(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/notification/ManagedServices;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;ZI)V
+HPLcom/android/server/notification/ManagedServices;->writeXml(ILcom/android/modules/utils/TypedXmlSerializer;Z)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/ConditionProviders;,Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;,Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
 PLcom/android/server/notification/NotificationAdjustmentExtractor;-><init>()V
 PLcom/android/server/notification/NotificationAdjustmentExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/NotificationAdjustmentExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/NotificationAdjustmentExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/NotificationAdjustmentExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+PLcom/android/server/notification/NotificationAdjustmentExtractor;->setGroupHelper(Lcom/android/server/notification/GroupHelper;)V
 PLcom/android/server/notification/NotificationAdjustmentExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+PLcom/android/server/notification/NotificationAttentionHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationAttentionHelper;I)V
+PLcom/android/server/notification/NotificationAttentionHelper$$ExternalSyntheticLambda0;->isExempted(Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationAttentionHelper$1;-><init>(Lcom/android/server/notification/NotificationAttentionHelper;)V
 PLcom/android/server/notification/NotificationAttentionHelper$3;-><init>(Lcom/android/server/notification/NotificationAttentionHelper;)V
 HPLcom/android/server/notification/NotificationAttentionHelper$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;-><init>(IIII)V
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->getChannelKey(Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->getLastNotificationUpdateTimeMs(Lcom/android/server/notification/NotificationRecord;)J
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->getNextState(IJ)I
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->getPolitenessState(Lcom/android/server/notification/NotificationRecord;)I
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->setApplyCooldownPerPackage(Z)V
-PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->shouldIgnoreNotification(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationAttentionHelper$SettingsObserver;->-$$Nest$sfgetNOTIFICATION_COOLDOWN_ALL_URI()Landroid/net/Uri;
-PLcom/android/server/notification/NotificationAttentionHelper$SettingsObserver;->-$$Nest$sfgetNOTIFICATION_COOLDOWN_ENABLED_URI()Landroid/net/Uri;
-PLcom/android/server/notification/NotificationAttentionHelper$SettingsObserver;->-$$Nest$sfgetNOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED_URI()Landroid/net/Uri;
-PLcom/android/server/notification/NotificationAttentionHelper$SettingsObserver;->-$$Nest$sfgetNOTIFICATION_LIGHT_PULSE_URI()Landroid/net/Uri;
+PLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;-><init>(IIIILcom/android/server/notification/NotificationAttentionHelper$$ExternalSyntheticLambda0;)V
+HPLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->getChannelKey(Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
+HPLcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;->getPolitenessState(Lcom/android/server/notification/NotificationRecord;)I
 PLcom/android/server/notification/NotificationAttentionHelper$SettingsObserver;-><clinit>()V
 PLcom/android/server/notification/NotificationAttentionHelper$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationAttentionHelper;)V
-PLcom/android/server/notification/NotificationAttentionHelper$Signals;->-$$Nest$fgetlistenerHints(Lcom/android/server/notification/NotificationAttentionHelper$Signals;)I
-PLcom/android/server/notification/NotificationAttentionHelper$Signals;-><init>(ZI)V
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;-><init>(IIIIILcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;)V
+PLcom/android/server/notification/NotificationAttentionHelper$Signals;-><init>(IZ)V
+PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;-><init>(IIIIILcom/android/server/notification/NotificationAttentionHelper$StrategyPerApp;Lcom/android/server/notification/NotificationAttentionHelper$$ExternalSyntheticLambda0;)V
 PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->getChannelKey(Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->getLastNotificationUpdateTimeMs(Lcom/android/server/notification/NotificationRecord;)J
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->isAvalancheActive()Z
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->onNotificationPosted(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->getPolitenessState(Lcom/android/server/notification/NotificationRecord;)I
+HPLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->isAvalancheActive()Z
+PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->isAvalancheExempted(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->isAvalancheExemptedFullVolume(Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->setApplyCooldownPerPackage(Z)V
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyAvalanche;->setTriggerTimeMs(J)V
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyPerApp;-><init>(IIIII)V
-PLcom/android/server/notification/NotificationAttentionHelper$StrategyPerApp;->onNotificationPosted(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationAttentionHelper;->-$$Nest$fgetmNotificationLight(Lcom/android/server/notification/NotificationAttentionHelper;)Lcom/android/server/lights/LogicalLight;
-PLcom/android/server/notification/NotificationAttentionHelper;->-$$Nest$fgetmStrategy(Lcom/android/server/notification/NotificationAttentionHelper;)Lcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;
-PLcom/android/server/notification/NotificationAttentionHelper;->-$$Nest$fputmUserPresent(Lcom/android/server/notification/NotificationAttentionHelper;Z)V
-PLcom/android/server/notification/NotificationAttentionHelper;->-$$Nest$mloadUserSettings(Lcom/android/server/notification/NotificationAttentionHelper;)V
+PLcom/android/server/notification/NotificationAttentionHelper$StrategyPerApp;-><init>(IIIIILcom/android/server/notification/NotificationAttentionHelper$$ExternalSyntheticLambda0;)V
 PLcom/android/server/notification/NotificationAttentionHelper;-><clinit>()V
-PLcom/android/server/notification/NotificationAttentionHelper;-><init>(Landroid/content/Context;Lcom/android/server/lights/LightsManager;Landroid/view/accessibility/AccessibilityManager;Landroid/content/pm/PackageManager;Landroid/os/UserManager;Lcom/android/server/notification/NotificationUsageStats;Lcom/android/server/notification/NotificationManagerPrivate;Lcom/android/server/notification/ZenModeHelper;Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;)V
+PLcom/android/server/notification/NotificationAttentionHelper;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/lights/LightsManager;Landroid/view/accessibility/AccessibilityManager;Landroid/content/pm/PackageManager;Landroid/os/UserManager;Lcom/android/server/notification/NotificationUsageStats;Lcom/android/server/notification/NotificationManagerService$1;Lcom/android/server/notification/ZenModeHelper;Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;)V
 HPLcom/android/server/notification/NotificationAttentionHelper;->buzzBeepBlinkLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationAttentionHelper$Signals;)I
-PLcom/android/server/notification/NotificationAttentionHelper;->canShowLightsLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationAttentionHelper$Signals;Z)Z
-PLcom/android/server/notification/NotificationAttentionHelper;->createPolitenessStrategy()Lcom/android/server/notification/NotificationAttentionHelper$PolitenessStrategy;
-PLcom/android/server/notification/NotificationAttentionHelper;->disableNotificationEffects(Lcom/android/server/notification/NotificationRecord;I)Ljava/lang/String;
-PLcom/android/server/notification/NotificationAttentionHelper;->getManagedProfileId(I)I
-PLcom/android/server/notification/NotificationAttentionHelper;->getPoliteBit(Lcom/android/server/notification/NotificationRecord;)I
+PLcom/android/server/notification/NotificationAttentionHelper;->callStateToString(I)Ljava/lang/String;
+PLcom/android/server/notification/NotificationAttentionHelper;->clearEffectsLocked(Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationAttentionHelper;->dumpLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/notification/NotificationAttentionHelper;->getPolitenessState(Lcom/android/server/notification/NotificationRecord;)I
 PLcom/android/server/notification/NotificationAttentionHelper;->isNotificationForCurrentUser(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationAttentionHelper$Signals;)Z
-PLcom/android/server/notification/NotificationAttentionHelper;->isNotificationForWorkProfile(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationAttentionHelper;->isPoliteNotificationFeatureEnabled(Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/NotificationAttentionHelper;->isPoliteNotificationFeatureEnabled(Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationAttentionHelper;->loadUserSettings()V
-PLcom/android/server/notification/NotificationAttentionHelper;->onSystemReady()V
-PLcom/android/server/notification/NotificationAttentionHelper;->registerBroadcastListeners()V
 PLcom/android/server/notification/NotificationAttentionHelper;->sendAccessibilityEvent(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationAttentionHelper;->shouldMuteNotificationLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationAttentionHelper$Signals;)Z
-PLcom/android/server/notification/NotificationBitmapJobService;->getRunAfterMs()J
+PLcom/android/server/notification/NotificationAttentionHelper;->updateLightsLocked()V
+PLcom/android/server/notification/NotificationBackupHelper;-><clinit>()V
+PLcom/android/server/notification/NotificationBackupHelper;-><init>(I)V
+PLcom/android/server/notification/NotificationBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/notification/NotificationBitmapJobService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationBitmapJobService;Landroid/app/job/JobParameters;)V
+PLcom/android/server/notification/NotificationBitmapJobService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/notification/NotificationBitmapJobService;-><init>()V
+PLcom/android/server/notification/NotificationBitmapJobService;->attachBaseContext(Landroid/content/Context;)V
 PLcom/android/server/notification/NotificationBitmapJobService;->getTimeUntilRemoval(Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;)J
+PLcom/android/server/notification/NotificationBitmapJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/notification/NotificationBitmapJobService;->onStopJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/notification/NotificationBitmapJobService;->scheduleJob(Landroid/content/Context;)V
 PLcom/android/server/notification/NotificationChannelExtractor;-><init>()V
 PLcom/android/server/notification/NotificationChannelExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/NotificationChannelExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/NotificationChannelExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
+PLcom/android/server/notification/NotificationChannelExtractor;->setCompatChangeLogger(Lcom/android/internal/compat/IPlatformCompat;)V
 PLcom/android/server/notification/NotificationChannelExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/NotificationChannelExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->$values()[Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;
 PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;-><clinit>()V
-PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;-><init>(Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;-><init>(IILjava/lang/String;)V
 PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getId()I
-PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getUpdated(Z)Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;
-PLcom/android/server/notification/NotificationChannelLogger;->getConversationIdHash(Landroid/app/NotificationChannel;)I
-PLcom/android/server/notification/NotificationChannelLogger;->getIdHash(Landroid/app/NotificationChannel;)I
-HPLcom/android/server/notification/NotificationChannelLogger;->getLoggingImportance(Landroid/app/NotificationChannel;)I
-HPLcom/android/server/notification/NotificationChannelLogger;->getLoggingImportance(Landroid/app/NotificationChannel;I)I
+PLcom/android/server/notification/NotificationChannelLogger;->getLoggingImportance(Landroid/app/NotificationChannel;I)I
 PLcom/android/server/notification/NotificationChannelLogger;->logNotificationChannelModified(Landroid/app/NotificationChannel;ILjava/lang/String;IZ)V
-PLcom/android/server/notification/NotificationChannelLoggerImpl;-><init>()V
-PLcom/android/server/notification/NotificationChannelLoggerImpl;->logNotificationChannel(Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;Landroid/app/NotificationChannel;ILjava/lang/String;II)V
-PLcom/android/server/notification/NotificationComparator$1;-><init>(Lcom/android/server/notification/NotificationComparator;)V
-PLcom/android/server/notification/NotificationComparator;-><init>(Landroid/content/Context;)V
-PLcom/android/server/notification/NotificationComparator;->compare(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)I
-PLcom/android/server/notification/NotificationComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/notification/NotificationComparator;->isCallCategory(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isCallStyle(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isImportantColorized(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isImportantMessaging(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isImportantOngoing(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isImportantPeople(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isMediaNotification(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationComparator;->isSystemMax(Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/NotificationChannelLoggerImpl;->logNotificationChannel(Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;Landroid/app/NotificationChannel;ILjava/lang/String;II)V
 PLcom/android/server/notification/NotificationHistoryJobService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationHistoryJobService;Landroid/app/job/JobParameters;)V
 PLcom/android/server/notification/NotificationHistoryJobService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/notification/NotificationHistoryJobService;->$r8$lambda$PfUuCVFQEsG_hup-ySw0DwJnttY(Lcom/android/server/notification/NotificationHistoryJobService;Landroid/app/job/JobParameters;)V
 PLcom/android/server/notification/NotificationHistoryJobService;-><clinit>()V
 PLcom/android/server/notification/NotificationHistoryJobService;-><init>()V
 PLcom/android/server/notification/NotificationHistoryJobService;->attachBaseContext(Landroid/content/Context;)V
-PLcom/android/server/notification/NotificationHistoryJobService;->lambda$onStartJob$0(Landroid/app/job/JobParameters;)V
 PLcom/android/server/notification/NotificationHistoryJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/notification/NotificationHistoryJobService;->scheduleJob(Landroid/content/Context;)V
 PLcom/android/server/notification/NotificationHistoryManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationHistoryManager;Landroid/app/NotificationHistory$HistoricalNotification;)V
 PLcom/android/server/notification/NotificationHistoryManager$$ExternalSyntheticLambda0;->runOrThrow()V
-PLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationHistoryManager;Landroid/os/Handler;)V
-PLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->observe()V
+PLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationHistoryManager;Lcom/android/server/notification/NotificationManagerService$WorkerHandler;)V
 PLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->update(Landroid/net/Uri;I)V
-PLcom/android/server/notification/NotificationHistoryManager;->$r8$lambda$h_Z1DxUiaHb-t4mnDIKe8ap8bgM(Lcom/android/server/notification/NotificationHistoryManager;Landroid/app/NotificationHistory$HistoricalNotification;)V
-PLcom/android/server/notification/NotificationHistoryManager;->-$$Nest$fgetmContext(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/content/Context;
-PLcom/android/server/notification/NotificationHistoryManager;->-$$Nest$fgetmLock(Lcom/android/server/notification/NotificationHistoryManager;)Ljava/lang/Object;
-PLcom/android/server/notification/NotificationHistoryManager;->-$$Nest$fgetmUserManager(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/os/UserManager;
 PLcom/android/server/notification/NotificationHistoryManager;-><clinit>()V
-PLcom/android/server/notification/NotificationHistoryManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/notification/NotificationHistoryManager;->addNotification(Landroid/app/NotificationHistory$HistoricalNotification;)V
-PLcom/android/server/notification/NotificationHistoryManager;->cleanupHistoryFiles()V
+PLcom/android/server/notification/NotificationHistoryManager;-><init>(Landroid/content/Context;Lcom/android/server/notification/NotificationManagerService$WorkerHandler;)V
 PLcom/android/server/notification/NotificationHistoryManager;->getUserHistoryAndInitializeIfNeededLocked(I)Lcom/android/server/notification/NotificationHistoryDatabase;
-PLcom/android/server/notification/NotificationHistoryManager;->lambda$addNotification$0(Landroid/app/NotificationHistory$HistoricalNotification;)V
-PLcom/android/server/notification/NotificationHistoryManager;->onBootPhaseAppsCanStart()V
-PLcom/android/server/notification/NotificationHistoryManager;->onHistoryEnabledChanged(IZ)V
 PLcom/android/server/notification/NotificationHistoryManager;->onUserUnlocked(I)V
-PLcom/android/server/notification/NotificationIntrusivenessExtractor$1;-><init>(Lcom/android/server/notification/NotificationIntrusivenessExtractor;Ljava/lang/String;J)V
 PLcom/android/server/notification/NotificationIntrusivenessExtractor$1;->applyChangesLocked(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationIntrusivenessExtractor$1;->work()V
 PLcom/android/server/notification/NotificationIntrusivenessExtractor;-><clinit>()V
 PLcom/android/server/notification/NotificationIntrusivenessExtractor;-><init>()V
 PLcom/android/server/notification/NotificationIntrusivenessExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/NotificationIntrusivenessExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/NotificationIntrusivenessExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/NotificationIntrusivenessExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/NotificationIntrusivenessExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda12;-><init>()V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/util/List;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda14;->run()V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/notification/NotificationManagerService;ZLandroid/app/Notification;ILjava/lang/String;I)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;I)V
+HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda10;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda11;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda11;->runOrThrow()V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda13;-><init>(I)V
+HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda16;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
+HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda16;->run()V+]Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;]Ljava/lang/Runnable;Lcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda16;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/SystemService$TargetUser;I)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda4;-><init>(Ljava/lang/Object;)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;I)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda6;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda6;->run()V
+HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/notification/NotificationManagerService;ZLandroid/app/Notification;ILjava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda8;->run()V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda9;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/notification/NotificationManagerService$10;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$11;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$12$$ExternalSyntheticLambda0;-><init>(I)V
-PLcom/android/server/notification/NotificationManagerService$12$$ExternalSyntheticLambda0;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/notification/NotificationManagerService$12$1;-><init>(Lcom/android/server/notification/NotificationManagerService$12;Ljava/lang/String;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;[Landroid/service/notification/Condition;)V
 PLcom/android/server/notification/NotificationManagerService$12$1;->run()V
-PLcom/android/server/notification/NotificationManagerService$12;->$r8$lambda$9e1Zv0Eb_mTwUeFMV5TGSei42ck(I)Ljava/lang/Boolean;
 PLcom/android/server/notification/NotificationManagerService$12;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService$12;->addToListIfNeeded(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/util/ArrayList;I)V
-HPLcom/android/server/notification/NotificationManagerService$12;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
-PLcom/android/server/notification/NotificationManagerService$12;->canManageGlobalZenPolicy(Ljava/lang/String;I)Z
+PLcom/android/server/notification/NotificationManagerService$12;->areNotificationsEnabled(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationManagerService$12;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
 HPLcom/android/server/notification/NotificationManagerService$12;->canNotifyAsPackage(Ljava/lang/String;Ljava/lang/String;I)Z
+PLcom/android/server/notification/NotificationManagerService$12;->cancelAllNotifications(Ljava/lang/String;I)V
 HPLcom/android/server/notification/NotificationManagerService$12;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/notification/NotificationManagerService$12;->checkPolicyAccess(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationManagerService$12;->cancelToast(Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/notification/NotificationManagerService$12;->computeZenOrigin(Z)I
-PLcom/android/server/notification/NotificationManagerService$12;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+HPLcom/android/server/notification/NotificationManagerService$12;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HPLcom/android/server/notification/NotificationManagerService$12;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HPLcom/android/server/notification/NotificationManagerService$12;->createNotificationChannelsImpl(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;I)V
 HPLcom/android/server/notification/NotificationManagerService$12;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$12;->enforceDeletingChannelHasNoFgService(Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$12;->enforceDeletingChannelHasNoUserInitiatedJob(Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$12;->enforcePolicyAccess(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/notification/NotificationManagerService$12;->enforceSystemOrSystemUI(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$12;->enforceUserOriginOnlyFromSystem(ZLjava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->enforceDeletingChannelHasNoFgService(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->enforceDeletingChannelHasNoUserInitiatedJob(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->enforcePolicyAccess(ILjava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->enforceSystemOrSystemUI(Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->enforceSystemOrSystemUIOrSamePackage(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->enforceUserOriginOnlyFromSystem(Ljava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService$12;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+PLcom/android/server/notification/NotificationManagerService$12;->enqueueTextToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;IZILandroid/app/ITransientNotificationCallback;)Z
+PLcom/android/server/notification/NotificationManagerService$12;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;IZILandroid/app/ITransientNotificationCallback;)Z
+PLcom/android/server/notification/NotificationManagerService$12;->finishToken(Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/notification/NotificationManagerService$12;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/notification/NotificationManagerService$12;->getActiveNotificationsWithAttribution(Ljava/lang/String;Ljava/lang/String;)[Landroid/service/notification/StatusBarNotification;
 HPLcom/android/server/notification/NotificationManagerService$12;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/notification/NotificationManagerService$12;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Landroid/app/NotificationChannel;
+PLcom/android/server/notification/NotificationManagerService$12;->getAutomaticZenRules()Ljava/util/Map;
+PLcom/android/server/notification/NotificationManagerService$12;->getBackupPayload(I)[B
+PLcom/android/server/notification/NotificationManagerService$12;->getBubblePreferenceForPackage(Ljava/lang/String;I)I
+PLcom/android/server/notification/NotificationManagerService$12;->getCallingZenUser()Landroid/os/UserHandle;
+PLcom/android/server/notification/NotificationManagerService$12;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HPLcom/android/server/notification/NotificationManagerService$12;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Landroid/app/NotificationChannel;
 PLcom/android/server/notification/NotificationManagerService$12;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
 PLcom/android/server/notification/NotificationManagerService$12;->getInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;)I
 PLcom/android/server/notification/NotificationManagerService$12;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+PLcom/android/server/notification/NotificationManagerService$12;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+PLcom/android/server/notification/NotificationManagerService$12;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/notification/NotificationManagerService$12;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/notification/NotificationManagerService$12;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
-HPLcom/android/server/notification/NotificationManagerService$12;->getZenMode()I
-PLcom/android/server/notification/NotificationManagerService$12;->lambda$canManageGlobalZenPolicy$3(I)Ljava/lang/Boolean;
+PLcom/android/server/notification/NotificationManagerService$12;->getNotificationDelegate(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/notification/NotificationManagerService$12;->getZenMode()I
+PLcom/android/server/notification/NotificationManagerService$12;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+PLcom/android/server/notification/NotificationManagerService$12;->isImportanceLocked(Ljava/lang/String;I)Z
+PLcom/android/server/notification/NotificationManagerService$12;->isPackagePaused(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationManagerService$12;->matchesCallFilter(Landroid/os/Bundle;)Z
 PLcom/android/server/notification/NotificationManagerService$12;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
 PLcom/android/server/notification/NotificationManagerService$12;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
 PLcom/android/server/notification/NotificationManagerService$12;->requestHintsFromListener(Landroid/service/notification/INotificationListener;I)V
-HPLcom/android/server/notification/NotificationManagerService$12;->sanitizeSbn(Ljava/lang/String;ILandroid/service/notification/StatusBarNotification;)Landroid/service/notification/StatusBarNotification;
-HPLcom/android/server/notification/NotificationManagerService$12;->setNotificationPolicy(Ljava/lang/String;Landroid/app/NotificationManager$Policy;Z)V
-HPLcom/android/server/notification/NotificationManagerService$12;->setNotificationsEnabledForPackage(Ljava/lang/String;IZ)V
+PLcom/android/server/notification/NotificationManagerService$12;->sanitizeSbn(Ljava/lang/String;ILandroid/service/notification/StatusBarNotification;)Landroid/service/notification/StatusBarNotification;
+PLcom/android/server/notification/NotificationManagerService$12;->setAutomaticZenRuleState(Ljava/lang/String;Landroid/service/notification/Condition;)V
+PLcom/android/server/notification/NotificationManagerService$12;->setNotificationDelegate(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$12;->setNotificationsEnabledForPackage(Ljava/lang/String;IZ)V
+PLcom/android/server/notification/NotificationManagerService$13$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationManagerService$13;Ljava/lang/String;III)V
+PLcom/android/server/notification/NotificationManagerService$13$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/notification/NotificationManagerService$13;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService$13;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
+PLcom/android/server/notification/NotificationManagerService$13;->cancelNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$13;->cleanupHistoryFiles()V
 PLcom/android/server/notification/NotificationManagerService$13;->enqueueNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZ)V
 PLcom/android/server/notification/NotificationManagerService$13;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;)Landroid/app/NotificationChannel;
-PLcom/android/server/notification/NotificationManagerService$14;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$17$$ExternalSyntheticLambda0;-><init>(II)V
-PLcom/android/server/notification/NotificationManagerService$17$$ExternalSyntheticLambda0;->apply(I)Z
-PLcom/android/server/notification/NotificationManagerService$17;->$r8$lambda$7xcXDOw4oRqp0sGOkb6DeyNjqYA(III)Z
-HPLcom/android/server/notification/NotificationManagerService$17;-><init>(Lcom/android/server/notification/NotificationManagerService;IILjava/lang/String;IIIILjava/lang/String;J)V
-PLcom/android/server/notification/NotificationManagerService$17;->lambda$run$0(III)Z
-HPLcom/android/server/notification/NotificationManagerService$17;->run()V
+PLcom/android/server/notification/NotificationManagerService$13;->getNumNotificationChannelsForPackage(Ljava/lang/String;IZ)I
+PLcom/android/server/notification/NotificationManagerService$13;->onConversationRemoved(Ljava/lang/String;ILjava/util/Set;)V
+PLcom/android/server/notification/NotificationManagerService$13;->removeBitmaps()V
+PLcom/android/server/notification/NotificationManagerService$13;->removeFlagFromNotificationLocked(IIILjava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$13;->removeForegroundServiceFlagFromNotification(Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationManagerService$13;->setDeviceEffectsApplier(Landroid/service/notification/DeviceEffectsApplier;)V
+PLcom/android/server/notification/NotificationManagerService$16$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/notification/NotificationManagerService$16$$ExternalSyntheticLambda0;->apply(I)Z
+HPLcom/android/server/notification/NotificationManagerService$16;-><init>(Lcom/android/server/notification/NotificationManagerService;IILjava/lang/String;IIILjava/lang/String;J)V
+HPLcom/android/server/notification/NotificationManagerService$16;->run()V
 PLcom/android/server/notification/NotificationManagerService$1;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$2;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$3;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$4;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$5;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/notification/NotificationManagerService$6;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$6;->isProfileUnavailable(Ljava/lang/String;)Z
-PLcom/android/server/notification/NotificationManagerService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/notification/NotificationManagerService$7;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$7;->onConfigChanged()V
+PLcom/android/server/notification/NotificationManagerService$1;->addAutoGroup(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$1;->addAutoGroupSummary(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/android/server/notification/GroupHelper$NotificationAttributes;)V
+PLcom/android/server/notification/NotificationManagerService$1;->isActivityStartAllowed(ILjava/lang/String;Ljava/util/Collection;)Z
+PLcom/android/server/notification/NotificationManagerService$1;->onNotificationClear(IILjava/lang/String;ILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
+PLcom/android/server/notification/NotificationManagerService$1;->removeAutoGroupSummary(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$1;->updateAutogroupSummary(ILjava/lang/String;Ljava/lang/String;Lcom/android/server/notification/GroupHelper$NotificationAttributes;)V
+PLcom/android/server/notification/NotificationManagerService$3;-><init>(Lcom/android/server/notification/NotificationManagerService;I)V
+HPLcom/android/server/notification/NotificationManagerService$3;->onReceive$com$android$server$notification$NotificationManagerService$6(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/notification/NotificationManagerService$3;->onReceive$com$android$server$notification$NotificationManagerService$7(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/notification/NotificationManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/notification/NotificationManagerService$8$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationManagerService$8;Landroid/app/NotificationManager$Policy;I)V
+PLcom/android/server/notification/NotificationManagerService$8$$ExternalSyntheticLambda0;->runOrThrow()V
+PLcom/android/server/notification/NotificationManagerService$8$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/notification/NotificationManagerService$8$$ExternalSyntheticLambda3;->runOrThrow()V
 PLcom/android/server/notification/NotificationManagerService$8;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService$8;->onConfigChanged()V
+PLcom/android/server/notification/NotificationManagerService$8;->onConsolidatedPolicyChanged(Landroid/app/NotificationManager$Policy;)V
+PLcom/android/server/notification/NotificationManagerService$8;->onPolicyChanged(Landroid/app/NotificationManager$Policy;)V
+PLcom/android/server/notification/NotificationManagerService$9$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;Ljava/lang/Object;II)V
+PLcom/android/server/notification/NotificationManagerService$9$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/notification/NotificationManagerService$9;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService$9;->onOpChanged(Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService$Archive;-><init>(I)V
-PLcom/android/server/notification/NotificationManagerService$Archive;->updateHistoryEnabled(IZ)V
+PLcom/android/server/notification/NotificationManagerService$Archive;->dumpImpl(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService$Archive;->toString()Ljava/lang/String;
 HPLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;IILjava/lang/String;Ljava/lang/String;IIIZIIIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;J)V
 HPLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;->run()V
-PLcom/android/server/notification/NotificationManagerService$EnqueueNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;ILcom/android/server/notification/NotificationRecord;ZLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
+PLcom/android/server/notification/NotificationManagerService$DumpFilter;->matches(Landroid/content/ComponentName;)Z
+PLcom/android/server/notification/NotificationManagerService$DumpFilter;->matches(Ljava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService$EnqueueNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;ILcom/android/server/notification/NotificationRecord;ZZLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
 HPLcom/android/server/notification/NotificationManagerService$EnqueueNotificationRunnable;->enqueueNotification()Z
 PLcom/android/server/notification/NotificationManagerService$EnqueueNotificationRunnable;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->-$$Nest$monNotificationEnqueuedLocked(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->addApprovedList(Ljava/lang/String;IZLjava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->ensureFilters(Landroid/content/pm/ServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->getRequiredPermission()Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->hasUserSet(I)Z
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->isEnabled()Z
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->isVerboseLogEnabled()Z
-HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onNotificationEnqueuedLocked(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onServiceAdded(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onServiceRemovedLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onUserUnlocked(I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->readExtraTag(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->resetDefaultAssistantsIfNecessary()V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->setPackageOrComponentEnabled(Ljava/lang/String;IZZZ)V
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda2;-><init>(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$$ExternalSyntheticLambda2;->run()V
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda8;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda9;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->$r8$lambda$0iWeY82Ox6K-WVRWLCpMEXmz-hA(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->$r8$lambda$6V9RGqXihQs6v7F21expZx6F_zc(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;->$r8$lambda$OSrMhYvlV-R3E77qIoH5pzE972U(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->$r8$lambda$VmcY63y9deVrzSb6PhmE8Uor26s(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->writeExtraXmlTags(Lcom/android/modules/utils/TypedXmlSerializer;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda5;-><init>(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$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda5;->run()V+]Landroid/service/notification/INotificationListener;Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda6;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;II)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda7;->run()V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;Z)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->checkType(Landroid/os/IInterface;)Z
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->ensureFilters(Landroid/content/pm/ServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->ensureFilters(Landroid/content/pm/ServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getBindFlags()I
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getNotificationListenerFilter(Landroid/util/Pair;)Landroid/service/notification/NotificationListenerFilter;
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getOnNotificationPostedTrim(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)I
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getRequiredPermission()Ljava/lang/String;
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getTypesFromStringList(Ljava/lang/String;)I
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->hasSensitiveContent(Lcom/android/server/notification/NotificationRecord;)Z
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->isAppTrustedNotificationListenerService(ILjava/lang/String;)Z
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->isListenerPackage(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->hasAllowedListener(ILjava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->hasSensitiveContent(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->isAppTrustedNotificationListenerService(ILjava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->isListenerPackage(Ljava/lang/String;)Z+]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->isUidTrusted(I)Z
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->lambda$notifyListenerHintsChangedLocked$7(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->lambda$notifyNotificationChannelGroupChanged$10(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->lambda$notifyRankingUpdateLocked$6(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->lambda$prepareNotifyPostedLocked$3(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyListenerHintsChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyListenerHintsChangedLocked(I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
-PLcom/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
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPosted(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRankingUpdate(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelGroupChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V+]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPosted(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V+]Landroid/service/notification/INotificationListener;Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRankingUpdateLocked(Ljava/util/List;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRemoved(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;->notifyRemovedLocked(Lcom/android/server/notification/NotificationRecord;ILandroid/service/notification/NotificationStats;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->onPackagesChanged(Z[Ljava/lang/String;[I)V
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->onServiceAdded(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->onServiceAdded(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->onServiceRemovedLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->prepareNotifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Z)Ljava/util/List;
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->readExtraTag(Ljava/lang/String;Lcom/android/modules/utils/TypedXmlPullParser;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->shouldReflectToSettings()Z
-HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->updateUriPermissionsForActiveNotificationsLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Z)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->prepareNotifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Z)Ljava/util/List;+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->readExtraTag(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->updateUriPermissionsForActiveNotificationsLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Z)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->writeExtraXmlTags(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback-IA;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;Landroid/service/notification/StatusBarNotification;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;->$r8$lambda$PZAL6WwFJkUEKBKj8Ma3rhxMHGQ(Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;Landroid/service/notification/StatusBarNotification;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;Ljava/lang/String;ILcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;->lambda$postNotification$0(Landroid/service/notification/StatusBarNotification;)V
+HPLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;Ljava/lang/String;ILcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
 HPLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;->postNotification()Z
 PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;->run()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker$$ExternalSyntheticLambda0;->runOrThrow()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker$$ExternalSyntheticLambda1;->runOrThrow()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->$r8$lambda$Sj35ThxKAaMQVMJuJW7BiRrLEAE(Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->$r8$lambda$utPF6Nzeh5_1soUTRhYEbXDXUko(Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;)V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;-><init>(Landroid/os/PowerManager$WakeLock;)V
+HPLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;-><init>(Landroid/os/PowerManager$WakeLock;)V
 PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->cancel()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->finish()J
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->getStartTime()J
 PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->isOngoing()Z
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->lambda$cancel$0()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;->lambda$finish$1()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationTrackerFactory;->newTracker(Landroid/os/PowerManager$WakeLock;)Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;
 PLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Looper;)V
-PLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->requestReconsideration(Lcom/android/server/notification/RankingReconsideration;)V
+HPLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->handleMessage(Landroid/os/Message;)V+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/app/NotificationManager$Policy;Landroid/app/NotificationManager$Policy;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/RankingReconsideration;Lcom/android/server/notification/NotificationIntrusivenessExtractor$1;,Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->requestSort()V
 PLcom/android/server/notification/NotificationManagerService$RoleObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/Context;Landroid/app/role/RoleManager;Landroid/content/pm/IPackageManager;Landroid/os/Looper;)V
-PLcom/android/server/notification/NotificationManagerService$RoleObserver;->getUidForPackage(Ljava/lang/String;I)I
-HPLcom/android/server/notification/NotificationManagerService$RoleObserver;->init()V
+PLcom/android/server/notification/NotificationManagerService$RoleObserver;->getUidForPackage(ILjava/lang/String;)I
+PLcom/android/server/notification/NotificationManagerService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/notification/NotificationManagerService$RoleObserver;->updateTrampolineExemptUidsForUsers([Landroid/os/UserHandle;)V
 PLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable-IA;)V
 HPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;->run()V
 PLcom/android/server/notification/NotificationManagerService$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Handler;)V
-PLcom/android/server/notification/NotificationManagerService$SettingsObserver;->observe()V
-HPLcom/android/server/notification/NotificationManagerService$SettingsObserver;->update(Landroid/net/Uri;)V
+PLcom/android/server/notification/NotificationManagerService$SettingsObserver;->update(Landroid/net/Uri;)V
 PLcom/android/server/notification/NotificationManagerService$SettingsObserver;->update(Landroid/net/Uri;I)V
 PLcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl-IA;)V
-PLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;-><init>(Landroid/service/notification/StatusBarNotification;)V
-PLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;->get()Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationManagerService$StrongAuthTracker;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/Context;)V
-PLcom/android/server/notification/NotificationManagerService$StrongAuthTracker;->containsFlag(II)Z
-PLcom/android/server/notification/NotificationManagerService$StrongAuthTracker;->isInLockDownMode(I)Z
 PLcom/android/server/notification/NotificationManagerService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
-PLcom/android/server/notification/NotificationManagerService$TrimCache;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)V
-HPLcom/android/server/notification/NotificationManagerService$TrimCache;->ForListener(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationManagerService$WorkerHandler;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Looper;)V
-PLcom/android/server/notification/NotificationManagerService$WorkerHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/notification/NotificationManagerService$WorkerHandler;->scheduleCancelNotification(Lcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;)V
-PLcom/android/server/notification/NotificationManagerService$WorkerHandler;->scheduleOnPackageChanged(ZI[Ljava/lang/String;[I)V
-PLcom/android/server/notification/NotificationManagerService$WorkerHandler;->scheduleSendRankingUpdate()V
-PLcom/android/server/notification/NotificationManagerService;->$r8$lambda$KSVXNwYpWbJWXlirKt8w96U7ekE(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;I)Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;
-PLcom/android/server/notification/NotificationManagerService;->$r8$lambda$PUVk3ua6QO93dcxSaJqKaWqdiZ8(Lcom/android/server/notification/NotificationManagerService;ZLandroid/app/Notification;ILjava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService;->$r8$lambda$bR17TwoBJJHHkkEdLkhQoDbOUCY(Lcom/android/server/notification/NotificationManagerService;Ljava/util/List;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
-PLcom/android/server/notification/NotificationManagerService;->$r8$lambda$o10mSbBYEzv2ExOhfnJTDZ0y_3k(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmAmi(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManagerInternal;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmArchive(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$Archive;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmAtm(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/wm/ActivityTaskManagerInternal;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmConditionProviders(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ConditionProviders;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmGroupHelper(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmHistoryManager(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationHistoryManager;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmInterruptionFilter(Lcom/android/server/notification/NotificationManagerService;)I
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmListenerHints(Lcom/android/server/notification/NotificationManagerService;)I
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmListeners(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmMaxPackageEnqueueRate(Lcom/android/server/notification/NotificationManagerService;)F
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmNotificationInstanceIdSequence(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/InstanceIdSequence;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmNotificationRecordLogger(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmPackageManagerClient(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmPermissionHelper(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/PermissionHelper;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmPolicyFile(Lcom/android/server/notification/NotificationManagerService;)Landroid/util/AtomicFile;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmSettingsObserver(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmShortcutHelper(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ShortcutHelper;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmUm(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmUsageStats(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmUsageStatsManagerInternal(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/usage/UsageStatsManagerInternal;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fgetmUserProfiles(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ManagedServices$UserProfiles;
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$fputmMaxPackageEnqueueRate(Lcom/android/server/notification/NotificationManagerService;F)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$maddDisabledHints(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mapplyAdjustment(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
-HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mareNotificationsEnabledForPackageInt(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;I)Z
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mcancelAllNotificationsByListLocked(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;ZJ)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mcheckCallerIsSameApp(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mcheckCallerIsSystem(Lcom/android/server/notification/NotificationManagerService;)V
-HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mcheckCallerIsSystemOrSameApp(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleGroupedNotificationLocked(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleListenerHintsChanged(Lcom/android/server/notification/NotificationManagerService;I)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleRankingReconsideration(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
+HPLcom/android/server/notification/NotificationManagerService$WorkerHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/notification/NotificationManagerService$WorkerHandler;->scheduleCancelNotification(Lcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;I)V
+HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mcancelAllNotificationsByListLocked(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;ZJ)V+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/NotificationManagerService$FlagChecker;Lcom/android/server/notification/NotificationManagerService$16$$ExternalSyntheticLambda0;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mcheckCallerIsSystemOrSameApp(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleDurationReached(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleGroupedNotificationLocked(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleKillTokenTimeout(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleListenerHintsChanged(Lcom/android/server/notification/NotificationManagerService;I)V
 PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhandleSendRankingUpdate(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhasAutoGroupSummaryLocked(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$misCallNotification(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;I)Z
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$misCritical(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mnotifyListenersPostedAndLogLocked(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mremoveDisabledHints(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mupdateEffectsSuppressorLocked(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mupdateListenerHintsLocked(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mupdateNotificationBubbleFlags(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Z)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mwritePolicyXml(Lcom/android/server/notification/NotificationManagerService;Ljava/io/OutputStream;ZI)V
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$sfgetMY_PID()I
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$sfgetMY_UID()I
-PLcom/android/server/notification/NotificationManagerService;->-$$Nest$smfindNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mhasAutoGroupSummaryLocked(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$misCallerSystemOrSystemUiOrShell(Lcom/android/server/notification/NotificationManagerService;)Z
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mmaybeNotifySystemUiListenerLifetimeExtendedListLocked(Lcom/android/server/notification/NotificationManagerService;Ljava/util/List;I)V
+HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mnotifyListenersPostedAndLogLocked(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mremoveBitmapAndRepost(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->-$$Nest$mremoveFromNotificationListsLocked(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mupdateEffectsSuppressorLocked(Lcom/android/server/notification/NotificationManagerService;)V
+HPLcom/android/server/notification/NotificationManagerService;->-$$Nest$mupdateListenerHintsLocked(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;-><clinit>()V
 PLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/notification/NotificationRecordLogger;Lcom/android/internal/logging/InstanceIdSequence;)V
-PLcom/android/server/notification/NotificationManagerService;->acquireWakeLockForPost(Ljava/lang/String;I)Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;
+PLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/notification/NotificationRecordLogger;Lcom/android/internal/logging/InstanceIdSequence;)V
+PLcom/android/server/notification/NotificationManagerService;->addAutoGroupAdjustment(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->addAutogroupKeyLocked(Ljava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/notification/NotificationManagerService;->addDisabledHint(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService;->addDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService;->allowAssistant(ILandroid/content/ComponentName;)Z
-PLcom/android/server/notification/NotificationManagerService;->applyAdjustment(Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
-PLcom/android/server/notification/NotificationManagerService;->applyZenModeLocked(Lcom/android/server/notification/NotificationRecord;)V
-HPLcom/android/server/notification/NotificationManagerService;->areNotificationsEnabledForPackageInt(Ljava/lang/String;I)Z
 PLcom/android/server/notification/NotificationManagerService;->calculateHints()I
-PLcom/android/server/notification/NotificationManagerService;->calculateSuppressedEffects()J
-PLcom/android/server/notification/NotificationManagerService;->calculateSuppressedVisualEffects(Landroid/app/NotificationManager$Policy;Landroid/app/NotificationManager$Policy;I)I
 PLcom/android/server/notification/NotificationManagerService;->canUseManagedServices(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)Z
-HPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsByListLocked(Ljava/util/ArrayList;Ljava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;ZJ)V
-HPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsInt(IILjava/lang/String;Ljava/lang/String;IIII)V
+HPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsInt(IIILjava/lang/String;Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationManagerService;->cancelGroupChildrenByListLocked(Ljava/util/ArrayList;ILjava/lang/String;IILjava/lang/String;ZZLcom/android/server/notification/NotificationManagerService$FlagChecker;Lcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda13;Ljava/lang/String;IJ)V
+PLcom/android/server/notification/NotificationManagerService;->cancelGroupChildrenLocked(ILjava/lang/String;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;Lcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda13;Ljava/lang/String;IJ)V
 HPLcom/android/server/notification/NotificationManagerService;->cancelNotification(IILjava/lang/String;Ljava/lang/String;IIIZIIIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
-PLcom/android/server/notification/NotificationManagerService;->cancelNotification(IILjava/lang/String;Ljava/lang/String;IIIZIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
+PLcom/android/server/notification/NotificationManagerService;->cancelNotification(IILjava/lang/String;Ljava/lang/String;IIZIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
 HPLcom/android/server/notification/NotificationManagerService;->cancelNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;III)V
+HPLcom/android/server/notification/NotificationManagerService;->cancelNotificationLocked(Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;J)V
+PLcom/android/server/notification/NotificationManagerService;->cancelToastLocked(I)V
+HPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(IILjava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;)V
-HPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystem()V
-HPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->checkComponentPermission(Ljava/lang/String;IIZ)I
 HPLcom/android/server/notification/NotificationManagerService;->checkDisqualifyingFeatures(IIILjava/lang/String;Lcom/android/server/notification/NotificationRecord;ZZ)Z
-PLcom/android/server/notification/NotificationManagerService;->checkRemoteViews(Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;)V
-PLcom/android/server/notification/NotificationManagerService;->checkRestrictedCategories(Landroid/app/Notification;)V
-PLcom/android/server/notification/NotificationManagerService;->clamp(III)I
-PLcom/android/server/notification/NotificationManagerService;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
-PLcom/android/server/notification/NotificationManagerService;->createToastRateLimiter()Lcom/android/server/utils/quota/MultiRateLimiter;
-PLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZ)V
-HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Z)Z
-PLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZZ)V
-PLcom/android/server/notification/NotificationManagerService;->findNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
-HPLcom/android/server/notification/NotificationManagerService;->findNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
-HPLcom/android/server/notification/NotificationManagerService;->findNotificationLocked(Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
-PLcom/android/server/notification/NotificationManagerService;->findNotificationRecordIndexLocked(Lcom/android/server/notification/NotificationRecord;)I
+PLcom/android/server/notification/NotificationManagerService;->clearAutogroupSummaryLocked(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->convertSummaryToNotificationLocked(Ljava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
+PLcom/android/server/notification/NotificationManagerService;->destroyPermissionOwner(ILandroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->dumpImpl(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;)V
+PLcom/android/server/notification/NotificationManagerService;->dumpNotificationRecords(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZLcom/android/server/notification/NotificationManagerService$PostNotificationTracker;ZZ)Z+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/Notification;Landroid/app/Notification;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;]Lcom/android/server/job/JobSchedulerInternal;Lcom/android/server/job/JobSchedulerService$LocalService;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Set;Ljava/util/ImmutableCollections$SetN;
+HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZZZ)V
+PLcom/android/server/notification/NotificationManagerService;->findNotificationByKeyLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
+HPLcom/android/server/notification/NotificationManagerService;->findNotificationByListLocked(Ljava/lang/String;Ljava/util/ArrayList;)Lcom/android/server/notification/NotificationRecord;
+HPLcom/android/server/notification/NotificationManagerService;->findNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/notification/NotificationManagerService;->findNotificationLocked(IILjava/lang/String;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HPLcom/android/server/notification/NotificationManagerService;->fixNotification(Landroid/app/Notification;Ljava/lang/String;Ljava/lang/String;IIILandroid/app/ActivityManagerInternal$ServiceNotificationPolicy;Z)V
-PLcom/android/server/notification/NotificationManagerService;->getCompanionManager()Landroid/companion/ICompanionDeviceManager;
-PLcom/android/server/notification/NotificationManagerService;->getGroupHelper()Lcom/android/server/notification/GroupHelper;
-PLcom/android/server/notification/NotificationManagerService;->getGroupInstanceId(Ljava/lang/String;)Lcom/android/internal/logging/InstanceId;
+PLcom/android/server/notification/NotificationManagerService;->getAllUsersNotificationPermissions()Landroid/util/ArrayMap;
 PLcom/android/server/notification/NotificationManagerService;->getHistoryText(Landroid/app/Notification;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService;->getHistoryTitle(Landroid/app/Notification;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService;->getNotificationChannelRestoreDeleted(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
-PLcom/android/server/notification/NotificationManagerService;->getRealUserId(I)I
-PLcom/android/server/notification/NotificationManagerService;->getStringArrayResource(I)[Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService;->getSuppressors()Ljava/util/ArrayList;
-HPLcom/android/server/notification/NotificationManagerService;->grantUriPermission(Landroid/os/IBinder;Landroid/net/Uri;ILjava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService;->handleGroupedNotificationLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
-PLcom/android/server/notification/NotificationManagerService;->handleListenerHintsChanged(I)V
-PLcom/android/server/notification/NotificationManagerService;->handleOnPackageChanged(ZI[Ljava/lang/String;[I)V
-PLcom/android/server/notification/NotificationManagerService;->handleRankingReconsideration(Landroid/os/Message;)V
-PLcom/android/server/notification/NotificationManagerService;->handleRankingSort()V
+HPLcom/android/server/notification/NotificationManagerService;->getNotificationCount(IILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/server/notification/NotificationManagerService;->getPackageImportanceWithIdentity(Ljava/lang/String;)I
+PLcom/android/server/notification/NotificationManagerService;->grantUriPermission(Landroid/os/IBinder;Landroid/net/Uri;ILjava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService;->handleSavePolicyFile()V
-PLcom/android/server/notification/NotificationManagerService;->handleSendRankingUpdate()V
-PLcom/android/server/notification/NotificationManagerService;->hasAutoGroupSummaryLocked(Landroid/service/notification/StatusBarNotification;)Z
-PLcom/android/server/notification/NotificationManagerService;->hasCompanionDevice(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
-HPLcom/android/server/notification/NotificationManagerService;->hasCompanionDevice(Ljava/lang/String;ILjava/util/Set;)Z
-PLcom/android/server/notification/NotificationManagerService;->indexOfNotificationLocked(Ljava/lang/String;)I
-HPLcom/android/server/notification/NotificationManagerService;->init(Lcom/android/server/notification/NotificationManagerService$WorkerHandler;Lcom/android/server/notification/RankingHandler;Landroid/content/pm/IPackageManager;Landroid/content/pm/PackageManager;Lcom/android/server/lights/LightsManager;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/ConditionProviders;Landroid/companion/ICompanionDeviceManager;Lcom/android/server/notification/SnoozeHelper;Lcom/android/server/notification/NotificationUsageStats;Landroid/util/AtomicFile;Landroid/app/ActivityManager;Lcom/android/server/notification/GroupHelper;Landroid/app/IActivityManager;Lcom/android/server/wm/ActivityTaskManagerInternal;Landroid/app/usage/UsageStatsManagerInternal;Landroid/app/admin/DevicePolicyManagerInternal;Landroid/app/IUriGrantsManager;Lcom/android/server/uri/UriGrantsManagerInternal;Landroid/app/AppOpsManager;Landroid/os/UserManager;Lcom/android/server/notification/NotificationHistoryManager;Landroid/app/StatsManager;Landroid/telephony/TelephonyManager;Landroid/app/ActivityManagerInternal;Lcom/android/server/utils/quota/MultiRateLimiter;Lcom/android/server/notification/PermissionHelper;Landroid/app/usage/UsageStatsManagerInternal;Landroid/telecom/TelecomManager;Lcom/android/server/notification/NotificationChannelLogger;Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;Landroid/permission/PermissionManager;Landroid/os/PowerManager;Lcom/android/server/notification/NotificationManagerService$PostNotificationTrackerFactory;)V
-PLcom/android/server/notification/NotificationManagerService;->isCallNotification(Ljava/lang/String;I)Z
+HPLcom/android/server/notification/NotificationManagerService;->hasCompanionDevice(ILjava/lang/String;Ljava/util/Set;)Z+]Landroid/companion/ICompanionDeviceManager;Lcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/Collections$EmptyIterator;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+PLcom/android/server/notification/NotificationManagerService;->indexOfToastLocked(Landroid/os/IBinder;Ljava/lang/String;)I
+PLcom/android/server/notification/NotificationManagerService;->init(Lcom/android/server/notification/NotificationManagerService$WorkerHandler;Lcom/android/server/notification/RankingHandler;Landroid/content/pm/IPackageManager;Landroid/content/pm/PackageManager;Lcom/android/server/lights/LightsManager;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/ConditionProviders;Landroid/companion/ICompanionDeviceManager;Lcom/android/server/notification/SnoozeHelper;Lcom/android/server/notification/NotificationUsageStats;Landroid/util/AtomicFile;Landroid/app/ActivityManager;Lcom/android/server/notification/GroupHelper;Landroid/app/IActivityManager;Lcom/android/server/wm/ActivityTaskManagerInternal;Landroid/app/usage/UsageStatsManagerInternal;Landroid/app/admin/DevicePolicyManagerInternal;Landroid/app/IUriGrantsManager;Lcom/android/server/uri/UriGrantsManagerInternal;Landroid/app/AppOpsManager;Landroid/os/UserManager;Lcom/android/server/notification/NotificationHistoryManager;Landroid/app/StatsManager;Landroid/app/ActivityManagerInternal;Lcom/android/server/utils/quota/MultiRateLimiter;Lcom/android/server/notification/PermissionHelper;Landroid/app/usage/UsageStatsManagerInternal;Landroid/telecom/TelecomManager;Lcom/android/server/notification/NotificationChannelLogger;Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;Landroid/permission/PermissionManager;Landroid/os/PowerManager;Lcom/android/server/notification/NotificationManagerService$PostNotificationTrackerFactory;)V
+HPLcom/android/server/notification/NotificationManagerService;->isCallNotification(Ljava/lang/String;)Z
 PLcom/android/server/notification/NotificationManagerService;->isCallerInstantApp(II)Z
-PLcom/android/server/notification/NotificationManagerService;->isCallerSameApp(Ljava/lang/String;II)Z
-HPLcom/android/server/notification/NotificationManagerService;->isCallerSystemOrPhone()Z
+PLcom/android/server/notification/NotificationManagerService;->isCallerSystemOrPhone()Z
 HPLcom/android/server/notification/NotificationManagerService;->isCallerSystemOrSystemUi()Z
-PLcom/android/server/notification/NotificationManagerService;->isCallingUidSystem()Z
-PLcom/android/server/notification/NotificationManagerService;->isCritical(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->isChildOfCurrentGroupChecker(Lcom/android/server/notification/NotificationRecord;ILjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/notification/NotificationManagerService;->isDNDMigrationDone(I)Z
-HPLcom/android/server/notification/NotificationManagerService;->isInLockDownMode(I)Z
 HPLcom/android/server/notification/NotificationManagerService;->isInteractionVisibleToListener(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->isNASMigrationDone(I)Z
-PLcom/android/server/notification/NotificationManagerService;->isNotificationShownInternal(Ljava/lang/String;Ljava/lang/String;II)Z
-PLcom/android/server/notification/NotificationManagerService;->isPackagePausedOrSuspended(Ljava/lang/String;I)Z
-PLcom/android/server/notification/NotificationManagerService;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
-PLcom/android/server/notification/NotificationManagerService;->isRecordBlockedLocked(Lcom/android/server/notification/NotificationRecord;)Z
-HPLcom/android/server/notification/NotificationManagerService;->isServiceTokenValid(Landroid/os/IInterface;)Z
+HPLcom/android/server/notification/NotificationManagerService;->isPackagePausedOrSuspended(ILjava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService;->isRecordBlockedLocked(Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/NotificationManagerService;->isUidSystemOrPhone(I)Z
-HPLcom/android/server/notification/NotificationManagerService;->isVisibleToListener(Landroid/service/notification/StatusBarNotification;ILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
-PLcom/android/server/notification/NotificationManagerService;->isVisuallyInterruptive(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)Z
-HPLcom/android/server/notification/NotificationManagerService;->lambda$acquireWakeLockForPost$8(Ljava/lang/String;I)Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;
-HPLcom/android/server/notification/NotificationManagerService;->lambda$notifyListenersPostedAndLogLocked$13(Ljava/util/List;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
-PLcom/android/server/notification/NotificationManagerService;->lambda$onUserUnlocked$4(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/notification/NotificationManagerService;->lambda$reportForegroundServiceUpdate$7(ZLandroid/app/Notification;ILjava/lang/String;I)V
+HPLcom/android/server/notification/NotificationManagerService;->isVisibleToListener(Landroid/service/notification/StatusBarNotification;ILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z+]Landroid/service/notification/NotificationListenerFilter;Landroid/service/notification/NotificationListenerFilter;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;
+HPLcom/android/server/notification/NotificationManagerService;->isVisuallyInterruptive(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->keepProcessAliveForToastIfNeededLocked(I)V
 PLcom/android/server/notification/NotificationManagerService;->loadPolicyFile()V
-HPLcom/android/server/notification/NotificationManagerService;->makeRankingUpdateLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+HPLcom/android/server/notification/NotificationManagerService;->makeRankingUpdateLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/notification/NotificationManagerService;->maybeNotifySystemUiListenerLifetimeExtendedLocked(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;I)V
 HPLcom/android/server/notification/NotificationManagerService;->maybeRecordInterruptionLocked(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->maybeRegisterMessageSent(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->maybeReportForegroundServiceUpdate(Lcom/android/server/notification/NotificationRecord;Z)V
-PLcom/android/server/notification/NotificationManagerService;->maybeShowInitialReviewPermissionsNotification()V
-PLcom/android/server/notification/NotificationManagerService;->migrateDefaultNAS()V
-HPLcom/android/server/notification/NotificationManagerService;->notificationMatchesUserId(Lcom/android/server/notification/NotificationRecord;IZ)Z
-PLcom/android/server/notification/NotificationManagerService;->notifyListenersPostedAndLogLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationManagerService$PostNotificationTracker;Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
+HPLcom/android/server/notification/NotificationManagerService;->notificationMatchesUserId(ILcom/android/server/notification/NotificationRecord;Z)Z+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
+PLcom/android/server/notification/NotificationManagerService;->notifyCallNotificationEventListenerOnRemoved(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->onBootPhase(I)V
-HPLcom/android/server/notification/NotificationManagerService;->onBootPhase(ILandroid/os/Looper;)V
-HPLcom/android/server/notification/NotificationManagerService;->onStart()V
+PLcom/android/server/notification/NotificationManagerService;->onBootPhase(ILandroid/os/Looper;)V
+PLcom/android/server/notification/NotificationManagerService;->onStart()V
 PLcom/android/server/notification/NotificationManagerService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/notification/NotificationManagerService;->readPolicyXml(Ljava/io/InputStream;ZI)V
-PLcom/android/server/notification/NotificationManagerService;->registerDeviceConfigChange()V
-PLcom/android/server/notification/NotificationManagerService;->registerNotificationPreferencesPullers()V
-PLcom/android/server/notification/NotificationManagerService;->removeDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
+PLcom/android/server/notification/NotificationManagerService;->privateSpaceFlagsEnabled()Z
+PLcom/android/server/notification/NotificationManagerService;->readPolicyXml(Ljava/io/InputStream;ZILandroid/app/backup/BackupRestoreEventLogger;)V
 PLcom/android/server/notification/NotificationManagerService;->removeDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->removeRemoteView(Ljava/lang/String;Ljava/lang/String;ILandroid/widget/RemoteViews;)Z
-PLcom/android/server/notification/NotificationManagerService;->reportForegroundServiceUpdate(ZLandroid/app/Notification;ILjava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService;->resetDefaultDndIfNecessary()V
 HPLcom/android/server/notification/NotificationManagerService;->resolveNotificationUid(Ljava/lang/String;Ljava/lang/String;II)I
 PLcom/android/server/notification/NotificationManagerService;->revokeUriPermission(Landroid/os/IBinder;Landroid/net/Uri;ILjava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService;->scheduleListenerHintsChanged(I)V
-PLcom/android/server/notification/NotificationManagerService;->scheduleTimeoutLocked(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->sendRegisteredOnlyBroadcast(Landroid/content/Intent;)V
-PLcom/android/server/notification/NotificationManagerService;->sendRegisteredOnlyBroadcast(Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService;->sendRegisteredOnlyBroadcast(Landroid/content/Intent;)V
 PLcom/android/server/notification/NotificationManagerService;->setDefaultAssistantForUser(I)V
-PLcom/android/server/notification/NotificationManagerService;->setNotificationAssistantAccessGrantedForUserInternal(Landroid/content/ComponentName;IZZ)V
-PLcom/android/server/notification/NotificationManagerService;->updateEffectsSuppressorLocked()V
-PLcom/android/server/notification/NotificationManagerService;->updateListenerHintsLocked()V
-PLcom/android/server/notification/NotificationManagerService;->updateNotificationBubbleFlags(Lcom/android/server/notification/NotificationRecord;Z)V
+PLcom/android/server/notification/NotificationManagerService;->showNextToastLocked(Z)V
+PLcom/android/server/notification/NotificationManagerService;->updateAutobundledSummaryLocked(ILjava/lang/String;Ljava/lang/String;Lcom/android/server/notification/GroupHelper$NotificationAttributes;Z)V
 PLcom/android/server/notification/NotificationManagerService;->updateUriPermissions(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;I)V
-HPLcom/android/server/notification/NotificationManagerService;->updateUriPermissions(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;IZ)V
-HPLcom/android/server/notification/NotificationManagerService;->writePolicyXml(Ljava/io/OutputStream;ZI)V
-PLcom/android/server/notification/NotificationManagerService;->writeSecureNotificationsPolicy(Lcom/android/modules/utils/TypedXmlSerializer;)V
+HPLcom/android/server/notification/NotificationManagerService;->updateUriPermissions(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;IZ)V+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
+HPLcom/android/server/notification/NotificationManagerService;->writePolicyXml(Ljava/io/OutputStream;ZILandroid/app/backup/BackupRestoreEventLogger;)V+]Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;
 PLcom/android/server/notification/NotificationRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/notification/NotificationRecord;->$r8$lambda$m3xVdeXccEasPWsrg0D9LxsE8QE(Lcom/android/server/notification/NotificationRecord;Landroid/net/Uri;)V
+HPLcom/android/server/notification/NotificationRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/notification/NotificationRecord;-><clinit>()V
 HPLcom/android/server/notification/NotificationRecord;-><init>(Landroid/content/Context;Landroid/service/notification/StatusBarNotification;Landroid/app/NotificationChannel;)V
-PLcom/android/server/notification/NotificationRecord;->addAdjustment(Landroid/service/notification/Adjustment;)V
 HPLcom/android/server/notification/NotificationRecord;->applyAdjustments()V
-PLcom/android/server/notification/NotificationRecord;->calculateAttributes()Landroid/media/AudioAttributes;
-PLcom/android/server/notification/NotificationRecord;->calculateGrantableUris()V
 HPLcom/android/server/notification/NotificationRecord;->calculateImportance()V
-HPLcom/android/server/notification/NotificationRecord;->calculateInitialImportance()I
-PLcom/android/server/notification/NotificationRecord;->calculateLights()Lcom/android/server/notification/NotificationRecord$Light;
-PLcom/android/server/notification/NotificationRecord;->calculateRankingTimeMs(J)J
-PLcom/android/server/notification/NotificationRecord;->calculateSound()Landroid/net/Uri;
-PLcom/android/server/notification/NotificationRecord;->calculateUserSentiment()V
-PLcom/android/server/notification/NotificationRecord;->calculateVibration()Landroid/os/VibrationEffect;
-HPLcom/android/server/notification/NotificationRecord;->canBubble()Z
-HPLcom/android/server/notification/NotificationRecord;->canShowBadge()Z
-PLcom/android/server/notification/NotificationRecord;->getAdjustmentIssuer()Ljava/lang/String;
-PLcom/android/server/notification/NotificationRecord;->getAssistantImportance()I
-PLcom/android/server/notification/NotificationRecord;->getAudioAttributes()Landroid/media/AudioAttributes;
-PLcom/android/server/notification/NotificationRecord;->getAuthoritativeRank()I
-PLcom/android/server/notification/NotificationRecord;->getChannel()Landroid/app/NotificationChannel;
-PLcom/android/server/notification/NotificationRecord;->getContactAffinity()F
-PLcom/android/server/notification/NotificationRecord;->getCriticality()I
+HPLcom/android/server/notification/NotificationRecord;->calculateInitialImportance()I+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
+HPLcom/android/server/notification/NotificationRecord;->calculateRankingTimeMs(J)J
+HPLcom/android/server/notification/NotificationRecord;->calculateUserSentiment()V
+HPLcom/android/server/notification/NotificationRecord;->calculateVibration()Landroid/os/VibrationEffect;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
+HPLcom/android/server/notification/NotificationRecord;->copyRankingInformation(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/notification/NotificationRecord;->dumpNotification(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/app/Notification;Z)V
+PLcom/android/server/notification/NotificationRecord;->formatRemoteViews(Landroid/widget/RemoteViews;)Ljava/lang/String;
 PLcom/android/server/notification/NotificationRecord;->getExposureMs(J)I
 HPLcom/android/server/notification/NotificationRecord;->getFlags()I
-PLcom/android/server/notification/NotificationRecord;->getFreshnessMs(J)I
-PLcom/android/server/notification/NotificationRecord;->getGlobalSortKey()Ljava/lang/String;
-PLcom/android/server/notification/NotificationRecord;->getGrantableUris()Landroid/util/ArraySet;
-PLcom/android/server/notification/NotificationRecord;->getGroupKey()Ljava/lang/String;
-HPLcom/android/server/notification/NotificationRecord;->getImportance()I
 HPLcom/android/server/notification/NotificationRecord;->getImportanceExplanation()Ljava/lang/CharSequence;
-PLcom/android/server/notification/NotificationRecord;->getImportanceExplanationCode()I
-PLcom/android/server/notification/NotificationRecord;->getInitialImportance()I
-PLcom/android/server/notification/NotificationRecord;->getInitialImportanceExplanationCode()I
-PLcom/android/server/notification/NotificationRecord;->getInterruptionMs(J)I
-HPLcom/android/server/notification/NotificationRecord;->getKey()Ljava/lang/String;
-PLcom/android/server/notification/NotificationRecord;->getKeyguardManager()Landroid/app/KeyguardManager;
-PLcom/android/server/notification/NotificationRecord;->getLastAudiblyAlertedMs()J
-PLcom/android/server/notification/NotificationRecord;->getLastIntrusive()J
-PLcom/android/server/notification/NotificationRecord;->getLifespanMs(J)I
 PLcom/android/server/notification/NotificationRecord;->getLogMaker()Landroid/metrics/LogMaker;
 HPLcom/android/server/notification/NotificationRecord;->getLogMaker(J)Landroid/metrics/LogMaker;
-HPLcom/android/server/notification/NotificationRecord;->getNotification()Landroid/app/Notification;
 HPLcom/android/server/notification/NotificationRecord;->getNotificationType()I
-PLcom/android/server/notification/NotificationRecord;->getPackagePriority()I
-HPLcom/android/server/notification/NotificationRecord;->getPackageVisibilityOverride()I
-PLcom/android/server/notification/NotificationRecord;->getPeopleOverride()Ljava/util/ArrayList;
-HPLcom/android/server/notification/NotificationRecord;->getProposedImportance()I
-HPLcom/android/server/notification/NotificationRecord;->getRankingScore()F
-HPLcom/android/server/notification/NotificationRecord;->getSbn()Landroid/service/notification/StatusBarNotification;
-PLcom/android/server/notification/NotificationRecord;->getShortcutInfo()Landroid/content/pm/ShortcutInfo;
-PLcom/android/server/notification/NotificationRecord;->getSmartReplies()Ljava/util/ArrayList;
-PLcom/android/server/notification/NotificationRecord;->getSnoozeCriteria()Ljava/util/ArrayList;
-PLcom/android/server/notification/NotificationRecord;->getSound()Landroid/net/Uri;
-HPLcom/android/server/notification/NotificationRecord;->getSuppressedVisualEffects()I
-PLcom/android/server/notification/NotificationRecord;->getSystemGeneratedSmartActions()Ljava/util/ArrayList;
-PLcom/android/server/notification/NotificationRecord;->getUid()I
-HPLcom/android/server/notification/NotificationRecord;->getUser()Landroid/os/UserHandle;
-HPLcom/android/server/notification/NotificationRecord;->getUserId()I
-PLcom/android/server/notification/NotificationRecord;->getUserSentiment()I
-PLcom/android/server/notification/NotificationRecord;->getVibration()Landroid/os/VibrationEffect;
-PLcom/android/server/notification/NotificationRecord;->getVibrationForChannel(Landroid/app/NotificationChannel;Lcom/android/server/notification/VibratorHelper;Z)Landroid/os/VibrationEffect;
-PLcom/android/server/notification/NotificationRecord;->hasRecordedInterruption()Z
-PLcom/android/server/notification/NotificationRecord;->hasSensitiveContent()Z
-PLcom/android/server/notification/NotificationRecord;->hasUndecoratedRemoteView()Z
 PLcom/android/server/notification/NotificationRecord;->isCategory(Ljava/lang/String;)Z
-HPLcom/android/server/notification/NotificationRecord;->isConversation()Z
-PLcom/android/server/notification/NotificationRecord;->isForegroundService()Z
-PLcom/android/server/notification/NotificationRecord;->isHidden()Z
-PLcom/android/server/notification/NotificationRecord;->isIntercepted()Z
-PLcom/android/server/notification/NotificationRecord;->isInterruptive()Z
-PLcom/android/server/notification/NotificationRecord;->isLocked()Z
-PLcom/android/server/notification/NotificationRecord;->isPreChannelsNotification()Z
-PLcom/android/server/notification/NotificationRecord;->isRecentlyIntrusive()Z
-HPLcom/android/server/notification/NotificationRecord;->isTextChanged()Z
-PLcom/android/server/notification/NotificationRecord;->lambda$calculateGrantableUris$0(Landroid/net/Uri;)V
-PLcom/android/server/notification/NotificationRecord;->setAllowBubble(Z)V
-PLcom/android/server/notification/NotificationRecord;->setAudiblyAlerted(Z)V
-PLcom/android/server/notification/NotificationRecord;->setAuthoritativeRank(I)V
-PLcom/android/server/notification/NotificationRecord;->setContactAffinity(F)V
-PLcom/android/server/notification/NotificationRecord;->setFlagBubbleRemoved(Z)V
-PLcom/android/server/notification/NotificationRecord;->setGlobalSortKey(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationRecord;->setHasSentValidMsg(Z)V
-PLcom/android/server/notification/NotificationRecord;->setHidden(Z)V
-PLcom/android/server/notification/NotificationRecord;->setImportanceFixed(Z)V
-PLcom/android/server/notification/NotificationRecord;->setIntercepted(Z)Z
+HPLcom/android/server/notification/NotificationRecord;->isConversation()Z+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationRecord;->setInterruptive(Z)V
-PLcom/android/server/notification/NotificationRecord;->setIsAppImportanceLocked(Z)V
-PLcom/android/server/notification/NotificationRecord;->setPackagePriority(I)V
-PLcom/android/server/notification/NotificationRecord;->setPackageVisibilityOverride(I)V
-PLcom/android/server/notification/NotificationRecord;->setPkgAllowedAsConvo(Z)V
-PLcom/android/server/notification/NotificationRecord;->setPostSilently(Z)V
-PLcom/android/server/notification/NotificationRecord;->setRecentlyIntrusive(Z)V
-PLcom/android/server/notification/NotificationRecord;->setRecordedInterruption(Z)V
-PLcom/android/server/notification/NotificationRecord;->setShortcutInfo(Landroid/content/pm/ShortcutInfo;)V
-PLcom/android/server/notification/NotificationRecord;->setShowBadge(Z)V
-PLcom/android/server/notification/NotificationRecord;->setSuppressedVisualEffects(I)V
-PLcom/android/server/notification/NotificationRecord;->setTextChanged(Z)V
-PLcom/android/server/notification/NotificationRecord;->shouldPostSilently()Z
-PLcom/android/server/notification/NotificationRecord;->updateNotificationChannel(Landroid/app/NotificationChannel;)V
-PLcom/android/server/notification/NotificationRecord;->userDemotedAppFromConvoSpace(Z)V
-PLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;ZZ)V
+PLcom/android/server/notification/NotificationRecord;->toString()Ljava/lang/String;
+HPLcom/android/server/notification/NotificationRecord;->updateNotificationChannel(Landroid/app/NotificationChannel;)V
+HPLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;ZZ)V
+HPLcom/android/server/notification/NotificationRecordExtractorData;-><init>(IIZZZLandroid/app/NotificationChannel;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;Ljava/util/ArrayList;IFZIZ)V
+HPLcom/android/server/notification/NotificationRecordExtractorData;->hasDiffForRankingLocked(Lcom/android/server/notification/NotificationRecord;I)Z
+PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;-><clinit>()V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;-><init>(IILjava/lang/String;)V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->getId()I
+PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->values()[Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;
 PLcom/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;->getChannelIdHash()I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getGroupIdHash()I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getInstanceId()I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getNotificationIdHash()I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getNumPeople()I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getNumPeople(Landroid/os/Bundle;)I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getStyle()I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getStyle(Landroid/os/Bundle;)I
-PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->shouldLogReported(I)Z
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationReported;-><init>(Lcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;IILcom/android/internal/logging/InstanceId;)V
-PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;->$values()[Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;
 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;-><init>(IILjava/lang/String;)V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;->getId()I
-PLcom/android/server/notification/NotificationRecordLogger;->getAgeInMinutes(JJ)I
-PLcom/android/server/notification/NotificationRecordLogger;->getFsiState(ZZLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;)I
-PLcom/android/server/notification/NotificationRecordLogger;->getLoggingImportance(Lcom/android/server/notification/NotificationRecord;)I
-PLcom/android/server/notification/NotificationRecordLogger;->isForegroundService(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationRecordLogger;->isNonDismissible(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationRecordLogger;->prepareToLogNotificationPosted(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;IILcom/android/internal/logging/InstanceId;)Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;
-PLcom/android/server/notification/NotificationRecordLoggerImpl;-><init>()V
-PLcom/android/server/notification/NotificationRecordLoggerImpl;->logNotificationPosted(Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
+HPLcom/android/server/notification/NotificationRecordLogger;->prepareToLogNotificationPosted(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;IILcom/android/internal/logging/InstanceId;)Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;
+PLcom/android/server/notification/NotificationRecordLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationRecordLoggerImpl;->writeNotificationReportedAtom(Lcom/android/server/notification/NotificationRecordLogger$NotificationReported;)V
+PLcom/android/server/notification/NotificationSignalExtractor;->setCompatChangeLogger(Lcom/android/internal/compat/IPlatformCompat;)V
+PLcom/android/server/notification/NotificationSignalExtractor;->setGroupHelper(Lcom/android/server/notification/GroupHelper;)V
+HPLcom/android/server/notification/NotificationTimeComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/notification/NotificationUsageStats$1;-><init>(Lcom/android/server/notification/NotificationUsageStats;Landroid/os/Looper;)V
-HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationUsageStats$1;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->countApiUse(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->updateInterarrivalEstimate(J)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->emit()V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybeCount(ILjava/lang/String;)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->toStringWithIndent(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;-><clinit>()V
-HPLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->increment(I)V
-PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;-><init>()V
-PLcom/android/server/notification/NotificationUsageStats;-><clinit>()V
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->maybeCount(Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->toString()Ljava/lang/String;
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->update(Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onVisibilityChanged(Z)V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->toString()Ljava/lang/String;
+HPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->updateFrom(Lcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;)V
 PLcom/android/server/notification/NotificationUsageStats;-><init>(Landroid/content/Context;)V
-PLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Lcom/android/server/notification/NotificationRecord;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
-HPLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Ljava/lang/String;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
-HPLcom/android/server/notification/NotificationUsageStats;->getOrCreateAggregatedStatsLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
-PLcom/android/server/notification/NotificationUsageStats;->registerEnqueuedByApp(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerEnqueuedByAppAndAccepted(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerPeopleAffinity(Lcom/android/server/notification/NotificationRecord;ZZZ)V
+PLcom/android/server/notification/NotificationUsageStats;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HPLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Ljava/lang/String;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
+HPLcom/android/server/notification/NotificationUsageStats;->getOrCreateAggregatedStatsLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;+]Ljava/util/Map;Ljava/util/HashMap;
+PLcom/android/server/notification/NotificationUsageStats;->registerBlocked(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerPeopleAffinity(Lcom/android/server/notification/NotificationRecord;ZZZ)V+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationUsageStats;->registerPostedByApp(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats;->releaseAggregatedStatsLocked([Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerUpdatedByApp(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats;->releaseAggregatedStatsLocked([Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;)V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
+PLcom/android/server/notification/PermissionHelper$$ExternalSyntheticLambda0;-><init>(ILandroid/net/Uri;Lcom/android/server/uri/UriGrantsManagerInternal;)V
+HPLcom/android/server/notification/PermissionHelper$$ExternalSyntheticLambda0;->runOrThrow()V
 PLcom/android/server/notification/PermissionHelper;-><init>(Landroid/content/Context;Landroid/content/pm/IPackageManager;Landroid/permission/IPermissionManager;)V
-HPLcom/android/server/notification/PermissionHelper;->hasPermission(I)Z
+PLcom/android/server/notification/PermissionHelper;->getNotificationPermissionValues(I)Landroid/util/ArrayMap;
+HPLcom/android/server/notification/PermissionHelper;->grantUriPermission(ILandroid/net/Uri;Lcom/android/server/uri/UriGrantsManagerInternal;)V
+HPLcom/android/server/notification/PermissionHelper;->hasPermission(I)Z+]Landroid/content/Context;Landroid/app/ContextImpl;
 HPLcom/android/server/notification/PermissionHelper;->isPermissionFixed(Ljava/lang/String;I)Z
-PLcom/android/server/notification/PermissionHelper;->isPermissionUserSet(Ljava/lang/String;I)Z
-PLcom/android/server/notification/PreferencesHelper$Delegate;-><init>(Ljava/lang/String;IZ)V
-HPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>()V
-PLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>(Lcom/android/server/notification/PreferencesHelper$PackagePreferences-IA;)V
-PLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/PermissionHelper;Landroid/permission/PermissionManager;Lcom/android/server/notification/NotificationChannelLogger;Landroid/app/AppOpsManager;Lcom/android/server/notification/ManagedServices$UserProfiles;Z)V
-PLcom/android/server/notification/PreferencesHelper;->badgingEnabled(Landroid/os/UserHandle;)Z
-PLcom/android/server/notification/PreferencesHelper;->bubblesEnabled(Landroid/os/UserHandle;)Z
-PLcom/android/server/notification/PreferencesHelper;->canShowBadge(Ljava/lang/String;I)Z
-PLcom/android/server/notification/PreferencesHelper;->canShowNotificationsOnLockscreen(I)Z
-PLcom/android/server/notification/PreferencesHelper;->canShowPrivateNotificationsOnLockScreen(I)Z
+HPLcom/android/server/notification/PermissionHelper;->isPermissionUserSet(ILjava/lang/String;)Z
+PLcom/android/server/notification/PreferencesHelper$Delegate;-><init>(ILjava/lang/String;Z)V
+PLcom/android/server/notification/PreferencesHelper;-><clinit>()V
+PLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/PermissionHelper;Landroid/permission/PermissionManager;Lcom/android/server/notification/NotificationChannelLogger;Landroid/app/AppOpsManager;Lcom/android/server/notification/ManagedServices$UserProfiles;Lcom/android/server/uri/UriGrantsManagerInternal;ZLjava/time/Clock;)V
+HPLcom/android/server/notification/PreferencesHelper;->bubblesEnabled(Landroid/os/UserHandle;)Z
+PLcom/android/server/notification/PreferencesHelper;->canBePromoted(ILjava/lang/String;)Z
 PLcom/android/server/notification/PreferencesHelper;->channelIsLiveLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;Landroid/app/NotificationChannel;)Z
-HPLcom/android/server/notification/PreferencesHelper;->createDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
-HPLcom/android/server/notification/PreferencesHelper;->createNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;ZZIZ)Z
-HPLcom/android/server/notification/PreferencesHelper;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZIZ)V
-HPLcom/android/server/notification/PreferencesHelper;->deleteDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
-PLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannel(Ljava/lang/String;ILjava/lang/String;IZ)Z
-PLcom/android/server/notification/PreferencesHelper;->getBubblePreference(Ljava/lang/String;I)I
+PLcom/android/server/notification/PreferencesHelper;->createDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
+HPLcom/android/server/notification/PreferencesHelper;->createNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;ZIZ)Z
+PLcom/android/server/notification/PreferencesHelper;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;)V
+PLcom/android/server/notification/PreferencesHelper;->dumpPackagePreferencesLocked(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+PLcom/android/server/notification/PreferencesHelper;->getChannelLog(Landroid/app/NotificationChannel;Ljava/lang/String;)Landroid/metrics/LogMaker;
 HPLcom/android/server/notification/PreferencesHelper;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZZ)Landroid/app/NotificationChannel;
-PLcom/android/server/notification/PreferencesHelper;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannel;
-PLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/NotificationChannelGroup;
-HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannels(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
-HPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;IIIIIZI)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
-HPLcom/android/server/notification/PreferencesHelper;->getPackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
+HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroup(ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+PLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroupWithChannels(ILjava/lang/String;Ljava/lang/String;Z)Landroid/app/NotificationChannelGroup;
+PLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroups(ILjava/lang/String;Ljava/util/Set;ZZZ)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannels(Ljava/lang/String;IZZ)Landroid/content/pm/ParceledListSlice;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(ILjava/lang/String;)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;+]Ljava/time/Clock;Ljava/time/Clock$SystemClock;
+HPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;IIIIIZIJ)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
+HPLcom/android/server/notification/PreferencesHelper;->getPackagePreferencesLocked(ILjava/lang/String;)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
 PLcom/android/server/notification/PreferencesHelper;->hasSentValidMsg(Ljava/lang/String;I)Z
 PLcom/android/server/notification/PreferencesHelper;->hasUserDemotedInvalidMsgApp(Ljava/lang/String;I)Z
-HPLcom/android/server/notification/PreferencesHelper;->isDeletionOk(Landroid/app/NotificationChannel;)Z
-PLcom/android/server/notification/PreferencesHelper;->isGroupBlocked(Ljava/lang/String;ILjava/lang/String;)Z
+HPLcom/android/server/notification/PreferencesHelper;->isGroupBlocked(ILjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/notification/PreferencesHelper;->isInInvalidMsgState(Ljava/lang/String;I)Z
-PLcom/android/server/notification/PreferencesHelper;->isMediaNotificationFilteringEnabled()Z
-HPLcom/android/server/notification/PreferencesHelper;->isShortcutOk(Landroid/app/NotificationChannel;)Z
 PLcom/android/server/notification/PreferencesHelper;->migrateNotificationPermissions(Ljava/util/List;)V
-PLcom/android/server/notification/PreferencesHelper;->onPackagesChanged(ZI[Ljava/lang/String;[I)Z
-HPLcom/android/server/notification/PreferencesHelper;->packagePreferencesKey(Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/notification/PreferencesHelper;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;ZI)V
-HPLcom/android/server/notification/PreferencesHelper;->restoreChannel(Lcom/android/modules/utils/TypedXmlPullParser;ZLcom/android/server/notification/PreferencesHelper$PackagePreferences;)V
+PLcom/android/server/notification/PreferencesHelper;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
+HPLcom/android/server/notification/PreferencesHelper;->packagePreferencesKey(ILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/notification/PreferencesHelper;->restoreChannel(Lcom/android/modules/utils/TypedXmlPullParser;ZLcom/android/server/notification/PreferencesHelper$PackagePreferences;)V
 HPLcom/android/server/notification/PreferencesHelper;->restorePackage(Lcom/android/modules/utils/TypedXmlPullParser;ZILjava/lang/String;ZZ)V
-HPLcom/android/server/notification/PreferencesHelper;->shouldHaveDefaultChannel(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
 PLcom/android/server/notification/PreferencesHelper;->syncChannelsBypassingDnd()V
-PLcom/android/server/notification/PreferencesHelper;->unrestoredPackageKey(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/notification/PreferencesHelper;->unrestoredPackageKey(ILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/notification/PreferencesHelper;->updateBadgingEnabled()V
 PLcom/android/server/notification/PreferencesHelper;->updateBubblesEnabled()V
 PLcom/android/server/notification/PreferencesHelper;->updateConfig()V
 PLcom/android/server/notification/PreferencesHelper;->updateCurrentUserHasChannelsBypassingDnd(IZ)V
 PLcom/android/server/notification/PreferencesHelper;->updateDefaultApps(ILandroid/util/ArraySet;Landroid/util/ArraySet;)V
-HPLcom/android/server/notification/PreferencesHelper;->updateFixedImportance(Ljava/util/List;)V
-PLcom/android/server/notification/PreferencesHelper;->updateLockScreenPrivateNotifications()V
-PLcom/android/server/notification/PreferencesHelper;->updateLockScreenShowNotifications()V
 PLcom/android/server/notification/PreferencesHelper;->updateMediaNotificationFilteringEnabled()V
-HPLcom/android/server/notification/PreferencesHelper;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;ZI)V
+HPLcom/android/server/notification/PreferencesHelper;->updateNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;ZIZ)V
+HPLcom/android/server/notification/PreferencesHelper;->writePackageXml(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;Lcom/android/modules/utils/TypedXmlSerializer;Landroid/util/ArrayMap;Z)V+]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;,Ljava/util/concurrent/ConcurrentHashMap$ValuesView;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;
 PLcom/android/server/notification/PriorityExtractor;-><init>()V
 PLcom/android/server/notification/PriorityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/PriorityExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/PriorityExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/PriorityExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/PriorityExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/PropConfig;->getStringArray(Landroid/content/Context;Ljava/lang/String;I)[Ljava/lang/String;
-PLcom/android/server/notification/RankingHelper;-><init>(Landroid/content/Context;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/RankingConfig;Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/NotificationUsageStats;[Ljava/lang/String;)V
-PLcom/android/server/notification/RankingHelper;->extractSignals(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/RankingHelper;->findExtractor(Ljava/lang/Class;)Lcom/android/server/notification/NotificationSignalExtractor;
-PLcom/android/server/notification/RankingHelper;->indexOf(Ljava/util/ArrayList;Lcom/android/server/notification/NotificationRecord;)I
-HPLcom/android/server/notification/RankingHelper;->sort(Ljava/util/ArrayList;)V
-PLcom/android/server/notification/RankingReconsideration;-><init>(Ljava/lang/String;J)V
-PLcom/android/server/notification/RankingReconsideration;->getDelay(Ljava/util/concurrent/TimeUnit;)J
-PLcom/android/server/notification/RankingReconsideration;->getKey()Ljava/lang/String;
+PLcom/android/server/notification/RankingHelper;-><init>(Landroid/content/Context;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/RankingConfig;Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/NotificationUsageStats;[Ljava/lang/String;Lcom/android/internal/compat/IPlatformCompat;Lcom/android/server/notification/GroupHelper;)V
+HPLcom/android/server/notification/RankingHelper;->extractSignals(Lcom/android/server/notification/NotificationRecord;)V+]Lcom/android/server/notification/NotificationSignalExtractor;megamorphic_types
+HPLcom/android/server/notification/RankingHelper;->sort(Ljava/util/ArrayList;)V+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/notification/RankingReconsideration;-><init>(JLjava/lang/String;)V
 PLcom/android/server/notification/RankingReconsideration;->run()V
-PLcom/android/server/notification/RateEstimator;-><init>()V
-PLcom/android/server/notification/RateEstimator;->getInterarrivalEstimate(J)D
-PLcom/android/server/notification/RateEstimator;->update(J)V
+HPLcom/android/server/notification/RateEstimator;->getInterarrivalEstimate(J)D
 PLcom/android/server/notification/ReviewNotificationPermissionsReceiver;-><clinit>()V
-PLcom/android/server/notification/ReviewNotificationPermissionsReceiver;-><init>()V
-PLcom/android/server/notification/ReviewNotificationPermissionsReceiver;->getFilter()Landroid/content/IntentFilter;
 PLcom/android/server/notification/ScheduleConditionProvider$1;-><init>(Lcom/android/server/notification/ScheduleConditionProvider;)V
 PLcom/android/server/notification/ScheduleConditionProvider$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/notification/ScheduleConditionProvider;->-$$Nest$mevaluateSubscriptions(Lcom/android/server/notification/ScheduleConditionProvider;)V
 PLcom/android/server/notification/ScheduleConditionProvider;-><clinit>()V
-PLcom/android/server/notification/ScheduleConditionProvider;-><init>()V
-PLcom/android/server/notification/ScheduleConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/ScheduleConditionProvider;->attachBase(Landroid/content/Context;)V
-PLcom/android/server/notification/ScheduleConditionProvider;->conditionSnoozed(Landroid/net/Uri;)Z
-PLcom/android/server/notification/ScheduleConditionProvider;->createCondition(Landroid/net/Uri;ILjava/lang/String;)Landroid/service/notification/Condition;
+PLcom/android/server/notification/ScheduleConditionProvider;-><init>(Ljava/time/Clock;)V
+PLcom/android/server/notification/ScheduleConditionProvider;->createCondition(ILjava/lang/String;Landroid/net/Uri;)Landroid/service/notification/Condition;
+PLcom/android/server/notification/ScheduleConditionProvider;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/notification/ScheduleConditionProvider;->evaluateSubscriptionLocked(Landroid/net/Uri;Landroid/service/notification/ScheduleCalendar;JJ)Landroid/service/notification/Condition;
-HPLcom/android/server/notification/ScheduleConditionProvider;->evaluateSubscriptions()V
-PLcom/android/server/notification/ScheduleConditionProvider;->getComponent()Landroid/content/ComponentName;
-PLcom/android/server/notification/ScheduleConditionProvider;->getNextAlarm()J
+PLcom/android/server/notification/ScheduleConditionProvider;->evaluateSubscriptions$1()V
 PLcom/android/server/notification/ScheduleConditionProvider;->getPendingIntent(J)Landroid/app/PendingIntent;
 PLcom/android/server/notification/ScheduleConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
 PLcom/android/server/notification/ScheduleConditionProvider;->onBootComplete()V
 PLcom/android/server/notification/ScheduleConditionProvider;->onConnected()V
 PLcom/android/server/notification/ScheduleConditionProvider;->onSubscribe(Landroid/net/Uri;)V
-PLcom/android/server/notification/ScheduleConditionProvider;->readSnoozed()V
-PLcom/android/server/notification/ScheduleConditionProvider;->setRegistered(Z)V
-PLcom/android/server/notification/ScheduleConditionProvider;->updateAlarm(JJ)V
+PLcom/android/server/notification/ScheduleConditionProvider;->removeSnoozed(Landroid/net/Uri;)V
+PLcom/android/server/notification/ScheduleConditionProvider;->setRegistered$1(Z)V
 PLcom/android/server/notification/ShortcutHelper$1;-><init>(Lcom/android/server/notification/ShortcutHelper;)V
 PLcom/android/server/notification/ShortcutHelper;-><clinit>()V
-PLcom/android/server/notification/ShortcutHelper;-><init>(Landroid/content/pm/LauncherApps;Lcom/android/server/notification/ShortcutHelper$ShortcutListener;Landroid/content/pm/ShortcutServiceInternal;Landroid/os/UserManager;)V
-PLcom/android/server/notification/ShortcutHelper;->getValidShortcutInfo(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ShortcutInfo;
-PLcom/android/server/notification/ShortcutHelper;->maybeListenForShortcutChangesForBubbles(Lcom/android/server/notification/NotificationRecord;ZLandroid/os/Handler;)V
-PLcom/android/server/notification/SmallHash;->hash(I)I
-PLcom/android/server/notification/SmallHash;->hash(Ljava/lang/String;)I
-PLcom/android/server/notification/SnoozeHelper$$ExternalSyntheticLambda3;-><init>(JLcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/notification/SnoozeHelper$$ExternalSyntheticLambda4;-><init>(Lcom/android/modules/utils/TypedXmlSerializer;)V
+PLcom/android/server/notification/ShortcutHelper;-><init>(Landroid/content/pm/LauncherApps;Lcom/android/server/notification/NotificationManagerService$1;Landroid/content/pm/ShortcutServiceInternal;Landroid/os/UserManager;)V
+HPLcom/android/server/notification/ShortcutHelper;->getValidShortcutInfo(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ShortcutInfo;
+HPLcom/android/server/notification/ShortcutHelper;->maybeListenForShortcutChangesForBubbles(Lcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/SnoozeHelper$1;-><init>(Lcom/android/server/notification/SnoozeHelper;)V
 PLcom/android/server/notification/SnoozeHelper;-><clinit>()V
-PLcom/android/server/notification/SnoozeHelper;-><init>(Landroid/content/Context;Lcom/android/server/notification/SnoozeHelper$Callback;Lcom/android/server/notification/ManagedServices$UserProfiles;)V
-PLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;)Z
-HPLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/notification/SnoozeHelper;->getSnoozeContextForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/notification/SnoozeHelper;->getSnoozeTimeForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Long;
-HPLcom/android/server/notification/SnoozeHelper;->getSnoozed(ILjava/lang/String;)Ljava/util/Collection;
+PLcom/android/server/notification/SnoozeHelper;-><init>(Landroid/content/Context;Lcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda4;Lcom/android/server/notification/ManagedServices$UserProfiles;)V
+HPLcom/android/server/notification/SnoozeHelper;->cancel(IILjava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;)V
+PLcom/android/server/notification/SnoozeHelper;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/notification/SnoozeHelper;->getSnoozeContextForUnpostedNotification(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/notification/SnoozeHelper;->getSnoozeTimeForUnpostedNotification(Ljava/lang/String;)Ljava/lang/Long;
+PLcom/android/server/notification/SnoozeHelper;->getSnoozed(ILjava/lang/String;)Ljava/util/Collection;
 PLcom/android/server/notification/SnoozeHelper;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/notification/SnoozeHelper;->isSnoozed(ILjava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/notification/SnoozeHelper;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;J)V
-PLcom/android/server/notification/SnoozeHelper;->scheduleRepostsForPersistedNotifications(J)V
-HPLcom/android/server/notification/SnoozeHelper;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/notification/SnoozeHelper;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;Landroid/util/ArrayMap;Ljava/lang/String;Lcom/android/server/notification/SnoozeHelper$Inserter;)V
-PLcom/android/server/notification/SystemConditionProviderService;-><init>()V
-PLcom/android/server/notification/SystemConditionProviderService;->formatDuration(J)Ljava/lang/String;
-HPLcom/android/server/notification/SystemConditionProviderService;->ts(J)Ljava/lang/String;
+PLcom/android/server/notification/SnoozeHelper;->isSnoozed(Ljava/lang/String;)Z
+PLcom/android/server/notification/SnoozeHelper;->repostGroupSummary(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/SystemConditionProviderService;->attachBase(Landroid/content/Context;)V
+PLcom/android/server/notification/SystemConditionProviderService;->dumpUpcomingTime(Ljava/io/PrintWriter;JJ)V
+PLcom/android/server/notification/SystemConditionProviderService;->ts(J)Ljava/lang/String;
+HPLcom/android/server/notification/TimeToLiveHelper$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/notification/TimeToLiveHelper$1;-><init>(Lcom/android/server/notification/TimeToLiveHelper;)V
+PLcom/android/server/notification/TimeToLiveHelper;-><init>(Lcom/android/server/notification/NotificationManagerService$1;Landroid/content/Context;)V
+PLcom/android/server/notification/TimeToLiveHelper;->cancelScheduledTimeoutLocked(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/TimeToLiveHelper;->getAlarmPendingIntent(ILjava/lang/String;)Landroid/app/PendingIntent;
+HPLcom/android/server/notification/TimeToLiveHelper;->maybeScheduleFirstAlarm()V
+HPLcom/android/server/notification/TimeToLiveHelper;->removeMatchingEntry(Ljava/lang/String;)V
+HPLcom/android/server/notification/TimeToLiveHelper;->scheduleTimeoutLocked(Lcom/android/server/notification/NotificationRecord;J)V
 PLcom/android/server/notification/ValidateNotificationPeople$1;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/os/Handler;)V
+PLcom/android/server/notification/ValidateNotificationPeople$1;->onChange(ZLandroid/net/Uri;I)V
+PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;-><init>()V
+PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->getAffinity()F
+PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->isExpired()Z
+PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->mergeContact(Landroid/database/Cursor;)V
+PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;Ljava/util/LinkedList;)V
+PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->addContacts(Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;Landroid/content/Context;Landroid/net/Uri;)V
+PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->applyChangesLocked(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->searchContacts(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;
+PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->work()V
 PLcom/android/server/notification/ValidateNotificationPeople;-><clinit>()V
 PLcom/android/server/notification/ValidateNotificationPeople;-><init>()V
-PLcom/android/server/notification/ValidateNotificationPeople;->combineLists([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
-PLcom/android/server/notification/ValidateNotificationPeople;->getContextAsUser(Landroid/os/UserHandle;)Landroid/content/Context;
-PLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeople(Landroid/os/Bundle;)[Ljava/lang/String;
-PLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeopleForKey(Landroid/os/Bundle;Ljava/lang/String;)[Ljava/lang/String;
+PLcom/android/server/notification/ValidateNotificationPeople;->getCacheKey(ILjava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/notification/ValidateNotificationPeople;->getContextAsUser(Landroid/os/UserHandle;)Landroid/content/Context;
+HPLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeople(Landroid/os/Bundle;)[Ljava/lang/String;
+HPLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeopleForKey(Ljava/lang/String;Landroid/os/Bundle;)[Ljava/lang/String;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/notification/ValidateNotificationPeople;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/ValidateNotificationPeople;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/ValidateNotificationPeople;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/ValidateNotificationPeople;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/ValidateNotificationPeople;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
-PLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[FLandroid/util/ArraySet;)Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;
+HPLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[FLandroid/util/ArraySet;)Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;
 PLcom/android/server/notification/VibratorHelper;-><clinit>()V
-HPLcom/android/server/notification/VibratorHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/notification/VibratorHelper;->getFloatArray(Landroid/content/res/Resources;I)[F
-PLcom/android/server/notification/VibratorHelper;->getLongArray(Landroid/content/res/Resources;II[J)[J
+HPLcom/android/server/notification/VibratorHelper;-><init>(Landroid/content/Context;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;
+PLcom/android/server/notification/VibratorHelper;->createDefaultVibration(Z)Landroid/os/VibrationEffect;
+PLcom/android/server/notification/VibratorHelper;->createVibrationEffectFromSoundUri(Landroid/net/Uri;)Landroid/os/VibrationEffect;
+PLcom/android/server/notification/VibratorHelper;->createWaveformVibration([JZ)Landroid/os/VibrationEffect;
+HPLcom/android/server/notification/VibratorHelper;->getFloatArray(Landroid/content/res/Resources;I)[F+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
 PLcom/android/server/notification/VisibilityExtractor;-><init>()V
-PLcom/android/server/notification/VisibilityExtractor;->adminAllowsKeyguardFeature(II)Z
 PLcom/android/server/notification/VisibilityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/VisibilityExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/VisibilityExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/app/admin/DevicePolicyManager;Landroid/app/admin/DevicePolicyManager;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 PLcom/android/server/notification/VisibilityExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/VisibilityExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
 PLcom/android/server/notification/ZenLog;-><clinit>()V
 HPLcom/android/server/notification/ZenLog;->append(ILjava/lang/String;)V
 PLcom/android/server/notification/ZenLog;->componentListToString(Ljava/util/List;)Ljava/lang/String;
-PLcom/android/server/notification/ZenLog;->componentToString(Landroid/content/ComponentName;)Ljava/lang/String;
-PLcom/android/server/notification/ZenLog;->hintsToString(I)Ljava/lang/String;
-PLcom/android/server/notification/ZenLog;->subscribeResult(Landroid/service/notification/IConditionProvider;Landroid/os/RemoteException;)Ljava/lang/String;
+PLcom/android/server/notification/ZenLog;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/notification/ZenLog;->ringerModeToString(I)Ljava/lang/String;
 PLcom/android/server/notification/ZenLog;->traceConfig(Ljava/lang/String;Landroid/content/ComponentName;Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;I)V
-PLcom/android/server/notification/ZenLog;->traceDisableEffects(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
-PLcom/android/server/notification/ZenLog;->traceEffectsSuppressorChanged(Ljava/util/List;Ljava/util/List;J)V
-PLcom/android/server/notification/ZenLog;->traceListenerHintsChanged(III)V
-PLcom/android/server/notification/ZenLog;->traceSetNotificationPolicy(Ljava/lang/String;ILandroid/app/NotificationManager$Policy;)V
-HPLcom/android/server/notification/ZenLog;->traceSetZenMode(ILjava/lang/String;)V
-PLcom/android/server/notification/ZenLog;->traceSubscribe(Landroid/net/Uri;Landroid/service/notification/IConditionProvider;Landroid/os/RemoteException;)V
+PLcom/android/server/notification/ZenLog;->traceMatchesCallFilter(ILjava/lang/String;Z)V
+PLcom/android/server/notification/ZenLog;->traceSetZenMode(ILjava/lang/String;)V
 PLcom/android/server/notification/ZenLog;->typeToString(I)Ljava/lang/String;
-PLcom/android/server/notification/ZenLog;->zenModeToString(I)Ljava/lang/String;
 PLcom/android/server/notification/ZenModeConditions;-><clinit>()V
 PLcom/android/server/notification/ZenModeConditions;-><init>(Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/ConditionProviders;)V
-HPLcom/android/server/notification/ZenModeConditions;->evaluateConfig(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Z)V
-HPLcom/android/server/notification/ZenModeConditions;->evaluateRule(Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/util/ArraySet;Landroid/content/ComponentName;Z)V
-PLcom/android/server/notification/ZenModeConditions;->onBootComplete()V
-PLcom/android/server/notification/ZenModeConditions;->onConditionChanged(Landroid/net/Uri;Landroid/service/notification/Condition;)V
-PLcom/android/server/notification/ZenModeConditions;->onUserSwitched()V
-PLcom/android/server/notification/ZenModeConditions;->updateSnoozing(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
-HPLcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;-><init>(ILandroid/service/notification/ZenModeConfig;Landroid/app/NotificationManager$Policy;)V
-PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->-$$Nest$minit(Lcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;Lcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;Lcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;II)V
-PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->-$$Nest$mshouldLogChanges(Lcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;)Z
+PLcom/android/server/notification/ZenModeConditions;->evaluateConfig(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Z)V
+HPLcom/android/server/notification/ZenModeConditions;->evaluateRule(Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZ)V
 PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;-><init>()V
-PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->hasActiveRuleCountDiff()Z
-HPLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->init(Lcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;Lcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;II)V
-PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->numActiveRulesInConfig(Landroid/service/notification/ZenModeConfig;)I
+PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->activeRulesList(Landroid/service/notification/ZenModeConfig;)Ljava/util/List;
 PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->shouldLogChanges()Z
-PLcom/android/server/notification/ZenModeEventLogger$ZenStateChanges;->zenModeFlipped()Z
 PLcom/android/server/notification/ZenModeEventLogger;-><init>(Landroid/content/pm/PackageManager;)V
-PLcom/android/server/notification/ZenModeEventLogger;->maybeLogZenChange(Lcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;Lcom/android/server/notification/ZenModeEventLogger$ZenModeInfo;II)V
 PLcom/android/server/notification/ZenModeExtractor;-><clinit>()V
 PLcom/android/server/notification/ZenModeExtractor;-><init>()V
 PLcom/android/server/notification/ZenModeExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
-PLcom/android/server/notification/ZenModeExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
+HPLcom/android/server/notification/ZenModeExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 PLcom/android/server/notification/ZenModeExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 PLcom/android/server/notification/ZenModeExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
 PLcom/android/server/notification/ZenModeFiltering$RepeatCallers;-><init>()V
-PLcom/android/server/notification/ZenModeFiltering$RepeatCallers;-><init>(Lcom/android/server/notification/ZenModeFiltering$RepeatCallers-IA;)V
+PLcom/android/server/notification/ZenModeFiltering$RepeatCallers;->cleanUp(Landroid/util/ArrayMap;J)V
+PLcom/android/server/notification/ZenModeFiltering$RepeatCallers;->recordCallers([Ljava/lang/String;Landroid/util/ArraySet;J)V
 PLcom/android/server/notification/ZenModeFiltering;-><clinit>()V
 PLcom/android/server/notification/ZenModeFiltering;-><init>(Landroid/content/Context;)V
+PLcom/android/server/notification/ZenModeFiltering;->isCall(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/ZenModeFiltering;->matchesCallFilter(Landroid/content/Context;ILandroid/app/NotificationManager$Policy;Landroid/os/UserHandle;Landroid/os/Bundle;Lcom/android/server/notification/ValidateNotificationPeople;I)Z
 PLcom/android/server/notification/ZenModeFiltering;->shouldIntercept(ILandroid/app/NotificationManager$Policy;Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/ZenModeHelper$Callback;-><init>()V
-PLcom/android/server/notification/ZenModeHelper$H;->-$$Nest$mpostMetricsTimer(Lcom/android/server/notification/ZenModeHelper$H;)V
-PLcom/android/server/notification/ZenModeHelper$H;->-$$Nest$mpostUpdateRingerAndAudio(Lcom/android/server/notification/ZenModeHelper$H;Z)V
+PLcom/android/server/notification/ZenModeHelper$Callback;->onConsolidatedPolicyChanged(Landroid/app/NotificationManager$Policy;)V
+PLcom/android/server/notification/ZenModeHelper$Callback;->onPolicyChanged(Landroid/app/NotificationManager$Policy;)V
 PLcom/android/server/notification/ZenModeHelper$H;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Looper;)V
-PLcom/android/server/notification/ZenModeHelper$H;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Looper;Lcom/android/server/notification/ZenModeHelper$H-IA;)V
 PLcom/android/server/notification/ZenModeHelper$H;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/notification/ZenModeHelper$H;->postMetricsTimer()V
-PLcom/android/server/notification/ZenModeHelper$H;->postUpdateRingerAndAudio(Z)V
 PLcom/android/server/notification/ZenModeHelper$Metrics;-><init>(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/ZenModeHelper$Metrics;-><init>(Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/ZenModeHelper$Metrics-IA;)V
 PLcom/android/server/notification/ZenModeHelper$Metrics;->emit()V
-PLcom/android/server/notification/ZenModeHelper$Metrics;->emitDndType()V
-PLcom/android/server/notification/ZenModeHelper$Metrics;->emitRules()V
-PLcom/android/server/notification/ZenModeHelper$Metrics;->emitZenMode()V
 PLcom/android/server/notification/ZenModeHelper$Metrics;->onConfigChanged()V
 PLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;-><init>(Lcom/android/server/notification/ZenModeHelper;)V
 PLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;->getRingerModeAffectedStreams(I)I
 PLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;->onSetRingerModeInternal(IILjava/lang/String;ILandroid/media/VolumePolicy;)I
+PLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;->toString()Ljava/lang/String;
 PLcom/android/server/notification/ZenModeHelper$SettingsObserver;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Handler;)V
-PLcom/android/server/notification/ZenModeHelper$SettingsObserver;->observe()V
 PLcom/android/server/notification/ZenModeHelper$SettingsObserver;->update(Landroid/net/Uri;)V
-PLcom/android/server/notification/ZenModeHelper;->-$$Nest$fgetmConfigLock(Lcom/android/server/notification/ZenModeHelper;)Ljava/lang/Object;
-PLcom/android/server/notification/ZenModeHelper;->-$$Nest$fgetmContext(Lcom/android/server/notification/ZenModeHelper;)Landroid/content/Context;
-PLcom/android/server/notification/ZenModeHelper;->-$$Nest$fgetmHandler(Lcom/android/server/notification/ZenModeHelper;)Lcom/android/server/notification/ZenModeHelper$H;
-PLcom/android/server/notification/ZenModeHelper;->-$$Nest$msetPreviousRingerModeSetting(Lcom/android/server/notification/ZenModeHelper;Ljava/lang/Integer;)V
-PLcom/android/server/notification/ZenModeHelper;->-$$Nest$mupdateRingerAndAudio(Lcom/android/server/notification/ZenModeHelper;Z)V
 PLcom/android/server/notification/ZenModeHelper;-><clinit>()V
-HPLcom/android/server/notification/ZenModeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/time/Clock;Lcom/android/server/notification/ConditionProviders;Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;Lcom/android/server/notification/ZenModeEventLogger;)V
-PLcom/android/server/notification/ZenModeHelper;->addCallback(Lcom/android/server/notification/ZenModeHelper$Callback;)V
+PLcom/android/server/notification/ZenModeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/time/Clock;Lcom/android/server/notification/ConditionProviders;Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;Lcom/android/server/notification/ZenModeEventLogger;)V
 PLcom/android/server/notification/ZenModeHelper;->applyConsolidatedDeviceEffects(I)V
 HPLcom/android/server/notification/ZenModeHelper;->applyRestrictions()V
 PLcom/android/server/notification/ZenModeHelper;->applyRestrictions(ZZI)V
 PLcom/android/server/notification/ZenModeHelper;->applyRestrictions(ZZII)V
+PLcom/android/server/notification/ZenModeHelper;->canManageAutomaticZenRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+PLcom/android/server/notification/ZenModeHelper;->checkSetRuleStateOrigin(ILjava/lang/String;)V
 PLcom/android/server/notification/ZenModeHelper;->cleanUpZenRules()V
-PLcom/android/server/notification/ZenModeHelper;->computeZenMode()I
 PLcom/android/server/notification/ZenModeHelper;->deleteRulesWithoutOwner(Landroid/util/ArrayMap;)V
-PLcom/android/server/notification/ZenModeHelper;->dispatchOnConfigChanged()V
-HPLcom/android/server/notification/ZenModeHelper;->evaluateZenModeLocked(ILjava/lang/String;Z)V
-PLcom/android/server/notification/ZenModeHelper;->findMatchingRules(Landroid/service/notification/ZenModeConfig;Landroid/net/Uri;Landroid/service/notification/Condition;)Ljava/util/List;
+PLcom/android/server/notification/ZenModeHelper;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/notification/ZenModeHelper;->evaluateZenModeLocked(ILjava/lang/String;Z)V
 PLcom/android/server/notification/ZenModeHelper;->getConfig()Landroid/service/notification/ZenModeConfig;
-PLcom/android/server/notification/ZenModeHelper;->getNotificationPolicy()Landroid/app/NotificationManager$Policy;
-PLcom/android/server/notification/ZenModeHelper;->getNotificationPolicy(Landroid/service/notification/ZenModeConfig;)Landroid/app/NotificationManager$Policy;
-PLcom/android/server/notification/ZenModeHelper;->getSuppressedEffects()J
-PLcom/android/server/notification/ZenModeHelper;->getZenMode()I
-PLcom/android/server/notification/ZenModeHelper;->getZenModeListenerInterruptionFilter()I
-PLcom/android/server/notification/ZenModeHelper;->initZenMode()V
-PLcom/android/server/notification/ZenModeHelper;->loadConfigForUser(ILjava/lang/String;)V
-PLcom/android/server/notification/ZenModeHelper;->onSystemReady()V
-PLcom/android/server/notification/ZenModeHelper;->onUserSwitched(I)V
-PLcom/android/server/notification/ZenModeHelper;->readDefaultConfig(Landroid/content/res/Resources;)Landroid/service/notification/ZenModeConfig;
-PLcom/android/server/notification/ZenModeHelper;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;ZI)V
-PLcom/android/server/notification/ZenModeHelper;->requirePublicOrigin(Ljava/lang/String;I)V
-PLcom/android/server/notification/ZenModeHelper;->ruleMatches(Landroid/net/Uri;Landroid/service/notification/Condition;Landroid/service/notification/ZenModeConfig$ZenRule;)Z
-PLcom/android/server/notification/ZenModeHelper;->setAutomaticZenRuleState(Landroid/net/Uri;Landroid/service/notification/Condition;II)V
+PLcom/android/server/notification/ZenModeHelper;->getConfigLocked(Landroid/os/UserHandle;)Landroid/service/notification/ZenModeConfig;
+PLcom/android/server/notification/ZenModeHelper;->getNotificationPolicy(Landroid/os/UserHandle;)Landroid/app/NotificationManager$Policy;
+PLcom/android/server/notification/ZenModeHelper;->getZenRules(Landroid/os/UserHandle;)Ljava/util/List;
+PLcom/android/server/notification/ZenModeHelper;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;ZILandroid/app/backup/BackupRestoreEventLogger;)Z
 PLcom/android/server/notification/ZenModeHelper;->setAutomaticZenRuleStateLocked(Landroid/service/notification/ZenModeConfig;Ljava/util/List;Landroid/service/notification/Condition;II)V
-HPLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;ILjava/lang/String;Landroid/content/ComponentName;ZI)Z
-PLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;ILjava/lang/String;I)Z
+PLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;ILjava/lang/String;Landroid/content/ComponentName;ZI)Z
 PLcom/android/server/notification/ZenModeHelper;->setDeviceEffectsApplier(Landroid/service/notification/DeviceEffectsApplier;)V
-PLcom/android/server/notification/ZenModeHelper;->setNotificationPolicy(Landroid/app/NotificationManager$Policy;II)V
 PLcom/android/server/notification/ZenModeHelper;->setPreviousRingerModeSetting(Ljava/lang/Integer;)V
-PLcom/android/server/notification/ZenModeHelper;->setPriorityOnlyDndExemptPackages([Ljava/lang/String;)V
-PLcom/android/server/notification/ZenModeHelper;->setSuppressedEffects(J)V
 PLcom/android/server/notification/ZenModeHelper;->setZenModeSetting(I)V
-PLcom/android/server/notification/ZenModeHelper;->shouldIntercept(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/ZenModeHelper;->showZenUpgradeNotification(I)V
-HPLcom/android/server/notification/ZenModeHelper;->updateAndApplyConsolidatedPolicyAndDeviceEffects(ILjava/lang/String;)V
+PLcom/android/server/notification/ZenModeHelper;->updateAndApplyConsolidatedPolicyAndDeviceEffects(ILjava/lang/String;)V
 HPLcom/android/server/notification/ZenModeHelper;->updateConfigAndZenModeLocked(Landroid/service/notification/ZenModeConfig;ILjava/lang/String;ZI)V
-PLcom/android/server/notification/ZenModeHelper;->updateDefaultAutomaticRuleNames()V
-PLcom/android/server/notification/ZenModeHelper;->updateDefaultAutomaticRulePolicies()V
-PLcom/android/server/notification/ZenModeHelper;->updateRingerAndAudio(Z)V
-PLcom/android/server/notification/ZenModeHelper;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;ZLjava/lang/Integer;I)V
-PLcom/android/server/oemlock/OemLock;-><init>()V
+PLcom/android/server/notification/ZenModeHelper;->updateRuleStringsForCurrentLocale(Landroid/content/Context;Landroid/service/notification/ZenModeConfig;)V
+PLcom/android/server/notification/ZenModeHelper;->zenRuleToAutomaticZenRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Landroid/app/AutomaticZenRule;
+PLcom/android/server/notification/toast/TextToastRecord;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/statusbar/StatusBarManagerService$1;IILjava/lang/String;ZLandroid/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;->isAppRendered()Z
+PLcom/android/server/notification/toast/TextToastRecord;->show()Z
+PLcom/android/server/notification/toast/ToastRecord;-><init>(Lcom/android/server/notification/NotificationManagerService;IILjava/lang/String;ZLandroid/os/IBinder;ILandroid/os/Binder;I)V
 PLcom/android/server/oemlock/OemLockService$1;-><init>(Lcom/android/server/oemlock/OemLockService;)V
 PLcom/android/server/oemlock/OemLockService$1;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/oemlock/OemLockService$2;-><init>(Lcom/android/server/oemlock/OemLockService;)V
 PLcom/android/server/oemlock/OemLockService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/oemlock/OemLockService;-><init>(Landroid/content/Context;Lcom/android/server/oemlock/OemLock;)V
-PLcom/android/server/oemlock/OemLockService;->getOemLock(Landroid/content/Context;)Lcom/android/server/oemlock/OemLock;
 PLcom/android/server/oemlock/OemLockService;->onStart()V
-PLcom/android/server/oemlock/PersistentDataBlockLock;-><init>(Landroid/content/Context;)V
 PLcom/android/server/oemlock/VendorLockAidl;->getOemLockHalService()Landroid/hardware/oemlock/IOemLock;
-PLcom/android/server/oemlock/VendorLockHidl;->getOemLockHalService()Landroid/hardware/oemlock/V1_0/IOemLock;
-PLcom/android/server/om/IdmapDaemon$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/oemlock/VendorLockHidl;->getOemLockHalService()Landroid/hardware/oemlock/V1_0/IOemLock$Proxy;
 PLcom/android/server/om/IdmapDaemon$$ExternalSyntheticLambda0;->binderDied()V
 PLcom/android/server/om/IdmapDaemon$Connection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/om/IdmapDaemon$Connection;)V
 PLcom/android/server/om/IdmapDaemon$Connection$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/om/IdmapDaemon$Connection;->$r8$lambda$_PxKgIA4Eqf9yi0zZSqVFth5eU0(Lcom/android/server/om/IdmapDaemon$Connection;)V
-HPLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;Landroid/os/IIdmap2;)V
-PLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;Landroid/os/IIdmap2;Lcom/android/server/om/IdmapDaemon$Connection-IA;)V
-HPLcom/android/server/om/IdmapDaemon$Connection;->close()V
-PLcom/android/server/om/IdmapDaemon$Connection;->getIdmap2()Landroid/os/IIdmap2;
-PLcom/android/server/om/IdmapDaemon$Connection;->lambda$close$0()V
-PLcom/android/server/om/IdmapDaemon;->$r8$lambda$pEh2sDZUhfJliWY8-qy5fFqPH_A()V
-PLcom/android/server/om/IdmapDaemon;->-$$Nest$fgetmIdmapToken(Lcom/android/server/om/IdmapDaemon;)Ljava/lang/Object;
-PLcom/android/server/om/IdmapDaemon;->-$$Nest$fgetmOpenedCount(Lcom/android/server/om/IdmapDaemon;)Ljava/util/concurrent/atomic/AtomicInteger;
-PLcom/android/server/om/IdmapDaemon;->-$$Nest$fgetmService(Lcom/android/server/om/IdmapDaemon;)Landroid/os/IIdmap2;
-PLcom/android/server/om/IdmapDaemon;->-$$Nest$fputmService(Lcom/android/server/om/IdmapDaemon;Landroid/os/IIdmap2;)V
-PLcom/android/server/om/IdmapDaemon;->-$$Nest$smstopIdmapService()V
+PLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;Landroid/os/IIdmap2;)V
+PLcom/android/server/om/IdmapDaemon$Connection;->close()V
 PLcom/android/server/om/IdmapDaemon;-><init>()V
-HPLcom/android/server/om/IdmapDaemon;->connect()Lcom/android/server/om/IdmapDaemon$Connection;
-PLcom/android/server/om/IdmapDaemon;->createIdmap(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZI)Ljava/lang/String;
-PLcom/android/server/om/IdmapDaemon;->getFabricatedOverlayInfos()Ljava/util/List;
+PLcom/android/server/om/IdmapDaemon;->connect()Lcom/android/server/om/IdmapDaemon$Connection;
+PLcom/android/server/om/IdmapDaemon;->createIdmap(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
 PLcom/android/server/om/IdmapDaemon;->getIdmapService()Landroid/os/IBinder;
-PLcom/android/server/om/IdmapDaemon;->getInstance()Lcom/android/server/om/IdmapDaemon;
-PLcom/android/server/om/IdmapDaemon;->idmapExists(Ljava/lang/String;I)Z
-PLcom/android/server/om/IdmapDaemon;->lambda$getIdmapService$0()V
-PLcom/android/server/om/IdmapDaemon;->stopIdmapService()V
-HPLcom/android/server/om/IdmapDaemon;->verifyIdmap(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZI)Z
+PLcom/android/server/om/IdmapDaemon;->verifyIdmap(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
 PLcom/android/server/om/IdmapManager;-><clinit>()V
-PLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/IdmapDaemon;Lcom/android/server/om/PackageManagerHelper;)V
-HPLcom/android/server/om/IdmapManager;->calculateFulfilledPolicies(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/AndroidPackage;I)I
-HPLcom/android/server/om/IdmapManager;->createIdmap(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;Ljava/lang/String;I)I
-PLcom/android/server/om/IdmapManager;->enforceOverlayable(Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/AndroidPackage;)Z
+PLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/IdmapDaemon;Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;)V
+PLcom/android/server/om/IdmapManager;->calculateFulfilledPolicies(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/AndroidPackage;I)I
 PLcom/android/server/om/IdmapManager;->getFabricatedOverlayInfos()Ljava/util/List;
 PLcom/android/server/om/IdmapManager;->idmapExists(Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/IdmapManager;->matchesActorSignature(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;I)Z
-PLcom/android/server/om/OverlayActorEnforcer$ActorState;->$values()[Lcom/android/server/om/OverlayActorEnforcer$ActorState;
 PLcom/android/server/om/OverlayActorEnforcer$ActorState;-><clinit>()V
-PLcom/android/server/om/OverlayActorEnforcer$ActorState;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/om/OverlayActorEnforcer;-><init>(Lcom/android/server/om/PackageManagerHelper;)V
-HPLcom/android/server/om/OverlayActorEnforcer;->getPackageNameForActor(Ljava/lang/String;Ljava/util/Map;)Landroid/util/Pair;
+PLcom/android/server/om/OverlayActorEnforcer;-><init>(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;)V
+PLcom/android/server/om/OverlayActorEnforcer;->getPackageNameForActor(Ljava/lang/String;Ljava/util/Map;)Landroid/util/Pair;
+PLcom/android/server/om/OverlayActorEnforcer;->isAllowedActor(Ljava/lang/String;Landroid/content/om/OverlayInfo;II)Lcom/android/server/om/OverlayActorEnforcer$ActorState;
 PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V
 PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/om/OverlayManagerService;Ljava/util/List;ILandroid/util/ArraySet;)V
@@ -16681,366 +13092,277 @@
 PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda2;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda3;-><init>(ILandroid/app/ActivityManagerInternal;)V
 PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda3;->acceptOrThrow(Ljava/lang/Object;)V
-PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda4;-><init>()V
+PLcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/om/OverlayManagerService$1;-><init>(Lcom/android/server/om/OverlayManagerService;)V
-PLcom/android/server/om/OverlayManagerService$1;->getOverlayInfoByIdentifier(Landroid/content/om/OverlayIdentifier;I)Landroid/content/om/OverlayInfo;
+PLcom/android/server/om/OverlayManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/om/OverlayManagerService$1;->enforceActor(ILandroid/content/om/OverlayIdentifier;Ljava/lang/String;)V
 PLcom/android/server/om/OverlayManagerService$1;->handleIncomingUser(ILjava/lang/String;)I
+PLcom/android/server/om/OverlayManagerService$1;->setEnabled(Ljava/lang/String;ZI)Z
 PLcom/android/server/om/OverlayManagerService$OverlayManagerPackageMonitor;-><init>(Lcom/android/server/om/OverlayManagerService;)V
-PLcom/android/server/om/OverlayManagerService$OverlayManagerPackageMonitor;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$OverlayManagerPackageMonitor-IA;)V
+PLcom/android/server/om/OverlayManagerService$OverlayManagerPackageMonitor;->onPackageAppearedWithExtras(Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/om/OverlayManagerService$OverlayManagerPackageMonitor;->onPackageChangedWithExtras(Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/om/OverlayManagerService$OverlayManagerPackageMonitor;->onPackageDisappearedWithExtras(Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;I)V
 PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;->-$$Nest$fgetmInstalledUsers(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;)Ljava/util/Set;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;->-$$Nest$fgetmPackageState(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;)Lcom/android/server/pm/pkg/PackageState;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;-><init>(Lcom/android/server/pm/pkg/PackageState;)V
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;-><init>(Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers-IA;)V
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->$r8$lambda$OwbHhRYnQy2yMeQN_5EmmuVHt4k(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;ILcom/android/server/pm/pkg/PackageStateInternal;)V
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$PackageStateUsers;-><init>(Lcom/android/server/pm/pkg/PackageStateInternal;)V
 PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->addPackageUser(Lcom/android/server/pm/pkg/PackageState;I)Lcom/android/server/pm/pkg/PackageState;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getConfigSignaturePackage()Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getNamedActors()Ljava/util/Map;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getOverlayableForTarget(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/om/OverlayableInfo;
-HPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getPackageStateForUser(Ljava/lang/String;I)Lcom/android/server/pm/pkg/PackageState;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->initializeForUser(I)Landroid/util/ArrayMap;
-HPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->lambda$initializeForUser$0(ILcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->signaturesMatching(Ljava/lang/String;Ljava/lang/String;I)Z
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->addPackageUser(ILjava/lang/String;)Lcom/android/server/pm/pkg/PackageState;
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->addPackageUser(Lcom/android/server/pm/pkg/PackageStateInternal;I)Lcom/android/server/pm/pkg/PackageState;
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->doesTargetDefineOverlayable(ILjava/lang/String;)Z
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getPackageStateForUser(ILjava/lang/String;)Lcom/android/server/pm/pkg/PackageState;
+PLcom/android/server/om/OverlayManagerService$UserLifecycleListener;-><init>(Lcom/android/server/om/OverlayManagerService;)V
 PLcom/android/server/om/OverlayManagerService$UserReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;)V
-PLcom/android/server/om/OverlayManagerService$UserReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$UserReceiver-IA;)V
-PLcom/android/server/om/OverlayManagerService;->$r8$lambda$GzMpaQrsjSzVXIS6Ewd4ZVcwe0E(Landroid/util/SparseArray;Landroid/content/pm/UserPackage;)V
-PLcom/android/server/om/OverlayManagerService;->$r8$lambda$VKUwGCBEaC1c_ubMSsuE2Rf3650(ILandroid/app/ActivityManagerInternal;Ljava/lang/String;)V
-PLcom/android/server/om/OverlayManagerService;->$r8$lambda$gmoodzoVnIfdn8kZYi3Op37no2g(Lcom/android/server/om/OverlayManagerService;Ljava/util/List;ILandroid/util/ArraySet;)V
-PLcom/android/server/om/OverlayManagerService;->$r8$lambda$rFdAtDXTB46MBaeMgzs6tfJWKtk(Ljava/lang/String;Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/OverlayManagerService;->-$$Nest$fgetmImpl(Lcom/android/server/om/OverlayManagerService;)Lcom/android/server/om/OverlayManagerServiceImpl;
-PLcom/android/server/om/OverlayManagerService;->-$$Nest$fgetmLock(Lcom/android/server/om/OverlayManagerService;)Ljava/lang/Object;
-HPLcom/android/server/om/OverlayManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/om/OverlayManagerService;->broadcastActionOverlayChanged(Ljava/util/Set;I)V
+PLcom/android/server/om/OverlayManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/om/OverlayManagerService;->getDefaultOverlayPackages()[Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerService;->groupTargetsByUserId(Ljava/util/Set;)Landroid/util/SparseArray;
 PLcom/android/server/om/OverlayManagerService;->initIfNeeded()V
-HPLcom/android/server/om/OverlayManagerService;->lambda$broadcastActionOverlayChanged$3(ILandroid/app/ActivityManagerInternal;Ljava/lang/String;)V
-PLcom/android/server/om/OverlayManagerService;->lambda$groupTargetsByUserId$2(Landroid/util/SparseArray;Landroid/content/pm/UserPackage;)V
-PLcom/android/server/om/OverlayManagerService;->lambda$new$0(Ljava/lang/String;Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/OverlayManagerService;->lambda$updateTargetPackagesLocked$1(Ljava/util/List;ILandroid/util/ArraySet;)V
 PLcom/android/server/om/OverlayManagerService;->onStart()V
 PLcom/android/server/om/OverlayManagerService;->onStartUser(I)V
 PLcom/android/server/om/OverlayManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/om/OverlayManagerService;->persistSettingsLocked()V
 PLcom/android/server/om/OverlayManagerService;->restoreSettings()V
-PLcom/android/server/om/OverlayManagerService;->updateActivityManager(Ljava/util/List;I)V
-HPLcom/android/server/om/OverlayManagerService;->updatePackageManagerLocked(Ljava/util/Collection;I)Ljava/util/List;
+PLcom/android/server/om/OverlayManagerService;->updatePackageManagerLocked(Ljava/util/Collection;I)Ljava/util/List;
 PLcom/android/server/om/OverlayManagerService;->updateTargetPackagesLocked(Ljava/util/Set;)V
-PLcom/android/server/om/OverlayManagerServiceImpl$$ExternalSyntheticLambda0;-><init>(Landroid/util/ArrayMap;)V
+PLcom/android/server/om/OverlayManagerServiceImpl$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/om/OverlayManagerServiceImpl$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl$$ExternalSyntheticLambda2;-><init>(Ljava/util/Set;)V
 PLcom/android/server/om/OverlayManagerServiceImpl$$ExternalSyntheticLambda3;-><init>(ILjava/util/function/Predicate;)V
 PLcom/android/server/om/OverlayManagerServiceImpl$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;->$r8$lambda$4_u0zZtyj6jePmGinO-0D6huxCc(Landroid/util/ArrayMap;Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;->$r8$lambda$Tz06Z6gMGNWEvNzQgIVBx0FKDBw(ILjava/util/function/Predicate;Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/PackageManagerHelper;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;Lcom/android/internal/content/om/OverlayConfig;[Ljava/lang/String;)V
-PLcom/android/server/om/OverlayManagerServiceImpl;->calculateNewState(Landroid/content/om/OverlayInfo;Lcom/android/server/pm/pkg/AndroidPackage;III)I
-PLcom/android/server/om/OverlayManagerServiceImpl;->cleanStaleResourceCache()V
-HPLcom/android/server/om/OverlayManagerServiceImpl;->getEnabledOverlayPaths(Ljava/lang/String;IZ)Landroid/content/pm/overlay/OverlayPaths;
-PLcom/android/server/om/OverlayManagerServiceImpl;->getFabricatedOverlayInfos()Ljava/util/List;
-PLcom/android/server/om/OverlayManagerServiceImpl;->getOverlayInfo(Landroid/content/om/OverlayIdentifier;I)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerServiceImpl;->getPackageConfiguredPriority(Lcom/android/server/pm/pkg/AndroidPackage;)I
-PLcom/android/server/om/OverlayManagerServiceImpl;->isPackageConfiguredEnabled(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;->isPackageConfiguredMutable(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;->lambda$removeOverlaysForUser$2(ILjava/util/function/Predicate;Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;->lambda$updateOverlaysForUser$0(Landroid/util/ArrayMap;Landroid/content/om/OverlayInfo;)Z
-HPLcom/android/server/om/OverlayManagerServiceImpl;->mustReinitializeOverlay(Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/om/OverlayInfo;)Z
-PLcom/android/server/om/OverlayManagerServiceImpl;->removeOverlaysForUser(Ljava/util/function/Predicate;I)Ljava/util/Set;
-HPLcom/android/server/om/OverlayManagerServiceImpl;->updateOverlaysForUser(I)Landroid/util/ArraySet;
-HPLcom/android/server/om/OverlayManagerServiceImpl;->updatePackageOverlays(Lcom/android/server/pm/pkg/AndroidPackage;II)Ljava/util/Set;
-HPLcom/android/server/om/OverlayManagerServiceImpl;->updateState(Landroid/content/om/CriticalOverlayInfo;II)Z
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda11;-><init>()V
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda12;-><init>(I)V
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda12;->test(Ljava/lang/Object;)Z
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda2;->applyAsInt(Ljava/lang/Object;)I
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;)V
-HPLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda4;-><init>(Ljava/util/Set;)V
-PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/om/OverlayManagerSettings$BadKeyException;-><init>(Landroid/content/om/OverlayIdentifier;I)V
-PLcom/android/server/om/OverlayManagerSettings$Serializer;->persist(Ljava/util/ArrayList;Ljava/io/OutputStream;)V
-HPLcom/android/server/om/OverlayManagerSettings$Serializer;->persistRow(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
-PLcom/android/server/om/OverlayManagerSettings$Serializer;->restore(Ljava/util/ArrayList;Ljava/io/InputStream;)V
-HPLcom/android/server/om/OverlayManagerSettings$Serializer;->restoreRow(Lcom/android/modules/utils/TypedXmlPullParser;I)Lcom/android/server/om/OverlayManagerSettings$SettingsItem;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmBaseCodePath(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmCategory(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmIsEnabled(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmIsFabricated(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmIsMutable(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-HPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmOverlay(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayIdentifier;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmPriority(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmState(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmTargetOverlayableName(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmTargetPackageName(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-HPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$fgetmUserId(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+PLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;Lcom/android/internal/content/om/OverlayConfig;[Ljava/lang/String;)V
+PLcom/android/server/om/OverlayManagerServiceImpl;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
+PLcom/android/server/om/OverlayManagerServiceImpl;->getEnabledOverlayPaths(ILjava/lang/String;Z)Landroid/content/pm/overlay/OverlayPaths;
+PLcom/android/server/om/OverlayManagerServiceImpl;->mustReinitializeOverlay(Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/om/OverlayInfo;)Z
+PLcom/android/server/om/OverlayManagerServiceImpl;->reconcileSettingsForPackage(IILjava/lang/String;)Ljava/util/Set;
+PLcom/android/server/om/OverlayManagerServiceImpl;->removeOverlaysForUser(ILjava/util/function/Predicate;)Ljava/util/Set;
+PLcom/android/server/om/OverlayManagerServiceImpl;->setEnabled(ILandroid/content/om/OverlayIdentifier;Z)Ljava/util/Set;
+PLcom/android/server/om/OverlayManagerServiceImpl;->updateOverlaysForTarget(IILjava/lang/String;)Ljava/util/Set;
+PLcom/android/server/om/OverlayManagerServiceImpl;->updateOverlaysForUser(I)Landroid/util/ArraySet;
+PLcom/android/server/om/OverlayManagerServiceImpl;->updatePackageOverlays(Lcom/android/server/pm/pkg/AndroidPackage;II)Ljava/util/Set;
+PLcom/android/server/om/OverlayManagerServiceImpl;->updateState(Landroid/content/om/CriticalOverlayInfo;II)Z
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda0;-><init>(II)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda1;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda2;-><init>(ILjava/util/Set;)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/om/OverlayManagerSettings;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda9;-><init>(I)V
+PLcom/android/server/om/OverlayManagerSettings$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$mgetOverlayInfo(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$mgetPriority(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$mgetState(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$mgetTargetPackageName(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$mgetUserId(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$misEnabled(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$msetBaseCodePath(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$msetCategory(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->-$$Nest$msetState(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)Z
-HPLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Landroid/content/om/OverlayIdentifier;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZILjava/lang/String;Z)V
-HPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getOverlayInfo()Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getPriority()I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getState()I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getTargetPackageName()Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getUserId()I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->invalidateCache()V
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->isEnabled()Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setBaseCodePath(Ljava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setCategory(Ljava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setState(I)Z
-HPLcom/android/server/om/OverlayManagerSettings;->$r8$lambda$09biqz89cy9hpldr4q1PFVNuWP0(Ljava/lang/String;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings;->$r8$lambda$6NW65LIpjrluanlvM01K9BiQbu8(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings;->$r8$lambda$UJI7EebfpGNorHvdj0-tvz36dZM(ILcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings;->$r8$lambda$YzjH3ppJzDqsTP84tx6Vx4SWtMQ(Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/om/OverlayManagerSettings;->$r8$lambda$kDyA0E1XFyUdbniZy8flqK7NCTI(Ljava/util/Set;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
-PLcom/android/server/om/OverlayManagerSettings;->$r8$lambda$kdu1J4VP2rTGaX3uyigDkFiHHyI(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Landroid/content/om/OverlayIdentifier;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZILjava/lang/String;Z)V
 PLcom/android/server/om/OverlayManagerSettings;-><init>()V
-PLcom/android/server/om/OverlayManagerSettings;->getAllBaseCodePaths()Ljava/util/Set;
-HPLcom/android/server/om/OverlayManagerSettings;->getEnabled(Landroid/content/om/OverlayIdentifier;I)Z
-HPLcom/android/server/om/OverlayManagerSettings;->getNullableOverlayInfo(Landroid/content/om/OverlayIdentifier;I)Landroid/content/om/OverlayInfo;
-HPLcom/android/server/om/OverlayManagerSettings;->getOverlayInfo(Landroid/content/om/OverlayIdentifier;I)Landroid/content/om/OverlayInfo;
-HPLcom/android/server/om/OverlayManagerSettings;->getOverlaysForTarget(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/om/OverlayManagerSettings;->getNullableOverlayInfo(Landroid/content/om/OverlayIdentifier;I)Landroid/content/om/OverlayInfo;
+PLcom/android/server/om/OverlayManagerSettings;->getOverlayInfo(Landroid/content/om/OverlayIdentifier;I)Landroid/content/om/OverlayInfo;
+PLcom/android/server/om/OverlayManagerSettings;->getOverlaysForTarget(ILjava/lang/String;)Ljava/util/List;
 PLcom/android/server/om/OverlayManagerSettings;->getOverlaysForUser(I)Landroid/util/ArrayMap;
-HPLcom/android/server/om/OverlayManagerSettings;->getState(Landroid/content/om/OverlayIdentifier;I)I
 PLcom/android/server/om/OverlayManagerSettings;->getUsers()[I
-PLcom/android/server/om/OverlayManagerSettings;->init(Landroid/content/om/OverlayIdentifier;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZILjava/lang/String;Z)Landroid/content/om/OverlayInfo;
 PLcom/android/server/om/OverlayManagerSettings;->insert(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getAllBaseCodePaths$1(Ljava/util/Set;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$0(Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/om/OverlayManagerSettings;->lambda$selectWhereTarget$12(Ljava/lang/String;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-HPLcom/android/server/om/OverlayManagerSettings;->lambda$selectWhereUser$10(ILcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
 PLcom/android/server/om/OverlayManagerSettings;->persist(Ljava/io/OutputStream;)V
 PLcom/android/server/om/OverlayManagerSettings;->remove(Landroid/content/om/OverlayIdentifier;I)Z
 PLcom/android/server/om/OverlayManagerSettings;->removeIf(Ljava/util/function/Predicate;)Ljava/util/List;
 PLcom/android/server/om/OverlayManagerSettings;->restore(Ljava/io/InputStream;)V
-HPLcom/android/server/om/OverlayManagerSettings;->select(Landroid/content/om/OverlayIdentifier;I)I
-HPLcom/android/server/om/OverlayManagerSettings;->selectWhereTarget(Ljava/lang/String;I)Ljava/util/List;
-HPLcom/android/server/om/OverlayManagerSettings;->selectWhereUser(I)Ljava/util/List;
-HPLcom/android/server/om/OverlayManagerSettings;->setBaseCodePath(Landroid/content/om/OverlayIdentifier;ILjava/lang/String;)Z
-HPLcom/android/server/om/OverlayManagerSettings;->setCategory(Landroid/content/om/OverlayIdentifier;ILjava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings;->setState(Landroid/content/om/OverlayIdentifier;II)Z
-HSPLcom/android/server/om/OverlayReferenceMapper$1;-><init>(Lcom/android/server/om/OverlayReferenceMapper;)V
-HPLcom/android/server/om/OverlayReferenceMapper$1;->getActorPkg(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/om/OverlayReferenceMapper$1;->getTargetToOverlayables(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/util/Map;
-HSPLcom/android/server/om/OverlayReferenceMapper;-><init>(ZLcom/android/server/om/OverlayReferenceMapper$Provider;)V
-HPLcom/android/server/om/OverlayReferenceMapper;->addOverlay(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Collection;)V
+PLcom/android/server/om/OverlayManagerSettings;->select(Landroid/content/om/OverlayIdentifier;I)I
+PLcom/android/server/om/OverlayManagerSettings;->setBaseCodePath(ILandroid/content/om/OverlayIdentifier;Ljava/lang/String;)Z
+PLcom/android/server/om/OverlayManagerSettings;->setEnabled(ILandroid/content/om/OverlayIdentifier;Z)Z
+PLcom/android/server/om/OverlayReferenceMapper$1;->getActorPkg(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayReferenceMapper$1;->getTargetToOverlayables(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/util/Map;
+HSPLcom/android/server/om/OverlayReferenceMapper;-><init>(Lcom/android/server/om/OverlayReferenceMapper$Provider;)V
+HSPLcom/android/server/om/OverlayReferenceMapper;->addOverlay(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Collection;)V
 PLcom/android/server/om/OverlayReferenceMapper;->addOverlayToMap(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
-HPLcom/android/server/om/OverlayReferenceMapper;->addPkg(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;)Landroid/util/ArraySet;
-HPLcom/android/server/om/OverlayReferenceMapper;->addTarget(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Collection;)V
-HPLcom/android/server/om/OverlayReferenceMapper;->addTargetToMap(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
-HPLcom/android/server/om/OverlayReferenceMapper;->ensureMapBuilt()V
+HSPLcom/android/server/om/OverlayReferenceMapper;->addPkg(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;)Landroid/util/ArraySet;
+HPLcom/android/server/om/OverlayReferenceMapper;->addTarget(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Collection;)V+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Map;Ljava/util/Collections$EmptyMap;,Ljava/util/Collections$UnmodifiableMap;,Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;,Ljava/util/HashSet;
+PLcom/android/server/om/OverlayReferenceMapper;->addTargetToMap(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
 HPLcom/android/server/om/OverlayReferenceMapper;->isValidActor(Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/om/OverlayReferenceMapper;->rebuild()V
-PLcom/android/server/om/OverlayReferenceMapper;->rebuildIfDeferred()V
-PLcom/android/server/om/OverlayReferenceMapper;->removeOverlay(Ljava/lang/String;Ljava/util/Collection;)V
-HPLcom/android/server/om/OverlayReferenceMapper;->removeTarget(Ljava/lang/String;Ljava/util/Collection;)V
+HSPLcom/android/server/om/OverlayReferenceMapper;->removeOverlay(Ljava/lang/String;Ljava/util/Collection;)V
+PLcom/android/server/om/OverlayReferenceMapper;->removePkg(Ljava/lang/String;)Landroid/util/ArraySet;
+PLcom/android/server/om/OverlayReferenceMapper;->removeTarget(Ljava/lang/String;Ljava/util/Collection;)V
+PLcom/android/server/ondeviceintelligence/InferenceInfoStore;-><init>(J)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;I)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;Ljava/lang/String;I)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService$$ExternalSyntheticLambda2;->runOrThrow()V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService$1;-><init>(Lcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;-><clinit>()V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;->ensureRemoteInferenceServiceInitialized()V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;->getServiceNames()[Ljava/lang/String;
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;->onBootPhase(I)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;->onStart()V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService;->validateServiceElevated(Ljava/lang/String;Z)V
 PLcom/android/server/os/BugreportManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/os/BugreportManagerService;->onStart()V
 PLcom/android/server/os/BugreportManagerServiceImpl$BugreportFileManager;-><init>(Landroid/util/AtomicFile;)V
-PLcom/android/server/os/BugreportManagerServiceImpl$Injector;-><init>(Landroid/content/Context;Landroid/util/ArraySet;Landroid/util/AtomicFile;)V
-PLcom/android/server/os/BugreportManagerServiceImpl$Injector;->getAllowlistedPackages()Landroid/util/ArraySet;
-PLcom/android/server/os/BugreportManagerServiceImpl$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/os/BugreportManagerServiceImpl$Injector;->getMappingFile()Landroid/util/AtomicFile;
-PLcom/android/server/os/BugreportManagerServiceImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/os/BugreportManagerServiceImpl$BugreportFileManager;->canSkipConsentScreen(Ljava/lang/String;Z)Z
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;-><init>(Lcom/android/server/os/BugreportManagerServiceImpl;Landroid/os/IDumpstateListener;Landroid/os/IDumpstate;Landroid/util/Pair;ZZZZ)V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->binderDied()V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onFinished(Ljava/lang/String;)V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onProgress(I)V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->releaseItselfLocked()V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->reportFinishedLocked(Ljava/lang/String;)V
+PLcom/android/server/os/BugreportManagerServiceImpl$Injector$RoleManagerWrapper;-><init>(Lcom/android/server/os/BugreportManagerServiceImpl$Injector;)V
+PLcom/android/server/os/BugreportManagerServiceImpl;-><clinit>()V
 PLcom/android/server/os/BugreportManagerServiceImpl;-><init>(Lcom/android/server/os/BugreportManagerServiceImpl$Injector;)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->callerToString(Landroid/util/Pair;)Ljava/lang/String;
+PLcom/android/server/os/BugreportManagerServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->enforcePermission(ILjava/lang/String;Z)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->startAndGetDumpstateBinderServiceLocked()Landroid/os/IDumpstate;
+PLcom/android/server/os/BugreportManagerServiceImpl;->startBugreport(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;IILandroid/os/IDumpstateListener;ZZ)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->startBugreportLocked(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;IILandroid/os/IDumpstateListener;Z)V
 HSPLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;-><init>(Landroid/content/Context;)V
-PLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;->checkPackageBelongsToCaller(Ljava/lang/String;)Z
 PLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;->getSerial()Ljava/lang/String;
 PLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;->getSerialForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/os/DeviceIdentifiersPolicyService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/os/DeviceIdentifiersPolicyService;->onStart()V
-HPLcom/android/server/os/NativeTombstoneManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/os/NativeTombstoneManager;IIILjava/util/ArrayList;ILjava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/os/NativeTombstoneManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/os/NativeTombstoneManager;IIILjava/util/ArrayList;ILjava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/os/NativeTombstoneManager$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/os/NativeTombstoneManager$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/os/NativeTombstoneManager;)V
 PLcom/android/server/os/NativeTombstoneManager$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/os/NativeTombstoneManager$1;-><init>(Lcom/android/server/os/NativeTombstoneManager;)V
-PLcom/android/server/os/NativeTombstoneManager$2;-><init>(Lcom/android/server/os/NativeTombstoneManager;)V
-HPLcom/android/server/os/NativeTombstoneManager$TombstoneFile;->parse(Landroid/os/ParcelFileDescriptor;)Ljava/util/Optional;
-PLcom/android/server/os/NativeTombstoneManager$TombstoneWatcher$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/os/NativeTombstoneManager$TombstoneWatcher;Ljava/lang/String;)V
-PLcom/android/server/os/NativeTombstoneManager$TombstoneWatcher$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/os/NativeTombstoneManager$TombstoneWatcher;->$r8$lambda$A74hOANgR204PBre_Brq7oIduOU(Lcom/android/server/os/NativeTombstoneManager$TombstoneWatcher;Ljava/lang/String;)V
+PLcom/android/server/os/NativeTombstoneManager$1;-><init>(Lcom/android/server/os/NativeTombstoneManager;I)V
 PLcom/android/server/os/NativeTombstoneManager$TombstoneWatcher;-><init>(Lcom/android/server/os/NativeTombstoneManager;)V
-PLcom/android/server/os/NativeTombstoneManager$TombstoneWatcher;->lambda$onEvent$0(Ljava/lang/String;)V
-PLcom/android/server/os/NativeTombstoneManager$TombstoneWatcher;->onEvent(ILjava/lang/String;)V
-PLcom/android/server/os/NativeTombstoneManager;->$r8$lambda$d5FKVJLhf8wmcpGmXSaNGRF1qVM(Lcom/android/server/os/NativeTombstoneManager;IIILjava/util/ArrayList;ILjava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/os/NativeTombstoneManager;->$r8$lambda$gBT9xmTreiWpNj0UDSi2eO2Yau4(Lcom/android/server/os/NativeTombstoneManager;)V
-PLcom/android/server/os/NativeTombstoneManager;->-$$Nest$fgetmHandler(Lcom/android/server/os/NativeTombstoneManager;)Landroid/os/Handler;
-PLcom/android/server/os/NativeTombstoneManager;->-$$Nest$sfgetTAG()Ljava/lang/String;
-PLcom/android/server/os/NativeTombstoneManager;->-$$Nest$sfgetTOMBSTONE_DIR()Ljava/io/File;
 PLcom/android/server/os/NativeTombstoneManager;-><clinit>()V
 PLcom/android/server/os/NativeTombstoneManager;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/os/NativeTombstoneManager;->collectTombstones(Ljava/util/ArrayList;III)V
-HPLcom/android/server/os/NativeTombstoneManager;->handleProtoTombstone(Ljava/io/File;Z)Ljava/util/Optional;
-HPLcom/android/server/os/NativeTombstoneManager;->handleTombstone(Ljava/io/File;)V
-PLcom/android/server/os/NativeTombstoneManager;->lambda$collectTombstones$3(IIILjava/util/ArrayList;ILjava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/os/NativeTombstoneManager;->lambda$onSystemReady$0()V
-PLcom/android/server/os/NativeTombstoneManager;->onSystemReady()V
-PLcom/android/server/os/NativeTombstoneManager;->registerForPackageRemoval()V
-PLcom/android/server/os/NativeTombstoneManager;->registerForUserRemoval()V
+PLcom/android/server/os/NativeTombstoneManager;->collectTombstones(Ljava/util/ArrayList;III)V
 PLcom/android/server/os/NativeTombstoneManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/os/NativeTombstoneManagerService;->onBootPhase(I)V
 PLcom/android/server/os/NativeTombstoneManagerService;->onStart()V
 PLcom/android/server/os/SchedulingPolicyService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/os/SchedulingPolicyService;)V
 PLcom/android/server/os/SchedulingPolicyService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/os/SchedulingPolicyService$1;-><init>(Lcom/android/server/os/SchedulingPolicyService;)V
-PLcom/android/server/os/SchedulingPolicyService;->$r8$lambda$KlPgkKRnOe1m4zokkdzlozJ7zLQ(Lcom/android/server/os/SchedulingPolicyService;)V
 PLcom/android/server/os/SchedulingPolicyService;-><clinit>()V
 PLcom/android/server/os/SchedulingPolicyService;-><init>()V
-PLcom/android/server/os/SchedulingPolicyService;->disableCpusetBoost(I)I
-PLcom/android/server/os/SchedulingPolicyService;->isPermitted()Z
-PLcom/android/server/os/SchedulingPolicyService;->lambda$new$0()V
+PLcom/android/server/os/SchedulingPolicyService;->disableCpusetBoost(I)V
 PLcom/android/server/os/SchedulingPolicyService;->requestPriority(IIIZ)I
+PLcom/android/server/os/instrumentation/DynamicInstrumentationManagerService$BinderService;-><init>(Lcom/android/server/os/instrumentation/DynamicInstrumentationManagerService;)V
+PLcom/android/server/os/instrumentation/DynamicInstrumentationManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/os/instrumentation/DynamicInstrumentationManagerService;->onStart()V
 PLcom/android/server/pdb/PersistentDataBlockService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pdb/PersistentDataBlockService;)V
 PLcom/android/server/pdb/PersistentDataBlockService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/pdb/PersistentDataBlockService$1;-><init>(Lcom/android/server/pdb/PersistentDataBlockService;)V
+PLcom/android/server/pdb/PersistentDataBlockService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pdb/PersistentDataBlockService$1;->enforcePersistentDataBlockAccess()V
+PLcom/android/server/pdb/PersistentDataBlockService$1;->getDataBlockSize()I
+PLcom/android/server/pdb/PersistentDataBlockService$1;->getFlashLockState()I
 PLcom/android/server/pdb/PersistentDataBlockService$1;->getMaximumDataBlockSize()J
+PLcom/android/server/pdb/PersistentDataBlockService$1;->getOemUnlockEnabled()Z
+PLcom/android/server/pdb/PersistentDataBlockService$1;->hasFrpCredentialHandle()Z
+PLcom/android/server/pdb/PersistentDataBlockService$1;->isFactoryResetProtectionActive()Z
+PLcom/android/server/pdb/PersistentDataBlockService$1;->printFrpDataFileContents(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/pdb/PersistentDataBlockService$1;->printFrpStatus(Ljava/io/PrintWriter;Z)V
 PLcom/android/server/pdb/PersistentDataBlockService$1;->read()[B
+PLcom/android/server/pdb/PersistentDataBlockService$1;->setFactoryResetProtectionSecret([B)Z
 PLcom/android/server/pdb/PersistentDataBlockService$1;->write([B)I
 PLcom/android/server/pdb/PersistentDataBlockService$InternalService;-><init>(Lcom/android/server/pdb/PersistentDataBlockService;)V
-PLcom/android/server/pdb/PersistentDataBlockService$InternalService;-><init>(Lcom/android/server/pdb/PersistentDataBlockService;Lcom/android/server/pdb/PersistentDataBlockService$InternalService-IA;)V
-PLcom/android/server/pdb/PersistentDataBlockService$InternalService;->getAllowedUid()I
-PLcom/android/server/pdb/PersistentDataBlockService$InternalService;->getTestHarnessModeData()[B
-PLcom/android/server/pdb/PersistentDataBlockService$InternalService;->readInternal(JI)[B
-PLcom/android/server/pdb/PersistentDataBlockService;->$r8$lambda$konnAXJEAnzKBClo_dB4T2g6MZ4(Lcom/android/server/pdb/PersistentDataBlockService;)V
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$fgetmAllowedUid(Lcom/android/server/pdb/PersistentDataBlockService;)I
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$fgetmDataBlockFile(Lcom/android/server/pdb/PersistentDataBlockService;)Ljava/lang/String;
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$fgetmIsWritable(Lcom/android/server/pdb/PersistentDataBlockService;)Z
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$fgetmLock(Lcom/android/server/pdb/PersistentDataBlockService;)Ljava/lang/Object;
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$mcomputeAndWriteDigestLocked(Lcom/android/server/pdb/PersistentDataBlockService;)Z
+PLcom/android/server/pdb/PersistentDataBlockService$InternalService;->readInternal(IJ)[B
+PLcom/android/server/pdb/PersistentDataBlockService$InternalService;->writeDataBuffer(JLjava/nio/ByteBuffer;)Z
+PLcom/android/server/pdb/PersistentDataBlockService$InternalService;->writeInternal(J[BI)V
 PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$mdoGetMaximumDataBlockSize(Lcom/android/server/pdb/PersistentDataBlockService;)J
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$menforceChecksumValidity(Lcom/android/server/pdb/PersistentDataBlockService;)Z
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$menforceUid(Lcom/android/server/pdb/PersistentDataBlockService;I)V
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$mgetBlockOutputChannel(Lcom/android/server/pdb/PersistentDataBlockService;)Ljava/nio/channels/FileChannel;
-PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$mgetTotalDataSizeLocked(Lcom/android/server/pdb/PersistentDataBlockService;Ljava/io/DataInputStream;)I
+PLcom/android/server/pdb/PersistentDataBlockService;->-$$Nest$menforceOemUnlockReadPermission(Lcom/android/server/pdb/PersistentDataBlockService;)V
 PLcom/android/server/pdb/PersistentDataBlockService;-><clinit>()V
 PLcom/android/server/pdb/PersistentDataBlockService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pdb/PersistentDataBlockService;->automaticallyDeactivateFrpIfPossible()Z
 PLcom/android/server/pdb/PersistentDataBlockService;->computeAndWriteDigestLocked()Z
-HPLcom/android/server/pdb/PersistentDataBlockService;->computeDigestLocked([B)[B
-PLcom/android/server/pdb/PersistentDataBlockService;->doGetMaximumDataBlockSize()J
+PLcom/android/server/pdb/PersistentDataBlockService;->computeDigestLocked([B)[B
+PLcom/android/server/pdb/PersistentDataBlockService;->deactivateFrp([B)Z
+PLcom/android/server/pdb/PersistentDataBlockService;->deactivateFrpWithFileSecret(Ljava/lang/String;)Z
 PLcom/android/server/pdb/PersistentDataBlockService;->doGetOemUnlockEnabled()Z
 PLcom/android/server/pdb/PersistentDataBlockService;->enforceChecksumValidity()Z
 PLcom/android/server/pdb/PersistentDataBlockService;->enforceFactoryResetProtectionInactive()V
-PLcom/android/server/pdb/PersistentDataBlockService;->enforceUid(I)V
-PLcom/android/server/pdb/PersistentDataBlockService;->formatIfOemUnlockEnabled()V
-PLcom/android/server/pdb/PersistentDataBlockService;->getAllowedUid()I
+PLcom/android/server/pdb/PersistentDataBlockService;->enforceUid(IZ)V
 PLcom/android/server/pdb/PersistentDataBlockService;->getBlockDeviceSize()J
-PLcom/android/server/pdb/PersistentDataBlockService;->getBlockOutputChannel()Ljava/nio/channels/FileChannel;
-PLcom/android/server/pdb/PersistentDataBlockService;->getBlockOutputChannelIgnoringFrp()Ljava/nio/channels/FileChannel;
 PLcom/android/server/pdb/PersistentDataBlockService;->getFrpCredentialDataOffset()J
+PLcom/android/server/pdb/PersistentDataBlockService;->getFrpSecretDataOffset()J
+PLcom/android/server/pdb/PersistentDataBlockService;->getFrpSecretMagicOffset()J
 PLcom/android/server/pdb/PersistentDataBlockService;->getOemUnlockDataOffset()J
 PLcom/android/server/pdb/PersistentDataBlockService;->getTestHarnessModeDataOffset()J
-PLcom/android/server/pdb/PersistentDataBlockService;->getTotalDataSizeLocked(Ljava/io/DataInputStream;)I
-PLcom/android/server/pdb/PersistentDataBlockService;->lambda$onStart$0()V
+PLcom/android/server/pdb/PersistentDataBlockService;->isFrpActive()Z
+PLcom/android/server/pdb/PersistentDataBlockService;->moveFrpTempFileToPrimary()V
 PLcom/android/server/pdb/PersistentDataBlockService;->onBootPhase(I)V
 PLcom/android/server/pdb/PersistentDataBlockService;->onStart()V
-PLcom/android/server/pdb/PersistentDataBlockService;->setOemUnlockEnabledProperty(Z)V
-PLcom/android/server/pdb/PersistentDataBlockService;->setProperty(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pdb/PersistentDataBlockService;->readDataBlock(JI)[B
+PLcom/android/server/pdb/PersistentDataBlockService;->setOldSettingForBackworkCompatibility(Z)V
 PLcom/android/server/pdb/PersistentDataBlockService;->signalInitDone()V
-PLcom/android/server/pdb/PersistentDataBlockService;->waitForInitDoneSignal()V
 PLcom/android/server/people/PeopleService$1;-><init>(Lcom/android/server/people/PeopleService;)V
 PLcom/android/server/people/PeopleService$ConversationListenerHelper;-><init>()V
 PLcom/android/server/people/PeopleService$LocalService;-><init>(Lcom/android/server/people/PeopleService;)V
+PLcom/android/server/people/PeopleService$LocalService;->getBackupPayload(I)[B
+PLcom/android/server/people/PeopleService$LocalService;->pruneDataForUser(ILandroid/os/CancellationSignal;)V
 PLcom/android/server/people/PeopleService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/people/PeopleService;->getDataManager()Lcom/android/server/people/data/DataManager;
 PLcom/android/server/people/PeopleService;->initLazyStuff()V
 PLcom/android/server/people/PeopleService;->onStart()V
 PLcom/android/server/people/PeopleService;->onStart(Z)V
 PLcom/android/server/people/PeopleService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/people/PeopleServiceInternal;-><init>()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/ConversationStatusExpirationBroadcastReceiver;-><init>()V
-PLcom/android/server/people/data/ConversationStatusExpirationBroadcastReceiver;->getFilter()Landroid/content/IntentFilter;
+PLcom/android/server/people/data/CallLogQueryHelper;-><init>(Landroid/content/Context;Lcom/android/server/people/data/DataManager$CallLogContentObserver;)V
+PLcom/android/server/people/data/ContactsQueryHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/people/data/ContactsQueryHelper;->queryContact(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Z
+PLcom/android/server/people/data/DataMaintenanceService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataMaintenanceService;ILandroid/app/job/JobParameters;)V
+PLcom/android/server/people/data/DataMaintenanceService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/people/data/DataMaintenanceService;-><clinit>()V
-PLcom/android/server/people/data/DataMaintenanceService;->getJobId(I)I
+PLcom/android/server/people/data/DataMaintenanceService;-><init>()V
+PLcom/android/server/people/data/DataMaintenanceService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/people/data/DataMaintenanceService;->scheduleJob(Landroid/content/Context;I)V
-PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/people/data/DataManager;I)V
-PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataManager;II)V
+PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda11;-><init>(Ljava/util/Set;)V
+PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;)V
+PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda12;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/CancellationSignal;I)V
 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$CallLogContentObserver-IA;)V
+PLcom/android/server/people/data/DataManager$CallLogContentObserver;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/people/data/DataManager$CallLogContentObserver;->onChange(Z)V
 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$ContactsContentObserver-IA;)V
+PLcom/android/server/people/data/DataManager$ContactsContentObserver;->onChange(ZLandroid/net/Uri;I)V
 PLcom/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;
-PLcom/android/server/people/data/DataManager$Injector;->createMmsQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/MmsQueryHelper;
-PLcom/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;
-PLcom/android/server/people/data/DataManager$Injector;->createUsageStatsQueryHelper(ILjava/util/function/Function;Lcom/android/server/people/data/UsageStatsQueryHelper$EventListener;)Lcom/android/server/people/data/UsageStatsQueryHelper;
+PLcom/android/server/people/data/DataManager$MmsSmsContentObserver$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;Lcom/android/server/people/data/Event;I)V
+PLcom/android/server/people/data/DataManager$MmsSmsContentObserver$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 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$MmsSmsContentObserver-IA;)V
-PLcom/android/server/people/data/DataManager$NotificationListener$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/people/data/DataManager$NotificationListener;Landroid/service/notification/StatusBarNotification;Ljava/lang/String;)V
+PLcom/android/server/people/data/DataManager$NotificationListener$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataManager$NotificationListener;Landroid/service/notification/StatusBarNotification;Ljava/lang/String;I)V
 PLcom/android/server/people/data/DataManager$NotificationListener;-><init>(Lcom/android/server/people/data/DataManager;I)V
-PLcom/android/server/people/data/DataManager$NotificationListener;-><init>(Lcom/android/server/people/data/DataManager;ILcom/android/server/people/data/DataManager$NotificationListener-IA;)V
-PLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+PLcom/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;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+PLcom/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$PerUserBroadcastReceiver-IA;)V
 PLcom/android/server/people/data/DataManager$PerUserPackageMonitor;-><init>(Lcom/android/server/people/data/DataManager;)V
-PLcom/android/server/people/data/DataManager$PerUserPackageMonitor;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$PerUserPackageMonitor-IA;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataManager$ShortcutServiceCallback;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataManager$ShortcutServiceCallback;Ljava/util/List;Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;-><init>(Lcom/android/server/people/data/DataManager;)V
-PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$ShortcutServiceCallback-IA;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;->onShortcutsAddedOrUpdated(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;->onShortcutsRemoved(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
 PLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;)V
-PLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver-IA;)V
 PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;I)V
-HPLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->$r8$lambda$cVW9hPliqF0sjWNbpn4Xp9GLrWc(Lcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;ILjava/lang/String;)Lcom/android/server/people/data/PackageData;
+PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 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$UsageStatsQueryRunnable-IA;)V
-PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->lambda$new$0(ILjava/lang/String;)Lcom/android/server/people/data/PackageData;
 PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->run()V
-PLcom/android/server/people/data/DataManager;->$r8$lambda$1-ISRhLNWfPETJJig6xBTzQCJ7w(Lcom/android/server/people/data/DataManager;I)V
-PLcom/android/server/people/data/DataManager;->-$$Nest$fgetmContext(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
-PLcom/android/server/people/data/DataManager;->-$$Nest$fgetmInjector(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
+PLcom/android/server/people/data/DataManager;->-$$Nest$mforAllUnlockedUsers(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/DataManager;->-$$Nest$mgetPackageIfConversationExists(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;Ljava/util/function/Consumer;)Lcom/android/server/people/data/PackageData;
 PLcom/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;Landroid/os/Looper;)V
-PLcom/android/server/people/data/DataManager;->addConversationsListener(Lcom/android/server/people/PeopleService$ConversationsListener;)V
-PLcom/android/server/people/data/DataManager;->getPackage(Ljava/lang/String;I)Lcom/android/server/people/data/PackageData;
-PLcom/android/server/people/data/DataManager;->getPackageIfConversationExists(Landroid/service/notification/StatusBarNotification;Ljava/util/function/Consumer;)Lcom/android/server/people/data/PackageData;
-HPLcom/android/server/people/data/DataManager;->getUnlockedUserData(I)Lcom/android/server/people/data/UserData;
+PLcom/android/server/people/data/DataManager;->getPackage(ILjava/lang/String;)Lcom/android/server/people/data/PackageData;
+PLcom/android/server/people/data/DataManager;->getUnlockedUserData(I)Lcom/android/server/people/data/UserData;
 PLcom/android/server/people/data/DataManager;->initialize()V
-PLcom/android/server/people/data/DataManager;->lambda$onUserUnlocked$0(I)V
-PLcom/android/server/people/data/DataManager;->onUserUnlocked(I)V
-HPLcom/android/server/people/data/DataManager;->setupUser(I)V
-PLcom/android/server/people/data/DataManager;->updateDefaultDialer(Lcom/android/server/people/data/UserData;)V
-PLcom/android/server/people/data/DataManager;->updateDefaultSmsApp(Lcom/android/server/people/data/UserData;)V
+PLcom/android/server/people/data/DataManager;->removeConversations(ILjava/lang/String;Ljava/util/Set;)V
+PLcom/android/server/people/data/Event$Builder;-><init>(JI)V
+PLcom/android/server/people/data/Event;-><clinit>()V
+PLcom/android/server/people/data/Event;-><init>(Lcom/android/server/people/data/Event$Builder;)V
 PLcom/android/server/people/data/MmsQueryHelper;-><clinit>()V
-PLcom/android/server/people/data/MmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
-PLcom/android/server/people/data/PackageData;->packagesDataFromDisk(ILjava/util/function/Predicate;Ljava/util/function/Predicate;Ljava/util/concurrent/ScheduledExecutorService;Ljava/io/File;)Ljava/util/Map;
+PLcom/android/server/people/data/MmsQueryHelper;-><init>(Landroid/content/Context;Lcom/android/server/people/data/DataManager$MmsSmsContentObserver;)V
 PLcom/android/server/people/data/SmsQueryHelper;-><clinit>()V
-PLcom/android/server/people/data/SmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
-PLcom/android/server/people/data/UsageStatsQueryHelper;-><init>(ILjava/util/function/Function;Lcom/android/server/people/data/UsageStatsQueryHelper$EventListener;)V
-PLcom/android/server/people/data/UsageStatsQueryHelper;->getLastEventTimestamp()J
-PLcom/android/server/people/data/UsageStatsQueryHelper;->getUsageStatsManagerInternal()Landroid/app/usage/UsageStatsManagerInternal;
-PLcom/android/server/people/data/UsageStatsQueryHelper;->querySince(J)Z
-PLcom/android/server/people/data/UserData$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/people/data/UserData;)V
-PLcom/android/server/people/data/UserData$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/people/data/UserData;)V
-PLcom/android/server/people/data/UserData;-><clinit>()V
+PLcom/android/server/people/data/SmsQueryHelper;-><init>(Landroid/content/Context;Lcom/android/server/people/data/DataManager$MmsSmsContentObserver;)V
+PLcom/android/server/people/data/UsageStatsQueryHelper;-><init>(ILcom/android/server/people/data/DataManager$UsageStatsQueryRunnable$$ExternalSyntheticLambda0;Lcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;)V
+PLcom/android/server/people/data/UserData$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/people/data/UserData;I)V
 PLcom/android/server/people/data/UserData;-><init>(ILjava/util/concurrent/ScheduledExecutorService;)V
-HPLcom/android/server/people/data/UserData;->getPackageData(Ljava/lang/String;)Lcom/android/server/people/data/PackageData;
-PLcom/android/server/people/data/UserData;->getUserId()I
-PLcom/android/server/people/data/UserData;->isUnlocked()Z
+PLcom/android/server/people/data/UserData;->forAllPackages(Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/UserData;->loadUserData()V
-PLcom/android/server/people/data/UserData;->setDefaultDialer(Ljava/lang/String;)V
-PLcom/android/server/people/data/UserData;->setDefaultSmsApp(Ljava/lang/String;)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/permission/access/AccessCheckingService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/permission/access/AccessCheckingService;->access$getPersistence$p(Lcom/android/server/permission/access/AccessCheckingService;)Lcom/android/server/permission/access/AccessPersistence;
-HPLcom/android/server/permission/access/AccessCheckingService;->access$getPolicy$p(Lcom/android/server/permission/access/AccessCheckingService;)Lcom/android/server/permission/access/AccessPolicy;
+PLcom/android/server/permission/access/AccessCheckingService;->access$getPolicy$p(Lcom/android/server/permission/access/AccessCheckingService;)Lcom/android/server/permission/access/AccessPolicy;
 HPLcom/android/server/permission/access/AccessCheckingService;->access$getState$p(Lcom/android/server/permission/access/AccessCheckingService;)Lcom/android/server/permission/access/AccessState;
-HPLcom/android/server/permission/access/AccessCheckingService;->access$getStateLock$p(Lcom/android/server/permission/access/AccessCheckingService;)Ljava/lang/Object;
-HPLcom/android/server/permission/access/AccessCheckingService;->access$setState$p(Lcom/android/server/permission/access/AccessCheckingService;Lcom/android/server/permission/access/AccessState;)V
+PLcom/android/server/permission/access/AccessCheckingService;->access$getStateLock$p(Lcom/android/server/permission/access/AccessCheckingService;)Ljava/lang/Object;
+PLcom/android/server/permission/access/AccessCheckingService;->access$setState$p(Lcom/android/server/permission/access/AccessCheckingService;Lcom/android/server/permission/access/AccessState;)V
 HSPLcom/android/server/permission/access/AccessCheckingService;->getAllPackageStates(Lcom/android/server/pm/PackageManagerLocal;)Lcom/android/server/permission/jarjar/kotlin/Pair;
 HSPLcom/android/server/permission/access/AccessCheckingService;->getImplicitToSourcePermissions(Lcom/android/server/SystemConfig;)Lcom/android/server/permission/access/immutable/IndexedMap;
 HSPLcom/android/server/permission/access/AccessCheckingService;->getKnownPackages(Landroid/content/pm/PackageManagerInternal;)Lcom/android/server/permission/access/immutable/IntMap;
@@ -17048,2790 +13370,2114 @@
 HSPLcom/android/server/permission/access/AccessCheckingService;->getSchemePolicy$frameworks__base__services__permission__android_common__services_permission_pre_jarjar(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/permission/access/SchemePolicy;
 HSPLcom/android/server/permission/access/AccessCheckingService;->initialize()V
 HSPLcom/android/server/permission/access/AccessCheckingService;->isLeanback(Lcom/android/server/SystemConfig;)Z
+PLcom/android/server/permission/access/AccessCheckingService;->onPackageAdded$frameworks__base__services__permission__android_common__services_permission_pre_jarjar(Ljava/lang/String;)V
+PLcom/android/server/permission/access/AccessCheckingService;->onPackageInstalled$frameworks__base__services__permission__android_common__services_permission_pre_jarjar(Ljava/lang/String;I)V
 HSPLcom/android/server/permission/access/AccessCheckingService;->onStart()V
 PLcom/android/server/permission/access/AccessCheckingService;->onStorageVolumeMounted$frameworks__base__services__permission__android_common__services_permission_pre_jarjar(Ljava/lang/String;Ljava/util/List;Z)V
 PLcom/android/server/permission/access/AccessCheckingService;->onSystemReady$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()V
-HSPLcom/android/server/permission/access/AccessPersistence$Companion;-><init>()V
-HSPLcom/android/server/permission/access/AccessPersistence$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
 HSPLcom/android/server/permission/access/AccessPersistence$WriteHandler;-><init>(Lcom/android/server/permission/access/AccessPersistence;Landroid/os/Looper;)V
 PLcom/android/server/permission/access/AccessPersistence$WriteHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/permission/access/AccessPersistence;-><clinit>()V
 HSPLcom/android/server/permission/access/AccessPersistence;-><init>(Lcom/android/server/permission/access/AccessPolicy;)V
-PLcom/android/server/permission/access/AccessPersistence;->access$writePendingState(Lcom/android/server/permission/access/AccessPersistence;I)V
-HSPLcom/android/server/permission/access/AccessPersistence;->getSystemFile()Ljava/io/File;
-PLcom/android/server/permission/access/AccessPersistence;->getUserFile(I)Ljava/io/File;
-HSPLcom/android/server/permission/access/AccessPersistence;->initialize()V
-HSPLcom/android/server/permission/access/AccessPersistence;->read(Lcom/android/server/permission/access/MutableAccessState;)V
-HSPLcom/android/server/permission/access/AccessPersistence;->readSystemState(Lcom/android/server/permission/access/MutableAccessState;)V
-PLcom/android/server/permission/access/AccessPersistence;->readUserState(Lcom/android/server/permission/access/MutableAccessState;I)V
-HPLcom/android/server/permission/access/AccessPersistence;->write(Lcom/android/server/permission/access/AccessState;)V
-HPLcom/android/server/permission/access/AccessPersistence;->write(Lcom/android/server/permission/access/WritableState;Lcom/android/server/permission/access/AccessState;I)V
-HPLcom/android/server/permission/access/AccessPersistence;->writePendingState(I)V
-HPLcom/android/server/permission/access/AccessPersistence;->writeSystemState(Lcom/android/server/permission/access/AccessState;)V
-HPLcom/android/server/permission/access/AccessPersistence;->writeUserState(Lcom/android/server/permission/access/AccessState;I)V
-HSPLcom/android/server/permission/access/AccessPolicy$Companion;-><init>()V
-HSPLcom/android/server/permission/access/AccessPolicy$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/AccessPolicy;-><clinit>()V
+HPLcom/android/server/permission/access/AccessPersistence;->write(Lcom/android/server/permission/access/MutableAccessState;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/permission/access/AccessPersistence;->write(Lcom/android/server/permission/access/WritableState;Lcom/android/server/permission/access/MutableAccessState;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/permission/access/WritableState;Lcom/android/server/permission/access/MutableSystemState;,Lcom/android/server/permission/access/MutableUserState;
+PLcom/android/server/permission/access/AccessPersistence;->writePendingState(I)V
+PLcom/android/server/permission/access/AccessPersistence;->writeSystemState(Lcom/android/server/permission/access/AccessState;)V
+PLcom/android/server/permission/access/AccessPersistence;->writeUserState(Lcom/android/server/permission/access/AccessState;I)V
 HSPLcom/android/server/permission/access/AccessPolicy;-><init>()V
-HSPLcom/android/server/permission/access/AccessPolicy;-><init>(Lcom/android/server/permission/access/immutable/IndexedMap;)V
 HSPLcom/android/server/permission/access/AccessPolicy;->_init_$lambda$1$addPolicy(Lcom/android/server/permission/access/immutable/MutableIndexedMap;Lcom/android/server/permission/access/SchemePolicy;)V
-HSPLcom/android/server/permission/access/AccessPolicy;->getSchemePolicy(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/permission/access/SchemePolicy;
-HSPLcom/android/server/permission/access/AccessPolicy;->initialize(Lcom/android/server/permission/access/MutableAccessState;Lcom/android/server/permission/access/immutable/IntSet;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/IntMap;ZLjava/util/Map;Lcom/android/server/permission/access/immutable/IndexedListSet;Lcom/android/server/pm/permission/PermissionAllowlist;Lcom/android/server/permission/access/immutable/IndexedMap;)V
-PLcom/android/server/permission/access/AccessPolicy;->onInitialized(Lcom/android/server/permission/access/MutateStateScope;)V
-HPLcom/android/server/permission/access/AccessPolicy;->onStateMutated(Lcom/android/server/permission/access/GetStateScope;)V
-HPLcom/android/server/permission/access/AccessPolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/IntMap;Ljava/lang/String;Ljava/util/List;Z)V
-PLcom/android/server/permission/access/AccessPolicy;->onSystemReady(Lcom/android/server/permission/access/MutateStateScope;)V
-PLcom/android/server/permission/access/AccessPolicy;->parseDefaultPermissionGrant(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-HPLcom/android/server/permission/access/AccessPolicy;->parsePackageVersion(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
-HPLcom/android/server/permission/access/AccessPolicy;->parsePackageVersions(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
+PLcom/android/server/permission/access/AccessPolicy;->onPackageAdded(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/IntMap;Ljava/lang/String;)V
+PLcom/android/server/permission/access/AccessPolicy;->onPackageInstalled(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/IntMap;Ljava/lang/String;I)V
+PLcom/android/server/permission/access/AccessPolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/IntMap;Ljava/lang/String;Ljava/util/List;Z)V
 HSPLcom/android/server/permission/access/AccessPolicy;->parseSystemState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;)V
-HPLcom/android/server/permission/access/AccessPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-PLcom/android/server/permission/access/AccessPolicy;->serializeDefaultPermissionGrantFingerprint(Lcom/android/modules/utils/BinaryXmlSerializer;Ljava/lang/String;)V
-HPLcom/android/server/permission/access/AccessPolicy;->serializePackageVersions(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/immutable/IndexedMap;)V
-HPLcom/android/server/permission/access/AccessPolicy;->serializeSystemState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;)V
-HPLcom/android/server/permission/access/AccessPolicy;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HPLcom/android/server/permission/access/AccessPolicy;->upgradePackageVersion(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;I)V
+HSPLcom/android/server/permission/access/AccessPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
+PLcom/android/server/permission/access/AccessPolicy;->serializeSystemState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;)V
+HPLcom/android/server/permission/access/AccessPolicy;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V+]Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/modules/utils/BinaryXmlSerializer;]Lcom/android/server/permission/access/SchemePolicy;Lcom/android/server/permission/access/appop/AppIdAppOpPolicy;,Lcom/android/server/permission/access/appop/PackageAppOpPolicy;,Lcom/android/server/permission/access/permission/AppIdPermissionPolicy;,Lcom/android/server/permission/access/permission/DevicePermissionPolicy;]Ljava/lang/Number;Ljava/lang/Integer;
+PLcom/android/server/permission/access/AccessPolicy;->upgradePackageVersion(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;I)V
 HSPLcom/android/server/permission/access/AccessState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;)V
-HSPLcom/android/server/permission/access/AccessState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/AccessState;->getExternalState()Lcom/android/server/permission/access/ExternalState;
-HSPLcom/android/server/permission/access/AccessState;->getExternalStateReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-HPLcom/android/server/permission/access/AccessState;->getSystemState()Lcom/android/server/permission/access/SystemState;
-HSPLcom/android/server/permission/access/AccessState;->getSystemStateReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-HPLcom/android/server/permission/access/AccessState;->getUserStates()Lcom/android/server/permission/access/immutable/IntReferenceMap;
-HSPLcom/android/server/permission/access/AccessState;->getUserStatesReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
+HSPLcom/android/server/permission/access/AccessState;->getExternalState()Lcom/android/server/permission/access/MutableExternalState;
+HPLcom/android/server/permission/access/AccessState;->getSystemState()Lcom/android/server/permission/access/MutableSystemState;
+HPLcom/android/server/permission/access/AccessState;->getUserStates()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
 HPLcom/android/server/permission/access/AccessState;->toMutable()Lcom/android/server/permission/access/MutableAccessState;
-HSPLcom/android/server/permission/access/ExternalState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/IntMap;ZLjava/util/Map;Lcom/android/server/permission/access/immutable/IndexedListSet;Lcom/android/server/pm/permission/PermissionAllowlist;Lcom/android/server/permission/access/immutable/IndexedMap;Z)V
-HSPLcom/android/server/permission/access/ExternalState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/IntMap;ZLjava/util/Map;Lcom/android/server/permission/access/immutable/IndexedListSet;Lcom/android/server/pm/permission/PermissionAllowlist;Lcom/android/server/permission/access/immutable/IndexedMap;ZLcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/ExternalState;->getAppIdPackageNames()Lcom/android/server/permission/access/immutable/IntReferenceMap;
-HSPLcom/android/server/permission/access/ExternalState;->getAppIdPackageNamesReference()Lcom/android/server/permission/access/immutable/MutableReference;
-PLcom/android/server/permission/access/ExternalState;->getConfigPermissions()Ljava/util/Map;
-PLcom/android/server/permission/access/ExternalState;->getDisabledSystemPackageStates()Ljava/util/Map;
-PLcom/android/server/permission/access/ExternalState;->getImplicitToSourcePermissions()Lcom/android/server/permission/access/immutable/IndexedMap;
-PLcom/android/server/permission/access/ExternalState;->getKnownPackages()Lcom/android/server/permission/access/immutable/IntMap;
-HSPLcom/android/server/permission/access/ExternalState;->getPackageStates()Ljava/util/Map;
-PLcom/android/server/permission/access/ExternalState;->getPermissionAllowlist()Lcom/android/server/pm/permission/PermissionAllowlist;
-PLcom/android/server/permission/access/ExternalState;->getPrivilegedPermissionAllowlistPackages()Lcom/android/server/permission/access/immutable/IndexedListSet;
-HPLcom/android/server/permission/access/ExternalState;->getUserIds()Lcom/android/server/permission/access/immutable/IntSet;
-HSPLcom/android/server/permission/access/ExternalState;->getUserIdsReference()Lcom/android/server/permission/access/immutable/MutableReference;
-PLcom/android/server/permission/access/ExternalState;->isLeanback()Z
-PLcom/android/server/permission/access/ExternalState;->isSystemReady()Z
-HSPLcom/android/server/permission/access/ExternalState;->setConfigPermissions(Ljava/util/Map;)V
-HSPLcom/android/server/permission/access/ExternalState;->setDisabledSystemPackageStates(Ljava/util/Map;)V
-HSPLcom/android/server/permission/access/ExternalState;->setImplicitToSourcePermissions(Lcom/android/server/permission/access/immutable/IndexedMap;)V
-HSPLcom/android/server/permission/access/ExternalState;->setKnownPackages(Lcom/android/server/permission/access/immutable/IntMap;)V
-HSPLcom/android/server/permission/access/ExternalState;->setLeanback(Z)V
-HSPLcom/android/server/permission/access/ExternalState;->setPackageStates(Ljava/util/Map;)V
-HSPLcom/android/server/permission/access/ExternalState;->setPermissionAllowlist(Lcom/android/server/pm/permission/PermissionAllowlist;)V
-HSPLcom/android/server/permission/access/ExternalState;->setPrivilegedPermissionAllowlistPackages(Lcom/android/server/permission/access/immutable/IndexedListSet;)V
-PLcom/android/server/permission/access/ExternalState;->setSystemReady(Z)V
-PLcom/android/server/permission/access/ExternalState;->toMutable()Lcom/android/server/permission/access/MutableExternalState;
-PLcom/android/server/permission/access/ExternalState;->toMutable()Ljava/lang/Object;
 PLcom/android/server/permission/access/GetStateScope;-><init>(Lcom/android/server/permission/access/AccessState;)V
-PLcom/android/server/permission/access/GetStateScope;->getState()Lcom/android/server/permission/access/AccessState;
-HSPLcom/android/server/permission/access/MutableAccessState;-><init>()V
-HPLcom/android/server/permission/access/MutableAccessState;-><init>(Lcom/android/server/permission/access/AccessState;)V
-HSPLcom/android/server/permission/access/MutableAccessState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;)V
 HSPLcom/android/server/permission/access/MutableAccessState;->mutateExternalState()Lcom/android/server/permission/access/MutableExternalState;
-HPLcom/android/server/permission/access/MutableAccessState;->mutateSystemState$default(Lcom/android/server/permission/access/MutableAccessState;IILjava/lang/Object;)Lcom/android/server/permission/access/MutableSystemState;
-HSPLcom/android/server/permission/access/MutableAccessState;->mutateSystemState(I)Lcom/android/server/permission/access/MutableSystemState;
-PLcom/android/server/permission/access/MutableAccessState;->mutateUserState$default(Lcom/android/server/permission/access/MutableAccessState;IIILjava/lang/Object;)Lcom/android/server/permission/access/MutableUserState;
-PLcom/android/server/permission/access/MutableAccessState;->mutateUserState(II)Lcom/android/server/permission/access/MutableUserState;
-HSPLcom/android/server/permission/access/MutableAccessState;->mutateUserStatesNoWrite()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
-HSPLcom/android/server/permission/access/MutableExternalState;-><init>()V
-PLcom/android/server/permission/access/MutableExternalState;-><init>(Lcom/android/server/permission/access/ExternalState;)V
+HPLcom/android/server/permission/access/MutableAccessState;->mutateSystemState$default(Lcom/android/server/permission/access/MutableAccessState;)Lcom/android/server/permission/access/MutableSystemState;
+HSPLcom/android/server/permission/access/MutableAccessState;->mutateUserState(II)Lcom/android/server/permission/access/MutableUserState;
 HSPLcom/android/server/permission/access/MutableExternalState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/IntMap;ZLjava/util/Map;Lcom/android/server/permission/access/immutable/IndexedListSet;Lcom/android/server/pm/permission/PermissionAllowlist;Lcom/android/server/permission/access/immutable/IndexedMap;Z)V
-HSPLcom/android/server/permission/access/MutableExternalState;->mutateAppIdPackageNames()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
-HSPLcom/android/server/permission/access/MutableExternalState;->mutateUserIds()Lcom/android/server/permission/access/immutable/MutableIntSet;
-HSPLcom/android/server/permission/access/MutableExternalState;->setConfigPermissionsPublic(Ljava/util/Map;)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setDisabledSystemPackageStatesPublic(Ljava/util/Map;)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setImplicitToSourcePermissionsPublic(Lcom/android/server/permission/access/immutable/IndexedMap;)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setKnownPackagesPublic(Lcom/android/server/permission/access/immutable/IntMap;)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setLeanbackPublic(Z)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setPackageStatesPublic(Ljava/util/Map;)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setPermissionAllowlistPublic(Lcom/android/server/pm/permission/PermissionAllowlist;)V
-HSPLcom/android/server/permission/access/MutableExternalState;->setPrivilegedPermissionAllowlistPackagesPublic(Lcom/android/server/permission/access/immutable/IndexedListSet;)V
-PLcom/android/server/permission/access/MutableExternalState;->setSystemReadyPublic(Z)V
-HSPLcom/android/server/permission/access/MutableSystemState;-><init>()V
-PLcom/android/server/permission/access/MutableSystemState;-><init>(Lcom/android/server/permission/access/SystemState;)V
-HSPLcom/android/server/permission/access/MutableSystemState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;I)V
-PLcom/android/server/permission/access/MutableSystemState;->mutatePermissionGroups()Lcom/android/server/permission/access/immutable/MutableIndexedMap;
-HSPLcom/android/server/permission/access/MutableSystemState;->mutatePermissionTrees()Lcom/android/server/permission/access/immutable/MutableIndexedMap;
+HSPLcom/android/server/permission/access/MutableExternalState;->getAppIdPackageNames()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
+HSPLcom/android/server/permission/access/MutableExternalState;->getUserIds()Lcom/android/server/permission/access/immutable/MutableIntSet;
+PLcom/android/server/permission/access/MutableExternalState;->toMutable()Ljava/lang/Object;
+HSPLcom/android/server/permission/access/MutableSystemState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;)V
+PLcom/android/server/permission/access/MutableSystemState;->getPermissionGroups()Lcom/android/server/permission/access/immutable/IndexedMap;
+PLcom/android/server/permission/access/MutableSystemState;->getPermissionTrees()Lcom/android/server/permission/access/immutable/IndexedMap;
+HPLcom/android/server/permission/access/MutableSystemState;->getPermissions()Lcom/android/server/permission/access/immutable/IndexedMap;
+PLcom/android/server/permission/access/MutableSystemState;->getWriteMode()I
 HSPLcom/android/server/permission/access/MutableSystemState;->mutatePermissions()Lcom/android/server/permission/access/immutable/MutableIndexedMap;
-HSPLcom/android/server/permission/access/MutableSystemState;->requestWriteMode(I)V
+PLcom/android/server/permission/access/MutableSystemState;->toMutable()Ljava/lang/Object;
 HSPLcom/android/server/permission/access/MutableUserState;-><init>()V
-PLcom/android/server/permission/access/MutableUserState;-><init>(Lcom/android/server/permission/access/UserState;)V
-HSPLcom/android/server/permission/access/MutableUserState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Ljava/lang/String;I)V
-PLcom/android/server/permission/access/MutableUserState;->mutateAppIdAppOpModes()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
-PLcom/android/server/permission/access/MutableUserState;->mutateAppIdDevicePermissionFlags()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
-PLcom/android/server/permission/access/MutableUserState;->mutateAppIdPermissionFlags()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
-PLcom/android/server/permission/access/MutableUserState;->mutatePackageAppOpModes()Lcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;
-HPLcom/android/server/permission/access/MutableUserState;->mutatePackageVersions()Lcom/android/server/permission/access/immutable/MutableIndexedMap;
-PLcom/android/server/permission/access/MutableUserState;->requestWriteMode(I)V
-PLcom/android/server/permission/access/MutableUserState;->setDefaultPermissionGrantFingerprintPublic(Ljava/lang/String;)V
-HPLcom/android/server/permission/access/MutateStateScope;-><init>(Lcom/android/server/permission/access/AccessState;Lcom/android/server/permission/access/MutableAccessState;)V
-PLcom/android/server/permission/access/MutateStateScope;->getNewState()Lcom/android/server/permission/access/MutableAccessState;
-PLcom/android/server/permission/access/MutateStateScope;->getOldState()Lcom/android/server/permission/access/AccessState;
-HSPLcom/android/server/permission/access/SchemePolicy;-><init>()V
-PLcom/android/server/permission/access/SchemePolicy;->onAppIdAdded(Lcom/android/server/permission/access/MutateStateScope;I)V
-PLcom/android/server/permission/access/SchemePolicy;->onInitialized(Lcom/android/server/permission/access/MutateStateScope;)V
-PLcom/android/server/permission/access/SchemePolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Ljava/util/List;Z)V
-PLcom/android/server/permission/access/SchemePolicy;->onSystemReady(Lcom/android/server/permission/access/MutateStateScope;)V
+HSPLcom/android/server/permission/access/MutableUserState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Ljava/lang/String;)V
+HSPLcom/android/server/permission/access/MutableUserState;->getAppIdAppOpModes()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
+PLcom/android/server/permission/access/MutableUserState;->getAppIdDevicePermissionFlags()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
+HPLcom/android/server/permission/access/MutableUserState;->getAppIdPermissionFlags()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
+PLcom/android/server/permission/access/MutableUserState;->getPackageAppOpModes()Lcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;
+PLcom/android/server/permission/access/MutableUserState;->getWriteMode()I
+HSPLcom/android/server/permission/access/MutableUserState;->mutatePackageVersions()Lcom/android/server/permission/access/immutable/MutableIndexedMap;
+HSPLcom/android/server/permission/access/MutableUserState;->requestWriteMode(I)V
+PLcom/android/server/permission/access/MutableUserState;->toMutable()Ljava/lang/Object;
+PLcom/android/server/permission/access/MutateStateScope;-><init>(Lcom/android/server/permission/access/AccessState;Lcom/android/server/permission/access/MutableAccessState;)V
+PLcom/android/server/permission/access/SchemePolicy;->onPackageAdded(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;)V
+PLcom/android/server/permission/access/SchemePolicy;->onPackageInstalled(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;I)V
+PLcom/android/server/permission/access/SchemePolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/List;Z)V
+PLcom/android/server/permission/access/SchemePolicy;->onSystemReady()V
 HSPLcom/android/server/permission/access/SchemePolicy;->parseSystemState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;)V
 PLcom/android/server/permission/access/SchemePolicy;->serializeSystemState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;)V
-HSPLcom/android/server/permission/access/SystemState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;I)V
-HSPLcom/android/server/permission/access/SystemState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/SystemState;->getPermissionGroups()Lcom/android/server/permission/access/immutable/IndexedMap;
-PLcom/android/server/permission/access/SystemState;->getPermissionGroupsReference()Lcom/android/server/permission/access/immutable/MutableReference;
-HPLcom/android/server/permission/access/SystemState;->getPermissionTrees()Lcom/android/server/permission/access/immutable/IndexedMap;
-HSPLcom/android/server/permission/access/SystemState;->getPermissionTreesReference()Lcom/android/server/permission/access/immutable/MutableReference;
-HPLcom/android/server/permission/access/SystemState;->getPermissions()Lcom/android/server/permission/access/immutable/IndexedMap;
-HSPLcom/android/server/permission/access/SystemState;->getPermissionsReference()Lcom/android/server/permission/access/immutable/MutableReference;
-HSPLcom/android/server/permission/access/SystemState;->getWriteMode()I
-HSPLcom/android/server/permission/access/SystemState;->setWriteMode(I)V
-PLcom/android/server/permission/access/SystemState;->toMutable()Lcom/android/server/permission/access/MutableSystemState;
-PLcom/android/server/permission/access/SystemState;->toMutable()Ljava/lang/Object;
-HSPLcom/android/server/permission/access/UserState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Ljava/lang/String;I)V
-HSPLcom/android/server/permission/access/UserState;-><init>(Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Lcom/android/server/permission/access/immutable/MutableReference;Ljava/lang/String;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/UserState;->getAppIdAppOpModes()Lcom/android/server/permission/access/immutable/IntReferenceMap;
-PLcom/android/server/permission/access/UserState;->getAppIdAppOpModesReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-PLcom/android/server/permission/access/UserState;->getAppIdDevicePermissionFlags()Lcom/android/server/permission/access/immutable/IntReferenceMap;
-PLcom/android/server/permission/access/UserState;->getAppIdDevicePermissionFlagsReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-HPLcom/android/server/permission/access/UserState;->getAppIdPermissionFlags()Lcom/android/server/permission/access/immutable/IntReferenceMap;
-PLcom/android/server/permission/access/UserState;->getAppIdPermissionFlagsReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-PLcom/android/server/permission/access/UserState;->getDefaultPermissionGrantFingerprint()Ljava/lang/String;
-HPLcom/android/server/permission/access/UserState;->getPackageAppOpModes()Lcom/android/server/permission/access/immutable/IndexedReferenceMap;
-PLcom/android/server/permission/access/UserState;->getPackageAppOpModesReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-HPLcom/android/server/permission/access/UserState;->getPackageVersions()Lcom/android/server/permission/access/immutable/IndexedMap;
-PLcom/android/server/permission/access/UserState;->getPackageVersionsReference$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Lcom/android/server/permission/access/immutable/MutableReference;
-PLcom/android/server/permission/access/UserState;->getWriteMode()I
-PLcom/android/server/permission/access/UserState;->setDefaultPermissionGrantFingerprint(Ljava/lang/String;)V
-PLcom/android/server/permission/access/UserState;->setWriteMode(I)V
-PLcom/android/server/permission/access/UserState;->toMutable()Lcom/android/server/permission/access/MutableUserState;
-PLcom/android/server/permission/access/UserState;->toMutable()Ljava/lang/Object;
-HSPLcom/android/server/permission/access/appop/AppIdAppOpMigration$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpMigration$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpMigration;-><clinit>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpMigration;-><init>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPersistence$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPersistence$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;-><clinit>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;-><init>()V
-HPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->parseAppId(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;)V
-HPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->parseAppIdAppOps(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-PLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-HPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->serializeAppId(Lcom/android/modules/utils/BinaryXmlSerializer;ILcom/android/server/permission/access/immutable/IndexedMap;)V
-HPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->serializeAppIdAppOps(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/immutable/IntReferenceMap;)V
-PLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPolicy$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPolicy$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/appop/AppIdAppOpPolicy$OnAppOpModeChangedListener;-><init>()V
-HSPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;-><clinit>()V
+HSPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
+HPLcom/android/server/permission/access/appop/AppIdAppOpPersistence;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
 HSPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;-><init>()V
-PLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->addOnAppOpModeChangedListener(Lcom/android/server/permission/access/appop/AppIdAppOpPolicy$OnAppOpModeChangedListener;)V
-HPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->getAppOpMode(Lcom/android/server/permission/access/GetStateScope;IILjava/lang/String;)I
-HPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->getAppOpModes(Lcom/android/server/permission/access/GetStateScope;II)Lcom/android/server/permission/access/immutable/IndexedMap;
 HSPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->getSubjectScheme()Ljava/lang/String;
-HPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->onStateMutated(Lcom/android/server/permission/access/GetStateScope;)V
-PLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->removeAppOpModes(Lcom/android/server/permission/access/MutateStateScope;II)Z
-HPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->setAppOpMode(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;I)Z
+HPLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->onStateMutated()V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Ljava/lang/Number;Ljava/lang/Integer;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/permission/access/appop/AppIdAppOpPolicy;->setAppOpMode(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;I)Z
 HSPLcom/android/server/permission/access/appop/AppIdAppOpUpgrade;-><init>(Lcom/android/server/permission/access/appop/AppIdAppOpPolicy;)V
-PLcom/android/server/permission/access/appop/AppOpService$OnAppIdAppOpModeChangedListener;-><init>(Lcom/android/server/permission/access/appop/AppOpService;)V
-HPLcom/android/server/permission/access/appop/AppOpService$OnAppIdAppOpModeChangedListener;->onStateMutated()V
-PLcom/android/server/permission/access/appop/AppOpService$OnPackageAppOpModeChangedListener;-><init>(Lcom/android/server/permission/access/appop/AppOpService;)V
-HPLcom/android/server/permission/access/appop/AppOpService$OnPackageAppOpModeChangedListener;->onStateMutated()V
+HSPLcom/android/server/permission/access/appop/AppOpService$OnAppIdAppOpModeChangedListener;-><init>(Lcom/android/server/permission/access/appop/AppOpService;)V
+HSPLcom/android/server/permission/access/appop/AppOpService$OnPackageAppOpModeChangedListener;-><init>(Lcom/android/server/permission/access/appop/AppOpService;)V
+PLcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;-><init>(Lcom/android/server/permission/access/appop/AppOpService;)V
+PLcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;->addPendingChangedModeIfNeeded(IILjava/lang/String;IIIII)V
+PLcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;->onDevicePermissionFlagsChanged(IILjava/lang/String;Ljava/lang/String;II)V
+PLcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;->onPermissionFlagsChanged(IIIILjava/lang/String;)V
+HPLcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;->onStateMutated()V+]Ljava/lang/Number;Ljava/lang/Integer;
 HSPLcom/android/server/permission/access/appop/AppOpService;-><init>(Lcom/android/server/permission/access/AccessCheckingService;)V
-PLcom/android/server/permission/access/appop/AppOpService;->access$getAppIdPolicy$p(Lcom/android/server/permission/access/appop/AppOpService;)Lcom/android/server/permission/access/appop/AppIdAppOpPolicy;
-HPLcom/android/server/permission/access/appop/AppOpService;->access$getListeners$p(Lcom/android/server/permission/access/appop/AppOpService;)Landroid/util/ArraySet;
-PLcom/android/server/permission/access/appop/AppOpService;->access$getPackagePolicy$p(Lcom/android/server/permission/access/appop/AppOpService;)Lcom/android/server/permission/access/appop/PackageAppOpPolicy;
-HSPLcom/android/server/permission/access/appop/AppOpService;->addAppOpsModeChangedListener(Lcom/android/server/appop/AppOpsCheckingServiceInterface$AppOpsModeChangedListener;)Z
+HSPLcom/android/server/permission/access/appop/AppOpService;->addAppOpsModeChangedListener(Lcom/android/server/appop/AppOpsService$2;)Z
 HSPLcom/android/server/permission/access/appop/AppOpService;->clearAllModes()V
-HPLcom/android/server/permission/access/appop/AppOpService;->getForegroundOps(ILjava/lang/String;)Landroid/util/SparseBooleanArray;
-HPLcom/android/server/permission/access/appop/AppOpService;->getForegroundOps(Ljava/lang/String;I)Landroid/util/SparseBooleanArray;
-HPLcom/android/server/permission/access/appop/AppOpService;->getNonDefaultPackageModes(Ljava/lang/String;I)Landroid/util/SparseIntArray;
-HPLcom/android/server/permission/access/appop/AppOpService;->getPackageMode(Ljava/lang/String;II)I
-HPLcom/android/server/permission/access/appop/AppOpService;->getPackageModes(Ljava/lang/String;I)Landroid/util/ArrayMap;
-HPLcom/android/server/permission/access/appop/AppOpService;->getUidMode(ILjava/lang/String;I)I
-HPLcom/android/server/permission/access/appop/AppOpService;->getUidModes(I)Landroid/util/ArrayMap;
-PLcom/android/server/permission/access/appop/AppOpService;->initialize()V
+HPLcom/android/server/permission/access/appop/AppOpService;->evaluateModeFromPermissionFlags(II)I
+HPLcom/android/server/permission/access/appop/AppOpService;->getForegroundOps(I)Landroid/util/SparseBooleanArray;+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/lang/Number;Ljava/lang/Integer;
+HPLcom/android/server/permission/access/appop/AppOpService;->getForegroundOps(ILjava/lang/String;)Landroid/util/SparseBooleanArray;+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+PLcom/android/server/permission/access/appop/AppOpService;->getNonDefaultPackageModes(ILjava/lang/String;)Landroid/util/SparseIntArray;
+HPLcom/android/server/permission/access/appop/AppOpService;->getNonDefaultUidModes(I)Landroid/util/SparseIntArray;+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/lang/Number;Ljava/lang/Integer;
+HPLcom/android/server/permission/access/appop/AppOpService;->getPackageMode(IILjava/lang/String;)I+]Ljava/lang/Number;Ljava/lang/Integer;
+HPLcom/android/server/permission/access/appop/AppOpService;->getPackageModes(ILjava/lang/String;)Landroid/util/ArrayMap;
+HPLcom/android/server/permission/access/appop/AppOpService;->getUidMode(IILjava/lang/String;)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Number;Ljava/lang/Integer;
+HPLcom/android/server/permission/access/appop/AppOpService;->getUidModeFromPermissionState(IILcom/android/server/permission/access/GetStateScope;Ljava/lang/String;Ljava/lang/String;)I
 PLcom/android/server/permission/access/appop/AppOpService;->opNameMapToOpSparseArray(Landroid/util/ArrayMap;)Landroid/util/SparseIntArray;
 HSPLcom/android/server/permission/access/appop/AppOpService;->readState()V
-HPLcom/android/server/permission/access/appop/AppOpService;->removePackage(Ljava/lang/String;I)Z
-PLcom/android/server/permission/access/appop/AppOpService;->removeUid(I)V
-HPLcom/android/server/permission/access/appop/AppOpService;->setUidMode(ILjava/lang/String;II)Z
+PLcom/android/server/permission/access/appop/AppOpService;->setPackageMode(IIILjava/lang/String;)V
+HPLcom/android/server/permission/access/appop/AppOpService;->setUidMode(III)Z
 PLcom/android/server/permission/access/appop/AppOpService;->systemReady()V
-HSPLcom/android/server/permission/access/appop/BaseAppOpPersistence$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/BaseAppOpPersistence$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/appop/BaseAppOpPersistence;-><clinit>()V
-HSPLcom/android/server/permission/access/appop/BaseAppOpPersistence;-><init>()V
-HPLcom/android/server/permission/access/appop/BaseAppOpPersistence;->parseAppOp(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
-HPLcom/android/server/permission/access/appop/BaseAppOpPersistence;->parseAppOps(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
-PLcom/android/server/permission/access/appop/BaseAppOpPersistence;->serializeAppOp(Lcom/android/modules/utils/BinaryXmlSerializer;Ljava/lang/String;I)V
-PLcom/android/server/permission/access/appop/BaseAppOpPersistence;->serializeAppOps(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/immutable/IndexedMap;)V
+HSPLcom/android/server/permission/access/appop/BaseAppOpPersistence;->parseAppOps(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
+HPLcom/android/server/permission/access/appop/BaseAppOpPersistence;->serializeAppOps(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/immutable/IndexedMap;)V
 HSPLcom/android/server/permission/access/appop/BaseAppOpPolicy;-><init>(Lcom/android/server/permission/access/appop/BaseAppOpPersistence;)V
 HSPLcom/android/server/permission/access/appop/BaseAppOpPolicy;->getObjectScheme()Ljava/lang/String;
-PLcom/android/server/permission/access/appop/BaseAppOpPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
+HSPLcom/android/server/permission/access/appop/BaseAppOpPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
 PLcom/android/server/permission/access/appop/BaseAppOpPolicy;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HSPLcom/android/server/permission/access/appop/PackageAppOpMigration$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpMigration$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/appop/PackageAppOpMigration;-><clinit>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpMigration;-><init>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPersistence$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPersistence$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPersistence;-><clinit>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPersistence;-><init>()V
-PLcom/android/server/permission/access/appop/PackageAppOpPersistence;->parsePackage(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;)V
-PLcom/android/server/permission/access/appop/PackageAppOpPersistence;->parsePackageAppOps(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-PLcom/android/server/permission/access/appop/PackageAppOpPersistence;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-PLcom/android/server/permission/access/appop/PackageAppOpPersistence;->serializePackage(Lcom/android/modules/utils/BinaryXmlSerializer;Ljava/lang/String;Lcom/android/server/permission/access/immutable/IndexedMap;)V
-PLcom/android/server/permission/access/appop/PackageAppOpPersistence;->serializePackageAppOps(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/immutable/IndexedReferenceMap;)V
+HSPLcom/android/server/permission/access/appop/PackageAppOpPersistence;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
 PLcom/android/server/permission/access/appop/PackageAppOpPersistence;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPolicy$Companion;-><init>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPolicy$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/appop/PackageAppOpPolicy$OnAppOpModeChangedListener;-><init>()V
-HSPLcom/android/server/permission/access/appop/PackageAppOpPolicy;-><clinit>()V
 HSPLcom/android/server/permission/access/appop/PackageAppOpPolicy;-><init>()V
-PLcom/android/server/permission/access/appop/PackageAppOpPolicy;->addOnAppOpModeChangedListener(Lcom/android/server/permission/access/appop/PackageAppOpPolicy$OnAppOpModeChangedListener;)V
-HPLcom/android/server/permission/access/appop/PackageAppOpPolicy;->getAppOpMode(Lcom/android/server/permission/access/GetStateScope;Ljava/lang/String;ILjava/lang/String;)I
-HPLcom/android/server/permission/access/appop/PackageAppOpPolicy;->getAppOpModes(Lcom/android/server/permission/access/GetStateScope;Ljava/lang/String;I)Lcom/android/server/permission/access/immutable/IndexedMap;
 HSPLcom/android/server/permission/access/appop/PackageAppOpPolicy;->getSubjectScheme()Ljava/lang/String;
-HPLcom/android/server/permission/access/appop/PackageAppOpPolicy;->onStateMutated(Lcom/android/server/permission/access/GetStateScope;)V
-HPLcom/android/server/permission/access/appop/PackageAppOpPolicy;->removeAppOpModes(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;I)Z
+HPLcom/android/server/permission/access/appop/PackageAppOpPolicy;->onStateMutated()V+]Ljava/lang/Number;Ljava/lang/Integer;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/permission/access/appop/PackageAppOpPolicy;->setAppOpMode(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;ILjava/lang/String;I)V
 HSPLcom/android/server/permission/access/appop/PackageAppOpUpgrade;-><init>(Lcom/android/server/permission/access/appop/PackageAppOpPolicy;)V
-HSPLcom/android/server/permission/access/collection/ArraySetExtensionsKt;->arraySetOf([Ljava/lang/Object;)Landroid/util/ArraySet;
-PLcom/android/server/permission/access/immutable/IndexedList;-><init>(Ljava/util/ArrayList;)V
-HPLcom/android/server/permission/access/immutable/IndexedList;-><init>(Ljava/util/ArrayList;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/IndexedList;->get(I)Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/IndexedList;->getList$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Ljava/util/ArrayList;
-HPLcom/android/server/permission/access/immutable/IndexedList;->getSize()I
 HSPLcom/android/server/permission/access/immutable/IndexedListSet;-><init>(Ljava/util/ArrayList;)V
-HSPLcom/android/server/permission/access/immutable/IndexedListSet;-><init>(Ljava/util/ArrayList;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/immutable/IndexedListSet;->contains(Ljava/lang/Object;)Z
-HPLcom/android/server/permission/access/immutable/IndexedListSet;->elementAt(I)Ljava/lang/Object;
-HSPLcom/android/server/permission/access/immutable/IndexedListSet;->getList$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Ljava/util/ArrayList;
-HPLcom/android/server/permission/access/immutable/IndexedListSet;->getSize()I
-HPLcom/android/server/permission/access/immutable/IndexedListSet;->toMutable()Lcom/android/server/permission/access/immutable/MutableIndexedListSet;
 PLcom/android/server/permission/access/immutable/IndexedListSet;->toMutable()Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/IndexedListSetExtensionsKt;->plus(Lcom/android/server/permission/access/immutable/IndexedListSet;Ljava/lang/Object;)Lcom/android/server/permission/access/immutable/MutableIndexedListSet;
 HSPLcom/android/server/permission/access/immutable/IndexedMap;-><init>(Landroid/util/ArrayMap;)V
-HSPLcom/android/server/permission/access/immutable/IndexedMap;-><init>(Landroid/util/ArrayMap;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/immutable/IndexedMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/permission/access/immutable/IndexedMap;->getMap$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Landroid/util/ArrayMap;
-HSPLcom/android/server/permission/access/immutable/IndexedMap;->getSize()I
-HPLcom/android/server/permission/access/immutable/IndexedMap;->indexOfKey(Ljava/lang/Object;)I
-HSPLcom/android/server/permission/access/immutable/IndexedMap;->keyAt(I)Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/IndexedMap;->toMutable()Lcom/android/server/permission/access/immutable/MutableIndexedMap;
 PLcom/android/server/permission/access/immutable/IndexedMap;->toMutable()Ljava/lang/Object;
-HSPLcom/android/server/permission/access/immutable/IndexedMap;->valueAt(I)Ljava/lang/Object;
 HPLcom/android/server/permission/access/immutable/IndexedMapExtensionsKt;->getWithDefault(Lcom/android/server/permission/access/immutable/IndexedMap;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/IndexedMapExtensionsKt;->putWithDefault(Lcom/android/server/permission/access/immutable/MutableIndexedMap;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/permission/access/immutable/IndexedReferenceMap;-><init>(Landroid/util/ArrayMap;)V
-HSPLcom/android/server/permission/access/immutable/IndexedReferenceMap;-><init>(Landroid/util/ArrayMap;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/immutable/IndexedReferenceMap;->get(Ljava/lang/Object;)Lcom/android/server/permission/access/immutable/Immutable;
-PLcom/android/server/permission/access/immutable/IndexedReferenceMap;->getMap$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Landroid/util/ArrayMap;
-PLcom/android/server/permission/access/immutable/IndexedReferenceMap;->getSize()I
-HPLcom/android/server/permission/access/immutable/IndexedReferenceMap;->indexOfKey(Ljava/lang/Object;)I
-PLcom/android/server/permission/access/immutable/IndexedReferenceMap;->keyAt(I)Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/IndexedReferenceMap;->valueAt(I)Lcom/android/server/permission/access/immutable/Immutable;
-HSPLcom/android/server/permission/access/immutable/IndexedSet;-><init>(Landroid/util/ArraySet;)V
-HSPLcom/android/server/permission/access/immutable/IndexedSet;-><init>(Landroid/util/ArraySet;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/IndexedSet;->elementAt(I)Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/IndexedSet;->getSet$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Landroid/util/ArraySet;
-HPLcom/android/server/permission/access/immutable/IndexedSet;->getSize()I
-PLcom/android/server/permission/access/immutable/IndexedSet;->isEmpty()Z
-HSPLcom/android/server/permission/access/immutable/IndexedSetExtensionsKt;->indexedSetOf([Ljava/lang/Object;)Lcom/android/server/permission/access/immutable/IndexedSet;
-HPLcom/android/server/permission/access/immutable/IndexedSetExtensionsKt;->plusAssign(Lcom/android/server/permission/access/immutable/MutableIndexedSet;Ljava/util/Collection;)V
+PLcom/android/server/permission/access/immutable/IndexedMapExtensionsKt;->putWithDefault(Lcom/android/server/permission/access/immutable/MutableIndexedMap;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/permission/access/immutable/IndexedSetExtensionsKt;->indexedSetOf([Ljava/lang/Object;)Lcom/android/server/permission/access/immutable/MutableIndexedSet;
 HSPLcom/android/server/permission/access/immutable/IntMap;-><init>(Landroid/util/SparseArray;)V
-HSPLcom/android/server/permission/access/immutable/IntMap;-><init>(Landroid/util/SparseArray;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/IntMap;->get(I)Ljava/lang/Object;
-HSPLcom/android/server/permission/access/immutable/IntMap;->getArray$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Landroid/util/SparseArray;
-HPLcom/android/server/permission/access/immutable/IntMap;->getSize()I
-HSPLcom/android/server/permission/access/immutable/IntMapExtensionsKt;->set(Lcom/android/server/permission/access/immutable/MutableIntMap;ILjava/lang/Object;)V
-PLcom/android/server/permission/access/immutable/IntMapKt;->gc(Landroid/util/SparseArray;)V
-HSPLcom/android/server/permission/access/immutable/IntMapKt;->putReturnOld(Landroid/util/SparseArray;ILjava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/permission/access/immutable/IntReferenceMap;-><init>(Landroid/util/SparseArray;)V
-HSPLcom/android/server/permission/access/immutable/IntReferenceMap;-><init>(Landroid/util/SparseArray;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/immutable/IntReferenceMap;->contains(I)Z
-HPLcom/android/server/permission/access/immutable/IntReferenceMap;->get(I)Lcom/android/server/permission/access/immutable/Immutable;
-HSPLcom/android/server/permission/access/immutable/IntReferenceMap;->getArray$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Landroid/util/SparseArray;
-HPLcom/android/server/permission/access/immutable/IntReferenceMap;->getSize()I
-PLcom/android/server/permission/access/immutable/IntReferenceMap;->indexOfKey(I)I
-HPLcom/android/server/permission/access/immutable/IntReferenceMap;->keyAt(I)I
-PLcom/android/server/permission/access/immutable/IntReferenceMap;->toMutable()Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;
-PLcom/android/server/permission/access/immutable/IntReferenceMap;->toMutable()Ljava/lang/Object;
-HPLcom/android/server/permission/access/immutable/IntReferenceMap;->valueAt(I)Lcom/android/server/permission/access/immutable/Immutable;
+PLcom/android/server/permission/access/immutable/IntReferenceMapExtensionsKt;->minusAssign(Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;I)V
 HSPLcom/android/server/permission/access/immutable/IntReferenceMapExtensionsKt;->set(Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;ILcom/android/server/permission/access/immutable/Immutable;)V
-HSPLcom/android/server/permission/access/immutable/IntSet;-><init>(Landroid/util/SparseBooleanArray;)V
-HSPLcom/android/server/permission/access/immutable/IntSet;-><init>(Landroid/util/SparseBooleanArray;Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/immutable/IntSet;->elementAt(I)I
-HSPLcom/android/server/permission/access/immutable/IntSet;->getArray$frameworks__base__services__permission__android_common__services_permission_pre_jarjar()Landroid/util/SparseBooleanArray;
-HSPLcom/android/server/permission/access/immutable/IntSet;->getSize()I
-HSPLcom/android/server/permission/access/immutable/IntSetExtensionsKt;->MutableIntSet([I)Lcom/android/server/permission/access/immutable/MutableIntSet;
-HSPLcom/android/server/permission/access/immutable/IntSetExtensionsKt;->plusAssign(Lcom/android/server/permission/access/immutable/MutableIntSet;I)V
-HSPLcom/android/server/permission/access/immutable/IntSetExtensionsKt;->plusAssign(Lcom/android/server/permission/access/immutable/MutableIntSet;Lcom/android/server/permission/access/immutable/IntSet;)V
-HSPLcom/android/server/permission/access/immutable/IntSetExtensionsKt;->plusAssign(Lcom/android/server/permission/access/immutable/MutableIntSet;[I)V
-HPLcom/android/server/permission/access/immutable/MutableIndexedList;-><init>(Ljava/util/ArrayList;)V
-HPLcom/android/server/permission/access/immutable/MutableIndexedList;-><init>(Ljava/util/ArrayList;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/immutable/MutableIndexedList;->add(Ljava/lang/Object;)V
-PLcom/android/server/permission/access/immutable/MutableIndexedListSet;-><init>(Lcom/android/server/permission/access/immutable/IndexedListSet;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedListSet;-><init>(Ljava/util/ArrayList;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedListSet;-><init>(Ljava/util/ArrayList;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedListSet;->add(Ljava/lang/Object;)Z
-HSPLcom/android/server/permission/access/immutable/MutableIndexedMap;-><init>(Landroid/util/ArrayMap;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedMap;-><init>(Landroid/util/ArrayMap;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/MutableIndexedMap;-><init>(Lcom/android/server/permission/access/immutable/IndexedMap;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/permission/access/immutable/MutableIndexedMap;->putAt(ILjava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/permission/access/immutable/MutableIndexedMap;->removeAt(I)Ljava/lang/Object;
+HSPLcom/android/server/permission/access/immutable/MutableIndexedListSet;-><init>()V
+HSPLcom/android/server/permission/access/immutable/MutableIndexedListSet;->add(Ljava/lang/Object;)V
+HSPLcom/android/server/permission/access/immutable/MutableIndexedMap;-><init>()V
+HSPLcom/android/server/permission/access/immutable/MutableIndexedMap;->put(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;-><init>()V
 HSPLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;-><init>(Landroid/util/ArrayMap;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;-><init>(Landroid/util/ArrayMap;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;->put(Ljava/lang/Object;Lcom/android/server/permission/access/immutable/Immutable;)Lcom/android/server/permission/access/immutable/Immutable;
+HPLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;->get(Ljava/lang/Object;)Lcom/android/server/permission/access/immutable/Immutable;
+HSPLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;->put(Ljava/lang/Object;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
+PLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;->remove$1(Ljava/lang/Object;)V
+PLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;->toMutable()Ljava/lang/Object;
+HSPLcom/android/server/permission/access/immutable/MutableIndexedReferenceMap;->valueAt(I)Lcom/android/server/permission/access/immutable/Immutable;
+HSPLcom/android/server/permission/access/immutable/MutableIndexedSet;-><init>()V
 HSPLcom/android/server/permission/access/immutable/MutableIndexedSet;-><init>(Landroid/util/ArraySet;)V
-HSPLcom/android/server/permission/access/immutable/MutableIndexedSet;-><init>(Landroid/util/ArraySet;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/immutable/MutableIndexedSet;->add(Ljava/lang/Object;)Z
-HSPLcom/android/server/permission/access/immutable/MutableIntMap;-><init>(Landroid/util/SparseArray;)V
-HSPLcom/android/server/permission/access/immutable/MutableIntMap;-><init>(Landroid/util/SparseArray;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/MutableIntMap;->clear()V
-PLcom/android/server/permission/access/immutable/MutableIntMap;->remove(I)Ljava/lang/Object;
+PLcom/android/server/permission/access/immutable/MutableIndexedSet;->add(Ljava/lang/Object;)V
+HSPLcom/android/server/permission/access/immutable/MutableIntMap;-><init>()V
+HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;-><init>()V
 HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;-><init>(Landroid/util/SparseArray;)V
-HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;-><init>(Landroid/util/SparseArray;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/immutable/MutableIntReferenceMap;-><init>(Lcom/android/server/permission/access/immutable/IntReferenceMap;)V
+HPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->get(I)Lcom/android/server/permission/access/immutable/Immutable;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->keyAt(I)I
 HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->mutate(I)Lcom/android/server/permission/access/immutable/Immutable;
-HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->put(ILcom/android/server/permission/access/immutable/Immutable;)Lcom/android/server/permission/access/immutable/Immutable;
+HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->put(ILcom/android/server/permission/access/immutable/Immutable;)V
+PLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->toMutable()Ljava/lang/Object;
+HSPLcom/android/server/permission/access/immutable/MutableIntReferenceMap;->valueAt(I)Lcom/android/server/permission/access/immutable/Immutable;
+HSPLcom/android/server/permission/access/immutable/MutableIntSet;-><init>()V
 HSPLcom/android/server/permission/access/immutable/MutableIntSet;-><init>(Landroid/util/SparseBooleanArray;)V
-HSPLcom/android/server/permission/access/immutable/MutableIntSet;-><init>(Landroid/util/SparseBooleanArray;ILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HPLcom/android/server/permission/access/immutable/MutableIntSet;->clear()V
-HSPLcom/android/server/permission/access/immutable/MutableReference;-><init>(Lcom/android/server/permission/access/immutable/Immutable;)V
 HSPLcom/android/server/permission/access/immutable/MutableReference;-><init>(Lcom/android/server/permission/access/immutable/Immutable;Lcom/android/server/permission/access/immutable/Immutable;)V
-HSPLcom/android/server/permission/access/immutable/MutableReference;->get()Lcom/android/server/permission/access/immutable/Immutable;
-HSPLcom/android/server/permission/access/immutable/MutableReference;->mutate()Lcom/android/server/permission/access/immutable/Immutable;
-HPLcom/android/server/permission/access/immutable/MutableReference;->toImmutable()Lcom/android/server/permission/access/immutable/MutableReference;
-HSPLcom/android/server/permission/access/permission/AppIdPermissionMigration$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionMigration$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionMigration;-><clinit>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionMigration;-><init>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;-><clinit>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;-><init>()V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parseAppId(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIntReferenceMap;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parseAppIdPermission(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parseAppIdPermissions(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parsePermission(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/immutable/MutableIndexedMap;)V
+HSPLcom/android/server/permission/access/immutable/MutableReference;->mutate()Lcom/android/server/permission/access/immutable/Immutable;+]Lcom/android/server/permission/access/immutable/Immutable;megamorphic_types
+PLcom/android/server/permission/access/immutable/MutableReference;->toImmutable()Lcom/android/server/permission/access/immutable/MutableReference;
 HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parsePermissions(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;Z)V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parseSystemState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializeAppId(Lcom/android/modules/utils/BinaryXmlSerializer;ILcom/android/server/permission/access/immutable/IndexedMap;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializeAppIdPermission(Lcom/android/modules/utils/BinaryXmlSerializer;Ljava/lang/String;I)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializeAppIdPermissions(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/immutable/IntReferenceMap;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializePermission(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/permission/Permission;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializePermissions(Lcom/android/modules/utils/BinaryXmlSerializer;Ljava/lang/String;Lcom/android/server/permission/access/immutable/IndexedMap;)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializeSystemState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
+HPLcom/android/server/permission/access/permission/AppIdPermissionPersistence;->serializePermissions(Lcom/android/modules/utils/BinaryXmlSerializer;Ljava/lang/String;Lcom/android/server/permission/access/immutable/IndexedMap;)V+]Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/modules/utils/BinaryXmlSerializer;
 HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;-><clinit>()V
 HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;-><init>()V
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->addOnPermissionFlagsChangedListener(Lcom/android/server/permission/access/permission/AppIdPermissionPolicy$OnPermissionFlagsChangedListener;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->addPermissionGroups(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->addPermissionGroups(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;)V
 HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->addPermissions(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/immutable/MutableIndexedSet;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->adoptPermissions(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/immutable/MutableIndexedSet;)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->canAdoptPermissions(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->checkPrivilegedPermissionAllowlist(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/permission/Permission;)Z
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluateAllPermissionStatesForPackage(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/PackageState;)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->adoptPermissions(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/immutable/MutableIndexedSet;)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluateAllPermissionStatesForPackage(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/PackageState;)V
 HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluateAllPermissionStatesForPackageAndUser(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;ILcom/android/server/pm/pkg/PackageState;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluatePermissionState(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;Lcom/android/server/pm/pkg/PackageState;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluatePermissionStateForAllPackages(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Lcom/android/server/pm/pkg/PackageState;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->findPermissionTree(Lcom/android/server/permission/access/GetStateScope;Ljava/lang/String;)Lcom/android/server/permission/access/permission/Permission;
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluatePermissionState(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;Lcom/android/server/pm/pkg/PackageState;)V+]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/pm/permission/CompatibilityPermissionInfo;Lcom/android/internal/pm/permission/CompatibilityPermissionInfo;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->evaluatePermissionStateForAllPackages(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->findPermissionTree(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;)Lcom/android/server/permission/access/permission/Permission;
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getAppIdTargetSdkVersion(ILjava/lang/String;Lcom/android/server/permission/access/AccessState;)I
 HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getObjectScheme()Ljava/lang/String;
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getOldStatePermissionFlags(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;)I
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPermissionFlags(Lcom/android/server/permission/access/AccessState;IILjava/lang/String;)I
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPermissionFlags(Lcom/android/server/permission/access/GetStateScope;IILjava/lang/String;)I
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPermissionGroups(Lcom/android/server/permission/access/GetStateScope;)Lcom/android/server/permission/access/immutable/IndexedMap;
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPermissionTrees(Lcom/android/server/permission/access/GetStateScope;)Lcom/android/server/permission/access/immutable/IndexedMap;
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPermissions(Lcom/android/server/permission/access/GetStateScope;)Lcom/android/server/permission/access/immutable/IndexedMap;
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPrivilegedPermissionAllowlistState(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Ljava/lang/String;)Ljava/lang/Boolean;
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getPermissionFlags(Lcom/android/server/permission/access/AccessState;IILjava/lang/String;)I+]Ljava/lang/Number;Ljava/lang/Integer;
 HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getSubjectScheme()Ljava/lang/String;
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->getUidPermissionFlags(Lcom/android/server/permission/access/GetStateScope;II)Lcom/android/server/permission/access/immutable/IndexedMap;
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->inheritImplicitPermissionStates(Lcom/android/server/permission/access/MutateStateScope;II)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onInitialized(Lcom/android/server/permission/access/MutateStateScope;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onStateMutated(Lcom/android/server/permission/access/GetStateScope;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Ljava/util/List;Z)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onSystemReady(Lcom/android/server/permission/access/MutateStateScope;)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->inheritImplicitPermissionStates(Lcom/android/server/permission/access/MutateStateScope;II)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onPackageAdded(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onPackageInstalled(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;I)V
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onStateMutated()V+]Lcom/android/server/permission/access/permission/AppIdPermissionPolicy$OnPermissionFlagsChangedListener;Lcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;,Lcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/List;Z)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->onSystemReady()V
 HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->parseSystemState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->revokePermissionsOnPackageUpdate(Lcom/android/server/permission/access/MutateStateScope;I)V
+HSPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->revokePermissionsOnPackageUpdate(Lcom/android/server/permission/access/MutateStateScope;I)V
 PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->serializeSystemState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;)V
-PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->setPermissionFlags(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;I)Z
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->shouldGrantPermissionByProtectionFlags(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/permission/Permission;)Z
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->shouldGrantPermissionBySignature(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/permission/Permission;)Z
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/modules/utils/BinaryXmlSerializer;]Ljava/lang/Number;Ljava/lang/Integer;
 HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->shouldGrantPrivilegedOrOemPermission(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/permission/access/permission/Permission;)Z
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->trimPermissionStates(Lcom/android/server/permission/access/MutateStateScope;I)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->trimPermissions(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Lcom/android/server/permission/access/immutable/MutableIndexedSet;)V
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->updatePermissionFlags(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;II)Z
-HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->updatePermissionIfDynamic(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/permission/access/permission/Permission;)Lcom/android/server/permission/access/permission/Permission;
-HSPLcom/android/server/permission/access/permission/AppIdPermissionUpgrade$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/AppIdPermissionUpgrade$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->trimPermissionStates(Lcom/android/server/permission/access/MutateStateScope;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/lang/Iterable;Ljava/util/Collections$UnmodifiableSet;]Ljava/lang/Number;Ljava/lang/Integer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap;
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->trimPermissions(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Lcom/android/server/permission/access/immutable/MutableIndexedSet;)V+]Lcom/android/internal/pm/pkg/component/ParsedPermission;Lcom/android/internal/pm/pkg/component/ParsedPermissionImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap;
+PLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->updatePermissionExemptFlags(Lcom/android/server/permission/access/MutateStateScope;IILcom/android/server/permission/access/permission/Permission;II)V
+HPLcom/android/server/permission/access/permission/AppIdPermissionPolicy;->updatePermissionFlags(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;II)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/permission/access/permission/AppIdPermissionPolicy$OnPermissionFlagsChangedListener;Lcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;,Lcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;]Ljava/lang/Number;Ljava/lang/Integer;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/permission/access/permission/AppIdPermissionUpgrade;-><clinit>()V
 HSPLcom/android/server/permission/access/permission/AppIdPermissionUpgrade;-><init>(Lcom/android/server/permission/access/permission/AppIdPermissionPolicy;)V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPersistence$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPersistence$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPersistence;-><clinit>()V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPersistence;-><init>()V
-PLcom/android/server/permission/access/permission/DevicePermissionPersistence;->parseAppIdDevicePermissions(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-PLcom/android/server/permission/access/permission/DevicePermissionPersistence;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
-PLcom/android/server/permission/access/permission/DevicePermissionPersistence;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy;-><clinit>()V
 HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy;-><init>()V
-PLcom/android/server/permission/access/permission/DevicePermissionPolicy;->addOnPermissionFlagsChangedListener(Lcom/android/server/permission/access/permission/DevicePermissionPolicy$OnDevicePermissionFlagsChangedListener;)V
 HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->getObjectScheme()Ljava/lang/String;
 HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->getSubjectScheme()Ljava/lang/String;
-HPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->onStateMutated(Lcom/android/server/permission/access/GetStateScope;)V
-HPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Ljava/util/List;Z)V
-PLcom/android/server/permission/access/permission/DevicePermissionPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
+PLcom/android/server/permission/access/permission/DevicePermissionPolicy;->onPackageAdded(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;)V
+HPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->onStateMutated()V+]Lcom/android/server/permission/access/permission/DevicePermissionPolicy$OnDevicePermissionFlagsChangedListener;Lcom/android/server/permission/access/appop/AppOpService$OnPermissionFlagsChangedListener;,Lcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/permission/access/permission/DevicePermissionPolicy;->onStorageVolumeMounted(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/List;Z)V
+HSPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->parseUserState(Lcom/android/modules/utils/BinaryXmlPullParser;Lcom/android/server/permission/access/MutableAccessState;I)V
 PLcom/android/server/permission/access/permission/DevicePermissionPolicy;->serializeUserState(Lcom/android/modules/utils/BinaryXmlSerializer;Lcom/android/server/permission/access/AccessState;I)V
-PLcom/android/server/permission/access/permission/DevicePermissionPolicy;->trimDevicePermissionStates(Lcom/android/server/permission/access/MutateStateScope;Ljava/util/Set;)V
-HPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->trimPermissionStates(Lcom/android/server/permission/access/MutateStateScope;I)V
-HSPLcom/android/server/permission/access/permission/Permission$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/Permission$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLcom/android/server/permission/access/permission/Permission;-><clinit>()V
+HPLcom/android/server/permission/access/permission/DevicePermissionPolicy;->trimPermissionStates$1(Lcom/android/server/permission/access/MutateStateScope;I)V
+HSPLcom/android/server/permission/access/permission/Permission;-><init>(Landroid/content/pm/PermissionInfo;ZII)V
 HSPLcom/android/server/permission/access/permission/Permission;-><init>(Landroid/content/pm/PermissionInfo;ZII[IZ)V
-HSPLcom/android/server/permission/access/permission/Permission;-><init>(Landroid/content/pm/PermissionInfo;ZII[IZILcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/permission/Permission;->copy$default(Lcom/android/server/permission/access/permission/Permission;Landroid/content/pm/PermissionInfo;ZII[IZILjava/lang/Object;)Lcom/android/server/permission/access/permission/Permission;
-HPLcom/android/server/permission/access/permission/Permission;->copy(Landroid/content/pm/PermissionInfo;ZII[IZ)Lcom/android/server/permission/access/permission/Permission;
-PLcom/android/server/permission/access/permission/Permission;->getAppId()I
-PLcom/android/server/permission/access/permission/Permission;->getGids()[I
 HPLcom/android/server/permission/access/permission/Permission;->getGidsForUser(I)[I
-HSPLcom/android/server/permission/access/permission/Permission;->getPermissionInfo()Landroid/content/pm/PermissionInfo;
-PLcom/android/server/permission/access/permission/Permission;->getType()I
-PLcom/android/server/permission/access/permission/PermissionFlags;-><clinit>()V
-PLcom/android/server/permission/access/permission/PermissionFlags;-><init>()V
-HPLcom/android/server/permission/access/permission/PermissionFlags;->fromApiFlags(ILcom/android/server/permission/access/permission/Permission;I)I
+HPLcom/android/server/permission/access/permission/PermissionFlags;->isAppOpGranted(I)Z
 HPLcom/android/server/permission/access/permission/PermissionFlags;->isPermissionGranted(I)Z
 HPLcom/android/server/permission/access/permission/PermissionFlags;->toApiFlags(I)I
-PLcom/android/server/permission/access/permission/PermissionFlags;->updateFlags(Lcom/android/server/permission/access/permission/Permission;III)I
-PLcom/android/server/permission/access/permission/PermissionFlags;->updateRuntimePermissionGranted(IZ)I
-HSPLcom/android/server/permission/access/permission/PermissionService$Companion;-><init>()V
-HSPLcom/android/server/permission/access/permission/PermissionService$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;-><init>(Lcom/android/server/permission/access/permission/PermissionService;)V
+PLcom/android/server/permission/access/permission/PermissionFlags;->toString(I)Ljava/lang/String;
+HPLcom/android/server/permission/access/permission/PermissionFlags;->updateFlags(Lcom/android/server/permission/access/permission/Permission;III)I
+HSPLcom/android/server/permission/access/permission/PermissionManagerLocalImpl;-><init>(Lcom/android/server/permission/access/AccessCheckingService;)V
+PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener$onStateMutated$2$1;-><init>(ZLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;ILcom/android/server/permission/access/permission/PermissionService;Ljava/lang/String;)V
+PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener$onStateMutated$2$1;->run()V
+PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener$onStateMutated$3$1;-><init>(Lcom/android/server/permission/access/permission/PermissionService;I)V
+PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener$onStateMutated$3$1;->run()V
+HSPLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;-><init>(Lcom/android/server/permission/access/permission/PermissionService;)V
 PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;->onDevicePermissionFlagsChanged(IILjava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;->onPermissionFlagsChanged(IILjava/lang/String;II)V
-HPLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;->onStateMutated()V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners$Companion;-><init>()V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners$Companion;-><init>(Lcom/android/server/permission/jarjar/kotlin/jvm/internal/DefaultConstructorMarker;)V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;-><clinit>()V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;->addListener(Landroid/permission/IOnPermissionsChangeListener;)V
-PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;->removeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-PLcom/android/server/permission/access/permission/PermissionService$onSystemReady$2;-><init>(Lcom/android/server/permission/access/permission/PermissionService;)V
+PLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;->onPermissionFlagsChanged(IIIILjava/lang/String;)V
+HPLcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;->onStateMutated()V+]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/lang/Iterable;Ljava/util/LinkedHashSet;]Ljava/util/Iterator;Ljava/util/LinkedHashMap$LinkedKeyIterator;
+HSPLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;-><init>(Landroid/os/Looper;)V
+PLcom/android/server/permission/access/permission/PermissionService$OnPermissionsChangeListeners;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/permission/access/permission/PermissionService$onSystemReady$2;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/permission/access/permission/PermissionService$onSystemReady$2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/permission/access/permission/PermissionService$restoreDelayedRuntimePermissions$3;-><init>(ILjava/lang/String;)V
+PLcom/android/server/permission/access/permission/PermissionService$restoreDelayedRuntimePermissions$3;-><init>(Lcom/android/server/permission/access/permission/PermissionService;I)V
+PLcom/android/server/permission/access/permission/PermissionService$restoreDelayedRuntimePermissions$3;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/permission/access/permission/PermissionService;-><clinit>()V
 HSPLcom/android/server/permission/access/permission/PermissionService;-><init>(Lcom/android/server/permission/access/AccessCheckingService;)V
-PLcom/android/server/permission/access/permission/PermissionService;->access$getDevicePolicy$p(Lcom/android/server/permission/access/permission/PermissionService;)Lcom/android/server/permission/access/permission/DevicePermissionPolicy;
-PLcom/android/server/permission/access/permission/PermissionService;->access$getOnPermissionFlagsChangedListener$p(Lcom/android/server/permission/access/permission/PermissionService;)Lcom/android/server/permission/access/permission/PermissionService$OnPermissionFlagsChangedListener;
-PLcom/android/server/permission/access/permission/PermissionService;->access$getPolicy$p(Lcom/android/server/permission/access/permission/PermissionService;)Lcom/android/server/permission/access/permission/AppIdPermissionPolicy;
-PLcom/android/server/permission/access/permission/PermissionService;->access$getService$p(Lcom/android/server/permission/access/permission/PermissionService;)Lcom/android/server/permission/access/AccessCheckingService;
+PLcom/android/server/permission/access/permission/PermissionService;->access$killUid(Lcom/android/server/permission/access/permission/PermissionService;ILjava/lang/String;)V
 PLcom/android/server/permission/access/permission/PermissionService;->access$setRuntimePermissionGranted(Lcom/android/server/permission/access/permission/PermissionService;Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;ILjava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;)V
-PLcom/android/server/permission/access/permission/PermissionService;->access$updatePermissionFlags(Lcom/android/server/permission/access/permission/PermissionService;Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;Ljava/lang/String;IIZZZLjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->checkPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/permission/access/permission/PermissionService;->checkUidPermission(ILjava/lang/String;I)I
-HPLcom/android/server/permission/access/permission/PermissionService;->enforceCallingOrSelfAnyPermission(Ljava/lang/String;[Ljava/lang/String;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->enforceCallingOrSelfCrossUserPermission(IZZLjava/lang/String;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->filtered(Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;II)Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;
-PLcom/android/server/permission/access/permission/PermissionService;->generatePermissionGroupInfo(Landroid/content/pm/PermissionGroupInfo;I)Landroid/content/pm/PermissionGroupInfo;
-PLcom/android/server/permission/access/permission/PermissionService;->generatePermissionInfo$default(Lcom/android/server/permission/access/permission/PermissionService;Lcom/android/server/permission/access/permission/Permission;IIILjava/lang/Object;)Landroid/content/pm/PermissionInfo;
+HPLcom/android/server/permission/access/permission/PermissionService;->access$updatePermissionFlags(Lcom/android/server/permission/access/permission/PermissionService;Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;Ljava/lang/String;IIZZZLjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/permission/access/permission/PermissionService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
+PLcom/android/server/permission/access/permission/PermissionService;->backupRuntimePermissions(I)[B
+HPLcom/android/server/permission/access/permission/PermissionService;->checkPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;]Lcom/android/server/pm/PackageManagerLocal;Lcom/android/server/pm/local/PackageManagerLocalImpl;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;
+HPLcom/android/server/permission/access/permission/PermissionService;->checkUidPermission(ILjava/lang/String;Ljava/lang/String;)I+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/permission/access/permission/PermissionService;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/permission/access/permission/PermissionService;->dumpAppIdState(Landroid/util/IndentingPrintWriter;ILcom/android/server/permission/access/AccessState;Lcom/android/server/permission/access/immutable/MutableIndexedSet;)V
+HPLcom/android/server/permission/access/permission/PermissionService;->enforceCallingOrSelfAnyPermission(Ljava/lang/String;[Ljava/lang/String;)V+]Landroid/content/Context;Landroid/app/ContextImpl;
+HPLcom/android/server/permission/access/permission/PermissionService;->enforceCallingOrSelfCrossUserPermission(Ljava/lang/String;IZZ)V
 HPLcom/android/server/permission/access/permission/PermissionService;->generatePermissionInfo(Lcom/android/server/permission/access/permission/Permission;II)Landroid/content/pm/PermissionInfo;
-HPLcom/android/server/permission/access/permission/PermissionService;->getAllAppOpPermissionPackages()Ljava/util/Map;
-PLcom/android/server/permission/access/permission/PermissionService;->getAllPermissionsWithProtection(I)Ljava/util/List;
-PLcom/android/server/permission/access/permission/PermissionService;->getAllPermissionsWithProtectionFlags(I)Ljava/util/List;
+PLcom/android/server/permission/access/permission/PermissionService;->getAllAppIdPackageNames(Lcom/android/server/permission/access/AccessState;)Lcom/android/server/permission/access/immutable/MutableIndexedMap;
+PLcom/android/server/permission/access/permission/PermissionService;->getAllAppOpPermissionPackages()Ljava/util/Map;
+PLcom/android/server/permission/access/permission/PermissionService;->getAllPermissionGroups(I)Ljava/util/List;
+HPLcom/android/server/permission/access/permission/PermissionService;->getAllPermissionsWithProtection()Ljava/util/List;+]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;
+PLcom/android/server/permission/access/permission/PermissionService;->getAllPermissionsWithProtectionFlags()Ljava/util/List;
+HPLcom/android/server/permission/access/permission/PermissionService;->getAllowlistedRestrictedPermissions(IILjava/lang/String;)Ljava/util/ArrayList;
+PLcom/android/server/permission/access/permission/PermissionService;->getAllowlistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
+HPLcom/android/server/permission/access/permission/PermissionService;->getAllowlistedRestrictedPermissionsUnchecked(III)Ljava/util/ArrayList;+]Ljava/lang/Number;Ljava/lang/Integer;
 PLcom/android/server/permission/access/permission/PermissionService;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String;
 PLcom/android/server/permission/access/permission/PermissionService;->getDefaultPermissionGrantFingerprint(I)Ljava/lang/String;
-HPLcom/android/server/permission/access/permission/PermissionService;->getGidsForUid(I)[I
-HPLcom/android/server/permission/access/permission/PermissionService;->getGrantedPermissions(Ljava/lang/String;I)Ljava/util/Set;
+HPLcom/android/server/permission/access/permission/PermissionService;->getGidsForUid(I)[I+]Ljava/lang/Number;Ljava/lang/Integer;
+HPLcom/android/server/permission/access/permission/PermissionService;->getGrantedPermissions(ILjava/lang/String;)Ljava/util/Set;+]Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;]Lcom/android/server/pm/PackageManagerLocal;Lcom/android/server/pm/local/PackageManagerLocalImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/lang/Number;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap;
 HPLcom/android/server/permission/access/permission/PermissionService;->getInstalledPermissions(Ljava/lang/String;)Ljava/util/Set;
-HPLcom/android/server/permission/access/permission/PermissionService;->getLegacyPermissionState(I)Lcom/android/server/pm/permission/LegacyPermissionState;
-HPLcom/android/server/permission/access/permission/PermissionService;->getLegacyPermissions()Ljava/util/List;
-HPLcom/android/server/permission/access/permission/PermissionService;->getPackageState(Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageState;
-HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionFlagsWithPolicy(Lcom/android/server/permission/access/GetStateScope;IILjava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/permission/access/permission/PermissionService;->getPermissionGids(Ljava/lang/String;I)[I
+HPLcom/android/server/permission/access/permission/PermissionService;->getLegacyPermissionState(I)Lcom/android/server/pm/permission/LegacyPermissionState;+]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;]Ljava/lang/Number;Ljava/lang/Integer;
+PLcom/android/server/permission/access/permission/PermissionService;->getLegacyPermissions()Ljava/util/List;
+HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;]Lcom/android/server/pm/PackageManagerLocal;Lcom/android/server/pm/local/PackageManagerLocalImpl;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
+HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionFlagsWithPolicy(IILcom/android/server/permission/access/GetStateScope;Ljava/lang/String;Ljava/lang/String;)I
+PLcom/android/server/permission/access/permission/PermissionService;->getPermissionGids(ILjava/lang/String;)[I
 HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;
-HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionInfo(Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PermissionInfo;
-HPLcom/android/server/permission/access/permission/PermissionService;->getPersistentDeviceId(I)Ljava/lang/String;
-PLcom/android/server/permission/access/permission/PermissionService;->getSplitPermissions()Ljava/util/List;
+HPLcom/android/server/permission/access/permission/PermissionService;->getPermissionInfo(ILjava/lang/String;Ljava/lang/String;)Landroid/content/pm/PermissionInfo;+]Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;]Lcom/android/server/pm/PackageManagerLocal;Lcom/android/server/pm/local/PackageManagerLocalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap;
+PLcom/android/server/permission/access/permission/PermissionService;->getPermissionTEMP(Ljava/lang/String;)Lcom/android/server/pm/permission/Permission;
+HSPLcom/android/server/permission/access/permission/PermissionService;->getSplitPermissions()Ljava/util/List;
 PLcom/android/server/permission/access/permission/PermissionService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/permission/access/permission/PermissionService;->initialize()V
-HPLcom/android/server/permission/access/permission/PermissionService;->isPackageVisibleToUid(Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Ljava/lang/String;I)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isPackageVisibleToUid(Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Ljava/lang/String;II)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isPermissionGranted(Lcom/android/server/permission/access/GetStateScope;Lcom/android/server/pm/pkg/PackageState;ILjava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isRootOrSystemOrShellUid(I)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isRootOrSystemUid(I)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isShellUid(I)Z
+HPLcom/android/server/permission/access/permission/PermissionService;->isPackageVisibleToUid(Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Ljava/lang/String;I)Z+]Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;]Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;
+HPLcom/android/server/permission/access/permission/PermissionService;->isPermissionGranted(Lcom/android/server/permission/access/GetStateScope;Lcom/android/server/pm/pkg/PackageState;ILjava/lang/String;Ljava/lang/String;)Z+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/permission/access/permission/PermissionService;->isPermissionsReviewRequired(ILjava/lang/String;)Z+]Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;]Lcom/android/server/pm/PackageManagerLocal;Lcom/android/server/pm/local/PackageManagerLocalImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/lang/Number;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap;
+PLcom/android/server/permission/access/permission/PermissionService;->isRootOrSystemUid(I)Z
 HPLcom/android/server/permission/access/permission/PermissionService;->isSinglePermissionGranted(Lcom/android/server/permission/access/GetStateScope;IIZLjava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isSystemUidPermissionGranted(ILjava/lang/String;)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->isUidInstantApp(Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;I)Z
-HPLcom/android/server/permission/access/permission/PermissionService;->onPackageAdded(Lcom/android/server/pm/pkg/PackageState;ZLcom/android/server/pm/pkg/AndroidPackage;)V
+HPLcom/android/server/permission/access/permission/PermissionService;->isUidInstantApp(I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
+HSPLcom/android/server/permission/access/permission/PermissionService;->onPackageAdded(Lcom/android/server/pm/PackageSetting;ZLcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/permission/access/permission/PermissionService;->onPackageInstalled(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackageInstalledParams;I)V
+PLcom/android/server/permission/access/permission/PermissionService;->onPackageRemoved(Lcom/android/server/pm/pkg/AndroidPackage;)V
 PLcom/android/server/permission/access/permission/PermissionService;->onStorageVolumeMounted(Ljava/lang/String;Z)V
 PLcom/android/server/permission/access/permission/PermissionService;->onSystemReady()V
-PLcom/android/server/permission/access/permission/PermissionService;->readLegacyPermissionStateTEMP()V
+HPLcom/android/server/permission/access/permission/PermissionService;->queryPermissionsByGroup(ILjava/lang/String;)Ljava/util/List;+]Lcom/android/server/pm/PackageManagerLocal;Lcom/android/server/pm/local/PackageManagerLocalImpl;
+HSPLcom/android/server/permission/access/permission/PermissionService;->readLegacyPermissionStateTEMP()V
 HSPLcom/android/server/permission/access/permission/PermissionService;->readLegacyPermissionsTEMP(Lcom/android/server/pm/permission/LegacyPermissionSettings;)V
 PLcom/android/server/permission/access/permission/PermissionService;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-PLcom/android/server/permission/access/permission/PermissionService;->setPermissionFlagsWithPolicy(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/permission/access/permission/PermissionService;->setRuntimePermissionGranted$default(Lcom/android/server/permission/access/permission/PermissionService;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;ILjava/lang/Object;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->setRuntimePermissionGranted(Lcom/android/server/permission/access/MutateStateScope;Lcom/android/server/pm/pkg/PackageState;ILjava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->setRuntimePermissionGranted(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;)V
-PLcom/android/server/permission/access/permission/PermissionService;->toLegacyPermissions(Lcom/android/server/permission/access/immutable/IndexedMap;)Ljava/util/List;
-HPLcom/android/server/permission/access/permission/PermissionService;->updatePermissionFlags(Lcom/android/server/permission/access/MutateStateScope;IILjava/lang/String;Ljava/lang/String;IIZZZLjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/permission/access/permission/PermissionService;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;I)V
-HPLcom/android/server/permission/access/permission/PermissionService;->withFilteredSnapshot(Lcom/android/server/pm/PackageManagerLocal;II)Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;
+PLcom/android/server/permission/access/permission/PermissionService;->restoreDelayedRuntimePermissions(Ljava/lang/String;I)V
+PLcom/android/server/permission/access/permission/PermissionService;->setAllowlistedRestrictedPermissionsUnchecked(Lcom/android/server/pm/pkg/AndroidPackage;ILjava/util/List;II)V
+HPLcom/android/server/permission/access/permission/PermissionService;->setPermissionFlagsWithPolicy(IIILcom/android/server/permission/access/MutateStateScope;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/permission/access/permission/PermissionService;->setRuntimePermissionGranted$default(Lcom/android/server/permission/access/permission/PermissionService;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;I)V
+PLcom/android/server/permission/access/permission/PermissionService;->shouldShowRequestPermissionRationale(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/permission/access/permission/PermissionService;->toLegacyPermissions(Lcom/android/server/permission/access/immutable/IndexedMap;)Ljava/util/List;
+HPLcom/android/server/permission/access/permission/PermissionService;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;I)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/permission/access/SchemePolicy;Lcom/android/server/permission/access/appop/AppIdAppOpPolicy;,Lcom/android/server/permission/access/appop/PackageAppOpPolicy;,Lcom/android/server/permission/access/permission/AppIdPermissionPolicy;,Lcom/android/server/permission/access/permission/DevicePermissionPolicy;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;
 PLcom/android/server/permission/access/permission/PermissionService;->writeLegacyPermissionStateTEMP()V
 PLcom/android/server/permission/access/permission/PermissionService;->writeLegacyPermissionsTEMP(Lcom/android/server/pm/permission/LegacyPermissionSettings;)V
-PLcom/android/server/permission/access/util/IntExtensionsKt;->andInv(II)I
 PLcom/android/server/permission/access/util/IntExtensionsKt;->hasAnyBit(II)Z
 HPLcom/android/server/permission/access/util/IntExtensionsKt;->hasBits(II)Z
-HSPLcom/android/server/permission/access/util/PermissionApex;-><clinit>()V
-HSPLcom/android/server/permission/access/util/PermissionApex;-><init>()V
-HSPLcom/android/server/permission/access/util/PermissionApex;->getApexEnvironment()Landroid/content/ApexEnvironment;
-HSPLcom/android/server/permission/access/util/PermissionApex;->getSystemDataDirectory()Ljava/io/File;
-PLcom/android/server/permission/access/util/PermissionApex;->getUserDataDirectory(I)Ljava/io/File;
 HSPLcom/android/server/permission/jarjar/kotlin/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/permission/jarjar/kotlin/Pair;->component1()Ljava/lang/Object;
 HSPLcom/android/server/permission/jarjar/kotlin/Pair;->component2()Ljava/lang/Object;
-HSPLcom/android/server/permission/jarjar/kotlin/TuplesKt;->to(Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/server/permission/jarjar/kotlin/Pair;
+PLcom/android/server/permission/jarjar/kotlin/Triple;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/permission/jarjar/kotlin/Triple;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/permission/jarjar/kotlin/Triple;->getFirst()Ljava/lang/Object;
+PLcom/android/server/permission/jarjar/kotlin/Triple;->getSecond()Ljava/lang/Object;
+PLcom/android/server/permission/jarjar/kotlin/Triple;->getThird()Ljava/lang/Object;
+PLcom/android/server/permission/jarjar/kotlin/Triple;->hashCode()I
 PLcom/android/server/permission/jarjar/kotlin/Unit;-><clinit>()V
-PLcom/android/server/permission/jarjar/kotlin/Unit;-><init>()V
-HSPLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt;->asList([Ljava/lang/Object;)Ljava/util/List;
 PLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt;->first([Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt___ArraysJvmKt;->asList([Ljava/lang/Object;)Ljava/util/List;
-HPLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt___ArraysKt;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt___ArraysKt;->first([Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/permission/jarjar/kotlin/collections/ArraysKt___ArraysKt;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLcom/android/server/permission/jarjar/kotlin/collections/ArraysUtilJVM;->asList([Ljava/lang/Object;)Ljava/util/List;
 PLcom/android/server/permission/jarjar/kotlin/collections/CollectionsKt;->elementAt(Ljava/lang/Iterable;I)Ljava/lang/Object;
-HPLcom/android/server/permission/jarjar/kotlin/collections/CollectionsKt___CollectionsKt$elementAt$1;-><init>(I)V
-PLcom/android/server/permission/jarjar/kotlin/collections/CollectionsKt___CollectionsKt;->elementAt(Ljava/lang/Iterable;I)Ljava/lang/Object;
-HPLcom/android/server/permission/jarjar/kotlin/collections/CollectionsKt___CollectionsKt;->elementAtOrElse(Ljava/lang/Iterable;ILcom/android/server/permission/jarjar/kotlin/jvm/functions/Function1;)Ljava/lang/Object;
+PLcom/android/server/permission/jarjar/kotlin/collections/CollectionsKt___CollectionsKt$elementAt$1;-><init>(I)V
 HSPLcom/android/server/permission/jarjar/kotlin/collections/EmptyMap;-><clinit>()V
 HSPLcom/android/server/permission/jarjar/kotlin/collections/EmptyMap;-><init>()V
-HSPLcom/android/server/permission/jarjar/kotlin/collections/EmptySet;-><clinit>()V
-HSPLcom/android/server/permission/jarjar/kotlin/collections/EmptySet;-><init>()V
-HSPLcom/android/server/permission/jarjar/kotlin/collections/MapsKt;->emptyMap()Ljava/util/Map;
 HSPLcom/android/server/permission/jarjar/kotlin/collections/MapsKt__MapsKt;->emptyMap()Ljava/util/Map;
-HSPLcom/android/server/permission/jarjar/kotlin/collections/SetsKt;->emptySet()Ljava/util/Set;
-HSPLcom/android/server/permission/jarjar/kotlin/collections/SetsKt__SetsKt;->emptySet()Ljava/util/Set;
-PLcom/android/server/permission/jarjar/kotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
-HSPLcom/android/server/permission/jarjar/kotlin/jdk7/AutoCloseableKt;->closeFinally(Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V
-HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
-HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
-HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
-HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
-PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Lambda;-><init>(I)V
+HSPLcom/android/server/permission/jarjar/kotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
+HSPLcom/android/server/permission/jarjar/kotlin/jdk7/AutoCloseableKt;->closeFinally(Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V+]Ljava/lang/AutoCloseable;Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;,Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;
+HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/lang/Integer;,Ljava/lang/String;
+HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
+HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/String;Ljava/lang/Object;)V
+PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/String;Ljava/lang/Object;)V
+PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Lambda;-><init>()V
 PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Ref$BooleanRef;-><init>()V
+PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Ref$IntRef;-><init>()V
 PLcom/android/server/permission/jarjar/kotlin/jvm/internal/Ref$ObjectRef;-><init>()V
-PLcom/android/server/permission/jarjar/kotlin/ranges/RangesKt;->coerceAtMost(II)I
-PLcom/android/server/permission/jarjar/kotlin/ranges/RangesKt;->coerceAtMost(JJ)J
-PLcom/android/server/permission/jarjar/kotlin/ranges/RangesKt___RangesKt;->coerceAtMost(II)I
-PLcom/android/server/permission/jarjar/kotlin/ranges/RangesKt___RangesKt;->coerceAtMost(JJ)J
-HPLcom/android/server/permission/jarjar/kotlin/text/StringsKt;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
-PLcom/android/server/permission/jarjar/kotlin/text/StringsKt__StringsJVMKt;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
-PLcom/android/server/permission/jarjar/kotlin/text/StringsKt__StringsJVMKt;->startsWith(Ljava/lang/String;Ljava/lang/String;Z)Z
+PLcom/android/server/pinner/PinRangeSourceStatic;->read(Lcom/android/server/pinner/PinnerService$PinRange;)Z
+PLcom/android/server/pinner/PinnedFile;-><init>(JJJLjava/lang/String;)V
+PLcom/android/server/pinner/PinnerService$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/pinner/PinnerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/pinner/PinnerService$$ExternalSyntheticLambda4;-><init>(Ljava/lang/String;)V
+PLcom/android/server/pinner/PinnerService$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pinner/PinnerService$1;-><init>(Lcom/android/server/pinner/PinnerService;)V
+PLcom/android/server/pinner/PinnerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/pinner/PinnerService$2;-><init>(Lcom/android/server/pinner/PinnerService;)V
+PLcom/android/server/pinner/PinnerService$2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/pinner/PinnerService$3;-><init>(Lcom/android/server/pinner/PinnerService;Landroid/net/Uri;)V
+PLcom/android/server/pinner/PinnerService$3;->onChange(ZLandroid/net/Uri;)V
+PLcom/android/server/pinner/PinnerService$4;-><init>(Lcom/android/server/pinner/PinnerService;)V
+PLcom/android/server/pinner/PinnerService$4;->onUidActive(I)V
+PLcom/android/server/pinner/PinnerService$4;->onUidGone(IZ)V
+PLcom/android/server/pinner/PinnerService$BinderService;-><init>(Lcom/android/server/pinner/PinnerService;)V
+PLcom/android/server/pinner/PinnerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pinner/PinnerService$Injector;-><init>()V
+PLcom/android/server/pinner/PinnerService$Injector;->pinFileInternal(Lcom/android/server/pinner/PinnerService;Ljava/lang/String;JZ)Lcom/android/server/pinner/PinnedFile;
+PLcom/android/server/pinner/PinnerService$PinnerHandler;-><init>(Lcom/android/server/pinner/PinnerService;Landroid/os/Looper;)V
+PLcom/android/server/pinner/PinnerService$PinnerHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/pinner/PinnerService;-><clinit>()V
+PLcom/android/server/pinner/PinnerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pinner/PinnerService;-><init>(Landroid/content/Context;Lcom/android/server/pinner/PinnerService$Injector;)V
+PLcom/android/server/pinner/PinnerService;->createPinKeys()Landroid/util/ArraySet;
+PLcom/android/server/pinner/PinnerService;->getAllPinsForGroup(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/pinner/PinnerService;->maybeOpenPinMetaInZip(Ljava/util/zip/ZipFile;Ljava/lang/String;)Ljava/io/InputStream;
+PLcom/android/server/pinner/PinnerService;->onStart()V
+PLcom/android/server/pinner/PinnerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/pinner/PinnerService;->pinAppsInternal(IZ)V
+PLcom/android/server/pinner/PinnerService;->pinFile(Ljava/lang/String;JLandroid/content/pm/ApplicationInfo;Ljava/lang/String;Z)Lcom/android/server/pinner/PinnedFile;
+PLcom/android/server/pinner/PinnerService;->pinFileRanges(Ljava/lang/String;JLcom/android/server/pinner/PinRangeSource;)Lcom/android/server/pinner/PinnedFile;
+PLcom/android/server/pinner/PinnerService;->refreshPinAnonConfig()V
+PLcom/android/server/pinner/PinnerService;->sendPinAppsMessage(I)V
+PLcom/android/server/pinner/PinnerService;->unpinFile(Ljava/lang/String;)V
+PLcom/android/server/pinner/PinnerService;->update(Landroid/util/ArraySet;Z)V
+PLcom/android/server/pinner/PinnerService;->updateActiveState(IZ)V
+PLcom/android/server/pinner/PinnerUtils;->safeClose(Ljava/io/Closeable;)V
+PLcom/android/server/pinner/PinnerUtils;->safeClose(Ljava/io/FileDescriptor;)V
+PLcom/android/server/pm/AbstractStatsBase$1;-><init>(Lcom/android/server/pm/AbstractStatsBase;Ljava/lang/String;Ljava/lang/Object;)V
+PLcom/android/server/pm/AbstractStatsBase$1;->run()V
 HSPLcom/android/server/pm/AbstractStatsBase;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/pm/AbstractStatsBase;->getFile()Landroid/util/AtomicFile;
-PLcom/android/server/pm/AbstractStatsBase;->read(Ljava/lang/Object;)V
-HSPLcom/android/server/pm/ApexManager$1;-><init>()V
-HSPLcom/android/server/pm/ApexManager$1;->create()Lcom/android/server/pm/ApexManager;
+PLcom/android/server/pm/AbstractStatsBase;->maybeWriteAsync(Ljava/lang/Object;)Z
+PLcom/android/server/pm/AbstractStatsBase;->read(Lcom/android/server/utils/WatchedArrayMap;)V
+PLcom/android/server/pm/AbstractStatsBase;->writeImpl(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/ApexManager$1;->create()Ljava/lang/Object;
 HSPLcom/android/server/pm/ApexManager$ActiveApexInfo;-><init>(Landroid/apex/ApexInfo;)V
-HSPLcom/android/server/pm/ApexManager$ActiveApexInfo;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/io/File;Z)V
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;-><init>()V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->destroyCeSnapshotsNotSpecified(I[I)Z
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->getActiveApexInfos()Ljava/util/List;
 HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->getActivePackageNameForApexModuleName(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getAllApexInfos()[Landroid/apex/ApexInfo;
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getApexSystemServices()Ljava/util/List;
 PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getApksInApex(Ljava/lang/String;)Ljava/util/List;
-HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->getBackingApexFile(Ljava/io/File;)Ljava/io/File;
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getSessions()Landroid/util/SparseArray;
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->markBootCompleted()V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->notifyScanResult(Ljava/util/List;)V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->notifyScanResultLocked(Ljava/util/List;)V
-HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->registerApkInApex(Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->reportErrorWithApkInApex(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getBackingApexFile(Ljava/io/File;)Ljava/io/File;
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->notifyScanResultLocked(Ljava/util/List;)V
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->registerApkInApex(Lcom/android/server/pm/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->waitForApexService()Landroid/apex/IApexService;
-PLcom/android/server/pm/ApexManager$ScanResult;-><init>(Landroid/apex/ApexInfo;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)V
+HSPLcom/android/server/pm/ApexManager$ScanResult;-><init>(Landroid/apex/ApexInfo;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)V
 HSPLcom/android/server/pm/ApexManager;-><clinit>()V
-HSPLcom/android/server/pm/ApexManager;-><init>()V
 HSPLcom/android/server/pm/ApexManager;->getInstance()Lcom/android/server/pm/ApexManager;
-PLcom/android/server/pm/ApexSystemServiceInfo;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/pm/ApexSystemServiceInfo;->getJarPath()Ljava/lang/String;
-PLcom/android/server/pm/ApexSystemServiceInfo;->getName()Ljava/lang/String;
-PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/AppDataHelper;Ljava/util/List;I)V
+PLcom/android/server/pm/ApexSystemServiceInfo;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/ApkChecksums$Injector;-><init>(Lcom/android/server/pm/ApkChecksums$Injector$Producer;Lcom/android/server/pm/ApkChecksums$Injector$Producer;Lcom/android/server/pm/ApkChecksums$Injector$Producer;Lcom/android/server/pm/ApkChecksums$Injector$Producer;)V
+PLcom/android/server/pm/ApkChecksums$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
+PLcom/android/server/pm/ApkChecksums;-><clinit>()V
+PLcom/android/server/pm/ApkChecksums;->buildDigestsPathForApk(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/ApkChecksums;->calculateChecksumIfRequested(Ljava/util/Map;Ljava/lang/String;Ljava/io/File;II)V
+PLcom/android/server/pm/ApkChecksums;->convertToSet([Ljava/security/cert/Certificate;)Ljava/util/Set;
+PLcom/android/server/pm/ApkChecksums;->getAvailableApkChecksums(Ljava/lang/String;Ljava/io/File;ILjava/lang/String;[Ljava/security/cert/Certificate;Ljava/util/Map;Lcom/android/server/pm/ApkChecksums$Injector;)V
+PLcom/android/server/pm/ApkChecksums;->getChecksums(Ljava/util/List;IILjava/lang/String;[Ljava/security/cert/Certificate;Landroid/content/pm/IOnChecksumsReadyListener;Lcom/android/server/pm/ApkChecksums$Injector;)V
+PLcom/android/server/pm/ApkChecksums;->getRequiredApkChecksums(Ljava/lang/String;Ljava/io/File;ILjava/util/Map;)V
+PLcom/android/server/pm/ApkChecksums;->isRequired(IILjava/util/Map;)Z
+PLcom/android/server/pm/ApkChecksums;->needToWait(Ljava/io/File;ILjava/util/Map;Lcom/android/server/pm/ApkChecksums$Injector;)Z
+PLcom/android/server/pm/ApkChecksums;->processRequiredChecksums(Ljava/util/List;Ljava/util/List;ILandroid/content/pm/IOnChecksumsReadyListener;Lcom/android/server/pm/ApkChecksums$Injector;J)V
+PLcom/android/server/pm/ApkChecksums;->readChecksums(Ljava/io/File;)[Landroid/content/pm/Checksum;
+PLcom/android/server/pm/ApkChecksums;->writeChecksums(Ljava/io/OutputStream;[Landroid/content/pm/Checksum;)V
+PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/AppDataHelper;ZLcom/android/server/pm/PackageSetting;II)V
 PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda0;->run()V
-HPLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/AppDataHelper;ZLcom/android/server/pm/PackageSetting;II)V
+PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/AppDataHelper;Ljava/util/List;I)V
 PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda1;->run()V
-HPLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/AppDataHelper;Ljava/lang/String;Ljava/lang/String;IILandroid/os/CreateAppDataArgs;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/pm/AppDataHelper;->$r8$lambda$2BeLf97yLOm88wYtplb9WF4eyqo(Lcom/android/server/pm/AppDataHelper;ZLcom/android/server/pm/PackageSetting;II)V
-PLcom/android/server/pm/AppDataHelper;->$r8$lambda$M0YumYvb8z5b5xIpxD3ih_G5vRU(Lcom/android/server/pm/AppDataHelper;Ljava/lang/String;Ljava/lang/String;IILandroid/os/CreateAppDataArgs;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Landroid/os/CreateAppDataResult;Ljava/lang/Throwable;)V
-PLcom/android/server/pm/AppDataHelper;->$r8$lambda$YFf7DSMx-MyHV4nCg6MSaBHl8TQ(Lcom/android/server/pm/AppDataHelper;Ljava/util/List;I)V
+PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/UserManagerService$LocalService;ILcom/android/server/pm/PackageSetting;Landroid/os/storage/StorageManagerInternal;)V
+PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/AppDataHelper;Ljava/lang/String;Ljava/lang/String;IILandroid/os/CreateAppDataArgs;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/AppDataHelper;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HPLcom/android/server/pm/AppDataHelper;->assertPackageStorageValid(Lcom/android/server/pm/Computer;Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/pm/AppDataHelper;->assertPackageStorageValid(Lcom/android/server/pm/Computer;Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/pm/AppDataHelper;->clearAppDataLIF(Lcom/android/server/pm/pkg/AndroidPackage;II)V
+PLcom/android/server/pm/AppDataHelper;->clearAppProfilesLIF(Lcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/pm/AppDataHelper;->destroyAppProfilesLIF(Ljava/lang/String;)V
 PLcom/android/server/pm/AppDataHelper;->executeBatchLI(Lcom/android/server/pm/Installer$Batch;)V
 PLcom/android/server/pm/AppDataHelper;->fixAppsDataOnBoot()Ljava/util/concurrent/Future;
-HPLcom/android/server/pm/AppDataHelper;->lambda$fixAppsDataOnBoot$3(Ljava/util/List;I)V
-HPLcom/android/server/pm/AppDataHelper;->lambda$prepareAppData$2(Ljava/lang/String;Ljava/lang/String;IILandroid/os/CreateAppDataArgs;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Landroid/os/CreateAppDataResult;Ljava/lang/Throwable;)V
-PLcom/android/server/pm/AppDataHelper;->lambda$prepareAppDataAndMigrate$1(ZLcom/android/server/pm/PackageSetting;II)V
-HPLcom/android/server/pm/AppDataHelper;->maybeMigrateAppDataLIF(Lcom/android/server/pm/PackageSetting;I)Z
 HPLcom/android/server/pm/AppDataHelper;->prepareAppData(Lcom/android/server/pm/Installer$Batch;Lcom/android/server/pm/PackageSetting;III)Ljava/util/concurrent/CompletableFuture;
-HPLcom/android/server/pm/AppDataHelper;->prepareAppDataAndMigrate(Lcom/android/server/pm/Installer$Batch;Lcom/android/server/pm/pkg/AndroidPackage;IIZ)V
-HPLcom/android/server/pm/AppDataHelper;->prepareAppDataContentsLeafLIF(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;II)V
-PLcom/android/server/pm/AppDataHelper;->reconcileAppsData(IIZ)V
-PLcom/android/server/pm/AppDataHelper;->reconcileAppsDataLI(Ljava/lang/String;IIZ)V
-HPLcom/android/server/pm/AppDataHelper;->reconcileAppsDataLI(Ljava/lang/String;IIZZ)Ljava/util/List;
-HPLcom/android/server/pm/AppDataHelper;->shouldHaveAppStorage(Lcom/android/server/pm/pkg/AndroidPackage;)Z
+PLcom/android/server/pm/AppDataHelper;->prepareAppDataAndMigrate(Lcom/android/server/pm/Installer$Batch;Lcom/android/server/pm/pkg/PackageStateInternal;IIZ)V
+PLcom/android/server/pm/AppDataHelper;->prepareAppDataContentsLeafLIF(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;II)V
+PLcom/android/server/pm/AppDataHelper;->prepareAppDataPostCommitLIF(Lcom/android/server/pm/PackageSetting;[I)V
+PLcom/android/server/pm/AppDataHelper;->reconcileAppsDataLI(Ljava/lang/String;IIZZ)Ljava/util/List;
+PLcom/android/server/pm/AppDataHelper;->shouldHaveAppStorage(Lcom/android/server/pm/pkg/PackageStateInternal;)Z
 HSPLcom/android/server/pm/AppIdSettingMap;-><init>()V
 HSPLcom/android/server/pm/AppIdSettingMap;-><init>(Lcom/android/server/pm/AppIdSettingMap;)V
-HSPLcom/android/server/pm/AppIdSettingMap;->getSetting(I)Lcom/android/server/pm/SettingBase;
+PLcom/android/server/pm/AppIdSettingMap;->acquireAndRegisterNewAppId(Lcom/android/server/pm/SettingBase;)I
 HSPLcom/android/server/pm/AppIdSettingMap;->registerExistingAppId(ILcom/android/server/pm/SettingBase;Ljava/lang/Object;)Z
-HSPLcom/android/server/pm/AppIdSettingMap;->registerObserver(Lcom/android/server/utils/Watcher;)V
-PLcom/android/server/pm/AppIdSettingMap;->removeSetting(I)V
-PLcom/android/server/pm/AppIdSettingMap;->setFirstAvailableAppId(I)V
-HSPLcom/android/server/pm/AppIdSettingMap;->snapshot()Lcom/android/server/pm/AppIdSettingMap;
 PLcom/android/server/pm/AppStateHelper;-><clinit>()V
 PLcom/android/server/pm/AppStateHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;-><init>(Landroid/util/SparseArray;[ILcom/android/internal/util/function/QuadFunction;)V
-HPLcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;->toString(Ljava/lang/Object;)Ljava/lang/String;
-PLcom/android/server/pm/AppsFilterBase;->$r8$lambda$EzD-3Qgs3agQ0FfI--Dk-PGWLFc(Landroid/util/SparseArray;[ILcom/android/internal/util/function/QuadFunction;Ljava/lang/Integer;)Ljava/lang/String;
+PLcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;-><init>(Landroid/util/SparseArray;[ILcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda2;)V
+PLcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;->toString(Ljava/lang/Object;)Ljava/lang/String;
 HSPLcom/android/server/pm/AppsFilterBase;-><init>()V
-PLcom/android/server/pm/AppsFilterBase;->dumpForceQueryable(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$ToString;)V
-HPLcom/android/server/pm/AppsFilterBase;->dumpPackageSet(Ljava/io/PrintWriter;Ljava/lang/Object;Landroid/util/ArraySet;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/pm/AppsFilterBase$ToString;)V
-HPLcom/android/server/pm/AppsFilterBase;->dumpQueries(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/DumpState;[ILcom/android/internal/util/function/QuadFunction;)V
-HPLcom/android/server/pm/AppsFilterBase;->dumpQueriesMap(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/utils/WatchedSparseSetArray;Ljava/lang/String;Lcom/android/server/pm/AppsFilterBase$ToString;)V
-PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaComponent(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$ToString;)V
-HPLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaImplicitlyQueryable(Ljava/io/PrintWriter;Ljava/lang/Integer;[ILcom/android/server/pm/AppsFilterBase$ToString;)V
-PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaPackage(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$ToString;)V
-PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaUsesLibrary(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$ToString;)V
+PLcom/android/server/pm/AppsFilterBase;->canQueryPackage(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z
+PLcom/android/server/pm/AppsFilterBase;->dumpForceQueryable(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/AppsFilterBase;->dumpPackageSet(Ljava/io/PrintWriter;Ljava/lang/Object;Landroid/util/ArraySet;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/AppsFilterBase;->dumpQueriesMap(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/utils/WatchedSparseSetArray;Ljava/lang/String;Lcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaComponent(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaImplicitlyQueryable(Ljava/io/PrintWriter;Ljava/lang/Integer;[ILcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaPackage(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/AppsFilterBase;->dumpQueriesViaUsesLibrary(Ljava/io/PrintWriter;Ljava/lang/Integer;Lcom/android/server/pm/AppsFilterBase$$ExternalSyntheticLambda0;)V
 PLcom/android/server/pm/AppsFilterBase;->getVisibilityAllowList(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/pkg/PackageStateInternal;[ILandroid/util/ArrayMap;)Landroid/util/SparseArray;
-HPLcom/android/server/pm/AppsFilterBase;->isForceQueryable(I)Z
-HPLcom/android/server/pm/AppsFilterBase;->isImplicitlyQueryable(II)Z
-HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaComponent(II)Z
-HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaComponentWhenRequireRecompute(Landroid/util/ArrayMap;Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArraySet;Lcom/android/server/pm/pkg/AndroidPackage;II)Z
-HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaPackage(II)Z
-HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaUsesLibrary(II)Z
-HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaUsesPermission(II)Z
-HPLcom/android/server/pm/AppsFilterBase;->isRetainedImplicitlyQueryable(II)Z
-HPLcom/android/server/pm/AppsFilterBase;->lambda$dumpQueries$0(Landroid/util/SparseArray;[ILcom/android/internal/util/function/QuadFunction;Ljava/lang/Integer;)Ljava/lang/String;
-PLcom/android/server/pm/AppsFilterBase;->log(Ljava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;Ljava/lang/String;)V
-HSPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplication(Lcom/android/server/pm/snapshot/PackageDataSnapshot;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z
-HPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplicationInternal(Lcom/android/server/pm/Computer;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z
+PLcom/android/server/pm/AppsFilterBase;->getVisibilityAllowList(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/pkg/PackageStateInternal;[ILcom/android/server/utils/WatchedArrayMap;)Landroid/util/SparseArray;
+PLcom/android/server/pm/AppsFilterBase;->isForceQueryable(I)Z
+HPLcom/android/server/pm/AppsFilterBase;->isImplicitlyQueryable(II)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;
+HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaComponent(II)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;
+HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaPackage(II)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;
+HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaUsesLibrary(II)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;
+HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaUsesPermission(II)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;
+HPLcom/android/server/pm/AppsFilterBase;->isRetainedImplicitlyQueryable(II)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;
+HSPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplication(Lcom/android/server/pm/snapshot/PackageDataSnapshot;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z+]Lcom/android/server/pm/AppsFilterBase;Lcom/android/server/pm/AppsFilterSnapshotImpl;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
+HPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplicationInternal(Lcom/android/server/pm/Computer;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z+]Lcom/android/server/pm/AppsFilterBase;Lcom/android/server/pm/AppsFilterImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;
 HPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplicationUsingCache(III)Z
 HSPLcom/android/server/pm/AppsFilterImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/AppsFilterImpl;)V
-PLcom/android/server/pm/AppsFilterImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/AppsFilterImpl;Landroid/content/pm/PackageManagerInternal;IJ)V
+PLcom/android/server/pm/AppsFilterImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/AppsFilterImpl;Landroid/content/pm/PackageManagerInternal;J)V
 PLcom/android/server/pm/AppsFilterImpl$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/pm/AppsFilterImpl$1;-><init>(Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/AppsFilterImpl$1;->createSnapshot()Lcom/android/server/pm/AppsFilterSnapshot;
+HSPLcom/android/server/pm/AppsFilterImpl$1;-><init>(Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterImpl;)V
 HSPLcom/android/server/pm/AppsFilterImpl$1;->createSnapshot()Ljava/lang/Object;
 PLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;)V
+PLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;-><init>(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerServiceInjector;)V
-HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;-><init>(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl-IA;)V
 HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;-><init>(Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;)V
-HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->enableLogging(IZ)V
+HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->enableLogging(IZ)V
 HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->isGloballyEnabled()Z
-HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->isLoggingEnabled(I)Z
+PLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->isLoggingEnabled(I)Z
 PLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->onSystemReady()V
-HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->packageIsEnabled(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->setAppsFilter(Lcom/android/server/pm/AppsFilterImpl;)V
-HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->snapshot()Lcom/android/server/pm/FeatureConfig;
-HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->updateEnabledState(Lcom/android/server/pm/pkg/AndroidPackage;)V
-HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->updatePackageState(Lcom/android/server/pm/pkg/PackageStateInternal;Z)V
-PLcom/android/server/pm/AppsFilterImpl;->$r8$lambda$z8pKsxG_4fqX35js78wjP4SRLPM(Lcom/android/server/pm/AppsFilterImpl;Landroid/content/pm/PackageManagerInternal;IJ)V
-PLcom/android/server/pm/AppsFilterImpl;->-$$Nest$monChanged(Lcom/android/server/pm/AppsFilterImpl;)V
+HPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->packageIsEnabled(Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->snapshot()Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;
+HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->updateEnabledState(Lcom/android/server/pm/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;->updatePackageState(Lcom/android/server/pm/pkg/PackageStateInternal;Z)V
 HSPLcom/android/server/pm/AppsFilterImpl;-><init>(Lcom/android/server/pm/FeatureConfig;[Ljava/lang/String;ZLcom/android/server/om/OverlayReferenceMapper$Provider;Landroid/os/Handler;)V
-HPLcom/android/server/pm/AppsFilterImpl;->addPackage(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/PackageStateInternal;ZZ)V
-HPLcom/android/server/pm/AppsFilterImpl;->addPackageInternal(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;)Landroid/util/ArraySet;
-HSPLcom/android/server/pm/AppsFilterImpl;->create(Lcom/android/server/pm/PackageManagerServiceInjector;Landroid/content/pm/PackageManagerInternal;)Lcom/android/server/pm/AppsFilterImpl;
-HPLcom/android/server/pm/AppsFilterImpl;->dispatchChange(Lcom/android/server/utils/Watchable;)V
-HPLcom/android/server/pm/AppsFilterImpl;->grantImplicitAccess(IIZ)Z
-HPLcom/android/server/pm/AppsFilterImpl;->invalidateCache(Ljava/lang/String;)V
+HSPLcom/android/server/pm/AppsFilterImpl;->addPackage(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/PackageStateInternal;ZZ)V
+HSPLcom/android/server/pm/AppsFilterImpl;->addPackageInternal(Landroid/util/ArrayMap;Lcom/android/server/pm/pkg/PackageStateInternal;)Landroid/util/ArraySet;+]Lcom/android/internal/pm/pkg/component/ParsedPermission;Lcom/android/internal/pm/pkg/component/ParsedPermissionImpl;]Lcom/android/internal/pm/pkg/component/ParsedUsesPermission;Lcom/android/internal/pm/pkg/component/ParsedUsesPermissionImpl;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;
+HSPLcom/android/server/pm/AppsFilterImpl;->dispatchChange(Lcom/android/server/utils/Watchable;)V
+HSPLcom/android/server/pm/AppsFilterImpl;->invalidateCache(Ljava/lang/String;)V
+HPLcom/android/server/pm/AppsFilterImpl;->isForceQueryable(I)Z
+HPLcom/android/server/pm/AppsFilterImpl;->isImplicitlyQueryable(II)Z
+PLcom/android/server/pm/AppsFilterImpl;->isQueryableViaComponent(II)Z
 PLcom/android/server/pm/AppsFilterImpl;->isQueryableViaComponentWhenRequireRecompute(Landroid/util/ArrayMap;Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArraySet;Lcom/android/server/pm/pkg/AndroidPackage;II)Z
-HPLcom/android/server/pm/AppsFilterImpl;->isSystemSigned(Landroid/content/pm/SigningDetails;Lcom/android/server/pm/pkg/PackageStateInternal;)Z
-PLcom/android/server/pm/AppsFilterImpl;->lambda$updateEntireShouldFilterCacheAsync$0(Landroid/content/pm/PackageManagerInternal;IJ)V
-PLcom/android/server/pm/AppsFilterImpl;->logCacheRebuilt(IJII)V
-HPLcom/android/server/pm/AppsFilterImpl;->onChanged()V
-PLcom/android/server/pm/AppsFilterImpl;->onSystemReady(Landroid/content/pm/PackageManagerInternal;)V
-HPLcom/android/server/pm/AppsFilterImpl;->pkgInstruments(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HSPLcom/android/server/pm/AppsFilterImpl;->readCacheEnabledSysProp()V
-PLcom/android/server/pm/AppsFilterImpl;->recomputeComponentVisibility(Landroid/util/ArrayMap;)V
+HPLcom/android/server/pm/AppsFilterImpl;->isQueryableViaPackage(II)Z
+HPLcom/android/server/pm/AppsFilterImpl;->isQueryableViaUsesLibrary(II)Z
+PLcom/android/server/pm/AppsFilterImpl;->isQueryableViaUsesPermission(II)Z
+HPLcom/android/server/pm/AppsFilterImpl;->isRetainedImplicitlyQueryable(II)Z
+HSPLcom/android/server/pm/AppsFilterImpl;->pkgInstruments(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
 HSPLcom/android/server/pm/AppsFilterImpl;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/pm/AppsFilterImpl;->snapshot()Lcom/android/server/pm/AppsFilterSnapshot;
-PLcom/android/server/pm/AppsFilterImpl;->updateEntireShouldFilterCacheAsync(Landroid/content/pm/PackageManagerInternal;I)V
-PLcom/android/server/pm/AppsFilterImpl;->updateEntireShouldFilterCacheAsync(Landroid/content/pm/PackageManagerInternal;JI)V
-HPLcom/android/server/pm/AppsFilterImpl;->updateEntireShouldFilterCacheInner(Lcom/android/server/pm/Computer;Landroid/util/ArrayMap;[Landroid/content/pm/UserInfo;I)V
-PLcom/android/server/pm/AppsFilterImpl;->updateShouldFilterCacheForImplicitAccess()V
+PLcom/android/server/pm/AppsFilterImpl;->removeAppIdFromVisibilityCache(I)V
+PLcom/android/server/pm/AppsFilterImpl;->removePackageInternal(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/PackageStateInternal;ZZ)V
+PLcom/android/server/pm/AppsFilterImpl;->shouldFilterApplicationUsingCache(III)Z
+HSPLcom/android/server/pm/AppsFilterImpl;->snapshot()Lcom/android/server/pm/AppsFilterBase;
+PLcom/android/server/pm/AppsFilterImpl;->updateEntireShouldFilterCacheInner(Lcom/android/server/pm/Computer;Landroid/util/ArrayMap;[Landroid/content/pm/UserInfo;I)V
 PLcom/android/server/pm/AppsFilterImpl;->updateShouldFilterCacheForImplicitAccess(Lcom/android/server/utils/WatchedSparseSetArray;)V
-HPLcom/android/server/pm/AppsFilterImpl;->updateShouldFilterCacheForPackage(Lcom/android/server/pm/Computer;Ljava/lang/String;Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;[Landroid/content/pm/UserInfo;II)V
-HPLcom/android/server/pm/AppsFilterImpl;->updateShouldFilterCacheForUser(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/PackageStateInternal;[Landroid/content/pm/UserInfo;Lcom/android/server/pm/pkg/PackageStateInternal;I)V
-HSPLcom/android/server/pm/AppsFilterLocked;-><init>()V
-HPLcom/android/server/pm/AppsFilterLocked;->isForceQueryable(I)Z
-PLcom/android/server/pm/AppsFilterLocked;->isImplicitlyQueryable(II)Z
-HPLcom/android/server/pm/AppsFilterLocked;->isQueryableViaComponent(II)Z
-HPLcom/android/server/pm/AppsFilterLocked;->isQueryableViaPackage(II)Z
-HPLcom/android/server/pm/AppsFilterLocked;->isQueryableViaUsesLibrary(II)Z
-HPLcom/android/server/pm/AppsFilterLocked;->isQueryableViaUsesPermission(II)Z
-PLcom/android/server/pm/AppsFilterLocked;->isRetainedImplicitlyQueryable(II)Z
-HSPLcom/android/server/pm/AppsFilterSnapshotImpl;-><init>(Lcom/android/server/pm/AppsFilterImpl;)V
+HPLcom/android/server/pm/AppsFilterImpl;->updateShouldFilterCacheForPackage(Lcom/android/server/pm/Computer;Ljava/lang/String;Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;[Landroid/content/pm/UserInfo;II)V+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
+HPLcom/android/server/pm/AppsFilterImpl;->updateShouldFilterCacheForUser(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/PackageStateInternal;[Landroid/content/pm/UserInfo;Lcom/android/server/pm/pkg/PackageStateInternal;I)V+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
 PLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
-PLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;->$r8$lambda$UMa2mVXysTyYjRdBqkvUdM8dmxQ(Lcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;Lcom/android/server/pm/pkg/PackageStateInternal;)Landroid/util/ArraySet;
+HPLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
 PLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;-><init>(Landroid/util/ArrayMap;Landroid/util/ArraySet;Lcom/android/server/utils/WatchedArraySet;)V
-HPLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;->execute()Landroid/util/SparseSetArray;
-HPLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;->getVisibleListOfQueryViaComponents(Lcom/android/server/pm/pkg/PackageStateInternal;)Landroid/util/ArraySet;
-PLcom/android/server/pm/AppsFilterUtils$ParallelComputeComponentVisibility;->lambda$execute$0(Lcom/android/server/pm/pkg/PackageStateInternal;)Landroid/util/ArraySet;
-HPLcom/android/server/pm/AppsFilterUtils;->canQueryAsInstaller(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->canQueryAsUpdateOwner(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->canQueryViaComponents(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/utils/WatchedArraySet;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->canQueryViaPackage(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->canQueryViaUsesLibrary(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->matchesAnyComponents(Landroid/content/Intent;Ljava/util/List;Lcom/android/server/utils/WatchedArraySet;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->matchesAnyFilter(Landroid/content/Intent;Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/server/utils/WatchedArraySet;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->matchesIntentFilter(Landroid/content/Intent;Landroid/content/IntentFilter;Lcom/android/server/utils/WatchedArraySet;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->matchesPackage(Landroid/content/Intent;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/utils/WatchedArraySet;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->matchesProviders(Ljava/util/Set;Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/AppsFilterUtils;->requestsQueryAllPackages(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-PLcom/android/server/pm/BackgroundInstallControlCallbackHelper;-><init>()V
-PLcom/android/server/pm/BackgroundInstallControlService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/BackgroundInstallControlService;)V
-HPLcom/android/server/pm/BackgroundInstallControlService$$ExternalSyntheticLambda0;->onUsageEvent(ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/pm/BackgroundInstallControlService$1;-><init>(Lcom/android/server/pm/BackgroundInstallControlService;)V
-PLcom/android/server/pm/BackgroundInstallControlService$BinderService;-><init>(Lcom/android/server/pm/BackgroundInstallControlService;)V
-PLcom/android/server/pm/BackgroundInstallControlService$EventHandler;-><init>(Landroid/os/Looper;Lcom/android/server/pm/BackgroundInstallControlService;)V
-PLcom/android/server/pm/BackgroundInstallControlService$EventHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getBackgroundInstallControlCallbackHelper()Lcom/android/server/pm/BackgroundInstallControlCallbackHelper;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getContext()Landroid/content/Context;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getDiskFile()Ljava/io/File;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getLooper()Landroid/os/Looper;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getPackageManager()Landroid/content/pm/PackageManager;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getPermissionManager()Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-PLcom/android/server/pm/BackgroundInstallControlService$InjectorImpl;->getUsageStatsManagerInternal()Landroid/app/usage/UsageStatsManagerInternal;
-HPLcom/android/server/pm/BackgroundInstallControlService;->$r8$lambda$r3_D5ZCfbKAc8o--pXGNM2kXs6w(Lcom/android/server/pm/BackgroundInstallControlService;ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/pm/BackgroundInstallControlService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/BackgroundInstallControlService;-><init>(Lcom/android/server/pm/BackgroundInstallControlService$Injector;)V
-PLcom/android/server/pm/BackgroundInstallControlService;->handleUsageEvent(Landroid/app/usage/UsageEvents$Event;I)V
-PLcom/android/server/pm/BackgroundInstallControlService;->isInstaller(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/BackgroundInstallControlService;->lambda$new$0(ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/pm/BackgroundInstallControlService;->onStart()V
-PLcom/android/server/pm/BackgroundInstallControlService;->onStart(Z)V
-HSPLcom/android/server/pm/BroadcastHelper;-><clinit>()V
+HPLcom/android/server/pm/AppsFilterUtils;->canQueryAsInstaller(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+HPLcom/android/server/pm/AppsFilterUtils;->canQueryViaComponents(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/utils/WatchedArraySet;)Z+]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;
+HPLcom/android/server/pm/AppsFilterUtils;->canQueryViaUsesLibrary(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;
+HPLcom/android/server/pm/AppsFilterUtils;->matchesAnyComponents(Landroid/content/Intent;Ljava/util/List;Lcom/android/server/utils/WatchedArraySet;)Z+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;
+PLcom/android/server/pm/BackgroundUserSoundNotifier$1;-><init>(Lcom/android/server/pm/BackgroundUserSoundNotifier;Landroid/app/ActivityManager;)V
+PLcom/android/server/pm/BackgroundUserSoundNotifier$BackgroundUserListener;-><init>(Lcom/android/server/pm/BackgroundUserSoundNotifier;)V
+PLcom/android/server/pm/BackgroundUserSoundNotifier$BackgroundUserListener;->onAudioFocusGrant(Landroid/media/AudioFocusInfo;I)V
+PLcom/android/server/pm/BackgroundUserSoundNotifier$BackgroundUserListener;->onAudioFocusLoss(Landroid/media/AudioFocusInfo;Z)V
+PLcom/android/server/pm/BackgroundUserSoundNotifier;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/BackgroundUserSoundNotifier;->dismissNotificationIfNecessary(I)V
+PLcom/android/server/pm/BackgroundUserSoundNotifier;->getAudioFocusInfoForNotification(I)Landroid/media/AudioFocusInfo;
+PLcom/android/server/pm/BackgroundUserSoundNotifier;->notifyForegroundUserAboutSoundIfNecessary(Landroid/media/AudioFocusInfo;)V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/BroadcastHelper;Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;[I[ILandroid/util/SparseArray;Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/Computer;I)V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/BroadcastHelper;Ljava/lang/String;I[I[IZILandroid/util/SparseArray;)V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda3;-><init>(I)V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/BroadcastHelper;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;[I[ILandroid/util/SparseArray;Landroid/os/Bundle;)V
+PLcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda4;->run()V
 HSPLcom/android/server/pm/BroadcastHelper;-><init>(Lcom/android/server/pm/PackageManagerServiceInjector;)V
-PLcom/android/server/pm/BroadcastHelper;->broadcastIntent(Landroid/content/Intent;Landroid/content/IIntentReceiver;ZILandroid/util/SparseArray;Ljava/util/function/BiFunction;Landroid/os/Bundle;)V
-PLcom/android/server/pm/BroadcastHelper;->doSendBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[IZLandroid/util/SparseArray;Ljava/util/function/BiFunction;Landroid/os/Bundle;)V
-PLcom/android/server/pm/BroadcastHelper;->sendPackageBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I[ILandroid/util/SparseArray;Ljava/util/function/BiFunction;Landroid/os/Bundle;)V
+PLcom/android/server/pm/BroadcastHelper;->doSendBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;[IZLandroid/util/SparseArray;Ljava/util/function/BiFunction;Landroid/os/Bundle;[Ljava/lang/String;)V
+PLcom/android/server/pm/BroadcastHelper;->isPrivacySafetyLabelChangeNotificationsEnabled(Landroid/content/Context;)Z
+PLcom/android/server/pm/BroadcastHelper;->sendPackageAddedForNewUsers(Lcom/android/server/pm/Computer;Ljava/lang/String;ZZI[I[IZI)V
+PLcom/android/server/pm/BroadcastHelper;->sendPackageBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;[I[ILandroid/util/SparseArray;Ljava/util/function/BiFunction;Landroid/os/Bundle;[Ljava/lang/String;)V
+PLcom/android/server/pm/BroadcastHelper;->sendPackageBroadcastAndNotify(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;[I[ILandroid/util/SparseArray;Landroid/os/Bundle;)V
+PLcom/android/server/pm/BroadcastHelper;->sendPackageChangedBroadcast(Lcom/android/server/pm/Computer;Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
+PLcom/android/server/pm/BroadcastHelper;->sendPackageChangedBroadcastWithPermissions(Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;[I[ILandroid/util/SparseArray;Ljava/lang/String;[Ljava/lang/String;)V
+PLcom/android/server/pm/BroadcastHelper;->sendPackageRemovedBroadcasts(Lcom/android/server/pm/PackageRemovedInfo;Lcom/android/server/pm/PackageSender;ZZZ)V
+PLcom/android/server/pm/BroadcastHelper;->sendPreferredActivityChangedBroadcast(I)V
+PLcom/android/server/pm/BroadcastHelper;->sendSessionCommitBroadcast(Lcom/android/server/pm/Computer;Landroid/content/pm/PackageInstaller$SessionInfo;ILjava/lang/String;)V
 HSPLcom/android/server/pm/ChangedPackagesTracker;-><init>()V
-PLcom/android/server/pm/ChangedPackagesTracker;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
-PLcom/android/server/pm/ChangedPackagesTracker;->getSequenceNumber()I
+PLcom/android/server/pm/CleanUpArgs;-><init>([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/CompilerStats$PackageStats;-><init>(Ljava/lang/String;)V
+PLcom/android/server/pm/CompilerStats$PackageStats;->setCompileTime(JLjava/lang/String;)V
 HSPLcom/android/server/pm/CompilerStats;-><init>()V
-PLcom/android/server/pm/CompilerStats;->getPackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
+PLcom/android/server/pm/CompilerStats;->getOrCreatePackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
 PLcom/android/server/pm/CompilerStats;->read()V
-PLcom/android/server/pm/CompilerStats;->readInternal(Ljava/lang/Object;)V
-PLcom/android/server/pm/CompilerStats;->readInternal(Ljava/lang/Void;)V
+PLcom/android/server/pm/CompilerStats;->read(Ljava/io/Reader;)V
+PLcom/android/server/pm/CompilerStats;->readInternal(Lcom/android/server/utils/WatchedArrayMap;)V
+PLcom/android/server/pm/CompilerStats;->write(Ljava/io/Writer;)V
+PLcom/android/server/pm/CompilerStats;->writeInternal(Ljava/lang/Object;)V
 PLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ComputerEngine$Settings;)V
-HSPLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda1;-><init>()V
-HPLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/ComputerEngine;)V
-HPLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/pm/ComputerEngine$Settings;-><init>(Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/Settings;)V
-PLcom/android/server/pm/ComputerEngine$Settings;->dumpKeySet(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/DumpState;)V
-PLcom/android/server/pm/ComputerEngine$Settings;->dumpPackages(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
-PLcom/android/server/pm/ComputerEngine$Settings;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;)V
-PLcom/android/server/pm/ComputerEngine$Settings;->dumpPreferred(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
-PLcom/android/server/pm/ComputerEngine$Settings;->dumpSharedUsers(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
-PLcom/android/server/pm/ComputerEngine$Settings;->getApplicationEnabledSetting(Ljava/lang/String;I)I
-HPLcom/android/server/pm/ComputerEngine$Settings;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
-HPLcom/android/server/pm/ComputerEngine$Settings;->getCrossProfileIntentResolver(I)Lcom/android/server/pm/CrossProfileIntentResolver;
-HSPLcom/android/server/pm/ComputerEngine$Settings;->getDisabledSystemPackages()Landroid/util/ArrayMap;
-HPLcom/android/server/pm/ComputerEngine$Settings;->getDisabledSystemPkg(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;
-HSPLcom/android/server/pm/ComputerEngine$Settings;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;
+PLcom/android/server/pm/ComputerEngine$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComputerEngine$Settings;-><init>(Lcom/android/server/pm/Settings;)V
+HPLcom/android/server/pm/ComputerEngine$Settings;->getApplicationEnabledSetting(Ljava/lang/String;I)I
+HPLcom/android/server/pm/ComputerEngine$Settings;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I+]Lcom/android/server/pm/pkg/PackageUserStateInternal;Lcom/android/server/pm/pkg/PackageUserStateImpl;
 HSPLcom/android/server/pm/ComputerEngine$Settings;->getPackages()Landroid/util/ArrayMap;
-HSPLcom/android/server/pm/ComputerEngine$Settings;->getRenamedPackageLPr(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/server/pm/ComputerEngine$Settings;->getSettingBase(I)Lcom/android/server/pm/SettingBase;
-HPLcom/android/server/pm/ComputerEngine$Settings;->getSharedUserFromAppId(I)Lcom/android/server/pm/pkg/SharedUserApi;
-PLcom/android/server/pm/ComputerEngine$Settings;->getSharedUserFromId(Ljava/lang/String;)Lcom/android/server/pm/SharedUserSetting;
-HPLcom/android/server/pm/ComputerEngine$Settings;->getSharedUserFromPackageName(Ljava/lang/String;)Lcom/android/server/pm/pkg/SharedUserApi;
-PLcom/android/server/pm/ComputerEngine$Settings;->getVolumePackages(Ljava/lang/String;)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine$Settings;->isEnabledAndMatch(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;JI)Z
-PLcom/android/server/pm/ComputerEngine;->$r8$lambda$ZsQO-GMd1VCddKx0WIWHtlgezQI(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
+HPLcom/android/server/pm/ComputerEngine$Settings;->isEnabledAndMatch(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;JI)Z+]Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/ComputerEngine;-><clinit>()V
 HSPLcom/android/server/pm/ComputerEngine;-><init>(Lcom/android/server/pm/PackageManagerService$Snapshot;I)V
-HPLcom/android/server/pm/ComputerEngine;->addPackageHoldingPermissions(Ljava/util/ArrayList;Lcom/android/server/pm/pkg/PackageStateInternal;[Ljava/lang/String;[ZJI)V
-HPLcom/android/server/pm/ComputerEngine;->applyPostResolutionFilter(Ljava/util/List;Ljava/lang/String;ZIZILandroid/content/Intent;)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;II)Ljava/util/List;
-PLcom/android/server/pm/ComputerEngine;->areWebInstantAppsDisabled(I)Z
+PLcom/android/server/pm/ComputerEngine;->androidApplication()Landroid/content/pm/ApplicationInfo;
+HPLcom/android/server/pm/ComputerEngine;->applyPostResolutionFilter(Ljava/util/List;Ljava/lang/String;ZIZILandroid/content/Intent;)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+HPLcom/android/server/pm/ComputerEngine;->applyPostServiceResolutionFilter(IILjava/lang/String;Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/pm/ComputerEngine;->canQueryPackage(ILjava/lang/String;)Z
 PLcom/android/server/pm/ComputerEngine;->canViewInstantApps(II)Z
+PLcom/android/server/pm/ComputerEngine;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
+PLcom/android/server/pm/ComputerEngine;->checkPackageFrozen(Ljava/lang/String;)V
 HPLcom/android/server/pm/ComputerEngine;->checkSignatures(Ljava/lang/String;Ljava/lang/String;I)I
 PLcom/android/server/pm/ComputerEngine;->checkSignaturesInternal(Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;)I
 HPLcom/android/server/pm/ComputerEngine;->checkUidPermission(Ljava/lang/String;I)I
-HPLcom/android/server/pm/ComputerEngine;->dump(ILjava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V
-PLcom/android/server/pm/ComputerEngine;->dumpKeySet(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/DumpState;)V
-PLcom/android/server/pm/ComputerEngine;->dumpPackages(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
+PLcom/android/server/pm/ComputerEngine;->checkUidSignatures(II)I
+PLcom/android/server/pm/ComputerEngine;->dump(ILjava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V
+PLcom/android/server/pm/ComputerEngine;->dumpApexPackageStates(Ljava/util/List;ZLjava/lang/String;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/pm/ComputerEngine;->dumpKeySet(Lcom/android/server/pm/DumpState;Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/pm/ComputerEngine;->dumpPackages(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
 PLcom/android/server/pm/ComputerEngine;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;)V
 PLcom/android/server/pm/ComputerEngine;->dumpSharedUsers(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
-HPLcom/android/server/pm/ComputerEngine;->enforceCrossUserOrProfilePermission(IIZZLjava/lang/String;)V
-HPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IIZZLjava/lang/String;)V
-HPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IIZZZLjava/lang/String;)V
+HPLcom/android/server/pm/ComputerEngine;->enforceCrossUserOrProfilePermission(IILjava/lang/String;)V
+HPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IZLjava/lang/String;IZZ)V
+HPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(Ljava/lang/String;IIZZ)V
 PLcom/android/server/pm/ComputerEngine;->filterAppAccess(II)Z
-HSPLcom/android/server/pm/ComputerEngine;->filterAppAccess(Ljava/lang/String;IIZ)Z
-PLcom/android/server/pm/ComputerEngine;->filterIfNotSystemUser(Ljava/util/List;I)Ljava/util/List;
+HSPLcom/android/server/pm/ComputerEngine;->filterAppAccess(ILjava/lang/String;IZ)Z
+PLcom/android/server/pm/ComputerEngine;->filterIfNotSystemUser(ILjava/util/List;)V
 HSPLcom/android/server/pm/ComputerEngine;->filterOnlySystemPackages([Ljava/lang/String;)[Ljava/lang/String;
-HPLcom/android/server/pm/ComputerEngine;->filterSdkLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z
-HPLcom/android/server/pm/ComputerEngine;->filterSharedLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z
-HPLcom/android/server/pm/ComputerEngine;->filterStaticSharedLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z
-HPLcom/android/server/pm/ComputerEngine;->generatePackageInfo(Lcom/android/server/pm/pkg/PackageStateInternal;JI)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/ComputerEngine;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
-HPLcom/android/server/pm/ComputerEngine;->getActivityInfoInternal(Landroid/content/ComponentName;JII)Landroid/content/pm/ActivityInfo;
-HPLcom/android/server/pm/ComputerEngine;->getActivityInfoInternalBody(Landroid/content/ComponentName;JII)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/pm/ComputerEngine;->getApplicationEnabledSetting(Ljava/lang/String;I)I
+HPLcom/android/server/pm/ComputerEngine;->filterSharedLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/ComputerEngine;->findPersistentPreferredActivity(Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZI)Landroid/content/pm/ResolveInfo;
+PLcom/android/server/pm/ComputerEngine;->findPreferredActivityInternal(Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZZZIZ)Lcom/android/server/pm/PackageManagerService$FindPreferredActivityBodyResult;
+PLcom/android/server/pm/ComputerEngine;->generateApplicationInfoFromSettings(IILjava/lang/String;J)Landroid/content/pm/ApplicationInfo;
+HPLcom/android/server/pm/ComputerEngine;->generatePackageInfo(Lcom/android/server/pm/pkg/PackageStateInternal;JI)Landroid/content/pm/PackageInfo;+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/internal/pm/pkg/component/ParsedAttribution;Lcom/android/internal/pm/pkg/component/ParsedAttributionImpl;]Lcom/android/internal/pm/pkg/component/ParsedPermission;Lcom/android/internal/pm/pkg/component/ParsedPermissionImpl;]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/internal/pm/pkg/component/ParsedUsesPermission;Lcom/android/internal/pm/pkg/component/ParsedUsesPermissionImpl;]Lcom/android/internal/pm/pkg/parsing/ParsingPackageHidden;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ApexManager;Lcom/android/server/pm/ApexManager$ApexManagerImpl;]Lcom/android/server/pm/permission/PermissionManagerServiceInterface;Lcom/android/server/permission/access/permission/PermissionService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$UnmodifiableSet;
+HPLcom/android/server/pm/ComputerEngine;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/pm/ComputerEngine;->getActivityInfoInternal(IIJLandroid/content/ComponentName;)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/pm/ComputerEngine;->getActivityInfoInternalBody(IIJLandroid/content/ComponentName;)Landroid/content/pm/ActivityInfo;+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;
+HPLcom/android/server/pm/ComputerEngine;->getApplicationEnabledSetting(Ljava/lang/String;I)I
 HPLcom/android/server/pm/ComputerEngine;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/ComputerEngine;->getApplicationInfoInternal(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/ComputerEngine;->getApplicationInfoInternalBody(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/pm/ComputerEngine;->getBaseSdkSandboxUid()I
+HPLcom/android/server/pm/ComputerEngine;->getApplicationInfoInternal(IILjava/lang/String;J)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/ComputerEngine;->getBlockUninstall(ILjava/lang/String;)Z
 HPLcom/android/server/pm/ComputerEngine;->getComponentEnabledSetting(Landroid/content/ComponentName;II)I
 HPLcom/android/server/pm/ComputerEngine;->getComponentEnabledSettingInternal(Landroid/content/ComponentName;II)I
 HPLcom/android/server/pm/ComputerEngine;->getComponentResolver()Lcom/android/server/pm/resolution/ComponentResolverApi;
-HPLcom/android/server/pm/ComputerEngine;->getDisabledSystemPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;
+HPLcom/android/server/pm/ComputerEngine;->getDeclaredSharedLibraries(Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;
+PLcom/android/server/pm/ComputerEngine;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
+PLcom/android/server/pm/ComputerEngine;->getDisabledSystemPackage(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/ComputerEngine;->getDisabledSystemPackageStates()Landroid/util/ArrayMap;
-PLcom/android/server/pm/ComputerEngine;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
-HPLcom/android/server/pm/ComputerEngine;->getInstallSource(Ljava/lang/String;II)Lcom/android/server/pm/InstallSource;
-HPLcom/android/server/pm/ComputerEngine;->getInstallSourceInfo(Ljava/lang/String;I)Landroid/content/pm/InstallSourceInfo;
-HPLcom/android/server/pm/ComputerEngine;->getInstalledApplications(JIIZ)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/ComputerEngine;->getInstalledPackagesBody(JII)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/ComputerEngine;->getInstallerPackageName(Ljava/lang/String;I)Ljava/lang/String;
-HSPLcom/android/server/pm/ComputerEngine;->getInstantAppPackageName(I)Ljava/lang/String;
-PLcom/android/server/pm/ComputerEngine;->getInstrumentationInfoAsUser(Landroid/content/ComponentName;II)Landroid/content/pm/InstrumentationInfo;
-HPLcom/android/server/pm/ComputerEngine;->getMatchingCrossProfileIntentFilters(Landroid/content/Intent;Ljava/lang/String;I)Ljava/util/List;
+HPLcom/android/server/pm/ComputerEngine;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
+PLcom/android/server/pm/ComputerEngine;->getHomeActivitiesAsUser(ILjava/util/List;)Landroid/content/ComponentName;
+PLcom/android/server/pm/ComputerEngine;->getHomeIntent()Landroid/content/Intent;
+PLcom/android/server/pm/ComputerEngine;->getInstallReason(Ljava/lang/String;I)I
+HPLcom/android/server/pm/ComputerEngine;->getInstallSourceInfo(Ljava/lang/String;I)Landroid/content/pm/InstallSourceInfo;+]Landroid/app/admin/DevicePolicyManagerInternal;Lcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;
+HPLcom/android/server/pm/ComputerEngine;->getInstalledApplications(IIJZ)Ljava/util/List;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+HPLcom/android/server/pm/ComputerEngine;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;,Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1;
+PLcom/android/server/pm/ComputerEngine;->getInstallerPackageName(ILjava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/ComputerEngine;->getInstantAppPackageName(I)Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/ComputerEngine;->getMatchingCrossProfileIntentFilters(Landroid/content/Intent;Ljava/lang/String;I)Ljava/util/List;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/pm/ComputerEngine;->getNameForUid(I)Ljava/lang/String;
-HPLcom/android/server/pm/ComputerEngine;->getNamesForUids([I)[Ljava/lang/String;
+PLcom/android/server/pm/ComputerEngine;->getNamesForUids([I)[Ljava/lang/String;
+PLcom/android/server/pm/ComputerEngine;->getNotifyPackagesForReplacedReceived([Ljava/lang/String;)Landroid/util/ArraySet;
 HPLcom/android/server/pm/ComputerEngine;->getPackage(I)Lcom/android/server/pm/pkg/AndroidPackage;
 HPLcom/android/server/pm/ComputerEngine;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;
 HPLcom/android/server/pm/ComputerEngine;->getPackageGids(Ljava/lang/String;JI)[I
 HPLcom/android/server/pm/ComputerEngine;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/ComputerEngine;->getPackageInfoInternal(Ljava/lang/String;JJII)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/ComputerEngine;->getPackageInfoInternalBody(Ljava/lang/String;JJII)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/ComputerEngine;->getPackageStartability(ZLjava/lang/String;II)I
-HPLcom/android/server/pm/ComputerEngine;->getPackageStateFiltered(Ljava/lang/String;II)Lcom/android/server/pm/pkg/PackageStateInternal;
-HPLcom/android/server/pm/ComputerEngine;->getPackageStateForInstalledAndFiltered(Ljava/lang/String;II)Lcom/android/server/pm/pkg/PackageStateInternal;
-HSPLcom/android/server/pm/ComputerEngine;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;
-HSPLcom/android/server/pm/ComputerEngine;->getPackageStateInternal(Ljava/lang/String;I)Lcom/android/server/pm/pkg/PackageStateInternal;
+HPLcom/android/server/pm/ComputerEngine;->getPackageInfoInternal(IILjava/lang/String;JJ)Landroid/content/pm/PackageInfo;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+HPLcom/android/server/pm/ComputerEngine;->getPackageStartability(ILjava/lang/String;IZ)I+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/ComputerEngine;->getPackageStateFiltered(IILjava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HPLcom/android/server/pm/ComputerEngine;->getPackageStateForInstalledAndFiltered(IILjava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/ComputerEngine;->getPackageStateInternal(ILjava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/ComputerEngine;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/ComputerEngine;->getPackageStates()Landroid/util/ArrayMap;
 HPLcom/android/server/pm/ComputerEngine;->getPackageUid(Ljava/lang/String;JI)I
-HPLcom/android/server/pm/ComputerEngine;->getPackageUidInternal(Ljava/lang/String;JII)I
+HPLcom/android/server/pm/ComputerEngine;->getPackageUidInternal(IILjava/lang/String;J)I+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateDefault;,Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/ComputerEngine;->getPackagesForAppId(I)Ljava/util/List;
 HPLcom/android/server/pm/ComputerEngine;->getPackagesForUid(I)[Ljava/lang/String;
 HPLcom/android/server/pm/ComputerEngine;->getPackagesForUidInternal(II)[Ljava/lang/String;
-HPLcom/android/server/pm/ComputerEngine;->getPackagesForUidInternalBody(IIIZ)[Ljava/lang/String;
-HPLcom/android/server/pm/ComputerEngine;->getPackagesHoldingPermissions([Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/ComputerEngine;->getPackagesUsingSharedLibrary(Landroid/content/pm/SharedLibraryInfo;JII)Landroid/util/Pair;
-HPLcom/android/server/pm/ComputerEngine;->getPersistentApplications(ZI)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine;->getProcessesForUid(I)Landroid/util/ArrayMap;
-HPLcom/android/server/pm/ComputerEngine;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo;
+HPLcom/android/server/pm/ComputerEngine;->getPackagesForUidInternalBody(IIIZ)[Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/ComputerEngine;->getPackagesHoldingPermissions([Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+HPLcom/android/server/pm/ComputerEngine;->getPackagesUsingSharedLibrary(Landroid/content/pm/SharedLibraryInfo;JII)Landroid/util/Pair;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/ComputerEngine;->getPersistentApplications(IZ)Ljava/util/List;
+PLcom/android/server/pm/ComputerEngine;->getProcessesForUid(I)Landroid/util/ArrayMap;
+PLcom/android/server/pm/ComputerEngine;->getProfileParent(I)Landroid/content/pm/UserInfo;
+PLcom/android/server/pm/ComputerEngine;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo;
 HPLcom/android/server/pm/ComputerEngine;->getReceiverInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
-HPLcom/android/server/pm/ComputerEngine;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo;
-HPLcom/android/server/pm/ComputerEngine;->getServiceInfoBody(Landroid/content/ComponentName;JII)Landroid/content/pm/ServiceInfo;
+HPLcom/android/server/pm/ComputerEngine;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo;+]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;
 PLcom/android/server/pm/ComputerEngine;->getSharedLibraries()Lcom/android/server/utils/WatchedArrayMap;
-HSPLcom/android/server/pm/ComputerEngine;->getSharedLibraryInfo(Ljava/lang/String;J)Landroid/content/pm/SharedLibraryInfo;
-HPLcom/android/server/pm/ComputerEngine;->getSharedUser(I)Lcom/android/server/pm/pkg/SharedUserApi;
-HPLcom/android/server/pm/ComputerEngine;->getSharedUserPackagesForPackage(Ljava/lang/String;I)[Ljava/lang/String;
+PLcom/android/server/pm/ComputerEngine;->getSharedLibraries(Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/ComputerEngine;->getSharedLibraryInfo(JLjava/lang/String;)Landroid/content/pm/SharedLibraryInfo;
+PLcom/android/server/pm/ComputerEngine;->getSharedUser(I)Lcom/android/server/pm/SharedUserSetting;
+HPLcom/android/server/pm/ComputerEngine;->getSharedUserPackagesForPackage(ILjava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/pm/ComputerEngine;->getSigningDetails(I)Landroid/content/pm/SigningDetails;
-HPLcom/android/server/pm/ComputerEngine;->getSystemSharedLibraryNamesAndPaths()Landroid/util/ArrayMap;
-HPLcom/android/server/pm/ComputerEngine;->getTargetSdkVersion(Ljava/lang/String;)I
+PLcom/android/server/pm/ComputerEngine;->getSigningDetailsAndFilterAccess(III)Landroid/content/pm/SigningDetails;
+PLcom/android/server/pm/ComputerEngine;->getSystemSharedLibraryNamesAndPaths()Landroid/util/ArrayMap;
+HPLcom/android/server/pm/ComputerEngine;->getTargetSdkVersion(Ljava/lang/String;)I+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
 PLcom/android/server/pm/ComputerEngine;->getUidForSharedUser(Ljava/lang/String;)I
-HPLcom/android/server/pm/ComputerEngine;->getUidTargetSdkVersion(I)I
-HPLcom/android/server/pm/ComputerEngine;->getUsed()I
-HPLcom/android/server/pm/ComputerEngine;->getUserInfos()[Landroid/content/pm/UserInfo;
-HPLcom/android/server/pm/ComputerEngine;->getUserStateOrDefaultForUser(Ljava/lang/String;I)Lcom/android/server/pm/pkg/PackageUserStateInternal;
+HPLcom/android/server/pm/ComputerEngine;->getUidTargetSdkVersion(I)I+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/ComputerEngine;->getUsed()I
+HSPLcom/android/server/pm/ComputerEngine;->getUserInfos()[Landroid/content/pm/UserInfo;
+HPLcom/android/server/pm/ComputerEngine;->getUserStateOrDefaultForUser(ILjava/lang/String;)Lcom/android/server/pm/pkg/PackageUserStateInternal;
 HPLcom/android/server/pm/ComputerEngine;->getVersion()I
 PLcom/android/server/pm/ComputerEngine;->getVisibilityAllowLists(Ljava/lang/String;[I)Landroid/util/SparseArray;
 PLcom/android/server/pm/ComputerEngine;->getVolumePackages(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/pm/ComputerEngine;->hasCrossUserPermission(IIIZZ)Z
-HPLcom/android/server/pm/ComputerEngine;->hasNonNegativePriority(Ljava/util/List;)Z
-PLcom/android/server/pm/ComputerEngine;->hasPermission(Ljava/lang/String;)Z
-PLcom/android/server/pm/ComputerEngine;->instantAppInstallerActivity()Landroid/content/pm/ActivityInfo;
+PLcom/android/server/pm/ComputerEngine;->hasPermission(ILjava/lang/String;)Z
+PLcom/android/server/pm/ComputerEngine;->hasSigningCertificate(Ljava/lang/String;[BI)Z
+HPLcom/android/server/pm/ComputerEngine;->instantAppInstallerActivity()Landroid/content/pm/ActivityInfo;
 HPLcom/android/server/pm/ComputerEngine;->isApexPackage(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/ComputerEngine;->isCallerSameApp(Ljava/lang/String;I)Z
-HSPLcom/android/server/pm/ComputerEngine;->isCallerSameApp(Ljava/lang/String;IZ)Z
-PLcom/android/server/pm/ComputerEngine;->isComponentEffectivelyEnabled(Landroid/content/pm/ComponentInfo;Landroid/os/UserHandle;)Z
-HPLcom/android/server/pm/ComputerEngine;->isImplicitImageCaptureIntentAndNotSetByDpc(Landroid/content/Intent;ILjava/lang/String;J)Z
+PLcom/android/server/pm/ComputerEngine;->isApplicationEffectivelyEnabled(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HPLcom/android/server/pm/ComputerEngine;->isCallerInstallerOfRecord(Lcom/android/server/pm/pkg/AndroidPackage;I)Z
+HSPLcom/android/server/pm/ComputerEngine;->isCallerSameApp(ILjava/lang/String;Z)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+HPLcom/android/server/pm/ComputerEngine;->isImplicitImageCaptureIntentAndNotSetByDpc(Landroid/content/Intent;Ljava/lang/String;JI)Z+]Landroid/content/Intent;Landroid/content/Intent;
 HPLcom/android/server/pm/ComputerEngine;->isInstantApp(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/ComputerEngine;->isInstantAppInternal(Ljava/lang/String;II)Z
-HPLcom/android/server/pm/ComputerEngine;->isInstantAppInternalBody(Ljava/lang/String;II)Z
-HPLcom/android/server/pm/ComputerEngine;->isInstantAppResolutionAllowed(Landroid/content/Intent;Ljava/util/List;IZJ)Z
-HPLcom/android/server/pm/ComputerEngine;->isPackageAvailable(Ljava/lang/String;I)Z
+HPLcom/android/server/pm/ComputerEngine;->isInstantAppInternal(IILjava/lang/String;)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/ComputerEngine;->isInstantAppResolutionAllowed(Landroid/content/Intent;Ljava/util/List;IZJ)Z+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked;
+PLcom/android/server/pm/ComputerEngine;->isKnownIsolatedComputeApp(I)Z
+HPLcom/android/server/pm/ComputerEngine;->isPackageAvailable(Ljava/lang/String;I)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
 PLcom/android/server/pm/ComputerEngine;->isPackageStoppedForUser(Ljava/lang/String;I)Z
 PLcom/android/server/pm/ComputerEngine;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/ComputerEngine;->isRecentsAccessingChildProfiles(II)Z
-HPLcom/android/server/pm/ComputerEngine;->lambda$static$0(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
 HPLcom/android/server/pm/ComputerEngine;->queryContentProviders(Ljava/lang/String;IJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
 PLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JII)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JJIIZZ)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternalBody(Landroid/content/Intent;Ljava/lang/String;JIIZZLjava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/QueryIntentActivitiesResult;
-HPLcom/android/server/pm/ComputerEngine;->queryIntentServicesInternal(Landroid/content/Intent;Ljava/lang/String;JIIZ)Ljava/util/List;
-HPLcom/android/server/pm/ComputerEngine;->queryIntentServicesInternalBody(Landroid/content/Intent;Ljava/lang/String;JIILjava/lang/String;)Ljava/util/List;
-PLcom/android/server/pm/ComputerEngine;->resolveComponentName()Landroid/content/ComponentName;
-HPLcom/android/server/pm/ComputerEngine;->resolveContentProvider(Ljava/lang/String;JII)Landroid/content/pm/ProviderInfo;
-HPLcom/android/server/pm/ComputerEngine;->resolveExternalPackageName(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;
-HPLcom/android/server/pm/ComputerEngine;->resolveInternalPackageName(Ljava/lang/String;J)Ljava/lang/String;
-HSPLcom/android/server/pm/ComputerEngine;->resolveInternalPackageNameInternalLocked(Ljava/lang/String;JI)Ljava/lang/String;
-PLcom/android/server/pm/ComputerEngine;->safeMode()Z
+HPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JIIIZZ)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolver;,Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/ComputerEngine;->queryIntentServicesInternal(Landroid/content/Intent;Ljava/lang/String;JIIIZ)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;
+HPLcom/android/server/pm/ComputerEngine;->resolveContentProvider(IILjava/lang/String;J)Landroid/content/pm/ProviderInfo;+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;
+HPLcom/android/server/pm/ComputerEngine;->resolveExternalPackageName(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/ComputerEngine;->resolveInternalPackageName(JLjava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/ComputerEngine;->resolveInternalPackageNameInternalLocked(ILjava/lang/String;J)Ljava/lang/String;
 HPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/SharedUserSetting;II)Z
 HPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/pkg/PackageStateInternal;II)Z
-HPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/pkg/PackageStateInternal;ILandroid/content/ComponentName;II)Z
-HSPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/pkg/PackageStateInternal;ILandroid/content/ComponentName;IIZ)Z
-HSPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/pkg/PackageStateInternal;ILandroid/content/ComponentName;IIZZ)Z
-HPLcom/android/server/pm/ComputerEngine;->shouldFilterApplicationIncludingUninstalled(Lcom/android/server/pm/SharedUserSetting;II)Z
+HSPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/pkg/PackageStateInternal;ILandroid/content/ComponentName;IIZZ)Z+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateDefault;,Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/ComputerEngine;->shouldFilterApplicationIncludingUninstalled(Lcom/android/server/pm/SharedUserSetting;II)Z
 HPLcom/android/server/pm/ComputerEngine;->shouldFilterApplicationIncludingUninstalled(Lcom/android/server/pm/pkg/PackageStateInternal;II)Z
-HPLcom/android/server/pm/ComputerEngine;->shouldFilterApplicationIncludingUninstalledNotArchived(Lcom/android/server/pm/pkg/PackageStateInternal;II)Z
-HPLcom/android/server/pm/ComputerEngine;->updateFlags(JI)J
-PLcom/android/server/pm/ComputerEngine;->updateFlagsForApplication(JI)J
-HPLcom/android/server/pm/ComputerEngine;->updateFlagsForComponent(JI)J
-HPLcom/android/server/pm/ComputerEngine;->updateFlagsForPackage(JI)J
-HPLcom/android/server/pm/ComputerEngine;->updateFlagsForResolve(JIIZZ)J
+HPLcom/android/server/pm/ComputerEngine;->updateFlags(IJ)J
+HPLcom/android/server/pm/ComputerEngine;->updateFlagsForPackage(IJ)J
+HPLcom/android/server/pm/ComputerEngine;->updateFlagsForResolve(IIJZZ)J
 HPLcom/android/server/pm/ComputerEngine;->updateFlagsForResolve(JIIZZZ)J
-HSPLcom/android/server/pm/ComputerEngine;->use()Lcom/android/server/pm/Computer;
-HSPLcom/android/server/pm/ComputerLocked;-><init>(Lcom/android/server/pm/PackageManagerService$Snapshot;)V
+HSPLcom/android/server/pm/ComputerEngine;->use()Lcom/android/server/pm/ComputerEngine;
+PLcom/android/server/pm/ComputerLocked;->instantAppInstallerActivity()Landroid/content/pm/ActivityInfo;
 PLcom/android/server/pm/CrossProfileAppsService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/CrossProfileAppsService;->onStart()V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;)V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$$ExternalSyntheticLambda7;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$$ExternalSyntheticLambda3;-><init>(IILcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$$ExternalSyntheticLambda3;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->checkComponentPermission(Ljava/lang/String;IIZ)I
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->checkComponentPermission(ILjava/lang/String;)I
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getUserManager()Landroid/os/UserManager;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;->getTargetUserProfiles(Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;->verifyUidHasInteractAcrossProfilePermission(Ljava/lang/String;I)Z
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->$r8$lambda$vikD5Mw9q_Jc9YJF2vwkg_I5o_A(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;)Ljava/util/List;
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->-$$Nest$mgetTargetUserProfilesUnchecked(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->-$$Nest$mhasInteractAcrossProfilesPermission(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;II)Z
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/pm/CrossProfileAppsServiceImpl$Injector;)V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->getLocalService()Landroid/content/pm/CrossProfileAppsInternal;
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfilesUnchecked(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasInteractAcrossProfilesPermission(Ljava/lang/String;II)Z
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPermissionGranted(Ljava/lang/String;I)Z
-PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$getTargetUserProfilesUnchecked$3(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfilesUnchecked(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasInteractAcrossProfilesPermission(IILjava/lang/String;)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPermissionGranted(ILjava/lang/String;)Z
 HSPLcom/android/server/pm/CrossProfileIntentResolverEngine;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/DefaultAppProvider;Landroid/content/Context;)V
-HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->combineFilterAndCreateQueryActivitiesResponse(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZJIIZLjava/util/List;Ljava/util/List;ZZZLjava/util/function/Function;)Lcom/android/server/pm/QueryIntentActivitiesResult;
-HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->resolveInfoFromCrossProfileDomainInfo(Ljava/util/List;)Ljava/util/List;
-HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->resolveIntent(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;IJLjava/lang/String;ZZLjava/util/function/Function;)Ljava/util/List;
-HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;IIJLjava/lang/String;ZZLjava/util/function/Function;Ljava/util/Set;)Ljava/util/List;
-HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->shouldSkipCurrentProfile(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;I)Z
+HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->resolveInfoFromCrossProfileDomainInfo(Ljava/util/List;)Ljava/util/List;+]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->resolveIntentInternal(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;IIJLjava/lang/String;ZZLjava/util/function/Function;Ljava/util/Set;)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;
+HPLcom/android/server/pm/CrossProfileIntentResolverEngine;->shouldSkipCurrentProfile(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/DataLoaderManagerService$DataLoaderManagerBinderService;-><init>(Lcom/android/server/pm/DataLoaderManagerService;)V
 HSPLcom/android/server/pm/DataLoaderManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/DataLoaderManagerService;->onStart()V
-HSPLcom/android/server/pm/DefaultAppProvider;-><init>(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;-><init>(IIZ)V
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;->addAction(Ljava/lang/String;)Lcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;->addCategory(Ljava/lang/String;)Lcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;->addDataScheme(Ljava/lang/String;)Lcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;->addDataType(Ljava/lang/String;)Lcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter$Builder;->build()Lcom/android/server/pm/DefaultCrossProfileIntentFilter;
+HSPLcom/android/server/pm/DefaultAppProvider;-><init>(Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda49;)V
+PLcom/android/server/pm/DefaultAppProvider;->getRoleHolder(ILjava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter;-><init>(Lcom/android/server/pm/WatchedIntentFilter;IIZ)V
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFilter;-><init>(Lcom/android/server/pm/WatchedIntentFilter;IIZLcom/android/server/pm/DefaultCrossProfileIntentFilter-IA;)V
 HSPLcom/android/server/pm/DefaultCrossProfileIntentFiltersUtils;-><clinit>()V
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFiltersUtils;->getDefaultCloneProfileFilters()Ljava/util/List;
 HSPLcom/android/server/pm/DefaultCrossProfileIntentFiltersUtils;->getDefaultCrossProfileTelephonyIntentFilters(Z)Ljava/util/List;
-HSPLcom/android/server/pm/DefaultCrossProfileIntentFiltersUtils;->getDefaultManagedProfileFilters()Ljava/util/List;
 HSPLcom/android/server/pm/DeletePackageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/RemovePackageHelper;Lcom/android/server/pm/BroadcastHelper;)V
 PLcom/android/server/pm/DexOptHelper$1;-><init>(Lcom/android/server/art/ArtManagerLocal;)V
 PLcom/android/server/pm/DexOptHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/pm/DexOptHelper$DexoptDoneHandler;-><init>(Lcom/android/server/pm/DexOptHelper;)V
-PLcom/android/server/pm/DexOptHelper$DexoptDoneHandler;-><init>(Lcom/android/server/pm/DexOptHelper;Lcom/android/server/pm/DexOptHelper$DexoptDoneHandler-IA;)V
-HSPLcom/android/server/pm/DexOptHelper;-><clinit>()V
+PLcom/android/server/pm/DexOptHelper$DexoptDoneHandler;->onDexoptDone(Lcom/android/server/art/model/DexoptResult;)V
+PLcom/android/server/pm/DexOptHelper$StagedApexObserver;-><init>(Lcom/android/server/art/ArtManagerLocal;)V
 HSPLcom/android/server/pm/DexOptHelper;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/DexOptHelper;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/DexOptHelper;->dexoptPackageUsingArtService(Lcom/android/server/pm/InstallRequest;Lcom/android/server/pm/dex/DexoptOptions;)Lcom/android/server/art/model/DexoptResult;
 PLcom/android/server/pm/DexOptHelper;->getArtManagerLocal()Lcom/android/server/art/ArtManagerLocal;
-HPLcom/android/server/pm/DexOptHelper;->getBcpApexes()Ljava/util/List;
-HPLcom/android/server/pm/DexOptHelper;->getDexUseManagerLocal()Lcom/android/server/art/DexUseManagerLocal;
-PLcom/android/server/pm/DexOptHelper;->hasBcpApexesChanged()Z
+PLcom/android/server/pm/DexOptHelper;->getDexUseManagerLocal()Lcom/android/server/art/DexUseManagerLocal;
 PLcom/android/server/pm/DexOptHelper;->initializeArtManagerLocal(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/DexOptHelper;->performPackageDexOptUpgradeIfNeeded()V
-HSPLcom/android/server/pm/DexOptHelper;->useArtService()Z
+PLcom/android/server/pm/DexOptHelper;->performDexoptIfNeeded(Lcom/android/server/pm/InstallRequest;Lcom/android/server/pm/dex/DexManager;Landroid/content/Context;Lcom/android/server/pm/PackageManagerTracedLock$RawLock;)V
 HSPLcom/android/server/pm/DistractingPackageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/BroadcastHelper;Lcom/android/server/pm/SuspendPackageHelper;)V
 HSPLcom/android/server/pm/DomainVerificationConnection;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/DomainVerificationConnection;->doesUserExist(I)Z
-HSPLcom/android/server/pm/DomainVerificationConnection;->filterAppAccess(Ljava/lang/String;II)Z
-HSPLcom/android/server/pm/DomainVerificationConnection;->getCallingUid()I
-HSPLcom/android/server/pm/DomainVerificationConnection;->getCallingUserId()I
 HSPLcom/android/server/pm/DomainVerificationConnection;->scheduleWriteSettings()V
-HPLcom/android/server/pm/DumpHelper;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/StorageEventHelper;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/PackageInstallerService;[Ljava/lang/String;Lcom/android/server/pm/KnownPackages;Lcom/android/server/pm/ChangedPackagesTracker;Landroid/util/ArrayMap;Landroid/util/ArraySet;[Landroid/os/incremental/PerUidReadTimeouts;Lcom/android/server/pm/SnapshotStatistics;)V
-PLcom/android/server/pm/DumpHelper;->doDump(Lcom/android/server/pm/Computer;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/pm/DumpState;-><init>()V
-PLcom/android/server/pm/DumpState;->getSharedUser()Lcom/android/server/pm/SharedUserSetting;
-PLcom/android/server/pm/DumpState;->getTargetPackageName()Ljava/lang/String;
-PLcom/android/server/pm/DumpState;->getTitlePrinted()Z
-PLcom/android/server/pm/DumpState;->isCheckIn()Z
+PLcom/android/server/pm/DumpHelper$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/pm/DumpHelper$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/pm/DumpState;->isDumping(I)Z
 PLcom/android/server/pm/DumpState;->isOptionEnabled(I)Z
-HPLcom/android/server/pm/DumpState;->onTitlePrinted()Z
-PLcom/android/server/pm/DumpState;->setOptionEnabled(I)V
-PLcom/android/server/pm/DumpState;->setSharedUser(Lcom/android/server/pm/SharedUserSetting;)V
-PLcom/android/server/pm/DumpState;->setTargetPackageName(Ljava/lang/String;)V
-PLcom/android/server/pm/DumpState;->setTitlePrinted(Z)V
 HSPLcom/android/server/pm/FreeStorageHelper;-><clinit>()V
 HSPLcom/android/server/pm/FreeStorageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/FreeStorageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;Landroid/content/Context;Z)V
-PLcom/android/server/pm/FreeStorageHelper;->performFstrimIfNeeded()V
 PLcom/android/server/pm/GentleUpdateHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/GentleUpdateHelper;)V
-HPLcom/android/server/pm/GentleUpdateHelper$$ExternalSyntheticLambda1;->onUidImportance(II)V
-HPLcom/android/server/pm/GentleUpdateHelper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/GentleUpdateHelper;Ljava/lang/String;I)V
+PLcom/android/server/pm/GentleUpdateHelper$$ExternalSyntheticLambda1;->onUidImportance(II)V
+PLcom/android/server/pm/GentleUpdateHelper$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/GentleUpdateHelper;Ljava/lang/String;I)V
 PLcom/android/server/pm/GentleUpdateHelper$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/pm/GentleUpdateHelper;->$r8$lambda$9Vy9TsTEIaX26UUSrPw3MGLRU-s(Lcom/android/server/pm/GentleUpdateHelper;Ljava/lang/String;I)V
 HPLcom/android/server/pm/GentleUpdateHelper;->$r8$lambda$JQiy908NuzFx59XC1nxYVaiXKqM(Lcom/android/server/pm/GentleUpdateHelper;II)V
 PLcom/android/server/pm/GentleUpdateHelper;-><clinit>()V
 PLcom/android/server/pm/GentleUpdateHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/pm/AppStateHelper;)V
-PLcom/android/server/pm/GentleUpdateHelper;->lambda$onUidImportance$4(Ljava/lang/String;I)V
-HPLcom/android/server/pm/GentleUpdateHelper;->onUidImportance(II)V
-PLcom/android/server/pm/GentleUpdateHelper;->onUidImportance(Ljava/lang/String;I)V
-PLcom/android/server/pm/GentleUpdateHelper;->systemReady()V
-PLcom/android/server/pm/IPackageManagerBase;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/Context;Lcom/android/server/pm/DexOptHelper;Lcom/android/server/pm/ModuleInfoProvider;Lcom/android/server/pm/PreferredActivityHelper;Lcom/android/server/pm/ResolveIntentHelper;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/DomainVerificationConnection;Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/PackageProperty;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/pm/IPackageManagerBase;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
-PLcom/android/server/pm/IPackageManagerBase;->checkSignatures(Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/IPackageManagerBase;->checkUidPermission(Ljava/lang/String;I)I
-PLcom/android/server/pm/IPackageManagerBase;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getApplicationEnabledSetting(Ljava/lang/String;I)I
-HPLcom/android/server/pm/IPackageManagerBase;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getAttentionServicePackageName()Ljava/lang/String;
-HPLcom/android/server/pm/IPackageManagerBase;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
-PLcom/android/server/pm/IPackageManagerBase;->getDefaultTextClassifierPackageName()Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
-HPLcom/android/server/pm/IPackageManagerBase;->getInstallSourceInfo(Ljava/lang/String;I)Landroid/content/pm/InstallSourceInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getInstalledApplications(JI)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/IPackageManagerBase;->getInstalledModules(I)Ljava/util/List;
-HPLcom/android/server/pm/IPackageManagerBase;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/IPackageManagerBase;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getInstrumentationInfoAsUser(Landroid/content/ComponentName;II)Landroid/content/pm/InstrumentationInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
-HPLcom/android/server/pm/IPackageManagerBase;->getNameForUid(I)Ljava/lang/String;
-HPLcom/android/server/pm/IPackageManagerBase;->getPackageGids(Ljava/lang/String;JI)[I
-HPLcom/android/server/pm/IPackageManagerBase;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
-HPLcom/android/server/pm/IPackageManagerBase;->getPackageUid(Ljava/lang/String;JI)I
-HPLcom/android/server/pm/IPackageManagerBase;->getPackagesForUid(I)[Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getPackagesHoldingPermissions([Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/IPackageManagerBase;->getPersistentApplications(I)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/IPackageManagerBase;->getPropertyAsUser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PackageManager$Property;
-HPLcom/android/server/pm/IPackageManagerBase;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getRotationResolverPackageName()Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getSdkSandboxPackageName()Ljava/lang/String;
-HPLcom/android/server/pm/IPackageManagerBase;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/pm/IPackageManagerBase;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getSetupWizardPackageName()Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getSystemCaptionsServicePackageName()Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getSystemSharedLibraryNames()[Ljava/lang/String;
-PLcom/android/server/pm/IPackageManagerBase;->getSystemTextClassifierPackageName()Ljava/lang/String;
-HPLcom/android/server/pm/IPackageManagerBase;->getTargetSdkVersion(Ljava/lang/String;)I
-PLcom/android/server/pm/IPackageManagerBase;->getUidForSharedUser(Ljava/lang/String;)I
-PLcom/android/server/pm/IPackageManagerBase;->getWellbeingPackageName()Ljava/lang/String;
-HPLcom/android/server/pm/IPackageManagerBase;->hasSystemFeature(Ljava/lang/String;I)Z
-PLcom/android/server/pm/IPackageManagerBase;->hasSystemUidErrors()Z
-PLcom/android/server/pm/IPackageManagerBase;->isDeviceUpgrading()Z
-PLcom/android/server/pm/IPackageManagerBase;->isFirstBoot()Z
-PLcom/android/server/pm/IPackageManagerBase;->isInstantApp(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/IPackageManagerBase;->isPackageAvailable(Ljava/lang/String;I)Z
-PLcom/android/server/pm/IPackageManagerBase;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
-PLcom/android/server/pm/IPackageManagerBase;->isSafeMode()Z
-HPLcom/android/server/pm/IPackageManagerBase;->queryContentProviders(Ljava/lang/String;IJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/IPackageManagerBase;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/IPackageManagerBase;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/IPackageManagerBase;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/IPackageManagerBase;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/IPackageManagerBase;->resolveContentProvider(Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo;
-HPLcom/android/server/pm/IPackageManagerBase;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/IPackageManagerBase;->resolveService(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/IPackageManagerBase;->snapshot()Lcom/android/server/pm/Computer;
 PLcom/android/server/pm/InitAppsHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/InitAppsHelper;Landroid/util/ArrayMap;)V
 PLcom/android/server/pm/InitAppsHelper$$ExternalSyntheticLambda1;->forEachPackage(Lcom/android/internal/util/function/TriConsumer;)V
 PLcom/android/server/pm/InitAppsHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/internal/util/function/TriConsumer;Landroid/util/ArrayMap;)V
 PLcom/android/server/pm/InitAppsHelper$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/InitAppsHelper;->$r8$lambda$VJZW-c31uI8Yaywv2gsqfy0KEng(Lcom/android/internal/util/function/TriConsumer;Landroid/util/ArrayMap;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/InitAppsHelper;->$r8$lambda$VWF6nFCGGoc9b6Gi7rkF04KUDnc(Lcom/android/server/pm/InitAppsHelper;Landroid/util/ArrayMap;Lcom/android/internal/util/function/TriConsumer;)V
-PLcom/android/server/pm/InitAppsHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/ApexManager;Lcom/android/server/pm/InstallPackageHelper;Ljava/util/List;)V
-PLcom/android/server/pm/InitAppsHelper;->fixSystemPackages([I)V
-PLcom/android/server/pm/InitAppsHelper;->getApexScanPartitions()Ljava/util/List;
-PLcom/android/server/pm/InitAppsHelper;->getDirsToScanAsSystem()Ljava/util/List;
-PLcom/android/server/pm/InitAppsHelper;->getSystemScanPartitions()Ljava/util/List;
+HSPLcom/android/server/pm/InitAppsHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/ApexManager;Lcom/android/server/pm/InstallPackageHelper;Ljava/util/List;)V
 PLcom/android/server/pm/InitAppsHelper;->initNonSystemApps(Lcom/android/internal/pm/parsing/PackageParser2;[IJ)V
-HPLcom/android/server/pm/InitAppsHelper;->initSystemApps(Lcom/android/internal/pm/parsing/PackageParser2;Lcom/android/server/utils/WatchedArrayMap;[IJ)Lcom/android/internal/content/om/OverlayConfig;
-PLcom/android/server/pm/InitAppsHelper;->isExpectingBetter(Ljava/lang/String;)Z
-PLcom/android/server/pm/InitAppsHelper;->lambda$initSystemApps$0(Lcom/android/internal/util/function/TriConsumer;Landroid/util/ArrayMap;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/InitAppsHelper;->lambda$initSystemApps$1(Landroid/util/ArrayMap;Lcom/android/internal/util/function/TriConsumer;)V
-PLcom/android/server/pm/InitAppsHelper;->logNonSystemAppScanningTime(J)V
-PLcom/android/server/pm/InitAppsHelper;->logSystemAppsScanningTime(J)V
-HPLcom/android/server/pm/InitAppsHelper;->resolveApexToScanPartition(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/ScanPartition;
-PLcom/android/server/pm/InitAppsHelper;->scanApexPackagesTraced(Lcom/android/internal/pm/parsing/PackageParser2;)Ljava/util/List;
-HPLcom/android/server/pm/InitAppsHelper;->scanDirTracedLI(Ljava/io/File;IILcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)V
-HPLcom/android/server/pm/InitAppsHelper;->scanSystemDirs(Lcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)V
-PLcom/android/server/pm/InitAppsHelper;->updateStubSystemAppsList(Ljava/util/List;)V
-PLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda3;-><init>(Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/pm/InstallPackageHelper;->$r8$lambda$tl1xpBbhI4eWYKVkhUKxKCDJBRM(Landroid/util/ArrayMap;Lcom/android/server/pm/ParallelPackageParser$ParseResult;Lcom/android/server/pm/ParallelPackageParser$ParseResult;)I
+HSPLcom/android/server/pm/InitAppsHelper;->initSystemApps(Lcom/android/internal/pm/parsing/PackageParser2;Lcom/android/server/utils/WatchedArrayMap;[IJ)Lcom/android/internal/content/om/OverlayConfig;
+HSPLcom/android/server/pm/InitAppsHelper;->scanDirTracedLI(Ljava/io/File;IILcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)V
+PLcom/android/server/pm/InstallArgs;-><init>(Lcom/android/server/pm/OriginInfo;Lcom/android/server/pm/MoveInfo;Landroid/content/pm/IPackageInstallObserver2;IILcom/android/server/pm/InstallSource;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArrayMap;Ljava/util/List;ILjava/lang/String;ILandroid/content/pm/SigningDetails;IIZIIZLjava/lang/String;)V
+PLcom/android/server/pm/InstallDependencyHelper$CallOnceProxy$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/InstallDependencyHelper$CallOnceProxy;)V
+PLcom/android/server/pm/InstallDependencyHelper$CallOnceProxy$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/pm/InstallDependencyHelper$CallOnceProxy;-><init>(Landroid/os/Handler;Lcom/android/server/pm/PackageInstallerSession$6;)V
+PLcom/android/server/pm/InstallDependencyHelper$CallOnceProxy;->onResult()V
+PLcom/android/server/pm/InstallDependencyHelper;-><clinit>()V
+PLcom/android/server/pm/InstallDependencyHelper;-><init>(Landroid/content/Context;Lcom/android/server/pm/SharedLibrariesImpl;Lcom/android/server/pm/PackageInstallerService;)V
+PLcom/android/server/pm/InstallDependencyHelper;->notifySessionComplete(I)V
+PLcom/android/server/pm/InstallDependencyHelper;->resolveLibraryDependenciesIfNeededInternal(Landroid/content/pm/parsing/PackageLite;Lcom/android/server/pm/Computer;ILandroid/os/Handler;Lcom/android/server/pm/InstallDependencyHelper$CallOnceProxy;)V
+PLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/InstallPackageHelper;[ILjava/lang/String;II)V
+PLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda1;->run()V
+HSPLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda5;-><init>(Landroid/util/ArrayMap;)V
+HSPLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/InstallPackageHelper;ZLcom/android/server/pm/InstallRequest;)V
+PLcom/android/server/pm/InstallPackageHelper$$ExternalSyntheticLambda6;->run()V
 HSPLcom/android/server/pm/InstallPackageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/AppDataHelper;Lcom/android/server/pm/RemovePackageHelper;Lcom/android/server/pm/DeletePackageHelper;Lcom/android/server/pm/BroadcastHelper;)V
-HPLcom/android/server/pm/InstallPackageHelper;->addForInitLI(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/pkg/AndroidPackage;
-HPLcom/android/server/pm/InstallPackageHelper;->adjustScanFlags(ILcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;Lcom/android/server/pm/pkg/AndroidPackage;)I
-PLcom/android/server/pm/InstallPackageHelper;->assertOverlayIsValid(Lcom/android/server/pm/pkg/AndroidPackage;II)V
-HPLcom/android/server/pm/InstallPackageHelper;->assertPackageIsValid(Lcom/android/server/pm/pkg/AndroidPackage;II)V
-HPLcom/android/server/pm/InstallPackageHelper;->assertPackageWithSharedUserIdIsPrivileged(Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/InstallPackageHelper;->checkExistingBetterPackages(Landroid/util/ArrayMap;Ljava/util/List;II)V
-PLcom/android/server/pm/InstallPackageHelper;->cleanupDisabledPackageSettings(Ljava/util/List;[II)V
-HPLcom/android/server/pm/InstallPackageHelper;->commitPackageSettings(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/ReconciledPackage;)V
-HPLcom/android/server/pm/InstallPackageHelper;->commitReconciledScanResultLocked(Lcom/android/server/pm/ReconciledPackage;[I)Lcom/android/server/pm/pkg/AndroidPackage;
-HPLcom/android/server/pm/InstallPackageHelper;->getOriginalPackageLocked(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-PLcom/android/server/pm/InstallPackageHelper;->hasLauncherEntry(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)Z
-HPLcom/android/server/pm/InstallPackageHelper;->installPackagesFromDir(Ljava/io/File;IILcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)V
-PLcom/android/server/pm/InstallPackageHelper;->installSystemStubPackages(Ljava/util/List;I)V
-PLcom/android/server/pm/InstallPackageHelper;->lambda$scanApexPackages$3(Landroid/util/ArrayMap;Lcom/android/server/pm/ParallelPackageParser$ParseResult;Lcom/android/server/pm/ParallelPackageParser$ParseResult;)I
-HPLcom/android/server/pm/InstallPackageHelper;->maybeClearProfilesForUpgradesLI(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/InstallPackageHelper;->needSignatureMatchToSystem(Ljava/lang/String;)Z
-HPLcom/android/server/pm/InstallPackageHelper;->optimisticallyRegisterAppId(Lcom/android/server/pm/InstallRequest;)Z
-HPLcom/android/server/pm/InstallPackageHelper;->prepareInitialScanRequest(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/pm/ScanRequest;
-PLcom/android/server/pm/InstallPackageHelper;->prepareSystemPackageCleanUp(Lcom/android/server/utils/WatchedArrayMap;Ljava/util/List;Landroid/util/ArrayMap;[I)V
-HPLcom/android/server/pm/InstallPackageHelper;->scanApexPackages([Landroid/apex/ApexInfo;IILcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)Ljava/util/List;
-HPLcom/android/server/pm/InstallPackageHelper;->scanPackageNewLI(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/pm/ScanResult;
-HPLcom/android/server/pm/InstallPackageHelper;->scanSystemPackageLI(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;)Landroid/util/Pair;
-HPLcom/android/server/pm/InstallRequest;-><init>(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;Lcom/android/server/pm/ScanResult;Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/InstallRequest;->assertScanResultExists()V
-PLcom/android/server/pm/InstallRequest;->getApexModuleName()Ljava/lang/String;
-PLcom/android/server/pm/InstallRequest;->getDisabledPackageSetting()Lcom/android/server/pm/PackageSetting;
-PLcom/android/server/pm/InstallRequest;->getDynamicSharedLibraryInfos()Ljava/util/List;
-HPLcom/android/server/pm/InstallRequest;->getInstallSource()Lcom/android/server/pm/InstallSource;
-PLcom/android/server/pm/InstallRequest;->getParseFlags()I
-PLcom/android/server/pm/InstallRequest;->getParsedPackage()Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
-PLcom/android/server/pm/InstallRequest;->getPreVerifiedDomains()Landroid/content/pm/verify/domain/DomainSet;
-HPLcom/android/server/pm/InstallRequest;->getRealPackageName()Ljava/lang/String;
-PLcom/android/server/pm/InstallRequest;->getScanFlags()I
-HPLcom/android/server/pm/InstallRequest;->getScanRequestOldPackage()Lcom/android/server/pm/pkg/AndroidPackage;
-HPLcom/android/server/pm/InstallRequest;->getScanRequestOldPackageSetting()Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/InstallRequest;->getScanRequestOriginalPackageSetting()Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/InstallRequest;->getScanRequestPackageSetting()Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/InstallRequest;->getScannedPackageSetting()Lcom/android/server/pm/PackageSetting;
-PLcom/android/server/pm/InstallRequest;->getSdkSharedLibraryInfo()Landroid/content/pm/SharedLibraryInfo;
-HPLcom/android/server/pm/InstallRequest;->getStaticSharedLibraryInfo()Landroid/content/pm/SharedLibraryInfo;
-PLcom/android/server/pm/InstallRequest;->getUserId()I
-HPLcom/android/server/pm/InstallRequest;->isExistingSettingCopied()Z
-HPLcom/android/server/pm/InstallRequest;->isForceQueryableOverride()Z
-PLcom/android/server/pm/InstallRequest;->isInstallReplace()Z
-PLcom/android/server/pm/InstallRequest;->isInstallSystem()Z
-HPLcom/android/server/pm/InstallRequest;->isRollback()Z
-HPLcom/android/server/pm/InstallRequest;->needsNewAppId()Z
-HPLcom/android/server/pm/InstallRequest;->onReconcileFinished()V
-HPLcom/android/server/pm/InstallRequest;->onReconcileStarted()V
+HSPLcom/android/server/pm/InstallPackageHelper;->addForInitLI(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/pkg/AndroidPackage;
+HSPLcom/android/server/pm/InstallPackageHelper;->assertOverlayIsValid(Lcom/android/server/pm/pkg/AndroidPackage;II)V
+HSPLcom/android/server/pm/InstallPackageHelper;->assertPackageIsValid(Lcom/android/server/pm/pkg/AndroidPackage;II)V
+HSPLcom/android/server/pm/InstallPackageHelper;->assertPackageWithSharedUserIdIsPrivileged(Lcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/pm/InstallPackageHelper;->commitInstallPackages(Ljava/util/List;)V
+HSPLcom/android/server/pm/InstallPackageHelper;->commitPackageSettings(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/ReconciledPackage;)V
+HPLcom/android/server/pm/InstallPackageHelper;->commitPackagesLocked(Ljava/util/List;[I)V
+HSPLcom/android/server/pm/InstallPackageHelper;->commitReconciledScanResultLocked(Lcom/android/server/pm/ReconciledPackage;[I)Lcom/android/server/pm/pkg/AndroidPackage;
+PLcom/android/server/pm/InstallPackageHelper;->completeInstallProcess(Ljava/util/List;Ljava/util/Map;Z)V
+PLcom/android/server/pm/InstallPackageHelper;->doRenameLI(Lcom/android/server/pm/InstallRequest;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)V
+PLcom/android/server/pm/InstallPackageHelper;->doesSignatureMatchForPermissions(Ljava/lang/String;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;I)Z
+PLcom/android/server/pm/InstallPackageHelper;->executePostCommitStepsLIF(Ljava/util/List;)V
+PLcom/android/server/pm/InstallPackageHelper;->getNewUsers(Lcom/android/server/pm/InstallRequest;[I)[I
+HSPLcom/android/server/pm/InstallPackageHelper;->getOriginalPackageLocked(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/InstallPackageHelper;->installPackagesFromDir(Ljava/io/File;IILcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)V
+HSPLcom/android/server/pm/InstallPackageHelper;->optimisticallyRegisterAppId(Lcom/android/server/pm/InstallRequest;)Z
+PLcom/android/server/pm/InstallPackageHelper;->prepPerformDexoptIfNeeded(Ljava/util/List;)V
+HSPLcom/android/server/pm/InstallPackageHelper;->prepareInitialScanRequest(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/pm/ScanRequest;
+PLcom/android/server/pm/InstallPackageHelper;->prepareInstallPackages(Ljava/util/List;)Z
+HPLcom/android/server/pm/InstallPackageHelper;->preparePackage(Lcom/android/server/pm/InstallRequest;)V
+PLcom/android/server/pm/InstallPackageHelper;->reconcileInstallPackages(Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
+PLcom/android/server/pm/InstallPackageHelper;->releaseWakeLock(J)V
+PLcom/android/server/pm/InstallPackageHelper;->renameAndUpdatePaths(Ljava/util/List;)Z
+PLcom/android/server/pm/InstallPackageHelper;->restoreAndPostInstall(Lcom/android/server/pm/InstallRequest;)V
+HSPLcom/android/server/pm/InstallPackageHelper;->scanApexPackages([Landroid/apex/ApexInfo;IILcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)Ljava/util/List;
+PLcom/android/server/pm/InstallPackageHelper;->scanInstallPackages(Ljava/util/List;Ljava/util/Map;Ljava/util/Map;)Z
+HSPLcom/android/server/pm/InstallPackageHelper;->scanPackageForInitLI(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;)Landroid/util/Pair;
+HSPLcom/android/server/pm/InstallPackageHelper;->scanPackageNew(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/pm/ScanResult;
+PLcom/android/server/pm/InstallPackageHelper;->setUpFsVerity(Lcom/android/server/pm/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/InstallRequest;-><init>(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;IILandroid/os/UserHandle;Lcom/android/server/pm/ScanResult;Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/InstallRequest;-><init>(Lcom/android/server/pm/InstallingSession;)V
+HSPLcom/android/server/pm/InstallRequest;->assertScanResultExists()V
+PLcom/android/server/pm/InstallRequest;->getCodeFile()Ljava/io/File;
+HSPLcom/android/server/pm/InstallRequest;->getInstallFlags()I
+PLcom/android/server/pm/InstallRequest;->getInstallerPackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/InstallRequest;->getScannedPackageSetting()Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/InstallRequest;->getVolumeUuid()Ljava/lang/String;
+PLcom/android/server/pm/InstallRequest;->isInstallMove()Z
+PLcom/android/server/pm/InstallRequest;->onDexoptFinished(Lcom/android/server/art/model/DexoptResult;)V
 PLcom/android/server/pm/InstallRequest;->setApexModuleName(Ljava/lang/String;)V
-PLcom/android/server/pm/InstallRequest;->setLibraryConsumers(Ljava/util/ArrayList;)V
-HPLcom/android/server/pm/InstallRequest;->setScannedPackageSettingAppId(I)V
+PLcom/android/server/pm/InstallRequest;->setName(Ljava/lang/String;)V
+PLcom/android/server/pm/InstallRequest;->setOriginUsers([I)V
+PLcom/android/server/pm/InstallRequest;->setPrepareResult(ZIILcom/android/server/pm/PackageSetting;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Landroid/content/pm/ArchivedPackageParcel;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/InstallRequest;->setRemovedInfo(Lcom/android/server/pm/PackageRemovedInfo;)V
+PLcom/android/server/pm/InstallRequest;->setReturnCode()V
 HSPLcom/android/server/pm/InstallSource;-><clinit>()V
-HSPLcom/android/server/pm/InstallSource;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZZLcom/android/server/pm/PackageSignatures;I)V
+HSPLcom/android/server/pm/InstallSource;-><init>(IILcom/android/server/pm/PackageSignatures;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V
 HSPLcom/android/server/pm/InstallSource;->create(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IZZ)Lcom/android/server/pm/InstallSource;
-HSPLcom/android/server/pm/InstallSource;->createInternal(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IZZLcom/android/server/pm/PackageSignatures;)Lcom/android/server/pm/InstallSource;
+HSPLcom/android/server/pm/InstallSource;->createInternal(IILcom/android/server/pm/PackageSignatures;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/pm/InstallSource;
 HSPLcom/android/server/pm/InstallSource;->intern(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/InstallSource;->setIsOrphaned(Z)Lcom/android/server/pm/InstallSource;
-HPLcom/android/server/pm/InstallSource;->setUpdateOwnerPackageName(Ljava/lang/String;)Lcom/android/server/pm/InstallSource;
+HSPLcom/android/server/pm/InstallSource;->setUpdateOwnerPackageName(Ljava/lang/String;)Lcom/android/server/pm/InstallSource;
 HSPLcom/android/server/pm/Installer$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/Installer;)V
 PLcom/android/server/pm/Installer$Batch;-><init>()V
 PLcom/android/server/pm/Installer$Batch;->createAppData(Landroid/os/CreateAppDataArgs;)Ljava/util/concurrent/CompletableFuture;
-HPLcom/android/server/pm/Installer$Batch;->execute(Lcom/android/server/pm/Installer;)V
+PLcom/android/server/pm/Installer$Batch;->execute(Lcom/android/server/pm/Installer;)V
 HSPLcom/android/server/pm/Installer;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/Installer;-><init>(Landroid/content/Context;Z)V
-HPLcom/android/server/pm/Installer;->buildCreateAppDataArgs(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;IZ)Landroid/os/CreateAppDataArgs;
-HSPLcom/android/server/pm/Installer;->checkBeforeRemote()Z
-PLcom/android/server/pm/Installer;->cleanupInvalidPackageDirs(Ljava/lang/String;II)V
+PLcom/android/server/pm/Installer;->buildCreateAppDataArgs(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/os/CreateAppDataArgs;
+HSPLcom/android/server/pm/Installer;->checkBeforeRemote()Z+]Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;
+PLcom/android/server/pm/Installer;->clearAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
 HSPLcom/android/server/pm/Installer;->connect()V
-PLcom/android/server/pm/Installer;->createAppDataBatched([Landroid/os/CreateAppDataArgs;)[Landroid/os/CreateAppDataResult;
-PLcom/android/server/pm/Installer;->createUserData(Ljava/lang/String;III)V
-PLcom/android/server/pm/Installer;->destroyCeSnapshotsNotSpecified(I[I)Z
-HSPLcom/android/server/pm/Installer;->executeDeferredActions()V
-PLcom/android/server/pm/Installer;->fixupAppData(Ljava/lang/String;I)V
-HSPLcom/android/server/pm/Installer;->invalidateMounts()V
-PLcom/android/server/pm/Installer;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/server/pm/Installer;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;Landroid/content/pm/PackageStats;)V+]Landroid/os/IInstalld;Landroid/os/IInstalld$Stub$Proxy;]Ldalvik/system/BlockGuard$VmPolicy;Landroid/os/StrictMode$5;
+PLcom/android/server/pm/Installer;->getUserSize(Ljava/lang/String;II[ILandroid/content/pm/PackageStats;)V
 HSPLcom/android/server/pm/Installer;->onStart()V
+PLcom/android/server/pm/Installer;->rmPackageDir(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/pm/Installer;->setWarnIfHeld(Ljava/lang/Object;)V
+PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/InstallingSession;Ljava/lang/Object;I)V
+PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/pm/InstallingSession;-><init>(ILjava/io/File;Lcom/android/server/pm/PackageInstallerSession$7;Landroid/content/pm/PackageInstaller$SessionParams;Lcom/android/server/pm/InstallSource;Landroid/os/UserHandle;Landroid/content/pm/SigningDetails;ILandroid/content/pm/parsing/PackageLite;Landroid/content/pm/verify/domain/DomainSet;Lcom/android/server/pm/PackageManagerService;Z)V
+PLcom/android/server/pm/InstallingSession;->handleReturnCode(Lcom/android/server/pm/InstallRequest;)V
+PLcom/android/server/pm/InstallingSession;->handleStartCopy(Lcom/android/server/pm/InstallRequest;)V
+PLcom/android/server/pm/InstallingSession;->processApkInstallRequests(Ljava/util/List;Z)V
+PLcom/android/server/pm/InstallingSession;->processInstallRequests(Ljava/util/List;Z)V
+PLcom/android/server/pm/InstantAppRegistry$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
 HSPLcom/android/server/pm/InstantAppRegistry$1;-><init>(Lcom/android/server/pm/InstantAppRegistry;)V
-HSPLcom/android/server/pm/InstantAppRegistry$2;-><init>(Lcom/android/server/pm/InstantAppRegistry;Lcom/android/server/pm/InstantAppRegistry;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/InstantAppRegistry$2;->createSnapshot()Lcom/android/server/pm/InstantAppRegistry;
 HSPLcom/android/server/pm/InstantAppRegistry$2;->createSnapshot()Ljava/lang/Object;
 HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;-><init>(Lcom/android/server/pm/InstantAppRegistry;Landroid/os/Looper;)V
-HSPLcom/android/server/pm/InstantAppRegistry;->-$$Nest$fgetmWatchable(Lcom/android/server/pm/InstantAppRegistry;)Lcom/android/server/utils/WatchableImpl;
-HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/DeletePackageHelper;)V
+HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;Lcom/android/server/pm/UserManagerService$LocalService;Lcom/android/server/pm/DeletePackageHelper;)V
 HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Lcom/android/server/pm/InstantAppRegistry;)V
-HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Lcom/android/server/pm/InstantAppRegistry;Lcom/android/server/pm/InstantAppRegistry-IA;)V
-HSPLcom/android/server/pm/InstantAppRegistry;->makeCache()Lcom/android/server/utils/SnapshotCache;
+PLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationDir(ILjava/lang/String;)Ljava/io/File;
+PLcom/android/server/pm/InstantAppRegistry;->isInstantAccessGranted(III)Z
+PLcom/android/server/pm/InstantAppRegistry;->parseMetadataFile(Ljava/io/File;)Lcom/android/server/pm/InstantAppRegistry$UninstalledInstantAppState;
+PLcom/android/server/pm/InstantAppRegistry;->peekInstantCookieFile(ILjava/lang/String;)Ljava/io/File;
+PLcom/android/server/pm/InstantAppRegistry;->propagateInstantAppPermissionsIfNeeded(Lcom/android/server/pm/pkg/AndroidPackage;I)V
 HSPLcom/android/server/pm/InstantAppRegistry;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/pm/InstantAppRegistry;->snapshot()Lcom/android/server/pm/InstantAppRegistry;
+PLcom/android/server/pm/InstantAppRegistry;->removeUninstalledInstantAppStateLPw(ILjava/util/function/Predicate;)V
 PLcom/android/server/pm/InstantAppResolverConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;)V
 PLcom/android/server/pm/InstantAppResolverConnection$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller$1;-><init>(Lcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller;)V
 PLcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller;-><init>()V
 PLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;)V
-PLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;Lcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection-IA;)V
 PLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/pm/InstantAppResolverConnection;->$r8$lambda$66W2s2mMKe4pk_xXCScH9RCqav8(Lcom/android/server/pm/InstantAppResolverConnection;)V
-PLcom/android/server/pm/InstantAppResolverConnection;->-$$Nest$fgetmBindState(Lcom/android/server/pm/InstantAppResolverConnection;)I
-PLcom/android/server/pm/InstantAppResolverConnection;->-$$Nest$fgetmLock(Lcom/android/server/pm/InstantAppResolverConnection;)Ljava/lang/Object;
-PLcom/android/server/pm/InstantAppResolverConnection;->-$$Nest$fputmRemoteInstance(Lcom/android/server/pm/InstantAppResolverConnection;Landroid/app/IInstantAppResolver;)V
-PLcom/android/server/pm/InstantAppResolverConnection;->-$$Nest$sfgetCALL_SERVICE_TIMEOUT_MS()J
-PLcom/android/server/pm/InstantAppResolverConnection;->-$$Nest$sfgetDEBUG_INSTANT()Z
+PLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/pm/InstantAppResolverConnection;-><clinit>()V
-PLcom/android/server/pm/InstantAppResolverConnection;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Ljava/lang/String;)V
+PLcom/android/server/pm/InstantAppResolverConnection;-><init>(Landroid/content/Context;Landroid/content/ComponentName;)V
 PLcom/android/server/pm/InstantAppResolverConnection;->bind(Ljava/lang/String;)Landroid/app/IInstantAppResolver;
-PLcom/android/server/pm/InstantAppResolverConnection;->lambda$optimisticBind$0()V
-PLcom/android/server/pm/InstantAppResolverConnection;->optimisticBind()V
+PLcom/android/server/pm/InstantAppResolverConnection;->handleBinderDiedLocked()V
 PLcom/android/server/pm/InstantAppResolverConnection;->waitForBindLocked(Ljava/lang/String;)V
-PLcom/android/server/pm/InstructionSets;-><clinit>()V
-HPLcom/android/server/pm/InstructionSets;->getDexCodeInstructionSet(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/InstructionSets;->getPreferredInstructionSet()Ljava/lang/String;
-HPLcom/android/server/pm/InstructionSets;->getPrimaryInstructionSet(Lcom/android/server/pm/PackageAbiHelper$Abis;)Ljava/lang/String;
+HSPLcom/android/server/pm/InstructionSets;-><clinit>()V
+PLcom/android/server/pm/InstructionSets;->getAppDexInstructionSets(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+PLcom/android/server/pm/KeySetHandle;-><init>(J)V
 HSPLcom/android/server/pm/KeySetHandle;-><init>(JI)V
-HSPLcom/android/server/pm/KeySetHandle;->getRefCountLPr()I
-HSPLcom/android/server/pm/KeySetHandle;->setRefCountLPw(I)V
-HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;-><init>(Lcom/android/server/pm/KeySetManagerService;JILjava/security/PublicKey;)V
-HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;-><init>(Lcom/android/server/pm/KeySetManagerService;JILjava/security/PublicKey;Lcom/android/server/pm/KeySetManagerService$PublicKeyHandle-IA;)V
-PLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;->getKey()Ljava/security/PublicKey;
-HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;->incrRefCountLPw()V
+PLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;-><init>(Ljava/security/PublicKey;)V
+HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;-><init>(Ljava/security/PublicKey;I)V
 HSPLcom/android/server/pm/KeySetManagerService;-><init>(Lcom/android/server/pm/KeySetManagerService;Lcom/android/server/utils/WatchedArrayMap;)V
 HSPLcom/android/server/pm/KeySetManagerService;-><init>(Lcom/android/server/utils/WatchedArrayMap;)V
-HPLcom/android/server/pm/KeySetManagerService;->addDefinedKeySetsToPackageLPw(Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)V
-HSPLcom/android/server/pm/KeySetManagerService;->addRefCountsFromSavedPackagesLPw(Landroid/util/ArrayMap;)V
-HPLcom/android/server/pm/KeySetManagerService;->addScannedPackageLPw(Lcom/android/server/pm/pkg/AndroidPackage;)V
-HPLcom/android/server/pm/KeySetManagerService;->addSigningKeySetToPackageLPw(Lcom/android/server/pm/PackageSetting;Landroid/util/ArraySet;)V
-HPLcom/android/server/pm/KeySetManagerService;->addUpgradeKeySetsToPackageLPw(Lcom/android/server/pm/PackageSetting;Ljava/util/Set;)V
-HPLcom/android/server/pm/KeySetManagerService;->assertScannedPackageValid(Lcom/android/server/pm/pkg/AndroidPackage;)V
-HPLcom/android/server/pm/KeySetManagerService;->dumpLPr(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/DumpState;)V
-HPLcom/android/server/pm/KeySetManagerService;->getPublicKeysFromKeySetLPr(J)Landroid/util/ArraySet;
-HSPLcom/android/server/pm/KeySetManagerService;->readKeySetListLPw(Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/KeySetManagerService;->readKeySetsLPw(Lcom/android/modules/utils/TypedXmlPullParser;Landroid/util/ArrayMap;)V
-HSPLcom/android/server/pm/KeySetManagerService;->readKeysLPw(Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/KeySetManagerService;->readPublicKeyLPw(Lcom/android/modules/utils/TypedXmlPullParser;)V
-PLcom/android/server/pm/KeySetManagerService;->shouldCheckUpgradeKeySetLocked(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/SharedUserApi;I)Z
-PLcom/android/server/pm/KeySetManagerService;->writeKeySetManagerServiceLPr(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/pm/KeySetManagerService;->writeKeySetsLPr(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/pm/KeySetManagerService;->writePublicKeysLPr(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HSPLcom/android/server/pm/KnownPackages;-><init>(Lcom/android/server/pm/DefaultAppProvider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/KeySetManagerService;->addKeySetLPw(Landroid/util/ArraySet;)Lcom/android/server/pm/KeySetHandle;
+HSPLcom/android/server/pm/KeySetManagerService;->addScannedPackageLPw(Lcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/pm/KeySetManagerService;->decrementKeySetLPw(J)V
+PLcom/android/server/pm/KeySetManagerService;->decrementPublicKeyLPw(J)V
+HSPLcom/android/server/pm/KeySetManagerService;->getPublicKeysFromKeySetLPr(J)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/KeySetManagerService;->readKeySetsLPw(Landroid/util/ArrayMap;Lcom/android/modules/utils/TypedXmlPullParser;)V
+HSPLcom/android/server/pm/KeySetManagerService;->shouldCheckUpgradeKeySetLocked(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;I)Z
+HPLcom/android/server/pm/KeySetManagerService;->writeKeySetManagerServiceLPr(Lcom/android/modules/utils/TypedXmlSerializer;)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Ljava/security/PublicKey;Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;,Lcom/android/org/conscrypt/OpenSSLRSAPublicKey;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+HSPLcom/android/server/pm/KnownPackages;-><init>(Lcom/android/server/pm/DefaultAppProvider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/KnownPackages;->getKnownPackageNames(Lcom/android/server/pm/Computer;II)[Ljava/lang/String;
-PLcom/android/server/pm/LauncherAppsService$BroadcastCookie;-><init>(Landroid/os/UserHandle;Ljava/lang/String;II)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;)V
-HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/LauncherAppsService$BroadcastCookie;-><init>(IILandroid/os/UserHandle;Ljava/lang/String;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Ljava/lang/String;ILandroid/os/UserHandle;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda2;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Ljava/util/function/BiConsumer;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$LocalService;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;Ljava/lang/String;I)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->$r8$lambda$vtWdDInHNEcUSDBzImmSY0mx-XU(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;Ljava/lang/String;I)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor-IA;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->lambda$onShortcutChanged$0(Ljava/lang/String;I)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackageChanged(Ljava/lang/String;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onShortcutChanged(Ljava/lang/String;I)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onShortcutChangedInner(Ljava/lang/String;I)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageLoadingProgressCallback;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageRemovedListener;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageRemovedListener;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageRemovedListener-IA;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageRemovedListener;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$SecureSettingsObserver;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$SecureSettingsObserver;->getPrivateProfile()Landroid/os/UserHandle;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;-><init>(Lcom/android/server/pm/UserManagerInternal;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->$r8$lambda$kx0EDd9EHlGq1e2ICkr064uuOvo(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->-$$Nest$fgetmListeners(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->-$$Nest$fgetmShortcutServiceInternal(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Landroid/content/pm/ShortcutServiceInternal;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->-$$Nest$misEnabledProfileOf(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->-$$Nest$misPackageVisibleToListener(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Ljava/lang/String;Lcom/android/server/pm/LauncherAppsService$BroadcastCookie;Landroid/os/UserHandle;)Z
-HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;->onShortcutEvent(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;Z)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;->onShortcutsAddedOrUpdated(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;->onShortcutsRemoved(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(IIIILjava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureShortcutPermission(IILjava/lang/String;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z+]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureShortcutPermission(Ljava/lang/String;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->generateLauncherActivitiesForArchivedApp(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getActivitiesForArchivedApp(Ljava/lang/String;Landroid/os/UserHandle;Landroid/content/pm/ParceledListSlice;)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getApplicationInfoListForAllArchivedApps(Landroid/os/UserHandle;)Ljava/util/List;
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->forEachViewCaptureWindow(Ljava/util/function/BiConsumer;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->generateLauncherActivitiesForArchivedApp(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getCallingUserId()I
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getLauncherActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getLauncherActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;+]Landroid/app/admin/DevicePolicyManager;Landroid/app/admin/DevicePolicyManager;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/LauncherActivityInfoInternal;Landroid/content/pm/LauncherActivityInfoInternal;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/content/pm/ParceledListSlice;Landroid/content/pm/ParceledListSlice;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Landroid/os/UserManager;Landroid/os/UserManager;]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;Landroid/content/pm/ShortcutQueryWrapper;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingPid()I
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingUid()I
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectCallingUserId()I
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectClearCallingIdentity()J
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectRestoreCallingIdentity(J)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isEnabledProfileOf(Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isManagedProfileAdmin(Landroid/os/UserHandle;Ljava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isPackageVisibleToListener(Ljava/lang/String;Lcom/android/server/pm/LauncherAppsService$BroadcastCookie;Landroid/os/UserHandle;)Z
-HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->lambda$registerLoadingProgressForIncrementalApps$6(Landroid/os/UserHandle;Lcom/android/server/pm/pkg/AndroidPackage;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isEnabledProfileOf(Landroid/os/UserHandle;Lcom/android/server/pm/LauncherAppsService$BroadcastCookie;Ljava/lang/String;)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isHiddenProfile(Landroid/os/UserHandle;)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isPackageVisibleToListener(Landroid/os/UserHandle;Lcom/android/server/pm/LauncherAppsService$BroadcastCookie;Ljava/lang/String;)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->postToPackageMonitorHandler(Ljava/lang/Runnable;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryActivitiesForUser(Ljava/lang/String;Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryIntentLauncherActivities(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->registerLoadingProgressForIncrementalApps()V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->requestsPermissions(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryActivitiesForUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryIntentLauncherActivities(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startWatchingPackageBroadcasts()V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->verifyCallingPackage(Ljava/lang/String;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->verifyCallingPackage(Ljava/lang/String;I)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsServiceInternal;-><init>()V
 PLcom/android/server/pm/LauncherAppsService;-><clinit>()V
 PLcom/android/server/pm/LauncherAppsService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/LauncherAppsService;->onStart()V
 PLcom/android/server/pm/ModuleInfoProvider;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/ModuleInfoProvider;->getInstalledModules(I)Ljava/util/List;
 PLcom/android/server/pm/ModuleInfoProvider;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
-PLcom/android/server/pm/ModuleInfoProvider;->getPackageManager()Landroid/content/pm/IPackageManager;
 PLcom/android/server/pm/ModuleInfoProvider;->loadModuleMetadata(Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources;)V
-PLcom/android/server/pm/ModuleInfoProvider;->systemReady()V
 HSPLcom/android/server/pm/MovePackageHelper$MoveCallbacks;-><init>(Landroid/os/Looper;)V
+PLcom/android/server/pm/OriginInfo;-><init>(Ljava/io/File;ZZ)V
 PLcom/android/server/pm/OtaDexoptService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/OtaDexoptService;->main(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/OtaDexoptService;
-PLcom/android/server/pm/OtaDexoptService;->moveAbArtifacts(Lcom/android/server/pm/Installer;)V
-HPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;-><init>(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;->applyTo(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)V
-HSPLcom/android/server/pm/PackageAbiHelperImpl;-><init>()V
-HPLcom/android/server/pm/PackageAbiHelperImpl;->calculateBundledApkRoot(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageAbiHelperImpl;->deriveCodePathName(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageAbiHelperImpl;->deriveNativeLibraryPaths(Lcom/android/server/pm/PackageAbiHelper$Abis;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
-HPLcom/android/server/pm/PackageAbiHelperImpl;->deriveNativeLibraryPaths(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
+PLcom/android/server/pm/OtaDexoptService;->main(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;-><init>(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;->applyTo(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)V
+PLcom/android/server/pm/PackageAbiHelperImpl;->calculateBundledApkRoot(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/PackageAbiHelperImpl;->deriveCodePathName(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->deriveNativeLibraryPaths(Lcom/android/server/pm/PackageAbiHelper$Abis;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->deriveNativeLibraryPaths(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
 PLcom/android/server/pm/PackageAbiHelperImpl;->derivePackageAbi(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/String;Ljava/io/File;)Landroid/util/Pair;
 PLcom/android/server/pm/PackageAbiHelperImpl;->getAdjustedAbiForSharedUser(Landroid/util/ArraySet;Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;
-PLcom/android/server/pm/PackageAbiHelperImpl;->shouldExtractLibs(Lcom/android/server/pm/pkg/AndroidPackage;ZZ)Z
+PLcom/android/server/pm/PackageAbiHelperImpl;->maybeThrowExceptionForMultiArchCopy(ILjava/lang/String;Z)V
 HSPLcom/android/server/pm/PackageArchiver;-><clinit>()V
 PLcom/android/server/pm/PackageArchiver;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/PackageArchiver;->isArchived(Lcom/android/server/pm/pkg/PackageUserState;)Z
-PLcom/android/server/pm/PackageArchiver;->isArchivingEnabled()Z
-HSPLcom/android/server/pm/PackageDexOptimizer$1;-><init>()V
-HSPLcom/android/server/pm/PackageDexOptimizer$1;->getPowerManager(Landroid/content/Context;)Landroid/os/PowerManager;
+PLcom/android/server/pm/PackageArchiver;->clearArchiveState(Lcom/android/server/pm/PackageSetting;I)V
+HSPLcom/android/server/pm/PackageArchiver;->isArchived(Lcom/android/server/pm/pkg/PackageUserState;)Z+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateDefault;,Lcom/android/server/pm/pkg/PackageUserStateImpl;
 HSPLcom/android/server/pm/PackageDexOptimizer;-><clinit>()V
-HSPLcom/android/server/pm/PackageDexOptimizer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;Ljava/lang/String;)V
-HSPLcom/android/server/pm/PackageDexOptimizer;-><init>(Lcom/android/server/pm/PackageDexOptimizer$Injector;Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;Ljava/lang/String;)V
-PLcom/android/server/pm/PackageDexOptimizer;->systemReady()V
+HSPLcom/android/server/pm/PackageDexOptimizer;-><init>(Lcom/android/server/pm/Installer;Lcom/android/server/pm/PackageManagerTracedLock;Landroid/content/Context;Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageDexOptimizer;-><init>(Lcom/android/server/pm/PackageDexOptimizer$Injector;Lcom/android/server/pm/Installer;Lcom/android/server/pm/PackageManagerTracedLock;Landroid/content/Context;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageFreezer;-><init>(Ljava/lang/String;ILjava/lang/String;Lcom/android/server/pm/PackageManagerService;ILcom/android/server/pm/InstallRequest;Z)V
+PLcom/android/server/pm/PackageFreezer;->close()V
+PLcom/android/server/pm/PackageFreezer;->finalize()V
 HSPLcom/android/server/pm/PackageHandler;-><init>(Landroid/os/Looper;Lcom/android/server/pm/PackageManagerService;)V
 PLcom/android/server/pm/PackageHandler;->doHandleMessage(Landroid/os/Message;)V
 PLcom/android/server/pm/PackageHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda4;-><init>(I)V
-PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/Computer;I)V
-PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/PackageInstallerService;)V
-PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;
-PLcom/android/server/pm/PackageInstallerService$1;-><init>()V
+PLcom/android/server/pm/PackageInstallerHistoricalSession;-><init>(IIILjava/lang/String;Lcom/android/server/pm/InstallSource;IJJJLjava/io/File;Ljava/lang/String;FFZZZZZZIIILjava/lang/String;Landroid/content/pm/PackageInstaller$SessionParams;I[IZZZILjava/lang/String;Landroid/content/pm/PackageInstaller$PreapprovalDetails;Landroid/content/pm/verify/domain/DomainSet;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerHistoricalSession;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/Computer;II)V
+PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda6;-><init>(I)V
+PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda6;->test(I)Z
+PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda8;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;
 PLcom/android/server/pm/PackageInstallerService$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageInstallerService$BroadcastCookie;-><init>(ILjava/util/function/IntPredicate;)V
 PLcom/android/server/pm/PackageInstallerService$Callbacks;-><init>(Lcom/android/server/pm/PackageInstallerService;Landroid/os/Looper;)V
-PLcom/android/server/pm/PackageInstallerService$Callbacks;->register(Landroid/content/pm/IPackageInstallerCallback;Lcom/android/server/pm/PackageInstallerService$BroadcastCookie;)V
+PLcom/android/server/pm/PackageInstallerService$Callbacks;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/pm/PackageInstallerService$Callbacks;->invokeCallback(Landroid/content/pm/IPackageInstallerCallback;Landroid/os/Message;)V
+PLcom/android/server/pm/PackageInstallerService$InternalCallback$1;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Lcom/android/server/pm/PackageInstallerSession;Z)V
+PLcom/android/server/pm/PackageInstallerService$InternalCallback$1;->run()V
 PLcom/android/server/pm/PackageInstallerService$InternalCallback;-><init>(Lcom/android/server/pm/PackageInstallerService;)V
+PLcom/android/server/pm/PackageInstallerService$InternalCallback;->onSessionChanged(Lcom/android/server/pm/PackageInstallerSession;)V
 PLcom/android/server/pm/PackageInstallerService$Lifecycle;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageInstallerService;)V
 PLcom/android/server/pm/PackageInstallerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/pm/PackageInstallerService$Lifecycle;->onStart()V
-PLcom/android/server/pm/PackageInstallerService;->$r8$lambda$wY7L0Z422az4MHHhP9QFuryN2S8(Lcom/android/server/pm/PackageInstallerService;)Ljava/lang/Boolean;
-PLcom/android/server/pm/PackageInstallerService;->-$$Nest$monBroadcastReady(Lcom/android/server/pm/PackageInstallerService;)V
-PLcom/android/server/pm/PackageInstallerService;-><clinit>()V
-HPLcom/android/server/pm/PackageInstallerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Ljava/util/function/Supplier;)V
+PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;-><init>()V
+PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->dump(Ljava/lang/String;Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/pm/PackageInstallerService;-><clinit>()V
+PLcom/android/server/pm/PackageInstallerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;)V
+PLcom/android/server/pm/PackageInstallerService;->addHistoricalSessionLocked(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerService;->allocateSessionIdLocked()I
+PLcom/android/server/pm/PackageInstallerService;->createSession(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageInstallerService;->createSessionInternal(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;Ljava/lang/String;II)I
+PLcom/android/server/pm/PackageInstallerService;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/pm/PackageInstallerService;->expireSessionsLocked()V
+PLcom/android/server/pm/PackageInstallerService;->getAllSessions(I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageInstallerService;->getExistingDraftSessionIdInternal(ILandroid/content/pm/PackageInstaller$SessionParams;I)I
 PLcom/android/server/pm/PackageInstallerService;->getMySessions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageInstallerService;->getSession(I)Lcom/android/server/pm/PackageInstallerSession;
+HPLcom/android/server/pm/PackageInstallerService;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
 PLcom/android/server/pm/PackageInstallerService;->getStagedSessions()Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/PackageInstallerService;->getStagingDirsOnVolume(Ljava/lang/String;)Landroid/util/ArraySet;
-PLcom/android/server/pm/PackageInstallerService;->getStagingManager()Lcom/android/server/pm/StagingManager;
-PLcom/android/server/pm/PackageInstallerService;->getTmpSessionDir(Ljava/lang/String;)Ljava/io/File;
-HPLcom/android/server/pm/PackageInstallerService;->isStageName(Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageInstallerService;->lambda$new$0()Ljava/lang/Boolean;
-PLcom/android/server/pm/PackageInstallerService;->newArraySet([Ljava/lang/Object;)Landroid/util/ArraySet;
-PLcom/android/server/pm/PackageInstallerService;->onBroadcastReady()V
+PLcom/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;->openSession(I)Landroid/content/pm/IPackageInstallerSession;
+PLcom/android/server/pm/PackageInstallerService;->openSessionInternal(I)Lcom/android/server/pm/PackageInstallerSession;
+PLcom/android/server/pm/PackageInstallerService;->prepareStageDir(Ljava/io/File;)V
 PLcom/android/server/pm/PackageInstallerService;->readSessionsLocked()V
 PLcom/android/server/pm/PackageInstallerService;->reconcileStagesLocked(Ljava/lang/String;)V
 PLcom/android/server/pm/PackageInstallerService;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;I)V
-PLcom/android/server/pm/PackageInstallerService;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;Ljava/util/function/IntPredicate;)V
+PLcom/android/server/pm/PackageInstallerService;->removeActiveSession(Lcom/android/server/pm/PackageInstallerSession;)V
 PLcom/android/server/pm/PackageInstallerService;->removeStagingDirs(Landroid/util/ArraySet;)V
 PLcom/android/server/pm/PackageInstallerService;->restoreAndApplyStagedSessionIfNeeded()V
-PLcom/android/server/pm/PackageInstallerService;->systemReady()V
-PLcom/android/server/pm/PackageInstallerService;->writeSessions()Z
+PLcom/android/server/pm/PackageInstallerService;->shouldFilterSession(Lcom/android/server/pm/Computer;ILandroid/content/pm/PackageInstaller$SessionInfo;)Z
+PLcom/android/server/pm/PackageInstallerService;->updateSessionAppIcon(ILandroid/graphics/Bitmap;)V
+PLcom/android/server/pm/PackageInstallerService;->updateSessionAppLabel(ILjava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda10;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/pm/PackageInstallerSession;ILjava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda12;->run()V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/PackageInstallerSession;Landroid/system/Int64Ref;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda4;->onProgress(J)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda8;->onResult(ILjava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/pm/PackageInstallerSession;Ljava/util/List;)V
+PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/pm/PackageInstallerSession$1;-><init>(I)V
+PLcom/android/server/pm/PackageInstallerSession$1;->accept(Ljava/io/File;)Z
+PLcom/android/server/pm/PackageInstallerSession$5;-><init>(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerSession$5;->handleMessage(Landroid/os/Message;)Z
+PLcom/android/server/pm/PackageInstallerSession$6;-><init>(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerSession$6;->onResult(Ljava/lang/Object;)V
+PLcom/android/server/pm/PackageInstallerSession$7;-><init>(Lcom/android/server/pm/PackageInstallerSession;Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/pm/PackageInstallerSession$7;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/pm/PackageInstallerSession$InstallResult;-><init>(Lcom/android/server/pm/PackageInstallerSession;Landroid/os/Bundle;)V
+PLcom/android/server/pm/PackageInstallerSession$PerFileChecksum;-><init>([Landroid/content/pm/Checksum;[B)V
+HSPLcom/android/server/pm/PackageInstallerSession;-><clinit>()V
+PLcom/android/server/pm/PackageInstallerSession;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/SilentUpdatePolicy;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;IIILcom/android/server/pm/InstallSource;Landroid/content/pm/PackageInstaller$SessionParams;JJLjava/io/File;Ljava/lang/String;[Landroid/content/pm/InstallationFile;Landroid/util/ArrayMap;ZZZZ[IIZZZILjava/lang/String;Landroid/content/pm/verify/domain/DomainSet;Lcom/android/server/pm/InstallDependencyHelper;)V
+PLcom/android/server/pm/PackageInstallerSession;->abandon()V
+PLcom/android/server/pm/PackageInstallerSession;->assertCallerIsOwnerOrRoot()V
+PLcom/android/server/pm/PackageInstallerSession;->assertCallerIsOwnerOrRootOrSystem()V
+PLcom/android/server/pm/PackageInstallerSession;->assertCallerIsOwnerRootOrVerifier()V
+PLcom/android/server/pm/PackageInstallerSession;->assertCanWrite(Z)V
+PLcom/android/server/pm/PackageInstallerSession;->assertNoWriteFileTransfersOpenLocked()V
+PLcom/android/server/pm/PackageInstallerSession;->assertNotChild(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->assertNotLocked(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->assertPackageConsistentLocked(Ljava/lang/String;JLjava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotCommittedOrDestroyedLocked(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotDestroyedLocked(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotSealedLocked(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->close()V
+PLcom/android/server/pm/PackageInstallerSession;->commit(Landroid/content/IntentSender;Z)V
+HPLcom/android/server/pm/PackageInstallerSession;->computeProgressLocked(Z)V
+PLcom/android/server/pm/PackageInstallerSession;->createInstallingSession(Ljava/util/concurrent/CompletableFuture;)Lcom/android/server/pm/InstallingSession;
+PLcom/android/server/pm/PackageInstallerSession;->deactivate()V
+PLcom/android/server/pm/PackageInstallerSession;->destroy(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->destroyInternal(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->dispatchSessionFinished(ILjava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/pm/PackageInstallerSession;->doWriteInternal(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/pm/PackageInstallerSession;->extractNativeLibraries()V
+PLcom/android/server/pm/PackageInstallerSession;->extractNativeLibraries(Landroid/content/pm/parsing/PackageLite;Ljava/io/File;Ljava/lang/String;Z)V
+PLcom/android/server/pm/PackageInstallerSession;->filterFiles(Ljava/io/File;[Ljava/lang/String;Ljava/io/FileFilter;)Ljava/util/ArrayList;
+PLcom/android/server/pm/PackageInstallerSession;->generateInfoForCaller(IZ)Landroid/content/pm/PackageInstaller$SessionInfo;
+HPLcom/android/server/pm/PackageInstallerSession;->generateInfoInternal(ZZ)Landroid/content/pm/PackageInstaller$SessionInfo;
+PLcom/android/server/pm/PackageInstallerSession;->getAddedApksLocked()Ljava/util/List;
+PLcom/android/server/pm/PackageInstallerSession;->getChildSessionIdsLocked()[I
+PLcom/android/server/pm/PackageInstallerSession;->getChildSessions()Ljava/util/List;
+PLcom/android/server/pm/PackageInstallerSession;->getChildSessionsLocked()Ljava/util/List;
+PLcom/android/server/pm/PackageInstallerSession;->getDataLoaderParams()Landroid/content/pm/DataLoaderParamsParcel;
+PLcom/android/server/pm/PackageInstallerSession;->getInstallSource()Lcom/android/server/pm/InstallSource;
+PLcom/android/server/pm/PackageInstallerSession;->getInstallationFilesLocked()[Landroid/content/pm/InstallationFile;
+HPLcom/android/server/pm/PackageInstallerSession;->getNames()[Ljava/lang/String;
+PLcom/android/server/pm/PackageInstallerSession;->getNamesLocked()[Ljava/lang/String;
+PLcom/android/server/pm/PackageInstallerSession;->getOrParsePackageLiteLocked(Ljava/io/File;)Landroid/content/pm/parsing/PackageLite;
+PLcom/android/server/pm/PackageInstallerSession;->getPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageInstallerSession;->getRemoteStatusReceiver()Landroid/content/IntentSender;
+PLcom/android/server/pm/PackageInstallerSession;->hasParentSessionId()Z
+PLcom/android/server/pm/PackageInstallerSession;->install()Ljava/util/concurrent/CompletableFuture;
+PLcom/android/server/pm/PackageInstallerSession;->isApexSession()Z
+PLcom/android/server/pm/PackageInstallerSession;->isDataLoaderInstallation(Landroid/content/pm/PackageInstaller$SessionParams;)Z
+PLcom/android/server/pm/PackageInstallerSession;->isDestroyed()Z
+PLcom/android/server/pm/PackageInstallerSession;->isEmergencyInstallerEnabled(IILcom/android/server/pm/Computer;Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageInstallerSession;->isInTerminalState()Z
+PLcom/android/server/pm/PackageInstallerSession;->isIncrementalInstallation()Z
+PLcom/android/server/pm/PackageInstallerSession;->isInstallerDeviceOwnerOrAffiliatedProfileOwner()Z
+PLcom/android/server/pm/PackageInstallerSession;->isMultiPackage()Z
+PLcom/android/server/pm/PackageInstallerSession;->isSealed()Z
+PLcom/android/server/pm/PackageInstallerSession;->isStaged()Z
+PLcom/android/server/pm/PackageInstallerSession;->isSystemDataLoaderInstallation(Landroid/content/pm/PackageInstaller$SessionParams;)Z
+PLcom/android/server/pm/PackageInstallerSession;->markAsSealed(Landroid/content/IntentSender;Z)Z
+PLcom/android/server/pm/PackageInstallerSession;->maybeFinishChildSessions(ILjava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->maybeStageFsveritySignatureLocked(Ljava/io/File;Ljava/io/File;Z)V
+PLcom/android/server/pm/PackageInstallerSession;->open()V
+PLcom/android/server/pm/PackageInstallerSession;->openWrite(Ljava/lang/String;JJ)Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/pm/PackageInstallerSession;->openWriteAppMetadata()Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/pm/PackageInstallerSession;->parseApk()V
+PLcom/android/server/pm/PackageInstallerSession;->prepareDataLoaderLocked()Z
+PLcom/android/server/pm/PackageInstallerSession;->prepareInheritedFiles()V
+PLcom/android/server/pm/PackageInstallerSession;->resolveAndStageFileLocked(Ljava/io/File;Ljava/io/File;Ljava/util/List;)V
+PLcom/android/server/pm/PackageInstallerSession;->sealLocked()V
+PLcom/android/server/pm/PackageInstallerSession;->sendPendingUserActionIntentIfNeeded(Z)Z
+PLcom/android/server/pm/PackageInstallerSession;->sendUpdateToRemoteStatusReceiver(ILjava/lang/String;Landroid/os/Bundle;Z)V
+PLcom/android/server/pm/PackageInstallerSession;->sessionContains(Ljava/util/function/Predicate;)Z
+PLcom/android/server/pm/PackageInstallerSession;->setChecksums(Ljava/lang/String;[Landroid/content/pm/Checksum;[B)V
+PLcom/android/server/pm/PackageInstallerSession;->setClientProgress(F)V
+PLcom/android/server/pm/PackageInstallerSession;->setClientProgressLocked(F)V
+PLcom/android/server/pm/PackageInstallerSession;->setSessionReady()V
+PLcom/android/server/pm/PackageInstallerSession;->stageFileLocked(Ljava/io/File;Ljava/io/File;)V
+PLcom/android/server/pm/PackageInstallerSession;->streamValidateAndCommit()Z
+HPLcom/android/server/pm/PackageInstallerSession;->validateApkInstallLocked()V
+PLcom/android/server/pm/PackageInstallerSession;->verify()V
+PLcom/android/server/pm/PackageInstallerSession;->verifyNonStaged()V
+HPLcom/android/server/pm/PackageInstallerSession;->write(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/io/File;)V
+PLcom/android/server/pm/PackageInstallerSession;->write(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)V
 HSPLcom/android/server/pm/PackageKeySetData;-><init>()V
 HSPLcom/android/server/pm/PackageKeySetData;-><init>(Lcom/android/server/pm/PackageKeySetData;)V
-PLcom/android/server/pm/PackageKeySetData;->getAliases()Landroid/util/ArrayMap;
-PLcom/android/server/pm/PackageKeySetData;->getProperSigningKeySet()J
-PLcom/android/server/pm/PackageKeySetData;->isUsingDefinedKeySets()Z
-HPLcom/android/server/pm/PackageKeySetData;->isUsingUpgradeKeySets()Z
-HPLcom/android/server/pm/PackageKeySetData;->removeAllDefinedKeySets()V
-HPLcom/android/server/pm/PackageKeySetData;->removeAllUpgradeKeySets()V
-HPLcom/android/server/pm/PackageKeySetData;->setAliases(Ljava/util/Map;)V
-HSPLcom/android/server/pm/PackageKeySetData;->setProperSigningKeySet(J)V
 PLcom/android/server/pm/PackageList;-><init>(Ljava/util/List;Landroid/content/pm/PackageManagerInternal$PackageListObserver;)V
-PLcom/android/server/pm/PackageList;->getPackageNames()Ljava/util/List;
+PLcom/android/server/pm/PackageList;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageList;->onPackageChanged(ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerException;-><init>(ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerException;-><init>(ILjava/lang/String;Ljava/lang/Throwable;)V
-HSPLcom/android/server/pm/PackageManagerInternalBase;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerInternalBase;->canAccessInstantApps(II)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->canQueryPackage(ILjava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerInternalBase;->filterAppAccess(II)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->filterAppAccess(Ljava/lang/String;IIZ)Z
-PLcom/android/server/pm/PackageManagerInternalBase;->forEachInstalledPackage(Ljava/util/function/Consumer;I)V
-PLcom/android/server/pm/PackageManagerInternalBase;->forEachPackage(Ljava/util/function/Consumer;)V
-PLcom/android/server/pm/PackageManagerInternalBase;->forEachPackageState(Ljava/util/function/Consumer;)V
-HPLcom/android/server/pm/PackageManagerInternalBase;->getApplicationEnabledState(Ljava/lang/String;I)I
-HPLcom/android/server/pm/PackageManagerInternalBase;->getApplicationInfo(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getDisabledComponents(Ljava/lang/String;I)Landroid/util/ArraySet;
-PLcom/android/server/pm/PackageManagerInternalBase;->getDistractingPackageRestrictions(Ljava/lang/String;I)I
-HPLcom/android/server/pm/PackageManagerInternalBase;->getEnabledComponents(Ljava/lang/String;I)Landroid/util/ArraySet;
-PLcom/android/server/pm/PackageManagerInternalBase;->getInstalledApplications(JII)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerInternalBase;->getInstalledApplicationsCrossUser(JII)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getInstantAppPackageName(I)Ljava/lang/String;
-HSPLcom/android/server/pm/PackageManagerInternalBase;->getKnownPackageNames(II)[Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getPackage(I)Lcom/android/server/pm/pkg/AndroidPackage;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getPackageInfo(Ljava/lang/String;JII)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;
-PLcom/android/server/pm/PackageManagerInternalBase;->getPackageTargetSdkVersion(Ljava/lang/String;)I
-HPLcom/android/server/pm/PackageManagerInternalBase;->getPackageUid(Ljava/lang/String;JI)I
-PLcom/android/server/pm/PackageManagerInternalBase;->getPermissionGids(Ljava/lang/String;I)[I
-HPLcom/android/server/pm/PackageManagerInternalBase;->getProcessesForUid(I)Landroid/util/ArrayMap;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getSharedUserPackagesForPackage(Ljava/lang/String;I)[Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerInternalBase;->getSystemUiServiceComponent()Landroid/content/ComponentName;
-HPLcom/android/server/pm/PackageManagerInternalBase;->getUidTargetSdkVersion(I)I
-HPLcom/android/server/pm/PackageManagerInternalBase;->grantImplicitAccess(ILandroid/content/Intent;IIZ)V
-HPLcom/android/server/pm/PackageManagerInternalBase;->grantImplicitAccess(ILandroid/content/Intent;IIZZ)V
-HPLcom/android/server/pm/PackageManagerInternalBase;->isInstantApp(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerInternalBase;->isInstantAppInstallerComponent(Landroid/content/ComponentName;)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->isPackageEphemeral(ILjava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->isPackageFrozen(Ljava/lang/String;II)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->isPackageStateProtected(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerInternalBase;->isPackageStopped(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->isPackageSuspended(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageManagerInternalBase;->notifyComponentUsed(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/pm/PackageManagerInternalBase;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JII)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerInternalBase;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;JIIZ)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerInternalBase;->reconcileAppsData(IIZ)V
-PLcom/android/server/pm/PackageManagerInternalBase;->resolveContentProvider(Ljava/lang/String;JII)Landroid/content/pm/ProviderInfo;
-PLcom/android/server/pm/PackageManagerInternalBase;->resolveIntentExported(Landroid/content/Intent;Ljava/lang/String;JJIZII)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/PackageManagerInternalBase;->resolveService(Landroid/content/Intent;Ljava/lang/String;JII)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerInternalBase;->setPackageStoppedState(Ljava/lang/String;ZI)V
-HSPLcom/android/server/pm/PackageManagerInternalBase;->snapshot()Lcom/android/server/pm/Computer;
-HPLcom/android/server/pm/PackageManagerInternalBase;->snapshot()Lcom/android/server/pm/snapshot/PackageDataSnapshot;
-PLcom/android/server/pm/PackageManagerInternalBase;->wasPackageEverLaunched(Ljava/lang/String;I)Z
+PLcom/android/server/pm/PackageManagerException;-><init>(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 PLcom/android/server/pm/PackageManagerNative;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerNative;->getModuleMetadataPackageName()Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerNative;->getNamesForUids([I)[Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerNative;->getTargetSdkVersionForPackage(Ljava/lang/String;)I
 PLcom/android/server/pm/PackageManagerNative;->getVersionCodeForPackage(Ljava/lang/String;)J
 PLcom/android/server/pm/PackageManagerNative;->hasSystemFeature(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerNative;->isAudioPlaybackCaptureAllowed([Ljava/lang/String;)[Z
 PLcom/android/server/pm/PackageManagerNative;->registerStagedApexObserver(Landroid/content/pm/IStagedApexObserver;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda10;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda10;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda12;-><init>()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda12;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda13;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda14;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda15;-><init>()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda15;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda16;-><init>()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda16;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda18;-><init>()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda18;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda19;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda19;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda1;-><init>()V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;-><init>(Landroid/content/Context;I)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;->produce(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;-><init>(I)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;->produce(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)Ljava/lang/Object;
 HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationService;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda20;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda21;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda21;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda22;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda22;->produce(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda23;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda23;->produce(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda24;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda24;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda25;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda26;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda26;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda27;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda28;-><init>(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/PackageManagerTracedLock;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda28;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda29;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda29;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationService;)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda21;->produce(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda28;-><init>(Landroid/content/Context;Lcom/android/server/pm/Installer;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerTracedLock;)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda28;->produce(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
 PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda30;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda30;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationService;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda32;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda33;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda33;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda34;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda34;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda35;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda35;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda36;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda36;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda37;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda37;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda38;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda38;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda40;-><init>(Lcom/android/server/pm/PackageManagerService;Z)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda40;->run()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda42;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/pm/PackageManagerService;[I)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationService;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda31;->produce(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda40;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda40;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;->get()Ljava/lang/Object;
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda42;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda43;-><init>(IZZ)V
 PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda43;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda44;-><init>(IZZ)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda44;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda45;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda45;->run()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda46;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Landroid/os/Bundle;[ILandroid/util/SparseArray;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda46;->run()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda48;-><init>(Lcom/android/server/pm/PackageManagerServiceInjector;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda4;->apply(I)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda50;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda51;-><init>()V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda55;-><init>(ILjava/util/function/Consumer;)V
-HPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda55;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda63;-><init>(ILandroid/util/ArrayMap;Ljava/util/Set;ILandroid/util/ArrayMap;)V
-PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda63;->accept(Ljava/lang/Object;)V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda6;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda6;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda7;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda7;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda8;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda8;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda9;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda9;->produce(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerService$1;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda44;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda44;->run()V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda45;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Landroid/os/Bundle;[ILandroid/util/SparseArray;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda45;->run()V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda46;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda46;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda49;->get()Ljava/lang/Object;
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda50;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/Handler;Ljava/util/List;IILjava/lang/String;[Ljava/security/cert/Certificate;Landroid/content/pm/IOnChecksumsReadyListener;I)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda50;->run()V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda52;-><init>(IILjava/lang/Object;)V
+HPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda52;->accept(Ljava/lang/Object;)V+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/function/Consumer;Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda5;,Lcom/android/server/people/data/DataManager$$ExternalSyntheticLambda11;,Lcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda54;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda54;->produce()Ljava/lang/Object;
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda55;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object;
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda60;-><init>(ILandroid/util/ArrayMap;Ljava/util/Set;ILandroid/util/ArrayMap;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda60;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda6;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/pm/PackageManagerService$1;-><init>()V
 HSPLcom/android/server/pm/PackageManagerService$1;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/PackageManagerService$2;-><init>()V
 PLcom/android/server/pm/PackageManagerService$2;->handleMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/pm/PackageManagerService$3;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/compat/PlatformCompat;)V
+HSPLcom/android/server/pm/PackageManagerService$3;->getHiddenApiWhitelistedApps()Ljava/util/Set;
+PLcom/android/server/pm/PackageManagerService$3;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
 PLcom/android/server/pm/PackageManagerService$4;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/Handler;Landroid/content/ContentResolver;)V
 PLcom/android/server/pm/PackageManagerService$4;->onChange(Z)V
-PLcom/android/server/pm/PackageManagerService$5;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/PackageManagerService$5;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
 PLcom/android/server/pm/PackageManagerService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/pm/PackageManagerService$6;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/PackageManagerService$DefaultSystemWrapper;-><init>()V
-HSPLcom/android/server/pm/PackageManagerService$DefaultSystemWrapper;-><init>(Lcom/android/server/pm/PackageManagerService$DefaultSystemWrapper-IA;)V
 HSPLcom/android/server/pm/PackageManagerService$DefaultSystemWrapper;->disablePackageCaches()V
 PLcom/android/server/pm/PackageManagerService$DefaultSystemWrapper;->enablePackageCaches()V
-PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/Computer;II)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;ILjava/lang/String;ILjava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda19;->applyOrThrow(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;III)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda9;-><init>(II)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->checkPackageStartable(Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->checkSignatures(Ljava/lang/String;Ljava/lang/String;I)I
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->checkUidPermission(Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->checkUidSignatures(II)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->finishPackageInstall(IZ)V
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getAppMetadataFd(Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getAppMetadataSource(Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getApplicationEnabledSetting(Ljava/lang/String;I)I
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getArtManager()Landroid/content/pm/dex/IArtManager;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getAttentionServicePackageName()Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getDeclaredSharedLibraries(Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getDefaultAppsBackup(I)[B
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getDefaultTextClassifierPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getDomainVerificationBackup(I)[B
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstallReason(Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstallSourceInfo(Ljava/lang/String;I)Landroid/content/pm/InstallSourceInfo;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstalledApplications(JI)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstalledModules(I)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getInstantAppAndroidId(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getNameForUid(I)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPackageGids(Ljava/lang/String;JI)[I
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPackageUid(Ljava/lang/String;JI)I+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPackagesForUid(I)[Ljava/lang/String;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPackagesHoldingPermissions([Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPermissionControllerPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPersistentApplications(I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPreferredActivityBackup(I)[B
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getPropertyAsUser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PackageManager$Property;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getReceiverInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getRotationResolverPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSdkSandboxPackageName()Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSetupWizardPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSharedLibraries(Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSplashScreenTheme(Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSystemCaptionsServicePackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSystemSharedLibraryNames()[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getSystemTextClassifierPackageName()Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getTargetSdkVersion(Ljava/lang/String;)I+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getUidForSharedUser(Ljava/lang/String;)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getUnsuspendablePackagesForUser([Ljava/lang/String;I)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getUserMinAspectRatio(Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->getWellbeingPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->hasSigningCertificate(Ljava/lang/String;[BI)Z
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->hasSystemFeature(Ljava/lang/String;I)Z
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->hasSystemUidErrors()Z
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isDeviceUpgrading()Z
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isFirstBoot()Z
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isInstantApp(Ljava/lang/String;I)Z
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isPackageAvailable(Ljava/lang/String;I)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isProtectedBroadcast(Ljava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->logAppProcessStartIfNeeded(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->isSafeMode()Z
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->logAppProcessStartIfNeeded(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->notifyDexLoad(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->notifyPackageUse(Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->notifyPackageUse(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->notifyPackagesReplacedReceived([Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->queryContentProviders(Ljava/lang/String;IJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->queryProperty(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->registerPackageMonitorCallback(Landroid/os/IRemoteCallback;I)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->registerPackageMonitorCallback(Landroid/os/IRemoteCallback;I)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->requestPackageChecksums(Ljava/lang/String;ZIILjava/util/List;Landroid/content/pm/IOnChecksumsReadyListener;I)V
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->resolveContentProvider(Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->resolveService(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->setApplicationCategoryHint(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->setApplicationEnabledSetting(Ljava/lang/String;IIILjava/lang/String;)V
 HPLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->setComponentEnabledSetting(Landroid/content/ComponentName;IIILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->setPackageStoppedState(Ljava/lang/String;ZI)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;Ljava/lang/String;Landroid/os/Bundle;I[ILandroid/util/SparseArray;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3;-><init>(Ljava/util/List;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda4;-><init>(Ljava/util/ArrayList;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->$r8$lambda$6BzoV0knGY9C14_caifkEEMMdVU(Ljava/util/List;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->$r8$lambda$EQuwNqG4N0yM_qw6ZX3BhqlsDtw(Ljava/util/ArrayList;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->$r8$lambda$oFinl0bGSorgAoKfFRg-vRv_2cE(Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;Ljava/lang/String;Landroid/os/Bundle;I[ILandroid/util/SparseArray;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->setComponentEnabledSettings(Ljava/util/List;ILjava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->unregisterPackageMonitorCallback(Landroid/os/IRemoteCallback;)V
+PLcom/android/server/pm/PackageManagerService$IPackageManagerImpl;->verifyPendingInstall(II)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda1;->run()V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getAppDataHelper()Lcom/android/server/pm/AppDataHelper;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getContext()Landroid/content/Context;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getIncrementalStatesInfo(Ljava/lang/String;II)Landroid/content/pm/IncrementalStatesInfo;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->canQueryPackage(ILjava/lang/String;)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(ILjava/lang/String;IZ)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachInstalledPackage(ILjava/util/function/Consumer;)V+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachPackage(Ljava/util/function/Consumer;)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachPackageState(Ljava/util/function/Consumer;)V
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getApplicationInfo(IILjava/lang/String;J)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getIncrementalStatesInfo(IILjava/lang/String;)Landroid/content/pm/IncrementalStatesInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getInstalledApplications(IIJ)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getInstantAppPackageName(I)Ljava/lang/String;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getKnownPackageNames(II)[Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(I)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageInfo(IILjava/lang/String;J)Landroid/content/pm/PackageInfo;
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageList(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)Lcom/android/server/pm/PackageList;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPermissionManager()Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getProtectedPackages()Lcom/android/server/pm/ProtectedPackages;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getResolveIntentHelper()Lcom/android/server/pm/ResolveIntentHelper;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSuspendPackageHelper()Lcom/android/server/pm/SuspendPackageHelper;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getTargetPackageNames(I)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasSignatureCapability(III)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackagePersistent(Ljava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPlatformSigned(Ljava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isSameApp(Ljava/lang/String;II)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isSameApp(Ljava/lang/String;JII)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->lambda$getPackageList$0(Ljava/util/ArrayList;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->lambda$getTargetPackageNames$2(Ljava/util/List;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->lambda$sendPackageRestartedBroadcast$4(Ljava/lang/String;Landroid/os/Bundle;I[ILandroid/util/SparseArray;)V
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->notifyPackageUse(Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->sendPackageRestartedBroadcast(Ljava/lang/String;II)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageUid(Ljava/lang/String;JI)I+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSharedUserPackagesForPackage(ILjava/lang/String;)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSystemUiServiceComponent()Landroid/content/ComponentName;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getUidTargetSdkVersion(I)I+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->grantImplicitAccess(ILandroid/content/Intent;IIZZ)V+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasSignatureCapability(II)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isInstantApp(Ljava/lang/String;I)Z
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageEphemeral(ILjava/lang/String;)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageFrozen(IILjava/lang/String;)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageSuspended(ILjava/lang/String;)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPermissionsReviewRequired(ILjava/lang/String;)Z+]Lcom/android/server/pm/permission/PermissionManagerServiceInterface;Lcom/android/server/permission/access/permission/PermissionService;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPlatformSigned(Ljava/lang/String;)Z
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isSameApp(IILjava/lang/String;J)Z+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->notifyComponentUsed(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateDefault;,Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->onPackageProcessKilledForUninstall(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JII)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->reconcileAppsData(IIZ)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->registerInstalledLoadingProgressCallback(Ljava/lang/String;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageLoadingProgressCallback;I)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setEnabledOverlayPackages(ILandroid/util/ArrayMap;Ljava/util/Set;Ljava/util/Set;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setExternalSourcesPolicy(Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;)V
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->snapshot()Lcom/android/server/pm/Computer;+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;
 HSPLcom/android/server/pm/PackageManagerService$Snapshot;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$3kw1stMVsxw0hUSyOsS2FPnzpHQ(Landroid/content/Context;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/DefaultAppProvider;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$49MB1VcYhb5vNzYT8bGtg2MigyY(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/SystemConfig;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$5zfMCrLbAea9InASGoniwjwLP1g(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;Landroid/content/ComponentName;)Lcom/android/server/pm/InstantAppResolverConnection;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$Ak19Qy9hQiUyM128pbH0sxNNbxE(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Landroid/os/Handler;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$AtsdeBa8co53jl7kYt8ysrzmEo8(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/internal/pm/parsing/PackageParser2;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$JCnmoBuRlexuCDDmhAlJO4FAjhg(ILandroid/util/ArrayMap;Ljava/util/Set;ILandroid/util/ArrayMap;Lcom/android/server/pm/pkg/mutate/PackageStateMutator;)V
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$LT765XNHeztBOay7rENBSJ4FpQo(Lcom/android/server/pm/verify/domain/DomainVerificationService;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/Settings;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$Ob4Lx_QzpY-udQ1-YTziQadgFcc(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Landroid/os/Bundle;[ILandroid/util/SparseArray;)V
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$OdKicpQs5x3SrKKW4-UnxBv2k4k(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/dex/ArtManagerService;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$P8SY61CGf4lgD7vmEgc6OJo18Jc(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/UserManagerService;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$RJDxvoMUIzns2AakZT-srNoyjqA(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/BackgroundDexOptService;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$SVfaWm0ftYEb_i0fK608nQic6a8(ILjava/util/function/Consumer;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$Sj0TiBD2qrAz-kSBJZjvN19KwM8(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$Ss9DVkISkXku8V-CYhxH_GTx3uk(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/compat/PlatformCompat;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$WTjLzvsZwKnygY1dXmiEXrU4wns(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Landroid/os/incremental/IncrementalManager;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$XIxgBW0a_Dim0prfYI26N63QYA8(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/LegacyPermissionManagerInternal;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$XK0jyd8NWE8sX2dLVxJDSWyX-fc(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/resolution/ComponentResolver;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$bP6O2EM4vQjnURNcnMI3AEd8jvE(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ApexManager;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$biXVbknQI0VSnqBwrsRYdId7lOg(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Landroid/util/DisplayMetrics;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$cgf9HzQDpIYBAM1FfODw1LJfeaA(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/SharedLibrariesImpl;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$f76IiBvzWjWrK7cEm3Fwh4D5vPI(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageDexOptimizer;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$g8phPHwnEQKwNibO76kbTV-ernk(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/UpdateOwnershipHelper;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$gIhdWIFiJVJIMETTUG8yHCSxQyU(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/dex/DexManager;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$gt9gWkZ6s9W-_z9hX2383OetJQg(Lcom/android/server/pm/verify/domain/DomainVerificationService;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$hV-hx61rt_I-GSVq2c9QBKlQU-A(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppsFilterImpl;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$jI7_wgzMOIg2_ALwQh3N7aqxwk0(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageMonitorCallbackHelper;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$kLempGNYbwTngE5VfwmJi2ujEMA(Lcom/android/server/pm/PackageManagerService;[ILcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$lrT8YtmB66bCdNFFrQigcIEKlkk(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageInstallerService;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$o-iKpv5pW-KnOFqF1r6GTvXljZ0(IZZLcom/android/server/pm/pkg/mutate/PackageStateWrite;)V
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$peRMMEdjCdKA187FsiE-4lz5Nvw(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/dex/DynamicCodeLogger;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$x-LxCO1xlxJ6o3haCm6qjxrkCF4(Lcom/android/server/pm/PackageManagerService;Z)V
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$xeK55D47HzV-aDVTdJQUUfbLB-s(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
-PLcom/android/server/pm/PackageManagerService;->$r8$lambda$ycLid5CfrcIKxha4GPTBH7u22Kc(I)[Ljava/lang/Integer;
-HSPLcom/android/server/pm/PackageManagerService;->$r8$lambda$yd0vfnhyLdiG7JVKGsIrzU91iec(Landroid/content/Context;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmAndroidApplication(Lcom/android/server/pm/PackageManagerService;)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmAppDataHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppDataHelper;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmAvailableFeatures(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmBroadcastHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/BroadcastHelper;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmDefaultAppProvider(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/DefaultAppProvider;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmDexOptHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/DexOptHelper;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmDomainVerificationConnection(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/DomainVerificationConnection;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmFrozenPackagesSnapshot(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/utils/SnapshotCache;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmInstantAppInstallerInfo(Lcom/android/server/pm/PackageManagerService;)Landroid/content/pm/ResolveInfo;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmInstrumentation(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/utils/WatchedArrayMap;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmInstrumentationSnapshot(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/utils/SnapshotCache;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmIsolatedOwnersSnapshot(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/utils/SnapshotCache;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmModuleInfoProvider(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmPackageMonitorCallbackHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageMonitorCallbackHelper;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmPackageObserverHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageObserverHelper;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmPackageProperty(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageProperty;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmPackagesSnapshot(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/utils/SnapshotCache;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmPlatformPackage(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/pkg/AndroidPackage;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmPreferredActivityHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PreferredActivityHelper;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmResolveActivity(Lcom/android/server/pm/PackageManagerService;)Landroid/content/pm/ActivityInfo;
-HPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmResolveIntentHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ResolveIntentHelper;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmSharedLibraries(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/SharedLibrariesImpl;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmSnapshotStatistics(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/SnapshotStatistics;
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmStorageEventHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/StorageEventHelper;
-HPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmSuspendPackageHelper(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/SuspendPackageHelper;
-HSPLcom/android/server/pm/PackageManagerService;->-$$Nest$fgetmWebInstantAppsDisabled(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/utils/WatchedSparseBooleanArray;
 HPLcom/android/server/pm/PackageManagerService;->-$$Nest$mnotifyPackageUseInternal(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService;->-$$Nest$msetEnabledOverlayPackages(Lcom/android/server/pm/PackageManagerService;ILandroid/util/ArrayMap;Ljava/util/Set;Ljava/util/Set;)V
-HPLcom/android/server/pm/PackageManagerService;->-$$Nest$msetEnabledSettings(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;ILjava/lang/String;)V
+HPLcom/android/server/pm/PackageManagerService;->-$$Nest$msetEnabledSettings(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;ILjava/lang/String;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/ImmutableCollections$List12;
 HSPLcom/android/server/pm/PackageManagerService;-><clinit>()V
 HSPLcom/android/server/pm/PackageManagerService;-><init>(Lcom/android/server/pm/PackageManagerServiceInjector;ZLjava/lang/String;ZZILjava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerService;->addAllPackageProperties(Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/PackageManagerService;->addInstrumentation(Landroid/content/ComponentName;Lcom/android/internal/pm/pkg/component/ParsedInstrumentation;)V
+HSPLcom/android/server/pm/PackageManagerService;->addAllPackageProperties(Lcom/android/server/pm/pkg/AndroidPackage;)V
 PLcom/android/server/pm/PackageManagerService;->applyUpdatedSystemOverlayPaths()V
-HSPLcom/android/server/pm/PackageManagerService;->boostPriorityForPackageManagerTracedLockedSection()V
-PLcom/android/server/pm/PackageManagerService;->canSetOverlayPaths(Landroid/content/pm/overlay/OverlayPaths;Landroid/content/pm/overlay/OverlayPaths;)Z
-HPLcom/android/server/pm/PackageManagerService;->checkPackageStartable(Lcom/android/server/pm/Computer;Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
 PLcom/android/server/pm/PackageManagerService;->commitPackageStateMutation(Lcom/android/server/pm/pkg/mutate/PackageStateMutator$InitialState;Ljava/lang/String;Ljava/util/function/Consumer;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$Result;
-PLcom/android/server/pm/PackageManagerService;->commitPackageStateMutation(Lcom/android/server/pm/pkg/mutate/PackageStateMutator$InitialState;Ljava/util/function/Consumer;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$Result;
-HSPLcom/android/server/pm/PackageManagerService;->createLiveComputer()Lcom/android/server/pm/ComputerLocked;
-PLcom/android/server/pm/PackageManagerService;->disableSkuSpecificApps()V
+PLcom/android/server/pm/PackageManagerService;->commitPackageStateMutation(Ljava/util/function/Consumer;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$Result;
+PLcom/android/server/pm/PackageManagerService;->decodeCertificates(Ljava/util/List;)[Ljava/security/cert/Certificate;
 PLcom/android/server/pm/PackageManagerService;->ensureSystemPackageName(Lcom/android/server/pm/Computer;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->forEachInstalledPackage(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;I)V
-HPLcom/android/server/pm/PackageManagerService;->forEachPackage(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;)V
-HPLcom/android/server/pm/PackageManagerService;->forEachPackageState(Landroid/util/ArrayMap;Ljava/util/function/Consumer;)V
+PLcom/android/server/pm/PackageManagerService;->extrasForInstallResult(Lcom/android/server/pm/InstallRequest;)Landroid/os/Bundle;
+PLcom/android/server/pm/PackageManagerService;->flushPackageRestrictionsAsUserInternalLocked(I)V
 PLcom/android/server/pm/PackageManagerService;->forEachPackageState(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;)V
-PLcom/android/server/pm/PackageManagerService;->getAppInstallDir()Ljava/io/File;
-PLcom/android/server/pm/PackageManagerService;->getCoreAndroidApplication()Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/pm/PackageManagerService;->freeStorage(ILjava/lang/String;J)V
+PLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;ILjava/lang/String;ILcom/android/server/pm/InstallRequest;)Lcom/android/server/pm/PackageFreezer;
 PLcom/android/server/pm/PackageManagerService;->getDefParseFlags()I
-HSPLcom/android/server/pm/PackageManagerService;->getDefaultAppProvider()Lcom/android/server/pm/DefaultAppProvider;
-PLcom/android/server/pm/PackageManagerService;->getDefaultTimeouts()Ljava/lang/String;
-HSPLcom/android/server/pm/PackageManagerService;->getDexManager()Lcom/android/server/pm/dex/DexManager;
-PLcom/android/server/pm/PackageManagerService;->getDexOptHelper()Lcom/android/server/pm/DexOptHelper;
-PLcom/android/server/pm/PackageManagerService;->getDomainVerificationAgentComponentNameLPr(Lcom/android/server/pm/Computer;)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getInstantAppInstallerLPr()Landroid/content/pm/ActivityInfo;
+PLcom/android/server/pm/PackageManagerService;->getDomainVerificationAgentComponentNameLPr(Lcom/android/server/pm/ComputerLocked;)Landroid/content/ComponentName;
 PLcom/android/server/pm/PackageManagerService;->getInstantAppResolver(Lcom/android/server/pm/Computer;)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getInstantAppResolverSettingsLPr(Lcom/android/server/pm/Computer;Landroid/content/ComponentName;)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getIntentFilterVerifierComponentNameLPr(Lcom/android/server/pm/Computer;)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getKnownDigestersList()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getInstantAppResolverSettingsLPr(Lcom/android/server/pm/ComputerLocked;Landroid/content/ComponentName;)Landroid/content/ComponentName;
+PLcom/android/server/pm/PackageManagerService;->getIntentFilterVerifierComponentNameLPr(Lcom/android/server/pm/ComputerLocked;)Landroid/content/ComponentName;
 HSPLcom/android/server/pm/PackageManagerService;->getKnownPackageNamesInternal(Lcom/android/server/pm/Computer;II)[Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService;->getPackageFromComponentString(I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getPackageSettingForMutation(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 PLcom/android/server/pm/PackageManagerService;->getPerUidReadTimeouts(Lcom/android/server/pm/Computer;)[Landroid/os/incremental/PerUidReadTimeouts;
-HPLcom/android/server/pm/PackageManagerService;->getPlatformPackage()Lcom/android/server/pm/pkg/AndroidPackage;
-PLcom/android/server/pm/PackageManagerService;->getRequiredButNotReallyRequiredVerifiersLPr(Lcom/android/server/pm/Computer;)[Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredInstallerLPr(Lcom/android/server/pm/Computer;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredPermissionControllerLPr(Lcom/android/server/pm/Computer;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredSdkSandboxPackageName(Lcom/android/server/pm/Computer;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredServicesExtensionPackageLPr(Lcom/android/server/pm/Computer;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredSharedLibrary(Lcom/android/server/pm/Computer;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredUninstallerLPr(Lcom/android/server/pm/Computer;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredButNotReallyRequiredVerifiersLPr(Lcom/android/server/pm/ComputerLocked;)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredInstallerLPr(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredPermissionControllerLPr(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredSdkSandboxPackageName(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredServicesExtensionPackageLPr(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredSharedLibrary(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRequiredUninstallerLPr(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService;->getRetailDemoPackageName()Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getSafeMode()Z
-PLcom/android/server/pm/PackageManagerService;->getSdkSandboxPackageName()Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getSdkVersion()I
-HPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Lcom/android/server/pm/pkg/AndroidPackage;)Lcom/android/server/pm/Settings$VersionInfo;
-PLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageNameImpl(Lcom/android/server/pm/Computer;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getStorageManagerPackageName(Lcom/android/server/pm/Computer;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getSystemPackageScanFlags(Ljava/io/File;)I
-HPLcom/android/server/pm/PackageManagerService;->grantImplicitAccess(Lcom/android/server/pm/Computer;ILandroid/content/Intent;IIZZ)V
+HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Lcom/android/server/pm/pkg/AndroidPackage;)Lcom/android/server/pm/Settings$VersionInfo;
+PLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageNameImpl(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getStorageManagerPackageName(Lcom/android/server/pm/ComputerLocked;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getSystemPackageScanFlags(Ljava/io/File;)I
+HPLcom/android/server/pm/PackageManagerService;->grantImplicitAccess(Lcom/android/server/pm/Computer;ILandroid/content/Intent;IIZZ)V+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/PackageManagerService;->handlePackagePostInstall(Lcom/android/server/pm/InstallRequest;Z)V
 HPLcom/android/server/pm/PackageManagerService;->hasSystemFeature(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService;->installAllowlistedSystemPackages()V
 HSPLcom/android/server/pm/PackageManagerService;->invalidatePackageInfoCache()V
-HPLcom/android/server/pm/PackageManagerService;->isDeviceUpgrading()Z
-PLcom/android/server/pm/PackageManagerService;->isExpectingBetter(Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerService;->isFirstBoot()Z
-HPLcom/android/server/pm/PackageManagerService;->isPreNMR1Upgrade()Z
-HPLcom/android/server/pm/PackageManagerService;->lambda$forEachInstalledPackage$60(ILjava/util/function/Consumer;Lcom/android/server/pm/pkg/PackageStateInternal;)V
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$12(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/resolution/ComponentResolver;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$13(Landroid/content/Context;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$14(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/UserManagerService;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$15(Lcom/android/server/pm/verify/domain/DomainVerificationService;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/Settings;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$16(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppsFilterImpl;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$17(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/compat/PlatformCompat;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$18(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/SystemConfig;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$19(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageDexOptimizer;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$20(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/dex/DexManager;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$21(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/dex/DynamicCodeLogger;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$22(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/dex/ArtManagerService;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$23(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ApexManager;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$24(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Landroid/os/incremental/IncrementalManager;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$27(Landroid/content/Context;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/DefaultAppProvider;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$28(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Landroid/util/DisplayMetrics;
-PLcom/android/server/pm/PackageManagerService;->lambda$main$29(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/internal/pm/parsing/PackageParser2;
-PLcom/android/server/pm/PackageManagerService;->lambda$main$32(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageInstallerService;
-PLcom/android/server/pm/PackageManagerService;->lambda$main$33(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;Landroid/content/ComponentName;)Lcom/android/server/pm/InstantAppResolverConnection;
-PLcom/android/server/pm/PackageManagerService;->lambda$main$34(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$35(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/LegacyPermissionManagerInternal;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$36(Lcom/android/server/pm/verify/domain/DomainVerificationService;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$37(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Landroid/os/Handler;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$38(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/BackgroundDexOptService;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$40(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/SharedLibrariesImpl;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$42(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/UpdateOwnershipHelper;
-HSPLcom/android/server/pm/PackageManagerService;->lambda$main$43(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageMonitorCallbackHelper;
-PLcom/android/server/pm/PackageManagerService;->lambda$new$48([ILcom/android/server/pm/pkg/PackageStateInternal;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$setEnabledOverlayPackages$59(ILandroid/util/ArrayMap;Ljava/util/Set;ILandroid/util/ArrayMap;Lcom/android/server/pm/pkg/mutate/PackageStateMutator;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$setPackageStoppedState$56(IZZLcom/android/server/pm/pkg/mutate/PackageStateWrite;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$setPackageStoppedState$57(Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService;->lambda$setPackageStoppedState$58(Ljava/lang/String;Landroid/os/Bundle;[ILandroid/util/SparseArray;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$tryWriteSettings$10(Z)V
-PLcom/android/server/pm/PackageManagerService;->lambda$writePendingRestrictions$9(I)[Ljava/lang/Integer;
+HSPLcom/android/server/pm/PackageManagerService;->isDeviceUpgrading()Z
+PLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(ILjava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerService;->isUserRestricted(ILjava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->main(Landroid/content/Context;Lcom/android/server/pm/Installer;Lcom/android/server/pm/verify/domain/DomainVerificationService;Z)Lcom/android/server/pm/PackageManagerService;
-PLcom/android/server/pm/PackageManagerService;->maybeUpdateSystemOverlays(Ljava/lang/String;Landroid/content/pm/overlay/OverlayPaths;)V
-HPLcom/android/server/pm/PackageManagerService;->notifyComponentUsed(Lcom/android/server/pm/Computer;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerService;->notifyPackageUseInternal(Ljava/lang/String;I)V
-HSPLcom/android/server/pm/PackageManagerService;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/PackageManagerService;->onChanged()V
-PLcom/android/server/pm/PackageManagerService;->parsePerUidReadTimeouts(Lcom/android/server/pm/Computer;)[Landroid/os/incremental/PerUidReadTimeouts;
+PLcom/android/server/pm/PackageManagerService;->notifyInstallObserver(Lcom/android/server/pm/InstallRequest;)V
+PLcom/android/server/pm/PackageManagerService;->notifyInstallObserver(Ljava/lang/String;Z)V
+PLcom/android/server/pm/PackageManagerService;->notifyPackageChanged(ILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->onChange()V
 PLcom/android/server/pm/PackageManagerService;->performFstrimIfNeeded()V
-HSPLcom/android/server/pm/PackageManagerService;->rebuildSnapshot(Lcom/android/server/pm/Computer;I)Lcom/android/server/pm/Computer;
-HSPLcom/android/server/pm/PackageManagerService;->registerObservers(Z)V
-PLcom/android/server/pm/PackageManagerService;->reportSettingsProblem(ILjava/lang/String;)V
-HSPLcom/android/server/pm/PackageManagerService;->resetPriorityAfterPackageManagerTracedLockedSection()V
+HSPLcom/android/server/pm/PackageManagerService;->rebuildSnapshot(Lcom/android/server/pm/Computer;I)Lcom/android/server/pm/ComputerEngine;
+PLcom/android/server/pm/PackageManagerService;->recordInitialState()Lcom/android/server/pm/pkg/mutate/PackageStateMutator$InitialState;
+HSPLcom/android/server/pm/PackageManagerService;->registerObservers()V
+PLcom/android/server/pm/PackageManagerService;->requestChecksumsInternal(Lcom/android/server/pm/Computer;Ljava/lang/String;ZIILjava/util/List;Landroid/content/pm/IOnChecksumsReadyListener;ILjava/util/concurrent/Executor;Landroid/os/Handler;)V
 PLcom/android/server/pm/PackageManagerService;->resolveUserIds(I)[I
+PLcom/android/server/pm/PackageManagerService;->restorePermissionsAndUpdateRolesForNewUserInstall(ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->schedulePruneUnusedStaticSharedLibraries(Z)V
 PLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictions(I)V
 HSPLcom/android/server/pm/PackageManagerService;->scheduleWriteSettings()V
-HPLcom/android/server/pm/PackageManagerService;->setEnabledOverlayPackages(ILandroid/util/ArrayMap;Ljava/util/Set;Ljava/util/Set;)V
 HPLcom/android/server/pm/PackageManagerService;->setEnabledSettingInternalLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageManager$ComponentEnabledSetting;ILjava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService;->setEnabledSettings(Ljava/util/List;ILjava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerService;->setPackageStoppedState(Lcom/android/server/pm/Computer;Ljava/lang/String;ZI)V
-PLcom/android/server/pm/PackageManagerService;->setPlatformPackage(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/PackageManagerService;->setUpCustomResolverActivity(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/PackageManagerService;->setUpInstantAppInstallerActivityLP(Landroid/content/pm/ActivityInfo;)V
+HPLcom/android/server/pm/PackageManagerService;->setPackageStoppedState(ILcom/android/server/pm/Computer;Ljava/lang/String;Z)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
 HSPLcom/android/server/pm/PackageManagerService;->snapshotComputer()Lcom/android/server/pm/Computer;
-HSPLcom/android/server/pm/PackageManagerService;->snapshotComputer(Z)Lcom/android/server/pm/Computer;
-HPLcom/android/server/pm/PackageManagerService;->systemReady()V
-PLcom/android/server/pm/PackageManagerService;->tryUnderLock(ZJLjava/lang/Runnable;)Z
-PLcom/android/server/pm/PackageManagerService;->tryWriteSettings(Z)Z
-PLcom/android/server/pm/PackageManagerService;->updateInstantAppInstallerLocked(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->snapshotComputer(Z)Lcom/android/server/pm/Computer;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;
+PLcom/android/server/pm/PackageManagerService;->systemReady()V
+HPLcom/android/server/pm/PackageManagerService;->updateInstantAppInstallerLocked(Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->updatePackagesIfNeeded()V
-PLcom/android/server/pm/PackageManagerService;->waitForAppDataPrepared()V
-PLcom/android/server/pm/PackageManagerService;->writePendingRestrictions()V
+PLcom/android/server/pm/PackageManagerService;->updateSequenceNumberLP(Lcom/android/server/pm/PackageSetting;[I)V
+PLcom/android/server/pm/PackageManagerService;->verifyReplacingVersionCode(Landroid/content/pm/PackageInfoLite;JI)Landroid/util/Pair;
+PLcom/android/server/pm/PackageManagerService;->writeSettings(Z)V
 PLcom/android/server/pm/PackageManagerService;->writeSettingsLPrTEMP()V
 PLcom/android/server/pm/PackageManagerService;->writeSettingsLPrTEMP(Z)V
 HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;-><clinit>()V
-HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->checkProperties()V
 HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->getAndCheckValidity(I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->getSystemPropertyName(I)Ljava/lang/String;
-HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->isFilterAllowedForReason(ILjava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerServiceInjector$Singleton;-><init>(Lcom/android/server/pm/PackageManagerServiceInjector$Producer;)V
-HSPLcom/android/server/pm/PackageManagerServiceInjector$Singleton;->get(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/PackageAbiHelper;Landroid/os/Handler;Ljava/util/List;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$ProducerWithArgument;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$SystemWrapper;Lcom/android/server/pm/PackageManagerServiceInjector$ServiceProducer;Lcom/android/server/pm/PackageManagerServiceInjector$ServiceProducer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerServiceInjector$Producer;)V
+HSPLcom/android/server/pm/PackageManagerServiceInjector$Singleton;->get(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)Ljava/lang/Object;+]Lcom/android/server/pm/PackageManagerServiceInjector$Producer;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;
+HSPLcom/android/server/pm/PackageManagerServiceInjector;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/Installer;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageAbiHelperImpl;Landroid/os/Handler;Ljava/util/List;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda28;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda31;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda21;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$DefaultSystemWrapper;Lcom/android/server/autofill/AutofillManagerService$1$$ExternalSyntheticLambda0;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda17;)V
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->bootstrap(Lcom/android/server/pm/PackageManagerService;)V
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getAbiHelper()Lcom/android/server/pm/PackageAbiHelper;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getApexManager()Lcom/android/server/pm/ApexManager;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getAppsFilter()Lcom/android/server/pm/AppsFilterImpl;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getArtManagerService()Lcom/android/server/pm/dex/ArtManagerService;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getBackgroundDexOptService()Lcom/android/server/pm/BackgroundDexOptService;
-PLcom/android/server/pm/PackageManagerServiceInjector;->getBackgroundExecutor()Ljava/util/concurrent/Executor;
+PLcom/android/server/pm/PackageManagerServiceInjector;->getAbiHelper()Lcom/android/server/pm/PackageAbiHelper;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getBackgroundHandler()Landroid/os/Handler;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getCompatibility()Lcom/android/server/compat/PlatformCompat;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getComponentResolver()Lcom/android/server/pm/resolution/ComponentResolver;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getContext()Landroid/content/Context;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getDefaultAppProvider()Lcom/android/server/pm/DefaultAppProvider;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getDexManager()Lcom/android/server/pm/dex/DexManager;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getDisplayMetrics()Landroid/util/DisplayMetrics;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getDomainVerificationManagerInternal()Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getDynamicCodeLogger()Lcom/android/server/pm/dex/DynamicCodeLogger;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getHandler()Landroid/os/Handler;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getIncrementalManager()Landroid/os/incremental/IncrementalManager;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getInstallLock()Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerServiceInjector;->getInstallLock()Lcom/android/server/pm/PackageManagerTracedLock;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getInstaller()Lcom/android/server/pm/Installer;
 PLcom/android/server/pm/PackageManagerServiceInjector;->getInstantAppResolverConnection(Landroid/content/ComponentName;)Lcom/android/server/pm/InstantAppResolverConnection;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getLegacyPermissionManagerInternal()Lcom/android/server/pm/permission/LegacyPermissionManagerInternal;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getLocalService(Ljava/lang/Class;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerServiceInjector;->getLegacyPermissionManagerInternal()Lcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getLock()Lcom/android/server/pm/PackageManagerTracedLock;
 PLcom/android/server/pm/PackageManagerServiceInjector;->getModuleInfoProvider()Lcom/android/server/pm/ModuleInfoProvider;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getPackageDexOptimizer()Lcom/android/server/pm/PackageDexOptimizer;
-PLcom/android/server/pm/PackageManagerServiceInjector;->getPackageInstallerService()Lcom/android/server/pm/PackageInstallerService;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getPackageMonitorCallbackHelper()Lcom/android/server/pm/PackageMonitorCallbackHelper;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getPermissionManagerServiceInternal()Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-PLcom/android/server/pm/PackageManagerServiceInjector;->getScanningCachingPackageParser()Lcom/android/internal/pm/parsing/PackageParser2;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getSettings()Lcom/android/server/pm/Settings;
+PLcom/android/server/pm/PackageManagerServiceInjector;->getPreparingPackageParser()Lcom/android/internal/pm/parsing/PackageParser2;
+HSPLcom/android/server/pm/PackageManagerServiceInjector;->getScanningCachingPackageParser()Lcom/android/internal/pm/parsing/PackageParser2;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getSharedLibrariesImpl()Lcom/android/server/pm/SharedLibrariesImpl;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getSystemConfig()Lcom/android/server/SystemConfig;
-PLcom/android/server/pm/PackageManagerServiceInjector;->getSystemPartitions()Ljava/util/List;
-PLcom/android/server/pm/PackageManagerServiceInjector;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getSystemWrapper()Lcom/android/server/pm/PackageManagerServiceInjector$SystemWrapper;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getUpdateOwnershipHelper()Lcom/android/server/pm/UpdateOwnershipHelper;
-HSPLcom/android/server/pm/PackageManagerServiceInjector;->getUserManagerInternal()Lcom/android/server/pm/UserManagerInternal;
+HSPLcom/android/server/pm/PackageManagerServiceInjector;->getSystemPartitions()Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerServiceInjector;->getUserManagerService()Lcom/android/server/pm/UserManagerService;
-HSPLcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda1;-><init>()V
-HSPLcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-PLcom/android/server/pm/PackageManagerServiceUtils;->$r8$lambda$mxnDkt23XLV3hc1smQVQ_dWQlso()Ljava/lang/Boolean;
+HSPLcom/android/server/pm/PackageManagerServiceUtils$$ExternalSyntheticLambda0;-><init>(I)V
 HSPLcom/android/server/pm/PackageManagerServiceUtils;-><clinit>()V
-HPLcom/android/server/pm/PackageManagerServiceUtils;->applyEnforceIntentFilterMatching(Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/resolution/ComponentResolverApi;Ljava/util/List;ZLandroid/content/Intent;Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerServiceUtils;->arrayToString([I)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerServiceUtils;->canJoinSharedUserId(Ljava/lang/String;Landroid/content/pm/SigningDetails;Lcom/android/server/pm/SharedUserSetting;I)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->canJoinSharedUserId(Ljava/lang/String;Landroid/content/pm/SigningDetails;Lcom/android/server/pm/SharedUserSetting;I)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->checkDowngrade(JI[Ljava/lang/String;[ILandroid/content/pm/PackageInfoLite;)V
 PLcom/android/server/pm/PackageManagerServiceUtils;->comparePackageSignatures(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/SigningDetails;)Z
-HPLcom/android/server/pm/PackageManagerServiceUtils;->compareSignatureArrays([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
-HPLcom/android/server/pm/PackageManagerServiceUtils;->compareSignatures(Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;)I
-HPLcom/android/server/pm/PackageManagerServiceUtils;->compressedFileExists(Ljava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerServiceUtils;->deriveAbiOverride(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerServiceUtils;->enforceShellRestriction(Lcom/android/server/pm/UserManagerInternal;Ljava/lang/String;II)V
-PLcom/android/server/pm/PackageManagerServiceUtils;->enforceSystemOrPhoneCaller(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerServiceUtils;->compareSignatureArrays([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
+PLcom/android/server/pm/PackageManagerServiceUtils;->dumpCriticalInfo(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerServiceUtils;->enforceShellRestriction(Lcom/android/server/pm/UserManagerService$LocalService;II)V
+PLcom/android/server/pm/PackageManagerServiceUtils;->enforceSystemOrPhoneCaller(ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerServiceUtils;->enforceSystemOrRoot(Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerServiceUtils;->getCompressedFiles(Ljava/lang/String;)[Ljava/io/File;
-HPLcom/android/server/pm/PackageManagerServiceUtils;->getLastModifiedTime(Lcom/android/server/pm/pkg/AndroidPackage;)J
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->getCompressedFiles(Ljava/lang/String;)[Ljava/io/File;
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->getLastModifiedTime(Lcom/android/server/pm/pkg/AndroidPackage;)J
+PLcom/android/server/pm/PackageManagerServiceUtils;->getMinimalPackageInfo(Landroid/content/Context;Landroid/content/pm/parsing/PackageLite;Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PackageInfoLite;
+PLcom/android/server/pm/PackageManagerServiceUtils;->getNextCodePath(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 PLcom/android/server/pm/PackageManagerServiceUtils;->getPackageManagerLocal()Lcom/android/server/pm/PackageManagerLocal;
 PLcom/android/server/pm/PackageManagerServiceUtils;->getSettingsProblemFile()Ljava/io/File;
-HPLcom/android/server/pm/PackageManagerServiceUtils;->isSystemOrRoot()Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->isDowngradePermitted(IZ)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->isInstalledByAdb(Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->isRootOrShell(I)Z
 PLcom/android/server/pm/PackageManagerServiceUtils;->isSystemOrRoot(I)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->isSystemOrRootOrShell(I)Z
-PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$static$2()Ljava/lang/Boolean;
-PLcom/android/server/pm/PackageManagerServiceUtils;->logCriticalInfo(ILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerServiceUtils;->preparePackageParserCache(ZZLjava/lang/String;)Ljava/io/File;
-HPLcom/android/server/pm/PackageManagerServiceUtils;->verifySignatures(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/SigningDetails;ZZZ)Z
-PLcom/android/server/pm/PackageManagerShellCommand$$ExternalSyntheticLambda1;-><init>()V
-HPLcom/android/server/pm/PackageManagerShellCommand$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/PackageManagerShellCommand;->$r8$lambda$SBUnEmlcik68djMk5muLDWebS_E(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerServiceUtils;->makeDirRecursive(Ljava/io/File;I)V
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->preparePackageParserCache(Ljava/lang/String;ZZ)Ljava/io/File;
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->verifySignatures(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/SigningDetails;ZZZ)Z
+PLcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver$1;-><init>(Lcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver;)V
+PLcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver$1;->send(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver;-><init>()V
+PLcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver;->getIntentSender()Landroid/content/IntentSender;
+PLcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver;->getResult()Landroid/content/Intent;
 PLcom/android/server/pm/PackageManagerShellCommand;-><clinit>()V
-HPLcom/android/server/pm/PackageManagerShellCommand;-><init>(Landroid/content/pm/IPackageManager;Landroid/content/Context;Lcom/android/server/pm/verify/domain/DomainVerificationShell;)V
-PLcom/android/server/pm/PackageManagerShellCommand;->displayPackageFilePath(Ljava/lang/String;I)I
-HPLcom/android/server/pm/PackageManagerShellCommand;->lambda$runListPackages$1(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerShellCommand;-><init>(Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;Landroid/content/Context;Lcom/android/server/pm/verify/domain/DomainVerificationShell;)V
+PLcom/android/server/pm/PackageManagerShellCommand;->doCommitSession(I)I
+PLcom/android/server/pm/PackageManagerShellCommand;->doCreateSession(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageManagerShellCommand;->doRunInstall(Lcom/android/server/pm/PackageManagerShellCommand$InstallParams;)I
+PLcom/android/server/pm/PackageManagerShellCommand;->doWriteSplit(ILjava/lang/String;JLjava/lang/String;Z)I
+PLcom/android/server/pm/PackageManagerShellCommand;->getRemainingArgs()Ljava/util/ArrayList;
+PLcom/android/server/pm/PackageManagerShellCommand;->makeInstallParams(Ljava/util/Set;)Lcom/android/server/pm/PackageManagerShellCommand$InstallParams;
 PLcom/android/server/pm/PackageManagerShellCommand;->onCommand(Ljava/lang/String;)I
-HPLcom/android/server/pm/PackageManagerShellCommand;->runGrantRevokePermission(Z)I
-PLcom/android/server/pm/PackageManagerShellCommand;->runList()I
-PLcom/android/server/pm/PackageManagerShellCommand;->runListPackages(Z)I
-HPLcom/android/server/pm/PackageManagerShellCommand;->runListPackages(ZZ)I
-PLcom/android/server/pm/PackageManagerShellCommand;->runPath()I
+PLcom/android/server/pm/PackageManagerShellCommand;->openInFile(JLjava/lang/String;)Landroid/util/Pair;
+PLcom/android/server/pm/PackageManagerShellCommand;->runArtServiceCommand()I
+PLcom/android/server/pm/PackageManagerShellCommand;->runInstall()I
 PLcom/android/server/pm/PackageManagerShellCommand;->translateUserId(IILjava/lang/String;)I
+HSPLcom/android/server/pm/PackageManagerTracedLock$RawLock;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerTracedLock;-><init>()V
-PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/PackageMonitorCallbackHelper;Landroid/os/RemoteCallbackList;I[ILandroid/content/Intent;Ljava/util/function/BiFunction;)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/PackageMonitorCallbackHelper;I[ILandroid/content/Intent;Ljava/util/function/BiFunction;)V
-HPLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-HPLcom/android/server/pm/PackageMonitorCallbackHelper$RegisterUser;-><init>(Lcom/android/server/pm/PackageMonitorCallbackHelper;II)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper$RegisterUser;->getUid()I
-PLcom/android/server/pm/PackageMonitorCallbackHelper$RegisterUser;->getUserId()I
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->$r8$lambda$dmkKmZn9cGbMJXri8hyHR8QP-n4(Lcom/android/server/pm/PackageMonitorCallbackHelper;I[ILandroid/content/Intent;Ljava/util/function/BiFunction;Landroid/os/IRemoteCallback;Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->$r8$lambda$sc6g1dLrUYtbyMa4_swsXTtzJPE(Lcom/android/server/pm/PackageMonitorCallbackHelper;Landroid/os/RemoteCallbackList;I[ILandroid/content/Intent;Ljava/util/function/BiFunction;)V
+HSPLcom/android/server/pm/PackageManagerTracedLock;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerTracedLock;->acquireLock()V
+PLcom/android/server/pm/PackageManagerTracedLock;->close()V
+PLcom/android/server/pm/PackageMetrics$1;-><init>(Ljava/io/File;Ljava/util/concurrent/atomic/AtomicLong;)V
+PLcom/android/server/pm/PackageMetrics$1;->preVisitDirectory(Ljava/lang/Object;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/FileVisitResult;
+PLcom/android/server/pm/PackageMetrics$1;->visitFile(Ljava/lang/Object;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/FileVisitResult;
+PLcom/android/server/pm/PackageMetrics$InstallStep;-><init>()V
+PLcom/android/server/pm/PackageMetrics$InstallStep;-><init>(J)V
+PLcom/android/server/pm/PackageMetrics;-><init>(Lcom/android/server/pm/InstallRequest;)V
+PLcom/android/server/pm/PackageMetrics;->onStepFinished(I)V
+PLcom/android/server/pm/PackageMetrics;->onStepStarted(I)V
+PLcom/android/server/pm/PackageMetrics;->reportInstallationStats(Z)V
+PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/PackageMonitorCallbackHelper;Landroid/os/RemoteCallbackList;I[ILandroid/content/Intent;Lcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda6;)V
+PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/PackageMonitorCallbackHelper;I[ILandroid/content/Intent;Lcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda6;)V
+PLcom/android/server/pm/PackageMonitorCallbackHelper$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/PackageMonitorCallbackHelper;-><init>()V
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->doNotifyCallbacks(Landroid/os/RemoteCallbackList;Landroid/content/Intent;I[ILandroid/os/Handler;Ljava/util/function/BiFunction;)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->doNotifyCallbacksByAction(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;[ILandroid/util/SparseArray;Landroid/os/Handler;Ljava/util/function/BiFunction;)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->invokeCallback(Landroid/os/IRemoteCallback;Landroid/content/Intent;)V
+PLcom/android/server/pm/PackageMonitorCallbackHelper;->doNotifyCallbacksByAction(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;[ILandroid/util/SparseArray;Landroid/os/Handler;Lcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda6;)V
 PLcom/android/server/pm/PackageMonitorCallbackHelper;->isAllowedCallbackAction(Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->lambda$doNotifyCallbacks$0(I[ILandroid/content/Intent;Ljava/util/function/BiFunction;Landroid/os/IRemoteCallback;Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->lambda$doNotifyCallbacks$1(Landroid/os/RemoteCallbackList;I[ILandroid/content/Intent;Ljava/util/function/BiFunction;)V
-PLcom/android/server/pm/PackageMonitorCallbackHelper;->notifyPackageMonitor(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;[I[ILandroid/util/SparseArray;Landroid/os/Handler;Ljava/util/function/BiFunction;)V
-HPLcom/android/server/pm/PackageMonitorCallbackHelper;->registerPackageMonitorCallback(Landroid/os/IRemoteCallback;II)V
+PLcom/android/server/pm/PackageMonitorCallbackHelper;->notifyPackageMonitor(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;[I[ILandroid/util/SparseArray;Landroid/os/Handler;Lcom/android/server/pm/BroadcastHelper$$ExternalSyntheticLambda6;)V
 HSPLcom/android/server/pm/PackageObserverHelper;-><init>()V
-PLcom/android/server/pm/PackageObserverHelper;->addObserver(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)V
 HSPLcom/android/server/pm/PackageProperty;-><init>()V
-HPLcom/android/server/pm/PackageProperty;->addAllProperties(Lcom/android/server/pm/pkg/AndroidPackage;)V
-HPLcom/android/server/pm/PackageProperty;->addComponentProperties(Ljava/util/List;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
-HPLcom/android/server/pm/PackageProperty;->addProperties(Ljava/util/Map;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
-HPLcom/android/server/pm/PackageProperty;->getApplicationProperty(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/PackageManager$Property;
-PLcom/android/server/pm/PackageProperty;->getComponentProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/PackageManager$Property;
-PLcom/android/server/pm/PackageProperty;->getProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/PackageManager$Property;
+HSPLcom/android/server/pm/PackageProperty;->addComponentProperties(Ljava/util/List;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/PackageProperty;->addProperties(Ljava/util/Map;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
 PLcom/android/server/pm/PackageProperty;->getProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArrayMap;)Landroid/content/pm/PackageManager$Property;
-PLcom/android/server/pm/PackageProperty;->queryProperty(Ljava/lang/String;ILjava/util/function/Predicate;)Ljava/util/List;
-PLcom/android/server/pm/PackageSessionVerifier;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/ApexManager;Ljava/util/function/Supplier;Landroid/os/Looper;)V
-HSPLcom/android/server/pm/PackageSetting$1;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/PackageSetting$1;->createSnapshot()Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/PackageProperty;->removeComponentProperties(Ljava/util/List;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+PLcom/android/server/pm/PackageProperty;->removeProperties(Ljava/util/Map;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+PLcom/android/server/pm/PackageRemovedInfo;-><clinit>()V
+PLcom/android/server/pm/PackageRemovedInfo;-><init>()V
+PLcom/android/server/pm/PackageSessionVerifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/PackageSessionVerifier;Ljava/lang/Object;Lcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda8;I)V
+PLcom/android/server/pm/PackageSessionVerifier$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/pm/PackageSessionVerifier$1;-><init>(Lcom/android/server/pm/PackageSessionVerifier;Lcom/android/server/pm/PackageInstallerSession;Lcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda8;)V
+PLcom/android/server/pm/PackageSessionVerifier$1;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/pm/PackageSessionVerifier;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/ApexManager;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda41;Landroid/os/Looper;)V
+PLcom/android/server/pm/PackageSessionVerifier;->checkApexSignature(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageSessionVerifier;->checkApexUpdateAllowed(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageSessionVerifier;->checkRebootlessApex(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageSessionVerifier;->createVerifyingSession(Lcom/android/server/pm/PackageInstallerSession;Lcom/android/server/pm/PackageSessionVerifier$1;)Lcom/android/server/pm/VerifyingSession;
+PLcom/android/server/pm/PackageSessionVerifier;->storeSession(Lcom/android/server/pm/StagingManager$StagedSession;)V
+PLcom/android/server/pm/PackageSessionVerifier;->verifyAPK(Lcom/android/server/pm/PackageInstallerSession;Lcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda8;)V
 HSPLcom/android/server/pm/PackageSetting$1;->createSnapshot()Ljava/lang/Object;
-HPLcom/android/server/pm/PackageSetting;-><init>(Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/PackageSetting;-><init>(Lcom/android/server/pm/PackageSetting;Z)V
 HSPLcom/android/server/pm/PackageSetting;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;IILjava/util/UUID;)V
 HSPLcom/android/server/pm/PackageSetting;->copyMimeGroups(Ljava/util/Map;)V
-HSPLcom/android/server/pm/PackageSetting;->copyPackageSetting(Lcom/android/server/pm/PackageSetting;Z)V
-HPLcom/android/server/pm/PackageSetting;->disableComponentLPw(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageSetting;->enableComponentLPw(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageSetting;->copyPackageSetting(Lcom/android/server/pm/PackageSetting;Z)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
 HPLcom/android/server/pm/PackageSetting;->getAndroidPackage()Lcom/android/server/pm/pkg/AndroidPackage;
 HPLcom/android/server/pm/PackageSetting;->getApexModuleName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageSetting;->getAppId()I
-PLcom/android/server/pm/PackageSetting;->getAppMetadataFilePath()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getAppMetadataSource()I
-HPLcom/android/server/pm/PackageSetting;->getBoolean(I)Z
+HSPLcom/android/server/pm/PackageSetting;->getBoolean(I)Z
 HPLcom/android/server/pm/PackageSetting;->getCategoryOverride()I
-PLcom/android/server/pm/PackageSetting;->getCpuAbiOverride()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getCurrentEnabledStateLPr(Ljava/lang/String;I)I
-PLcom/android/server/pm/PackageSetting;->getDomainSetId()Ljava/util/UUID;
-PLcom/android/server/pm/PackageSetting;->getEnabled(I)I
+HPLcom/android/server/pm/PackageSetting;->getCpuAbiOverride()Ljava/lang/String;
+PLcom/android/server/pm/PackageSetting;->getHiddenApiEnforcementPolicy()I
+PLcom/android/server/pm/PackageSetting;->getInstallReason(I)I
 PLcom/android/server/pm/PackageSetting;->getInstallSource()Lcom/android/server/pm/InstallSource;
-HPLcom/android/server/pm/PackageSetting;->getInstalled(I)Z
-HPLcom/android/server/pm/PackageSetting;->getInstantApp(I)Z
-HSPLcom/android/server/pm/PackageSetting;->getKeySetData()Lcom/android/server/pm/PackageKeySetData;
-HPLcom/android/server/pm/PackageSetting;->getLastModifiedTime()J
+PLcom/android/server/pm/PackageSetting;->getInstalled(I)Z
+HSPLcom/android/server/pm/PackageSetting;->getInstantApp(I)Z
 HPLcom/android/server/pm/PackageSetting;->getLastUpdateTime()J
-PLcom/android/server/pm/PackageSetting;->getLegacyNativeLibraryPath()Ljava/lang/String;
-HSPLcom/android/server/pm/PackageSetting;->getLegacyPermissionState()Lcom/android/server/pm/permission/LegacyPermissionState;
-HPLcom/android/server/pm/PackageSetting;->getLoadingCompletedTime()J
-HPLcom/android/server/pm/PackageSetting;->getLoadingProgress()F
-HPLcom/android/server/pm/PackageSetting;->getMimeGroups()Ljava/util/Map;
-PLcom/android/server/pm/PackageSetting;->getOldPaths()Ljava/util/LinkedHashSet;
-PLcom/android/server/pm/PackageSetting;->getOrCreateUserState(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/PackageSetting;->getMimeGroups()Ljava/util/Map;
 HSPLcom/android/server/pm/PackageSetting;->getPackageName()Ljava/lang/String;
 PLcom/android/server/pm/PackageSetting;->getPath()Ljava/io/File;
-PLcom/android/server/pm/PackageSetting;->getPathString()Ljava/lang/String;
-HSPLcom/android/server/pm/PackageSetting;->getPkg()Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;
-HPLcom/android/server/pm/PackageSetting;->getPkgState()Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HPLcom/android/server/pm/PackageSetting;->getPrimaryCpuAbi()Ljava/lang/String;
-PLcom/android/server/pm/PackageSetting;->getPrimaryCpuAbiLegacy()Ljava/lang/String;
-PLcom/android/server/pm/PackageSetting;->getRealName()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageSetting;->getPrimaryCpuAbi()Ljava/lang/String;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageHidden;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
 PLcom/android/server/pm/PackageSetting;->getRestrictUpdateHash()[B
 HPLcom/android/server/pm/PackageSetting;->getSeInfo()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getSecondaryCpuAbi()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getSecondaryCpuAbiLegacy()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getSharedLibraryDependencies()Ljava/util/List;
-HSPLcom/android/server/pm/PackageSetting;->getSharedUserAppId()I
-HSPLcom/android/server/pm/PackageSetting;->getSignatures()Lcom/android/server/pm/PackageSignatures;
-HPLcom/android/server/pm/PackageSetting;->getSigningDetails()Landroid/content/pm/SigningDetails;
+HSPLcom/android/server/pm/PackageSetting;->getSecondaryCpuAbi()Ljava/lang/String;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageHidden;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/PackageSetting;->getSharedLibraryDependencies()Ljava/util/List;
+PLcom/android/server/pm/PackageSetting;->getSharedUserAppId()I
+PLcom/android/server/pm/PackageSetting;->getSigningDetails()Landroid/content/pm/SigningDetails;
+PLcom/android/server/pm/PackageSetting;->getSigningInfo()Landroid/content/pm/SigningInfo;
+PLcom/android/server/pm/PackageSetting;->getStateForUser(Landroid/os/UserHandle;)Lcom/android/server/pm/pkg/PackageUserState;
 PLcom/android/server/pm/PackageSetting;->getTargetSdkVersion()I
-HPLcom/android/server/pm/PackageSetting;->getTransientState()Lcom/android/server/pm/pkg/PackageStateUnserialized;
 HSPLcom/android/server/pm/PackageSetting;->getUserStates()Landroid/util/SparseArray;
-HPLcom/android/server/pm/PackageSetting;->getUsesLibraryFiles()Ljava/util/List;
-HPLcom/android/server/pm/PackageSetting;->getUsesSdkLibraries()[Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getUsesSdkLibrariesOptional()[Z
-HPLcom/android/server/pm/PackageSetting;->getUsesSdkLibrariesVersionsMajor()[J
-HPLcom/android/server/pm/PackageSetting;->getUsesStaticLibraries()[Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->getUsesStaticLibrariesVersions()[J
-HPLcom/android/server/pm/PackageSetting;->getVersionCode()J
-HPLcom/android/server/pm/PackageSetting;->getVirtualPreload(I)Z
-HPLcom/android/server/pm/PackageSetting;->getVolumeUuid()Ljava/lang/String;
+PLcom/android/server/pm/PackageSetting;->getUsesLibraryFiles()Ljava/util/List;
+PLcom/android/server/pm/PackageSetting;->getUsesSdkLibraries()[Ljava/lang/String;
+PLcom/android/server/pm/PackageSetting;->getUsesSdkLibrariesOptional()[Z
+PLcom/android/server/pm/PackageSetting;->getUsesSdkLibrariesVersionsMajor()[J
+PLcom/android/server/pm/PackageSetting;->getUsesStaticLibraries()[Ljava/lang/String;
+PLcom/android/server/pm/PackageSetting;->getUsesStaticLibrariesVersions()[J
+PLcom/android/server/pm/PackageSetting;->getVersionCode()J
+HSPLcom/android/server/pm/PackageSetting;->getVolumeUuid()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageSetting;->hasSharedUser()Z
+HSPLcom/android/server/pm/PackageSetting;->isApex()Z
 PLcom/android/server/pm/PackageSetting;->isDefaultToDeviceProtectedStorage()Z
-HPLcom/android/server/pm/PackageSetting;->isForceQueryableOverride()Z
+PLcom/android/server/pm/PackageSetting;->isExternalStorage()Z
+HSPLcom/android/server/pm/PackageSetting;->isForceQueryableOverride()Z
 HPLcom/android/server/pm/PackageSetting;->isHiddenUntilInstalled()Z
-PLcom/android/server/pm/PackageSetting;->isIncremental()Z
 PLcom/android/server/pm/PackageSetting;->isInstallPermissionsFixed()Z
-HPLcom/android/server/pm/PackageSetting;->isLoading()Z
-HPLcom/android/server/pm/PackageSetting;->isOdm()Z
-HPLcom/android/server/pm/PackageSetting;->isOem()Z
-PLcom/android/server/pm/PackageSetting;->isPendingRestore()Z
-HPLcom/android/server/pm/PackageSetting;->isPrivileged()Z
-HPLcom/android/server/pm/PackageSetting;->isProduct()Z
-HPLcom/android/server/pm/PackageSetting;->isScannedAsStoppedSystemApp()Z
-HPLcom/android/server/pm/PackageSetting;->isSystem()Z
-HPLcom/android/server/pm/PackageSetting;->isSystemExt()Z
-HPLcom/android/server/pm/PackageSetting;->isUpdateAvailable()Z
-HPLcom/android/server/pm/PackageSetting;->isUpdatedSystemApp()Z
-HPLcom/android/server/pm/PackageSetting;->isVendor()Z
-HSPLcom/android/server/pm/PackageSetting;->makeCache()Lcom/android/server/utils/SnapshotCache;
+PLcom/android/server/pm/PackageSetting;->isLeavingSharedUser()Z
+PLcom/android/server/pm/PackageSetting;->isLoading()Z
+HSPLcom/android/server/pm/PackageSetting;->isOdm()Z
+HSPLcom/android/server/pm/PackageSetting;->isOem()Z
+PLcom/android/server/pm/PackageSetting;->isPersistent()Z
+HSPLcom/android/server/pm/PackageSetting;->isPrivileged()Z
+HSPLcom/android/server/pm/PackageSetting;->isProduct()Z
+PLcom/android/server/pm/PackageSetting;->isScannedAsStoppedSystemApp()Z
+HSPLcom/android/server/pm/PackageSetting;->isSystem()Z
+HSPLcom/android/server/pm/PackageSetting;->isSystemExt()Z
+HSPLcom/android/server/pm/PackageSetting;->isUpdatedSystemApp()Z
+HSPLcom/android/server/pm/PackageSetting;->isVendor()Z
 HSPLcom/android/server/pm/PackageSetting;->modifyUserState(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HPLcom/android/server/pm/PackageSetting;->modifyUserStateComponents(IZZ)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HPLcom/android/server/pm/PackageSetting;->readUserState(I)Lcom/android/server/pm/pkg/PackageUserStateInternal;
-HPLcom/android/server/pm/PackageSetting;->restoreComponentLPw(Ljava/lang/String;I)Z
-HSPLcom/android/server/pm/PackageSetting;->setAppId(I)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setAppMetadataFilePath(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setAppMetadataSource(I)Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/PackageSetting;->modifyUserStateComponents(IZZ)Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/PackageSetting;->queryInstalledUsers([IZ)[I
+PLcom/android/server/pm/PackageSetting;->queryUsersInstalledOrHasData([I)[I
+HSPLcom/android/server/pm/PackageSetting;->readUserState(I)Lcom/android/server/pm/pkg/PackageUserStateInternal;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/pm/PackageSetting;->restoreComponentLPw(ILjava/lang/String;)Z
+PLcom/android/server/pm/PackageSetting;->restoreComponentSettings(I)V
+HSPLcom/android/server/pm/PackageSetting;->setAppId(I)V
+HSPLcom/android/server/pm/PackageSetting;->setAppMetadataFilePath(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageSetting;->setAppMetadataSource(I)V
 HSPLcom/android/server/pm/PackageSetting;->setBoolean(IZ)V
-HSPLcom/android/server/pm/PackageSetting;->setCategoryOverride(I)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setCeDataInode(JI)V
-HSPLcom/android/server/pm/PackageSetting;->setCpuAbiOverride(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setDeDataInode(JI)V
-HPLcom/android/server/pm/PackageSetting;->setDomainSetId(Ljava/util/UUID;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/PackageSetting;->setEnabled(IILjava/lang/String;)V
-HPLcom/android/server/pm/PackageSetting;->setFirstInstallTime(JI)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setForceQueryableOverride(Z)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setInstallSource(Lcom/android/server/pm/InstallSource;)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setIsOrphaned(Z)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setLastModifiedTime(J)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setLastUpdateTime(J)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setLegacyNativeLibraryPath(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setLoadingCompletedTime(J)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setLoadingProgress(F)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setLongVersionCode(J)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setMimeGroups(Ljava/util/Map;)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setPkg(Lcom/android/server/pm/pkg/AndroidPackage;)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setPkgStateLibraryFiles(Ljava/util/Collection;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setPrimaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setRestrictUpdateHash([B)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setScannedAsStoppedSystemApp(Z)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setSecondaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setSharedUserAppId(I)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setSigningDetails(Landroid/content/pm/SigningDetails;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setTargetSdkVersion(I)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setUpdateAvailable(Z)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setUpdateOwnerPackage(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/PackageSetting;->setFirstInstallTime(IJ)V
+PLcom/android/server/pm/PackageSetting;->setInstalled(IZ)V
+HSPLcom/android/server/pm/PackageSetting;->setLastUpdateTime(J)V
+HSPLcom/android/server/pm/PackageSetting;->setPageSizeAppCompatFlags(I)V
+PLcom/android/server/pm/PackageSetting;->setPath(Ljava/io/File;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/PackageSetting;->setSharedUserAppId(I)V
+PLcom/android/server/pm/PackageSetting;->setUninstallReason(II)V
+HSPLcom/android/server/pm/PackageSetting;->setUpdateOwnerPackage(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageSetting;->setUserState(IJJIZZZZILandroid/util/ArrayMap;ZZLjava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;JILcom/android/server/pm/pkg/ArchiveState;)V
-HPLcom/android/server/pm/PackageSetting;->setUsesSdkLibraries([Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setUsesSdkLibrariesOptional([Z)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setUsesSdkLibrariesVersionsMajor([J)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setUsesStaticLibraries([Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HPLcom/android/server/pm/PackageSetting;->setUsesStaticLibrariesVersions([J)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->setVolumeUuid(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/PackageSetting;->snapshot()Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/PackageSetting;->snapshot()Ljava/lang/Object;
-HPLcom/android/server/pm/PackageSetting;->toString()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSetting;->updateFrom(Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/PackageSetting;->updateMimeGroups(Ljava/util/Set;)Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/PackageSetting;->toString()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageSetting;->updateMimeGroups(Ljava/util/Set;)V
 HSPLcom/android/server/pm/PackageSignatures;-><init>()V
 HSPLcom/android/server/pm/PackageSignatures;->readCertsListXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/ArrayList;Ljava/util/ArrayList;IZLandroid/content/pm/SigningDetails$Builder;)I
 HSPLcom/android/server/pm/PackageSignatures;->readXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/ArrayList;)V
 HPLcom/android/server/pm/PackageSignatures;->toString()Ljava/lang/String;
-HPLcom/android/server/pm/PackageSignatures;->writeCertsListXml(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/ArrayList;[Landroid/content/pm/Signature;Z)V
-HPLcom/android/server/pm/PackageSignatures;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Ljava/util/ArrayList;)V
+HPLcom/android/server/pm/PackageSignatures;->writeCertsListXml(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/ArrayList;[Landroid/content/pm/Signature;Z)V+]Landroid/content/pm/Signature;Landroid/content/pm/Signature;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/pm/PackageSignatures;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Ljava/util/ArrayList;)V+]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;
 HSPLcom/android/server/pm/PackageUsage;-><init>()V
-PLcom/android/server/pm/PackageUsage;->readInternal(Ljava/lang/Object;)V
-PLcom/android/server/pm/PackageUsage;->readInternal(Ljava/util/Map;)V
-HPLcom/android/server/pm/ParallelPackageParser$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ParallelPackageParser;Ljava/io/File;I)V
-HPLcom/android/server/pm/ParallelPackageParser$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/ParallelPackageParser$ParseResult;-><init>()V
-PLcom/android/server/pm/ParallelPackageParser;->$r8$lambda$uW6lAW1ixaCdJ_8ZINGbyQGIceg(Lcom/android/server/pm/ParallelPackageParser;Ljava/io/File;I)V
-HPLcom/android/server/pm/ParallelPackageParser;-><init>(Lcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)V
-HPLcom/android/server/pm/ParallelPackageParser;->lambda$submit$0(Ljava/io/File;I)V
-PLcom/android/server/pm/ParallelPackageParser;->makeExecutorService()Ljava/util/concurrent/ExecutorService;
-HPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Ljava/io/File;I)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
-HPLcom/android/server/pm/ParallelPackageParser;->submit(Ljava/io/File;I)V
-HPLcom/android/server/pm/ParallelPackageParser;->take()Lcom/android/server/pm/ParallelPackageParser$ParseResult;
+PLcom/android/server/pm/PackageUsage;->parseAsLong(Ljava/lang/String;)J
+PLcom/android/server/pm/PackageUsage;->readInternal(Lcom/android/server/utils/WatchedArrayMap;)V
+PLcom/android/server/pm/PackageUsage;->readLine(Ljava/io/InputStream;Ljava/lang/StringBuilder;)Ljava/lang/String;
+PLcom/android/server/pm/PackageUsage;->readVersion1LP(Ljava/util/Map;Ljava/io/InputStream;Ljava/lang/StringBuilder;)V
+PLcom/android/server/pm/PackageUsage;->writeInternal(Ljava/lang/Object;)V
+PLcom/android/server/pm/PackageVerificationResponse;-><init>(II)V
+PLcom/android/server/pm/PackageVerificationState;-><init>(Lcom/android/server/pm/VerifyingSession;)V
+PLcom/android/server/pm/PackageVerificationState;->isVerificationComplete()Z
+PLcom/android/server/pm/PackageVerificationState;->setVerifierResponse(II)V
+HSPLcom/android/server/pm/ParallelPackageParser$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ParallelPackageParser;Ljava/io/File;I)V
+HSPLcom/android/server/pm/ParallelPackageParser$$ExternalSyntheticLambda0;->run()V
+HSPLcom/android/server/pm/ParallelPackageParser;-><init>(Lcom/android/internal/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)V
+HSPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Ljava/io/File;I)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/ParallelPackageParser;->take()Lcom/android/server/pm/ParallelPackageParser$ParseResult;
+PLcom/android/server/pm/PendingPackageBroadcasts$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/PendingPackageBroadcasts;-><init>()V
-PLcom/android/server/pm/PerPackageReadTimeouts;->parseDigestersList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->-$$Nest$fgetmCerts(Lcom/android/server/pm/Policy$PolicyBuilder;)Ljava/util/Set;
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->-$$Nest$fgetmPkgMap(Lcom/android/server/pm/Policy$PolicyBuilder;)Ljava/util/Map;
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->-$$Nest$fgetmSeinfo(Lcom/android/server/pm/Policy$PolicyBuilder;)Ljava/lang/String;
+PLcom/android/server/pm/PendingPackageBroadcasts;->addComponent(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/PendingPackageBroadcasts;->copiedMap()Landroid/util/SparseArray;
+PLcom/android/server/pm/PendingPackageBroadcasts;->getOrAllocate(ILjava/lang/String;)Ljava/util/ArrayList;
 HSPLcom/android/server/pm/Policy$PolicyBuilder;-><init>()V
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->addSignature(Ljava/lang/String;)Lcom/android/server/pm/Policy$PolicyBuilder;
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->build()Lcom/android/server/pm/Policy;
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->setGlobalSeinfoOrThrow(Ljava/lang/String;)Lcom/android/server/pm/Policy$PolicyBuilder;
-HSPLcom/android/server/pm/Policy$PolicyBuilder;->validateValue(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/Policy;->-$$Nest$fgetmCerts(Lcom/android/server/pm/Policy;)Ljava/util/Set;
-HSPLcom/android/server/pm/Policy;->-$$Nest$fgetmPkgMap(Lcom/android/server/pm/Policy;)Ljava/util/Map;
-HSPLcom/android/server/pm/Policy;->-$$Nest$fgetmSeinfo(Lcom/android/server/pm/Policy;)Ljava/lang/String;
+HSPLcom/android/server/pm/Policy$PolicyBuilder;->addSignature(Ljava/lang/String;)V
 HSPLcom/android/server/pm/Policy;-><init>(Lcom/android/server/pm/Policy$PolicyBuilder;)V
-HSPLcom/android/server/pm/Policy;-><init>(Lcom/android/server/pm/Policy$PolicyBuilder;Lcom/android/server/pm/Policy-IA;)V
-HPLcom/android/server/pm/Policy;->getMatchedSeInfo(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;
-HSPLcom/android/server/pm/Policy;->getSignatures()Ljava/util/Set;
-HSPLcom/android/server/pm/Policy;->hasInnerPackages()Z
-HSPLcom/android/server/pm/PolicyComparator;-><init>()V
-HSPLcom/android/server/pm/PolicyComparator;->compare(Lcom/android/server/pm/Policy;Lcom/android/server/pm/Policy;)I
+HSPLcom/android/server/pm/Policy;->getMatchedSeInfo(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;
 HSPLcom/android/server/pm/PolicyComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLcom/android/server/pm/PolicyComparator;->foundDuplicate()Z
-HSPLcom/android/server/pm/PreferredActivity$1;-><init>(Lcom/android/server/pm/PreferredActivity;Lcom/android/server/pm/PreferredActivity;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/PreferredActivity$1;->createSnapshot()Lcom/android/server/pm/PreferredActivity;
 HSPLcom/android/server/pm/PreferredActivity$1;->createSnapshot()Ljava/lang/Object;
 HSPLcom/android/server/pm/PreferredActivity;-><init>(Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/pm/PreferredActivity;-><init>(Lcom/android/server/pm/PreferredActivity;)V
-HSPLcom/android/server/pm/PreferredActivity;-><init>(Lcom/android/server/pm/PreferredActivity;Lcom/android/server/pm/PreferredActivity-IA;)V
-HSPLcom/android/server/pm/PreferredActivity;->makeCache()Lcom/android/server/utils/SnapshotCache;
-HSPLcom/android/server/pm/PreferredActivity;->onReadTag(Ljava/lang/String;Lcom/android/modules/utils/TypedXmlPullParser;)Z
-HSPLcom/android/server/pm/PreferredActivity;->snapshot()Lcom/android/server/pm/PreferredActivity;
-PLcom/android/server/pm/PreferredActivity;->writeToXml(Lcom/android/modules/utils/TypedXmlSerializer;Z)V
+PLcom/android/server/pm/PreferredActivity;-><init>(Lcom/android/server/pm/WatchedIntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;Z)V
+PLcom/android/server/pm/PreferredActivityHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/PreferredActivityHelper;I)V
+PLcom/android/server/pm/PreferredActivityHelper$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/PreferredActivityHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/BroadcastHelper;)V
-HSPLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredComponent$Callbacks;Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/PreferredComponent;->getParseError()Ljava/lang/String;
-HPLcom/android/server/pm/PreferredComponent;->writeToXml(Lcom/android/modules/utils/TypedXmlSerializer;Z)V
-HSPLcom/android/server/pm/PreferredIntentResolver$1;-><init>(Lcom/android/server/pm/PreferredIntentResolver;Lcom/android/server/pm/PreferredIntentResolver;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/PreferredIntentResolver$1;->createSnapshot()Lcom/android/server/pm/PreferredIntentResolver;
+PLcom/android/server/pm/PreferredActivityHelper;->addPreferredActivity(Lcom/android/server/pm/Computer;Lcom/android/server/pm/WatchedIntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;ZIZ)V
+PLcom/android/server/pm/PreferredActivityHelper;->findPreferredActivityNotLocked(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZZI)Landroid/content/pm/ResolveInfo;
+PLcom/android/server/pm/PreferredActivityHelper;->findPreferredActivityNotLocked(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZZZIZ)Landroid/content/pm/ResolveInfo;
+PLcom/android/server/pm/PreferredActivityHelper;->isHomeFilter(Lcom/android/server/pm/WatchedIntentFilter;)Z
+HPLcom/android/server/pm/PreferredActivityHelper;->replacePreferredActivity(Lcom/android/server/pm/Computer;Lcom/android/server/pm/WatchedIntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+PLcom/android/server/pm/PreferredActivityHelper;->updateDefaultHomeNotLocked(Lcom/android/server/pm/Computer;I)Z
+PLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredActivity;I[Landroid/content/ComponentName;Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredActivity;Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/pm/PreferredIntentResolver$1;->createSnapshot()Ljava/lang/Object;
 HSPLcom/android/server/pm/PreferredIntentResolver;-><init>()V
 HSPLcom/android/server/pm/PreferredIntentResolver;-><init>(Lcom/android/server/pm/PreferredIntentResolver;)V
-HSPLcom/android/server/pm/PreferredIntentResolver;-><init>(Lcom/android/server/pm/PreferredIntentResolver;Lcom/android/server/pm/PreferredIntentResolver-IA;)V
-HSPLcom/android/server/pm/PreferredIntentResolver;->getIntentFilter(Lcom/android/server/pm/PreferredActivity;)Landroid/content/IntentFilter;
+PLcom/android/server/pm/PreferredIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/PreferredIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
-PLcom/android/server/pm/PreferredIntentResolver;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/pm/PreferredActivity;)Z
-PLcom/android/server/pm/PreferredIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
-HSPLcom/android/server/pm/PreferredIntentResolver;->makeCache()Lcom/android/server/utils/SnapshotCache;
-HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Lcom/android/server/pm/PreferredActivity;
 HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Ljava/lang/Object;
-HSPLcom/android/server/pm/PreferredIntentResolver;->shouldAddPreferredActivity(Lcom/android/server/pm/PreferredActivity;)Z
-HSPLcom/android/server/pm/PreferredIntentResolver;->snapshot()Lcom/android/server/pm/PreferredIntentResolver;
 HSPLcom/android/server/pm/PreferredIntentResolver;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/pm/PreferredIntentResolver;->snapshot(Lcom/android/server/pm/PreferredActivity;)Lcom/android/server/pm/PreferredActivity;
 HSPLcom/android/server/pm/PreferredIntentResolver;->snapshot(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/ProcessLoggingHandler;-><init>()V
 HSPLcom/android/server/pm/ProtectedPackages;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/pm/ProtectedPackages;->hasDeviceOwnerOrProfileOwner(ILjava/lang/String;)Z
-HPLcom/android/server/pm/ProtectedPackages;->hasProtectedPackages(I)Z
-HPLcom/android/server/pm/ProtectedPackages;->isOwnerProtectedPackage(ILjava/lang/String;)Z
-HPLcom/android/server/pm/ProtectedPackages;->isPackageProtectedForUser(ILjava/lang/String;)Z
+PLcom/android/server/pm/ProtectedPackages;->getDeviceOwnerOrProfileOwnerPackage(I)Ljava/lang/String;
+PLcom/android/server/pm/ProtectedPackages;->hasDeviceOwnerOrProfileOwner(ILjava/lang/String;)Z
+PLcom/android/server/pm/ProtectedPackages;->isPackageProtectedForUser(ILjava/lang/String;)Z
 PLcom/android/server/pm/ProtectedPackages;->isPackageStateProtected(ILjava/lang/String;)Z
-HPLcom/android/server/pm/ProtectedPackages;->isProtectedPackage(ILjava/lang/String;)Z
-PLcom/android/server/pm/ProtectedPackages;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
-HPLcom/android/server/pm/QueryIntentActivitiesResult;-><init>(ZZLjava/util/List;)V
-PLcom/android/server/pm/ReconcilePackageUtils;-><clinit>()V
-HPLcom/android/server/pm/ReconcilePackageUtils;->isCompatSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
-HPLcom/android/server/pm/ReconcilePackageUtils;->isRecoverSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
-HPLcom/android/server/pm/ReconcilePackageUtils;->reconcilePackages(Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/pm/SharedLibrariesImpl;Lcom/android/server/pm/KeySetManagerService;Lcom/android/server/pm/Settings;)Ljava/util/List;
-HPLcom/android/server/pm/ReconciledPackage;-><init>(Ljava/util/List;Ljava/util/Map;Lcom/android/server/pm/InstallRequest;Lcom/android/server/pm/DeletePackageAction;Ljava/util/List;Landroid/content/pm/SigningDetails;ZZ)V
-HPLcom/android/server/pm/ReconciledPackage;->getCombinedAvailablePackages()Ljava/util/Map;
+PLcom/android/server/pm/ProtectedPackages;->isProtectedPackage(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/ReconcilePackageUtils;-><clinit>()V
+PLcom/android/server/pm/ReconcilePackageUtils;->isRecoverSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
+HSPLcom/android/server/pm/ReconcilePackageUtils;->reconcilePackages(Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/pm/SharedLibrariesImpl;Lcom/android/server/pm/KeySetManagerService;Lcom/android/server/pm/Settings;Lcom/android/server/SystemConfig;)Ljava/util/List;
+HSPLcom/android/server/pm/ReconciledPackage;-><init>(Ljava/util/List;Ljava/util/Map;Lcom/android/server/pm/InstallRequest;Lcom/android/server/pm/DeletePackageAction;Ljava/util/List;Landroid/content/pm/SigningDetails;ZZ)V
 HSPLcom/android/server/pm/RemovePackageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/AppDataHelper;Lcom/android/server/pm/BroadcastHelper;)V
+PLcom/android/server/pm/RemovePackageHelper;->cleanPackageDataStructuresLILPw(Lcom/android/server/pm/pkg/AndroidPackage;Z)V
+PLcom/android/server/pm/RemovePackageHelper;->cleanUpResources(Ljava/io/File;Ljava/lang/String;)V
+PLcom/android/server/pm/RemovePackageHelper;->removeCodePathLI(Ljava/io/File;)V
+PLcom/android/server/pm/RemovePackageHelper;->removePackage(Lcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/pm/RemovePackageHelper;->removePackageLI(Ljava/lang/String;)V
 HSPLcom/android/server/pm/ResilientAtomicFile;-><init>(Ljava/io/File;Ljava/io/File;Ljava/io/File;ILjava/lang/String;Lcom/android/server/pm/ResilientAtomicFile$ReadEventLogger;)V
 HSPLcom/android/server/pm/ResilientAtomicFile;->close()V
-HPLcom/android/server/pm/ResilientAtomicFile;->finalizeOutStream(Ljava/io/FileOutputStream;)V
 HPLcom/android/server/pm/ResilientAtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V
 HSPLcom/android/server/pm/ResilientAtomicFile;->openRead()Ljava/io/FileInputStream;
 HPLcom/android/server/pm/ResilientAtomicFile;->startWrite()Ljava/io/FileOutputStream;
-HSPLcom/android/server/pm/ResolveIntentHelper;-><init>(Landroid/content/Context;Lcom/android/server/pm/PreferredActivityHelper;Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/UserNeedsBadgingCache;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Landroid/os/Handler;)V
-PLcom/android/server/pm/ResolveIntentHelper;->applyPostContentProviderResolutionFilter(Lcom/android/server/pm/Computer;Ljava/util/List;Ljava/lang/String;II)Ljava/util/List;
+PLcom/android/server/pm/ResilientAtomicFile;->toString()Ljava/lang/String;
+HSPLcom/android/server/pm/ResolveIntentHelper;-><init>(Landroid/content/Context;Lcom/android/server/pm/PreferredActivityHelper;Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/UserNeedsBadgingCache;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda38;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda38;)V
+PLcom/android/server/pm/ResolveIntentHelper;->applyPostContentProviderResolutionFilter(Lcom/android/server/pm/Computer;Ljava/util/List;Ljava/lang/String;II)V
 HPLcom/android/server/pm/ResolveIntentHelper;->chooseBestActivity(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJLjava/util/List;IZ)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/ResolveIntentHelper;->filterNonExportedComponents(Landroid/content/Intent;IILjava/util/List;Lcom/android/server/compat/PlatformCompat;Ljava/lang/String;Lcom/android/server/pm/Computer;Landroid/os/Handler;)V
-PLcom/android/server/pm/ResolveIntentHelper;->queryIntentContentProvidersInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-PLcom/android/server/pm/ResolveIntentHelper;->queryIntentReceiversInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JII)Ljava/util/List;
-HPLcom/android/server/pm/ResolveIntentHelper;->queryIntentReceiversInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JIIZ)Ljava/util/List;
-PLcom/android/server/pm/ResolveIntentHelper;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJIZI)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/ResolveIntentHelper;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJIZIZI)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/ResolveIntentHelper;->resolveServiceInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JII)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/ResolveIntentHelper;->queryIntentReceiversInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JIIIZ)Ljava/util/List;+]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;
+HPLcom/android/server/pm/ResolveIntentHelper;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJIZII)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/ResolveIntentHelper;->resolveServiceInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JIIIZ)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
 HSPLcom/android/server/pm/RestrictionsSet;-><init>()V
 HPLcom/android/server/pm/RestrictionsSet;->getRestrictions(I)Landroid/os/Bundle;
-PLcom/android/server/pm/RestrictionsSet;->getRestrictionsNonNull(I)Landroid/os/Bundle;
 HSPLcom/android/server/pm/RestrictionsSet;->updateRestrictions(ILandroid/os/Bundle;)Z
 HSPLcom/android/server/pm/SELinuxMMAC;-><clinit>()V
-HPLcom/android/server/pm/SELinuxMMAC;->getPartition(Lcom/android/server/pm/pkg/PackageState;)Ljava/lang/String;
-HPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/SharedUserApi;Lcom/android/server/compat/PlatformCompat;)Ljava/lang/String;
-HPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/pkg/AndroidPackage;ZI)Ljava/lang/String;
-HPLcom/android/server/pm/SELinuxMMAC;->getTargetSdkVersionForSeInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/SharedUserApi;Lcom/android/server/compat/PlatformCompat;)I
-HSPLcom/android/server/pm/SELinuxMMAC;->readInstallPolicy()Z
-HSPLcom/android/server/pm/SELinuxMMAC;->readSeinfo(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)Ljava/lang/String;
+HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/AndroidPackage;ZI)Ljava/lang/String;
+HSPLcom/android/server/pm/SELinuxMMAC;->readInstallPolicy()V
 HSPLcom/android/server/pm/SELinuxMMAC;->readSignerOrThrow(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/Policy;
-HPLcom/android/server/pm/ScanPackageUtils;->adjustScanFlagsWithPackageSetting(ILcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;)I
-HPLcom/android/server/pm/ScanPackageUtils;->applyAdjustedAbiToSharedUser(Lcom/android/server/pm/SharedUserSetting;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)Ljava/util/List;
-HPLcom/android/server/pm/ScanPackageUtils;->applyPolicy(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ILcom/android/server/pm/pkg/AndroidPackage;Z)V
-HPLcom/android/server/pm/ScanPackageUtils;->assertMinSignatureSchemeIsValid(Lcom/android/server/pm/pkg/AndroidPackage;I)V
+PLcom/android/server/pm/SaferIntentUtils$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
+HPLcom/android/server/pm/SaferIntentUtils$IntentArgs;-><init>(Landroid/content/Intent;Ljava/lang/String;ZZII)V
+HPLcom/android/server/pm/SaferIntentUtils$IntentArgs;->isChangeEnabled(J)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+PLcom/android/server/pm/SaferIntentUtils$IntentArgs;->reportEvent(IZ)V
+PLcom/android/server/pm/SaferIntentUtils;-><clinit>()V
+HPLcom/android/server/pm/SaferIntentUtils;->blockNullAction(Lcom/android/server/pm/SaferIntentUtils$IntentArgs;Ljava/util/List;)V+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;]Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+HPLcom/android/server/pm/SaferIntentUtils;->enforceIntentFilterMatching(Lcom/android/server/pm/SaferIntentUtils$IntentArgs;Ljava/util/List;)V+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/SaferIntentUtils;->filterNonExportedComponents(Lcom/android/server/pm/SaferIntentUtils$IntentArgs;Ljava/util/List;)V+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/SaferIntentUtils;->infoToComponent(Landroid/content/pm/ComponentInfo;Lcom/android/server/pm/resolution/ComponentResolverApi;Z)Lcom/android/internal/pm/pkg/component/ParsedMainComponent;+]Landroid/content/pm/ComponentInfo;Landroid/content/pm/ActivityInfo;,Landroid/content/pm/ServiceInfo;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;
+PLcom/android/server/pm/SaferIntentUtils;->reportUnsafeIntentEvent(IIILandroid/content/Intent;Ljava/lang/String;Z)V
+PLcom/android/server/pm/ScanPackageUtils;->apkHasCode(Ljava/lang/String;)Z
+PLcom/android/server/pm/ScanPackageUtils;->applyAdjustedAbiToSharedUser(Lcom/android/server/pm/SharedUserSetting;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/pm/ScanPackageUtils;->applyPolicy(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ILcom/android/server/pm/pkg/AndroidPackage;Z)V
 PLcom/android/server/pm/ScanPackageUtils;->assertPackageProcesses(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
-HPLcom/android/server/pm/ScanPackageUtils;->assertProcessesAreValid(Lcom/android/server/pm/pkg/AndroidPackage;)V
-HPLcom/android/server/pm/ScanPackageUtils;->collectCertificatesLI(Lcom/android/server/pm/PackageSetting;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Lcom/android/server/pm/Settings$VersionInfo;ZZZ)V
-HPLcom/android/server/pm/ScanPackageUtils;->configurePackageComponents(Lcom/android/server/pm/pkg/AndroidPackage;)V
-HPLcom/android/server/pm/ScanPackageUtils;->getAppLib32InstallDir()Ljava/io/File;
-HPLcom/android/server/pm/ScanPackageUtils;->getRealPackageName(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;Z)Ljava/lang/String;
-PLcom/android/server/pm/ScanPackageUtils;->getVendorPartitionVersion()I
-HPLcom/android/server/pm/ScanPackageUtils;->isPackageRenamed(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z
-HPLcom/android/server/pm/ScanPackageUtils;->scanPackageOnlyLI(Lcom/android/server/pm/ScanRequest;Lcom/android/server/pm/PackageManagerServiceInjector;ZJ)Lcom/android/server/pm/ScanResult;
-PLcom/android/server/pm/ScanPackageUtils;->setInstantAppForUser(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageSetting;IZZ)V
+HSPLcom/android/server/pm/ScanPackageUtils;->assertProcessesAreValid(Lcom/android/server/pm/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/ScanPackageUtils;->getVendorPartitionVersion()I
+HSPLcom/android/server/pm/ScanPackageUtils;->scanPackageOnly(Lcom/android/server/pm/ScanRequest;Lcom/android/server/pm/PackageManagerServiceInjector;ZJ)Lcom/android/server/pm/ScanResult;
+HSPLcom/android/server/pm/ScanPackageUtils;->setInstantAppForUser(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageSetting;IZZ)V
 HSPLcom/android/server/pm/ScanPartition;-><init>(Landroid/content/pm/PackagePartitions$SystemPartition;)V
-HPLcom/android/server/pm/ScanPartition;-><init>(Ljava/io/File;Lcom/android/server/pm/ScanPartition;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)V
-HSPLcom/android/server/pm/ScanPartition;->scanFlagForPartition(Landroid/content/pm/PackagePartitions$SystemPartition;)I
-HPLcom/android/server/pm/ScanPartition;->toString()Ljava/lang/String;
-HPLcom/android/server/pm/ScanRequest;-><init>(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;Ljava/lang/String;)V
-HPLcom/android/server/pm/ScanResult;-><init>(Lcom/android/server/pm/ScanRequest;Lcom/android/server/pm/PackageSetting;Ljava/util/List;ZILandroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;Ljava/util/List;)V
+HSPLcom/android/server/pm/ScanPartition;-><init>(Ljava/io/File;Lcom/android/server/pm/ScanPartition;Lcom/android/server/pm/ApexManager$ActiveApexInfo;)V
+HSPLcom/android/server/pm/ScanPartition;->toString()Ljava/lang/String;
+HSPLcom/android/server/pm/ScanRequest;-><init>(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;Ljava/lang/String;)V
+HSPLcom/android/server/pm/ScanResult;-><init>(Lcom/android/server/pm/ScanRequest;Lcom/android/server/pm/PackageSetting;ZLandroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;Ljava/util/List;)V
 HSPLcom/android/server/pm/SettingBase;-><init>(II)V
 HSPLcom/android/server/pm/SettingBase;-><init>(Lcom/android/server/pm/SettingBase;)V
-HSPLcom/android/server/pm/SettingBase;->copySettingBase(Lcom/android/server/pm/SettingBase;)V
 HSPLcom/android/server/pm/SettingBase;->dispatchChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/SettingBase;->getFlags()I
-HSPLcom/android/server/pm/SettingBase;->getLegacyPermissionState()Lcom/android/server/pm/permission/LegacyPermissionState;
-HSPLcom/android/server/pm/SettingBase;->getPrivateFlags()I
-HSPLcom/android/server/pm/SettingBase;->onChanged()V
+HSPLcom/android/server/pm/SettingBase;->onChanged$2()V
 HSPLcom/android/server/pm/SettingBase;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/pm/SettingBase;->setFlags(I)Lcom/android/server/pm/SettingBase;
-HSPLcom/android/server/pm/SettingBase;->setPrivateFlags(I)Lcom/android/server/pm/SettingBase;
+HSPLcom/android/server/pm/SettingBase;->setPrivateFlags(I)V
 HSPLcom/android/server/pm/SettingBase;->unregisterObserver(Lcom/android/server/utils/Watcher;)V
 PLcom/android/server/pm/Settings$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/Settings;IJZ)V
 PLcom/android/server/pm/Settings$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/Settings$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/utils/WatchedArrayMap;)V
-PLcom/android/server/pm/Settings$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/Settings;)V
-PLcom/android/server/pm/Settings$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/Settings$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/Settings$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/Settings$1;-><init>(Lcom/android/server/pm/Settings;)V
 HSPLcom/android/server/pm/Settings$1;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/Settings$2;-><init>(Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/Settings$2;->createSnapshot()Lcom/android/server/pm/Settings;
 HSPLcom/android/server/pm/Settings$2;->createSnapshot()Ljava/lang/Object;
 HSPLcom/android/server/pm/Settings$3;-><init>(Lcom/android/server/pm/Settings;)V
-PLcom/android/server/pm/Settings$3;->accept(Ljava/lang/Integer;)V
 PLcom/android/server/pm/Settings$3;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/Settings$KeySetToValueMap;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
-PLcom/android/server/pm/Settings$KeySetToValueMap;->keySet()Ljava/util/Set;
-HPLcom/android/server/pm/Settings$KeySetToValueMap;->size()I
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;Lcom/android/server/pm/PackageManagerTracedLock;ZLcom/android/server/pm/permission/LegacyPermissionDataProvider;ILcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Landroid/os/Handler;)V
+HSPLcom/android/server/pm/Settings$KeySetToValueMap;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
+HSPLcom/android/server/pm/Settings$KeySetToValueMap;->keySet()Ljava/util/Set;
+HSPLcom/android/server/pm/Settings$KeySetToValueMap;->size()I
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;Lcom/android/server/pm/PackageManagerTracedLock;ZLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;ILcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Landroid/os/Handler;)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda0;->run()V
-HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;I)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$PersistenceHandler;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence$PersistenceHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->$r8$lambda$jSdj7sarDYdqZlpU1yKlMrhFaeI(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;Lcom/android/server/pm/PackageManagerTracedLock;ZLcom/android/server/pm/permission/LegacyPermissionDataProvider;ILcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Landroid/os/Handler;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->-$$Nest$fgetmInvokeWriteUserStateAsyncCallback(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;)Ljava/util/function/Consumer;
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->-$$Nest$mwritePendingStates(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;-><clinit>()V
-HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;-><init>(Lcom/android/permission/persistence/RuntimePermissionsPersistence;Ljava/util/function/Consumer;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getExtendedFingerprint(J)Ljava/lang/String;
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;-><init>(Lcom/android/permission/persistence/RuntimePermissionsPersistence;Lcom/android/server/pm/Settings$3;)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getPackagePermissions(ILcom/android/server/utils/WatchedArrayMap;)Ljava/util/Map;
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getPermissionsFromPermissionsState(Lcom/android/server/pm/permission/LegacyPermissionState;I)Ljava/util/List;
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getShareUsersPermissions(ILcom/android/server/utils/WatchedArrayMap;)Ljava/util/Map;
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->lambda$writeStateForUser$0(Lcom/android/server/pm/PackageManagerTracedLock;ZLcom/android/server/pm/permission/LegacyPermissionDataProvider;ILcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Landroid/os/Handler;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->nextWritePermissionDelayMillis()J
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readPermissionsState(Ljava/util/List;Lcom/android/server/pm/permission/LegacyPermissionState;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readStateForUserSync(ILcom/android/server/pm/Settings$VersionInfo;Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Ljava/io/File;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setPermissionControllerVersion(J)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->uniformRandom(DD)J
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePendingStates()V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writeStateForUser(ILcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;Z)V
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writeStateForUser(ILcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;Z)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writeStateForUserAsync(I)V
-HSPLcom/android/server/pm/Settings$VersionInfo;-><init>()V
-PLcom/android/server/pm/Settings;->$r8$lambda$53NmgrwLNm2y5xSEATqhfDNuHBU(Lcom/android/server/pm/Settings;Lcom/android/server/pm/SharedUserSetting;)V
-PLcom/android/server/pm/Settings;->$r8$lambda$xF8vBosZYCuleRIdy4wr1C_PPCw(Lcom/android/server/pm/Settings;IJZ)V
-PLcom/android/server/pm/Settings;->-$$Nest$fgetmHandler(Lcom/android/server/pm/Settings;)Landroid/os/Handler;
-PLcom/android/server/pm/Settings;->-$$Nest$fgetmLock(Lcom/android/server/pm/Settings;)Lcom/android/server/pm/PackageManagerTracedLock;
-PLcom/android/server/pm/Settings;->-$$Nest$fgetmPermissionDataProvider(Lcom/android/server/pm/Settings;)Lcom/android/server/pm/permission/LegacyPermissionDataProvider;
-PLcom/android/server/pm/Settings;->-$$Nest$fgetmRuntimePermissionsPersistence(Lcom/android/server/pm/Settings;)Lcom/android/server/pm/Settings$RuntimePermissionPersistence;
-HSPLcom/android/server/pm/Settings;->-$$Nest$fgetmWatchable(Lcom/android/server/pm/Settings;)Lcom/android/server/utils/WatchableImpl;
 HSPLcom/android/server/pm/Settings;-><clinit>()V
 HSPLcom/android/server/pm/Settings;-><init>(Lcom/android/server/pm/Settings;)V
-HSPLcom/android/server/pm/Settings;-><init>(Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings-IA;)V
-HSPLcom/android/server/pm/Settings;-><init>(Ljava/io/File;Lcom/android/permission/persistence/RuntimePermissionsPersistence;Lcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;)V
+HSPLcom/android/server/pm/Settings;-><init>(Ljava/io/File;Lcom/android/permission/persistence/RuntimePermissionsPersistence;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;)V
 HSPLcom/android/server/pm/Settings;->addInstallerPackageNames(Lcom/android/server/pm/InstallSource;)V
 HSPLcom/android/server/pm/Settings;->addPackageLPw(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;IIILjava/util/UUID;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/Settings;->addPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;)V
-HSPLcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;III)Lcom/android/server/pm/SharedUserSetting;
+HSPLcom/android/server/pm/Settings;->addSharedUserLPw(IIILjava/lang/String;)Lcom/android/server/pm/SharedUserSetting;
 PLcom/android/server/pm/Settings;->checkAndPruneSharedUserLPw(Lcom/android/server/pm/SharedUserSetting;Z)Z
-HPLcom/android/server/pm/Settings;->createMimeGroups(Ljava/util/Set;)Ljava/util/Map;
-HPLcom/android/server/pm/Settings;->createNewSetting(Ljava/lang/String;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILandroid/os/UserHandle;ZZZZLcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J[Z[Ljava/lang/String;[JLjava/util/Set;Ljava/util/UUID;I[B)Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/Settings;->disableSystemPackageLPw(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/Settings;->dispatchChange(Lcom/android/server/utils/Watchable;)V
 PLcom/android/server/pm/Settings;->dumpGidsLPr(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
-HPLcom/android/server/pm/Settings;->dumpInstallPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/permission/LegacyPermissionState;Ljava/util/List;)V
-PLcom/android/server/pm/Settings;->dumpPackageLPr(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/permission/LegacyPermissionState;Ljava/text/SimpleDateFormat;Ljava/util/Date;Ljava/util/List;ZZ)V
-HPLcom/android/server/pm/Settings;->dumpPackagesLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
-PLcom/android/server/pm/Settings;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;)V
-HPLcom/android/server/pm/Settings;->dumpPreferred(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+HPLcom/android/server/pm/Settings;->dumpInstallPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/permission/LegacyPermissionState;Ljava/util/List;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;]Ljava/util/Collection;Ljava/util/Collections$EmptyList;,Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;,Ljava/util/Collections$EmptyIterator;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/Settings;->dumpPackageLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/permission/LegacyPermissionState;Ljava/text/SimpleDateFormat;Ljava/util/Date;Ljava/util/List;ZZ)V
 HPLcom/android/server/pm/Settings;->dumpRuntimePermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Ljava/util/Collection;Z)V
-HPLcom/android/server/pm/Settings;->dumpSharedUsersLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
-HPLcom/android/server/pm/Settings;->dumpSplitNames(Ljava/io/PrintWriter;Lcom/android/server/pm/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/Settings;->editPreferredActivitiesLPw(I)Lcom/android/server/pm/PreferredIntentResolver;
 HSPLcom/android/server/pm/Settings;->findOrCreateVersion(Ljava/lang/String;)Lcom/android/server/pm/Settings$VersionInfo;
-PLcom/android/server/pm/Settings;->getActiveUsers(Lcom/android/server/pm/UserManagerService;Z)Ljava/util/List;
 PLcom/android/server/pm/Settings;->getAllSharedUsersLPw()Ljava/util/Collection;
-PLcom/android/server/pm/Settings;->getAllUsers(Lcom/android/server/pm/UserManagerService;)Ljava/util/List;
-PLcom/android/server/pm/Settings;->getApplicationEnabledSettingLPr(Ljava/lang/String;I)I
-HPLcom/android/server/pm/Settings;->getComponentEnabledSettingLPr(Landroid/content/ComponentName;I)I
-HPLcom/android/server/pm/Settings;->getCrossProfileIntentResolver(I)Lcom/android/server/pm/CrossProfileIntentResolver;
-HSPLcom/android/server/pm/Settings;->getDisabledSystemPackagesLocked()Lcom/android/server/utils/WatchedArrayMap;
-HPLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-HSPLcom/android/server/pm/Settings;->getInternalVersion()Lcom/android/server/pm/Settings$VersionInfo;
-PLcom/android/server/pm/Settings;->getKeySetManagerService()Lcom/android/server/pm/KeySetManagerService;
+HSPLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/Settings;->getPackageLPr(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/Settings;->getPackagesLocked()Lcom/android/server/utils/WatchedArrayMap;
 HSPLcom/android/server/pm/Settings;->getRenamedPackageLPr(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/server/pm/Settings;->getSettingLPr(I)Lcom/android/server/pm/SettingBase;
-HSPLcom/android/server/pm/Settings;->getSettingsFile()Lcom/android/server/pm/ResilientAtomicFile;
-HPLcom/android/server/pm/Settings;->getSharedUserLPw(Ljava/lang/String;IIZ)Lcom/android/server/pm/SharedUserSetting;
+HSPLcom/android/server/pm/Settings;->getSettingLPr(I)Lcom/android/server/pm/SettingBase;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/pm/Settings;->getSharedUserLPw(Ljava/lang/String;Z)Lcom/android/server/pm/SharedUserSetting;
 HSPLcom/android/server/pm/Settings;->getSharedUserSettingLPr(Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/SharedUserSetting;
-HPLcom/android/server/pm/Settings;->getSharedUserSettingLPr(Ljava/lang/String;)Lcom/android/server/pm/SharedUserSetting;
 HSPLcom/android/server/pm/Settings;->getUserPackagesStateFile(I)Lcom/android/server/pm/ResilientAtomicFile;
-HSPLcom/android/server/pm/Settings;->getUserRuntimePermissionsFile(I)Ljava/io/File;
 HSPLcom/android/server/pm/Settings;->getUserSystemDirectory(I)Ljava/io/File;
-HPLcom/android/server/pm/Settings;->getUsers(Lcom/android/server/pm/UserManagerService;ZZ)Ljava/util/List;
+HSPLcom/android/server/pm/Settings;->getUsers(Lcom/android/server/pm/UserManagerService;ZZ)Ljava/util/List;
 PLcom/android/server/pm/Settings;->getVolumePackagesLPr(Ljava/lang/String;)Ljava/util/List;
-HPLcom/android/server/pm/Settings;->insertPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/Settings;->invalidatePackageCache()V
-PLcom/android/server/pm/Settings;->lambda$pruneSharedUsersLPw$0(Lcom/android/server/pm/SharedUserSetting;)V
-PLcom/android/server/pm/Settings;->lambda$writePackageRestrictionsLPr$1(IJZ)V
-HSPLcom/android/server/pm/Settings;->makeCache()Lcom/android/server/utils/SnapshotCache;
-PLcom/android/server/pm/Settings;->onChanged()V
-HSPLcom/android/server/pm/Settings;->parseAppId(Lcom/android/modules/utils/TypedXmlPullParser;)I
-HSPLcom/android/server/pm/Settings;->parseSharedUserAppId(Lcom/android/modules/utils/TypedXmlPullParser;)I
-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
-PLcom/android/server/pm/Settings;->pruneRenamedPackagesLPw()V
-PLcom/android/server/pm/Settings;->pruneSharedUsersLPw()V
+PLcom/android/server/pm/Settings;->permissionFlagsToString(I)Ljava/lang/String;
+HPLcom/android/server/pm/Settings;->printFlags(Ljava/io/PrintWriter;I[Ljava/lang/Object;)V+]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;
 HSPLcom/android/server/pm/Settings;->readComponentsLPr(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/util/ArraySet;
-HSPLcom/android/server/pm/Settings;->readCrossProfileIntentFiltersLPw(Lcom/android/modules/utils/TypedXmlPullParser;I)V
+HSPLcom/android/server/pm/Settings;->readCrossProfileIntentFiltersLPw(ILcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/pm/Settings;->readDefaultApps(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
-HSPLcom/android/server/pm/Settings;->readDefaultAppsLPw(Lorg/xmlpull/v1/XmlPullParser;I)V
-HSPLcom/android/server/pm/Settings;->readLPw(Lcom/android/server/pm/Computer;Ljava/util/List;)Z
+HSPLcom/android/server/pm/Settings;->readDisabledSysPackageLPw(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/List;)V
+HSPLcom/android/server/pm/Settings;->readLPw(Lcom/android/server/pm/ComputerLocked;Ljava/util/List;)Z
 HSPLcom/android/server/pm/Settings;->readPackageLPw(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/ArrayList;Landroid/util/ArrayMap;Ljava/util/List;Landroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/Settings;->readPackageRestrictionsLPr(ILandroid/util/ArrayMap;)V
-HSPLcom/android/server/pm/Settings;->readPersistentPreferredActivitiesLPw(Lcom/android/modules/utils/TypedXmlPullParser;I)V
-HSPLcom/android/server/pm/Settings;->readPreferredActivitiesLPw(Lcom/android/modules/utils/TypedXmlPullParser;I)V
-HSPLcom/android/server/pm/Settings;->readSettingsLPw(Lcom/android/server/pm/Computer;Ljava/util/List;Landroid/util/ArrayMap;)Z
+HSPLcom/android/server/pm/Settings;->readPersistentPreferredActivitiesLPw(ILcom/android/modules/utils/TypedXmlPullParser;)V
+HSPLcom/android/server/pm/Settings;->readPreferredActivitiesLPw(ILcom/android/modules/utils/TypedXmlPullParser;)V
+HSPLcom/android/server/pm/Settings;->readSettingsLPw(Lcom/android/server/pm/ComputerLocked;Ljava/util/List;Landroid/util/ArrayMap;)Z
 HSPLcom/android/server/pm/Settings;->readSharedUserLPw(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/ArrayList;Ljava/util/List;)V
+PLcom/android/server/pm/Settings;->registerAppIdLPw(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/Settings;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/pm/Settings;->registerObservers()V
+HSPLcom/android/server/pm/Settings;->registerObservers$1()V
 PLcom/android/server/pm/Settings;->removeAppIdLPw(I)V
-PLcom/android/server/pm/Settings;->removeRenamedPackageLPw(Ljava/lang/String;)V
+PLcom/android/server/pm/Settings;->removeFilters(Lcom/android/server/pm/PreferredIntentResolver;Ljava/util/List;)V
 PLcom/android/server/pm/Settings;->setPermissionControllerVersion(J)V
-HSPLcom/android/server/pm/Settings;->snapshot()Lcom/android/server/pm/Settings;
 PLcom/android/server/pm/Settings;->systemReady(Lcom/android/server/pm/resolution/ComponentResolver;)Ljava/util/ArrayList;
-HPLcom/android/server/pm/Settings;->updatePackageSetting(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J[Z[Ljava/lang/String;[JLjava/util/Set;Ljava/util/UUID;I[BZ)V
-PLcom/android/server/pm/Settings;->writeAllRuntimePermissionsLPr()V
 PLcom/android/server/pm/Settings;->writeAllUsersPackageRestrictionsLPr(Z)V
 PLcom/android/server/pm/Settings;->writeArchiveStateLPr(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/pkg/ArchiveState;)V
 PLcom/android/server/pm/Settings;->writeBlockUninstallPackagesLPr(Lcom/android/modules/utils/TypedXmlSerializer;I)V
 PLcom/android/server/pm/Settings;->writeCrossProfileIntentFiltersLPr(Lcom/android/modules/utils/TypedXmlSerializer;I)V
 PLcom/android/server/pm/Settings;->writeDefaultApps(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;)V
-PLcom/android/server/pm/Settings;->writeDefaultAppsLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
+PLcom/android/server/pm/Settings;->writeDisabledSysPackageLPr(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/Settings;->writeKernelMappingLPr()V
-HPLcom/android/server/pm/Settings;->writeKeySetAliasesLPr(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
-HPLcom/android/server/pm/Settings;->writeLPr(Lcom/android/server/pm/Computer;Z)V
-HPLcom/android/server/pm/Settings;->writeMimeGroupLPr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/Map;)V
-HPLcom/android/server/pm/Settings;->writePackageLPr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/ArrayList;Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/Settings;->writePackageListLPr()V
+PLcom/android/server/pm/Settings;->writeKernelMappingLPr(Lcom/android/server/pm/PackageSetting;)V
+HPLcom/android/server/pm/Settings;->writeLPr(Lcom/android/server/pm/Computer;Z)V+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;
+HPLcom/android/server/pm/Settings;->writePackageLPr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/ArrayList;Lcom/android/server/pm/PackageSetting;)V+]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator;,Ljava/util/Collections$EmptyIterator;]Ljava/util/Map;Ljava/util/Collections$EmptyMap;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;,Ljava/util/Collections$EmptySet;
 PLcom/android/server/pm/Settings;->writePackageListLPr(I)V
-HPLcom/android/server/pm/Settings;->writePackageListLPrInternal(I)V
-HPLcom/android/server/pm/Settings;->writePackageRestrictions(IJZ)V
-PLcom/android/server/pm/Settings;->writePackageRestrictions([Ljava/lang/Integer;)V
+HPLcom/android/server/pm/Settings;->writePackageListLPrInternal(I)V+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageInternal;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/io/File;Ljava/io/File;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;
+HPLcom/android/server/pm/Settings;->writePackageRestrictions(IJZ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;
 PLcom/android/server/pm/Settings;->writePackageRestrictionsLPr(IZ)V
 PLcom/android/server/pm/Settings;->writePersistentPreferredActivitiesLPr(Lcom/android/modules/utils/TypedXmlSerializer;I)V
-HPLcom/android/server/pm/Settings;->writePreferredActivitiesLPr(Lcom/android/modules/utils/TypedXmlSerializer;IZ)V
-HPLcom/android/server/pm/Settings;->writeSigningKeySetLPr(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
-HPLcom/android/server/pm/Settings;->writeUpgradeKeySetsLPr(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
-HPLcom/android/server/pm/Settings;->writeUserRestrictionsLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/Settings;->writeUsesSdkLibLPw(Lcom/android/modules/utils/TypedXmlSerializer;[Ljava/lang/String;[J[Z)V
-HPLcom/android/server/pm/Settings;->writeUsesStaticLibLPw(Lcom/android/modules/utils/TypedXmlSerializer;[Ljava/lang/String;[J)V
+PLcom/android/server/pm/Settings;->writePreferredActivitiesLPr(ILcom/android/modules/utils/TypedXmlSerializer;Z)V
+PLcom/android/server/pm/Settings;->writeUsesSdkLibLPw(Lcom/android/modules/utils/TypedXmlSerializer;[Ljava/lang/String;[J[Z)V
+PLcom/android/server/pm/Settings;->writeUsesStaticLibLPw(Lcom/android/modules/utils/TypedXmlSerializer;[Ljava/lang/String;[J)V
 HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;-><init>(Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->children()Lcom/android/server/pm/SettingsXml$ChildSection;
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getBoolean(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getBoolean(Ljava/lang/String;Z)Z
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getInt(Ljava/lang/String;)I
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getInt(Ljava/lang/String;I)I
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getName()Ljava/lang/String;
+PLcom/android/server/pm/SettingsXml$ReadSectionImpl;-><init>(Lcom/android/modules/utils/TypedXmlSerializer;)V
+PLcom/android/server/pm/SettingsXml$ReadSectionImpl;->attribute(ILjava/lang/String;)V
+HPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->attribute(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->children()Lcom/android/server/pm/SettingsXml$ReadSectionImpl;
+HPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->close()V+]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Ljava/util/Stack;Ljava/util/Stack;
+HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getInt(ILjava/lang/String;)I
 HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->getString(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->moveToFirstTag()V
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->moveToNext()Z
-HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->moveToNext(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->moveToNextInternal(Ljava/lang/String;)Z
-PLcom/android/server/pm/SettingsXml$Serializer;-><init>(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/pm/SettingsXml$Serializer;-><init>(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/SettingsXml$Serializer-IA;)V
-PLcom/android/server/pm/SettingsXml$Serializer;->close()V
-PLcom/android/server/pm/SettingsXml$Serializer;->startSection(Ljava/lang/String;)Lcom/android/server/pm/SettingsXml$WriteSection;
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;->-$$Nest$mcloseCompletely(Lcom/android/server/pm/SettingsXml$WriteSectionImpl;)V
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;-><init>(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;-><init>(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/SettingsXml$WriteSectionImpl-IA;)V
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;->attribute(Ljava/lang/String;I)Lcom/android/server/pm/SettingsXml$WriteSection;
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;->attribute(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/SettingsXml$WriteSection;
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;->attribute(Ljava/lang/String;Z)Lcom/android/server/pm/SettingsXml$WriteSection;
-HPLcom/android/server/pm/SettingsXml$WriteSectionImpl;->close()V
-PLcom/android/server/pm/SettingsXml$WriteSectionImpl;->closeCompletely()V
-HPLcom/android/server/pm/SettingsXml$WriteSectionImpl;->finish()V
-HPLcom/android/server/pm/SettingsXml$WriteSectionImpl;->startSection(Ljava/lang/String;)Lcom/android/server/pm/SettingsXml$WriteSection;
-HSPLcom/android/server/pm/SettingsXml;->parser(Lcom/android/modules/utils/TypedXmlPullParser;)Lcom/android/server/pm/SettingsXml$ReadSection;
-PLcom/android/server/pm/SettingsXml;->serializer(Lcom/android/modules/utils/TypedXmlSerializer;)Lcom/android/server/pm/SettingsXml$Serializer;
-PLcom/android/server/pm/SharedLibrariesImpl$$ExternalSyntheticLambda0;-><init>()V
+HPLcom/android/server/pm/SettingsXml$ReadSectionImpl;->startSection(Ljava/lang/String;)V
+PLcom/android/server/pm/SharedLibrariesImpl$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/pm/SharedLibrariesImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/SharedLibrariesImpl$1;-><init>(Lcom/android/server/pm/SharedLibrariesImpl;)V
 HSPLcom/android/server/pm/SharedLibrariesImpl$1;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl$2;-><init>(Lcom/android/server/pm/SharedLibrariesImpl;Lcom/android/server/pm/SharedLibrariesImpl;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl$2;->createSnapshot()Lcom/android/server/pm/SharedLibrariesImpl;
 HSPLcom/android/server/pm/SharedLibrariesImpl$2;->createSnapshot()Ljava/lang/Object;
-PLcom/android/server/pm/SharedLibrariesImpl;->$r8$lambda$x5pbt1IWAO8LsYjbRIDnwkV8JxE(Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl;->-$$Nest$fgetmWatchable(Lcom/android/server/pm/SharedLibrariesImpl;)Lcom/android/server/utils/WatchableImpl;
 HSPLcom/android/server/pm/SharedLibrariesImpl;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;)V
 HSPLcom/android/server/pm/SharedLibrariesImpl;-><init>(Lcom/android/server/pm/SharedLibrariesImpl;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl;-><init>(Lcom/android/server/pm/SharedLibrariesImpl;Lcom/android/server/pm/SharedLibrariesImpl-IA;)V
 HSPLcom/android/server/pm/SharedLibrariesImpl;->addBuiltInSharedLibraryLPw(Lcom/android/server/SystemConfig$SharedLibraryEntry;)V
-HPLcom/android/server/pm/SharedLibrariesImpl;->addSharedLibraryLPr(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Set;Landroid/content/pm/SharedLibraryInfo;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
 PLcom/android/server/pm/SharedLibrariesImpl;->applyDefiningSharedLibraryUpdateLPr(Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/SharedLibraryInfo;Ljava/util/function/BiConsumer;)V
-HPLcom/android/server/pm/SharedLibrariesImpl;->collectSharedLibraryInfos(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
-HPLcom/android/server/pm/SharedLibrariesImpl;->collectSharedLibraryInfos(Ljava/util/List;[J[[Ljava/lang/String;[ZLjava/lang/String;Ljava/lang/String;ZILjava/util/ArrayList;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
-HPLcom/android/server/pm/SharedLibrariesImpl;->commitSharedLibraryChanges(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/List;Ljava/util/Map;I)Ljava/util/ArrayList;
+PLcom/android/server/pm/SharedLibrariesImpl;->collectSharedLibraryInfos(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
+PLcom/android/server/pm/SharedLibrariesImpl;->collectSharedLibraryInfos(Ljava/util/List;[J[[Ljava/lang/String;[ZLjava/lang/String;Ljava/lang/String;ZILjava/util/ArrayList;Ljava/util/Map;Ljava/util/Map;Ljava/util/List;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/SharedLibrariesImpl;->commitSharedLibraryChanges(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/List;Ljava/util/Map;I)Ljava/util/ArrayList;
 HSPLcom/android/server/pm/SharedLibrariesImpl;->commitSharedLibraryInfoLPw(Landroid/content/pm/SharedLibraryInfo;)V
 HSPLcom/android/server/pm/SharedLibrariesImpl;->dispatchChange(Lcom/android/server/utils/Watchable;)V
-HPLcom/android/server/pm/SharedLibrariesImpl;->executeSharedLibrariesUpdateLPw(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/ArrayList;[I)V
-PLcom/android/server/pm/SharedLibrariesImpl;->getAll()Lcom/android/server/utils/WatchedArrayMap;
-HPLcom/android/server/pm/SharedLibrariesImpl;->getAllowedSharedLibInfos(Lcom/android/server/pm/InstallRequest;)Ljava/util/List;
-PLcom/android/server/pm/SharedLibrariesImpl;->getLibraryPackage(Lcom/android/server/pm/Computer;Landroid/content/pm/SharedLibraryInfo;)Lcom/android/server/pm/pkg/PackageStateInternal;
-HSPLcom/android/server/pm/SharedLibrariesImpl;->getSharedLibraryInfo(Ljava/lang/String;J)Landroid/content/pm/SharedLibraryInfo;
-HSPLcom/android/server/pm/SharedLibrariesImpl;->getStaticLibraryInfos(Ljava/lang/String;)Lcom/android/server/utils/WatchedLongSparseArray;
-PLcom/android/server/pm/SharedLibrariesImpl;->lambda$executeSharedLibrariesUpdateLPw$0(Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl;->makeCache()Lcom/android/server/utils/SnapshotCache;
+PLcom/android/server/pm/SharedLibrariesImpl;->executeSharedLibrariesUpdateLPw(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/ArrayList;[I)V
+HSPLcom/android/server/pm/SharedLibrariesImpl;->getAllowedSharedLibInfos(Lcom/android/server/pm/InstallRequest;)Ljava/util/List;
+HSPLcom/android/server/pm/SharedLibrariesImpl;->getSharedLibraryInfo(JLjava/lang/String;)Landroid/content/pm/SharedLibraryInfo;
 PLcom/android/server/pm/SharedLibrariesImpl;->pruneUnusedStaticSharedLibraries(Lcom/android/server/pm/Computer;JJ)Z
 HSPLcom/android/server/pm/SharedLibrariesImpl;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl;->registerObservers()V
+PLcom/android/server/pm/SharedLibrariesImpl;->removeSharedLibrary(JLjava/lang/String;)V
 HSPLcom/android/server/pm/SharedLibrariesImpl;->setDeletePackageHelper(Lcom/android/server/pm/DeletePackageHelper;)V
-HSPLcom/android/server/pm/SharedLibrariesImpl;->snapshot()Lcom/android/server/pm/SharedLibrariesRead;
-HPLcom/android/server/pm/SharedLibrariesImpl;->updateAllSharedLibrariesLPw(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)Ljava/util/ArrayList;
-HPLcom/android/server/pm/SharedLibrariesImpl;->updateSharedLibraries(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)V
-PLcom/android/server/pm/SharedLibraryUtils;->addSharedLibraryToPackageVersionMap(Ljava/util/Map;Landroid/content/pm/SharedLibraryInfo;)Z
-HPLcom/android/server/pm/SharedLibraryUtils;->getSharedLibraryInfo(Ljava/lang/String;JLjava/util/Map;Ljava/util/Map;)Landroid/content/pm/SharedLibraryInfo;
+PLcom/android/server/pm/SharedLibrariesImpl;->updateAllSharedLibrariesLPw(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)Ljava/util/ArrayList;
+PLcom/android/server/pm/SharedLibrariesImpl;->updateSharedLibraries(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)V
 HSPLcom/android/server/pm/SharedUserSetting$1;-><init>(Lcom/android/server/pm/SharedUserSetting;)V
 HSPLcom/android/server/pm/SharedUserSetting$1;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/SharedUserSetting$2;-><init>(Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/SharedUserSetting$2;->createSnapshot()Lcom/android/server/pm/SharedUserSetting;
 HSPLcom/android/server/pm/SharedUserSetting$2;->createSnapshot()Ljava/lang/Object;
+HSPLcom/android/server/pm/SharedUserSetting;-><init>(IILjava/lang/String;)V
 HSPLcom/android/server/pm/SharedUserSetting;-><init>(Lcom/android/server/pm/SharedUserSetting;)V
-HSPLcom/android/server/pm/SharedUserSetting;-><init>(Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting-IA;)V
-HSPLcom/android/server/pm/SharedUserSetting;-><init>(Ljava/lang/String;II)V
 HSPLcom/android/server/pm/SharedUserSetting;->addPackage(Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/SharedUserSetting;->addProcesses(Ljava/util/Map;)V
-HPLcom/android/server/pm/SharedUserSetting;->fixSeInfoLocked()V
-PLcom/android/server/pm/SharedUserSetting;->getDisabledPackageSettings()Lcom/android/server/utils/WatchedArraySet;
-PLcom/android/server/pm/SharedUserSetting;->getPackageSettings()Lcom/android/server/utils/WatchedArraySet;
-HPLcom/android/server/pm/SharedUserSetting;->getPackageStates()Landroid/util/ArraySet;
-HPLcom/android/server/pm/SharedUserSetting;->getPackages()Ljava/util/List;
-PLcom/android/server/pm/SharedUserSetting;->getSeInfoTargetSdkVersion()I
-PLcom/android/server/pm/SharedUserSetting;->getSigningDetails()Landroid/content/pm/SigningDetails;
-HPLcom/android/server/pm/SharedUserSetting;->isPrivileged()Z
-HSPLcom/android/server/pm/SharedUserSetting;->makeCache()Lcom/android/server/utils/SnapshotCache;
-HSPLcom/android/server/pm/SharedUserSetting;->registerObservers()V
-HSPLcom/android/server/pm/SharedUserSetting;->snapshot()Lcom/android/server/pm/SharedUserSetting;
+PLcom/android/server/pm/SharedUserSetting;->addProcesses(Ljava/util/Map;)V
+PLcom/android/server/pm/SharedUserSetting;->fixSeInfoLocked()V
+PLcom/android/server/pm/SharedUserSetting;->getPackageStates()Landroid/util/ArraySet;
+PLcom/android/server/pm/SharedUserSetting;->getPackages()Ljava/util/List;
+PLcom/android/server/pm/SharedUserSetting;->isPrivileged()Z
 HSPLcom/android/server/pm/SharedUserSetting;->snapshot()Ljava/lang/Object;
 PLcom/android/server/pm/SharedUserSetting;->toString()Ljava/lang/String;
-HPLcom/android/server/pm/SharedUserSetting;->updateProcesses()V
-PLcom/android/server/pm/ShortcutBitmapSaver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ShortcutBitmapSaver;)V
-PLcom/android/server/pm/ShortcutBitmapSaver$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/pm/ShortcutBitmapSaver$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/pm/ShortcutBitmapSaver;->$r8$lambda$0cDwbUuQexB0Dry-KJy6ApKQ1Ic(Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/pm/ShortcutBitmapSaver;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutBitmapSaver;->lambda$waitForAllSavesLocked$0(Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/server/pm/SharedUserSetting;->updateProcesses()V
+PLcom/android/server/pm/ShortcutBitmapSaver$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/ShortcutBitmapSaver$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/pm/ShortcutBitmapSaver;-><init>(Lcom/android/server/pm/ShortcutService;)V
+PLcom/android/server/pm/ShortcutBitmapSaver;->dumpLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/pm/ShortcutBitmapSaver;->removeIcon(Landroid/content/pm/ShortcutInfo;)V
 PLcom/android/server/pm/ShortcutBitmapSaver;->waitForAllSavesLocked()Z
+PLcom/android/server/pm/ShortcutDumpFiles$$ExternalSyntheticLambda0;-><init>([B)V
+PLcom/android/server/pm/ShortcutDumpFiles$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutDumpFiles;-><init>(Lcom/android/server/pm/ShortcutService;)V
+PLcom/android/server/pm/ShortcutDumpFiles;->dumpAll(Ljava/io/PrintWriter;)V
+PLcom/android/server/pm/ShortcutDumpFiles;->save(Ljava/lang/String;Ljava/util/function/Consumer;)Z
 PLcom/android/server/pm/ShortcutLauncher;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;I)V
-PLcom/android/server/pm/ShortcutLauncher;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;ILcom/android/server/pm/ShortcutPackageInfo;)V
-PLcom/android/server/pm/ShortcutLauncher;->getPinnedShortcutIds(Ljava/lang/String;I)Landroid/util/ArraySet;
+PLcom/android/server/pm/ShortcutLauncher;->getOwnerUserId()I
+PLcom/android/server/pm/ShortcutLauncher;->getPinnedShortcutIds(ILjava/lang/String;)Landroid/util/ArraySet;
+PLcom/android/server/pm/ShortcutLauncher;->getShortcutPackageItemFile()Ljava/io/File;
+PLcom/android/server/pm/ShortcutLauncher;->loadFromFile(Ljava/io/File;Lcom/android/server/pm/ShortcutUser;IZ)Lcom/android/server/pm/ShortcutLauncher;
+PLcom/android/server/pm/ShortcutLauncher;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;Z)V
 PLcom/android/server/pm/ShortcutNonPersistentUser;-><init>(I)V
-PLcom/android/server/pm/ShortcutNonPersistentUser;->hasHostPackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/ShortcutNonPersistentUser;->setShortcutHostPackage(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/ShortcutNonPersistentUser;->dump(Ljava/io/PrintWriter;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda10;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda13;-><init>(ILjava/util/List;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda14;-><init>(I)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda17;-><init>(J)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/ShortcutPackage;J)V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/pm/ShortcutPackage;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda24;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda20;-><init>(ILandroid/util/ArraySet;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda23;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda28;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutService;[Z)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;Z)V
 PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda29;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutService;Landroid/content/res/Resources;)V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda36;-><init>(Ljava/util/function/Consumer;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda2;-><init>(Landroid/content/res/Resources;Lcom/android/server/pm/ShortcutService;Ljava/util/List;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda2;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda36;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda36;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda38;-><init>()V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda38;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda7;-><init>()V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda9;-><init>()V
-PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$PHafQNXd3rG88ujYp-2FnsxrvDY(Ljava/util/function/Consumer;Landroid/content/pm/ShortcutInfo;)Ljava/lang/Boolean;
-PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$siuXAQT-OivpKlIZX1n0iIppP6o(Lcom/android/server/pm/ShortcutPackage;Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V
-PLcom/android/server/pm/ShortcutPackage;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;)V
-PLcom/android/server/pm/ShortcutPackage;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;Lcom/android/server/pm/ShortcutPackageInfo;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda52;-><init>(I)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda52;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/lang/Object;II)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda7;-><init>(I)V
+HPLcom/android/server/pm/ShortcutPackage;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;)V
+PLcom/android/server/pm/ShortcutPackage;->addOrReplaceDynamicShortcut(Landroid/content/pm/ShortcutInfo;)V
 PLcom/android/server/pm/ShortcutPackage;->adjustRanks()V
-PLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncludedWithIds(Ljava/util/List;Z)V
-PLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Landroid/content/pm/ShortcutInfo;Z)V
-PLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Ljava/lang/String;Z)V
-PLcom/android/server/pm/ShortcutPackage;->filter(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V
-PLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;IZ)V
+PLcom/android/server/pm/ShortcutPackage;->deleteAllDynamicShortcuts()Ljava/util/List;
+PLcom/android/server/pm/ShortcutPackage;->deleteOrDisableWithId(Ljava/lang/String;ZZZIZ)Landroid/content/pm/ShortcutInfo;
+PLcom/android/server/pm/ShortcutPackage;->enforceShortcutCountsBeforeOperation(ILjava/util/List;)V
+PLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncluded(Ljava/util/List;)V
+PLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncludedWithIds(Ljava/util/List;)V
+PLcom/android/server/pm/ShortcutPackage;->ensureNoBitmapIconIfShortcutIsLongLived(Ljava/util/List;)V
+PLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Landroid/content/pm/ShortcutInfo;)V
+HPLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;IZ)V
 PLcom/android/server/pm/ShortcutPackage;->findShortcutById(Ljava/lang/String;)Landroid/content/pm/ShortcutInfo;
 PLcom/android/server/pm/ShortcutPackage;->forEachShortcut(Ljava/util/function/Consumer;)V
 PLcom/android/server/pm/ShortcutPackage;->forEachShortcutMutate(Ljava/util/function/Consumer;)V
-PLcom/android/server/pm/ShortcutPackage;->forEachShortcutStopWhen(Ljava/util/function/Function;)V
-PLcom/android/server/pm/ShortcutPackage;->getPackageResources()Landroid/content/res/Resources;
-PLcom/android/server/pm/ShortcutPackage;->getShortcutCount()I
+HPLcom/android/server/pm/ShortcutPackage;->forEachShortcutStopWhen(Ljava/util/function/Function;)V
+PLcom/android/server/pm/ShortcutPackage;->forceDeleteShortcutInner(Ljava/lang/String;)V
+PLcom/android/server/pm/ShortcutPackage;->forceReplaceShortcutInner(Landroid/content/pm/ShortcutInfo;)V
+PLcom/android/server/pm/ShortcutPackage;->getApiCallCount(Z)I
+PLcom/android/server/pm/ShortcutPackage;->getOwnerUserId()I
 PLcom/android/server/pm/ShortcutPackage;->getShortcutPackageItemFile()Ljava/io/File;
-PLcom/android/server/pm/ShortcutPackage;->hasNoShortcut()Z
-PLcom/android/server/pm/ShortcutPackage;->hasShareTargets()Z
+PLcom/android/server/pm/ShortcutPackage;->incrementCountForActivity(Landroid/util/ArrayMap;Landroid/content/ComponentName;I)V
 PLcom/android/server/pm/ShortcutPackage;->isAppSearchEnabled()Z
 PLcom/android/server/pm/ShortcutPackage;->isShortcutExistsAndVisibleToPublisher(Ljava/lang/String;)Z
-PLcom/android/server/pm/ShortcutPackage;->lambda$findAll$13(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V
-PLcom/android/server/pm/ShortcutPackage;->lambda$forEachShortcut$37(Ljava/util/function/Consumer;Landroid/content/pm/ShortcutInfo;)Ljava/lang/Boolean;
-PLcom/android/server/pm/ShortcutPackage;->loadFromFile(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;Ljava/io/File;Z)Lcom/android/server/pm/ShortcutPackage;
-PLcom/android/server/pm/ShortcutPackage;->loadFromXml(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;Lcom/android/modules/utils/TypedXmlPullParser;Z)Lcom/android/server/pm/ShortcutPackage;
-PLcom/android/server/pm/ShortcutPackage;->parseIntent(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/content/Intent;
-HPLcom/android/server/pm/ShortcutPackage;->parseShortcut(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
-PLcom/android/server/pm/ShortcutPackage;->publishManifestShortcuts(Ljava/util/List;)Z
-PLcom/android/server/pm/ShortcutPackage;->rescanPackageIfNeeded(ZZ)Z
+PLcom/android/server/pm/ShortcutPackage;->loadFromFile(Lcom/android/server/pm/ShortcutUser;Ljava/io/File;Z)Lcom/android/server/pm/ShortcutPackage;
+PLcom/android/server/pm/ShortcutPackage;->loadFromXml(Lcom/android/server/pm/ShortcutUser;Lcom/android/modules/utils/TypedXmlPullParser;Z)Lcom/android/server/pm/ShortcutPackage;
+PLcom/android/server/pm/ShortcutPackage;->parseShortcut(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
+PLcom/android/server/pm/ShortcutPackage;->pushDynamicShortcut(Landroid/content/pm/ShortcutInfo;Ljava/util/List;)Z
+PLcom/android/server/pm/ShortcutPackage;->refreshPinnedFlags()V
+PLcom/android/server/pm/ShortcutPackage;->removeOrphans()Ljava/util/List;
+PLcom/android/server/pm/ShortcutPackage;->reportShortcutUsed(Landroid/app/usage/UsageStatsManagerInternal;Ljava/lang/String;)V
+HPLcom/android/server/pm/ShortcutPackage;->rescanPackageIfNeeded(ZZ)Z
 HPLcom/android/server/pm/ShortcutPackage;->saveShortcut(Lcom/android/modules/utils/TypedXmlSerializer;Landroid/content/pm/ShortcutInfo;ZZ)V
-PLcom/android/server/pm/ShortcutPackage;->saveShortcutsAsync(Ljava/util/Collection;)V
-PLcom/android/server/pm/ShortcutPackage;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;Z)V
+PLcom/android/server/pm/ShortcutPackage;->saveShortcut([Landroid/content/pm/ShortcutInfo;)V
+HPLcom/android/server/pm/ShortcutPackage;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;Z)V
 PLcom/android/server/pm/ShortcutPackage;->scheduleSaveToAppSearchLocked()V
 PLcom/android/server/pm/ShortcutPackage;->sortShortcutsToActivities()Landroid/util/ArrayMap;
-PLcom/android/server/pm/ShortcutPackageInfo;-><init>(JJLjava/util/ArrayList;Z)V
-PLcom/android/server/pm/ShortcutPackageInfo;->getVersionCode()J
-PLcom/android/server/pm/ShortcutPackageInfo;->isBackupAllowed()Z
-PLcom/android/server/pm/ShortcutPackageInfo;->isShadow()Z
+PLcom/android/server/pm/ShortcutPackage;->tryApiCall(Z)Z
+PLcom/android/server/pm/ShortcutPackageInfo;-><init>(JJLjava/util/ArrayList;)V
+PLcom/android/server/pm/ShortcutPackageInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/pm/ShortcutPackageInfo;->loadFromXml(Lcom/android/modules/utils/TypedXmlPullParser;Z)V
-PLcom/android/server/pm/ShortcutPackageInfo;->newEmpty()Lcom/android/server/pm/ShortcutPackageInfo;
 PLcom/android/server/pm/ShortcutPackageInfo;->saveToXml(Lcom/android/server/pm/ShortcutService;Lcom/android/modules/utils/TypedXmlSerializer;Z)V
-PLcom/android/server/pm/ShortcutPackageInfo;->updateFromPackageInfo(Landroid/content/pm/PackageInfo;)V
 PLcom/android/server/pm/ShortcutPackageItem$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ShortcutPackageItem;)V
 PLcom/android/server/pm/ShortcutPackageItem$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/ShortcutPackageItem;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;Lcom/android/server/pm/ShortcutPackageInfo;)V
+HPLcom/android/server/pm/ShortcutPackageItem;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;Lcom/android/server/pm/ShortcutPackageInfo;)V
 PLcom/android/server/pm/ShortcutPackageItem;->attemptToRestoreIfNeededAndSave()V
-PLcom/android/server/pm/ShortcutPackageItem;->getPackageInfo()Lcom/android/server/pm/ShortcutPackageInfo;
-PLcom/android/server/pm/ShortcutPackageItem;->getPackageName()Ljava/lang/String;
-PLcom/android/server/pm/ShortcutPackageItem;->getPackageUserId()I
-HPLcom/android/server/pm/ShortcutPackageItem;->getResilientFile(Ljava/io/File;)Lcom/android/server/pm/ResilientAtomicFile;
-PLcom/android/server/pm/ShortcutPackageItem;->getUser()Lcom/android/server/pm/ShortcutUser;
-PLcom/android/server/pm/ShortcutPackageItem;->saveShortcutPackageItem()V
-PLcom/android/server/pm/ShortcutPackageItem;->saveToFileLocked(Ljava/io/File;Z)V
+PLcom/android/server/pm/ShortcutPackageItem;->getResilientFile(Ljava/io/File;)Lcom/android/server/pm/ResilientAtomicFile;
+PLcom/android/server/pm/ShortcutPackageItem;->removeIcon(Landroid/content/pm/ShortcutInfo;)V
+PLcom/android/server/pm/ShortcutPackageItem;->saveToFileLocked(Ljava/io/File;)V
 PLcom/android/server/pm/ShortcutPackageItem;->scheduleSave()V
-PLcom/android/server/pm/ShortcutPackageItem;->waitForBitmapSaves()Z
+PLcom/android/server/pm/ShortcutPackageItem;->scheduleSaveToAppSearchLocked()V
+PLcom/android/server/pm/ShortcutPackageItem;->waitForBitmapSaves()V
+PLcom/android/server/pm/ShortcutParser;->parseShortcutAttributes(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/ComponentName;II)Landroid/content/pm/ShortcutInfo;
 PLcom/android/server/pm/ShortcutParser;->parseShortcuts(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
-PLcom/android/server/pm/ShortcutParser;->parseShortcutsOneFile(Lcom/android/server/pm/ShortcutService;Landroid/content/pm/ActivityInfo;Ljava/lang/String;ILjava/util/List;Ljava/util/List;)Ljava/util/List;
+HPLcom/android/server/pm/ShortcutParser;->parseShortcutsOneFile(Lcom/android/server/pm/ShortcutService;Landroid/content/pm/ActivityInfo;Ljava/lang/String;ILjava/util/List;Ljava/util/List;)Ljava/util/List;
 PLcom/android/server/pm/ShortcutRequestPinProcessor;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda10;-><init>(I)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/util/List;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda16;->run()V
-PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda18;-><init>()V
-PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/pm/ShortcutService;I)V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;I)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda27;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda5;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda5;->run()V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/ShortcutService;JI)V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda8;->run()V
-PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda7;-><init>(I)V
+PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda9;->run()V
-PLcom/android/server/pm/ShortcutService$1;-><init>()V
-PLcom/android/server/pm/ShortcutService$1;->test(Landroid/content/pm/ResolveInfo;)Z
+PLcom/android/server/pm/ShortcutService$1;-><init>(I)V
 PLcom/android/server/pm/ShortcutService$1;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/ShortcutService$2;-><init>()V
-PLcom/android/server/pm/ShortcutService$2;->test(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/pm/ShortcutService$2;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/ShortcutService$3$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ShortcutService$3;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/ShortcutService$3$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/pm/ShortcutService$3;-><init>(Lcom/android/server/pm/ShortcutService;)V
+PLcom/android/server/pm/ShortcutService$3;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 HPLcom/android/server/pm/ShortcutService$4$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/ShortcutService$4;II)V
 PLcom/android/server/pm/ShortcutService$4$$ExternalSyntheticLambda0;->run()V
-HPLcom/android/server/pm/ShortcutService$4$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/ShortcutService$4;I)V
+PLcom/android/server/pm/ShortcutService$4$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/ShortcutService$4;I)V
 PLcom/android/server/pm/ShortcutService$4$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/pm/ShortcutService$4;->$r8$lambda$T38dA-CIlJpPfJ4NeUI0t9KKVrc(Lcom/android/server/pm/ShortcutService$4;I)V
-PLcom/android/server/pm/ShortcutService$4;->$r8$lambda$hFVl7KreRTWPjzcQMzQwU2JU-Sg(Lcom/android/server/pm/ShortcutService$4;II)V
 PLcom/android/server/pm/ShortcutService$4;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$4;->lambda$onUidGone$1(I)V
-PLcom/android/server/pm/ShortcutService$4;->lambda$onUidStateChanged$0(II)V
-HPLcom/android/server/pm/ShortcutService$4;->onUidGone(IZ)V
+PLcom/android/server/pm/ShortcutService$4;->onUidGone(IZ)V
 HPLcom/android/server/pm/ShortcutService$4;->onUidStateChanged(IIJI)V
-PLcom/android/server/pm/ShortcutService$5;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$6;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$7;-><init>(Lcom/android/server/pm/ShortcutService;)V
+PLcom/android/server/pm/ShortcutService$5;-><init>(Lcom/android/server/pm/ShortcutService;I)V
+PLcom/android/server/pm/ShortcutService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/pm/ShortcutService$DumpFilter;-><init>()V
+PLcom/android/server/pm/ShortcutService$DumpFilter;->isPackageMatch(Ljava/lang/String;)Z
+PLcom/android/server/pm/ShortcutService$DumpFilter;->isUserMatch(I)Z
 PLcom/android/server/pm/ShortcutService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/ShortcutService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/pm/ShortcutService$Lifecycle;->onStart()V
 PLcom/android/server/pm/ShortcutService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda11;-><init>(JLandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZ)V
-PLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda11;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
-PLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/ShortcutService$LocalService;->$r8$lambda$3lWA6IdBBMst2VF_gQSz1s4aYQs(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;IIILcom/android/server/pm/ShortcutPackage;)V
-PLcom/android/server/pm/ShortcutService$LocalService;->$r8$lambda$4oN-teeezN_bMPNKBELK1aAUWLM(JLandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZLandroid/content/pm/ShortcutInfo;)Z
+HPLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda10;-><init>(JLandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZ)V
+PLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/ShortcutService$LocalService$$ExternalSyntheticLambda5;-><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/ShortcutService$LocalService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService$LocalService-IA;)V
 PLcom/android/server/pm/ShortcutService$LocalService;->addListener(Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;)V
 PLcom/android/server/pm/ShortcutService$LocalService;->addShortcutChangeCallback(Landroid/content/pm/LauncherApps$ShortcutChangeCallback;)V
-PLcom/android/server/pm/ShortcutService$LocalService;->getFilterFromQuery(Landroid/util/ArraySet;Ljava/util/List;JLandroid/content/ComponentName;IZ)Ljava/util/function/Predicate;
-PLcom/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;->getShortcuts(ILjava/lang/String;JLjava/lang/String;Ljava/util/List;Ljava/util/List;Landroid/content/ComponentName;IIII)Ljava/util/List;
 PLcom/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
 PLcom/android/server/pm/ShortcutService$LocalService;->hasShortcutHostPermission(ILjava/lang/String;II)Z
-PLcom/android/server/pm/ShortcutService$LocalService;->lambda$getFilterFromQuery$1(JLandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/content/ComponentName;ZZZZZLandroid/content/pm/ShortcutInfo;)Z
-PLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcuts$0(ILjava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;IIILcom/android/server/pm/ShortcutPackage;)V
 PLcom/android/server/pm/ShortcutService$LocalService;->setShortcutHostPackage(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/pm/ShortcutService;->$r8$lambda$7rv-mE0g49gCi8ScAXXEokztNMo(Lcom/android/server/pm/ShortcutService;JI)V
-PLcom/android/server/pm/ShortcutService;->$r8$lambda$BDhOaAE5veHHQ_RtN3GY5v87JoE(Lcom/android/server/pm/ShortcutService;ILandroid/content/pm/ResolveInfo;)Z
-PLcom/android/server/pm/ShortcutService;->$r8$lambda$J6T1wdAzRJXSyM3Fjbs4z0aR2q4(Lcom/android/server/pm/ShortcutService;Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
-PLcom/android/server/pm/ShortcutService;->$r8$lambda$PNh5C8HPIJGGYj6-U9dEpCWj8E4(Landroid/content/pm/ResolveInfo;)Z
-PLcom/android/server/pm/ShortcutService;->$r8$lambda$qmXsSrkG1sY5mQZKbh8vonwJC94(Lcom/android/server/pm/ShortcutService;ILjava/util/List;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
-PLcom/android/server/pm/ShortcutService;->$r8$lambda$yKU4jgBsUzyszwnIVxSwO_MEiaM(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V
-PLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmListeners(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList;
-PLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmLock(Lcom/android/server/pm/ShortcutService;)Ljava/lang/Object;
-PLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmShortcutChangeCallbacks(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList;
-PLcom/android/server/pm/ShortcutService;->-$$Nest$msetReturnedByServer(Lcom/android/server/pm/ShortcutService;Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->-$$Nest$smisInstalled(Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/pm/ShortcutService;->-$$Nest$mhandlePackageAdded(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->-$$Nest$mhandlePackageChanged(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->-$$Nest$mhandlePackageUpdateFinished(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;-><clinit>()V
-PLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
-PLcom/android/server/pm/ShortcutService;->canSeeAnyPinnedShortcut(Ljava/lang/String;III)Z
+PLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
+PLcom/android/server/pm/ShortcutService;->addDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+PLcom/android/server/pm/ShortcutService;->addShortcutIdsToSet(Landroid/util/ArraySet;Ljava/util/List;)V
+PLcom/android/server/pm/ShortcutService;->assignImplicitRanks(Ljava/util/List;)V
+HPLcom/android/server/pm/ShortcutService;->canSeeAnyPinnedShortcut(IIILjava/lang/String;)Z
 PLcom/android/server/pm/ShortcutService;->checkPackageChanges(I)V
+PLcom/android/server/pm/ShortcutService;->cleanUpPackageForAllLoadedUsers(ILjava/lang/String;Z)V
+PLcom/android/server/pm/ShortcutService;->cleanUpPackageLocked(Ljava/lang/String;IIZ)V
+PLcom/android/server/pm/ShortcutService;->cleanupBitmapsForPackage(ILjava/lang/String;)V
 PLcom/android/server/pm/ShortcutService;->cleanupDanglingBitmapDirectoriesLocked(I)V
-PLcom/android/server/pm/ShortcutService;->forUpdatedPackages(IJZLjava/util/function/Consumer;)V
-PLcom/android/server/pm/ShortcutService;->getActivityInfoWithMetadata(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/pm/ShortcutService;->disableShortcuts(Ljava/lang/String;Ljava/util/List;Ljava/lang/CharSequence;II)V
+PLcom/android/server/pm/ShortcutService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/ShortcutService;->dumpInner(Ljava/io/PrintWriter;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
+PLcom/android/server/pm/ShortcutService;->dumpNoCheck(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/ShortcutService;->fillInDefaultActivity(Ljava/util/List;)V
+PLcom/android/server/pm/ShortcutService;->fixUpIncomingShortcutInfo(Landroid/content/pm/ShortcutInfo;ZZ)V
+PLcom/android/server/pm/ShortcutService;->fixUpShortcutResourceNamesAndValues(Landroid/content/pm/ShortcutInfo;)V
+PLcom/android/server/pm/ShortcutService;->forEachLoadedUserLocked(Ljava/util/function/Consumer;)V
 PLcom/android/server/pm/ShortcutService;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/pm/ShortcutService;->getBackupPayload(I)[B
 PLcom/android/server/pm/ShortcutService;->getBaseStateFile()Lcom/android/server/pm/ResilientAtomicFile;
-PLcom/android/server/pm/ShortcutService;->getBgLooper()Landroid/os/Looper;
 PLcom/android/server/pm/ShortcutService;->getDefaultLauncher(I)Ljava/lang/String;
 PLcom/android/server/pm/ShortcutService;->getInstalledPackages(I)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->getLastResetTimeLocked()J
-PLcom/android/server/pm/ShortcutService;->getLauncherShortcutsLocked(Ljava/lang/String;II)Lcom/android/server/pm/ShortcutLauncher;
-PLcom/android/server/pm/ShortcutService;->getMainActivityIntent()Landroid/content/Intent;
-PLcom/android/server/pm/ShortcutService;->getNonPersistentUserLocked(I)Lcom/android/server/pm/ShortcutNonPersistentUser;
-PLcom/android/server/pm/ShortcutService;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+PLcom/android/server/pm/ShortcutService;->getLauncherShortcutsLocked(IILjava/lang/String;)Lcom/android/server/pm/ShortcutLauncher;
+PLcom/android/server/pm/ShortcutService;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
 PLcom/android/server/pm/ShortcutService;->getPackageInfo(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/ShortcutService;->getPackageShortcutsForPublisherLocked(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutPackage;
-PLcom/android/server/pm/ShortcutService;->getParentOrSelfUserId(I)I
-PLcom/android/server/pm/ShortcutService;->getStatStartTime()J
-PLcom/android/server/pm/ShortcutService;->getUserBitmapFilePath(I)Ljava/io/File;
+PLcom/android/server/pm/ShortcutService;->getPackageShortcutsForPublisherLocked(ILjava/lang/String;)Lcom/android/server/pm/ShortcutPackage;
+PLcom/android/server/pm/ShortcutService;->getShortcuts(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/ShortcutService;->getUserFile(I)Lcom/android/server/pm/ResilientAtomicFile;
-PLcom/android/server/pm/ShortcutService;->getUserShortcutsLocked(I)Lcom/android/server/pm/ShortcutUser;
-HPLcom/android/server/pm/ShortcutService;->handleOnUidStateChanged(II)V
-PLcom/android/server/pm/ShortcutService;->handleUnlockUser(I)V
-PLcom/android/server/pm/ShortcutService;->hasShortcutHostPermission(Ljava/lang/String;III)Z
+HPLcom/android/server/pm/ShortcutService;->getUserShortcutsLocked(I)Lcom/android/server/pm/ShortcutUser;
+PLcom/android/server/pm/ShortcutService;->handleOnUidStateChanged(II)V
+PLcom/android/server/pm/ShortcutService;->handlePackageRemoved(Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->hasShortcutHostPermissionInner(Ljava/lang/String;I)Z
-PLcom/android/server/pm/ShortcutService;->initialize()V
 PLcom/android/server/pm/ShortcutService;->injectApplicationInfoWithUninstalled(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/pm/ShortcutService;->injectBinderCallingPid()I
 PLcom/android/server/pm/ShortcutService;->injectBinderCallingUid()I
-PLcom/android/server/pm/ShortcutService;->injectBuildFingerprint()Ljava/lang/String;
-PLcom/android/server/pm/ShortcutService;->injectClearCallingIdentity()J
 PLcom/android/server/pm/ShortcutService;->injectCurrentTimeMillis()J
 PLcom/android/server/pm/ShortcutService;->injectDipToPixel(I)I
 PLcom/android/server/pm/ShortcutService;->injectElapsedRealtime()J
 PLcom/android/server/pm/ShortcutService;->injectGetActivityInfoWithMetadataWithUninstalled(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/pm/ShortcutService;->injectGetDefaultMainActivity(ILjava/lang/String;)Landroid/content/ComponentName;
 PLcom/android/server/pm/ShortcutService;->injectGetHomeRoleHolderAsUser(I)Ljava/lang/String;
-PLcom/android/server/pm/ShortcutService;->injectGetLocaleTagsForUser(I)Ljava/lang/String;
-PLcom/android/server/pm/ShortcutService;->injectGetMainActivities(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->injectGetPackageUid(Ljava/lang/String;I)I
+PLcom/android/server/pm/ShortcutService;->injectGetPackageUid(ILjava/lang/String;)I
 PLcom/android/server/pm/ShortcutService;->injectGetPackagesWithUninstalled(I)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->injectGetResourcesForApplicationAsUser(Ljava/lang/String;I)Landroid/content/res/Resources;
+PLcom/android/server/pm/ShortcutService;->injectGetResourcesForApplicationAsUser(ILjava/lang/String;)Landroid/content/res/Resources;
 PLcom/android/server/pm/ShortcutService;->injectHasAccessShortcutsPermission(II)Z
+PLcom/android/server/pm/ShortcutService;->injectHasUnlimitedShortcutsApiCallsPermission(II)Z
+PLcom/android/server/pm/ShortcutService;->injectIsActivityEnabledAndExported(Landroid/content/ComponentName;I)Z
 PLcom/android/server/pm/ShortcutService;->injectIsLowRamDevice()Z
-PLcom/android/server/pm/ShortcutService;->injectIsSafeModeEnabled()Z
+PLcom/android/server/pm/ShortcutService;->injectIsMainActivity(ILandroid/content/ComponentName;)Z
 PLcom/android/server/pm/ShortcutService;->injectPackageInfoWithUninstalled(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/ShortcutService;->injectPostToHandler(Ljava/lang/Runnable;)V
+PLcom/android/server/pm/ShortcutService;->injectPostToHandler(Ljava/lang/Runnable;)V
 PLcom/android/server/pm/ShortcutService;->injectPostToHandlerDebounced(Ljava/lang/Object;Ljava/lang/Runnable;)V
 PLcom/android/server/pm/ShortcutService;->injectRegisterRoleHoldersListener(Landroid/app/role/OnRoleHoldersChangedListener;)V
 PLcom/android/server/pm/ShortcutService;->injectRegisterUidObserver(Landroid/app/IUidObserver;I)V
-PLcom/android/server/pm/ShortcutService;->injectRestoreCallingIdentity(J)V
-PLcom/android/server/pm/ShortcutService;->injectRunOnNewThread(Ljava/lang/Runnable;)V
 PLcom/android/server/pm/ShortcutService;->injectShortcutManagerConstants()Ljava/lang/String;
 PLcom/android/server/pm/ShortcutService;->injectShouldPerformVerification()Z
 PLcom/android/server/pm/ShortcutService;->injectSystemDataPath()Ljava/io/File;
 PLcom/android/server/pm/ShortcutService;->injectUserDataPath(I)Ljava/io/File;
-PLcom/android/server/pm/ShortcutService;->injectXmlMetaData(Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
-PLcom/android/server/pm/ShortcutService;->isAppSearchEnabled()Z
 PLcom/android/server/pm/ShortcutService;->isCallerSystem()Z
-PLcom/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
 PLcom/android/server/pm/ShortcutService;->isInstalled(Landroid/content/pm/ApplicationInfo;)Z
-PLcom/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;
-PLcom/android/server/pm/ShortcutService;->isPackageInstalled(Ljava/lang/String;I)Z
-PLcom/android/server/pm/ShortcutService;->isProcessStateForeground(I)Z
-PLcom/android/server/pm/ShortcutService;->isSystem(Landroid/content/pm/ActivityInfo;)Z
-PLcom/android/server/pm/ShortcutService;->isSystem(Landroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/pm/ShortcutService;->isUserUnlockedL(I)Z
-PLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$14(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
-PLcom/android/server/pm/ShortcutService;->lambda$handleUnlockUser$1(JI)V
-PLcom/android/server/pm/ShortcutService;->lambda$notifyListenerRunnable$2(ILjava/lang/String;)V
-PLcom/android/server/pm/ShortcutService;->lambda$notifyShortcutChangeCallbacks$3(ILjava/util/List;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
-PLcom/android/server/pm/ShortcutService;->lambda$queryActivities$16(ILandroid/content/pm/ResolveInfo;)Z
-PLcom/android/server/pm/ShortcutService;->lambda$static$0(Landroid/content/pm/ResolveInfo;)Z
+PLcom/android/server/pm/ShortcutService;->isPackageInstalled(ILjava/lang/String;)Z
+PLcom/android/server/pm/ShortcutService;->isUidForegroundLocked(I)Z
+HPLcom/android/server/pm/ShortcutService;->isUserUnlockedL(I)Z
 PLcom/android/server/pm/ShortcutService;->loadBaseStateLocked()V
-PLcom/android/server/pm/ShortcutService;->loadConfigurationLocked()V
 PLcom/android/server/pm/ShortcutService;->loadUserInternal(ILjava/io/InputStream;Z)Lcom/android/server/pm/ShortcutUser;
 PLcom/android/server/pm/ShortcutService;->loadUserLocked(I)Lcom/android/server/pm/ShortcutUser;
 PLcom/android/server/pm/ShortcutService;->logDurationStat(IJ)V
-PLcom/android/server/pm/ShortcutService;->notifyListenerRunnable(Ljava/lang/String;I)Ljava/lang/Runnable;
-PLcom/android/server/pm/ShortcutService;->notifyShortcutChangeCallbacks(Ljava/lang/String;ILjava/util/List;Ljava/util/List;)V
-PLcom/android/server/pm/ShortcutService;->onBootPhase(I)V
 PLcom/android/server/pm/ShortcutService;->packageShortcutsChanged(Lcom/android/server/pm/ShortcutPackage;Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/pm/ShortcutService;->parseBooleanAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Z
-PLcom/android/server/pm/ShortcutService;->parseBooleanAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;Z)Z
-PLcom/android/server/pm/ShortcutService;->parseComponentNameAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Landroid/content/ComponentName;
-PLcom/android/server/pm/ShortcutService;->parseIntAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)I
-PLcom/android/server/pm/ShortcutService;->parseIntAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;I)I
-PLcom/android/server/pm/ShortcutService;->parseIntentAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Landroid/content/Intent;
-PLcom/android/server/pm/ShortcutService;->parseIntentAttributeNoDefault(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Landroid/content/Intent;
-PLcom/android/server/pm/ShortcutService;->parseLongAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)J
 PLcom/android/server/pm/ShortcutService;->parseLongAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;J)J
-PLcom/android/server/pm/ShortcutService;->parseStringAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/ShortcutService;->queryActivities(Landroid/content/Intent;IZ)Ljava/util/List;
+PLcom/android/server/pm/ShortcutService;->prepareChangedShortcuts(Landroid/util/ArraySet;Landroid/util/ArraySet;Ljava/util/List;Lcom/android/server/pm/ShortcutPackage;)Ljava/util/List;
+PLcom/android/server/pm/ShortcutService;->pushDynamicShortcut(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;I)V
+HPLcom/android/server/pm/ShortcutService;->queryActivities(Landroid/content/Intent;IZ)Ljava/util/List;
 PLcom/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
+PLcom/android/server/pm/ShortcutService;->removeLongLivedShortcuts(Ljava/lang/String;Ljava/util/List;I)V
 PLcom/android/server/pm/ShortcutService;->removeNonKeyFields(Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->rescanUpdatedPackagesLocked(IJ)V
+PLcom/android/server/pm/ShortcutService;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/server/pm/ShortcutService;->rescanUpdatedPackagesLocked(IJ)V
+PLcom/android/server/pm/ShortcutService;->saveBaseState()V
 PLcom/android/server/pm/ShortcutService;->saveDirtyInfo()V
+PLcom/android/server/pm/ShortcutService;->saveIconAndFixUpShortcutLocked(Lcom/android/server/pm/ShortcutPackage;Landroid/content/pm/ShortcutInfo;)V
 PLcom/android/server/pm/ShortcutService;->saveUser(I)V
-PLcom/android/server/pm/ShortcutService;->saveUserInternalLocked(ILjava/io/OutputStream;Z)V
+PLcom/android/server/pm/ShortcutService;->saveUserInternalLocked(Ljava/io/OutputStream;ZI)V
 PLcom/android/server/pm/ShortcutService;->scheduleSaveInner(I)V
-PLcom/android/server/pm/ShortcutService;->scheduleSaveUser(I)V
-PLcom/android/server/pm/ShortcutService;->setReturnedByServer(Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->setShortcutHostPackage(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/pm/ShortcutService;->shouldBackupApp(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/pm/ShortcutService;->throwIfUserLockedL(I)V
 PLcom/android/server/pm/ShortcutService;->updateConfigurationLocked(Ljava/lang/String;)Z
 PLcom/android/server/pm/ShortcutService;->updateTimesLocked()V
-PLcom/android/server/pm/ShortcutService;->verifyCaller(Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->verifyCaller(ILjava/lang/String;)V
+PLcom/android/server/pm/ShortcutService;->verifyShortcutInfoPackage(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;)V
+PLcom/android/server/pm/ShortcutService;->verifyShortcutInfoPackages(Ljava/lang/String;Ljava/util/List;)V
 PLcom/android/server/pm/ShortcutService;->verifyStates()V
 PLcom/android/server/pm/ShortcutService;->writeAttr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;J)V
-PLcom/android/server/pm/ShortcutService;->writeAttr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Landroid/content/ComponentName;)V
-PLcom/android/server/pm/ShortcutService;->writeAttr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Landroid/content/Intent;)V
-HPLcom/android/server/pm/ShortcutService;->writeAttr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Ljava/lang/CharSequence;)V
+PLcom/android/server/pm/ShortcutService;->writeAttr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Ljava/lang/CharSequence;)V
 PLcom/android/server/pm/ShortcutService;->writeAttr(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Z)V
-PLcom/android/server/pm/ShortcutService;->writeTagExtra(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Landroid/os/PersistableBundle;)V
+PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;Z)V
 PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/ShortcutUser;IZ)V
-PLcom/android/server/pm/ShortcutUser;->$r8$lambda$BeZCg8-9BP9faEuabdbH0SUoZS0(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;ZLjava/io/File;)V
+PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda8;-><init>(ILjava/lang/String;Lcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda0;)V
+PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/ShortcutUser;-><init>(Lcom/android/server/pm/ShortcutService;I)V
 PLcom/android/server/pm/ShortcutUser;->detectLocaleChange()V
+PLcom/android/server/pm/ShortcutUser;->dump(Ljava/io/PrintWriter;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
+PLcom/android/server/pm/ShortcutUser;->dumpDirectorySize(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/io/File;)V
 PLcom/android/server/pm/ShortcutUser;->forAllLaunchers(Ljava/util/function/Consumer;)V
-PLcom/android/server/pm/ShortcutUser;->forAllPackageItems(Ljava/util/function/Consumer;)V
 PLcom/android/server/pm/ShortcutUser;->forAllPackages(Ljava/util/function/Consumer;)V
 PLcom/android/server/pm/ShortcutUser;->forMainFilesIn(Ljava/io/File;Ljava/util/function/Consumer;)V
-PLcom/android/server/pm/ShortcutUser;->getCachedLauncher()Ljava/lang/String;
-PLcom/android/server/pm/ShortcutUser;->getLastAppScanOsFingerprint()Ljava/lang/String;
-PLcom/android/server/pm/ShortcutUser;->getLastAppScanTime()J
-PLcom/android/server/pm/ShortcutUser;->getLauncherShortcuts(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutLauncher;
 PLcom/android/server/pm/ShortcutUser;->getPackageShortcuts(Ljava/lang/String;)Lcom/android/server/pm/ShortcutPackage;
 PLcom/android/server/pm/ShortcutUser;->getPackageShortcutsIfExists(Ljava/lang/String;)Lcom/android/server/pm/ShortcutPackage;
-PLcom/android/server/pm/ShortcutUser;->getUserId()I
-PLcom/android/server/pm/ShortcutUser;->lambda$loadFromXml$3(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;ZLjava/io/File;)V
-PLcom/android/server/pm/ShortcutUser;->loadFromXml(Lcom/android/server/pm/ShortcutService;Lcom/android/modules/utils/TypedXmlPullParser;IZ)Lcom/android/server/pm/ShortcutUser;
-PLcom/android/server/pm/ShortcutUser;->logSharingShortcutStats(Lcom/android/internal/logging/MetricsLogger;)V
-PLcom/android/server/pm/ShortcutUser;->onCalledByPublisher(Ljava/lang/String;)V
-PLcom/android/server/pm/ShortcutUser;->rescanPackageIfNeeded(Ljava/lang/String;Z)V
-PLcom/android/server/pm/ShortcutUser;->saveShortcutPackageItem(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/ShortcutPackageItem;Z)V
-PLcom/android/server/pm/ShortcutUser;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;Z)V
-PLcom/android/server/pm/ShortcutUser;->setCachedLauncher(Ljava/lang/String;)V
-PLcom/android/server/pm/ShortcutUser;->setLastAppScanOsFingerprint(Ljava/lang/String;)V
-PLcom/android/server/pm/ShortcutUser;->setLastAppScanTime(J)V
+HPLcom/android/server/pm/ShortcutUser;->rescanPackageIfNeeded(Ljava/lang/String;Z)V
 PLcom/android/server/pm/SilentUpdatePolicy;-><clinit>()V
 PLcom/android/server/pm/SilentUpdatePolicy;-><init>()V
 HSPLcom/android/server/pm/SnapshotStatistics$1;-><init>(Lcom/android/server/pm/SnapshotStatistics;Landroid/os/Looper;)V
 PLcom/android/server/pm/SnapshotStatistics$1;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/pm/SnapshotStatistics$BinMap;-><init>([I)V
-HSPLcom/android/server/pm/SnapshotStatistics$BinMap;->count()I
 HSPLcom/android/server/pm/SnapshotStatistics$BinMap;->getBin(I)I
-PLcom/android/server/pm/SnapshotStatistics$Stats;->-$$Nest$mcomplete(Lcom/android/server/pm/SnapshotStatistics$Stats;J)V
+PLcom/android/server/pm/SnapshotStatistics$Stats;->-$$Nest$mdump(Lcom/android/server/pm/SnapshotStatistics$Stats;Ljava/io/PrintWriter;JZLjava/lang/String;)V
 HSPLcom/android/server/pm/SnapshotStatistics$Stats;->-$$Nest$mrebuild(Lcom/android/server/pm/SnapshotStatistics$Stats;IIIIZZ)V
 HSPLcom/android/server/pm/SnapshotStatistics$Stats;-><init>(Lcom/android/server/pm/SnapshotStatistics;J)V
-HSPLcom/android/server/pm/SnapshotStatistics$Stats;-><init>(Lcom/android/server/pm/SnapshotStatistics;JLcom/android/server/pm/SnapshotStatistics$Stats-IA;)V
-PLcom/android/server/pm/SnapshotStatistics$Stats;->complete(J)V
-HSPLcom/android/server/pm/SnapshotStatistics$Stats;->rebuild(IIIIZZ)V
-HSPLcom/android/server/pm/SnapshotStatistics;->-$$Nest$fgetmTimeBins(Lcom/android/server/pm/SnapshotStatistics;)Lcom/android/server/pm/SnapshotStatistics$BinMap;
-HSPLcom/android/server/pm/SnapshotStatistics;->-$$Nest$fgetmUseBins(Lcom/android/server/pm/SnapshotStatistics;)Lcom/android/server/pm/SnapshotStatistics$BinMap;
-PLcom/android/server/pm/SnapshotStatistics;->-$$Nest$mhandleMessage(Lcom/android/server/pm/SnapshotStatistics;Landroid/os/Message;)V
+PLcom/android/server/pm/SnapshotStatistics$Stats;-><init>(Lcom/android/server/pm/SnapshotStatistics;Lcom/android/server/pm/SnapshotStatistics$Stats;)V
+PLcom/android/server/pm/SnapshotStatistics$Stats;->dumpPrefix(Ljava/io/PrintWriter;JZLjava/lang/String;)V
+PLcom/android/server/pm/SnapshotStatistics$Stats;->durationToString(J)Ljava/lang/String;
 HSPLcom/android/server/pm/SnapshotStatistics;-><clinit>()V
 HSPLcom/android/server/pm/SnapshotStatistics;-><init>()V
-PLcom/android/server/pm/SnapshotStatistics;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/pm/SnapshotStatistics;->rebuild(JJII)V
-HSPLcom/android/server/pm/SnapshotStatistics;->scheduleTick()V
+PLcom/android/server/pm/SnapshotStatistics;->dump(Ljava/io/PrintWriter;J[Lcom/android/server/pm/SnapshotStatistics$Stats;[Lcom/android/server/pm/SnapshotStatistics$Stats;Ljava/lang/String;)V
 PLcom/android/server/pm/SnapshotStatistics;->shift([Lcom/android/server/pm/SnapshotStatistics$Stats;J)V
-HPLcom/android/server/pm/SnapshotStatistics;->tick()V
-PLcom/android/server/pm/StagingManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/StagingManager;)V
+PLcom/android/server/pm/StagingManager$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/pm/StagingManager$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/pm/StagingManager$1;-><init>(Lcom/android/server/pm/StagingManager;Landroid/content/pm/IStagedApexObserver;)V
 PLcom/android/server/pm/StagingManager$2;-><init>(Lcom/android/server/pm/StagingManager;)V
@@ -19839,57 +15485,39 @@
 PLcom/android/server/pm/StagingManager$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/StagingManager$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/pm/StagingManager$Lifecycle;->onStart()V
-PLcom/android/server/pm/StagingManager$Lifecycle;->startService(Lcom/android/server/pm/StagingManager;)V
-PLcom/android/server/pm/StagingManager;->$r8$lambda$Tc-8JeWCdIuusiZU02QNaF3RrX8(Lcom/android/server/pm/StagingManager;)V
-PLcom/android/server/pm/StagingManager;->-$$Nest$mmarkBootCompleted(Lcom/android/server/pm/StagingManager;)V
-PLcom/android/server/pm/StagingManager;->-$$Nest$mmarkStagedSessionsAsSuccessful(Lcom/android/server/pm/StagingManager;)V
-PLcom/android/server/pm/StagingManager;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/StagingManager;-><init>(Landroid/content/Context;Lcom/android/server/pm/ApexManager;)V
-PLcom/android/server/pm/StagingManager;->handleNonReadyAndDestroyedSessions(Ljava/util/List;)V
-PLcom/android/server/pm/StagingManager;->lambda$onBootCompletedBroadcastReceived$1()V
-PLcom/android/server/pm/StagingManager;->logFailedApexSessionsIfNecessary()V
-PLcom/android/server/pm/StagingManager;->markBootCompleted()V
-PLcom/android/server/pm/StagingManager;->markStagedSessionsAsSuccessful()V
 PLcom/android/server/pm/StagingManager;->onBootCompletedBroadcastReceived()V
-PLcom/android/server/pm/StagingManager;->registerStagedApexObserver(Landroid/content/pm/IStagedApexObserver;)V
-PLcom/android/server/pm/StagingManager;->restoreSessions(Ljava/util/List;Z)V
-PLcom/android/server/pm/StagingManager;->systemReady()V
 HSPLcom/android/server/pm/StorageEventHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/DeletePackageHelper;Lcom/android/server/pm/RemovePackageHelper;)V
-PLcom/android/server/pm/StorageEventHelper;->collectAbsoluteCodePaths(Lcom/android/server/pm/Computer;)Ljava/util/List;
 PLcom/android/server/pm/StorageEventHelper;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
 PLcom/android/server/pm/StorageEventHelper;->reconcileApps(Lcom/android/server/pm/Computer;Ljava/lang/String;)V
 HSPLcom/android/server/pm/SuspendPackageHelper;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/BroadcastHelper;Lcom/android/server/pm/ProtectedPackages;)V
-HPLcom/android/server/pm/SuspendPackageHelper;->isPackageSuspended(Lcom/android/server/pm/Computer;Ljava/lang/String;II)Z
+PLcom/android/server/pm/SuspendPackageHelper;->canSuspendPackageForUser(Lcom/android/server/pm/Computer;[Ljava/lang/String;II)[Z
+PLcom/android/server/pm/SuspendPackageHelper;->getKnownPackageName(Lcom/android/server/pm/Computer;II)Ljava/lang/String;
+PLcom/android/server/pm/SuspendPackageHelper;->isSuspendAllowedForUser(Lcom/android/server/pm/Computer;II)Z
 HSPLcom/android/server/pm/UpdateOwnershipHelper;-><init>()V
-HPLcom/android/server/pm/UpdateOwnershipHelper;->hasValidOwnershipDenyList(Lcom/android/server/pm/PackageSetting;)Z
-HPLcom/android/server/pm/UpdateOwnershipHelper;->isUpdateOwnershipDenylisted(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/UserDataPreparer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;)V
+HSPLcom/android/server/pm/UpdateOwnershipHelper;->hasValidOwnershipDenyList(Lcom/android/server/pm/PackageSetting;)Z
+HSPLcom/android/server/pm/UserDataPreparer;-><init>(Lcom/android/server/pm/Installer;Lcom/android/server/pm/PackageManagerTracedLock;Landroid/content/Context;)V
 PLcom/android/server/pm/UserDataPreparer;->enforceSerialNumber(Ljava/io/File;I)V
 PLcom/android/server/pm/UserDataPreparer;->getDataSystemCeDirectory(I)Ljava/io/File;
 PLcom/android/server/pm/UserDataPreparer;->getDataUserCeDirectory(Ljava/lang/String;I)Ljava/io/File;
 PLcom/android/server/pm/UserDataPreparer;->getSerialNumber(Ljava/io/File;)I
-PLcom/android/server/pm/UserDataPreparer;->prepareUserData(Landroid/content/pm/UserInfo;I)V
+PLcom/android/server/pm/UserDataPreparer;->prepareUserData(ILandroid/content/pm/UserInfo;)V
 PLcom/android/server/pm/UserDataPreparer;->prepareUserDataLI(Ljava/lang/String;Landroid/content/pm/UserInfo;IZ)V
-PLcom/android/server/pm/UserDataPreparer;->reconcileUsers(Ljava/lang/String;Ljava/util/List;)V
 PLcom/android/server/pm/UserDataPreparer;->reconcileUsers(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
 HSPLcom/android/server/pm/UserJourneyLogger;-><init>()V
-PLcom/android/server/pm/UserJourneyLogger;->findUserJourneySession(I)Lcom/android/server/pm/UserJourneyLogger$UserJourneySession;
 PLcom/android/server/pm/UserJourneyLogger;->getUserTypeForStatsd(Ljava/lang/String;)I
 PLcom/android/server/pm/UserJourneyLogger;->logUserLifecycleEvent(III)V
 PLcom/android/server/pm/UserJourneyLogger;->logUserLifecycleEventOccurred(Lcom/android/server/pm/UserJourneyLogger$UserJourneySession;IIII)V
 PLcom/android/server/pm/UserJourneyLogger;->writeUserLifecycleEventOccurred(JIIII)V
-HSPLcom/android/server/pm/UserManagerInternal;-><init>()V
 PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/os/Bundle;I)V
 PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/pm/UserManagerService;)V
+PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda1;-><init>(Landroid/os/IUserRestrictionsListener;)V
 HSPLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/UserManagerService;)V
-HSPLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/UserManagerService;I)V
-PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda9;-><init>(Landroid/os/IUserRestrictionsListener;)V
-PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda9;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-HSPLcom/android/server/pm/UserManagerService$1;-><init>(Lcom/android/server/pm/UserManagerService;)V
-HSPLcom/android/server/pm/UserManagerService$2;-><init>(Lcom/android/server/pm/UserManagerService;)V
-HSPLcom/android/server/pm/UserManagerService$3;-><init>(Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/UserManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda1;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
+HSPLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/UserManagerService;I)V
+PLcom/android/server/pm/UserManagerService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/pm/UserManagerService;)V
+HSPLcom/android/server/pm/UserManagerService$1;-><init>(Lcom/android/server/pm/UserManagerService;I)V
+PLcom/android/server/pm/UserManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/pm/UserManagerService$4;-><init>(Lcom/android/server/pm/UserManagerService;ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/pm/UserManagerService$4;->run()V
 PLcom/android/server/pm/UserManagerService$LifeCycle;-><init>(Landroid/content/Context;)V
@@ -19898,7 +15526,6 @@
 PLcom/android/server/pm/UserManagerService$LifeCycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/pm/UserManagerService$LifeCycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 HSPLcom/android/server/pm/UserManagerService$LocalService;-><init>(Lcom/android/server/pm/UserManagerService;)V
-HSPLcom/android/server/pm/UserManagerService$LocalService;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService$LocalService-IA;)V
 PLcom/android/server/pm/UserManagerService$LocalService;->addUserLifecycleListener(Lcom/android/server/pm/UserManagerInternal$UserLifecycleListener;)V
 PLcom/android/server/pm/UserManagerService$LocalService;->addUserRestrictionsListener(Lcom/android/server/pm/UserManagerInternal$UserRestrictionsListener;)V
 PLcom/android/server/pm/UserManagerService$LocalService;->addUserVisibilityListener(Lcom/android/server/pm/UserManagerInternal$UserVisibilityListener;)V
@@ -19907,275 +15534,186 @@
 PLcom/android/server/pm/UserManagerService$LocalService;->getMainUserId()I
 PLcom/android/server/pm/UserManagerService$LocalService;->getProfileIds(IZ)[I
 PLcom/android/server/pm/UserManagerService$LocalService;->getProfileParentId(I)I
+PLcom/android/server/pm/UserManagerService$LocalService;->getUserAssignedToDisplay(I)I
 PLcom/android/server/pm/UserManagerService$LocalService;->getUserIds()[I
 HPLcom/android/server/pm/UserManagerService$LocalService;->getUserInfo(I)Landroid/content/pm/UserInfo;
-HPLcom/android/server/pm/UserManagerService$LocalService;->getUserInfos()[Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService$LocalService;->getUserInfos()[Landroid/content/pm/UserInfo;
 HPLcom/android/server/pm/UserManagerService$LocalService;->getUserProperties(I)Landroid/content/pm/UserProperties;
 PLcom/android/server/pm/UserManagerService$LocalService;->getUserRestriction(ILjava/lang/String;)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->getUserTypesForStatsd([I)[I
 PLcom/android/server/pm/UserManagerService$LocalService;->getUsers(Z)Ljava/util/List;
-HSPLcom/android/server/pm/UserManagerService$LocalService;->getUsers(ZZZ)Ljava/util/List;
 HPLcom/android/server/pm/UserManagerService$LocalService;->hasUserRestriction(Ljava/lang/String;I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->isProfileAccessible(IILjava/lang/String;Z)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->isProfileAccessible(ILjava/lang/String;IZ)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->isUserInitialized(I)Z
 HPLcom/android/server/pm/UserManagerService$LocalService;->isUserRunning(I)Z
-HPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlocked(I)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlocked(I)Z
 HPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlockingOrUnlocked(I)Z
 HPLcom/android/server/pm/UserManagerService$LocalService;->isUserVisible(I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->onSystemUserVisibilityChanged(Z)V
+PLcom/android/server/pm/UserManagerService$LocalService;->isVisibleBackgroundFullUser(I)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->onSystemUserVisibilityChanged()V
 PLcom/android/server/pm/UserManagerService$LocalService;->setUserState(II)V
 HSPLcom/android/server/pm/UserManagerService$MainHandler;-><init>(Lcom/android/server/pm/UserManagerService;)V
 PLcom/android/server/pm/UserManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/pm/UserManagerService$SettingsObserver;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/pm/UserManagerService$SettingsObserver;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService$MainHandler;)V
 HSPLcom/android/server/pm/UserManagerService$UserData;-><init>()V
-PLcom/android/server/pm/UserManagerService$UserData;->getIgnorePrepareStorageErrors()Z
-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
-HPLcom/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;->$r8$lambda$GUi0BCW04izr6742i0VPIXzrq1o(Lcom/android/server/pm/UserManagerService;Landroid/os/Bundle;I)V
-PLcom/android/server/pm/UserManagerService;->$r8$lambda$LvInK5qZJcI6bZ0Fs5Aic8iLG5s(Landroid/os/IUserRestrictionsListener;ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmContext(Lcom/android/server/pm/UserManagerService;)Landroid/content/Context;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmPackagesLock(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmPm(Lcom/android/server/pm/UserManagerService;)Lcom/android/server/pm/PackageManagerService;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmUserLifecycleListeners(Lcom/android/server/pm/UserManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmUserRestrictionsListeners(Lcom/android/server/pm/UserManagerService;)Ljava/util/ArrayList;
-HPLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmUserStates(Lcom/android/server/pm/UserManagerService;)Lcom/android/server/pm/UserManagerService$WatchedUserStates;
-HPLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmUserVisibilityMediator(Lcom/android/server/pm/UserManagerService;)Lcom/android/server/pm/UserVisibilityMediator;
-HPLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmUsers(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseArray;
-HPLcom/android/server/pm/UserManagerService;->-$$Nest$fgetmUsersLock(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mcleanupPartialUsers(Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mgetCommunalProfileIdUnchecked(Lcom/android/server/pm/UserManagerService;)I
-HPLcom/android/server/pm/UserManagerService;->-$$Nest$mgetEffectiveUserRestrictions(Lcom/android/server/pm/UserManagerService;I)Landroid/os/Bundle;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mgetMainUserIdUnchecked(Lcom/android/server/pm/UserManagerService;)I
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mgetProfileIdsLU(Lcom/android/server/pm/UserManagerService;ILjava/lang/String;ZZ)Landroid/util/IntArray;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mgetProfileParentIdUnchecked(Lcom/android/server/pm/UserManagerService;I)I
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mgetUserDataLU(Lcom/android/server/pm/UserManagerService;I)Lcom/android/server/pm/UserManagerService$UserData;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mgetUserDataNoChecks(Lcom/android/server/pm/UserManagerService;I)Lcom/android/server/pm/UserManagerService$UserData;
-HSPLcom/android/server/pm/UserManagerService;->-$$Nest$mgetUserInfoNoChecks(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserInfo;
-HPLcom/android/server/pm/UserManagerService;->-$$Nest$mgetUserPropertiesInternal(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserProperties;
-HSPLcom/android/server/pm/UserManagerService;->-$$Nest$mgetUsersInternal(Lcom/android/server/pm/UserManagerService;ZZZ)Ljava/util/List;
-PLcom/android/server/pm/UserManagerService;->-$$Nest$minvalidateOwnerNameIfNecessary(Lcom/android/server/pm/UserManagerService;Landroid/content/res/Resources;Z)V
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mregisterStatsCallbacks(Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/UserManagerService;->-$$Nest$msetLastEnteredForegroundTimeToNow(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService$UserData;)V
-PLcom/android/server/pm/UserManagerService;->-$$Nest$mwriteUserLP(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService$UserData;)V
+HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;-><init>()V
+HPLcom/android/server/pm/UserManagerService$WatchedUserStates;->get(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 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;Landroid/util/SparseArray;)V
 PLcom/android/server/pm/UserManagerService;->addUserRestrictionsListener(Landroid/os/IUserRestrictionsListener;)V
-PLcom/android/server/pm/UserManagerService;->applyUserRestrictionsLR(I)V
 PLcom/android/server/pm/UserManagerService;->autoLockPrivateSpace()V
-HPLcom/android/server/pm/UserManagerService;->checkCreateUsersPermission(Ljava/lang/String;)V
-HPLcom/android/server/pm/UserManagerService;->checkManageOrInteractPermissionIfCallerInOtherProfileGroup(ILjava/lang/String;)V
+PLcom/android/server/pm/UserManagerService;->canAddPrivateProfile(I)Z
+HSPLcom/android/server/pm/UserManagerService;->checkCreateUsersPermission(Ljava/lang/String;)V
+PLcom/android/server/pm/UserManagerService;->checkManageOrInteractPermissionIfCallerInOtherProfileGroup(ILjava/lang/String;)V
 PLcom/android/server/pm/UserManagerService;->checkManageUsersPermission(Ljava/lang/String;)V
-HPLcom/android/server/pm/UserManagerService;->checkQueryOrCreateUsersPermission(Ljava/lang/String;)V
+PLcom/android/server/pm/UserManagerService;->checkQueryOrCreateUsersPermission(Ljava/lang/String;)V
 PLcom/android/server/pm/UserManagerService;->checkQueryOrInteractPermissionIfCallerInOtherProfileGroup(ILjava/lang/String;)V
-PLcom/android/server/pm/UserManagerService;->cleanupPartialUsers()V
-HPLcom/android/server/pm/UserManagerService;->computeEffectiveUserRestrictionsLR(I)Landroid/os/Bundle;
-HSPLcom/android/server/pm/UserManagerService;->emulateSystemUserModeIfNeeded()V
-HPLcom/android/server/pm/UserManagerService;->exists(I)Z
+PLcom/android/server/pm/UserManagerService;->computeEffectiveUserRestrictionsLR(I)Landroid/os/Bundle;
+PLcom/android/server/pm/UserManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/UserManagerService;->dumpTimeAgo(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;JJ)V
+PLcom/android/server/pm/UserManagerService;->dumpUserLocked(Ljava/io/PrintWriter;Lcom/android/server/pm/UserManagerService$UserData;Ljava/lang/StringBuilder;JJ)V
+PLcom/android/server/pm/UserManagerService;->enforceCurrentUserIfVisibleBackgroundEnabled(I)V
+PLcom/android/server/pm/UserManagerService;->getActivityManagerInternal()Landroid/app/ActivityManagerInternal;
+PLcom/android/server/pm/UserManagerService;->getAliveUsersExcludingGuestsCountLU()I
 PLcom/android/server/pm/UserManagerService;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
 HPLcom/android/server/pm/UserManagerService;->getApplicationRestrictionsForUser(Ljava/lang/String;I)Landroid/os/Bundle;
 PLcom/android/server/pm/UserManagerService;->getCommunalProfileIdUnchecked()I
-HPLcom/android/server/pm/UserManagerService;->getEffectiveUserRestrictions(I)Landroid/os/Bundle;
+PLcom/android/server/pm/UserManagerService;->getCredentialOwnerProfile(I)I
+PLcom/android/server/pm/UserManagerService;->getCurrentUserId()I
+PLcom/android/server/pm/UserManagerService;->getEffectiveUserRestrictions(I)Landroid/os/Bundle;
 HSPLcom/android/server/pm/UserManagerService;->getInstance()Lcom/android/server/pm/UserManagerService;
-HSPLcom/android/server/pm/UserManagerService;->getInternalForInjectorOnly()Lcom/android/server/pm/UserManagerInternal;
 PLcom/android/server/pm/UserManagerService;->getMainUserId()I
-HPLcom/android/server/pm/UserManagerService;->getMainUserIdUnchecked()I
-HSPLcom/android/server/pm/UserManagerService;->getOwnerName()Ljava/lang/String;
-PLcom/android/server/pm/UserManagerService;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
+PLcom/android/server/pm/UserManagerService;->getMainUserIdUnchecked()I
 PLcom/android/server/pm/UserManagerService;->getPrimaryUser()Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->getPrivateProfileUserId()I
-HPLcom/android/server/pm/UserManagerService;->getProfileIds(ILjava/lang/String;ZZ)[I
 PLcom/android/server/pm/UserManagerService;->getProfileIds(IZ)[I
+HPLcom/android/server/pm/UserManagerService;->getProfileIds(Ljava/lang/String;IZZ)[I+]Landroid/util/IntArray;Landroid/util/IntArray;
 PLcom/android/server/pm/UserManagerService;->getProfileIdsExcludingHidden(IZ)[I
-HPLcom/android/server/pm/UserManagerService;->getProfileIdsLU(ILjava/lang/String;ZZ)Landroid/util/IntArray;
+HPLcom/android/server/pm/UserManagerService;->getProfileIdsLU(Ljava/lang/String;IZZ)Landroid/util/IntArray;+]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 HPLcom/android/server/pm/UserManagerService;->getProfileParent(I)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->getProfileParentIdUnchecked(I)I
-HPLcom/android/server/pm/UserManagerService;->getProfileParentLU(I)Landroid/content/pm/UserInfo;
-HPLcom/android/server/pm/UserManagerService;->getProfileType(I)Ljava/lang/String;
-HPLcom/android/server/pm/UserManagerService;->getProfiles(IZ)Ljava/util/List;
-HPLcom/android/server/pm/UserManagerService;->getProfilesLU(ILjava/lang/String;ZZ)Ljava/util/List;
-HPLcom/android/server/pm/UserManagerService;->getUidForPackage(Ljava/lang/String;)I
+PLcom/android/server/pm/UserManagerService;->getProfileParentLU(I)Landroid/content/pm/UserInfo;
+PLcom/android/server/pm/UserManagerService;->getProfileType(I)Ljava/lang/String;
+PLcom/android/server/pm/UserManagerService;->getProfiles(IZ)Ljava/util/List;
+PLcom/android/server/pm/UserManagerService;->getProfilesLU(IZZ)Ljava/util/List;
+PLcom/android/server/pm/UserManagerService;->getUserCreationTime(I)J
 HPLcom/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;->getUserFile(I)Lcom/android/server/pm/ResilientAtomicFile;
 PLcom/android/server/pm/UserManagerService;->getUserHandle(I)I
-HPLcom/android/server/pm/UserManagerService;->getUserIds()[I
+HSPLcom/android/server/pm/UserManagerService;->getUserIds()[I
 HSPLcom/android/server/pm/UserManagerService;->getUserIdsIncludingPreCreated()[I
-HPLcom/android/server/pm/UserManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
-HPLcom/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;->getUserJourneyLogger()Lcom/android/server/pm/UserJourneyLogger;
+PLcom/android/server/pm/UserManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HPLcom/android/server/pm/UserManagerService;->getUserInfoLU(I)Landroid/content/pm/UserInfo;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HSPLcom/android/server/pm/UserManagerService;->getUserInfoNoChecks(I)Landroid/content/pm/UserInfo;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HSPLcom/android/server/pm/UserManagerService;->getUserListFile()Lcom/android/server/pm/ResilientAtomicFile;
-HPLcom/android/server/pm/UserManagerService;->getUserPropertiesCopy(I)Landroid/content/pm/UserProperties;
+PLcom/android/server/pm/UserManagerService;->getUserName()Ljava/lang/String;
+PLcom/android/server/pm/UserManagerService;->getUserPropertiesCopy(I)Landroid/content/pm/UserProperties;
 HPLcom/android/server/pm/UserManagerService;->getUserPropertiesInternal(I)Landroid/content/pm/UserProperties;
+PLcom/android/server/pm/UserManagerService;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/pm/UserManagerService;->getUserRestrictions(I)Landroid/os/Bundle;
-HPLcom/android/server/pm/UserManagerService;->getUserSerialNumber(I)I
-PLcom/android/server/pm/UserManagerService;->getUserStartRealtime()J
 PLcom/android/server/pm/UserManagerService;->getUserUnlockRealtime()J
-PLcom/android/server/pm/UserManagerService;->getUsers(Z)Ljava/util/List;
-HPLcom/android/server/pm/UserManagerService;->getUsers(ZZZ)Ljava/util/List;
-HSPLcom/android/server/pm/UserManagerService;->getUsersInternal(ZZZ)Ljava/util/List;
+HSPLcom/android/server/pm/UserManagerService;->getUsers(ZZZ)Ljava/util/List;
+HSPLcom/android/server/pm/UserManagerService;->getUsersInternal(ZZZ)Ljava/util/List;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 PLcom/android/server/pm/UserManagerService;->getVisibleUsers()[I
-HPLcom/android/server/pm/UserManagerService;->hasCreateUsersPermission()Z
-HPLcom/android/server/pm/UserManagerService;->hasManageUsersOrPermission(Ljava/lang/String;)Z
-HPLcom/android/server/pm/UserManagerService;->hasManageUsersPermission()Z
-HPLcom/android/server/pm/UserManagerService;->hasManageUsersPermission(I)Z
-HPLcom/android/server/pm/UserManagerService;->hasPermissionGranted(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/UserManagerService;->hasProfile(I)Z
+PLcom/android/server/pm/UserManagerService;->hasBaseUserRestriction(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/UserManagerService;->hasManageUsersOrPermission(Ljava/lang/String;)Z
+PLcom/android/server/pm/UserManagerService;->hasManageUsersPermission()Z
+PLcom/android/server/pm/UserManagerService;->hasPermissionGranted(ILjava/lang/String;)Z
 PLcom/android/server/pm/UserManagerService;->hasQueryOrCreateUsersPermission()Z
-HPLcom/android/server/pm/UserManagerService;->hasQueryUsersPermission()Z
-HPLcom/android/server/pm/UserManagerService;->hasUserRestriction(Ljava/lang/String;I)Z
+PLcom/android/server/pm/UserManagerService;->hasUserRestriction(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/UserManagerService;->initDefaultGuestRestrictions()V
-PLcom/android/server/pm/UserManagerService;->installWhitelistedSystemPackages(ZZLandroid/util/ArraySet;)Z
 HSPLcom/android/server/pm/UserManagerService;->invalidateOwnerNameIfNecessary(Landroid/content/res/Resources;Z)V
+HPLcom/android/server/pm/UserManagerService;->isAdminUser(I)Z
 PLcom/android/server/pm/UserManagerService;->isAutoLockForPrivateSpaceEnabled()Z
-PLcom/android/server/pm/UserManagerService;->isAutoLockingPrivateSpaceOnRestartsEnabled()Z
+PLcom/android/server/pm/UserManagerService;->isCreationOverrideEnabled()Z
 PLcom/android/server/pm/UserManagerService;->isDemoUser(I)Z
 PLcom/android/server/pm/UserManagerService;->isHeadlessSystemUserMode()Z
 PLcom/android/server/pm/UserManagerService;->isPreCreated(I)Z
-PLcom/android/server/pm/UserManagerService;->isProfileHidden(I)Z
-HPLcom/android/server/pm/UserManagerService;->isProfileOf(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;)Z
 PLcom/android/server/pm/UserManagerService;->isQuietModeEnabled(I)Z
 PLcom/android/server/pm/UserManagerService;->isRestricted(I)Z
 PLcom/android/server/pm/UserManagerService;->isSameProfileGroup(II)Z
 HPLcom/android/server/pm/UserManagerService;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
-HPLcom/android/server/pm/UserManagerService;->isUserRunning(I)Z
-HSPLcom/android/server/pm/UserManagerService;->isUserTypeSubtypeOfFull(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/UserManagerService;->isUserTypeSubtypeOfProfile(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/UserManagerService;->isUserTypeSubtypeOfSystem(Ljava/lang/String;)Z
-HPLcom/android/server/pm/UserManagerService;->isUserUnlocked(I)Z
-HPLcom/android/server/pm/UserManagerService;->isUserUnlockingOrUnlocked(I)Z
-PLcom/android/server/pm/UserManagerService;->lambda$addUserRestrictionsListener$3(Landroid/os/IUserRestrictionsListener;ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/pm/UserManagerService;->lambda$updateUserRestrictionsInternalLR$4(Landroid/os/Bundle;I)V
-PLcom/android/server/pm/UserManagerService;->markEphemeralUsersForRemoval()V
-PLcom/android/server/pm/UserManagerService;->onBeforeUnlockUser(I)V
+PLcom/android/server/pm/UserManagerService;->isUserForeground(I)Z
+PLcom/android/server/pm/UserManagerService;->isUserLimitReached()Z
+PLcom/android/server/pm/UserManagerService;->isUserOfType(ILjava/lang/String;)Z
+PLcom/android/server/pm/UserManagerService;->isUserRunning(I)Z
+PLcom/android/server/pm/UserManagerService;->isUserTypeEnabled(Lcom/android/server/pm/UserTypeDetails;)Z
+PLcom/android/server/pm/UserManagerService;->isUserTypeEnabled(Ljava/lang/String;)Z
+PLcom/android/server/pm/UserManagerService;->isUserUnlocked(I)Z
+PLcom/android/server/pm/UserManagerService;->isUserUnlockingOrUnlocked(I)Z
 PLcom/android/server/pm/UserManagerService;->onUserLoggedIn(I)V
-HPLcom/android/server/pm/UserManagerService;->packageToRestrictionsFileName(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/UserManagerService;->propagateUserRestrictionsLR(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-HPLcom/android/server/pm/UserManagerService;->readApplicationRestrictionsLAr(Landroid/util/AtomicFile;)Landroid/os/Bundle;
-HPLcom/android/server/pm/UserManagerService;->readApplicationRestrictionsLAr(Ljava/lang/String;I)Landroid/os/Bundle;
+PLcom/android/server/pm/UserManagerService;->packageToRestrictionsFileName(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/UserManagerService;->readApplicationRestrictionsLAr(Landroid/util/AtomicFile;)Landroid/os/Bundle;
 HSPLcom/android/server/pm/UserManagerService;->readUserLP(II)Lcom/android/server/pm/UserManagerService$UserData;
-HPLcom/android/server/pm/UserManagerService;->readUserLP(ILjava/io/InputStream;I)Lcom/android/server/pm/UserManagerService$UserData;
+HSPLcom/android/server/pm/UserManagerService;->readUserLP(ILjava/io/InputStream;I)Lcom/android/server/pm/UserManagerService$UserData;
 HSPLcom/android/server/pm/UserManagerService;->readUserListLP()V
 PLcom/android/server/pm/UserManagerService;->reconcileUsers(Ljava/lang/String;)V
-PLcom/android/server/pm/UserManagerService;->registerStatsCallbacks()V
 PLcom/android/server/pm/UserManagerService;->scheduleWriteUser(I)V
-PLcom/android/server/pm/UserManagerService;->setLastEnteredForegroundTimeToNow(Lcom/android/server/pm/UserManagerService$UserData;)V
 PLcom/android/server/pm/UserManagerService;->setOrUpdateAutoLockPreferenceForPrivateProfile(I)V
 PLcom/android/server/pm/UserManagerService;->setUserRestriction(Ljava/lang/String;ZI)V
-PLcom/android/server/pm/UserManagerService;->systemReady()V
 HSPLcom/android/server/pm/UserManagerService;->updateUserIds()V
-PLcom/android/server/pm/UserManagerService;->updateUserRestrictionsInternalLR(Landroid/os/Bundle;I)V
-HSPLcom/android/server/pm/UserManagerService;->updateUsersWithFeatureFlags(Z)V
-HSPLcom/android/server/pm/UserManagerService;->upgradeIfNecessaryLP()V
+PLcom/android/server/pm/UserManagerService;->updateUserRestrictionsInternalLR(ILandroid/os/Bundle;)V
 HSPLcom/android/server/pm/UserManagerService;->upgradeIfNecessaryLP(II)V
 PLcom/android/server/pm/UserManagerService;->userExists(I)Z
 HSPLcom/android/server/pm/UserManagerService;->userWithName(Landroid/content/pm/UserInfo;)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;)V
-HPLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;Ljava/io/OutputStream;)V
+PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;Ljava/io/OutputStream;)V
 HSPLcom/android/server/pm/UserNeedsBadgingCache;-><init>(Lcom/android/server/pm/UserManagerService;)V
-HPLcom/android/server/pm/UserNeedsBadgingCache;->get(I)Z
+HPLcom/android/server/pm/UserNeedsBadgingCache;->get(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 HSPLcom/android/server/pm/UserRestrictionsUtils;-><clinit>()V
-PLcom/android/server/pm/UserRestrictionsUtils;->applyUserRestrictions(Landroid/content/Context;ILandroid/os/Bundle;Landroid/os/Bundle;)V
 HSPLcom/android/server/pm/UserRestrictionsUtils;->areEqual(Landroid/os/Bundle;Landroid/os/Bundle;)Z
-HPLcom/android/server/pm/UserRestrictionsUtils;->isSettingRestrictedForUser(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;I)Z
-HPLcom/android/server/pm/UserRestrictionsUtils;->isValidRestriction(Ljava/lang/String;)Z
+PLcom/android/server/pm/UserRestrictionsUtils;->dumpRestrictions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/pm/UserRestrictionsUtils;->isValidRestriction(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/UserRestrictionsUtils;->merge(Landroid/os/Bundle;Landroid/os/Bundle;)V
-HSPLcom/android/server/pm/UserRestrictionsUtils;->newSetWithUniqueCheck([Ljava/lang/String;)Ljava/util/Set;
-PLcom/android/server/pm/UserRestrictionsUtils;->nonNull(Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLcom/android/server/pm/UserRestrictionsUtils;->readRestrictions(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/os/Bundle;
 HSPLcom/android/server/pm/UserRestrictionsUtils;->readRestrictions(Lcom/android/modules/utils/TypedXmlPullParser;Landroid/os/Bundle;)V
 PLcom/android/server/pm/UserRestrictionsUtils;->restrictionsChanged(Landroid/os/Bundle;Landroid/os/Bundle;[Ljava/lang/String;)Z
 PLcom/android/server/pm/UserRestrictionsUtils;->writeRestrictions(Lcom/android/modules/utils/TypedXmlSerializer;Landroid/os/Bundle;Ljava/lang/String;)V
-HSPLcom/android/server/pm/UserSystemPackageInstaller;-><clinit>()V
 HSPLcom/android/server/pm/UserSystemPackageInstaller;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/UserSystemPackageInstaller;->checkWhitelistedSystemPackages(I)V
 HSPLcom/android/server/pm/UserSystemPackageInstaller;->determineWhitelistedPackagesForUserTypes(Lcom/android/server/SystemConfig;)Landroid/util/ArrayMap;
-HSPLcom/android/server/pm/UserSystemPackageInstaller;->getAndSortKeysFromMap(Landroid/util/ArrayMap;)[Ljava/lang/String;
-HSPLcom/android/server/pm/UserSystemPackageInstaller;->getBaseTypeBitSets()Ljava/util/Map;
-PLcom/android/server/pm/UserSystemPackageInstaller;->getDeviceDefaultWhitelistMode()I
+PLcom/android/server/pm/UserSystemPackageInstaller;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/pm/UserSystemPackageInstaller;->dumpPackageWhitelistProblems(Landroid/util/IndentingPrintWriter;IZZ)V
+PLcom/android/server/pm/UserSystemPackageInstaller;->getPackagesWhitelistErrors(I)Ljava/util/List;
 PLcom/android/server/pm/UserSystemPackageInstaller;->getPackagesWhitelistWarnings()Ljava/util/List;
 HSPLcom/android/server/pm/UserSystemPackageInstaller;->getTypesBitSet(Ljava/lang/Iterable;Ljava/util/Map;)J
 HSPLcom/android/server/pm/UserSystemPackageInstaller;->getUserTypeMask(Ljava/lang/String;)J
 PLcom/android/server/pm/UserSystemPackageInstaller;->getWhitelistMode()I
-PLcom/android/server/pm/UserSystemPackageInstaller;->getWhitelistedSystemPackages()Ljava/util/Set;
-PLcom/android/server/pm/UserSystemPackageInstaller;->installWhitelistedSystemPackages(ZZLandroid/util/ArraySet;)Z
-PLcom/android/server/pm/UserSystemPackageInstaller;->isEnforceMode(I)Z
-PLcom/android/server/pm/UserSystemPackageInstaller;->isImplicitWhitelistMode(I)Z
-PLcom/android/server/pm/UserSystemPackageInstaller;->isLogMode(I)Z
 PLcom/android/server/pm/UserSystemPackageInstaller;->modeToString(I)Ljava/lang/String;
-PLcom/android/server/pm/UserSystemPackageInstaller;->shouldUseOverlayTargetName(Lcom/android/server/pm/pkg/AndroidPackage;)Z
+PLcom/android/server/pm/UserSystemPackageInstaller;->showIssues(Landroid/util/IndentingPrintWriter;ZLjava/util/List;Ljava/lang/String;)V
 HSPLcom/android/server/pm/UserTypeDetails$Builder;-><init>()V
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->checkSystemAndMainUserPreconditions()V
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->createUserTypeDetails()Lcom/android/server/pm/UserTypeDetails;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->getDefaultUserProperties()Landroid/content/pm/UserProperties;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->hasBadge()Z
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->hasValidBaseType()Z
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->hasValidPropertyFlags()Z
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->isProfile()Z
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setBadgeColors([I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setBadgeLabels([I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setBadgeNoBackground(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setBadgePlain(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setBaseType(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setDarkThemeBadgeColors([I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setDefaultCrossProfileIntentFilters(Ljava/util/List;)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setDefaultRestrictions(Landroid/os/Bundle;)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setDefaultSecureSettings(Landroid/os/Bundle;)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setDefaultUserInfoPropertyFlags(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setDefaultUserProperties(Landroid/content/pm/UserProperties$Builder;)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setEnabled(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setIconBadge(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setLabels([I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setMaxAllowed(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setMaxAllowedPerParent(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setName(Ljava/lang/String;)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails$Builder;->setStatusBarIcon(I)Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeDetails;-><init>(Ljava/lang/String;ZIII[IIIIII[I[I[ILandroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Ljava/util/List;Landroid/content/pm/UserProperties;)V
-HSPLcom/android/server/pm/UserTypeDetails;-><init>(Ljava/lang/String;ZIII[IIIIII[I[I[ILandroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Ljava/util/List;Landroid/content/pm/UserProperties;Lcom/android/server/pm/UserTypeDetails-IA;)V
-HSPLcom/android/server/pm/UserTypeDetails;->addDefaultRestrictionsTo(Landroid/os/Bundle;)V
-HSPLcom/android/server/pm/UserTypeDetails;->getDefaultUserPropertiesReference()Landroid/content/pm/UserProperties;
-HSPLcom/android/server/pm/UserTypeDetails;->isFull()Z
+HSPLcom/android/server/pm/UserTypeDetails;-><init>(Ljava/lang/String;ZIII[IIIIII[I[I[ILandroid/os/Bundle;Landroid/os/Bundle;Ljava/util/List;ILandroid/content/pm/UserProperties;)V
 HSPLcom/android/server/pm/UserTypeDetails;->isProfile()Z
-HSPLcom/android/server/pm/UserTypeDetails;->isSystem()Z
 HSPLcom/android/server/pm/UserTypeFactory;->customizeBuilders(Landroid/util/ArrayMap;Landroid/content/res/XmlResourceParser;)V
 HSPLcom/android/server/pm/UserTypeFactory;->getDefaultBuilders()Landroid/util/ArrayMap;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultCloneCrossProfileIntentFilter()Ljava/util/List;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultGuestUserRestrictions()Landroid/os/Bundle;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultManagedCrossProfileIntentFilter()Ljava/util/List;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultManagedProfileSecureSettings()Landroid/os/Bundle;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultNonManagedProfileSecureSettings()Landroid/os/Bundle;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultProfileRestrictions()Landroid/os/Bundle;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultSecondaryUserRestrictions()Landroid/os/Bundle;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeFullDemo()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeFullGuest()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeFullRestricted()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeFullSecondary()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeFullSystem()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeProfileClone()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeProfileCommunal()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeProfileManaged()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeProfilePrivate()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeProfileTest()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeSystemHeadless()Lcom/android/server/pm/UserTypeDetails$Builder;
+HSPLcom/android/server/pm/UserTypeFactory;->getDefaultPrivateProfileRestrictions()Landroid/os/Bundle;
 HSPLcom/android/server/pm/UserTypeFactory;->getUserTypeVersion()I
 HSPLcom/android/server/pm/UserTypeFactory;->getUserTypeVersion(Landroid/content/res/XmlResourceParser;)I
-HSPLcom/android/server/pm/UserTypeFactory;->getUserTypes()Landroid/util/ArrayMap;
 PLcom/android/server/pm/UserVisibilityMediator$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/UserManagerInternal$UserVisibilityListener;IZ)V
 PLcom/android/server/pm/UserVisibilityMediator$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/UserVisibilityMediator;->$r8$lambda$RwzqKlQYDyxdAxTJhHVafFhaCRE(Lcom/android/server/pm/UserManagerInternal$UserVisibilityListener;IZ)V
 HSPLcom/android/server/pm/UserVisibilityMediator;-><clinit>()V
-HSPLcom/android/server/pm/UserVisibilityMediator;-><init>(Landroid/os/Handler;)V
 HSPLcom/android/server/pm/UserVisibilityMediator;-><init>(ZZLandroid/os/Handler;)V
-PLcom/android/server/pm/UserVisibilityMediator;->addListener(Lcom/android/server/pm/UserManagerInternal$UserVisibilityListener;)V
 PLcom/android/server/pm/UserVisibilityMediator;->dispatchVisibilityChanged(Ljava/util/concurrent/CopyOnWriteArrayList;IZ)V
+PLcom/android/server/pm/UserVisibilityMediator;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/pm/UserVisibilityMediator;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/UserVisibilityMediator;->dumpSparseIntArray(Landroid/util/IndentingPrintWriter;Landroid/util/SparseIntArray;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/UserVisibilityMediator;->getUserAssignedToDisplay(IZ)I
 PLcom/android/server/pm/UserVisibilityMediator;->getVisibleUsers()Landroid/util/IntArray;
 HPLcom/android/server/pm/UserVisibilityMediator;->isCurrentUserOrRunningProfileOfCurrentUser(I)Z
 HPLcom/android/server/pm/UserVisibilityMediator;->isUserVisible(I)Z
-PLcom/android/server/pm/UserVisibilityMediator;->lambda$dispatchVisibilityChanged$0(Lcom/android/server/pm/UserManagerInternal$UserVisibilityListener;IZ)V
-PLcom/android/server/pm/UserVisibilityMediator;->onSystemUserVisibilityChanged(Z)V
+PLcom/android/server/pm/VerificationInfo;-><init>(Landroid/net/Uri;Landroid/net/Uri;II)V
+PLcom/android/server/pm/VerificationUtils;->broadcastPackageVerified(ILandroid/net/Uri;ILjava/lang/String;ILandroid/os/UserHandle;Landroid/content/Context;)V
+PLcom/android/server/pm/VerificationUtils;->processVerificationResponse(ILcom/android/server/pm/PackageVerificationState;ILjava/lang/String;Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/VerificationUtils;->processVerificationResponse(ILcom/android/server/pm/PackageVerificationState;Lcom/android/server/pm/PackageVerificationResponse;Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/VerificationUtils;->processVerificationResponseOnTimeout(ILcom/android/server/pm/PackageVerificationState;Lcom/android/server/pm/PackageVerificationResponse;Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/VerifyingSession$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/pm/VerifyingSession$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/pm/VerifyingSession;-><init>(Landroid/os/UserHandle;Ljava/io/File;Lcom/android/server/pm/PackageSessionVerifier$1;Landroid/content/pm/PackageInstaller$SessionParams;Lcom/android/server/pm/InstallSource;ILandroid/content/pm/SigningDetails;ILandroid/content/pm/parsing/PackageLite;ZLcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/VerifyingSession;->getDefaultVerificationResponse()I
+PLcom/android/server/pm/VerifyingSession;->handleReturnCode()V
+HPLcom/android/server/pm/VerifyingSession;->handleStartVerify()V
+PLcom/android/server/pm/VerifyingSession;->isAdbVerificationEnabled(Landroid/content/pm/PackageInfoLite;IZ)Z
+PLcom/android/server/pm/VerifyingSession;->matchComponentForVerifier(Ljava/lang/String;Ljava/util/List;)Landroid/content/ComponentName;
 HSPLcom/android/server/pm/WatchedIntentFilter;-><init>()V
 HSPLcom/android/server/pm/WatchedIntentFilter;-><init>(Landroid/content/IntentFilter;)V
 HSPLcom/android/server/pm/WatchedIntentFilter;-><init>(Lcom/android/server/pm/WatchedIntentFilter;)V
@@ -20183,409 +15721,269 @@
 HSPLcom/android/server/pm/WatchedIntentFilter;->addCategory(Ljava/lang/String;)V
 HSPLcom/android/server/pm/WatchedIntentFilter;->addDataScheme(Ljava/lang/String;)V
 HSPLcom/android/server/pm/WatchedIntentFilter;->addDataType(Ljava/lang/String;)V
-HSPLcom/android/server/pm/WatchedIntentFilter;->getIntentFilter()Landroid/content/IntentFilter;
-HSPLcom/android/server/pm/WatchedIntentFilter;->onChanged()V
+HSPLcom/android/server/pm/WatchedIntentFilter;->getIntentFilter$3()Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/WatchedIntentResolver$1;-><init>(Lcom/android/server/pm/WatchedIntentResolver;)V
-HSPLcom/android/server/pm/WatchedIntentResolver$2;-><init>()V
 HSPLcom/android/server/pm/WatchedIntentResolver;-><clinit>()V
 HSPLcom/android/server/pm/WatchedIntentResolver;-><init>()V
-HSPLcom/android/server/pm/WatchedIntentResolver;->addFilter(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/WatchedIntentFilter;)V
-HSPLcom/android/server/pm/WatchedIntentResolver;->copyFrom(Lcom/android/server/pm/WatchedIntentResolver;)V
+HSPLcom/android/server/pm/WatchedIntentResolver;->addFilter(Lcom/android/server/pm/Computer;Lcom/android/server/pm/WatchedIntentFilter;)V
 HSPLcom/android/server/pm/WatchedIntentResolver;->dispatchChange(Lcom/android/server/utils/Watchable;)V
 HSPLcom/android/server/pm/WatchedIntentResolver;->findFilters(Lcom/android/server/pm/WatchedIntentFilter;)Ljava/util/ArrayList;
-HSPLcom/android/server/pm/WatchedIntentResolver;->onChanged()V
 HSPLcom/android/server/pm/WatchedIntentResolver;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;-><init>(Lcom/android/server/pm/dex/ArtManagerService;)V
-HSPLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;-><init>(Lcom/android/server/pm/dex/ArtManagerService;Lcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl-IA;)V
-PLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;->checkIorapCompiledTrace(Ljava/lang/String;Ljava/lang/String;J)Z
-PLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;->getPackageOptimizationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/dex/PackageOptimizationInfo;
-PLcom/android/server/pm/dex/ArtManagerService;->-$$Nest$sfgetDEBUG()Z
-PLcom/android/server/pm/dex/ArtManagerService;->-$$Nest$smgetCompilationFilterTronValue(Ljava/lang/String;)I
-PLcom/android/server/pm/dex/ArtManagerService;->-$$Nest$smgetCompilationReasonTronValue(Ljava/lang/String;)I
+PLcom/android/server/pm/WatchedIntentResolver;->removeFilter(Lcom/android/server/pm/WatchedIntentFilter;)V
+PLcom/android/server/pm/WatchedIntentResolver;->removeFilterInternal(Ljava/lang/Object;)V
+PLcom/android/server/pm/WatchedIntentResolver;->sortResults(Ljava/util/List;)V
+PLcom/android/server/pm/dex/ArtManagerService$$ExternalSyntheticLambda0;-><init>(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Landroid/os/ParcelFileDescriptor;Ljava/lang/String;)V
+PLcom/android/server/pm/dex/ArtManagerService$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;->getPackageOptimizationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;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;Lcom/android/server/pm/Installer;Ljava/lang/Object;)V
-PLcom/android/server/pm/dex/ArtManagerService;->getCompilationFilterTronValue(Ljava/lang/String;)I
+HSPLcom/android/server/pm/dex/ArtManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/dex/ArtManagerService;->checkAndroidPermissions(ILjava/lang/String;)Z
 HSPLcom/android/server/pm/dex/ArtManagerService;->getCompilationReasonTronValue(Ljava/lang/String;)I
-HSPLcom/android/server/pm/dex/ArtManagerService;->verifyTronLoggingConstants()V
-HSPLcom/android/server/pm/dex/ArtStatsLogUtils$ArtStatsLogger;-><init>()V
-HPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
-PLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->mergeAppDataDirs(Ljava/lang/String;I)V
-PLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->updateCodeLocation(Ljava/lang/String;[Ljava/lang/String;)V
-PLcom/android/server/pm/dex/DexManager;->-$$Nest$smputIfAbsent(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/dex/ArtManagerService;->isRuntimeProfilingEnabled(ILjava/lang/String;)Z
+PLcom/android/server/pm/dex/ArtManagerService;->postSuccess(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Landroid/os/ParcelFileDescriptor;Ljava/lang/String;)V
+PLcom/android/server/pm/dex/ArtManagerService;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
+PLcom/android/server/pm/dex/DexManager$PackageCodeLocations;-><init>([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/dex/DexManager;-><clinit>()V
-HSPLcom/android/server/pm/dex/DexManager;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageDexOptimizer;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/dex/DynamicCodeLogger;)V
-HSPLcom/android/server/pm/dex/DexManager;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageDexOptimizer;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/dex/DynamicCodeLogger;Landroid/content/pm/IPackageManager;)V
-HPLcom/android/server/pm/dex/DexManager;->cachePackageCodeLocation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;I)V
-PLcom/android/server/pm/dex/DexManager;->cachePackageInfo(Landroid/content/pm/PackageInfo;I)V
+HSPLcom/android/server/pm/dex/DexManager;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageDexOptimizer;Lcom/android/server/pm/dex/DynamicCodeLogger;Landroid/content/pm/IPackageManager;)V
+PLcom/android/server/pm/dex/DexManager;->cachePackageCodeLocation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;I)V
 PLcom/android/server/pm/dex/DexManager;->load(Ljava/util/Map;)V
-HPLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V
-HPLcom/android/server/pm/dex/DexManager;->putIfAbsent(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/dex/DynamicCodeLogger$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V
+PLcom/android/server/pm/dex/DexManager;->notifyPackageUpdated([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/dex/DexoptOptions;-><init>(IILjava/lang/String;)V
+PLcom/android/server/pm/dex/DexoptOptions;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/dex/DexoptOptions;->convertToArtServiceDexoptReason(I)Ljava/lang/String;
+PLcom/android/server/pm/dex/DexoptOptions;->convertToDexoptParams(I)Lcom/android/server/art/model/DexoptParams;
 PLcom/android/server/pm/dex/DynamicCodeLogger$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/dex/DynamicCodeLogger;->$r8$lambda$11aZGEwigi4eqhfsE87EXQLEOD8(Ljava/lang/String;)Ljava/util/Set;
 HSPLcom/android/server/pm/dex/DynamicCodeLogger;-><init>(Lcom/android/server/pm/Installer;)V
-PLcom/android/server/pm/dex/DynamicCodeLogger;->lambda$load$0(Ljava/lang/String;)Ljava/util/Set;
-HPLcom/android/server/pm/dex/DynamicCodeLogger;->load(Ljava/util/Map;)V
-PLcom/android/server/pm/dex/DynamicCodeLogger;->readAndSync(Ljava/util/Map;)V
-PLcom/android/server/pm/dex/OdsignStatsLogger$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/pm/dex/DynamicCodeLogger;->load(Ljava/util/Map;)V
 PLcom/android/server/pm/dex/OdsignStatsLogger$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/pm/dex/OdsignStatsLogger;->$r8$lambda$5UQTBxO3KU1lWEi5-bo1kDq6QXM()V
-PLcom/android/server/pm/dex/OdsignStatsLogger;->triggerStatsWrite()V
-PLcom/android/server/pm/dex/OdsignStatsLogger;->writeStats()V
 HSPLcom/android/server/pm/dex/PackageDexUsage;-><init>()V
-PLcom/android/server/pm/dex/PackageDexUsage;->read()V
-PLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Ljava/lang/Object;)V
-PLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Ljava/lang/Void;)V
-PLcom/android/server/pm/dex/PackageDexUsage;->syncData(Ljava/util/Map;Ljava/util/Map;Ljava/util/List;)V
+PLcom/android/server/pm/dex/PackageDexUsage;->read$1(Ljava/io/Reader;)V
+PLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Lcom/android/server/utils/WatchedArrayMap;)V
+PLcom/android/server/pm/dex/PackageDexUsage;->syncData(Ljava/util/List;Ljava/util/Map;Ljava/util/Map;)V
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;-><clinit>()V
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;-><init>()V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read()V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Object;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Void;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->syncData(Ljava/util/Map;)V
+PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read(Ljava/io/InputStream;)V
+PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Lcom/android/server/utils/WatchedArrayMap;)V
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl$BaseSnapshotImpl;-><init>(Lcom/android/server/pm/snapshot/PackageDataSnapshot;)V
-HSPLcom/android/server/pm/local/PackageManagerLocalImpl$BaseSnapshotImpl;-><init>(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$BaseSnapshotImpl-IA;)V
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl$BaseSnapshotImpl;->checkClosed()V
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl$BaseSnapshotImpl;->close()V
-HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;-><init>(ILandroid/os/UserHandle;Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;)V
-HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;-><init>(ILandroid/os/UserHandle;Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl-IA;)V
-HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->checkClosed()V
+HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;-><init>(ILandroid/os/UserHandle;Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->checkClosed()V
 HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->close()V
-HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->getPackageState(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageState;
-HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->getPackageStates()Ljava/util/Map;
-HSPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;-><init>(Lcom/android/server/pm/snapshot/PackageDataSnapshot;)V
-HSPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;-><init>(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl-IA;)V
+HPLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->getPackageState(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageState;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;
+PLcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;->getPackageStates()Ljava/util/Map;
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;->close()V
 HPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;->filtered(ILandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;->getDisabledSystemPackageStates()Ljava/util/Map;
-HSPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;->getPackageStates()Ljava/util/Map;
+HSPLcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;->getPackageStates()Ljava/util/Map;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HPLcom/android/server/pm/local/PackageManagerLocalImpl;->withFilteredSnapshot()Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;
-HPLcom/android/server/pm/local/PackageManagerLocalImpl;->withFilteredSnapshot()Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;
 HPLcom/android/server/pm/local/PackageManagerLocalImpl;->withFilteredSnapshot(ILandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerLocal$FilteredSnapshot;
-HPLcom/android/server/pm/local/PackageManagerLocalImpl;->withFilteredSnapshot(ILandroid/os/UserHandle;)Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;
+HPLcom/android/server/pm/local/PackageManagerLocalImpl;->withFilteredSnapshot(ILandroid/os/UserHandle;Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/local/PackageManagerLocalImpl$FilteredSnapshotImpl;
 HSPLcom/android/server/pm/local/PackageManagerLocalImpl;->withUnfilteredSnapshot()Lcom/android/server/pm/PackageManagerLocal$UnfilteredSnapshot;
-HSPLcom/android/server/pm/local/PackageManagerLocalImpl;->withUnfilteredSnapshot()Lcom/android/server/pm/local/PackageManagerLocalImpl$UnfilteredSnapshotImpl;
-PLcom/android/server/pm/parsing/PackageCacher;-><clinit>()V
-PLcom/android/server/pm/parsing/PackageCacher;-><init>(Ljava/io/File;)V
-HPLcom/android/server/pm/parsing/PackageCacher;->fromCacheEntry([B)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
-HPLcom/android/server/pm/parsing/PackageCacher;->fromCacheEntryStatic([B)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
-HPLcom/android/server/pm/parsing/PackageCacher;->getCacheKey(Ljava/io/File;I)Ljava/lang/String;
-HPLcom/android/server/pm/parsing/PackageCacher;->getCachedResult(Ljava/io/File;I)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
-HPLcom/android/server/pm/parsing/PackageCacher;->isCacheUpToDate(Ljava/io/File;Ljava/io/File;)Z
-HPLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;-><init>()V
-HPLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;->generate(Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/pm/parsing/PackageInfoUtils;-><clinit>()V
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(ILcom/android/server/pm/pkg/PackageStateInternal;)I
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)I
-PLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlags(ILcom/android/server/pm/pkg/PackageStateInternal;)I
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlags(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)I
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlagsExt(ILcom/android/server/pm/pkg/PackageStateInternal;)I
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->assignFieldsComponentInfoParsedMainComponent(Landroid/content/pm/ComponentInfo;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;)V
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->assignFieldsComponentInfoParsedMainComponent(Landroid/content/pm/ComponentInfo;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)V
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->assignFieldsPackageItemInfoParsedComponent(Landroid/content/pm/PackageItemInfo;Lcom/android/internal/pm/pkg/component/ParsedComponent;)V
-PLcom/android/server/pm/parsing/PackageInfoUtils;->assignFieldsPackageItemInfoParsedComponent(Landroid/content/pm/PackageItemInfo;Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)V
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->checkUseInstalledOrHidden(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/PackageUserStateInternal;J)Z
-PLcom/android/server/pm/parsing/PackageInfoUtils;->flag(ZI)I
-PLcom/android/server/pm/parsing/PackageInfoUtils;->generate(Lcom/android/server/pm/pkg/AndroidPackage;[IJJJLjava/util/Set;Ljava/util/Set;Lcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedActivity;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ActivityInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedActivity;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ActivityInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateInstrumentationInfo(Lcom/android/internal/pm/pkg/component/ParsedInstrumentation;Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/InstrumentationInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Lcom/android/internal/pm/pkg/component/ParsedPermissionGroup;J)Landroid/content/pm/PermissionGroupInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Lcom/android/internal/pm/pkg/component/ParsedPermission;J)Landroid/content/pm/PermissionInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProcessInfo(Ljava/util/Map;J)Landroid/util/ArrayMap;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProviderInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedProvider;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ProviderInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedService;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ServiceInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedService;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ServiceInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateWithComponents(Lcom/android/server/pm/pkg/AndroidPackage;[IJJJLjava/util/Set;Ljava/util/Set;Lcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->getDataDir(Lcom/android/server/pm/pkg/PackageStateInternal;I)Ljava/io/File;
+PLcom/android/server/pm/parsing/PackageCacher$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V
+PLcom/android/server/pm/parsing/PackageCacher$$ExternalSyntheticLambda0;->accept(Ljava/io/File;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/parsing/PackageCacher;-><clinit>()V
+HSPLcom/android/server/pm/parsing/PackageCacher;-><init>(Ljava/io/File;Lcom/android/server/pm/PackageManagerService$3;)V
+PLcom/android/server/pm/parsing/PackageCacher;->cacheResult(Ljava/io/File;ILcom/android/internal/pm/parsing/pkg/ParsedPackage;)V
+PLcom/android/server/pm/parsing/PackageCacher;->cleanCachedResult(Ljava/io/File;)V
+HSPLcom/android/server/pm/parsing/PackageCacher;->fromCacheEntry([B)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/PackageCacher;->fromCacheEntryStatic([BLcom/android/server/pm/PackageManagerService$3;)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/PackageCacher;->getCacheKey(Ljava/io/File;I)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/PackageCacher;->getCachedResult(Ljava/io/File;I)Lcom/android/internal/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/PackageCacher;->isCacheFileUpToDate(Ljava/io/File;Ljava/io/File;)Z
+PLcom/android/server/pm/parsing/PackageCacher;->toCacheEntry(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)[B
+PLcom/android/server/pm/parsing/PackageCacher;->toCacheEntryStatic(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)[B
+PLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;-><init>()V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;-><clinit>()V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;)I
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlags(Lcom/android/server/pm/pkg/AndroidPackage;)I
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->assignFieldsComponentInfoParsedMainComponent(Landroid/content/pm/ComponentInfo;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)V+]Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->assignFieldsPackageItemInfoParsedComponent(Landroid/content/pm/PackageItemInfo;Lcom/android/internal/pm/pkg/component/ParsedComponent;)V+]Lcom/android/internal/pm/pkg/component/ParsedComponent;megamorphic_types
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->checkUseInstalledOrHidden(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/PackageUserStateInternal;J)Z+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedActivity;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedActivity;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ActivityInfo;+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ApplicationInfo;+]Lcom/android/internal/pm/parsing/pkg/AndroidPackageHidden;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/internal/pm/parsing/pkg/PackageImpl;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+PLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Lcom/android/internal/pm/pkg/component/ParsedPermissionGroup;J)Landroid/content/pm/PermissionGroupInfo;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Lcom/android/internal/pm/pkg/component/ParsedPermission;J)Landroid/content/pm/PermissionInfo;+]Lcom/android/internal/pm/pkg/component/ParsedPermission;Lcom/android/internal/pm/pkg/component/ParsedPermissionImpl;
+PLcom/android/server/pm/parsing/PackageInfoUtils;->generateProcessInfo(Ljava/util/Map;)Landroid/util/ArrayMap;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProviderInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedProvider;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ProviderInfo;+]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/pkg/component/ParsedService;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ServiceInfo;+]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->getDataDir(Lcom/android/server/pm/PackageSetting;I)Ljava/io/File;
 HPLcom/android/server/pm/parsing/PackageInfoUtils;->getDeprecatedSignatures(Landroid/content/pm/SigningDetails;J)[Landroid/content/pm/Signature;
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->initForUser(Landroid/content/pm/ApplicationInfo;Lcom/android/server/pm/pkg/AndroidPackage;ILcom/android/server/pm/pkg/PackageUserStateInternal;)V
-PLcom/android/server/pm/parsing/PackageInfoUtils;->initForUser(Landroid/content/pm/InstrumentationInfo;Lcom/android/server/pm/pkg/AndroidPackage;ILcom/android/server/pm/pkg/PackageUserStateInternal;)V
-HPLcom/android/server/pm/parsing/PackageInfoUtils;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;JLcom/android/server/pm/pkg/PackageUserState;)V
-HPLcom/android/server/pm/parsing/ParsedComponentStateUtils;->getNonLocalizedLabelAndIcon(Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)Landroid/util/Pair;
-PLcom/android/server/pm/parsing/library/AndroidHidlUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/AndroidNetIpSecIkeUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/AndroidNetIpSecIkeUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;->isChangeEnabled(Lcom/android/server/pm/pkg/AndroidPackage;Z)Z
-HPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/ApexSharedLibraryUpdater;-><init>(Landroid/util/ArrayMap;)V
-HPLcom/android/server/pm/parsing/library/ApexSharedLibraryUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-HPLcom/android/server/pm/parsing/library/ApexSharedLibraryUpdater;->updateSharedLibraryForPackage(Lcom/android/server/SystemConfig$SharedLibraryEntry;Lcom/android/internal/pm/parsing/pkg/ParsedPackage;)V
-PLcom/android/server/pm/parsing/library/ComGoogleAndroidMapsUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/ComGoogleAndroidMapsUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;->apkTargetsApiLevelLessThanOrEqualToOMR1(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;-><clinit>()V
-PLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;-><init>(Z[Lcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;)V
-PLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->addUpdaterForAndroidTestBase(Ljava/util/List;)Z
-PLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->modifySharedLibraries(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-HPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
-PLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;-><init>()V
-HPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->isLibraryPresent(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)Z
-HPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->prefixImplicitDependency(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->prefixRequiredLibrary(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)V
-HPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->removeLibrary(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)V
-PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->createNativeLibraryHandle(Lcom/android/server/pm/pkg/AndroidPackage;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
-PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->createSharedLibraryForDynamic(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Landroid/content/pm/SharedLibraryInfo;
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->fillVersionCodes(Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/PackageInfo;)V
-PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->generateAppInfoWithoutState(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/content/pm/ApplicationInfo;
+HPLcom/android/server/pm/parsing/PackageInfoUtils;->updateApplicationInfo(JLandroid/content/pm/ApplicationInfo;Lcom/android/server/pm/pkg/PackageUserStateInternal;)V+]Landroid/content/pm/overlay/OverlayPaths;Landroid/content/pm/overlay/OverlayPaths;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/parsing/ParsedComponentStateUtils;->getNonLocalizedLabelAndIcon(Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)Landroid/util/Pair;+]Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserStateInternal;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/AndroidNetIpSecIkeUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/AndroidNetIpSecIkeUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/ApexSharedLibraryUpdater;-><init>(Landroid/util/ArrayMap;)V
+HSPLcom/android/server/pm/parsing/library/ApexSharedLibraryUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/ComGoogleAndroidMapsUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/ComGoogleAndroidMapsUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;-><clinit>()V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;-><init>(Z[Lcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->modifySharedLibraries(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->updatePackage(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->prefixImplicitDependency(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->prefixRequiredLibrary(Lcom/android/internal/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)V
 PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getAllCodePaths(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/util/List;
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRawPrimaryCpuAbi(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRawSecondaryCpuAbi(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRealPackageOrNull(Lcom/android/server/pm/pkg/AndroidPackage;Z)Ljava/lang/String;
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->hasComponentClassName(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isEncryptionAware(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isLibrary(Lcom/android/server/pm/pkg/AndroidPackage;)Z
-HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isMatchForSystemOnly(Lcom/android/server/pm/pkg/PackageState;J)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getHiddenApiEnforcementPolicy(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)I
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRealPackageOrNull(Lcom/android/server/pm/pkg/AndroidPackage;Z)Ljava/lang/String;
+HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->hasComponentClassName(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;
+PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isLibrary(Lcom/android/server/pm/pkg/AndroidPackage;)Z
+PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->validatePackageDexMetadata(Lcom/android/server/pm/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;-><init>(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->getPermissionFlags(Ljava/lang/String;Landroid/content/pm/PackageInfo;Landroid/os/UserHandle;)I
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->getPermissionInfo(Ljava/lang/String;)Landroid/content/pm/PermissionInfo;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->isGranted(Ljava/lang/String;Landroid/content/pm/PackageInfo;Landroid/os/UserHandle;)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->updatePermissionFlags(Ljava/lang/String;Landroid/content/pm/PackageInfo;IILandroid/os/UserHandle;)V
 HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$2;-><init>(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Landroid/os/Looper;)V
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$2;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DefaultPermissionGrant;-><init>(Ljava/lang/String;ZZ)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DefaultPermissionGrant;-><init>(Ljava/lang/String;ZZ)V
 HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;-><init>(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)V
-HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;-><init>(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper-IA;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;->getBackgroundPermission(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;->getSystemPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;->isPermissionRestricted(Ljava/lang/String;)Z
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;->isSysComponentOrPersistentPlatformSignedPrivApp(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;->isSystemPackage(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;->isSystemPackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$fgetNO_PM_CACHE(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$fgetmContext(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/content/Context;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$fgetmGrantExceptions(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$fgetmLock(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Ljava/lang/Object;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$fgetmServiceInternal(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$fputmGrantExceptions(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->-$$Nest$mreadDefaultPermissionExceptionsLocked(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;)Landroid/util/ArrayMap;
 HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;-><clinit>()V
 HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->doesPackageSupportRuntimePermissions(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultPermissionFiles()[Ljava/io/File;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToPackage(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Landroid/content/pm/PackageInfo;IZZZ[Ljava/util/Set;)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->doesPackageSupportRuntimePermissions(Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToPackage(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Landroid/content/pm/PackageInfo;IZZ[Ljava/util/Set;)V
 PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToSystemPackage(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Ljava/lang/String;IZ[Ljava/util/Set;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToSystemPackage(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Ljava/lang/String;I[Ljava/util/Set;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantRuntimePermissions(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Landroid/content/pm/PackageInfo;Ljava/util/Set;ZZZI)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantSystemFixedPermissionsToSystemPackage(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Ljava/lang/String;I[Ljava/util/Set;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isFixedOrUserSet(I)Z
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isSystemOrCertificateMatchingPackage(Landroid/content/pm/PackageInfo;Ljava/lang/String;)Z
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parse(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/Map;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parseExceptions(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/Map;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parsePermission(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/List;)V
-HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->readDefaultPermissionExceptionsLocked(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->scheduleReadDefaultPermissionExceptions()V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setDialerAppPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setLocationExtraPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setLocationPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSimCallManagerPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSmsAppPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSyncAdapterPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$SyncAdapterPackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-HPLcom/android/server/pm/permission/LegacyPermission;-><init>(Landroid/content/pm/PermissionInfo;II[I)V
-HSPLcom/android/server/pm/permission/LegacyPermission;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/pm/permission/LegacyPermission;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;ZZLcom/android/server/pm/DumpState;)Z
-PLcom/android/server/pm/permission/LegacyPermission;->getPermissionInfo()Landroid/content/pm/PermissionInfo;
-HSPLcom/android/server/pm/permission/LegacyPermission;->read(Ljava/util/Map;Lcom/android/modules/utils/TypedXmlPullParser;)Z
-HSPLcom/android/server/pm/permission/LegacyPermission;->readInt(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/LegacyPermission;->write(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantRuntimePermissions(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Landroid/content/pm/PackageInfo;Ljava/util/Set;ZZI)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parse(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/Map;)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->readDefaultPermissionExceptionsLocked(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$PackageManagerWrapper;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/permission/LegacyPermission;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/permission/LegacyPermission;-><init>(Landroid/content/pm/PermissionInfo;II[I)V
+HPLcom/android/server/pm/permission/LegacyPermission;->write(Lcom/android/modules/utils/TypedXmlSerializer;)V+]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;
+PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;II)V
 PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda0;->runOrThrow()V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda3;->runOrThrow()V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$$ExternalSyntheticLambda6;->runOrThrow()V
 HSPLcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;->checkPermission(Ljava/lang/String;II)I
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;->getCallingPid()I
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;->getCallingUid()I
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;->getPackageUidForUser(Ljava/lang/String;I)I
 HSPLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;-><init>(Lcom/android/server/pm/permission/LegacyPermissionManagerService;)V
-HSPLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;-><init>(Lcom/android/server/pm/permission/LegacyPermissionManagerService;Lcom/android/server/pm/permission/LegacyPermissionManagerService$Internal-IA;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->scheduleReadDefaultPermissionExceptions()V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setDialerAppPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setLocationExtraPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setLocationPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setSimCallManagerPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setSmsAppPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setSyncAdapterPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$SyncAdapterPackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService$Internal;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/LegacyPermissionManagerInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->$r8$lambda$XJRM--KlcwdVcvJ6T-8uozQ32tE(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->$r8$lambda$lv-8Ha9p9dV0QQzCs6vFH7LiTB8(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->$r8$lambda$u77Y4zP2_UA0sARUr92T0pFuRWw(Lcom/android/server/pm/permission/LegacyPermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->-$$Nest$fgetmDefaultPermissionGrantPolicy(Lcom/android/server/pm/permission/LegacyPermissionManagerService;)Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;
-HSPLcom/android/server/pm/permission/LegacyPermissionManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/permission/LegacyPermissionManagerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/permission/LegacyPermissionManagerService$Injector;)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->checkDeviceIdentifierAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->checkPhoneNumberAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
-HSPLcom/android/server/pm/permission/LegacyPermissionManagerService;->create(Landroid/content/Context;)Lcom/android/server/pm/permission/LegacyPermissionManagerInternal;
+HPLcom/android/server/pm/permission/LegacyPermissionManagerService;->checkDeviceIdentifierAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
+HPLcom/android/server/pm/permission/LegacyPermissionManagerService;->checkPhoneNumberAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
 PLcom/android/server/pm/permission/LegacyPermissionManagerService;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/LegacyPermissionManagerService;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->lambda$grantDefaultPermissionsToEnabledImsServices$3([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->lambda$grantDefaultPermissionsToEnabledTelephonyDataServices$4([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/LegacyPermissionManagerService;->lambda$revokeDefaultPermissionsFromDisabledTelephonyDataServices$5([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/LegacyPermissionManagerService;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
-HPLcom/android/server/pm/permission/LegacyPermissionManagerService;->verifyCallerCanCheckAccess(Ljava/lang/String;Ljava/lang/String;II)V
+HPLcom/android/server/pm/permission/LegacyPermissionManagerService;->verifyCallerCanCheckAccess(IILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/permission/LegacyPermissionSettings;-><init>()V
-HPLcom/android/server/pm/permission/LegacyPermissionSettings;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Ljava/util/List;Ljava/util/Map;ZLcom/android/server/pm/DumpState;)V
 HSPLcom/android/server/pm/permission/LegacyPermissionSettings;->readPermissionTrees(Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/pm/permission/LegacyPermissionSettings;->readPermissions(Landroid/util/ArrayMap;Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/pm/permission/LegacyPermissionSettings;->readPermissions(Lcom/android/modules/utils/TypedXmlPullParser;)V
 PLcom/android/server/pm/permission/LegacyPermissionSettings;->replacePermissionTrees(Ljava/util/List;)V
-PLcom/android/server/pm/permission/LegacyPermissionSettings;->replacePermissions(Ljava/util/List;)V
+HPLcom/android/server/pm/permission/LegacyPermissionSettings;->replacePermissions(Ljava/util/List;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/pm/permission/LegacyPermissionSettings;->writePermissionTrees(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/pm/permission/LegacyPermissionSettings;->writePermissions(Lcom/android/modules/utils/TypedXmlSerializer;)V
-HPLcom/android/server/pm/permission/LegacyPermissionState$PermissionState;-><init>(Ljava/lang/String;ZZI)V
-PLcom/android/server/pm/permission/LegacyPermissionState$PermissionState;->getFlags()I
-PLcom/android/server/pm/permission/LegacyPermissionState$PermissionState;->getName()Ljava/lang/String;
-PLcom/android/server/pm/permission/LegacyPermissionState$PermissionState;->isGranted()Z
-PLcom/android/server/pm/permission/LegacyPermissionState$PermissionState;->isRuntime()Z
+HPLcom/android/server/pm/permission/LegacyPermissionSettings;->writePermissions(Lcom/android/modules/utils/TypedXmlSerializer;)V+]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+PLcom/android/server/pm/permission/LegacyPermissionState$PermissionState;-><init>(Ljava/lang/String;IZZ)V
 PLcom/android/server/pm/permission/LegacyPermissionState$UserState;-><init>()V
-PLcom/android/server/pm/permission/LegacyPermissionState$UserState;->getPermissionState(Ljava/lang/String;)Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;
-PLcom/android/server/pm/permission/LegacyPermissionState$UserState;->getPermissionStates()Ljava/util/Collection;
-PLcom/android/server/pm/permission/LegacyPermissionState$UserState;->putPermissionState(Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;)V
 HSPLcom/android/server/pm/permission/LegacyPermissionState;-><init>()V
 HSPLcom/android/server/pm/permission/LegacyPermissionState;->checkUserId(I)V
-HSPLcom/android/server/pm/permission/LegacyPermissionState;->copyFrom(Lcom/android/server/pm/permission/LegacyPermissionState;)V
-HPLcom/android/server/pm/permission/LegacyPermissionState;->getPermissionState(Ljava/lang/String;I)Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;
+HSPLcom/android/server/pm/permission/LegacyPermissionState;->copyFrom(Lcom/android/server/pm/permission/LegacyPermissionState;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
 HPLcom/android/server/pm/permission/LegacyPermissionState;->getPermissionStates(I)Ljava/util/Collection;
-HPLcom/android/server/pm/permission/LegacyPermissionState;->putPermissionState(Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;I)V
-HSPLcom/android/server/pm/permission/LegacyPermissionState;->setMissing(ZI)V
+HPLcom/android/server/pm/permission/LegacyPermissionState;->putPermissionState(Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HSPLcom/android/server/pm/permission/LegacyPermissionState;->setMissing(IZ)V
+PLcom/android/server/pm/permission/OneTimePermissionUserManager$1;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager;)V
+PLcom/android/server/pm/permission/OneTimePermissionUserManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/permission/OneTimePermissionUserManager;->stopPackageOneTimeSession(Ljava/lang/String;)V
+PLcom/android/server/pm/permission/Permission;-><init>(Landroid/content/pm/PermissionInfo;I)V
+PLcom/android/server/pm/permission/Permission;->getPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionAllowlist;-><init>()V
-PLcom/android/server/pm/permission/PermissionAllowlist;->getApexPrivilegedAppAllowlistState(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
-HSPLcom/android/server/pm/permission/PermissionAllowlist;->getApexPrivilegedAppAllowlists()Landroid/util/ArrayMap;
 HSPLcom/android/server/pm/permission/PermissionAllowlist;->getPrivilegedAppAllowlist()Landroid/util/ArrayMap;
-HPLcom/android/server/pm/permission/PermissionAllowlist;->getPrivilegedAppAllowlistState(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
-HSPLcom/android/server/pm/permission/PermissionAllowlist;->getProductPrivilegedAppAllowlist()Landroid/util/ArrayMap;
-HPLcom/android/server/pm/permission/PermissionAllowlist;->getProductPrivilegedAppAllowlistState(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
-HPLcom/android/server/pm/permission/PermissionAllowlist;->getSystemExtPrivilegedAppAllowlistState(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
+PLcom/android/server/pm/permission/PermissionAllowlist;->getPrivilegedAppAllowlistState(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
 HSPLcom/android/server/pm/permission/PermissionManagerService$AttributionSourceRegistry;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/pm/permission/PermissionManagerService$AttributionSourceRegistry;->isRegisteredAttributionSource(Landroid/content/AttributionSource;)Z
+HPLcom/android/server/pm/permission/PermissionManagerService$AttributionSourceRegistry;->isRegisteredAttributionSource(Landroid/content/AttributionSource;)Z+]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;-><clinit>()V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkAppOpPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZ)I
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkOp(ILandroid/content/AttributionSourceState;Ljava/lang/String;ZZ)I
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkOp(Landroid/content/Context;ILcom/android/server/pm/permission/PermissionManagerServiceInternal;Landroid/content/AttributionSource;Ljava/lang/String;ZZ)I
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;)Z
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZZI)I
+HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;Ljava/lang/String;Landroid/content/AttributionSource;)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$EmptySet;
+HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZZI)I+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;
 HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSourceState;Ljava/lang/String;ZZZI)I
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkRuntimePermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZZI)I
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->getAttributionChainId(ZLandroid/content/AttributionSource;)I
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->performOpTransaction(Landroid/content/Context;Landroid/os/IBinder;ILandroid/content/AttributionSource;Ljava/lang/String;ZZZZZIIII)I
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->resolveAttributionSource(Landroid/content/Context;Landroid/content/AttributionSource;)Landroid/content/AttributionSource;
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->finishDataDelivery(ILandroid/content/AttributionSourceState;Z)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->finishDataDelivery(Landroid/content/Context;ILandroid/content/AttributionSourceState;Z)V
+HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->performOpTransaction(Landroid/content/Context;Landroid/os/IBinder;ILandroid/content/AttributionSource;Ljava/lang/String;ZZZZZIIII)I+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->resolveAttributionFlags(Landroid/content/AttributionSource;Landroid/content/AttributionSource;ZZZZZ)I
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->resolvePackageName(Landroid/content/Context;Landroid/content/AttributionSource;)Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl-IA;)V
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->checkPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->checkUidPermission(ILjava/lang/String;I)I
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getAllAppOpPermissionPackages()Ljava/util/Map;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getAllPermissionsWithProtection(I)Ljava/util/List;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getAllPermissionsWithProtectionFlags(I)Ljava/util/List;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultPermissionGrantFingerprint(I)Ljava/lang/String;
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getGidsForUid(I)[I
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getGrantedPermissions(Ljava/lang/String;I)Ljava/util/Set;
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getInstalledPermissions(Ljava/lang/String;)Ljava/util/Set;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getLegacyPermissionState(I)Lcom/android/server/pm/permission/LegacyPermissionState;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getLegacyPermissions()Ljava/util/List;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionGids(Ljava/lang/String;I)[I
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->onPackageAdded(Lcom/android/server/pm/pkg/PackageState;ZLcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->onStorageVolumeMounted(Ljava/lang/String;Z)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->onSystemReady()V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->readLegacyPermissionStateTEMP()V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->backupRuntimePermissions(I)[B
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getGidsForUid(I)[I
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionTEMP(Ljava/lang/String;)Lcom/android/server/pm/permission/Permission;
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->onPackageInstalled(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackageInstalledParams;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->readLegacyPermissionsTEMP(Lcom/android/server/pm/permission/LegacyPermissionSettings;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->writeLegacyPermissionStateTEMP()V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->writeLegacyPermissionsTEMP(Lcom/android/server/pm/permission/LegacyPermissionSettings;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->-$$Nest$fgetmPermissionManagerServiceImpl(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInterface;
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->restoreDelayedRuntimePermissions(Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/PermissionManagerService$RegisteredAttribution$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/permission/PermissionManagerService$RegisteredAttribution;Landroid/content/Context;ILandroid/content/AttributionSource;Z)V
+PLcom/android/server/pm/permission/PermissionManagerService$RegisteredAttribution;-><init>(Landroid/content/Context;ILandroid/content/AttributionSource;Z)V
+PLcom/android/server/pm/permission/PermissionManagerService$RegisteredAttribution;->unregister()Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;-><clinit>()V
 HSPLcom/android/server/pm/permission/PermissionManagerService;-><init>(Landroid/content/Context;Landroid/util/ArrayMap;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermission(ILjava/lang/String;I)I
-HSPLcom/android/server/pm/permission/PermissionManagerService;->create(Landroid/content/Context;Landroid/util/ArrayMap;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-HPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
+HPLcom/android/server/pm/permission/PermissionManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceInterface;Lcom/android/server/permission/access/permission/PermissionService;
+HPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermission(ILjava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceInterface;Lcom/android/server/permission/access/permission/PermissionService;
+PLcom/android/server/pm/permission/PermissionManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->getAllPermissionGroups(I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/permission/PermissionManagerService;->getAllowlistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
+PLcom/android/server/pm/permission/PermissionManagerService;->getOneTimePermissionUserManager(I)Lcom/android/server/pm/permission/OneTimePermissionUserManager;
+HPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceInterface;Lcom/android/server/permission/access/permission/PermissionService;
 PLcom/android/server/pm/permission/PermissionManagerService;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;
 HPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
-PLcom/android/server/pm/permission/PermissionManagerService;->getSplitPermissions()Ljava/util/List;
+HPLcom/android/server/pm/permission/PermissionManagerService;->getPersistentDeviceId(I)Ljava/lang/String;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->getSplitPermissions()Ljava/util/List;
 PLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->isRegisteredAttributionSource(Landroid/content/AttributionSourceState;)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->queryPermissionsByGroup(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/permission/PermissionManagerService;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->shouldShowRequestPermissionRationale(Ljava/lang/String;Ljava/lang/String;II)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->stopOneTimePermissionSession(Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;I)V
-HSPLcom/android/server/pm/permission/PermissionMigrationHelperImpl;-><clinit>()V
-HSPLcom/android/server/pm/permission/PermissionMigrationHelperImpl;-><init>()V
-HPLcom/android/server/pm/pkg/PackageStateInternal;->getUserStateOrDefault(I)Lcom/android/server/pm/pkg/PackageUserState;
-HSPLcom/android/server/pm/pkg/PackageStateInternal;->getUserStateOrDefault(I)Lcom/android/server/pm/pkg/PackageUserStateInternal;
+PLcom/android/server/pm/permission/PermissionManagerServiceInternal$PackageInstalledParams;-><clinit>()V
+PLcom/android/server/pm/permission/PermissionManagerServiceInternal$PackageInstalledParams;-><init>(Landroid/util/ArrayMap;Ljava/util/List;I)V
+HPLcom/android/server/pm/pkg/PackageStateInternal;->getUserStateOrDefault(I)Lcom/android/server/pm/pkg/PackageUserState;+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/pkg/PackageStateInternal;->getUserStateOrDefault(I)Lcom/android/server/pm/pkg/PackageUserStateInternal;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/pkg/PackageStateUnserialized;-><init>(Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/pkg/PackageStateUnserialized;->getApexModuleName()Ljava/lang/String;
 HPLcom/android/server/pm/pkg/PackageStateUnserialized;->getLastPackageUsageTimeInMills()[J
-PLcom/android/server/pm/pkg/PackageStateUnserialized;->getOverrideSeInfo()Ljava/lang/String;
-PLcom/android/server/pm/pkg/PackageStateUnserialized;->getSeInfo()Ljava/lang/String;
-PLcom/android/server/pm/pkg/PackageStateUnserialized;->getUsesLibraryFiles()Ljava/util/List;
-PLcom/android/server/pm/pkg/PackageStateUnserialized;->getUsesLibraryInfos()Ljava/util/List;
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->isHiddenUntilInstalled()Z
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->isUpdatedSystemApp()Z
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->lazyInitLastPackageUsageTimeInMills()[J
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->setApexModuleName(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->setApkInUpdatedApex(Z)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->setLastPackageUsageTimeInMills(IJ)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->setOverrideSeInfo(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->setSeInfo(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-PLcom/android/server/pm/pkg/PackageStateUnserialized;->setUsesLibraryFiles(Ljava/util/List;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HPLcom/android/server/pm/pkg/PackageStateUnserialized;->setUsesLibraryInfos(Ljava/util/List;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
-HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->updateFrom(Lcom/android/server/pm/pkg/PackageStateUnserialized;)V
-HPLcom/android/server/pm/pkg/PackageStateUtils;->isEnabledAndMatches(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/content/pm/ComponentInfo;JI)Z
-HPLcom/android/server/pm/pkg/PackageStateUtils;->isEnabledAndMatches(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;JI)Z
-PLcom/android/server/pm/pkg/PackageUserStateDefault;-><init>()V
+PLcom/android/server/pm/pkg/PackageStateUnserialized;->getLatestPackageUseTimeInMills()J
+PLcom/android/server/pm/pkg/PackageStateUnserialized;->setUsesLibraryInfos(Ljava/util/List;)V
+HSPLcom/android/server/pm/pkg/PackageStateUtils;->getEarliestFirstInstallTime(Landroid/util/SparseArray;)J
+HPLcom/android/server/pm/pkg/PackageStateUtils;->isEnabledAndMatches(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/internal/pm/pkg/component/ParsedMainComponent;JI)Z+]Lcom/android/internal/pm/pkg/component/ParsedMainComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->getAllOverlayPaths()Landroid/content/pm/overlay/OverlayPaths;
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->getArchiveState()Lcom/android/server/pm/pkg/ArchiveState;
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->getEnabledState()I
-PLcom/android/server/pm/pkg/PackageUserStateDefault;->getFirstInstallTimeMillis()J
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isHidden()Z
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isInstalled()Z
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isInstantApp()Z
+PLcom/android/server/pm/pkg/PackageUserStateDefault;->isNotLaunched()Z
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isQuarantined()Z
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isStopped()Z
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isSuspended()Z
 PLcom/android/server/pm/pkg/PackageUserStateDefault;->isVirtualPreload()Z
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl$1;-><init>(Lcom/android/server/pm/pkg/PackageUserStateImpl;Lcom/android/server/pm/pkg/PackageUserStateImpl;Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl$1;->createSnapshot()Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl$1;-><init>(Lcom/android/server/pm/pkg/PackageUserStateImpl;Lcom/android/server/pm/pkg/PackageUserStateImpl;Lcom/android/server/pm/pkg/PackageUserStateImpl;)V
 HSPLcom/android/server/pm/pkg/PackageUserStateImpl$1;->createSnapshot()Ljava/lang/Object;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->-$$Nest$fgetmWatchable(Lcom/android/server/pm/pkg/PackageUserStateImpl;)Lcom/android/server/utils/Watchable;
 HSPLcom/android/server/pm/pkg/PackageUserStateImpl;-><init>(Lcom/android/server/utils/Watchable;)V
 HSPLcom/android/server/pm/pkg/PackageUserStateImpl;-><init>(Lcom/android/server/utils/Watchable;Lcom/android/server/pm/pkg/PackageUserStateImpl;)V
-PLcom/android/server/pm/pkg/PackageUserStateImpl;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getAllOverlayPaths()Landroid/content/pm/overlay/OverlayPaths;
 HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->getArchiveState()Lcom/android/server/pm/pkg/ArchiveState;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->getBoolean(I)Z
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->getBoolean$1(I)Z
 PLcom/android/server/pm/pkg/PackageUserStateImpl;->getCeDataInode()J
-PLcom/android/server/pm/pkg/PackageUserStateImpl;->getDeDataInode()J
-HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getDisabledComponents()Landroid/util/ArraySet;
-PLcom/android/server/pm/pkg/PackageUserStateImpl;->getDisabledComponentsNoCopy()Lcom/android/server/utils/WatchedArraySet;
+HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getDeDataInode()J
+PLcom/android/server/pm/pkg/PackageUserStateImpl;->getDisabledComponents()Landroid/util/ArraySet;
+HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getDisabledComponentsNoCopy()Lcom/android/server/utils/WatchedArraySet;
 PLcom/android/server/pm/pkg/PackageUserStateImpl;->getDistractionFlags()I
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getEnabledComponents()Landroid/util/ArraySet;
-PLcom/android/server/pm/pkg/PackageUserStateImpl;->getEnabledComponentsNoCopy()Lcom/android/server/utils/WatchedArraySet;
+HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getEnabledComponentsNoCopy()Lcom/android/server/utils/WatchedArraySet;
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getEnabledState()I
-HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getFirstInstallTimeMillis()J
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->getFirstInstallTimeMillis()J
 PLcom/android/server/pm/pkg/PackageUserStateImpl;->getHarmfulAppWarning()Ljava/lang/String;
-HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getInstallReason()I
+PLcom/android/server/pm/pkg/PackageUserStateImpl;->getInstallReason()I
 PLcom/android/server/pm/pkg/PackageUserStateImpl;->getLastDisableAppCaller()Ljava/lang/String;
-HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getMinAspectRatio()I
+PLcom/android/server/pm/pkg/PackageUserStateImpl;->getMinAspectRatio()I
 PLcom/android/server/pm/pkg/PackageUserStateImpl;->getOverlayPaths()Landroid/content/pm/overlay/OverlayPaths;
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->getOverrideLabelIconForComponent(Landroid/content/ComponentName;)Landroid/util/Pair;
 PLcom/android/server/pm/pkg/PackageUserStateImpl;->getSharedLibraryOverlayPaths()Ljava/util/Map;
@@ -20596,2252 +15994,2177 @@
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isHidden()Z
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isInstalled()Z
 HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->isInstantApp()Z
-PLcom/android/server/pm/pkg/PackageUserStateImpl;->isNotLaunched()Z
+HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isNotLaunched()Z
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isQuarantined()Z
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isStopped()Z
 HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isSuspended()Z
-HPLcom/android/server/pm/pkg/PackageUserStateImpl;->isVirtualPreload()Z
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->makeCache()Lcom/android/server/utils/SnapshotCache;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->onChanged()V
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setArchiveState(Lcom/android/server/pm/pkg/ArchiveState;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setBoolean(IZ)V
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setCeDataInode(J)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setDeDataInode(J)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setDisabledComponents(Landroid/util/ArraySet;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setDistractionFlags(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setEnabledComponents(Landroid/util/ArraySet;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setEnabledState(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setFirstInstallTimeMillis(J)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setHarmfulAppWarning(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setHidden(Z)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setInstallReason(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setInstalled(Z)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setInstantApp(Z)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setLastDisableAppCaller(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setMinAspectRatio(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setNotLaunched(Z)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-PLcom/android/server/pm/pkg/PackageUserStateImpl;->setOverlayPaths(Landroid/content/pm/overlay/OverlayPaths;)Z
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setSplashScreenTheme(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setStopped(Z)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setSuspendParams(Landroid/util/ArrayMap;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setUninstallReason(I)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setVirtualPreload(Z)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HPLcom/android/server/pm/pkg/PackageUserStateImpl;->setWatchable(Lcom/android/server/utils/Watchable;)Lcom/android/server/pm/pkg/PackageUserStateImpl;
-HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->snapshot()Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->isVirtualPreload()Z
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->onChanged$4()V
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setBoolean$1(IZ)V
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setDisabledComponents(Landroid/util/ArraySet;)V
+HSPLcom/android/server/pm/pkg/PackageUserStateImpl;->setEnabledComponents(Landroid/util/ArraySet;)V
 PLcom/android/server/pm/pkg/PackageUserStateInternal;-><clinit>()V
-HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isAvailable(Lcom/android/server/pm/pkg/PackageUserState;J)Z
-HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isEnabled(Lcom/android/server/pm/pkg/PackageUserState;ZZLjava/lang/String;J)Z
-HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isMatch(Lcom/android/server/pm/pkg/PackageUserState;Landroid/content/pm/ComponentInfo;J)Z
-HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isMatch(Lcom/android/server/pm/pkg/PackageUserState;ZZLcom/android/internal/pm/pkg/component/ParsedMainComponent;J)Z
-HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isMatch(Lcom/android/server/pm/pkg/PackageUserState;ZZZZLjava/lang/String;J)Z
-PLcom/android/server/pm/pkg/PackageUserStateUtils;->reportIfDebug(ZJ)Z
-HPLcom/android/server/pm/pkg/SELinuxUtil;->getSeinfoUser(Lcom/android/server/pm/pkg/PackageUserState;)Ljava/lang/String;
+HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isAvailable(Lcom/android/server/pm/pkg/PackageUserStateInternal;J)Z+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isEnabled(Lcom/android/server/pm/pkg/PackageUserStateInternal;ZZLjava/lang/String;J)Z+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+HPLcom/android/server/pm/pkg/PackageUserStateUtils;->isMatch(Lcom/android/server/pm/pkg/PackageUserStateInternal;ZZZZLjava/lang/String;J)Z
 PLcom/android/server/pm/pkg/SharedLibraryWrapper;-><init>(Landroid/content/pm/SharedLibraryInfo;)V
 PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getAllCodePaths()Ljava/util/List;
 PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getDependencies()Ljava/util/List;
-PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getInfo()Landroid/content/pm/SharedLibraryInfo;
+PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getPackageName()Ljava/lang/String;
+PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getPath()Ljava/lang/String;
+PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getType()I
 PLcom/android/server/pm/pkg/SharedLibraryWrapper;->isNative()Z
+PLcom/android/server/pm/pkg/mutate/PackageStateMutator$InitialState;-><init>(IJ)V
 PLcom/android/server/pm/pkg/mutate/PackageStateMutator$Result;-><clinit>()V
 PLcom/android/server/pm/pkg/mutate/PackageStateMutator$Result;-><init>(ZZZZ)V
-HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;-><init>()V
-HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;-><init>(Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper-IA;)V
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;->setOverlayPaths(Landroid/content/pm/overlay/OverlayPaths;)Lcom/android/server/pm/pkg/mutate/PackageUserStateWrite;
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;->setStates(Lcom/android/server/pm/pkg/PackageUserStateImpl;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;->setStopped(Z)Lcom/android/server/pm/pkg/mutate/PackageUserStateWrite;
+PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;->setOverlayPaths(Landroid/content/pm/overlay/OverlayPaths;)V
 HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;-><init>()V
-HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;-><init>(Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper-IA;)V
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;->onChanged()V
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;->setState(Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;->userState(I)Lcom/android/server/pm/pkg/mutate/PackageUserStateWrite;
+PLcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;->userState(I)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper$UserStateWriteWrapper;
 HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator;-><clinit>()V
 HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator;-><init>(Ljava/util/function/Function;Ljava/util/function/Function;)V
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator;->forPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/mutate/PackageStateWrite;
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator;->generateResult(Lcom/android/server/pm/pkg/mutate/PackageStateMutator$InitialState;I)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$Result;
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator;->onFinished()V
-HSPLcom/android/server/pm/pkg/mutate/PackageStateMutator;->onPackageStateChanged()V
-PLcom/android/server/pm/pkg/mutate/PackageStateMutator;->setState(Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;
-HSPLcom/android/server/pm/resolution/ComponentResolver$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/pm/pkg/mutate/PackageStateMutator;->forPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$StateWriteWrapper;
 HPLcom/android/server/pm/resolution/ComponentResolver$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLcom/android/server/pm/resolution/ComponentResolver$1;-><init>(Lcom/android/server/pm/resolution/ComponentResolver;Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/utils/Watchable;Lcom/android/server/pm/UserNeedsBadgingCache;)V
-HSPLcom/android/server/pm/resolution/ComponentResolver$1;->createSnapshot()Lcom/android/server/pm/resolution/ComponentResolverApi;
+PLcom/android/server/pm/resolution/ComponentResolver$$ExternalSyntheticLambda1;-><init>(I)V
+PLcom/android/server/pm/resolution/ComponentResolver$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/resolution/ComponentResolver$1;-><init>(Lcom/android/server/pm/resolution/ComponentResolver;Lcom/android/server/pm/resolution/ComponentResolver;Lcom/android/server/pm/resolution/ComponentResolver;Lcom/android/server/pm/UserNeedsBadgingCache;)V
 HSPLcom/android/server/pm/resolution/ComponentResolver$1;->createSnapshot()Ljava/lang/Object;
 HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserNeedsBadgingCache;)V
 HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;-><init>(Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserNeedsBadgingCache;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->addActivity(Lcom/android/server/pm/Computer;Lcom/android/internal/pm/pkg/component/ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->addFilter(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/util/Pair;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/util/Pair;Ljava/util/List;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/Pair;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->getIntentFilter(Landroid/util/Pair;)Landroid/content/IntentFilter;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/util/Pair;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/util/Pair;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newArray(I)[Ljava/lang/Object;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newResult(Lcom/android/server/pm/Computer;Landroid/util/Pair;IIJ)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;
+HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->addActivity(Lcom/android/server/pm/Computer;Lcom/android/internal/pm/pkg/component/ParsedActivity;Ljava/lang/String;Ljava/util/List;)V+]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Ljava/util/List;Ljava/lang/Object;)Z+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;
+PLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->filterToLabel(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;+]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;
+PLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newArray(I)[Ljava/lang/Object;
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
 HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->queryIntent(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->sortResults(Ljava/util/List;)V
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;
+PLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->removeActivity(Lcom/android/internal/pm/pkg/component/ParsedActivity;)V
+HPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->sortResults(Ljava/util/List;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;)V
 HSPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;-><init>(Lcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;Lcom/android/server/pm/UserManagerService;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->addFilter(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/util/Pair;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->applyMimeGroups(Lcom/android/server/pm/Computer;Landroid/util/Pair;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->isFilterStopped(Lcom/android/server/pm/Computer;Landroid/util/Pair;I)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->isFilterStopped(Lcom/android/server/pm/Computer;Ljava/lang/Object;I)Z
-HSPLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;)V
-HSPLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;-><init>(Lcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;Lcom/android/server/pm/UserManagerService;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->addProvider(Lcom/android/server/pm/Computer;Lcom/android/internal/pm/pkg/component/ParsedProvider;)V
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/Pair;)V
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->getIntentFilter(Landroid/util/Pair;)Landroid/content/IntentFilter;
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/util/Pair;)Z
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/util/Pair;
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->newArray(I)[Ljava/lang/Object;
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->queryIntent(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-PLcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;->sortResults(Ljava/util/List;)V
-HSPLcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserNeedsBadgingCache;)V
-HSPLcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;-><init>(Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserNeedsBadgingCache;)V
-HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;)V
+HPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->addFilter(Lcom/android/server/pm/Computer;Landroid/util/Pair;)V
+HPLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->isFilterStopped(Lcom/android/server/pm/Computer;Ljava/lang/Object;I)Z+]Lcom/android/internal/pm/pkg/component/ParsedComponent;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;,Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
+PLcom/android/server/pm/resolution/ComponentResolver$MimeGroupsAwareIntentResolver;->removeFilterInternal(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;I)V
 HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;-><init>(Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->addFilter(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/util/Pair;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->addService(Lcom/android/server/pm/Computer;Lcom/android/internal/pm/pkg/component/ParsedService;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/util/Pair;Ljava/util/List;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/Pair;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->getIntentFilter(Landroid/util/Pair;)Landroid/content/IntentFilter;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/util/Pair;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/util/Pair;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newArray(I)[Ljava/lang/Object;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newResult(Lcom/android/server/pm/Computer;Landroid/util/Pair;IIJ)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->queryIntent(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
+HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;-><init>(Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;Lcom/android/server/pm/UserManagerService;B)V
+HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Ljava/util/List;Ljava/lang/Object;)Z+]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
+PLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->filterToLabel(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;+]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;
+HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z+]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;
+PLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newArray(I)[Ljava/lang/Object;
+HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;
 HPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->sortResults(Ljava/util/List;)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->$r8$lambda$UVMyfxjaimXrgxK-y9k5NRVVfkI(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I
 HSPLcom/android/server/pm/resolution/ComponentResolver;-><clinit>()V
 HSPLcom/android/server/pm/resolution/ComponentResolver;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserNeedsBadgingCache;)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->addActivitiesLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/util/List;Z)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->addAllComponents(Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/Computer;)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->addProvidersLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/AndroidPackage;Z)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->addReceiversLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/AndroidPackage;Z)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->addServicesLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/AndroidPackage;Z)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->adjustPriority(Lcom/android/server/pm/Computer;Ljava/util/List;Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Ljava/lang/String;)V
+HSPLcom/android/server/pm/resolution/ComponentResolver;->addAllComponents(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;Lcom/android/server/pm/Computer;)V+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;
+HSPLcom/android/server/pm/resolution/ComponentResolver;->addProvidersLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/resolution/ComponentResolver;->addServicesLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/AndroidPackage;)V
+PLcom/android/server/pm/resolution/ComponentResolver;->assertProvidersNotDefined(Lcom/android/server/pm/pkg/AndroidPackage;)V
 PLcom/android/server/pm/resolution/ComponentResolver;->fixProtectedFilterPriorities(Ljava/lang/String;)V
-HPLcom/android/server/pm/resolution/ComponentResolver;->isProtectedAction(Landroid/content/IntentFilter;)Z
-HPLcom/android/server/pm/resolution/ComponentResolver;->lambda$static$0(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I
-PLcom/android/server/pm/resolution/ComponentResolver;->onChanged()V
-HSPLcom/android/server/pm/resolution/ComponentResolver;->snapshot()Lcom/android/server/pm/resolution/ComponentResolverApi;
+PLcom/android/server/pm/resolution/ComponentResolver;->getIntentListSubset(Ljava/util/List;Ljava/util/function/Function;Ljava/util/Iterator;)V
+PLcom/android/server/pm/resolution/ComponentResolver;->removeAllComponentsLocked(Lcom/android/server/pm/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/resolution/ComponentResolverBase;-><init>(Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpActivityResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->dumpContentProviders(Lcom/android/server/pm/Computer;Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
-PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpProviderResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
-PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpReceiverResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
-PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpServiceResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpActivityResolvers(Lcom/android/server/pm/DumpState;Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpContentProviders(Lcom/android/server/pm/Computer;Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpProviderResolvers(Lcom/android/server/pm/DumpState;Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpReceiverResolvers(Lcom/android/server/pm/DumpState;Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpServicePermissions(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V
+PLcom/android/server/pm/resolution/ComponentResolverBase;->dumpServiceResolvers(Lcom/android/server/pm/DumpState;Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/pm/resolution/ComponentResolverBase;->getActivity(Landroid/content/ComponentName;)Lcom/android/internal/pm/pkg/component/ParsedActivity;
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->getProvider(Landroid/content/ComponentName;)Lcom/android/internal/pm/pkg/component/ParsedProvider;
+PLcom/android/server/pm/resolution/ComponentResolverBase;->getProvider(Landroid/content/ComponentName;)Lcom/android/internal/pm/pkg/component/ParsedProvider;
 HPLcom/android/server/pm/resolution/ComponentResolverBase;->getReceiver(Landroid/content/ComponentName;)Lcom/android/internal/pm/pkg/component/ParsedActivity;
 HPLcom/android/server/pm/resolution/ComponentResolverBase;->getService(Landroid/content/ComponentName;)Lcom/android/internal/pm/pkg/component/ParsedService;
-PLcom/android/server/pm/resolution/ComponentResolverBase;->isActivityDefined(Landroid/content/ComponentName;)Z
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryActivities(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryActivities(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProvider(Lcom/android/server/pm/Computer;Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo;
+HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryActivities(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
+HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryActivities(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
+HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProvider(Lcom/android/server/pm/ComputerEngine;Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo;+]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
 PLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/Computer;Ljava/lang/String;Ljava/lang/String;IJI)Ljava/util/List;
+HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/ComputerEngine;Ljava/lang/String;Ljava/lang/String;IJI)Ljava/util/List;+]Lcom/android/internal/pm/pkg/component/ParsedProvider;Lcom/android/internal/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;
 HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryReceivers(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
 HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryReceivers(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryServices(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryServices(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
+HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryServices(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
+HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryServices(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;+]Lcom/android/internal/pm/pkg/component/ParsedService;Lcom/android/internal/pm/pkg/component/ParsedServiceImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;
 HSPLcom/android/server/pm/resolution/ComponentResolverLocked;-><init>(Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/resolution/ComponentResolverLocked;->isActivityDefined(Landroid/content/ComponentName;)Z
-PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryActivities(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryActivities(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
+PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryActivities(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
+PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryActivities(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;
 PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryReceivers(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
-PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryServices(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
+PLcom/android/server/pm/resolution/ComponentResolverLocked;->queryServices(Lcom/android/server/pm/ComputerEngine;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;
 HSPLcom/android/server/pm/resolution/ComponentResolverSnapshot;-><init>(Lcom/android/server/pm/resolution/ComponentResolver;Lcom/android/server/pm/UserNeedsBadgingCache;)V
 PLcom/android/server/pm/utils/RequestThrottle$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/utils/RequestThrottle;)V
-PLcom/android/server/pm/utils/RequestThrottle;-><init>(Landroid/os/Handler;IIILjava/util/function/Supplier;)V
-PLcom/android/server/pm/utils/RequestThrottle;-><init>(Landroid/os/Handler;Ljava/util/function/Supplier;)V
+PLcom/android/server/pm/utils/RequestThrottle$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/pm/utils/RequestThrottle;-><init>(Landroid/os/Handler;Lcom/android/server/pm/PackageInstallerService$$ExternalSyntheticLambda8;)V
 PLcom/android/server/pm/utils/RequestThrottle;->runInternal()Z
-PLcom/android/server/pm/utils/RequestThrottle;->runNow()Z
-HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/pm/utils/RequestThrottle;->schedule()V
 PLcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/verify/domain/DomainVerificationCollector;->$r8$lambda$batCCh6Ga6j4xiWi4NlYNy9upmc(Landroid/util/ArraySet;Ljava/lang/String;)Ljava/lang/Boolean;
 HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;-><clinit>()V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;-><init>(Lcom/android/server/compat/PlatformCompat;Lcom/android/server/SystemConfig;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectAllWebDomains(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArraySet;
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomains(Lcom/android/server/pm/pkg/AndroidPackage;ZZ)Landroid/util/ArraySet;
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomains(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomainsInternal(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomainsLegacy(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-PLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectInvalidAutoVerifyDomains(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArraySet;
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectValidAutoVerifyDomains(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArraySet;
-HPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->isValidHost(Ljava/lang/String;)Z
-PLcom/android/server/pm/verify/domain/DomainVerificationCollector;->lambda$static$0(Landroid/util/ArraySet;Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomains(Lcom/android/server/pm/pkg/AndroidPackage;ZZ)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomains(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
+HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomainsInternal(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;+]Lcom/android/internal/pm/pkg/component/ParsedActivity;Lcom/android/internal/pm/pkg/component/ParsedActivityImpl;]Lcom/android/internal/pm/pkg/component/ParsedIntentInfo;Lcom/android/internal/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Ljava/util/function/BiFunction;Lcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda0;
 HSPLcom/android/server/pm/verify/domain/DomainVerificationDebug;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationCollector;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;ILcom/android/server/pm/verify/domain/models/DomainVerificationInternalUserState;Landroid/util/ArraySet;Landroid/util/ArraySet;Z)Z
-HPLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/util/ArrayMap;Z)Z
+PLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;ILcom/android/server/pm/verify/domain/models/DomainVerificationInternalUserState;Landroid/util/ArraySet;Landroid/util/ArraySet;Z)V
+PLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/util/ArrayMap;)Z
 PLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/Integer;Landroid/util/ArraySet;Z)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Ljava/lang/String;Ljava/lang/Integer;Lcom/android/server/pm/Computer;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationDebug;->printState(Landroid/util/IndentingPrintWriter;Ljava/lang/String;Ljava/lang/Integer;Lcom/android/server/pm/Computer;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;)V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationEnforcer;-><init>(Landroid/content/Context;)V
 PLcom/android/server/pm/verify/domain/DomainVerificationEnforcer;->assertApprovedQuerent(ILcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationEnforcer;->assertApprovedVerifier(ILcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;)V
 PLcom/android/server/pm/verify/domain/DomainVerificationEnforcer;->assertInternal(I)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationEnforcer;->callerIsLegacyUserSelector(IILjava/lang/String;I)Z
-HSPLcom/android/server/pm/verify/domain/DomainVerificationEnforcer;->setCallback(Lcom/android/server/pm/verify/domain/DomainVerificationEnforcer$Callback;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings$LegacyState;-><init>()V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings$LegacyState;->addUserState(II)V
-PLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings$LegacyState;->getUserStates()Landroid/util/SparseIntArray;
 HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;-><init>()V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->add(Ljava/lang/String;II)V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->getOrCreateStateLocked(Ljava/lang/String;)Lcom/android/server/pm/verify/domain/DomainVerificationLegacySettings$LegacyState;
-HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->readSettings(Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->readUserState(Lcom/android/server/pm/SettingsXml$ReadSection;Lcom/android/server/pm/verify/domain/DomainVerificationLegacySettings$LegacyState;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->readUserStates(Lcom/android/server/pm/SettingsXml$ReadSection;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->writeSettings(Lcom/android/modules/utils/TypedXmlSerializer;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationLegacySettings;->remove(Ljava/lang/String;)Landroid/content/pm/IntentFilterVerificationInfo;
+HSPLcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;-><clinit>()V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationManagerStub;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationService;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationManagerStub;->getDomainVerificationInfo(Ljava/lang/String;)Landroid/content/pm/verify/domain/DomainVerificationInfo;
+PLcom/android/server/pm/verify/domain/DomainVerificationManagerStub;->queryValidVerificationPackageNames()Ljava/util/List;
+PLcom/android/server/pm/verify/domain/DomainVerificationManagerStub;->setDomainVerificationStatus(Ljava/lang/String;Landroid/content/pm/verify/domain/DomainSet;I)I
 HSPLcom/android/server/pm/verify/domain/DomainVerificationPersistence$ReadResult;-><init>(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->createPkgStateFromXml(Lcom/android/server/pm/SettingsXml$ReadSection;)Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;
-HSPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->readDomainStates(Lcom/android/server/pm/SettingsXml$ReadSection;Landroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->readFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)Lcom/android/server/pm/verify/domain/DomainVerificationPersistence$ReadResult;
-HSPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->readPackageStates(Lcom/android/server/pm/SettingsXml$ReadSection;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writePackageStates(Lcom/android/server/pm/SettingsXml$WriteSection;Ljava/util/Collection;ILjava/util/function/Function;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writePkgStateToXml(Lcom/android/server/pm/SettingsXml$WriteSection;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;ILjava/util/function/Function;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeStateMap(Lcom/android/server/pm/SettingsXml$WriteSection;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeToXml(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;ILjava/util/function/Function;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeUriRelativeFilterGroupMap(Lcom/android/server/pm/SettingsXml$WriteSection;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeUserStates(Lcom/android/server/pm/SettingsXml$WriteSection;ILandroid/util/SparseArray;)V
+HSPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->readPackageStates(Lcom/android/server/pm/SettingsXml$ReadSectionImpl;Landroid/util/ArrayMap;)V
+HPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writePackageStates(Lcom/android/server/pm/SettingsXml$ReadSectionImpl;Ljava/util/Collection;ILcom/android/server/pm/verify/domain/DomainVerificationService$$ExternalSyntheticLambda1;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Ljava/util/Collection;Landroid/util/ArraySet;,Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
+HPLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeStateMap(Lcom/android/server/pm/SettingsXml$ReadSectionImpl;Landroid/util/ArrayMap;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeToXml(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;ILcom/android/server/pm/verify/domain/DomainVerificationService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationPersistence;->writeUriRelativeFilterGroupMap(Lcom/android/server/pm/SettingsXml$ReadSectionImpl;Landroid/util/ArrayMap;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/Computer;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/verify/domain/DomainVerificationService$GetAttachedResult;-><init>(Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;I)V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationService;-><init>(Landroid/content/Context;Lcom/android/server/SystemConfig;Lcom/android/server/compat/PlatformCompat;)V
 PLcom/android/server/pm/verify/domain/DomainVerificationService;->addIfShouldBroadcastLocked(Ljava/util/Collection;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;Z)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationService;->addPackage(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/content/pm/verify/domain/DomainSet;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationService;->applyImmutableState(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;Landroid/util/ArraySet;)Z
-HPLcom/android/server/pm/verify/domain/DomainVerificationService;->generateNewId()Ljava/util/UUID;
+HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->addPackage(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/verify/domain/DomainSet;)V
+HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->applyImmutableState(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;Landroid/util/ArraySet;)Z
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->applyPreVerifiedState(Landroid/util/ArrayMap;Landroid/util/ArraySet;Landroid/content/pm/verify/domain/DomainSet;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->getAndValidateAttachedLocked(Ljava/util/UUID;Ljava/util/Set;ZILjava/lang/Integer;Lcom/android/server/pm/Computer;)Lcom/android/server/pm/verify/domain/DomainVerificationService$GetAttachedResult;
 PLcom/android/server/pm/verify/domain/DomainVerificationService;->getCollector()Lcom/android/server/pm/verify/domain/DomainVerificationCollector;
-PLcom/android/server/pm/verify/domain/DomainVerificationService;->getShell()Lcom/android/server/pm/verify/domain/DomainVerificationShell;
-PLcom/android/server/pm/verify/domain/DomainVerificationService;->hasRealVerifier()Z
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->getDomainVerificationInfo(Ljava/lang/String;)Landroid/content/pm/verify/domain/DomainVerificationInfo;
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->migrateState(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/verify/domain/DomainSet;)V
 PLcom/android/server/pm/verify/domain/DomainVerificationService;->onBootPhase(I)V
 HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->onStart()V
 PLcom/android/server/pm/verify/domain/DomainVerificationService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationService;->printState(Lcom/android/server/pm/Computer;Landroid/util/IndentingPrintWriter;Ljava/lang/String;Ljava/lang/Integer;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->printState(Landroid/util/IndentingPrintWriter;Lcom/android/server/pm/Computer;Ljava/lang/Integer;Ljava/lang/String;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->queryValidVerificationPackageNames()Ljava/util/List;
 HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->readLegacySettings(Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->readSettings(Lcom/android/server/pm/Computer;Lcom/android/modules/utils/TypedXmlPullParser;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->setConnection(Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal$Connection;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->setLegacyUserState(Ljava/lang/String;II)Z
+HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->readSettings(Lcom/android/server/pm/ComputerLocked;Lcom/android/modules/utils/TypedXmlPullParser;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->removeUserStatesForDomain(Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;Ljava/lang/String;)V
+HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->setConnection(Lcom/android/server/pm/DomainVerificationConnection;)V
+PLcom/android/server/pm/verify/domain/DomainVerificationService;->setDomainVerificationStatusInternal(ILjava/util/UUID;Ljava/util/Set;I)I
+HSPLcom/android/server/pm/verify/domain/DomainVerificationService;->setLegacyUserState(IILjava/lang/String;)Z
 PLcom/android/server/pm/verify/domain/DomainVerificationService;->setProxy(Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;)V
-PLcom/android/server/pm/verify/domain/DomainVerificationService;->shouldReBroadcastPackage(Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;)Z
 PLcom/android/server/pm/verify/domain/DomainVerificationService;->verifyPackages(Ljava/util/List;Z)V
-PLcom/android/server/pm/verify/domain/DomainVerificationService;->writeSettings(Lcom/android/server/pm/Computer;Lcom/android/modules/utils/TypedXmlSerializer;ZI)V
+HPLcom/android/server/pm/verify/domain/DomainVerificationService;->writeSettings(Lcom/android/server/pm/Computer;Lcom/android/modules/utils/TypedXmlSerializer;ZI)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;]Ljava/util/Stack;Ljava/util/Stack;
 HSPLcom/android/server/pm/verify/domain/DomainVerificationSettings;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationCollector;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationSettings;->readSettings(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;Lcom/android/server/pm/Computer;)V
-HPLcom/android/server/pm/verify/domain/DomainVerificationSettings;->removePendingState(Ljava/lang/String;)Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;
-PLcom/android/server/pm/verify/domain/DomainVerificationSettings;->writeSettings(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;ILjava/util/function/Function;)V
-HSPLcom/android/server/pm/verify/domain/DomainVerificationShell;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationShell$Callback;)V
-PLcom/android/server/pm/verify/domain/DomainVerificationUtils$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/pm/verify/domain/DomainVerificationUtils;-><clinit>()V
-HPLcom/android/server/pm/verify/domain/DomainVerificationUtils;->buildMockAppInfo(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/verify/domain/DomainVerificationUtils;->isChangeEnabled(Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/pkg/AndroidPackage;J)Z
-HPLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;-><init>(Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;Ljava/util/UUID;Z)V
+HSPLcom/android/server/pm/verify/domain/DomainVerificationSettings;->readSettings(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;Lcom/android/server/pm/ComputerLocked;)V
+HSPLcom/android/server/pm/verify/domain/DomainVerificationShell;-><init>(Lcom/android/server/pm/verify/domain/DomainVerificationService;)V
+HSPLcom/android/server/pm/verify/domain/DomainVerificationUtils;-><clinit>()V
 HSPLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;-><init>(Ljava/lang/String;Ljava/util/UUID;ZLandroid/util/ArrayMap;Landroid/util/SparseArray;Ljava/lang/String;Landroid/util/ArrayMap;)V
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->getBackupSignatureHash()Ljava/lang/String;
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->getId()Ljava/util/UUID;
-HSPLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->getPackageName()Ljava/lang/String;
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->getStateMap()Landroid/util/ArrayMap;
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->getUriRelativeFilterGroupMap()Landroid/util/ArrayMap;
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->getUserStates()Landroid/util/SparseArray;
+PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->equals(Ljava/lang/Object;)Z
 PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->hashCode()I
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->isHasAutoVerifyDomains()Z
-PLcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;->userStatesHashCode()I
 HSPLcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;-><init>()V
-HSPLcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;->get(Ljava/lang/String;)Ljava/lang/Object;
-HPLcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;->put(Ljava/lang/String;Ljava/util/UUID;Ljava/lang/Object;)V
-PLcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;->size()I
-PLcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;->valueAt(I)Ljava/lang/Object;
-PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;->makeProxy(Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/content/Context;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/verify/domain/DomainVerificationCollector;Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1$Connection;)Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;
-PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyCombined;-><init>(Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;)V
-HSPLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyUnavailable;-><init>()V
-PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1;-><init>(Landroid/content/Context;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/verify/domain/DomainVerificationCollector;Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1$Connection;Landroid/content/ComponentName;)V
-PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2;-><init>(Landroid/content/Context;Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2$Connection;Landroid/content/ComponentName;)V
+HSPLcom/android/server/pm/verify/domain/models/DomainVerificationStateMap;->put(Ljava/lang/String;Ljava/util/UUID;Lcom/android/server/pm/verify/domain/models/DomainVerificationPkgState;)V
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;->makeProxy(Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/content/Context;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/verify/domain/DomainVerificationCollector;Lcom/android/server/pm/DomainVerificationConnection;)Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxy;
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyCombined;-><init>(Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1;Lcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2;)V
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyCombined;->getComponentName()Landroid/content/ComponentName;
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyCombined;->isCallerVerifier(I)Z
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1;-><init>(Landroid/content/Context;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/verify/domain/DomainVerificationCollector;Lcom/android/server/pm/DomainVerificationConnection;Landroid/content/ComponentName;)V
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2;-><init>(Landroid/content/Context;Lcom/android/server/pm/DomainVerificationConnection;Landroid/content/ComponentName;)V
+PLcom/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2;->isCallerVerifier(I)Z
 PLcom/android/server/policy/AppOpsPolicy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/AppOpsPolicy;)V
 PLcom/android/server/policy/AppOpsPolicy$$ExternalSyntheticLambda0;->onLocationPackageTagsChanged(ILandroid/os/PackageTagsList;)V
 PLcom/android/server/policy/AppOpsPolicy$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/policy/AppOpsPolicy;)V
+PLcom/android/server/policy/AppOpsPolicy$$ExternalSyntheticLambda1;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/policy/AppOpsPolicy$1;-><init>(Lcom/android/server/policy/AppOpsPolicy;)V
-PLcom/android/server/policy/AppOpsPolicy;->$r8$lambda$laOMxe-XDRkQA64xS88xc0B7in4(Lcom/android/server/policy/AppOpsPolicy;ILandroid/os/PackageTagsList;)V
+PLcom/android/server/policy/AppOpsPolicy$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/policy/AppOpsPolicy;-><clinit>()V
 PLcom/android/server/policy/AppOpsPolicy;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/policy/AppOpsPolicy;->checkAudioOperation(IIILjava/lang/String;Lcom/android/internal/util/function/QuadFunction;)I
-HPLcom/android/server/policy/AppOpsPolicy;->checkOperation(IILjava/lang/String;Ljava/lang/String;IZLcom/android/internal/util/function/HexFunction;)I
-PLcom/android/server/policy/AppOpsPolicy;->clearActivityRecognitionTags()V
-HPLcom/android/server/policy/AppOpsPolicy;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ILcom/android/internal/util/function/HexConsumer;)V
+HPLcom/android/server/policy/AppOpsPolicy;->checkAudioOperation(IIILjava/lang/String;Lcom/android/internal/util/function/QuadFunction;)I+]Lcom/android/internal/util/function/QuadFunction;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda3;
+HPLcom/android/server/policy/AppOpsPolicy;->checkOperation(IILjava/lang/String;Ljava/lang/String;IZLcom/android/internal/util/function/HexFunction;)I+]Lcom/android/internal/util/function/HexFunction;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda9;
+PLcom/android/server/policy/AppOpsPolicy;->dumpTags(Ljava/io/PrintWriter;)V
+HPLcom/android/server/policy/AppOpsPolicy;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ILcom/android/internal/util/function/HexConsumer;)V+]Lcom/android/internal/util/function/HexConsumer;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda10;
 PLcom/android/server/policy/AppOpsPolicy;->initializeActivityRecognizersTags()V
-PLcom/android/server/policy/AppOpsPolicy;->isDatasourceAttributionTag(ILjava/lang/String;Ljava/lang/String;Ljava/util/Map;)Z
 PLcom/android/server/policy/AppOpsPolicy;->isHotwordDetectionServiceRequired(Landroid/content/pm/PackageManager;)Z
-HPLcom/android/server/policy/AppOpsPolicy;->lambda$new$0(ILandroid/os/PackageTagsList;)V
-HPLcom/android/server/policy/AppOpsPolicy;->noteOperation(IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;ZLcom/android/internal/util/function/OctFunction;)Landroid/app/SyncNotedAppOp;
-HPLcom/android/server/policy/AppOpsPolicy;->noteProxyOperation(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZLcom/android/internal/util/function/HexFunction;)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/policy/AppOpsPolicy;->resolveArOp(I)I
-HPLcom/android/server/policy/AppOpsPolicy;->resolveDatasourceOp(IILjava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/policy/AppOpsPolicy;->resolveLocationOp(I)I
-PLcom/android/server/policy/AppOpsPolicy;->resolveRecordAudioOp(II)I
-HPLcom/android/server/policy/AppOpsPolicy;->resolveSandboxedServiceOp(II)I
+HPLcom/android/server/policy/AppOpsPolicy;->noteOperation(IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;ZILcom/android/internal/util/function/NonaFunction;)Landroid/app/SyncNotedAppOp;+]Lcom/android/internal/util/function/NonaFunction;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda4;
+HPLcom/android/server/policy/AppOpsPolicy;->noteProxyOperation(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZLcom/android/internal/util/function/HexFunction;)Landroid/app/SyncNotedAppOp;+]Lcom/android/internal/util/function/HexFunction;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda9;
+HPLcom/android/server/policy/AppOpsPolicy;->resolveDatasourceOp(IILjava/lang/String;Ljava/lang/String;)I+]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;
 HPLcom/android/server/policy/AppOpsPolicy;->resolveUid(II)I
-HPLcom/android/server/policy/AppOpsPolicy;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZIILcom/android/internal/util/function/DodecFunction;)Landroid/app/SyncNotedAppOp;
-PLcom/android/server/policy/AppOpsPolicy;->updateAllowListedTagsForPackageLocked(ILandroid/os/PackageTagsList;Ljava/util/concurrent/ConcurrentHashMap;)V
+HPLcom/android/server/policy/AppOpsPolicy;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZIILcom/android/internal/util/function/DodecFunction;)Landroid/app/SyncNotedAppOp;+]Lcom/android/internal/util/function/DodecFunction;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda6;
+PLcom/android/server/policy/AppOpsPolicy;->writeTags(Ljava/util/Map;Ljava/io/PrintWriter;)V
+PLcom/android/server/policy/DeferredKeyActionExecutor$TimedActionsBuffer;-><init>(IJ)V
 PLcom/android/server/policy/DeferredKeyActionExecutor;-><init>()V
+PLcom/android/server/policy/DeferredKeyActionExecutor;->queueKeyAction(IJLjava/lang/Runnable;)V
 PLcom/android/server/policy/DeviceStatePolicyImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/policy/DeviceStatePolicyImpl;->configureDeviceForState(ILjava/lang/Runnable;)V
-PLcom/android/server/policy/DeviceStatePolicyImpl;->getDeviceStateProvider()Lcom/android/server/devicestate/DeviceStateProvider;
-PLcom/android/server/policy/DeviceStateProviderImpl$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/policy/DeviceStateProviderImpl$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/policy/DeviceStateProviderImpl$$ExternalSyntheticLambda0;->getAsBoolean()Z
-PLcom/android/server/policy/DeviceStateProviderImpl$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/policy/DeviceStateProviderImpl$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/policy/DeviceStateProviderImpl;->$r8$lambda$t8JSrrBv0J146lhB0w0iIONBa0A()Z
 PLcom/android/server/policy/DeviceStateProviderImpl;-><clinit>()V
 PLcom/android/server/policy/DeviceStateProviderImpl;-><init>(Landroid/content/Context;Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/policy/DeviceStateProviderImpl;->create(Landroid/content/Context;)Lcom/android/server/policy/DeviceStateProviderImpl;
 PLcom/android/server/policy/DeviceStateProviderImpl;->createFromConfig(Landroid/content/Context;Lcom/android/server/policy/DeviceStateProviderImpl$ReadableConfig;)Lcom/android/server/policy/DeviceStateProviderImpl;
-PLcom/android/server/policy/DeviceStateProviderImpl;->getConfigurationFile()Ljava/io/File;
-PLcom/android/server/policy/DeviceStateProviderImpl;->hasPowerSaveSensitiveState(Ljava/util/List;)Z
-PLcom/android/server/policy/DeviceStateProviderImpl;->hasThermalSensitiveState(Ljava/util/List;)Z
-PLcom/android/server/policy/DeviceStateProviderImpl;->isThermalStatusCriticalOrAbove(I)Z
-PLcom/android/server/policy/DeviceStateProviderImpl;->lambda$static$0()Z
+PLcom/android/server/policy/DeviceStateProviderImpl;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/policy/DeviceStateProviderImpl;->notifyDeviceStateChangedIfNeeded()V
 PLcom/android/server/policy/DeviceStateProviderImpl;->notifySupportedStatesChanged(I)V
-PLcom/android/server/policy/DeviceStateProviderImpl;->setListener(Lcom/android/server/devicestate/DeviceStateProvider$Listener;)V
-PLcom/android/server/policy/DeviceStateProviderImpl;->setStateConditions(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/policy/DisplayFoldController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/DisplayFoldController;)V
 PLcom/android/server/policy/DisplayFoldController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/policy/DisplayFoldController;->$r8$lambda$UP61ySHIdmxonM9JQcOhYZ_jOG0(Lcom/android/server/policy/DisplayFoldController;Ljava/lang/Boolean;)V
-PLcom/android/server/policy/DisplayFoldController;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Landroid/hardware/display/DisplayManagerInternal;ILandroid/graphics/Rect;Landroid/os/Handler;)V
-PLcom/android/server/policy/DisplayFoldController;->create(Landroid/content/Context;I)Lcom/android/server/policy/DisplayFoldController;
-PLcom/android/server/policy/DisplayFoldController;->finishedWakingUp()V
-PLcom/android/server/policy/DisplayFoldController;->lambda$new$0(Ljava/lang/Boolean;)V
-PLcom/android/server/policy/DisplayFoldController;->onDefaultDisplayFocusChanged(Ljava/lang/String;)V
-PLcom/android/server/policy/DisplayFoldController;->setDeviceFolded(Z)V
+PLcom/android/server/policy/DisplayFoldController;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Landroid/hardware/display/DisplayManagerInternal;Landroid/graphics/Rect;Landroid/os/Handler;)V
 PLcom/android/server/policy/DisplayFoldDurationLogger;-><init>()V
-PLcom/android/server/policy/DisplayFoldDurationLogger;->isOn()Z
-PLcom/android/server/policy/DisplayFoldDurationLogger;->logFocusedAppWithFoldState(ZLjava/lang/String;)V
-PLcom/android/server/policy/DisplayFoldDurationLogger;->onFinishedWakingUp(Ljava/lang/Boolean;)V
-PLcom/android/server/policy/DisplayFoldDurationLogger;->setDeviceFolded(Z)V
-PLcom/android/server/policy/EventLogTags;->writeScreenToggled(I)V
-PLcom/android/server/policy/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/server/policy/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/policy/FeatureFlagsImpl;->load_overrides_wear_frameworks()V
-PLcom/android/server/policy/FeatureFlagsImpl;->supportInputWakeupDelegate()Z
+PLcom/android/server/policy/DisplayFoldDurationLogger;->log()V
 PLcom/android/server/policy/Flags;-><clinit>()V
 PLcom/android/server/policy/Flags;->supportInputWakeupDelegate()Z
-PLcom/android/server/policy/GlobalKeyManager$GlobalKeyAction;-><init>(Lcom/android/server/policy/GlobalKeyManager;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/policy/GlobalActions$1;-><init>(Lcom/android/server/policy/GlobalActions;)V
+PLcom/android/server/policy/GlobalActions;-><init>(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;)V
+PLcom/android/server/policy/GlobalActions;->onGlobalActionsAvailableChanged(Z)V
+PLcom/android/server/policy/GlobalKeyManager$GlobalKeyAction;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/policy/GlobalKeyManager;-><init>(Landroid/content/Context;)V
-PLcom/android/server/policy/GlobalKeyManager;->loadGlobalKeys(Landroid/content/Context;)V
+PLcom/android/server/policy/GlobalKeyManager;->handleGlobalKey(Landroid/content/Context;ILandroid/view/KeyEvent;)Z
+PLcom/android/server/policy/KeyCombinationManager$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/policy/KeyCombinationManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/KeyCombinationManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/policy/KeyCombinationManager;I)V
+PLcom/android/server/policy/KeyCombinationManager$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/KeyCombinationManager$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;I)V
+PLcom/android/server/policy/KeyCombinationManager$$ExternalSyntheticLambda4;->run()V
 PLcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;-><init>(II)V
 PLcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;->getKeyInterceptDelayMs()J
+PLcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;->shouldInterceptKey(I)Z
+PLcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;->toString()Ljava/lang/String;
 PLcom/android/server/policy/KeyCombinationManager;-><init>(Landroid/os/Handler;)V
 PLcom/android/server/policy/KeyCombinationManager;->addRule(Lcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;)V
+PLcom/android/server/policy/KeyCombinationManager;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/policy/KeyCombinationManager;->forAllRules(Ljava/util/ArrayList;Ljava/util/function/Consumer;)V
+PLcom/android/server/policy/KeyCombinationManager;->getKeyInterceptTimeout(I)J
+HPLcom/android/server/policy/KeyCombinationManager;->interceptKeyLocked(Landroid/view/KeyEvent;Z)Z
+PLcom/android/server/policy/KeyCombinationManager;->isKeyConsumed(Landroid/view/KeyEvent;)Z
+PLcom/android/server/policy/ModifierShortcutManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/ModifierShortcutManager;)V
+PLcom/android/server/policy/ModifierShortcutManager$$ExternalSyntheticLambda0;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/policy/ModifierShortcutManager$$ExternalSyntheticLambda4;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/policy/ModifierShortcutManager$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/policy/ModifierShortcutManager$Bookmark;-><init>(CZ)V
+PLcom/android/server/policy/ModifierShortcutManager$CategoryBookmark;-><init>(CZLjava/lang/String;)V
+PLcom/android/server/policy/ModifierShortcutManager$CategoryBookmark;->getIntent(Landroid/content/Context;)Landroid/content/Intent;
+PLcom/android/server/policy/ModifierShortcutManager$RoleBookmark;-><init>(CZLjava/lang/String;)V
+PLcom/android/server/policy/ModifierShortcutManager$RoleBookmark;->getIntent(Landroid/content/Context;)Landroid/content/Intent;
 PLcom/android/server/policy/ModifierShortcutManager;-><clinit>()V
-PLcom/android/server/policy/ModifierShortcutManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/policy/ModifierShortcutManager;->loadShortcuts()V
-PLcom/android/server/policy/PermissionPolicyInternal;-><init>()V
+PLcom/android/server/policy/ModifierShortcutManager;-><init>(Landroid/content/Context;Landroid/os/UserHandle;)V
+PLcom/android/server/policy/ModifierShortcutManager;->getRoleLaunchIntent(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;
+PLcom/android/server/policy/ModifierShortcutManager;->shortcutInfoFromIntent(CLandroid/content/Intent;Z)Landroid/view/KeyboardShortcutInfo;
 PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda0;->onPermissionsChanged(I)V
 PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda1;-><init>(Landroid/permission/PermissionControllerManager;)V
 PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
-HPLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/policy/PermissionPolicyService$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/policy/PermissionPolicyService$1;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+PLcom/android/server/policy/PermissionPolicyService$1;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/server/policy/PermissionPolicyService$1;->onPackageChanged(ILjava/lang/String;)V
 PLcom/android/server/policy/PermissionPolicyService$2;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+PLcom/android/server/policy/PermissionPolicyService$2;->opChanged(IILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/policy/PermissionPolicyService$3;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+PLcom/android/server/policy/PermissionPolicyService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/policy/PermissionPolicyService$3;->updateUid(I)V
 PLcom/android/server/policy/PermissionPolicyService$4;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+PLcom/android/server/policy/PermissionPolicyService$Internal$1$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/PermissionPolicyService$Internal$1;Landroid/content/pm/ActivityInfo;Landroid/app/TaskInfo;Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)V
+PLcom/android/server/policy/PermissionPolicyService$Internal$1$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/policy/PermissionPolicyService$Internal$1;-><init>(Lcom/android/server/policy/PermissionPolicyService$Internal;)V
-PLcom/android/server/policy/PermissionPolicyService$Internal$1;->onActivityLaunched(Landroid/app/TaskInfo;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)V
+HPLcom/android/server/policy/PermissionPolicyService$Internal$1;->onActivityLaunched(Landroid/app/TaskInfo;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)V
 PLcom/android/server/policy/PermissionPolicyService$Internal$1;->onInterceptActivityLaunch(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptResult;
-PLcom/android/server/policy/PermissionPolicyService$Internal;->-$$Nest$monActivityManagerReady(Lcom/android/server/policy/PermissionPolicyService$Internal;)V
-PLcom/android/server/policy/PermissionPolicyService$Internal;->-$$Nest$mshouldShowNotificationDialogOrClearFlags(Lcom/android/server/policy/PermissionPolicyService$Internal;Landroid/app/TaskInfo;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Landroid/app/ActivityOptions;Ljava/lang/String;Z)Z
 PLcom/android/server/policy/PermissionPolicyService$Internal;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
-PLcom/android/server/policy/PermissionPolicyService$Internal;-><init>(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyService$Internal-IA;)V
-PLcom/android/server/policy/PermissionPolicyService$Internal;->checkStartActivity(Landroid/content/Intent;ILjava/lang/String;)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->isActionRemovedForCallingPackage(Landroid/content/Intent;ILjava/lang/String;)Z
-HPLcom/android/server/policy/PermissionPolicyService$Internal;->isIntentToPermissionDialog(Landroid/content/Intent;)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->isLauncherIntent(Landroid/content/Intent;)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->isTaskPotentialTrampoline(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/TaskInfo;Landroid/content/Intent;)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->isTaskStartedFromLauncher(Ljava/lang/String;Landroid/app/TaskInfo;)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->onActivityManagerReady()V
-PLcom/android/server/policy/PermissionPolicyService$Internal;->shouldShowNotificationDialogForTask(Landroid/app/TaskInfo;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->shouldShowNotificationDialogOrClearFlags(Landroid/app/TaskInfo;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Landroid/app/ActivityOptions;Ljava/lang/String;Z)Z
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;ILjava/lang/String;I)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->-$$Nest$msyncPackages(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Lcom/android/server/policy/PermissionPolicyService;Landroid/content/Context;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addAppOps(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addExtraAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPackage(Ljava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPermissionAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)V
+PLcom/android/server/policy/PermissionPolicyService$Internal;->checkStartActivity(Landroid/content/Intent;Ljava/lang/String;I)Z
+HPLcom/android/server/policy/PermissionPolicyService$Internal;->isLauncherIntent(Landroid/content/Intent;)Z
+HPLcom/android/server/policy/PermissionPolicyService$Internal;->shouldShowNotificationDialogOrClearFlags(Landroid/app/TaskInfo;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Landroid/app/ActivityOptions;Ljava/lang/String;Z)Z
+PLcom/android/server/policy/PermissionPolicyService$Internal;->showNotificationPromptIfNeeded(Ljava/lang/String;IILcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)V
+PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(IILjava/lang/String;)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->-$$Nest$msyncPackages(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Lcom/android/server/policy/PermissionPolicyService;Landroid/content/Context;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Lcom/android/server/pm/permission/PermissionManagerServiceInterface;Lcom/android/server/permission/access/permission/PermissionService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPackage(Ljava/lang/String;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;]Lcom/android/server/policy/SoftRestrictedPermissionPolicy;Lcom/android/server/policy/SoftRestrictedPermissionPolicy$2;,Lcom/android/server/policy/SoftRestrictedPermissionPolicy$3;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(IIILjava/lang/String;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(IILjava/lang/String;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(IILjava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(IILjava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)Z
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncPackages()V
+PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)Z
 PLcom/android/server/policy/PermissionPolicyService$PhoneCarrierPrivilegesCallback;-><init>(Lcom/android/server/policy/PermissionPolicyService;I)V
 PLcom/android/server/policy/PermissionPolicyService$PhoneCarrierPrivilegesCallback;->onCarrierPrivilegesChanged(Ljava/util/Set;Ljava/util/Set;)V
-PLcom/android/server/policy/PermissionPolicyService;->$r8$lambda$rznrndUGsirjpBcjHOGDjKWoSAo(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Lcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/policy/PermissionPolicyService;->-$$Nest$fgetmPackageManager(Lcom/android/server/policy/PermissionPolicyService;)Landroid/content/pm/PackageManager;
-PLcom/android/server/policy/PermissionPolicyService;->-$$Nest$fgetmTelephonyManager(Lcom/android/server/policy/PermissionPolicyService;)Landroid/telephony/TelephonyManager;
-PLcom/android/server/policy/PermissionPolicyService;->-$$Nest$minitTelephonyManagerIfNeeded(Lcom/android/server/policy/PermissionPolicyService;)V
-HPLcom/android/server/policy/PermissionPolicyService;->-$$Nest$smgetSwitchOp(Ljava/lang/String;)I
-PLcom/android/server/policy/PermissionPolicyService;-><clinit>()V
 PLcom/android/server/policy/PermissionPolicyService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/policy/PermissionPolicyService;->getSwitchOp(Ljava/lang/String;)I
 PLcom/android/server/policy/PermissionPolicyService;->getUserContext(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/content/Context;
-PLcom/android/server/policy/PermissionPolicyService;->grantOrUpgradeDefaultRuntimePermissionsIfNeeded(I)V
-PLcom/android/server/policy/PermissionPolicyService;->initTelephonyManagerIfNeeded()V
 PLcom/android/server/policy/PermissionPolicyService;->isStarted(I)Z
-HPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$1(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Lcom/android/server/pm/pkg/AndroidPackage;)V
 PLcom/android/server/policy/PermissionPolicyService;->onBootPhase(I)V
-HPLcom/android/server/policy/PermissionPolicyService;->onStart()V
-PLcom/android/server/policy/PermissionPolicyService;->onStartUser(I)V
+PLcom/android/server/policy/PermissionPolicyService;->onStart()V
+PLcom/android/server/policy/PermissionPolicyService;->onStartUser$1(I)V
 PLcom/android/server/policy/PermissionPolicyService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/policy/PermissionPolicyService;->registerCarrierPrivilegesCallbacks()V
-PLcom/android/server/policy/PermissionPolicyService;->synchronizePermissionsAndAppOpsForUser(I)V
-PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/policy/PhoneWindowManager$13;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$14;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+PLcom/android/server/policy/PermissionPolicyService;->resetAppOpPermissionsIfNotRequestedForUid(I)V
+PLcom/android/server/policy/PermissionPolicyService;->synchronizeUidPermissionsAndAppOps(I)V
+PLcom/android/server/policy/PermissionPolicyService;->synchronizeUidPermissionsAndAppOpsAsync(I)V
+PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/view/KeyEvent;ZZ)V
+PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/policy/PhoneWindowManager$12$$ExternalSyntheticLambda0;->test(I)Z
+PLcom/android/server/policy/PhoneWindowManager$12;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+PLcom/android/server/policy/PhoneWindowManager$12;->handleKeyGestureEvent(Landroid/hardware/input/KeyGestureEvent;Landroid/os/IBinder;)Z
+PLcom/android/server/policy/PhoneWindowManager$12;->isKeyGestureSupported(I)Z
+PLcom/android/server/policy/PhoneWindowManager$14;-><init>(Lcom/android/server/policy/PhoneWindowManager;I)V
 PLcom/android/server/policy/PhoneWindowManager$14;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/policy/PhoneWindowManager$1;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$1;->onDrawn()V
+PLcom/android/server/policy/PhoneWindowManager$16;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+PLcom/android/server/policy/PhoneWindowManager$1;-><init>(Ljava/lang/Object;)V
+PLcom/android/server/policy/PhoneWindowManager$1;->onShowingChanged()V
 PLcom/android/server/policy/PhoneWindowManager$2;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
 PLcom/android/server/policy/PhoneWindowManager$3;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$4;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+PLcom/android/server/policy/PhoneWindowManager$4;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/policy/PhoneWindowManager$5;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$5;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
-PLcom/android/server/policy/PhoneWindowManager$5;->onAppTransitionStartingLocked(JJ)I
-PLcom/android/server/policy/PhoneWindowManager$6;-><init>(Lcom/android/server/policy/PhoneWindowManager;II)V
-PLcom/android/server/policy/PhoneWindowManager$7;-><init>(Lcom/android/server/policy/PhoneWindowManager;II)V
-PLcom/android/server/policy/PhoneWindowManager$8;-><init>(Lcom/android/server/policy/PhoneWindowManager;II)V
-PLcom/android/server/policy/PhoneWindowManager$9;-><init>(Lcom/android/server/policy/PhoneWindowManager;II)V
-PLcom/android/server/policy/PhoneWindowManager$ButtonOverridePermissionChecker;-><init>()V
+PLcom/android/server/policy/PhoneWindowManager$5;->onAppTransitionCancelledLocked(Z)V
+HPLcom/android/server/policy/PhoneWindowManager$5;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
+PLcom/android/server/policy/PhoneWindowManager$5;->onAppTransitionStartingLocked(J)I
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;-><init>(I)V
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;-><init>(Lcom/android/server/policy/PhoneWindowManager;I)V
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;->getLongPressTimeoutMs()J
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;->getMaxMultiPressCount()I
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;->supportLongPress()Z
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;->supportVeryLongPress()Z
+PLcom/android/server/policy/PhoneWindowManager$BackKeyRule;->toString()Ljava/lang/String;
 PLcom/android/server/policy/PhoneWindowManager$Injector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/PhoneWindowManager$Injector;)V
-PLcom/android/server/policy/PhoneWindowManager$Injector$1;-><init>(Lcom/android/server/policy/PhoneWindowManager$Injector;)V
-PLcom/android/server/policy/PhoneWindowManager$Injector$1;->onShowingChanged()V
-PLcom/android/server/policy/PhoneWindowManager$Injector;->-$$Nest$fgetmWindowManagerFuncs(Lcom/android/server/policy/PhoneWindowManager$Injector;)Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;
+PLcom/android/server/policy/PhoneWindowManager$Injector$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
 PLcom/android/server/policy/PhoneWindowManager$Injector;-><init>(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;)V
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getAccessibilityShortcutController(Landroid/content/Context;Landroid/os/Handler;I)Lcom/android/internal/accessibility/AccessibilityShortcutController;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getActivityManagerService()Landroid/app/IActivityManager;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getButtonOverridePermissionChecker()Lcom/android/server/policy/PhoneWindowManager$ButtonOverridePermissionChecker;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getGlobalActionsFactory()Ljava/util/function/Supplier;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getKeyguardServiceDelegate()Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getLooper()Landroid/os/Looper;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getTalkbackShortcutController()Lcom/android/server/policy/TalkbackShortcutController;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getWindowManagerFuncs()Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;
-PLcom/android/server/policy/PhoneWindowManager$Injector;->getWindowWakeUpPolicy()Lcom/android/server/policy/WindowWakeUpPolicy;
-PLcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/content/Context;Lcom/android/server/policy/PhoneWindowManager$PolicyHandler;)V
 PLcom/android/server/policy/PhoneWindowManager$PolicyHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/os/Looper;)V
-PLcom/android/server/policy/PhoneWindowManager$PolicyHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/os/Looper;Lcom/android/server/policy/PhoneWindowManager$PolicyHandler-IA;)V
-PLcom/android/server/policy/PhoneWindowManager$PolicyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/policy/PhoneWindowManager$PowerKeyRule;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$ScreenLockTimeout;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/os/Handler;)V
-HPLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->observe()V
+HPLcom/android/server/policy/PhoneWindowManager$PolicyHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;-><init>(Lcom/android/server/policy/PhoneWindowManager;Lcom/android/server/policy/PhoneWindowManager$PolicyHandler;)V
 PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->onChange(Z)V
-PLcom/android/server/policy/PhoneWindowManager$StemPrimaryKeyRule;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager;->$r8$lambda$bJVVU3mazaPNgbIaoQkxeoMODLQ(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fgetmHandler(Lcom/android/server/policy/PhoneWindowManager;)Landroid/os/Handler;
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fgetmLock(Lcom/android/server/policy/PhoneWindowManager;)Ljava/lang/Object;
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fputmLockAfterDreamingTransitionFinished(Lcom/android/server/policy/PhoneWindowManager;Z)V
 PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mfinishKeyguardDrawn(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mfinishWindowsDrawn(Lcom/android/server/policy/PhoneWindowManager;I)V
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mgetDreamManagerInternal(Lcom/android/server/policy/PhoneWindowManager;)Landroid/service/dreams/DreamManagerInternal;
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mhandleTransitionForKeyguardLw(Lcom/android/server/policy/PhoneWindowManager;ZZ)I
-PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mupdateSettings(Lcom/android/server/policy/PhoneWindowManager;)V
+HPLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mpowerPress(Lcom/android/server/policy/PhoneWindowManager;JII)V
+PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mstemPrimaryLongPress(Lcom/android/server/policy/PhoneWindowManager;J)V
+PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mstemPrimaryPress(Lcom/android/server/policy/PhoneWindowManager;I)V
 PLcom/android/server/policy/PhoneWindowManager;-><clinit>()V
 PLcom/android/server/policy/PhoneWindowManager;-><init>()V
-PLcom/android/server/policy/PhoneWindowManager;->adjustConfigurationLw(Landroid/content/res/Configuration;II)V
+HPLcom/android/server/policy/PhoneWindowManager;->applyKeyguardOcclusionChange()I
 PLcom/android/server/policy/PhoneWindowManager;->applyLidSwitchState()V
 PLcom/android/server/policy/PhoneWindowManager;->bindKeyguard()V
-PLcom/android/server/policy/PhoneWindowManager;->canDismissBootAnimation()Z
-PLcom/android/server/policy/PhoneWindowManager;->checkAddPermission(IZLjava/lang/String;[I)I
-PLcom/android/server/policy/PhoneWindowManager;->enableScreen(Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;Z)V
-PLcom/android/server/policy/PhoneWindowManager;->enableScreenAfterBoot()V
-PLcom/android/server/policy/PhoneWindowManager;->finishKeyguardDrawn()V
-PLcom/android/server/policy/PhoneWindowManager;->finishScreenTurningOn()V
-PLcom/android/server/policy/PhoneWindowManager;->finishWindowsDrawn(I)V
-PLcom/android/server/policy/PhoneWindowManager;->finishedWakingUp(II)V
-PLcom/android/server/policy/PhoneWindowManager;->getDreamManagerInternal()Landroid/service/dreams/DreamManagerInternal;
-PLcom/android/server/policy/PhoneWindowManager;->getKeyguardDrawnTimeout()J
-PLcom/android/server/policy/PhoneWindowManager;->getLidBehavior()I
-PLcom/android/server/policy/PhoneWindowManager;->getMaxMultiPressStemPrimaryCount()I
-PLcom/android/server/policy/PhoneWindowManager;->getWallpaperManagerInternal()Lcom/android/server/wallpaper/WallpaperManagerInternal;
-PLcom/android/server/policy/PhoneWindowManager;->handleTransitionForKeyguardLw(ZZ)I
-PLcom/android/server/policy/PhoneWindowManager;->hasLongPressOnBackBehavior()Z
-PLcom/android/server/policy/PhoneWindowManager;->hasStemPrimaryBehavior()Z
-PLcom/android/server/policy/PhoneWindowManager;->inKeyguardRestrictedKeyInputMode()Z
+PLcom/android/server/policy/PhoneWindowManager;->checkAddPermission(IZLjava/lang/String;[II)I
+PLcom/android/server/policy/PhoneWindowManager;->createHomeDockIntent()Landroid/content/Intent;
+PLcom/android/server/policy/PhoneWindowManager;->dismissKeyboardShortcutsMenu()V
+PLcom/android/server/policy/PhoneWindowManager;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/policy/PhoneWindowManager;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/policy/PhoneWindowManager;->enableKeyguard(Z)V
+PLcom/android/server/policy/PhoneWindowManager;->enableScreen(Lcom/android/server/display/DisplayPowerController$ScreenOnUnblocker;Z)V
+HPLcom/android/server/policy/PhoneWindowManager;->finishedGoingToSleep(II)V
+PLcom/android/server/policy/PhoneWindowManager;->finishedWakingUp(I)V
+PLcom/android/server/policy/PhoneWindowManager;->getMaxMultiPressPowerCount()I
+PLcom/android/server/policy/PhoneWindowManager;->getResolvedLongPressOnPowerBehavior()I
+PLcom/android/server/policy/PhoneWindowManager;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerService$1;
+PLcom/android/server/policy/PhoneWindowManager;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
+PLcom/android/server/policy/PhoneWindowManager;->getTelecommService()Landroid/telecom/TelecomManager;
+HPLcom/android/server/policy/PhoneWindowManager;->handleCameraGesture(Landroid/view/KeyEvent;Z)Z
+PLcom/android/server/policy/PhoneWindowManager;->handleKeyGestureEvent(Landroid/hardware/input/KeyGestureEvent;Landroid/os/IBinder;)Z
 PLcom/android/server/policy/PhoneWindowManager;->init(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;)V
-HPLcom/android/server/policy/PhoneWindowManager;->init(Lcom/android/server/policy/PhoneWindowManager$Injector;)V
-PLcom/android/server/policy/PhoneWindowManager;->initKeyCombinationRules()V
-PLcom/android/server/policy/PhoneWindowManager;->initSingleKeyGestureRules(Landroid/os/Looper;)V
-PLcom/android/server/policy/PhoneWindowManager;->initializeHdmiState()V
+PLcom/android/server/policy/PhoneWindowManager;->init(Lcom/android/server/policy/PhoneWindowManager$Injector;)V
 PLcom/android/server/policy/PhoneWindowManager;->initializeHdmiStateInternal()V
-PLcom/android/server/policy/PhoneWindowManager;->isKeyguardHostWindow(Landroid/view/WindowManager$LayoutParams;)Z
-PLcom/android/server/policy/PhoneWindowManager;->isKeyguardLocked()Z
+PLcom/android/server/policy/PhoneWindowManager;->interceptKeyBeforeDispatching(Landroid/view/KeyEvent;Landroid/os/IBinder;)J
+HPLcom/android/server/policy/PhoneWindowManager;->interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I
+PLcom/android/server/policy/PhoneWindowManager;->interceptPowerKeyBeforeDispatching(Landroid/view/KeyEvent;Landroid/os/IBinder;)Z
+PLcom/android/server/policy/PhoneWindowManager;->isKeyEventForCurrentUser(I)Z
 PLcom/android/server/policy/PhoneWindowManager;->isKeyguardOccluded()Z
-HPLcom/android/server/policy/PhoneWindowManager;->isKeyguardSecure(I)Z
+HPLcom/android/server/policy/PhoneWindowManager;->isKeyguardSecure(I)Z+]Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/widget/LockPatternUtils;
 HPLcom/android/server/policy/PhoneWindowManager;->isKeyguardShowing()Z
 HPLcom/android/server/policy/PhoneWindowManager;->isKeyguardShowingAndNotOccluded()Z
-PLcom/android/server/policy/PhoneWindowManager;->isScreenOn()Z
-PLcom/android/server/policy/PhoneWindowManager;->keyguardOn()Z
-PLcom/android/server/policy/PhoneWindowManager;->lambda$updateSettings$1()V
-PLcom/android/server/policy/PhoneWindowManager;->notifyLidSwitchChanged(JZ)V
-PLcom/android/server/policy/PhoneWindowManager;->okToAnimate(Z)Z
-PLcom/android/server/policy/PhoneWindowManager;->onDefaultDisplayFocusChangedLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V
-PLcom/android/server/policy/PhoneWindowManager;->onSystemUiStarted()V
-PLcom/android/server/policy/PhoneWindowManager;->readCameraLensCoverState()V
-HPLcom/android/server/policy/PhoneWindowManager;->readConfigurationDependentBehaviors()V
-PLcom/android/server/policy/PhoneWindowManager;->readLidState()V
-PLcom/android/server/policy/PhoneWindowManager;->reportScreenStateToVrManager(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->reportScreenTurnedOnToWallpaper(I)V
-PLcom/android/server/policy/PhoneWindowManager;->reportScreenTurningOnToWallpaper(I)V
+PLcom/android/server/policy/PhoneWindowManager;->isUserSetupComplete()Z
+PLcom/android/server/policy/PhoneWindowManager;->isValidGlobalKey(I)Z
+HPLcom/android/server/policy/PhoneWindowManager;->keyguardOn()Z
+PLcom/android/server/policy/PhoneWindowManager;->launchAssistAction(IILjava/lang/String;J)V
+PLcom/android/server/policy/PhoneWindowManager;->launchHomeFromHotKey(IZZ)V
+PLcom/android/server/policy/PhoneWindowManager;->notifyKeyGestureCompleted(Landroid/view/KeyEvent;I)V
+PLcom/android/server/policy/PhoneWindowManager;->notifyKeyGestureCompletedOnActionUp(Landroid/view/KeyEvent;I)V
+HPLcom/android/server/policy/PhoneWindowManager;->okToAnimate(Z)Z
+PLcom/android/server/policy/PhoneWindowManager;->onKeyguardOccludedChangedLw(Z)V
+PLcom/android/server/policy/PhoneWindowManager;->performHapticFeedback(IILjava/lang/String;)V
+PLcom/android/server/policy/PhoneWindowManager;->prepareToSendSystemKeyToApplication(Landroid/view/KeyEvent;Landroid/os/IBinder;)Z
+PLcom/android/server/policy/PhoneWindowManager;->readConfigurationDependentBehaviors()V
+PLcom/android/server/policy/PhoneWindowManager;->screenTurnedOff(IZ)V
 PLcom/android/server/policy/PhoneWindowManager;->screenTurnedOn(I)V
-PLcom/android/server/policy/PhoneWindowManager;->screenTurningOn(ILcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;)V
-HPLcom/android/server/policy/PhoneWindowManager;->setAllowLockscreenWhenOn(IZ)V
-PLcom/android/server/policy/PhoneWindowManager;->setDefaultDisplay(Lcom/android/server/policy/WindowManagerPolicy$DisplayContentInfo;)V
-PLcom/android/server/policy/PhoneWindowManager;->setDismissImeOnBackKeyPressed(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->setSafeMode(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->setTopFocusedDisplay(I)V
+PLcom/android/server/policy/PhoneWindowManager;->screenTurningOff(ILcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;)V
+HPLcom/android/server/policy/PhoneWindowManager;->screenTurningOn(ILcom/android/server/display/DisplayPowerController$ScreenOnUnblocker;)V
+PLcom/android/server/policy/PhoneWindowManager;->sendSystemKeyToStatusBarAsync(Landroid/view/KeyEvent;)V
+PLcom/android/server/policy/PhoneWindowManager;->setDeferredKeyActionsExecutableAsync(IJ)V
+PLcom/android/server/policy/PhoneWindowManager;->shouldDispatchInputWhenNonInteractive(I)Z
 PLcom/android/server/policy/PhoneWindowManager;->shouldEnableWakeGestureLp()Z
+PLcom/android/server/policy/PhoneWindowManager;->showGlobalActions()V
+PLcom/android/server/policy/PhoneWindowManager;->showGlobalActionsInternal()V
+PLcom/android/server/policy/PhoneWindowManager;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Z)V
+PLcom/android/server/policy/PhoneWindowManager;->startDockOrHome(Ljava/lang/String;IZZ)V
+PLcom/android/server/policy/PhoneWindowManager;->startedGoingToSleep(II)V
 PLcom/android/server/policy/PhoneWindowManager;->startedWakingUp(II)V
 PLcom/android/server/policy/PhoneWindowManager;->systemBooted()V
 PLcom/android/server/policy/PhoneWindowManager;->systemReady()V
-HPLcom/android/server/policy/PhoneWindowManager;->updateLockScreenTimeout()V
-PLcom/android/server/policy/PhoneWindowManager;->updateRotation(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->updateScreenOffSleepToken(ZZ)V
-PLcom/android/server/policy/PhoneWindowManager;->updateSettings()V
-HPLcom/android/server/policy/PhoneWindowManager;->updateSettings(Landroid/os/Handler;)V
-PLcom/android/server/policy/PhoneWindowManager;->updateUiMode()V
+HPLcom/android/server/policy/PhoneWindowManager;->updateLockScreenTimeout()V+]Ljava/util/HashSet;Ljava/util/HashSet;
+PLcom/android/server/policy/PhoneWindowManager;->updateSettings(Lcom/android/server/policy/PhoneWindowManager$PolicyHandler;)V
 PLcom/android/server/policy/PhoneWindowManager;->updateWakeGestureListenerLp()V
-PLcom/android/server/policy/PhoneWindowManager;->userActivity(II)V
+PLcom/android/server/policy/PhoneWindowManager;->wakeUpFromWakeKey(IJZ)V
+PLcom/android/server/policy/PhoneWindowManager;->wakeUpFromWakeKey(Landroid/view/KeyEvent;)V
 PLcom/android/server/policy/SideFpsEventHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/SideFpsEventHandler;)V
-PLcom/android/server/policy/SideFpsEventHandler$$ExternalSyntheticLambda1;-><init>()V
 PLcom/android/server/policy/SideFpsEventHandler$1;-><init>(Lcom/android/server/policy/SideFpsEventHandler;)V
-PLcom/android/server/policy/SideFpsEventHandler;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/os/PowerManager;)V
+PLcom/android/server/policy/SideFpsEventHandler$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/policy/SideFpsEventHandler;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/os/PowerManager;Lcom/android/server/policy/SideFpsEventHandler$DialogProvider;)V
-PLcom/android/server/policy/SideFpsEventHandler;->onFingerprintSensorReady()V
 PLcom/android/server/policy/SingleKeyGestureDetector$KeyHandler;-><init>(Lcom/android/server/policy/SingleKeyGestureDetector;Landroid/os/Looper;)V
-PLcom/android/server/policy/SingleKeyGestureDetector$SingleKeyRule;-><init>(I)V
-PLcom/android/server/policy/SingleKeyGestureDetector$SingleKeyRule;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/policy/SingleKeyGestureDetector$KeyHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/policy/SingleKeyGestureDetector$MessageObject;-><init>(Lcom/android/server/policy/PhoneWindowManager$BackKeyRule;IILandroid/view/KeyEvent;)V
 PLcom/android/server/policy/SingleKeyGestureDetector;-><clinit>()V
 PLcom/android/server/policy/SingleKeyGestureDetector;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/policy/SingleKeyGestureDetector;->addRule(Lcom/android/server/policy/SingleKeyGestureDetector$SingleKeyRule;)V
-PLcom/android/server/policy/SingleKeyGestureDetector;->get(Landroid/content/Context;Landroid/os/Looper;)Lcom/android/server/policy/SingleKeyGestureDetector;
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$1;-><init>()V
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZZZZZ)V
+PLcom/android/server/policy/SingleKeyGestureDetector;->addRule(Lcom/android/server/policy/PhoneWindowManager$BackKeyRule;)V
+HPLcom/android/server/policy/SingleKeyGestureDetector;->interceptKey(Landroid/view/KeyEvent;ZZ)V
+PLcom/android/server/policy/SingleKeyGestureDetector;->reset()V
+PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZZZZZ)V
 PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->getExtraAppOpCode()I
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayAllowExtraAppOp()Z
+PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayAllowExtraAppOp()Z
 PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayDenyExtraAppOpIfGranted()Z
 PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayGrantPermission()Z
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;-><init>(ZI)V
+PLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;-><init>(IZ)V
 PLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;->mayGrantPermission()Z
 PLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><clinit>()V
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><init>()V
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->forPermission(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
+PLcom/android/server/policy/SoftRestrictedPermissionPolicy;->forPermission(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
 PLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getExtraAppOpCode()I
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getForcedScopedStorageAppWhitelist()[Ljava/lang/String;
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getMinimumTargetSDK(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;)I
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasUidRequestedLegacyExternalStorage(ILandroid/content/Context;)Z
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasWriteMediaStorageGrantedForUid(ILandroid/content/Context;)Z
+PLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getMinimumTargetSDK(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;)I
 PLcom/android/server/policy/TalkbackShortcutController;-><init>(Landroid/content/Context;)V
 PLcom/android/server/policy/TalkbackShortcutController;->isTalkBackShortcutGestureEnabled()Z
-PLcom/android/server/policy/WakeGestureListener$1;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
-PLcom/android/server/policy/WakeGestureListener$2;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
-PLcom/android/server/policy/WakeGestureListener;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/policy/WakeGestureListener;->cancelWakeUpTrigger()V
-PLcom/android/server/policy/WakeGestureListener;->isSupported()Z
-PLcom/android/server/policy/WindowManagerPolicy;->getMaxWindowLayer()I
+PLcom/android/server/policy/WakeGestureListener$1;-><init>(Lcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;)V
+PLcom/android/server/policy/WakeGestureListener$2;-><init>(Lcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;)V
 HPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(I)I
-HPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(IZ)I
-PLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(IZZ)I
-HPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)I
+HPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(IZZ)I
 PLcom/android/server/policy/WindowWakeUpPolicy$LocalService;-><init>(Lcom/android/server/policy/WindowWakeUpPolicy;)V
-PLcom/android/server/policy/WindowWakeUpPolicy$LocalService;-><init>(Lcom/android/server/policy/WindowWakeUpPolicy;Lcom/android/server/policy/WindowWakeUpPolicy$LocalService-IA;)V
 PLcom/android/server/policy/WindowWakeUpPolicy$LocalService;->setInputWakeUpDelegate(Lcom/android/server/policy/WindowWakeUpPolicyInternal$InputWakeUpDelegate;)V
-PLcom/android/server/policy/WindowWakeUpPolicy;->-$$Nest$fputmInputWakeUpDelegate(Lcom/android/server/policy/WindowWakeUpPolicy;Lcom/android/server/policy/WindowWakeUpPolicyInternal$InputWakeUpDelegate;)V
-PLcom/android/server/policy/WindowWakeUpPolicy;-><init>(Landroid/content/Context;)V
 PLcom/android/server/policy/WindowWakeUpPolicy;-><init>(Landroid/content/Context;Lcom/android/internal/os/Clock;)V
+PLcom/android/server/policy/WindowWakeUpPolicy;->canWakeUp(Z)Z
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;-><init>(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;->onDreamingStarted()V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;->onDreamingStopped()V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$2;-><init>(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;-><init>(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;-><init>(Lcom/android/server/policy/PhoneWindowManager$1;)V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;->onDrawn()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;-><init>()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;->reset()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->-$$Nest$fgetmCallback(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->-$$Nest$fgetmContext(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Landroid/content/Context;
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->-$$Nest$fgetmDrawnListenerWhenConnect(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->-$$Nest$fgetmKeyguardState(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->-$$Nest$fputmDrawnListenerWhenConnect(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;-><init>(Landroid/content/Context;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->bindService(Landroid/content/Context;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->hasKeyguard()Z
-HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isInputRestricted()Z
-HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isOccluded()Z
-HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isSecure(I)Z
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;-><init>(Landroid/content/Context;Lcom/android/server/policy/PhoneWindowManager$1;)V
 HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isShowing()Z
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onBootCompleted()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onFinishedWakingUp()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurnedOn()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurningOn(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onStartedWakingUp(IZ)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onSystemReady()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;-><init>(Landroid/content/Context;Lcom/android/internal/policy/IKeyguardService;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isInputRestricted()Z
-HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isSecure(I)Z
-HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isShowing()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
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedWakingUp()V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOff()V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOn()V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurningOff()V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurningOn(Lcom/android/internal/policy/IKeyguardDrawnCallback;)V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onShortPowerPressedGoHome()V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedGoingToSleep(I)V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedWakingUp(IZ)V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onSystemReady()V
-PLcom/android/server/policy/keyguard/KeyguardStateMonitor;-><init>(Landroid/content/Context;Lcom/android/internal/policy/IKeyguardService;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
-PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isInputRestricted()Z
-HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isSecure(I)Z
-HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isShowing()Z
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setKeyguardEnabled(Z)V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setOccluded(ZZ)V
+PLcom/android/server/policy/keyguard/KeyguardStateMonitor;-><init>(Landroid/content/Context;Lcom/android/internal/policy/IKeyguardService;Lcom/android/server/policy/PhoneWindowManager$1;)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onInputRestrictedStateChanged(Z)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onShowingStateChanged(ZI)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onSimSecureStateChanged(Z)V
 PLcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;-><init>(Ljava/io/DataOutputStream;Landroid/content/pm/PackageManagerInternal;I)V
-HPLcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V+]Landroid/content/pm/Signature;Landroid/content/pm/Signature;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Ljava/io/DataOutputStream;Ljava/io/DataOutputStream;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;
 PLcom/android/server/policy/role/RoleServicePlatformHelperImpl$MessageDigestOutputStream;-><init>()V
-PLcom/android/server/policy/role/RoleServicePlatformHelperImpl$MessageDigestOutputStream;->getDigestAsString()Ljava/lang/String;
 PLcom/android/server/policy/role/RoleServicePlatformHelperImpl$MessageDigestOutputStream;->write([BII)V
-PLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->$r8$lambda$iHIoFGt-sugSqlklSHHOwdIQL9Y(Ljava/io/DataOutputStream;Landroid/content/pm/PackageManagerInternal;ILcom/android/server/pm/pkg/AndroidPackage;)V
-PLcom/android/server/policy/role/RoleServicePlatformHelperImpl;-><clinit>()V
 PLcom/android/server/policy/role/RoleServicePlatformHelperImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->computePackageStateHash(I)Ljava/lang/String;
-HPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->lambda$computePackageStateHash$0(Ljava/io/DataOutputStream;Landroid/content/pm/PackageManagerInternal;ILcom/android/server/pm/pkg/AndroidPackage;)V
-HSPLcom/android/server/power/AmbientDisplaySuppressionController;-><init>(Lcom/android/server/power/AmbientDisplaySuppressionController$AmbientDisplaySuppressionChangedCallback;)V
+HSPLcom/android/server/power/AmbientDisplaySuppressionController;-><init>(Lcom/android/server/power/PowerManagerService$4;)V
+PLcom/android/server/power/AmbientDisplaySuppressionController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/AmbientDisplaySuppressionController;->isSuppressed()Z
 PLcom/android/server/power/AttentionDetector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/AttentionDetector;)V
 PLcom/android/server/power/AttentionDetector$1;-><init>(Lcom/android/server/power/AttentionDetector;Landroid/os/Handler;Landroid/content/Context;)V
 PLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;)V
-PLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;Lcom/android/server/power/AttentionDetector$UserSwitchObserver-IA;)V
-HSPLcom/android/server/power/AttentionDetector;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
-PLcom/android/server/power/AttentionDetector;->cancelCurrentRequestIfAny()V
+HSPLcom/android/server/power/AttentionDetector;-><init>(Lcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda0;Ljava/lang/Object;)V
+PLcom/android/server/power/AttentionDetector;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/power/AttentionDetector;->getMaxExtensionMillis()J
 PLcom/android/server/power/AttentionDetector;->getPostDimCheckDurationMillis()J
 PLcom/android/server/power/AttentionDetector;->getPreDimCheckDurationMillis()J
-PLcom/android/server/power/AttentionDetector;->onUserActivity(JI)I
+PLcom/android/server/power/AttentionDetector;->isAttentionServiceSupported()Z
 PLcom/android/server/power/AttentionDetector;->readValuesFromDeviceConfig()V
-PLcom/android/server/power/AttentionDetector;->resetConsecutiveExtensionCount()V
+HPLcom/android/server/power/AttentionDetector;->resetConsecutiveExtensionCount()V
 PLcom/android/server/power/AttentionDetector;->systemReady(Landroid/content/Context;)V
 PLcom/android/server/power/AttentionDetector;->updateEnabledFromSettings(Landroid/content/Context;)V
-HPLcom/android/server/power/AttentionDetector;->updateUserActivity(JJ)J
 PLcom/android/server/power/FaceDownDetector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/FaceDownDetector;)V
 HSPLcom/android/server/power/FaceDownDetector$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/FaceDownDetector;)V
 PLcom/android/server/power/FaceDownDetector$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/power/FaceDownDetector$ExponentialMovingAverage;-><init>(Lcom/android/server/power/FaceDownDetector;F)V
-HSPLcom/android/server/power/FaceDownDetector$ExponentialMovingAverage;-><init>(Lcom/android/server/power/FaceDownDetector;FF)V
+HSPLcom/android/server/power/FaceDownDetector$ExponentialMovingAverage;-><init>()V
 HSPLcom/android/server/power/FaceDownDetector$ScreenStateReceiver;-><init>(Lcom/android/server/power/FaceDownDetector;)V
-HSPLcom/android/server/power/FaceDownDetector$ScreenStateReceiver;-><init>(Lcom/android/server/power/FaceDownDetector;Lcom/android/server/power/FaceDownDetector$ScreenStateReceiver-IA;)V
-PLcom/android/server/power/FaceDownDetector;->$r8$lambda$caCdnIB7OSGcXiz4jSr9FVtZVGw(Lcom/android/server/power/FaceDownDetector;)V
-HSPLcom/android/server/power/FaceDownDetector;-><init>(Ljava/util/function/Consumer;)V
-PLcom/android/server/power/FaceDownDetector;->getAccelerationThreshold()F
-PLcom/android/server/power/FaceDownDetector;->getFloatFlagValue(Ljava/lang/String;FFF)F
-PLcom/android/server/power/FaceDownDetector;->getLongFlagValue(Ljava/lang/String;JJJ)J
-PLcom/android/server/power/FaceDownDetector;->getSensorMaxLatencyMicros()I
-PLcom/android/server/power/FaceDownDetector;->getTimeThreshold()Ljava/time/Duration;
-PLcom/android/server/power/FaceDownDetector;->getUserInteractionBackoffMillis()J
-PLcom/android/server/power/FaceDownDetector;->getZAccelerationThreshold()F
+HSPLcom/android/server/power/FaceDownDetector;-><init>(Lcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda1;)V
+PLcom/android/server/power/FaceDownDetector;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/FaceDownDetector;->getFloatFlagValue(FFFLjava/lang/String;)F
 PLcom/android/server/power/FaceDownDetector;->isEnabled()Z
-PLcom/android/server/power/FaceDownDetector;->lambda$new$0()V
 PLcom/android/server/power/FaceDownDetector;->readValuesFromDeviceConfig()V
-PLcom/android/server/power/FaceDownDetector;->systemReady(Landroid/content/Context;)V
 PLcom/android/server/power/FaceDownDetector;->updateActiveState()V
-PLcom/android/server/power/FaceDownDetector;->userActivity(I)V
+PLcom/android/server/power/FrameworkStatsLogger$WakelockEventType;-><clinit>()V
 HSPLcom/android/server/power/InattentiveSleepWarningController;-><init>()V
-PLcom/android/server/power/InattentiveSleepWarningController;->isShown()Z
 HSPLcom/android/server/power/LowPowerStandbyController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
-HSPLcom/android/server/power/LowPowerStandbyController$$ExternalSyntheticLambda2;-><init>()V
-HSPLcom/android/server/power/LowPowerStandbyController$1;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
-HSPLcom/android/server/power/LowPowerStandbyController$2;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
-HSPLcom/android/server/power/LowPowerStandbyController$3;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
+HSPLcom/android/server/power/LowPowerStandbyController$1;-><init>(Lcom/android/server/power/LowPowerStandbyController;I)V
 HSPLcom/android/server/power/LowPowerStandbyController$DeviceConfigWrapper;-><init>()V
 HSPLcom/android/server/power/LowPowerStandbyController$LocalService;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
-HSPLcom/android/server/power/LowPowerStandbyController$LocalService;-><init>(Lcom/android/server/power/LowPowerStandbyController;Lcom/android/server/power/LowPowerStandbyController$LocalService-IA;)V
 HSPLcom/android/server/power/LowPowerStandbyController$LowPowerStandbyHandler;-><init>(Lcom/android/server/power/LowPowerStandbyController;Landroid/os/Looper;)V
 HSPLcom/android/server/power/LowPowerStandbyController$PhoneCallServiceTracker;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
-HSPLcom/android/server/power/LowPowerStandbyController$RealClock;-><init>()V
-HSPLcom/android/server/power/LowPowerStandbyController$RealClock;-><init>(Lcom/android/server/power/LowPowerStandbyController$RealClock-IA;)V
-HSPLcom/android/server/power/LowPowerStandbyController$SettingsObserver;-><init>(Lcom/android/server/power/LowPowerStandbyController;Landroid/os/Handler;)V
+HSPLcom/android/server/power/LowPowerStandbyController$SettingsObserver;-><init>(Lcom/android/server/power/LowPowerStandbyController;Lcom/android/server/power/LowPowerStandbyController$LowPowerStandbyHandler;)V
 HSPLcom/android/server/power/LowPowerStandbyController$TempAllowlistChangeListener;-><init>(Lcom/android/server/power/LowPowerStandbyController;)V
 HSPLcom/android/server/power/LowPowerStandbyController;-><clinit>()V
-HSPLcom/android/server/power/LowPowerStandbyController;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 HSPLcom/android/server/power/LowPowerStandbyController;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/power/LowPowerStandbyController$Clock;Lcom/android/server/power/LowPowerStandbyController$DeviceConfigWrapper;Ljava/util/function/Supplier;Ljava/io/File;)V
+PLcom/android/server/power/LowPowerStandbyController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/LowPowerStandbyController;->getActiveStandbyPorts()Ljava/util/List;
+PLcom/android/server/power/LowPowerStandbyController;->getAllowlistUidsLocked()[I
+PLcom/android/server/power/LowPowerStandbyController;->getPolicy()Landroid/os/PowerManager$LowPowerStandbyPolicy;
+PLcom/android/server/power/LowPowerStandbyController;->isEnabled()Z
 PLcom/android/server/power/LowPowerStandbyController;->systemReady()V
-HSPLcom/android/server/power/LowPowerStandbyControllerInternal;-><init>()V
-PLcom/android/server/power/Notifier$2;-><init>(Lcom/android/server/power/Notifier;)V
-PLcom/android/server/power/Notifier$3;-><init>(Lcom/android/server/power/Notifier;)V
+PLcom/android/server/power/Notifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/Notifier;I)V
+PLcom/android/server/power/Notifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/Notifier;II)V
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/power/Notifier$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/Notifier;III)V
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda1;->run()V
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/Notifier;ZLjava/lang/String;IIILandroid/os/WorkSource;Ljava/lang/String;Ljava/lang/String;JLandroid/os/IWakeLockCallback;)V
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda2;->run()V+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/power/Notifier;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/power/Notifier$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/power/Notifier;I)V
+HPLcom/android/server/power/Notifier$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/power/Notifier$1;-><init>(Lcom/android/server/power/Notifier;I)V
+PLcom/android/server/power/Notifier$1;->run()V
+PLcom/android/server/power/Notifier$2;-><init>(Lcom/android/server/power/Notifier;I)V
+HPLcom/android/server/power/Notifier$2;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 PLcom/android/server/power/Notifier$Interactivity;-><init>()V
-PLcom/android/server/power/Notifier$Interactivity;-><init>(Lcom/android/server/power/Notifier$Interactivity-IA;)V
 PLcom/android/server/power/Notifier$NotifierHandler;-><init>(Lcom/android/server/power/Notifier;Landroid/os/Looper;)V
-HPLcom/android/server/power/Notifier$NotifierHandler;->handleMessage(Landroid/os/Message;)V
-HPLcom/android/server/power/Notifier;->-$$Nest$mscreenPolicyChanging(Lcom/android/server/power/Notifier;II)V
-PLcom/android/server/power/Notifier;->-$$Nest$msendUserActivity(Lcom/android/server/power/Notifier;II)V
+HPLcom/android/server/power/Notifier$NotifierHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/telephony/TelephonyManager;Landroid/telephony/TelephonyManager;
 PLcom/android/server/power/Notifier;-><clinit>()V
-HPLcom/android/server/power/Notifier;-><init>(Landroid/os/Looper;Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Lcom/android/server/power/SuspendBlocker;Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/power/FaceDownDetector;Lcom/android/server/power/ScreenUndimDetector;Ljava/util/concurrent/Executor;)V
-PLcom/android/server/power/Notifier;->createScreenOnOffBroadcastOptions()Landroid/os/Bundle;
-PLcom/android/server/power/Notifier;->getBatteryStatsWakeLockMonitorType(I)I
-PLcom/android/server/power/Notifier;->notifyWakeLockListener(Landroid/os/IWakeLockCallback;Ljava/lang/String;Z)V
-HPLcom/android/server/power/Notifier;->onScreenPolicyUpdate(II)V
-PLcom/android/server/power/Notifier;->onUserActivity(III)V
-HPLcom/android/server/power/Notifier;->onWakeLockAcquired(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;Landroid/os/IWakeLockCallback;)V
-HPLcom/android/server/power/Notifier;->onWakeLockChanging(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;Landroid/os/IWakeLockCallback;ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;Landroid/os/IWakeLockCallback;)V
-HPLcom/android/server/power/Notifier;->onWakeLockReleased(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;Landroid/os/IWakeLockCallback;)V
-HPLcom/android/server/power/Notifier;->screenPolicyChanging(II)V
-PLcom/android/server/power/Notifier;->sendUserActivity(II)V
-PLcom/android/server/power/PowerGroup;-><clinit>()V
-PLcom/android/server/power/PowerGroup;-><init>(ILcom/android/server/power/PowerGroup$PowerGroupListener;Lcom/android/server/power/Notifier;Landroid/hardware/display/DisplayManagerInternal;J)V
-HPLcom/android/server/power/PowerGroup;->getDesiredScreenPolicyLocked(ZZZZZ)I
+PLcom/android/server/power/Notifier;-><init>(Landroid/os/Looper;Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Lcom/android/server/power/PowerManagerService$SuspendBlockerImpl;Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/power/FaceDownDetector;Lcom/android/server/power/ScreenUndimDetector;Ljava/util/concurrent/Executor;Lcom/android/server/power/feature/PowerManagerFlags;)V
+PLcom/android/server/power/Notifier;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/power/Notifier;->getBatteryStatsWakeLockMonitorType(I)I
+HPLcom/android/server/power/Notifier;->handleLateGlobalInteractiveChange()V
+HPLcom/android/server/power/Notifier;->handleLateInteractiveChange(I)V
+HPLcom/android/server/power/Notifier;->logWakelockStateChanged(ILjava/lang/String;ILandroid/os/WorkSource;Lcom/android/server/power/FrameworkStatsLogger$WakelockEventType;)V
+HPLcom/android/server/power/Notifier;->onGlobalWakefulnessChangeStarted(IIJ)V
+HPLcom/android/server/power/Notifier;->onGroupWakefulnessChangeStarted(IIIJ)V
+HPLcom/android/server/power/Notifier;->onUserActivity(III)V+]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;
+HPLcom/android/server/power/Notifier;->onWakeLockAcquired(IIILandroid/os/IWakeLockCallback;Landroid/os/WorkSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/power/Notifier;->onWakeLockReleased(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;Landroid/os/IWakeLockCallback;I)V
+PLcom/android/server/power/Notifier;->playChargingStartedFeedback(IZ)V
+HPLcom/android/server/power/Notifier;->sendNextBroadcast()V
+HPLcom/android/server/power/Notifier;->updatePendingBroadcastLocked()V
+PLcom/android/server/power/PowerGroup;-><init>(Lcom/android/server/power/PowerManagerService$PowerGroupWakefulnessChangeListener;Lcom/android/server/power/Notifier;Landroid/hardware/display/DisplayManagerInternal;JLcom/android/server/power/feature/PowerManagerFlags;)V
 PLcom/android/server/power/PowerGroup;->getGroupId()I
-PLcom/android/server/power/PowerGroup;->getLastSleepTimeLocked()J
 PLcom/android/server/power/PowerGroup;->getLastUserActivityTimeLocked()J
 PLcom/android/server/power/PowerGroup;->getLastUserActivityTimeNoChangeLightsLocked()J
-PLcom/android/server/power/PowerGroup;->getLastWakeTimeLocked()J
 PLcom/android/server/power/PowerGroup;->getUserActivitySummaryLocked()I
-HPLcom/android/server/power/PowerGroup;->getWakeLockSummaryLocked()I
-HPLcom/android/server/power/PowerGroup;->getWakefulnessLocked()I
-HPLcom/android/server/power/PowerGroup;->isBrightOrDimLocked()Z
-PLcom/android/server/power/PowerGroup;->isPolicyBrightLocked()Z
-HPLcom/android/server/power/PowerGroup;->isPoweringOnLocked()Z
-HPLcom/android/server/power/PowerGroup;->isReadyLocked()Z
-PLcom/android/server/power/PowerGroup;->isSandmanSummonedLocked()Z
-HPLcom/android/server/power/PowerGroup;->needSuspendBlockerLocked(ZZ)Z
-PLcom/android/server/power/PowerGroup;->setLastUserActivityTimeLocked(JI)V
-PLcom/android/server/power/PowerGroup;->setLastUserActivityTimeNoChangeLightsLocked(JI)V
-HPLcom/android/server/power/PowerGroup;->setReadyLocked(Z)Z
-PLcom/android/server/power/PowerGroup;->setUserActivitySummaryLocked(I)V
-HPLcom/android/server/power/PowerGroup;->setWakeLockSummaryLocked(I)V
-HPLcom/android/server/power/PowerGroup;->supportsSandmanLocked()Z
-HPLcom/android/server/power/PowerGroup;->updateLocked(FZZIFZLandroid/os/PowerSaveState;ZZZZZZ)Z
-PLcom/android/server/power/PowerGroup;->wakeUpLocked(JILjava/lang/String;ILjava/lang/String;ILcom/android/internal/util/LatencyTracker;)V
+PLcom/android/server/power/PowerGroup;->getWakeLockSummaryLocked()I
+HPLcom/android/server/power/PowerGroup;->setWakefulnessLocked(IJIIILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/PowerManagerService;)V
+PLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService$1;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$1;->acquireSuspendBlocker(Ljava/lang/String;)V
-PLcom/android/server/power/PowerManagerService$1;->onDisplayStateChange(ZZ)V
+HPLcom/android/server/power/PowerManagerService$1;->acquireSuspendBlocker(Ljava/lang/String;)V
+HPLcom/android/server/power/PowerManagerService$1;->onDisplayStateChange(ZZ)V
 PLcom/android/server/power/PowerManagerService$1;->onStateChanged()V
-PLcom/android/server/power/PowerManagerService$1;->releaseSuspendBlocker(Ljava/lang/String;)V
+HPLcom/android/server/power/PowerManagerService$1;->releaseSuspendBlocker(Ljava/lang/String;)V
 HSPLcom/android/server/power/PowerManagerService$4;-><init>(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService$BatteryReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService$BatteryReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/power/PowerManagerService$BinderService;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/content/Context;)V
-HPLcom/android/server/power/PowerManagerService$BinderService;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;ILandroid/os/IWakeLockCallback;)V
+HPLcom/android/server/power/PowerManagerService$BinderService;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;ILandroid/os/IWakeLockCallback;)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/WorkSource;Landroid/os/WorkSource;
 PLcom/android/server/power/PowerManagerService$BinderService;->acquireWakeLockAsync(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
-PLcom/android/server/power/PowerManagerService$BinderService;->getBrightnessConstraint(I)F
+PLcom/android/server/power/PowerManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/power/PowerManagerService$BinderService;->getBrightnessConstraint(II)F
 PLcom/android/server/power/PowerManagerService$BinderService;->getLastShutdownReason()I
 PLcom/android/server/power/PowerManagerService$BinderService;->getPowerSaveState(I)Landroid/os/PowerSaveState;
-PLcom/android/server/power/PowerManagerService$BinderService;->isDeviceIdleMode()Z
-HSPLcom/android/server/power/PowerManagerService$BinderService;->isInteractive()Z
+PLcom/android/server/power/PowerManagerService$BinderService;->goToSleep(JII)V
+HPLcom/android/server/power/PowerManagerService$BinderService;->isDeviceIdleMode()Z
+HSPLcom/android/server/power/PowerManagerService$BinderService;->isDisplayInteractive(I)Z
 PLcom/android/server/power/PowerManagerService$BinderService;->isLightDeviceIdleMode()Z
-HPLcom/android/server/power/PowerManagerService$BinderService;->isPowerSaveMode()Z
-PLcom/android/server/power/PowerManagerService$BinderService;->isWakeLockLevelSupported(I)Z
-HPLcom/android/server/power/PowerManagerService$BinderService;->releaseWakeLock(Landroid/os/IBinder;I)V
+PLcom/android/server/power/PowerManagerService$BinderService;->isLowPowerStandbyEnabled()Z
+PLcom/android/server/power/PowerManagerService$BinderService;->isPowerSaveMode()Z
+PLcom/android/server/power/PowerManagerService$BinderService;->isWakeLockLevelSupportedWithDisplayId(II)Z
+HPLcom/android/server/power/PowerManagerService$BinderService;->releaseWakeLock(Landroid/os/IBinder;I)V+]Landroid/content/Context;Landroid/app/ContextImpl;
 PLcom/android/server/power/PowerManagerService$BinderService;->releaseWakeLockAsync(Landroid/os/IBinder;I)V
 PLcom/android/server/power/PowerManagerService$BinderService;->setDozeAfterScreenOff(Z)V
 PLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockUids(Landroid/os/IBinder;[I)V
 PLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockUidsAsync(Landroid/os/IBinder;[I)V
 HPLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
-PLcom/android/server/power/PowerManagerService$BinderService;->userActivity(IJII)V
+HPLcom/android/server/power/PowerManagerService$BinderService;->userActivity(IJII)V
 PLcom/android/server/power/PowerManagerService$BinderService;->wakeUp(JILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/power/PowerManagerService$BinderService;->wakeUpWithDisplayId(JILjava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/power/PowerManagerService$Constants;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/Handler;)V
-PLcom/android/server/power/PowerManagerService$Constants;->start(Landroid/content/ContentResolver;)V
+PLcom/android/server/power/PowerManagerService$Constants;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/power/PowerManagerService$Constants;->updateConstants()V
 PLcom/android/server/power/PowerManagerService$DeviceStateListener;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$DeviceStateListener;->onStateChanged(I)V
+PLcom/android/server/power/PowerManagerService$DeviceStateListener;->onDeviceStateChanged(Landroid/hardware/devicestate/DeviceState;)V
 PLcom/android/server/power/PowerManagerService$DisplayGroupPowerChangeListener;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$DisplayGroupPowerChangeListener;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$DisplayGroupPowerChangeListener-IA;)V
-PLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$DockReceiver-IA;)V
+PLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/android/server/power/PowerManagerService;I)V
+PLcom/android/server/power/PowerManagerService$DockReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/power/PowerManagerService$DreamManagerStateListener;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$DreamManagerStateListener;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$DreamManagerStateListener-IA;)V
 PLcom/android/server/power/PowerManagerService$DreamManagerStateListener;->onKeepDreamingWhenUnpluggingChanged(Z)V
-PLcom/android/server/power/PowerManagerService$DreamReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$DreamReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$DreamReceiver-IA;)V
 PLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$ForegroundProfileObserver-IA;)V
-HSPLcom/android/server/power/PowerManagerService$Injector$$ExternalSyntheticLambda0;-><init>()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;
-PLcom/android/server/power/PowerManagerService$Injector$1;->set(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/server/power/PowerManagerService$Injector$2;-><init>(Lcom/android/server/power/PowerManagerService$Injector;)V
-HPLcom/android/server/power/PowerManagerService$Injector$2;->uptimeMillis()J
-HSPLcom/android/server/power/PowerManagerService$Injector$3;-><init>(Lcom/android/server/power/PowerManagerService$Injector;)V
 HSPLcom/android/server/power/PowerManagerService$Injector;-><init>()V
-HSPLcom/android/server/power/PowerManagerService$Injector;->createAmbientDisplayConfiguration(Landroid/content/Context;)Landroid/hardware/display/AmbientDisplayConfiguration;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createAmbientDisplaySuppressionController(Lcom/android/server/power/AmbientDisplaySuppressionController$AmbientDisplaySuppressionChangedCallback;)Lcom/android/server/power/AmbientDisplaySuppressionController;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createClock()Lcom/android/server/power/PowerManagerService$Clock;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createDeviceConfigParameterProvider()Lcom/android/server/display/feature/DeviceConfigParameterProvider;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createFoldGracePeriodProvider()Lcom/android/internal/foldables/FoldGracePeriodProvider;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createHandler(Landroid/os/Looper;Landroid/os/Handler$Callback;)Landroid/os/Handler;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createInattentiveSleepWarningController()Lcom/android/server/power/InattentiveSleepWarningController;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createLowPowerStandbyController(Landroid/content/Context;Landroid/os/Looper;)Lcom/android/server/power/LowPowerStandbyController;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createNativeWrapper()Lcom/android/server/power/PowerManagerService$NativeWrapper;
-PLcom/android/server/power/PowerManagerService$Injector;->createNotifier(Landroid/os/Looper;Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Lcom/android/server/power/SuspendBlocker;Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/power/FaceDownDetector;Lcom/android/server/power/ScreenUndimDetector;Ljava/util/concurrent/Executor;)Lcom/android/server/power/Notifier;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createPermissionCheckerWrapper()Lcom/android/server/power/PowerManagerService$PermissionCheckerWrapper;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createPowerPropertiesWrapper()Lcom/android/server/power/PowerManagerService$PowerPropertiesWrapper;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createSuspendBlocker(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;)Lcom/android/server/power/SuspendBlocker;
-HSPLcom/android/server/power/PowerManagerService$Injector;->createSystemPropertiesWrapper()Lcom/android/server/power/SystemPropertiesWrapper;
-PLcom/android/server/power/PowerManagerService$Injector;->createWirelessChargerDetector(Landroid/hardware/SensorManager;Lcom/android/server/power/SuspendBlocker;Landroid/os/Handler;)Lcom/android/server/power/WirelessChargerDetector;
-HSPLcom/android/server/power/PowerManagerService$Injector;->getFlags()Lcom/android/server/power/feature/PowerManagerFlags;
-HSPLcom/android/server/power/PowerManagerService$Injector;->invalidateIsInteractiveCaches()V
+HSPLcom/android/server/power/PowerManagerService$Injector;->createSuspendBlocker(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;)Lcom/android/server/power/PowerManagerService$SuspendBlockerImpl;
 HSPLcom/android/server/power/PowerManagerService$LocalService;-><init>(Lcom/android/server/power/PowerManagerService;)V
 HPLcom/android/server/power/PowerManagerService$LocalService;->finishUidChanges()V
+PLcom/android/server/power/PowerManagerService$LocalService;->getLastGoToSleep()Landroid/os/PowerManager$SleepData;
 HSPLcom/android/server/power/PowerManagerService$LocalService;->getLowPowerState(I)Landroid/os/PowerSaveState;
+PLcom/android/server/power/PowerManagerService$LocalService;->interceptPowerKeyDown(Landroid/view/KeyEvent;)Z
 HSPLcom/android/server/power/PowerManagerService$LocalService;->registerLowPowerModeObserver(Landroid/os/PowerManagerInternal$LowPowerModeListener;)V
-HPLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleTempWhitelist([I)V
+PLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleMode(Z)Z
+PLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleTempWhitelist([I)V
 PLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleWhitelist([I)V
+HPLcom/android/server/power/PowerManagerService$LocalService;->setDozeOverrideFromDreamManager(IIFIZ)V
+PLcom/android/server/power/PowerManagerService$LocalService;->setLightDeviceIdleMode(Z)Z
 PLcom/android/server/power/PowerManagerService$LocalService;->setMaximumScreenOffTimeoutFromDeviceAdmin(IJ)V
 PLcom/android/server/power/PowerManagerService$LocalService;->setPowerBoost(II)V
 PLcom/android/server/power/PowerManagerService$LocalService;->setPowerMode(IZ)V
-PLcom/android/server/power/PowerManagerService$LocalService;->setScreenBrightnessOverrideFromWindowManager(F)V
-PLcom/android/server/power/PowerManagerService$LocalService;->setUserActivityTimeoutOverrideFromWindowManager(J)V
+HPLcom/android/server/power/PowerManagerService$LocalService;->setUserActivityTimeoutOverrideFromWindowManager(J)V
+PLcom/android/server/power/PowerManagerService$LocalService;->setUserInactiveOverrideFromWindowManager()V
 HPLcom/android/server/power/PowerManagerService$LocalService;->startUidChanges()V
-HPLcom/android/server/power/PowerManagerService$LocalService;->uidActive(I)V
+PLcom/android/server/power/PowerManagerService$LocalService;->uidActive(I)V
 PLcom/android/server/power/PowerManagerService$LocalService;->uidGone(I)V
-HPLcom/android/server/power/PowerManagerService$LocalService;->uidIdle(I)V
-HPLcom/android/server/power/PowerManagerService$LocalService;->updateUidProcState(II)V
+PLcom/android/server/power/PowerManagerService$LocalService;->uidIdle(I)V
+HPLcom/android/server/power/PowerManagerService$LocalService;->updateUidProcState(II)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HSPLcom/android/server/power/PowerManagerService$NativeWrapper;-><init>()V
-HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeAcquireSuspendBlocker(Ljava/lang/String;)V
-HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeInit(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeReleaseSuspendBlocker(Ljava/lang/String;)V
-HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeSetAutoSuspend(Z)V
-PLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeSetPowerBoost(II)V
-HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeSetPowerMode(IZ)Z
 HSPLcom/android/server/power/PowerManagerService$PowerGroupWakefulnessChangeListener;-><init>(Lcom/android/server/power/PowerManagerService;)V
-HSPLcom/android/server/power/PowerManagerService$PowerGroupWakefulnessChangeListener;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$PowerGroupWakefulnessChangeListener-IA;)V
 HSPLcom/android/server/power/PowerManagerService$PowerManagerHandlerCallback;-><init>(Lcom/android/server/power/PowerManagerService;)V
-HSPLcom/android/server/power/PowerManagerService$PowerManagerHandlerCallback;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$PowerManagerHandlerCallback-IA;)V
-PLcom/android/server/power/PowerManagerService$PowerManagerHandlerCallback;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/power/PowerManagerService$PowerManagerHandlerCallback;->handleMessage(Landroid/os/Message;)Z+]Landroid/os/Handler;Landroid/os/Handler;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/power/PowerManagerService$SettingsObserver;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/Handler;)V
+PLcom/android/server/power/PowerManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
 HSPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;-><init>(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->acquire()V
-HSPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->acquire(Ljava/lang/String;)V
-HSPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->recordReferenceLocked(Ljava/lang/String;)V
+HSPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->acquire(Ljava/lang/String;)V+]Landroid/util/LongArray;Landroid/util/LongArray;
 PLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->release()V
-HPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->release(Ljava/lang/String;)V
-HPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->removeReferenceLocked(Ljava/lang/String;)V
+HPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->release(Ljava/lang/String;)V+]Landroid/util/LongArray;Landroid/util/LongArray;
+PLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->toString()Ljava/lang/String;
 PLcom/android/server/power/PowerManagerService$UidState;-><init>(I)V
 PLcom/android/server/power/PowerManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService$UserSwitchedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HPLcom/android/server/power/PowerManagerService$WakeLock;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILcom/android/server/power/PowerManagerService$UidState;Landroid/os/IWakeLockCallback;)V
-HPLcom/android/server/power/PowerManagerService$WakeLock;->getPowerGroupId()Ljava/lang/Integer;
-HPLcom/android/server/power/PowerManagerService$WakeLock;->hasSameProperties(ILjava/lang/String;Landroid/os/WorkSource;IILandroid/os/IWakeLockCallback;)Z
-HPLcom/android/server/power/PowerManagerService$WakeLock;->hasSameWorkSource(Landroid/os/WorkSource;)Z
-HPLcom/android/server/power/PowerManagerService$WakeLock;->linkToDeath()V
-HPLcom/android/server/power/PowerManagerService$WakeLock;->setDisabled(Z)Z
-HPLcom/android/server/power/PowerManagerService$WakeLock;->unlinkToDeath()V
-HPLcom/android/server/power/PowerManagerService$WakeLock;->updateWorkSource(Landroid/os/WorkSource;)V
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmBatterySaverSupported(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmBootCompleted(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmClock(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/PowerManagerService$Clock;
-HPLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmContext(Lcom/android/server/power/PowerManagerService;)Landroid/content/Context;
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmDecoupleHalAutoSuspendModeFromDisplayConfig(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmDecoupleHalInteractiveModeFromDisplayConfig(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmDirty(Lcom/android/server/power/PowerManagerService;)I
-HPLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmDisplayManagerInternal(Lcom/android/server/power/PowerManagerService;)Landroid/hardware/display/DisplayManagerInternal;
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmDisplaySuspendBlocker(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/SuspendBlocker;
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmLock(Lcom/android/server/power/PowerManagerService;)Ljava/lang/Object;
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmNativeWrapper(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/PowerManagerService$NativeWrapper;
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmPowerGroups(Lcom/android/server/power/PowerManagerService;)Landroid/util/SparseArray;
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmSuspendBlockers(Lcom/android/server/power/PowerManagerService;)Ljava/util/ArrayList;
-HPLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmSystemReady(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fputmDirty(Lcom/android/server/power/PowerManagerService;I)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$fputmKeepDreamingWhenUnplugging(Lcom/android/server/power/PowerManagerService;Z)V
-HPLcom/android/server/power/PowerManagerService;->-$$Nest$macquireWakeLockInternal(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILandroid/os/IWakeLockCallback;)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$mhandleBatteryStateChangedLocked(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$mhandleSandman(Lcom/android/server/power/PowerManagerService;I)V
+HPLcom/android/server/power/PowerManagerService$WakeLock;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILcom/android/server/power/PowerManagerService$UidState;Landroid/os/IWakeLockCallback;)V+]Landroid/os/IBinder;Landroid/os/Binder;,Landroid/os/BinderProxy;
+PLcom/android/server/power/PowerManagerService$WakeLock;->binderDied()V
+HPLcom/android/server/power/PowerManagerService$WakeLock;->getPowerGroupId()Ljava/lang/Integer;+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;
+PLcom/android/server/power/PowerManagerService$WakeLock;->toString()Ljava/lang/String;
+HPLcom/android/server/power/PowerManagerService;->-$$Nest$macquireWakeLockInternal(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILandroid/os/IWakeLockCallback;)V+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/power/PowerManagerService;->-$$Nest$mgoToSleepInternal(Lcom/android/server/power/PowerManagerService;Landroid/util/IntArray;JII)V
+HPLcom/android/server/power/PowerManagerService;->-$$Nest$mhandleSandman(Lcom/android/server/power/PowerManagerService;I)V+]Landroid/service/dreams/DreamManagerInternal;Lcom/android/server/dreams/DreamManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/power/PowerManagerService;->-$$Nest$mhandleUserActivityTimeout(Lcom/android/server/power/PowerManagerService;)V
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$misGloballyInteractiveInternal(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$misWakeLockLevelSupportedInternal(Lcom/android/server/power/PowerManagerService;I)Z
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$mnativeInit(Lcom/android/server/power/PowerManagerService;)V
-HPLcom/android/server/power/PowerManagerService;->-$$Nest$mreleaseWakeLockInternal(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;I)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$msetDozeAfterScreenOffInternal(Lcom/android/server/power/PowerManagerService;Z)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$msetPowerBoostInternal(Lcom/android/server/power/PowerManagerService;II)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$msetPowerModeInternal(Lcom/android/server/power/PowerManagerService;IZ)Z
-PLcom/android/server/power/PowerManagerService;->-$$Nest$msetScreenBrightnessOverrideFromWindowManagerInternal(Lcom/android/server/power/PowerManagerService;F)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$msetUserActivityTimeoutOverrideFromWindowManagerInternal(Lcom/android/server/power/PowerManagerService;J)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$mupdatePowerStateLocked(Lcom/android/server/power/PowerManagerService;)V
+HSPLcom/android/server/power/PowerManagerService;->-$$Nest$misInteractiveInternal(Lcom/android/server/power/PowerManagerService;II)Z
+PLcom/android/server/power/PowerManagerService;->-$$Nest$misWakeLockLevelSupportedInternal(Lcom/android/server/power/PowerManagerService;II)Z
+HPLcom/android/server/power/PowerManagerService;->-$$Nest$mreleaseWakeLockInternal(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;I)V+]Landroid/os/IBinder;Landroid/os/Binder;,Landroid/os/BinderProxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/power/PowerManagerService;->-$$Nest$mupdateWakeLockWorkSourceInternal(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$muserActivityInternal(Lcom/android/server/power/PowerManagerService;IJIII)V
-PLcom/android/server/power/PowerManagerService;->-$$Nest$mwakePowerGroupLocked(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerGroup;JILjava/lang/String;ILjava/lang/String;I)V
-HPLcom/android/server/power/PowerManagerService;->-$$Nest$smcopyWorkSource(Landroid/os/WorkSource;)Landroid/os/WorkSource;
 HSPLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeAcquireSuspendBlocker(Ljava/lang/String;)V
 PLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeReleaseSuspendBlocker(Ljava/lang/String;)V
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeSetAutoSuspend(Z)V
 PLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeSetPowerBoost(II)V
-HSPLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeSetPowerMode(IZ)Z
+PLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeSetPowerMode(IZ)Z
 HSPLcom/android/server/power/PowerManagerService;-><clinit>()V
 HSPLcom/android/server/power/PowerManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/power/PowerManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/PowerManagerService$Injector;)V
-HPLcom/android/server/power/PowerManagerService;->acquireWakeLockInternal(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILandroid/os/IWakeLockCallback;)V
 PLcom/android/server/power/PowerManagerService;->addPowerGroupsForNonDefaultDisplayGroupLocked()V
-PLcom/android/server/power/PowerManagerService;->adjustWakeLockSummary(II)I
-HPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnAcquireLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
-HPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnReleaseLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
-HPLcom/android/server/power/PowerManagerService;->areAllPowerGroupsReadyLocked()Z
-HPLcom/android/server/power/PowerManagerService;->checkForLongWakeLocks()V
-HPLcom/android/server/power/PowerManagerService;->copyWorkSource(Landroid/os/WorkSource;)Landroid/os/WorkSource;
+HPLcom/android/server/power/PowerManagerService;->adjustWakeLockSummary(II)I
+HPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnAcquireLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/PowerManagerService;->areAllPowerGroupsReadyLocked()Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/PowerManagerService;->canDreamLocked(Lcom/android/server/power/PowerGroup;)Z
 HPLcom/android/server/power/PowerManagerService;->doesIdleStateBlockWakeLocksLocked()Z
-PLcom/android/server/power/PowerManagerService;->enqueueNotifyLongMsgLocked(J)V
-HPLcom/android/server/power/PowerManagerService;->findWakeLockIndexLocked(Landroid/os/IBinder;)I
-HPLcom/android/server/power/PowerManagerService;->finishUidChangesInternal()V
-HPLcom/android/server/power/PowerManagerService;->finishWakefulnessChangeIfNeededLocked()V
+HPLcom/android/server/power/PowerManagerService;->dozePowerGroupLocked(Lcom/android/server/power/PowerGroup;JII)Z
+PLcom/android/server/power/PowerManagerService;->dumpInternal$5(Ljava/io/PrintWriter;)V
+HPLcom/android/server/power/PowerManagerService;->findWakeLockIndexLocked(Landroid/os/IBinder;)I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/power/PowerManagerService;->finishWakefulnessChangeIfNeededLocked()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/power/PowerManagerService;->getAttentiveTimeoutLocked()J
+HPLcom/android/server/power/PowerManagerService;->getDefaultGroupScreenOffTimeoutOverrideLocked(JJ)J
 HSPLcom/android/server/power/PowerManagerService;->getGlobalWakefulnessLocked()I
 PLcom/android/server/power/PowerManagerService;->getLastShutdownReasonInternal()I
-HPLcom/android/server/power/PowerManagerService;->getNextProfileTimeoutLocked(J)J
-HPLcom/android/server/power/PowerManagerService;->getScreenDimDurationLocked(J)J
 HPLcom/android/server/power/PowerManagerService;->getScreenOffTimeoutLocked(JJ)J
-HPLcom/android/server/power/PowerManagerService;->getScreenOffTimeoutWithFaceDownLocked(JJ)J
 HPLcom/android/server/power/PowerManagerService;->getSleepTimeoutLocked(J)J
-HPLcom/android/server/power/PowerManagerService;->getWakeLockSummaryFlags(Lcom/android/server/power/PowerManagerService$WakeLock;)I
-PLcom/android/server/power/PowerManagerService;->handleBatteryStateChangedLocked()V
-HPLcom/android/server/power/PowerManagerService;->handleSandman(I)V
 PLcom/android/server/power/PowerManagerService;->handleSettingsChangedLocked()V
 PLcom/android/server/power/PowerManagerService;->handleUidStateChangeLocked()V
-PLcom/android/server/power/PowerManagerService;->handleUserActivityTimeout()V
-PLcom/android/server/power/PowerManagerService;->incrementBootCount()V
 HPLcom/android/server/power/PowerManagerService;->isAttentiveTimeoutExpired(Lcom/android/server/power/PowerGroup;J)Z
 HPLcom/android/server/power/PowerManagerService;->isBeingKeptAwakeLocked(Lcom/android/server/power/PowerGroup;)Z
-PLcom/android/server/power/PowerManagerService;->isDeviceIdleModeInternal()Z
-HSPLcom/android/server/power/PowerManagerService;->isGloballyInteractiveInternal()Z
 HPLcom/android/server/power/PowerManagerService;->isItBedTimeYetLocked(Lcom/android/server/power/PowerGroup;)Z
-PLcom/android/server/power/PowerManagerService;->isLightDeviceIdleModeInternal()Z
 HPLcom/android/server/power/PowerManagerService;->isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()Z
-PLcom/android/server/power/PowerManagerService;->isSameCallback(Landroid/os/IWakeLockCallback;Landroid/os/IWakeLockCallback;)Z
 PLcom/android/server/power/PowerManagerService;->isScreenLock(Lcom/android/server/power/PowerManagerService$WakeLock;)Z
-PLcom/android/server/power/PowerManagerService;->isValidBrightness(F)Z
-PLcom/android/server/power/PowerManagerService;->isWakeLockLevelSupportedInternal(I)Z
-HPLcom/android/server/power/PowerManagerService;->maybeHideInattentiveSleepWarningLocked(JJ)Z
-PLcom/android/server/power/PowerManagerService;->maybeUpdateForegroundProfileLastActivityLocked(J)V
 PLcom/android/server/power/PowerManagerService;->monitor()V
-HPLcom/android/server/power/PowerManagerService;->needSuspendBlockerLocked()Z
 HPLcom/android/server/power/PowerManagerService;->notifyWakeLockAcquiredLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
 HPLcom/android/server/power/PowerManagerService;->notifyWakeLockChangingLocked(Lcom/android/server/power/PowerManagerService$WakeLock;ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;Landroid/os/IWakeLockCallback;)V
-HPLcom/android/server/power/PowerManagerService;->notifyWakeLockLongFinishedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
-HPLcom/android/server/power/PowerManagerService;->notifyWakeLockReleasedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
+HPLcom/android/server/power/PowerManagerService;->notifyWakeLockLongFinishedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V+]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;
+PLcom/android/server/power/PowerManagerService;->notifyWakeLockLongStartedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
+HPLcom/android/server/power/PowerManagerService;->notifyWakeLockReleasedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;I)V
 HSPLcom/android/server/power/PowerManagerService;->onBootPhase(I)V
 HSPLcom/android/server/power/PowerManagerService;->onStart()V
 PLcom/android/server/power/PowerManagerService;->readConfigurationLocked()V
-HPLcom/android/server/power/PowerManagerService;->releaseWakeLockInternal(Landroid/os/IBinder;I)V
-HPLcom/android/server/power/PowerManagerService;->removeWakeLockLocked(Lcom/android/server/power/PowerManagerService$WakeLock;I)V
-HPLcom/android/server/power/PowerManagerService;->restartNofifyLongTimerLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
-HPLcom/android/server/power/PowerManagerService;->scheduleSandmanLocked()V
-HPLcom/android/server/power/PowerManagerService;->scheduleUserInactivityTimeout(J)V
-HPLcom/android/server/power/PowerManagerService;->setDeviceIdleTempWhitelistInternal([I)V
-PLcom/android/server/power/PowerManagerService;->setDeviceIdleWhitelistInternal([I)V
-PLcom/android/server/power/PowerManagerService;->setDozeAfterScreenOffInternal(Z)V
+PLcom/android/server/power/PowerManagerService;->recalculateGlobalWakefulnessLocked()I
+HPLcom/android/server/power/PowerManagerService;->removeWakeLockNoUpdateLocked(Lcom/android/server/power/PowerManagerService$WakeLock;II)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/power/PowerManagerService;->restartNofifyLongTimerLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V+]Landroid/os/Handler;Landroid/os/Handler;
+HPLcom/android/server/power/PowerManagerService;->scheduleSandmanLocked()V+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/power/PowerManagerService;->setHalAutoSuspendModeLocked(Z)V
 HPLcom/android/server/power/PowerManagerService;->setHalInteractiveModeLocked(Z)V
-PLcom/android/server/power/PowerManagerService;->setMaximumScreenOffTimeoutFromDeviceAdminInternal(IJ)V
-PLcom/android/server/power/PowerManagerService;->setPowerBoostInternal(II)V
-PLcom/android/server/power/PowerManagerService;->setPowerModeInternal(IZ)Z
-HPLcom/android/server/power/PowerManagerService;->setScreenBrightnessOverrideFromWindowManagerInternal(F)V
-PLcom/android/server/power/PowerManagerService;->setUserActivityTimeoutOverrideFromWindowManagerInternal(J)V
+HPLcom/android/server/power/PowerManagerService;->setPowerModeInternal(IZ)Z
 HPLcom/android/server/power/PowerManagerService;->setWakeLockDisabledStateLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)Z
-PLcom/android/server/power/PowerManagerService;->shouldBoostScreenBrightness()Z
-HPLcom/android/server/power/PowerManagerService;->shouldUseProximitySensorLocked()Z
-PLcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
-HPLcom/android/server/power/PowerManagerService;->startUidChangesInternal()V
-HPLcom/android/server/power/PowerManagerService;->systemReady()V
-HPLcom/android/server/power/PowerManagerService;->uidActiveInternal(I)V
-HPLcom/android/server/power/PowerManagerService;->uidGoneInternal(I)V
-HPLcom/android/server/power/PowerManagerService;->uidIdleInternal(I)V
-HPLcom/android/server/power/PowerManagerService;->updateAttentiveStateLocked(JI)V
-PLcom/android/server/power/PowerManagerService;->updateDeviceConfigLocked()V
-HPLcom/android/server/power/PowerManagerService;->updateDreamLocked(IZ)V
-HPLcom/android/server/power/PowerManagerService;->updateIsPoweredLocked(I)V
-HPLcom/android/server/power/PowerManagerService;->updatePowerGroupsLocked(I)Z
+PLcom/android/server/power/PowerManagerService;->sleepPowerGroupLocked(Lcom/android/server/power/PowerGroup;JII)Z
+HPLcom/android/server/power/PowerManagerService;->updateAttentiveStateLocked(IJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/PowerManagerService;->updateGlobalWakefulnessLocked(IILjava/lang/String;Ljava/lang/String;IJ)V
+HPLcom/android/server/power/PowerManagerService;->updateIsPoweredLocked(I)V+]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/BatteryManagerInternal;Lcom/android/server/BatteryService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/PowerManagerService;->updatePowerGroupsLocked(I)Z+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/util/LatencyTracker;Lcom/android/internal/util/LatencyTracker;
 HPLcom/android/server/power/PowerManagerService;->updatePowerStateLocked()V
-HPLcom/android/server/power/PowerManagerService;->updateProfilesLocked(J)V
-PLcom/android/server/power/PowerManagerService;->updateScreenBrightnessBoostLocked(I)V
-HPLcom/android/server/power/PowerManagerService;->updateSettingsLocked()V
-HPLcom/android/server/power/PowerManagerService;->updateStayOnLocked(I)V
-HPLcom/android/server/power/PowerManagerService;->updateSuspendBlockerLocked()V
-HPLcom/android/server/power/PowerManagerService;->updateUidProcStateInternal(II)V
-HPLcom/android/server/power/PowerManagerService;->updateUserActivitySummaryLocked(JI)V
+HPLcom/android/server/power/PowerManagerService;->updateProfilesLocked(J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/PowerManagerService;->updateSettingsLocked$1()V
+HPLcom/android/server/power/PowerManagerService;->updateSuspendBlockerLocked()V+]Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/PowerManagerService;->updateUserActivitySummaryLocked(IJ)V+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/android/server/power/PowerManagerService;->updateWakeLockDisabledStatesLocked()V
-HPLcom/android/server/power/PowerManagerService;->updateWakeLockSummaryLocked(I)V
-HPLcom/android/server/power/PowerManagerService;->updateWakeLockWorkSourceInternal(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
-HPLcom/android/server/power/PowerManagerService;->updateWakefulnessLocked(I)Z
-PLcom/android/server/power/PowerManagerService;->userActivityInternal(IJIII)V
-PLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(JIII)Z
-HPLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(Lcom/android/server/power/PowerGroup;JIII)Z
-PLcom/android/server/power/PowerManagerService;->wakePowerGroupLocked(Lcom/android/server/power/PowerGroup;JILjava/lang/String;ILjava/lang/String;I)V
+HPLcom/android/server/power/PowerManagerService;->updateWakeLockSummaryLocked(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/power/PowerManagerService;->updateWakefulnessLocked(I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/PowerManagerService;->userActivityFromNative(JIII)V
+HPLcom/android/server/power/PowerManagerService;->userActivityInternal(IIIIJ)V
+PLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(IIIJ)Z
+HPLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(Lcom/android/server/power/PowerGroup;JIII)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/PowerManagerService;->wakePowerGroupLocked(Lcom/android/server/power/PowerGroup;JILjava/lang/String;ILjava/lang/String;I)V
+HSPLcom/android/server/power/PowerManagerShellCommand$1;-><init>(Lcom/android/server/power/PowerManagerShellCommand;)V
 HSPLcom/android/server/power/PowerManagerShellCommand;-><init>(Landroid/content/Context;Lcom/android/server/power/PowerManagerService$BinderService;)V
+PLcom/android/server/power/ScreenTimeoutOverridePolicy;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/power/ScreenUndimDetector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/ScreenUndimDetector;)V
-HSPLcom/android/server/power/ScreenUndimDetector$InternalClock;-><init>()V
-PLcom/android/server/power/ScreenUndimDetector$InternalClock;->getCurrentTime()J
 HSPLcom/android/server/power/ScreenUndimDetector;-><clinit>()V
-HSPLcom/android/server/power/ScreenUndimDetector;-><init>()V
-PLcom/android/server/power/ScreenUndimDetector;->readKeepScreenOnForMillis()J
-PLcom/android/server/power/ScreenUndimDetector;->readKeepScreenOnNotificationEnabled()Z
-PLcom/android/server/power/ScreenUndimDetector;->readMaxDurationBetweenUndimsMillis()J
-PLcom/android/server/power/ScreenUndimDetector;->readUndimsRequired()I
+PLcom/android/server/power/ScreenUndimDetector;->checkAndLogUndim(I)V
 PLcom/android/server/power/ScreenUndimDetector;->readValuesFromDeviceConfig()V
-HPLcom/android/server/power/ScreenUndimDetector;->recordScreenPolicy(II)V
-PLcom/android/server/power/ScreenUndimDetector;->systemReady(Landroid/content/Context;)V
-PLcom/android/server/power/ScreenUndimDetector;->userActivity(I)V
+PLcom/android/server/power/ScreenUndimDetector;->reset()V
 PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/ThermalManagerService;)V
-PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda0;->onValues(Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/ThermalManagerService;)V
-PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda2;-><init>(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
-PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/power/ThermalManagerService$$ExternalSyntheticLambda1;->run()V
 HSPLcom/android/server/power/ThermalManagerService$1;-><init>(Lcom/android/server/power/ThermalManagerService;)V
-PLcom/android/server/power/ThermalManagerService$1;->getCurrentTemperatures()[Landroid/os/Temperature;
-PLcom/android/server/power/ThermalManagerService$1;->getCurrentThermalStatus()I
-PLcom/android/server/power/ThermalManagerService$1;->registerThermalEventListener(Landroid/os/IThermalEventListener;)Z
-HPLcom/android/server/power/ThermalManagerService$1;->registerThermalEventListenerWithType(Landroid/os/IThermalEventListener;I)Z
-PLcom/android/server/power/ThermalManagerService$1;->registerThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+PLcom/android/server/power/ThermalManagerService$1;->onTemperatureChanged(Landroid/os/Temperature;)V
+HSPLcom/android/server/power/ThermalManagerService$2;-><init>(Lcom/android/server/power/ThermalManagerService;)V
+PLcom/android/server/power/ThermalManagerService$2;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/power/ThermalManagerService$2;->getCurrentTemperatures()[Landroid/os/Temperature;
+PLcom/android/server/power/ThermalManagerService$2;->getCurrentThermalStatus()I
+PLcom/android/server/power/ThermalManagerService$2;->registerThermalEventListener(Landroid/os/IThermalEventListener;)Z
+PLcom/android/server/power/ThermalManagerService$2;->registerThermalEventListenerWithType(Landroid/os/IThermalEventListener;I)Z
+PLcom/android/server/power/ThermalManagerService$2;->registerThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+PLcom/android/server/power/ThermalManagerService$2;->unregisterThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+PLcom/android/server/power/ThermalManagerService$HeadroomCallbackData;->toString()Ljava/lang/String;
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher$Sample;-><init>(JF)V
 HSPLcom/android/server/power/ThermalManagerService$TemperatureWatcher;-><init>(Lcom/android/server/power/ThermalManagerService;)V
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->getAndUpdateThresholds()V
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->getForecast(I)F
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->getHeadroomCallbackDataLocked()Lcom/android/server/power/ThermalManagerService$HeadroomCallbackData;
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->getSlopeOf(Ljava/util/List;)F
 PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->normalizeTemperature(FF)F
-PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->updateHeadroomThreshold(IFF)V
-PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->updateThresholds()V
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->updateTemperatureSampleLocked(JLandroid/os/Temperature;)V
+PLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->updateTemperatureThresholdLocked(Landroid/hardware/thermal/TemperatureThreshold;Z)V
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper$1;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;)V
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper$1;->notifyThrottling(Landroid/hardware/thermal/Temperature;)V
-PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->$r8$lambda$eU14JIDh7_eSiFFdcxpGZaa7E5A(ILandroid/hardware/thermal/TemperatureThreshold;)Z
-PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper$TemperatureChangedCallback;)V
+PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;-><init>(Lcom/android/server/power/ThermalManagerService$1;)V
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->connectToHal()Z
-PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->getCurrentTemperatures(ZI)Ljava/util/List;
-PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->getTemperatureThresholds(ZI)Ljava/util/List;
+PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->getCurrentCoolingDevices(IZ)Ljava/util/List;
+PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->getCurrentTemperatures(IZ)Ljava/util/List;
+PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->getTemperatureThresholds(IZ)Ljava/util/List;
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->initProxyAndRegisterCallback(Landroid/os/IBinder;)V
-PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->lambda$getTemperatureThresholds$0(ILandroid/hardware/thermal/TemperatureThreshold;)Z
 PLcom/android/server/power/ThermalManagerService$ThermalHalAidlWrapper;->registerThermalChangedCallback()V
-PLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><clinit>()V
 PLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><init>()V
-PLcom/android/server/power/ThermalManagerService;->$r8$lambda$CphJwWjbL-B4w7BxLr49x93aXVc(Lcom/android/server/power/ThermalManagerService;Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->$r8$lambda$_4zrfyVY81QkL3mSI38hIUpwup8(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
-PLcom/android/server/power/ThermalManagerService;->$r8$lambda$_wu3L1d49Z7doBi6Ga_7WZSQLrk(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmHalReady(Lcom/android/server/power/ThermalManagerService;)Ljava/util/concurrent/atomic/AtomicBoolean;
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmHalWrapper(Lcom/android/server/power/ThermalManagerService;)Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmLock(Lcom/android/server/power/ThermalManagerService;)Ljava/lang/Object;
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmStatus(Lcom/android/server/power/ThermalManagerService;)I
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmThermalEventListeners(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmThermalStatusListeners(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$mpostEventListenerCurrentTemperatures(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$mpostStatusListener(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
-PLcom/android/server/power/ThermalManagerService;->-$$Nest$smthermalSeverityToStatsdStatus(I)I
-HSPLcom/android/server/power/ThermalManagerService;-><clinit>()V
 HSPLcom/android/server/power/ThermalManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/power/ThermalManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;)V
-PLcom/android/server/power/ThermalManagerService;->lambda$postEventListener$1(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->lambda$postStatusListener$0(Landroid/os/IThermalStatusListener;)V
+PLcom/android/server/power/ThermalManagerService;->checkAndNotifyHeadroomListenersLocked(Lcom/android/server/power/ThermalManagerService$HeadroomCallbackData;)V
+PLcom/android/server/power/ThermalManagerService;->dumpInternal(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/power/ThermalManagerService;->dumpItemsLocked(Ljava/io/PrintWriter;Ljava/util/Collection;)V
+PLcom/android/server/power/ThermalManagerService;->dumpTemperatureThresholds(Ljava/io/PrintWriter;Ljava/util/List;)V
 PLcom/android/server/power/ThermalManagerService;->notifyEventListenersLocked(Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->onActivityManagerReady()V
 HSPLcom/android/server/power/ThermalManagerService;->onBootPhase(I)V
 HSPLcom/android/server/power/ThermalManagerService;->onStart()V
 PLcom/android/server/power/ThermalManagerService;->onTemperatureChanged(Landroid/os/Temperature;Z)V
-PLcom/android/server/power/ThermalManagerService;->onTemperatureChangedCallback(Landroid/os/Temperature;)V
 PLcom/android/server/power/ThermalManagerService;->onTemperatureMapChangedLocked()V
-PLcom/android/server/power/ThermalManagerService;->postEventListener(Landroid/os/Temperature;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
-PLcom/android/server/power/ThermalManagerService;->postEventListenerCurrentTemperatures(Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
-PLcom/android/server/power/ThermalManagerService;->postStatusListener(Landroid/os/IThermalStatusListener;)V
-PLcom/android/server/power/ThermalManagerService;->registerStatsCallbacks()V
+PLcom/android/server/power/ThermalManagerService;->postEventListenerLocked(Landroid/os/Temperature;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
 PLcom/android/server/power/ThermalManagerService;->setStatusLocked(I)V
-PLcom/android/server/power/ThermalManagerService;->shutdownIfNeeded(Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->thermalSeverityToStatsdStatus(I)I
-PLcom/android/server/power/WakeLockLog$EntryByteTranslator;-><init>(Lcom/android/server/power/WakeLockLog$TagDatabase;)V
-PLcom/android/server/power/WakeLockLog$EntryByteTranslator;->getRelativeTime(JJ)I
-HPLcom/android/server/power/WakeLockLog$EntryByteTranslator;->toBytes(Lcom/android/server/power/WakeLockLog$LogEntry;[BJ)I
-PLcom/android/server/power/WakeLockLog$Injector;-><init>()V
-HPLcom/android/server/power/WakeLockLog$Injector;->currentTimeMillis()J
-PLcom/android/server/power/WakeLockLog$Injector;->getDateFormat()Ljava/text/SimpleDateFormat;
-PLcom/android/server/power/WakeLockLog$Injector;->getLogSize()I
-PLcom/android/server/power/WakeLockLog$Injector;->getTagDatabaseSize()I
-HPLcom/android/server/power/WakeLockLog$LogEntry;-><init>(JILcom/android/server/power/WakeLockLog$TagData;I)V
-HPLcom/android/server/power/WakeLockLog$LogEntry;->set(JILcom/android/server/power/WakeLockLog$TagData;I)V
-HPLcom/android/server/power/WakeLockLog$TagData;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/power/WakeLockLog$LogEntry;-><init>(JILcom/android/server/power/WakeLockLog$TagData;I)V
+HPLcom/android/server/power/WakeLockLog$LogEntry;->toStringInternal(Ljava/text/SimpleDateFormat;)Ljava/lang/String;
+PLcom/android/server/power/WakeLockLog$LogEntry;->updatePackageName(Landroid/util/SparseArray;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/power/WakeLockLog$TagData;->equals(Ljava/lang/Object;)Z
 PLcom/android/server/power/WakeLockLog$TagDatabase;-><init>(Lcom/android/server/power/WakeLockLog$Injector;)V
-HPLcom/android/server/power/WakeLockLog$TagDatabase;->findOrCreateTag(Ljava/lang/String;IZ)Lcom/android/server/power/WakeLockLog$TagData;
-HPLcom/android/server/power/WakeLockLog$TagDatabase;->getTagIndex(Lcom/android/server/power/WakeLockLog$TagData;)I
-PLcom/android/server/power/WakeLockLog$TagDatabase;->setCallback(Lcom/android/server/power/WakeLockLog$TagDatabase$Callback;)V
-HPLcom/android/server/power/WakeLockLog$TagDatabase;->setToIndex(Lcom/android/server/power/WakeLockLog$TagData;I)V
-HPLcom/android/server/power/WakeLockLog$TagDatabase;->updateTagTime(Lcom/android/server/power/WakeLockLog$TagData;J)V
-PLcom/android/server/power/WakeLockLog$TheLog$1;-><init>(Lcom/android/server/power/WakeLockLog$TheLog;)V
-PLcom/android/server/power/WakeLockLog$TheLog;-><init>(Lcom/android/server/power/WakeLockLog$Injector;Lcom/android/server/power/WakeLockLog$EntryByteTranslator;Lcom/android/server/power/WakeLockLog$TagDatabase;)V
-HPLcom/android/server/power/WakeLockLog$TheLog;->addEntry(Lcom/android/server/power/WakeLockLog$LogEntry;)V
-HPLcom/android/server/power/WakeLockLog$TheLog;->getAvailableSpace()I
-HPLcom/android/server/power/WakeLockLog$TheLog;->isBufferEmpty()Z
-HPLcom/android/server/power/WakeLockLog$TheLog;->makeSpace(I)Z
-HPLcom/android/server/power/WakeLockLog$TheLog;->writeBytesAt(I[BI)V
-PLcom/android/server/power/WakeLockLog;->-$$Nest$sfgetDATE_FORMAT()Ljava/text/SimpleDateFormat;
+HPLcom/android/server/power/WakeLockLog$TagDatabase;->findOrCreateTag(ILjava/lang/String;)Lcom/android/server/power/WakeLockLog$TagData;
+PLcom/android/server/power/WakeLockLog$TheLog$1;-><init>(Ljava/lang/Object;)V
+HPLcom/android/server/power/WakeLockLog$TheLog$1;->toBytes(Lcom/android/server/power/WakeLockLog$LogEntry;[BJ)I
+PLcom/android/server/power/WakeLockLog$TheLog$2;-><init>(Lcom/android/server/power/WakeLockLog$TheLog;Lcom/android/server/power/WakeLockLog$LogEntry;)V
+HPLcom/android/server/power/WakeLockLog$TheLog$2;->checkState()V
+PLcom/android/server/power/WakeLockLog$TheLog$2;->hasNext()Z
+PLcom/android/server/power/WakeLockLog$TheLog$2;->next()Ljava/lang/Object;
+PLcom/android/server/power/WakeLockLog$TheLog;-><init>(Lcom/android/server/power/WakeLockLog$Injector;Lcom/android/server/power/WakeLockLog$TheLog$1;Lcom/android/server/power/WakeLockLog$TagDatabase;)V
+HPLcom/android/server/power/WakeLockLog$TheLog;->addEntry(Lcom/android/server/power/WakeLockLog$LogEntry;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/power/WakeLockLog$TheLog;->readEntryAt(IJLcom/android/server/power/WakeLockLog$LogEntry;)Lcom/android/server/power/WakeLockLog$LogEntry;
 PLcom/android/server/power/WakeLockLog;-><clinit>()V
-PLcom/android/server/power/WakeLockLog;-><init>(Landroid/content/Context;)V
 PLcom/android/server/power/WakeLockLog;-><init>(Lcom/android/server/power/WakeLockLog$Injector;Landroid/content/Context;)V
-HPLcom/android/server/power/WakeLockLog;->handleWakeLockEventInternal(ILjava/lang/String;IIJ)V
-HPLcom/android/server/power/WakeLockLog;->onWakeLockAcquired(Ljava/lang/String;II)V
-HPLcom/android/server/power/WakeLockLog;->onWakeLockEvent(ILjava/lang/String;II)V
-HPLcom/android/server/power/WakeLockLog;->onWakeLockReleased(Ljava/lang/String;I)V
-HPLcom/android/server/power/WakeLockLog;->tagNameReducer(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/power/WakeLockLog;->translateFlagsFromPowerManager(I)I
+PLcom/android/server/power/WakeLockLog;->dump(Ljava/io/PrintWriter;Z)V
+HPLcom/android/server/power/WakeLockLog;->onWakeLockEvent(ILjava/lang/String;IIJ)V
+PLcom/android/server/power/WakefulnessSessionObserver$1;-><init>(Lcom/android/server/power/WakefulnessSessionObserver;Landroid/os/Handler;)V
+PLcom/android/server/power/WakefulnessSessionObserver$1;->onChange(Z)V
+PLcom/android/server/power/WakefulnessSessionObserver$2;-><init>(Lcom/android/server/power/WakefulnessSessionObserver;)V
+PLcom/android/server/power/WakefulnessSessionObserver$2;->onDisplayChanged(I)V
+PLcom/android/server/power/WakefulnessSessionObserver$Injector;-><init>()V
+PLcom/android/server/power/WakefulnessSessionObserver$UserSwitchObserver;-><init>(Lcom/android/server/power/WakefulnessSessionObserver;)V
+PLcom/android/server/power/WakefulnessSessionObserver$WakefulnessSessionPowerGroup;-><init>(Lcom/android/server/power/WakefulnessSessionObserver;I)V
+HPLcom/android/server/power/WakefulnessSessionObserver$WakefulnessSessionPowerGroup;->checkAndLogDimIfQualified(IJ)V
+PLcom/android/server/power/WakefulnessSessionObserver$WakefulnessSessionPowerGroup;->isInOverrideTimeout()Z
+PLcom/android/server/power/WakefulnessSessionObserver;-><clinit>()V
+PLcom/android/server/power/WakefulnessSessionObserver;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/power/WakefulnessSessionObserver;->notifyUserActivity(IIJ)V
+PLcom/android/server/power/WakefulnessSessionObserver;->updateSettingScreenOffTimeout(Landroid/content/Context;)V
 PLcom/android/server/power/WirelessChargerDetector$1;-><init>(Lcom/android/server/power/WirelessChargerDetector;)V
 PLcom/android/server/power/WirelessChargerDetector$2;-><init>(Lcom/android/server/power/WirelessChargerDetector;)V
 PLcom/android/server/power/WirelessChargerDetector;-><clinit>()V
-PLcom/android/server/power/WirelessChargerDetector;-><init>(Landroid/hardware/SensorManager;Lcom/android/server/power/SuspendBlocker;Landroid/os/Handler;)V
-PLcom/android/server/power/WirelessChargerDetector;->update(ZI)Z
-HSPLcom/android/server/power/feature/PowerManagerFlags$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/power/WirelessChargerDetector;-><init>(Landroid/hardware/SensorManager;Lcom/android/server/power/PowerManagerService$SuspendBlockerImpl;Landroid/os/Handler;)V
+PLcom/android/server/power/WirelessChargerDetector;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/power/feature/PowerManagerFlags$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/power/feature/PowerManagerFlags$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
 HSPLcom/android/server/power/feature/PowerManagerFlags$FlagState;-><init>(Ljava/lang/String;Ljava/util/function/Supplier;)V
-HSPLcom/android/server/power/feature/PowerManagerFlags$FlagState;-><init>(Ljava/lang/String;Ljava/util/function/Supplier;Lcom/android/server/power/feature/PowerManagerFlags$FlagState-IA;)V
+HPLcom/android/server/power/feature/PowerManagerFlags$FlagState;->isEnabled()Z+]Ljava/util/function/Supplier;Lcom/android/server/display/feature/DisplayManagerFlags$$ExternalSyntheticLambda1;
+PLcom/android/server/power/feature/PowerManagerFlags$FlagState;->toString()Ljava/lang/String;
 HSPLcom/android/server/power/feature/PowerManagerFlags;-><init>()V
+PLcom/android/server/power/feature/PowerManagerFlags;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/hint/FeatureFlagsImpl;->init()V
+PLcom/android/server/power/hint/Flags;-><clinit>()V
+PLcom/android/server/power/hint/Flags;->adpfSessionTag()Z
+PLcom/android/server/power/hint/Flags;->powerhintThreadCleanup()Z
 PLcom/android/server/power/hint/HintManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/hint/HintManagerService;)V
-HSPLcom/android/server/power/hint/HintManagerService$BinderService;-><init>(Lcom/android/server/power/hint/HintManagerService;)V
-PLcom/android/server/power/hint/HintManagerService$BinderService;->createHintSession(Landroid/os/IBinder;[IJ)Landroid/os/IHintSession;
+PLcom/android/server/power/hint/HintManagerService$BinderService;-><init>(Lcom/android/server/power/hint/HintManagerService;)V
+PLcom/android/server/power/hint/HintManagerService$BinderService;->createHintSessionWithConfig(Landroid/os/IBinder;ILandroid/os/SessionCreationConfig;Landroid/hardware/power/SessionConfig;)Landroid/os/IHintSession;
+PLcom/android/server/power/hint/HintManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/power/hint/HintManagerService$BinderService;->getCpuHeadroom(Landroid/os/CpuHeadroomParamsInternal;)Landroid/hardware/power/CpuHeadroomResult;
+PLcom/android/server/power/hint/HintManagerService$BinderService;->getGpuHeadroom(Landroid/os/GpuHeadroomParamsInternal;)Landroid/hardware/power/GpuHeadroomResult;
 PLcom/android/server/power/hint/HintManagerService$BinderService;->getHintSessionPreferredRate()J
-HSPLcom/android/server/power/hint/HintManagerService$Injector;-><init>()V
-HSPLcom/android/server/power/hint/HintManagerService$Injector;->createNativeWrapper()Lcom/android/server/power/hint/HintManagerService$NativeWrapper;
-HPLcom/android/server/power/hint/HintManagerService$MyUidObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/hint/HintManagerService$MyUidObserver;II)V
-HPLcom/android/server/power/hint/HintManagerService$MyUidObserver$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/power/hint/HintManagerService$BinderService;->getSessionChannel(Landroid/os/IBinder;)Landroid/hardware/power/ChannelConfig;
+PLcom/android/server/power/hint/HintManagerService$ChannelItem;-><init>(Lcom/android/server/power/hint/HintManagerService;IILandroid/os/IBinder;)V
+PLcom/android/server/power/hint/HintManagerService$ChannelItem;->binderDied()V
+PLcom/android/server/power/hint/HintManagerService$ChannelItem;->closeChannel()V
+PLcom/android/server/power/hint/HintManagerService$ChannelItem;->openChannel()V
+PLcom/android/server/power/hint/HintManagerService$CleanUpHandler;-><init>(Lcom/android/server/power/hint/HintManagerService;Landroid/os/Looper;)V
+PLcom/android/server/power/hint/HintManagerService$Injector;-><init>()V
+PLcom/android/server/power/hint/HintManagerService$MyUidObserver$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/hint/HintManagerService$MyUidObserver;II)V
+HPLcom/android/server/power/hint/HintManagerService$MyUidObserver$$ExternalSyntheticLambda0;->run()V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 PLcom/android/server/power/hint/HintManagerService$MyUidObserver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/hint/HintManagerService$MyUidObserver;I)V
 PLcom/android/server/power/hint/HintManagerService$MyUidObserver$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/power/hint/HintManagerService$MyUidObserver;->$r8$lambda$8-3q2FSoHxKJS5M75tlJXQ5W92M(Lcom/android/server/power/hint/HintManagerService$MyUidObserver;I)V
-PLcom/android/server/power/hint/HintManagerService$MyUidObserver;->$r8$lambda$G5ujTcrPvq25wCnbVcETC3ZVxqA(Lcom/android/server/power/hint/HintManagerService$MyUidObserver;II)V
-HSPLcom/android/server/power/hint/HintManagerService$MyUidObserver;-><init>(Lcom/android/server/power/hint/HintManagerService;)V
-HPLcom/android/server/power/hint/HintManagerService$MyUidObserver;->isUidForeground(I)Z
-HPLcom/android/server/power/hint/HintManagerService$MyUidObserver;->lambda$onUidGone$0(I)V
-HPLcom/android/server/power/hint/HintManagerService$MyUidObserver;->lambda$onUidStateChanged$1(II)V
-HPLcom/android/server/power/hint/HintManagerService$MyUidObserver;->onUidGone(IZ)V
+PLcom/android/server/power/hint/HintManagerService$MyUidObserver;-><init>(Lcom/android/server/power/hint/HintManagerService;)V
+PLcom/android/server/power/hint/HintManagerService$MyUidObserver;->onUidGone(IZ)V
 HPLcom/android/server/power/hint/HintManagerService$MyUidObserver;->onUidStateChanged(IIJI)V
-HSPLcom/android/server/power/hint/HintManagerService$NativeWrapper;-><init>()V
-HSPLcom/android/server/power/hint/HintManagerService$NativeWrapper;->halGetHintSessionPreferredRate()J
-HSPLcom/android/server/power/hint/HintManagerService$NativeWrapper;->halInit()V
-HPLcom/android/server/power/hint/HintManagerService;->-$$Nest$fgetmActiveSessions(Lcom/android/server/power/hint/HintManagerService;)Landroid/util/ArrayMap;
-PLcom/android/server/power/hint/HintManagerService;->-$$Nest$fgetmLock(Lcom/android/server/power/hint/HintManagerService;)Ljava/lang/Object;
-PLcom/android/server/power/hint/HintManagerService;->-$$Nest$misHalSupported(Lcom/android/server/power/hint/HintManagerService;)Z
-HSPLcom/android/server/power/hint/HintManagerService;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/power/hint/HintManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/hint/HintManagerService$Injector;)V
-PLcom/android/server/power/hint/HintManagerService;->isHalSupported()Z
-HSPLcom/android/server/power/hint/HintManagerService;->onBootPhase(I)V
-HSPLcom/android/server/power/hint/HintManagerService;->onStart()V
-PLcom/android/server/power/hint/HintManagerService;->registerStatsCallbacks()V
-PLcom/android/server/power/hint/HintManagerService;->systemReady()V
-HSPLcom/android/server/power/optimization/FeatureFlagsImpl;-><clinit>()V
-HSPLcom/android/server/power/optimization/FeatureFlagsImpl;-><init>()V
-HSPLcom/android/server/power/optimization/FeatureFlagsImpl;->disableSystemServicePowerAttr()Z
-PLcom/android/server/power/optimization/FeatureFlagsImpl;->load_overrides_backstage_power()V
-PLcom/android/server/power/optimization/FeatureFlagsImpl;->streamlinedBatteryStats()Z
-HSPLcom/android/server/power/optimization/Flags;-><clinit>()V
-HSPLcom/android/server/power/optimization/Flags;->disableSystemServicePowerAttr()Z
-PLcom/android/server/power/optimization/Flags;->streamlinedBatteryStats()Z
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$1;-><init>()V
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;-><init>(I)V
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;->getPowerComponentId()I
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;->getProcessor()Lcom/android/server/power/stats/AggregatedPowerStatsProcessor;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;->setProcessor(Lcom/android/server/power/stats/AggregatedPowerStatsProcessor;)Lcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;->trackDeviceStates([I)Lcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;->trackUidStates([I)Lcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig;->-$$Nest$sfgetNO_OP_PROCESSOR()Lcom/android/server/power/stats/AggregatedPowerStatsProcessor;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig;-><clinit>()V
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig;-><init>()V
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig;->getPowerComponentsAggregatedStatsConfigs()Ljava/util/List;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsConfig;->trackPowerComponent(I)Lcom/android/server/power/stats/AggregatedPowerStatsConfig$PowerComponent;
-HSPLcom/android/server/power/stats/AggregatedPowerStatsProcessor;-><init>()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda0;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+PLcom/android/server/power/hint/HintManagerService$NativeWrapper;-><init>()V
+PLcom/android/server/power/hint/HintManagerService$NativeWrapper;->halGetHintSessionPreferredRate()J
+PLcom/android/server/power/hint/HintManagerService$NativeWrapper;->halInit()V
+PLcom/android/server/power/hint/HintManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/power/hint/HintManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/hint/HintManagerService$Injector;)V
+PLcom/android/server/power/hint/HintManagerService;->onBootPhase(I)V
+PLcom/android/server/power/hint/HintManagerService;->onStart()V
+PLcom/android/server/power/hint/HintManagerService;->removeChannelItem(Ljava/lang/Integer;Ljava/lang/Integer;)V
+PLcom/android/server/power/stats/AccumulatedBatteryUsageStatsSection$Reader;->read(Lcom/android/modules/utils/TypedXmlPullParser;)Lcom/android/server/power/stats/PowerStatsSpan$Section;
+PLcom/android/server/power/stats/AccumulatedBatteryUsageStatsSection;-><init>(Landroid/os/BatteryUsageStats$Builder;)V
+PLcom/android/server/power/stats/AccumulatedBatteryUsageStatsSection;->write(Lcom/android/modules/utils/TypedXmlSerializer;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
 PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda2;->run()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda5;-><init>(Ljava/lang/Runnable;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda5;->run()V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda6;-><init>(Landroid/os/SynchronousResultReceiver;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda6;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda7;->run()V
-HPLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;I)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda8;->run()V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda2;-><init>(Landroid/os/SynchronousResultReceiver;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda2;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;I)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$$ExternalSyntheticLambda6;->run()V
 HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$1;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$1;->run()V
+HPLcom/android/server/power/stats/BatteryExternalStatsWorker$1;->run()V
 HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$2;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$2;->run()V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$3;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$2;->run()V
 PLcom/android/server/power/stats/BatteryExternalStatsWorker$3;->execute(Ljava/lang/Runnable;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$4;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Landroid/os/SynchronousResultReceiver;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$4;->onBluetoothActivityEnergyInfoAvailable(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$5;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Ljava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$5;->onError(Landroid/telephony/TelephonyManager$ModemActivityInfoException;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker$5;-><init>(Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/power/stats/BatteryExternalStatsWorker$5;->onError(Ljava/lang/Throwable;)V
 HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$Injector;->getLocalService(Ljava/lang/Class;)Ljava/lang/Object;
-PLcom/android/server/power/stats/BatteryExternalStatsWorker$Injector;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$TgNX_p2V0O5r6X5mUinj9SCyWf4(Ljava/lang/Runnable;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$Wx33MmwbjqfDxlQQrg9moONX6GA(Landroid/os/SynchronousResultReceiver;Landroid/os/connectivity/WifiActivityEnergyInfo;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$fzONXx64Mcwd9mw55thi-ZcrYmg(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$gqMSfdpdVW3FAyYkJhAyC8ggBas(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$j2OKKiCfbZA6ci9IVMhM3dJE-Hk(Lcom/android/server/power/stats/BatteryExternalStatsWorker;I)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$teZaibf_MXjhvvOUBkWARv-cTiA(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->$r8$lambda$xuE6vcYTQgXCEAaRtlmzQWy8b9c(Ljava/lang/Runnable;)Ljava/lang/Thread;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmCurrentReason(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)Ljava/lang/String;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmOnBattery(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)Z
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmOnBatteryScreenOff(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)Z
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmPerDisplayScreenStates(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)[I
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmScreenState(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)I
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmStats(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)Lcom/android/server/power/stats/BatteryStatsImpl;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmUpdateFlags(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)I
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmUseLatestStates(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)Z
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fgetmWorkerLock(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)Ljava/lang/Object;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fputmCurrentFuture(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Ljava/util/concurrent/Future;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fputmCurrentReason(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Ljava/lang/String;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fputmLastCollectionTimeStamp(Lcom/android/server/power/stats/BatteryExternalStatsWorker;J)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fputmUpdateFlags(Lcom/android/server/power/stats/BatteryExternalStatsWorker;I)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$fputmUseLatestStates(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Z)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$mcancelSyncDueToBatteryLevelChangeLocked(Lcom/android/server/power/stats/BatteryExternalStatsWorker;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$mupdateExternalStatsLocked(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Ljava/lang/String;IZZI[IZ)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;-><init>(Landroid/content/Context;Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker$Injector;Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->awaitControllerInfo(Landroid/os/SynchronousResultReceiver;)Landroid/os/Parcelable;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->cancelCpuSyncDueToWakelockChange()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->cancelSyncDueToBatteryLevelChangeLocked()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->cancelSyncDueToProcessStateChange()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->getEnergyConsumersLocked(I)Ljava/util/concurrent/CompletableFuture;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$new$0(Ljava/lang/Runnable;)V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$new$1(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$scheduleCpuSyncDueToWakelockChange$2()V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$scheduleCpuSyncDueToWakelockChange$3()V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$scheduleSyncDueToBatteryLevelChange$4()V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$scheduleSyncDueToProcessStateChange$5(I)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->lambda$updateExternalStatsLocked$8(Landroid/os/SynchronousResultReceiver;Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HPLcom/android/server/power/stats/BatteryExternalStatsWorker;->-$$Nest$mupdateExternalStatsLocked(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Ljava/lang/String;IZZ[IZ)V
+HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker$Injector;Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/os/Handler;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker;->awaitControllerInfo(Landroid/os/SynchronousResultReceiver;)Landroid/os/Parcelable;
+HPLcom/android/server/power/stats/BatteryExternalStatsWorker;->extractDeltaLocked(Landroid/os/connectivity/WifiActivityEnergyInfo;)Landroid/os/connectivity/WifiActivityEnergyInfo;
+PLcom/android/server/power/stats/BatteryExternalStatsWorker;->getEnergyConsumersLocked(I)Ljava/util/concurrent/CompletableFuture;
 PLcom/android/server/power/stats/BatteryExternalStatsWorker;->populateEnergyConsumerSubsystemMapsLocked()Landroid/util/SparseArray;
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleCpuSyncDueToWakelockChange(J)Ljava/util/concurrent/Future;
-HPLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleDelayedSyncLocked(Ljava/util/concurrent/Future;Ljava/lang/Runnable;J)Ljava/util/concurrent/Future;
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleRunnable(Ljava/lang/Runnable;)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSync(Ljava/lang/String;I)Ljava/util/concurrent/Future;
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSyncDueToBatteryLevelChange(J)Ljava/util/concurrent/Future;
-HPLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSyncDueToProcessStateChange(IJ)V
-PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSyncDueToScreenStateChange(IZZI[I)Ljava/util/concurrent/Future;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSyncLocked(Ljava/lang/String;I)Ljava/util/concurrent/Future;
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleWrite()Ljava/util/concurrent/Future;
+HPLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleDelayedSyncLocked(IJLjava/lang/Runnable;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSync(ILjava/lang/String;)V
+PLcom/android/server/power/stats/BatteryExternalStatsWorker;->scheduleSyncLocked(ILjava/lang/String;)V
 PLcom/android/server/power/stats/BatteryExternalStatsWorker;->systemServicesReady()V
-HSPLcom/android/server/power/stats/BatteryExternalStatsWorker;->updateExternalStatsLocked(Ljava/lang/String;IZZI[IZ)V
 HSPLcom/android/server/power/stats/BatteryStatsDumpHelperImpl;-><init>(Lcom/android/server/power/stats/BatteryUsageStatsProvider;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda7;->run()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$1;-><init>()V
+PLcom/android/server/power/stats/BatteryStatsDumpHelperImpl;->getBatteryUsageStats(Landroid/os/BatteryStats;Z)Landroid/os/BatteryUsageStats;
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/app/AlarmManager;J)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/app/AlarmManager;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda12;->run()V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;JJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda1;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda4;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda4;->run()V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;JJZZZII[ILcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda7;->onUidCpuTime(ILjava/lang/Object;)V+]Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/internal/os/CpuScalingPolicies;]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;JJZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda8;->onUidCpuTime(ILjava/lang/Object;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;JJIZLandroid/util/SparseLongArray;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda9;->onUidCpuTime(ILjava/lang/Object;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$1;->getCountLocked(I)J
 HSPLcom/android/server/power/stats/BatteryStatsImpl$2;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$3;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$4;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;ILcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->abortLastDuration(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->addDuration(JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->computeOverage(J)J
+HSPLcom/android/server/power/stats/BatteryStatsImpl$5;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$6;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$7;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$8;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Ljava/lang/Object;JI)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$8;->run()V
+PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->computeCurrentCountLocked()I
+PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->computeRunTimeLocked(JJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->onTimeStopped(JJJ)V
 PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->recomputeLastDuration(JZ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->-$$Nest$fgetmPowerStatsThrottlePeriodCpu(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->-$$Nest$fgetmResetOnUnplugAfterSignificantCharge(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;)Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->-$$Nest$fgetmResetOnUnplugHighBatteryLevel(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;)Z
+PLcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;->reset(JZ)Z
+HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;-><clinit>()V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;-><init>()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->build()Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->setPowerStatsThrottlePeriodCpu(J)Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->setResetOnUnplugAfterSignificantCharge(Z)Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;->setResetOnUnplugHighBatteryLevel(Z)Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig$Builder;Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig-IA;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;->getPowerStatsThrottlePeriodCpu()J
 HSPLcom/android/server/power/stats/BatteryStatsImpl$BinderCallStats;-><init>()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache-IA;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;->set(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/os/Handler;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->getPerUidModemModel(Ljava/lang/String;)I
+PLcom/android/server/power/stats/BatteryStatsImpl$BluetoothStatsRetrieverImpl;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/bluetooth/BluetoothManager;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl$MyHandler;)V
 PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->onChange()V
-PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->startObserving(Landroid/content/ContentResolver;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->onChange(ZLandroid/net/Uri;)V
 PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateBatteryChargedDelayMsLocked()V
 PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateBatteryChargingEnforceLevelLocked()V
 PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateConstants()V
 PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateKernelUidReadersThrottleTime(JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateUidRemoveDelay(J)V
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->-$$Nest$mgetOrCreateRxTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->-$$Nest$mgetOrCreateTxTimeCounters(Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;)[Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->-$$Nest$msetState(Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;IJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;I)V
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->createTimeMultiStateCounter()Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getIdleTimeCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getMonitoredRailChargeConsumedMaMs()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getPowerCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getRxTimeCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getScanTimeCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getSleepTimeCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->getTxTimeCounters()[Landroid/os/BatteryStats$LongCounter;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->readTimeMultiStateCounter(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->readTimeMultiStateCounters(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;I)[Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->writeSummaryToParcel(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->writeTimeMultiStateCounter(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->writeTimeMultiStateCounters(Landroid/os/Parcel;[Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->reset(J)V
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->writeSummaryToParcel(Landroid/os/Parcel;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;->writeTimeMultiStateCounter(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Counter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->addAtomic(I)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->getCountLocked(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->onTimeStopped(JJJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Counter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Counter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;->readSummaryFromParcel(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;->writeSummaryToParcel(Landroid/os/Parcel;J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->reset(JZ)Z
+HPLcom/android/server/power/stats/BatteryStatsImpl$Counter;->stepAtomic()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Counter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Ljava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->getSubTimer()Landroid/os/BatteryStats$Timer;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->startRunningLocked(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->stopRunningLocked(J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->getCurrentDurationMsLocked(J)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->getMaxDurationMsLocked(J)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->getTotalDurationMsLocked(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->reset(JZ)Z
+HPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->startRunningLocked(J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;
+HPLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->stopRunningLocked(J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;
+PLcom/android/server/power/stats/BatteryStatsImpl$DualTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Ljava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->getCurrentDurationMsLocked(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->getMaxDurationMsLocked(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->getTotalDurationMsLocked(J)J
+HPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->onTimeStarted(JJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->onTimeStopped(JJJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->reset(JZ)Z
 HPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->startRunningLocked(J)V
 HPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->stopRunningLocked(J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->batteryLevelChanged(I)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->batterySaverModeChanged(Z)V
-PLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->chargingStateChanged(I)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->deviceIdleModeStateChanged(I)V
-PLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->pluggedStateChanged(I)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->uidProcessStateChanged(II)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$FrameworkStatsLogger;->wakelockStateChanged(ILandroid/os/WorkSource$WorkChain;Ljava/lang/String;IIZ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$DurationTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl-IA;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;->clear()V
-PLcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;->finishAddingCpuLocked()V
-HPLcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;->getHistoryStepDetails()Landroid/os/BatteryStats$HistoryStepDetails;
+HPLcom/android/server/power/stats/BatteryStatsImpl$HistoryStepDetailsCalculatorImpl;->getHistoryStepDetails()Landroid/os/BatteryStats$HistoryStepDetails;+]Landroid/power/PowerStatsInternal;Lcom/android/server/powerstats/PowerStatsService$LocalService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->reset(ZJ)Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->-$$Nest$mreadSummaryFromParcelLocked(Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->-$$Nest$mwriteSummaryToParcelLocked(Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(J)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(JZ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->getCountLocked(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->onTimeStopped(JJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;->reset(JZ)Z
 HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->addCountLocked([JZ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->getCountsLocked(I)[J
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStopped(JJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;->reset(JZ)Z
 HSPLcom/android/server/power/stats/BatteryStatsImpl$MyHandler;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/os/Looper;)V
 PLcom/android/server/power/stats/BatteryStatsImpl$MyHandler;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;I)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;->add(Ljava/lang/String;Ljava/lang/Object;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;->getMap()Landroid/util/ArrayMap;
-HPLcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;->startObject(Ljava/lang/String;J)Ljava/lang/Object;
-HPLcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;->stopObject(Ljava/lang/String;J)Ljava/lang/Object;
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda3;->getAsLong()J
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda4;->getAsLong()J
+HSPLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;->getPowerStatsCollectionThrottlePeriod(Ljava/lang/String;)J
 HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->computeCurrentCountLocked()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->computeRunTimeLocked(JJ)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->endSample(J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->getUpdateVersion()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->setUpdateVersion(I)V
-PLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->update(JIJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->update(JJIJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;-><init>(Lcom/android/internal/os/Clock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->computeCurrentCountLocked()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->computeRunTimeLocked(JJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->computeCurrentCountLocked()I
+PLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->computeRunTimeLocked(JJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->onTimeStopped(JJJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;->update(JJIJ)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Ljava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;I)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->computeCurrentCountLocked()I
+HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->computeRunTimeLocked(JJ)J+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->detach()V
 PLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->isRunningLocked()Z
+HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->onTimeStopped(JJJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->refreshTimersLocked(JLjava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->setTimeout(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->startRunningLocked(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->stopRunningLocked(J)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->refreshTimersLocked(JLjava/util/ArrayList;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->reset(JZ)Z
+PLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->setMark(J)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->startRunningLocked(J)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;->stopRunningLocked(J)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;-><init>(Z)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->add(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->computeRealtime(JI)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->computeUptime(JI)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->getRealtime(J)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->getUptime(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->computeRealtime(J)J
+HPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->getRealtime(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->getUptime(J)J
 HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->init(JJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->isRunning()Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->readSummaryFromParcel(Landroid/os/Parcel;)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->setRunning(ZJJ)Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->writeSummaryToParcel(Landroid/os/Parcel;JJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;->-$$Nest$mwriteToParcel(Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IIJ)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/LongArrayMultiStateCounter;J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;->getCounter()Lcom/android/internal/os/LongArrayMultiStateCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;->getStateCount()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;->readFromParcel(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IIJ)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;->writeToParcel(Landroid/os/Parcel;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->remove(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->setRunning(JJZ)Z+]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;megamorphic_types]Ljava/util/Collection;Ljava/util/ArrayList;,Ljava/util/HashSet;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/HashMap$KeyIterator;
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeBase;->writeSummaryToParcel(Landroid/os/Parcel;JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->-$$Nest$mincrement(Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;JJ)V
 PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->-$$Nest$msetState(Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;IJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->-$$Nest$mupdate(Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;JJ)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->-$$Nest$mwriteToParcel(Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IJ)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
-HPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IJLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter-IA;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/LongMultiStateCounter;J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->getStateCount()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->readFromParcel(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IJ)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
-HPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->setState(IJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->update(JJ)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->writeToParcel(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;-><init>(Lcom/android/internal/os/Clock;ILcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->getCountLocked(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->onTimeStopped(JJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->reset(JZ)Z
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Timer;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Timer;->getCountLocked(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Timer;->getTimeSinceMarkLocked(J)J
+HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->getTotalTimeLocked(JI)J+]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Timer;->onTimeStarted(JJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl;I)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->instantiateObject()Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->instantiateObject()Ljava/lang/Object;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$2;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl;I)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$3;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl;I)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$3;->instantiateObject()Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid$3;->instantiateObject()Ljava/lang/Object;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTimeToNowLocked(J)J
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->startLaunchedLocked(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->startRunningLocked(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->stopLaunchedLocked(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->stopRunningLocked(J)V
+HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->reset(JZ)Z
+PLcom/android/server/power/stats/BatteryStatsImpl$Timer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;-><init>(I)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl;II)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->add(Ljava/lang/String;Ljava/lang/Object;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->cleanup(J)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->instantiateObject()Ljava/lang/Object;
+HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->startObject(JLjava/lang/String;)Ljava/lang/Object;
+HPLcom/android/server/power/stats/BatteryStatsImpl$Uid$1;->stopObject(JLjava/lang/String;)Ljava/lang/Object;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->getLaunches(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->getStarts(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStopped(JJJ)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->newServiceStatsLocked()Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;I)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fgetmMobileRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fgetmUidEnergyConsumerStats(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/internal/power/EnergyConsumerStats;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fgetmWifiRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmMobileRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmUidEnergyConsumerStats(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/internal/power/EnergyConsumerStats;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmWifiRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mgetProcStateScreenOffTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mgetProcStateTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->noteWakeupAlarmLocked(Ljava/lang/String;)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;->onTimeStopped(JJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->countExcessivePowers()I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->detach()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->getForegroundTime(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->getNumAnrs(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->getNumCrashes(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->getStarts(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->getSystemTime(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->getUserTime(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->onTimeStarted(JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;->onTimeStopped(JJJ)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;-><init>(I)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;->getHandle()I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;->getSensorBackgroundTime()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Landroid/os/BatteryStats$Timer;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;-><clinit>()V
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;IJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->createAggregatedPartialWakelockTimerLocked()Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->createAudioTurnedOnTimerLocked()Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->createForegroundActivityTimerLocked()Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->createForegroundServiceTimerLocked()Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->createVibratorOnTimerLocked()Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->ensureMultiStateCounters(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getBluetoothControllerActivity()Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuActiveTimeCounter()Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
+HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->detachFromTimeBase()V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->ensureNetworkActivityLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getAggregatedPartialWakelockTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getAudioTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getBluetoothScanTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCameraTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuActiveTimeCounter()Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;+]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuFreqTimes(I)[J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuFreqTimes([JI)Z
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getDeferredJobsLineLocked(Ljava/lang/StringBuilder;I)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getForegroundActivityTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getForegroundServiceTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getFullWifiLockTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getJobCompletionStats()Landroid/util/ArrayMap;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getJobStats()Landroid/util/ArrayMap;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getMobileRadioActiveCount(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getMobileRadioActiveTime(I)J
 HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getMobileRadioActiveTimeCounter()Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getOrCreateEnergyConsumerStatsIfSupportedLocked()Lcom/android/internal/power/EnergyConsumerStats;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getMobileRadioActiveTimeInProcessState(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getMobileRadioApWakeupCount(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getMulticastWakelockStats()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getNetworkActivityBytes(II)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getNetworkActivityPackets(II)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getOrCreateWifiControllerActivityLocked()Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getPackageStats()Landroid/util/ArrayMap;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getPackageStatsLocked(Ljava/lang/String;)Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getPidStatsLocked(I)Landroid/os/BatteryStats$Uid$Pid;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getProcStateScreenOffTimeCounter(J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getProcStateTimeCounter(J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getPidStats()Landroid/util/SparseArray;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getProcessStateTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getProcessStateTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getProcessStats()Landroid/util/ArrayMap;
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getProcessStatsLocked(Ljava/lang/String;)Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes(I)[J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes([JI)Z
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getSensorStats()Landroid/util/SparseArray;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getSensorTimerLocked(IZ)Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getServiceStatsLocked(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getSyncStats()Landroid/util/ArrayMap;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getSystemCpuTimeUs(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getUid()I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getUserActivityCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getUserCpuTimeUs(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getVibratorOnTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getVideoTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWakelockStats()Landroid/util/ArrayMap;
 HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWakelockTimerLocked(Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;I)Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiControllerActivity()Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->makeProcessState(ILandroid/os/Parcel;)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->maybeScheduleExternalStatsSync(II)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiBatchedScanTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiMulticastTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiRadioApWakeupCount(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiRunningTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiScanActualTime(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiScanBackgroundCount(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiScanBackgroundTime(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiScanCount(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiScanTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->hasUserActivity()Z
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->initUserActivityLocked()V
+HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->makeProcessState(I)V
 PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteActivityPausedLocked(J)V
 PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteActivityResumedLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteAudioTurnedOffLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteAudioTurnedOnLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteForegroundServicePausedLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteForegroundServiceResumedLocked(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStartJobLocked(Ljava/lang/String;J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStartSensor(IJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStartWakeLocked(ILjava/lang/String;IJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopJobLocked(Ljava/lang/String;JI)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopSensor(IJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopWakeLocked(ILjava/lang/String;IJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteVibratorOffLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteVibratorOnLocked(JJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->readJobCompletionsFromParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->readWakeSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateOnBatteryBgTimeBase(JJ)Z
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateOnBatteryScreenOffBgTimeBase(JJ)Z
-HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(IJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->writeJobCompletionsToParcelLocked(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;-><init>()V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteNetworkActivityLocked(IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteUserActivityLocked(I)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiScanStartedLocked(J)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiScanStoppedLocked(J)V
+PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->nullIfAllZeros(Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;I)[J
+HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->reset(JJI)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
+PLcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;->exists(I)Z
+PLcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;->refreshUserIds()V
 PLcom/android/server/power/stats/BatteryStatsImpl;->$r8$lambda$4oR0MyxxkPH0JSQXqVxAZgbHyhc(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/internal/os/PowerStats;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->$r8$lambda$55y1ivO2sjC-T6ZAKfbd9ZmL96Q(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmAudioTurnedOnTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/util/ArrayList;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmCallback(Lcom/android/server/power/stats/BatteryStatsImpl;)Lcom/android/server/power/stats/BatteryStatsImpl$BatteryCallback;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmDeferSetCharging(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/lang/Runnable;
-HPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmExternalSync(Lcom/android/server/power/stats/BatteryStatsImpl;)Lcom/android/server/power/stats/BatteryStatsImpl$ExternalStatsSync;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmFullTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/util/ArrayList;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmFullWifiLockTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/util/ArrayList;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmHistory(Lcom/android/server/power/stats/BatteryStatsImpl;)Lcom/android/internal/os/BatteryStatsHistory;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmPlatformIdleStateCallback(Lcom/android/server/power/stats/BatteryStatsImpl;)Lcom/android/server/power/stats/BatteryStatsImpl$PlatformIdleStateCallback;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmPowerStatsCollectorEnabled(Lcom/android/server/power/stats/BatteryStatsImpl;)Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmSensorTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Landroid/util/SparseArray;
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmSystemReady(Lcom/android/server/power/stats/BatteryStatsImpl;)Z
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmUidStats(Lcom/android/server/power/stats/BatteryStatsImpl;)Landroid/util/SparseArray;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmWifiMulticastTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/util/ArrayList;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmWifiRunningTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/util/ArrayList;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmWifiScanTimers(Lcom/android/server/power/stats/BatteryStatsImpl;)Ljava/util/ArrayList;
-HPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mgetPowerManagerWakeLockLevel(Lcom/android/server/power/stats/BatteryStatsImpl;I)I
-HPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mmapIsolatedUid(Lcom/android/server/power/stats/BatteryStatsImpl;I)I
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mnoteUsbConnectionStateLocked(Lcom/android/server/power/stats/BatteryStatsImpl;ZJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mrequestImmediateCpuUpdate(Lcom/android/server/power/stats/BatteryStatsImpl;)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mtrackPerProcStateCpuTimes(Lcom/android/server/power/stats/BatteryStatsImpl;)Z
-HPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$sfgetMAX_WAKELOCKS_PER_UID()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$smdetachIfNotNull(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$smisActiveRadioPowerState(I)Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mretrieveBluetoothScanTimesLocked(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BluetoothPowerStatsCollector$$ExternalSyntheticLambda0;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mretrieveWifiScanTimesLocked(Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/WifiPowerStatsCollector$$ExternalSyntheticLambda1;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$smdetachIfNotNull(Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;-><clinit>()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;Lcom/android/internal/os/Clock;Lcom/android/internal/os/MonotonicClock;Ljava/io/File;Landroid/os/Handler;Lcom/android/server/power/stats/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/server/power/stats/BatteryStatsImpl$EnergyStatsRetriever;Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/server/power/stats/PowerStatsUidResolver;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryStatsConfig;Lcom/android/internal/os/Clock;Lcom/android/internal/os/MonotonicClock;Ljava/io/File;Landroid/os/Handler;Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService$3;Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/server/power/stats/PowerStatsUidResolver;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->access$000()Z
 PLcom/android/server/power/stats/BatteryStatsImpl;->access$100()Z
 PLcom/android/server/power/stats/BatteryStatsImpl;->access$200()Z
-PLcom/android/server/power/stats/BatteryStatsImpl;->adjustStartClockTime(J)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->aggregateLastWakeupUptimeLocked(JJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->clearPendingRemovedUidsLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->computeRealtime(JI)J
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->computeUptime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->addCpuStatsLocked(IIIIIIII)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->clearPendingRemovedUidsLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->collectPowerStatsSamples()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeBatteryRealtime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeBatteryScreenOffRealtime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeBatteryScreenOffUptime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeBatteryTimeRemaining(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeBatteryUptime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeChargeTimeRemaining(J)J
+HPLcom/android/server/power/stats/BatteryStatsImpl;->computeDelta(Landroid/net/NetworkStats;Landroid/net/NetworkStats;)Ljava/util/List;+]Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeRealtime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->computeUptime(JI)J
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->detachIfNotNull(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->detachIfNotNull([Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->detachIfNotNull([[Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->ensureKernelSingleUidTimeReaderLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->dump(Landroid/content/Context;Ljava/io/PrintWriter;IIJLandroid/os/BatteryStats$BatteryStatsDumpHelper;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->dumpConstantsLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->dumpEnergyConsumerStatsLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->evaluateOverallScreenBrightnessBinLocked()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->fillLowPowerStats()V
-PLcom/android/server/power/stats/BatteryStatsImpl;->finishAddingCpuStatsLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getAvailableUidStatsLocked(I)Lcom/android/server/power/stats/BatteryStatsImpl$Uid;
-HPLcom/android/server/power/stats/BatteryStatsImpl;->getBatteryUptimeLocked(J)J
-PLcom/android/server/power/stats/BatteryStatsImpl;->getBatteryVoltageMvLocked()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeAmountScreenDozeSinceCharge()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeAmountScreenOffSinceCharge()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeAmountScreenOnSinceCharge()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->excludeFromStringArray(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
+PLcom/android/server/power/stats/BatteryStatsImpl;->fillLowPowerStats()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->getActiveRadioDurationMs(IIIJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getActiveRxRadioDurationMs(IIJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getActiveTxRadioDurationMs(IIIJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getBatteryUptime(J)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getBluetoothScanTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getCpuScalingPolicies()Lcom/android/internal/os/CpuScalingPolicies;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getCurrentDailyStartTime()J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getCustomEnergyConsumerNames()[Ljava/lang/String;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDailyChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDailyDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDailyItemLocked(I)Landroid/os/BatteryStats$DailyItem;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDailyPackageChanges()Ljava/util/ArrayList;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDeviceIdleModeCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDeviceIdleModeTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDeviceIdlingCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDeviceIdlingTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeAmountScreenDozeSinceCharge()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeAmountScreenOffSinceCharge()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeAmountScreenOnSinceCharge()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
 PLcom/android/server/power/stats/BatteryStatsImpl;->getDisplayCount()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getHighDischargeAmountSinceCharge()I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getHistory()Lcom/android/internal/os/BatteryStatsHistory;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getIsOnBattery()Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getKernelWakelockTimerLocked(Ljava/lang/String;)Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getLowDischargeAmountSinceCharge()I
-PLcom/android/server/power/stats/BatteryStatsImpl;->getPowerManagerWakeLockLevel(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDisplayScreenBrightnessTime(IIJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDisplayScreenDozeTime(IJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getDisplayScreenOnTime(IJ)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getEndPlatformVersion()Ljava/lang/String;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getEstimatedBatteryCapacity()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getExternalStatsCollectionRateLimitMs()J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getGlobalWifiRunningTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getGpsBatteryDrainMaMs()J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getGpsSignalQualityTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHighDischargeAmountSinceCharge()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryStringPoolBytes()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryStringPoolSize()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTagPoolString(I)Ljava/lang/String;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTagPoolUid(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTotalSize()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryUsedSize()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getInteractiveTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getIsOnBattery()Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->getKernelMemoryStats()Landroid/util/LongSparseArray;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getKernelWakelockStats()Ljava/util/Map;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getLearnedBatteryCapacity()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getLongestDeviceIdleModeTime(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getLowDischargeAmountSinceCharge()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getMaxLearnedBatteryCapacity()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getMinLearnedBatteryCapacity()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getMobileRadioActiveAdjustedTime(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getMobileRadioActiveCount(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getMobileRadioActiveTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getMobileRadioActiveUnknownTime(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getNetworkActivityBytes(II)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getNetworkActivityPackets(II)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getNextMaxDailyDeadline()J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getNextMinDailyDeadline()J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getNumConnectivityChange(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getParcelVersion()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPhoneDataConnectionCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPhoneDataConnectionTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPhoneOnTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPhoneSignalScanningTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPhoneSignalStrengthCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPhoneSignalStrengthTime(IJI)J
+HPLcom/android/server/power/stats/BatteryStatsImpl;->getPowerManagerWakeLockLevel(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPowerSaveModeEnabledTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getPowerStatsCollector(I)Lcom/android/server/power/stats/PowerStatsCollector;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getRpmStats()Ljava/util/Map;
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->getRpmTimerLocked(Ljava/lang/String;)Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;
-HPLcom/android/server/power/stats/BatteryStatsImpl;->getServiceStatsLocked(ILjava/lang/String;Ljava/lang/String;JJ)Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->getStartClockTime()J
-PLcom/android/server/power/stats/BatteryStatsImpl;->getUidStatsLocked(I)Lcom/android/server/power/stats/BatteryStatsImpl$Uid;
-HPLcom/android/server/power/stats/BatteryStatsImpl;->getUidStatsLocked(IJJ)Lcom/android/server/power/stats/BatteryStatsImpl$Uid;
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->informThatAllExternalStatsAreFlushed()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->initDischarge(J)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->getScreenBrightnessTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getScreenDozeTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getScreenOffRpmStats()Ljava/util/Map;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getScreenOnCount(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getScreenOnTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getStartClockTime()J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getStartCount()I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getStartPlatformVersion()Ljava/lang/String;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getUahDischarge(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getUahDischargeDeepDoze(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getUahDischargeLightDoze(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getUahDischargeScreenDoze(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getUahDischargeScreenOff(I)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getUidStats()Landroid/util/SparseArray;
+HPLcom/android/server/power/stats/BatteryStatsImpl;->getUidStatsLocked(IJJ)Lcom/android/server/power/stats/BatteryStatsImpl$Uid;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWakeupReasonStats()Ljava/util/Map;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiActiveTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiMulticastWakelockCount(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiMulticastWakelockTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiOnTime(JI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiSignalStrengthCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiSignalStrengthTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiStateCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiStateTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiSupplStateCount(II)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->getWifiSupplStateTime(IJI)J
+PLcom/android/server/power/stats/BatteryStatsImpl;->incrementPerRatDataLocked(Landroid/telephony/ModemActivityInfo;J)Lcom/android/server/power/stats/BatteryStatsImpl$RxTxConsumption;
+PLcom/android/server/power/stats/BatteryStatsImpl;->initActiveHistoryEventsLocked(JJ)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->initDischarge()V
 PLcom/android/server/power/stats/BatteryStatsImpl;->initEnergyConsumerStatsLocked([Z[Ljava/lang/String;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->initKernelStatsReaders()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->initPowerProfile()V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->initTimersAndCounters()V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->initTimes(JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->isActiveRadioPowerState(I)Z
-PLcom/android/server/power/stats/BatteryStatsImpl;->isCharging()Z
-HPLcom/android/server/power/stats/BatteryStatsImpl;->isOnBattery()Z
-PLcom/android/server/power/stats/BatteryStatsImpl;->isOnBattery(II)Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->isOnBatteryLocked()Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->isOnBatteryScreenOffLocked()Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$new$10()V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->mapIsolatedUid(I)I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->mapUid(I)I
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->markPartialTimersAsEligible()V
-PLcom/android/server/power/stats/BatteryStatsImpl;->maybeUpdateOverallScreenBrightness(IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteActivityPausedLocked(IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteActivityResumedLocked(IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteAlarmFinishLocked(Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteAlarmStartLocked(Ljava/lang/String;Landroid/os/WorkSource;IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->isMobileRadioEnergyConsumerSupportedLocked()Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->isProcessStateDataAvailable()Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->iterateBatteryStatsHistory(JJ)Lcom/android/internal/os/BatteryStatsHistoryIterator;
+HPLcom/android/server/power/stats/BatteryStatsImpl;->mapUid(I)I
+PLcom/android/server/power/stats/BatteryStatsImpl;->markPartialTimersAsEligible()V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->maybeUpdateOverallScreenBrightness(IJJ)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->noteAlarmStartOrFinishLocked(ILjava/lang/String;Landroid/os/WorkSource;IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteAudioOffLocked(IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteAudioOnLocked(IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteBluetoothScanStartedLocked(Landroid/os/WorkSource$WorkChain;IZJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteBluetoothScanStoppedLocked(Landroid/os/WorkSource$WorkChain;IZJJ)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->noteChangeWakelockFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteCurrentTimeChangedLocked(JJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteEventLocked(ILjava/lang/String;IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteInteractiveLocked(ZJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteJobFinishLocked(Ljava/lang/String;IIJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteJobStartLocked(Ljava/lang/String;IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->notePhoneSignalStrengthLocked(ILandroid/util/SparseIntArray;JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteDeviceIdleModeLocked(IILjava/lang/String;JJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteJobFinishLocked(IILjava/lang/String;JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteJobsDeferredLocked(IIJJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteLongPartialWakeLockFinishInternal(ILjava/lang/String;Ljava/lang/String;JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteLongPartialWakeLockStartInternal(ILjava/lang/String;Ljava/lang/String;JJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteNetworkInterfaceForTransports(Ljava/lang/String;[I)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->notePhoneOnLocked(JJ)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->notePhoneSignalStrengthLocked(Landroid/telephony/SignalStrength;JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->notePhoneStateLocked(IIJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->notePowerSaveModeLockedInit(ZJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteProcessAnrLocked(Ljava/lang/String;IJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteProcessDiedLocked(II)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteProcessFinishLocked(Ljava/lang/String;IJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteProcessStartLocked(Ljava/lang/String;IJJ)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->noteResetBluetoothScanLocked(JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteScreenBrightnessLocked(IIJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteScreenStateLocked(IIJJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteStartSensorLocked(IIJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteStopSensorLocked(IIJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V
-HPLcom/android/server/power/stats/BatteryStatsImpl;->noteUidProcessStateLocked(IIJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteUsbConnectionStateLocked(ZJJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteScreenBrightnessLocked(IIJJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteScreenStateLocked(IIIJJJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Map;Ljava/util/HashMap;
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Map;Ljava/util/HashMap;
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteUidProcessStateLocked(IIJJ)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteUsbConnectionStateLocked(JJZ)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->noteUserActivityLocked(IIJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteVibratorOffLocked(IJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteVibratorOnLocked(IJJJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->noteWakeupReasonLocked(JJLjava/lang/String;)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->noteWakupAlarmLocked(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiOnLocked(JJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiSupplicantStateChangedLocked(IZJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->onSystemReady()V
-PLcom/android/server/power/stats/BatteryStatsImpl;->postBatteryNeedsCpuUpdateMsg()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->pullPendingStateUpdatesLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiRadioPowerState(IIJJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiRssiChangedLocked(IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiScanStartedLocked(IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiScanStoppedLocked(IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->onSystemReady(Landroid/content/Context;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->prepareForDumpLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->pullPendingStateUpdatesLocked()V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyItemTagDetailsLocked(Lcom/android/modules/utils/TypedXmlPullParser;Landroid/os/BatteryStats$DailyItem;ZLjava/lang/String;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyItemTagLocked(Lcom/android/modules/utils/TypedXmlPullParser;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyItemsLocked(Lcom/android/modules/utils/TypedXmlPullParser;)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyStatsLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuActiveTimesLocked(Z)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuClusterTimesLocked(ZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuFreqTimesLocked(Ljava/util/ArrayList;ZZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuTimesLocked(Ljava/util/ArrayList;Landroid/util/SparseLongArray;Z)V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->readLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->readMobileNetworkStatsLocked(Landroid/app/usage/NetworkStatsManager;)Landroid/net/NetworkStats;
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->recordDailyStatsIfNeededLocked(ZJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->recordHistoryEventLocked(JJILjava/lang/String;I)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->recordPowerStats(Lcom/android/internal/os/PowerStats;)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->registerUsbStateReceiver(Landroid/content/Context;)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->reportChangesToStatsLog(III)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->requestImmediateCpuUpdate()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->saveBatteryUsageStatsOnReset(Lcom/android/server/power/stats/BatteryUsageStatsProvider;Lcom/android/server/power/stats/PowerStatsStore;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->readWifiNetworkStatsLocked(Landroid/app/usage/NetworkStatsManager;)Landroid/net/NetworkStats;
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->recordDailyStatsIfNeededLocked(JZ)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->recordDailyStatsLocked()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->resetAllStatsLocked(IJJ)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->resetIfNotNull(Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;J)Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->resetIfNotNull([Lcom/android/server/power/stats/BatteryStatsImpl$TimeBaseObs;J)Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->scheduleNextResetWhilePluggedInCheck()V
 PLcom/android/server/power/stats/BatteryStatsImpl;->schedulePowerStatsSampleCollection()V
-PLcom/android/server/power/stats/BatteryStatsImpl;->scheduleSyncExternalStatsLocked(Ljava/lang/String;I)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->scheduleSyncExternalStatsLocked(ILjava/lang/String;)V
 HPLcom/android/server/power/stats/BatteryStatsImpl;->setBatteryStateLocked(IIIIIIIIJJJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->setCallback(Lcom/android/server/power/stats/BatteryStatsImpl$BatteryCallback;)V
 PLcom/android/server/power/stats/BatteryStatsImpl;->setChargingLocked(Z)Z
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->setDisplayCountLocked(I)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->setExternalStatsSyncLocked(Lcom/android/server/power/stats/BatteryStatsImpl$ExternalStatsSync;)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->setPowerStatsCollectorEnabled(Z)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->setRadioScanningTimeoutLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->startAddingCpuStatsLocked()Z
+PLcom/android/server/power/stats/BatteryStatsImpl;->setPowerStatsCollectorEnabled(IZ)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->startAddingCpuStatsLocked()Z
 PLcom/android/server/power/stats/BatteryStatsImpl;->systemServicesReady(Landroid/content/Context;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->trackPerProcStateCpuTimes()Z
 PLcom/android/server/power/stats/BatteryStatsImpl;->updateAllPhoneStateLocked(IIIJJ)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->updateBluetoothStateLocked(Landroid/bluetooth/BluetoothActivityEnergyInfo;JJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuTimeLocked(ZZ[J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuTimesForAllUids()V
+PLcom/android/server/power/stats/BatteryStatsImpl;->updateCellularBatteryStats(Landroid/telephony/ModemActivityInfo;Ljava/util/List;JJJ)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateClusterSpeedTimes(Landroid/util/SparseLongArray;ZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/internal/os/CpuScalingPolicies;]Lcom/android/internal/os/KernelCpuSpeedReader;Lcom/android/internal/os/KernelCpuSpeedReader;
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuTimeLocked(ZZ[J)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuTimesForAllUids()V
 HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateDailyDeadlineLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateKernelMemoryBandwidthLocked(J)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateKernelWakelocksLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->updateProcStateCpuTimesLocked(IJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateRailStatsLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateRpmStatsLocked(J)V
-PLcom/android/server/power/stats/BatteryStatsImpl;->updateTimeBasesLocked(ZIJJ)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeAsyncLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeHistoryLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeParcelToFileLocked(Landroid/os/Parcel;Landroid/util/AtomicFile;)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeStatsLocked()V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V
-HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeSyncLocked()V
-HSPLcom/android/server/power/stats/BatteryUsageStatsProvider;-><init>(Landroid/content/Context;Lcom/android/server/power/stats/PowerStatsExporter;Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/server/power/stats/PowerStatsStore;Lcom/android/internal/os/Clock;)V
-PLcom/android/server/power/stats/BatteryUsageStatsProvider;->setPowerStatsExporterEnabled(Z)V
-HSPLcom/android/server/power/stats/CpuAggregatedPowerStatsProcessor;-><clinit>()V
-HSPLcom/android/server/power/stats/CpuAggregatedPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/CpuScalingPolicies;)V
-HSPLcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-PLcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/stats/CpuPowerStatsCollector;)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda2;->processUidStats(I[J)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;-><init>()V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->addDeviceSectionCpuTimeByCluster(I)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->addDeviceSectionCpuTimeByScalingStep(I)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->addUidSectionCpuTimeByPowerBracket([I)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->getCpuPowerBracketCount()I
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->getCpuScalingStepCount()I
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->getScalingStepToPowerBracketMap()[I
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->setTimeByScalingStep([JIJ)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->setUidTimeByPowerBracket([JIJ)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->toExtras(Landroid/os/PersistableBundle;)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$CpuStatsArrayLayout;->updatePowerBracketCount()V
-HSPLcom/android/server/power/stats/CpuPowerStatsCollector$KernelCpuStatsReader;-><init>()V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$UidStats;-><init>()V
-PLcom/android/server/power/stats/CpuPowerStatsCollector$UidStats;-><init>(Lcom/android/server/power/stats/CpuPowerStatsCollector$UidStats-IA;)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->$r8$lambda$TmdX3HefCA-y-kG8N7EsBWpyOqo()Landroid/power/PowerStatsInternal;
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->$r8$lambda$l7KbxBakyCEoVp9gpEIBpVgzupw(Lcom/android/server/power/stats/CpuPowerStatsCollector;I[J)V
-HSPLcom/android/server/power/stats/CpuPowerStatsCollector;-><init>(Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/internal/os/PowerProfile;Landroid/os/Handler;Lcom/android/server/power/stats/CpuPowerStatsCollector$KernelCpuStatsReader;Lcom/android/server/power/stats/PowerStatsUidResolver;Ljava/util/function/Supplier;Ljava/util/function/IntSupplier;JLcom/android/internal/os/Clock;II)V
-HSPLcom/android/server/power/stats/CpuPowerStatsCollector;-><init>(Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/internal/os/PowerProfile;Lcom/android/server/power/stats/PowerStatsUidResolver;Ljava/util/function/IntSupplier;Landroid/os/Handler;J)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateDischargeScreenLevelsLocked(II)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->updateKernelMemoryBandwidthLocked(J)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateKernelWakelocksLocked(J)V+]Ljava/util/HashMap;Lcom/android/server/power/stats/KernelWakelockStats;,Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;
+PLcom/android/server/power/stats/BatteryStatsImpl;->updateRailStatsLocked()V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateRpmStatsLocked(J)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateTimeBasesLocked(IJJZ)V+]Landroid/os/IBatteryPropertiesRegistrar;Lcom/android/server/BatteryService$BatteryPropertiesRegistrar;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/stats/BatteryStatsImpl;->updateWifiBatteryStats(Landroid/os/connectivity/WifiActivityEnergyInfo;Ljava/util/List;JJJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/BatteryStatsImpl;->updateWifiState(Landroid/os/connectivity/WifiActivityEnergyInfo;JJJLandroid/app/usage/NetworkStatsManager;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->writeAsyncLocked()V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeDailyItemsLocked(Lcom/android/modules/utils/TypedXmlSerializer;)V
+HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeDailyLevelSteps(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Ljava/lang/StringBuilder;)V
+PLcom/android/server/power/stats/BatteryStatsImpl;->writeParcelToFileLocked(Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+HPLcom/android/server/power/stats/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/internal/os/MonotonicClock;Lcom/android/internal/os/MonotonicClock;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator;,Ljava/util/HashMap$EntryIterator;]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;,Ljava/util/HashMap$Node;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;,Ljava/util/HashMap$EntrySet;
+PLcom/android/server/power/stats/BatteryStatsImpl;->writeSyncLocked()V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider$$ExternalSyntheticLambda0;-><init>(Landroid/os/BatteryUsageStats$Builder;)V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/BatteryUsageStatsProvider;Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider$$ExternalSyntheticLambda1;->run()V
+HSPLcom/android/server/power/stats/BatteryUsageStatsProvider;-><init>(Landroid/content/Context;Lcom/android/server/power/stats/processor/MultiStatePowerAttributor;Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/server/power/stats/PowerStatsStore;ILcom/android/internal/os/Clock;Lcom/android/internal/os/MonotonicClock;)V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider;->accumulateBatteryUsageStats(Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider;->getBatteryUsageStats(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/os/BatteryUsageStatsQuery;J)Landroid/os/BatteryUsageStats;
+PLcom/android/server/power/stats/BatteryUsageStatsProvider;->getPowerCalculators()Ljava/util/List;
+PLcom/android/server/power/stats/BatteryUsageStatsProvider;->loadAccumulatedBatteryUsageStats()Lcom/android/server/power/stats/BatteryUsageStatsProvider$AccumulatedBatteryUsageStats;
+PLcom/android/server/power/stats/BatteryUsageStatsProvider;->populateGeneralInfo(Landroid/os/BatteryUsageStats$Builder;Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BatteryUsageStatsProvider;->updateAccumulatedBatteryUsageStats(Lcom/android/server/power/stats/BatteryUsageStatsProvider$AccumulatedBatteryUsageStats;Lcom/android/server/power/stats/BatteryStatsImpl;)V
+PLcom/android/server/power/stats/BluetoothPowerStatsCollector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/BluetoothPowerStatsCollector;)V
+PLcom/android/server/power/stats/BluetoothPowerStatsCollector$1;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/power/stats/BluetoothPowerStatsCollector$1;->onBluetoothActivityEnergyInfoAvailable(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+PLcom/android/server/power/stats/BluetoothPowerStatsCollector$1;->onBluetoothActivityEnergyInfoError(I)V
+HSPLcom/android/server/power/stats/BluetoothPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+HPLcom/android/server/power/stats/BluetoothPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;
+PLcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/CpuPowerStatsCollector;)V
+HPLcom/android/server/power/stats/CpuPowerStatsCollector$$ExternalSyntheticLambda0;->processUidStats(I[J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HSPLcom/android/server/power/stats/CpuPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
 HPLcom/android/server/power/stats/CpuPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->ensureInitialized()Z
+PLcom/android/server/power/stats/CpuPowerStatsCollector;->ensureInitialized$1()Z
+PLcom/android/server/power/stats/CpuPowerStatsCollector;->getCpuPowerBracketDescription(I)Ljava/lang/String;
 PLcom/android/server/power/stats/CpuPowerStatsCollector;->initDefaultPowerBrackets(I)[I
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->initPowerBrackets()[I
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->lambda$new$0()Landroid/power/PowerStatsInternal;
 PLcom/android/server/power/stats/CpuPowerStatsCollector;->mapScalingStepsToDefaultBrackets([I[DI)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->processUidStats(I[J)V
-PLcom/android/server/power/stats/CpuPowerStatsCollector;->readCpuEnergyConsumerIds()V
+HSPLcom/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector;-><clinit>()V
+HSPLcom/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+PLcom/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector;->ensureInitialized()V
+PLcom/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector;->forceSchedule()Z
+PLcom/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector;->schedule()Z
+HSPLcom/android/server/power/stats/EnergyConsumerPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;ILjava/lang/String;IILcom/android/server/power/stats/format/EnergyConsumerPowerStatsLayout;)V
+PLcom/android/server/power/stats/EnergyConsumerPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;
 HSPLcom/android/server/power/stats/KernelWakelockReader;-><clinit>()V
 HSPLcom/android/server/power/stats/KernelWakelockReader;-><init>()V
-HSPLcom/android/server/power/stats/KernelWakelockReader;->getWakelockStatsFromSystemSuspend(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
-HSPLcom/android/server/power/stats/KernelWakelockReader;->readKernelWakelockStats(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
-HSPLcom/android/server/power/stats/KernelWakelockReader;->removeOldStats(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
-HSPLcom/android/server/power/stats/KernelWakelockReader;->updateVersion(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
-HSPLcom/android/server/power/stats/KernelWakelockReader;->updateWakelockStats([Landroid/system/suspend/internal/WakeLockInfo;Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
-HSPLcom/android/server/power/stats/KernelWakelockReader;->waitForSuspendControlService()Landroid/system/suspend/internal/ISuspendControlServiceInternal;
-HSPLcom/android/server/power/stats/KernelWakelockStats$Entry;-><init>(IJJI)V
+PLcom/android/server/power/stats/KernelWakelockReader;->getWakelockStatsFromSystemSuspend(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
+PLcom/android/server/power/stats/KernelWakelockReader;->readKernelWakelockStats(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
+HPLcom/android/server/power/stats/KernelWakelockReader;->removeOldStats(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;+]Ljava/util/Collection;Ljava/util/HashMap$Values;]Ljava/util/HashMap;Lcom/android/server/power/stats/KernelWakelockStats;]Ljava/util/Iterator;Ljava/util/HashMap$ValueIterator;
+PLcom/android/server/power/stats/KernelWakelockReader;->updateVersion(Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;
+HPLcom/android/server/power/stats/KernelWakelockReader;->updateWakelockStats([Landroid/system/suspend/internal/WakeLockInfo;Lcom/android/server/power/stats/KernelWakelockStats;)Lcom/android/server/power/stats/KernelWakelockStats;+]Ljava/util/HashMap;Lcom/android/server/power/stats/KernelWakelockStats;
+PLcom/android/server/power/stats/KernelWakelockStats$Entry;-><init>(IIJJ)V
 HSPLcom/android/server/power/stats/KernelWakelockStats;-><init>()V
-HSPLcom/android/server/power/stats/PowerStatsAggregator;-><init>(Lcom/android/server/power/stats/AggregatedPowerStatsConfig;Lcom/android/internal/os/BatteryStatsHistory;)V
-HSPLcom/android/server/power/stats/PowerStatsCollector$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/PowerStatsCollector;)V
-PLcom/android/server/power/stats/PowerStatsCollector$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;-><init>()V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->addDeviceSection(I)I
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->addDeviceSectionEnergyConsumers(I)V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->addDeviceSectionPowerEstimate()V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->addDeviceSectionUsageDuration()V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->addUidSection(I)I
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->addUidSectionPowerEstimate()V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->getDeviceStatsArrayLength()I
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->getUidStatsArrayLength()I
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->putIntArray(Landroid/os/PersistableBundle;Ljava/lang/String;[I)V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->setUsageDuration([JJ)V
-PLcom/android/server/power/stats/PowerStatsCollector$StatsArrayLayout;->toExtras(Landroid/os/PersistableBundle;)V
-HSPLcom/android/server/power/stats/PowerStatsCollector;-><init>(Landroid/os/Handler;JLcom/android/internal/os/Clock;)V
+PLcom/android/server/power/stats/MobileRadioPowerStatsCollector$1;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/power/stats/MobileRadioPowerStatsCollector$1;->onError(Ljava/lang/Throwable;)V
+PLcom/android/server/power/stats/MobileRadioPowerStatsCollector$1;->onResult(Ljava/lang/Object;)V
+HSPLcom/android/server/power/stats/MobileRadioPowerStatsCollector;-><clinit>()V
+HSPLcom/android/server/power/stats/MobileRadioPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda5;)V
+HPLcom/android/server/power/stats/MobileRadioPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;
+HSPLcom/android/server/power/stats/PowerStatsCollector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/PowerStatsCollector;)V
+PLcom/android/server/power/stats/PowerStatsCollector$$ExternalSyntheticLambda0;->run()V
+HSPLcom/android/server/power/stats/PowerStatsCollector$1;-><init>(Lcom/android/server/power/stats/PowerStatsCollector;)V
+PLcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyHelper;-><init>(Lcom/android/server/power/stats/PowerStatsCollector;Lcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyRetrieverImpl;I)V
+PLcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyHelper;->collectConsumedEnergy(Lcom/android/internal/os/PowerStats;Lcom/android/server/power/stats/format/PowerStatsLayout;)Z
+PLcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyHelper;->ensureInitialized()V
+PLcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyHelper;->getEnergyConsumerCount()I
+PLcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyRetrieverImpl;-><init>(Landroid/power/PowerStatsInternal;Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector$$ExternalSyntheticLambda2;)V
+PLcom/android/server/power/stats/PowerStatsCollector$ConsumedEnergyRetrieverImpl;->getEnergyConsumerIds(I)[I
+HSPLcom/android/server/power/stats/PowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$MyHandler;JLcom/android/server/power/stats/PowerStatsUidResolver;Lcom/android/internal/os/Clock;)V
 HSPLcom/android/server/power/stats/PowerStatsCollector;->addConsumer(Ljava/util/function/Consumer;)V
-PLcom/android/server/power/stats/PowerStatsCollector;->collectAndDeliverStats()V
 PLcom/android/server/power/stats/PowerStatsCollector;->forceSchedule()Z
-PLcom/android/server/power/stats/PowerStatsCollector;->isEnabled()Z
-PLcom/android/server/power/stats/PowerStatsCollector;->schedule()Z
-PLcom/android/server/power/stats/PowerStatsCollector;->setEnabled(Z)V
-HSPLcom/android/server/power/stats/PowerStatsExporter;-><clinit>()V
-HSPLcom/android/server/power/stats/PowerStatsExporter;-><init>(Lcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/power/stats/PowerStatsAggregator;)V
-HSPLcom/android/server/power/stats/PowerStatsExporter;-><init>(Lcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/power/stats/PowerStatsAggregator;J)V
-PLcom/android/server/power/stats/PowerStatsScheduler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/PowerStatsScheduler;)V
+HPLcom/android/server/power/stats/PowerStatsCollector;->schedule()Z
+PLcom/android/server/power/stats/PowerStatsScheduler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/PowerStatsScheduler;I)V
 PLcom/android/server/power/stats/PowerStatsScheduler$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/power/stats/PowerStatsScheduler$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/power/stats/PowerStatsScheduler;)V
-PLcom/android/server/power/stats/PowerStatsScheduler;->$r8$lambda$GEaV9AQjfxC9uJ1Tfs7f2eF4_H0(Lcom/android/server/power/stats/PowerStatsScheduler;)V
+PLcom/android/server/power/stats/PowerStatsScheduler$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/stats/PowerStatsScheduler;)V
+PLcom/android/server/power/stats/PowerStatsScheduler$$ExternalSyntheticLambda2;->onAlarm()V
 HSPLcom/android/server/power/stats/PowerStatsScheduler;-><clinit>()V
-HSPLcom/android/server/power/stats/PowerStatsScheduler;-><init>(Ljava/lang/Runnable;Lcom/android/server/power/stats/PowerStatsAggregator;JJLcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/power/stats/PowerStatsScheduler$AlarmScheduler;Lcom/android/internal/os/Clock;Lcom/android/internal/os/MonotonicClock;Ljava/util/function/Supplier;Landroid/os/Handler;)V
-PLcom/android/server/power/stats/PowerStatsScheduler;->aggregateAndStorePowerStats()V
+HSPLcom/android/server/power/stats/PowerStatsScheduler;-><init>(Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/server/power/stats/processor/MultiStatePowerAttributor;JJLcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;Lcom/android/internal/os/Clock;Lcom/android/internal/os/MonotonicClock;Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda103;Landroid/os/Handler;)V
 PLcom/android/server/power/stats/PowerStatsScheduler;->alignToWallClock(JJJJ)J
 PLcom/android/server/power/stats/PowerStatsScheduler;->getLastSavedSpanEndMonotonicTime()J
 PLcom/android/server/power/stats/PowerStatsScheduler;->scheduleNextPowerStatsAggregation()V
 PLcom/android/server/power/stats/PowerStatsScheduler;->schedulePowerStatsAggregation()V
-PLcom/android/server/power/stats/PowerStatsScheduler;->start(Z)V
-PLcom/android/server/power/stats/PowerStatsSpan$Metadata$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/power/stats/PowerStatsSpan$Metadata$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/power/stats/PowerStatsSpan$Metadata;-><clinit>()V
 PLcom/android/server/power/stats/PowerStatsSpan$Metadata;-><init>(J)V
-PLcom/android/server/power/stats/PowerStatsSpan$Metadata;->addSection(Ljava/lang/String;)V
-PLcom/android/server/power/stats/PowerStatsSpan$Metadata;->addTimeFrame(Lcom/android/server/power/stats/PowerStatsSpan$TimeFrame;)V
-PLcom/android/server/power/stats/PowerStatsSpan$Metadata;->getSections()Ljava/util/List;
 PLcom/android/server/power/stats/PowerStatsSpan$Metadata;->read(Lcom/android/modules/utils/TypedXmlPullParser;)Lcom/android/server/power/stats/PowerStatsSpan$Metadata;
+PLcom/android/server/power/stats/PowerStatsSpan$Section;-><init>(Ljava/lang/String;)V
 PLcom/android/server/power/stats/PowerStatsSpan$TimeFrame;-><init>(JJJ)V
-PLcom/android/server/power/stats/PowerStatsSpan$TimeFrame;->read(Lcom/android/modules/utils/TypedXmlPullParser;)Lcom/android/server/power/stats/PowerStatsSpan$TimeFrame;
-PLcom/android/server/power/stats/PowerStatsSpan;->-$$Nest$smisCompatibleXmlFormat(I)Z
 PLcom/android/server/power/stats/PowerStatsSpan;-><clinit>()V
-PLcom/android/server/power/stats/PowerStatsSpan;->isCompatibleXmlFormat(I)Z
-HSPLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/PowerStatsStore;)V
-HSPLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/server/power/stats/PowerStatsStore$DefaultSectionReader;-><init>(Lcom/android/server/power/stats/AggregatedPowerStatsConfig;)V
-HSPLcom/android/server/power/stats/PowerStatsStore;->$r8$lambda$B2PF4qXDAYWwxqhYeVyGoe0li4E(Lcom/android/server/power/stats/PowerStatsStore;)V
-HSPLcom/android/server/power/stats/PowerStatsStore;-><init>(Ljava/io/File;JLandroid/os/Handler;Lcom/android/server/power/stats/PowerStatsSpan$SectionReader;)V
-HSPLcom/android/server/power/stats/PowerStatsStore;-><init>(Ljava/io/File;Landroid/os/Handler;Lcom/android/server/power/stats/AggregatedPowerStatsConfig;)V
+PLcom/android/server/power/stats/PowerStatsSpan;-><init>(J)V
+PLcom/android/server/power/stats/PowerStatsSpan;-><init>(Lcom/android/server/power/stats/PowerStatsSpan$Metadata;)V
+PLcom/android/server/power/stats/PowerStatsSpan;->addSection(Lcom/android/server/power/stats/PowerStatsSpan$Section;)V
+PLcom/android/server/power/stats/PowerStatsSpan;->read(Ljava/io/InputStream;Lcom/android/modules/utils/TypedXmlPullParser;Ljava/util/Map;[Ljava/lang/String;)Lcom/android/server/power/stats/PowerStatsSpan;
+HPLcom/android/server/power/stats/PowerStatsSpan;->writeXml(Ljava/io/OutputStream;Lcom/android/modules/utils/TypedXmlSerializer;)V
+HSPLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/PowerStatsStore;)V
+PLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/stats/PowerStatsSpan;)V
+PLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/power/stats/PowerStatsSpan;Lcom/android/server/power/stats/BatteryUsageStatsProvider$$ExternalSyntheticLambda0;)V
+PLcom/android/server/power/stats/PowerStatsStore$$ExternalSyntheticLambda3;->run()V
+HSPLcom/android/server/power/stats/PowerStatsStore;-><init>(Ljava/io/File;JLandroid/os/Handler;)V
 PLcom/android/server/power/stats/PowerStatsStore;->getTableOfContents()Ljava/util/List;
+PLcom/android/server/power/stats/PowerStatsStore;->loadPowerStatsSpan(J[Ljava/lang/String;)Lcom/android/server/power/stats/PowerStatsSpan;
 PLcom/android/server/power/stats/PowerStatsStore;->lockStoreDirectory()V
-HSPLcom/android/server/power/stats/PowerStatsStore;->maybeClearLegacyStore()V
+PLcom/android/server/power/stats/PowerStatsStore;->removeOldSpansLocked()V
+PLcom/android/server/power/stats/PowerStatsStore;->storePowerStatsSpan(Lcom/android/server/power/stats/PowerStatsSpan;)V
 PLcom/android/server/power/stats/PowerStatsStore;->unlockStoreDirectory()V
 HSPLcom/android/server/power/stats/PowerStatsUidResolver;-><init>()V
 HSPLcom/android/server/power/stats/PowerStatsUidResolver;->addListener(Lcom/android/server/power/stats/PowerStatsUidResolver$Listener;)V
-HSPLcom/android/server/power/stats/PowerStatsUidResolver;->mapUid(I)I
+PLcom/android/server/power/stats/PowerStatsUidResolver;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/power/stats/PowerStatsUidResolver;->mapUid(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/power/stats/ScreenPowerStatsCollector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/ScreenPowerStatsCollector;)V
+PLcom/android/server/power/stats/ScreenPowerStatsCollector$$ExternalSyntheticLambda0;->onUidTopActivityTime(IJ)V
+HSPLcom/android/server/power/stats/ScreenPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+HPLcom/android/server/power/stats/ScreenPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;
+PLcom/android/server/power/stats/UsageBasedPowerEstimator;-><init>(D)V
+PLcom/android/server/power/stats/UserPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Lcom/android/server/power/stats/BatteryStatsImpl;JJLandroid/os/BatteryUsageStatsQuery;)V
+HSPLcom/android/server/power/stats/WakelockPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;)V
+HPLcom/android/server/power/stats/WakelockPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;
+HPLcom/android/server/power/stats/WakelockStatsFrameworkEvents$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/power/stats/WakelockStatsFrameworkEvents$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/power/stats/WakelockStatsFrameworkEvents$$ExternalSyntheticLambda3;-><init>(J)V
+HPLcom/android/server/power/stats/WakelockStatsFrameworkEvents$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/power/stats/WakelockStatsFrameworkEvents$StatsPullCallbackHandler;-><init>(Lcom/android/server/power/stats/WakelockStatsFrameworkEvents;)V
+HPLcom/android/server/power/stats/WakelockStatsFrameworkEvents$WakeLockKey;-><init>(IILjava/lang/String;)V
+HPLcom/android/server/power/stats/WakelockStatsFrameworkEvents$WakeLockKey;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/power/stats/WakelockStatsFrameworkEvents$WakeLockKey;->hashCode()I
+PLcom/android/server/power/stats/WakelockStatsFrameworkEvents$WakeLockStats;-><init>()V
+HSPLcom/android/server/power/stats/WakelockStatsFrameworkEvents;-><init>()V
+HPLcom/android/server/power/stats/WakelockStatsFrameworkEvents;->inOverflow()Z+]Ljava/util/Map;Ljava/util/HashMap;
+PLcom/android/server/power/stats/WifiPowerStatsCollector$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/power/stats/WifiPowerStatsCollector$$ExternalSyntheticLambda0;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+PLcom/android/server/power/stats/WifiPowerStatsCollector$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/WifiPowerStatsCollector;)V
+HSPLcom/android/server/power/stats/WifiPowerStatsCollector;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl$PowerStatsCollectorInjector;Lcom/android/server/power/stats/BatteryStatsImpl$$ExternalSyntheticLambda5;)V
+HPLcom/android/server/power/stats/WifiPowerStatsCollector;->collectStats()Lcom/android/internal/os/PowerStats;
+HSPLcom/android/server/power/stats/format/BasePowerStatsLayout;-><init>()V
+PLcom/android/server/power/stats/format/BasePowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+HSPLcom/android/server/power/stats/format/BinaryStatePowerStatsLayout;-><init>()V
+PLcom/android/server/power/stats/format/BluetoothPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+PLcom/android/server/power/stats/format/CpuPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+HSPLcom/android/server/power/stats/format/EnergyConsumerPowerStatsLayout;-><init>()V
+HSPLcom/android/server/power/stats/format/GnssPowerStatsLayout;-><init>()V
+PLcom/android/server/power/stats/format/GnssPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+PLcom/android/server/power/stats/format/MobileRadioPowerStatsLayout;-><init>(Lcom/android/internal/os/PowerStats$Descriptor;)V
+PLcom/android/server/power/stats/format/MobileRadioPowerStatsLayout;->addDeviceSectionPowerEstimate()V
+PLcom/android/server/power/stats/format/MobileRadioPowerStatsLayout;->addRxTxTimesForRat(Landroid/util/SparseArray;IIJ[I)V
+PLcom/android/server/power/stats/format/MobileRadioPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;-><init>()V
+HPLcom/android/server/power/stats/format/PowerStatsLayout;-><init>(Lcom/android/internal/os/PowerStats$Descriptor;)V
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->addDeviceSection(IILjava/lang/String;)I
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->addDeviceSectionEnergyConsumers(I)V
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->addDeviceSectionPowerEstimate()V
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->addDeviceSectionUsageDuration()V
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->addUidSection(IILjava/lang/String;)I
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->addUidSectionPowerEstimate()V
+HSPLcom/android/server/power/stats/format/PowerStatsLayout;->appendFormat(Ljava/lang/StringBuilder;IILjava/lang/String;I)V
+HPLcom/android/server/power/stats/format/PowerStatsLayout;->getUidUsageDuration([J)J
+PLcom/android/server/power/stats/format/PowerStatsLayout;->getUsageDuration([J)J
+PLcom/android/server/power/stats/format/PowerStatsLayout;->setDevicePowerEstimate([JD)V
+HPLcom/android/server/power/stats/format/PowerStatsLayout;->setUidPowerEstimate([JD)V
+HPLcom/android/server/power/stats/format/PowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+PLcom/android/server/power/stats/format/ScreenPowerStatsLayout;-><init>(Lcom/android/internal/os/PowerStats$Descriptor;)V
+PLcom/android/server/power/stats/format/ScreenPowerStatsLayout;->addDeviceSectionPowerEstimate()V
+PLcom/android/server/power/stats/format/ScreenPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+PLcom/android/server/power/stats/format/SensorPowerStatsLayout;-><init>(Ljava/util/Map;)V
+PLcom/android/server/power/stats/format/SensorPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+PLcom/android/server/power/stats/format/WakelockPowerStatsLayout;-><init>()V
+PLcom/android/server/power/stats/format/WifiPowerStatsLayout;->toExtras(Landroid/os/PersistableBundle;)V
+PLcom/android/server/power/stats/processor/AggregatedPowerStats;-><init>(Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;Landroid/util/SparseBooleanArray;)V
+PLcom/android/server/power/stats/processor/AggregatedPowerStats;->addClockUpdate(JJ)V
+PLcom/android/server/power/stats/processor/AggregatedPowerStats;->addPowerStats(Lcom/android/internal/os/PowerStats;J)V
+HPLcom/android/server/power/stats/processor/AggregatedPowerStats;->reset()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/processor/AggregatedPowerStats;->setDeviceState(IIJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$1;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;-><init>(I)V
+HPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;->getDeviceStateConfig()[Lcom/android/server/power/stats/processor/MultiStateStats$States;
+HPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;->getUidStateConfig()[Lcom/android/server/power/stats/processor/MultiStateStats$States;
+HPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;->isTracked(I[I)Z
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;->trackDeviceStates([I)V
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;->trackUidStates([I)V
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;-><clinit>()V
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;-><init>()V
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;->trackPowerComponent(I)Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;->trackPowerComponent(II)Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;
+HSPLcom/android/server/power/stats/processor/AggregatedPowerStatsSection$Reader;-><init>(Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;)V
+PLcom/android/server/power/stats/processor/AggregatedPowerStatsSection;-><init>(Lcom/android/server/power/stats/processor/AggregatedPowerStats;)V
+HPLcom/android/server/power/stats/processor/AggregatedPowerStatsSection;->write(Lcom/android/modules/utils/TypedXmlSerializer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/PowerStats$Descriptor;Lcom/android/internal/os/PowerStats$Descriptor;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;
+PLcom/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor;Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;)V
+PLcom/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor;-><init>()V
+PLcom/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+HPLcom/android/server/power/stats/processor/AudioPowerStatsProcessor;->getBinaryState(Landroid/os/BatteryStats$HistoryItem;)I
+PLcom/android/server/power/stats/processor/BasePowerStatsProcessor;-><clinit>()V
+PLcom/android/server/power/stats/processor/BasePowerStatsProcessor;-><init>(Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;)V
+HPLcom/android/server/power/stats/processor/BasePowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/processor/PowerStatsProcessor;Lcom/android/server/power/stats/processor/BasePowerStatsProcessor;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/processor/BasePowerStatsProcessor;->noteBatteryLevel(IIJ)V
+HPLcom/android/server/power/stats/processor/BasePowerStatsProcessor;->setUidState(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;IIJ)V
+PLcom/android/server/power/stats/processor/BasePowerStatsProcessor;->start(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;-><init>(ID)V
+PLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;-><init>(IDLcom/android/server/power/stats/format/BinaryStatePowerStatsLayout;)V
+HPLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->computeDevicePowerEstimates(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/server/power/stats/processor/PowerStatsProcessor$PowerEstimationPlan;Z)V
+HPLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->ensureInitialized()V
+HPLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Lcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->flushPowerStats(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+HPLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->noteStateChange(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Landroid/os/BatteryStats$HistoryItem;)V+]Lcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;megamorphic_types
+PLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->recordUsageDuration(Lcom/android/internal/os/PowerStats;IJ)V
+PLcom/android/server/power/stats/processor/BinaryStatePowerStatsProcessor;->start(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/BluetoothPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/server/power/stats/processor/BluetoothPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Lcom/android/internal/os/PowerStats$Descriptor;Lcom/android/internal/os/PowerStats$Descriptor;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/processor/CameraPowerStatsProcessor;->getBinaryState(Landroid/os/BatteryStats$HistoryItem;)I
+PLcom/android/server/power/stats/processor/CpuPowerStatsProcessor;-><clinit>()V
+PLcom/android/server/power/stats/processor/CpuPowerStatsProcessor;-><init>(Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/server/power/stats/processor/CpuPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Lcom/android/internal/os/PowerStats$Descriptor;Lcom/android/internal/os/PowerStats$Descriptor;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
+HPLcom/android/server/power/stats/processor/FlashlightPowerStatsProcessor;->getBinaryState(Landroid/os/BatteryStats$HistoryItem;)I
+PLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;-><clinit>()V
+PLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;)V
+PLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;->computeDevicePowerEstimates(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/server/power/stats/processor/PowerStatsProcessor$PowerEstimationPlan;Z)V
+HPLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;->getBinaryState(Landroid/os/BatteryStats$HistoryItem;)I
+HPLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;->noteStateChange(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Landroid/os/BatteryStats$HistoryItem;)V
+PLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;->recordUsageDuration(Lcom/android/internal/os/PowerStats;IJ)V
+PLcom/android/server/power/stats/processor/GnssPowerStatsProcessor;->start(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor;Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;[ILcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor$Intermediates;)V
+PLcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor$$ExternalSyntheticLambda0;->accept(I)V
+PLcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor;-><clinit>()V
+PLcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/server/power/stats/processor/MobileRadioPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/PowerStats$Descriptor;Lcom/android/internal/os/PowerStats$Descriptor;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/power/stats/processor/MultiStatePowerAttributor;[J)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda1;-><init>(Lcom/android/internal/os/PowerProfile;I)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
+HSPLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda5;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;
+HSPLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda6;-><init>(I)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;
+HSPLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda8;-><init>(Lcom/android/internal/os/CpuScalingPolicies;Lcom/android/internal/os/PowerProfile;)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;
+HSPLcom/android/server/power/stats/processor/MultiStatePowerAttributor;-><init>(Lcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/power/stats/processor/PowerStatsAggregator;)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor;->createPowerStatsSpan(Lcom/android/server/power/stats/processor/AggregatedPowerStats;)Lcom/android/server/power/stats/PowerStatsSpan;
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor;->estimatePowerConsumption(Landroid/os/BatteryUsageStats$Builder;Lcom/android/internal/os/BatteryStatsHistory;JJ)V
+HSPLcom/android/server/power/stats/processor/MultiStatePowerAttributor;->setPowerComponentSupported(IZ)V
+PLcom/android/server/power/stats/processor/MultiStatePowerAttributor;->storeAggregatedPowerStats(Lcom/android/server/power/stats/processor/AggregatedPowerStats;)V
+HPLcom/android/server/power/stats/processor/MultiStateStats$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/processor/MultiStateStats;Lcom/android/modules/utils/TypedXmlSerializer;[J)V
+HPLcom/android/server/power/stats/processor/MultiStateStats$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/power/stats/processor/MultiStateStats$Factory;-><init>(I[Lcom/android/server/power/stats/processor/MultiStateStats$States;)V
+HPLcom/android/server/power/stats/processor/MultiStateStats$Factory;->getSerialState([I)I
+HPLcom/android/server/power/stats/processor/MultiStateStats$States;-><init>(Ljava/lang/String;Z[Ljava/lang/String;)V
+HPLcom/android/server/power/stats/processor/MultiStateStats$States;->findTrackedStateByName([Lcom/android/server/power/stats/processor/MultiStateStats$States;Ljava/lang/String;)I
+HPLcom/android/server/power/stats/processor/MultiStateStats$States;->forEachTrackedStateCombination(Ljava/util/function/Consumer;[Lcom/android/server/power/stats/processor/MultiStateStats$States;[II)V+]Ljava/util/function/Consumer;megamorphic_types
+HPLcom/android/server/power/stats/processor/MultiStateStats;-><init>(Lcom/android/server/power/stats/processor/MultiStateStats$Factory;I)V
+HPLcom/android/server/power/stats/processor/MultiStateStats;->setState(IIJ)V
+HPLcom/android/server/power/stats/processor/MultiStateStats;->writeXml(Lcom/android/modules/utils/TypedXmlSerializer;)V
+HPLcom/android/server/power/stats/processor/MultiStateStats;->writeXmlForStates(Lcom/android/modules/utils/TypedXmlSerializer;[I[J)V+]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/ArtBinaryXmlSerializer;
+PLcom/android/server/power/stats/processor/PhoneCallPowerStatsProcessor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/processor/PhoneCallPowerStatsProcessor;Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;)V
+PLcom/android/server/power/stats/processor/PhoneCallPowerStatsProcessor$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/power/stats/processor/PhoneCallPowerStatsProcessor;-><init>()V
+PLcom/android/server/power/stats/processor/PhoneCallPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;-><init>(Lcom/android/server/power/stats/processor/AggregatedPowerStats;Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;)V
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->addProcessedPowerStats(Lcom/android/internal/os/PowerStats;J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->collectUids(Ljava/util/Collection;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Collection;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->createDeviceStats(J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->createStateStats(I)Lcom/android/server/power/stats/processor/MultiStateStats;
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->createUidStats(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats$UidStats;J)V
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->getDeviceStats([I[J)Z
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->getUidStats(I)Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats$UidStats;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->getUidStats(I[I[J)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->setDeviceStats([I[J)V
+HPLcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;->setUidStats(I[I[J)V
+HSPLcom/android/server/power/stats/processor/PowerStatsAggregator;-><init>(Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig;)V
+HPLcom/android/server/power/stats/processor/PowerStatsAggregator;->aggregatePowerStats(Lcom/android/internal/os/BatteryStatsHistory;JJLjava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/internal/os/BatteryStatsHistoryIterator;Lcom/android/internal/os/BatteryStatsHistoryIterator;]Lcom/android/internal/os/PowerStats$Descriptor;Lcom/android/internal/os/PowerStats$Descriptor;]Lcom/android/server/power/stats/processor/PowerStatsProcessor;megamorphic_types]Ljava/util/function/Consumer;Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda17;,Lcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda0;]Ljava/util/function/Supplier;Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda1;,Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda5;,Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda6;,Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda8;
+HSPLcom/android/server/power/stats/processor/PowerStatsAggregator;->setPowerComponentEnabled(IZ)V
+PLcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/processor/PowerStatsExporter;Landroid/os/BatteryUsageStats$Builder;)V
+PLcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/processor/PowerStatsExporter;IILcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;[J[DLcom/android/server/power/stats/format/PowerStatsLayout;[JZLcom/android/server/power/stats/processor/PowerStatsExporter$BatteryLevelInfo;)V
+HPLcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda2;-><init>(IILcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;[JILcom/android/server/power/stats/format/PowerStatsLayout;Z[D[J)V
+HPLcom/android/server/power/stats/processor/PowerStatsExporter$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/power/stats/processor/PowerStatsExporter;-><clinit>()V
+HSPLcom/android/server/power/stats/processor/PowerStatsExporter;-><init>(Lcom/android/server/power/stats/PowerStatsStore;Lcom/android/server/power/stats/processor/PowerStatsAggregator;)V
+HPLcom/android/server/power/stats/processor/PowerStatsExporter;->areMatchingStates(II[I)Z
+HPLcom/android/server/power/stats/processor/PowerStatsExporter;->populateAggregatedBatteryConsumer(Landroid/os/BatteryUsageStats$Builder;Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/server/power/stats/format/PowerStatsLayout;[JLcom/android/server/power/stats/processor/PowerStatsExporter$BatteryLevelInfo;II)V
+HPLcom/android/server/power/stats/processor/PowerStatsExporter;->populateBatteryUsageStatsBuilder(Landroid/os/BatteryUsageStats$Builder;Lcom/android/server/power/stats/processor/AggregatedPowerStats;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
+PLcom/android/server/power/stats/processor/PowerStatsProcessor$$ExternalSyntheticLambda0;-><init>(Ljava/util/List;)V
+PLcom/android/server/power/stats/processor/PowerStatsProcessor$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/power/stats/processor/PowerStatsProcessor$CombinedDeviceStateEstimate;-><init>([Lcom/android/server/power/stats/processor/MultiStateStats$States;[I)V
+PLcom/android/server/power/stats/processor/PowerStatsProcessor$DeviceStateEstimation;-><init>([Lcom/android/server/power/stats/processor/MultiStateStats$States;[I)V
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor$PowerEstimationPlan;-><init>(Lcom/android/server/power/stats/processor/AggregatedPowerStatsConfig$PowerComponent;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor$PowerEstimationPlan;->combineDeviceStateEstimationsRecursively([Lcom/android/server/power/stats/processor/MultiStateStats$States;[Lcom/android/server/power/stats/processor/MultiStateStats$States;[II)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor$PowerEstimationPlan;->getCombinedDeviceStateEstimate([Lcom/android/server/power/stats/processor/MultiStateStats$States;[I)Lcom/android/server/power/stats/processor/PowerStatsProcessor$CombinedDeviceStateEstimate;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor$PowerEstimationPlan;->resetIntermediates()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/power/stats/processor/PowerStatsProcessor$UidStateEstimate;-><init>(Lcom/android/server/power/stats/processor/PowerStatsProcessor$CombinedDeviceStateEstimate;[Lcom/android/server/power/stats/processor/MultiStateStats$States;)V
+PLcom/android/server/power/stats/processor/PowerStatsProcessor$UidStateProportionalEstimate;-><init>([I)V
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor;->-$$Nest$smconcatLabels([Lcom/android/server/power/stats/processor/MultiStateStats$States;[I)Ljava/lang/String;
+PLcom/android/server/power/stats/processor/PowerStatsProcessor;->-$$Nest$smgetAllTrackedStateCombinations([Lcom/android/server/power/stats/processor/MultiStateStats$States;)[[I
+PLcom/android/server/power/stats/processor/PowerStatsProcessor;->addPowerStats(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/internal/os/PowerStats;J)V
+PLcom/android/server/power/stats/processor/PowerStatsProcessor;->noteBatteryLevel(IIJ)V
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor;->noteStateChange(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Landroid/os/BatteryStats$HistoryItem;)V
+HPLcom/android/server/power/stats/processor/PowerStatsProcessor;->setUidState(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;IIJ)V
+PLcom/android/server/power/stats/processor/PowerStatsProcessor;->start(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/ScreenPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/server/power/stats/processor/ScreenPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/SensorPowerStatsProcessor$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/power/stats/processor/SensorPowerStatsProcessor$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/processor/SensorPowerStatsProcessor;Ljava/util/List;)V
+HPLcom/android/server/power/stats/processor/SensorPowerStatsProcessor$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;
+PLcom/android/server/power/stats/processor/SensorPowerStatsProcessor;-><init>(Lcom/android/server/power/stats/processor/MultiStatePowerAttributor$$ExternalSyntheticLambda5;)V
+HPLcom/android/server/power/stats/processor/SensorPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Landroid/hardware/SensorManager;Landroid/hardware/SystemSensorManager;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;
+PLcom/android/server/power/stats/processor/SensorPowerStatsProcessor;->flushPowerStats$1(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+HPLcom/android/server/power/stats/processor/SensorPowerStatsProcessor;->noteStateChange(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Landroid/os/BatteryStats$HistoryItem;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/power/stats/processor/SensorPowerStatsProcessor;->recordUsageDuration(Lcom/android/server/power/stats/processor/SensorPowerStatsProcessor$SensorState;J)V
+PLcom/android/server/power/stats/processor/SensorPowerStatsProcessor;->start(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+HPLcom/android/server/power/stats/processor/VideoPowerStatsProcessor;->getBinaryState(Landroid/os/BatteryStats$HistoryItem;)I
+PLcom/android/server/power/stats/processor/WakelockPowerStatsProcessor;-><clinit>()V
+PLcom/android/server/power/stats/processor/WakelockPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;)V
+PLcom/android/server/power/stats/processor/WakelockPowerStatsProcessor;->addPowerStats(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;Lcom/android/internal/os/PowerStats;J)V
+PLcom/android/server/power/stats/processor/WakelockPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V
+PLcom/android/server/power/stats/processor/WifiPowerStatsProcessor;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/server/power/stats/processor/WifiPowerStatsProcessor;->finish(Lcom/android/server/power/stats/processor/PowerComponentAggregatedPowerStats;J)V+]Lcom/android/internal/os/PowerStats$Descriptor;Lcom/android/internal/os/PowerStats$Descriptor;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/stats/wakeups/CpuWakeupStats;)V
 PLcom/android/server/power/stats/wakeups/CpuWakeupStats$$ExternalSyntheticLambda0;->getAsLong()J
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/stats/wakeups/CpuWakeupStats;Lcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup;)V
+HPLcom/android/server/power/stats/wakeups/CpuWakeupStats$$ExternalSyntheticLambda1;->run()V
 HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats$Config;-><clinit>()V
-HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats$Config;-><init>()V
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$Config;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/power/stats/wakeups/CpuWakeupStats$Config;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/power/stats/wakeups/CpuWakeupStats$Config;->register(Ljava/util/concurrent/Executor;)V
-HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;-><init>(Ljava/util/function/LongSupplier;)V
-HPLcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;->recordActivity(IJLandroid/util/SparseIntArray;)V
-PLcom/android/server/power/stats/wakeups/CpuWakeupStats;->$r8$lambda$l-D7NPzbgSwY5OseXB1GuV8c9rM(Lcom/android/server/power/stats/wakeups/CpuWakeupStats;)J
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup$IrqDevice;->toString()Ljava/lang/String;
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup;-><clinit>()V
+HPLcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup;->parseWakeup(Ljava/lang/String;JJLcom/android/server/power/stats/wakeups/IrqDeviceMap;)Lcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup;
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup;->toString()Ljava/lang/String;
+HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;-><init>(Lcom/android/server/power/stats/wakeups/CpuWakeupStats$$ExternalSyntheticLambda0;)V
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;->dump(Landroid/util/IndentingPrintWriter;J)V
+HPLcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;->recordActivity(IJLandroid/util/SparseIntArray;)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats$WakingActivityHistory;->removeBetween(IJJ)Landroid/util/SparseIntArray;
 HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats;-><clinit>()V
-HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats;-><init>(Landroid/content/Context;ILandroid/os/Handler;)V
-HPLcom/android/server/power/stats/wakeups/CpuWakeupStats;->attemptAttributionWith(IJLandroid/util/SparseIntArray;)Z
-PLcom/android/server/power/stats/wakeups/CpuWakeupStats;->lambda$new$0()J
-HPLcom/android/server/power/stats/wakeups/CpuWakeupStats;->noteUidProcessState(II)V
-HPLcom/android/server/power/stats/wakeups/CpuWakeupStats;->noteWakingActivity(IJ[I)V
+HSPLcom/android/server/power/stats/wakeups/CpuWakeupStats;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HPLcom/android/server/power/stats/wakeups/CpuWakeupStats;->attemptAttributionFor(Lcom/android/server/power/stats/wakeups/CpuWakeupStats$Wakeup;)V
+HPLcom/android/server/power/stats/wakeups/CpuWakeupStats;->attemptAttributionWith(IJLandroid/util/SparseIntArray;)Z+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats;->dump(Landroid/util/IndentingPrintWriter;J)V
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats;->noteWakeupTimeAndReason(JJLjava/lang/String;)V
+HPLcom/android/server/power/stats/wakeups/CpuWakeupStats;->noteWakingActivity(IJ[I)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/power/stats/wakeups/CpuWakeupStats;->subsystemToString(I)Ljava/lang/String;
 PLcom/android/server/power/stats/wakeups/CpuWakeupStats;->systemServicesReady()V
 HSPLcom/android/server/power/stats/wakeups/IrqDeviceMap;-><clinit>()V
 HSPLcom/android/server/power/stats/wakeups/IrqDeviceMap;-><init>(Landroid/content/res/XmlResourceParser;)V
-HSPLcom/android/server/power/stats/wakeups/IrqDeviceMap;->getInstance(Landroid/content/Context;I)Lcom/android/server/power/stats/wakeups/IrqDeviceMap;
+PLcom/android/server/power/stats/wakeups/IrqDeviceMap;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/powerstats/BatteryTrigger$1;-><init>(Lcom/android/server/powerstats/BatteryTrigger;)V
 HPLcom/android/server/powerstats/BatteryTrigger$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/powerstats/BatteryTrigger;->-$$Nest$fgetmBatteryLevel(Lcom/android/server/powerstats/BatteryTrigger;)I
-PLcom/android/server/powerstats/BatteryTrigger;->-$$Nest$fputmBatteryLevel(Lcom/android/server/powerstats/BatteryTrigger;I)V
-PLcom/android/server/powerstats/BatteryTrigger;-><clinit>()V
-PLcom/android/server/powerstats/BatteryTrigger;-><init>(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;Z)V
-PLcom/android/server/powerstats/PowerStatsDataStorage;-><clinit>()V
-PLcom/android/server/powerstats/PowerStatsDataStorage;-><init>(Landroid/content/Context;Ljava/io/File;Ljava/lang/String;)V
+PLcom/android/server/powerstats/BatteryTrigger;-><init>(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;)V
+PLcom/android/server/powerstats/Flags;-><clinit>()V
+PLcom/android/server/powerstats/Flags;->alarmBasedPowerstatsLogging()Z
+PLcom/android/server/powerstats/PowerStatsDataStorage$DataRewriter;->read(Ljava/io/InputStream;)V
+PLcom/android/server/powerstats/PowerStatsDataStorage$DataRewriter;->reset()V
+PLcom/android/server/powerstats/PowerStatsDataStorage$DataRewriter;->shouldWrite()Z
+PLcom/android/server/powerstats/PowerStatsDataStorage$DataRewriter;->write(Ljava/io/OutputStream;)V
+PLcom/android/server/powerstats/PowerStatsDataStorage;-><init>(Ljava/io/File;Ljava/lang/String;)V
+PLcom/android/server/powerstats/PowerStatsDataStorage;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/powerstats/PowerStatsDataStorage;->write([B)V
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;-><init>()V
-PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->getEnergyConsumed([I)[Landroid/hardware/power/stats/EnergyConsumerResult;
-PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->getEnergyConsumerInfo()[Landroid/hardware/power/stats/EnergyConsumer;
-PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->getEnergyMeterInfo()[Landroid/hardware/power/stats/Channel;
-PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->getPowerEntityInfo()[Landroid/hardware/power/stats/PowerEntity;
-PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->getStateResidency([I)[Landroid/hardware/power/stats/StateResidencyResult;
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->isInitialized()Z
-PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL10WrapperImpl;->readEnergyMeter([I)[Landroid/hardware/power/stats/EnergyMeasurement;
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;-><init>()V
+PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->getEnergyConsumed([I)[Landroid/hardware/power/stats/EnergyConsumerResult;
+PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->getEnergyConsumerInfo()[Landroid/hardware/power/stats/EnergyConsumer;
+PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->getEnergyMeterInfo()[Landroid/hardware/power/stats/Channel;
+PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->getPowerEntityInfo()[Landroid/hardware/power/stats/PowerEntity;
+PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->getStateResidency([I)[Landroid/hardware/power/stats/StateResidencyResult;
 HSPLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->isInitialized()Z
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper$VintfHalCache;-><init>()V
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper$VintfHalCache;-><init>(Lcom/android/server/powerstats/PowerStatsHALWrapper$VintfHalCache-IA;)V
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper$VintfHalCache;->get()Landroid/hardware/power/stats/IPowerStats;
+PLcom/android/server/powerstats/PowerStatsHALWrapper$PowerStatsHAL20WrapperImpl;->readEnergyMeter([I)[Landroid/hardware/power/stats/EnergyMeasurement;
 HSPLcom/android/server/powerstats/PowerStatsHALWrapper$VintfHalCache;->get()Ljava/lang/Object;
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper;-><clinit>()V
-HSPLcom/android/server/powerstats/PowerStatsHALWrapper;->getPowerStatsHalImpl()Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;
-PLcom/android/server/powerstats/PowerStatsLogTrigger;-><clinit>()V
 PLcom/android/server/powerstats/PowerStatsLogTrigger;-><init>(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;)V
-PLcom/android/server/powerstats/PowerStatsLogTrigger;->logPowerStatsData(I)V
-PLcom/android/server/powerstats/PowerStatsLogger;-><clinit>()V
-PLcom/android/server/powerstats/PowerStatsLogger;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;)V
+PLcom/android/server/powerstats/PowerStatsLogger;-><init>(Landroid/os/Looper;Ljava/io/File;Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;)V
 PLcom/android/server/powerstats/PowerStatsLogger;->dataChanged(Ljava/lang/String;[B)Z
 PLcom/android/server/powerstats/PowerStatsLogger;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/powerstats/PowerStatsService$1;-><init>(Lcom/android/server/powerstats/PowerStatsService;)V
+PLcom/android/server/powerstats/PowerStatsService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/powerstats/PowerStatsService$DeviceConfigListener;-><init>(Lcom/android/server/powerstats/PowerStatsService;)V
-HSPLcom/android/server/powerstats/PowerStatsService$DeviceConfigListener;-><init>(Lcom/android/server/powerstats/PowerStatsService;Lcom/android/server/powerstats/PowerStatsService$DeviceConfigListener-IA;)V
-PLcom/android/server/powerstats/PowerStatsService$DeviceConfigListener;->startListening()V
 HSPLcom/android/server/powerstats/PowerStatsService$Injector;-><init>()V
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createBatteryTrigger(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;)Lcom/android/server/powerstats/BatteryTrigger;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createDataStoragePath()Ljava/io/File;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createMeterCacheFilename()Ljava/lang/String;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createMeterFilename()Ljava/lang/String;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createModelCacheFilename()Ljava/lang/String;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createModelFilename()Ljava/lang/String;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createPowerStatsLogger(Landroid/content/Context;Landroid/os/Looper;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;)Lcom/android/server/powerstats/PowerStatsLogger;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createResidencyCacheFilename()Ljava/lang/String;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createResidencyFilename()Ljava/lang/String;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createStatsPullerImpl(Landroid/content/Context;Landroid/power/PowerStatsInternal;)Lcom/android/server/powerstats/StatsPullAtomCallbackImpl;
-PLcom/android/server/powerstats/PowerStatsService$Injector;->createTimerTrigger(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;)Lcom/android/server/powerstats/TimerTrigger;
-HSPLcom/android/server/powerstats/PowerStatsService$Injector;->getClock()Lcom/android/internal/os/Clock;
-HSPLcom/android/server/powerstats/PowerStatsService$Injector;->getDeviceConfig()Landroid/provider/DeviceConfigInterface;
-HSPLcom/android/server/powerstats/PowerStatsService$Injector;->getPowerStatsHALWrapperImpl()Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;
-PLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/powerstats/PowerStatsService$LocalService;Ljava/util/concurrent/CompletableFuture;[I)V
-PLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/powerstats/PowerStatsService$LocalService;->$r8$lambda$Jf7j_oHA5ZXXBvvutpd1qM7z0CY(Lcom/android/server/powerstats/PowerStatsService$LocalService;Ljava/util/concurrent/CompletableFuture;[I)V
+PLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/powerstats/PowerStatsService$LocalService;Ljava/util/concurrent/CompletableFuture;[II)V
+PLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda0;->run()V
 HSPLcom/android/server/powerstats/PowerStatsService$LocalService;-><init>(Lcom/android/server/powerstats/PowerStatsService;)V
-HSPLcom/android/server/powerstats/PowerStatsService$LocalService;-><init>(Lcom/android/server/powerstats/PowerStatsService;Lcom/android/server/powerstats/PowerStatsService$LocalService-IA;)V
-PLcom/android/server/powerstats/PowerStatsService$LocalService;->getEnergyConsumerInfo()[Landroid/hardware/power/stats/EnergyConsumer;
-PLcom/android/server/powerstats/PowerStatsService$LocalService;->getEnergyMeterInfo()[Landroid/hardware/power/stats/Channel;
-PLcom/android/server/powerstats/PowerStatsService$LocalService;->getPowerEntityInfo()[Landroid/hardware/power/stats/PowerEntity;
 PLcom/android/server/powerstats/PowerStatsService$LocalService;->getStateResidencyAsync([I)Ljava/util/concurrent/CompletableFuture;
-PLcom/android/server/powerstats/PowerStatsService$LocalService;->lambda$getStateResidencyAsync$1(Ljava/util/concurrent/CompletableFuture;[I)V
-PLcom/android/server/powerstats/PowerStatsService;->-$$Nest$fgetmDeviceConfig(Lcom/android/server/powerstats/PowerStatsService;)Landroid/provider/DeviceConfigInterface;
 HSPLcom/android/server/powerstats/PowerStatsService;->-$$Nest$mgetHandler(Lcom/android/server/powerstats/PowerStatsService;)Landroid/os/Handler;
-PLcom/android/server/powerstats/PowerStatsService;->-$$Nest$mgetPowerStatsHal(Lcom/android/server/powerstats/PowerStatsService;)Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;
-PLcom/android/server/powerstats/PowerStatsService;->-$$Nest$mgetStateResidencyAsync(Lcom/android/server/powerstats/PowerStatsService;Ljava/util/concurrent/CompletableFuture;[I)V
-HSPLcom/android/server/powerstats/PowerStatsService;-><clinit>()V
 HSPLcom/android/server/powerstats/PowerStatsService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/powerstats/PowerStatsService;-><init>(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsService$Injector;)V
-HSPLcom/android/server/powerstats/PowerStatsService;->getHandler()Landroid/os/Handler;
 HSPLcom/android/server/powerstats/PowerStatsService;->getLooper()Landroid/os/Looper;
 HSPLcom/android/server/powerstats/PowerStatsService;->getPowerStatsHal()Lcom/android/server/powerstats/PowerStatsHALWrapper$IPowerStatsHALWrapper;
-PLcom/android/server/powerstats/PowerStatsService;->getStateResidencyAsync(Ljava/util/concurrent/CompletableFuture;[I)V
-PLcom/android/server/powerstats/PowerStatsService;->onBootCompleted()V
+HSPLcom/android/server/powerstats/PowerStatsService;->getPowerStatsInternal()Landroid/power/PowerStatsInternal;
 HSPLcom/android/server/powerstats/PowerStatsService;->onBootPhase(I)V
 HSPLcom/android/server/powerstats/PowerStatsService;->onStart()V
-PLcom/android/server/powerstats/PowerStatsService;->onSystemServicesReady()V
-PLcom/android/server/powerstats/PowerStatsService;->refreshFlags()V
-PLcom/android/server/powerstats/PowerStatsService;->setPowerMonitorApiEnabled(Z)V
-PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->getProtoBytes([Landroid/hardware/power/stats/Channel;)[B
 PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->packProtoMessage([Landroid/hardware/power/stats/Channel;Landroid/util/proto/ProtoOutputStream;)V
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyConsumerResultUtils;->adjustTimeSinceBootToEpoch([Landroid/hardware/power/stats/EnergyConsumerResult;J)V
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyConsumerResultUtils;->getProtoBytes([Landroid/hardware/power/stats/EnergyConsumerResult;Z)[B
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyConsumerResultUtils;->packProtoMessage([Landroid/hardware/power/stats/EnergyConsumerResult;Landroid/util/proto/ProtoOutputStream;Z)V
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyConsumerUtils;->getProtoBytes([Landroid/hardware/power/stats/EnergyConsumer;)[B
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyConsumerUtils;->packProtoMessage([Landroid/hardware/power/stats/EnergyConsumer;Landroid/util/proto/ProtoOutputStream;)V
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyMeasurementUtils;->adjustTimeSinceBootToEpoch([Landroid/hardware/power/stats/EnergyMeasurement;J)V
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyMeasurementUtils;->getProtoBytes([Landroid/hardware/power/stats/EnergyMeasurement;)[B
-PLcom/android/server/powerstats/ProtoStreamUtils$EnergyMeasurementUtils;->packProtoMessage([Landroid/hardware/power/stats/EnergyMeasurement;Landroid/util/proto/ProtoOutputStream;)V
-PLcom/android/server/powerstats/ProtoStreamUtils$PowerEntityUtils;->getProtoBytes([Landroid/hardware/power/stats/PowerEntity;)[B
-PLcom/android/server/powerstats/ProtoStreamUtils$PowerEntityUtils;->packProtoMessage([Landroid/hardware/power/stats/PowerEntity;Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->packProtoMessage([Landroid/hardware/power/stats/EnergyConsumer;Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->packProtoMessage([Landroid/hardware/power/stats/EnergyConsumerResult;Landroid/util/proto/ProtoOutputStream;Z)V
+PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->packProtoMessage([Landroid/hardware/power/stats/EnergyMeasurement;Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->packProtoMessage([Landroid/hardware/power/stats/PowerEntity;Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/powerstats/ProtoStreamUtils$ChannelUtils;->packProtoMessage([Landroid/hardware/power/stats/StateResidencyResult;Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/powerstats/StatsPullAtomCallbackImpl;-><clinit>()V
-PLcom/android/server/powerstats/StatsPullAtomCallbackImpl;-><init>(Landroid/content/Context;Landroid/power/PowerStatsInternal;)V
-PLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->initPullOnDevicePowerMeasurement()Z
-PLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->initSubsystemSleepState()Z
-PLcom/android/server/powerstats/TimerTrigger$1;-><init>(Lcom/android/server/powerstats/TimerTrigger;)V
-PLcom/android/server/powerstats/TimerTrigger$1;->run()V
-PLcom/android/server/powerstats/TimerTrigger$2;-><init>(Lcom/android/server/powerstats/TimerTrigger;)V
-PLcom/android/server/powerstats/TimerTrigger$2;->run()V
-PLcom/android/server/powerstats/TimerTrigger;->-$$Nest$fgetmHandler(Lcom/android/server/powerstats/TimerTrigger;)Landroid/os/Handler;
-PLcom/android/server/powerstats/TimerTrigger;->-$$Nest$fgetmLogDataHighFrequency(Lcom/android/server/powerstats/TimerTrigger;)Ljava/lang/Runnable;
-PLcom/android/server/powerstats/TimerTrigger;->-$$Nest$fgetmLogDataLowFrequency(Lcom/android/server/powerstats/TimerTrigger;)Ljava/lang/Runnable;
-PLcom/android/server/powerstats/TimerTrigger;-><clinit>()V
-PLcom/android/server/powerstats/TimerTrigger;-><init>(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;Z)V
+HPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->onPullAtom(ILjava/util/List;)I
+PLcom/android/server/powerstats/TimerTrigger$PeriodicTimer;-><init>(Lcom/android/server/powerstats/TimerTrigger;Ljava/lang/String;JI)V
+PLcom/android/server/powerstats/TimerTrigger$PeriodicTimer;->run()V
+PLcom/android/server/powerstats/TimerTrigger;-><init>(Landroid/content/Context;Lcom/android/server/powerstats/PowerStatsLogger;)V
 PLcom/android/server/profcollect/ProfcollectForwardingService;-><clinit>()V
 PLcom/android/server/profcollect/ProfcollectForwardingService;->enabled()Z
 HSPLcom/android/server/recoverysystem/RecoverySystemService$Injector;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/recoverysystem/RecoverySystemService$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/recoverysystem/RecoverySystemService$Injector;->getLockSettingsService()Lcom/android/internal/widget/LockSettingsInternal;
 HSPLcom/android/server/recoverysystem/RecoverySystemService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/recoverysystem/RecoverySystemService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/recoverysystem/RecoverySystemService$Lifecycle;->onStart()V
 HSPLcom/android/server/recoverysystem/RecoverySystemService$PreferencesManager;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/recoverysystem/RecoverySystemService;-><clinit>()V
-HSPLcom/android/server/recoverysystem/RecoverySystemService;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/recoverysystem/RecoverySystemService;-><init>(Landroid/content/Context;Lcom/android/server/recoverysystem/RecoverySystemService-IA;)V
 HSPLcom/android/server/recoverysystem/RecoverySystemService;-><init>(Lcom/android/server/recoverysystem/RecoverySystemService$Injector;)V
 PLcom/android/server/recoverysystem/RecoverySystemService;->onSystemServicesReady()V
 PLcom/android/server/resources/ResourcesManagerService$1;-><init>(Lcom/android/server/resources/ResourcesManagerService;)V
+PLcom/android/server/resources/ResourcesManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/resources/ResourcesManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/resources/ResourcesManagerService;->onStart()V
-PLcom/android/server/resources/ResourcesManagerService;->setActivityManagerService(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/restrictions/RestrictionsManagerService$RestrictionsManagerImpl;-><init>(Lcom/android/server/restrictions/RestrictionsManagerService;Landroid/content/Context;)V
 PLcom/android/server/restrictions/RestrictionsManagerService$RestrictionsManagerImpl;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
 PLcom/android/server/restrictions/RestrictionsManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/restrictions/RestrictionsManagerService;->access$000(Lcom/android/server/restrictions/RestrictionsManagerService;Ljava/lang/String;)Landroid/os/IBinder;
-PLcom/android/server/restrictions/RestrictionsManagerService;->access$100(Lcom/android/server/restrictions/RestrictionsManagerService;Ljava/lang/String;)Landroid/os/IBinder;
-PLcom/android/server/restrictions/RestrictionsManagerService;->access$200(Lcom/android/server/restrictions/RestrictionsManagerService;Ljava/lang/Class;)Ljava/lang/Object;
 PLcom/android/server/restrictions/RestrictionsManagerService;->onStart()V
 PLcom/android/server/rollback/AppDataRollbackHelper;-><init>(Lcom/android/server/pm/Installer;)V
 PLcom/android/server/rollback/RollbackManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/rollback/RollbackManagerService;->onBootPhase(I)V
 PLcom/android/server/rollback/RollbackManagerService;->onStart()V
 PLcom/android/server/rollback/RollbackManagerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;II)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;
 PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda14;->run()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;Landroid/content/Context;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda8;->run()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$1;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$2;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$3;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$4;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$5;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/Object;I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$$ExternalSyntheticLambda7;->run()V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$1;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback-IA;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$5ba2COgc7nscJnHcl1QkhQ-HxvI(Lcom/android/server/rollback/RollbackManagerServiceImpl;Landroid/content/Context;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$5ePSTVmaLxSjKqVxrnrccgGY6zE(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$bbfHD4WtP5OoGBOtkEzNdwF9g2M(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$fQDZo-8mYW8tPdxnapF0CQgGj4w(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$l0jOsI4D4tsO9tHi89vVcHGslz8(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fgetmRelativeBootTime(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fgetmRollbacks(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fputmRelativeBootTime(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$massertInWorkerThread(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$smcalculateRelativeBootTime()J
+PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onActiveChanged(IZ)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onBadgingChanged(I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onCreated(I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onFinished(IZ)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onProgressChanged(IF)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;-><clinit>()V
-HPLcom/android/server/rollback/RollbackManagerServiceImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->assertInWorkerThread()V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->assertNotInWorkerThread()V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->awaitResult(Ljava/lang/Runnable;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->awaitResult(Ljava/util/function/Supplier;)Ljava/lang/Object;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->calculateRelativeBootTime()J
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->destroyCeSnapshotsForExpiredRollbacks(I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->enforceManageRollbacks(Ljava/lang/String;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getAvailableRollbacks()Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->getContextAsUser(Landroid/os/UserHandle;)Landroid/content/Context;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->getHandler()Landroid/os/Handler;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$getAvailableRollbacks$1()Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$new$0(Landroid/content/Context;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$onBootCompleted$11()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$onUnlockUser$8(I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$onUnlockUser$9(I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->onBootCompleted()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->onUnlockUser(I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->registerTimeChangeReceiver()V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRollbackForSession(I)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->onPackageReplaced(Ljava/lang/String;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->registerUserCallbacks(Landroid/os/UserHandle;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->runExpiration()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->runExpirationDefaultRollbackLifetime()V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->updateRollbackLifetimeDurationInMillis()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/rollback/RollbackPackageHealthObserver;)V
-PLcom/android/server/rollback/RollbackPackageHealthObserver$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->$r8$lambda$mH9BjKzFj781_SE7sCPceKzVQGQ(Lcom/android/server/rollback/RollbackPackageHealthObserver;)V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;-><init>(Landroid/content/Context;)V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->assertInWorkerThread()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->getName()Ljava/lang/String;
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->lambda$onBootCompletedAsync$4()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->onBootCompleted()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->onBootCompletedAsync()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->popLastStagedRollbackIds()Landroid/util/SparseArray;
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->readStagedRollbackIds(Ljava/io/File;)Landroid/util/SparseArray;
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->writeBoolean(Ljava/io/File;Z)V
 PLcom/android/server/rollback/RollbackStore;-><init>(Ljava/io/File;Ljava/io/File;)V
-PLcom/android/server/rollback/RollbackStore;->loadRollbacks()Ljava/util/List;
 PLcom/android/server/rollback/RollbackStore;->loadRollbacks(Ljava/io/File;)Ljava/util/List;
-PLcom/android/server/rotationresolver/RotationResolverManagerService;-><clinit>()V
-PLcom/android/server/rotationresolver/RotationResolverManagerService;->getServiceConfigPackage(Landroid/content/Context;)Ljava/lang/String;
-PLcom/android/server/rotationresolver/RotationResolverManagerService;->isServiceConfigured(Landroid/content/Context;)Z
 PLcom/android/server/security/AttestationVerificationManagerService$1;-><init>(Lcom/android/server/security/AttestationVerificationManagerService;)V
+PLcom/android/server/security/AttestationVerificationManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/security/AttestationVerificationManagerService$DumpLogger;-><init>()V
 PLcom/android/server/security/AttestationVerificationManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/security/AttestationVerificationManagerService;->onStart()V
 PLcom/android/server/security/AttestationVerificationPeerDeviceVerifier;-><clinit>()V
-PLcom/android/server/security/AttestationVerificationPeerDeviceVerifier;-><init>(Landroid/content/Context;)V
-PLcom/android/server/security/AttestationVerificationPeerDeviceVerifier;->getCertificateBytes(Ljava/lang/String;)[B
-PLcom/android/server/security/AttestationVerificationPeerDeviceVerifier;->getTrustAnchorResources()[Ljava/lang/String;
-PLcom/android/server/security/AttestationVerificationPeerDeviceVerifier;->getTrustAnchors()Ljava/util/Set;
+PLcom/android/server/security/AttestationVerificationPeerDeviceVerifier;-><init>(Landroid/content/Context;Lcom/android/server/security/AttestationVerificationManagerService$DumpLogger;)V
 PLcom/android/server/security/FileIntegrity;->setUpFsVerity(Landroid/os/ParcelFileDescriptor;)V
 PLcom/android/server/security/FileIntegrity;->setUpFsVerity(Ljava/io/File;)V
-HSPLcom/android/server/security/FileIntegrityService$1;-><init>(Lcom/android/server/security/FileIntegrityService;)V
-PLcom/android/server/security/FileIntegrityService$1;->isApkVeritySupported()Z
+HSPLcom/android/server/security/FileIntegrityService$BinderService;-><init>(Lcom/android/server/security/FileIntegrityService;Landroid/content/Context;)V
+PLcom/android/server/security/FileIntegrityService$BinderService;->isApkVeritySupported()Z
 HSPLcom/android/server/security/FileIntegrityService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/security/FileIntegrityService;->collectCertificate([B)V
-HSPLcom/android/server/security/FileIntegrityService;->loadAllCertificates()V
 HSPLcom/android/server/security/FileIntegrityService;->loadCertificatesFromDirectory(Ljava/nio/file/Path;)V
 HSPLcom/android/server/security/FileIntegrityService;->onStart()V
-HSPLcom/android/server/security/FileIntegrityService;->toCertificate([B)Ljava/security/cert/X509Certificate;
 PLcom/android/server/security/KeyAttestationApplicationIdProviderService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/security/KeyAttestationApplicationIdProviderService;->getKeyAttestationApplicationId(I)Landroid/security/keystore/KeyAttestationApplicationId;
+PLcom/android/server/security/KeyAttestationApplicationIdProviderService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/security/KeyChainSystemService$1;-><init>(Lcom/android/server/security/KeyChainSystemService;)V
+PLcom/android/server/security/KeyChainSystemService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/security/KeyChainSystemService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/security/KeyChainSystemService;->onStart()V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$1;-><init>(Lcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$1;->onAuthenticationFailed(I)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$1;->onAuthenticationSucceeded(I)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$2;-><init>(Lcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$3;-><init>(Lcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;Landroid/os/Looper;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$3;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService$4;-><init>(Lcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;-><clinit>()V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;-><init>(Landroid/content/Context;Lcom/android/internal/widget/LockPatternUtils;)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;->init()V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;->onBootPhase(I)V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;->onStart()V
+PLcom/android/server/security/authenticationpolicy/AuthenticationPolicyService;->reportAuthAttempt(IIZ)V
+PLcom/android/server/security/authenticationpolicy/SecureLockDeviceService$Lifecycle;-><init>(Landroid/content/Context;)V
+PLcom/android/server/security/authenticationpolicy/SecureLockDeviceService$Lifecycle;->onStart()V
+PLcom/android/server/security/rkp/RemoteProvisioningRegistration$1;-><init>(Lcom/android/server/security/rkp/RemoteProvisioningRegistration;Landroid/security/rkp/IGetKeyCallback;)V
+PLcom/android/server/security/rkp/RemoteProvisioningRegistration$1;->onError(Ljava/lang/Throwable;)V
+PLcom/android/server/security/rkp/RemoteProvisioningRegistration$1;->onResult(Ljava/lang/Object;)V
+PLcom/android/server/security/rkp/RemoteProvisioningRegistration;-><init>(Landroid/security/rkp/service/RegistrationProxy;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/security/rkp/RemoteProvisioningRegistration;->getKey(ILandroid/security/rkp/IGetKeyCallback;)V
+PLcom/android/server/security/rkp/RemoteProvisioningService$RegistrationReceiver;-><init>(Ljava/util/concurrent/Executor;Landroid/security/rkp/IGetRegistrationCallback;)V
+PLcom/android/server/security/rkp/RemoteProvisioningService$RegistrationReceiver;->onResult(Ljava/lang/Object;)V
 PLcom/android/server/security/rkp/RemoteProvisioningService$RemoteProvisioningImpl;-><init>(Lcom/android/server/security/rkp/RemoteProvisioningService;)V
-PLcom/android/server/security/rkp/RemoteProvisioningService$RemoteProvisioningImpl;-><init>(Lcom/android/server/security/rkp/RemoteProvisioningService;Lcom/android/server/security/rkp/RemoteProvisioningService$RemoteProvisioningImpl-IA;)V
+PLcom/android/server/security/rkp/RemoteProvisioningService$RemoteProvisioningImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/security/rkp/RemoteProvisioningService$RemoteProvisioningImpl;->getRegistration(Ljava/lang/String;Landroid/security/rkp/IGetRegistrationCallback;)V
 PLcom/android/server/security/rkp/RemoteProvisioningService;-><clinit>()V
 PLcom/android/server/security/rkp/RemoteProvisioningService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/security/rkp/RemoteProvisioningService;->onStart()V
-PLcom/android/server/selinux/QuotaLimiter;-><init>(I)V
+PLcom/android/server/security/rkp/RemoteProvisioningShellCommand$Injector;->getIrpcBinder(Ljava/lang/String;)Landroid/hardware/security/keymint/IRemotelyProvisionedComponent;
+PLcom/android/server/security/rkp/RemoteProvisioningShellCommand;-><clinit>()V
+PLcom/android/server/security/rkp/RemoteProvisioningShellCommand;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/security/rkp/RemoteProvisioningShellCommand;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/security/rkp/RemoteProvisioningShellCommand;->dumpRpcInstance(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/selinux/QuotaLimiter;-><init>(Lcom/android/internal/os/Clock;Ljava/time/Duration;I)V
-PLcom/android/server/selinux/RateLimiter;-><init>(Lcom/android/internal/os/Clock;Ljava/time/Duration;)V
-PLcom/android/server/selinux/RateLimiter;-><init>(Ljava/time/Duration;)V
+HSPLcom/android/server/selinux/RateLimiter;-><init>(Lcom/android/internal/os/Clock;Ljava/time/Duration;)V
+HSPLcom/android/server/selinux/RateLimiter;-><init>(Ljava/time/Duration;)V
+PLcom/android/server/selinux/SelinuxAuditLogBuilder$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/selinux/SelinuxAuditLogBuilder$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;
+PLcom/android/server/selinux/SelinuxAuditLogBuilder;-><clinit>()V
+PLcom/android/server/selinux/SelinuxAuditLogBuilder;-><init>()V
+PLcom/android/server/selinux/SelinuxAuditLogBuilder;->nextTokenMatches(Ljava/util/regex/Matcher;)Z
 PLcom/android/server/selinux/SelinuxAuditLogsCollector;-><clinit>()V
 PLcom/android/server/selinux/SelinuxAuditLogsCollector;-><init>(Lcom/android/server/selinux/RateLimiter;Lcom/android/server/selinux/QuotaLimiter;)V
+PLcom/android/server/selinux/SelinuxAuditLogsJob;-><init>(Lcom/android/server/selinux/SelinuxAuditLogsCollector;)V
+PLcom/android/server/selinux/SelinuxAuditLogsService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/selinux/SelinuxAuditLogsService;Landroid/app/job/JobParameters;)V
+HPLcom/android/server/selinux/SelinuxAuditLogsService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/selinux/SelinuxAuditLogsService$LogsCollectorJobScheduler;-><init>(Landroid/app/job/JobScheduler;)V
+PLcom/android/server/selinux/SelinuxAuditLogsService$LogsCollectorJobScheduler;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/selinux/SelinuxAuditLogsService$LogsCollectorJobScheduler;->schedule()V
 PLcom/android/server/selinux/SelinuxAuditLogsService;-><clinit>()V
+PLcom/android/server/selinux/SelinuxAuditLogsService;-><init>()V
+PLcom/android/server/selinux/SelinuxAuditLogsService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/selinux/SelinuxAuditLogsService;->schedule(Landroid/content/Context;)V
-PLcom/android/server/sensorprivacy/AllSensorStateController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/sensorprivacy/AllSensorStateController;)V
-PLcom/android/server/sensorprivacy/AllSensorStateController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/sensorprivacy/AllSensorStateController;->$r8$lambda$xChE0OJhLjTDhwgTSFp_J6v0xhA(Lcom/android/server/sensorprivacy/AllSensorStateController;Z)V
-PLcom/android/server/sensorprivacy/AllSensorStateController;-><clinit>()V
+PLcom/android/server/sensorprivacy/AllSensorStateController$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/sensorprivacy/AllSensorStateController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/sensorprivacy/AllSensorStateController;-><init>()V
-PLcom/android/server/sensorprivacy/AllSensorStateController;->getAllSensorStateLocked()Z
-PLcom/android/server/sensorprivacy/AllSensorStateController;->getInstance()Lcom/android/server/sensorprivacy/AllSensorStateController;
-PLcom/android/server/sensorprivacy/AllSensorStateController;->persist(Z)V
-PLcom/android/server/sensorprivacy/AllSensorStateController;->schedulePersistLocked()V
-PLcom/android/server/sensorprivacy/AllSensorStateController;->setAllSensorPrivacyListenerLocked(Landroid/os/Handler;Lcom/android/server/sensorprivacy/SensorPrivacyStateController$AllSensorPrivacyListener;)V
 PLcom/android/server/sensorprivacy/CameraPrivacyLightController;-><clinit>()V
-PLcom/android/server/sensorprivacy/CameraPrivacyLightController;-><init>(Landroid/content/Context;)V
 PLcom/android/server/sensorprivacy/CameraPrivacyLightController;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/sensorprivacy/PersistedState$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/sensorprivacy/PersistedState$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/sensorprivacy/PersistedState$PVersion2;->-$$Nest$fgetmStates(Lcom/android/server/sensorprivacy/PersistedState$PVersion2;)Landroid/util/ArrayMap;
 PLcom/android/server/sensorprivacy/PersistedState$PVersion2;-><init>(I)V
-PLcom/android/server/sensorprivacy/PersistedState$PVersion2;-><init>(ILcom/android/server/sensorprivacy/PersistedState$PVersion2-IA;)V
 PLcom/android/server/sensorprivacy/PersistedState$TypeUserSensor;-><init>(III)V
 PLcom/android/server/sensorprivacy/PersistedState$TypeUserSensor;->hashCode()I
-PLcom/android/server/sensorprivacy/PersistedState;->$r8$lambda$7IQf-UpFyGa5zIamP1HgWaOc-kY(Lcom/android/server/sensorprivacy/PersistedState;Landroid/util/ArrayMap;)V
-PLcom/android/server/sensorprivacy/PersistedState;-><clinit>()V
-PLcom/android/server/sensorprivacy/PersistedState;-><init>(Ljava/lang/String;)V
-PLcom/android/server/sensorprivacy/PersistedState;->forEachKnownState(Lcom/android/internal/util/function/QuadConsumer;)V
-PLcom/android/server/sensorprivacy/PersistedState;->fromFile(Ljava/lang/String;)Lcom/android/server/sensorprivacy/PersistedState;
-PLcom/android/server/sensorprivacy/PersistedState;->getState(III)Lcom/android/server/sensorprivacy/SensorState;
-PLcom/android/server/sensorprivacy/PersistedState;->persist(Landroid/util/ArrayMap;)V
+PLcom/android/server/sensorprivacy/PersistedState;-><init>()V
 PLcom/android/server/sensorprivacy/PersistedState;->readPVersion2(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/sensorprivacy/PersistedState$PVersion2;)V
-PLcom/android/server/sensorprivacy/PersistedState;->readState()V
-PLcom/android/server/sensorprivacy/PersistedState;->schedulePersist()V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$CallStateCallback;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$CallStateCallback;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper;Lcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$CallStateCallback-IA;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$CallStateCallback;->onCallStateChanged(I)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$OutgoingEmergencyStateCallback;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$OutgoingEmergencyStateCallback;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper;Lcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper$OutgoingEmergencyStateCallback-IA;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$CallStateHelper;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$DeathRecipient;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;Landroid/os/Looper;Landroid/content/Context;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;Landroid/os/Looper;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->addDeathRecipient(Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->addListener(Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->addToggleListener(Landroid/hardware/ISensorPrivacyListener;)V
-HPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->handleSensorPrivacyChanged(IIIZ)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->handleSensorPrivacyChanged(IIIZ)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl$$ExternalSyntheticLambda0;-><init>(Landroid/hardware/SensorPrivacyManagerInternal$OnUserSensorPrivacyChangedListener;IZ)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->$r8$lambda$6c5oG3NqTqZpXs8uPF7TL16NWZ0(Landroid/hardware/SensorPrivacyManagerInternal$OnUserSensorPrivacyChangedListener;IZ)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->-$$Nest$mdispatch(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;IIZ)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl-IA;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->addSensorPrivacyListenerForAllUsers(ILandroid/hardware/SensorPrivacyManagerInternal$OnUserSensorPrivacyChangedListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->dispatch(IIZ)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->isSensorPrivacyEnabled(II)Z
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->lambda$dispatch$0(Landroid/hardware/SensorPrivacyManagerInternal$OnUserSensorPrivacyChangedListener;IZ)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;[ZI[Z[ZI[Z)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;[ZI[Z[ZI[Z)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$1;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;Lcom/android/server/sensorprivacy/SensorPrivacyService;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$2;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;Lcom/android/server/sensorprivacy/SensorPrivacyService;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;[ZI[Z[ZI[ZI)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$1;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;I)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl$3;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;Landroid/os/Handler;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->$r8$lambda$6z1C7T_x7l1R1AsWqbHQW2XLR5s(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;[ZI[Z[ZI[Z)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->$r8$lambda$in8xHyZSF77Hcq9nYZVt7IxVErs(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;[ZI[Z[ZI[Z)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->-$$Nest$misToggleSensorPrivacyEnabledInternal(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;III)Z
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->-$$Nest$mregisterSettingsObserver(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->-$$Nest$msetGlobalRestriction(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;IZ)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->-$$Nest$mshowSensorStateChangedActivity(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;II)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->-$$Nest$muserSwitching(Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;II)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyService;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->addSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->addToggleSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->correctStateIfNeeded()V
-HPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->enforceObserveSensorPrivacyPermission()V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->enforcePermission(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->enforceObserveSensorPrivacyPermission()V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->isCombinedToggleSensorPrivacyEnabled(I)Z
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->isSensorPrivacyEnabled()Z
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->isToggleSensorPrivacyEnabled(II)Z
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->isToggleSensorPrivacyEnabledInternal(III)Z
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->lambda$userSwitching$5([ZI[Z[ZI[Z)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->lambda$userSwitching$6([ZI[Z[ZI[Z)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onOpNoted(IILjava/lang/String;Ljava/lang/String;II)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onOpStarted(IILjava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->registerSettingsObserver()V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->setGlobalRestriction(IZ)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->showSensorStateChangedActivity(II)V
+PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->showSensorUseDialog(I)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->supportsSensorToggle(II)Z
-PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->userSwitching(II)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmAppOpsManager(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Landroid/app/AppOpsManager;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmAppOpsManagerInternal(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Landroid/app/AppOpsManagerInternal;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmAppOpsRestrictionToken(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Landroid/os/IBinder;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmContext(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Landroid/content/Context;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmCurrentUser(Lcom/android/server/sensorprivacy/SensorPrivacyService;)I
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmPackageManagerInternal(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmSensorPrivacyManagerInternal(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmSensorPrivacyServiceImpl(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Lcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmTelephonyManager(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Landroid/telephony/TelephonyManager;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$fgetmUserManagerInternal(Lcom/android/server/sensorprivacy/SensorPrivacyService;)Lcom/android/server/pm/UserManagerInternal;
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->-$$Nest$sfgetACTION_DISABLE_TOGGLE_SENSOR_PRIVACY()Ljava/lang/String;
 PLcom/android/server/sensorprivacy/SensorPrivacyService;-><clinit>()V
 PLcom/android/server/sensorprivacy/SensorPrivacyService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyService;->getCurrentTimeMillis()J
 PLcom/android/server/sensorprivacy/SensorPrivacyService;->onBootPhase(I)V
 PLcom/android/server/sensorprivacy/SensorPrivacyService;->onStart()V
 PLcom/android/server/sensorprivacy/SensorPrivacyService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;-><init>()V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->atomic(Ljava/lang/Runnable;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->forEachState(Lcom/android/server/sensorprivacy/SensorPrivacyStateController$SensorPrivacyStateConsumer;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->getAllSensorState()Z
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->getInstance()Lcom/android/server/sensorprivacy/SensorPrivacyStateController;
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->getState(III)Lcom/android/server/sensorprivacy/SensorState;
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->persistAll()V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->setAllSensorPrivacyListener(Landroid/os/Handler;Lcom/android/server/sensorprivacy/SensorPrivacyStateController$AllSensorPrivacyListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateController;->setSensorPrivacyListener(Landroid/os/Handler;Lcom/android/server/sensorprivacy/SensorPrivacyStateController$SensorPrivacyListener;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/sensorprivacy/SensorPrivacyStateController$SensorPrivacyStateConsumer;)V
 PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;-><init>()V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->forEachStateLocked(Lcom/android/server/sensorprivacy/SensorPrivacyStateController$SensorPrivacyStateConsumer;)V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->getDefaultSensorState()Lcom/android/server/sensorprivacy/SensorState;
-PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->getInstance()Lcom/android/server/sensorprivacy/SensorPrivacyStateController;
-PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->getStateLocked(III)Lcom/android/server/sensorprivacy/SensorState;
+PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->atomic(Ljava/lang/Runnable;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->dumpLocked(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->getState(III)Lcom/android/server/sensorprivacy/SensorState;
 PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->schedulePersistLocked()V
-PLcom/android/server/sensorprivacy/SensorPrivacyStateControllerImpl;->setSensorPrivacyListenerLocked(Landroid/os/Handler;Lcom/android/server/sensorprivacy/SensorPrivacyStateController$SensorPrivacyListener;)V
 PLcom/android/server/sensorprivacy/SensorState;-><init>(I)V
-PLcom/android/server/sensorprivacy/SensorState;-><init>(Z)V
-PLcom/android/server/sensorprivacy/SensorState;->enabledToState(Z)I
-PLcom/android/server/sensorprivacy/SensorState;->getState()I
 PLcom/android/server/sensorprivacy/SensorState;->isEnabled()Z
-PLcom/android/server/sensors/SensorManagerInternal;-><init>()V
 PLcom/android/server/sensors/SensorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/sensors/SensorService;)V
 PLcom/android/server/sensors/SensorService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/sensors/SensorService$LocalService;-><init>(Lcom/android/server/sensors/SensorService;)V
-PLcom/android/server/sensors/SensorService$LocalService;->addProximityActiveListener(Ljava/util/concurrent/Executor;Lcom/android/server/sensors/SensorManagerInternal$ProximityActiveListener;)V
 PLcom/android/server/sensors/SensorService$ProximityListenerDelegate;-><init>(Lcom/android/server/sensors/SensorService;)V
-PLcom/android/server/sensors/SensorService$ProximityListenerDelegate;-><init>(Lcom/android/server/sensors/SensorService;Lcom/android/server/sensors/SensorService$ProximityListenerDelegate-IA;)V
 PLcom/android/server/sensors/SensorService$ProximityListenerDelegate;->onProximityActive(Z)V
 PLcom/android/server/sensors/SensorService$ProximityListenerProxy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/sensors/SensorService$ProximityListenerProxy;Z)V
 PLcom/android/server/sensors/SensorService$ProximityListenerProxy$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/sensors/SensorService$ProximityListenerProxy;->$r8$lambda$lZwMJTdMAI1bCMIxj5Bw6uRSXWw(Lcom/android/server/sensors/SensorService$ProximityListenerProxy;Z)V
-PLcom/android/server/sensors/SensorService$ProximityListenerProxy;-><init>(Ljava/util/concurrent/Executor;Lcom/android/server/sensors/SensorManagerInternal$ProximityActiveListener;)V
-PLcom/android/server/sensors/SensorService$ProximityListenerProxy;->lambda$onProximityActive$0(Z)V
+PLcom/android/server/sensors/SensorService$ProximityListenerProxy;-><init>(Ljava/util/concurrent/Executor;Lcom/android/server/display/mode/ProximitySensorObserver;)V
 PLcom/android/server/sensors/SensorService$ProximityListenerProxy;->onProximityActive(Z)V
 PLcom/android/server/sensors/SensorService;->$r8$lambda$tuvhrgJDhAzfGFTh_3IUBIw3Spg(Lcom/android/server/sensors/SensorService;)V
-PLcom/android/server/sensors/SensorService;->-$$Nest$fgetmLock(Lcom/android/server/sensors/SensorService;)Ljava/lang/Object;
-PLcom/android/server/sensors/SensorService;->-$$Nest$fgetmProximityListeners(Lcom/android/server/sensors/SensorService;)Landroid/util/ArrayMap;
-PLcom/android/server/sensors/SensorService;->-$$Nest$fgetmPtr(Lcom/android/server/sensors/SensorService;)J
 PLcom/android/server/sensors/SensorService;->-$$Nest$smregisterProximityActiveListenerNative(J)V
 PLcom/android/server/sensors/SensorService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/sensors/SensorService;->lambda$new$0()V
 PLcom/android/server/sensors/SensorService;->onBootPhase(I)V
 PLcom/android/server/sensors/SensorService;->onStart()V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;-><init>(Ljava/lang/String;ILandroid/content/ComponentName;ILandroid/os/Bundle;)V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;-><init>(Ljava/lang/String;Landroid/content/pm/ResolveInfo;)V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;->getMetadata()Landroid/os/Bundle;
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;->getVersion()I
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;->parseUid(Landroid/content/pm/ResolveInfo;)I
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;->parseVersion(Landroid/content/pm/ResolveInfo;)I
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;->toString()Ljava/lang/String;
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->$r8$lambda$mcjFxv-ycpNDxZX_ks8oCqSOl1s(Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;)I
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;-><clinit>()V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->create(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/servicewatcher/CurrentUserServiceSupplier;
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->createFromConfig(Landroid/content/Context;Ljava/lang/String;II)Lcom/android/server/servicewatcher/CurrentUserServiceSupplier;
-HPLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->getServiceInfo()Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->getServiceInfo()Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->hasMatchingService()Z
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->lambda$static$0(Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;Lcom/android/server/servicewatcher/CurrentUserServiceSupplier$BoundServiceInfo;)I
-HPLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HPLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->register(Lcom/android/server/servicewatcher/ServiceWatcher$ServiceChangedListener;)V
-PLcom/android/server/servicewatcher/CurrentUserServiceSupplier;->retrieveExplicitPackage(Landroid/content/Context;II)Ljava/lang/String;
-PLcom/android/server/servicewatcher/ServiceWatcher$BinderOperation;->onError(Ljava/lang/Throwable;)V
-PLcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;-><init>(Ljava/lang/String;ILandroid/content/ComponentName;)V
-PLcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;->getAction()Ljava/lang/String;
-PLcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;->getComponentName()Landroid/content/ComponentName;
-PLcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;->getUserId()I
-HPLcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;->toString()Ljava/lang/String;
-PLcom/android/server/servicewatcher/ServiceWatcher;->create(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Lcom/android/server/servicewatcher/ServiceWatcher$ServiceSupplier;Lcom/android/server/servicewatcher/ServiceWatcher$ServiceListener;)Lcom/android/server/servicewatcher/ServiceWatcher;
-PLcom/android/server/servicewatcher/ServiceWatcher;->create(Landroid/content/Context;Ljava/lang/String;Lcom/android/server/servicewatcher/ServiceWatcher$ServiceSupplier;Lcom/android/server/servicewatcher/ServiceWatcher$ServiceListener;)Lcom/android/server/servicewatcher/ServiceWatcher;
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;Lcom/android/server/servicewatcher/ServiceWatcher$BinderOperation;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$1;-><init>(Lcom/android/server/servicewatcher/ServiceWatcherImpl;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;-><init>(Lcom/android/server/servicewatcher/ServiceWatcherImpl;Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;)V
-HPLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->bind()V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->getBoundServiceInfo()Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->isConnected()Z
-HPLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->runOnBinder(Lcom/android/server/servicewatcher/ServiceWatcher$BinderOperation;)V
-HPLcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;->unbind()V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->$r8$lambda$GCGDYqQZRK7jCQUNZnY8QjXgR2Y(Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;Lcom/android/server/servicewatcher/ServiceWatcher$BinderOperation;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->$r8$lambda$zTLizm-3rVzoLRcwgUDZzwsvYD8(Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;-><clinit>()V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Lcom/android/server/servicewatcher/ServiceWatcher$ServiceSupplier;Lcom/android/server/servicewatcher/ServiceWatcher$ServiceListener;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->checkServiceResolves()Z
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->lambda$onServiceChanged$1(Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->lambda$runOnBinder$0(Lcom/android/server/servicewatcher/ServiceWatcherImpl$MyServiceConnection;Lcom/android/server/servicewatcher/ServiceWatcher$BinderOperation;)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->onServiceChanged()V
-HPLcom/android/server/servicewatcher/ServiceWatcherImpl;->onServiceChanged(Z)V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->register()V
-PLcom/android/server/servicewatcher/ServiceWatcherImpl;->runOnBinder(Lcom/android/server/servicewatcher/ServiceWatcher$BinderOperation;)V
-PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>()V
-PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>(Lcom/android/server/signedconfig/SignedConfigService$UpdateReceiver-IA;)V
+PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/signedconfig/SignedConfigService;->registerUpdateReceiver(Landroid/content/Context;)V
-PLcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;->$values()[Lcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;
+PLcom/android/server/soundtrigger/DeviceStateHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger/DeviceStateHandler$DeviceStateListener;Lcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;I)V
+PLcom/android/server/soundtrigger/DeviceStateHandler$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;-><clinit>()V
-PLcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;-><init>(Ljava/lang/String;I)V
 PLcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerPowerEvent;-><init>(I)V
+PLcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerPowerEvent;->eventToString()Ljava/lang/String;
 PLcom/android/server/soundtrigger/DeviceStateHandler;-><init>(Ljava/util/concurrent/Executor;Lcom/android/server/utils/EventLogger;)V
 PLcom/android/server/soundtrigger/DeviceStateHandler;->onPowerModeChanged(I)V
+PLcom/android/server/soundtrigger/DeviceStateHandler;->registerListener(Lcom/android/server/soundtrigger/DeviceStateHandler$DeviceStateListener;)V
 PLcom/android/server/soundtrigger/PhoneCallStateHandler$1;-><init>(Lcom/android/server/soundtrigger/PhoneCallStateHandler;)V
-PLcom/android/server/soundtrigger/PhoneCallStateHandler;-><init>(Landroid/telephony/SubscriptionManager;Landroid/telephony/TelephonyManager;Lcom/android/server/soundtrigger/PhoneCallStateHandler$Callback;)V
-PLcom/android/server/soundtrigger/SoundTriggerDbHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/soundtrigger/PhoneCallStateHandler;-><init>(Landroid/telephony/SubscriptionManager;Landroid/telephony/TelephonyManager;Lcom/android/server/soundtrigger/DeviceStateHandler;)V
+PLcom/android/server/soundtrigger/SoundTriggerDbHelper;->onCreate(Landroid/database/sqlite/SQLiteDatabase;)V
+PLcom/android/server/soundtrigger/SoundTriggerEvent$ServiceEvent$Type;-><clinit>()V
+PLcom/android/server/soundtrigger/SoundTriggerEvent$ServiceEvent;-><init>(Lcom/android/server/soundtrigger/SoundTriggerEvent$ServiceEvent$Type;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerEvent$ServiceEvent;-><init>(Lcom/android/server/soundtrigger/SoundTriggerEvent$SessionEvent$Type;Ljava/util/UUID;Ljava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerEvent$ServiceEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/soundtrigger/SoundTriggerEvent$ServiceEvent;->printLog(ILjava/lang/String;)Lcom/android/server/utils/EventLogger$Event;
+PLcom/android/server/soundtrigger/SoundTriggerEvent$SessionEvent$Type;-><clinit>()V
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;-><init>(Ljava/util/UUID;I)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->clearState()V
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getCallback()Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getHandle()I
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->getModelId()Ljava/util/UUID;
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isKeyphraseModel()Z
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isModelLoaded()Z
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isModelStarted()Z
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->isRequested()Z
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setRequested(Z)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStopped()V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;-><init>(Landroid/content/Context;Lcom/android/server/utils/EventLogger;Lcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda1;ILcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda2;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->detach()V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->forceStopAndUnloadModelLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Ljava/lang/Exception;Ljava/util/Iterator;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->getKeyphraseModelDataLocked(I)Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->getModelDataForLocked(I)Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->getModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->isRecognitionAllowed(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;)Z
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onDeviceStateChanged(Lcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onKeyphraseRecognitionLocked(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onRecognition(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onRecognitionAbortLocked(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onResourcesAvailable()V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->startRecognition(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;Z)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;->unloadKeyphraseSoundModel(I)I
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->updateAllRecognitionsLocked()V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->updateRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Z)I
+PLcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;ILandroid/media/permission/Identity;Landroid/media/permission/Identity;Z)V
+PLcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/media/permission/Identity;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
 PLcom/android/server/soundtrigger/SoundTriggerService$1;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/os/PowerManager;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/content/Context;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl$$ExternalSyntheticLambda0;->binderDied()V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl$$ExternalSyntheticLambda1;->onSoundTriggerDeviceStateUpdate(Lcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;Lcom/android/server/soundtrigger/SoundTriggerHelper;Landroid/os/IBinder;Lcom/android/server/utils/EventLogger;Landroid/media/permission/Identity;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;->clientDied()V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;->detachInternal()V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;->startRecognition(ILandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;Lcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;Z)I
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->attach(Landroid/os/IBinder;Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;Z)Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;
+PLcom/android/server/soundtrigger/SoundTriggerService$MyAppOpsListener;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/media/permission/Identity;Ljava/util/function/Consumer;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$MyAppOpsListener;->onOpChanged(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;-><init>()V
 PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;->attachAsOriginator(Landroid/media/permission/Identity;Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;Landroid/os/IBinder;)Lcom/android/internal/app/ISoundTriggerSession;
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;->listModuleProperties(Landroid/media/permission/Identity;)Ljava/util/List;
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub$$ExternalSyntheticLambda0;->binderDied()V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub$$ExternalSyntheticLambda1;->onSoundTriggerDeviceStateUpdate(Lcom/android/server/soundtrigger/DeviceStateHandler$SoundTriggerDeviceState;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/os/IBinder;Lcom/android/server/soundtrigger/SoundTriggerHelper;Lcom/android/server/utils/EventLogger;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub;->clientDied()V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub;->enforceCallingPermission(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerSessionStub;->getModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
 PLcom/android/server/soundtrigger/SoundTriggerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/soundtrigger/SoundTriggerService;->onBootPhase(I)V
+PLcom/android/server/soundtrigger/SoundTriggerService;->listUnderlyingModuleProperties(Landroid/media/permission/Identity;)Ljava/util/List;
+PLcom/android/server/soundtrigger/SoundTriggerService;->newSoundTriggerHelper(Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;Lcom/android/server/utils/EventLogger;Z)Lcom/android/server/soundtrigger/SoundTriggerHelper;
+PLcom/android/server/soundtrigger/SoundTriggerService;->onBootPhase(I)V
 PLcom/android/server/soundtrigger/SoundTriggerService;->onStart()V
-PLcom/android/server/soundtrigger_middleware/AudioSessionProviderImpl;-><init>()V
+PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlRecognitionModes(I)I
+PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlSoundModel(Landroid/media/soundtrigger/SoundModel;)Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;
+PLcom/android/server/soundtrigger_middleware/ConversionUtil;->aidl2hidlUuid(Ljava/lang/String;)Landroid/hardware/audio/common/V2_0/Uuid;
+PLcom/android/server/soundtrigger_middleware/ConversionUtil;->hidl2aidlProperties(Landroid/hardware/soundtrigger/V2_3/Properties;)Landroid/media/soundtrigger/Properties;
+PLcom/android/server/soundtrigger_middleware/ConversionUtil;->hidl2aidlRecognitionEvent(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;)Landroid/media/soundtrigger/RecognitionEvent;
+PLcom/android/server/soundtrigger_middleware/ConversionUtil;->hidl2aidlRecognitionModes(I)I
+PLcom/android/server/soundtrigger_middleware/DefaultHalFactory$$ExternalSyntheticLambda0;-><init>(I)V
 PLcom/android/server/soundtrigger_middleware/DefaultHalFactory;-><clinit>()V
-PLcom/android/server/soundtrigger_middleware/DefaultHalFactory;-><init>()V
 PLcom/android/server/soundtrigger_middleware/DefaultHalFactory;->create()Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal;
 PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;)V
 PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;->$r8$lambda$hBoIWCt1wAYBh9Th4QLOGaxIoV0(Lcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;)V
 PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;-><init>()V
+PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;->registerListener(Lcom/android/server/soundtrigger_middleware/ICaptureStateNotifier$Listener;)Z
 PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;->run()V
 PLcom/android/server/soundtrigger_middleware/ExternalCaptureStateTracker;->setCaptureState(Z)V
 PLcom/android/server/soundtrigger_middleware/FakeHalFactory$$ExternalSyntheticLambda0;-><init>(Landroid/media/soundtrigger_middleware/IInjectGlobalEvent;)V
-PLcom/android/server/soundtrigger_middleware/FakeHalFactory$1;-><init>(Lcom/android/server/soundtrigger_middleware/FakeHalFactory;Landroid/os/IBinder;Ljava/lang/Runnable;Landroid/media/soundtrigger_middleware/IInjectGlobalEvent;)V
-PLcom/android/server/soundtrigger_middleware/FakeHalFactory;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerInjection;)V
+PLcom/android/server/soundtrigger_middleware/FakeHalFactory$1;-><init>(Lcom/android/server/soundtrigger_middleware/FakeHalFactory;Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;Lcom/android/server/soundtrigger_middleware/FakeHalFactory$$ExternalSyntheticLambda0;Landroid/media/soundtrigger_middleware/IInjectGlobalEvent;)V
+PLcom/android/server/soundtrigger_middleware/FakeHalFactory;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerInjection;)V
 PLcom/android/server/soundtrigger_middleware/FakeHalFactory;->create()Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal;
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;)V
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$$ExternalSyntheticLambda0;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$1$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$1$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$1;-><init>(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;)V
+PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$CallbackDispatcher;->-$$Nest$mwrap$2(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$CallbackDispatcher;Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)V
+PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$CallbackDispatcher;-><init>(Landroid/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback;)V
+PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$CallbackDispatcher;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerInjection;)V
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$ExecutorHolder;-><clinit>()V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$GlobalCallbackDispatcher;-><init>(Landroid/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$GlobalCallbackDispatcher;-><init>(Landroid/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback;Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$GlobalCallbackDispatcher-IA;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;->$r8$lambda$pnpqzoQdTdzjstzdqhpQnNpOVVU(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;->-$$Nest$mwrap(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerInjection;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerInjection;Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher-IA;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;->lambda$wrap$0(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal$InjectionDispatcher;->wrap(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->$r8$lambda$_r7zgC45YMbhkVPbRFw41fe6CNU(Lcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;Landroid/media/soundtrigger_middleware/ISoundTriggerInjection;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerInjection;)V
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->createDefaultProperties()Landroid/media/soundtrigger/Properties;
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->getGlobalEventInjection()Landroid/media/soundtrigger_middleware/IInjectGlobalEvent;
+PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerInjection;)V
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->getProperties()Landroid/media/soundtrigger/Properties;
-PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->lambda$new$0(Landroid/media/soundtrigger_middleware/ISoundTriggerInjection;)V
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V
 PLcom/android/server/soundtrigger_middleware/FakeSoundTriggerHal;->registerGlobalCallback(Landroid/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback;)V
+PLcom/android/server/soundtrigger_middleware/ObjectPrinter;->print$1(Ljava/lang/StringBuilder;Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/ObjectPrinter;->print(Ljava/lang/Object;)Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler$ModelData;-><init>(ILjava/lang/String;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->getProperties()Landroid/media/soundtrigger/Properties;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->checkDuplicateModelUuid(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->clientAttached(Landroid/os/IBinder;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->clientDetached(Landroid/os/IBinder;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->loadPhraseSoundModel(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->registerCallback(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->startRecognition(IIILandroid/media/soundtrigger/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;->unloadSoundModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda0;->onResourcesAvailable()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda1;-><init>(ILcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$LoadedModel;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackThread;-><init>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackThread;->pop()Ljava/lang/Runnable;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackThread;->push(Ljava/lang/Runnable;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackThread;->run()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackWrapper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackWrapper;ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackWrapper$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackWrapper;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$CallbackWrapper;->phraseRecognitionCallback(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler$LoadedModel;-><init>(ILcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;Lcom/android/server/soundtrigger_middleware/ICaptureStateNotifier;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->abortAllActiveModels()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->clientAttached(Landroid/os/IBinder;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->clientDetached(Landroid/os/IBinder;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->getProperties()Landroid/media/soundtrigger/Properties;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->loadPhraseSoundModel(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->registerCallback(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->startRecognition(IIILandroid/media/soundtrigger/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalConcurrentCaptureHandler;->unloadSoundModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer$ModelCallbackEnforcer;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer$ModelCallbackEnforcer;->phraseRecognitionCallback(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer$ModelState;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->clientAttached(Landroid/os/IBinder;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->clientDetached(Landroid/os/IBinder;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->getProperties()Landroid/media/soundtrigger/Properties;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->loadPhraseSoundModel(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->registerCallback(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->startRecognition(IIILandroid/media/soundtrigger/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalEnforcer;->unloadSoundModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;->loadPhraseSoundModel(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;->startRecognition(IIILandroid/media/soundtrigger/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalMaxModelLimiter;->unloadSoundModel(I)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog$Watchdog$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog$Watchdog;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog$Watchdog;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog$Watchdog;->close()V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->-$$Nest$fgetmTimer(Lcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;)Lcom/android/server/soundtrigger_middleware/UptimeTimer;
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerDuplicateModelHandler;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->clientAttached(Landroid/os/IBinder;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->clientDetached(Landroid/os/IBinder;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->getProperties()Landroid/media/soundtrigger/Properties;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->loadPhraseSoundModel(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->registerCallback(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->startRecognition(IIILandroid/media/soundtrigger/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHalWatchdog;->unloadSoundModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$$ExternalSyntheticLambda0;-><init>(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$$ExternalSyntheticLambda3;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$ModelCallbackWrapper;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$ModelCallbackWrapper;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$ModelCallbackWrapper;->phraseRecognitionCallback_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;-><init>(Landroid/os/IHwBinder;Ljava/lang/Runnable;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->as2_3()Landroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->create(Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;Ljava/lang/Runnable;Lcom/android/server/soundtrigger_middleware/ICaptureStateNotifier;)Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->handleHalStatus(ILjava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->loadPhraseSoundModel(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$ModelCallback;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->startRecognition(IIILandroid/media/soundtrigger/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->unloadSoundModel(I)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw3Compat$GlobalCallbackAdaper;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw3Compat;-><init>(Landroid/os/IBinder;Ljava/lang/Runnable;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw3Compat;->getProperties()Landroid/media/soundtrigger/Properties;
@@ -22849,1528 +18172,1294 @@
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw3Compat;->registerCallback(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHal$GlobalCallback;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerInjection;-><init>()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerInjection;->registerGlobalEventInjection(Landroid/media/soundtrigger_middleware/IInjectGlobalEvent;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;-><init>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;-><init>(III)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;-><init>([Lcom/android/server/soundtrigger_middleware/HalFactory;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;-><init>(Landroid/content/Context;Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;Z)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$BatteryStatsHolder;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Lcom/android/server/utils/EventLogger;Landroid/media/permission/Identity;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->asBinder()Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->onPhraseRecognition(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->onResourcesAvailable()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->detach()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->loadPhraseModel(Landroid/media/soundtrigger/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->startRecognition(ILandroid/media/soundtrigger/RecognitionConfig;)Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->toString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModulePropertySummary;->toString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ServiceEvent$Type;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ServiceEvent;-><init>(Ljava/lang/Exception;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ServiceEvent$Type;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ServiceEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ServiceEvent;->printLog(ILjava/lang/String;)Lcom/android/server/utils/EventLogger$Event;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent$Type;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;-><init>(Ljava/lang/Exception;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent$Type;Ljava/lang/Object;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;->createForReturn(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent$Type;Ljava/lang/Object;[Ljava/lang/Object;)Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;->createForVoid(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent$Type;[Ljava/lang/Object;)Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;->eventToString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$SessionEvent;->printLog(ILjava/lang/String;)Lcom/android/server/utils/EventLogger$Event;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->-$$Nest$mstartKeyphraseEventLatencyTracking(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger/PhraseRecognitionEvent;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;-><init>(Lcom/android/internal/util/LatencyTracker;Ljava/util/function/Supplier;Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;Landroid/content/Context;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;Z)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper$CallbackWrapper;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper$CallbackWrapper;->asBinder()Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper$CallbackWrapper;->enforcePermissions(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper$CallbackWrapper;->onPhraseRecognition(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper$CallbackWrapper;->onResourcesAvailable()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;Landroid/media/permission/Identity;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Z)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->detach()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->enforcePermissions()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->loadPhraseModel(Landroid/media/soundtrigger/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->startRecognition(ILandroid/media/soundtrigger/RecognitionConfig;)Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->toString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission$ModuleWrapper;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;Landroid/content/Context;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;Z)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;->enforcePermissionForPreflight(Landroid/content/Context;Landroid/media/permission/Identity;Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;->enforcePermissionsForPreflight(Landroid/media/permission/Identity;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewarePermission;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;->onStart()V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;Landroid/content/Context;Lcom/android/server/soundtrigger_middleware/SoundTriggerInjection;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;Landroid/content/Context;Lcom/android/server/soundtrigger_middleware/SoundTriggerInjection;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService-IA;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->detach()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->loadPhraseModel(Landroid/media/soundtrigger/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->startRecognition(ILandroid/media/soundtrigger/RecognitionConfig;)Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/content/Context;Lcom/android/server/soundtrigger_middleware/SoundTriggerInjection;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->attachAsMiddleman(ILandroid/media/permission/Identity;Landroid/media/permission/Identity;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Z)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->listModulesAsMiddleman(Landroid/media/permission/Identity;Landroid/media/permission/Identity;)[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModelState$Activity;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModelState;-><init>(Landroid/media/soundtrigger/PhraseSoundModel;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleStatus;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session$CallbackWrapper;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session$CallbackWrapper;->onPhraseRecognition(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session$CallbackWrapper;->onResourcesAvailable()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->attach(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->detach()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->detachInternal()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->loadPhraseModel(Landroid/media/soundtrigger/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->startRecognition(ILandroid/media/soundtrigger/RecognitionConfig;)Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->toString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$Session;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;Z)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->-$$Nest$mload(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->-$$Nest$mstartRecognition(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger/RecognitionConfig;)Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->phraseRecognitionCallback(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEventSys;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->setState(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;)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;->checkValid()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->detach()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->loadPhraseModel(Landroid/media/soundtrigger/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->startRecognition(ILandroid/media/soundtrigger/RecognitionConfig;)Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->unloadModel(I)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;-><init>(Lcom/android/server/soundtrigger_middleware/HalFactory;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->attachToHal()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->onResourcesAvailable()V
 PLcom/android/server/soundtrigger_middleware/UptimeTimer$TaskImpl;-><init>(Landroid/os/Handler;Ljava/lang/Object;)V
-PLcom/android/server/soundtrigger_middleware/UptimeTimer$TaskImpl;->cancel()V
-PLcom/android/server/soundtrigger_middleware/UptimeTimer;-><init>(Ljava/lang/String;)V
-PLcom/android/server/soundtrigger_middleware/UptimeTimer;->createTask(Ljava/lang/Runnable;J)Lcom/android/server/soundtrigger_middleware/UptimeTimer$Task;
+PLcom/android/server/soundtrigger_middleware/UptimeTimer;-><init>()V
+PLcom/android/server/soundtrigger_middleware/UuidUtil;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/ValidationUtil;->validateModel(Landroid/media/soundtrigger/SoundModel;I)V
 PLcom/android/server/speech/SpeechRecognitionManagerService$SpeechRecognitionManagerServiceStub;-><init>(Lcom/android/server/speech/SpeechRecognitionManagerService;)V
-PLcom/android/server/speech/SpeechRecognitionManagerService;-><clinit>()V
 PLcom/android/server/speech/SpeechRecognitionManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/speech/SpeechRecognitionManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/speech/SpeechRecognitionManagerService;->newServiceLocked(IZ)Lcom/android/server/speech/SpeechRecognitionManagerServiceImpl;
 PLcom/android/server/speech/SpeechRecognitionManagerService;->onStart()V
-PLcom/android/server/speech/SpeechRecognitionManagerServiceImpl;-><clinit>()V
 PLcom/android/server/speech/SpeechRecognitionManagerServiceImpl;-><init>(Lcom/android/server/speech/SpeechRecognitionManagerService;Ljava/lang/Object;I)V
-PLcom/android/server/speech/SpeechRecognitionManagerServiceImpl;->updateLocked(Z)Z
-PLcom/android/server/stats/FeatureFlagsImpl;-><init>()V
-PLcom/android/server/stats/FeatureFlagsImpl;->addMobileBytesTransferByProcStatePuller()Z
-PLcom/android/server/stats/Flags;-><clinit>()V
-PLcom/android/server/stats/Flags;->addMobileBytesTransferByProcStatePuller()Z
 PLcom/android/server/stats/bootstrap/StatsBootstrapAtomService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/stats/bootstrap/StatsBootstrapAtomService$Lifecycle;->onStart()V
-PLcom/android/server/stats/bootstrap/StatsBootstrapAtomService;-><init>()V
-PLcom/android/server/stats/pull/ProcfsMemoryUtil$MemorySnapshot;-><init>()V
-PLcom/android/server/stats/pull/ProcfsMemoryUtil;-><clinit>()V
-PLcom/android/server/stats/pull/ProcfsMemoryUtil;->readMemorySnapshotFromProcfs(I)Lcom/android/server/stats/pull/ProcfsMemoryUtil$MemorySnapshot;
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
+HPLcom/android/server/stats/bootstrap/StatsBootstrapAtomService;->reportBootstrapAtom(Landroid/os/StatsBootstrapAtom;)V
+PLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/stats/pull/AggregatedMobileDataStatsPuller;)V
+PLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/stats/pull/AggregatedMobileDataStatsPuller;II)V
+HPLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller$$ExternalSyntheticLambda1;->run()V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;
+PLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller;-><init>(Landroid/app/usage/NetworkStatsManager;)V
+HPLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller;->isEmpty(Landroid/net/NetworkStats;)Z
+HPLcom/android/server/stats/pull/AggregatedMobileDataStatsPuller;->updateNetworkStats(Landroid/app/usage/NetworkStatsManager;)V+]Landroid/app/usage/NetworkStatsManager;Landroid/app/usage/NetworkStatsManager;]Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;
+PLcom/android/server/stats/pull/SettingsStatsUtil$FlagsData;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/stats/pull/SettingsStatsUtil;-><clinit>()V
+PLcom/android/server/stats/pull/SettingsStatsUtil;->createStatsEvent(IIILjava/lang/String;Ljava/lang/String;)Landroid/util/StatsEvent;
+PLcom/android/server/stats/pull/SettingsStatsUtil;->getList(Ljava/lang/String;)Lcom/android/service/nano/StringListParamProto;
+PLcom/android/server/stats/pull/SettingsStatsUtil;->logGlobalSettings(Landroid/content/Context;II)Ljava/util/List;
+PLcom/android/server/stats/pull/SettingsStatsUtil;->logSecureSettings(Landroid/content/Context;II)Ljava/util/List;
+PLcom/android/server/stats/pull/SettingsStatsUtil;->logSystemSettings(Landroid/content/Context;II)Ljava/util/List;
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;I)V
 PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda5;-><init>()V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
-PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
-PLcom/android/server/stats/pull/StatsPullAtomService$ConnectivityStatsCallback;-><init>()V
-PLcom/android/server/stats/pull/StatsPullAtomService$ConnectivityStatsCallback;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService$ConnectivityStatsCallback-IA;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda13;-><init>(Landroid/os/SynchronousResultReceiver;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda13;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda14;-><init>(IILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda14;->onUidCpuTime(ILjava/lang/Object;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda16;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda16;->test(Ljava/lang/Object;)Z
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda17;-><init>(Landroid/util/SparseArray;I[I[J[D)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda17;->onUidCpuTime(ILjava/lang/Object;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda18;-><init>(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda18;->onUidStorageStats(IJJJJJJJJJJ)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda19;-><init>(ILandroid/util/SparseArray;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda2;-><init>(I)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda4;-><init>(Landroid/net/NetworkTemplate;Z)V
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;I)V
+PLcom/android/server/stats/pull/StatsPullAtomService$1;-><init>(Landroid/os/SynchronousResultReceiver;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$1;->onBluetoothActivityEnergyInfoAvailable(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$2;->execute(Ljava/lang/Runnable;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$3;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$3;->onResult(Ljava/lang/Object;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$ConnectivityStatsCallback;->onAvailable(Landroid/net/Network;)V
+PLcom/android/server/stats/pull/StatsPullAtomService$ConnectivityStatsCallback;->onLost(Landroid/net/Network;)V
 PLcom/android/server/stats/pull/StatsPullAtomService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
-PLcom/android/server/stats/pull/StatsPullAtomService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;Lcom/android/server/stats/pull/StatsPullAtomService$StatsPullAtomCallbackImpl-IA;)V
+HPLcom/android/server/stats/pull/StatsPullAtomService$StatsPullAtomCallbackImpl;->onPullAtom(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService$StatsPullAtomServiceInternalImpl;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
 PLcom/android/server/stats/pull/StatsPullAtomService$StatsSubscriptionsListener;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;Landroid/telephony/SubscriptionManager;)V
-PLcom/android/server/stats/pull/StatsPullAtomService$ThermalEventListener;-><init>()V
-PLcom/android/server/stats/pull/StatsPullAtomService$ThermalEventListener;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService$ThermalEventListener-IA;)V
 PLcom/android/server/stats/pull/StatsPullAtomService$ThermalEventListener;->notifyThrottling(Landroid/os/Temperature;)V
-PLcom/android/server/stats/pull/StatsPullAtomService;->$r8$lambda$nNR4Gctk6hlu9qnTsuOvrymZzfk(Lcom/android/server/stats/pull/StatsPullAtomService;)V
 PLcom/android/server/stats/pull/StatsPullAtomService;->$r8$lambda$qb74jErDmbpYjoDRKkDDIHHyoHk(Lcom/android/server/stats/pull/StatsPullAtomService;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmBinderCallsStatsLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmBluetoothActivityInfoLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmBluetoothBytesTransferLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmCategorySizeLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmCpuTimePerClusterFreqLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmCpuTimePerUidLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmDataBytesTransferLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmDirectoryUsageLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmDiskIoLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmDiskStatsLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmHealthHalLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmKernelWakelockLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmLooperStatsLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmModemActivityInfoLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmProcessCpuTimeLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmProcessMemoryHighWaterMarkLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmSettingsStatsLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmSystemUptimeLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmTemperatureLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmWifiActivityInfoLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object;
+HPLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$mpullDataBytesTransferLocked(Lcom/android/server/stats/pull/StatsPullAtomService;ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$mpullHealthHalLocked(Lcom/android/server/stats/pull/StatsPullAtomService;ILjava/util/List;)I
 PLcom/android/server/stats/pull/StatsPullAtomService;-><clinit>()V
-HPLcom/android/server/stats/pull/StatsPullAtomService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/stats/pull/StatsPullAtomService;->canQueryNetworkStatsForTypeProxy()Z
-PLcom/android/server/stats/pull/StatsPullAtomService;->collectNetworkStatsSnapshotForAtom(I)Ljava/util/List;
-HPLcom/android/server/stats/pull/StatsPullAtomService;->getDataUsageBytesTransferSnapshotForOemManaged()Ljava/util/List;
+PLcom/android/server/stats/pull/StatsPullAtomService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->awaitControllerInfo(Landroid/os/SynchronousResultReceiver;)Landroid/os/Parcelable;
+PLcom/android/server/stats/pull/StatsPullAtomService;->collectNetworkStatsSnapshotForAtomLocked(I)Ljava/util/List;
+PLcom/android/server/stats/pull/StatsPullAtomService;->fetchBluetoothData()Landroid/bluetooth/BluetoothActivityEnergyInfo;
 PLcom/android/server/stats/pull/StatsPullAtomService;->getIKeystoreMetricsService()Landroid/security/metrics/IKeystoreMetrics;
 PLcom/android/server/stats/pull/StatsPullAtomService;->getIThermalService()Landroid/os/IThermalService;
-HPLcom/android/server/stats/pull/StatsPullAtomService;->getUidNetworkStatsSnapshotForTemplate(Landroid/net/NetworkTemplate;Z)Landroid/net/NetworkStats;
-PLcom/android/server/stats/pull/StatsPullAtomService;->getUidNetworkStatsSnapshotForTransport(I)Landroid/net/NetworkStats;
-PLcom/android/server/stats/pull/StatsPullAtomService;->initAndRegisterDeferredPullers()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->initAndRegisterNetworkStatsPullers()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->initMobileDataStatsPuller()V
-HPLcom/android/server/stats/pull/StatsPullAtomService;->initializePullersState()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->lambda$onBootPhase$0()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->lambda$onBootPhase$1()V
+HPLcom/android/server/stats/pull/StatsPullAtomService;->getUidNetworkStatsSnapshotForTemplateLocked(Landroid/net/NetworkTemplate;Z)Landroid/net/NetworkStats;
+PLcom/android/server/stats/pull/StatsPullAtomService;->getUidNetworkStatsSnapshotForTemplateLocked(Landroid/net/NetworkTemplate;ZJJ)Landroid/net/NetworkStats;
+PLcom/android/server/stats/pull/StatsPullAtomService;->getUidNetworkStatsSnapshotForTransportLocked(I)Landroid/net/NetworkStats;
 PLcom/android/server/stats/pull/StatsPullAtomService;->onBootPhase(I)V
 PLcom/android/server/stats/pull/StatsPullAtomService;->onStart()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerAccessibilityFloatingMenuStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerAccessibilityShortcutStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerAppOps()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerAppSize()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerAppsOnExternalStorageInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerAttributedAppOps()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBatteryCycleCount()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBatteryLevel()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBatteryVoltage()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBinderCallsStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBinderCallsStatsExceptions()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBluetoothActivityInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBluetoothBytesTransfer()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBuildInformation()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerBytesTransferByTagAndMetered()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCachedAppsHighWatermarkPuller()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCategorySize()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCoolingDevice()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuActiveTime()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuClusterTime()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuCyclesPerThreadGroupCluster()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuCyclesPerUidCluster()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuTimePerClusterFreq()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuTimePerThreadFreq()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuTimePerUid()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerCpuTimePerUidFreq()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDangerousPermissionState()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDangerousPermissionStateSampled()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDataUsageBytesTransfer()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDebugElapsedClock()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDebugFailingElapsedClock()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDeviceCalculatedPowerUse()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDirectoryUsage()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDiskIO()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerDiskStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerEventListeners()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerExternalStorageInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerFaceSettings()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerFullBatteryCapacity()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerHdrCapabilitiesPuller()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerInstalledIncrementalPackages()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerIonHeapSize()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKernelWakelock()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreAtomWithOverflow()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreCrashStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreKeyCreationWithAuthInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreKeyCreationWithGeneralInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreKeyCreationWithPurposeModesInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreKeyOperationWithGeneralInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreKeyOperationWithPurposeAndModesInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerKeystoreStorageStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerLooperStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerMediaCapabilitiesStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerMobileBytesTransfer()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerMobileBytesTransferBackground()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerModemActivityInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerNotificationRemoteViews()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerNumFacesEnrolled()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerNumFingerprintsEnrolled()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerOemManagedBytesTransfer()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerPendingIntentsPerPackagePuller()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerPinnerServiceStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerPowerProfile()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcStatsPkgProc()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessAssociation()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessCpuTime()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessDmabufMemory()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessMemoryHighWaterMark()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessMemorySnapshot()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessMemoryState()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessState()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessSystemIonHeapSize()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerProxyBytesTransferBackground()V
-HPLcom/android/server/stats/pull/StatsPullAtomService;->registerPullers()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerRemainingBatteryCapacity()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerRkpErrorStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerRoleHolder()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerRuntimeAppOpAccessMessage()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerSettingsStats()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemElapsedRealtime()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemIonHeapSize()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemMemory()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemUptime()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerTemperature()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerTimeZoneDataInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerTimeZoneDetectorState()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerUwbActivityInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerVmStat()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerWifiActivityInfo()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerWifiBytesTransfer()V
-PLcom/android/server/stats/pull/StatsPullAtomService;->registerWifiBytesTransferBackground()V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullBinderCallsStatsLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullBluetoothActivityInfoLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullBluetoothBytesTransferLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullCategorySizeLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuCyclesPerUidClusterLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimePerClusterFreqLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullCpuTimePerUidLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullDirectoryUsageLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullDiskIOLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullDiskStatsLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullKernelWakelockLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullLooperStatsLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullModemActivityInfoLocked(ILjava/util/List;)I
+HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessCpuTimeLocked(ILjava/util/List;)V+]Lcom/android/internal/os/ProcessCpuTracker;Lcom/android/internal/os/ProcessCpuTracker;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessMemoryHighWaterMarkLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessMemorySnapshot(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullSettingsStatsLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemUptimeLocked(ILjava/util/List;)V
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullTemperatureLocked(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullWifiActivityInfoLocked(ILjava/util/List;)I
 PLcom/android/server/stats/pull/StatsPullAtomService;->sliceNetworkStats(Landroid/net/NetworkStats;Ljava/util/function/Function;)Landroid/net/NetworkStats;
-PLcom/android/server/stats/pull/StatsPullAtomService;->sliceNetworkStatsByUid(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
-PLcom/android/server/stats/pull/StatsPullAtomService;->sliceNetworkStatsByUidAndFgbg(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
-PLcom/android/server/stats/pull/StatsPullAtomService;->sliceNetworkStatsByUidTagAndMetered(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+PLcom/android/server/stats/pull/netstats/NetworkStatsAccumulator;-><init>(Landroid/net/NetworkTemplate;ZJJ)V
 PLcom/android/server/stats/pull/netstats/NetworkStatsExt;-><init>(Landroid/net/NetworkStats;[IZ)V
-HPLcom/android/server/stats/pull/netstats/NetworkStatsExt;-><init>(Landroid/net/NetworkStats;[IZZZILcom/android/server/stats/pull/netstats/SubInfo;IZ)V
+PLcom/android/server/stats/pull/netstats/NetworkStatsExt;-><init>(Landroid/net/NetworkStats;[IZZZILcom/android/server/stats/pull/netstats/SubInfo;IZ)V
+HPLcom/android/server/stats/pull/netstats/NetworkStatsUtils;->fromBucket(Landroid/app/usage/NetworkStats$Bucket;)Landroid/net/NetworkStats$Entry;
+PLcom/android/server/stats/pull/netstats/NetworkStatsUtils;->fromPublicNetworkStats(Landroid/app/usage/NetworkStats;)Landroid/net/NetworkStats;
 PLcom/android/server/statusbar/SessionMonitor;-><init>(Landroid/content/Context;)V
-PLcom/android/server/statusbar/SessionMonitor;->registerSessionListener(ILcom/android/internal/statusbar/ISessionListener;)V
-PLcom/android/server/statusbar/SessionMonitor;->requireListenerPermissions(I)V
-PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;ILandroid/os/IBinder;IIZ)V
+PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;I)V
 PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda5;->run()V
-PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda6;->run()V
+PLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;IIIZ)V
+HPLcom/android/server/statusbar/StatusBarManagerService$$ExternalSyntheticLambda4;->run()V
 PLcom/android/server/statusbar/StatusBarManagerService$1;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionFinished(I)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionPending(I)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionStarting(IJJ)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->onSystemBarAttributesChanged(II[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->setIconVisibility(Ljava/lang/String;Z)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->setImeWindowStatus(ILandroid/os/IBinder;IIZ)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->setNotificationDelegate(Lcom/android/server/notification/NotificationDelegate;)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->setUdfpsRefreshRateCallback(Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback;)V
 PLcom/android/server/statusbar/StatusBarManagerService$2;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
 PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/statusbar/StatusBarManagerService$DeathRecipient-IA;)V
-PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->linkToDeath()V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmAppearance(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmAppearanceRegions(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)[Lcom/android/internal/view/AppearanceRegion;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmBehavior(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmImeBackDisposition(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmImeToken(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Landroid/os/IBinder;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmImeWindowVis(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmLetterboxDetails(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)[Lcom/android/internal/statusbar/LetterboxDetails;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmNavbarColorManagedByIme(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmPackageName(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Ljava/lang/String;
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmRequestedVisibleTypes(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmShowImeSwitcher(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$fgetmTransientBarTypes(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)I
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$msetBarAttributes(Lcom/android/server/statusbar/StatusBarManagerService$UiState;I[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->-$$Nest$msetImeWindowState(Lcom/android/server/statusbar/StatusBarManagerService$UiState;IIZLandroid/os/IBinder;)V
 PLcom/android/server/statusbar/StatusBarManagerService$UiState;-><init>()V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;-><init>(Lcom/android/server/statusbar/StatusBarManagerService$UiState-IA;)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setBarAttributes(I[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setImeWindowState(IIZLandroid/os/IBinder;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->$r8$lambda$_iMEqk__BS_LQF7mYRJx_L2r6wc(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->$r8$lambda$f4g8csS8sA9WBCaVg_JpeSlGvUA(Lcom/android/server/statusbar/StatusBarManagerService;ILandroid/os/IBinder;IIZ)V
-PLcom/android/server/statusbar/StatusBarManagerService;->$r8$lambda$nWjxl9WE61ral9X4QCz5jQbdFdw(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$fgetmBar(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/internal/statusbar/IStatusBar;
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$fgetmDeathRecipient(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$fgetmLock(Lcom/android/server/statusbar/StatusBarManagerService;)Ljava/lang/Object;
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$fputmNotificationDelegate(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/notification/NotificationDelegate;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$fputmUdfpsRefreshRateRequestCallback(Lcom/android/server/statusbar/StatusBarManagerService;Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$menforceStatusBarService(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->-$$Nest$mgetUiState(Lcom/android/server/statusbar/StatusBarManagerService;I)Lcom/android/server/statusbar/StatusBarManagerService$UiState;
 PLcom/android/server/statusbar/StatusBarManagerService;-><clinit>()V
 PLcom/android/server/statusbar/StatusBarManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/statusbar/StatusBarManagerService;->checkCanCollapseStatusBar(Ljava/lang/String;)Z
+PLcom/android/server/statusbar/StatusBarManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBar()V
 PLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBarService()V
+PLcom/android/server/statusbar/StatusBarManagerService;->enforceValidCallingUser()V
 PLcom/android/server/statusbar/StatusBarManagerService;->gatherDisableActionsLocked(II)I
 PLcom/android/server/statusbar/StatusBarManagerService;->getUiState(I)Lcom/android/server/statusbar/StatusBarManagerService$UiState;
-PLcom/android/server/statusbar/StatusBarManagerService;->lambda$notifyBarAttachChanged$2()V
-PLcom/android/server/statusbar/StatusBarManagerService;->lambda$notifyBarAttachChanged$3()V
-PLcom/android/server/statusbar/StatusBarManagerService;->lambda$setImeWindowStatus$1(ILandroid/os/IBinder;IIZ)V
-PLcom/android/server/statusbar/StatusBarManagerService;->notifyBarAttachChanged()V
+PLcom/android/server/statusbar/StatusBarManagerService;->handleSystemKey(Landroid/view/KeyEvent;)V
+PLcom/android/server/statusbar/StatusBarManagerService;->isVisibleBackgroundUserOnDisplay(I)Z
 PLcom/android/server/statusbar/StatusBarManagerService;->onDisplayChanged(I)V
+PLcom/android/server/statusbar/StatusBarManagerService;->onGlobalActionsHidden()V
+PLcom/android/server/statusbar/StatusBarManagerService;->onGlobalActionsShown()V
+PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationClear(Ljava/lang/String;ILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->publishGlobalActionsProvider()V
 PLcom/android/server/statusbar/StatusBarManagerService;->registerSessionListener(ILcom/android/internal/statusbar/ISessionListener;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;)Lcom/android/internal/statusbar/RegisterStatusBarResult;
 PLcom/android/server/statusbar/StatusBarManagerService;->setBiometicContextListener(Landroid/hardware/biometrics/IBiometricContextListener;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->setIconVisibility(Ljava/lang/String;Z)V
-PLcom/android/server/statusbar/StatusBarManagerService;->setImeWindowStatus(ILandroid/os/IBinder;IIZ)V
+PLcom/android/server/statusbar/StatusBarManagerService;->setImeWindowStatus(IIIZ)V
 PLcom/android/server/statusbar/StatusBarManagerService;->setUdfpsRefreshRateCallback(Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback;)V
+PLcom/android/server/statusbar/TileRequestTracker$$ExternalSyntheticLambda0;-><init>(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/statusbar/TileRequestTracker$1;-><init>(Lcom/android/server/statusbar/TileRequestTracker;)V
+PLcom/android/server/statusbar/TileRequestTracker$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/statusbar/TileRequestTracker;-><init>(Landroid/content/Context;)V
+PLcom/android/server/storage/AppCollector$BackgroundHandler;-><init>(Lcom/android/server/storage/AppCollector;Landroid/os/Looper;Landroid/os/storage/VolumeInfo;Landroid/content/pm/PackageManager;Landroid/os/UserManager;Landroid/app/usage/StorageStatsManager;)V
+PLcom/android/server/storage/AppCollector$BackgroundHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/storage/AppCollector;-><init>(Lcom/android/server/storage/DiskStatsLoggingService;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/storage/CacheQuotaStrategy$1$1;-><init>(Lcom/android/server/storage/CacheQuotaStrategy$1;Landroid/os/IBinder;)V
+PLcom/android/server/storage/CacheQuotaStrategy$1$1;->run()V
+PLcom/android/server/storage/CacheQuotaStrategy$1;-><init>(Lcom/android/server/storage/CacheQuotaStrategy;)V
+PLcom/android/server/storage/CacheQuotaStrategy$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/storage/CacheQuotaStrategy;->-$$Nest$mgetUnfulfilledRequests(Lcom/android/server/storage/CacheQuotaStrategy;)Ljava/util/List;
 PLcom/android/server/storage/CacheQuotaStrategy;-><init>(Landroid/content/Context;Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/pm/Installer;Landroid/util/ArrayMap;)V
-PLcom/android/server/storage/CacheQuotaStrategy;->disconnectService()V
+PLcom/android/server/storage/CacheQuotaStrategy;->getRequestFromXml(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/app/usage/CacheQuotaHint;
+PLcom/android/server/storage/CacheQuotaStrategy;->onResult(Landroid/os/Bundle;)V
 PLcom/android/server/storage/CacheQuotaStrategy;->pushProcessedQuotas(Ljava/util/List;)V
 PLcom/android/server/storage/CacheQuotaStrategy;->readFromXml(Ljava/io/InputStream;)Landroid/util/Pair;
+PLcom/android/server/storage/CacheQuotaStrategy;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/util/List;J)V
 PLcom/android/server/storage/CacheQuotaStrategy;->setupQuotasFromFile()J
 PLcom/android/server/storage/DeviceStorageMonitorService$1;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService;Landroid/os/Looper;)V
 PLcom/android/server/storage/DeviceStorageMonitorService$1;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/storage/DeviceStorageMonitorService$2;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService;)V
 PLcom/android/server/storage/DeviceStorageMonitorService$3;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService;)V
-PLcom/android/server/storage/DeviceStorageMonitorService$CacheFileDeletedObserver;-><init>()V
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->-$$Nest$smisEntering(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->-$$Nest$smisLeaving(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService$State;-><init>()V
-PLcom/android/server/storage/DeviceStorageMonitorService$State;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService$State-IA;)V
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->isEntering(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->isLeaving(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService;->-$$Nest$mcheckLow(Lcom/android/server/storage/DeviceStorageMonitorService;)V
+PLcom/android/server/storage/DeviceStorageMonitorService$3;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/storage/DeviceStorageMonitorService;-><clinit>()V
 PLcom/android/server/storage/DeviceStorageMonitorService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/storage/DeviceStorageMonitorService;->checkLow()V
-PLcom/android/server/storage/DeviceStorageMonitorService;->findOrCreateState(Ljava/util/UUID;)Lcom/android/server/storage/DeviceStorageMonitorService$State;
 PLcom/android/server/storage/DeviceStorageMonitorService;->onStart()V
-HPLcom/android/server/storage/DeviceStorageMonitorService;->updateBroadcasts(Landroid/os/storage/VolumeInfo;III)V
-PLcom/android/server/storage/DeviceStorageMonitorService;->updateNotifications(Landroid/os/storage/VolumeInfo;II)V
+PLcom/android/server/storage/DiskStatsFileLogger;->addAppsToJson(Lorg/json/JSONObject;)V
+PLcom/android/server/storage/DiskStatsFileLogger;->dumpToFile(Ljava/io/File;)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;-><clinit>()V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;-><init>()V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->run()V
 PLcom/android/server/storage/DiskStatsLoggingService;-><clinit>()V
-PLcom/android/server/storage/DiskStatsLoggingService;->schedule(Landroid/content/Context;)V
+PLcom/android/server/storage/DiskStatsLoggingService;-><init>()V
+PLcom/android/server/storage/DiskStatsLoggingService;->isDumpsysTaskEnabled(Landroid/content/ContentResolver;)Z
+PLcom/android/server/storage/DiskStatsLoggingService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/storage/FileCollector;-><clinit>()V
+PLcom/android/server/storage/FileCollector;->collectFiles(Ljava/io/File;Lcom/android/server/storage/FileCollector$MeasurementResult;)V
+PLcom/android/server/storage/FileCollector;->getMeasurementResult(Lcom/android/server/storage/DiskStatsLoggingService;)Lcom/android/server/storage/FileCollector$MeasurementResult;
 PLcom/android/server/storage/StorageSessionController;-><init>(Landroid/content/Context;)V
 PLcom/android/server/storage/StorageSessionController;->getConnectionUserIdForVolume(Landroid/os/storage/VolumeInfo;)I
-PLcom/android/server/storage/StorageSessionController;->getExternalStorageServiceComponentName()Landroid/content/ComponentName;
-PLcom/android/server/storage/StorageSessionController;->initExternalStorageServiceComponent()V
-PLcom/android/server/storage/StorageSessionController;->isEmulatedOrPublic(Landroid/os/storage/VolumeInfo;)Z
-PLcom/android/server/storage/StorageSessionController;->isSupportedVolume(Landroid/os/storage/VolumeInfo;)Z
 PLcom/android/server/storage/StorageSessionController;->notifyVolumeStateChanged(Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/storage/StorageSessionController;->onReset(Landroid/os/IVold;Ljava/lang/Runnable;)V
 PLcom/android/server/storage/StorageSessionController;->onUnlockUser(I)V
 PLcom/android/server/storage/StorageSessionController;->onVolumeMount(Landroid/os/ParcelFileDescriptor;Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/storage/StorageSessionController;->resolveExternalStorageServiceAsUser(I)Landroid/content/pm/ServiceInfo;
 PLcom/android/server/storage/StorageSessionController;->shouldHandle(Landroid/os/storage/VolumeInfo;)Z
-PLcom/android/server/storage/StorageSessionController;->supportsExternalStorage(I)Z
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/storage/StorageUserConnection$Session;Landroid/os/ParcelFileDescriptor;)V
+PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda1;-><init>(Ljava/lang/String;Landroid/os/storage/StorageVolume;)V
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda1;->run(Landroid/service/storage/IExternalStorageService;Landroid/os/RemoteCallback;)V
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/storage/StorageUserConnection$ActiveConnection;Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda3;->onResult(Landroid/os/Bundle;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda4;-><init>(Ljava/lang/String;Landroid/os/storage/StorageVolume;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda4;->run(Landroid/service/storage/IExternalStorageService;Landroid/os/RemoteCallback;)V
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/storage/StorageUserConnection$AsyncStorageServiceCall;Landroid/os/RemoteCallback;Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$1;-><init>(Lcom/android/server/storage/StorageUserConnection$ActiveConnection;Ljava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection$1;->handleConnection(Landroid/os/IBinder;)V
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->$r8$lambda$FmJboNYjokBfJEVj67KD2wZpm14(Lcom/android/server/storage/StorageUserConnection$AsyncStorageServiceCall;Landroid/os/RemoteCallback;Ljava/util/concurrent/CompletableFuture;Landroid/service/storage/IExternalStorageService;)Ljava/util/concurrent/CompletionStage;
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->$r8$lambda$GXIyazwVX_rUkeKdlCrCHRfXRB8(Lcom/android/server/storage/StorageUserConnection$ActiveConnection;Ljava/util/concurrent/CompletableFuture;Landroid/os/Bundle;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->$r8$lambda$ZUID6_fjlmkWslb1Z-5VMQs3jZA(Lcom/android/server/storage/StorageUserConnection$Session;Landroid/os/ParcelFileDescriptor;Landroid/service/storage/IExternalStorageService;Landroid/os/RemoteCallback;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->$r8$lambda$aiyAMsuUyqAtzW9JiGlGmzYO5Ms(Ljava/lang/String;Landroid/os/storage/StorageVolume;Landroid/service/storage/IExternalStorageService;Landroid/os/RemoteCallback;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->-$$Nest$fgetmLock(Lcom/android/server/storage/StorageUserConnection$ActiveConnection;)Ljava/lang/Object;
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection;-><init>(Lcom/android/server/storage/StorageUserConnection;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;-><init>(Lcom/android/server/storage/StorageUserConnection;Lcom/android/server/storage/StorageUserConnection$ActiveConnection-IA;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->connectIfNeeded()Ljava/util/concurrent/CompletableFuture;
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->lambda$notifyVolumeStateChanged$4(Ljava/lang/String;Landroid/os/storage/StorageVolume;Landroid/service/storage/IExternalStorageService;Landroid/os/RemoteCallback;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->lambda$startSession$2(Lcom/android/server/storage/StorageUserConnection$Session;Landroid/os/ParcelFileDescriptor;Landroid/service/storage/IExternalStorageService;Landroid/os/RemoteCallback;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->lambda$waitForAsync$1(Lcom/android/server/storage/StorageUserConnection$AsyncStorageServiceCall;Landroid/os/RemoteCallback;Ljava/util/concurrent/CompletableFuture;Landroid/service/storage/IExternalStorageService;)Ljava/util/concurrent/CompletionStage;
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->lambda$waitForAsyncVoid$0(Ljava/util/concurrent/CompletableFuture;Landroid/os/Bundle;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->notifyVolumeStateChanged(Ljava/lang/String;Landroid/os/storage/StorageVolume;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->setResult(Landroid/os/Bundle;Ljava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->startSession(Lcom/android/server/storage/StorageUserConnection$Session;Landroid/os/ParcelFileDescriptor;)V
-PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->waitForAsync(Lcom/android/server/storage/StorageUserConnection$AsyncStorageServiceCall;Landroid/os/RemoteCallback;Ljava/util/concurrent/CompletableFuture;Ljava/util/ArrayList;J)Ljava/lang/Object;
 PLcom/android/server/storage/StorageUserConnection$ActiveConnection;->waitForAsyncVoid(Lcom/android/server/storage/StorageUserConnection$AsyncStorageServiceCall;)V
 PLcom/android/server/storage/StorageUserConnection$Session;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/storage/StorageUserConnection;->-$$Nest$fgetmContext(Lcom/android/server/storage/StorageUserConnection;)Landroid/content/Context;
-PLcom/android/server/storage/StorageUserConnection;->-$$Nest$fgetmHandlerThread(Lcom/android/server/storage/StorageUserConnection;)Landroid/os/HandlerThread;
-PLcom/android/server/storage/StorageUserConnection;->-$$Nest$fgetmSessionController(Lcom/android/server/storage/StorageUserConnection;)Lcom/android/server/storage/StorageSessionController;
-PLcom/android/server/storage/StorageUserConnection;->-$$Nest$fgetmUserId(Lcom/android/server/storage/StorageUserConnection;)I
 PLcom/android/server/storage/StorageUserConnection;-><init>(Landroid/content/Context;ILcom/android/server/storage/StorageSessionController;)V
 PLcom/android/server/storage/StorageUserConnection;->notifyVolumeStateChanged(Ljava/lang/String;Landroid/os/storage/StorageVolume;)V
-PLcom/android/server/storage/StorageUserConnection;->startSession(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/tare/Agent$ActionAffordabilityNote;->-$$Nest$msetNewAffordability(Lcom/android/server/tare/Agent$ActionAffordabilityNote;Z)V
-HPLcom/android/server/tare/Agent$ActionAffordabilityNote;-><init>(Lcom/android/server/tare/EconomyManagerInternal$ActionBill;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomicPolicy;)V
-HPLcom/android/server/tare/Agent$ActionAffordabilityNote;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/tare/Agent$ActionAffordabilityNote;->hashCode()I
-PLcom/android/server/tare/Agent$ActionAffordabilityNote;->setNewAffordability(Z)V
-PLcom/android/server/tare/Agent$AgentHandler;-><init>(Lcom/android/server/tare/Agent;Landroid/os/Looper;)V
-PLcom/android/server/tare/Agent$BalanceThresholdAlarmQueue;-><init>(Lcom/android/server/tare/Agent;Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/tare/Agent$BalanceThresholdAlarmQueue;-><init>(Lcom/android/server/tare/Agent;Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/tare/Agent$BalanceThresholdAlarmQueue-IA;)V
-PLcom/android/server/tare/Agent$OngoingEventUpdater;-><init>(Lcom/android/server/tare/Agent;)V
-PLcom/android/server/tare/Agent$OngoingEventUpdater;-><init>(Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent$OngoingEventUpdater-IA;)V
-PLcom/android/server/tare/Agent$TotalDeltaCalculator;-><init>(Lcom/android/server/tare/Agent;)V
-PLcom/android/server/tare/Agent$TotalDeltaCalculator;-><init>(Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent$TotalDeltaCalculator-IA;)V
-PLcom/android/server/tare/Agent$TrendCalculator;-><init>()V
-PLcom/android/server/tare/Agent;-><clinit>()V
-PLcom/android/server/tare/Agent;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Analyst;)V
-HPLcom/android/server/tare/Agent;->registerAffordabilityChangeListenerLocked(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V
-HPLcom/android/server/tare/Agent;->scheduleBalanceCheckLocked(ILjava/lang/String;)V
-HPLcom/android/server/tare/Agent;->unregisterAffordabilityChangeListenerLocked(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V
-PLcom/android/server/tare/AlarmManagerEconomicPolicy;-><clinit>()V
-PLcom/android/server/tare/AlarmManagerEconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/EconomicPolicy$Injector;)V
-PLcom/android/server/tare/AlarmManagerEconomicPolicy;->getAction(I)Lcom/android/server/tare/EconomicPolicy$Action;
-PLcom/android/server/tare/AlarmManagerEconomicPolicy;->getCostModifiers()[I
-HPLcom/android/server/tare/AlarmManagerEconomicPolicy;->loadConstants(Ljava/lang/String;Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/tare/Analyst;-><clinit>()V
-PLcom/android/server/tare/Analyst;-><init>()V
-PLcom/android/server/tare/Analyst;-><init>(Lcom/android/internal/app/IBatteryStats;)V
-PLcom/android/server/tare/ChargingModifier$ChargingTracker;-><init>(Lcom/android/server/tare/ChargingModifier;)V
-PLcom/android/server/tare/ChargingModifier$ChargingTracker;-><init>(Lcom/android/server/tare/ChargingModifier;Lcom/android/server/tare/ChargingModifier$ChargingTracker-IA;)V
-PLcom/android/server/tare/ChargingModifier;-><clinit>()V
-PLcom/android/server/tare/ChargingModifier;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;-><init>()V
-PLcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;->isPolicyEnabled(ILandroid/provider/DeviceConfig$Properties;)Z
-PLcom/android/server/tare/CompleteEconomicPolicy;-><clinit>()V
-PLcom/android/server/tare/CompleteEconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/CompleteEconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;)V
-HPLcom/android/server/tare/CompleteEconomicPolicy;->getAction(I)Lcom/android/server/tare/EconomicPolicy$Action;
-PLcom/android/server/tare/CompleteEconomicPolicy;->getCostModifiers()[I
-PLcom/android/server/tare/CompleteEconomicPolicy;->isPolicyEnabled(I)Z
-PLcom/android/server/tare/DeviceIdleModifier$DeviceIdleTracker;-><init>(Lcom/android/server/tare/DeviceIdleModifier;)V
-PLcom/android/server/tare/DeviceIdleModifier;-><clinit>()V
-PLcom/android/server/tare/DeviceIdleModifier;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/EconomicPolicy$Action;-><init>(IJJ)V
-PLcom/android/server/tare/EconomicPolicy$Action;-><init>(IJJZ)V
-PLcom/android/server/tare/EconomicPolicy$Injector;-><init>()V
-PLcom/android/server/tare/EconomicPolicy$Reward;-><init>(IJJJ)V
-PLcom/android/server/tare/EconomicPolicy;-><clinit>()V
-PLcom/android/server/tare/EconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/EconomicPolicy;->getConstantAsCake(Ljava/lang/String;J)J
-HPLcom/android/server/tare/EconomicPolicy;->getConstantAsCake(Ljava/lang/String;JJ)J
-PLcom/android/server/tare/EconomicPolicy;->initModifier(ILcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill;->$r8$lambda$jbYRct5AtAlpj4cxb-8ZcW2zmwE(Lcom/android/server/tare/EconomyManagerInternal$AnticipatedAction;)I
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill;-><clinit>()V
-HPLcom/android/server/tare/EconomyManagerInternal$ActionBill;-><init>(Ljava/util/List;)V
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill;->getAnticipatedActions()Ljava/util/List;
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill;->hashCode()I
-PLcom/android/server/tare/EconomyManagerInternal$ActionBill;->lambda$static$0(Lcom/android/server/tare/EconomyManagerInternal$AnticipatedAction;)I
-PLcom/android/server/tare/EconomyManagerInternal$AnticipatedAction;-><init>(IIJ)V
-PLcom/android/server/tare/EconomyManagerInternal$AnticipatedAction;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/tare/EconomyManagerInternal$AnticipatedAction;->hashCode()I
-PLcom/android/server/tare/InternalResourceService$1;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/InternalResourceService$2;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/InternalResourceService$3;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/InternalResourceService$4;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/InternalResourceService$ConfigObserver;-><init>(Lcom/android/server/tare/InternalResourceService;Landroid/os/Handler;Landroid/content/Context;)V
-PLcom/android/server/tare/InternalResourceService$ConfigObserver;->getAllDeviceConfigProperties()Landroid/provider/DeviceConfig$Properties;
-PLcom/android/server/tare/InternalResourceService$ConfigObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/tare/InternalResourceService$ConfigObserver;->start()V
-PLcom/android/server/tare/InternalResourceService$ConfigObserver;->updateEnabledStatus()V
-PLcom/android/server/tare/InternalResourceService$EconomyManagerStub;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/InternalResourceService$IrsHandler;-><init>(Lcom/android/server/tare/InternalResourceService;Landroid/os/Looper;)V
-PLcom/android/server/tare/InternalResourceService$IrsHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/tare/InternalResourceService$LocalService;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/InternalResourceService$LocalService;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService$LocalService-IA;)V
-PLcom/android/server/tare/InternalResourceService$LocalService;->getEnabledMode(I)I
-PLcom/android/server/tare/InternalResourceService$LocalService;->noteInstantaneousEvent(ILjava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/tare/InternalResourceService$LocalService;->noteOngoingEventStarted(ILjava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/tare/InternalResourceService$LocalService;->noteOngoingEventStopped(ILjava/lang/String;ILjava/lang/String;)V
-HPLcom/android/server/tare/InternalResourceService$LocalService;->registerAffordabilityChangeListener(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V
-PLcom/android/server/tare/InternalResourceService$LocalService;->registerTareStateChangeListener(Lcom/android/server/tare/EconomyManagerInternal$TareStateChangeListener;I)V
-HPLcom/android/server/tare/InternalResourceService$LocalService;->unregisterAffordabilityChangeListener(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V
-HPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmAgent(Lcom/android/server/tare/InternalResourceService;)Lcom/android/server/tare/Agent;
-HPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmEnabledMode(Lcom/android/server/tare/InternalResourceService;)I
-PLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmHandler(Lcom/android/server/tare/InternalResourceService;)Landroid/os/Handler;
-HPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmLock(Lcom/android/server/tare/InternalResourceService;)Ljava/lang/Object;
-PLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmStateChangeListeners(Lcom/android/server/tare/InternalResourceService;)Landroid/util/SparseSetArray;
-HPLcom/android/server/tare/InternalResourceService;->-$$Nest$misTareSupported(Lcom/android/server/tare/InternalResourceService;)Z
-PLcom/android/server/tare/InternalResourceService;-><clinit>()V
-HPLcom/android/server/tare/InternalResourceService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/tare/InternalResourceService;->getCompleteEconomicPolicyLocked()Lcom/android/server/tare/CompleteEconomicPolicy;
-PLcom/android/server/tare/InternalResourceService;->getEnabledMode()I
-PLcom/android/server/tare/InternalResourceService;->getEnabledMode(I)I
-PLcom/android/server/tare/InternalResourceService;->getLock()Ljava/lang/Object;
-HPLcom/android/server/tare/InternalResourceService;->getUid(ILjava/lang/String;)I
-HPLcom/android/server/tare/InternalResourceService;->isSystem(ILjava/lang/String;)Z
-HPLcom/android/server/tare/InternalResourceService;->isTareSupported()Z
-PLcom/android/server/tare/InternalResourceService;->onBootPhase(I)V
-PLcom/android/server/tare/InternalResourceService;->onBootPhaseBootCompleted()V
-PLcom/android/server/tare/InternalResourceService;->onBootPhaseSystemServicesReady()V
-PLcom/android/server/tare/InternalResourceService;->onBootPhaseThirdPartyAppsCanStart()V
-PLcom/android/server/tare/InternalResourceService;->onStart()V
-PLcom/android/server/tare/JobSchedulerEconomicPolicy;-><clinit>()V
-PLcom/android/server/tare/JobSchedulerEconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/EconomicPolicy$Injector;)V
-PLcom/android/server/tare/JobSchedulerEconomicPolicy;->getAction(I)Lcom/android/server/tare/EconomicPolicy$Action;
-PLcom/android/server/tare/JobSchedulerEconomicPolicy;->getCostModifiers()[I
-HPLcom/android/server/tare/JobSchedulerEconomicPolicy;->loadConstants(Ljava/lang/String;Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/tare/Modifier;-><init>()V
-PLcom/android/server/tare/PowerSaveModeModifier$PowerSaveModeTracker;-><init>(Lcom/android/server/tare/PowerSaveModeModifier;)V
-PLcom/android/server/tare/PowerSaveModeModifier$PowerSaveModeTracker;-><init>(Lcom/android/server/tare/PowerSaveModeModifier;Lcom/android/server/tare/PowerSaveModeModifier$PowerSaveModeTracker-IA;)V
-PLcom/android/server/tare/PowerSaveModeModifier;->-$$Nest$fgetmIrs(Lcom/android/server/tare/PowerSaveModeModifier;)Lcom/android/server/tare/InternalResourceService;
-PLcom/android/server/tare/PowerSaveModeModifier;-><clinit>()V
-PLcom/android/server/tare/PowerSaveModeModifier;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/ProcessStateModifier$1;-><init>(Lcom/android/server/tare/ProcessStateModifier;)V
-PLcom/android/server/tare/ProcessStateModifier;-><clinit>()V
-PLcom/android/server/tare/ProcessStateModifier;-><init>(Lcom/android/server/tare/InternalResourceService;)V
-PLcom/android/server/tare/Scribe$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/tare/Scribe;)V
-PLcom/android/server/tare/Scribe$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/tare/Scribe;)V
-PLcom/android/server/tare/Scribe;-><clinit>()V
-PLcom/android/server/tare/Scribe;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/Analyst;)V
-PLcom/android/server/tare/Scribe;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/Analyst;Ljava/io/File;)V
-PLcom/android/server/tare/TareHandlerThread;-><init>()V
-PLcom/android/server/tare/TareHandlerThread;->ensureThreadLocked()V
-PLcom/android/server/tare/TareHandlerThread;->get()Lcom/android/server/tare/TareHandlerThread;
-PLcom/android/server/tare/TareHandlerThread;->getExecutor()Ljava/util/concurrent/Executor;
+PLcom/android/server/supervision/SupervisionService$Lifecycle;-><init>(Landroid/content/Context;)V
+PLcom/android/server/supervision/SupervisionService$Lifecycle;->onStart()V
+PLcom/android/server/supervision/SupervisionService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/supervision/SupervisionService$SupervisionManagerInternalImpl;-><init>(Lcom/android/server/supervision/SupervisionService;)V
+PLcom/android/server/supervision/SupervisionService$UserLifecycleListener;-><init>(Lcom/android/server/supervision/SupervisionService;)V
+PLcom/android/server/supervision/SupervisionService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/supervision/SupervisionService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/supervision/SupervisionService;->getUserDataLocked(I)Lcom/android/server/supervision/SupervisionUserData;
+PLcom/android/server/supervision/SupervisionUserData;-><init>(I)V
+PLcom/android/server/supervision/SupervisionUserData;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/telecom/InternalServiceRepository$1;-><init>(Lcom/android/server/telecom/InternalServiceRepository;)V
 PLcom/android/server/telecom/InternalServiceRepository;-><init>(Lcom/android/server/DeviceIdleInternal;)V
-PLcom/android/server/telecom/InternalServiceRepository;->ensureSystemProcess()V
 PLcom/android/server/telecom/InternalServiceRepository;->getDeviceIdleController()Lcom/android/internal/telecom/IDeviceIdleControllerAdapter;
-PLcom/android/server/telecom/TelecomLoaderService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/TelecomLoaderService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/TelecomLoaderService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/telecom/TelecomLoaderService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/telecom/TelecomLoaderService;I)V
 PLcom/android/server/telecom/TelecomLoaderService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/telecom/TelecomLoaderService$$ExternalSyntheticLambda3;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/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
 PLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;-><init>(Lcom/android/server/telecom/TelecomLoaderService;Lcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection-IA;)V
 PLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/telecom/TelecomLoaderService;->-$$Nest$fgetmContext(Lcom/android/server/telecom/TelecomLoaderService;)Landroid/content/Context;
-PLcom/android/server/telecom/TelecomLoaderService;->-$$Nest$fgetmDefaultSimCallManagerRequests(Lcom/android/server/telecom/TelecomLoaderService;)Landroid/util/IntArray;
-PLcom/android/server/telecom/TelecomLoaderService;->-$$Nest$fgetmLock(Lcom/android/server/telecom/TelecomLoaderService;)Ljava/lang/Object;
-PLcom/android/server/telecom/TelecomLoaderService;->-$$Nest$fgetmServiceRepo(Lcom/android/server/telecom/TelecomLoaderService;)Lcom/android/server/telecom/InternalServiceRepository;
-PLcom/android/server/telecom/TelecomLoaderService;->-$$Nest$mupdateSimCallManagerPermissions(Lcom/android/server/telecom/TelecomLoaderService;I)V
 PLcom/android/server/telecom/TelecomLoaderService;-><clinit>()V
 PLcom/android/server/telecom/TelecomLoaderService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/telecom/TelecomLoaderService;->connectToTelecom()V
 PLcom/android/server/telecom/TelecomLoaderService;->onBootPhase(I)V
 PLcom/android/server/telecom/TelecomLoaderService;->onStart()V
-PLcom/android/server/telecom/TelecomLoaderService;->registerCarrierConfigChangedReceiver()V
-PLcom/android/server/telecom/TelecomLoaderService;->registerDefaultAppNotifier()V
-PLcom/android/server/telecom/TelecomLoaderService;->registerDefaultAppProviders()V
-PLcom/android/server/telecom/TelecomLoaderService;->setupServiceRepository()V
 PLcom/android/server/telecom/TelecomLoaderService;->updateSimCallManagerPermissions(I)V
 PLcom/android/server/testharness/TestHarnessModeService$1;-><init>(Lcom/android/server/testharness/TestHarnessModeService;)V
-PLcom/android/server/testharness/TestHarnessModeService;-><clinit>()V
 PLcom/android/server/testharness/TestHarnessModeService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/testharness/TestHarnessModeService;->completeTestHarnessModeSetup()V
 PLcom/android/server/testharness/TestHarnessModeService;->getPersistentDataBlock()Lcom/android/server/pdb/PersistentDataBlockManagerInternal;
-PLcom/android/server/testharness/TestHarnessModeService;->getTestHarnessModeData()[B
 PLcom/android/server/testharness/TestHarnessModeService;->onBootPhase(I)V
 PLcom/android/server/testharness/TestHarnessModeService;->onStart()V
-PLcom/android/server/testharness/TestHarnessModeService;->setUpTestHarnessMode()V
-PLcom/android/server/testharness/TestHarnessModeService;->showNotificationIfEnabled()V
-PLcom/android/server/textclassifier/FixedSizeQueue;-><init>(ILcom/android/server/textclassifier/FixedSizeQueue$OnEntryEvictedListener;)V
-PLcom/android/server/textclassifier/FixedSizeQueue;->isEmpty()Z
+PLcom/android/server/textclassifier/FixedSizeQueue;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$$ExternalSyntheticLambda0;)V
+PLcom/android/server/textclassifier/FixedSizeQueue;->add(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)V
 PLcom/android/server/textclassifier/IconsContentProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/textclassifier/IconsContentProvider;)V
 PLcom/android/server/textclassifier/IconsContentProvider;-><init>()V
 PLcom/android/server/textclassifier/IconsContentProvider;->onCreate()Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$1;-><init>()V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda0;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda11;-><init>(Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda12;-><init>(Ljava/lang/String;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda1;->runOrThrow()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$2;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$CallbackWrapper;-><init>(Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$CallbackWrapper;->onSuccess(Landroid/os/Bundle;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStart()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->processAnyPendingWork(I)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->updatePackageStateForUser(I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;-><init>(Ljava/lang/String;Lcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda1;Lcom/android/server/textclassifier/TextClassificationManagerService$$ExternalSyntheticLambda11;Landroid/os/IBinder;Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->-$$Nest$mbindIfHasPendingRequestsLocked(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->-$$Nest$mupdatePackageStateLocked(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->init(Landroid/service/textclassifier/ITextClassifierService;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;->-$$Nest$mdump(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->-$$Nest$mhandlePendingRequestsLocked(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)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$ServiceState-IA;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindIfHasPendingRequestsLocked()Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->createBindServiceFlags(Ljava/lang/String;)I
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindLocked()Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->isPackageInstalledForUser()Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->isServiceEnabledForUser()Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->updatePackageStateLocked()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache$1;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache$2;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;I)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache$2;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;-><init>(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/content/Context;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->registerObserver()V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->-$$Nest$mupdatePackageStateLocked(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationConstants;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$$ExternalSyntheticLambda0;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILcom/android/server/textclassifier/TextClassificationManagerService$UserState-IA;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindIfHasPendingRequestsLocked()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;->updatePackageStateLocked()V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$fgetmContext(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/content/Context;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$fgetmDefaultTextClassifierPackage(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$fgetmLock(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/Object;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$fgetmSettings(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/view/textclassifier/TextClassificationConstants;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$fgetmSystemTextClassifierPackage(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$mgetUserStateLocked(Lcom/android/server/textclassifier/TextClassificationManagerService;I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->-$$Nest$mstartListenSettings(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceStateLocked(Z)Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->onTextClassifierServicePackageOverrideChangedLocked()V
 PLcom/android/server/textclassifier/TextClassificationManagerService;-><clinit>()V
 PLcom/android/server/textclassifier/TextClassificationManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/textclassifier/TextClassificationManagerService-IA;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->getUserStateLocked(I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->startListenSettings()V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->startTrackingPackageChanges()V
-PLcom/android/server/textservices/TextServicesManagerInternal$1;-><init>()V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->handleRequest(Landroid/view/textclassifier/SystemTextClassifierMetadata;ZZLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Ljava/lang/String;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textservices/TextServicesManagerInternal$1;->getCurrentSpellCheckerForUser(I)Landroid/view/textservice/SpellCheckerInfo;
 PLcom/android/server/textservices/TextServicesManagerInternal;-><clinit>()V
-PLcom/android/server/textservices/TextServicesManagerInternal;-><init>()V
-PLcom/android/server/textservices/TextServicesManagerInternal;->get()Lcom/android/server/textservices/TextServicesManagerInternal;
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle$1;-><init>(Lcom/android/server/textservices/TextServicesManagerService$Lifecycle;)V
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle$1;->getCurrentSpellCheckerForUser(I)Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->-$$Nest$fgetmService(Lcom/android/server/textservices/TextServicesManagerService$Lifecycle;)Lcom/android/server/textservices/TextServicesManagerService;
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->onStart()V
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->-$$Nest$fgetmSpellCheckerList(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Ljava/util/ArrayList;
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->-$$Nest$minitializeTextServicesData(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;-><init>(ILandroid/content/Context;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getCurrentSpellChecker()Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getInt(Ljava/lang/String;I)I
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getSelectedSpellChecker()Ljava/lang/String;
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getSelectedSpellCheckerSubtype(I)I
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->initializeTextServicesData()V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->putInt(Ljava/lang/String;I)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->putSelectedSpellChecker(Ljava/lang/String;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->putSelectedSpellCheckerSubtype(I)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->putString(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->setCurrentSpellChecker(Landroid/view/textservice/SpellCheckerInfo;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;-><init>(Lcom/android/server/textservices/TextServicesManagerService;)V
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;-><init>(Lcom/android/server/textservices/TextServicesManagerService;Lcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor-IA;)V
-PLcom/android/server/textservices/TextServicesManagerService;->-$$Nest$mgetCurrentSpellCheckerForUser(Lcom/android/server/textservices/TextServicesManagerService;I)Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService;-><clinit>()V
-PLcom/android/server/textservices/TextServicesManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textservices/TextServicesManagerService;->findAvailSystemSpellCheckerLocked(Ljava/lang/String;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService;->getCurrentSpellCheckerForUser(I)Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype;
-PLcom/android/server/textservices/TextServicesManagerService;->getDataFromCallingUserIdLocked(I)Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;
-PLcom/android/server/textservices/TextServicesManagerService;->initializeInternalStateLocked(I)V
-PLcom/android/server/textservices/TextServicesManagerService;->onUnlockUser(I)V
-PLcom/android/server/textservices/TextServicesManagerService;->setCurrentSpellCheckerLocked(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V
-PLcom/android/server/textservices/TextServicesManagerService;->verifyUser(I)V
-PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService;-><clinit>()V
-PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerService;Ljava/lang/Object;I)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$$ExternalSyntheticLambda1;->binderDied()V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$1;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection$1;->disconnect()V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;->$r8$lambda$3-yVGMsgcEZQX1SgaZp7W8CoFnU(Lcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;Landroid/speech/tts/ITextToSpeechService;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;-><init>(Landroid/content/Context;ILjava/lang/String;Landroid/speech/tts/ITextToSpeechSessionCallback;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;->getAutoDisconnectTimeoutMs()J
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;->start(Landroid/content/Context;ILjava/lang/String;Landroid/speech/tts/ITextToSpeechSessionCallback;)V
+PLcom/android/server/texttospeech/TextToSpeechManagerPerUserService$TextToSpeechSessionConnection;->unbindEngine(Ljava/lang/String;)V
 PLcom/android/server/texttospeech/TextToSpeechManagerService$TextToSpeechManagerServiceStub;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerService;)V
-PLcom/android/server/texttospeech/TextToSpeechManagerService$TextToSpeechManagerServiceStub;-><init>(Lcom/android/server/texttospeech/TextToSpeechManagerService;Lcom/android/server/texttospeech/TextToSpeechManagerService$TextToSpeechManagerServiceStub-IA;)V
-PLcom/android/server/texttospeech/TextToSpeechManagerService;-><clinit>()V
+PLcom/android/server/texttospeech/TextToSpeechManagerService$TextToSpeechManagerServiceStub;->createSession(Ljava/lang/String;Landroid/speech/tts/ITextToSpeechSessionCallback;)V
 PLcom/android/server/texttospeech/TextToSpeechManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/texttospeech/TextToSpeechManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/texttospeech/TextToSpeechManagerService;->newServiceLocked(IZ)Lcom/android/server/texttospeech/TextToSpeechManagerPerUserService;
 PLcom/android/server/texttospeech/TextToSpeechManagerService;->onStart()V
-PLcom/android/server/timedetector/ConfigurationInternal$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/timedetector/ConfigurationInternal$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmAutoDetectionEnabledSetting(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmAutoDetectionSupported(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmAutoSuggestionLowerBound(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Ljava/time/Instant;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmManualSuggestionLowerBound(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Ljava/time/Instant;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmOriginPriorities(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)[I
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmSuggestionUpperBound(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Ljava/time/Instant;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmSystemClockConfidenceThresholdMillis(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)I
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmSystemClockUpdateThresholdMillis(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)I
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmUserConfigAllowed(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmUserId(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)I
 PLcom/android/server/timedetector/ConfigurationInternal$Builder;-><init>(I)V
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->build()Lcom/android/server/timedetector/ConfigurationInternal;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setAutoDetectionEnabledSetting(Z)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setAutoDetectionSupported(Z)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setAutoSuggestionLowerBound(Ljava/time/Instant;)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setManualSuggestionLowerBound(Ljava/time/Instant;)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setOriginPriorities([I)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setSuggestionUpperBound(Ljava/time/Instant;)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setSystemClockConfidenceThresholdMillis(I)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setSystemClockUpdateThresholdMillis(I)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timedetector/ConfigurationInternal$Builder;->setUserConfigAllowed(Z)Lcom/android/server/timedetector/ConfigurationInternal$Builder;
 PLcom/android/server/timedetector/ConfigurationInternal;-><init>(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)V
-PLcom/android/server/timedetector/ConfigurationInternal;-><init>(Lcom/android/server/timedetector/ConfigurationInternal$Builder;Lcom/android/server/timedetector/ConfigurationInternal-IA;)V
+PLcom/android/server/timedetector/ConfigurationInternal;->createCapabilitiesAndConfig()Landroid/app/time/TimeCapabilitiesAndConfig;
 PLcom/android/server/timedetector/ConfigurationInternal;->equals(Ljava/lang/Object;)Z
 PLcom/android/server/timedetector/ConfigurationInternal;->getAutoDetectionEnabledBehavior()Z
-PLcom/android/server/timedetector/ConfigurationInternal;->isAutoDetectionSupported()Z
-HPLcom/android/server/timedetector/ConfigurationInternal;->toString()Ljava/lang/String;
+PLcom/android/server/timedetector/ConfigurationInternal;->toString()Ljava/lang/String;
 PLcom/android/server/timedetector/EnvironmentImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/timedetector/EnvironmentImpl;->addDebugLogEntry(Ljava/lang/String;)V
+PLcom/android/server/timedetector/EnvironmentImpl;->acquireWakeLock()V
+PLcom/android/server/timedetector/EnvironmentImpl;->checkWakeLockHeld()V
+PLcom/android/server/timedetector/EnvironmentImpl;->dumpDebugLog(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/timedetector/EnvironmentImpl;->releaseWakeLock()V
+PLcom/android/server/timedetector/EnvironmentImpl;->systemClockConfidence()I
+PLcom/android/server/timedetector/GnssTimeUpdateService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/GnssTimeUpdateService;)V
+PLcom/android/server/timedetector/GnssTimeUpdateService$Lifecycle;-><init>(Landroid/content/Context;)V
+PLcom/android/server/timedetector/GnssTimeUpdateService$Lifecycle;->onBootPhase(I)V
+PLcom/android/server/timedetector/GnssTimeUpdateService$Lifecycle;->onStart()V
+PLcom/android/server/timedetector/GnssTimeUpdateService;-><clinit>()V
+PLcom/android/server/timedetector/GnssTimeUpdateService;-><init>(Landroid/content/Context;Landroid/app/AlarmManager;Landroid/location/LocationManager;Landroid/location/LocationManagerInternal;Lcom/android/server/timedetector/TimeDetectorInternal;)V
+PLcom/android/server/timedetector/GnssTimeUpdateService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timedetector/GnssTimeUpdateService;->logDebug(Ljava/lang/String;)V
+PLcom/android/server/timedetector/GnssTimeUpdateService;->startGnssListeningInternal()Z
+PLcom/android/server/timedetector/GnssTimeUpdateService;->startGnssListeningLocked()V
+PLcom/android/server/timedetector/NetworkTimeSuggestion;-><init>(Landroid/app/time/UnixEpochTime;I)V
+PLcom/android/server/timedetector/NetworkTimeSuggestion;->addDebugInfo([Ljava/lang/String;)V
+PLcom/android/server/timedetector/NetworkTimeSuggestion;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/timedetector/NetworkTimeSuggestion;->toString()Ljava/lang/String;
+PLcom/android/server/timedetector/NetworkTimeUpdateService$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
+PLcom/android/server/timedetector/NetworkTimeUpdateService$1;-><init>(Lcom/android/server/timedetector/NetworkTimeUpdateService;Landroid/app/AlarmManager;Lcom/android/server/timedetector/TimeDetectorInternal;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$AutoTimeSettingObserver;-><init>(Lcom/android/server/timedetector/NetworkTimeUpdateService;Landroid/os/Handler;Landroid/content/Context;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$EngineImpl;-><init>(Ljava/util/function/Supplier;IIILandroid/util/NtpTrustedTime;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$EngineImpl;->formatElapsedRealtimeMillis(J)Ljava/lang/String;
+PLcom/android/server/timedetector/NetworkTimeUpdateService$EngineImpl;->logToDebugAndDumpsys(Ljava/lang/String;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$EngineImpl;->makeNetworkTimeSuggestion(Landroid/util/NtpTrustedTime$TimeResult;Ljava/lang/String;Lcom/android/server/timedetector/NetworkTimeUpdateService$1;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$EngineImpl;->refreshAndRescheduleIfRequired(Landroid/net/Network;Ljava/lang/String;Lcom/android/server/timedetector/NetworkTimeUpdateService$1;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$NetworkConnectivityCallback;-><init>(Lcom/android/server/timedetector/NetworkTimeUpdateService;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$NetworkConnectivityCallback;->onAvailable(Landroid/net/Network;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$NetworkConnectivityCallback;->onLost(Landroid/net/Network;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$ScheduledRefreshAlarmListener;-><init>(Lcom/android/server/timedetector/NetworkTimeUpdateService;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$ScheduledRefreshAlarmListener;->onAlarm()V
+PLcom/android/server/timedetector/NetworkTimeUpdateService$ScheduledRefreshAlarmListener;->run()V
+PLcom/android/server/timedetector/NetworkTimeUpdateService;->-$$Nest$monPollNetworkTime(Lcom/android/server/timedetector/NetworkTimeUpdateService;Ljava/lang/String;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/timedetector/NetworkTimeUpdateService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/timedetector/ServerFlags$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/ServerFlags;)V
 PLcom/android/server/timedetector/ServerFlags;-><clinit>()V
 PLcom/android/server/timedetector/ServerFlags;-><init>(Landroid/content/Context;)V
 PLcom/android/server/timedetector/ServerFlags;->addListener(Lcom/android/server/timezonedetector/StateChangeListener;Ljava/util/Set;)V
-PLcom/android/server/timedetector/ServerFlags;->getBoolean(Ljava/lang/String;Z)Z
+PLcom/android/server/timedetector/ServerFlags;->getDurationFromMillis(Ljava/lang/String;Ljava/time/Duration;)Ljava/time/Duration;
 PLcom/android/server/timedetector/ServerFlags;->getInstance(Landroid/content/Context;)Lcom/android/server/timedetector/ServerFlags;
-PLcom/android/server/timedetector/ServerFlags;->getOptionalBoolean(Ljava/lang/String;)Ljava/util/Optional;
-PLcom/android/server/timedetector/ServerFlags;->getOptionalInstant(Ljava/lang/String;)Ljava/util/Optional;
-PLcom/android/server/timedetector/ServerFlags;->getOptionalString(Ljava/lang/String;)Ljava/util/Optional;
-PLcom/android/server/timedetector/ServerFlags;->getOptionalStringArray(Ljava/lang/String;)Ljava/util/Optional;
-PLcom/android/server/timedetector/ServerFlags;->parseOptionalBoolean(Ljava/lang/String;)Ljava/util/Optional;
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/ServiceConfigAccessorImpl;)V
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl$1;-><init>(Lcom/android/server/timedetector/ServiceConfigAccessorImpl;)V
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl$2;-><init>(Lcom/android/server/timedetector/ServiceConfigAccessorImpl;Landroid/os/Handler;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$BaseOriginPrioritiesSupplier;-><init>()V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$BaseOriginPrioritiesSupplier;-><init>(Lcom/android/server/timedetector/ServiceConfigAccessorImpl$BaseOriginPrioritiesSupplier-IA;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$BaseOriginPrioritiesSupplier;->get()[I
+PLcom/android/server/timedetector/ServiceConfigAccessorImpl$3$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/ServiceConfigAccessorImpl$3;ILandroid/os/Bundle;Landroid/os/Bundle;)V
+PLcom/android/server/timedetector/ServiceConfigAccessorImpl$3$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/timedetector/ServiceConfigAccessorImpl$3;-><init>(Lcom/android/server/timedetector/ServiceConfigAccessorImpl;Landroid/os/Handler;)V
+PLcom/android/server/timedetector/ServiceConfigAccessorImpl$3;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ConfigOriginPrioritiesSupplier;-><init>(Landroid/content/Context;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ConfigOriginPrioritiesSupplier;-><init>(Landroid/content/Context;Lcom/android/server/timedetector/ServiceConfigAccessorImpl$ConfigOriginPrioritiesSupplier-IA;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ConfigOriginPrioritiesSupplier;->lookupPriorityStrings()[Ljava/lang/String;
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ServerFlagsOriginPrioritiesSupplier;-><init>(Lcom/android/server/timedetector/ServerFlags;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ServerFlagsOriginPrioritiesSupplier;-><init>(Lcom/android/server/timedetector/ServerFlags;Lcom/android/server/timedetector/ServiceConfigAccessorImpl$ServerFlagsOriginPrioritiesSupplier-IA;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ServerFlagsOriginPrioritiesSupplier;->lookupPriorityStrings()[Ljava/lang/String;
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->-$$Nest$mhandleConfigurationInternalChangeOnMainThread(Lcom/android/server/timedetector/ServiceConfigAccessorImpl;)V
+PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ConfigOriginPrioritiesSupplier;-><init>(Lcom/android/server/timedetector/ServerFlags;)V
+PLcom/android/server/timedetector/ServiceConfigAccessorImpl$ConfigOriginPrioritiesSupplier;->get()[I
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl;-><clinit>()V
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->addConfigurationInternalChangeListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getAutoDetectionEnabledSetting()Z
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getAutoSuggestionLowerBound()Ljava/time/Instant;
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getConfigurationInternal(I)Lcom/android/server/timedetector/ConfigurationInternal;
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getCurrentUserConfigurationInternal()Lcom/android/server/timedetector/ConfigurationInternal;
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getInstance(Landroid/content/Context;)Lcom/android/server/timedetector/ServiceConfigAccessor;
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getOriginPriorities()[I
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getSystemClockConfidenceUpgradeThresholdMillis()I
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getSystemClockUpdateThresholdMillis()I
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->handleConfigurationInternalChangeOnMainThread()V
 PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->isAutoDetectionSupported()Z
-PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->isUserConfigAllowed(I)Z
-PLcom/android/server/timedetector/TimeDetectorInternalImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/CurrentUserIdentityInjector;Lcom/android/server/timedetector/ServiceConfigAccessor;Lcom/android/server/timedetector/TimeDetectorStrategy;)V
-PLcom/android/server/timedetector/TimeDetectorInternalImpl;->addNetworkTimeUpdateListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
-PLcom/android/server/timedetector/TimeDetectorInternalImpl;->getLatestNetworkSuggestion()Lcom/android/server/timedetector/NetworkTimeSuggestion;
+PLcom/android/server/timedetector/TimeDetectorInternalImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/TimeDetectorInternalImpl;Ljava/lang/Object;I)V
+PLcom/android/server/timedetector/TimeDetectorInternalImpl$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/timedetector/TimeDetectorInternalImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/ServiceConfigAccessorImpl;Lcom/android/server/timedetector/TimeDetectorStrategyImpl;)V
+PLcom/android/server/timedetector/TimeDetectorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Ljava/lang/Object;I)V
+PLcom/android/server/timedetector/TimeDetectorService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/timedetector/TimeDetectorService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/timedetector/TimeDetectorService;)V
 PLcom/android/server/timedetector/TimeDetectorService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/timedetector/TimeDetectorService$Lifecycle;->onStart()V
 PLcom/android/server/timedetector/TimeDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/CallerIdentityInjector;Lcom/android/server/timedetector/TimeDetectorStrategy;Landroid/util/NtpTrustedTime;)V
-HPLcom/android/server/timedetector/TimeDetectorService;->latestNetworkTime()Landroid/app/time/UnixEpochTime;
+PLcom/android/server/timedetector/TimeDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timedetector/TimeDetectorService;->suggestExternalTime(Landroid/app/time/ExternalTimeSuggestion;)V
 PLcom/android/server/timedetector/TimeDetectorStrategy;->originToString(I)Ljava/lang/String;
 PLcom/android/server/timedetector/TimeDetectorStrategy;->stringToOrigin(Ljava/lang/String;)I
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/StateChangeListener;)V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/timedetector/TimeDetectorStrategyImpl;)V
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda1;->onChange()V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->$r8$lambda$Ev1hBuSMiy0SsdTUkkpw6YwrYmA(Lcom/android/server/timedetector/TimeDetectorStrategyImpl;)V
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;-><init>(Lcom/android/server/timedetector/TimeDetectorStrategyImpl$Environment;Lcom/android/server/timedetector/ServiceConfigAccessor;)V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->addChangeListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->addDebugLogEntry(Ljava/lang/String;)V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->addNetworkTimeUpdateListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->create(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/ServiceConfigAccessor;)Lcom/android/server/timedetector/TimeDetectorStrategy;
-HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->getLatestNetworkSuggestion()Lcom/android/server/timedetector/NetworkTimeSuggestion;
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->handleConfigurationInternalMaybeChanged()V
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->notifyStateChangeListenersAsynchronously()V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->doAutoTimeDetection(Ljava/lang/String;)V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findLatestValidExternalSuggestion()Landroid/app/time/ExternalTimeSuggestion;
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findLatestValidNetworkSuggestion()Lcom/android/server/timedetector/NetworkTimeSuggestion;
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->notifyNetworkTimeUpdateListenersAsynchronously()V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestNetworkTime(Lcom/android/server/timedetector/NetworkTimeSuggestion;)V
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->updateCurrentConfigurationInternalIfRequired(Ljava/lang/String;)V
-PLcom/android/server/timezonedetector/ArrayMapWithHistory;-><init>(I)V
-PLcom/android/server/timezonedetector/ArrayMapWithHistory;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/timezonedetector/CallerIdentityInjector$Real;-><init>()V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAutoSuggestionTime(Landroid/app/time/UnixEpochTime;Ljava/lang/Object;)Z
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionAgainstLowerBound(Landroid/app/time/UnixEpochTime;Ljava/lang/Object;Ljava/time/Instant;)Z
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionCommon(Landroid/app/time/UnixEpochTime;Ljava/lang/Object;)Z
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionUnixEpochTime(JLandroid/app/time/UnixEpochTime;)Z
+PLcom/android/server/timezonedetector/ArrayMapWithHistory;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/timezonedetector/ArrayMapWithHistory;->put(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/timezonedetector/ArrayMapWithHistory;->valueAt(I)Ljava/lang/Object;
 PLcom/android/server/timezonedetector/CallerIdentityInjector;-><clinit>()V
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmAutoDetectionEnabledSetting(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmEnhancedMetricsCollectionEnabled(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmGeoDetectionEnabledSetting(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmGeoDetectionRunInBackgroundEnabled(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmGeoDetectionSupported(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmLocationEnabledSetting(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmTelephonyDetectionSupported(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmTelephonyFallbackSupported(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmUserConfigAllowed(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmUserId(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)Ljava/lang/Integer;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;-><init>()V
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->build()Lcom/android/server/timezonedetector/ConfigurationInternal;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setAutoDetectionEnabledSetting(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setEnhancedMetricsCollectionEnabled(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setGeoDetectionEnabledSetting(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setGeoDetectionFeatureSupported(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setGeoDetectionRunInBackgroundEnabled(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setLocationEnabledSetting(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setTelephonyDetectionFeatureSupported(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setTelephonyFallbackSupported(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setUserConfigAllowed(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
-PLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setUserId(I)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;
 PLcom/android/server/timezonedetector/ConfigurationInternal;-><init>(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)V
-PLcom/android/server/timezonedetector/ConfigurationInternal;-><init>(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;Lcom/android/server/timezonedetector/ConfigurationInternal-IA;)V
+PLcom/android/server/timezonedetector/ConfigurationInternal;->asCapabilities()Landroid/app/time/TimeZoneCapabilities;
 PLcom/android/server/timezonedetector/ConfigurationInternal;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/timezonedetector/ConfigurationInternal;->getAutoDetectionEnabledBehavior()Z
-PLcom/android/server/timezonedetector/ConfigurationInternal;->getAutoDetectionEnabledSetting()Z
 PLcom/android/server/timezonedetector/ConfigurationInternal;->getDetectionMode()I
 PLcom/android/server/timezonedetector/ConfigurationInternal;->isAutoDetectionSupported()Z
-PLcom/android/server/timezonedetector/ConfigurationInternal;->isGeoDetectionSupported()Z
-PLcom/android/server/timezonedetector/ConfigurationInternal;->isTelephonyDetectionSupported()Z
+PLcom/android/server/timezonedetector/ConfigurationInternal;->isGeoDetectionExecutionEnabled()Z
 PLcom/android/server/timezonedetector/ConfigurationInternal;->toString()Ljava/lang/String;
-PLcom/android/server/timezonedetector/CurrentUserIdentityInjector$Real;-><init>()V
-PLcom/android/server/timezonedetector/CurrentUserIdentityInjector;-><clinit>()V
 PLcom/android/server/timezonedetector/DeviceActivityMonitorImpl$1;-><init>(Lcom/android/server/timezonedetector/DeviceActivityMonitorImpl;Landroid/os/Handler;Landroid/content/ContentResolver;)V
 PLcom/android/server/timezonedetector/DeviceActivityMonitorImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/timezonedetector/DeviceActivityMonitorImpl;->addListener(Lcom/android/server/timezonedetector/DeviceActivityMonitor$Listener;)V
-PLcom/android/server/timezonedetector/DeviceActivityMonitorImpl;->create(Landroid/content/Context;Landroid/os/Handler;)Lcom/android/server/timezonedetector/DeviceActivityMonitor;
+PLcom/android/server/timezonedetector/DeviceActivityMonitorImpl;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/EnvironmentImpl;-><init>(Landroid/os/Handler;)V
 PLcom/android/server/timezonedetector/EnvironmentImpl;->addDebugLogEntry(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/EnvironmentImpl;->dumpDebugLog(Ljava/io/PrintWriter;)V
 PLcom/android/server/timezonedetector/EnvironmentImpl;->elapsedRealtimeMillis()J
-PLcom/android/server/timezonedetector/ReferenceWithHistory;-><init>(I)V
+PLcom/android/server/timezonedetector/EnvironmentImpl;->getDeviceTimeZone()Ljava/lang/String;
+PLcom/android/server/timezonedetector/EnvironmentImpl;->getDeviceTimeZoneConfidence()I
+PLcom/android/server/timezonedetector/EnvironmentImpl;->runAsync(Lcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda0;)V
+PLcom/android/server/timezonedetector/LocationAlgorithmEvent;-><init>(Landroid/app/time/LocationTimeZoneAlgorithmStatus;Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;)V
+PLcom/android/server/timezonedetector/LocationAlgorithmEvent;->addDebugInfo([Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/LocationAlgorithmEvent;->toString()Ljava/lang/String;
+PLcom/android/server/timezonedetector/ReferenceWithHistory;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/timezonedetector/ReferenceWithHistory;->get()Ljava/lang/Object;
 PLcom/android/server/timezonedetector/ReferenceWithHistory;->set(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/timezonedetector/ReferenceWithHistory;->toString()Ljava/lang/String;
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/ServiceConfigAccessorImpl;)V
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/timezonedetector/ServiceConfigAccessorImpl$3;ILandroid/os/Bundle;Landroid/os/Bundle;)V
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$1;-><init>(Lcom/android/server/timezonedetector/ServiceConfigAccessorImpl;)V
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$2;-><init>(Lcom/android/server/timezonedetector/ServiceConfigAccessorImpl;Landroid/os/Handler;)V
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->-$$Nest$mhandleConfigurationInternalChangeOnMainThread(Lcom/android/server/timezonedetector/ServiceConfigAccessorImpl;)V
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$2;->onChange(Z)V
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$3;-><init>(Lcom/android/server/timezonedetector/ServiceConfigAccessorImpl;Landroid/os/Handler;)V
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl$3;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;-><clinit>()V
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->addConfigurationInternalChangeListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getAutoDetectionEnabledSetting()Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getConfigBoolean(I)Z
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getConfigurationInternal(I)Lcom/android/server/timezonedetector/ConfigurationInternal;
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getCurrentUserConfigurationInternal()Lcom/android/server/timezonedetector/ConfigurationInternal;
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getGeoDetectionEnabledSetting(I)Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getGeoDetectionRunInBackgroundEnabled()Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getGeoDetectionSettingEnabledOverride()Ljava/util/Optional;
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getInstance(Landroid/content/Context;)Lcom/android/server/timezonedetector/ServiceConfigAccessor;
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getLocationEnabledSetting(I)Z
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getPrimaryLocationTimeZoneProviderMode()Ljava/lang/String;
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->getSecondaryLocationTimeZoneProviderMode()Ljava/lang/String;
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->handleConfigurationInternalChangeOnMainThread()V
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isEnhancedMetricsCollectionEnabled()Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isGeoDetectionEnabledForUsersByDefault()Z
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isGeoTimeZoneDetectionFeatureSupported()Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isGeoTimeZoneDetectionFeatureSupportedInConfig()Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isTelephonyFallbackSupported()Z
 PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isTelephonyTimeZoneDetectionFeatureSupported()Z
-PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->isUserConfigAllowed(I)Z
-PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/CurrentUserIdentityInjector;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
+PLcom/android/server/timezonedetector/ServiceConfigAccessorImpl;->storeConfiguration(ILandroid/app/time/TimeZoneConfiguration;Landroid/app/time/TimeZoneConfiguration;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;Lcom/android/server/timezonedetector/LocationAlgorithmEvent;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Ljava/lang/Object;I)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle$1;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda1;->onChange()V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle$1;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;->onStart()V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService;->$r8$lambda$J5BTZ2OuJb4gvpwYS14bI1HdOpU(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/CallerIdentityInjector;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService;->addDumpable(Lcom/android/server/timezonedetector/Dumpable;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceSuggestTelephonyTimeZonePermission()V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService;->lambda$suggestTelephonyTimeZone$2(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceManageTimeZoneDetectorPermission()V
 PLcom/android/server/timezonedetector/TimeZoneDetectorService;->suggestTelephonyTimeZone(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->updateConfiguration(ILandroid/app/time/TimeZoneConfiguration;)Z
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->updateConfiguration(Landroid/app/time/TimeZoneConfiguration;)Z
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$$ExternalSyntheticLambda0;->onChange()V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;I)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->$r8$lambda$hV1MXuLGe7uQyLHj3fxKJrKy5nM(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;->toString()Ljava/lang/String;
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;-><init>(Lcom/android/server/timezonedetector/ServiceConfigAccessor;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$Environment;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->addChangeListener(Lcom/android/server/timezonedetector/StateChangeListener;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->create(Landroid/os/Handler;Lcom/android/server/timezonedetector/ServiceConfigAccessor;)Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->createLocationAlgorithmStatus(Lcom/android/server/timezonedetector/ConfigurationInternal;Lcom/android/server/timezonedetector/LocationAlgorithmEvent;)Landroid/app/time/LocationTimeZoneAlgorithmStatus;
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->createTelephonyAlgorithmStatus(Lcom/android/server/timezonedetector/ConfigurationInternal;)Landroid/app/time/TelephonyTimeZoneAlgorithmStatus;
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->createTimeZoneDetectorStatus(Lcom/android/server/timezonedetector/ConfigurationInternal;Lcom/android/server/timezonedetector/LocationAlgorithmEvent;)Landroid/app/time/TimeZoneDetectorStatus;
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->disableTelephonyFallbackIfNeeded()V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->doAutoTimeZoneDetection(Lcom/android/server/timezonedetector/ConfigurationInternal;Ljava/lang/String;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->handleConfigurationInternalMaybeChanged()V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->logTimeZoneDebugInfo(Ljava/lang/String;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->notifyStateChangeListenersAsynchronously()V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->scoreTelephonySuggestion(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)I
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->suggestTelephonyTimeZone(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->updateCurrentConfigurationInternalIfRequired(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->doTelephonyTimeZoneDetection(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->findBestTelephonySuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->handleLocationAlgorithmEvent(Lcom/android/server/timezonedetector/LocationAlgorithmEvent;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->notifyStateChangeListenersAsynchronously$1()V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->updateConfiguration(ILandroid/app/time/TimeZoneConfiguration;)Z
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->updateCurrentConfigurationInternalIfRequired$1(Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->updateDetectorStatus()Z
+PLcom/android/server/timezonedetector/location/BinderLocationTimeZoneProvider$1;-><init>(Lcom/android/server/timezonedetector/location/BinderLocationTimeZoneProvider;)V
+PLcom/android/server/timezonedetector/location/BinderLocationTimeZoneProvider;-><init>(Lcom/android/server/timezonedetector/location/RealProviderMetricsLogger;Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;Ljava/lang/String;Lcom/android/server/timezonedetector/location/RealLocationTimeZoneProviderProxy;Z)V
+PLcom/android/server/timezonedetector/location/BinderLocationTimeZoneProvider;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/BinderLocationTimeZoneProvider;->onInitialize()Z
+PLcom/android/server/timezonedetector/location/DisabledLocationTimeZoneProvider;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/DisabledLocationTimeZoneProvider;->onInitialize()Z
+PLcom/android/server/timezonedetector/location/HandlerThreadingDomain;-><init>(Landroid/os/Handler;)V
+PLcom/android/server/timezonedetector/location/HandlerThreadingDomain;->assertCurrentThread()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;I)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;)V
 PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$Lifecycle;->onStart()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$ProviderConfig;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$ProviderConfig;->createProvider()Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$ProviderConfig;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService$ProviderConfig;->getPackageName()Ljava/lang/String;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;-><clinit>()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;-><init>(Landroid/content/Context;Lcom/android/server/timezonedetector/ServiceConfigAccessor;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;->debugLog(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;->startOnDomainThread()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneManagerService;->warnLog(Ljava/lang/String;Ljava/lang/Throwable;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider;ILandroid/service/timezone/TimeZoneProviderEvent;Lcom/android/server/timezonedetector/ConfigurationInternal;Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;->getProviderStatus()I
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;->newState(ILandroid/service/timezone/TimeZoneProviderEvent;Lcom/android/server/timezonedetector/ConfigurationInternal;Ljava/lang/String;)Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;->prettyPrintStateEnum(I)Ljava/lang/String;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;->toString()Ljava/lang/String;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider;-><init>(Lcom/android/server/timezonedetector/location/RealProviderMetricsLogger;Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;Ljava/lang/String;Lcom/android/server/timezonedetector/location/TimeZoneProviderEventPreProcessor;Z)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider;->getCurrentState()Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider;->initialize(Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderController$$ExternalSyntheticLambda0;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProvider;->setCurrentState(Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;Z)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController$$ExternalSyntheticLambda0;->onProviderStateChange(Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider$ProviderState;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;-><init>(Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;Lcom/android/server/timezonedetector/location/RealControllerMetricsLogger;Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider;Lcom/android/server/timezonedetector/location/LocationTimeZoneProvider;Z)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->alterProvidersStartedStateIfRequired(Lcom/android/server/timezonedetector/ConfigurationInternal;Lcom/android/server/timezonedetector/ConfigurationInternal;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->generateCurrentAlgorithmStatus()Landroid/app/time/LocationTimeZoneAlgorithmStatus;
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->initialize(Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl;Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerCallbackImpl;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->reportEvent(Lcom/android/server/timezonedetector/LocationAlgorithmEvent;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->setState(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;->setStateAndReportStatusOnlyEvent(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerCallbackImpl;-><init>(Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl;Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl$$ExternalSyntheticLambda0;->onChange()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;)V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/timezonedetector/location/LocationTimeZoneProviderControllerEnvironmentImpl;-><init>(Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;Lcom/android/server/timezonedetector/ServiceConfigAccessor;Lcom/android/server/timezonedetector/location/LocationTimeZoneProviderController;)V
+PLcom/android/server/timezonedetector/location/RealLocationTimeZoneProviderProxy;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;Ljava/lang/String;Ljava/lang/String;Z)V
+PLcom/android/server/timezonedetector/location/RealLocationTimeZoneProviderProxy;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/location/RealProviderMetricsLogger;-><init>(I)V
+PLcom/android/server/timezonedetector/location/ThreadingDomain$SingleRunnableQueue;-><init>(Lcom/android/server/timezonedetector/location/HandlerThreadingDomain;)V
+PLcom/android/server/timezonedetector/location/TimeZoneProviderRequest;-><clinit>()V
+PLcom/android/server/timezonedetector/location/TimeZoneProviderRequest;-><init>(ZLjava/time/Duration;Ljava/time/Duration;)V
+PLcom/android/server/timezonedetector/location/TimeZoneProviderRequest;->toString()Ljava/lang/String;
 PLcom/android/server/tracing/TracingServiceProxy$1;-><init>(Lcom/android/server/tracing/TracingServiceProxy;)V
 PLcom/android/server/tracing/TracingServiceProxy;-><init>(Landroid/content/Context;)V
 PLcom/android/server/tracing/TracingServiceProxy;->onStart()V
-PLcom/android/server/trust/TrustArchive;-><init>()V
+PLcom/android/server/tracing/TracingServiceProxy;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/trust/TrustManagerService$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/trust/TrustManagerService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/trust/TrustManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/trust/TrustManagerService;IZ)V
+PLcom/android/server/trust/TrustManagerService$$ExternalSyntheticLambda1;->accept(I)V
 PLcom/android/server/trust/TrustManagerService$1;-><init>(Lcom/android/server/trust/TrustManagerService;)V
-HPLcom/android/server/trust/TrustManagerService$1;->isDeviceLocked(II)Z
-HPLcom/android/server/trust/TrustManagerService$1;->isDeviceSecure(II)Z
-PLcom/android/server/trust/TrustManagerService$2;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/os/Looper;)V
-PLcom/android/server/trust/TrustManagerService$2;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/trust/TrustManagerService$2$1;-><init>(Lcom/android/server/trust/TrustManagerService$2;)V
+PLcom/android/server/trust/TrustManagerService$2;-><init>(Lcom/android/server/trust/TrustManagerService;)V
+PLcom/android/server/trust/TrustManagerService$2;->onBind(Landroid/os/IBinder;Lcom/android/server/servicewatcher/ServiceWatcher$BoundServiceInfo;)V
+PLcom/android/server/trust/TrustManagerService$2;->onUnbind()V
+PLcom/android/server/trust/TrustManagerService$3$1;-><init>(Lcom/android/server/trust/TrustManagerService$3;Ljava/io/PrintWriter;Ljava/util/List;)V
+PLcom/android/server/trust/TrustManagerService$3$1;->run()V
 PLcom/android/server/trust/TrustManagerService$3;-><init>(Lcom/android/server/trust/TrustManagerService;)V
-PLcom/android/server/trust/TrustManagerService$Injector;-><init>(Lcom/android/internal/widget/LockPatternUtils;Landroid/os/Looper;)V
-PLcom/android/server/trust/TrustManagerService$Injector;->getLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
-PLcom/android/server/trust/TrustManagerService$Injector;->getLooper()Landroid/os/Looper;
+PLcom/android/server/trust/TrustManagerService$3;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/trust/TrustManagerService$3;->dumpBool(Z)Ljava/lang/String;
+PLcom/android/server/trust/TrustManagerService$3;->enforceReportPermission()V
+HPLcom/android/server/trust/TrustManagerService$3;->isDeviceLocked(II)Z
+HPLcom/android/server/trust/TrustManagerService$3;->isDeviceSecure(II)Z
+PLcom/android/server/trust/TrustManagerService$3;->registerDeviceLockedStateListener(Lcom/android/internal/policy/IDeviceLockedStateListener;I)V
+PLcom/android/server/trust/TrustManagerService$3;->reportEnabledTrustAgentsChanged(I)V
+PLcom/android/server/trust/TrustManagerService$3;->reportKeyguardShowingChanged()V
+PLcom/android/server/trust/TrustManagerService$3;->reportUnlockAttempt(ZI)V
+PLcom/android/server/trust/TrustManagerService$4;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/os/Looper;)V
+PLcom/android/server/trust/TrustManagerService$4;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/trust/TrustManagerService$5;-><init>(Lcom/android/server/trust/TrustManagerService;)V
+PLcom/android/server/trust/TrustManagerService$5;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/server/trust/TrustManagerService$5;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
+PLcom/android/server/trust/TrustManagerService$5;->onPackageDisappeared(Ljava/lang/String;I)V
+PLcom/android/server/trust/TrustManagerService$5;->onSomePackagesChanged()V
 PLcom/android/server/trust/TrustManagerService$Receiver;-><init>(Lcom/android/server/trust/TrustManagerService;)V
-PLcom/android/server/trust/TrustManagerService$Receiver;-><init>(Lcom/android/server/trust/TrustManagerService;Lcom/android/server/trust/TrustManagerService$Receiver-IA;)V
 PLcom/android/server/trust/TrustManagerService$Receiver;->getUserId(Landroid/content/Intent;)I
 PLcom/android/server/trust/TrustManagerService$Receiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/trust/TrustManagerService$Receiver;->register(Landroid/content/Context;)V
 PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/content/Context;Landroid/os/Looper;)V
+PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->canAgentsRunForUser(I)Z
 PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
-PLcom/android/server/trust/TrustManagerService$TrustState;->$values()[Lcom/android/server/trust/TrustManagerService$TrustState;
 PLcom/android/server/trust/TrustManagerService$TrustState;-><clinit>()V
-PLcom/android/server/trust/TrustManagerService$TrustState;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/trust/TrustManagerService;->-$$Nest$fgetmLockPatternUtils(Lcom/android/server/trust/TrustManagerService;)Lcom/android/internal/widget/LockPatternUtils;
-PLcom/android/server/trust/TrustManagerService;->-$$Nest$mresolveProfileParent(Lcom/android/server/trust/TrustManagerService;I)I
 PLcom/android/server/trust/TrustManagerService;-><clinit>()V
 PLcom/android/server/trust/TrustManagerService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/trust/TrustManagerService;-><init>(Landroid/content/Context;Lcom/android/server/trust/TrustManagerService$Injector;)V
 PLcom/android/server/trust/TrustManagerService;->aggregateIsActiveUnlockRunning(I)Z
 PLcom/android/server/trust/TrustManagerService;->aggregateIsTrustManaged(I)Z
-PLcom/android/server/trust/TrustManagerService;->aggregateIsTrustable(I)Z
-PLcom/android/server/trust/TrustManagerService;->aggregateIsTrusted(I)Z
-PLcom/android/server/trust/TrustManagerService;->checkNewAgents()V
 PLcom/android/server/trust/TrustManagerService;->checkNewAgentsForUser(I)V
-PLcom/android/server/trust/TrustManagerService;->createHandler(Landroid/os/Looper;)Landroid/os/Handler;
-PLcom/android/server/trust/TrustManagerService;->dispatchOnTrustChanged(ZZIILjava/util/List;)V
-PLcom/android/server/trust/TrustManagerService;->dispatchOnTrustManagedChanged(ZI)V
-PLcom/android/server/trust/TrustManagerService;->getTrustGrantedMessages(I)Ljava/util/List;
 PLcom/android/server/trust/TrustManagerService;->getUserTrustStateInner(I)Lcom/android/server/trust/TrustManagerService$TrustState;
 PLcom/android/server/trust/TrustManagerService;->isDeviceLockedInner(I)Z
 PLcom/android/server/trust/TrustManagerService;->isTrustUsuallyManagedInternal(I)Z
-PLcom/android/server/trust/TrustManagerService;->maybeActiveUnlockRunningChanged(I)V
 PLcom/android/server/trust/TrustManagerService;->maybeEnableFactoryTrustAgents(I)V
+PLcom/android/server/trust/TrustManagerService;->notifyDeviceLockedListenersForUser(IZ)V
 PLcom/android/server/trust/TrustManagerService;->notifyKeystoreOfDeviceLockState(IZ)V
-PLcom/android/server/trust/TrustManagerService;->notifyTrustAgentsOfDeviceLockState(IZ)V
 PLcom/android/server/trust/TrustManagerService;->onBootPhase(I)V
 PLcom/android/server/trust/TrustManagerService;->onStart()V
 PLcom/android/server/trust/TrustManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/trust/TrustManagerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/trust/TrustManagerService;->refreshAgentList(I)V
+PLcom/android/server/trust/TrustManagerService;->refreshAgentList(I)V
 PLcom/android/server/trust/TrustManagerService;->refreshDeviceLockedForUser(I)V
 PLcom/android/server/trust/TrustManagerService;->refreshDeviceLockedForUser(II)V
 PLcom/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;->setDeviceLockedForUser(IZ)V
-PLcom/android/server/trust/TrustManagerService;->updateTrust(II)V
-PLcom/android/server/trust/TrustManagerService;->updateTrust(IILcom/android/internal/infra/AndroidFuture;)V
+PLcom/android/server/trust/TrustManagerService;->updateTrust(I)V
 PLcom/android/server/trust/TrustManagerService;->updateTrust(IIZLcom/android/internal/infra/AndroidFuture;)V
 HSPLcom/android/server/tv/TvInputHal;-><clinit>()V
-HPLcom/android/server/uri/GrantUri;-><init>(ILandroid/net/Uri;I)V
-PLcom/android/server/uri/GrantUri;->resolve(ILandroid/net/Uri;I)Lcom/android/server/uri/GrantUri;
+PLcom/android/server/updates/CertPinInstallReceiver;-><init>()V
+PLcom/android/server/updates/ConversationActionsInstallReceiver;-><init>()V
+PLcom/android/server/updates/ConversationActionsInstallReceiver;->verifyVersion(II)Z
+PLcom/android/server/updates/LangIdInstallReceiver;-><init>()V
+PLcom/android/server/updates/LangIdInstallReceiver;->verifyVersion(II)Z
+PLcom/android/server/updates/SmartSelectionInstallReceiver;-><init>()V
+PLcom/android/server/updates/SmartSelectionInstallReceiver;->verifyVersion(II)Z
+PLcom/android/server/updates/SmsShortCodesInstallReceiver;-><init>()V
+HPLcom/android/server/uri/GrantUri;-><init>(IILandroid/net/Uri;)V
+PLcom/android/server/uri/GrantUri;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/uri/GrantUri;->hashCode()I
+PLcom/android/server/uri/GrantUri;->resolve(IILandroid/net/Uri;)Lcom/android/server/uri/GrantUri;
+PLcom/android/server/uri/GrantUri;->toString()Ljava/lang/String;
+PLcom/android/server/uri/NeededUriGrants;-><init>(IILjava/lang/String;)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;->onBootPhase(I)V
 HSPLcom/android/server/uri/UriGrantsManagerService$Lifecycle;->onStart()V
 HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;-><init>(Lcom/android/server/uri/UriGrantsManagerService;)V
-HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;-><init>(Lcom/android/server/uri/UriGrantsManagerService;Lcom/android/server/uri/UriGrantsManagerService$LocalService-IA;)V
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
-HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermissionFromIntent(Landroid/content/Intent;ILjava/lang/String;I)Lcom/android/server/uri/NeededUriGrants;
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermissionFromIntent(Landroid/content/Intent;ILjava/lang/String;II)Lcom/android/server/uri/NeededUriGrants;
+PLcom/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
 PLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkUriPermission(Lcom/android/server/uri/GrantUri;IIZ)Z
 PLcom/android/server/uri/UriGrantsManagerService$LocalService;->grantUriPermissionUncheckedFromIntent(Lcom/android/server/uri/NeededUriGrants;Lcom/android/server/uri/UriPermissionOwner;)V
-HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->internalCheckGrantUriPermissionFromIntent(Landroid/content/Intent;ILjava/lang/String;ILjava/lang/Integer;)Lcom/android/server/uri/NeededUriGrants;
+HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->internalCheckGrantUriPermissionFromIntent(Landroid/content/Intent;ILjava/lang/String;ILjava/lang/Integer;Ljava/lang/Integer;)Lcom/android/server/uri/NeededUriGrants;+]Landroid/content/Intent;Landroid/content/Intent;
 PLcom/android/server/uri/UriGrantsManagerService$LocalService;->newUriPermissionOwner(Ljava/lang/String;)Landroid/os/IBinder;
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->onSystemReady()V
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->removeUriPermissionsForPackage(Ljava/lang/String;IZZ)V
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->revokeUriPermission(Ljava/lang/String;ILcom/android/server/uri/GrantUri;I)V
+HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->notifyActivityLaunchRequestCompleted(IILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)V
+PLcom/android/server/uri/UriGrantsManagerService$LocalService;->removeUriPermissionsForPackage(ILjava/lang/String;Z)V
+PLcom/android/server/uri/UriGrantsManagerService$LocalService;->revokeUriPermission(IILcom/android/server/uri/GrantUri;Ljava/lang/String;)V
+PLcom/android/server/uri/UriGrantsManagerService$LocalService;->revokeUriPermissionFromOwner(Landroid/os/IBinder;Landroid/net/Uri;II)V
 PLcom/android/server/uri/UriGrantsManagerService$LocalService;->revokeUriPermissionFromOwner(Landroid/os/IBinder;Landroid/net/Uri;IILjava/lang/String;I)V
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$fgetmLock(Lcom/android/server/uri/UriGrantsManagerService;)Ljava/lang/Object;
-HPLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mcheckGrantUriPermissionFromIntentUnlocked(Lcom/android/server/uri/UriGrantsManagerService;ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;ILjava/lang/Integer;)Lcom/android/server/uri/NeededUriGrants;
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mcheckGrantUriPermissionUnlocked(Lcom/android/server/uri/UriGrantsManagerService;ILjava/lang/String;Landroid/net/Uri;II)I
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mcheckUriPermissionLocked(Lcom/android/server/uri/UriGrantsManagerService;Lcom/android/server/uri/GrantUri;II)Z
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$menforceNotIsolatedCaller(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;)V
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mgrantUriPermissionUncheckedFromIntent(Lcom/android/server/uri/UriGrantsManagerService;Lcom/android/server/uri/NeededUriGrants;Lcom/android/server/uri/UriPermissionOwner;)V
+PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mcheckAuthorityGrantsLocked(Lcom/android/server/uri/UriGrantsManagerService;ILandroid/content/pm/ProviderInfo;IZ)Z
 PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mreadGrantedUriPermissionsLocked(Lcom/android/server/uri/UriGrantsManagerService;)V
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mremoveUriPermissionsForPackageLocked(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;IZZ)V
-PLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mrevokeUriPermission(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;ILcom/android/server/uri/GrantUri;I)V
-HSPLcom/android/server/uri/UriGrantsManagerService;->-$$Nest$mstart(Lcom/android/server/uri/UriGrantsManagerService;)V
-HSPLcom/android/server/uri/UriGrantsManagerService;-><init>()V
-HSPLcom/android/server/uri/UriGrantsManagerService;-><init>(Lcom/android/server/uri/UriGrantsManagerService-IA;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;-><init>(Ljava/io/File;Ljava/lang/String;)V
-HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionFromIntentUnlocked(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;ILjava/lang/Integer;)Lcom/android/server/uri/NeededUriGrants;
-PLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionUnlocked(ILjava/lang/String;Landroid/net/Uri;II)I
+HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionFromIntentUnlocked(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;ILjava/lang/Integer;Ljava/lang/Integer;)Lcom/android/server/uri/NeededUriGrants;+]Landroid/content/ClipData$Item;Landroid/content/ClipData$Item;]Landroid/content/ClipData;Landroid/content/ClipData;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;
 HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionUnlocked(ILjava/lang/String;Lcom/android/server/uri/GrantUri;II)I
-HPLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsInternalUnlocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/uri/GrantUri;IIZ)Z
+PLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsInternalUnlocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/uri/GrantUri;IIZ)Z
 PLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsUnlocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/uri/GrantUri;II)Z
+PLcom/android/server/uri/UriGrantsManagerService;->checkUidPermission(Ljava/lang/String;I)I
 PLcom/android/server/uri/UriGrantsManagerService;->checkUriPermissionLocked(Lcom/android/server/uri/GrantUri;II)Z
 PLcom/android/server/uri/UriGrantsManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
-PLcom/android/server/uri/UriGrantsManagerService;->enforceRequireContentUriPermissionFromCaller(Ljava/lang/Integer;Lcom/android/server/uri/GrantUri;I)V
-PLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;III)Landroid/content/pm/ProviderInfo;
-PLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromOwner(Landroid/os/IBinder;ILjava/lang/String;Landroid/net/Uri;III)V
-HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromOwnerUnlocked(Landroid/os/IBinder;ILjava/lang/String;Landroid/net/Uri;III)V
-PLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionUncheckedFromIntent(Lcom/android/server/uri/NeededUriGrants;Lcom/android/server/uri/UriPermissionOwner;)V
-HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionUnlocked(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
-HPLcom/android/server/uri/UriGrantsManagerService;->isContentUriWithAccessModeFlags(Lcom/android/server/uri/GrantUri;ILjava/lang/String;)Z
-PLcom/android/server/uri/UriGrantsManagerService;->readGrantedUriPermissionsLocked()V
+PLcom/android/server/uri/UriGrantsManagerService;->enforceRequireContentUriPermissionFromCallerUnlocked(Ljava/lang/Integer;Lcom/android/server/uri/GrantUri;ILjava/lang/Integer;)V
+PLcom/android/server/uri/UriGrantsManagerService;->findOrCreateUriPermissionLocked(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;
+HPLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(IIILjava/lang/String;)Landroid/content/pm/ProviderInfo;
+HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromOwner(Landroid/os/IBinder;ILjava/lang/String;Landroid/net/Uri;III)V
+PLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionUnchecked(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;)V
+PLcom/android/server/uri/UriGrantsManagerService;->maybePrunePersistedUriGrantsLocked(I)Z
 PLcom/android/server/uri/UriGrantsManagerService;->removeUriPermissionsForPackageLocked(Ljava/lang/String;IZZ)V
-PLcom/android/server/uri/UriGrantsManagerService;->revokeUriPermission(Ljava/lang/String;ILcom/android/server/uri/GrantUri;I)V
 PLcom/android/server/uri/UriGrantsManagerService;->revokeUriPermissionLocked(Ljava/lang/String;ILcom/android/server/uri/GrantUri;IZ)V
-HSPLcom/android/server/uri/UriGrantsManagerService;->start()V
+PLcom/android/server/uri/UriGrantsManagerService;->schedulePersistUriGrants()V
+PLcom/android/server/uri/UriGrantsManagerService;->takePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
 PLcom/android/server/uri/UriMetricsHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/uri/UriMetricsHelper;)V
 HSPLcom/android/server/uri/UriMetricsHelper;-><clinit>()V
-HSPLcom/android/server/uri/UriMetricsHelper;-><init>(Landroid/content/Context;Lcom/android/server/uri/UriMetricsHelper$PersistentUriGrantsProvider;)V
-PLcom/android/server/uri/UriMetricsHelper;->registerPuller()V
+HSPLcom/android/server/uri/UriMetricsHelper;-><init>(Landroid/content/Context;Lcom/android/server/uri/UriGrantsManagerService;)V
+PLcom/android/server/uri/UriPermission$Snapshot;-><init>(Lcom/android/server/uri/UriPermission;)V
+PLcom/android/server/uri/UriPermission;-><init>(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)V
+PLcom/android/server/uri/UriPermission;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/uri/UriPermission;->initPersistedModes(IJ)V
+PLcom/android/server/uri/UriPermission;->revokeModes(IZ)Z
+PLcom/android/server/uri/UriPermission;->takePersistableModes(I)Z
+PLcom/android/server/uri/UriPermission;->toString()Ljava/lang/String;
+PLcom/android/server/uri/UriPermission;->updateModeFlags()V
 PLcom/android/server/uri/UriPermissionOwner$ExternalToken;-><init>(Lcom/android/server/uri/UriPermissionOwner;)V
-PLcom/android/server/uri/UriPermissionOwner$ExternalToken;->getOwner()Lcom/android/server/uri/UriPermissionOwner;
 PLcom/android/server/uri/UriPermissionOwner;-><init>(Lcom/android/server/uri/UriGrantsManagerInternal;Ljava/lang/Object;)V
-HPLcom/android/server/uri/UriPermissionOwner;->fromExternalToken(Landroid/os/IBinder;)Lcom/android/server/uri/UriPermissionOwner;
-PLcom/android/server/uri/UriPermissionOwner;->getExternalToken()Landroid/os/Binder;
-PLcom/android/server/uri/UriPermissionOwner;->removeUriPermission(Lcom/android/server/uri/GrantUri;ILjava/lang/String;I)V
-HPLcom/android/server/usage/AppIdleHistory$AppUsageHistory;-><init>()V
+PLcom/android/server/uri/UriPermissionOwner;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/uri/UriPermissionOwner;->removeUriPermission(IILcom/android/server/uri/GrantUri;Ljava/lang/String;)V
+PLcom/android/server/uri/UriPermissionOwner;->toString()Ljava/lang/String;
+PLcom/android/server/usage/AppIdleHistory$AppUsageHistory;-><init>()V
 PLcom/android/server/usage/AppIdleHistory;-><init>(Ljava/io/File;J)V
-HPLcom/android/server/usage/AppIdleHistory;->getAppStandbyBucket(Ljava/lang/String;IJ)I
-PLcom/android/server/usage/AppIdleHistory;->getAppStandbyBuckets(IZ)Ljava/util/ArrayList;
-HPLcom/android/server/usage/AppIdleHistory;->getAppStandbyReason(Ljava/lang/String;IJ)I
-HPLcom/android/server/usage/AppIdleHistory;->getAppUsageHistory(Ljava/lang/String;IJ)Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;
-HPLcom/android/server/usage/AppIdleHistory;->getElapsedTime(J)J
-PLcom/android/server/usage/AppIdleHistory;->getEstimatedLaunchTime(Ljava/lang/String;IJ)J
-HPLcom/android/server/usage/AppIdleHistory;->getIntValue(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
-HPLcom/android/server/usage/AppIdleHistory;->getLongValue(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
-HPLcom/android/server/usage/AppIdleHistory;->getPackageHistory(Landroid/util/ArrayMap;Ljava/lang/String;JZ)Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;
-PLcom/android/server/usage/AppIdleHistory;->getScreenOnTime(J)J
+PLcom/android/server/usage/AppIdleHistory;->dumpUsers(Landroid/util/IndentingPrintWriter;[ILjava/util/List;)V
+PLcom/android/server/usage/AppIdleHistory;->getElapsedTime(J)J
+HPLcom/android/server/usage/AppIdleHistory;->getPackageHistory(Landroid/util/ArrayMap;Ljava/lang/String;Z)Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;
 PLcom/android/server/usage/AppIdleHistory;->getScreenOnTimeFile()Ljava/io/File;
-HPLcom/android/server/usage/AppIdleHistory;->getThresholdIndex(Ljava/lang/String;IJ[J[J)I
-PLcom/android/server/usage/AppIdleHistory;->getTimeSinceLastJobRun(Ljava/lang/String;IJ)J
 PLcom/android/server/usage/AppIdleHistory;->getUserFile(I)Ljava/io/File;
-HPLcom/android/server/usage/AppIdleHistory;->getUserHistory(I)Landroid/util/ArrayMap;
-HPLcom/android/server/usage/AppIdleHistory;->insertBucketExpiryTime(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;IJ)V
-HPLcom/android/server/usage/AppIdleHistory;->isIdle(Ljava/lang/String;IJ)Z
-PLcom/android/server/usage/AppIdleHistory;->logAppStandbyBucketChanged(Ljava/lang/String;III)V
-HPLcom/android/server/usage/AppIdleHistory;->readAppIdleTimes(ILandroid/util/ArrayMap;)V
-HPLcom/android/server/usage/AppIdleHistory;->readBucketExpiryTimes(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;)V
-PLcom/android/server/usage/AppIdleHistory;->readScreenOnTime()V
-HPLcom/android/server/usage/AppIdleHistory;->removeElapsedExpiryTimes(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;J)V
-HPLcom/android/server/usage/AppIdleHistory;->reportUsage(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;Ljava/lang/String;IIIJJ)Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;
-HPLcom/android/server/usage/AppIdleHistory;->setAppStandbyBucket(Ljava/lang/String;IJII)V
-HPLcom/android/server/usage/AppIdleHistory;->setAppStandbyBucket(Ljava/lang/String;IJIIZ)V
-PLcom/android/server/usage/AppIdleHistory;->setEstimatedLaunchTime(Ljava/lang/String;IJJ)V
-HPLcom/android/server/usage/AppIdleHistory;->setLastJobRunTime(Ljava/lang/String;IJ)V
-HPLcom/android/server/usage/AppIdleHistory;->shouldInformListeners(Ljava/lang/String;IJI)Z
-PLcom/android/server/usage/AppIdleHistory;->updateDisplay(ZJ)V
-PLcom/android/server/usage/AppIdleHistory;->userFileExists(I)Z
-PLcom/android/server/usage/AppStandbyController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usage/AppStandbyController;)V
+HPLcom/android/server/usage/AppIdleHistory;->getUserHistory(I)Landroid/util/ArrayMap;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/usage/AppIdleHistory;->insertBucketExpiryTime(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;IJ)V
+HPLcom/android/server/usage/AppIdleHistory;->isIdle(ILjava/lang/String;)Z
+PLcom/android/server/usage/AppIdleHistory;->printLastActionElapsedTime(Landroid/util/IndentingPrintWriter;JJ)V
+PLcom/android/server/usage/AppIdleHistory;->readBucketExpiryTimes(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;)V
+HPLcom/android/server/usage/AppIdleHistory;->reportUsage(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;Ljava/lang/String;IIIJJ)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;
+PLcom/android/server/usage/AppIdleHistory;->setAppStandbyBucket(IIIJLjava/lang/String;Z)V
+PLcom/android/server/usage/AppIdleHistory;->updateDisplay(JZ)V
+HPLcom/android/server/usage/AppIdleHistory;->writeAppIdleTimes(IJ)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;
+PLcom/android/server/usage/AppIdleHistory;->writeScreenOnTime()V
+PLcom/android/server/usage/AppStandbyController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usage/AppStandbyController;I)V
 PLcom/android/server/usage/AppStandbyController$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/usage/AppStandbyController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/usage/AppStandbyController$1;-><init>(Lcom/android/server/usage/AppStandbyController;)V
 PLcom/android/server/usage/AppStandbyController$2;-><init>(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController$2;->onDisplayChanged(I)V
+HPLcom/android/server/usage/AppStandbyController$2;->onDisplayChanged(I)V
 PLcom/android/server/usage/AppStandbyController$AppStandbyHandler;-><init>(Lcom/android/server/usage/AppStandbyController;Landroid/os/Looper;)V
 HPLcom/android/server/usage/AppStandbyController$AppStandbyHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/usage/AppStandbyController$ConstantsObserver;-><init>(Lcom/android/server/usage/AppStandbyController;Landroid/os/Handler;)V
+PLcom/android/server/usage/AppStandbyController$ConstantsObserver;->onChange(Z)V
+PLcom/android/server/usage/AppStandbyController$ConstantsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/usage/AppStandbyController$ConstantsObserver;->processProperties(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/usage/AppStandbyController$ConstantsObserver;->start()V
 PLcom/android/server/usage/AppStandbyController$ConstantsObserver;->updateSettings()V
 PLcom/android/server/usage/AppStandbyController$ContentProviderUsageRecord;-><clinit>()V
-PLcom/android/server/usage/AppStandbyController$ContentProviderUsageRecord;-><init>()V
-HPLcom/android/server/usage/AppStandbyController$ContentProviderUsageRecord;->obtain(Ljava/lang/String;Ljava/lang/String;I)Lcom/android/server/usage/AppStandbyController$ContentProviderUsageRecord;
-HPLcom/android/server/usage/AppStandbyController$ContentProviderUsageRecord;->recycle()V
-PLcom/android/server/usage/AppStandbyController$DeviceStateReceiver;-><init>(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController$DeviceStateReceiver;-><init>(Lcom/android/server/usage/AppStandbyController;Lcom/android/server/usage/AppStandbyController$DeviceStateReceiver-IA;)V
 PLcom/android/server/usage/AppStandbyController$Injector;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-HPLcom/android/server/usage/AppStandbyController$Injector;->elapsedRealtime()J
-HPLcom/android/server/usage/AppStandbyController$Injector;->getActiveNetworkScorer()Ljava/lang/String;
-PLcom/android/server/usage/AppStandbyController$Injector;->getAppOpsService()Lcom/android/internal/app/IAppOpsService;
-PLcom/android/server/usage/AppStandbyController$Injector;->getBootPhase()I
-PLcom/android/server/usage/AppStandbyController$Injector;->getContext()Landroid/content/Context;
-PLcom/android/server/usage/AppStandbyController$Injector;->getDataSystemDirectory()Ljava/io/File;
-PLcom/android/server/usage/AppStandbyController$Injector;->getDeviceConfigProperties([Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties;
-PLcom/android/server/usage/AppStandbyController$Injector;->getLooper()Landroid/os/Looper;
-PLcom/android/server/usage/AppStandbyController$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/usage/AppStandbyController$Injector;->getRunningUserIds()[I
-HPLcom/android/server/usage/AppStandbyController$Injector;->getValidCrossProfileTargets(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/usage/AppStandbyController$Injector;->isAppIdleEnabled()Z
-PLcom/android/server/usage/AppStandbyController$Injector;->isCharging()Z
-PLcom/android/server/usage/AppStandbyController$Injector;->isDefaultDisplayOn()Z
-HPLcom/android/server/usage/AppStandbyController$Injector;->isNonIdleWhitelisted(Ljava/lang/String;)Z
-HPLcom/android/server/usage/AppStandbyController$Injector;->isWellbeingPackage(Ljava/lang/String;)Z
-PLcom/android/server/usage/AppStandbyController$Injector;->noteEvent(ILjava/lang/String;I)V
-PLcom/android/server/usage/AppStandbyController$Injector;->onBootPhase(I)V
-PLcom/android/server/usage/AppStandbyController$Injector;->registerDeviceConfigPropertiesChangedListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-PLcom/android/server/usage/AppStandbyController$Injector;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
-HPLcom/android/server/usage/AppStandbyController$Injector;->shouldGetExactAlarmBucketElevation(Ljava/lang/String;I)Z
-PLcom/android/server/usage/AppStandbyController$Injector;->updatePowerWhitelistCache()V
-PLcom/android/server/usage/AppStandbyController$Lock;-><init>()V
-PLcom/android/server/usage/AppStandbyController$PackageReceiver;-><init>(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController$PackageReceiver;-><init>(Lcom/android/server/usage/AppStandbyController;Lcom/android/server/usage/AppStandbyController$PackageReceiver-IA;)V
+PLcom/android/server/usage/AppStandbyController$Injector;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/usage/AppStandbyController$PackageReceiver;-><init>(Lcom/android/server/usage/AppStandbyController;I)V
+PLcom/android/server/usage/AppStandbyController$PackageReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/usage/AppStandbyController$Pool;-><init>([Ljava/lang/Object;)V
-HPLcom/android/server/usage/AppStandbyController$Pool;->obtain()Ljava/lang/Object;
-HPLcom/android/server/usage/AppStandbyController$Pool;->recycle(Ljava/lang/Object;)V
+PLcom/android/server/usage/AppStandbyController$Pool;->obtain()Ljava/lang/Object;
+PLcom/android/server/usage/AppStandbyController$Pool;->recycle(Ljava/lang/Object;)V
 PLcom/android/server/usage/AppStandbyController$StandbyUpdateRecord;-><clinit>()V
-PLcom/android/server/usage/AppStandbyController$StandbyUpdateRecord;-><init>()V
-HPLcom/android/server/usage/AppStandbyController$StandbyUpdateRecord;->obtain(Ljava/lang/String;IIIZ)Lcom/android/server/usage/AppStandbyController$StandbyUpdateRecord;
-PLcom/android/server/usage/AppStandbyController$StandbyUpdateRecord;->recycle()V
-PLcom/android/server/usage/AppStandbyController;->$r8$lambda$U2-GF_fLZHT7_Jm_uRMpoT-uHZQ(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController;->$r8$lambda$vJLDXlUh4fYgit4sBALnnUw4CrE(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$fgetmAppIdleEnabled(Lcom/android/server/usage/AppStandbyController;)Z
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$fgetmAppIdleHistory(Lcom/android/server/usage/AppStandbyController;)Lcom/android/server/usage/AppIdleHistory;
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$fgetmAppIdleLock(Lcom/android/server/usage/AppStandbyController;)Ljava/lang/Object;
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$fgetmContext(Lcom/android/server/usage/AppStandbyController;)Landroid/content/Context;
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$fgetmHandler(Lcom/android/server/usage/AppStandbyController;)Lcom/android/server/usage/AppStandbyController$AppStandbyHandler;
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$fgetmPendingIdleStateChecks(Lcom/android/server/usage/AppStandbyController;)Landroid/util/SparseLongArray;
-HPLcom/android/server/usage/AppStandbyController;->-$$Nest$mcheckAndUpdateStandbyState(Lcom/android/server/usage/AppStandbyController;Ljava/lang/String;IIJ)V
-HPLcom/android/server/usage/AppStandbyController;->-$$Nest$minformListeners(Lcom/android/server/usage/AppStandbyController;Ljava/lang/String;IIIZ)V
+PLcom/android/server/usage/AppStandbyController;->-$$Nest$minformListeners(Lcom/android/server/usage/AppStandbyController;Ljava/lang/String;IIIZ)V
 PLcom/android/server/usage/AppStandbyController;->-$$Nest$minformParoleStateChanged(Lcom/android/server/usage/AppStandbyController;)V
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$misDisplayOn(Lcom/android/server/usage/AppStandbyController;)Z
 PLcom/android/server/usage/AppStandbyController;->-$$Nest$mreportContentProviderUsage(Lcom/android/server/usage/AppStandbyController;Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/usage/AppStandbyController;->-$$Nest$mwaitForAdminData(Lcom/android/server/usage/AppStandbyController;)V
 PLcom/android/server/usage/AppStandbyController;-><clinit>()V
 PLcom/android/server/usage/AppStandbyController;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/usage/AppStandbyController;-><init>(Lcom/android/server/usage/AppStandbyController$Injector;)V
 PLcom/android/server/usage/AppStandbyController;->addListener(Lcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;)V
-HPLcom/android/server/usage/AppStandbyController;->checkAndUpdateStandbyState(Ljava/lang/String;IIJ)V
-HPLcom/android/server/usage/AppStandbyController;->checkIdleStates(I)Z
+HPLcom/android/server/usage/AppStandbyController;->checkAndUpdateStandbyState(IILjava/lang/String;J)V
+PLcom/android/server/usage/AppStandbyController;->checkIdleStates(I)Z
 PLcom/android/server/usage/AppStandbyController;->clearCarrierPrivilegedApps()V
-PLcom/android/server/usage/AppStandbyController;->fetchCarrierPrivilegedAppsCPL()V
-HPLcom/android/server/usage/AppStandbyController;->getAppMinBucket(Ljava/lang/String;II)I
+PLcom/android/server/usage/AppStandbyController;->dumpState([Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/usage/AppStandbyController;->dumpUsers(Landroid/util/IndentingPrintWriter;[ILjava/util/List;)V
+PLcom/android/server/usage/AppStandbyController;->flushToDisk()V
+PLcom/android/server/usage/AppStandbyController;->getAppId(Ljava/lang/String;)I
+HPLcom/android/server/usage/AppStandbyController;->getAppMinBucket(IILjava/lang/String;)I
 HPLcom/android/server/usage/AppStandbyController;->getAppStandbyBucket(Ljava/lang/String;IJZ)I
-HPLcom/android/server/usage/AppStandbyController;->getAppStandbyBucketReason(Ljava/lang/String;IJ)I
+PLcom/android/server/usage/AppStandbyController;->getAppStandbyBucketReason(Ljava/lang/String;IJ)I
 PLcom/android/server/usage/AppStandbyController;->getAppStandbyBuckets(I)Ljava/util/List;
-HPLcom/android/server/usage/AppStandbyController;->getBucketForLocked(Ljava/lang/String;IJ)I
-HPLcom/android/server/usage/AppStandbyController;->getCrossProfileTargets(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/usage/AppStandbyController;->getEstimatedLaunchTime(Ljava/lang/String;I)J
-HPLcom/android/server/usage/AppStandbyController;->getIdleUidsForUser(I)[I
-HPLcom/android/server/usage/AppStandbyController;->getMinBucketWithValidExpiryTime(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;IJ)I
-PLcom/android/server/usage/AppStandbyController;->getSystemPackagesWithLauncherActivities()Ljava/util/Set;
+PLcom/android/server/usage/AppStandbyController;->getBroadcastResponseExemptedPermissions()Ljava/util/List;
+PLcom/android/server/usage/AppStandbyController;->getBroadcastResponseExemptedRoles()Ljava/util/List;
+PLcom/android/server/usage/AppStandbyController;->getBroadcastResponseFgThresholdState()I
+PLcom/android/server/usage/AppStandbyController;->getBroadcastResponseWindowDurationMs()J
+PLcom/android/server/usage/AppStandbyController;->getBroadcastSessionsDurationMs()J
+PLcom/android/server/usage/AppStandbyController;->getBucketForLocked(ILjava/lang/String;J)I
+HPLcom/android/server/usage/AppStandbyController;->getCrossProfileTargets(ILjava/lang/String;)Ljava/util/List;+]Landroid/content/pm/CrossProfileAppsInternal;Lcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/internal/pm/parsing/pkg/PackageImpl;
+HPLcom/android/server/usage/AppStandbyController;->getEstimatedLaunchTime(Ljava/lang/String;I)J
+PLcom/android/server/usage/AppStandbyController;->getIdleUidsForUser(I)[I
+PLcom/android/server/usage/AppStandbyController;->getMinBucketWithValidExpiryTime(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;IJ)I
 PLcom/android/server/usage/AppStandbyController;->getTimeSinceLastJobRun(Ljava/lang/String;I)J
-HPLcom/android/server/usage/AppStandbyController;->informListeners(Ljava/lang/String;IIIZ)V
-PLcom/android/server/usage/AppStandbyController;->informParoleStateChanged()V
 HPLcom/android/server/usage/AppStandbyController;->isActiveDeviceAdmin(Ljava/lang/String;I)Z
-HPLcom/android/server/usage/AppStandbyController;->isActiveNetworkScorer(Ljava/lang/String;)Z
-HPLcom/android/server/usage/AppStandbyController;->isAdminProtectedPackages(Ljava/lang/String;I)Z
 HPLcom/android/server/usage/AppStandbyController;->isAppIdleEnabled()Z
 HPLcom/android/server/usage/AppStandbyController;->isAppIdleFiltered(Ljava/lang/String;IIJ)Z
-HPLcom/android/server/usage/AppStandbyController;->isAppIdleUnfiltered(Ljava/lang/String;IJ)Z
-HPLcom/android/server/usage/AppStandbyController;->isCarrierApp(Ljava/lang/String;)Z
-HPLcom/android/server/usage/AppStandbyController;->isDeviceProvisioningPackage(Ljava/lang/String;)Z
-PLcom/android/server/usage/AppStandbyController;->isDisplayOn()Z
-HPLcom/android/server/usage/AppStandbyController;->isHeadlessSystemApp(Ljava/lang/String;)Z
+PLcom/android/server/usage/AppStandbyController;->isAppIdleFiltered(Ljava/lang/String;IJZ)Z
+PLcom/android/server/usage/AppStandbyController;->isHeadlessSystemApp(Ljava/lang/String;)Z
 HPLcom/android/server/usage/AppStandbyController;->isInParole()Z
-PLcom/android/server/usage/AppStandbyController;->isUserUsage(I)Z
-PLcom/android/server/usage/AppStandbyController;->loadHeadlessSystemAppCache()V
-HPLcom/android/server/usage/AppStandbyController;->maybeInformListeners(Ljava/lang/String;IJIIZ)V
-PLcom/android/server/usage/AppStandbyController;->notifyBatteryStats(Ljava/lang/String;IZ)V
+PLcom/android/server/usage/AppStandbyController;->maybeInformListeners(IILjava/lang/String;IZ)V
+PLcom/android/server/usage/AppStandbyController;->maybeUnrestrictApp(Ljava/lang/String;IIIII)V
+PLcom/android/server/usage/AppStandbyController;->maybeUnrestrictBuggyApp(Ljava/lang/String;I)V
+PLcom/android/server/usage/AppStandbyController;->maybeUpdateHeadlessSystemAppCache(Landroid/content/pm/PackageInfo;)V
+PLcom/android/server/usage/AppStandbyController;->notifyBatteryStats(ILjava/lang/String;Z)V
 PLcom/android/server/usage/AppStandbyController;->onAdminDataAvailable()V
-HPLcom/android/server/usage/AppStandbyController;->onBootPhase(I)V
-HPLcom/android/server/usage/AppStandbyController;->onUsageEvent(ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/usage/AppStandbyController;->postCheckIdleStates(I)V
+PLcom/android/server/usage/AppStandbyController;->onBootPhase(I)V
+HPLcom/android/server/usage/AppStandbyController;->onUsageEvent(ILandroid/app/usage/UsageEvents$Event;)V+]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;
 PLcom/android/server/usage/AppStandbyController;->postOneTimeCheckIdleStates()V
-PLcom/android/server/usage/AppStandbyController;->postParoleStateChanged()V
-HPLcom/android/server/usage/AppStandbyController;->postReportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/usage/AppStandbyController;->predictionTimedOut(Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;J)Z
-HPLcom/android/server/usage/AppStandbyController;->reportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/usage/AppStandbyController;->reportEventLocked(Ljava/lang/String;IJI)V
+PLcom/android/server/usage/AppStandbyController;->postReportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/usage/AppStandbyController;->postReportExemptedSyncStart(Ljava/lang/String;I)V
+PLcom/android/server/usage/AppStandbyController;->postReportSyncScheduled(Ljava/lang/String;IZ)V
+HPLcom/android/server/usage/AppStandbyController;->reportEventLocked(IILjava/lang/String;J)V
+PLcom/android/server/usage/AppStandbyController;->reportNoninteractiveUsageCrossUserLocked(Ljava/lang/String;IIIJJLjava/util/List;)V
+PLcom/android/server/usage/AppStandbyController;->reportNoninteractiveUsageLocked(IILjava/lang/String;IJJ)V
 PLcom/android/server/usage/AppStandbyController;->setActiveAdminApps(Ljava/util/Set;I)V
 PLcom/android/server/usage/AppStandbyController;->setAppIdleEnabled(Z)V
 PLcom/android/server/usage/AppStandbyController;->setChargingState(Z)V
 PLcom/android/server/usage/AppStandbyController;->setEstimatedLaunchTime(Ljava/lang/String;IJ)V
 HPLcom/android/server/usage/AppStandbyController;->setLastJobRunTime(Ljava/lang/String;IJ)V
 PLcom/android/server/usage/AppStandbyController;->updateHeadlessSystemAppCache(Ljava/lang/String;Z)Z
-PLcom/android/server/usage/AppStandbyController;->updatePowerWhitelistCache()V
-PLcom/android/server/usage/AppStandbyController;->usageEventToSubReason(I)I
-PLcom/android/server/usage/AppStandbyController;->waitForAdminData()V
-PLcom/android/server/usage/AppTimeLimitController$Lock;-><init>()V
-PLcom/android/server/usage/AppTimeLimitController$Lock;-><init>(Lcom/android/server/usage/AppTimeLimitController$Lock-IA;)V
 PLcom/android/server/usage/AppTimeLimitController$MyHandler;-><init>(Lcom/android/server/usage/AppTimeLimitController;Landroid/os/Looper;)V
-PLcom/android/server/usage/AppTimeLimitController$UserData;-><init>(Lcom/android/server/usage/AppTimeLimitController;I)V
-PLcom/android/server/usage/AppTimeLimitController$UserData;-><init>(Lcom/android/server/usage/AppTimeLimitController;ILcom/android/server/usage/AppTimeLimitController$UserData-IA;)V
+PLcom/android/server/usage/AppTimeLimitController$UserData;-><init>(I)V
+PLcom/android/server/usage/AppTimeLimitController$UserData;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/usage/AppTimeLimitController;-><clinit>()V
-PLcom/android/server/usage/AppTimeLimitController;-><init>(Landroid/content/Context;Lcom/android/server/usage/AppTimeLimitController$TimeLimitCallbackListener;Landroid/os/Looper;)V
+PLcom/android/server/usage/AppTimeLimitController;-><init>(Landroid/content/Context;Lcom/android/server/usage/UsageStatsService$2;Landroid/os/Looper;)V
+PLcom/android/server/usage/AppTimeLimitController;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/usage/AppTimeLimitController;->getElapsedRealtime()J
 PLcom/android/server/usage/AppTimeLimitController;->getOrCreateUserDataLocked(I)Lcom/android/server/usage/AppTimeLimitController$UserData;
-PLcom/android/server/usage/AppTimeLimitController;->noteUsageStart(Ljava/lang/String;I)V
-PLcom/android/server/usage/AppTimeLimitController;->noteUsageStart(Ljava/lang/String;IJ)V
-PLcom/android/server/usage/AppTimeLimitController;->noteUsageStop(Ljava/lang/String;I)V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda1;-><init>()V
+HPLcom/android/server/usage/AppTimeLimitController;->noteUsageStart(ILjava/lang/String;J)V
+HPLcom/android/server/usage/AppTimeLimitController;->noteUsageStop(ILjava/lang/String;)V
+PLcom/android/server/usage/BroadcastEvent;-><init>(IILjava/lang/String;J)V
+PLcom/android/server/usage/BroadcastEvent;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/usage/BroadcastEvent;->hashCode()I
+PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
+PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda1;-><init>(I)V
 PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;
-PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;
-PLcom/android/server/usage/BroadcastResponseStatsLogger$LogBuffer;-><init>(Ljava/util/function/Supplier;Ljava/util/function/IntFunction;I)V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$LogBuffer;->logNotificationEvent(ILjava/lang/String;Landroid/os/UserHandle;J)V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$NotificationEvent;-><init>()V
-PLcom/android/server/usage/BroadcastResponseStatsLogger$NotificationEvent;-><init>(Lcom/android/server/usage/BroadcastResponseStatsLogger$NotificationEvent-IA;)V
+PLcom/android/server/usage/BroadcastResponseStatsLogger$BroadcastEvent;->reset()V
 PLcom/android/server/usage/BroadcastResponseStatsLogger$NotificationEvent;->reset()V
-PLcom/android/server/usage/BroadcastResponseStatsLogger;->$r8$lambda$W1F85tjQJ7p6e3fOCAIRsqTjcl4(I)Ljava/lang/Object;
-PLcom/android/server/usage/BroadcastResponseStatsLogger;->$r8$lambda$lW8VT65-e47HoACtwf8YZwpc8Xs()Lcom/android/server/usage/BroadcastResponseStatsLogger$NotificationEvent;
-PLcom/android/server/usage/BroadcastResponseStatsLogger;->$r8$lambda$wkyHpYbAHm1Dorsn7ksUN7TwqCk(I)Ljava/lang/Object;
+PLcom/android/server/usage/BroadcastResponseStatsLogger$NotificationEvent;->toString()Ljava/lang/String;
 PLcom/android/server/usage/BroadcastResponseStatsLogger;-><clinit>()V
 PLcom/android/server/usage/BroadcastResponseStatsLogger;-><init>()V
-PLcom/android/server/usage/BroadcastResponseStatsLogger;->lambda$new$0(I)Ljava/lang/Object;
-PLcom/android/server/usage/BroadcastResponseStatsLogger;->lambda$new$1(I)Ljava/lang/Object;
-PLcom/android/server/usage/BroadcastResponseStatsLogger;->logNotificationEvent(ILjava/lang/String;Landroid/os/UserHandle;J)V
+PLcom/android/server/usage/BroadcastResponseStatsLogger;->dumpLogs(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/BroadcastResponseStatsLogger;->getNotificationEventLog(IILjava/lang/String;J)Ljava/lang/String;
 PLcom/android/server/usage/BroadcastResponseStatsTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usage/BroadcastResponseStatsTracker;)V
+PLcom/android/server/usage/BroadcastResponseStatsTracker$$ExternalSyntheticLambda0;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/usage/BroadcastResponseStatsTracker;-><init>(Lcom/android/server/usage/AppStandbyInternal;Landroid/content/Context;)V
-PLcom/android/server/usage/BroadcastResponseStatsTracker;->getBroadcastEventsLocked(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/util/ArraySet;
-PLcom/android/server/usage/BroadcastResponseStatsTracker;->onSystemServicesReady(Landroid/content/Context;)V
-PLcom/android/server/usage/BroadcastResponseStatsTracker;->reportNotificationEvent(ILjava/lang/String;Landroid/os/UserHandle;J)V
-PLcom/android/server/usage/BroadcastResponseStatsTracker;->reportNotificationPosted(Ljava/lang/String;Landroid/os/UserHandle;J)V
-PLcom/android/server/usage/IntervalStats$EventTracker;-><init>()V
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->doesPackageHoldExemptedPermission(Ljava/lang/String;Landroid/os/UserHandle;)Z
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->doesPackageHoldExemptedRole(Ljava/lang/String;Landroid/os/UserHandle;)Z
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->dumpBroadcastEventsLocked(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->dumpResponseStatsLocked(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->dumpRoleHoldersLocked(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->getOrCreateBroadcastEventsLocked(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/util/ArraySet;
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->getOrCreateBroadcastResponseStats(Lcom/android/server/usage/BroadcastEvent;)Landroid/app/usage/BroadcastResponseStats;
+PLcom/android/server/usage/BroadcastResponseStatsTracker;->recordAndPruneOldBroadcastDispatchTimestamps(Lcom/android/server/usage/BroadcastEvent;)V
+HPLcom/android/server/usage/BroadcastResponseStatsTracker;->reportNotificationEvent(ILjava/lang/String;Landroid/os/UserHandle;J)V
+PLcom/android/server/usage/FeatureFlagsImpl;->init()V
+PLcom/android/server/usage/Flags;-><clinit>()V
+PLcom/android/server/usage/Flags;->adjustDefaultBucketElevationParams()Z
+PLcom/android/server/usage/Flags;->screenTimeBypass()Z
 PLcom/android/server/usage/IntervalStats$EventTracker;->commitTime(J)V
 PLcom/android/server/usage/IntervalStats$EventTracker;->update(J)V
 HPLcom/android/server/usage/IntervalStats;-><init>()V
 HPLcom/android/server/usage/IntervalStats;->addEvent(Landroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/usage/IntervalStats;->deobfuscateData(Lcom/android/server/usage/PackagesTokenData;)Z
-HPLcom/android/server/usage/IntervalStats;->deobfuscateEvents(Lcom/android/server/usage/PackagesTokenData;)Z
-PLcom/android/server/usage/IntervalStats;->deobfuscateUsageStats(Lcom/android/server/usage/PackagesTokenData;)Z
-HPLcom/android/server/usage/IntervalStats;->getCachedStringRef(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/usage/IntervalStats;->getOrCreateConfigurationStats(Landroid/content/res/Configuration;)Landroid/app/usage/ConfigurationStats;
+PLcom/android/server/usage/IntervalStats;->getCachedStringRef(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/usage/IntervalStats;->getOrCreateConfigurationStats(Landroid/content/res/Configuration;)Landroid/app/usage/ConfigurationStats;
 HPLcom/android/server/usage/IntervalStats;->getOrCreateUsageStats(Ljava/lang/String;)Landroid/app/usage/UsageStats;
-PLcom/android/server/usage/IntervalStats;->incrementAppLaunchCount(Ljava/lang/String;)V
-PLcom/android/server/usage/IntervalStats;->obfuscateData(Lcom/android/server/usage/PackagesTokenData;)V
-HPLcom/android/server/usage/IntervalStats;->obfuscateEventsData(Lcom/android/server/usage/PackagesTokenData;)V
-HPLcom/android/server/usage/IntervalStats;->obfuscateUsageStatsData(Lcom/android/server/usage/PackagesTokenData;)V
+HPLcom/android/server/usage/IntervalStats;->obfuscateData(Lcom/android/server/usage/PackagesTokenData;)V+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/usage/IntervalStats;->update(Ljava/lang/String;Ljava/lang/String;JII)V
 PLcom/android/server/usage/IntervalStats;->updateConfigurationStats(Landroid/content/res/Configuration;J)V
-PLcom/android/server/usage/IntervalStats;->updateScreenInteractive(J)V
 PLcom/android/server/usage/PackagesTokenData;-><init>()V
-PLcom/android/server/usage/PackagesTokenData;->getPackageString(I)Ljava/lang/String;
-HPLcom/android/server/usage/PackagesTokenData;->getPackageTokenOrAdd(Ljava/lang/String;J)I
-PLcom/android/server/usage/PackagesTokenData;->getString(II)Ljava/lang/String;
-HPLcom/android/server/usage/PackagesTokenData;->getTokenOrAdd(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/server/usage/PackagesTokenData;->getPackageTokenOrAdd(JLjava/lang/String;)I
+HPLcom/android/server/usage/PackagesTokenData;->getString(II)Ljava/lang/String;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/usage/PackagesTokenData;->getTokenOrAdd(ILjava/lang/String;Ljava/lang/String;)I+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda0;-><init>(Landroid/content/pm/PackageStats;Landroid/os/UserHandle;)V
+PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda1;-><init>(Landroid/content/pm/PackageStats;IZ)V
+HPLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda2;-><init>(Landroid/content/pm/PackageStats;Ljava/lang/String;Landroid/os/UserHandle;Z)V
+PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
 PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/usage/StorageStatsService;)V
+PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda3;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/usage/StorageStatsService$1;-><init>(Lcom/android/server/usage/StorageStatsService;)V
 PLcom/android/server/usage/StorageStatsService$1;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
 PLcom/android/server/usage/StorageStatsService$2;-><init>(Lcom/android/server/usage/StorageStatsService;)V
+PLcom/android/server/usage/StorageStatsService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/usage/StorageStatsService$H;-><init>(Lcom/android/server/usage/StorageStatsService;Landroid/os/Looper;)V
 PLcom/android/server/usage/StorageStatsService$H;->getInitializedStrategy()Lcom/android/server/storage/CacheQuotaStrategy;
-HPLcom/android/server/usage/StorageStatsService$H;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/usage/StorageStatsService$H;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/usage/StorageStatsService$H;->recalculateQuotas(Lcom/android/server/storage/CacheQuotaStrategy;)V
 PLcom/android/server/usage/StorageStatsService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/usage/StorageStatsService$Lifecycle;->onStart()V
 PLcom/android/server/usage/StorageStatsService$LocalService;-><init>(Lcom/android/server/usage/StorageStatsService;)V
-PLcom/android/server/usage/StorageStatsService$LocalService;-><init>(Lcom/android/server/usage/StorageStatsService;Lcom/android/server/usage/StorageStatsService$LocalService-IA;)V
 PLcom/android/server/usage/StorageStatsService$LocalService;->registerStorageStatsAugmenter(Lcom/android/server/usage/StorageStatsManagerLocal$StorageStatsAugmenter;Ljava/lang/String;)V
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$fgetmCacheQuotas(Lcom/android/server/usage/StorageStatsService;)Landroid/util/ArrayMap;
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$fgetmContext(Lcom/android/server/usage/StorageStatsService;)Landroid/content/Context;
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$fgetmInstaller(Lcom/android/server/usage/StorageStatsService;)Lcom/android/server/pm/Installer;
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$fgetmLock(Lcom/android/server/usage/StorageStatsService;)Ljava/lang/Object;
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$fgetmStorageStatsAugmenters(Lcom/android/server/usage/StorageStatsService;)Ljava/util/concurrent/CopyOnWriteArrayList;
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$fgetmStorageThresholdPercentHigh(Lcom/android/server/usage/StorageStatsService;)I
-PLcom/android/server/usage/StorageStatsService;->-$$Nest$minvalidateMounts(Lcom/android/server/usage/StorageStatsService;)V
 PLcom/android/server/usage/StorageStatsService;-><clinit>()V
-HPLcom/android/server/usage/StorageStatsService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usage/StorageStatsService;->invalidateMounts()V
+PLcom/android/server/usage/StorageStatsService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/usage/StorageStatsService;->checkStatsPermission(ILjava/lang/String;Z)Ljava/lang/String;+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/content/Context;Landroid/app/ContextImpl;
+HPLcom/android/server/usage/StorageStatsService;->computeAppStatsByDataTypes(Landroid/content/pm/PackageStats;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/usage/StorageStatsService;->enforceStatsPermission(ILjava/lang/String;)V
+HPLcom/android/server/usage/StorageStatsService;->forEachStorageStatsAugmenter(Ljava/lang/String;Ljava/util/function/Consumer;)V+]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/function/Consumer;Lcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda0;,Lcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda1;,Lcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda2;
+PLcom/android/server/usage/StorageStatsService;->getAppIds(I)[I
+PLcom/android/server/usage/StorageStatsService;->getCacheBytes(Ljava/lang/String;Ljava/lang/String;)J
+PLcom/android/server/usage/StorageStatsService;->getCacheQuotaBytes(Ljava/lang/String;ILjava/lang/String;)J
+PLcom/android/server/usage/StorageStatsService;->getDirBytes(Ljava/io/File;)J
+PLcom/android/server/usage/StorageStatsService;->getFileBytesInDir(Ljava/io/File;Ljava/lang/String;)J
 PLcom/android/server/usage/StorageStatsService;->isCacheQuotaCalculationsEnabled(Landroid/content/ContentResolver;)Z
+PLcom/android/server/usage/StorageStatsService;->isQuotaSupported(Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/usage/StorageStatsService;->queryExternalStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/ExternalStorageStats;
+HPLcom/android/server/usage/StorageStatsService;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+HPLcom/android/server/usage/StorageStatsService;->queryStatsForUid(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+PLcom/android/server/usage/StorageStatsService;->queryStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
+HPLcom/android/server/usage/StorageStatsService;->translate(Landroid/content/pm/PackageStats;)Landroid/app/usage/StorageStats;
 PLcom/android/server/usage/StorageStatsService;->updateConfig()V
-PLcom/android/server/usage/UnixCalendar;-><init>(J)V
-PLcom/android/server/usage/UnixCalendar;->addDays(I)V
-PLcom/android/server/usage/UnixCalendar;->getTimeInMillis()J
-PLcom/android/server/usage/UnixCalendar;->setTimeInMillis(J)V
-PLcom/android/server/usage/UsageStatsDatabase$1;-><init>(Lcom/android/server/usage/UsageStatsDatabase;)V
+PLcom/android/server/usage/UnixCalendar;-><init>()V
 PLcom/android/server/usage/UsageStatsDatabase$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
 PLcom/android/server/usage/UsageStatsDatabase;-><clinit>()V
-PLcom/android/server/usage/UsageStatsDatabase;-><init>(Ljava/io/File;)V
 PLcom/android/server/usage/UsageStatsDatabase;-><init>(Ljava/io/File;I)V
 PLcom/android/server/usage/UsageStatsDatabase;->checkVersionAndBuildLocked()V
-PLcom/android/server/usage/UsageStatsDatabase;->filterStats(Lcom/android/server/usage/IntervalStats;)V
-PLcom/android/server/usage/UsageStatsDatabase;->findBestFitBucket(JJ)I
-PLcom/android/server/usage/UsageStatsDatabase;->getBuildFingerprint()Ljava/lang/String;
+PLcom/android/server/usage/UsageStatsDatabase;->dump(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+PLcom/android/server/usage/UsageStatsDatabase;->dumpMappings(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;I)[B
 PLcom/android/server/usage/UsageStatsDatabase;->getLatestUsageStats(I)Lcom/android/server/usage/IntervalStats;
 PLcom/android/server/usage/UsageStatsDatabase;->indexFilesLocked()V
-PLcom/android/server/usage/UsageStatsDatabase;->init(J)V
-PLcom/android/server/usage/UsageStatsDatabase;->isNewUpdate()Z
-PLcom/android/server/usage/UsageStatsDatabase;->obfuscateCurrentStats([Lcom/android/server/usage/IntervalStats;)V
-PLcom/android/server/usage/UsageStatsDatabase;->parseBeginTime(Landroid/util/AtomicFile;)J
 PLcom/android/server/usage/UsageStatsDatabase;->parseBeginTime(Ljava/io/File;)J
+PLcom/android/server/usage/UsageStatsDatabase;->prune(J)V
+PLcom/android/server/usage/UsageStatsDatabase;->pruneChooserCountsOlderThan(Ljava/io/File;J)V
+PLcom/android/server/usage/UsageStatsDatabase;->pruneFilesOlderThan(Ljava/io/File;J)V
 PLcom/android/server/usage/UsageStatsDatabase;->putUsageStats(ILcom/android/server/usage/IntervalStats;)V
-PLcom/android/server/usage/UsageStatsDatabase;->queryUsageStats(IJJLcom/android/server/usage/UsageStatsDatabase$StatCombiner;Z)Ljava/util/List;
 PLcom/android/server/usage/UsageStatsDatabase;->readLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;Z)Z
 PLcom/android/server/usage/UsageStatsDatabase;->readLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;Z)V
-PLcom/android/server/usage/UsageStatsDatabase;->readLocked(Ljava/io/InputStream;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;Z)Z
+HPLcom/android/server/usage/UsageStatsDatabase;->readLocked(Ljava/io/InputStream;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;Z)Z+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/usage/UsageStatsDatabase;->readMappingsLocked()V
-PLcom/android/server/usage/UsageStatsDatabase;->wasUpgradePerformed()Z
+PLcom/android/server/usage/UsageStatsDatabase;->writeIntervalStatsToStream(Ljava/io/DataOutputStream;Landroid/util/AtomicFile;I)V
 PLcom/android/server/usage/UsageStatsDatabase;->writeLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;)V
 PLcom/android/server/usage/UsageStatsDatabase;->writeLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;)V
 PLcom/android/server/usage/UsageStatsDatabase;->writeLocked(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;)V
 PLcom/android/server/usage/UsageStatsDatabase;->writeMappingsLocked()V
-PLcom/android/server/usage/UsageStatsIdleService;->scheduleJobInternal(Landroid/content/Context;Landroid/app/job/JobInfo;Ljava/lang/String;I)V
-PLcom/android/server/usage/UsageStatsIdleService;->scheduleUpdateMappingsJob(Landroid/content/Context;I)V
+PLcom/android/server/usage/UsageStatsHandlerThread;-><clinit>()V
+PLcom/android/server/usage/UsageStatsIdleService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usage/UsageStatsIdleService;Landroid/app/job/JobParameters;I)V
+PLcom/android/server/usage/UsageStatsIdleService$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/usage/UsageStatsIdleService;-><init>()V
+PLcom/android/server/usage/UsageStatsIdleService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/usage/UsageStatsProto;->write(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;)V
+PLcom/android/server/usage/UsageStatsProto;->writeChooserCounts(Landroid/util/proto/ProtoOutputStream;Landroid/app/usage/UsageStats;)V
+PLcom/android/server/usage/UsageStatsProto;->writeCountAndTime(IJJLandroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/usage/UsageStatsProto;->writeUsageStats(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/usage/IntervalStats;Landroid/app/usage/UsageStats;)V
 PLcom/android/server/usage/UsageStatsProtoV2;-><clinit>()V
-PLcom/android/server/usage/UsageStatsProtoV2;->getOffsetTimestamp(JJ)J
 HPLcom/android/server/usage/UsageStatsProtoV2;->loadConfigStats(Landroid/util/proto/ProtoInputStream;Lcom/android/server/usage/IntervalStats;)V
-PLcom/android/server/usage/UsageStatsProtoV2;->loadCountAndTime(Landroid/util/proto/ProtoInputStream;JLcom/android/server/usage/IntervalStats$EventTracker;)V
-PLcom/android/server/usage/UsageStatsProtoV2;->loadPackagesMap(Landroid/util/proto/ProtoInputStream;Landroid/util/SparseArray;)V
+HPLcom/android/server/usage/UsageStatsProtoV2;->loadCountAndTime(Landroid/util/proto/ProtoInputStream;JLcom/android/server/usage/IntervalStats$EventTracker;)V
 HPLcom/android/server/usage/UsageStatsProtoV2;->parseEvent(Landroid/util/proto/ProtoInputStream;J)Landroid/app/usage/UsageEvents$Event;
 HPLcom/android/server/usage/UsageStatsProtoV2;->parseUsageStats(Landroid/util/proto/ProtoInputStream;J)Landroid/app/usage/UsageStats;
-PLcom/android/server/usage/UsageStatsProtoV2;->parseUserInteractionEventExtras(Landroid/util/proto/ProtoInputStream;)Landroid/app/usage/UsageEvents$Event$UserInteractionEventExtrasToken;
-HPLcom/android/server/usage/UsageStatsProtoV2;->read(Ljava/io/InputStream;Lcom/android/server/usage/IntervalStats;Z)V
-HPLcom/android/server/usage/UsageStatsProtoV2;->readObfuscatedData(Ljava/io/InputStream;Lcom/android/server/usage/PackagesTokenData;)V
-HPLcom/android/server/usage/UsageStatsProtoV2;->write(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;)V
+HPLcom/android/server/usage/UsageStatsProtoV2;->read(Ljava/io/InputStream;Lcom/android/server/usage/IntervalStats;Z)V+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/usage/UsageStatsProtoV2;->readObfuscatedData(Ljava/io/InputStream;Lcom/android/server/usage/PackagesTokenData;)V
+HPLcom/android/server/usage/UsageStatsProtoV2;->write(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;)V+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Landroid/util/SparseArray;Landroid/util/SparseArray;
 PLcom/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
+PLcom/android/server/usage/UsageStatsProtoV2;->writeCountAndTime(IJJLandroid/util/proto/ProtoOutputStream;)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
-PLcom/android/server/usage/UsageStatsProtoV2;->writeOffsetTimestamp(Landroid/util/proto/ProtoOutputStream;JJJ)V
-HPLcom/android/server/usage/UsageStatsProtoV2;->writeUsageStats(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/UsageStats;)V
-PLcom/android/server/usage/UsageStatsProtoV2;->writeUserInteractionEventExtras(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/UsageEvents$Event$UserInteractionEventExtrasToken;)V
+PLcom/android/server/usage/UsageStatsProtoV2;->writeObfuscatedData(Ljava/io/OutputStream;Lcom/android/server/usage/PackagesTokenData;)V
+HPLcom/android/server/usage/UsageStatsProtoV2;->writeOffsetTimestamp(Landroid/util/proto/ProtoOutputStream;JJJ)V
+PLcom/android/server/usage/UsageStatsProtoV2;->writeUsageStats(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/UsageStats;)V
 PLcom/android/server/usage/UsageStatsService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-HPLcom/android/server/usage/UsageStatsService$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/usage/UsageStatsService$$ExternalSyntheticLambda0;->handleMessage(Landroid/os/Message;)Z+]Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;Lcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda0;,Lcom/android/server/job/controllers/QuotaController$UsageEventTracker;,Lcom/android/server/usage/AppStandbyController;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
 PLcom/android/server/usage/UsageStatsService$1;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-HPLcom/android/server/usage/UsageStatsService$1;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
+PLcom/android/server/usage/UsageStatsService$1;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 PLcom/android/server/usage/UsageStatsService$2;-><init>(Lcom/android/server/usage/UsageStatsService;)V
 PLcom/android/server/usage/UsageStatsService$3;-><init>(Lcom/android/server/usage/UsageStatsService;)V
 PLcom/android/server/usage/UsageStatsService$3;->onUidGone(IZ)V
 HPLcom/android/server/usage/UsageStatsService$3;->onUidStateChanged(IIJI)V
-PLcom/android/server/usage/UsageStatsService$ActivityData;->-$$Nest$fgetmUsageSourcePackage(Lcom/android/server/usage/UsageStatsService$ActivityData;)Ljava/lang/String;
 PLcom/android/server/usage/UsageStatsService$ActivityData;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/usage/UsageStatsService$ActivityData;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/usage/UsageStatsService$ActivityData-IA;)V
 PLcom/android/server/usage/UsageStatsService$BinderService;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-PLcom/android/server/usage/UsageStatsService$BinderService;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$BinderService-IA;)V
-PLcom/android/server/usage/UsageStatsService$BinderService;->canReportUsageStats()Z
+PLcom/android/server/usage/UsageStatsService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/usage/UsageStatsService$BinderService;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
 PLcom/android/server/usage/UsageStatsService$BinderService;->hasQueryPermission(Ljava/lang/String;)Z
-PLcom/android/server/usage/UsageStatsService$BinderService;->isCallingUidSystem()Z
-PLcom/android/server/usage/UsageStatsService$BinderService;->onCarrierPrivilegedAppsChanged()V
+PLcom/android/server/usage/UsageStatsService$BinderService;->isAppInactive(Ljava/lang/String;ILjava/lang/String;)Z
+PLcom/android/server/usage/UsageStatsService$BinderService;->queryBroadcastResponseStats(Ljava/lang/String;JLjava/lang/String;I)Landroid/app/usage/BroadcastResponseStatsList;
+PLcom/android/server/usage/UsageStatsService$BinderService;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
+PLcom/android/server/usage/UsageStatsService$BinderService;->queryEventsHelper(IJJLjava/lang/String;[ILandroid/util/ArraySet;)Landroid/app/usage/UsageEvents;
+PLcom/android/server/usage/UsageStatsService$BinderService;->queryEventsWithFilter(Landroid/app/usage/UsageEventsQuery;Ljava/lang/String;)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UsageStatsService$BinderService;->queryUsageStats(IJJLjava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/usage/UsageStatsService$BinderService;->reportUserInteractionInnerHelper(Ljava/lang/String;ILandroid/os/PersistableBundle;)V
 PLcom/android/server/usage/UsageStatsService$BinderService;->reportUserInteractionWithBundle(Ljava/lang/String;ILandroid/os/PersistableBundle;)V
 PLcom/android/server/usage/UsageStatsService$H;-><init>(Lcom/android/server/usage/UsageStatsService;Landroid/os/Looper;)V
-HPLcom/android/server/usage/UsageStatsService$H;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/usage/UsageStatsService$H;->handleMessage(Landroid/os/Message;)V+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;
 PLcom/android/server/usage/UsageStatsService$Injector;-><init>()V
-PLcom/android/server/usage/UsageStatsService$Injector;->getAppStandbyController(Landroid/content/Context;)Lcom/android/server/usage/AppStandbyInternal;
 PLcom/android/server/usage/UsageStatsService$LaunchTimeAlarmQueue;-><init>(Lcom/android/server/usage/UsageStatsService;ILandroid/content/Context;Landroid/os/Looper;)V
+PLcom/android/server/usage/UsageStatsService$LaunchTimeAlarmQueue;->processExpiredAlarms(Landroid/util/ArraySet;)V
 PLcom/android/server/usage/UsageStatsService$LocalService;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-PLcom/android/server/usage/UsageStatsService$LocalService;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$LocalService-IA;)V
-HPLcom/android/server/usage/UsageStatsService$LocalService;->getAppStandbyBucket(Ljava/lang/String;IJ)I
-PLcom/android/server/usage/UsageStatsService$LocalService;->getIdleUidsForUser(I)[I
-PLcom/android/server/usage/UsageStatsService$LocalService;->getTimeSinceLastJobRun(Ljava/lang/String;I)J
-HPLcom/android/server/usage/UsageStatsService$LocalService;->isAppIdle(Ljava/lang/String;II)Z
-PLcom/android/server/usage/UsageStatsService$LocalService;->onAdminDataAvailable()V
-PLcom/android/server/usage/UsageStatsService$LocalService;->queryEventsForUser(IJJI)Landroid/app/usage/UsageEvents;
-PLcom/android/server/usage/UsageStatsService$LocalService;->registerLaunchTimeChangedListener(Landroid/app/usage/UsageStatsManagerInternal$EstimatedLaunchTimeChangedListener;)V
+HPLcom/android/server/usage/UsageStatsService$LocalService;->getAppStandbyBucket(ILjava/lang/String;J)I+]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;
+PLcom/android/server/usage/UsageStatsService$LocalService;->getBackupPayload(ILjava/lang/String;)[B
 PLcom/android/server/usage/UsageStatsService$LocalService;->registerListener(Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->reportConfigurationChange(Landroid/content/res/Configuration;I)V
-HPLcom/android/server/usage/UsageStatsService$LocalService;->reportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/server/usage/UsageStatsService$LocalService;->reportEvent(IILjava/lang/String;)V
 HPLcom/android/server/usage/UsageStatsService$LocalService;->reportEvent(Landroid/content/ComponentName;IIILandroid/content/ComponentName;)V
-HPLcom/android/server/usage/UsageStatsService$LocalService;->reportEvent(Ljava/lang/String;II)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->reportInterruptiveNotification(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->reportNotificationPosted(Ljava/lang/String;Landroid/os/UserHandle;J)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->setActiveAdminApps(Ljava/util/Set;I)V
-HPLcom/android/server/usage/UsageStatsService$LocalService;->setLastJobRunTime(Ljava/lang/String;IJ)V
+PLcom/android/server/usage/UsageStatsService$LocalService;->reportUserInteractionEvent(Ljava/lang/String;ILandroid/os/PersistableBundle;)V
 PLcom/android/server/usage/UsageStatsService$MyPackageMonitor;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-PLcom/android/server/usage/UsageStatsService$MyPackageMonitor;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$MyPackageMonitor-IA;)V
-PLcom/android/server/usage/UsageStatsService$UidRemovedReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-PLcom/android/server/usage/UsageStatsService$UidRemovedReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$UidRemovedReceiver-IA;)V
-PLcom/android/server/usage/UsageStatsService$UserActionsReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;)V
-PLcom/android/server/usage/UsageStatsService$UserActionsReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$UserActionsReceiver-IA;)V
-PLcom/android/server/usage/UsageStatsService$UserActionsReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/usage/UsageStatsService;->$r8$lambda$TpcNng9zAtQEa_4AWZmaJYBdR0c(Lcom/android/server/usage/UsageStatsService;Landroid/os/Message;)Z
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$fgetmEstimatedLaunchTimeChangedListeners(Lcom/android/server/usage/UsageStatsService;)Ljava/util/concurrent/CopyOnWriteArraySet;
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$fgetmHandler(Lcom/android/server/usage/UsageStatsService;)Landroid/os/Handler;
-HPLcom/android/server/usage/UsageStatsService;->-$$Nest$fgetmIoHandler(Lcom/android/server/usage/UsageStatsService;)Landroid/os/Handler;
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$fgetmLock(Lcom/android/server/usage/UsageStatsService;)Ljava/lang/Object;
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$fgetmPendingLaunchTimeChangePackages(Lcom/android/server/usage/UsageStatsService;)Landroid/util/SparseSetArray;
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$fgetmResponseStatsTracker(Lcom/android/server/usage/UsageStatsService;)Lcom/android/server/usage/BroadcastResponseStatsTracker;
+PLcom/android/server/usage/UsageStatsService$UidRemovedReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;I)V
+PLcom/android/server/usage/UsageStatsService$UidRemovedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/usage/UsageStatsService;->-$$Nest$mgetTrimmedString(Lcom/android/server/usage/UsageStatsService;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/usage/UsageStatsService;->-$$Nest$mloadGlobalComponentUsageLocked(Lcom/android/server/usage/UsageStatsService;)V
 PLcom/android/server/usage/UsageStatsService;->-$$Nest$monUserUnlocked(Lcom/android/server/usage/UsageStatsService;I)V
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$mregisterLaunchTimeChangedListener(Lcom/android/server/usage/UsageStatsService;Landroid/app/usage/UsageStatsManagerInternal$EstimatedLaunchTimeChangedListener;)V
-PLcom/android/server/usage/UsageStatsService;->-$$Nest$mregisterListener(Lcom/android/server/usage/UsageStatsService;Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;)V
-HPLcom/android/server/usage/UsageStatsService;->-$$Nest$mreportEventOrAddToQueue(Lcom/android/server/usage/UsageStatsService;ILandroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/usage/UsageStatsService;->-$$Nest$mshouldObfuscateInstantAppsForCaller(Lcom/android/server/usage/UsageStatsService;II)Z
 PLcom/android/server/usage/UsageStatsService;-><clinit>()V
 PLcom/android/server/usage/UsageStatsService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/usage/UsageStatsService;-><init>(Landroid/content/Context;Lcom/android/server/usage/UsageStatsService$Injector;)V
-PLcom/android/server/usage/UsageStatsService;->calculateEstimatedPackageLaunchTime(ILjava/lang/String;)J
-PLcom/android/server/usage/UsageStatsService;->calculateNextLaunchTime(ZJ)J
 HPLcom/android/server/usage/UsageStatsService;->convertToSystemTimeLocked(Landroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/usage/UsageStatsService;->deleteLegacyUserDir(I)V
 PLcom/android/server/usage/UsageStatsService;->deleteRecursively(Ljava/io/File;)V
-PLcom/android/server/usage/UsageStatsService;->getAppUsageEventOccurredAtomEventType(I)I
+PLcom/android/server/usage/UsageStatsService;->flushToDisk()V
+PLcom/android/server/usage/UsageStatsService;->flushToDiskLocked()V
 PLcom/android/server/usage/UsageStatsService;->getDpmInternal()Landroid/app/admin/DevicePolicyManagerInternal;
-PLcom/android/server/usage/UsageStatsService;->getEstimatedPackageLaunchTime(ILjava/lang/String;)J
+HPLcom/android/server/usage/UsageStatsService;->getEstimatedPackageLaunchTime(ILjava/lang/String;)J
 PLcom/android/server/usage/UsageStatsService;->getInstalledPackages(I)Ljava/util/HashMap;
 PLcom/android/server/usage/UsageStatsService;->getOrCreateLaunchTimeAlarmQueue(I)Lcom/android/server/usage/UsageStatsService$LaunchTimeAlarmQueue;
-PLcom/android/server/usage/UsageStatsService;->getShortcutServiceInternal()Landroid/content/pm/ShortcutServiceInternal;
-PLcom/android/server/usage/UsageStatsService;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/usage/UsageStatsService;->getUsageEventProcessingHandler()Landroid/os/Handler;
-PLcom/android/server/usage/UsageStatsService;->getUsageSourcePackage(Landroid/app/usage/UsageEvents$Event;)Ljava/lang/String;
-HPLcom/android/server/usage/UsageStatsService;->getUserUsageStatsServiceLocked(I)Lcom/android/server/usage/UserUsageStatsService;
-HPLcom/android/server/usage/UsageStatsService;->handleEstimatedLaunchTimesOnUserUnlock(I)V
+PLcom/android/server/usage/UsageStatsService;->getUserUsageStatsServiceLocked(I)Lcom/android/server/usage/UserUsageStatsService;
 PLcom/android/server/usage/UsageStatsService;->initializeUserUsageStatsServiceLocked(IJLjava/util/HashMap;Z)V
-HPLcom/android/server/usage/UsageStatsService;->isInstantApp(Ljava/lang/String;I)Z
-HPLcom/android/server/usage/UsageStatsService;->lambda$new$0(Landroid/os/Message;)Z
-PLcom/android/server/usage/UsageStatsService;->loadGlobalComponentUsageLocked()V
 PLcom/android/server/usage/UsageStatsService;->loadPendingEventsLocked(ILjava/util/LinkedList;)V
-HPLcom/android/server/usage/UsageStatsService;->logAppUsageEventReportedAtomLocked(IILjava/lang/String;)V
+PLcom/android/server/usage/UsageStatsService;->logAppUsageEventReportedAtomLocked(IILjava/lang/String;)V
 PLcom/android/server/usage/UsageStatsService;->migrateStatsToSystemCeIfNeededLocked(I)V
 PLcom/android/server/usage/UsageStatsService;->onBootPhase(I)V
-HPLcom/android/server/usage/UsageStatsService;->onStart()V
-PLcom/android/server/usage/UsageStatsService;->onStatsUpdated()V
+PLcom/android/server/usage/UsageStatsService;->onStart()V
 PLcom/android/server/usage/UsageStatsService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
-HPLcom/android/server/usage/UsageStatsService;->onUserUnlocked(I)V
 PLcom/android/server/usage/UsageStatsService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/usage/UsageStatsService;->publishBinderServices()V
-PLcom/android/server/usage/UsageStatsService;->queryEarliestAppEvents(IJJI)Landroid/app/usage/UsageEvents;
-PLcom/android/server/usage/UsageStatsService;->queryEarliestEventsForPackage(IJJLjava/lang/String;I)Landroid/app/usage/UsageEvents;
-PLcom/android/server/usage/UsageStatsService;->queryEvents(IJJI)Landroid/app/usage/UsageEvents;
 PLcom/android/server/usage/UsageStatsService;->queryEventsWithQueryFilters(IJJI[ILandroid/util/ArraySet;)Landroid/app/usage/UsageEvents;
-PLcom/android/server/usage/UsageStatsService;->queryUsageStats(IIJJZ)Ljava/util/List;
+HPLcom/android/server/usage/UsageStatsService;->queryUsageStats(IJJIZ)Ljava/util/List;+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;
 PLcom/android/server/usage/UsageStatsService;->readUsageSourceSetting()V
-PLcom/android/server/usage/UsageStatsService;->registerLaunchTimeChangedListener(Landroid/app/usage/UsageStatsManagerInternal$EstimatedLaunchTimeChangedListener;)V
-PLcom/android/server/usage/UsageStatsService;->registerListener(Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;)V
-HPLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V
-HPLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/usage/UsageStatsService;->shouldDeleteObsoleteData(Landroid/os/UserHandle;)Z
-PLcom/android/server/usage/UsageStatsService;->shouldObfuscateInstantAppsForCaller(II)Z
+HPLcom/android/server/usage/UsageStatsService;->reportEvent(ILandroid/app/usage/UsageEvents$Event;)V+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;
+HPLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V+]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;
+PLcom/android/server/usage/UsageStatsService;->reportEventToAllUserId(Landroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/usage/UsageStatsService;->stageChangedEstimatedLaunchTime(ILjava/lang/String;)Z
-PLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda1;-><init>(JJLandroid/util/ArraySet;Landroid/util/ArraySet;I)V
+PLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda1;-><init>(JJLandroid/util/ArraySet;Landroid/util/ArraySet;)V
 PLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda1;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-PLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda2;-><init>(JJLjava/lang/String;I)V
-PLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda2;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-PLcom/android/server/usage/UserUsageStatsService$1;-><init>()V
-PLcom/android/server/usage/UserUsageStatsService$1;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-PLcom/android/server/usage/UserUsageStatsService$2;-><init>()V
-PLcom/android/server/usage/UserUsageStatsService$3;-><init>()V
-PLcom/android/server/usage/UserUsageStatsService$4;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJZ[ZIZLandroid/util/ArraySet;Landroid/util/ArraySet;)V
-HPLcom/android/server/usage/UserUsageStatsService$4;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-PLcom/android/server/usage/UserUsageStatsService$CachedEarlyEvents;-><init>()V
-PLcom/android/server/usage/UserUsageStatsService$CachedEarlyEvents;-><init>(Lcom/android/server/usage/UserUsageStatsService$CachedEarlyEvents-IA;)V
-PLcom/android/server/usage/UserUsageStatsService;->$r8$lambda$g-bl5VNBpy8gjNFALWiQqGzaU1A(JJLjava/lang/String;ILcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-PLcom/android/server/usage/UserUsageStatsService;->$r8$lambda$p0y5lz5q5TqvoITutDfa1s61KzA(JJLandroid/util/ArraySet;Landroid/util/ArraySet;ILcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
+PLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda2;-><init>(JJLjava/lang/String;)V
+HPLcom/android/server/usage/UserUsageStatsService$$ExternalSyntheticLambda2;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/usage/UserUsageStatsService$1;-><init>(I)V
+HPLcom/android/server/usage/UserUsageStatsService$1;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
+PLcom/android/server/usage/UserUsageStatsService$4;-><init>(JJZ[ZIZLandroid/util/ArraySet;Landroid/util/ArraySet;)V
+PLcom/android/server/usage/UserUsageStatsService$4;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
+PLcom/android/server/usage/UserUsageStatsService$6;-><init>(JJLjava/util/List;)V
+PLcom/android/server/usage/UserUsageStatsService$6;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
 PLcom/android/server/usage/UserUsageStatsService;-><clinit>()V
-PLcom/android/server/usage/UserUsageStatsService;-><init>(Landroid/content/Context;ILjava/io/File;Lcom/android/server/usage/UserUsageStatsService$StatsUpdatedListener;)V
+PLcom/android/server/usage/UserUsageStatsService;-><init>(Landroid/content/Context;ILjava/io/File;Lcom/android/server/usage/UsageStatsService;)V
 HPLcom/android/server/usage/UserUsageStatsService;->checkAndGetTimeLocked()J
-HPLcom/android/server/usage/UserUsageStatsService;->convertToSystemTimeLocked(Landroid/app/usage/UsageEvents$Event;)V
-HPLcom/android/server/usage/UserUsageStatsService;->eventToString(I)Ljava/lang/String;
+PLcom/android/server/usage/UserUsageStatsService;->dump(Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/List;Z)V
+PLcom/android/server/usage/UserUsageStatsService;->eventToString(I)Ljava/lang/String;
+PLcom/android/server/usage/UserUsageStatsService;->formatDateTime(JZ)Ljava/lang/String;
+PLcom/android/server/usage/UserUsageStatsService;->formatElapsedTime(JZ)Ljava/lang/String;
 PLcom/android/server/usage/UserUsageStatsService;->init(JLjava/util/HashMap;Z)V
-HPLcom/android/server/usage/UserUsageStatsService;->lambda$queryEarliestAppEvents$0(JJLandroid/util/ArraySet;Landroid/util/ArraySet;ILcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-HPLcom/android/server/usage/UserUsageStatsService;->lambda$queryEarliestEventsForPackage$2(JJLjava/lang/String;ILcom/android/server/usage/IntervalStats;ZLjava/util/List;)Z
-HPLcom/android/server/usage/UserUsageStatsService;->notifyStatsChanged()V
+PLcom/android/server/usage/UserUsageStatsService;->intervalToString(I)Ljava/lang/String;
+PLcom/android/server/usage/UserUsageStatsService;->loadActiveStats(J)V
+PLcom/android/server/usage/UserUsageStatsService;->notifyStatsChanged()V
 PLcom/android/server/usage/UserUsageStatsService;->persistActiveStats()V
-PLcom/android/server/usage/UserUsageStatsService;->queryEarliestAppEvents(JJI)Landroid/app/usage/UsageEvents;
-PLcom/android/server/usage/UserUsageStatsService;->queryEarliestEventsForPackage(JJLjava/lang/String;I)Landroid/app/usage/UsageEvents;
+PLcom/android/server/usage/UserUsageStatsService;->printEvent(Lcom/android/internal/util/IndentingPrintWriter;Landroid/app/usage/UsageEvents$Event;Z)V
+PLcom/android/server/usage/UserUsageStatsService;->printEventAggregation(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Lcom/android/server/usage/IntervalStats$EventTracker;Z)V
+PLcom/android/server/usage/UserUsageStatsService;->printIntervalStats(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usage/IntervalStats;ZZLjava/util/List;)V
+PLcom/android/server/usage/UserUsageStatsService;->queryEarliestAppEvents(JJ)Landroid/app/usage/UsageEvents;
+HPLcom/android/server/usage/UserUsageStatsService;->queryEarliestEventsForPackage(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
 PLcom/android/server/usage/UserUsageStatsService;->queryEvents(JJI[ILandroid/util/ArraySet;)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UserUsageStatsService;->queryStats(IJJLcom/android/server/usage/UsageStatsDatabase$StatCombiner;Z)Ljava/util/List;
-PLcom/android/server/usage/UserUsageStatsService;->queryUsageStats(IJJ)Ljava/util/List;
-PLcom/android/server/usage/UserUsageStatsService;->readPackageMappingsLocked(Ljava/util/HashMap;Z)V
-HPLcom/android/server/usage/UserUsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;)V
+HPLcom/android/server/usage/UserUsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/usage/UserUsageStatsService;->updatePackageMappingsLocked(Ljava/util/HashMap;)Z
 PLcom/android/server/usage/UserUsageStatsService;->updateRolloverDeadline()V
 PLcom/android/server/usage/UserUsageStatsService;->validRange(JJJ)Z
+PLcom/android/server/usb/DualOutputStreamDumpSink;-><init>(Lcom/android/internal/util/dump/DualDumpOutputStream;J)V
 PLcom/android/server/usb/MtpNotificationManager$Receiver;-><init>(Lcom/android/server/usb/MtpNotificationManager;)V
-PLcom/android/server/usb/MtpNotificationManager$Receiver;-><init>(Lcom/android/server/usb/MtpNotificationManager;Lcom/android/server/usb/MtpNotificationManager$Receiver-IA;)V
-PLcom/android/server/usb/MtpNotificationManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/MtpNotificationManager$OnOpenInAppListener;)V
-PLcom/android/server/usb/UsbAlsaManager$1;-><init>(Lcom/android/server/usb/UsbAlsaManager;Ljava/io/File;I)V
-PLcom/android/server/usb/UsbAlsaManager$DenyListEntry;-><init>(III)V
+PLcom/android/server/usb/MtpNotificationManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbProfileGroupSettingsManager$$ExternalSyntheticLambda3;)V
+PLcom/android/server/usb/UsbAlsaManager$1;-><init>(Lcom/android/server/usb/UsbAlsaManager;Ljava/io/File;)V
+PLcom/android/server/usb/UsbAlsaManager$DenyListEntry;-><init>(I)V
 PLcom/android/server/usb/UsbAlsaManager;-><clinit>()V
 PLcom/android/server/usb/UsbAlsaManager;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usb/UsbAlsaManager;->setPeripheralMidiState(ZII)V
-PLcom/android/server/usb/UsbAlsaManager;->systemReady()V
-PLcom/android/server/usb/UsbDeviceManager$1;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
-PLcom/android/server/usb/UsbDeviceManager$2;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
-PLcom/android/server/usb/UsbDeviceManager$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/usb/UsbDeviceManager$3;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
-PLcom/android/server/usb/UsbDeviceManager$4;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
+PLcom/android/server/usb/UsbAlsaManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/UsbDeviceManager$1;-><init>(Lcom/android/server/usb/UsbDeviceManager;I)V
+HPLcom/android/server/usb/UsbDeviceManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler$AdbTransport;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandler;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;-><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$UsbHandler;->attachAccessoryAfterBoot()V
+PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->dumpFunctions(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JJ)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->finishBoot(I)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getChargingFunctions()J
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getPinnedSharedPrefs(Landroid/content/Context;)Landroid/content/SharedPreferences;
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isAdbEnabled()Z
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isTv()Z
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbDataTransferActive(J)Z
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbStateChanged(Landroid/content/Intent;)Z
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbTransferAllowed()Z
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(IZ)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendStickyBroadcast(Landroid/content/Intent;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateMidiFunction()V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateState(Ljava/lang/String;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbFunctions()V
 HPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbSpeed()V
-HPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbStateBroadcastIfNeeded(J)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;-><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$UsbHandlerLegacy;->addFunction(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->applyAdbFunction(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->applyOemOverrideFunction(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->getPersistProp(Z)Ljava/lang/String;
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->handlerInitDone(I)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->isNormalBoot()Z
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->readOemUsbOverrideConfig(Landroid/content/Context;)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->setEnabledFunctions(JZI)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerLegacy;->trySetEnabledFunctions(JZ)Z
+PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbStateBroadcastIfNeeded(J)V
+PLcom/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;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->handlerInitDone(I)V
+PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->setEnabledFunctions(IJZ)V
 PLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
-PLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;-><init>(Lcom/android/server/usb/UsbDeviceManager;Lcom/android/server/usb/UsbDeviceManager$UsbUEventObserver-IA;)V
 PLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V
-PLcom/android/server/usb/UsbDeviceManager;->-$$Nest$fgetmHandler(Lcom/android/server/usb/UsbDeviceManager;)Lcom/android/server/usb/UsbDeviceManager$UsbHandler;
-PLcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetsEventLogger()Lcom/android/server/utils/EventLogger;
-PLcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetsUsbOperationCount()Ljava/util/concurrent/atomic/AtomicInteger;
-PLcom/android/server/usb/UsbDeviceManager;-><clinit>()V
-HPLcom/android/server/usb/UsbDeviceManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbSettingsManager;Lcom/android/server/usb/UsbPermissionManager;)V
-PLcom/android/server/usb/UsbDeviceManager;->bootCompleted()V
-PLcom/android/server/usb/UsbDeviceManager;->initRndisAddress()V
-PLcom/android/server/usb/UsbDeviceManager;->logAndPrintException(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Ljava/lang/Exception;)V
+HSPLcom/android/server/usb/UsbDeviceManager;-><clinit>()V
+PLcom/android/server/usb/UsbDeviceManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V
+PLcom/android/server/usb/UsbDeviceManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/UsbDeviceManager;->onAwakeStateChanged(Z)V
 PLcom/android/server/usb/UsbDeviceManager;->onKeyguardStateChanged(Z)V
-PLcom/android/server/usb/UsbDeviceManager;->onUnlockUser(I)V
-PLcom/android/server/usb/UsbDeviceManager;->setCurrentUser(ILcom/android/server/usb/UsbProfileGroupSettingsManager;)V
-PLcom/android/server/usb/UsbDeviceManager;->systemReady()V
-PLcom/android/server/usb/UsbHandlerManager;-><clinit>()V
 PLcom/android/server/usb/UsbHandlerManager;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/usb/UsbHostManager;-><clinit>()V
-PLcom/android/server/usb/UsbPermissionManager;-><clinit>()V
 PLcom/android/server/usb/UsbPermissionManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbService;)V
+PLcom/android/server/usb/UsbPermissionManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/UsbPermissionManager;->getPermissionsForUser(I)Lcom/android/server/usb/UsbUserPermissionManager;
+PLcom/android/server/usb/UsbPortManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usb/UsbPortManager;Landroid/content/Intent;I)V
+PLcom/android/server/usb/UsbPortManager$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/usb/UsbPortManager$1;-><init>(Lcom/android/server/usb/UsbPortManager;Landroid/os/Looper;)V
 PLcom/android/server/usb/UsbPortManager$1;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/usb/UsbPortManager;->-$$Nest$fgetmContext(Lcom/android/server/usb/UsbPortManager;)Landroid/content/Context;
-PLcom/android/server/usb/UsbPortManager;->-$$Nest$fputmNotificationManager(Lcom/android/server/usb/UsbPortManager;Landroid/app/NotificationManager;)V
+PLcom/android/server/usb/UsbPortManager$PortInfo;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZZI)V
+PLcom/android/server/usb/UsbPortManager$PortInfo;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/UsbPortManager$PortInfo;->setStatus(IZIZIZIIIIZI[IILandroid/hardware/usb/DisplayPortAltModeInfo;)Z
+PLcom/android/server/usb/UsbPortManager$PortInfo;->toString()Ljava/lang/String;
 PLcom/android/server/usb/UsbPortManager;-><clinit>()V
 PLcom/android/server/usb/UsbPortManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/usb/UsbPortManager;->addOrUpdatePortLocked(Ljava/lang/String;IIIZIZIZZIZIIZIZ[IIILandroid/hardware/usb/DisplayPortAltModeInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usb/UsbPortManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/usb/UsbPortManager;->getPorts()[Landroid/hardware/usb/UsbPort;
-PLcom/android/server/usb/UsbPortManager;->getUsbHalVersion()I
+PLcom/android/server/usb/UsbPortManager;->handlePortLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;)V
 PLcom/android/server/usb/UsbPortManager;->logAndPrint(ILcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
-PLcom/android/server/usb/UsbPortManager;->logAndPrintException(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Ljava/lang/Exception;)V
 PLcom/android/server/usb/UsbPortManager;->registerForDisplayPortEvents(Landroid/hardware/usb/IDisplayPortAltModeInfoListener;)Z
-PLcom/android/server/usb/UsbPortManager;->systemReady()V
+PLcom/android/server/usb/UsbPortManager;->updatePorts(Ljava/util/ArrayList;)V
+PLcom/android/server/usb/UsbPortManager;->updatePortsLocked(Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/ArrayList;)V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)V
-PLcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;Lcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor-IA;)V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager$UserPackage;-><init>(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;-><clinit>()V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;-><init>(Landroid/content/Context;Landroid/os/UserHandle;Lcom/android/server/usb/UsbSettingsManager;Lcom/android/server/usb/UsbHandlerManager;)V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->handlePackageAddedLocked(Lcom/android/server/usb/UsbProfileGroupSettingsManager$UserPackage;Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Z
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->readSettingsLocked()V
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->upgradeSingleUserLocked()V
 PLcom/android/server/usb/UsbService$1;-><init>(Lcom/android/server/usb/UsbService;)V
-PLcom/android/server/usb/UsbService$Lifecycle$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usb/UsbService$Lifecycle;)V
+PLcom/android/server/usb/UsbService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/usb/UsbService$Lifecycle$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usb/UsbService$Lifecycle;I)V
 PLcom/android/server/usb/UsbService$Lifecycle$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/usb/UsbService$Lifecycle$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/usb/UsbService$Lifecycle;)V
-PLcom/android/server/usb/UsbService$Lifecycle$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/usb/UsbService$Lifecycle;->$r8$lambda$HIZVSW8uTg1XjWF6etZh-bC1WP4(Lcom/android/server/usb/UsbService$Lifecycle;)V
-PLcom/android/server/usb/UsbService$Lifecycle;->$r8$lambda$Mg_De1rrLXj-nb8KhKM4m5DIFVU(Lcom/android/server/usb/UsbService$Lifecycle;)V
 PLcom/android/server/usb/UsbService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usb/UsbService$Lifecycle;->lambda$onBootPhase$1()V
-PLcom/android/server/usb/UsbService$Lifecycle;->lambda$onStart$0()V
 PLcom/android/server/usb/UsbService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/usb/UsbService$Lifecycle;->onStart()V
 PLcom/android/server/usb/UsbService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/usb/UsbService$PackageUninstallMonitor;-><init>(Lcom/android/server/usb/UsbService;)V
+PLcom/android/server/usb/UsbService$StrongAuthTracker;-><init>(Lcom/android/server/usb/UsbService;Landroid/content/Context;Landroid/os/Looper;)V
+PLcom/android/server/usb/UsbService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
 PLcom/android/server/usb/UsbService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usb/UsbService;->bootCompleted()V
+PLcom/android/server/usb/UsbService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/usb/UsbService;->getCurrentUsbSpeed()I
+PLcom/android/server/usb/UsbService;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
 PLcom/android/server/usb/UsbService;->getPorts()Ljava/util/List;
-PLcom/android/server/usb/UsbService;->getUsbHalVersion()I
 PLcom/android/server/usb/UsbService;->onSwitchUser(I)V
-PLcom/android/server/usb/UsbService;->onUnlockUser(I)V
 PLcom/android/server/usb/UsbService;->registerForDisplayPortEvents(Landroid/hardware/usb/IDisplayPortAltModeInfoListener;)Z
-PLcom/android/server/usb/UsbService;->systemReady()V
-PLcom/android/server/usb/UsbSettingsManager;-><clinit>()V
 PLcom/android/server/usb/UsbSettingsManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbService;)V
+PLcom/android/server/usb/UsbSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
 PLcom/android/server/usb/UsbSettingsManager;->getSettingsForProfileGroup(Landroid/os/UserHandle;)Lcom/android/server/usb/UsbProfileGroupSettingsManager;
+PLcom/android/server/usb/UsbSettingsManager;->getSettingsForUser(I)Lcom/android/server/usb/UsbUserSettingsManager;
+PLcom/android/server/usb/UsbUserPermissionManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbUserSettingsManager;)V
+PLcom/android/server/usb/UsbUserPermissionManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/UsbUserPermissionManager;->readPermissionsLocked()V
+PLcom/android/server/usb/UsbUserSettingsManager;-><init>(Landroid/content/Context;Landroid/os/UserHandle;)V
+PLcom/android/server/usb/UsbUserSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
+PLcom/android/server/usb/flags/FeatureFlagsImpl;->init()V
+PLcom/android/server/usb/flags/Flags;-><clinit>()V
+PLcom/android/server/usb/flags/Flags;->checkUserActionUnlocked()Z
+PLcom/android/server/usb/flags/Flags;->enableBindToMtpService()Z
+PLcom/android/server/usb/hal/gadget/UsbGadgetAidl$UsbGadgetCallback;-><init>(Lcom/android/server/usb/hal/gadget/UsbGadgetAidl;)V
+PLcom/android/server/usb/hal/gadget/UsbGadgetAidl$UsbGadgetCallback;->getCurrentUsbFunctionsCb(JIJ)V
 PLcom/android/server/usb/hal/gadget/UsbGadgetAidl;-><clinit>()V
-PLcom/android/server/usb/hal/gadget/UsbGadgetAidl;->isServicePresent(Lcom/android/internal/util/IndentingPrintWriter;)Z
-PLcom/android/server/usb/hal/gadget/UsbGadgetHalInstance;->getInstance(Lcom/android/server/usb/UsbDeviceManager;Lcom/android/internal/util/IndentingPrintWriter;)Lcom/android/server/usb/hal/gadget/UsbGadgetHal;
-PLcom/android/server/usb/hal/gadget/UsbGadgetHidl;->isServicePresent(Lcom/android/internal/util/IndentingPrintWriter;)Z
+PLcom/android/server/usb/hal/gadget/UsbGadgetAidl;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
+PLcom/android/server/usb/hal/gadget/UsbGadgetAidl;->getCurrentUsbFunctions(J)V
+PLcom/android/server/usb/hal/gadget/UsbGadgetAidl;->getGadgetHalVersion()I
+PLcom/android/server/usb/hal/gadget/UsbGadgetAidl;->getUsbSpeed(J)V
+PLcom/android/server/usb/hal/gadget/UsbGadgetHalInstance;->getInstance(Lcom/android/server/usb/UsbDeviceManager;)Lcom/android/server/usb/hal/gadget/UsbGadgetHal;
+PLcom/android/server/usb/hal/port/RawPortInfo;-><clinit>()V
+PLcom/android/server/usb/hal/port/RawPortInfo;-><init>(Ljava/lang/String;IIIZIZIZZIZIIZIZ[IIILandroid/hardware/usb/DisplayPortAltModeInfo;)V
+PLcom/android/server/usb/hal/port/UsbPortAidl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/usb/hal/port/UsbPortAidl;)V
+PLcom/android/server/usb/hal/port/UsbPortAidl$HALCallback;->asBinder()Landroid/os/IBinder;
+PLcom/android/server/usb/hal/port/UsbPortAidl$HALCallback;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/usb/hal/port/UsbPortAidl$HALCallback;->toContaminantProtectionStatus(B)I
+PLcom/android/server/usb/hal/port/UsbPortAidl$HALCallback;->toPortMode(B)I
 PLcom/android/server/usb/hal/port/UsbPortAidl;-><clinit>()V
-PLcom/android/server/usb/hal/port/UsbPortAidl;->isServicePresent(Lcom/android/internal/util/IndentingPrintWriter;)Z
-PLcom/android/server/usb/hal/port/UsbPortHalInstance;->getInstance(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;)Lcom/android/server/usb/hal/port/UsbPortHal;
-PLcom/android/server/usb/hal/port/UsbPortHidl;-><clinit>()V
-PLcom/android/server/usb/hal/port/UsbPortHidl;->isServicePresent(Lcom/android/internal/util/IndentingPrintWriter;)Z
+PLcom/android/server/usb/hal/port/UsbPortAidl;-><init>(Lcom/android/server/usb/UsbPortManager;)V
+PLcom/android/server/usb/hal/port/UsbPortAidl;->connectToProxy()V
+PLcom/android/server/usb/hal/port/UsbPortAidl;->getUsbHalVersion()I
+PLcom/android/server/usb/hal/port/UsbPortAidl;->queryPortStatus(J)V
+PLcom/android/server/usb/hal/port/UsbPortAidl;->systemReady()V
+PLcom/android/server/utils/AlarmQueue$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/utils/AlarmQueue;)V
+PLcom/android/server/utils/AlarmQueue$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/utils/AlarmQueue$1;-><init>(Lcom/android/server/utils/AlarmQueue;)V
-HPLcom/android/server/utils/AlarmQueue$1;->run()V
-PLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/utils/AlarmQueue$1;->run()V
 HPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->$r8$lambda$a9G3NCnbGSjGaU6KBkUKenfyhOo(Landroid/util/Pair;Landroid/util/Pair;)I
 PLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;-><clinit>()V
 PLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;-><init>()V
-HPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->lambda$static$0(Landroid/util/Pair;Landroid/util/Pair;)I
-HPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->removeKey(Ljava/lang/Object;)Z
+HPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->removeKey(Ljava/lang/Object;)Z+]Ljava/lang/Object;Lcom/android/server/job/controllers/JobStatus;,Ljava/lang/String;]Ljava/util/PriorityQueue;Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;
 PLcom/android/server/utils/AlarmQueue$Injector;-><init>()V
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmAlarmTag(Lcom/android/server/utils/AlarmQueue;)Ljava/lang/String;
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmContext(Lcom/android/server/utils/AlarmQueue;)Landroid/content/Context;
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmExactAlarm(Lcom/android/server/utils/AlarmQueue;)Z
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmHandler(Lcom/android/server/utils/AlarmQueue;)Landroid/os/Handler;
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmLock(Lcom/android/server/utils/AlarmQueue;)Ljava/lang/Object;
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmMinTimeBetweenAlarmsMs(Lcom/android/server/utils/AlarmQueue;)J
-PLcom/android/server/utils/AlarmQueue;->-$$Nest$fgetmTriggerTimeElapsed(Lcom/android/server/utils/AlarmQueue;)J
 PLcom/android/server/utils/AlarmQueue;-><clinit>()V
 PLcom/android/server/utils/AlarmQueue;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;Ljava/lang/String;ZJ)V
-HPLcom/android/server/utils/AlarmQueue;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;Ljava/lang/String;ZJLcom/android/server/utils/AlarmQueue$Injector;)V
-HPLcom/android/server/utils/AlarmQueue;->addAlarm(Ljava/lang/Object;J)V
+PLcom/android/server/utils/AlarmQueue;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;Ljava/lang/String;ZJLcom/android/server/utils/AlarmQueue$Injector;)V
+HPLcom/android/server/utils/AlarmQueue;->addAlarm(JLjava/lang/Object;)V
+PLcom/android/server/utils/AlarmQueue;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/utils/AlarmQueue;->onAlarm()V
 HPLcom/android/server/utils/AlarmQueue;->removeAlarmForKey(Ljava/lang/Object;)V
-HPLcom/android/server/utils/AlarmQueue;->setNextAlarmLocked()V
 HPLcom/android/server/utils/AlarmQueue;->setNextAlarmLocked(J)V
+PLcom/android/server/utils/AnrTimer$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/utils/AnrTimer$Args;-><init>()V
 HSPLcom/android/server/utils/AnrTimer$FeatureEnabled;-><init>(Lcom/android/server/utils/AnrTimer;)V
-PLcom/android/server/utils/AnrTimer$FeatureEnabled;->accept(Ljava/lang/Object;)Z
 HPLcom/android/server/utils/AnrTimer$FeatureEnabled;->cancel(Ljava/lang/Object;)Z
+PLcom/android/server/utils/AnrTimer$FeatureEnabled;->discard(Ljava/lang/Object;)Z
+PLcom/android/server/utils/AnrTimer$FeatureEnabled;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/utils/AnrTimer$FeatureEnabled;->enabled()Z
-HPLcom/android/server/utils/AnrTimer$FeatureEnabled;->removeLocked(Ljava/lang/Object;)Ljava/lang/Integer;
-HPLcom/android/server/utils/AnrTimer$FeatureEnabled;->start(Ljava/lang/Object;IIJ)V
-HSPLcom/android/server/utils/AnrTimer$FeatureSwitch;-><init>(Lcom/android/server/utils/AnrTimer;)V
-HSPLcom/android/server/utils/AnrTimer$FeatureSwitch;-><init>(Lcom/android/server/utils/AnrTimer;Lcom/android/server/utils/AnrTimer$FeatureSwitch-IA;)V
-HSPLcom/android/server/utils/AnrTimer$Injector;-><init>()V
-HSPLcom/android/server/utils/AnrTimer$Injector;->anrTimerServiceEnabled()Z
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmExtend(Lcom/android/server/utils/AnrTimer;)Z
-HSPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmLabel(Lcom/android/server/utils/AnrTimer;)Ljava/lang/String;
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmLock(Lcom/android/server/utils/AnrTimer;)Ljava/lang/Object;
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmMaxStarted(Lcom/android/server/utils/AnrTimer;)I
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmTimerArgMap(Lcom/android/server/utils/AnrTimer;)Landroid/util/SparseArray;
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmTimerIdMap(Lcom/android/server/utils/AnrTimer;)Landroid/util/ArrayMap;
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fgetmTotalStarted(Lcom/android/server/utils/AnrTimer;)I
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fputmMaxStarted(Lcom/android/server/utils/AnrTimer;I)V
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$fputmTotalStarted(Lcom/android/server/utils/AnrTimer;I)V
-HSPLcom/android/server/utils/AnrTimer;->-$$Nest$mnativeAnrTimerCreate(Lcom/android/server/utils/AnrTimer;Ljava/lang/String;)J
-PLcom/android/server/utils/AnrTimer;->-$$Nest$mtrace(Lcom/android/server/utils/AnrTimer;Ljava/lang/String;I)V
-HSPLcom/android/server/utils/AnrTimer;->-$$Nest$sfgetsAnrTimerList()Landroid/util/LongSparseArray;
-HSPLcom/android/server/utils/AnrTimer;->-$$Nest$smanrTimerServiceEnabled()Z
-PLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerAccept(JI)Z
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerCancel(JI)Z
-HPLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerStart(JIIJZ)I
+HPLcom/android/server/utils/AnrTimer$FeatureEnabled;->removeLocked(Ljava/lang/Object;)Ljava/lang/Integer;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/utils/AnrTimer$FeatureEnabled;->start(Ljava/lang/Object;IIJ)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HSPLcom/android/server/utils/AnrTimer;->-$$Nest$mnativeAnrTimerCreate(Lcom/android/server/utils/AnrTimer;Ljava/lang/String;ZZ)J
+PLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerCancel(IJ)Z
+PLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerDiscard(IJ)V
+PLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerDump(J)[Ljava/lang/String;
+PLcom/android/server/utils/AnrTimer;->-$$Nest$smnativeAnrTimerStart(IIJJ)I
 HSPLcom/android/server/utils/AnrTimer;-><clinit>()V
-HSPLcom/android/server/utils/AnrTimer;-><init>(Landroid/os/Handler;ILjava/lang/String;)V
-HSPLcom/android/server/utils/AnrTimer;-><init>(Landroid/os/Handler;ILjava/lang/String;Z)V
-HSPLcom/android/server/utils/AnrTimer;-><init>(Landroid/os/Handler;ILjava/lang/String;ZLcom/android/server/utils/AnrTimer$Injector;)V
-PLcom/android/server/utils/AnrTimer;->accept(Ljava/lang/Object;)Z
-HSPLcom/android/server/utils/AnrTimer;->anrTimerServiceEnabled()Z
-HPLcom/android/server/utils/AnrTimer;->cancel(Ljava/lang/Object;)Z
-HSPLcom/android/server/utils/AnrTimer;->createFeatureSwitch(Z)Lcom/android/server/utils/AnrTimer$FeatureSwitch;
+HSPLcom/android/server/utils/AnrTimer;-><init>(Landroid/os/Handler;ILjava/lang/String;Lcom/android/server/utils/AnrTimer$Args;)V
+PLcom/android/server/utils/AnrTimer;->cancel(Ljava/lang/Object;)V
+PLcom/android/server/utils/AnrTimer;->discard(Ljava/lang/Object;)V
+PLcom/android/server/utils/AnrTimer;->dump(Ljava/io/PrintWriter;ZLcom/android/server/utils/AnrTimer$Injector;)V
 PLcom/android/server/utils/AnrTimer;->expire(IIIJ)Z
-HSPLcom/android/server/utils/AnrTimer;->nativeTimersSupported()Z
-HPLcom/android/server/utils/AnrTimer;->serviceEnabled()Z
-HPLcom/android/server/utils/AnrTimer;->start(Ljava/lang/Object;IIJ)V
-PLcom/android/server/utils/AnrTimer;->trace(Ljava/lang/String;I)V
-PLcom/android/server/utils/AnrTimer;->trace(Ljava/lang/String;IIIJ)V
+HPLcom/android/server/utils/AnrTimer;->start(JLjava/lang/Object;)V+]Lcom/android/server/utils/AnrTimer$FeatureSwitch;Lcom/android/server/utils/AnrTimer$FeatureEnabled;]Lcom/android/server/utils/AnrTimer;Lcom/android/server/am/ActiveServices$ProcessAnrTimer;,Lcom/android/server/am/BroadcastQueueModernImpl$BroadcastAnrTimer;
 PLcom/android/server/utils/EventLogger$Event;-><clinit>()V
 HPLcom/android/server/utils/EventLogger$Event;-><init>()V
 PLcom/android/server/utils/EventLogger$Event;->printLog(ILjava/lang/String;)Lcom/android/server/utils/EventLogger$Event;
-PLcom/android/server/utils/EventLogger$Event;->printLog(Ljava/lang/String;)Lcom/android/server/utils/EventLogger$Event;
+PLcom/android/server/utils/EventLogger$Event;->printSlog(ILjava/lang/String;)V
+PLcom/android/server/utils/EventLogger$Event;->toString()Ljava/lang/String;
 PLcom/android/server/utils/EventLogger$StringEvent;-><init>(Ljava/lang/String;)V
-PLcom/android/server/utils/EventLogger$StringEvent;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/utils/EventLogger$StringEvent;->eventToString()Ljava/lang/String;
-HPLcom/android/server/utils/EventLogger;-><init>(ILjava/lang/String;)V
+PLcom/android/server/utils/EventLogger;-><init>(ILjava/lang/String;)V
+PLcom/android/server/utils/EventLogger;->dump(Lcom/android/server/usb/DualOutputStreamDumpSink;)V
+PLcom/android/server/utils/EventLogger;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/utils/EventLogger;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/utils/EventLogger;->enqueue(Lcom/android/server/utils/EventLogger$Event;)V
-PLcom/android/server/utils/EventLogger;->enqueueAndLog(Ljava/lang/String;ILjava/lang/String;)V
-HSPLcom/android/server/utils/FeatureFlagsImpl;-><init>()V
-HSPLcom/android/server/utils/FeatureFlagsImpl;->anrTimerService()Z
-HSPLcom/android/server/utils/Flags;-><clinit>()V
-HSPLcom/android/server/utils/Flags;->anrTimerService()Z
+PLcom/android/server/utils/EventLogger;->enqueueAndLog(ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/utils/FoldSettingProvider;-><clinit>()V
 HSPLcom/android/server/utils/FoldSettingProvider;-><init>(Landroid/content/Context;Lcom/android/internal/util/SettingsWrapper;Lcom/android/internal/foldables/FoldLockSettingAvailabilityProvider;)V
 PLcom/android/server/utils/PriorityDump;->dump(Lcom/android/server/utils/PriorityDump$PriorityDumper;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
@@ -24383,38 +19472,28 @@
 PLcom/android/server/utils/Slogf;->v(Ljava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/server/utils/Slogf;->w(Ljava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/server/utils/Slogf;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLcom/android/server/utils/SnapshotCache$Auto;-><init>(Lcom/android/server/utils/Snappable;Lcom/android/server/utils/Watchable;Ljava/lang/String;)V
-HSPLcom/android/server/utils/SnapshotCache$Auto;->createSnapshot()Lcom/android/server/utils/Snappable;
+HSPLcom/android/server/utils/SnapshotCache$Auto;-><init>()V
+HSPLcom/android/server/utils/SnapshotCache$Auto;-><init>(Ljava/lang/Object;Lcom/android/server/utils/Watchable;Ljava/lang/String;I)V
 HSPLcom/android/server/utils/SnapshotCache$Auto;->createSnapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/SnapshotCache$Sealed;-><init>()V
-HSPLcom/android/server/utils/SnapshotCache$Statistics;->-$$Nest$fgetmRebuilt(Lcom/android/server/utils/SnapshotCache$Statistics;)Ljava/util/concurrent/atomic/AtomicInteger;
-HSPLcom/android/server/utils/SnapshotCache$Statistics;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/utils/SnapshotCache$Statistics;-><init>()V
 HSPLcom/android/server/utils/SnapshotCache;-><clinit>()V
 HSPLcom/android/server/utils/SnapshotCache;-><init>()V
-HSPLcom/android/server/utils/SnapshotCache;-><init>(Ljava/lang/Object;Lcom/android/server/utils/Watchable;)V
 HSPLcom/android/server/utils/SnapshotCache;-><init>(Ljava/lang/Object;Lcom/android/server/utils/Watchable;Ljava/lang/String;)V
 HSPLcom/android/server/utils/SnapshotCache;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/utils/SnapshotCache;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/Snapshots;->maybeSnapshot(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/utils/SnapshotCache;->snapshot()Ljava/lang/Object;+]Lcom/android/server/utils/SnapshotCache;megamorphic_types
+HSPLcom/android/server/utils/Snapshots;->maybeSnapshot(Ljava/lang/Object;)Ljava/lang/Object;+]Lcom/android/server/utils/Snappable;Lcom/android/server/pm/PackageSetting;,Lcom/android/server/pm/PreferredIntentResolver;,Lcom/android/server/pm/SharedUserSetting;
 HSPLcom/android/server/utils/TimingsTraceAndSlog;-><init>()V
-HPLcom/android/server/utils/TimingsTraceAndSlog;-><init>(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/android/server/utils/TimingsTraceAndSlog;-><init>(JLjava/lang/String;)V
+PLcom/android/server/utils/TimingsTraceAndSlog;-><init>(Lcom/android/server/utils/TimingsTraceAndSlog;)V
 HSPLcom/android/server/utils/TimingsTraceAndSlog;-><init>(Ljava/lang/String;)V
-HSPLcom/android/server/utils/TimingsTraceAndSlog;-><init>(Ljava/lang/String;J)V
-HSPLcom/android/server/utils/TimingsTraceAndSlog;->logDuration(Ljava/lang/String;J)V
 HSPLcom/android/server/utils/TimingsTraceAndSlog;->newAsyncLog()Lcom/android/server/utils/TimingsTraceAndSlog;
 HSPLcom/android/server/utils/TimingsTraceAndSlog;->traceBegin(Ljava/lang/String;)V
-PLcom/android/server/utils/UserSettingDeviceConfigMediator$SettingsOverridesAllMediator;-><init>(C)V
-PLcom/android/server/utils/UserSettingDeviceConfigMediator$SettingsOverridesAllMediator;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/utils/UserSettingDeviceConfigMediator$SettingsOverridesIndividualMediator;-><init>(C)V
-PLcom/android/server/utils/UserSettingDeviceConfigMediator;-><clinit>()V
-PLcom/android/server/utils/UserSettingDeviceConfigMediator;-><init>(C)V
-PLcom/android/server/utils/UserSettingDeviceConfigMediator;->setDeviceConfigProperties(Landroid/provider/DeviceConfig$Properties;)V
-PLcom/android/server/utils/UserSettingDeviceConfigMediator;->setSettingsString(Ljava/lang/String;)V
-PLcom/android/server/utils/UserTokenWatcher;-><init>(Lcom/android/server/utils/UserTokenWatcher$Callback;Landroid/os/Handler;Ljava/lang/String;)V
-HSPLcom/android/server/utils/Watchable;->verifyWatchedAttributes(Ljava/lang/Object;Lcom/android/server/utils/Watcher;)V
+PLcom/android/server/utils/UserSettingDeviceConfigMediator$SettingsOverridesIndividualMediator;-><init>()V
+PLcom/android/server/utils/UserTokenWatcher;-><init>(Lcom/android/server/wm/KeyguardDisableHandler$1;Landroid/os/Handler;)V
+PLcom/android/server/utils/UserTokenWatcher;->isAcquired(I)Z
 HSPLcom/android/server/utils/Watchable;->verifyWatchedAttributes(Ljava/lang/Object;Lcom/android/server/utils/Watcher;Z)V
 HSPLcom/android/server/utils/WatchableImpl;-><init>()V
-HSPLcom/android/server/utils/WatchableImpl;->dispatchChange(Lcom/android/server/utils/Watchable;)V
+HSPLcom/android/server/utils/WatchableImpl;->dispatchChange(Lcom/android/server/utils/Watchable;)V+]Lcom/android/server/utils/Watcher;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/utils/WatchableImpl;->isRegisteredObserver(Lcom/android/server/utils/Watcher;)Z
 HSPLcom/android/server/utils/WatchableImpl;->registerObserver(Lcom/android/server/utils/Watcher;)V
 HSPLcom/android/server/utils/WatchableImpl;->registeredObserverCount()I
@@ -24422,234 +19501,131 @@
 HSPLcom/android/server/utils/WatchableImpl;->unregisterObserver(Lcom/android/server/utils/Watcher;)V
 HSPLcom/android/server/utils/WatchedArrayList$1;-><init>(Lcom/android/server/utils/WatchedArrayList;)V
 HSPLcom/android/server/utils/WatchedArrayList$1;->onChange(Lcom/android/server/utils/Watchable;)V
-HSPLcom/android/server/utils/WatchedArrayList;-><init>()V
 HSPLcom/android/server/utils/WatchedArrayList;-><init>(I)V
-HSPLcom/android/server/utils/WatchedArrayList;->add(Ljava/lang/Object;)Z
 HSPLcom/android/server/utils/WatchedArrayList;->clear()V
-HSPLcom/android/server/utils/WatchedArrayList;->get(I)Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArrayList;->onChanged()V
 HSPLcom/android/server/utils/WatchedArrayList;->registerChild(Ljava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedArrayList;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/utils/WatchedArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArrayList;->size()I
-HSPLcom/android/server/utils/WatchedArrayList;->snapshot()Lcom/android/server/utils/WatchedArrayList;
-HSPLcom/android/server/utils/WatchedArrayList;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArrayList;->snapshot(Lcom/android/server/utils/WatchedArrayList;Lcom/android/server/utils/WatchedArrayList;)V
-HSPLcom/android/server/utils/WatchedArrayList;->unregisterChild(Ljava/lang/Object;)V
-HSPLcom/android/server/utils/WatchedArrayList;->unregisterChildIf(Ljava/lang/Object;)V
+HSPLcom/android/server/utils/WatchedArrayList;->set(ILcom/android/server/pm/SettingBase;)V
+HSPLcom/android/server/utils/WatchedArrayList;->snapshot()Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/utils/WatchedArrayMap$1;-><init>(Lcom/android/server/utils/WatchedArrayMap;)V
 HSPLcom/android/server/utils/WatchedArrayMap$1;->onChange(Lcom/android/server/utils/Watchable;)V
 HSPLcom/android/server/utils/WatchedArrayMap;-><init>()V
-HSPLcom/android/server/utils/WatchedArrayMap;-><init>(IZ)V
-HSPLcom/android/server/utils/WatchedArrayMap;->containsKey(Ljava/lang/Object;)Z
+HSPLcom/android/server/utils/WatchedArrayMap;-><init>(I)V
+PLcom/android/server/utils/WatchedArrayMap;->containsKey(Ljava/lang/Object;)Z
 HSPLcom/android/server/utils/WatchedArrayMap;->entrySet()Ljava/util/Set;
 HSPLcom/android/server/utils/WatchedArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArrayMap;->keyAt(I)Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArrayMap;->onChanged()V
 HSPLcom/android/server/utils/WatchedArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/utils/WatchedArrayMap;->putAll(Ljava/util/Map;)V
-HSPLcom/android/server/utils/WatchedArrayMap;->registerChild(Ljava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedArrayMap;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HPLcom/android/server/utils/WatchedArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/utils/WatchedArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/utils/WatchedArrayMap;->size()I
-HSPLcom/android/server/utils/WatchedArrayMap;->snapshot()Lcom/android/server/utils/WatchedArrayMap;
 HSPLcom/android/server/utils/WatchedArrayMap;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArrayMap;->snapshot(Lcom/android/server/utils/WatchedArrayMap;)V
 HSPLcom/android/server/utils/WatchedArrayMap;->snapshot(Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;)V
-HPLcom/android/server/utils/WatchedArrayMap;->unregisterChildIf(Ljava/lang/Object;)V
-HSPLcom/android/server/utils/WatchedArrayMap;->untrackedStorage()Landroid/util/ArrayMap;
-HSPLcom/android/server/utils/WatchedArrayMap;->valueAt(I)Ljava/lang/Object;
 HSPLcom/android/server/utils/WatchedArrayMap;->values()Ljava/util/Collection;
 HSPLcom/android/server/utils/WatchedArraySet$1;-><init>(Lcom/android/server/utils/WatchedArraySet;)V
 HSPLcom/android/server/utils/WatchedArraySet$1;->onChange(Lcom/android/server/utils/Watchable;)V
 HSPLcom/android/server/utils/WatchedArraySet;-><init>()V
-HSPLcom/android/server/utils/WatchedArraySet;-><init>(IZ)V
 PLcom/android/server/utils/WatchedArraySet;-><init>(Lcom/android/server/utils/WatchedArraySet;)V
 HSPLcom/android/server/utils/WatchedArraySet;->add(Ljava/lang/Object;)Z
-HSPLcom/android/server/utils/WatchedArraySet;->addAll(Ljava/util/Collection;)V
 HSPLcom/android/server/utils/WatchedArraySet;->clear()V
-HPLcom/android/server/utils/WatchedArraySet;->contains(Ljava/lang/Object;)Z
-PLcom/android/server/utils/WatchedArraySet;->isEmpty()Z
-HSPLcom/android/server/utils/WatchedArraySet;->onChanged()V
-HSPLcom/android/server/utils/WatchedArraySet;->registerChild(Ljava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedArraySet;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HPLcom/android/server/utils/WatchedArraySet;->remove(Ljava/lang/Object;)Z
-HSPLcom/android/server/utils/WatchedArraySet;->size()I
+PLcom/android/server/utils/WatchedArraySet;->remove(Ljava/lang/Object;)Z
 HSPLcom/android/server/utils/WatchedArraySet;->snapshot()Lcom/android/server/utils/WatchedArraySet;
 HSPLcom/android/server/utils/WatchedArraySet;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedArraySet;->snapshot(Lcom/android/server/utils/WatchedArraySet;Lcom/android/server/utils/WatchedArraySet;)V
-PLcom/android/server/utils/WatchedArraySet;->untrackedStorage()Landroid/util/ArraySet;
-HSPLcom/android/server/utils/WatchedArraySet;->valueAt(I)Ljava/lang/Object;
 HSPLcom/android/server/utils/WatchedLongSparseArray$1;-><init>(Lcom/android/server/utils/WatchedLongSparseArray;)V
 HSPLcom/android/server/utils/WatchedLongSparseArray;-><init>()V
 HSPLcom/android/server/utils/WatchedLongSparseArray;-><init>(I)V
-HSPLcom/android/server/utils/WatchedLongSparseArray;->get(J)Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedLongSparseArray;->keyAt(I)J
-HSPLcom/android/server/utils/WatchedLongSparseArray;->onChanged()V
-HSPLcom/android/server/utils/WatchedLongSparseArray;->put(JLjava/lang/Object;)V
-HSPLcom/android/server/utils/WatchedLongSparseArray;->registerChild(Ljava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedLongSparseArray;->registerObserver(Lcom/android/server/utils/Watcher;)V
-HSPLcom/android/server/utils/WatchedLongSparseArray;->size()I
-HSPLcom/android/server/utils/WatchedLongSparseArray;->snapshot()Lcom/android/server/utils/WatchedLongSparseArray;
 HSPLcom/android/server/utils/WatchedLongSparseArray;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedLongSparseArray;->snapshot(Lcom/android/server/utils/WatchedLongSparseArray;Lcom/android/server/utils/WatchedLongSparseArray;)V
-HSPLcom/android/server/utils/WatchedLongSparseArray;->unregisterChildIf(Ljava/lang/Object;)V
-HSPLcom/android/server/utils/WatchedLongSparseArray;->valueAt(I)Ljava/lang/Object;
 HSPLcom/android/server/utils/WatchedSparseArray$1;-><init>(Lcom/android/server/utils/WatchedSparseArray;)V
 HSPLcom/android/server/utils/WatchedSparseArray$1;->onChange(Lcom/android/server/utils/Watchable;)V
 HSPLcom/android/server/utils/WatchedSparseArray;-><init>()V
 HSPLcom/android/server/utils/WatchedSparseArray;-><init>(I)V
 HSPLcom/android/server/utils/WatchedSparseArray;-><init>(Lcom/android/server/utils/WatchedSparseArray;)V
 PLcom/android/server/utils/WatchedSparseArray;->delete(I)V
-HSPLcom/android/server/utils/WatchedSparseArray;->get(I)Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedSparseArray;->keyAt(I)I
-HSPLcom/android/server/utils/WatchedSparseArray;->onChanged()V
 HSPLcom/android/server/utils/WatchedSparseArray;->put(ILjava/lang/Object;)V
-HSPLcom/android/server/utils/WatchedSparseArray;->registerChild(Ljava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedSparseArray;->registerObserver(Lcom/android/server/utils/Watcher;)V
-PLcom/android/server/utils/WatchedSparseArray;->remove(I)V
-HSPLcom/android/server/utils/WatchedSparseArray;->size()I
-HSPLcom/android/server/utils/WatchedSparseArray;->snapshot()Lcom/android/server/utils/WatchedSparseArray;
 HSPLcom/android/server/utils/WatchedSparseArray;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedSparseArray;->snapshot(Lcom/android/server/utils/WatchedSparseArray;)V
 HSPLcom/android/server/utils/WatchedSparseArray;->snapshot(Lcom/android/server/utils/WatchedSparseArray;Lcom/android/server/utils/WatchedSparseArray;)V
-HSPLcom/android/server/utils/WatchedSparseArray;->unregisterChildIf(Ljava/lang/Object;)V
-HSPLcom/android/server/utils/WatchedSparseArray;->valueAt(I)Ljava/lang/Object;
+HSPLcom/android/server/utils/WatchedSparseArray;->unregisterChildIf$4(Ljava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedSparseBooleanArray;-><init>()V
 HSPLcom/android/server/utils/WatchedSparseBooleanArray;-><init>(Lcom/android/server/utils/WatchedSparseBooleanArray;)V
-HPLcom/android/server/utils/WatchedSparseBooleanArray;->get(I)Z
-PLcom/android/server/utils/WatchedSparseBooleanArray;->onChanged()V
-PLcom/android/server/utils/WatchedSparseBooleanArray;->put(IZ)V
-HSPLcom/android/server/utils/WatchedSparseBooleanArray;->snapshot()Lcom/android/server/utils/WatchedSparseBooleanArray;
 HSPLcom/android/server/utils/WatchedSparseBooleanMatrix;-><init>()V
-HSPLcom/android/server/utils/WatchedSparseBooleanMatrix;-><init>(I)V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;-><init>(Lcom/android/server/utils/WatchedSparseBooleanMatrix;)V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->binarySearch([III)I
-PLcom/android/server/utils/WatchedSparseBooleanMatrix;->clear()V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->copyFrom(Lcom/android/server/utils/WatchedSparseBooleanMatrix;)V
+HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->binarySearch(II[I)I
 HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->indexOfKey(I)I
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->indexOfKey(IZ)I
+PLcom/android/server/utils/WatchedSparseBooleanMatrix;->indexOfKey(I)V
 PLcom/android/server/utils/WatchedSparseBooleanMatrix;->nextFree(Z)I
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->onChanged()V
 HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->put(IIZ)V
+PLcom/android/server/utils/WatchedSparseBooleanMatrix;->removeAt(I)V
 PLcom/android/server/utils/WatchedSparseBooleanMatrix;->resizeMatrix(I)V
-PLcom/android/server/utils/WatchedSparseBooleanMatrix;->setCapacity(I)V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->setValueAt(IIZ)V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->setValueAtInternal(IIZ)V
-PLcom/android/server/utils/WatchedSparseBooleanMatrix;->size()I
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->snapshot()Lcom/android/server/utils/WatchedSparseBooleanMatrix;
 HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->snapshot()Ljava/lang/Object;
 HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->validateIndex(I)V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->validateIndex(II)V
-HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->valueAt(II)Z
 HPLcom/android/server/utils/WatchedSparseBooleanMatrix;->valueAtInternal(II)Z
 HSPLcom/android/server/utils/WatchedSparseIntArray;-><init>()V
 HSPLcom/android/server/utils/WatchedSparseIntArray;-><init>(Lcom/android/server/utils/WatchedSparseIntArray;)V
-HSPLcom/android/server/utils/WatchedSparseIntArray;->size()I
-HSPLcom/android/server/utils/WatchedSparseIntArray;->snapshot()Lcom/android/server/utils/WatchedSparseIntArray;
 HSPLcom/android/server/utils/WatchedSparseIntArray;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedSparseIntArray;->snapshot(Lcom/android/server/utils/WatchedSparseIntArray;)V
-HSPLcom/android/server/utils/WatchedSparseIntArray;->snapshot(Lcom/android/server/utils/WatchedSparseIntArray;Lcom/android/server/utils/WatchedSparseIntArray;)V
 HSPLcom/android/server/utils/WatchedSparseSetArray;-><init>()V
 PLcom/android/server/utils/WatchedSparseSetArray;-><init>(Landroid/util/SparseSetArray;)V
 HSPLcom/android/server/utils/WatchedSparseSetArray;-><init>(Lcom/android/server/utils/WatchedSparseSetArray;)V
-HPLcom/android/server/utils/WatchedSparseSetArray;->add(ILjava/lang/Object;)Z
-HPLcom/android/server/utils/WatchedSparseSetArray;->contains(ILjava/lang/Object;)Z
-PLcom/android/server/utils/WatchedSparseSetArray;->get(I)Landroid/util/ArraySet;
-HPLcom/android/server/utils/WatchedSparseSetArray;->keyAt(I)I
-PLcom/android/server/utils/WatchedSparseSetArray;->onChanged()V
-HPLcom/android/server/utils/WatchedSparseSetArray;->size()I
+PLcom/android/server/utils/WatchedSparseSetArray;->add(ILjava/lang/Object;)Z
+PLcom/android/server/utils/WatchedSparseSetArray;->remove(I)V
+PLcom/android/server/utils/WatchedSparseSetArray;->remove(ILjava/lang/Object;)V
 HSPLcom/android/server/utils/WatchedSparseSetArray;->snapshot()Ljava/lang/Object;
-HSPLcom/android/server/utils/WatchedSparseSetArray;->untrackedStorage()Landroid/util/SparseSetArray;
-HSPLcom/android/server/utils/Watcher;-><init>()V
-PLcom/android/server/utils/quota/Categorizer$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/utils/quota/Categorizer$$ExternalSyntheticLambda0;->getCategory(Ljava/lang/String;)Lcom/android/server/utils/quota/Category;
 PLcom/android/server/utils/quota/Categorizer;-><clinit>()V
 PLcom/android/server/utils/quota/Category;-><clinit>()V
 PLcom/android/server/utils/quota/Category;-><init>(Ljava/lang/String;)V
-PLcom/android/server/utils/quota/Category;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/utils/quota/Category;->hashCode()I
+HPLcom/android/server/utils/quota/Category;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/utils/quota/Category;->hashCode()I
+PLcom/android/server/utils/quota/Category;->toString()Ljava/lang/String;
 PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;)V
-PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda2;-><init>()V
-HPLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda0;->onAlarm()V
+PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda2;-><init>(I)V
+PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda3;-><init>(J)V
+PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda7;-><init>(Landroid/util/IndentingPrintWriter;I)V
+PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda7;->accept(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/utils/quota/CountQuotaTracker$CqtHandler;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;Landroid/os/Looper;)V
-PLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;->-$$Nest$fgetmMaxPeriodMs(Lcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;)J
-PLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;->-$$Nest$mupdateMaxPeriod(Lcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;)V
+PLcom/android/server/utils/quota/CountQuotaTracker$CqtHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;)V
-PLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;Lcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor-IA;)V
-HPLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;->updateMaxPeriod()V
-PLcom/android/server/utils/quota/CountQuotaTracker$EarliestEventTimeFunctor;-><init>()V
-PLcom/android/server/utils/quota/CountQuotaTracker$EarliestEventTimeFunctor;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker$EarliestEventTimeFunctor-IA;)V
-PLcom/android/server/utils/quota/CountQuotaTracker$EarliestEventTimeFunctor;->accept(Landroid/util/LongArrayQueue;)V
+PLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;->accept(Ljava/lang/Object;)V
 PLcom/android/server/utils/quota/CountQuotaTracker$EarliestEventTimeFunctor;->accept(Ljava/lang/Object;)V
-PLcom/android/server/utils/quota/CountQuotaTracker$EarliestEventTimeFunctor;->reset()V
 PLcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;-><init>()V
-PLcom/android/server/utils/quota/CountQuotaTracker;->$r8$lambda$bpXgHbASkT73xHBfIQStDjbYyHs(Ljava/lang/Void;)Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;
-PLcom/android/server/utils/quota/CountQuotaTracker;->$r8$lambda$cM9jWlqtuFAt3Et9NwUilONDTpc(Ljava/lang/Void;)Landroid/util/LongArrayQueue;
-PLcom/android/server/utils/quota/CountQuotaTracker;->-$$Nest$fgetmCategoryCountWindowSizesMs(Lcom/android/server/utils/quota/CountQuotaTracker;)Landroid/util/ArrayMap;
+PLcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;->toString()Ljava/lang/String;
 PLcom/android/server/utils/quota/CountQuotaTracker;-><clinit>()V
 PLcom/android/server/utils/quota/CountQuotaTracker;-><init>(Landroid/content/Context;Lcom/android/server/utils/quota/Categorizer;)V
-HPLcom/android/server/utils/quota/CountQuotaTracker;-><init>(Landroid/content/Context;Lcom/android/server/utils/quota/Categorizer;Lcom/android/server/utils/quota/QuotaTracker$Injector;)V
+PLcom/android/server/utils/quota/CountQuotaTracker;-><init>(Landroid/content/Context;Lcom/android/server/utils/quota/Categorizer;Lcom/android/server/utils/quota/QuotaTracker$Injector;)V
+PLcom/android/server/utils/quota/CountQuotaTracker;->deleteObsoleteEventsLocked()V
+PLcom/android/server/utils/quota/CountQuotaTracker;->dump(Landroid/util/IndentingPrintWriter;)V
 HPLcom/android/server/utils/quota/CountQuotaTracker;->getExecutionStatsLocked(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;
-HPLcom/android/server/utils/quota/CountQuotaTracker;->getExecutionStatsLocked(ILjava/lang/String;Ljava/lang/String;Z)Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;
-PLcom/android/server/utils/quota/CountQuotaTracker;->getHandler()Landroid/os/Handler;
-PLcom/android/server/utils/quota/CountQuotaTracker;->invalidateAllExecutionStatsLocked()V
-HPLcom/android/server/utils/quota/CountQuotaTracker;->isUnderCountQuotaLocked(Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;)Z
-HPLcom/android/server/utils/quota/CountQuotaTracker;->isWithinQuota(ILjava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/utils/quota/CountQuotaTracker;->isWithinQuotaLocked(ILjava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/utils/quota/CountQuotaTracker;->isWithinQuotaLocked(Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;)Z
-PLcom/android/server/utils/quota/CountQuotaTracker;->lambda$new$4(Ljava/lang/Void;)Landroid/util/LongArrayQueue;
-HPLcom/android/server/utils/quota/CountQuotaTracker;->lambda$new$5(Ljava/lang/Void;)Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;
+HPLcom/android/server/utils/quota/CountQuotaTracker;->getExecutionStatsLocked(ILjava/lang/String;Ljava/lang/String;Z)Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/utils/quota/Categorizer;Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda4;,Lcom/android/server/utils/quota/Categorizer$$ExternalSyntheticLambda0;]Lcom/android/server/utils/quota/CountQuotaTracker;Lcom/android/server/utils/quota/CountQuotaTracker;
 PLcom/android/server/utils/quota/CountQuotaTracker;->maybeScheduleCleanupAlarmLocked()V
 PLcom/android/server/utils/quota/CountQuotaTracker;->noteEvent(ILjava/lang/String;Ljava/lang/String;)Z
-HPLcom/android/server/utils/quota/CountQuotaTracker;->setCountLimit(Lcom/android/server/utils/quota/Category;IJ)V
-PLcom/android/server/utils/quota/CountQuotaTracker;->setEnabled(Z)V
-HPLcom/android/server/utils/quota/CountQuotaTracker;->updateExecutionStatsLocked(ILjava/lang/String;Ljava/lang/String;Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;)V
-PLcom/android/server/utils/quota/MultiRateLimiter$Builder;-><init>(Landroid/content/Context;)V
+PLcom/android/server/utils/quota/CountQuotaTracker;->setCountLimit(Lcom/android/server/utils/quota/Category;IJ)V
+PLcom/android/server/utils/quota/CountQuotaTracker;->updateExecutionStatsLocked(ILjava/lang/String;Ljava/lang/String;Lcom/android/server/utils/quota/CountQuotaTracker$ExecutionStats;)V
 PLcom/android/server/utils/quota/MultiRateLimiter$Builder;-><init>(Landroid/content/Context;Lcom/android/server/utils/quota/QuotaTracker$Injector;)V
-PLcom/android/server/utils/quota/MultiRateLimiter$Builder;->addRateLimit(ILjava/time/Duration;)Lcom/android/server/utils/quota/MultiRateLimiter$Builder;
-PLcom/android/server/utils/quota/MultiRateLimiter$Builder;->addRateLimit(Lcom/android/server/utils/quota/MultiRateLimiter$RateLimit;)Lcom/android/server/utils/quota/MultiRateLimiter$Builder;
-PLcom/android/server/utils/quota/MultiRateLimiter$Builder;->addRateLimits([Lcom/android/server/utils/quota/MultiRateLimiter$RateLimit;)Lcom/android/server/utils/quota/MultiRateLimiter$Builder;
-PLcom/android/server/utils/quota/MultiRateLimiter$Builder;->build()Lcom/android/server/utils/quota/MultiRateLimiter;
+PLcom/android/server/utils/quota/MultiRateLimiter$Builder;->addRateLimit(ILjava/time/Duration;)V
 PLcom/android/server/utils/quota/MultiRateLimiter$RateLimit;-><init>(ILjava/time/Duration;)V
-PLcom/android/server/utils/quota/MultiRateLimiter$RateLimit;->create(ILjava/time/Duration;)Lcom/android/server/utils/quota/MultiRateLimiter$RateLimit;
 PLcom/android/server/utils/quota/MultiRateLimiter;-><clinit>()V
 PLcom/android/server/utils/quota/MultiRateLimiter;-><init>(Ljava/util/List;)V
-PLcom/android/server/utils/quota/MultiRateLimiter;-><init>(Ljava/util/List;Lcom/android/server/utils/quota/MultiRateLimiter-IA;)V
-PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/utils/quota/QuotaTracker;IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;)V
+PLcom/android/server/utils/quota/MultiRateLimiter;->isWithinQuota(ILjava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;)V
+PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;JLjava/lang/String;Lcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda0;)V
 PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/utils/quota/QuotaTracker;)V
-PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda2;->run()V
 PLcom/android/server/utils/quota/QuotaTracker$1;-><init>(Lcom/android/server/utils/quota/QuotaTracker;)V
 PLcom/android/server/utils/quota/QuotaTracker$InQuotaAlarmQueue;-><init>(Lcom/android/server/utils/quota/QuotaTracker;Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/utils/quota/QuotaTracker$InQuotaAlarmQueue;-><init>(Lcom/android/server/utils/quota/QuotaTracker;Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/utils/quota/QuotaTracker$InQuotaAlarmQueue-IA;)V
 PLcom/android/server/utils/quota/QuotaTracker$Injector;-><init>()V
-HPLcom/android/server/utils/quota/QuotaTracker$Injector;->getElapsedRealtime()J
-PLcom/android/server/utils/quota/QuotaTracker$Injector;->isAlarmManagerReady()Z
-PLcom/android/server/utils/quota/QuotaTracker;->$r8$lambda$7_jWEDO3BU-RIo1JOMCtrF_brqU(Lcom/android/server/utils/quota/QuotaTracker;IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;)V
-PLcom/android/server/utils/quota/QuotaTracker;->$r8$lambda$zqw0r2J0L3v3iTYTnBHhbM_aIAc(Lcom/android/server/utils/quota/QuotaTracker;)V
-PLcom/android/server/utils/quota/QuotaTracker;->-$$Nest$sfgetALARM_TAG_QUOTA_CHECK()Ljava/lang/String;
 PLcom/android/server/utils/quota/QuotaTracker;-><clinit>()V
-HPLcom/android/server/utils/quota/QuotaTracker;-><init>(Landroid/content/Context;Lcom/android/server/utils/quota/Categorizer;Lcom/android/server/utils/quota/QuotaTracker$Injector;)V
-PLcom/android/server/utils/quota/QuotaTracker;->isEnabledLocked()Z
-HPLcom/android/server/utils/quota/QuotaTracker;->isQuotaFreeLocked(ILjava/lang/String;)Z
-HPLcom/android/server/utils/quota/QuotaTracker;->isWithinQuota(ILjava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/utils/quota/QuotaTracker;->lambda$scheduleAlarm$0(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;)V
-PLcom/android/server/utils/quota/QuotaTracker;->lambda$scheduleQuotaCheck$2()V
-PLcom/android/server/utils/quota/QuotaTracker;->scheduleAlarm(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;)V
-PLcom/android/server/utils/quota/QuotaTracker;->scheduleQuotaCheck()V
-PLcom/android/server/utils/quota/QuotaTracker;->setEnabled(Z)V
+PLcom/android/server/utils/quota/QuotaTracker;-><init>(Landroid/content/Context;Lcom/android/server/utils/quota/Categorizer;Lcom/android/server/utils/quota/QuotaTracker$Injector;)V
+PLcom/android/server/utils/quota/QuotaTracker;->dump(Landroid/util/IndentingPrintWriter;)V
+HPLcom/android/server/utils/quota/QuotaTracker;->isWithinQuota(ILjava/lang/String;Ljava/lang/String;)Z+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/utils/quota/CountQuotaTracker;Lcom/android/server/utils/quota/CountQuotaTracker;
+PLcom/android/server/utils/quota/Uptc;->string(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/utils/quota/UptcMap$$ExternalSyntheticLambda0;-><init>(Ljava/util/function/Consumer;)V
 PLcom/android/server/utils/quota/UptcMap$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/utils/quota/UptcMap;->$r8$lambda$d6yUTqkiV7qCVDI1h44DX07LvM8(Ljava/util/function/Consumer;Landroid/util/ArrayMap;)V
 PLcom/android/server/utils/quota/UptcMap;-><init>()V
-HPLcom/android/server/utils/quota/UptcMap;->add(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
-PLcom/android/server/utils/quota/UptcMap;->forEach(Ljava/util/function/Consumer;)V
-HPLcom/android/server/utils/quota/UptcMap;->get(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
-HPLcom/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;->lambda$forEach$0(Ljava/util/function/Consumer;Landroid/util/ArrayMap;)V
+PLcom/android/server/utils/quota/UptcMap;->forEach(Lcom/android/server/utils/quota/UptcMap$UptcDataConsumer;)V
+PLcom/android/server/utils/quota/UptcMap;->get(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
 PLcom/android/server/vcn/TelephonySubscriptionTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vcn/TelephonySubscriptionTracker;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/vcn/TelephonySubscriptionTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/vcn/TelephonySubscriptionTracker;)V
@@ -24658,475 +19634,462 @@
 PLcom/android/server/vcn/TelephonySubscriptionTracker$2;-><init>(Lcom/android/server/vcn/TelephonySubscriptionTracker;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker$2;->onCarrierPrivilegesChanged(Ljava/util/Set;Ljava/util/Set;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker$ActiveDataSubscriptionIdListener;-><init>(Lcom/android/server/vcn/TelephonySubscriptionTracker;)V
-PLcom/android/server/vcn/TelephonySubscriptionTracker$ActiveDataSubscriptionIdListener;-><init>(Lcom/android/server/vcn/TelephonySubscriptionTracker;Lcom/android/server/vcn/TelephonySubscriptionTracker$ActiveDataSubscriptionIdListener-IA;)V
+PLcom/android/server/vcn/TelephonySubscriptionTracker$ActiveDataSubscriptionIdListener;->onActiveDataSubscriptionIdChanged(I)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker$Dependencies;-><init>()V
-PLcom/android/server/vcn/TelephonySubscriptionTracker$Dependencies;->getActiveDataSubscriptionId()I
 PLcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;-><clinit>()V
-HPLcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;-><init>(ILjava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
+PLcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;-><init>(ILjava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
+PLcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;->dump(Landroid/util/IndentingPrintWriter;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;->equals(Ljava/lang/Object;)Z
 PLcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;->toString()Ljava/lang/String;
-PLcom/android/server/vcn/TelephonySubscriptionTracker;->$r8$lambda$UITr0Y088UTlKS8haj11FOauMy8(Lcom/android/server/vcn/TelephonySubscriptionTracker;IIII)V
-PLcom/android/server/vcn/TelephonySubscriptionTracker;->$r8$lambda$d-we-Idb2bNLS062826pLy573-w(Lcom/android/server/vcn/TelephonySubscriptionTracker;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker;-><clinit>()V
-PLcom/android/server/vcn/TelephonySubscriptionTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionTrackerCallback;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionTrackerCallback;Lcom/android/server/vcn/TelephonySubscriptionTracker$Dependencies;)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker;->handleActionCarrierConfigChanged(II)V
 PLcom/android/server/vcn/TelephonySubscriptionTracker;->handleSubscriptionsChanged()V
-PLcom/android/server/vcn/TelephonySubscriptionTracker;->lambda$handleSubscriptionsChanged$1(Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)V
-PLcom/android/server/vcn/TelephonySubscriptionTracker;->lambda$new$0(IIII)V
-PLcom/android/server/vcn/TelephonySubscriptionTracker;->register()V
 PLcom/android/server/vcn/TelephonySubscriptionTracker;->registerCarrierPrivilegesCallbacks()V
 PLcom/android/server/vcn/Vcn;-><clinit>()V
-PLcom/android/server/vcn/Vcn;->getNetworkScore()Landroid/net/NetworkScore;
 PLcom/android/server/vcn/VcnNetworkProvider$1;-><init>(Lcom/android/server/vcn/VcnNetworkProvider;)V
 PLcom/android/server/vcn/VcnNetworkProvider$1;->onNetworkNeeded(Landroid/net/NetworkRequest;)V
 PLcom/android/server/vcn/VcnNetworkProvider$1;->onNetworkUnneeded(Landroid/net/NetworkRequest;)V
 PLcom/android/server/vcn/VcnNetworkProvider$Dependencies;-><init>()V
-PLcom/android/server/vcn/VcnNetworkProvider$Dependencies;->registerNetworkOffer(Lcom/android/server/vcn/VcnNetworkProvider;Landroid/net/NetworkScore;Landroid/net/NetworkCapabilities;Ljava/util/concurrent/Executor;Landroid/net/NetworkProvider$NetworkOfferCallback;)V
-PLcom/android/server/vcn/VcnNetworkProvider;->-$$Nest$mhandleNetworkRequestWithdrawn(Lcom/android/server/vcn/VcnNetworkProvider;Landroid/net/NetworkRequest;)V
-PLcom/android/server/vcn/VcnNetworkProvider;->-$$Nest$mhandleNetworkRequested(Lcom/android/server/vcn/VcnNetworkProvider;Landroid/net/NetworkRequest;)V
 PLcom/android/server/vcn/VcnNetworkProvider;-><clinit>()V
-PLcom/android/server/vcn/VcnNetworkProvider;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 PLcom/android/server/vcn/VcnNetworkProvider;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/vcn/VcnNetworkProvider$Dependencies;)V
 PLcom/android/server/vcn/VcnNetworkProvider;->buildCapabilityFilter()Landroid/net/NetworkCapabilities;
-PLcom/android/server/vcn/VcnNetworkProvider;->handleNetworkRequestWithdrawn(Landroid/net/NetworkRequest;)V
-PLcom/android/server/vcn/VcnNetworkProvider;->handleNetworkRequested(Landroid/net/NetworkRequest;)V
-PLcom/android/server/vcn/VcnNetworkProvider;->register()V
-PLcom/android/server/vcn/util/PersistableBundleUtils$LockingReadWriteHelper;-><init>(Ljava/lang/String;)V
-PLcom/android/server/vcn/util/PersistableBundleUtils$LockingReadWriteHelper;->readFromDisk()Landroid/os/PersistableBundle;
-PLcom/android/server/vibrator/AbstractVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;Landroid/os/VibrationEffect$Composed;IJ)V
-PLcom/android/server/vibrator/AbstractVibratorStep;->acceptVibratorCompleteCallback(I)Z
-PLcom/android/server/vibrator/AbstractVibratorStep;->getVibratorId()I
+PLcom/android/server/vibrator/AbstractComposedVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;Landroid/os/VibrationEffect$Composed;IJ)V
+PLcom/android/server/vibrator/AbstractComposedVibratorStep;->nextSteps(I)Ljava/util/List;
+HPLcom/android/server/vibrator/AbstractComposedVibratorStep;->nextSteps(IJ)Ljava/util/List;
+HPLcom/android/server/vibrator/AbstractVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;J)V
+HPLcom/android/server/vibrator/AbstractVibratorStep;->acceptVibratorCompleteCallback(I)Z
+PLcom/android/server/vibrator/AbstractVibratorStep;->cancel()Ljava/util/List;
+PLcom/android/server/vibrator/AbstractVibratorStep;->changeAmplitude(F)V
 PLcom/android/server/vibrator/AbstractVibratorStep;->getVibratorOnDuration()J
-PLcom/android/server/vibrator/AbstractVibratorStep;->handleVibratorOnResult(J)J
-PLcom/android/server/vibrator/AbstractVibratorStep;->nextSteps(I)Ljava/util/List;
-PLcom/android/server/vibrator/AbstractVibratorStep;->nextSteps(JI)Ljava/util/List;
-PLcom/android/server/vibrator/AbstractVibratorStep;->stopVibrating()V
-PLcom/android/server/vibrator/ClippingAmplitudeAndFrequencyAdapter;-><init>()V
+HPLcom/android/server/vibrator/AbstractVibratorStep;->handleVibratorOnResult(J)V
+HPLcom/android/server/vibrator/AbstractVibratorStep;->stopVibrating()V
+PLcom/android/server/vibrator/BasicToPwleSegmentAdapter$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/vibrator/BasicToPwleSegmentAdapter;-><clinit>()V
+PLcom/android/server/vibrator/BasicToPwleSegmentAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
 PLcom/android/server/vibrator/ClippingAmplitudeAndFrequencyAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
 PLcom/android/server/vibrator/CompleteEffectVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JZLcom/android/server/vibrator/VibratorController;J)V
+PLcom/android/server/vibrator/CompleteEffectVibratorStep;->cancel()Ljava/util/List;
 PLcom/android/server/vibrator/CompleteEffectVibratorStep;->isCleanUp()Z
-PLcom/android/server/vibrator/CompleteEffectVibratorStep;->play()Ljava/util/List;
-PLcom/android/server/vibrator/ComposePrimitivesVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;Landroid/os/VibrationEffect$Composed;IJ)V
-PLcom/android/server/vibrator/ComposePrimitivesVibratorStep;->play()Ljava/util/List;
-PLcom/android/server/vibrator/ComposePrimitivesVibratorStep;->unrollPrimitiveSegments(Landroid/os/VibrationEffect$Composed;II)Ljava/util/List;
+HPLcom/android/server/vibrator/CompleteEffectVibratorStep;->play()Ljava/util/List;
+HPLcom/android/server/vibrator/ComposePrimitivesVibratorStep;->play()Ljava/util/List;+]Landroid/os/VibratorInfo;Landroid/os/VibratorInfo;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/vibrator/DeviceAdapter;-><init>(Lcom/android/server/vibrator/VibrationSettings;Landroid/util/SparseArray;)V
-PLcom/android/server/vibrator/DeviceAdapter;->adaptToVibrator(ILandroid/os/VibrationEffect;)Landroid/os/VibrationEffect;
+HPLcom/android/server/vibrator/DeviceAdapter;->adaptToVibrator(ILandroid/os/VibrationEffect;)Landroid/os/VibrationEffect;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/vibrator/VibrationSegmentsAdapter;megamorphic_types]Lcom/android/server/vibrator/VibrationSegmentsValidator;Lcom/android/server/vibrator/PrimitiveSegmentsValidator;,Lcom/android/server/vibrator/PwleSegmentsValidator;]Ljava/util/List;Ljava/util/Arrays$ArrayList;,Ljava/util/ImmutableCollections$List12;
 PLcom/android/server/vibrator/DeviceAdapter;->getAvailableVibratorIds()[I
-PLcom/android/server/vibrator/DeviceAdapter;->getAvailableVibrators()Landroid/util/SparseArray;
 PLcom/android/server/vibrator/FinishSequentialEffectStep;-><init>(Lcom/android/server/vibrator/StartSequentialEffectStep;)V
-PLcom/android/server/vibrator/FinishSequentialEffectStep;->isCleanUp()Z
-PLcom/android/server/vibrator/FinishSequentialEffectStep;->play()Ljava/util/List;
-PLcom/android/server/vibrator/HalVibration;-><init>(Landroid/os/IBinder;Landroid/os/CombinedVibration;Lcom/android/server/vibrator/Vibration$CallerInfo;)V
-PLcom/android/server/vibrator/HalVibration;->adaptToDevice(Landroid/os/CombinedVibration$VibratorAdapter;)V
-PLcom/android/server/vibrator/HalVibration;->end(Lcom/android/server/vibrator/Vibration$EndInfo;)V
-PLcom/android/server/vibrator/HalVibration;->getDebugInfo()Lcom/android/server/vibrator/Vibration$DebugInfo;
-PLcom/android/server/vibrator/HalVibration;->getEffectToPlay()Landroid/os/CombinedVibration;
-PLcom/android/server/vibrator/HalVibration;->getStatsInfo(J)Lcom/android/server/vibrator/VibrationStats$StatsInfo;
-PLcom/android/server/vibrator/HalVibration;->hasEnded()Z
-PLcom/android/server/vibrator/HalVibration;->isRepeating()Z
-PLcom/android/server/vibrator/HalVibration;->scaleEffects(Landroid/os/VibrationEffect$Transformation;)V
-PLcom/android/server/vibrator/HapticFeedbackCustomization;->loadVibrations(Landroid/content/res/Resources;Landroid/os/VibratorInfo;)Landroid/util/SparseArray;
-HPLcom/android/server/vibrator/HapticFeedbackCustomization;->loadVibrationsInternal(Landroid/content/res/Resources;Landroid/os/VibratorInfo;)Landroid/util/SparseArray;
+PLcom/android/server/vibrator/FinishSequentialEffectStep;->cancel()Ljava/util/List;
+PLcom/android/server/vibrator/FinishSequentialEffectStep;->cancelImmediately()V
+HPLcom/android/server/vibrator/FinishSequentialEffectStep;->play()Ljava/util/List;
+PLcom/android/server/vibrator/GroupedAggregatedLogRecords$AggregatedLogRecord;-><init>(Lcom/android/server/vibrator/GroupedAggregatedLogRecords$SingleLogRecord;)V
+PLcom/android/server/vibrator/GroupedAggregatedLogRecords$AggregatedLogRecord;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/vibrator/GroupedAggregatedLogRecords;-><init>(II)V
+HPLcom/android/server/vibrator/GroupedAggregatedLogRecords;->add(Lcom/android/server/vibrator/GroupedAggregatedLogRecords$SingleLogRecord;)Lcom/android/server/vibrator/GroupedAggregatedLogRecords$AggregatedLogRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/vibrator/GroupedAggregatedLogRecords$SingleLogRecord;Lcom/android/server/vibrator/VibratorManagerService$VibrationRecord;]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
+PLcom/android/server/vibrator/GroupedAggregatedLogRecords;->dump(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/vibrator/HalVibration$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vibrator/VibrationScaler;)V
+HPLcom/android/server/vibrator/HalVibration$$ExternalSyntheticLambda0;->transform(Landroid/os/VibrationEffect;Ljava/lang/Object;)Landroid/os/VibrationEffect;
+HPLcom/android/server/vibrator/HalVibration;-><init>(Lcom/android/server/vibrator/VibrationSession$CallerInfo;Landroid/os/CombinedVibration;)V
+HPLcom/android/server/vibrator/HalVibration;->end(Lcom/android/server/vibrator/Vibration$EndInfo;)V
+PLcom/android/server/vibrator/HalVibration;->fillFallbacksForEffect(Landroid/os/CombinedVibration;Ljava/util/function/IntFunction;)V
+HPLcom/android/server/vibrator/HalVibration;->fillFallbacksForEffect(Landroid/os/VibrationEffect;Ljava/util/function/IntFunction;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/function/IntFunction;Lcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda0;
+HPLcom/android/server/vibrator/HalVibration;->getDebugInfo()Lcom/android/server/vibrator/VibrationSession$DebugInfo;
+HPLcom/android/server/vibrator/HalVibration;->scaleEffects(Lcom/android/server/vibrator/VibrationScaler;)V
+PLcom/android/server/vibrator/HapticFeedbackCustomization;-><init>(Landroid/content/res/Resources;Landroid/os/VibratorInfo;)V
+PLcom/android/server/vibrator/HapticFeedbackCustomization;->loadCustomizedFeedbackVibrationFromRes(Landroid/content/res/Resources;Landroid/os/VibratorInfo;I)Landroid/util/SparseArray;
+PLcom/android/server/vibrator/HapticFeedbackCustomization;->parseVibrations(Lcom/android/modules/utils/TypedXmlPullParser;Landroid/os/VibratorInfo;)Landroid/util/SparseArray;
+PLcom/android/server/vibrator/HapticFeedbackCustomization;->readCustomizationFile(Landroid/content/res/Resources;)Lcom/android/modules/utils/TypedXmlPullParser;
+PLcom/android/server/vibrator/HapticFeedbackCustomization;->readCustomizationResources(Landroid/content/res/Resources;I)Lcom/android/modules/utils/TypedXmlPullParser;
 PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;-><clinit>()V
-PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;-><init>(Landroid/content/res/Resources;Landroid/os/Vibrator;)V
-PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;-><init>(Landroid/content/res/Resources;Landroid/os/VibratorInfo;)V
-PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;-><init>(Landroid/content/res/Resources;Landroid/os/VibratorInfo;Landroid/util/SparseArray;)V
-PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;->effectHasCustomization(I)Z
-PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;->loadHapticCustomizations(Landroid/content/res/Resources;Landroid/os/VibratorInfo;)Landroid/util/SparseArray;
+PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;-><init>(Landroid/content/res/Resources;Landroid/os/VibratorInfo;Lcom/android/server/vibrator/HapticFeedbackCustomization;)V
+HPLcom/android/server/vibrator/HapticFeedbackVibrationProvider;->getVibrationAttributes(III)Landroid/os/VibrationAttributes;
+HPLcom/android/server/vibrator/HapticFeedbackVibrationProvider;->getVibrationAttributesWithFlags(Landroid/os/VibrationAttributes;II)Landroid/os/VibrationAttributes;
+PLcom/android/server/vibrator/HapticFeedbackVibrationProvider;->getVibrationForHapticFeedback(I)Landroid/os/VibrationEffect;
 PLcom/android/server/vibrator/InputDeviceDelegate;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/vibrator/InputDeviceDelegate;->isAvailable()Z
-PLcom/android/server/vibrator/InputDeviceDelegate;->onSystemReady()V
 PLcom/android/server/vibrator/InputDeviceDelegate;->updateInputDeviceVibrators(Z)Z
+PLcom/android/server/vibrator/PerformPrebakedVibratorStep;->play()Ljava/util/List;
+HPLcom/android/server/vibrator/PrimitiveDelayAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
+HPLcom/android/server/vibrator/PrimitiveSegmentsValidator;->hasValidSegments(Landroid/os/VibratorInfo;Ljava/util/List;)Z
+HPLcom/android/server/vibrator/PwleSegmentsValidator;->hasValidSegments(Landroid/os/VibratorInfo;Ljava/util/List;)Z
 PLcom/android/server/vibrator/RampDownAdapter;-><init>(II)V
 PLcom/android/server/vibrator/RampDownAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
 PLcom/android/server/vibrator/RampToStepAdapter;-><init>(I)V
-PLcom/android/server/vibrator/RampToStepAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
-PLcom/android/server/vibrator/SplitSegmentsAdapter;-><init>()V
+HPLcom/android/server/vibrator/RampToStepAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
+PLcom/android/server/vibrator/SetAmplitudeVibratorStep;->getVibratorOnDuration(Landroid/os/VibrationEffect$Composed;I)J
+PLcom/android/server/vibrator/SetAmplitudeVibratorStep;->play()Ljava/util/List;
+PLcom/android/server/vibrator/SetAmplitudeVibratorStep;->startVibrating(J)J
+HPLcom/android/server/vibrator/SingleVibrationSession;-><init>(Landroid/os/IBinder;Lcom/android/server/vibrator/VibrationSession$CallerInfo;Landroid/os/CombinedVibration;)V
+HPLcom/android/server/vibrator/SingleVibrationSession;->getCallerInfo()Lcom/android/server/vibrator/VibrationSession$CallerInfo;
+PLcom/android/server/vibrator/SingleVibrationSession;->getCallerToken()Landroid/os/IBinder;
+PLcom/android/server/vibrator/SingleVibrationSession;->getCreateUptimeMillis()J
+PLcom/android/server/vibrator/SingleVibrationSession;->getDebugInfo()Lcom/android/server/vibrator/VibrationSession$DebugInfo;
+HPLcom/android/server/vibrator/SingleVibrationSession;->isRepeating()Z
+HPLcom/android/server/vibrator/SingleVibrationSession;->notifyVibratorCallback(IJ)V
+PLcom/android/server/vibrator/SingleVibrationSession;->requestEnd(Lcom/android/server/vibrator/VibrationSession$Status;Lcom/android/server/vibrator/VibrationSession$CallerInfo;Z)V
+PLcom/android/server/vibrator/SingleVibrationSession;->unlinkToDeath()V
+HPLcom/android/server/vibrator/SingleVibrationSession;->wasEndRequested()Z
+PLcom/android/server/vibrator/SplitPwleSegmentsAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
 PLcom/android/server/vibrator/SplitSegmentsAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
-PLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;-><init>(Lcom/android/server/vibrator/StartSequentialEffectStep;Landroid/os/CombinedVibration$Mono;)V
-PLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;->calculateRequiredSyncCapabilities(Landroid/util/SparseArray;)J
-PLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;->effectAt(I)Landroid/os/VibrationEffect$Composed;
+HPLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;-><init>(Lcom/android/server/vibrator/StartSequentialEffectStep;Landroid/os/CombinedVibration$Mono;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;->calculateRequiredSyncCapabilities(Landroid/util/SparseArray;)J
 PLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;->requireMixedTriggerCapability(JJ)Z
-PLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;->size()I
-PLcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;->vibratorIdAt(I)I
 PLcom/android/server/vibrator/StartSequentialEffectStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLandroid/os/CombinedVibration$Sequential;I)V
-PLcom/android/server/vibrator/StartSequentialEffectStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;Landroid/os/CombinedVibration$Sequential;)V
-PLcom/android/server/vibrator/StartSequentialEffectStep;->createEffectToVibratorMapping(Landroid/os/CombinedVibration;)Lcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;
+PLcom/android/server/vibrator/StartSequentialEffectStep;->cancel()Ljava/util/List;
 PLcom/android/server/vibrator/StartSequentialEffectStep;->getVibratorOnDuration()J
-PLcom/android/server/vibrator/StartSequentialEffectStep;->nextStep()Lcom/android/server/vibrator/Step;
-PLcom/android/server/vibrator/StartSequentialEffectStep;->play()Ljava/util/List;
-PLcom/android/server/vibrator/StartSequentialEffectStep;->startVibrating(Lcom/android/server/vibrator/AbstractVibratorStep;Ljava/util/List;)J
-PLcom/android/server/vibrator/StartSequentialEffectStep;->startVibrating(Lcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;Ljava/util/List;)J
+PLcom/android/server/vibrator/StartSequentialEffectStep;->nextStep()Lcom/android/server/vibrator/StartSequentialEffectStep;
+HPLcom/android/server/vibrator/StartSequentialEffectStep;->play()Ljava/util/List;
+HPLcom/android/server/vibrator/StartSequentialEffectStep;->startVibrating(Lcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap;Ljava/util/List;)J+]Landroid/os/VibrationEffect;Landroid/os/VibrationEffect$Composed;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/vibrator/Step;Lcom/android/server/vibrator/ComposePrimitivesVibratorStep;,Lcom/android/server/vibrator/PerformPrebakedVibratorStep;,Lcom/android/server/vibrator/SetAmplitudeVibratorStep;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/vibrator/Step;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;J)V
-PLcom/android/server/vibrator/Step;->calculateWaitTime()J
-PLcom/android/server/vibrator/Step;->compareTo(Lcom/android/server/vibrator/Step;)I
 PLcom/android/server/vibrator/Step;->compareTo(Ljava/lang/Object;)I
-PLcom/android/server/vibrator/Step;->getVibration()Lcom/android/server/vibrator/HalVibration;
 PLcom/android/server/vibrator/Step;->getVibratorOnDuration()J
 PLcom/android/server/vibrator/Step;->isCleanUp()Z
-PLcom/android/server/vibrator/StepToRampAdapter;-><init>()V
 PLcom/android/server/vibrator/StepToRampAdapter;->adaptToVibrator(Landroid/os/VibratorInfo;Ljava/util/List;I)I
-PLcom/android/server/vibrator/TurnOffVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;)V
+PLcom/android/server/vibrator/TurnOffVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;Z)V
 PLcom/android/server/vibrator/TurnOffVibratorStep;->isCleanUp()Z
-PLcom/android/server/vibrator/TurnOffVibratorStep;->play()Ljava/util/List;
-PLcom/android/server/vibrator/Vibration$CallerInfo;-><init>(Landroid/os/VibrationAttributes;IILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/vibrator/Vibration$DebugInfo;-><init>(Lcom/android/server/vibrator/Vibration$Status;Lcom/android/server/vibrator/VibrationStats;Landroid/os/CombinedVibration;Landroid/os/CombinedVibration;FLcom/android/server/vibrator/Vibration$CallerInfo;)V
-PLcom/android/server/vibrator/Vibration$EndInfo;-><init>(Lcom/android/server/vibrator/Vibration$Status;)V
-PLcom/android/server/vibrator/Vibration$EndInfo;-><init>(Lcom/android/server/vibrator/Vibration$Status;Lcom/android/server/vibrator/Vibration$CallerInfo;)V
-PLcom/android/server/vibrator/Vibration$Status;->$values()[Lcom/android/server/vibrator/Vibration$Status;
-HPLcom/android/server/vibrator/Vibration$Status;-><clinit>()V
-PLcom/android/server/vibrator/Vibration$Status;-><init>(Ljava/lang/String;II)V
-PLcom/android/server/vibrator/Vibration$Status;->getProtoEnumValue()I
-PLcom/android/server/vibrator/Vibration$Status;->values()[Lcom/android/server/vibrator/Vibration$Status;
+HPLcom/android/server/vibrator/TurnOffVibratorStep;->play()Ljava/util/List;
+HPLcom/android/server/vibrator/Vibration$DebugInfoImpl;-><init>(Lcom/android/server/vibrator/VibrationSession$Status;Lcom/android/server/vibrator/VibrationSession$CallerInfo;ILcom/android/server/vibrator/VibrationStats;Landroid/os/CombinedVibration;Landroid/os/CombinedVibration;IF)V
+PLcom/android/server/vibrator/Vibration$DebugInfoImpl;->dumpCompact(Landroid/util/IndentingPrintWriter;)V
+PLcom/android/server/vibrator/Vibration$DebugInfoImpl;->getCallerInfo()Lcom/android/server/vibrator/VibrationSession$CallerInfo;
+PLcom/android/server/vibrator/Vibration$DebugInfoImpl;->getCreateUptimeMillis()J
+PLcom/android/server/vibrator/Vibration$DebugInfoImpl;->getDumpAggregationKey()Ljava/lang/Object;
+PLcom/android/server/vibrator/Vibration$DebugInfoImpl;->getStatus()Lcom/android/server/vibrator/VibrationSession$Status;
+HPLcom/android/server/vibrator/Vibration$DebugInfoImpl;->logMetrics(Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;)V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
+PLcom/android/server/vibrator/Vibration$EndInfo;-><init>(Lcom/android/server/vibrator/VibrationSession$Status;Lcom/android/server/vibrator/VibrationSession$CallerInfo;)V
 PLcom/android/server/vibrator/Vibration;-><clinit>()V
-PLcom/android/server/vibrator/Vibration;-><init>(Landroid/os/IBinder;Lcom/android/server/vibrator/Vibration$CallerInfo;)V
-PLcom/android/server/vibrator/VibrationScaler$ScaleLevel;-><init>(F)V
-PLcom/android/server/vibrator/VibrationScaler;-><init>(Landroid/content/Context;Lcom/android/server/vibrator/VibrationSettings;)V
-PLcom/android/server/vibrator/VibrationScaler;->intensityToEffectStrength(I)I
-PLcom/android/server/vibrator/VibrationScaler;->scale(Landroid/os/VibrationEffect;I)Landroid/os/VibrationEffect;
-PLcom/android/server/vibrator/VibrationSettings$1;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
-PLcom/android/server/vibrator/VibrationSettings$2;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
-PLcom/android/server/vibrator/VibrationSettings$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/vibrator/VibrationSettings$MyUidObserver;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
-PLcom/android/server/vibrator/VibrationSettings$MyUidObserver;->isUidForeground(I)Z
-PLcom/android/server/vibrator/VibrationSettings$MyUidObserver;->onUidGone(IZ)V
-HPLcom/android/server/vibrator/VibrationSettings$MyUidObserver;->onUidStateChanged(IIJI)V
-PLcom/android/server/vibrator/VibrationSettings$SettingsBroadcastReceiver;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
-PLcom/android/server/vibrator/VibrationSettings$SettingsBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/vibrator/Vibration;-><init>(Lcom/android/server/vibrator/VibrationSession$CallerInfo;)V
+HPLcom/android/server/vibrator/Vibration;->end(Lcom/android/server/vibrator/Vibration$EndInfo;)V
+PLcom/android/server/vibrator/VibrationScaler;-><init>(Landroid/os/vibrator/VibrationConfig;Lcom/android/server/vibrator/VibrationSettings;)V
+PLcom/android/server/vibrator/VibrationScaler;->dump(Landroid/util/IndentingPrintWriter;)V
+HPLcom/android/server/vibrator/VibrationScaler;->getAdaptiveHapticsScale(I)F
+PLcom/android/server/vibrator/VibrationScaler;->getEffectStrength(I)I
+PLcom/android/server/vibrator/VibrationScaler;->getScaleLevel(I)I
+PLcom/android/server/vibrator/VibrationScaler;->scaleLevelToScaleFactor(I)F
+PLcom/android/server/vibrator/VibrationScaler;->scaleLevelToString(I)Ljava/lang/String;
+HPLcom/android/server/vibrator/VibrationSession$CallerInfo;-><init>(Landroid/os/VibrationAttributes;IILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/vibrator/VibrationSession$DebugInfo;-><clinit>()V
+PLcom/android/server/vibrator/VibrationSession$DebugInfo;->formatTime(JZ)Ljava/lang/String;
+PLcom/android/server/vibrator/VibrationSession$Status;-><clinit>()V
+PLcom/android/server/vibrator/VibrationSession$Status;-><init>(IILjava/lang/String;)V
+PLcom/android/server/vibrator/VibrationSession$Status;->getProtoEnumValue()I
+PLcom/android/server/vibrator/VibrationSession;-><clinit>()V
+PLcom/android/server/vibrator/VibrationSettings$BatteryBroadcastReceiver;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
+HPLcom/android/server/vibrator/VibrationSettings$BatteryBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/vibrator/VibrationSettings$RingerModeBroadcastReceiver;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
+PLcom/android/server/vibrator/VibrationSettings$RingerModeBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/vibrator/VibrationSettings$SettingsContentObserver;-><init>(Lcom/android/server/vibrator/VibrationSettings;Landroid/os/Handler;)V
-PLcom/android/server/vibrator/VibrationSettings;->-$$Nest$mnotifyListeners(Lcom/android/server/vibrator/VibrationSettings;)V
-PLcom/android/server/vibrator/VibrationSettings;->-$$Nest$mupdateBatteryInfo(Lcom/android/server/vibrator/VibrationSettings;Landroid/content/Intent;)V
-PLcom/android/server/vibrator/VibrationSettings;->-$$Nest$mupdateRingerMode(Lcom/android/server/vibrator/VibrationSettings;)V
+PLcom/android/server/vibrator/VibrationSettings$VibrationLowPowerModeListener;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
+PLcom/android/server/vibrator/VibrationSettings$VibrationUidObserver;-><init>()V
+PLcom/android/server/vibrator/VibrationSettings$VibrationUidObserver;->onUidGone(IZ)V
+HPLcom/android/server/vibrator/VibrationSettings$VibrationUidObserver;->onUidStateChanged(IIJI)V
+PLcom/android/server/vibrator/VibrationSettings$VibrationUserSwitchObserver;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
 PLcom/android/server/vibrator/VibrationSettings;-><clinit>()V
-PLcom/android/server/vibrator/VibrationSettings;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 PLcom/android/server/vibrator/VibrationSettings;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/os/vibrator/VibrationConfig;)V
-PLcom/android/server/vibrator/VibrationSettings;->addListener(Lcom/android/server/vibrator/VibrationSettings$OnVibratorSettingsChanged;)V
-PLcom/android/server/vibrator/VibrationSettings;->createEffectFromResource(I)Landroid/os/VibrationEffect;
+PLcom/android/server/vibrator/VibrationSettings;->addListener(Lcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda2;)V
 PLcom/android/server/vibrator/VibrationSettings;->createEffectFromResource(Landroid/content/res/Resources;I)Landroid/os/VibrationEffect;
-PLcom/android/server/vibrator/VibrationSettings;->createEffectFromTimings([J)Landroid/os/VibrationEffect;
-PLcom/android/server/vibrator/VibrationSettings;->getCurrentIntensity(I)I
-PLcom/android/server/vibrator/VibrationSettings;->getDefaultIntensity(I)I
-PLcom/android/server/vibrator/VibrationSettings;->getLongIntArray(Landroid/content/res/Resources;I)[J
-PLcom/android/server/vibrator/VibrationSettings;->getRampDownDuration()I
-PLcom/android/server/vibrator/VibrationSettings;->getRampStepDuration()I
-PLcom/android/server/vibrator/VibrationSettings;->getRequestVibrationParamsForUsages()[I
-PLcom/android/server/vibrator/VibrationSettings;->loadBooleanSetting(Ljava/lang/String;)Z
-PLcom/android/server/vibrator/VibrationSettings;->loadSystemSetting(Ljava/lang/String;I)I
+PLcom/android/server/vibrator/VibrationSettings;->dump(Landroid/util/IndentingPrintWriter;)V
+HPLcom/android/server/vibrator/VibrationSettings;->getCurrentIntensity(I)I+]Landroid/os/vibrator/VibrationConfig;Landroid/os/vibrator/VibrationConfig;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/vibrator/VibrationSettings;->intensityToString(I)Ljava/lang/String;
+PLcom/android/server/vibrator/VibrationSettings;->loadSystemSetting(IILjava/lang/String;)I
 PLcom/android/server/vibrator/VibrationSettings;->notifyListeners()V
 PLcom/android/server/vibrator/VibrationSettings;->onSystemReady()V
-PLcom/android/server/vibrator/VibrationSettings;->registerSettingsChangeReceiver(Landroid/content/IntentFilter;)V
+PLcom/android/server/vibrator/VibrationSettings;->onSystemReady(Landroid/content/pm/PackageManagerInternal;Landroid/os/PowerManagerInternal;Landroid/app/IActivityManager;Lcom/android/server/companion/virtual/VirtualDeviceManagerInternal;Landroid/media/AudioManager;)V
 PLcom/android/server/vibrator/VibrationSettings;->registerSettingsObserver(Landroid/net/Uri;)V
-PLcom/android/server/vibrator/VibrationSettings;->shouldIgnoreVibration(Lcom/android/server/vibrator/Vibration$CallerInfo;)Lcom/android/server/vibrator/Vibration$Status;
-PLcom/android/server/vibrator/VibrationSettings;->shouldVibrateForRingerModeLocked(I)Z
-PLcom/android/server/vibrator/VibrationSettings;->shouldVibrateForUserSetting(Lcom/android/server/vibrator/Vibration$CallerInfo;)Z
-PLcom/android/server/vibrator/VibrationSettings;->shouldVibrateInputDevices()Z
 PLcom/android/server/vibrator/VibrationSettings;->toIntensity(II)I
-PLcom/android/server/vibrator/VibrationSettings;->toPositiveIntensity(II)I
 PLcom/android/server/vibrator/VibrationSettings;->update()V
-PLcom/android/server/vibrator/VibrationSettings;->updateBatteryInfo(Landroid/content/Intent;)V
 PLcom/android/server/vibrator/VibrationSettings;->updateRingerMode()V
-HPLcom/android/server/vibrator/VibrationSettings;->updateSettings()V
-PLcom/android/server/vibrator/VibrationStats$StatsInfo;-><init>(IIILcom/android/server/vibrator/Vibration$Status;Lcom/android/server/vibrator/VibrationStats;J)V
-PLcom/android/server/vibrator/VibrationStats$StatsInfo;->filteredKeys(Landroid/util/SparseBooleanArray;Z)[I
-PLcom/android/server/vibrator/VibrationStats$StatsInfo;->writeVibrationReported()V
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmCreateUptimeMillis(Lcom/android/server/vibrator/VibrationStats;)J
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmEndUptimeMillis(Lcom/android/server/vibrator/VibrationStats;)J
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmEndedByUid(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmEndedByUsage(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmInterruptedUsage(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmRepeatCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmStartUptimeMillis(Lcom/android/server/vibrator/VibrationStats;)J
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibrationCompositionTotalSize(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibrationPwleTotalSize(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorComposeCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorComposePwleCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorEffectsUsed(Lcom/android/server/vibrator/VibrationStats;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOffCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOnCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOnTotalDurationMillis(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorPerformCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorPrimitivesUsed(Lcom/android/server/vibrator/VibrationStats;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorSetAmplitudeCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorSetExternalControlCount(Lcom/android/server/vibrator/VibrationStats;)I
-PLcom/android/server/vibrator/VibrationStats;-><init>()V
-PLcom/android/server/vibrator/VibrationStats;->getCreateTimeDebug()J
-PLcom/android/server/vibrator/VibrationStats;->getDurationDebug()J
-PLcom/android/server/vibrator/VibrationStats;->getEndTimeDebug()J
-PLcom/android/server/vibrator/VibrationStats;->getStartTimeDebug()J
-PLcom/android/server/vibrator/VibrationStats;->hasEnded()Z
-PLcom/android/server/vibrator/VibrationStats;->hasStarted()Z
-PLcom/android/server/vibrator/VibrationStats;->reportComposePrimitives(J[Landroid/os/vibrator/PrimitiveSegment;)V
-PLcom/android/server/vibrator/VibrationStats;->reportEnded(Lcom/android/server/vibrator/Vibration$CallerInfo;)Z
-PLcom/android/server/vibrator/VibrationStats;->reportStarted()V
-PLcom/android/server/vibrator/VibrationStats;->reportVibratorOff()V
-PLcom/android/server/vibrator/VibrationStepConductor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vibrator/VibrationScaler;)V
-PLcom/android/server/vibrator/VibrationStepConductor$$ExternalSyntheticLambda0;->transform(Landroid/os/VibrationEffect;Ljava/lang/Object;)Landroid/os/VibrationEffect;
+PLcom/android/server/vibrator/VibrationSettings;->updateSettings(I)V
+HPLcom/android/server/vibrator/VibrationStats$StatsInfo;-><init>(IIILcom/android/server/vibrator/VibrationSession$Status;Lcom/android/server/vibrator/VibrationStats;)V
+HPLcom/android/server/vibrator/VibrationStats$StatsInfo;->filteredKeys(Landroid/util/SparseBooleanArray;Z)[I+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;
+HPLcom/android/server/vibrator/VibrationStats;-><init>()V
+HPLcom/android/server/vibrator/VibrationStats;->reportComposePrimitives([Landroid/os/vibrator/PrimitiveSegment;J)V
 PLcom/android/server/vibrator/VibrationStepConductor;-><clinit>()V
-PLcom/android/server/vibrator/VibrationStepConductor;-><init>(Lcom/android/server/vibrator/HalVibration;Lcom/android/server/vibrator/VibrationSettings;Lcom/android/server/vibrator/DeviceAdapter;Lcom/android/server/vibrator/VibrationScaler;Ljava/util/concurrent/CompletableFuture;Lcom/android/server/vibrator/VibrationThread$VibratorManagerHooks;)V
-PLcom/android/server/vibrator/VibrationStepConductor;->calculateVibrationEndInfo()Lcom/android/server/vibrator/Vibration$EndInfo;
-PLcom/android/server/vibrator/VibrationStepConductor;->expectIsVibrationThread(Z)V
-PLcom/android/server/vibrator/VibrationStepConductor;->getVibration()Lcom/android/server/vibrator/HalVibration;
-PLcom/android/server/vibrator/VibrationStepConductor;->getVibrators()Landroid/util/SparseArray;
-PLcom/android/server/vibrator/VibrationStepConductor;->hasPendingNotifySignalLocked()Z
-PLcom/android/server/vibrator/VibrationStepConductor;->isFinished()Z
-PLcom/android/server/vibrator/VibrationStepConductor;->nextVibrateStep(JLcom/android/server/vibrator/VibratorController;Landroid/os/VibrationEffect$Composed;IJ)Lcom/android/server/vibrator/AbstractVibratorStep;
-PLcom/android/server/vibrator/VibrationStepConductor;->notifyVibratorComplete(I)V
-PLcom/android/server/vibrator/VibrationStepConductor;->pollNext()Lcom/android/server/vibrator/Step;
-PLcom/android/server/vibrator/VibrationStepConductor;->prepareToStart()V
-PLcom/android/server/vibrator/VibrationStepConductor;->processAllNotifySignals()V
-PLcom/android/server/vibrator/VibrationStepConductor;->processVibratorsComplete([I)V
-PLcom/android/server/vibrator/VibrationStepConductor;->runNextStep()V
-PLcom/android/server/vibrator/VibrationStepConductor;->toSequential(Landroid/os/CombinedVibration;)Landroid/os/CombinedVibration$Sequential;
-PLcom/android/server/vibrator/VibrationStepConductor;->waitForVibrationParamsIfRequired()V
-PLcom/android/server/vibrator/VibrationStepConductor;->waitUntilNextStepIsDue()Z
-PLcom/android/server/vibrator/VibrationThread;-><init>(Landroid/os/PowerManager$WakeLock;Lcom/android/server/vibrator/VibrationThread$VibratorManagerHooks;)V
-PLcom/android/server/vibrator/VibrationThread;->clientVibrationCompleteIfNotAlready(Lcom/android/server/vibrator/Vibration$EndInfo;)V
-PLcom/android/server/vibrator/VibrationThread;->playVibration()V
-PLcom/android/server/vibrator/VibrationThread;->run()V
-PLcom/android/server/vibrator/VibrationThread;->runCurrentVibrationWithWakeLock()V
-PLcom/android/server/vibrator/VibrationThread;->runCurrentVibrationWithWakeLockAndDeathLink()V
-PLcom/android/server/vibrator/VibrationThread;->runVibrationOnVibrationThread(Lcom/android/server/vibrator/VibrationStepConductor;)Z
-PLcom/android/server/vibrator/VibrationThread;->waitForVibrationRequest()Lcom/android/server/vibrator/VibrationStepConductor;
-PLcom/android/server/vibrator/VibratorControlService;-><init>(Lcom/android/server/vibrator/VibratorControllerHolder;Lcom/android/server/vibrator/VibrationScaler;Lcom/android/server/vibrator/VibrationSettings;Ljava/lang/Object;)V
-PLcom/android/server/vibrator/VibratorControlService;->shouldRequestVibrationParams(I)Z
+HPLcom/android/server/vibrator/VibrationStepConductor;-><init>(Lcom/android/server/vibrator/HalVibration;ZLcom/android/server/vibrator/VibrationSettings;Lcom/android/server/vibrator/DeviceAdapter;Lcom/android/server/vibrator/VibrationScaler;Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;Ljava/util/concurrent/CompletableFuture;Lcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;)V
+HPLcom/android/server/vibrator/VibrationStepConductor;->expectIsVibrationThread(Z)V
+HPLcom/android/server/vibrator/VibrationStepConductor;->isFinished()Z+]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;]Ljava/util/Queue;Ljava/util/LinkedList;
+HPLcom/android/server/vibrator/VibrationStepConductor;->nextVibrateStep(JLcom/android/server/vibrator/VibratorController;Landroid/os/VibrationEffect$Composed;IJ)Lcom/android/server/vibrator/AbstractVibratorStep;+]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/vibrator/VibrationStepConductor;->notifyCancelled(Lcom/android/server/vibrator/Vibration$EndInfo;Z)V
+HPLcom/android/server/vibrator/VibrationStepConductor;->pollNext()Lcom/android/server/vibrator/Step;+]Ljava/util/LinkedList;Ljava/util/LinkedList;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;]Ljava/util/Queue;Ljava/util/LinkedList;
+HPLcom/android/server/vibrator/VibrationStepConductor;->prepareToStart()Z
+HPLcom/android/server/vibrator/VibrationStepConductor;->runNextStep()V+]Lcom/android/server/vibrator/Step;megamorphic_types]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Arrays$ArrayList;,Ljava/util/ImmutableCollections$List12;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;
+HPLcom/android/server/vibrator/VibrationStepConductor;->waitUntilNextStepIsDue()Z+]Landroid/util/IntArray;Landroid/util/IntArray;]Lcom/android/server/vibrator/Step;megamorphic_types]Ljava/util/Iterator;Ljava/util/PriorityQueue$Itr;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Ljava/util/PriorityQueue;Ljava/util/PriorityQueue;]Ljava/util/Queue;Ljava/util/LinkedList;
+PLcom/android/server/vibrator/VibrationThread;-><init>(Landroid/os/PowerManager$WakeLock;Lcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;)V
+HPLcom/android/server/vibrator/VibrationThread;->clientVibrationCompleteIfNotAlready(Lcom/android/server/vibrator/Vibration$EndInfo;)V
+HPLcom/android/server/vibrator/VibrationThread;->playVibration()V
+HPLcom/android/server/vibrator/VibrationThread;->run()V
+HPLcom/android/server/vibrator/VibrationThread;->runVibrationOnVibrationThread(Lcom/android/server/vibrator/VibrationStepConductor;)Z
+PLcom/android/server/vibrator/VibrationThread;->waitForThreadIdle(J)V
+PLcom/android/server/vibrator/VibratorControlService;-><clinit>()V
+PLcom/android/server/vibrator/VibratorControlService;-><init>(Landroid/content/Context;Lcom/android/server/vibrator/VibratorControllerHolder;Lcom/android/server/vibrator/VibrationScaler;Lcom/android/server/vibrator/VibrationSettings;Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;Ljava/lang/Object;)V
 PLcom/android/server/vibrator/VibratorController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vibrator/VibratorController;Z)V
 PLcom/android/server/vibrator/VibratorController$NativeWrapper;-><init>()V
 PLcom/android/server/vibrator/VibratorController$NativeWrapper;->compose([Landroid/os/vibrator/PrimitiveSegment;J)J
 PLcom/android/server/vibrator/VibratorController$NativeWrapper;->getInfo(Landroid/os/VibratorInfo$Builder;)Z
 PLcom/android/server/vibrator/VibratorController$NativeWrapper;->init(ILcom/android/server/vibrator/VibratorController$OnVibrationCompleteListener;)V
 PLcom/android/server/vibrator/VibratorController$NativeWrapper;->off()V
-PLcom/android/server/vibrator/VibratorController;-><init>(ILcom/android/server/vibrator/VibratorController$OnVibrationCompleteListener;)V
+PLcom/android/server/vibrator/VibratorController$NativeWrapper;->on(JJ)J
+PLcom/android/server/vibrator/VibratorController$NativeWrapper;->perform(JJJ)J
+PLcom/android/server/vibrator/VibratorController$NativeWrapper;->setAmplitude(F)V
+PLcom/android/server/vibrator/VibratorController$NativeWrapper;->setExternalControl(Z)V
+PLcom/android/server/vibrator/VibratorController$VibratorState;-><clinit>()V
 PLcom/android/server/vibrator/VibratorController;-><init>(ILcom/android/server/vibrator/VibratorController$OnVibrationCompleteListener;Lcom/android/server/vibrator/VibratorController$NativeWrapper;)V
-PLcom/android/server/vibrator/VibratorController;->getCurrentAmplitude()F
-PLcom/android/server/vibrator/VibratorController;->getVibratorInfo()Landroid/os/VibratorInfo;
-PLcom/android/server/vibrator/VibratorController;->isVibratorInfoLoadSuccessful()Z
-PLcom/android/server/vibrator/VibratorController;->notifyListenerOnVibrating(Z)V
-PLcom/android/server/vibrator/VibratorController;->off()V
-PLcom/android/server/vibrator/VibratorController;->on([Landroid/os/vibrator/PrimitiveSegment;J)J
+PLcom/android/server/vibrator/VibratorController;->dump(Landroid/util/IndentingPrintWriter;)V
+HPLcom/android/server/vibrator/VibratorController;->off()V
+PLcom/android/server/vibrator/VibratorController;->on(Landroid/os/vibrator/PrebakedSegment;J)J
+HPLcom/android/server/vibrator/VibratorController;->on([Landroid/os/vibrator/PrimitiveSegment;J)J
 PLcom/android/server/vibrator/VibratorController;->reloadVibratorInfoIfNeeded()V
-PLcom/android/server/vibrator/VibratorController;->reset()V
 PLcom/android/server/vibrator/VibratorController;->setExternalControl(Z)V
-PLcom/android/server/vibrator/VibratorControllerHolder;-><init>()V
-PLcom/android/server/vibrator/VibratorControllerHolder;->getVibratorController()Landroid/frameworks/vibrator/IVibratorController;
+HPLcom/android/server/vibrator/VibratorController;->updateStateAndNotifyListenersLocked(Lcom/android/server/vibrator/VibratorController$VibratorState;)V
 PLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda1;-><init>(IJ)V
 PLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda2;-><init>(I)V
 PLcom/android/server/vibrator/VibratorFrameworkStatsLogger$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->$r8$lambda$3clAp4KeKtl_6LJMNjTyvIQT3s8(IJ)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->$r8$lambda$6sCMCxdISmdoENm6LJ5XtEdSNaY(Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->$r8$lambda$e1LVOLtWrkBnktoOi9j1ZkWqiNw(I)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;-><init>(Landroid/os/Handler;)V
+PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;-><clinit>()V
 PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;-><init>(Landroid/os/Handler;II)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->lambda$new$0()V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->lambda$writeVibratorStateOffAsync$2(I)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->lambda$writeVibratorStateOnAsync$1(IJ)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->writeVibrationReportedAsync(Lcom/android/server/vibrator/VibrationStats$StatsInfo;)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->writeVibrationReportedFromQueue()V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->writeVibratorStateOffAsync(I)V
-PLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->writeVibratorStateOnAsync(IJ)V
-PLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
-PLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda1;->onChange()V
+HPLcom/android/server/vibrator/VibratorFrameworkStatsLogger;->logVibrationSizeOfVendorEffects(ILandroid/os/CombinedVibration;)Z
+PLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V
+PLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;
+PLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
+PLcom/android/server/vibrator/VibratorManagerService$1$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/vibrator/VibratorManagerService;I)V
+HPLcom/android/server/vibrator/VibratorManagerService$1$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z+]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Lcom/android/server/vibrator/VibrationSession;Lcom/android/server/vibrator/SingleVibrationSession;
 PLcom/android/server/vibrator/VibratorManagerService$1;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
-PLcom/android/server/vibrator/VibratorManagerService$2;-><clinit>()V
-PLcom/android/server/vibrator/VibratorManagerService$AggregatedVibrationRecord;-><init>(Lcom/android/server/vibrator/Vibration$DebugInfo;)V
+PLcom/android/server/vibrator/VibratorManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/vibrator/VibratorManagerService$2;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
+PLcom/android/server/vibrator/VibratorManagerService$2;->onOpChanged(ILjava/lang/String;)V
+PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationCallbacks;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
 PLcom/android/server/vibrator/VibratorManagerService$ExternalVibratorService;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
 PLcom/android/server/vibrator/VibratorManagerService$Injector;-><init>()V
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->createHandler(Landroid/os/Looper;)Landroid/os/Handler;
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->createVibratorController(ILcom/android/server/vibrator/VibratorController$OnVibrationCompleteListener;)Lcom/android/server/vibrator/VibratorController;
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->createVibratorControllerHolder()Lcom/android/server/vibrator/VibratorControllerHolder;
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->getBatteryStatsService()Lcom/android/internal/app/IBatteryStats;
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->getFrameworkStatsLogger(Landroid/os/Handler;)Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;
-PLcom/android/server/vibrator/VibratorManagerService$Injector;->getNativeWrapper()Lcom/android/server/vibrator/VibratorManagerService$NativeWrapper;
 PLcom/android/server/vibrator/VibratorManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/vibrator/VibratorManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/vibrator/VibratorManagerService$Lifecycle;->onStart()V
 PLcom/android/server/vibrator/VibratorManagerService$NativeWrapper;-><init>()V
 PLcom/android/server/vibrator/VibratorManagerService$NativeWrapper;->cancelSynced()V
-PLcom/android/server/vibrator/VibratorManagerService$NativeWrapper;->getCapabilities()J
-PLcom/android/server/vibrator/VibratorManagerService$NativeWrapper;->getVibratorIds()[I
+PLcom/android/server/vibrator/VibratorManagerService$NativeWrapper;->clearSessions()V
 PLcom/android/server/vibrator/VibratorManagerService$NativeWrapper;->init(Lcom/android/server/vibrator/VibratorManagerService$VibratorManagerNativeCallbacks;)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationCompleteListener;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
+PLcom/android/server/vibrator/VibratorManagerService$VendorVibrationSessionCallbacks;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
 PLcom/android/server/vibrator/VibratorManagerService$VibrationCompleteListener;->onComplete(IJ)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationRecords;-><init>(II)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationRecords;->record(Lcom/android/server/vibrator/Vibration$DebugInfo;)Lcom/android/server/vibrator/VibratorManagerService$AggregatedVibrationRecord;
+PLcom/android/server/vibrator/VibratorManagerService$VibrationRecord;-><init>(Lcom/android/server/vibrator/VibrationSession$DebugInfo;)V
+PLcom/android/server/vibrator/VibratorManagerService$VibrationRecord;->dump(Landroid/util/IndentingPrintWriter;)V
+HPLcom/android/server/vibrator/VibratorManagerService$VibrationRecord;->getCreateUptimeMs()J
+HPLcom/android/server/vibrator/VibratorManagerService$VibrationRecord;->getGroupKey()I+]Lcom/android/server/vibrator/VibrationSession$DebugInfo;Lcom/android/server/vibrator/Vibration$DebugInfoImpl;
+HPLcom/android/server/vibrator/VibratorManagerService$VibrationRecord;->mayAggregate(Lcom/android/server/vibrator/GroupedAggregatedLogRecords$SingleLogRecord;)Z
+PLcom/android/server/vibrator/VibratorManagerService$VibrationRecords;->dumpGroupHeader(Landroid/util/IndentingPrintWriter;I)V
 PLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;-><init>(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks-IA;)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;->noteVibratorOff(I)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;->noteVibratorOn(IJ)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;->onVibrationCompleted(JLcom/android/server/vibrator/Vibration$EndInfo;)V
-PLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;->onVibrationThreadReleased(J)V
+HPLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;->noteVibratorOff(I)V
+HPLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;->noteVibratorOn(IJ)V
 PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;-><init>(III)V
-PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;->record(Lcom/android/server/vibrator/HalVibration;)V
-PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;->record(Lcom/android/server/vibrator/Vibration$DebugInfo;)V
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmBatteryStatsService(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/internal/app/IBatteryStats;
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmCurrentVibration(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibrationStepConductor;
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmFrameworkStatsLogger(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibratorFrameworkStatsLogger;
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmLock(Lcom/android/server/vibrator/VibratorManagerService;)Ljava/lang/Object;
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmNextVibration(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibrationStepConductor;
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fputmCurrentVibration(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibrationStepConductor;)V
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$monVibrationComplete(Lcom/android/server/vibrator/VibratorManagerService;IJ)V
-PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mreportFinishedVibrationLocked(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/Vibration$EndInfo;)V
+PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand$CommonOptions;-><init>(Lcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;)V
+PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;-><init>(Lcom/android/server/vibrator/VibratorManagerService;Landroid/os/IBinder;)V
+PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;->nextEffect()Landroid/os/VibrationEffect;
+PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;->onCommand(Ljava/lang/String;)I
+PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;->runVibrate(Lcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand$CommonOptions;Landroid/os/CombinedVibration;)V
+PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mclearCurrentSessionLocked(Lcom/android/server/vibrator/VibratorManagerService;)V
+HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mmaybeClearCurrentAndNextSessionsLocked(Lcom/android/server/vibrator/VibratorManagerService;Ljava/util/function/Predicate;Lcom/android/server/vibrator/VibrationSession$Status;)V
+PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mmaybeStartNextSessionLocked(Lcom/android/server/vibrator/VibratorManagerService;)V
 PLcom/android/server/vibrator/VibratorManagerService;-><clinit>()V
-HPLcom/android/server/vibrator/VibratorManagerService;-><init>(Landroid/content/Context;Lcom/android/server/vibrator/VibratorManagerService$Injector;)V
-PLcom/android/server/vibrator/VibratorManagerService;->checkAppOpModeLocked(Lcom/android/server/vibrator/Vibration$CallerInfo;)I
-PLcom/android/server/vibrator/VibratorManagerService;->createVibrationStepConductor(Lcom/android/server/vibrator/HalVibration;)Lcom/android/server/vibrator/VibrationStepConductor;
-PLcom/android/server/vibrator/VibratorManagerService;->endVibrationLocked(Lcom/android/server/vibrator/HalVibration;Lcom/android/server/vibrator/Vibration$EndInfo;Z)V
+PLcom/android/server/vibrator/VibratorManagerService;-><init>(Landroid/content/Context;Lcom/android/server/vibrator/VibratorManagerService$Injector;)V
+PLcom/android/server/vibrator/VibratorManagerService;->cancelVibrate(ILandroid/os/IBinder;)V
+HPLcom/android/server/vibrator/VibratorManagerService;->checkAppOpModeLocked(Lcom/android/server/vibrator/VibrationSession$CallerInfo;)I
+PLcom/android/server/vibrator/VibratorManagerService;->clearNextSessionLocked(Lcom/android/server/vibrator/VibrationSession$Status;Lcom/android/server/vibrator/VibrationSession$CallerInfo;)V
+HPLcom/android/server/vibrator/VibratorManagerService;->createVibrationStepConductor(Lcom/android/server/vibrator/HalVibration;Lcom/android/server/vibrator/DeviceAdapter;Z)Lcom/android/server/vibrator/VibrationStepConductor;
+PLcom/android/server/vibrator/VibratorManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/vibrator/VibratorManagerService;->dumpText(Ljava/io/PrintWriter;)V
+PLcom/android/server/vibrator/VibratorManagerService;->endSessionLocked(Lcom/android/server/vibrator/VibrationSession;Lcom/android/server/vibrator/VibrationSession$Status;Lcom/android/server/vibrator/VibrationSession$CallerInfo;)V
 PLcom/android/server/vibrator/VibratorManagerService;->enforceUpdateAppOpsStatsPermission(I)V
-PLcom/android/server/vibrator/VibratorManagerService;->fillVibrationFallbacks(Lcom/android/server/vibrator/HalVibration;Landroid/os/CombinedVibration;)V
-PLcom/android/server/vibrator/VibratorManagerService;->fillVibrationFallbacks(Lcom/android/server/vibrator/HalVibration;Landroid/os/VibrationEffect;)V
-PLcom/android/server/vibrator/VibratorManagerService;->finishAppOpModeLocked(Lcom/android/server/vibrator/Vibration$CallerInfo;)V
-PLcom/android/server/vibrator/VibratorManagerService;->fixupAppOpModeLocked(ILandroid/os/VibrationAttributes;)I
 PLcom/android/server/vibrator/VibratorManagerService;->fixupVibrationAttributes(Landroid/os/VibrationAttributes;Landroid/os/CombinedVibration;)Landroid/os/VibrationAttributes;
+PLcom/android/server/vibrator/VibratorManagerService;->getHapticVibrationProvider()Lcom/android/server/vibrator/HapticFeedbackVibrationProvider;
+HPLcom/android/server/vibrator/VibratorManagerService;->getVibrationImportance(Lcom/android/server/vibrator/VibrationSession;)I
 PLcom/android/server/vibrator/VibratorManagerService;->getVibratorIds()[I
 PLcom/android/server/vibrator/VibratorManagerService;->getVibratorInfo(I)Landroid/os/VibratorInfo;
-PLcom/android/server/vibrator/VibratorManagerService;->isEffectValid(Landroid/os/CombinedVibration;)Z
-PLcom/android/server/vibrator/VibratorManagerService;->logVibrationStatus(ILandroid/os/VibrationAttributes;Lcom/android/server/vibrator/Vibration$Status;)V
-PLcom/android/server/vibrator/VibratorManagerService;->onVibrationComplete(IJ)V
-PLcom/android/server/vibrator/VibratorManagerService;->reportFinishedVibrationLocked(Lcom/android/server/vibrator/Vibration$EndInfo;)V
-PLcom/android/server/vibrator/VibratorManagerService;->shouldIgnoreVibrationForOngoingLocked(Lcom/android/server/vibrator/Vibration;)Lcom/android/server/vibrator/Vibration$EndInfo;
-PLcom/android/server/vibrator/VibratorManagerService;->shouldIgnoreVibrationLocked(Lcom/android/server/vibrator/Vibration$CallerInfo;)Lcom/android/server/vibrator/Vibration$EndInfo;
-PLcom/android/server/vibrator/VibratorManagerService;->startAppOpModeLocked(Lcom/android/server/vibrator/Vibration$CallerInfo;)I
-PLcom/android/server/vibrator/VibratorManagerService;->startVibrationLocked(Lcom/android/server/vibrator/HalVibration;)Lcom/android/server/vibrator/Vibration$EndInfo;
-PLcom/android/server/vibrator/VibratorManagerService;->startVibrationOnThreadLocked(Lcom/android/server/vibrator/VibrationStepConductor;)Lcom/android/server/vibrator/Vibration$EndInfo;
+PLcom/android/server/vibrator/VibratorManagerService;->hasPermission(Ljava/lang/String;)Z
+HPLcom/android/server/vibrator/VibratorManagerService;->isEffectValid(Landroid/os/CombinedVibration;)Z
+HPLcom/android/server/vibrator/VibratorManagerService;->logAndRecordVibration(Lcom/android/server/vibrator/VibrationSession$DebugInfo;)V
+PLcom/android/server/vibrator/VibratorManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
+HPLcom/android/server/vibrator/VibratorManagerService;->performHapticFeedback(IILjava/lang/String;ILjava/lang/String;II)V
+PLcom/android/server/vibrator/VibratorManagerService;->performHapticFeedbackForInputDevice(IILjava/lang/String;IIILjava/lang/String;II)V
+PLcom/android/server/vibrator/VibratorManagerService;->performHapticFeedbackForInputDeviceInternal(IILjava/lang/String;IIILjava/lang/String;Landroid/os/IBinder;II)Lcom/android/server/vibrator/HalVibration;
+HPLcom/android/server/vibrator/VibratorManagerService;->performHapticFeedbackInternal(IILjava/lang/String;ILjava/lang/String;Landroid/os/IBinder;II)Lcom/android/server/vibrator/HalVibration;
+PLcom/android/server/vibrator/VibratorManagerService;->performHapticFeedbackWithEffect(IILjava/lang/String;ILjava/lang/String;Landroid/os/IBinder;Landroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)Lcom/android/server/vibrator/HalVibration;
+PLcom/android/server/vibrator/VibratorManagerService;->shouldCancelSession(Lcom/android/server/vibrator/VibrationSession;ILandroid/os/IBinder;)Z
+HPLcom/android/server/vibrator/VibratorManagerService;->shouldIgnoreForOngoing(Lcom/android/server/vibrator/VibrationSession;Lcom/android/server/vibrator/VibrationSession;)Lcom/android/server/vibrator/Vibration$EndInfo;
+HPLcom/android/server/vibrator/VibratorManagerService;->shouldIgnoreForOngoingLocked(Lcom/android/server/vibrator/VibrationSession;)Lcom/android/server/vibrator/Vibration$EndInfo;
+PLcom/android/server/vibrator/VibratorManagerService;->shouldIgnoreHapticFeedback(ILjava/lang/String;Lcom/android/server/vibrator/HapticFeedbackVibrationProvider;)Lcom/android/server/vibrator/VibrationSession$Status;
+HPLcom/android/server/vibrator/VibratorManagerService;->shouldIgnoreVibrationLocked(Lcom/android/server/vibrator/VibrationSession$CallerInfo;)Lcom/android/server/vibrator/VibrationSession$Status;+]Landroid/os/vibrator/VibrationConfig;Landroid/os/vibrator/VibrationConfig;]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/vibrator/VibratorManagerService;->shouldPipelineVibrationLocked(Lcom/android/server/vibrator/VibrationSession;Lcom/android/server/vibrator/HalVibration;)Z
+HPLcom/android/server/vibrator/VibratorManagerService;->startVibrationLocked(Lcom/android/server/vibrator/SingleVibrationSession;)Lcom/android/server/vibrator/VibrationSession$Status;
+HPLcom/android/server/vibrator/VibratorManagerService;->startVibrationOnThreadLocked(Lcom/android/server/vibrator/SingleVibrationSession;)Lcom/android/server/vibrator/VibrationSession$Status;
 PLcom/android/server/vibrator/VibratorManagerService;->systemReady()V
+PLcom/android/server/vibrator/VibratorManagerService;->transformAllVibratorsLocked(Ljava/util/function/Function;)Landroid/util/SparseArray;
 PLcom/android/server/vibrator/VibratorManagerService;->updateServiceState()V
 PLcom/android/server/vibrator/VibratorManagerService;->vibrate(IILjava/lang/String;Landroid/os/CombinedVibration;Landroid/os/VibrationAttributes;Ljava/lang/String;Landroid/os/IBinder;)V
-PLcom/android/server/vibrator/VibratorManagerService;->vibrateInternal(IILjava/lang/String;Landroid/os/CombinedVibration;Landroid/os/VibrationAttributes;Ljava/lang/String;Landroid/os/IBinder;)Lcom/android/server/vibrator/HalVibration;
+HPLcom/android/server/vibrator/VibratorManagerService;->vibrateInternal(IILjava/lang/String;Landroid/os/CombinedVibration;Landroid/os/VibrationAttributes;Ljava/lang/String;Landroid/os/IBinder;)Lcom/android/server/vibrator/HalVibration;+]Landroid/os/CombinedVibration;Landroid/os/CombinedVibration$Mono;]Lcom/android/server/vibrator/VibrationSession;Lcom/android/server/vibrator/SingleVibrationSession;
 PLcom/android/server/vibrator/VibratorManagerService;->vibrateWithPermissionCheck(IILjava/lang/String;Landroid/os/CombinedVibration;Landroid/os/VibrationAttributes;Ljava/lang/String;Landroid/os/IBinder;)Lcom/android/server/vibrator/HalVibration;
-PLcom/android/server/voiceinteraction/DatabaseHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/voiceinteraction/RecognitionServiceInfo;->getAvailableServices(Landroid/content/Context;I)Ljava/util/List;
+PLcom/android/server/voiceinteraction/DatabaseHelper;->deleteKeyphraseSoundModel(IILjava/lang/String;)Z
+PLcom/android/server/voiceinteraction/DatabaseHelper;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(IILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+PLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(ILjava/lang/String;Ljava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+PLcom/android/server/voiceinteraction/DatabaseHelper;->getValidKeyphraseSoundModelForUser(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+PLcom/android/server/voiceinteraction/DatabaseHelper;->updateKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)Z
+PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;-><init>(Landroid/content/Context;Lcom/android/internal/app/IHotwordRecognitionStatusCallback;Lcom/android/server/voiceinteraction/HotwordDetectionConnection;Landroid/media/permission/Identity;)V
+PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
+PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onRecognitionPaused()V
+PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onRecognitionResumed()V
+PLcom/android/server/voiceinteraction/HotwordMetricsLogger;->writeKeyphraseTriggerEvent(III)V
+PLcom/android/server/voiceinteraction/RecognitionServiceInfo;-><init>(Landroid/content/pm/ServiceInfo;ZLjava/lang/String;)V
+PLcom/android/server/voiceinteraction/RecognitionServiceInfo;->parseInfo(Landroid/content/pm/PackageManager;Landroid/content/pm/ServiceInfo;)Lcom/android/server/voiceinteraction/RecognitionServiceInfo;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$2;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$2;->notifyActivityDestroyed(Landroid/os/IBinder;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->asBinder()Landroid/os/IBinder;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onVoiceSessionHidden()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onVoiceSessionShown()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onVoiceSessionWindowVisibilityChanged(Z)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda1;-><init>(Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda3;-><init>(ILandroid/os/IBinder;Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda3;->runOrThrow()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda6;-><init>(ILandroid/os/IBinder;Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda6;->runOrThrow()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;->onPackageModified(Ljava/lang/String;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;->onSomePackagesChanged()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$RoleObserver;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Ljava/util/concurrent/Executor;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SettingsObserver;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Landroid/os/Handler;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->-$$Nest$mqueryInteractorServices(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->-$$Nest$munloadKeyphraseModel(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;I)I
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService$SessionImpl;Landroid/media/permission/Identity;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->detach()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->getDspModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->startRecognition(ILjava/lang/String;Lcom/android/internal/app/IHotwordRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;Z)I
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->stopRecognition(ILcom/android/internal/app/IHotwordRecognitionStatusCallback;)I
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->findAvailRecognizer(Ljava/lang/String;I)Landroid/content/ComponentName;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->createSoundTriggerSessionAsOriginator(Landroid/media/permission/Identity;Landroid/os/IBinder;Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;)Lcom/android/internal/app/IVoiceInteractionSoundTriggerSession;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->deleteKeyphraseSoundModel(ILjava/lang/String;)I
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->deliverNewSession(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->destroyDetector(Landroid/os/IBinder;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceCallerAllowedToEnrollVoiceModel()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceCallingPermission(Ljava/lang/String;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceIsCurrentVoiceInteractionService()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getActiveServiceComponentName()Landroid/content/ComponentName;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getCurInteractor(I)Landroid/content/ComponentName;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getCurRecognizer(I)Landroid/content/ComponentName;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getDefaultRecognizer()Ljava/lang/String;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getForceVoiceInteractionServicePackage(Landroid/content/res/Resources;)Ljava/lang/String;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getEnrolledKeyphraseMetadata(Ljava/lang/String;Ljava/lang/String;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getKeyphraseSoundModel(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->hideSessionFromSession(Landroid/os/IBinder;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUser(I)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUserNoTracing(I)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initRecognizer(I)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->notifyActivityEventChanged(Landroid/os/IBinder;I)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->listModuleProperties(Landroid/media/permission/Identity;)Ljava/util/List;
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->notifyActivityEventChanged(Landroid/os/IBinder;I)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->queryInteractorServices(ILjava/lang/String;)Ljava/util/List;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setCurInteractor(Landroid/content/ComponentName;I)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setCurrentUserLocked(I)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setImplLocked(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->shouldEnableService(Landroid/content/Context;)Z
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeeded(Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setSessionWindowVisible(Landroid/os/IBinder;Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionForActiveService(Landroid/os/Bundle;ILjava/lang/String;Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededLocked(Z)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededNoTracingLocked(Z)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->systemRunning(Z)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->unloadAllKeyphraseModels()V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->-$$Nest$fgetmServiceStub(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->-$$Nest$fgetmVoiceInteractionSessionListeners(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->-$$Nest$misUserSupported(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;Landroid/content/pm/UserInfo;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->updateKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)I
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isUserSupported(Landroid/content/pm/UserInfo;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isUserSupported(Lcom/android/server/SystemService$TargetUser;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onBootPhase(I)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onStart()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
-PLcom/android/server/wallpaper/LocalColorRepository;-><init>()V
-PLcom/android/server/wallpaper/LocalColorRepository;->getAreasByDisplayId(I)Ljava/util/List;
-PLcom/android/server/wallpaper/WallpaperCropper;-><clinit>()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$2;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$2;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$AccessibilitySettingsContentObserver;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;-><clinit>()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;ILandroid/content/ComponentName;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->deliverNewSessionLocked(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->dumpLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->finishLocked(Landroid/os/IBinder;Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->notifySoundModelsChangedLocked()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->showSessionLocked(Landroid/os/Bundle;ILjava/lang/String;Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$1;->onShown()V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$PowerBoostSetter;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;Ljava/time/Instant;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$PowerBoostSetter;->run()V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;-><clinit>()V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;-><init>(Ljava/lang/Object;Landroid/content/ComponentName;ILandroid/content/Context;Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;ILandroid/os/Handler;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->canHandleReceivedAssistDataLocked()Z
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->cancelLocked(Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->getUserDisabledShowContextLocked()I
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->hideLocked()Z
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistDataReceivedLocked(IILandroid/os/Bundle;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistScreenshotReceivedLocked(Landroid/graphics/Bitmap;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/wallpaper/WallpaperCropper;-><init>(Lcom/android/server/wallpaper/WallpaperDisplayHelper;)V
-PLcom/android/server/wallpaper/WallpaperData$BindSource;->$values()[Lcom/android/server/wallpaper/WallpaperData$BindSource;
 PLcom/android/server/wallpaper/WallpaperData$BindSource;-><clinit>()V
-PLcom/android/server/wallpaper/WallpaperData$BindSource;-><init>(Ljava/lang/String;I)V
 PLcom/android/server/wallpaper/WallpaperData$BindSource;->values()[Lcom/android/server/wallpaper/WallpaperData$BindSource;
-HPLcom/android/server/wallpaper/WallpaperData;-><init>(II)V
+PLcom/android/server/wallpaper/WallpaperData;-><init>(II)V
 PLcom/android/server/wallpaper/WallpaperData;-><init>(Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperData;->cropExists()Z
+PLcom/android/server/wallpaper/WallpaperData;->getComponent()Landroid/content/ComponentName;
 PLcom/android/server/wallpaper/WallpaperData;->getCropFile()Ljava/io/File;
-PLcom/android/server/wallpaper/WallpaperData;->getFile(Landroid/util/SparseArray;Ljava/lang/String;)Ljava/io/File;
 PLcom/android/server/wallpaper/WallpaperData;->getWallpaperFile()Ljava/io/File;
-PLcom/android/server/wallpaper/WallpaperData;->sourceExists()Z
-PLcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult;-><init>(Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;Z)V
-PLcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult;-><init>(Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;ZLcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult-IA;)V
-PLcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult;->getLockWallpaperData()Lcom/android/server/wallpaper/WallpaperData;
-PLcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult;->getSystemWallpaperData()Lcom/android/server/wallpaper/WallpaperData;
-PLcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult;->success()Z
-PLcom/android/server/wallpaper/WallpaperDataParser;-><clinit>()V
+PLcom/android/server/wallpaper/WallpaperData;->setDescription(Landroid/app/wallpaper/WallpaperDescription;)V
 PLcom/android/server/wallpaper/WallpaperDataParser;-><init>(Landroid/content/Context;Lcom/android/server/wallpaper/WallpaperDisplayHelper;Lcom/android/server/wallpaper/WallpaperCropper;)V
-PLcom/android/server/wallpaper/WallpaperDataParser;->ensureSaneWallpaperData(Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperDataParser;->getAttributeFloat(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;F)F
-PLcom/android/server/wallpaper/WallpaperDataParser;->getAttributeInt(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;I)I
-PLcom/android/server/wallpaper/WallpaperDataParser;->getAttributeString(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/wallpaper/WallpaperDataParser;->loadSettingsLocked(IZZI)Lcom/android/server/wallpaper/WallpaperDataParser$WallpaperLoadingResult;
+PLcom/android/server/wallpaper/WallpaperDataParser;->loadSettingsFromSerializer(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wallpaper/WallpaperData;IZZZLcom/android/server/wallpaper/WallpaperDisplayHelper$DisplayData;)Lcom/android/server/wallpaper/WallpaperData;
 PLcom/android/server/wallpaper/WallpaperDataParser;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile;
-PLcom/android/server/wallpaper/WallpaperDataParser;->migrateFromOld()V
-HPLcom/android/server/wallpaper/WallpaperDataParser;->parseWallpaperAttributes(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wallpaper/WallpaperData;Z)V
-PLcom/android/server/wallpaper/WallpaperDataParser;->saveSettingsLocked(ILcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;)V
-HPLcom/android/server/wallpaper/WallpaperDataParser;->writeWallpaperAttributes(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperDataParser;->parseComponentName(Lcom/android/modules/utils/TypedXmlPullParser;)Landroid/content/ComponentName;
+PLcom/android/server/wallpaper/WallpaperDataParser;->parseWallpaperAttributes(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wallpaper/WallpaperData;Z)V
+PLcom/android/server/wallpaper/WallpaperDataParser;->saveSettingsToSerializer(Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperDataParser;->writeWallpaperAttributes(Lcom/android/modules/utils/TypedXmlSerializer;Ljava/lang/String;Lcom/android/server/wallpaper/WallpaperData;)V
 PLcom/android/server/wallpaper/WallpaperDisplayHelper$DisplayData;-><init>(I)V
-PLcom/android/server/wallpaper/WallpaperDisplayHelper;-><clinit>()V
 PLcom/android/server/wallpaper/WallpaperDisplayHelper;-><init>(Landroid/hardware/display/DisplayManager;Landroid/view/WindowManager;Lcom/android/server/wm/WindowManagerInternal;Z)V
-PLcom/android/server/wallpaper/WallpaperDisplayHelper;->ensureSaneWallpaperDisplaySize(Lcom/android/server/wallpaper/WallpaperDisplayHelper$DisplayData;I)V
 PLcom/android/server/wallpaper/WallpaperDisplayHelper;->getDisplayDataOrCreate(I)Lcom/android/server/wallpaper/WallpaperDisplayHelper$DisplayData;
-PLcom/android/server/wallpaper/WallpaperDisplayHelper;->getDisplays()[Landroid/view/Display;
 PLcom/android/server/wallpaper/WallpaperDisplayHelper;->getMaximumSizeDimension(I)I
 PLcom/android/server/wallpaper/WallpaperDisplayHelper;->isUsableDisplay(Landroid/view/Display;I)Z
-PLcom/android/server/wallpaper/WallpaperManagerInternal;-><init>()V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Ljava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda13;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wallpaper/WallpaperCropper;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda6;-><init>(I)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Ljava/lang/String;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda12;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wallpaper/WallpaperCropper;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda5;-><init>(I)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda6;->run()V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda7;->run()V
-PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda8;-><init>(IILandroid/os/Bundle;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda7;-><init>(Landroid/os/Bundle;III)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda8;-><init>(I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$1;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$1;->onDisplayChanged(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$3;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$4;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$3;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$5;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;->connectLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;->disconnectLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;->ensureStatusHandled()V
 PLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onStart()V
 PLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$LocalService;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$LocalService;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$LocalService-IA;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$LocalService;->onScreenTurnedOn(I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$LocalService;->onScreenTurningOn(I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->doPackagesChangedLocked(ZLcom/android/server/wallpaper/WallpaperData;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->-$$Nest$mappendConnectorWithCondition(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Ljava/util/function/Predicate;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
+PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageUpdateStarted(Ljava/lang/String;I)V
+PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onSomePackagesChanged()V
+PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;I)V
+PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Landroid/app/WallpaperInfo;Lcom/android/server/wallpaper/WallpaperData;I)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->appendConnectorWithCondition(Ljava/util/function/Predicate;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->attachEngine(Landroid/service/wallpaper/IWallpaperEngine;I)V
@@ -25134,210 +20097,149 @@
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->engineShown(Landroid/service/wallpaper/IWallpaperEngine;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->forEachDisplayConnector(Ljava/util/function/Consumer;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->getDisplayConnectorOrCreate(I)Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->initDisplayState()V
-HPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/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$WallpaperDestinationChangeHandler;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperDestinationChangeHandler;->complete()V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->dataForEvent(Z)Lcom/android/server/wallpaper/WallpaperData;
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->onEvent(ILjava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->updateWallpapers(ILjava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$5ErvDQXwaddOkf73QSp6u6kkQ9Y(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/view/Display;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$70f6O3WniAL1EPYwIwKjPj9UKTo(IILandroid/os/Bundle;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$HPV0skZunkb71zseMl_vk0jUzZ8(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$Klm5b07ADsYSKveShfQLaSU4BJU(Lcom/android/server/wallpaper/WallpaperManagerService;ILjava/lang/Integer;Ljava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$MtJzR9Tfzpn1ib32AAJG680ugdY(Lcom/android/server/wallpaper/WallpaperManagerService;Ljava/lang/String;)Ljava/lang/Boolean;
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$NZufi7t-APbcRooDKxjzjfXjTj8(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$S4jgCqwuOI416eRiQyNOsDygOVs(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$mkcPPqQQi9_GWMzWCHYLmW8Mmmo(Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$pRbDlKnuXuH2cuSxUxGHR4zK0uM(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmContext(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/Context;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmCurrentUserId(Lcom/android/server/wallpaper/WallpaperManagerService;)I
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmImageWallpaper(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/ComponentName;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmInAmbientMode(Lcom/android/server/wallpaper/WallpaperManagerService;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmLocalColorRepo(Lcom/android/server/wallpaper/WallpaperManagerService;)Lcom/android/server/wallpaper/LocalColorRepository;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmLock(Lcom/android/server/wallpaper/WallpaperManagerService;)Ljava/lang/Object;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmWallpaperMap(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmWindowManagerInternal(Lcom/android/server/wallpaper/WallpaperManagerService;)Lcom/android/server/wm/WindowManagerInternal;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mattachServiceLocked(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mgetWallpapers(Lcom/android/server/wallpaper/WallpaperManagerService;)[Lcom/android/server/wallpaper/WallpaperData;
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyScreenTurnedOn(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyScreenTurningOn(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyWallpaperColorsChangedOnDisplay(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperData;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$msupportsMultiDisplay(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;-><clinit>()V
-HPLcom/android/server/wallpaper/WallpaperManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->attachServiceLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;)V
-HPLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperComponentLocked(Landroid/content/ComponentName;ZZLcom/android/server/wallpaper/WallpaperData;Landroid/os/IRemoteCallback;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->changingToSame(Landroid/content/ComponentName;Lcom/android/server/wallpaper/WallpaperData;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->checkCallerIsSystemOrSystemUi()V
+PLcom/android/server/wallpaper/WallpaperManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperComponentLocked(Landroid/content/ComponentName;ZZLcom/android/server/wallpaper/WallpaperData;Landroid/os/IRemoteCallback;)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperDescriptionLocked(Landroid/app/wallpaper/WallpaperDescription;ZZLcom/android/server/wallpaper/WallpaperData;Landroid/os/IRemoteCallback;)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->changingToSame(Landroid/app/wallpaper/WallpaperDescription;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/app/wallpaper/WallpaperDescription;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->checkPermission(Ljava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperBitmaps(II)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperBitmaps(Lcom/android/server/wallpaper/WallpaperData;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->emptyCallbackList(Landroid/os/RemoteCallbackList;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->enforcePackageBelongsToUid(Ljava/lang/String;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->errorCheck(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->getActiveWallpapers()[Lcom/android/server/wallpaper/WallpaperData;
+PLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperBitmaps(Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->detachWallpaperLocked(Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->dumpWallpaper(Lcom/android/server/wallpaper/WallpaperData;Ljava/io/PrintWriter;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->extractColors(Lcom/android/server/wallpaper/WallpaperData;)Z
+HPLcom/android/server/wallpaper/WallpaperManagerService;->getActiveWallpapers()[Lcom/android/server/wallpaper/WallpaperData;
+PLcom/android/server/wallpaper/WallpaperManagerService;->getAdjustedWallpaperColorsOnDimming(Lcom/android/server/wallpaper/WallpaperData;)Landroid/app/WallpaperColors;
 PLcom/android/server/wallpaper/WallpaperManagerService;->getHandlerForBindingWallpaperLocked()Landroid/os/Handler;
 PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperCallbacks(II)Landroid/os/RemoteCallbackList;
 PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperInfoWithFlags(II)Landroid/app/WallpaperInfo;
+PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperInstance(IIZ)Landroid/app/wallpaper/WallpaperInstance;
 PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperSafeLocked(II)Lcom/android/server/wallpaper/WallpaperData;
-PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpapers()[Lcom/android/server/wallpaper/WallpaperData;
 PLcom/android/server/wallpaper/WallpaperManagerService;->hasPermission(Ljava/lang/String;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->initialize()V
-PLcom/android/server/wallpaper/WallpaperManagerService;->initializeFallbackWallpaper()V
 PLcom/android/server/wallpaper/WallpaperManagerService;->isDefaultComponent(Landroid/content/ComponentName;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->isFromForegroundApp(Ljava/lang/String;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->isSetWallpaperAllowed(Ljava/lang/String;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->isWallpaperSupported(Ljava/lang/String;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$attachServiceLocked$17(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$errorCheck$4(ILjava/lang/Integer;Ljava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$isFromForegroundApp$18(Ljava/lang/String;)Ljava/lang/Boolean;
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$notifyWakingUp$10(IILandroid/os/Bundle;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$notifyWallpaperColorsChanged$0(Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$onUnlockUser$5(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$setWallpaperComponentInternal$14(Lcom/android/server/wallpaper/WallpaperManagerService$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$switchUser$6(Lcom/android/server/wallpaper/WallpaperData;Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$updateFallbackConnection$2(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/view/Display;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->loadSettingsLocked(IZI)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->loadSettingsLocked(IIZ)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->maybeDetachLastWallpapers(Lcom/android/server/wallpaper/WallpaperData;)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->notifyCallbacksLocked(Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->notifyScreenTurnedOn(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->notifyScreenTurningOn(I)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->notifyGoingToSleep(IILandroid/os/Bundle;)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWakingUp(IILandroid/os/Bundle;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChanged(Lcom/android/server/wallpaper/WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChangedOnDisplay(Lcom/android/server/wallpaper/WallpaperData;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->onBootPhase(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->onUnlockUser(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->packageBelongsToUid(Ljava/lang/String;I)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperChanged(Lcom/android/server/wallpaper/WallpaperData;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChangedOnDisplay(Lcom/android/server/wallpaper/WallpaperData;II)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->saveSettingsLocked(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperComponent(Landroid/content/ComponentName;Ljava/lang/String;II)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperComponentChecked(Landroid/content/ComponentName;Ljava/lang/String;II)V
-HPLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperComponentInternal(Landroid/content/ComponentName;IIZZLandroid/os/IRemoteCallback;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->supportsMultiDisplay(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperComponentChecked(Landroid/app/wallpaper/WallpaperDescription;Ljava/lang/String;II)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperDescription(Landroid/app/wallpaper/WallpaperDescription;Ljava/lang/String;II)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaperDescriptionInternal(Landroid/app/wallpaper/WallpaperDescription;IIZZLandroid/os/IRemoteCallback;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService;->switchUser(ILandroid/os/IRemoteCallback;)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->switchWallpaper(Lcom/android/server/wallpaper/WallpaperData;Landroid/os/IRemoteCallback;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->systemReady()V
 PLcom/android/server/wallpaper/WallpaperManagerService;->updateCurrentWallpapers(Lcom/android/server/wallpaper/WallpaperData;)V
 PLcom/android/server/wallpaper/WallpaperManagerService;->updateFallbackConnection()V
 PLcom/android/server/wallpaper/WallpaperUtils;-><clinit>()V
-PLcom/android/server/wallpaper/WallpaperUtils;->getCurrentWallpaperId()I
-PLcom/android/server/wallpaper/WallpaperUtils;->getWallpaperDir(I)Ljava/io/File;
 PLcom/android/server/wallpaper/WallpaperUtils;->getWallpaperFiles(I)Ljava/util/List;
 PLcom/android/server/wallpaper/WallpaperUtils;->makeWallpaperIdLocked()I
-PLcom/android/server/wallpaper/WallpaperUtils;->setCurrentWallpaperId(I)V
-PLcom/android/server/wearable/WearableSensingManagerPerUserService;-><clinit>()V
-PLcom/android/server/wearable/WearableSensingManagerPerUserService;-><init>(Lcom/android/server/wearable/WearableSensingManagerService;Ljava/lang/Object;I)V
-PLcom/android/server/wearable/WearableSensingManagerPerUserService;->destroyLocked()V
-PLcom/android/server/wearable/WearableSensingManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wearable/WearableSensingManagerService;)V
-PLcom/android/server/wearable/WearableSensingManagerService$WearableSensingManagerInternal;-><init>(Lcom/android/server/wearable/WearableSensingManagerService;)V
-PLcom/android/server/wearable/WearableSensingManagerService$WearableSensingManagerInternal;-><init>(Lcom/android/server/wearable/WearableSensingManagerService;Lcom/android/server/wearable/WearableSensingManagerService$WearableSensingManagerInternal-IA;)V
-PLcom/android/server/wearable/WearableSensingManagerService;-><clinit>()V
-PLcom/android/server/wearable/WearableSensingManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wearable/WearableSensingManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/wearable/WearableSensingManagerService;->newServiceLocked(IZ)Lcom/android/server/wearable/WearableSensingManagerPerUserService;
-PLcom/android/server/wearable/WearableSensingManagerService;->onBootPhase(I)V
-PLcom/android/server/wearable/WearableSensingManagerService;->onServiceRemoved(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
-PLcom/android/server/wearable/WearableSensingManagerService;->onServiceRemoved(Lcom/android/server/wearable/WearableSensingManagerPerUserService;I)V
-PLcom/android/server/wearable/WearableSensingManagerService;->onStart()V
 PLcom/android/server/wm/AbsAppSnapshotController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/AbsAppSnapshotController;->captureSnapshot(Lcom/android/server/wm/WindowContainer;)Landroid/window/TaskSnapshot;
+HPLcom/android/server/wm/AbsAppSnapshotController;->checkIfReadyToSnapshot(Lcom/android/server/wm/WindowContainer;)Landroid/util/Pair;
+PLcom/android/server/wm/AbsAppSnapshotController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/AbsAppSnapshotController;->getSnapshotMode(Lcom/android/server/wm/WindowContainer;)I
 PLcom/android/server/wm/AbsAppSnapshotController;->initSnapshotScale()F
-PLcom/android/server/wm/AbsAppSnapshotController;->initialize(Lcom/android/server/wm/SnapshotCache;)V
-PLcom/android/server/wm/AbsAppSnapshotController;->setSnapshotEnabled(Z)V
-PLcom/android/server/wm/AbsAppSnapshotController;->shouldDisableSnapshots()Z
-PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl$UiChangesForAccessibilityCallbacksDispatcher$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal$UiChangesForAccessibilityCallbacks;)V
+HPLcom/android/server/wm/AbsAppSnapshotController;->prepareTaskSnapshot(Lcom/android/server/wm/WindowContainer;Landroid/window/TaskSnapshot$Builder;)Landroid/graphics/Rect;
+HPLcom/android/server/wm/AbsAppSnapshotController;->shouldDisableSnapshots()Z
+HPLcom/android/server/wm/AbsAppSnapshotController;->snapshot(Lcom/android/server/wm/WindowContainer;F)Landroid/window/TaskSnapshot;
+PLcom/android/server/wm/AbsAppSnapshotController;->validateSnapshot(Landroid/window/TaskSnapshot;)Landroid/window/TaskSnapshot;
+PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl$UiChangesForAccessibilityCallbacksDispatcher$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/accessibility/magnification/MagnificationController;)V
 PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl$UiChangesForAccessibilityCallbacksDispatcher$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl$UiChangesForAccessibilityCallbacksDispatcher;-><init>(Lcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;Landroid/os/Looper;Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal$UiChangesForAccessibilityCallbacks;)V
-PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl$UiChangesForAccessibilityCallbacksDispatcher;->onRectangleOnScreenRequested(ILandroid/graphics/Rect;)V
+PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl$UiChangesForAccessibilityCallbacksDispatcher;-><init>(Lcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;Landroid/os/Looper;Lcom/android/server/accessibility/magnification/MagnificationController;)V
 PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;->getInstance(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;
-PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;->hasWindowManagerEventDispatcher()Z
-HPLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;->isTracingEnabled(J)Z
+PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;->isTracingEnabled(J)Z
 PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;->onRectangleOnScreenRequested(ILandroid/graphics/Rect;)V
-PLcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;->setUiChangesForAccessibilityCallbacks(Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal$UiChangesForAccessibilityCallbacks;)V
-PLcom/android/server/wm/AccessibilityController$AccessibilityTracing$LogHandler;-><init>(Lcom/android/server/wm/AccessibilityController$AccessibilityTracing;Landroid/os/Looper;)V
 PLcom/android/server/wm/AccessibilityController$AccessibilityTracing;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/AccessibilityController$AccessibilityTracing;->getInstance(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/AccessibilityController$AccessibilityTracing;
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;-><init>(Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;Landroid/os/Looper;)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->-$$Nest$fgetmInitialized(Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;)Z
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;Landroid/util/SparseArray;)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;-><init>(Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;Landroid/os/Looper;)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;-><init>(Ljava/lang/Object;Landroid/os/Looper;I)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier$UserContextChangedNotifier;-><init>(Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;)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
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->isFullscreenMagnificationActivated()Z
+PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->notifyImeWindowVisibilityChanged(Z)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->recomputeBounds()V
 PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;-><init>(Lcom/android/server/wm/WindowManagerService;ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;Lcom/android/server/wm/AccessibilityWindowsPopulator;)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->addPopulatedWindowInfo(Lcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;Landroid/graphics/Region;Ljava/util/List;Ljava/util/Set;)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->buildWindowInfoListLocked(Ljava/util/List;Landroid/graphics/Point;)Ljava/util/List;
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->computeChangedWindows(Z)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->getTopFocusWindow()Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->performComputeChangedWindows(Z)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->updateUnaccountedSpace(Lcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;Landroid/graphics/Region;)V
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->windowMattersToAccessibility(Lcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;Landroid/graphics/Region;Landroid/graphics/Region;)Z
-PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->windowMattersToUnaccountedSpaceComputation(Lcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;)Z
-PLcom/android/server/wm/AccessibilityController;->-$$Nest$sfgetSTATIC_LOCK()Ljava/lang/Object;
+PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;->scheduleComputeChangedWindows()V
 PLcom/android/server/wm/AccessibilityController;-><clinit>()V
 PLcom/android/server/wm/AccessibilityController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/AccessibilityController;->getAccessibilityControllerInternal(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/AccessibilityController$AccessibilityControllerInternalImpl;
-HPLcom/android/server/wm/AccessibilityController;->hasCallbacks()Z
-PLcom/android/server/wm/AccessibilityController;->onFocusChanged(Lcom/android/server/wm/InputTarget;Lcom/android/server/wm/InputTarget;)V
+PLcom/android/server/wm/AccessibilityController;->getMagnificationRegion(ILandroid/graphics/Region;)V
+PLcom/android/server/wm/AccessibilityController;->getMagnificationSpecForWindow(Lcom/android/server/wm/WindowState;)Landroid/view/MagnificationSpec;
+HPLcom/android/server/wm/AccessibilityController;->hasCallbacks()Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+HPLcom/android/server/wm/AccessibilityController;->onFocusChanged(Lcom/android/server/wm/InputTarget;Lcom/android/server/wm/InputTarget;)V
+PLcom/android/server/wm/AccessibilityController;->onSomeWindowResizedOrMovedWithCallingUid(I[I)V
+PLcom/android/server/wm/AccessibilityController;->onWindowTransition(Lcom/android/server/wm/WindowState;I)V
 PLcom/android/server/wm/AccessibilityController;->performComputeChangedWindowsNot(IZ)V
-PLcom/android/server/wm/AccessibilityController;->setFocusedDisplay(I)V
+PLcom/android/server/wm/AccessibilityController;->setMagnificationCallbacks(ILcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;)Z
+PLcom/android/server/wm/AccessibilityController;->setMagnificationSpec(ILandroid/view/MagnificationSpec;)V
 PLcom/android/server/wm/AccessibilityController;->setWindowsForAccessibilityCallback(ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)V
 PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;-><init>()V
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->getTouchableRegionInScreen(Landroid/graphics/Region;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->getTouchableRegionInWindow(Landroid/graphics/Region;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->getTouchableRegionInWindow(ZLandroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Matrix;Landroid/graphics/Matrix;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->getType()I
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->getUnMagnifiedTouchableRegion(ZLandroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Matrix;Landroid/graphics/Matrix;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->getWindowInfo()Landroid/view/WindowInfo;
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->ignoreRecentsAnimationForAccessibility()Z
-HPLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->initializeData(Lcom/android/server/wm/WindowManagerService;Landroid/view/InputWindowHandle;Landroid/graphics/Matrix;Landroid/os/IBinder;Landroid/graphics/Matrix;)Lcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->isFocused()Z
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->isTouchable()Z
-PLcom/android/server/wm/AccessibilityWindowsPopulator$AccessibilityWindow;->shouldMagnify()Z
 PLcom/android/server/wm/AccessibilityWindowsPopulator$MyHandler;-><init>(Lcom/android/server/wm/AccessibilityWindowsPopulator;Landroid/os/Looper;)V
 PLcom/android/server/wm/AccessibilityWindowsPopulator$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->-$$Nest$mnotifyWindowsChanged(Lcom/android/server/wm/AccessibilityWindowsPopulator;Ljava/util/List;)V
+PLcom/android/server/wm/AccessibilityWindowsPopulator;->-$$Nest$mforceUpdateWindows(Lcom/android/server/wm/AccessibilityWindowsPopulator;)V
 PLcom/android/server/wm/AccessibilityWindowsPopulator;-><clinit>()V
 PLcom/android/server/wm/AccessibilityWindowsPopulator;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/AccessibilityController;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->findMagnificationSpecInverseMatrixIfNeeded(Landroid/util/SparseArray;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->getDisplaysForWindowsChanged(Ljava/util/List;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->getWindowsTransformMatrix(Ljava/util/List;)Ljava/util/HashMap;
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->hasWindowsChanged(Ljava/util/List;Ljava/util/List;)Z
+PLcom/android/server/wm/AccessibilityWindowsPopulator;->generateInverseMatrix(Landroid/view/MagnificationSpec;Landroid/graphics/Matrix;)V
 PLcom/android/server/wm/AccessibilityWindowsPopulator;->notifyWindowsChanged(Ljava/util/List;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->onWindowInfosChangedInternal([Landroid/view/InputWindowHandle;[Landroid/window/WindowInfosListener$DisplayInfo;)V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->populateVisibleWindowHandlesAndNotifyWindowsChangeIfNeeded()V
-PLcom/android/server/wm/AccessibilityWindowsPopulator;->populateVisibleWindowsOnScreenLocked(ILjava/util/List;)V
+PLcom/android/server/wm/AccessibilityWindowsPopulator;->onWindowInfosChanged([Landroid/view/InputWindowHandle;[Landroid/window/WindowInfosListener$DisplayInfo;)V
+HPLcom/android/server/wm/AccessibilityWindowsPopulator;->onWindowInfosChangedInternal([Landroid/view/InputWindowHandle;[Landroid/window/WindowInfosListener$DisplayInfo;)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Map;Ljava/util/HashMap;
+HPLcom/android/server/wm/AccessibilityWindowsPopulator;->populateVisibleWindowHandlesAndNotifyWindowsChangeIfNeeded()V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/wm/AccessibilityWindowsPopulator;->populateVisibleWindowsOnScreenLocked(ILjava/util/List;)V
+PLcom/android/server/wm/AccessibilityWindowsPopulator;->releaseResources()V
 PLcom/android/server/wm/AccessibilityWindowsPopulator;->setWindowsNotification(Z)V
-PLcom/android/server/wm/ActivityCallerState$CallerInfo;-><init>()V
+HSPLcom/android/server/wm/ActionChain$Tracker;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
+HPLcom/android/server/wm/ActionChain$Tracker;->makeChain(ILcom/android/server/wm/Transition;)Lcom/android/server/wm/ActionChain;
+PLcom/android/server/wm/ActivityAssistInfo;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityCallerState$CallerInfo;-><init>(ILjava/lang/String;Z)V
 PLcom/android/server/wm/ActivityCallerState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 PLcom/android/server/wm/ActivityCallerState;->addUriIfContentUri(Landroid/net/Uri;Landroid/util/ArraySet;)V
-PLcom/android/server/wm/ActivityCallerState;->computeCallerInfo(Landroid/os/IBinder;Landroid/content/Intent;I)V
-PLcom/android/server/wm/ActivityCallerState;->getContentUrisFromIntent(Landroid/content/Intent;)Landroid/util/ArraySet;
+HPLcom/android/server/wm/ActivityCallerState;->getContentUrisFromIntent(Landroid/content/Intent;)Landroid/util/ArraySet;
+PLcom/android/server/wm/ActivityClientController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityClientController$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/ActivityClientController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/ActivityClientController;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
-PLcom/android/server/wm/ActivityClientController;->activityPaused(Landroid/os/IBinder;)V
-PLcom/android/server/wm/ActivityClientController;->activityResumed(Landroid/os/IBinder;Z)V
-PLcom/android/server/wm/ActivityClientController;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
-PLcom/android/server/wm/ActivityClientController;->activityTopResumedStateLost()V
+PLcom/android/server/wm/ActivityClientController;->activityDestroyed(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/ActivityClientController;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
+HPLcom/android/server/wm/ActivityClientController;->activityPaused(Landroid/os/IBinder;)V
+PLcom/android/server/wm/ActivityClientController;->activityRelaunched(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/ActivityClientController;->activityResumed(Landroid/os/IBinder;Z)V
+HPLcom/android/server/wm/ActivityClientController;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+HPLcom/android/server/wm/ActivityClientController;->activityTopResumedStateLost()V
+HPLcom/android/server/wm/ActivityClientController;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
+PLcom/android/server/wm/ActivityClientController;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
+PLcom/android/server/wm/ActivityClientController;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String;
 PLcom/android/server/wm/ActivityClientController;->getDisplayId(Landroid/os/IBinder;)I
 PLcom/android/server/wm/ActivityClientController;->getTaskForActivity(Landroid/os/IBinder;Z)I
-PLcom/android/server/wm/ActivityClientController;->onSystemReady()V
-PLcom/android/server/wm/ActivityClientController;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/server/wm/ActivityClientController;->isTopOfTask(Landroid/os/IBinder;)Z
+PLcom/android/server/wm/ActivityClientController;->moveActivityTaskToBack(Landroid/os/IBinder;Z)Z
+PLcom/android/server/wm/ActivityClientController;->onBackPressed(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V
+HPLcom/android/server/wm/ActivityClientController;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/wm/ActivityClientController;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V
 PLcom/android/server/wm/ActivityClientController;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/ActivityClientController;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V
+PLcom/android/server/wm/ActivityClientController;->setImmersive(Landroid/os/IBinder;Z)V
+PLcom/android/server/wm/ActivityClientController;->setShowWhenLocked(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/ActivityClientController;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmActivityInfo(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmCallingFeatureId(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmCallingPackage(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmCallingPid(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)I
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmCallingUid(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)I
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmCheckedOptions(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Landroid/app/ActivityOptions;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmClearOptionsAnimation(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Ljava/lang/Runnable;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmIntent(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Landroid/content/Intent;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmRealCallingPid(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)I
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmRealCallingUid(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)I
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmResolveInfo(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmResolvedType(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->-$$Nest$fgetmUserId(Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;)I
-PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;-><init>(IIIIILandroid/content/Intent;Landroid/content/pm/ResolveInfo;Landroid/content/pm/ActivityInfo;)V
+PLcom/android/server/wm/ActivityClientController;->setTurnScreenOn(Landroid/os/IBinder;Z)V
+PLcom/android/server/wm/ActivityClientController;->shouldMoveTaskToBack(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;-><init>(IIIIILandroid/content/Intent;Landroid/content/pm/ResolveInfo;Landroid/content/pm/ActivityInfo;)V
 PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->build()Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;
 PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->setCallingFeatureId(Ljava/lang/String;)Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;
 PLcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;->setCallingPackage(Ljava/lang/String;)Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo$Builder;
@@ -25354,1087 +20256,819 @@
 PLcom/android/server/wm/ActivityInterceptorCallback;->isValidOrderId(I)Z
 PLcom/android/server/wm/ActivityInterceptorCallback;->onActivityLaunched(Landroid/app/TaskInfo;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;)V
 PLcom/android/server/wm/ActivityInterceptorCallbackRegistry;-><clinit>()V
-PLcom/android/server/wm/ActivityInterceptorCallbackRegistry;-><init>()V
 PLcom/android/server/wm/ActivityInterceptorCallbackRegistry;->getCallingUid()I
 PLcom/android/server/wm/ActivityInterceptorCallbackRegistry;->getInstance()Lcom/android/server/wm/ActivityInterceptorCallbackRegistry;
 PLcom/android/server/wm/ActivityInterceptorCallbackRegistry;->registerActivityInterceptorCallback(ILcom/android/server/wm/ActivityInterceptorCallback;)V
-HSPLcom/android/server/wm/ActivityMetricsLaunchObserver;-><init>()V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
+HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;JILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZIIZ)V
+HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
 PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;JILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZIIZ)V
-PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->-$$Nest$fgetmAssociatedTransitionInfo(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
-PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->-$$Nest$fputmAssociatedTransitionInfo(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;-><init>(I)V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;JLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;I)V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda7;->run()V
+PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;-><init>()V
 PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->stopTrace(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 PLcom/android/server/wm/ActivityMetricsLogger$PackageCompatStateInfo;-><init>()V
-PLcom/android/server/wm/ActivityMetricsLogger$PackageCompatStateInfo;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$PackageCompatStateInfo-IA;)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;Landroid/app/ActivityOptions;IZZIIZ)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->calculateCurrentDelay()I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->calculateDelay(J)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->contains(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->create(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;Landroid/app/ActivityOptions;ZZIIZZI)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->isInterestingToLoggerAndObserver()Z
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->setLatestLaunchedActivity(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetapplicationInfo(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetbindApplicationDelayMs(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetlaunchedActivityLaunchToken(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetlaunchedActivityLaunchedFromPackage(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetprocessName(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetprocessRecord(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetreason(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->-$$Nest$fgetstartingWindowDelayMs(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot-IA;)V
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;Landroid/app/ActivityOptions;IZZIIZ)V
 HPLcom/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$TransitionInfoSnapshot-IA;)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->getLaunchState()I
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->getPackageOptimizationInfo(Landroid/content/pm/dex/ArtManagerInternal;)Landroid/content/pm/dex/PackageOptimizationInfo;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->isInterestedToEventLog()Z
-PLcom/android/server/wm/ActivityMetricsLogger;->$r8$lambda$9Znu_naMY0TaDnbVNjFqSyiTkcc(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->$r8$lambda$E5bzb-1VyhAtO6RVNt8gP38XELI(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;JILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZIIZ)V
-PLcom/android/server/wm/ActivityMetricsLogger;->$r8$lambda$MDDCoWK980XoH_6bZLWfXzhTwEY(Lcom/android/server/wm/ActivityMetricsLogger;Ljava/lang/String;I)V
-PLcom/android/server/wm/ActivityMetricsLogger;->$r8$lambda$kVd50LR3bWCXX7Lj8BYMTU-bGdY(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->$r8$lambda$yb4ber5HhUmLvhJHcMEn3T962l0(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;-><clinit>()V
 HSPLcom/android/server/wm/ActivityMetricsLogger;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/os/Looper;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->convertTransitionTypeToLaunchObserverTemperature(I)I
-PLcom/android/server/wm/ActivityMetricsLogger;->done(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;J)V
-PLcom/android/server/wm/ActivityMetricsLogger;->getActiveTransitionInfo(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
-PLcom/android/server/wm/ActivityMetricsLogger;->getAppHibernationManagerInternal()Lcom/android/server/apphibernation/AppHibernationManagerInternal;
+PLcom/android/server/wm/ActivityMetricsLogger;->abort(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->done(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;J)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->getActiveTransitionInfo(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/ActivityMetricsLogger;->getAppStartTransitionType(IZ)I
-PLcom/android/server/wm/ActivityMetricsLogger;->getArtManagerInternal()Landroid/content/pm/dex/ArtManagerInternal;
-PLcom/android/server/wm/ActivityMetricsLogger;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
-PLcom/android/server/wm/ActivityMetricsLogger;->isAppCompateStateChangedToLetterboxed(I)Z
-PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionFinished$1(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;JILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZIIZ)V
-PLcom/android/server/wm/ActivityMetricsLogger;->lambda$notifyFullyDrawn$3(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->lambda$notifyFullyDrawn$4(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->lambda$notifyFullyDrawn$5(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunchFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;J)V
-PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyIntentStarted(Landroid/content/Intent;J)V
-PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyReportFullyDrawn(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;J)V
-HPLcom/android/server/wm/ActivityMetricsLogger;->logAppCompatState(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppCompatStateInternal(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityMetricsLogger$PackageCompatStateInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppDisplayed(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppFullyDrawn(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppFullyDrawnMetrics(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZZ)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppStartMemoryStateCapture(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransition(JILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZII)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Z)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->logAppCompatStateInternal(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityMetricsLogger$PackageCompatStateInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionCancel(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 PLcom/android/server/wm/ActivityMetricsLogger;->logInTaskActivityStart(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZI)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logWindowState()V
-PLcom/android/server/wm/ActivityMetricsLogger;->logWindowState(Ljava/lang/String;I)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;IZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunching(Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyBeforePackageUnstopped(Ljava/lang/String;)V
-HPLcom/android/server/wm/ActivityMetricsLogger;->notifyBindApplication(Landroid/content/pm/ApplicationInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyFullyDrawn(Lcom/android/server/wm/ActivityRecord;Z)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyStartingWindowDrawn(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyTransitionStarting(Landroid/util/ArrayMap;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyVisibilityChanged(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyWindowsDrawn(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
-PLcom/android/server/wm/ActivityMetricsLogger;->scheduleCheckActivityToBeDrawnIfSleeping(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;IZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunching(Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;
+PLcom/android/server/wm/ActivityMetricsLogger;->notifyBindApplication(Landroid/content/pm/ApplicationInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger;->notifyFullyDrawn(Lcom/android/server/wm/ActivityRecord;Z)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->notifyTransitionStarting(Landroid/util/ArrayMap;)V
+PLcom/android/server/wm/ActivityMetricsLogger;->scheduleCheckActivityToBeDrawn(Lcom/android/server/wm/ActivityRecord;J)V
 PLcom/android/server/wm/ActivityMetricsLogger;->startLaunchTrace(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->stopLaunchTrace(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda12;-><init>()V
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda14;-><init>()V
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda15;-><init>()V
-HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/ActivityRecord;Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/AppCompatSizeCompatModePolicy;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda17;-><init>(I)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;)Z
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda19;->run()V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda21;->get()Ljava/lang/Object;
-PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda2;-><init>()V
+HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda21;->get()Ljava/lang/Object;
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda2;-><init>(I)V
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda31;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda3;-><init>(I)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/ActivityRecord$1;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$1;->run()V
 PLcom/android/server/wm/ActivityRecord$2;-><init>(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityRecord$2;->run()V
+PLcom/android/server/wm/ActivityRecord$2;->run()V
 PLcom/android/server/wm/ActivityRecord$3;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord$3;->run()V
 PLcom/android/server/wm/ActivityRecord$4;-><init>(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityRecord$5;-><init>(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityRecord$6;-><clinit>()V
-PLcom/android/server/wm/ActivityRecord$AddStartingWindow;-><init>(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityRecord$AddStartingWindow;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord$AddStartingWindow-IA;)V
-PLcom/android/server/wm/ActivityRecord$AddStartingWindow;->run()V
-PLcom/android/server/wm/ActivityRecord$Builder;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/ActivityRecord$Builder;->build()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityRecord$Builder;->setActivityInfo(Landroid/content/pm/ActivityInfo;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setActivityOptions(Landroid/app/ActivityOptions;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setCaller(Lcom/android/server/wm/WindowProcessController;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setComponentSpecified(Z)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setConfiguration(Landroid/content/res/Configuration;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setIntent(Landroid/content/Intent;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setLaunchedFromFeature(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setLaunchedFromPackage(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setLaunchedFromPid(I)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setLaunchedFromUid(I)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setRequestCode(I)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setResolvedType(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setResultTo(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setResultWho(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setRootVoiceInteraction(Z)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$Builder;->setSourceRecord(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord$Builder;
-PLcom/android/server/wm/ActivityRecord$State;->$values()[Lcom/android/server/wm/ActivityRecord$State;
 PLcom/android/server/wm/ActivityRecord$State;-><clinit>()V
-PLcom/android/server/wm/ActivityRecord$State;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/wm/ActivityRecord$State;->values()[Lcom/android/server/wm/ActivityRecord$State;
-PLcom/android/server/wm/ActivityRecord$Token;-><init>()V
-PLcom/android/server/wm/ActivityRecord$Token;-><init>(Lcom/android/server/wm/ActivityRecord$Token-IA;)V
-PLcom/android/server/wm/ActivityRecord;->$r8$lambda$0OfvhI5TUgQo6Y024Yo0FylceBE(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->$r8$lambda$I1MSNY3CpU-e9WIQbLSkEsRUKEo(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityRecord;->$r8$lambda$tbbQczlHwYJa84Bl3WvoMl7sYRg(Lcom/android/server/wm/ActivityRecord;)Landroid/content/Context;
-HPLcom/android/server/wm/ActivityRecord;->$r8$lambda$y0npCffze-hoyeHGzAjmpNlZO0Y(Lcom/android/server/wm/ActivityRecord;Landroid/graphics/Rect;)Landroid/graphics/Rect;
-PLcom/android/server/wm/ActivityRecord;->-$$Nest$mcontinueLaunchTicking(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/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/ActivityTaskSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Landroid/os/PersistableBundle;Landroid/app/ActivityManager$TaskDescription;J)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/ActivityTaskSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Landroid/os/PersistableBundle;Landroid/app/ActivityManager$TaskDescription;JLcom/android/server/wm/ActivityRecord-IA;)V
-PLcom/android/server/wm/ActivityRecord;->activityPaused(Z)V
-PLcom/android/server/wm/ActivityRecord;->activityResumedLocked(Landroid/os/IBinder;Z)V
-PLcom/android/server/wm/ActivityRecord;->activityStopped(Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
-PLcom/android/server/wm/ActivityRecord;->addStartingWindow(Ljava/lang/String;ILcom/android/server/wm/ActivityRecord;ZZZZZZZ)Z
-PLcom/android/server/wm/ActivityRecord;->addToStopping(ZZLjava/lang/String;)V
+HPLcom/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/ActivityTaskSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Landroid/os/PersistableBundle;Landroid/app/ActivityManager$TaskDescription;J)V+]Landroid/app/ActivityOptions;Landroid/app/ActivityOptions;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityRecord;->abortAndClearOptionsAnimation()V
+HPLcom/android/server/wm/ActivityRecord;->activityPaused(Z)V
+HPLcom/android/server/wm/ActivityRecord;->activityResumedLocked(Landroid/os/IBinder;Z)V
+HPLcom/android/server/wm/ActivityRecord;->activityStopped(Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+HPLcom/android/server/wm/ActivityRecord;->addStartingWindow(Ljava/lang/String;ILcom/android/server/wm/ActivityRecord;ZZZZZZZ)Z
+PLcom/android/server/wm/ActivityRecord;->addToFinishingAndWaitForIdle()Z
+HPLcom/android/server/wm/ActivityRecord;->addToStopping(Ljava/lang/String;ZZ)V
 PLcom/android/server/wm/ActivityRecord;->addWindow(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->allDrawnStatesConsidered()Z
-PLcom/android/server/wm/ActivityRecord;->allowMoveToFront()Z
-PLcom/android/server/wm/ActivityRecord;->allowTaskSnapshot()Z
-PLcom/android/server/wm/ActivityRecord;->applyAspectRatio(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
-PLcom/android/server/wm/ActivityRecord;->applyAspectRatio(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;F)Z
-PLcom/android/server/wm/ActivityRecord;->applyLocaleOverrideIfNeeded(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->applyOptionsAnimation()V
-PLcom/android/server/wm/ActivityRecord;->applyOptionsAnimation(Landroid/app/ActivityOptions;Landroid/content/Intent;)V
-HPLcom/android/server/wm/ActivityRecord;->areBoundsLetterboxed()Z
-PLcom/android/server/wm/ActivityRecord;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/ActivityRecord;->applyOptionsAnimation()V
+PLcom/android/server/wm/ActivityRecord;->areBoundsLetterboxed()Z
+HPLcom/android/server/wm/ActivityRecord;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/ActivityRecord;->attachStartingWindow(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/ActivityRecord;->attachedToProcess()Z
-HPLcom/android/server/wm/ActivityRecord;->canAffectSystemUiFlags()Z
-PLcom/android/server/wm/ActivityRecord;->canBeLaunchedOnDisplay(I)Z
 HPLcom/android/server/wm/ActivityRecord;->canBeTopRunning()Z
+PLcom/android/server/wm/ActivityRecord;->canCreateRemoteAnimationTarget()Z
 PLcom/android/server/wm/ActivityRecord;->canForceResizeNonResizable(I)Z
 PLcom/android/server/wm/ActivityRecord;->canLaunchHomeActivity(ILcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/ActivityRecord;->canReceiveKeys()Z
 HPLcom/android/server/wm/ActivityRecord;->canResumeByCompat()Z
 HPLcom/android/server/wm/ActivityRecord;->canShowWhenLocked()Z
-HPLcom/android/server/wm/ActivityRecord;->canShowWhenLocked(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/ActivityRecord;->canShowWhenLockedInner(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityRecord;->canShowWindows()Z
-PLcom/android/server/wm/ActivityRecord;->canTurnScreenOn()Z
+HPLcom/android/server/wm/ActivityRecord;->canShowWhenLocked(Lcom/android/server/wm/ActivityRecord;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/ActivityRecord;->canShowWindows()Z
+HPLcom/android/server/wm/ActivityRecord;->canTurnScreenOn()Z
+PLcom/android/server/wm/ActivityRecord;->cancelAnimation()V
 PLcom/android/server/wm/ActivityRecord;->checkAppWindowsReadyToShow()V
+PLcom/android/server/wm/ActivityRecord;->checkEnterPictureInPictureAppOpsState()Z
 PLcom/android/server/wm/ActivityRecord;->checkEnterPictureInPictureState(Ljava/lang/String;Z)Z
-PLcom/android/server/wm/ActivityRecord;->checkKeyguardFlagsChanged()V
-PLcom/android/server/wm/ActivityRecord;->clearAllDrawn()V
-PLcom/android/server/wm/ActivityRecord;->clearOptionsAnimation()V
-PLcom/android/server/wm/ActivityRecord;->clearOptionsAnimationForSiblings()V
+HPLcom/android/server/wm/ActivityRecord;->checkKeyguardFlagsChanged()V
+HPLcom/android/server/wm/ActivityRecord;->cleanUp(ZZ)V
+PLcom/android/server/wm/ActivityRecord;->cleanUpActivityServices()V
 PLcom/android/server/wm/ActivityRecord;->clearThumbnail()V
-PLcom/android/server/wm/ActivityRecord;->commitFinishDrawing(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/ActivityRecord;->commitVisibility(ZZ)V
-HPLcom/android/server/wm/ActivityRecord;->commitVisibility(ZZZ)V
-PLcom/android/server/wm/ActivityRecord;->completeResumeLocked()V
-PLcom/android/server/wm/ActivityRecord;->computeCallerInfo(Landroid/os/IBinder;Landroid/content/Intent;I)V
-PLcom/android/server/wm/ActivityRecord;->computeInitialCallerInfo()V
-PLcom/android/server/wm/ActivityRecord;->computeTaskAffinity(Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/wm/ActivityRecord;->containsDismissKeyguardWindow()Z
-HPLcom/android/server/wm/ActivityRecord;->containsShowWhenLockedWindow()Z
-HPLcom/android/server/wm/ActivityRecord;->containsTurnScreenOnWindow()Z
-PLcom/android/server/wm/ActivityRecord;->continueLaunchTicking()Z
-PLcom/android/server/wm/ActivityRecord;->deferCommitVisibilityChange(Z)Z
-PLcom/android/server/wm/ActivityRecord;->destroySurfaces()V
-PLcom/android/server/wm/ActivityRecord;->destroySurfaces(Z)V
+HPLcom/android/server/wm/ActivityRecord;->commitVisibility(ZZZ)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/TaskDisplayArea;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityRecord;->completeFinishing(Ljava/lang/String;Z)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/ActivityRecord;->completeResumeLocked()V
+HPLcom/android/server/wm/ActivityRecord;->computeCallerInfo(Landroid/os/IBinder;Landroid/content/Intent;ILjava/lang/String;Z)V
+PLcom/android/server/wm/ActivityRecord;->computeTaskAffinity(ILjava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/wm/ActivityRecord;->containsDismissKeyguardWindow()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityRecord;->containsShowWhenLockedWindow()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityRecord;->containsTurnScreenOnWindow()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityRecord;->continueLaunchTicking()Z
+PLcom/android/server/wm/ActivityRecord;->destroyIfPossible(Ljava/lang/String;)Z
+HPLcom/android/server/wm/ActivityRecord;->destroyImmediately(Ljava/lang/String;)Z
+HPLcom/android/server/wm/ActivityRecord;->destroySurfaces(Z)V
+HPLcom/android/server/wm/ActivityRecord;->destroyed(Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityRecord;->detachFromProcess()V
 PLcom/android/server/wm/ActivityRecord;->determineLaunchSourceType(ILcom/android/server/wm/WindowProcessController;)I
+PLcom/android/server/wm/ActivityRecord;->dispatchConfigurationToChild(Lcom/android/server/wm/ConfigurationContainer;Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/ActivityRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/ActivityRecord;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ILcom/android/server/wm/ActivityRecord;Ljava/lang/String;Ljava/lang/String;ZZZLjava/lang/String;ZLjava/lang/Runnable;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HPLcom/android/server/wm/ActivityRecord;->ensureActivityConfiguration(Z)Z
-PLcom/android/server/wm/ActivityRecord;->evaluateStartingWindowTheme(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;II)I
 PLcom/android/server/wm/ActivityRecord;->fillsParent()Z
-PLcom/android/server/wm/ActivityRecord;->findMainWindow()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/ActivityRecord;->findMainWindow(Z)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/ActivityRecord;->finishLaunchTickingLocked()V
-PLcom/android/server/wm/ActivityRecord;->finishOrAbortReplacingWindow()V
+HPLcom/android/server/wm/ActivityRecord;->findMainWindow(Z)Lcom/android/server/wm/WindowState;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityRecord;->finishActivityResults(ILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;)V
+HPLcom/android/server/wm/ActivityRecord;->finishIfPossible(ILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;Ljava/lang/String;Z)I
+PLcom/android/server/wm/ActivityRecord;->finishIfPossible(Ljava/lang/String;Z)I
+PLcom/android/server/wm/ActivityRecord;->finishRelaunching()V
 PLcom/android/server/wm/ActivityRecord;->finishSync(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Z)V
-PLcom/android/server/wm/ActivityRecord;->forAllActivities(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/ActivityRecord;->forAllActivities(Ljava/util/function/Predicate;Z)Z
-HPLcom/android/server/wm/ActivityRecord;->forToken(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityRecord;->forTokenLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/ActivityRecord;->getActivity(Ljava/util/function/Predicate;ZLcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityRecord;->getAllowUntrustedEmbeddingStateSharingProperty()Z
-PLcom/android/server/wm/ActivityRecord;->getAppCompatState()I
+HPLcom/android/server/wm/ActivityRecord;->forAllActivities(Ljava/util/function/Consumer;Z)V+]Ljava/util/function/Consumer;megamorphic_types
+HPLcom/android/server/wm/ActivityRecord;->forAllActivities(Ljava/util/function/Predicate;Z)Z+]Ljava/util/function/Predicate;megamorphic_types
+HPLcom/android/server/wm/ActivityRecord;->forToken(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
+HPLcom/android/server/wm/ActivityRecord;->forTokenLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/ActivityRecord;->getActivity(Ljava/util/function/Predicate;ZLcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;+]Ljava/util/function/Predicate;megamorphic_types
+HPLcom/android/server/wm/ActivityRecord;->getActivityWindowInfo()Landroid/window/ActivityWindowInfo;+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
+PLcom/android/server/wm/ActivityRecord;->getAnimationLeashParent()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/ActivityRecord;->getAppCompatDisplayInsets()Lcom/android/server/wm/AppCompatDisplayInsets;
 HPLcom/android/server/wm/ActivityRecord;->getAppCompatState(Z)I
 HPLcom/android/server/wm/ActivityRecord;->getBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/ActivityRecord;->getCameraCompatControlState()I
-HPLcom/android/server/wm/ActivityRecord;->getCompatDisplayInsets()Lcom/android/server/wm/ActivityRecord$CompatDisplayInsets;
-PLcom/android/server/wm/ActivityRecord;->getConfigurationChanges(Landroid/content/res/Configuration;)I
-PLcom/android/server/wm/ActivityRecord;->getDisplayArea()Lcom/android/server/wm/DisplayArea;
-PLcom/android/server/wm/ActivityRecord;->getDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/ActivityRecord;->getDisplayArea()Lcom/android/server/wm/DisplayArea;
+HPLcom/android/server/wm/ActivityRecord;->getDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
 HPLcom/android/server/wm/ActivityRecord;->getDisplayId()I
 PLcom/android/server/wm/ActivityRecord;->getFilteredReferrer(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/wm/ActivityRecord;->getInputApplicationHandle(Z)Landroid/view/InputApplicationHandle;
-PLcom/android/server/wm/ActivityRecord;->getLastParentBeforePip()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityRecord;->getLaunchedFromBubble()Z
-HPLcom/android/server/wm/ActivityRecord;->getLetterboxInnerBounds(Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityRecord;->getLetterboxInsets()Landroid/graphics/Rect;
 PLcom/android/server/wm/ActivityRecord;->getLockTaskLaunchMode(Landroid/content/pm/ActivityInfo;Landroid/app/ActivityOptions;)I
-PLcom/android/server/wm/ActivityRecord;->getLocusId()Landroid/content/LocusId;
-HPLcom/android/server/wm/ActivityRecord;->getMaxAspectRatio()F
-HPLcom/android/server/wm/ActivityRecord;->getMinAspectRatio()F
-PLcom/android/server/wm/ActivityRecord;->getOrCreateServiceConnectionsHolder()Lcom/android/server/wm/ActivityServiceConnectionsHolder;
-HPLcom/android/server/wm/ActivityRecord;->getOrganizedTask()Lcom/android/server/wm/Task;
+PLcom/android/server/wm/ActivityRecord;->getMaxAspectRatio()F
+PLcom/android/server/wm/ActivityRecord;->getMinAspectRatio()F
 HPLcom/android/server/wm/ActivityRecord;->getOrganizedTaskFragment()Lcom/android/server/wm/TaskFragment;
 HPLcom/android/server/wm/ActivityRecord;->getOrientation(I)I
 HPLcom/android/server/wm/ActivityRecord;->getOverrideOrientation()I
-PLcom/android/server/wm/ActivityRecord;->getPersistentSavedState()Landroid/os/PersistableBundle;
-PLcom/android/server/wm/ActivityRecord;->getProcessGlobalConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/ActivityRecord;->getProcessName()Ljava/lang/String;
+PLcom/android/server/wm/ActivityRecord;->getPid()I
+PLcom/android/server/wm/ActivityRecord;->getProtoFieldId()J
 PLcom/android/server/wm/ActivityRecord;->getRequestedConfigurationOrientation(Z)I
-PLcom/android/server/wm/ActivityRecord;->getRequestedConfigurationOrientation(ZI)I
+HPLcom/android/server/wm/ActivityRecord;->getRequestedConfigurationOrientation(ZI)I
 PLcom/android/server/wm/ActivityRecord;->getRequestedOrientation()I
 HPLcom/android/server/wm/ActivityRecord;->getRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityRecord;->getRootTask(Landroid/os/IBinder;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityRecord;->getSavedState()Landroid/os/Bundle;
-PLcom/android/server/wm/ActivityRecord;->getSplashscreenTheme(Landroid/app/ActivityOptions;)I
-PLcom/android/server/wm/ActivityRecord;->getStartingWindowType(ZZZZZZLandroid/window/TaskSnapshot;)I
-PLcom/android/server/wm/ActivityRecord;->getState()Lcom/android/server/wm/ActivityRecord$State;
-HPLcom/android/server/wm/ActivityRecord;->getTask()Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/ActivityRecord;->getTaskFragment()Lcom/android/server/wm/TaskFragment;
-HPLcom/android/server/wm/ActivityRecord;->getTurnScreenOnFlag()Z
-PLcom/android/server/wm/ActivityRecord;->getUid()I
+HPLcom/android/server/wm/ActivityRecord;->getTaskFragment()Lcom/android/server/wm/TaskFragment;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/ActivityRecord;->getUid()I
 PLcom/android/server/wm/ActivityRecord;->getUriPermissionsLocked()Lcom/android/server/uri/UriPermissionOwner;
-HPLcom/android/server/wm/ActivityRecord;->handleAlreadyVisible()V
-HPLcom/android/server/wm/ActivityRecord;->handleCompleteDeferredRemoval()Z
+PLcom/android/server/wm/ActivityRecord;->handleAlreadyVisible()V
 PLcom/android/server/wm/ActivityRecord;->handlesOrientationChangeFromDescendant(I)Z
-PLcom/android/server/wm/ActivityRecord;->hasActivity()Z
-HPLcom/android/server/wm/ActivityRecord;->hasFixedAspectRatio()Z
-HPLcom/android/server/wm/ActivityRecord;->hasOverlayOverUntrustedModeEmbedded()Z
-HPLcom/android/server/wm/ActivityRecord;->hasProcess()Z
-PLcom/android/server/wm/ActivityRecord;->hasSizeCompatBounds()Z
-PLcom/android/server/wm/ActivityRecord;->hasStartingWindow()Z
-PLcom/android/server/wm/ActivityRecord;->hasWallpaperBackgroundForLetterbox()Z
-PLcom/android/server/wm/ActivityRecord;->inSizeCompatMode()Z
+PLcom/android/server/wm/ActivityRecord;->hasProcess()Z
+HPLcom/android/server/wm/ActivityRecord;->hasSizeCompatBounds()Z
+HPLcom/android/server/wm/ActivityRecord;->hasStartingWindow()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ActivityRecord;->inSizeCompatMode()Z
 PLcom/android/server/wm/ActivityRecord;->isAlwaysOnTop()Z
-HPLcom/android/server/wm/ActivityRecord;->isConfigurationDispatchPaused()Z
-PLcom/android/server/wm/ActivityRecord;->isDisplaySleepingAndSwapping()Z
-PLcom/android/server/wm/ActivityRecord;->isEligibleForLetterboxEducation()Z
-HPLcom/android/server/wm/ActivityRecord;->isEmbedded()Z
-HPLcom/android/server/wm/ActivityRecord;->isEmbeddedInUntrustedMode()Z
+PLcom/android/server/wm/ActivityRecord;->isConfigurationDispatchPaused()Z
+HPLcom/android/server/wm/ActivityRecord;->isEligibleForLetterboxEducation()Z
+PLcom/android/server/wm/ActivityRecord;->isEmbedded()Z
 PLcom/android/server/wm/ActivityRecord;->isFirstChildWindowGreaterThanSecond(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/ActivityRecord;->isFocusable()Z
-PLcom/android/server/wm/ActivityRecord;->isFreezingScreen()Z
-PLcom/android/server/wm/ActivityRecord;->isHomeIntent(Landroid/content/Intent;)Z
-PLcom/android/server/wm/ActivityRecord;->isIconStylePreferred(I)Z
-PLcom/android/server/wm/ActivityRecord;->isInHistory()Z
-HPLcom/android/server/wm/ActivityRecord;->isInLetterboxAnimation()Z
-PLcom/android/server/wm/ActivityRecord;->isInRootTaskLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/ActivityRecord;->isInTransition()Z
+HPLcom/android/server/wm/ActivityRecord;->isFocusable()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+HPLcom/android/server/wm/ActivityRecord;->isHomeIntent(Landroid/content/Intent;)Z
+HPLcom/android/server/wm/ActivityRecord;->isIconStylePreferred(I)Z
+PLcom/android/server/wm/ActivityRecord;->isInAnyTask(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/ActivityRecord;->isInLetterboxAnimation()Z
+PLcom/android/server/wm/ActivityRecord;->isInRootTaskLocked()Z
+HPLcom/android/server/wm/ActivityRecord;->isInRootTaskLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/ActivityRecord;->isKeyguardLocked()Z
-PLcom/android/server/wm/ActivityRecord;->isLastWindow(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/ActivityRecord;->isLetterboxedForFixedOrientationAndAspectRatio()Z
-PLcom/android/server/wm/ActivityRecord;->isNoHistory()Z
+PLcom/android/server/wm/ActivityRecord;->isMainIntent(Landroid/content/Intent;)Z
 PLcom/android/server/wm/ActivityRecord;->isPersistable()Z
-PLcom/android/server/wm/ActivityRecord;->isProcessRunning()Z
-HPLcom/android/server/wm/ActivityRecord;->isRelaunching()Z
-PLcom/android/server/wm/ActivityRecord;->isReportedDrawn()Z
-HPLcom/android/server/wm/ActivityRecord;->isResizeable()Z
-HPLcom/android/server/wm/ActivityRecord;->isResizeable(Z)Z
-PLcom/android/server/wm/ActivityRecord;->isResolverActivity(Ljava/lang/String;)Z
-PLcom/android/server/wm/ActivityRecord;->isResolverOrDelegateActivity()Z
+HPLcom/android/server/wm/ActivityRecord;->isProcessRunning()Z
+PLcom/android/server/wm/ActivityRecord;->isRelaunching()Z
+HPLcom/android/server/wm/ActivityRecord;->isResizeable()Z+]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/wm/ActivityRecord;->isResolverOrDelegateActivity()Z
+HPLcom/android/server/wm/ActivityRecord;->isRestrictedFixedOrientation(I)Z
 PLcom/android/server/wm/ActivityRecord;->isRootOfTask()Z
-PLcom/android/server/wm/ActivityRecord;->isSleeping()Z
+PLcom/android/server/wm/ActivityRecord;->isSnapshotCompatible(Landroid/window/TaskSnapshot;)Z
+PLcom/android/server/wm/ActivityRecord;->isSnapshotOrientationCompatible(Landroid/window/TaskSnapshot;)Z
+PLcom/android/server/wm/ActivityRecord;->isStartingWindowDisplayed()Z
+HPLcom/android/server/wm/ActivityRecord;->isState$1(Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;)Z
 HPLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityRecord$State;)Z
 PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;)Z
-HPLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;)Z
-PLcom/android/server/wm/ActivityRecord;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
-PLcom/android/server/wm/ActivityRecord;->isTaskOverlay()Z
+PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;Lcom/android/server/wm/ActivityRecord$State;)Z
+HPLcom/android/server/wm/ActivityRecord;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/ActivityRecord;->isTopRunningActivity()Z
-PLcom/android/server/wm/ActivityRecord;->isTransitionForward()Z
-HPLcom/android/server/wm/ActivityRecord;->isUid(I)Z
+PLcom/android/server/wm/ActivityRecord;->isUid(I)Z
+HPLcom/android/server/wm/ActivityRecord;->isUniversalResizeable()Z
 HPLcom/android/server/wm/ActivityRecord;->isVisible()Z
 HPLcom/android/server/wm/ActivityRecord;->isWaitingForTransitionStart()Z
-HPLcom/android/server/wm/ActivityRecord;->lambda$getBounds$22(Landroid/graphics/Rect;)Landroid/graphics/Rect;
-PLcom/android/server/wm/ActivityRecord;->lambda$new$2()Landroid/content/Context;
-PLcom/android/server/wm/ActivityRecord;->lambda$showAllWindowsLocked$14(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->lambda$transferStartingWindowFromHiddenAboveTokenIfNeeded$8(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/ActivityRecord;->layoutLetterbox(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->logAppCompatState()V
-PLcom/android/server/wm/ActivityRecord;->logStartActivity(ILcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ActivityRecord;->logAppCompatState()V
+HPLcom/android/server/wm/ActivityRecord;->logStartActivity(ILcom/android/server/wm/Task;)V
 HPLcom/android/server/wm/ActivityRecord;->makeActiveIfNeeded(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityRecord;->makeFinishingLocked()V
 HPLcom/android/server/wm/ActivityRecord;->makeInvisible()V
-PLcom/android/server/wm/ActivityRecord;->makeVisibleIfNeeded(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/ActivityRecord;->needsZBoost()Z
+HPLcom/android/server/wm/ActivityRecord;->makeVisibleIfNeeded(Lcom/android/server/wm/ActivityRecord;Z)V
+PLcom/android/server/wm/ActivityRecord;->matchParentBounds()Z
+PLcom/android/server/wm/ActivityRecord;->moveFocusableActivityToTop(Ljava/lang/String;)Z
+HPLcom/android/server/wm/ActivityRecord;->needsZBoost()Z
+PLcom/android/server/wm/ActivityRecord;->notifyActivityRefresherAboutConfigurationChange(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/ActivityRecord;->notifyAppResumed()V
 PLcom/android/server/wm/ActivityRecord;->notifyUnknownVisibilityLaunchedForKeyguardTransition()V
-HPLcom/android/server/wm/ActivityRecord;->occludesParent()Z
 HPLcom/android/server/wm/ActivityRecord;->occludesParent(Z)Z
 PLcom/android/server/wm/ActivityRecord;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+PLcom/android/server/wm/ActivityRecord;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/ActivityRecord;->onChildVisibleRequestedChanged(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/ActivityRecord;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/ActivityRecord;->onFirstWindowDrawn(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/ActivityRecord;->onStartingWindowDrawn()V
+HPLcom/android/server/wm/ActivityRecord;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/ActivityRecord;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/ActivityRecord;->onLeashAnimationStarting(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+HPLcom/android/server/wm/ActivityRecord;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HPLcom/android/server/wm/ActivityRecord;->onRemovedFromDisplay()V
 PLcom/android/server/wm/ActivityRecord;->onSyncTransactionCommitted(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/ActivityRecord;->onWindowsDrawn()V
-PLcom/android/server/wm/ActivityRecord;->onWindowsGone()V
-PLcom/android/server/wm/ActivityRecord;->onWindowsVisible()V
-PLcom/android/server/wm/ActivityRecord;->orientationRespectedWithInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
-PLcom/android/server/wm/ActivityRecord;->pauseKeyDispatchingLocked()V
-PLcom/android/server/wm/ActivityRecord;->postApplyAnimation(ZZ)V
+HPLcom/android/server/wm/ActivityRecord;->pauseKeyDispatchingLocked()V
 PLcom/android/server/wm/ActivityRecord;->postWindowRemoveStartingWindowCleanup(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/ActivityRecord;->prepareSurfaces()V
-PLcom/android/server/wm/ActivityRecord;->providesMaxBounds()Z
-PLcom/android/server/wm/ActivityRecord;->providesOrientation()Z
+HPLcom/android/server/wm/ActivityRecord;->prepareSurfaces()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/ActivityRecord;->providesMaxBounds()Z
+HPLcom/android/server/wm/ActivityRecord;->providesOrientation()Z
 PLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->removeLaunchTickRunnable()V
-PLcom/android/server/wm/ActivityRecord;->removePauseTimeout()V
-PLcom/android/server/wm/ActivityRecord;->removeStartingWindow()V
-PLcom/android/server/wm/ActivityRecord;->removeStartingWindowAnimation(Z)V
-PLcom/android/server/wm/ActivityRecord;->removeStopTimeout()V
-PLcom/android/server/wm/ActivityRecord;->reportDescendantOrientationChangeIfNeeded()V
-PLcom/android/server/wm/ActivityRecord;->requestUpdateWallpaperIfNeeded()V
-PLcom/android/server/wm/ActivityRecord;->resolveAspectRatioRestriction(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->resolveFixedOrientationConfiguration(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/ActivityRecord;->removeFromHistory(Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityRecord;->removeImmediately()V
+HPLcom/android/server/wm/ActivityRecord;->removeStartingWindow()V
+HPLcom/android/server/wm/ActivityRecord;->removeStartingWindowAnimation(Z)V
+HPLcom/android/server/wm/ActivityRecord;->removeTimeouts()V
+HPLcom/android/server/wm/ActivityRecord;->requestUpdateWallpaperIfNeeded()V
+PLcom/android/server/wm/ActivityRecord;->resetSurfacePositionForAnimationLeash(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/ActivityRecord;->resolveAspectRatioRestriction(Landroid/content/res/Configuration;)V
 HPLcom/android/server/wm/ActivityRecord;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->resumeKeyDispatchingLocked()V
+HPLcom/android/server/wm/ActivityRecord;->resumeKeyDispatchingLocked()V
 PLcom/android/server/wm/ActivityRecord;->scheduleAddStartingWindow()V
-PLcom/android/server/wm/ActivityRecord;->schedulePauseTimeout()V
-PLcom/android/server/wm/ActivityRecord;->scheduleTopResumedActivityChanged(Z)Z
-PLcom/android/server/wm/ActivityRecord;->searchCandidateLaunchingActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityRecord;->setActivityType(ZILandroid/content/Intent;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityRecord;->setAppLayoutChanges(ILjava/lang/String;)V
+PLcom/android/server/wm/ActivityRecord;->scheduleConfigurationChanged(Landroid/content/res/Configuration;Landroid/window/ActivityWindowInfo;)V
+HPLcom/android/server/wm/ActivityRecord;->scheduleTopResumedActivityChanged(Z)Z
+PLcom/android/server/wm/ActivityRecord;->setAppLayoutChanges(I)V
 PLcom/android/server/wm/ActivityRecord;->setClientVisible(Z)V
-PLcom/android/server/wm/ActivityRecord;->setCurrentLaunchCanTurnScreenOn(Z)V
-PLcom/android/server/wm/ActivityRecord;->setCustomizeSplashScreenExitAnimation(Z)V
-PLcom/android/server/wm/ActivityRecord;->setDeferHidingClient(Z)V
 PLcom/android/server/wm/ActivityRecord;->setDropInputMode(I)V
-PLcom/android/server/wm/ActivityRecord;->setLastReportedConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->setLastReportedGlobalConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->setOptions(Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/ActivityRecord;->setProcess(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityRecord;->setSavedState(Landroid/os/Bundle;)V
-PLcom/android/server/wm/ActivityRecord;->setSizeConfigurations(Landroid/window/SizeConfigurationBuckets;)V
+PLcom/android/server/wm/ActivityRecord;->setOverrideGender(Landroid/content/res/Configuration;I)Z
+HPLcom/android/server/wm/ActivityRecord;->setProcess(Lcom/android/server/wm/WindowProcessController;)V
 HPLcom/android/server/wm/ActivityRecord;->setState(Lcom/android/server/wm/ActivityRecord$State;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityRecord;->setSurfaceControl(Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/ActivityRecord;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
-PLcom/android/server/wm/ActivityRecord;->setTaskHasBeenVisible()Z
 HPLcom/android/server/wm/ActivityRecord;->setVisibility(Z)V
-HPLcom/android/server/wm/ActivityRecord;->setVisibility(ZZ)V
-PLcom/android/server/wm/ActivityRecord;->setVisible(Z)V
-PLcom/android/server/wm/ActivityRecord;->setVisibleRequested(Z)Z
-PLcom/android/server/wm/ActivityRecord;->setWillCloseOrEnterPip(Z)V
+HPLcom/android/server/wm/ActivityRecord;->setVisible(Z)V
+HPLcom/android/server/wm/ActivityRecord;->setVisibleRequested(Z)Z
 HPLcom/android/server/wm/ActivityRecord;->shouldBeResumed(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityRecord;->shouldBeVisible(Z)Z
 HPLcom/android/server/wm/ActivityRecord;->shouldBeVisibleUnchecked()Z
-HPLcom/android/server/wm/ActivityRecord;->shouldCreateCompatDisplayInsets()Z
-PLcom/android/server/wm/ActivityRecord;->shouldIgnoreOrientationRequests()Z
+HPLcom/android/server/wm/ActivityRecord;->shouldCreateAppCompatDisplayInsets()Z+]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/wm/ActivityRecord;->shouldIgnoreOrientationRequests()Z
 HPLcom/android/server/wm/ActivityRecord;->shouldMakeActive(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/ActivityRecord;->shouldPauseActivity(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityRecord;->shouldPauseActivity(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/ActivityRecord;->shouldResumeActivity(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityRecord;->shouldSendCompatFakeFocus()Z
-HPLcom/android/server/wm/ActivityRecord;->shouldStartActivity()Z
-PLcom/android/server/wm/ActivityRecord;->shouldStartChangeTransition(Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/TaskFragment;)Z
-PLcom/android/server/wm/ActivityRecord;->shouldUpdateConfigForDisplayChanged()Z
-PLcom/android/server/wm/ActivityRecord;->shouldUseSolidColorSplashScreen(Lcom/android/server/wm/ActivityRecord;ZLandroid/app/ActivityOptions;I)Z
-PLcom/android/server/wm/ActivityRecord;->showAllWindowsLocked()V
-PLcom/android/server/wm/ActivityRecord;->showStartingWindow(Lcom/android/server/wm/ActivityRecord;ZZZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityRecord;->showStartingWindow(Lcom/android/server/wm/ActivityRecord;ZZZZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)V
+HPLcom/android/server/wm/ActivityRecord;->shouldSendCompatFakeFocus()Z
+HPLcom/android/server/wm/ActivityRecord;->showStartingWindow(Lcom/android/server/wm/ActivityRecord;ZZZZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)V
+PLcom/android/server/wm/ActivityRecord;->showStartingWindow(Z)V
 PLcom/android/server/wm/ActivityRecord;->showSurfaceOnCreation()Z
-HPLcom/android/server/wm/ActivityRecord;->showToCurrentUser()Z
-PLcom/android/server/wm/ActivityRecord;->startLaunchTickingLocked()V
-PLcom/android/server/wm/ActivityRecord;->stopFreezingScreen(ZZ)V
-PLcom/android/server/wm/ActivityRecord;->stopIfPossible()V
-PLcom/android/server/wm/ActivityRecord;->supportsMultiWindow()Z
+HPLcom/android/server/wm/ActivityRecord;->showToCurrentUser()Z+]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;
+PLcom/android/server/wm/ActivityRecord;->startRelaunching()V
+PLcom/android/server/wm/ActivityRecord;->stopFreezingScreen(Z)V
+HPLcom/android/server/wm/ActivityRecord;->stopIfPossible()V
 PLcom/android/server/wm/ActivityRecord;->supportsMultiWindowInDisplayArea(Lcom/android/server/wm/TaskDisplayArea;)Z
 PLcom/android/server/wm/ActivityRecord;->supportsPictureInPicture()Z
 HPLcom/android/server/wm/ActivityRecord;->supportsSizeChanges()I
-PLcom/android/server/wm/ActivityRecord;->takeRemoteTransition()Landroid/window/RemoteTransition;
-PLcom/android/server/wm/ActivityRecord;->takeSceneTransitionInfo()Landroid/app/ActivityOptions$SceneTransitionInfo;
 HPLcom/android/server/wm/ActivityRecord;->toString()Ljava/lang/String;
-PLcom/android/server/wm/ActivityRecord;->transferSplashScreenIfNeeded()Z
-PLcom/android/server/wm/ActivityRecord;->transferStartingWindowFromHiddenAboveTokenIfNeeded()V
-PLcom/android/server/wm/ActivityRecord;->updateAllDrawn()V
-PLcom/android/server/wm/ActivityRecord;->updateAnimatingActivityRegistry()V
-PLcom/android/server/wm/ActivityRecord;->updateColorTransform()V
-HPLcom/android/server/wm/ActivityRecord;->updateCompatDisplayInsets()V
-HPLcom/android/server/wm/ActivityRecord;->updateDrawnWindowStates(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/ActivityRecord;->updateLetterboxSurface(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/ActivityRecord;->transferStartingWindow(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityRecord;->updateLetterboxSurfaceIfNeeded(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/ActivityRecord;->updateOptionsLocked(Landroid/app/ActivityOptions;)V
 HPLcom/android/server/wm/ActivityRecord;->updateReportedConfigurationAndSend()Z
-HPLcom/android/server/wm/ActivityRecord;->updateReportedVisibilityLocked()V
-PLcom/android/server/wm/ActivityRecord;->updateResolvedBoundsPosition(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->updateTaskDescription(Ljava/lang/CharSequence;)V
+HPLcom/android/server/wm/ActivityRecord;->updateReportedVisibilityLocked()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/ActivityRecord;->updateUntrustedEmbeddingInputProtection()V
-HPLcom/android/server/wm/ActivityRecord;->updateVisibilityIgnoringKeyguard(Z)V
-PLcom/android/server/wm/ActivityRecord;->updateVisibleForServiceConnection()V
-PLcom/android/server/wm/ActivityRecord;->validateStartingWindowTheme(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;I)Z
+HPLcom/android/server/wm/ActivityRecord;->validateStartingWindowTheme(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;I)Z
 PLcom/android/server/wm/ActivityRecord;->waitForSyncTransactionCommit(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/ActivityRecord;->windowsAreFocusable()Z
-HPLcom/android/server/wm/ActivityRecord;->windowsAreFocusable(Z)Z
-PLcom/android/server/wm/ActivityRecordInputSink;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityRecordInputSink;->applyChangesToSurfaceIfChanged(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/ActivityRecordInputSink;->createInputWindowHandle()Landroid/view/InputWindowHandle;
-PLcom/android/server/wm/ActivityRecordInputSink;->createSurface(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl;
-HPLcom/android/server/wm/ActivityRecordInputSink;->getInputWindowHandleWrapper()Lcom/android/server/wm/InputWindowHandleWrapper;
-PLcom/android/server/wm/ActivitySecurityModelFeatureFlags$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/ActivitySecurityModelFeatureFlags;-><clinit>()V
-PLcom/android/server/wm/ActivitySecurityModelFeatureFlags;->initialize(Ljava/util/concurrent/Executor;Landroid/content/pm/PackageManager;)V
-PLcom/android/server/wm/ActivitySecurityModelFeatureFlags;->updateFromDeviceConfig()V
+HPLcom/android/server/wm/ActivityRecord;->windowsAreFocusable(Z)Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+PLcom/android/server/wm/ActivityRecord;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/wm/ActivityRecordInputSink;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Z)V
+HPLcom/android/server/wm/ActivityRecordInputSink;->applyChangesToSurfaceIfChanged(Landroid/view/SurfaceControl$Transaction;)V+]Landroid/view/SurfaceControl$Builder;Landroid/view/SurfaceControl$Builder;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/ActivityResult;-><init>(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IILandroid/content/Intent;Landroid/os/IBinder;)V
+PLcom/android/server/wm/ActivitySecurityModelFeatureFlags$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/wm/ActivityServiceConnectionsHolder;-><init>(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivitySnapshotCache;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/ActivitySnapshotController$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/wm/ActivitySnapshotController$$ExternalSyntheticLambda1;->getSystemDirectoryForUser(I)Ljava/io/File;
+PLcom/android/server/wm/ActivityServiceConnectionsHolder;->toString()Ljava/lang/String;
 PLcom/android/server/wm/ActivitySnapshotController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/SnapshotPersistQueue;)V
-PLcom/android/server/wm/ActivitySnapshotController;->beginSnapshotProcess()V
-PLcom/android/server/wm/ActivitySnapshotController;->createPersistInfoProvider(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/BaseAppSnapshotPersister$DirectoryResolver;)Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;
-PLcom/android/server/wm/ActivitySnapshotController;->endSnapshotProcess()V
-PLcom/android/server/wm/ActivitySnapshotController;->handleTaskTransition(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivitySnapshotController;->handleTransitionFinish(Ljava/util/ArrayList;)V
+PLcom/android/server/wm/ActivitySnapshotController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/ActivitySnapshotController;->handleActivityTransition(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivitySnapshotController;->handleTransitionFinish(Ljava/util/ArrayList;)V
 PLcom/android/server/wm/ActivitySnapshotController;->initSnapshotScale()F
-PLcom/android/server/wm/ActivitySnapshotController;->isSnapshotEnabled()Z
-PLcom/android/server/wm/ActivitySnapshotController;->notifyAppVisibilityChanged(Lcom/android/server/wm/ActivityRecord;Z)V
-HSPLcom/android/server/wm/ActivityStartController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 HSPLcom/android/server/wm/ActivityStartController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityStarter$Factory;)V
-PLcom/android/server/wm/ActivityStartController;->checkTargetUser(IZIILjava/lang/String;)I
-PLcom/android/server/wm/ActivityStartController;->getPendingRemoteAnimationRegistry()Lcom/android/server/wm/PendingRemoteAnimationRegistry;
+PLcom/android/server/wm/ActivityStartController;->checkTargetUser(IILjava/lang/String;IZ)I
+PLcom/android/server/wm/ActivityStartController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityStartController;->obtainStarter(Landroid/content/Intent;Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStartController;->onExecutionComplete(Lcom/android/server/wm/ActivityStarter;)V
-PLcom/android/server/wm/ActivityStartController;->onExecutionStarted()V
-PLcom/android/server/wm/ActivityStartController;->startHomeActivity(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;Lcom/android/server/wm/TaskDisplayArea;)V
-PLcom/android/server/wm/ActivityStartController;->startSetupActivity()V
-PLcom/android/server/wm/ActivityStartInterceptor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ActivityRecord;)V
-HSPLcom/android/server/wm/ActivityStartInterceptor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;)V
+PLcom/android/server/wm/ActivityStartController;->startActivityInPackage(IIILjava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
+PLcom/android/server/wm/ActivityStartInterceptor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ActivityStartInterceptor;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStartInterceptor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/content/Context;)V
-HPLcom/android/server/wm/ActivityStartInterceptor;->getInterceptorInfo(Ljava/lang/Runnable;)Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;
-PLcom/android/server/wm/ActivityStartInterceptor;->intercept(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;Landroid/content/pm/ActivityInfo;Ljava/lang/String;Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskFragment;IILandroid/app/ActivityOptions;Lcom/android/server/wm/TaskDisplayArea;)Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptHarmfulAppIfNeeded()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptHomeIfNeeded()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptLockTaskModeViolationPackageIfNeeded()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptLockedProfileIfNeeded()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptQuietProfileIfNeeded()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptSuspendedPackageIfNeeded()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->interceptWithConfirmCredentialsIfNeeded(Landroid/content/pm/ActivityInfo;I)Landroid/content/Intent;
-PLcom/android/server/wm/ActivityStartInterceptor;->isPackageSuspended()Z
-PLcom/android/server/wm/ActivityStartInterceptor;->onActivityLaunched(Landroid/app/TaskInfo;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStartInterceptor;->setStates(IIIILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityStarter$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/TaskFragment;)V
-HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityStartInterceptor;)V
+HPLcom/android/server/wm/ActivityStartInterceptor;->getInterceptorInfo(Lcom/android/server/wm/ActivityStartInterceptor$$ExternalSyntheticLambda0;)Lcom/android/server/wm/ActivityInterceptorCallback$ActivityInterceptorInfo;
+HPLcom/android/server/wm/ActivityStartInterceptor;->intercept(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;Landroid/content/pm/ActivityInfo;Ljava/lang/String;Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskFragment;IILandroid/app/ActivityOptions;Lcom/android/server/wm/TaskDisplayArea;)Z
+HPLcom/android/server/wm/ActivityStarter$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/ActivityStarter$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/ActivityStarter;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStarter$DefaultFactory;->obtain()Lcom/android/server/wm/ActivityStarter;
 PLcom/android/server/wm/ActivityStarter$DefaultFactory;->recycle(Lcom/android/server/wm/ActivityStarter;)V
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;->setController(Lcom/android/server/wm/ActivityStartController;)V
 PLcom/android/server/wm/ActivityStarter$Request;-><init>()V
 HPLcom/android/server/wm/ActivityStarter$Request;->reset()V
 HPLcom/android/server/wm/ActivityStarter$Request;->resolveActivity(Lcom/android/server/wm/ActivityTaskSupervisor;)V
-HPLcom/android/server/wm/ActivityStarter$Request;->set(Lcom/android/server/wm/ActivityStarter$Request;)V
 PLcom/android/server/wm/ActivityStarter;-><init>(Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityStartInterceptor;)V
-PLcom/android/server/wm/ActivityStarter;->addOrReparentStartingActivity(Lcom/android/server/wm/Task;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityStarter;->adjustLaunchFlagsToDocumentMode(Lcom/android/server/wm/ActivityRecord;ZZI)I
+PLcom/android/server/wm/ActivityStarter;->addOrReparentStartingActivity(Ljava/lang/String;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStarter;->avoidMoveToFront()Z
-PLcom/android/server/wm/ActivityStarter;->computeLaunchParams(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivityStarter;->computeLaunchingTaskFlags()V
 PLcom/android/server/wm/ActivityStarter;->computeResolveFilterUid(III)I
-PLcom/android/server/wm/ActivityStarter;->computeSuggestedLaunchDisplayArea(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/ActivityStarter;->computeTargetTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStarter;->deliverToCurrentTopIfNeeded(Lcom/android/server/wm/Task;Lcom/android/server/uri/NeededUriGrants;)I
+HPLcom/android/server/wm/ActivityStarter;->deliverNewIntent(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/uri/NeededUriGrants;)V
 HPLcom/android/server/wm/ActivityStarter;->execute()I
 HPLcom/android/server/wm/ActivityStarter;->executeRequest(Lcom/android/server/wm/ActivityStarter$Request;)I
-PLcom/android/server/wm/ActivityStarter;->getExternalResult(I)I
 PLcom/android/server/wm/ActivityStarter;->getOrCreateRootTask(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/Task;Landroid/app/ActivityOptions;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStarter;->getReusableTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStarter;->handleStartResult(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;ILcom/android/server/wm/Transition;Landroid/window/RemoteTransition;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStarter;->isAllowedToStart(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)I
-PLcom/android/server/wm/ActivityStarter;->onExecutionComplete()V
-PLcom/android/server/wm/ActivityStarter;->onExecutionStarted()V
-PLcom/android/server/wm/ActivityStarter;->postStartActivityProcessing(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ActivityStarter;->handleStartResult(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;IZLandroid/window/RemoteTransition;Lcom/android/server/wm/Transition;)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/ActivityStarter;->isAllowedToStart(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)I
+PLcom/android/server/wm/ActivityStarter;->logPIOnlyCreatorAllowsBAL()V
+HPLcom/android/server/wm/ActivityStarter;->onExecutionComplete()V
+HPLcom/android/server/wm/ActivityStarter;->postStartActivityProcessing(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStarter;->recordTransientLaunchIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityStarter;->recycleTask(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Lcom/android/server/uri/NeededUriGrants;Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;)I
 HPLcom/android/server/wm/ActivityStarter;->reset(Z)V
 PLcom/android/server/wm/ActivityStarter;->resolveToHeavyWeightSwitcherIfNeeded()I
-PLcom/android/server/wm/ActivityStarter;->sendNewTaskResultRequestIfNeeded()V
-HPLcom/android/server/wm/ActivityStarter;->set(Lcom/android/server/wm/ActivityStarter;)V
-PLcom/android/server/wm/ActivityStarter;->setActivityInfo(Landroid/content/pm/ActivityInfo;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setActivityOptions(Landroid/os/Bundle;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setActivityOptions(Lcom/android/server/wm/SafeActivityOptions;)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;->setCallingUid(I)Lcom/android/server/wm/ActivityStarter;
-HPLcom/android/server/wm/ActivityStarter;->setInitialState(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskFragment;ILcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;II)V
-PLcom/android/server/wm/ActivityStarter;->setIntent(Landroid/content/Intent;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setNewTask(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivityStarter;->setOutActivity([Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setProfilerInfo(Landroid/app/ProfilerInfo;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setReason(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setRequestCode(I)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setResolvedType(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setResultTo(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setResultWho(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setStartFlags(I)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setUserId(I)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->resumeTargetRootTaskIfNeeded()V
 HPLcom/android/server/wm/ActivityStarter;->startActivityInner(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ILandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/uri/NeededUriGrants;I)I
-PLcom/android/server/wm/ActivityStarter;->startActivityUnchecked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ILandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/uri/NeededUriGrants;I)I
-HSPLcom/android/server/wm/ActivityTaskManagerInternal;-><init>()V
+PLcom/android/server/wm/ActivityTaskManagerInternal$PreBindInfo;-><init>(Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;)Z
 PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZLcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda12;->run()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda13;-><init>()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda18;-><init>(Landroid/app/ActivityManagerInternal;)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda18;->run()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda19;-><init>()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda19;->accept(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/wm/ActivityTaskManagerService$$ExternalSyntheticLambda17;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda17;->run()V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda18;-><init>(I)V
+HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda18;->accept(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/wm/ActivityTaskManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda20;-><init>()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda21;-><init>()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda21;->accept(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/wm/ActivityTaskManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda22;->run()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda23;->run()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda24;->run()V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZI)V
+HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda2;->run()V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/res/Configuration;ILandroid/content/res/Configuration;IZ)V
+PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda9;->run()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$1;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
+PLcom/android/server/wm/ActivityTaskManagerService$1;->run()V
 HSPLcom/android/server/wm/ActivityTaskManagerService$H;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Looper;)V
+HPLcom/android/server/wm/ActivityTaskManagerService$H;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-HSPLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;->getService()Lcom/android/server/wm/ActivityTaskManagerService;
 HSPLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;->onStart()V
 PLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->createSleepTokenAcquirer(Ljava/lang/String;)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepTokenAcquirer;
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZZZII)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->checkCanCloseSystemDialogs(IILjava/lang/String;)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->closeSystemDialogs(Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZZLjava/lang/String;I)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dumpForProcesses(Ljava/io/PrintWriter;ZLjava/lang/String;IZZI)Z
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enableScreenAfterBoot(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getServiceConnectionsHolder(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityServiceConnectionsHolder;
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTaskToShowPermissionDialogOn(Ljava/lang/String;I)I
-HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopApp()Lcom/android/server/wm/WindowProcessController;
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopProcessState()I
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->handleAppDied(Lcom/android/server/wm/WindowProcessController;ZLjava/lang/Runnable;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->hasSystemAlertWindowPermission(IILjava/lang/String;)Z
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isCallerRecents(I)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isGetTasksAllowed(Ljava/lang/String;II)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isShuttingDown()Z
-HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isSleeping()Z
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isUidForeground(I)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->loadRecentTasksForUser(I)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyActiveVoiceInteractionServiceChanged(Landroid/content/ComponentName;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onCleanUpApplicationRecord(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onForceStopPackage(Ljava/lang/String;ZZI)Z
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessAdded(Lcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessMapped(ILcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessRemoved(Ljava/lang/String;I)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessUnMapped(I)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidActive(II)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidInactive(I)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidProcStateChanged(II)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->preBindApplication(Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getLaunchObserverRegistry()Lcom/android/server/wm/LaunchObserverRegistryImpl;
+HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTaskToShowPermissionDialogOn(ILjava/lang/String;)I
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopProcessState()I
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopVisibleActivities()Ljava/util/List;
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyActiveDreamChanged(Landroid/content/ComponentName;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onCleanUpApplicationRecord(Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onForceStopPackage(Ljava/lang/String;IZZ)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageAdded(Ljava/lang/String;Z)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageReplaced(Landroid/content/pm/ApplicationInfo;)V
+HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->preBindApplication(Lcom/android/server/wm/WindowProcessController;Landroid/content/pm/ApplicationInfo;)Lcom/android/server/wm/ActivityTaskManagerInternal$PreBindInfo;
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->registerActivityStartInterceptor(ILcom/android/server/wm/ActivityInterceptorCallback;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->registerCompatScaleProvider(ILcom/android/server/wm/CompatScaleProvider;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->registerScreenObserver(Lcom/android/server/wm/ActivityTaskManagerInternal$ScreenObserver;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->resumeTopActivities(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setAccessibilityServiceUids(Landroid/util/IntArray;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setAllowAppSwitches(Ljava/lang/String;II)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setBackgroundActivityStartCallback(Lcom/android/server/wm/BackgroundActivityStartCallback;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setCompanionAppUids(ILjava/util/Set;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setDeviceOwnerUid(I)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setProfileOwnerUids(Ljava/util/Set;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->showSystemReadyErrorDialogsIfNeeded()V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setAllowAppSwitches(IILjava/lang/String;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startHomeOnAllDisplays(ILjava/lang/String;)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->updateTopComponentForFactoryTest()V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->useTopSchedGroupForTopProcess()Z
+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/app/IAssistDataReceiver;Landroid/os/Bundle;I)V
 PLcom/android/server/wm/ActivityTaskManagerService$SettingObserver;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-HSPLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirerImpl;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirerImpl;->release(I)V
-HSPLcom/android/server/wm/ActivityTaskManagerService$UiHandler;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-HSPLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;-><init>()V
-PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$G-ZVGkJnOiiiPtzNWf__-3fwOz0(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$gl_rL-Uj8MkGoxcvZAtiOobhr1U(Lcom/android/server/wm/ActivityTaskManagerService;ZZLcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$o1LyOlG7Bjhnk6ihNjw6qxiRkiM(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$xw3oVmq5ZU_M2JzNhcLEohfHV_4(Lcom/android/server/wm/ActivityTaskManagerService;ZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$zamvtNbvmh2J_IeaFnbzAisM5zY(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V
-PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmActivityInterceptorCallbacks(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray;
-PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmCompanionAppUidsMap(Lcom/android/server/wm/ActivityTaskManagerService;)Ljava/util/Map;
-PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmRecentTasks(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
-HPLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmRetainPowerModeAndTopProcessState(Lcom/android/server/wm/ActivityTaskManagerService;)Z
-HSPLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmSleeping(Lcom/android/server/wm/ActivityTaskManagerService;)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fputmAccessibilityServiceUids(Lcom/android/server/wm/ActivityTaskManagerService;[I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fputmBackgroundActivityStartCallback(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/BackgroundActivityStartCallback;)V
-HSPLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mstart(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mupdateEventDispatchingLocked(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirer;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirer;->acquire(I)V
+HPLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirer;->release(I)V
+PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mwriteSleepStateToProto(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/util/proto/ProtoOutputStream;IZ)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->addWindowLayoutReasons(I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->applyUpdateLockStateLocked(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->assertPackageMatchesCallingUid(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->checkCallingPermission(Ljava/lang/String;)I
-PLcom/android/server/wm/ActivityTaskManagerService;->checkComponentPermission(Ljava/lang/String;IIIZ)I
-PLcom/android/server/wm/ActivityTaskManagerService;->checkPermission(Ljava/lang/String;II)I
+PLcom/android/server/wm/ActivityTaskManagerService;->canCloseSystemDialogs(II)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->checkCallingPermission(Ljava/lang/String;)I
+HPLcom/android/server/wm/ActivityTaskManagerService;->checkCanCloseSystemDialogs(IILjava/lang/String;)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
+PLcom/android/server/wm/ActivityTaskManagerService;->collectGrants(Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/uri/NeededUriGrants;
 HPLcom/android/server/wm/ActivityTaskManagerService;->continueWindowLayout()V
-HSPLcom/android/server/wm/ActivityTaskManagerService;->createAppWarnings(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;Ljava/io/File;)Lcom/android/server/wm/AppWarnings;
-HSPLcom/android/server/wm/ActivityTaskManagerService;->createTaskSupervisor()Lcom/android/server/wm/ActivityTaskSupervisor;
 HPLcom/android/server/wm/ActivityTaskManagerService;->deferWindowLayout()V
-HPLcom/android/server/wm/ActivityTaskManagerService;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZZZII)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->dumpActivity(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/wm/ActivityRecord;[Ljava/lang/String;Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->endPowerMode(I)V
+PLcom/android/server/wm/ActivityTaskManagerService;->dumpActivitiesLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZZLjava/lang/String;I)V
+PLcom/android/server/wm/ActivityTaskManagerService;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZZZIIJ)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->dumpInstalledPackagesConfig(Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->endPowerMode(I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->enforceTaskPermission(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->ensureConfigAndVisibilityAfterUpdate(Lcom/android/server/wm/ActivityRecord;I)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->finishRunningVoiceLocked()V
+HPLcom/android/server/wm/ActivityTaskManagerService;->enforceTaskPermission(Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->enqueueAssistContext(ILandroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZIJI)Lcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;
+PLcom/android/server/wm/ActivityTaskManagerService;->ensureConfigAndVisibilityAfterUpdate(ILcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->getActivityClientController()Landroid/app/IActivityClientController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getActivityInterceptorCallbacks()Landroid/util/SparseArray;
-PLcom/android/server/wm/ActivityTaskManagerService;->getActivityStartController()Lcom/android/server/wm/ActivityStartController;
 PLcom/android/server/wm/ActivityTaskManagerService;->getAllRootTaskInfosOnDisplay(I)Ljava/util/List;
-PLcom/android/server/wm/ActivityTaskManagerService;->getAnrController(Landroid/content/pm/ApplicationInfo;)Landroid/app/AnrController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
 PLcom/android/server/wm/ActivityTaskManagerService;->getAppOpsManager()Landroid/app/AppOpsManager;
-PLcom/android/server/wm/ActivityTaskManagerService;->getAppWarningsLocked()Lcom/android/server/wm/AppWarnings;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getBackgroundActivityStartCallback()Lcom/android/server/wm/BackgroundActivityStartCallback;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getBalAppSwitchesState()I
+PLcom/android/server/wm/ActivityTaskManagerService;->getAppTasks(ILjava/lang/String;)Ljava/util/List;
+PLcom/android/server/wm/ActivityTaskManagerService;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
 PLcom/android/server/wm/ActivityTaskManagerService;->getConfiguration()Landroid/content/res/Configuration;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getCurrentUserId()I
-HPLcom/android/server/wm/ActivityTaskManagerService;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getGlobalConfiguration()Landroid/content/res/Configuration;
+PLcom/android/server/wm/ActivityTaskManagerService;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getFocusedRootTaskInfo()Landroid/app/ActivityTaskManager$RootTaskInfo;
+PLcom/android/server/wm/ActivityTaskManagerService;->getGlobalConfiguration()Landroid/content/res/Configuration;
 PLcom/android/server/wm/ActivityTaskManagerService;->getGlobalConfigurationForCallingPid()Landroid/content/res/Configuration;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getGlobalConfigurationForPid(I)Landroid/content/res/Configuration;
-HSPLcom/android/server/wm/ActivityTaskManagerService;->getGlobalLock()Lcom/android/server/wm/WindowManagerGlobalLock;
 PLcom/android/server/wm/ActivityTaskManagerService;->getHomeIntent()Landroid/content/Intent;
-PLcom/android/server/wm/ActivityTaskManagerService;->getInputDispatchingTimeoutMillisLocked(Lcom/android/server/wm/ActivityRecord;)J
-PLcom/android/server/wm/ActivityTaskManagerService;->getInputDispatchingTimeoutMillisLocked(Lcom/android/server/wm/WindowProcessController;)J
-HPLcom/android/server/wm/ActivityTaskManagerService;->getLastStopAppSwitchesTime()J
-HPLcom/android/server/wm/ActivityTaskManagerService;->getLifecycleManager()Lcom/android/server/wm/ClientLifecycleManager;
-PLcom/android/server/wm/ActivityTaskManagerService;->getLockTaskController()Lcom/android/server/wm/LockTaskController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getPackageManager()Landroid/content/pm/IPackageManager;
-PLcom/android/server/wm/ActivityTaskManagerService;->getPackageManagerInternalLocked()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/wm/ActivityTaskManagerService;->getPackageNameIfUnique(II)Ljava/lang/String;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getPermissionPolicyInternal()Lcom/android/server/policy/PermissionPolicyInternal;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getPackageManagerInternalLocked()Landroid/content/pm/PackageManagerInternal;
 PLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(II)Lcom/android/server/wm/WindowProcessController;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(Landroid/app/IApplicationThread;)Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(Ljava/lang/String;I)Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks()Lcom/android/server/wm/RecentTasks;
-PLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getSysUiServiceComponentLocked()Landroid/content/ComponentName;
-PLcom/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;->getTasks(IZZI)Ljava/util/List;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getTransitionController()Lcom/android/server/wm/TransitionController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getUiContext()Landroid/content/Context;
-PLcom/android/server/wm/ActivityTaskManagerService;->getUserManager()Lcom/android/server/pm/UserManagerService;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(ILjava/lang/String;)Lcom/android/server/wm/WindowProcessController;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(Landroid/app/IApplicationThread;)Lcom/android/server/wm/WindowProcessController;+]Landroid/app/IApplicationThread;Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/IApplicationThread$Stub$Proxy;,Lcom/android/server/am/ApplicationThreadDeferred;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getRootTaskInfo(II)Landroid/app/ActivityTaskManager$RootTaskInfo;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskBounds(I)Landroid/graphics/Rect;
+PLcom/android/server/wm/ActivityTaskManagerService;->getTaskSnapshot(IZ)Landroid/window/TaskSnapshot;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getTasks(IZZI)Ljava/util/List;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getUserManager()Lcom/android/server/pm/UserManagerService;
 PLcom/android/server/wm/ActivityTaskManagerService;->getWindowOrganizerController()Landroid/window/IWindowOrganizerController;
 PLcom/android/server/wm/ActivityTaskManagerService;->handleIncomingUser(IIILjava/lang/String;)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->hasActiveVisibleWindow(I)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->hasSystemAlertWindowPermission(IILjava/lang/String;)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->increaseAssetConfigurationSeq()I
-PLcom/android/server/wm/ActivityTaskManagerService;->increaseConfigurationSeqLocked()I
-HSPLcom/android/server/wm/ActivityTaskManagerService;->initialize(Lcom/android/server/firewall/IntentFirewall;Lcom/android/server/am/PendingIntentController;Landroid/os/Looper;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->installSystemProviders()V
-PLcom/android/server/wm/ActivityTaskManagerService;->isBooted()Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isBooting()Z
+PLcom/android/server/wm/ActivityTaskManagerService;->hasSystemAlertWindowPermission(IILjava/lang/String;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->isAssistDataAllowed()Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->isCallerRecents(I)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isControllerAMonkey()Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isCrossUserAllowed(II)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->isGetTasksAllowed(Ljava/lang/String;II)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->isGetTasksAllowed(IILjava/lang/String;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->isInLockTaskMode()Z
 PLcom/android/server/wm/ActivityTaskManagerService;->isPip2ExperimentEnabled()Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isSameApp(ILjava/lang/String;)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isSdkSandboxActivityIntent(Landroid/content/Context;Landroid/content/Intent;)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isSleepingLocked()Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isSleepingOrShuttingDownLocked()Z
-PLcom/android/server/wm/ActivityTaskManagerService;->lambda$applyUpdateLockStateLocked$0(ZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->lambda$postFinishBooting$12(ZZ)V
-PLcom/android/server/wm/ActivityTaskManagerService;->lambda$scheduleAppGcsLocked$13()V
-PLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$3(ZZLcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$4(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->logAppTooSlow(Lcom/android/server/wm/WindowProcessController;JLjava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->isTopActivityImmersive()Z
+PLcom/android/server/wm/ActivityTaskManagerService;->keyguardGoingAway(I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->maybeHideLockedProfileActivityLocked()V
+PLcom/android/server/wm/ActivityTaskManagerService;->moveTaskToFrontLocked(Landroid/app/IApplicationThread;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->notifyTaskPersisterLocked(Lcom/android/server/wm/Task;Z)V
-HSPLcom/android/server/wm/ActivityTaskManagerService;->onActivityManagerInternalAdded()V
-PLcom/android/server/wm/ActivityTaskManagerService;->onImeWindowSetOnDisplayArea(ILcom/android/server/wm/DisplayArea;)V
-HSPLcom/android/server/wm/ActivityTaskManagerService;->onInitPowerManagement()V
+HPLcom/android/server/wm/ActivityTaskManagerService;->onScreenAwakeChanged(Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->onSystemReady()V
-PLcom/android/server/wm/ActivityTaskManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->postFinishBooting(ZZ)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->printDisplayInfoAndNewLine(Ljava/io/PrintWriter;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->registerAnrController(Landroid/app/AnrController;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->registerCompatScaleProvider(ILcom/android/server/wm/CompatScaleProvider;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->registerBackgroundActivityStartCallback(Landroid/os/IBinder;)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->requestAssistContextExtras(ILandroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZ)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->resumeAppSwitches()V
-HPLcom/android/server/wm/ActivityTaskManagerService;->retrieveSettings(Landroid/content/ContentResolver;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->scheduleAppGcsLocked()V
-PLcom/android/server/wm/ActivityTaskManagerService;->setBooted(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setBooting(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setDeviceOwnerUid(I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setLastResumedActivityUncheckLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setLockScreenShown(ZZ)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setProfileOwnerUids(Ljava/util/Set;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->setFocusedTask(ILcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->setLastResumedActivityUncheckLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->setLockScreenShown(ZZ)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->setProcessAnimatingWhileDozing(Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->setRecentTasks(Lcom/android/server/wm/RecentTasks;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->setUsageStatsManager(Landroid/app/usage/UsageStatsManagerInternal;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-HSPLcom/android/server/wm/ActivityTaskManagerService;->start()V
+PLcom/android/server/wm/ActivityTaskManagerService;->shouldShowDialogs(Landroid/content/res/Configuration;Z)Z
 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;->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;->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
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivityFromRecents(ILandroid/os/Bundle;)I
+PLcom/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
+PLcom/android/server/wm/ActivityTaskManagerService;->startBackNavigation(Landroid/os/RemoteCallback;Landroid/window/BackAnimationAdapter;)Landroid/window/BackNavigationInfo;
 PLcom/android/server/wm/ActivityTaskManagerService;->startPowerMode(I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->startProcessAsync(Lcom/android/server/wm/ActivityRecord;ZZLjava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->startProcessAsync(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;ZZ)V
 PLcom/android/server/wm/ActivityTaskManagerService;->startTimeTrackingFocusedActivityLocked()V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateActivityApplicationInfo(ILandroid/util/ArrayMap;)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->updateActivityUsageStats(Lcom/android/server/wm/ActivityRecord;I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateAssetConfiguration(Ljava/util/List;Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateBatteryStats(Lcom/android/server/wm/ActivityRecord;Z)V
+PLcom/android/server/wm/ActivityTaskManagerService;->stopAppSwitches()V
+PLcom/android/server/wm/ActivityTaskManagerService;->takeTaskSnapshot(IZ)Landroid/window/TaskSnapshot;
+PLcom/android/server/wm/ActivityTaskManagerService;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->updateActivityUsageStats(ILcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->updateBatteryStats(Lcom/android/server/wm/ActivityRecord;Z)V
 PLcom/android/server/wm/ActivityTaskManagerService;->updateConfiguration(Landroid/content/res/Configuration;)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Z)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZ)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZ)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->updateCpuStats()V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateEventDispatchingLocked(Z)V
-HPLcom/android/server/wm/ActivityTaskManagerService;->updateGlobalConfigurationLocked(Landroid/content/res/Configuration;ZZI)I
-PLcom/android/server/wm/ActivityTaskManagerService;->updatePreviousProcess(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;ZZI)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->updateGlobalConfigurationLocked(Landroid/content/res/Configuration;ZZI)I
+PLcom/android/server/wm/ActivityTaskManagerService;->updateOomAdj()V
 PLcom/android/server/wm/ActivityTaskManagerService;->updateResumedAppTrace(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateShouldShowDialogsLocked(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateSleepIfNeededLocked()V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateTopApp(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityTaskManagerService;->updateSleepIfNeededLocked()V
 PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;)V
-PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/os/Looper;)V
-PLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->activityIdleFromMessage(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->handleMessageInner(Landroid/os/Message;)Z
-HSPLcom/android/server/wm/ActivityTaskSupervisor$OpaqueActivityHelper;-><init>()V
-PLcom/android/server/wm/ActivityTaskSupervisor$OpaqueActivityHelper;->getOpaqueActivity(Lcom/android/server/wm/WindowContainer;Z)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/ActivityTaskSupervisor$OpaqueActivityHelper;->getVisibleOpaqueActivity(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;Z)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/ActivityTaskSupervisor$OpaqueActivityHelper;->test(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->handleMessageInner(Landroid/os/Message;)Z
 HPLcom/android/server/wm/ActivityTaskSupervisor$OpaqueActivityHelper;->test(Ljava/lang/Object;)Z
-HSPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;-><init>()V
-HPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->accept(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->fillAndReturnTop(Lcom/android/server/wm/Task;Landroid/app/TaskInfo;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityTaskSupervisor;->$r8$lambda$NOf6mVLk7SRVOwt1P5P1njNo27o(Lcom/android/server/wm/ActivityTaskSupervisor;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->-$$Nest$fgetmHandler(Lcom/android/server/wm/ActivityTaskSupervisor;)Lcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;
+HPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->accept(Ljava/lang/Object;)V+]Landroid/content/Intent;Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityTaskSupervisor;-><clinit>()V
 HSPLcom/android/server/wm/ActivityTaskSupervisor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Looper;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->acquireLaunchWakelock()V
 HPLcom/android/server/wm/ActivityTaskSupervisor;->activityIdleInternal(Lcom/android/server/wm/ActivityRecord;ZZLandroid/content/res/Configuration;)V
-HPLcom/android/server/wm/ActivityTaskSupervisor;->beginActivityVisibilityUpdate()V
-HPLcom/android/server/wm/ActivityTaskSupervisor;->beginDeferResume()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->canPlaceEntityOnDisplay(IIILandroid/content/pm/ActivityInfo;)Z
+HPLcom/android/server/wm/ActivityTaskSupervisor;->beginActivityVisibilityUpdate()V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityTaskSupervisor;->beginDeferResume()V
 PLcom/android/server/wm/ActivityTaskSupervisor;->canPlaceEntityOnDisplay(IIILcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo;)Z
 PLcom/android/server/wm/ActivityTaskSupervisor;->canUseActivityOptionsLaunchBounds(Landroid/app/ActivityOptions;)Z
-PLcom/android/server/wm/ActivityTaskSupervisor;->checkFinishBootingLocked()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->checkReadyForSleepLocked(Z)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->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/Task;)Z
-HPLcom/android/server/wm/ActivityTaskSupervisor;->computeProcessActivityStateBatch()V
-HPLcom/android/server/wm/ActivityTaskSupervisor;->endActivityVisibilityUpdate()V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->checkReadyForSleepLocked(Z)V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->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;)Z
+PLcom/android/server/wm/ActivityTaskSupervisor;->cleanUpRemovedTask(Lcom/android/server/wm/Task;ZZ)V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->computeProcessActivityStateBatch()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityTaskSupervisor;->dumpHistoryList(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/Runnable;)V
+PLcom/android/server/wm/ActivityTaskSupervisor;->endActivityVisibilityUpdate()V
 HPLcom/android/server/wm/ActivityTaskSupervisor;->endDeferResume()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
-PLcom/android/server/wm/ActivityTaskSupervisor;->getActivityMetricsLogger()Lcom/android/server/wm/ActivityMetricsLogger;
-PLcom/android/server/wm/ActivityTaskSupervisor;->getBackgroundActivityLaunchController()Lcom/android/server/wm/BackgroundActivityStartController;
-PLcom/android/server/wm/ActivityTaskSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;Ljava/lang/String;IIZ)I
+PLcom/android/server/wm/ActivityTaskSupervisor;->findTaskToMoveToFront(Lcom/android/server/wm/Task;ILandroid/app/ActivityOptions;Ljava/lang/String;Z)V
 PLcom/android/server/wm/ActivityTaskSupervisor;->getDeviceIdForDisplayId(I)I
-HSPLcom/android/server/wm/ActivityTaskSupervisor;->getKeyguardController()Lcom/android/server/wm/KeyguardController;
-PLcom/android/server/wm/ActivityTaskSupervisor;->getLaunchParamsController()Lcom/android/server/wm/LaunchParamsController;
-PLcom/android/server/wm/ActivityTaskSupervisor;->getNextTaskIdForUser()I
 PLcom/android/server/wm/ActivityTaskSupervisor;->getNextTaskIdForUser(I)I
-PLcom/android/server/wm/ActivityTaskSupervisor;->getRunningTasks()Lcom/android/server/wm/RunningTasks;
-PLcom/android/server/wm/ActivityTaskSupervisor;->getSystemChooserActivity()Landroid/content/ComponentName;
-PLcom/android/server/wm/ActivityTaskSupervisor;->handleForcedResizableTaskIfNeeded(Lcom/android/server/wm/Task;I)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;ILcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;ILcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/Task;Z)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->handleTopResumedStateReleased(Z)V
-HPLcom/android/server/wm/ActivityTaskSupervisor;->inActivityVisibilityUpdate()Z
-HSPLcom/android/server/wm/ActivityTaskSupervisor;->initPowerManagement()V
-HSPLcom/android/server/wm/ActivityTaskSupervisor;->initialize()V
+PLcom/android/server/wm/ActivityTaskSupervisor;->goingToSleepLocked()V
+PLcom/android/server/wm/ActivityTaskSupervisor;->handleForcedResizableTaskIfNeeded(ILcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityTaskSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskDisplayArea;Z)V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->handleTopResumedStateReleased(Z)V
 PLcom/android/server/wm/ActivityTaskSupervisor;->isCallerAllowedToLaunchOnDisplay(IIILandroid/content/pm/ActivityInfo;)Z
-PLcom/android/server/wm/ActivityTaskSupervisor;->isCallerAllowedToLaunchOnTaskDisplayArea(IILcom/android/server/wm/TaskDisplayArea;Landroid/content/pm/ActivityInfo;)Z
-HPLcom/android/server/wm/ActivityTaskSupervisor;->isRootVisibilityUpdateDeferred()Z
-PLcom/android/server/wm/ActivityTaskSupervisor;->lambda$activityIdleInternal$2()V
 PLcom/android/server/wm/ActivityTaskSupervisor;->logIfTransactionTooLarge(Landroid/content/Intent;Landroid/os/Bundle;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->nextTaskIdForUser(II)I
-PLcom/android/server/wm/ActivityTaskSupervisor;->onProcessActivityStateChanged(Lcom/android/server/wm/WindowProcessController;Z)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->onRecentTaskAdded(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->onRecentTaskRemoved(Lcom/android/server/wm/Task;ZZ)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->onSystemReady()V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->onProcessActivityStateChanged(Lcom/android/server/wm/WindowProcessController;Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/ActivityTaskSupervisor;->onUserUnlocked(I)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->processStoppingAndFinishingActivities(Lcom/android/server/wm/ActivityRecord;ZLjava/lang/String;)V
-HPLcom/android/server/wm/ActivityTaskSupervisor;->readyToResume()Z
+PLcom/android/server/wm/ActivityTaskSupervisor;->printThisActivity(Ljava/io/PrintWriter;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZLjava/lang/String;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda3;)Z
+HPLcom/android/server/wm/ActivityTaskSupervisor;->processStoppingAndFinishingActivities(Lcom/android/server/wm/ActivityRecord;ZLjava/lang/String;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityTaskSupervisor;->readyToResume()Z
 HPLcom/android/server/wm/ActivityTaskSupervisor;->realStartActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/WindowProcessController;ZZ)Z
-HPLcom/android/server/wm/ActivityTaskSupervisor;->removeHistoryRecords(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->removeHistoryRecords(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskSupervisor;->removeHistoryRecords(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/ActivityTaskSupervisor;->removeTask(Lcom/android/server/wm/Task;ZZLjava/lang/String;IILjava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskSupervisor;->removeTaskById(IIILjava/lang/String;ZZ)Z
 PLcom/android/server/wm/ActivityTaskSupervisor;->reportActivityLaunched(ZLcom/android/server/wm/ActivityRecord;JI)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->reportResumedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityTaskSupervisor;->reportWaitingActivityLaunchedIfNeeded(Lcom/android/server/wm/ActivityRecord;I)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;ILandroid/app/ProfilerInfo;)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/wm/ActivityTaskSupervisor;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;IIII)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleIdle()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleIdleTimeout(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleProcessStoppingAndFinishingActivitiesIfNeeded()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleStartHome(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleTopResumedActivityStateIfNeeded()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleTopResumedActivityStateLossIfNeeded()V
-PLcom/android/server/wm/ActivityTaskSupervisor;->scheduleTopResumedStateLossTimeout(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->setDeferRootVisibilityUpdate(Z)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->setLaunchSource(I)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->setNextTaskIdForUser(II)V
-HSPLcom/android/server/wm/ActivityTaskSupervisor;->setRecentTasks(Lcom/android/server/wm/RecentTasks;)V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;ILandroid/app/ProfilerInfo;)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/wm/ActivityTaskSupervisor;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;IIII)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/wm/ActivityTaskSupervisor;->scheduleIdle()V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->scheduleProcessStoppingAndFinishingActivitiesIfNeeded()V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->scheduleTopResumedActivityStateLossIfNeeded()V
 HSPLcom/android/server/wm/ActivityTaskSupervisor;->setRunningTasks(Lcom/android/server/wm/RunningTasks;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/ActivityTaskSupervisor;->startActivityFromRecents(IIILcom/android/server/wm/SafeActivityOptions;)I
 PLcom/android/server/wm/ActivityTaskSupervisor;->startSpecificActivity(Lcom/android/server/wm/ActivityRecord;ZZ)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->stopWaitingForActivityVisible(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityTaskSupervisor;->updateHomeProcess(Lcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/ActivityTaskSupervisor;->updateTopResumedActivityIfNeeded(Ljava/lang/String;)V
-PLcom/android/server/wm/AnimatingActivityRegistry;-><init>()V
-PLcom/android/server/wm/AnimationAdapter;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
+PLcom/android/server/wm/ActivityTaskSupervisor;->updateHomeProcessIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityTaskSupervisor;->updateTopResumedActivityIfNeeded(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/ActivityTaskSupervisor;->wakeUp(ILjava/lang/String;)V
+PLcom/android/server/wm/AnimatingActivityRegistry;->endDeferringFinished()V
+PLcom/android/server/wm/AnimationAdapter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/AnimationAdapter;->shouldDeferAnimationFinish()Z
 PLcom/android/server/wm/AnrController;-><clinit>()V
 PLcom/android/server/wm/AnrController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/AnrController;->onFocusChanged(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/AppCompatAspectRatioOverrides$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AppCompatConfiguration;I)V
+HPLcom/android/server/wm/AppCompatAspectRatioOverrides$$ExternalSyntheticLambda0;->getAsBoolean()Z
+HPLcom/android/server/wm/AppCompatAspectRatioOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;Lcom/android/server/wm/utils/OptPropFactory;Lcom/android/server/wm/AppCompatDeviceStateQuery;Lcom/android/server/wm/AppCompatReachabilityOverrides;)V
+HPLcom/android/server/wm/AppCompatAspectRatioOverrides;->getUserMinAspectRatioOverrideCode()I+]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;
+HPLcom/android/server/wm/AppCompatAspectRatioOverrides;->hasFullscreenOverride()Z
+HPLcom/android/server/wm/AppCompatAspectRatioOverrides;->isSystemOverrideToFullscreenEnabled()Z
+HPLcom/android/server/wm/AppCompatAspectRatioOverrides;->shouldEnableUserAspectRatioSettings()Z
+HPLcom/android/server/wm/AppCompatAspectRatioPolicy;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TransparentPolicy;Lcom/android/server/wm/AppCompatOverrides;)V
+HPLcom/android/server/wm/AppCompatAspectRatioPolicy;->applyAspectRatio(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;F)Z
+HPLcom/android/server/wm/AppCompatAspectRatioPolicy;->getMaxAspectRatio()F
+HPLcom/android/server/wm/AppCompatAspectRatioPolicy;->getMinAspectRatio()F
+PLcom/android/server/wm/AppCompatAspectRatioPolicy;->isLetterboxedForFixedOrientationAndAspectRatio()Z
+PLcom/android/server/wm/AppCompatCameraOverrides$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AppCompatConfiguration;)V
+PLcom/android/server/wm/AppCompatCameraOverrides$$ExternalSyntheticLambda0;->getAsBoolean()Z
+HPLcom/android/server/wm/AppCompatCameraOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;Lcom/android/server/wm/utils/OptPropFactory;)V
+PLcom/android/server/wm/AppCompatCameraPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/AppCompatCameraPolicy;->getAppCompatCameraPolicy(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/AppCompatCameraPolicy;
+HPLcom/android/server/wm/AppCompatCameraPolicy;->shouldCameraCompatControlOrientation(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/AppCompatCameraPolicy;->shouldOverrideMinAspectRatioForCamera(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/AppCompatConfiguration$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/wm/AppCompatConfiguration$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
+PLcom/android/server/wm/AppCompatConfiguration;-><init>(Landroid/content/Context;Lcom/android/server/wm/AppCompatConfigurationPersister;)V
+PLcom/android/server/wm/AppCompatConfiguration;->assertValidMultiplier(FLjava/lang/String;)V
+PLcom/android/server/wm/AppCompatConfiguration;->getLetterboxBackgroundColor()Landroid/graphics/Color;
+HPLcom/android/server/wm/AppCompatConfiguration;->getLetterboxBackgroundType()I
+PLcom/android/server/wm/AppCompatConfiguration;->isTranslucentLetterboxingEnabled()Z
+HPLcom/android/server/wm/AppCompatConfiguration;->isUserAppAspectRatioFullscreenEnabled()Z
+HPLcom/android/server/wm/AppCompatConfiguration;->isUserAppAspectRatioSettingsEnabled()Z
+PLcom/android/server/wm/AppCompatConfiguration;->readLetterboxHorizontalReachabilityPositionFromConfig(Landroid/content/Context;Z)I
+PLcom/android/server/wm/AppCompatConfiguration;->readLetterboxVerticalReachabilityPositionFromConfig(Landroid/content/Context;Z)I
+PLcom/android/server/wm/AppCompatConfiguration;->setLetterboxBookModePositionMultiplier(F)V
+PLcom/android/server/wm/AppCompatConfiguration;->setLetterboxTabletopModePositionMultiplier(F)V
+PLcom/android/server/wm/AppCompatConfigurationPersister;-><init>(Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/io/File;Lcom/android/server/wm/PersisterQueue;Ljava/util/function/Consumer;Ljava/lang/String;)V
+PLcom/android/server/wm/AppCompatConfigurationPersister;->useDefaultValue()V
+PLcom/android/server/wm/AppCompatController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AppCompatController;Landroid/content/pm/PackageManager;)V
+HPLcom/android/server/wm/AppCompatController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/AppCompatDeviceStateQuery;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/AppCompatFocusOverrides$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AppCompatConfiguration;)V
+PLcom/android/server/wm/AppCompatFocusOverrides$$ExternalSyntheticLambda0;->getAsBoolean()Z
+HPLcom/android/server/wm/AppCompatFocusOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;Lcom/android/server/wm/utils/OptPropFactory;)V
+PLcom/android/server/wm/AppCompatLetterboxOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;)V
+PLcom/android/server/wm/AppCompatLetterboxOverrides;->getLetterboxBackgroundColor()Landroid/graphics/Color;
+PLcom/android/server/wm/AppCompatLetterboxPolicy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AppCompatLetterboxPolicy;)V
+PLcom/android/server/wm/AppCompatLetterboxPolicy$LegacyLetterboxPolicyState;-><init>(Lcom/android/server/wm/AppCompatLetterboxPolicy;)V
+HPLcom/android/server/wm/AppCompatLetterboxPolicy$LegacyLetterboxPolicyState;->isRunning()Z
+HPLcom/android/server/wm/AppCompatLetterboxPolicy$LegacyLetterboxPolicyState;->updateLetterboxSurfaceIfNeeded(Lcom/android/server/wm/WindowState;Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/AppCompatLetterboxPolicy;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;)V
+HPLcom/android/server/wm/AppCompatLetterboxPolicy;->isLetterboxedNotForDisplayCutout(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/AppCompatLetterboxPolicy;->shouldNotLayoutLetterbox(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/AppCompatLetterboxPolicy;->shouldShowLetterboxUi(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/AppCompatLetterboxPolicy;->start(Lcom/android/server/wm/WindowState;)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/AppCompatOrientationOverrides$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/wm/AppCompatOrientationOverrides$$ExternalSyntheticLambda2;->getAsBoolean()Z
+HPLcom/android/server/wm/AppCompatOrientationOverrides$OrientationOverridesState;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatOrientationOverrides$$ExternalSyntheticLambda0;)V
+HPLcom/android/server/wm/AppCompatOrientationOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;Lcom/android/server/wm/utils/OptPropFactory;)V
+PLcom/android/server/wm/AppCompatOrientationOverrides;->shouldIgnoreOrientationRequestLoop()Z
+PLcom/android/server/wm/AppCompatOrientationPolicy;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatOverrides;)V
+HPLcom/android/server/wm/AppCompatOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;Lcom/android/server/wm/utils/OptPropFactory;Lcom/android/server/wm/AppCompatDeviceStateQuery;)V
+HPLcom/android/server/wm/AppCompatReachabilityOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;Lcom/android/server/wm/AppCompatDeviceStateQuery;)V
+PLcom/android/server/wm/AppCompatReachabilityPolicy;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;)V
+PLcom/android/server/wm/AppCompatResizeOverrides;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/utils/OptPropFactory;)V
+PLcom/android/server/wm/AppCompatRoundedCorners;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatLetterboxPolicy$$ExternalSyntheticLambda0;)V
+HPLcom/android/server/wm/AppCompatRoundedCorners;->getCropBoundsIfNeeded(Lcom/android/server/wm/WindowState;)Landroid/graphics/Rect;
+HPLcom/android/server/wm/AppCompatRoundedCorners;->getRoundedCornersRadius(Lcom/android/server/wm/WindowState;)I
+PLcom/android/server/wm/AppCompatSizeCompatModePolicy;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/AppCompatSizeCompatModePolicy;->hasSizeCompatBounds()Z
+HPLcom/android/server/wm/AppCompatSizeCompatModePolicy;->updateAppCompatDisplayInsets()V
+PLcom/android/server/wm/AppCompatUtils$1;-><init>(Ljava/util/function/BooleanSupplier;)V
+PLcom/android/server/wm/AppCompatUtils$1;->getAsBoolean()Z
+HPLcom/android/server/wm/AppCompatUtils;->isChangeEnabled(Lcom/android/server/wm/ActivityRecord;J)Z+]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;
 PLcom/android/server/wm/AppSnapshotLoader;-><init>(Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
-PLcom/android/server/wm/AppTransition$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/wm/AppTransition$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/AppSnapshotLoader;->loadTask(IIZ)Landroid/window/TaskSnapshot;
+PLcom/android/server/wm/AppTaskImpl;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;II)V
+PLcom/android/server/wm/AppTaskImpl;->checkCallerOrSystemOrRoot()V
+PLcom/android/server/wm/AppTaskImpl;->finishAndRemoveTask()V
+PLcom/android/server/wm/AppTaskImpl;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
+PLcom/android/server/wm/AppTaskImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/server/wm/AppTaskImpl;->setExcludeFromRecents(Z)V
+HPLcom/android/server/wm/AppTransition$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
 PLcom/android/server/wm/AppTransition$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/AppTransition;)V
 PLcom/android/server/wm/AppTransition;-><clinit>()V
 PLcom/android/server/wm/AppTransition;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/AppTransition;->clear()V
+PLcom/android/server/wm/AppTransition;->canOverridePendingAppTransition()Z
 PLcom/android/server/wm/AppTransition;->clear(Z)V
 PLcom/android/server/wm/AppTransition;->containsTransitRequest(I)Z
-PLcom/android/server/wm/AppTransition;->fetchAppTransitionSpecsFromFuture()V
 PLcom/android/server/wm/AppTransition;->getFirstAppTransition()I
-PLcom/android/server/wm/AppTransition;->getKeyguardTransition()I
-PLcom/android/server/wm/AppTransition;->getRemoteAnimationController()Lcom/android/server/wm/RemoteAnimationController;
-PLcom/android/server/wm/AppTransition;->getTransitFlags()I
 PLcom/android/server/wm/AppTransition;->goodToGo(ILcom/android/server/wm/ActivityRecord;)I
-PLcom/android/server/wm/AppTransition;->isFetchingAppTransitionsSpecs()Z
-PLcom/android/server/wm/AppTransition;->isKeyguardGoingAwayTransitOld(I)Z
-PLcom/android/server/wm/AppTransition;->isKeyguardTransit(I)Z
-PLcom/android/server/wm/AppTransition;->isNormalTransit(I)Z
 HPLcom/android/server/wm/AppTransition;->isReady()Z
-HPLcom/android/server/wm/AppTransition;->isRunning()Z
-PLcom/android/server/wm/AppTransition;->isTaskOpenTransitOld(I)Z
-PLcom/android/server/wm/AppTransition;->isTimeout()Z
 HPLcom/android/server/wm/AppTransition;->isTransitionSet()Z
-PLcom/android/server/wm/AppTransition;->loadAnimationAttr(Landroid/view/WindowManager$LayoutParams;II)Landroid/view/animation/Animation;
-PLcom/android/server/wm/AppTransition;->needsBoosting()Z
 PLcom/android/server/wm/AppTransition;->notifyAppTransitionFinishedLocked(Landroid/os/IBinder;)V
-PLcom/android/server/wm/AppTransition;->notifyAppTransitionPendingLocked()V
-PLcom/android/server/wm/AppTransition;->notifyAppTransitionStartingLocked(JJ)I
+PLcom/android/server/wm/AppTransition;->overridePendingAppTransition(Ljava/lang/String;IIILandroid/os/IRemoteCallback;Landroid/os/IRemoteCallback;Z)V
 PLcom/android/server/wm/AppTransition;->postAnimationCallback()V
 PLcom/android/server/wm/AppTransition;->prepare()Z
-PLcom/android/server/wm/AppTransition;->prepareAppTransition(II)Z
-PLcom/android/server/wm/AppTransition;->registerListenerLocked(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
-PLcom/android/server/wm/AppTransition;->removeAppTransitionTimeoutCallbacks()V
-PLcom/android/server/wm/AppTransition;->setAppTransitionState(I)V
-PLcom/android/server/wm/AppTransition;->setIdle()V
 PLcom/android/server/wm/AppTransition;->setLastAppTransition(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/AppTransition;->setReady()V
 PLcom/android/server/wm/AppTransition;->updateBooster()V
-PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda2;-><init>(ILandroid/util/ArraySet;)V
-PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda4;-><init>()V
+PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda1;-><init>(ILandroid/util/ArraySet;)V
+PLcom/android/server/wm/AppTransitionController$$ExternalSyntheticLambda2;-><init>(I)V
 PLcom/android/server/wm/AppTransitionController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/AppTransitionController;->applyAnimations(Landroid/util/ArraySet;Landroid/util/ArraySet;ILandroid/view/WindowManager$LayoutParams;Z)V
-PLcom/android/server/wm/AppTransitionController;->canBeWallpaperTarget(Landroid/util/ArraySet;)Z
-PLcom/android/server/wm/AppTransitionController;->collectActivityTypes(Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/util/ArraySet;)Landroid/util/ArraySet;
-PLcom/android/server/wm/AppTransitionController;->containsVoiceInteraction(Landroid/util/ArraySet;)Z
-PLcom/android/server/wm/AppTransitionController;->findAnimLayoutParamsToken(ILandroid/util/ArraySet;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/util/ArraySet;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/AppTransitionController;->getAnimLp(Lcom/android/server/wm/ActivityRecord;)Landroid/view/WindowManager$LayoutParams;
 PLcom/android/server/wm/AppTransitionController;->getAnimationTargets(Landroid/util/ArraySet;Landroid/util/ArraySet;Z)Landroid/util/ArraySet;
-PLcom/android/server/wm/AppTransitionController;->getOldWallpaper()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/AppTransitionController;->getRemoteAnimationOverride(Lcom/android/server/wm/WindowContainer;ILandroid/util/ArraySet;)Landroid/view/RemoteAnimationAdapter;
 PLcom/android/server/wm/AppTransitionController;->getTopApp(Landroid/util/ArraySet;Z)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/AppTransitionController;->getTransitCompatType(Lcom/android/server/wm/AppTransition;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/util/ArraySet;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Z)I
 PLcom/android/server/wm/AppTransitionController;->getTransitContainerType(Lcom/android/server/wm/WindowContainer;)I
-HPLcom/android/server/wm/AppTransitionController;->handleAppTransitionReady()V
-PLcom/android/server/wm/AppTransitionController;->handleChangingApps(I)V
 PLcom/android/server/wm/AppTransitionController;->handleClosingApps()V
-PLcom/android/server/wm/AppTransitionController;->handleClosingChangingContainers()V
 PLcom/android/server/wm/AppTransitionController;->handleOpeningApps()V
 PLcom/android/server/wm/AppTransitionController;->lookForHighestTokenWithFilter(Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/util/ArraySet;Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/AppTransitionController;->overrideWithRemoteAnimationIfSet(Lcom/android/server/wm/ActivityRecord;ILandroid/util/ArraySet;)V
-PLcom/android/server/wm/AppTransitionController;->overrideWithTaskFragmentRemoteAnimation(ILandroid/util/ArraySet;)Z
-PLcom/android/server/wm/AppTransitionController;->transitionContainsTaskFragmentWithBoundsOverride()Z
 PLcom/android/server/wm/AppTransitionController;->transitionGoodToGo(Landroid/util/ArraySet;Landroid/util/ArrayMap;)Z
-PLcom/android/server/wm/AppTransitionController;->transitionGoodToGoForTaskFragments()Z
-PLcom/android/server/wm/AppTransitionController;->transitionMayContainNonAppWindows(I)Z
-PLcom/android/server/wm/AppTransitionController;->unfreezeEmbeddedChangingWindows()V
-PLcom/android/server/wm/AppWarnings$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/wm/AppWarnings$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/AppWarnings$UiHandler;-><init>(Lcom/android/server/wm/AppWarnings;Landroid/os/Looper;)V
 PLcom/android/server/wm/AppWarnings$UiHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/wm/AppWarnings$UiHandler;->hideUnsupportedDisplaySizeDialog()V
 HSPLcom/android/server/wm/AppWarnings$WriteConfigTask;-><init>(Lcom/android/server/wm/AppWarnings;)V
-HSPLcom/android/server/wm/AppWarnings$WriteConfigTask;-><init>(Lcom/android/server/wm/AppWarnings;Lcom/android/server/wm/AppWarnings$WriteConfigTask-IA;)V
-PLcom/android/server/wm/AppWarnings;->$r8$lambda$H4JMXMIkLrrC65qIRbXEOcg8UtQ(Ljava/lang/String;)Z
-PLcom/android/server/wm/AppWarnings;->-$$Nest$mhideUnsupportedDisplaySizeDialogUiThread(Lcom/android/server/wm/AppWarnings;)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
-PLcom/android/server/wm/AppWarnings;->hideUnsupportedDisplaySizeDialogUiThread()V
-PLcom/android/server/wm/AppWarnings;->lambda$showDeprecatedAbiDialogIfNeeded$0(Ljava/lang/String;)Z
-PLcom/android/server/wm/AppWarnings;->onDensityChanged()V
-PLcom/android/server/wm/AppWarnings;->onStartActivity(Lcom/android/server/wm/ActivityRecord;)V
-HSPLcom/android/server/wm/AppWarnings;->readConfigFromFileAmsThread()V
-PLcom/android/server/wm/AppWarnings;->showDeprecatedAbiDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/AppWarnings;->showDeprecatedTargetDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/AppWarnings;->showUnsupportedCompileSdkDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/AppWarnings;-><init>(Landroid/os/Handler;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/io/File;)V
+HPLcom/android/server/wm/AppWarnings;->onStartActivity(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/AppWarnings;->onSystemReady()V
 PLcom/android/server/wm/AppWarnings;->showUnsupportedDisplaySizeDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/BLASTSyncEngine$SyncGroup$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup$$ExternalSyntheticLambda0;->onTransactionCommitted()V
+HPLcom/android/server/wm/BLASTSyncEngine$SyncGroup$$ExternalSyntheticLambda0;->onTransactionCommitted()V
 PLcom/android/server/wm/BLASTSyncEngine$SyncGroup$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;-><init>(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Landroid/util/ArraySet;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;->onCommitted(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->$r8$lambda$BHN96tvxB7fo1aLu6vPwwYkPzqU(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->-$$Nest$maddToSync(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->-$$Nest$msetReady(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Z)Z
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->-$$Nest$mtryFinish(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
+PLcom/android/server/wm/BLASTSyncEngine$SyncGroup$$ExternalSyntheticLambda2;->run()V
+HPLcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;-><init>(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Landroid/util/ArraySet;ILjava/lang/String;JLandroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;->onCommitted(Landroid/view/SurfaceControl$Transaction;)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowState;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;
 PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;-><clinit>()V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;-><init>(Lcom/android/server/wm/BLASTSyncEngine;Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;ILjava/lang/String;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;-><init>(Lcom/android/server/wm/BLASTSyncEngine;Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;ILjava/lang/String;Lcom/android/server/wm/BLASTSyncEngine$SyncGroup-IA;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->addToSync(Lcom/android/server/wm/WindowContainer;)V
-HPLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->finishNow()V
+HPLcom/android/server/wm/BLASTSyncEngine$SyncGroup;-><init>(Lcom/android/server/wm/BLASTSyncEngine;Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;ILjava/lang/String;)V
+HPLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->finishNow()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;Lcom/android/server/wm/Transition;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/lang/Runnable;Lcom/android/server/wm/TransitionController$$ExternalSyntheticLambda3;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/function/Supplier;Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda25;
 PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->isIgnoring(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->lambda$finishNow$1(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup$1CommitCallback;)V
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->setReady(Z)Z
-PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->tryFinish()Z
-PLcom/android/server/wm/BLASTSyncEngine;->-$$Nest$fgetmActiveSyncs(Lcom/android/server/wm/BLASTSyncEngine;)Ljava/util/ArrayList;
-PLcom/android/server/wm/BLASTSyncEngine;->-$$Nest$fgetmHandler(Lcom/android/server/wm/BLASTSyncEngine;)Landroid/os/Handler;
-PLcom/android/server/wm/BLASTSyncEngine;->-$$Nest$fgetmOnIdleListeners(Lcom/android/server/wm/BLASTSyncEngine;)Ljava/util/ArrayList;
-PLcom/android/server/wm/BLASTSyncEngine;->-$$Nest$fgetmPendingSyncSets(Lcom/android/server/wm/BLASTSyncEngine;)Ljava/util/ArrayList;
-PLcom/android/server/wm/BLASTSyncEngine;->-$$Nest$fgetmWm(Lcom/android/server/wm/BLASTSyncEngine;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/BLASTSyncEngine;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/BLASTSyncEngine$SyncGroup;->onTimeout()V
 PLcom/android/server/wm/BLASTSyncEngine;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/Handler;)V
-PLcom/android/server/wm/BLASTSyncEngine;->addOnIdleListener(Ljava/lang/Runnable;)V
-PLcom/android/server/wm/BLASTSyncEngine;->addToSyncSet(ILcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/BLASTSyncEngine;->getSyncGroup(I)Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;
-PLcom/android/server/wm/BLASTSyncEngine;->getSyncSet(I)Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;
+HPLcom/android/server/wm/BLASTSyncEngine;->addToSyncSet(ILcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/BLASTSyncEngine;->getSyncGroup(I)Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;
+HPLcom/android/server/wm/BLASTSyncEngine;->getSyncSet(I)Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/BLASTSyncEngine;->hasActiveSync()Z
-HPLcom/android/server/wm/BLASTSyncEngine;->onSurfacePlacement()V
-PLcom/android/server/wm/BLASTSyncEngine;->prepareSyncSet(Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;Ljava/lang/String;)Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;
+HPLcom/android/server/wm/BLASTSyncEngine;->onSurfacePlacement()V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/BLASTSyncEngine;->removeFromDependencies(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)V
 PLcom/android/server/wm/BLASTSyncEngine;->scheduleTimeout(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;J)V
-PLcom/android/server/wm/BLASTSyncEngine;->setReady(IZ)Z
-PLcom/android/server/wm/BLASTSyncEngine;->setSyncMethod(II)V
-PLcom/android/server/wm/BLASTSyncEngine;->startSyncSet(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;JZ)V
-PLcom/android/server/wm/BLASTSyncEngine;->startSyncSet(Lcom/android/server/wm/BLASTSyncEngine$TransactionReadyListener;JLjava/lang/String;Z)I
-PLcom/android/server/wm/BackNavigationController$AnimationHandler;->-$$Nest$fgetmComposed(Lcom/android/server/wm/BackNavigationController$AnimationHandler;)Z
+HPLcom/android/server/wm/BLASTSyncEngine;->setReady(IZ)Z
+HPLcom/android/server/wm/BLASTSyncEngine;->setSyncMethod(II)V
+HPLcom/android/server/wm/BLASTSyncEngine;->startSyncSet(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;JZ)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/BackNavigationController;)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda5;->onResult(Landroid/os/Bundle;)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda6;-><init>(I)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/BackNavigationController;I)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda8;->onResult(Landroid/os/Bundle;)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/wm/BackNavigationController;)V
+PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda9;->run()V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;-><init>(ILcom/android/server/wm/WindowContainer;Z)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;->getShowWallpaper()Z
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;->getTopTask()Lcom/android/server/wm/Task;
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptorWrapper;-><init>(ILandroid/view/SurfaceControl$Transaction;[Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptorWrapper;->cleanUpWindowlessSurface(Z)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder;[Landroid/view/RemoteAnimationTarget;Lcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder$1;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder$1;-><init>(Lcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder$1;->onAnimationFinished(Z)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder;-><init>(Lcom/android/server/wm/BackNavigationController$AnimationHandler;Landroid/window/BackAnimationAdapter;Lcom/android/server/wm/BackNavigationController$NavigationMonitor;)V
 PLcom/android/server/wm/BackNavigationController$AnimationHandler;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/BackNavigationController$NavigationMonitor;->-$$Nest$monFocusWindowChanged(Lcom/android/server/wm/BackNavigationController$NavigationMonitor;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->clearBackAnimateTarget(Z)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->containTarget(Ljava/util/ArrayList;Z)Z
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->createAdaptor(Lcom/android/server/wm/WindowContainer;ZILandroid/view/SurfaceControl$Transaction;)Lcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->hasTargetDetached()Z
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->isAnimateTarget(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowContainer;I)Z
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->isTarget(Lcom/android/server/wm/WindowContainer;Z)Z
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->markStartingSurfaceMatch(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->prepareAnimation(ILandroid/window/BackAnimationAdapter;Lcom/android/server/wm/BackNavigationController$NavigationMonitor;Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Ljava/util/ArrayList;Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder;
+PLcom/android/server/wm/BackNavigationController$AnimationHandler;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/BackNavigationController$NavigationMonitor;-><init>(Lcom/android/server/wm/BackNavigationController;)V
-HSPLcom/android/server/wm/BackNavigationController$NavigationMonitor;-><init>(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/BackNavigationController$NavigationMonitor-IA;)V
-PLcom/android/server/wm/BackNavigationController$NavigationMonitor;->atSameDisplay(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/BackNavigationController$NavigationMonitor;->cancelBackNavigating(Ljava/lang/String;)V
+PLcom/android/server/wm/BackNavigationController$NavigationMonitor;->isMonitorAnimationOrTransition()Z
 PLcom/android/server/wm/BackNavigationController$NavigationMonitor;->isMonitorForRemote()Z
-PLcom/android/server/wm/BackNavigationController$NavigationMonitor;->onFocusWindowChanged(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/BackNavigationController;-><clinit>()V
 HSPLcom/android/server/wm/BackNavigationController;-><init>()V
-PLcom/android/server/wm/BackNavigationController;->checkAnimationReady(Lcom/android/server/wm/WallpaperController;)V
-PLcom/android/server/wm/BackNavigationController;->isMonitorTransitionTarget(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/BackNavigationController;->isMonitoringTransition()Z
-PLcom/android/server/wm/BackNavigationController;->isWaitBackTransition()Z
-PLcom/android/server/wm/BackNavigationController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/BackNavigationController;->onFocusChanged(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/BackNavigationController;->onTransactionReady(Lcom/android/server/wm/Transition;Ljava/util/ArrayList;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/BackNavigationController;->onTransitionFinish(Ljava/util/ArrayList;Lcom/android/server/wm/Transition;)Z
-PLcom/android/server/wm/BackNavigationController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmCallerApp(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmCallingPackage(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Ljava/lang/String;
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmCallingPid(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)I
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmCallingUid(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)I
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmIntent(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Landroid/content/Intent;
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmRealCallingUid(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)I
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$fgetmResultForCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$mcallerIsRealCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Z
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$mhasRealCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Z
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->-$$Nest$misPendingIntent(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Z
-HPLcom/android/server/wm/BackgroundActivityStartController$BalState;-><init>(Lcom/android/server/wm/BackgroundActivityStartController;IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;Landroid/app/BackgroundStartPrivileges;Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;-><init>(Lcom/android/server/wm/BackgroundActivityStartController;IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;Landroid/app/BackgroundStartPrivileges;Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/app/ActivityOptions;Lcom/android/server/wm/BackgroundActivityStartController$BalState-IA;)V
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->callerExplicitOptInOrAutoOptIn()Z
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->callerIsRealCaller()Z
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->hasRealCaller()Z
+PLcom/android/server/wm/BackNavigationController;->addPreviousAdjacentActivityIfExist(Lcom/android/server/wm/ActivityRecord;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/BackNavigationController;->cancelPendingAnimation()V
+PLcom/android/server/wm/BackNavigationController;->clearBackAnimations(Z)V
+PLcom/android/server/wm/BackNavigationController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/BackNavigationController;->getAnimatablePrevActivities(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Ljava/util/ArrayList;)Z
+PLcom/android/server/wm/BackNavigationController;->hasTranslucentActivity(Lcom/android/server/wm/ActivityRecord;Ljava/util/ArrayList;)Z
+PLcom/android/server/wm/BackNavigationController;->isCustomizeExitAnimation(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/BackNavigationController;->isMonitoringFinishTransition()Z
+PLcom/android/server/wm/BackNavigationController;->onBackNavigationDone(ILandroid/os/Bundle;)V
+PLcom/android/server/wm/BackNavigationController;->restoreBackNavigation()Z
+PLcom/android/server/wm/BackNavigationController;->restoreLaunchBehind(Lcom/android/server/wm/ActivityRecord;ZZ)V
+HPLcom/android/server/wm/BackNavigationController;->scheduleAnimation(Lcom/android/server/wm/BackNavigationController$AnimationHandler$ScheduleAnimationBuilder;)V
+PLcom/android/server/wm/BackNavigationController;->setLaunchBehind([Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/BackNavigationController;->startAnimation()V
+HPLcom/android/server/wm/BackNavigationController;->startBackNavigation(Landroid/os/RemoteCallback;Landroid/window/BackAnimationAdapter;)Landroid/window/BackNavigationInfo;
+PLcom/android/server/wm/BackgroundActivityStartController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/BackgroundActivityStartController;ILandroid/os/IBinder;)V
+PLcom/android/server/wm/BackgroundActivityStartController$$ExternalSyntheticLambda2;->binderDied()V
+PLcom/android/server/wm/BackgroundActivityStartController$$ExternalSyntheticLambda3;-><init>(III)V
+PLcom/android/server/wm/BackgroundActivityStartController$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/BackgroundActivityStartController$BalState;-><init>(Lcom/android/server/wm/BackgroundActivityStartController;IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;ZLcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/app/ActivityOptions;)V
+PLcom/android/server/wm/BackgroundActivityStartController$BalState;->getDebugPackageName(ILjava/lang/String;)Ljava/lang/String;
 PLcom/android/server/wm/BackgroundActivityStartController$BalState;->isPendingIntent()Z
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->setResultForCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;)V
-PLcom/android/server/wm/BackgroundActivityStartController$BalState;->setResultForRealCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;)V
+PLcom/android/server/wm/BackgroundActivityStartController$BalState;->toString()Ljava/lang/String;
 PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;-><clinit>()V
-HPLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;-><init>(IZLjava/lang/String;)V
-HPLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->allows()Z
-HPLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->blocks()Z
-PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->getCode()I
+PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;-><init>(ILjava/lang/String;)V
+PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->allows()Z
+PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->blocks()Z
+PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->setBasedOnRealCaller()Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
 PLcom/android/server/wm/BackgroundActivityStartController$BalVerdict;->toString()Ljava/lang/String;
-PLcom/android/server/wm/BackgroundActivityStartController;->-$$Nest$fgetmService(Lcom/android/server/wm/BackgroundActivityStartController;)Lcom/android/server/wm/ActivityTaskManagerService;
+PLcom/android/server/wm/BackgroundActivityStartController$FinishedActivityEntry$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/BackgroundActivityStartController$FinishedActivityEntry;I)V
+PLcom/android/server/wm/BackgroundActivityStartController$FinishedActivityEntry$$ExternalSyntheticLambda0;->run()V
+HPLcom/android/server/wm/BackgroundActivityStartController$FinishedActivityEntry;-><init>(Lcom/android/server/wm/BackgroundActivityStartController;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/BackgroundActivityStartController;-><clinit>()V
 HSPLcom/android/server/wm/BackgroundActivityStartController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;)V
-PLcom/android/server/wm/BackgroundActivityStartController;->allowBasedOnCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
+PLcom/android/server/wm/BackgroundActivityStartController;->abortLaunch(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)V
 PLcom/android/server/wm/BackgroundActivityStartController;->balCodeToString(I)Ljava/lang/String;
-PLcom/android/server/wm/BackgroundActivityStartController;->checkActivityAllowedToStart(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;ZZLcom/android/server/wm/Task;IIII)Z
-PLcom/android/server/wm/BackgroundActivityStartController;->checkBackgroundActivityStart(IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;Landroid/app/BackgroundStartPrivileges;Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/app/ActivityOptions;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
+PLcom/android/server/wm/BackgroundActivityStartController;->balStartModeToString(I)Ljava/lang/String;
+PLcom/android/server/wm/BackgroundActivityStartController;->checkActivityAllowedToClearTask(Lcom/android/server/wm/Task;IILjava/lang/String;)V
+HPLcom/android/server/wm/BackgroundActivityStartController;->checkBackgroundActivityStart(IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;ZLcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/app/ActivityOptions;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
 PLcom/android/server/wm/BackgroundActivityStartController;->checkBackgroundActivityStartAllowedByCaller(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
+PLcom/android/server/wm/BackgroundActivityStartController;->checkBackgroundActivityStartAllowedByCallerInBackground(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
+PLcom/android/server/wm/BackgroundActivityStartController;->checkBackgroundActivityStartAllowedByCallerInForeground(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
+PLcom/android/server/wm/BackgroundActivityStartController;->checkCrossUidActivitySwitchFromBelow(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/BackgroundActivityStartController$BlockActivityStart;)Lcom/android/server/wm/BackgroundActivityStartController$BlockActivityStart;
+PLcom/android/server/wm/BackgroundActivityStartController;->checkProcessAllowsBal(Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/BackgroundActivityStartController$BalState;Lcom/android/server/wm/BackgroundLaunchProcessController$BalCheckConfiguration;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
+PLcom/android/server/wm/BackgroundActivityStartController;->checkTopActivityForAsm(Lcom/android/server/wm/Task;ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/BackgroundActivityStartController$BlockActivityStart;)Lcom/android/server/wm/BackgroundActivityStartController$BlockActivityStart;
+HPLcom/android/server/wm/BackgroundActivityStartController;->getDebugStringForActivityRecord(Lcom/android/server/wm/ActivityRecord;)Ljava/lang/String;
+PLcom/android/server/wm/BackgroundActivityStartController;->getTargetSdk(Ljava/lang/String;)I
+PLcom/android/server/wm/BackgroundActivityStartController;->hasBalPermission(II)Z
 PLcom/android/server/wm/BackgroundActivityStartController;->isHomeApp(ILjava/lang/String;)Z
-PLcom/android/server/wm/BackgroundActivityStartController;->onNewActivityLaunched(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/BackgroundActivityStartController;->statsLog(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
-HPLcom/android/server/wm/BackgroundLaunchProcessController;-><init>(Ljava/util/function/IntPredicate;Lcom/android/server/wm/BackgroundActivityStartCallback;)V
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->addBoundClientUid(ILjava/lang/String;J)V
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->addOrUpdateAllowBackgroundStartPrivileges(Landroid/os/Binder;Landroid/app/BackgroundStartPrivileges;)V
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->areBackgroundActivityStartsAllowed(IILjava/lang/String;IZZZJJJ)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->clearBalOptInBoundClientUids()V
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->isBackgroundStartAllowedByToken(ILjava/lang/String;Z)Z
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->isBoundByForegroundUid()Z
-HPLcom/android/server/wm/BackgroundLaunchProcessController;->removeAllowBackgroundStartPrivileges(Landroid/os/Binder;)V
-PLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;-><init>(Lcom/android/server/wm/BaseAppSnapshotPersister$DirectoryResolver;Ljava/lang/String;ZFZ)V
+PLcom/android/server/wm/BackgroundActivityStartController;->logIfOnlyAllowedBy(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/wm/BackgroundActivityStartController$BalState;I)V
+HPLcom/android/server/wm/BackgroundActivityStartController;->onActivityRequestedFinishing(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/BackgroundActivityStartController;->removeStrictModeCallback(ILandroid/os/IBinder;)V
+PLcom/android/server/wm/BackgroundActivityStartController;->shouldLogIntentActivity(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Z
+PLcom/android/server/wm/BackgroundActivityStartController;->shouldLogStats(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/wm/BackgroundActivityStartController$BalState;)Z
+HPLcom/android/server/wm/BackgroundActivityStartController;->statsLog(Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;Lcom/android/server/wm/BackgroundActivityStartController$BalState;)V
+PLcom/android/server/wm/BackgroundActivityStartController;->strictModeLaunchAborted(ILjava/lang/String;)V
+HPLcom/android/server/wm/BackgroundActivityStartController;->writeBalAllowedLog(Ljava/lang/String;ILcom/android/server/wm/BackgroundActivityStartController$BalState;)V
+HPLcom/android/server/wm/BackgroundActivityStartController;->writeBalAllowedLogMinimal(Lcom/android/server/wm/BackgroundActivityStartController$BalState;)V
+HSPLcom/android/server/wm/BackgroundLaunchProcessController$BalCheckConfiguration;-><init>(ZZZ)V
+PLcom/android/server/wm/BackgroundLaunchProcessController;-><clinit>()V
+PLcom/android/server/wm/BackgroundLaunchProcessController;-><init>(Lcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda3;Lcom/android/server/notification/NotificationManagerService$1;)V
+PLcom/android/server/wm/BackgroundLaunchProcessController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/BackgroundLaunchProcessController;->getOriginatingTokensThatAllowBal()Ljava/util/List;
+PLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;-><init>(Lcom/android/server/wm/ActivitySnapshotController$$ExternalSyntheticLambda1;Ljava/lang/String;ZFZ)V
 PLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;->getDirectory(I)Ljava/io/File;
 PLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;->getHighResolutionBitmapFile(II)Ljava/io/File;
 PLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;->getLowResolutionBitmapFile(II)Ljava/io/File;
-PLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;->getProtoFile(II)Ljava/io/File;
-PLcom/android/server/wm/BaseAppSnapshotPersister;-><init>(Lcom/android/server/wm/SnapshotPersistQueue;Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
-PLcom/android/server/wm/BaseAppSnapshotPersister;->removeSnapshot(II)V
+HPLcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;->getProtoFile(II)Ljava/io/File;
 PLcom/android/server/wm/BlurController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/BlurController;)V
 PLcom/android/server/wm/BlurController$$ExternalSyntheticLambda0;->onThermalStatusChanged(I)V
-PLcom/android/server/wm/BlurController$1;-><init>(Lcom/android/server/wm/BlurController;Ljava/util/concurrent/Executor;)V
+PLcom/android/server/wm/BlurController$1;-><init>(Lcom/android/server/wm/BlurController;Lcom/android/server/SystemServerInitThreadPool$$ExternalSyntheticLambda1;)V
 PLcom/android/server/wm/BlurController$1;->onTunnelModeEnabledChanged(Z)V
 PLcom/android/server/wm/BlurController$2;-><init>(Lcom/android/server/wm/BlurController;Landroid/os/PowerManager;)V
-PLcom/android/server/wm/BlurController$3;-><init>(Lcom/android/server/wm/BlurController;Landroid/os/Handler;)V
-PLcom/android/server/wm/BlurController;->$r8$lambda$d37IvBCG5pB02WzIgDv5RCisrMc(Lcom/android/server/wm/BlurController;I)V
-PLcom/android/server/wm/BlurController;->-$$Nest$fputmTunnelModeEnabled(Lcom/android/server/wm/BlurController;Z)V
-PLcom/android/server/wm/BlurController;->-$$Nest$mupdateBlurEnabled(Lcom/android/server/wm/BlurController;)V
+PLcom/android/server/wm/BlurController$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/wm/BlurController$3;-><init>(Lcom/android/server/wm/BlurController;)V
 PLcom/android/server/wm/BlurController;-><init>(Landroid/content/Context;Landroid/os/PowerManager;)V
-PLcom/android/server/wm/BlurController;->getBlurDisabledSetting()Z
-PLcom/android/server/wm/BlurController;->lambda$new$0(I)V
-PLcom/android/server/wm/BlurController;->notifyBlurEnabledChangedLocked(Z)V
 PLcom/android/server/wm/BlurController;->updateBlurEnabled()V
 HSPLcom/android/server/wm/ClientLifecycleManager;-><init>()V
+PLcom/android/server/wm/ClientLifecycleManager;->dispatchPendingTransaction(Landroid/app/IApplicationThread;)V
 HPLcom/android/server/wm/ClientLifecycleManager;->dispatchPendingTransactions()V
-PLcom/android/server/wm/ClientLifecycleManager;->getOrCreatePendingTransaction(Landroid/app/IApplicationThread;)Landroid/app/servertransaction/ClientTransaction;
-PLcom/android/server/wm/ClientLifecycleManager;->onClientTransactionItemScheduled(Landroid/app/servertransaction/ClientTransaction;Z)V
-PLcom/android/server/wm/ClientLifecycleManager;->onLayoutContinued()V
-PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
-PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransactionAndLifecycleItems(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;Landroid/app/servertransaction/ActivityLifecycleItem;Z)V
-PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransactionItem(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
-PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransactionItemNow(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
-PLcom/android/server/wm/ClientLifecycleManager;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+HPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransactionItem(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V+]Landroid/app/IApplicationThread;Lcom/android/server/am/ApplicationThreadDeferred;]Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransaction;
+HPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransactionItems(Landroid/app/IApplicationThread;Z[Landroid/app/servertransaction/ClientTransactionItem;)V
 HPLcom/android/server/wm/ClientLifecycleManager;->shouldDispatchPendingTransactionsImmediately()Z
 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;-><init>(Landroid/os/Handler;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/io/File;)V
 HPLcom/android/server/wm/CompatModePackages;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
-PLcom/android/server/wm/CompatModePackages;->getCompatScale(Ljava/lang/String;I)F
-HPLcom/android/server/wm/CompatModePackages;->getCompatScale(Ljava/lang/String;IZ)F
-HPLcom/android/server/wm/CompatModePackages;->getCompatScaleFromProvider(Ljava/lang/String;I)Landroid/content/res/CompatibilityInfo$CompatScale;
-HPLcom/android/server/wm/CompatModePackages;->getPackageCompatModeEnabledLocked(Landroid/content/pm/ApplicationInfo;)Z
-HPLcom/android/server/wm/CompatModePackages;->getPackageFlags(Ljava/lang/String;)I
-PLcom/android/server/wm/CompatModePackages;->registerCompatScaleProvider(ILcom/android/server/wm/CompatScaleProvider;)V
-PLcom/android/server/wm/CompatModePackages;->useLegacyScreenCompatMode(Ljava/lang/String;)Z
-PLcom/android/server/wm/CompatScaleProvider;->isValidOrderId(I)Z
+HPLcom/android/server/wm/CompatModePackages;->getCompatScale(ILjava/lang/String;Z)F
+PLcom/android/server/wm/CompatModePackages;->getCompatScaleFromProvider(ILjava/lang/String;)Landroid/content/res/CompatibilityInfo$CompatScale;
+PLcom/android/server/wm/CompatModePackages;->getPackageFlags(Ljava/lang/String;)I
 HPLcom/android/server/wm/ConfigurationContainer;-><init>()V
+HPLcom/android/server/wm/ConfigurationContainer;->applyAppSpecificConfig(Ljava/lang/Integer;Landroid/os/LocaleList;Ljava/lang/Integer;)Z
+HPLcom/android/server/wm/ConfigurationContainer;->applySizeOverrideIfNeeded(Lcom/android/server/wm/DisplayContent;Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;Landroid/content/res/Configuration;ZZZLcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ConfigurationContainer;->containsListener(Lcom/android/server/wm/ConfigurationContainerListener;)Z
 PLcom/android/server/wm/ConfigurationContainer;->diffRequestedOverrideBounds(Landroid/graphics/Rect;)I
 PLcom/android/server/wm/ConfigurationContainer;->diffRequestedOverrideMaxBounds(Landroid/graphics/Rect;)I
-HPLcom/android/server/wm/ConfigurationContainer;->dispatchConfigurationToChild(Lcom/android/server/wm/ConfigurationContainer;Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ConfigurationContainer;->dispatchConfigurationToChild(Lcom/android/server/wm/ConfigurationContainer;Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ConfigurationContainer;->dumpChildrenNames(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/ConfigurationContainer;->dumpChildrenNames(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/ConfigurationContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 PLcom/android/server/wm/ConfigurationContainer;->equivalentBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 PLcom/android/server/wm/ConfigurationContainer;->equivalentRequestedOverrideBounds(Landroid/graphics/Rect;)Z
 PLcom/android/server/wm/ConfigurationContainer;->equivalentRequestedOverrideMaxBounds(Landroid/graphics/Rect;)Z
-HPLcom/android/server/wm/ConfigurationContainer;->getActivityType()I
-HPLcom/android/server/wm/ConfigurationContainer;->getBounds()Landroid/graphics/Rect;
+HPLcom/android/server/wm/ConfigurationContainer;->getActivityType()I+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+HPLcom/android/server/wm/ConfigurationContainer;->getBounds()Landroid/graphics/Rect;+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types
 PLcom/android/server/wm/ConfigurationContainer;->getBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/ConfigurationContainer;->getConfiguration()Landroid/content/res/Configuration;
+HPLcom/android/server/wm/ConfigurationContainer;->getConfiguration()Landroid/content/res/Configuration;
 PLcom/android/server/wm/ConfigurationContainer;->getMergedOverrideConfiguration()Landroid/content/res/Configuration;
 HPLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideBounds()Landroid/graphics/Rect;
 PLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideConfiguration()Landroid/content/res/Configuration;
@@ -26443,27 +21077,29 @@
 HPLcom/android/server/wm/ConfigurationContainer;->getResolvedOverrideBounds()Landroid/graphics/Rect;
 PLcom/android/server/wm/ConfigurationContainer;->getResolvedOverrideConfiguration()Landroid/content/res/Configuration;
 HPLcom/android/server/wm/ConfigurationContainer;->getWindowConfiguration()Landroid/app/WindowConfiguration;
-HPLcom/android/server/wm/ConfigurationContainer;->getWindowingMode()I
-HPLcom/android/server/wm/ConfigurationContainer;->hasChild()Z
+HPLcom/android/server/wm/ConfigurationContainer;->getWindowingMode()I+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+HPLcom/android/server/wm/ConfigurationContainer;->hasChild()Z+]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types
 PLcom/android/server/wm/ConfigurationContainer;->hasOverrideBounds()Z
-HPLcom/android/server/wm/ConfigurationContainer;->inFreeformWindowingMode()Z
-HPLcom/android/server/wm/ConfigurationContainer;->inMultiWindowMode()Z
-HPLcom/android/server/wm/ConfigurationContainer;->inPinnedWindowingMode()Z
+PLcom/android/server/wm/ConfigurationContainer;->hasRequestedOverrideConfiguration()Z
+HPLcom/android/server/wm/ConfigurationContainer;->inFreeformWindowingMode()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+HPLcom/android/server/wm/ConfigurationContainer;->inMultiWindowMode()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+HPLcom/android/server/wm/ConfigurationContainer;->inPinnedWindowingMode()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
 PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeAssistant()Z
 PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeDream()Z
-PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeHome()Z
-HPLcom/android/server/wm/ConfigurationContainer;->isActivityTypeHomeOrRecents()Z
+HPLcom/android/server/wm/ConfigurationContainer;->isActivityTypeHome()Z
+HPLcom/android/server/wm/ConfigurationContainer;->isActivityTypeHomeOrRecents()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;
 PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeRecents()Z
 PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeStandard()Z
-PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeStandardOrUndefined()Z
-HPLcom/android/server/wm/ConfigurationContainer;->isAlwaysOnTop()Z
-HPLcom/android/server/wm/ConfigurationContainer;->isCompatible(II)Z
+HPLcom/android/server/wm/ConfigurationContainer;->isActivityTypeStandardOrUndefined()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/ConfigurationContainer;->isAlwaysOnTop()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
+HPLcom/android/server/wm/ConfigurationContainer;->isCompatible(II)Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
 PLcom/android/server/wm/ConfigurationContainer;->isCompatibleActivityType(II)Z
 PLcom/android/server/wm/ConfigurationContainer;->matchParentBounds()Z
-HPLcom/android/server/wm/ConfigurationContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HPLcom/android/server/wm/ConfigurationContainer;->onMergedOverrideConfigurationChanged()V
+HPLcom/android/server/wm/ConfigurationContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types]Lcom/android/server/wm/ConfigurationContainerListener;Lcom/android/server/wm/DisplayContent$2;,Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;,Lcom/android/server/wm/WindowProcessController;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/ConfigurationContainer;->onMergedOverrideConfigurationChanged()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types
+PLcom/android/server/wm/ConfigurationContainer;->onMergedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/ConfigurationContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/ConfigurationContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/ConfigurationContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/ConfigurationContainer;->providesMaxBounds()Z
 PLcom/android/server/wm/ConfigurationContainer;->registerConfigurationChangeListener(Lcom/android/server/wm/ConfigurationContainerListener;)V
 HPLcom/android/server/wm/ConfigurationContainer;->registerConfigurationChangeListener(Lcom/android/server/wm/ConfigurationContainerListener;Z)V
@@ -26475,496 +21111,311 @@
 HPLcom/android/server/wm/ConfigurationContainer;->updateRequestedOverrideConfiguration(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/ConfigurationContainerListener;->onMergedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/ConfigurationContainerListener;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ContentRecordingController;-><init>()V
-PLcom/android/server/wm/DeferredDisplayUpdater$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/DeferredDisplayUpdater$$ExternalSyntheticLambda0;->setFields(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/DeferredDisplayUpdater;->$r8$lambda$--t3mf11gpWn1Uw3-b-B1MpXHHQ(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
+HPLcom/android/server/wm/DeferredDisplayUpdater$$ExternalSyntheticLambda0;->setFields(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
+PLcom/android/server/wm/DeferredDisplayUpdater$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/DeferredDisplayUpdater;I)V
 PLcom/android/server/wm/DeferredDisplayUpdater;-><clinit>()V
 PLcom/android/server/wm/DeferredDisplayUpdater;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DeferredDisplayUpdater;->applyLatestDisplayInfo()V
+HPLcom/android/server/wm/DeferredDisplayUpdater;->applyLatestDisplayInfo()V+]Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;]Lcom/android/server/wm/utils/DisplayInfoOverrides$DisplayInfoFieldsUpdater;Lcom/android/server/wm/DeferredDisplayUpdater$$ExternalSyntheticLambda0;
 HPLcom/android/server/wm/DeferredDisplayUpdater;->calculateDisplayInfoDiff(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)I
-PLcom/android/server/wm/DeferredDisplayUpdater;->getCurrentDisplayInfo()Landroid/view/DisplayInfo;
-PLcom/android/server/wm/DeferredDisplayUpdater;->isPhysicalDisplayUpdated(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)Z
-PLcom/android/server/wm/DeferredDisplayUpdater;->lambda$static$0(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/DeferredDisplayUpdater;->updateDisplayInfo(Ljava/lang/Runnable;)V
-HSPLcom/android/server/wm/DesktopModeLaunchParamsModifier;-><clinit>()V
-HSPLcom/android/server/wm/DesktopModeLaunchParamsModifier;->isDesktopModeSupported()Z
-PLcom/android/server/wm/DeviceStateController$DeviceState;->$values()[Lcom/android/server/wm/DeviceStateController$DeviceState;
+HPLcom/android/server/wm/DeferredDisplayUpdater;->updateDisplayInfo(Ljava/lang/Runnable;)V
+PLcom/android/server/wm/DesktopAppCompatAspectRatioPolicy;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatOverrides;Lcom/android/server/wm/TransparentPolicy;Lcom/android/server/wm/AppCompatConfiguration;)V
+HPLcom/android/server/wm/DesktopAppCompatAspectRatioPolicy;->getMinAspectRatio(Lcom/android/server/wm/Task;)F+]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/wm/DesktopAppCompatAspectRatioPolicy;->shouldApplyUserMinAspectRatioOverride(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/DesktopModeHelper;-><clinit>()V
+HPLcom/android/server/wm/DesktopModeHelper;->canEnterDesktopMode(Landroid/content/Context;)Z
+PLcom/android/server/wm/DesktopModeHelper;->isDesktopModeSupported(Landroid/content/Context;)Z
+PLcom/android/server/wm/DesktopModeHelper;->shouldEnforceDeviceRestrictions()Z
+HSPLcom/android/server/wm/DesktopModeLaunchParamsModifier;-><init>(Landroid/content/Context;)V
+PLcom/android/server/wm/DesktopModeLaunchParamsModifier;->onCalculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityStarter$Request;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
 PLcom/android/server/wm/DeviceStateController$DeviceState;-><clinit>()V
-PLcom/android/server/wm/DeviceStateController$DeviceState;-><init>(Ljava/lang/String;I)V
 PLcom/android/server/wm/DeviceStateController;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerGlobalLock;)V
-PLcom/android/server/wm/DeviceStateController;->onDeviceStateReceivedByDisplayManager(I)V
-PLcom/android/server/wm/DeviceStateController;->registerDeviceStateCallback(Ljava/util/function/Consumer;Ljava/util/concurrent/Executor;)V
-PLcom/android/server/wm/DeviceStateController;->shouldReverseRotationDirectionAroundZAxis(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/Dimmer;-><clinit>()V
 PLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Dimmer;->create(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/Dimmer;
-PLcom/android/server/wm/DimmerAnimationHelper$AnimationAdapterFactory;-><init>()V
-PLcom/android/server/wm/DisplayArea$1;-><clinit>()V
-PLcom/android/server/wm/DisplayArea$Dimmable$$ExternalSyntheticLambda0;-><init>()V
-HPLcom/android/server/wm/DisplayArea$Dimmable$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/DisplayArea$Dimmable;->$r8$lambda$ewKAhLF3xnwcZneP-cgTtyNykBo(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DimmerAnimationHelper$AnimationAdapterFactory;)V
+PLcom/android/server/wm/Dimmer;->updateDims(Landroid/view/SurfaceControl$Transaction;)Z
+PLcom/android/server/wm/DisplayArea$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/wm/DisplayArea$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/DisplayArea$Dimmable;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)V
-PLcom/android/server/wm/DisplayArea$Dimmable;->lambda$prepareSurfaces$0(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/DisplayArea$Dimmable;->getDimmer()Lcom/android/server/wm/Dimmer;
 HPLcom/android/server/wm/DisplayArea$Dimmable;->prepareSurfaces()V
-PLcom/android/server/wm/DisplayArea$Tokens$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/wm/DisplayArea$Tokens$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
 PLcom/android/server/wm/DisplayArea$Tokens$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayArea$Tokens;)V
-HPLcom/android/server/wm/DisplayArea$Tokens$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/DisplayArea$Tokens;->$r8$lambda$2Q0eZgOlf9COHBhGcrk7N74DbDw(Lcom/android/server/wm/DisplayArea$Tokens;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayArea$Tokens;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;)V
-HPLcom/android/server/wm/DisplayArea$Tokens;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)V
-PLcom/android/server/wm/DisplayArea$Tokens;->addChild(Lcom/android/server/wm/WindowToken;)V
+HPLcom/android/server/wm/DisplayArea$Tokens$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/DisplayArea$Tokens;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)V
 PLcom/android/server/wm/DisplayArea$Tokens;->asTokens()Lcom/android/server/wm/DisplayArea$Tokens;
-HPLcom/android/server/wm/DisplayArea$Tokens;->getOrientation(I)I
-PLcom/android/server/wm/DisplayArea$Tokens;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/DisplayArea$Tokens;->getSurfaceControl()Landroid/view/SurfaceControl;
-PLcom/android/server/wm/DisplayArea$Tokens;->getSyncTransaction()Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/DisplayArea$Tokens;->lambda$new$0(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayArea$Type;->$values()[Lcom/android/server/wm/DisplayArea$Type;
+HPLcom/android/server/wm/DisplayArea$Tokens;->getOrientation(I)I+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayArea$Tokens;
 PLcom/android/server/wm/DisplayArea$Type;-><clinit>()V
-PLcom/android/server/wm/DisplayArea$Type;-><init>(Ljava/lang/String;I)V
-HPLcom/android/server/wm/DisplayArea$Type;->checkChild(Lcom/android/server/wm/DisplayArea$Type;Lcom/android/server/wm/DisplayArea$Type;)V
-HPLcom/android/server/wm/DisplayArea$Type;->checkSiblings(Lcom/android/server/wm/DisplayArea$Type;Lcom/android/server/wm/DisplayArea$Type;)V
-HPLcom/android/server/wm/DisplayArea$Type;->typeOf(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/DisplayArea$Type;
-PLcom/android/server/wm/DisplayArea$Type;->typeOf(Lcom/android/server/wm/WindowToken;)Lcom/android/server/wm/DisplayArea$Type;
-PLcom/android/server/wm/DisplayArea$Type;->values()[Lcom/android/server/wm/DisplayArea$Type;
-HPLcom/android/server/wm/DisplayArea;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)V
-PLcom/android/server/wm/DisplayArea;->asDisplayArea()Lcom/android/server/wm/DisplayArea;
+HPLcom/android/server/wm/DisplayArea$Type;->typeOf(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/DisplayArea$Type;+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/DisplayArea;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)V
+HPLcom/android/server/wm/DisplayArea;->asDisplayArea()Lcom/android/server/wm/DisplayArea;
 PLcom/android/server/wm/DisplayArea;->asTokens()Lcom/android/server/wm/DisplayArea$Tokens;
-PLcom/android/server/wm/DisplayArea;->fillsParent()Z
-PLcom/android/server/wm/DisplayArea;->findMaxPositionForChildDisplayArea(Lcom/android/server/wm/DisplayArea;)I
-PLcom/android/server/wm/DisplayArea;->findMinPositionForChildDisplayArea(Lcom/android/server/wm/DisplayArea;)I
-HPLcom/android/server/wm/DisplayArea;->findPositionForChildDisplayArea(ILcom/android/server/wm/DisplayArea;)I
+PLcom/android/server/wm/DisplayArea;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/DisplayArea;->dumpChildDisplayArea(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/DisplayArea;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/DisplayArea;->fillsParent()Z
 PLcom/android/server/wm/DisplayArea;->forAllActivities(Ljava/util/function/Consumer;Z)V
 PLcom/android/server/wm/DisplayArea;->forAllActivities(Ljava/util/function/Predicate;Z)Z
 PLcom/android/server/wm/DisplayArea;->forAllDisplayAreas(Ljava/util/function/Consumer;)V
 HPLcom/android/server/wm/DisplayArea;->forAllLeafTaskFragments(Ljava/util/function/Predicate;)Z
 HPLcom/android/server/wm/DisplayArea;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V
-PLcom/android/server/wm/DisplayArea;->forAllLeafTasks(Ljava/util/function/Predicate;)Z
-PLcom/android/server/wm/DisplayArea;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z
-PLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Consumer;Z)V
-PLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Predicate;Z)Z
-HPLcom/android/server/wm/DisplayArea;->forAllTasks(Ljava/util/function/Predicate;)Z
+HPLcom/android/server/wm/DisplayArea;->forAllLeafTasks(Ljava/util/function/Predicate;)Z
+HPLcom/android/server/wm/DisplayArea;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z
+HPLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Dimmable;,Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Dimmable;,Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/DisplayArea;->forAllTasks(Ljava/util/function/Predicate;)Z
 PLcom/android/server/wm/DisplayArea;->getActivity(Ljava/util/function/Predicate;ZLcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/DisplayArea;->getDisplayArea()Lcom/android/server/wm/DisplayArea;
+HPLcom/android/server/wm/DisplayArea;->getDisplayArea()Lcom/android/server/wm/DisplayArea;
 PLcom/android/server/wm/DisplayArea;->getDisplayAreaInfo()Landroid/window/DisplayAreaInfo;
 HPLcom/android/server/wm/DisplayArea;->getIgnoreOrientationRequest()Z
-HPLcom/android/server/wm/DisplayArea;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;
+HPLcom/android/server/wm/DisplayArea;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;+]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Dimmable;,Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/DisplayArea;->getName()Ljava/lang/String;
-PLcom/android/server/wm/DisplayArea;->getOrientation(I)I
+HPLcom/android/server/wm/DisplayArea;->getOrientation(I)I+]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Dimmable;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/TaskDisplayArea;
 HPLcom/android/server/wm/DisplayArea;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/DisplayArea;->getProtoFieldId()J
 HPLcom/android/server/wm/DisplayArea;->getRootTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/DisplayArea;->getStableRect(Landroid/graphics/Rect;)V
 PLcom/android/server/wm/DisplayArea;->getSurfaceControl()Landroid/view/SurfaceControl;
-HPLcom/android/server/wm/DisplayArea;->getSyncTransaction()Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/DisplayArea;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/DisplayArea;->getSyncTransaction()Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/DisplayArea;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/DisplayArea;->handlesOrientationChangeFromDescendant(I)Z
 HPLcom/android/server/wm/DisplayArea;->isOrganized()Z
-PLcom/android/server/wm/DisplayArea;->needsZBoost()Z
+PLcom/android/server/wm/DisplayArea;->isTaskDisplayArea()Z
+PLcom/android/server/wm/DisplayArea;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/DisplayArea;->needsZBoost()Z
 HPLcom/android/server/wm/DisplayArea;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
-HPLcom/android/server/wm/DisplayArea;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/DisplayArea;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/DisplayArea;->onDescendantOrientationChanged(Lcom/android/server/wm/WindowContainer;)Z
 PLcom/android/server/wm/DisplayArea;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/DisplayArea;->onUnfrozen()V
-PLcom/android/server/wm/DisplayArea;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
+HPLcom/android/server/wm/DisplayArea;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/DisplayArea$Dimmable;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/DisplayArea;->providesMaxBounds()Z
 PLcom/android/server/wm/DisplayArea;->reduceOnAllTaskDisplayAreas(Ljava/util/function/BiFunction;Ljava/lang/Object;Z)Ljava/lang/Object;
-HPLcom/android/server/wm/DisplayArea;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/DisplayArea;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/DisplayArea;->sendDisplayAreaInfoChanged()V
 PLcom/android/server/wm/DisplayArea;->sendDisplayAreaVanished(Landroid/window/IDisplayAreaOrganizer;)V
 PLcom/android/server/wm/DisplayArea;->setOrganizer(Landroid/window/IDisplayAreaOrganizer;Z)V
-PLcom/android/server/wm/DisplayArea;->shouldIgnoreOrientationRequest(I)Z
-PLcom/android/server/wm/DisplayArea;->toString()Ljava/lang/String;
-PLcom/android/server/wm/DisplayAreaOrganizerController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/DisplayAreaOrganizerController;ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/DisplayAreaOrganizerController;ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;)V
+HPLcom/android/server/wm/DisplayArea;->shouldIgnoreOrientationRequest(I)Z+]Lcom/android/server/wm/DisplayArea;megamorphic_types
+HPLcom/android/server/wm/DisplayArea;->toString()Ljava/lang/String;
+PLcom/android/server/wm/DisplayAreaOrganizerController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/DisplayAreaOrganizerController;ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;I)V
 PLcom/android/server/wm/DisplayAreaOrganizerController$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/DisplayAreaOrganizerController$DeathRecipient;-><init>(Lcom/android/server/wm/DisplayAreaOrganizerController;Landroid/window/IDisplayAreaOrganizer;I)V
 PLcom/android/server/wm/DisplayAreaOrganizerController$DisplayAreaOrganizerState;-><init>(Lcom/android/server/wm/DisplayAreaOrganizerController;Landroid/window/IDisplayAreaOrganizer;I)V
-PLcom/android/server/wm/DisplayAreaOrganizerController;->$r8$lambda$CvQU9LqFTmbUEmALsGj5S7UV_PU(Lcom/android/server/wm/DisplayAreaOrganizerController;ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;Lcom/android/server/wm/DisplayArea;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController;->$r8$lambda$wSnU_Pe7TXl_HhzB7fVcyiY4FP4(Lcom/android/server/wm/DisplayAreaOrganizerController;ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/DisplayAreaOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController;->enforceTaskPermission(Ljava/lang/String;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController;->getOrganizerByFeature(I)Landroid/window/IDisplayAreaOrganizer;
-PLcom/android/server/wm/DisplayAreaOrganizerController;->lambda$registerOrganizer$0(ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;Lcom/android/server/wm/DisplayArea;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController;->lambda$registerOrganizer$1(ILjava/util/List;Landroid/window/IDisplayAreaOrganizer;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayAreaOrganizerController;->organizeDisplayArea(Landroid/window/IDisplayAreaOrganizer;Lcom/android/server/wm/DisplayArea;Ljava/lang/String;)Landroid/window/DisplayAreaAppearedInfo;
 PLcom/android/server/wm/DisplayAreaOrganizerController;->registerOrganizer(Landroid/window/IDisplayAreaOrganizer;I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider$$ExternalSyntheticLambda0;->create(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)Lcom/android/server/wm/DisplayArea;
 PLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider;-><init>()V
-PLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider;->configureTrustedHierarchyBuilder(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider;->instantiate(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/RootDisplayArea;Lcom/android/server/wm/DisplayArea$Tokens;)Lcom/android/server/wm/DisplayAreaPolicy;
-PLcom/android/server/wm/DisplayAreaPolicy$Provider;->fromResources(Landroid/content/res/Resources;)Lcom/android/server/wm/DisplayAreaPolicy$Provider;
-PLcom/android/server/wm/DisplayAreaPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/RootDisplayArea;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$DefaultSelectRootForWindowFunction;-><init>(Lcom/android/server/wm/RootDisplayArea;Ljava/util/List;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$DefaultSelectRootForWindowFunction;->apply(Ljava/lang/Integer;Landroid/os/Bundle;)Lcom/android/server/wm/RootDisplayArea;
+PLcom/android/server/wm/DisplayAreaPolicy;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$DefaultSelectRootForWindowFunction;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/util/List;)V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$DefaultSelectRootForWindowFunction;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$DefaultSelectTaskDisplayAreaFunction;-><init>(Lcom/android/server/wm/TaskDisplayArea;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder$$ExternalSyntheticLambda0;->create(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayArea$Type;Ljava/lang/String;I)Lcom/android/server/wm/DisplayArea;
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;-><init>(Lcom/android/server/policy/WindowManagerPolicy;Ljava/lang/String;I)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->all()Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->and([I)Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->build()Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->except([I)Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->except([I)V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->layerFromType(IZ)I
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->set(IZ)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->setNewDisplayAreaSupplier(Lcom/android/server/wm/DisplayAreaPolicyBuilder$NewDisplayAreaSupplier;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;->upTo(I)Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature$Builder;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;->-$$Nest$fgetmId(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;)I
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;->-$$Nest$fgetmName(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;)Ljava/lang/String;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;->-$$Nest$fgetmNewDisplayAreaSupplier(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$NewDisplayAreaSupplier;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;->-$$Nest$fgetmWindowLayers(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;)[Z
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;-><init>(Ljava/lang/String;I[ZLcom/android/server/wm/DisplayAreaPolicyBuilder$NewDisplayAreaSupplier;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;-><init>(Ljava/lang/String;I[ZLcom/android/server/wm/DisplayAreaPolicyBuilder$NewDisplayAreaSupplier;Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature-IA;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;->getId()I
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->-$$Nest$fgetmFeatures(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;)Ljava/util/ArrayList;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->-$$Nest$fgetmImeContainer(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;)Lcom/android/server/wm/DisplayArea$Tokens;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->-$$Nest$fgetmRoot(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;)Lcom/android/server/wm/RootDisplayArea;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->-$$Nest$fgetmTaskDisplayAreas(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;)Ljava/util/ArrayList;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->-$$Nest$mbuild(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;Ljava/util/List;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;-><init>(Lcom/android/server/wm/RootDisplayArea;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->addDisplayAreaGroupsToApplicationLayer(Lcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;Ljava/util/List;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->addFeature(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->addTaskDisplayAreasToApplicationLayer(Lcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;)V
-HPLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->build(Ljava/util/List;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->setImeContainer(Lcom/android/server/wm/DisplayArea$Tokens;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->setTaskDisplayAreas(Ljava/util/List;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->typeOfLayer(Lcom/android/server/policy/WindowManagerPolicy;I)I
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;->build(Ljava/util/List;)V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->$r8$lambda$VwU16eW1PmOKwR0U1Wij7qH1PtU(Lcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;)I
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;-><init>(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;ILcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;)V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->computeMaxLayer()I
-HPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->createArea(Lcom/android/server/wm/DisplayArea;[Lcom/android/server/wm/DisplayArea$Tokens;)Lcom/android/server/wm/DisplayArea;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->fillAreaForLayers(Lcom/android/server/wm/DisplayArea$Tokens;[Lcom/android/server/wm/DisplayArea$Tokens;)V
-HPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->instantiateChildren(Lcom/android/server/wm/DisplayArea;[Lcom/android/server/wm/DisplayArea$Tokens;ILjava/util/Map;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->lambda$instantiateChildren$0(Lcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;)I
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->instantiateChildren(Lcom/android/server/wm/DisplayArea;[Lcom/android/server/wm/DisplayArea$Tokens;ILjava/util/Map;)V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->$r8$lambda$YTS6mATtwOUjwC_PPe0TcCmppOQ(Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/RootDisplayArea;Ljava/util/List;Ljava/util/function/BiFunction;Ljava/util/function/Function;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->findAreaForWindowType(ILandroid/os/Bundle;ZZ)Lcom/android/server/wm/DisplayArea$Tokens;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->getDefaultTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->getDisplayAreas(I)Ljava/util/List;
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->getDisplayAreas(Lcom/android/server/wm/RootDisplayArea;ILjava/util/List;)V
-PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->lambda$new$0(Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/TaskDisplayArea;
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/util/List;Ljava/util/function/BiFunction;Ljava/util/function/Function;)V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder;-><init>()V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder;->build(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$Result;
+PLcom/android/server/wm/DisplayAreaPolicyBuilder;->canBeWindowingLayer(I)Z
 PLcom/android/server/wm/DisplayAreaPolicyBuilder;->containsDefaultTaskDisplayArea(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;)Z
 PLcom/android/server/wm/DisplayAreaPolicyBuilder;->setRootHierarchy(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;)Lcom/android/server/wm/DisplayAreaPolicyBuilder;
 PLcom/android/server/wm/DisplayAreaPolicyBuilder;->validate()V
 PLcom/android/server/wm/DisplayAreaPolicyBuilder;->validateIds(Lcom/android/server/wm/DisplayAreaPolicyBuilder$HierarchyBuilder;Ljava/util/Set;Ljava/util/Set;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda10;-><init>()V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda12;-><init>(Z)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/RecentsAnimationController;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Region;)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda18;->run()V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda19;-><init>([I)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda20;-><init>()V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/wm/ActivityRecord;Z)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda24;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/util/SparseBooleanArray;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda32;->compute(Ljava/lang/Object;I)Ljava/lang/Object;
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda33;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda33;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda34;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda35;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda36;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda37;->compute(Ljava/lang/Object;I)Ljava/lang/Object;
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda38;->compute(Ljava/lang/Object;I)Ljava/lang/Object;
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda39;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda39;->compute(Ljava/lang/Object;I)Ljava/lang/Object;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda10;-><init>(Z)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda11;-><init>(II)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda11;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Region;)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda17;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayContent;I)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda1;->accept$com$android$server$wm$DisplayContent$$ExternalSyntheticLambda35(Ljava/lang/Object;)V+]Landroid/view/IWindow;Landroid/view/IWindow$Stub$Proxy;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda22;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda22;->run()V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda25;-><init>(Lcom/android/server/wm/ActivityRecord;Z)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda25;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda2;-><init>(Ljava/util/Set;Ljava/util/Set;Landroid/graphics/Matrix;[F)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Z+]Landroid/graphics/Region;Landroid/graphics/Region;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;-><init>(II)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/util/SparseBooleanArray;)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda31;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/wm/DisplayContent;I)V
 PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda40;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda41;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda42;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda44;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda44;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda45;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda45;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda46;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda46;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda47;-><init>(Landroid/os/IBinder;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda47;->run()V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/RecentsAnimationController;Ljava/util/Set;Ljava/util/Set;Landroid/graphics/Matrix;[F)V
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Z
-HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;-><init>([I[ILandroid/graphics/Region;)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda54;-><init>([Z)V
-PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda54;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayContent$1;-><init>()V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;-><init>([I[ILandroid/graphics/Region;)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda51;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda5;-><init>(ILcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/DisplayContent$2;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;-><init>()V
-PLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;-><init>(Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState-IA;)V
-HPLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;->reset()V
-PLcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
-PLcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;->shouldDeferRotation()Z
-PLcom/android/server/wm/DisplayContent$ImeContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayContent$ImeContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
+HPLcom/android/server/wm/DisplayContent$2;->onVisibleRequestedChanged(Z)V
+PLcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;-><init>(Lcom/android/server/wm/DisplayContent;I)V
+PLcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;->onAppTransitionCancelledLocked(Z)V
+HPLcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/DisplayContent$ImeContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
 PLcom/android/server/wm/DisplayContent$ImeContainer;->assignRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IZ)V
-HPLcom/android/server/wm/DisplayContent$ImeContainer;->forAllWindowForce(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+PLcom/android/server/wm/DisplayContent$ImeContainer;->forAllWindowForce(Lcom/android/internal/util/ToBooleanFunction;Z)Z
 HPLcom/android/server/wm/DisplayContent$ImeContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-PLcom/android/server/wm/DisplayContent$ImeContainer;->getOrientation(I)I
-PLcom/android/server/wm/DisplayContent$ImeContainer;->setNeedsLayer()V
-HPLcom/android/server/wm/DisplayContent$ImeContainer;->skipImeWindowsDuringTraversal(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/DisplayContent$ImeContainer;->updateAboveInsetsState(Landroid/view/InsetsState;Landroid/util/SparseArray;Landroid/util/ArraySet;)V
+HPLcom/android/server/wm/DisplayContent$ImeContainer;->getOrientation(I)I
+HPLcom/android/server/wm/DisplayContent$ImeContainer;->updateAboveInsetsState(Landroid/view/InsetsState;Landroid/util/SparseArray;Landroid/util/ArraySet;)V
+PLcom/android/server/wm/DisplayContent$ImeScreenshot;->removeImeSurface(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/view/IDisplayWindowInsetsController;)V
-PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;-><init>()V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$-dBz3LtsWovWVT0SE5m__EwNfT4(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$-uN73aqsI8TZanC60X9G06a6GDM(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$09LjI9IPIDqkx6xQRSSpO0paSaI(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$0qT6GYhjGguOWMyvPDOpZD9lW8A(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$5VVSLdls3hPPHQhvQRptGbZEU1E(Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayShape;I)Landroid/view/DisplayShape;
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$5vVpESsNA57k_2CBS_VsBrdc5Qo(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$ODoFFvXsuJpa6DBeEVK2Nh28Xc0(Lcom/android/server/wm/DisplayContent;Landroid/util/SparseBooleanArray;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$OlRwH3_Eqb403xPL7MPG5vhH0aE(Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout;
-HPLcom/android/server/wm/DisplayContent;->$r8$lambda$YbN3cIeEsM0DLZIuG7yQvhoeuNM(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$_tz4aBALPch7QAqA8f5IEbuIfEE(ZLcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$f7tHAwMP7F9Y6GRaAF8mvZCW4p4(Lcom/android/server/wm/DisplayContent;Landroid/view/RoundedCorners;I)Landroid/view/RoundedCorners;
-HPLcom/android/server/wm/DisplayContent;->$r8$lambda$fxEggzNsTLRHb7So7DIvQvSPsEo(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/RecentsAnimationController;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Region;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$g3NtyUymxIbR0_Zt8BGLWPTUWWk(Lcom/android/server/wm/DisplayContent;Landroid/view/PrivacyIndicatorBounds;I)Landroid/view/PrivacyIndicatorBounds;
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$gxfy_OQnZiuljU-tl2O5KLP4WJI([ZLcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/DisplayContent;->$r8$lambda$hkBcv35oI_sDzJ-r3_1RUH-fcfo(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$jZHjGh_d804t67Tg169ZuvciwD4(Landroid/os/IBinder;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$jsLbkOO-i9uxdPcBuBSaATpXXAQ([ILcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/DisplayContent;->$r8$lambda$m3_QfYVQ2X5TCCaPfidklMmlJ3A(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$nSzlgovjqO6D-KA1rputZkWgFOY(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayContent;->$r8$lambda$ro8qyeDvIUnuK9S-Ac1Fs1DW7Pc(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayContent;->$r8$lambda$viMLDYZeNr6UfQB2dUSXkWvClEk(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->$r8$lambda$wQPrC0OEjFFleCp1VlzlAyiSCm4(Lcom/android/server/wm/RecentsAnimationController;Ljava/util/Set;Ljava/util/Set;Landroid/graphics/Matrix;[FLcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->-$$Nest$fgetmFixedRotationLaunchingApp(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/DisplayContent;->-$$Nest$fgetmImeLayeringTarget(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;->isRequestedVisible(I)Z
+PLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;->notifyInsetsControlChanged(I)V
 PLcom/android/server/wm/DisplayContent;-><clinit>()V
-HPLcom/android/server/wm/DisplayContent;-><init>(Landroid/view/Display;Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/DeviceStateController;)V
-HPLcom/android/server/wm/DisplayContent;->addToGlobalAndConsumeLimit(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Rect;ILcom/android/server/wm/WindowState;I)I
+PLcom/android/server/wm/DisplayContent;-><init>(Landroid/view/Display;Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/DeviceStateController;)V
+HPLcom/android/server/wm/DisplayContent;->addToGlobalAndConsumeLimit(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Rect;ILcom/android/server/wm/WindowState;I)I+]Landroid/graphics/Region;Landroid/graphics/Region;
 HPLcom/android/server/wm/DisplayContent;->addWindowToken(Landroid/os/IBinder;Lcom/android/server/wm/WindowToken;)V
-HPLcom/android/server/wm/DisplayContent;->adjustDisplaySizeRanges(Landroid/view/DisplayInfo;III)V
-PLcom/android/server/wm/DisplayContent;->adjustForImeIfNeeded()V
+HPLcom/android/server/wm/DisplayContent;->adjustDisplaySizeRanges(Landroid/view/DisplayInfo;IIIZ)V
+HPLcom/android/server/wm/DisplayContent;->adjustForImeIfNeeded()V
 PLcom/android/server/wm/DisplayContent;->alwaysCreateRootTask(II)Z
-HPLcom/android/server/wm/DisplayContent;->applySurfaceChangesTransaction()V
+PLcom/android/server/wm/DisplayContent;->applyFixedRotationForNonTopVisibleActivityIfNeeded(ILcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/DisplayContent;->asDisplayContent()Lcom/android/server/wm/DisplayContent;
 PLcom/android/server/wm/DisplayContent;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/DisplayContent;->assignRelativeLayerForIme(Landroid/view/SurfaceControl$Transaction;Z)V
-PLcom/android/server/wm/DisplayContent;->assignWindowLayers(Z)V
-PLcom/android/server/wm/DisplayContent;->beginHoldScreenUpdate()V
+HPLcom/android/server/wm/DisplayContent;->assignRelativeLayerForIme(Landroid/view/SurfaceControl$Transaction;Z)V+]Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;,Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/DisplayContent;->assignWindowLayers(Z)V
+PLcom/android/server/wm/DisplayContent;->attachImeScreenshotOnTarget(Lcom/android/server/wm/WindowState;Z)V
 HPLcom/android/server/wm/DisplayContent;->calculateDisplayCutoutForRotation(I)Landroid/view/DisplayCutout;
-PLcom/android/server/wm/DisplayContent;->calculateDisplayCutoutForRotationAndDisplaySizeUncached(Landroid/view/DisplayCutout;III)Lcom/android/server/wm/utils/WmDisplayCutout;
-PLcom/android/server/wm/DisplayContent;->calculateDisplayCutoutForRotationUncached(Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout;
-PLcom/android/server/wm/DisplayContent;->calculateDisplayShapeForRotation(I)Landroid/view/DisplayShape;
-PLcom/android/server/wm/DisplayContent;->calculateDisplayShapeForRotationUncached(Landroid/view/DisplayShape;I)Landroid/view/DisplayShape;
-PLcom/android/server/wm/DisplayContent;->calculatePrivacyIndicatorBoundsForRotation(I)Landroid/view/PrivacyIndicatorBounds;
-PLcom/android/server/wm/DisplayContent;->calculatePrivacyIndicatorBoundsForRotationUncached(Landroid/view/PrivacyIndicatorBounds;I)Landroid/view/PrivacyIndicatorBounds;
-HPLcom/android/server/wm/DisplayContent;->calculateRoundedCornersForRotation(I)Landroid/view/RoundedCorners;
-PLcom/android/server/wm/DisplayContent;->calculateRoundedCornersForRotationUncached(Landroid/view/RoundedCorners;I)Landroid/view/RoundedCorners;
-HPLcom/android/server/wm/DisplayContent;->calculateSystemGestureExclusion(Landroid/graphics/Region;Landroid/graphics/Region;)Z
-PLcom/android/server/wm/DisplayContent;->canShowTasksInHostDeviceRecents()Z
-HPLcom/android/server/wm/DisplayContent;->canShowWithInsecureKeyguard()Z
-PLcom/android/server/wm/DisplayContent;->canStealTopFocus()Z
-PLcom/android/server/wm/DisplayContent;->canUpdateImeTarget()Z
+PLcom/android/server/wm/DisplayContent;->calculateRoundedCornersForRotation(I)Landroid/view/RoundedCorners;
+HPLcom/android/server/wm/DisplayContent;->calculateSystemGestureExclusion(Landroid/graphics/Region;Landroid/graphics/Region;)Z+]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/view/InsetsState;Landroid/view/InsetsState;
+PLcom/android/server/wm/DisplayContent;->canAddToastWindowForUid(I)Z
 PLcom/android/server/wm/DisplayContent;->clearFixedRotationLaunchingApp()V
-PLcom/android/server/wm/DisplayContent;->clearLayoutNeeded()V
-PLcom/android/server/wm/DisplayContent;->computeCompatSmallestWidth(ZII)I
-PLcom/android/server/wm/DisplayContent;->computeImeControlTarget()Lcom/android/server/wm/InsetsControlTarget;
-PLcom/android/server/wm/DisplayContent;->computeImeParent()Landroid/view/SurfaceControl;
-PLcom/android/server/wm/DisplayContent;->computeImeTarget(Z)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayContent;->computeImeTargetIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/DisplayContent;->computeScreenAppConfiguration(Landroid/content/res/Configuration;III)V
-HPLcom/android/server/wm/DisplayContent;->computeScreenConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/DisplayContent;->computeSizeRanges(Landroid/view/DisplayInfo;ZIIFLandroid/content/res/Configuration;)V
+HPLcom/android/server/wm/DisplayContent;->computeImeControlTarget()Lcom/android/server/wm/InsetsControlTarget;
+HPLcom/android/server/wm/DisplayContent;->computeImeParent()Lcom/android/server/wm/WindowContainer;
+HPLcom/android/server/wm/DisplayContent;->computeImeTarget(Z)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/DisplayContent;->computeScreenAppConfiguration(Landroid/content/res/Configuration;III)V
+PLcom/android/server/wm/DisplayContent;->computeScreenConfiguration(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/DisplayContent;->computeSizeRanges(Landroid/view/DisplayInfo;ZIIFLandroid/content/res/Configuration;Z)V
 PLcom/android/server/wm/DisplayContent;->configureDisplayPolicy()V
-HPLcom/android/server/wm/DisplayContent;->configureSurfaces(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/DisplayContent;->configureSurfaces(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/DisplayContent;->continueUpdateImeTarget()V
+PLcom/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
 PLcom/android/server/wm/DisplayContent;->enableHighFrameRate(Z)V
-PLcom/android/server/wm/DisplayContent;->enableHighPerfTransition(Z)V
+HPLcom/android/server/wm/DisplayContent;->enableHighPerfTransition(Z)V
 HPLcom/android/server/wm/DisplayContent;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/DisplayContent;->executeAppTransition()V
+HPLcom/android/server/wm/DisplayContent;->executeAppTransition()V
 PLcom/android/server/wm/DisplayContent;->fillsParent()Z
-PLcom/android/server/wm/DisplayContent;->findAreaForToken(Lcom/android/server/wm/WindowToken;)Lcom/android/server/wm/DisplayArea;
 PLcom/android/server/wm/DisplayContent;->findAreaForWindowType(ILandroid/os/Bundle;ZZ)Lcom/android/server/wm/DisplayArea;
 HPLcom/android/server/wm/DisplayContent;->findFocusedWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayContent;->findFocusedWindowIfNeeded(I)Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/DisplayContent;->finishHoldScreenUpdate()V
-HPLcom/android/server/wm/DisplayContent;->forAllImeWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-PLcom/android/server/wm/DisplayContent;->forceDesktopMode()Z
-HPLcom/android/server/wm/DisplayContent;->getAsyncRotationController()Lcom/android/server/wm/AsyncRotationController;
-HPLcom/android/server/wm/DisplayContent;->getDefaultTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/DisplayContent;->getDisplay()Landroid/view/Display;
-HPLcom/android/server/wm/DisplayContent;->getDisplayId()I
-HPLcom/android/server/wm/DisplayContent;->getDisplayInfo()Landroid/view/DisplayInfo;
-HPLcom/android/server/wm/DisplayContent;->getDisplayPolicy()Lcom/android/server/wm/DisplayPolicy;
-PLcom/android/server/wm/DisplayContent;->getDisplayRotation()Lcom/android/server/wm/DisplayRotation;
-PLcom/android/server/wm/DisplayContent;->getDisplayUiContext()Landroid/content/Context;
+PLcom/android/server/wm/DisplayContent;->getAsyncRotationController()Lcom/android/server/wm/AsyncRotationController;
+PLcom/android/server/wm/DisplayContent;->getDefaultTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
+PLcom/android/server/wm/DisplayContent;->getDisplayPolicy()Lcom/android/server/wm/DisplayPolicy;
 HPLcom/android/server/wm/DisplayContent;->getFocusedRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/DisplayContent;->getImeContainer()Lcom/android/server/wm/DisplayArea$Tokens;
-PLcom/android/server/wm/DisplayContent;->getImeHostOrFallback(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
-HPLcom/android/server/wm/DisplayContent;->getImeInputTarget()Lcom/android/server/wm/InputTarget;
-PLcom/android/server/wm/DisplayContent;->getImePolicy()I
+HPLcom/android/server/wm/DisplayContent;->getImeHostOrFallback(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
+HPLcom/android/server/wm/DisplayContent;->getImePolicy()I
 HPLcom/android/server/wm/DisplayContent;->getImeTarget(I)Lcom/android/server/wm/InsetsControlTarget;
 PLcom/android/server/wm/DisplayContent;->getInitialDisplayDensity()I
-PLcom/android/server/wm/DisplayContent;->getInputMethodWindowVisibleHeight()I
-HPLcom/android/server/wm/DisplayContent;->getInputMonitor()Lcom/android/server/wm/InputMonitor;
-PLcom/android/server/wm/DisplayContent;->getInputOverlayLayer()Landroid/view/SurfaceControl;
-HPLcom/android/server/wm/DisplayContent;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
-HPLcom/android/server/wm/DisplayContent;->getInsetsStateController()Lcom/android/server/wm/InsetsStateController;
-HPLcom/android/server/wm/DisplayContent;->getKeepClearAreas(Ljava/util/Set;Ljava/util/Set;)V
-PLcom/android/server/wm/DisplayContent;->getLastHasContent()Z
-PLcom/android/server/wm/DisplayContent;->getMetricsLogger()Lcom/android/internal/logging/MetricsLogger;
+HPLcom/android/server/wm/DisplayContent;->getInputMethodWindowVisibleHeight()I
+PLcom/android/server/wm/DisplayContent;->getInsetsStateController()Lcom/android/server/wm/InsetsStateController;
+PLcom/android/server/wm/DisplayContent;->getLayerCaptureArgs(Ljava/util/Set;)Landroid/window/ScreenCapture$LayerCaptureArgs;
 PLcom/android/server/wm/DisplayContent;->getMinimalTaskSizeDp()I
 PLcom/android/server/wm/DisplayContent;->getName()Ljava/lang/String;
 HPLcom/android/server/wm/DisplayContent;->getOrientation()I
-PLcom/android/server/wm/DisplayContent;->getOrientationRequestingTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
+PLcom/android/server/wm/DisplayContent;->getProtoFieldId()J
 PLcom/android/server/wm/DisplayContent;->getRelativeDisplayRotation()I
-PLcom/android/server/wm/DisplayContent;->getRootTaskCount()I
-PLcom/android/server/wm/DisplayContent;->getRotation()I
-PLcom/android/server/wm/DisplayContent;->getRotationAnimation()Lcom/android/server/wm/ScreenRotationAnimation;
-PLcom/android/server/wm/DisplayContent;->getSession()Landroid/view/SurfaceSession;
-PLcom/android/server/wm/DisplayContent;->getStableRect(Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/DisplayContent;->getWindowToken(Landroid/os/IBinder;)Lcom/android/server/wm/WindowToken;
-PLcom/android/server/wm/DisplayContent;->handleActivitySizeCompatModeIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/DisplayContent;->getStableRect(Landroid/graphics/Rect;)V
+PLcom/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;->handleActivitySizeCompatModeIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/DisplayContent;->handleAnimatingStoppedAndTransition()V
 HPLcom/android/server/wm/DisplayContent;->handleCompleteDeferredRemoval()Z
 HPLcom/android/server/wm/DisplayContent;->handleTopActivityLaunchingInDifferentOrientation(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Z)Z
 HPLcom/android/server/wm/DisplayContent;->handlesOrientationChangeFromDescendant(I)Z
 PLcom/android/server/wm/DisplayContent;->hasAccess(I)Z
+PLcom/android/server/wm/DisplayContent;->hasAlertWindowSurfaces()Z
 HPLcom/android/server/wm/DisplayContent;->hasOwnFocus()Z
 HPLcom/android/server/wm/DisplayContent;->inTransition()Z
-PLcom/android/server/wm/DisplayContent;->initializeDisplayBaseInfo()V
+PLcom/android/server/wm/DisplayContent;->isFixedRotationLaunchingApp(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/DisplayContent;->isHomeSupported()Z
-PLcom/android/server/wm/DisplayContent;->isImeControlledByApp()Z
 PLcom/android/server/wm/DisplayContent;->isInTouchMode()Z
-PLcom/android/server/wm/DisplayContent;->isInputMethodClientFocus(II)Z
-PLcom/android/server/wm/DisplayContent;->isKeyguardAlwaysUnlocked()Z
-HPLcom/android/server/wm/DisplayContent;->isKeyguardGoingAway()Z
 HPLcom/android/server/wm/DisplayContent;->isKeyguardLocked()Z
-HPLcom/android/server/wm/DisplayContent;->isLayoutNeeded()Z
-PLcom/android/server/wm/DisplayContent;->isNextTransitionForward()Z
+HPLcom/android/server/wm/DisplayContent;->isNextTransitionForward()Z
 PLcom/android/server/wm/DisplayContent;->isPrivate()Z
+PLcom/android/server/wm/DisplayContent;->isPublicSecondaryDisplayWithDesktopModeForceEnabled()Z
 PLcom/android/server/wm/DisplayContent;->isReady()Z
-HPLcom/android/server/wm/DisplayContent;->isRemoved()Z
-HPLcom/android/server/wm/DisplayContent;->isRemoving()Z
-PLcom/android/server/wm/DisplayContent;->isRotationChanging()Z
-HPLcom/android/server/wm/DisplayContent;->isSleeping()Z
-PLcom/android/server/wm/DisplayContent;->isTrusted()Z
+HPLcom/android/server/wm/DisplayContent;->isRotationChanging()Z
+PLcom/android/server/wm/DisplayContent;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
 PLcom/android/server/wm/DisplayContent;->isVisible()Z
-PLcom/android/server/wm/DisplayContent;->isVisibleRequested()Z
-HPLcom/android/server/wm/DisplayContent;->lambda$calculateSystemGestureExclusion$34(Lcom/android/server/wm/RecentsAnimationController;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Region;Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayContent;->lambda$ensureActivitiesVisible$47(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/DisplayContent;->lambda$getKeepClearAreas$37(Lcom/android/server/wm/RecentsAnimationController;Ljava/util/Set;Ljava/util/Set;Landroid/graphics/Matrix;[FLcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->lambda$getRootTaskCount$15([ILcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/DisplayContent;->lambda$new$1(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$new$2(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayContent;->lambda$new$3(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/DisplayContent;->lambda$new$4(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$new$5(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$new$6(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/DisplayContent;->lambda$new$7(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayContent;->lambda$new$8(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$onImeInsetsClientVisibilityUpdate$27([ZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/DisplayContent;->lambda$shouldWaitForSystemDecorWindowsOnBoot$31(Landroid/util/SparseBooleanArray;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->lambda$topRunningActivity$40(ZLcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/DisplayContent;->lambda$updateDisplayAreaOrganizers$17(Lcom/android/server/wm/DisplayArea;)V
-PLcom/android/server/wm/DisplayContent;->lambda$updateImeControlTarget$28(Landroid/os/IBinder;)V
-PLcom/android/server/wm/DisplayContent;->lambda$updateImeParent$29()V
-PLcom/android/server/wm/DisplayContent;->logsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/DisplayContent;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/DisplayContent;->isVisibleRequested()Z
+PLcom/android/server/wm/DisplayContent;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/DisplayContent;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;+]Landroid/view/SurfaceControl$Builder;Landroid/view/SurfaceControl$Builder;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types
 HPLcom/android/server/wm/DisplayContent;->needsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;Z)Z
-PLcom/android/server/wm/DisplayContent;->notifyInsetsChanged(Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/DisplayContent;->okToAnimate(ZZ)Z
-PLcom/android/server/wm/DisplayContent;->okToDisplay()Z
+PLcom/android/server/wm/DisplayContent;->notifyKeyguardFlagsChanged()V
+HPLcom/android/server/wm/DisplayContent;->okToAnimate(ZZ)Z
 HPLcom/android/server/wm/DisplayContent;->okToDisplay(ZZ)Z
 PLcom/android/server/wm/DisplayContent;->onAppTransitionDone()V
-HPLcom/android/server/wm/DisplayContent;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/DisplayContent;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/DisplayContent;->onDescendantOrientationChanged(Lcom/android/server/wm/WindowContainer;)Z
 PLcom/android/server/wm/DisplayContent;->onDescendantOverrideConfigurationChanged()V
-PLcom/android/server/wm/DisplayContent;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/DisplayContent;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/DisplayContent;->onDisplayInfoChanged()V
-PLcom/android/server/wm/DisplayContent;->onDisplayInfoUpdated(Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/DisplayContent;->onImeInsetsClientVisibilityUpdate()Z
-PLcom/android/server/wm/DisplayContent;->onLastFocusedTaskDisplayAreaChanged(Lcom/android/server/wm/TaskDisplayArea;)V
 PLcom/android/server/wm/DisplayContent;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
 PLcom/android/server/wm/DisplayContent;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/DisplayContent;->onResize()V
 PLcom/android/server/wm/DisplayContent;->onRunningActivityChanged()V
-PLcom/android/server/wm/DisplayContent;->onTransitionFinished()V
-PLcom/android/server/wm/DisplayContent;->onWindowAnimationFinished(Lcom/android/server/wm/WindowContainer;I)V
-HPLcom/android/server/wm/DisplayContent;->performDisplayOverrideConfigUpdate(Landroid/content/res/Configuration;)I
-HPLcom/android/server/wm/DisplayContent;->performLayout(ZZ)V
-HPLcom/android/server/wm/DisplayContent;->performLayoutNoTrace(ZZ)V
-PLcom/android/server/wm/DisplayContent;->prepareAppTransition(I)V
-PLcom/android/server/wm/DisplayContent;->prepareAppTransition(II)V
+PLcom/android/server/wm/DisplayContent;->performDisplayOverrideConfigUpdate(Landroid/content/res/Configuration;)I
+HPLcom/android/server/wm/DisplayContent;->performLayout(Z)V
+HPLcom/android/server/wm/DisplayContent;->prepareAppTransition(II)V
 HPLcom/android/server/wm/DisplayContent;->prepareSurfaces()V
 PLcom/android/server/wm/DisplayContent;->providesMaxBounds()Z
-PLcom/android/server/wm/DisplayContent;->reParentWindowToken(Lcom/android/server/wm/WindowToken;)V
-PLcom/android/server/wm/DisplayContent;->reapplyMagnificationSpec()V
+HPLcom/android/server/wm/DisplayContent;->reParentWindowToken(Lcom/android/server/wm/WindowToken;)V
 PLcom/android/server/wm/DisplayContent;->reconfigureDisplayLocked()V
 PLcom/android/server/wm/DisplayContent;->reduceCompatConfigWidthSize(IILandroid/util/DisplayMetrics;II)I
-PLcom/android/server/wm/DisplayContent;->refreshImeSecureFlag(Landroid/view/SurfaceControl$Transaction;)Z
-PLcom/android/server/wm/DisplayContent;->registerDecorViewGestureListener(Landroid/view/IDecorViewGestureListener;)V
 PLcom/android/server/wm/DisplayContent;->registerPointerEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
-PLcom/android/server/wm/DisplayContent;->registerSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;)V
+PLcom/android/server/wm/DisplayContent;->releaseSelfIfNeeded()V
 PLcom/android/server/wm/DisplayContent;->removeImeSurfaceByTarget(Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/DisplayContent;->removeImeSurfaceImmediately()V
 PLcom/android/server/wm/DisplayContent;->removeWindowToken(Landroid/os/IBinder;Z)Lcom/android/server/wm/WindowToken;
-PLcom/android/server/wm/DisplayContent;->requestDisplayUpdate(Ljava/lang/Runnable;)V
-PLcom/android/server/wm/DisplayContent;->rotationForActivityInDifferentOrientation(Lcom/android/server/wm/ActivityRecord;)I
-PLcom/android/server/wm/DisplayContent;->sandboxDisplayApis()Z
-PLcom/android/server/wm/DisplayContent;->scheduleToastWindowsTimeoutIfNeededLocked(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/DisplayContent;->requestChangeTransition(ILandroid/window/TransitionRequestInfo$DisplayChange;)V
+HPLcom/android/server/wm/DisplayContent;->requestDisplayUpdate(Ljava/lang/Runnable;)V
+HPLcom/android/server/wm/DisplayContent;->rotationForActivityInDifferentOrientation(Lcom/android/server/wm/ActivityRecord;)I
 PLcom/android/server/wm/DisplayContent;->sendNewConfiguration()Z
 PLcom/android/server/wm/DisplayContent;->setDisplayInfoOverride()V
-HPLcom/android/server/wm/DisplayContent;->setDisplayMirroring()Z
-PLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/DisplayContent;->setIgnoreOrientationRequest(Z)Z
-PLcom/android/server/wm/DisplayContent;->setImeInputTarget(Lcom/android/server/wm/InputTarget;)V
-PLcom/android/server/wm/DisplayContent;->setImeLayeringTargetInner(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->setImeInputTarget(Lcom/android/server/wm/InputTarget;)V
+PLcom/android/server/wm/DisplayContent;->setImeLayeringTarget(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->setImeLayeringTargetInner(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->setInputMethodWindowLocked(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->setLayoutNeeded()V
 PLcom/android/server/wm/DisplayContent;->setRemoteInsetsController(Landroid/view/IDisplayWindowInsetsController;)V
-HPLcom/android/server/wm/DisplayContent;->shouldDeferRemoval()Z
-HPLcom/android/server/wm/DisplayContent;->shouldImeAttachedToApp()Z
-PLcom/android/server/wm/DisplayContent;->shouldRotateWithContent()Z
-PLcom/android/server/wm/DisplayContent;->shouldSleep()Z
-PLcom/android/server/wm/DisplayContent;->shouldSyncRotationChange(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/DisplayContent;->shouldDeferRemoval()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/DisplayContent;->shouldImeAttachedToApp()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/InputTarget;Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/DisplayContent;->shouldSleep()Z
 PLcom/android/server/wm/DisplayContent;->shouldWaitForSystemDecorWindowsOnBoot()Z
+HPLcom/android/server/wm/DisplayContent;->showImeScreenshot()V
 PLcom/android/server/wm/DisplayContent;->toString()Ljava/lang/String;
-PLcom/android/server/wm/DisplayContent;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/DisplayContent;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/DisplayContent;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/DisplayContent;->updateBaseDisplayMetrics(IIIFF)V
-HPLcom/android/server/wm/DisplayContent;->updateBaseDisplayMetricsIfNeeded(Landroid/view/DisplayInfo;)V
-HPLcom/android/server/wm/DisplayContent;->updateDisplayAndOrientation(Landroid/content/res/Configuration;)Landroid/view/DisplayInfo;
+PLcom/android/server/wm/DisplayContent;->updateDisplayAndOrientation(Landroid/content/res/Configuration;)Landroid/view/DisplayInfo;
 PLcom/android/server/wm/DisplayContent;->updateDisplayAreaOrganizers()V
-PLcom/android/server/wm/DisplayContent;->updateDisplayFrames(Lcom/android/server/wm/DisplayFrames;III)Z
-PLcom/android/server/wm/DisplayContent;->updateDisplayFrames(Z)V
-PLcom/android/server/wm/DisplayContent;->updateDisplayInfo(Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked()Z
+HPLcom/android/server/wm/DisplayContent;->updateDisplayFrames(Z)V
 HPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Z)Z
-HPLcom/android/server/wm/DisplayContent;->updateFocusedWindowLocked(IZI)Z
-PLcom/android/server/wm/DisplayContent;->updateImeControlTarget()V
-PLcom/android/server/wm/DisplayContent;->updateImeControlTarget(Z)V
-PLcom/android/server/wm/DisplayContent;->updateImeInputAndControlTarget(Lcom/android/server/wm/InputTarget;)V
-PLcom/android/server/wm/DisplayContent;->updateImeParent()V
-HPLcom/android/server/wm/DisplayContent;->updateKeepClearAreas()V
-PLcom/android/server/wm/DisplayContent;->updateOrientation()Z
+HPLcom/android/server/wm/DisplayContent;->updateImeControlTarget(Z)V
+HPLcom/android/server/wm/DisplayContent;->updateImeInputAndControlTarget(Lcom/android/server/wm/InputTarget;)V
+HPLcom/android/server/wm/DisplayContent;->updateImeParent()V
+HPLcom/android/server/wm/DisplayContent;->updateKeepClearAreas()V+]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/view/IDisplayWindowListener;Landroid/view/IDisplayWindowListener$Stub$Proxy;
 PLcom/android/server/wm/DisplayContent;->updateOrientation(Lcom/android/server/wm/WindowContainer;Z)Landroid/content/res/Configuration;
-HPLcom/android/server/wm/DisplayContent;->updateOrientation(Z)Z
-HPLcom/android/server/wm/DisplayContent;->updateRecording()V
-PLcom/android/server/wm/DisplayContent;->updateRotationUnchecked()Z
-HPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusion()Z
-PLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusionLimit()V
-HPLcom/android/server/wm/DisplayContent;->updateTouchExcludeRegion()V
+HPLcom/android/server/wm/DisplayContent;->updateOrientation(Z)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/DisplayContent;->updateRecording()V+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;
+HPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusion()Z+]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/view/ISystemGestureExclusionListener;Landroid/view/ISystemGestureExclusionListener$Stub$Proxy;
 HPLcom/android/server/wm/DisplayContent;->updateWindowsForAnimator()V
 PLcom/android/server/wm/DisplayFrames;-><clinit>()V
 PLcom/android/server/wm/DisplayFrames;-><init>()V
@@ -26972,1109 +21423,637 @@
 HPLcom/android/server/wm/DisplayFrames;->update(IIILandroid/view/DisplayCutout;Landroid/view/RoundedCorners;Landroid/view/PrivacyIndicatorBounds;Landroid/view/DisplayShape;)Z
 PLcom/android/server/wm/DisplayHashController$Handler;-><init>(Lcom/android/server/wm/DisplayHashController;Landroid/os/Looper;)V
 PLcom/android/server/wm/DisplayHashController;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wm/DisplayPolicy;Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda13;->run()V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda14;-><init>()V
-HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda2;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/DisplayPolicy;Ljava/util/function/Consumer;)V
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda12;->run()V
+HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayPolicy;I)V
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda2;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;I)V
 PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda4;-><init>(Lcom/android/internal/policy/ForceShowNavBarSettingsObserver;)V
+PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda4;-><init>(Lcom/android/internal/policy/ForceShowNavBarSettingsObserver;I)V
 PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda4;->run()V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda8;-><init>(II[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;)V
-PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda8;-><init>(II[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;)V
+HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/DisplayPolicy$1$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/DisplayPolicy$1;)V
 PLcom/android/server/wm/DisplayPolicy$1$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayPolicy$1;)V
 PLcom/android/server/wm/DisplayPolicy$1$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/DisplayPolicy$1;)V
 PLcom/android/server/wm/DisplayPolicy$1$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/DisplayPolicy$1;)V
 PLcom/android/server/wm/DisplayPolicy$1;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/DisplayPolicy$2;JJ)V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayPolicy$2;I)V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda1;->run()V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/DisplayPolicy$2;I)V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/DisplayPolicy$2;I)V
-PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda3;->run()V
-PLcom/android/server/wm/DisplayPolicy$2;->$r8$lambda$LNgePaZheD4TlU5IrmvA1klqhxA(Lcom/android/server/wm/DisplayPolicy$2;I)V
-PLcom/android/server/wm/DisplayPolicy$2;->$r8$lambda$_oCBJp-Ybw1Pg_ZtEZnsleQENV8(Lcom/android/server/wm/DisplayPolicy$2;JJ)V
-PLcom/android/server/wm/DisplayPolicy$2;->$r8$lambda$qveQftqQbx73evHdRr8UoP4AtdU(Lcom/android/server/wm/DisplayPolicy$2;I)V
-PLcom/android/server/wm/DisplayPolicy$2;-><init>(Lcom/android/server/wm/DisplayPolicy;I)V
-PLcom/android/server/wm/DisplayPolicy$2;->lambda$$0(I)V
-PLcom/android/server/wm/DisplayPolicy$2;->lambda$$2(I)V
-PLcom/android/server/wm/DisplayPolicy$2;->lambda$onAppTransitionStartingLocked$3(JJ)V
+PLcom/android/server/wm/DisplayPolicy$1;->allowsSideSwipe(Landroid/graphics/Region;)Z
+PLcom/android/server/wm/DisplayPolicy$1;->getControllableInsets(Lcom/android/server/wm/WindowState;)Landroid/graphics/Insets;
+PLcom/android/server/wm/DisplayPolicy$1;->onSwipeFromBottom()V
+PLcom/android/server/wm/DisplayPolicy$1;->onSwipeFromLeft()V
+PLcom/android/server/wm/DisplayPolicy$1;->onSwipeFromRight()V
+PLcom/android/server/wm/DisplayPolicy$1;->onSwipeFromTop()V
+PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/DisplayPolicy$2;J)V
+HPLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayPolicy$2;II)V
+HPLcom/android/server/wm/DisplayPolicy$2$$ExternalSyntheticLambda1;->run()V
+PLcom/android/server/wm/DisplayPolicy$2;-><init>(Lcom/android/server/wm/DisplayPolicy;II)V
+PLcom/android/server/wm/DisplayPolicy$2;->onAppTransitionCancelledLocked(Z)V
 PLcom/android/server/wm/DisplayPolicy$2;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
-PLcom/android/server/wm/DisplayPolicy$2;->onAppTransitionPendingLocked()V
-PLcom/android/server/wm/DisplayPolicy$2;->onAppTransitionStartingLocked(JJ)I
+HPLcom/android/server/wm/DisplayPolicy$2;->onAppTransitionPendingLocked()V
+PLcom/android/server/wm/DisplayPolicy$2;->onAppTransitionStartingLocked(J)I
 PLcom/android/server/wm/DisplayPolicy$3;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$DecorInsets$Info;->-$$Nest$fgetmNeedUpdate(Lcom/android/server/wm/DisplayPolicy$DecorInsets$Info;)Z
 PLcom/android/server/wm/DisplayPolicy$DecorInsets$Info;-><init>()V
-HPLcom/android/server/wm/DisplayPolicy$DecorInsets$Info;->update(Lcom/android/server/wm/DisplayContent;III)Landroid/view/InsetsState;
+PLcom/android/server/wm/DisplayPolicy$DecorInsets$Info;->toString()Ljava/lang/String;
+PLcom/android/server/wm/DisplayPolicy$DecorInsets$Info;->update(IIILcom/android/server/wm/DisplayContent;)Landroid/view/InsetsState;
 PLcom/android/server/wm/DisplayPolicy$DecorInsets;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayPolicy$DecorInsets;->get(III)Lcom/android/server/wm/DisplayPolicy$DecorInsets$Info;
+PLcom/android/server/wm/DisplayPolicy$DecorInsets;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
 PLcom/android/server/wm/DisplayPolicy$PolicyHandler;-><init>(Lcom/android/server/wm/DisplayPolicy;Landroid/os/Looper;)V
-PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$S9Cw3H7Au_8y1didKjHd-o8hjOw(II[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;Lcom/android/server/statusbar/StatusBarManagerInternal;)V
-PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$apsBX7VdE-wGYMlb3sIKMcyPkLk(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$qTqmnzax3qYvwsMFcbv6VpXmHVI(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)Ljava/lang/Integer;
-PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$t_gphUvbhCH7Bf26xg6TpoLO9Jg(Lcom/android/server/wm/DisplayPolicy;Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/DisplayPolicy;->-$$Nest$fgetmContext(Lcom/android/server/wm/DisplayPolicy;)Landroid/content/Context;
-PLcom/android/server/wm/DisplayPolicy;->-$$Nest$fgetmHandler(Lcom/android/server/wm/DisplayPolicy;)Landroid/os/Handler;
 PLcom/android/server/wm/DisplayPolicy;-><clinit>()V
-HPLcom/android/server/wm/DisplayPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/DisplayPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/DisplayPolicy;->addWindowLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V
 HPLcom/android/server/wm/DisplayPolicy;->adjustWindowParamsLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V
-HPLcom/android/server/wm/DisplayPolicy;->applyKeyguardPolicy(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/DisplayPolicy;->applyPostLayoutPolicyLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayPolicy;->areSystemBarsForcedConsumedLw()Z
-HPLcom/android/server/wm/DisplayPolicy;->areTypesForciblyShownTransiently(I)Z
-HPLcom/android/server/wm/DisplayPolicy;->beginPostLayoutPolicyLw()V
-PLcom/android/server/wm/DisplayPolicy;->callStatusBarSafely(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/DisplayPolicy;->chooseNavigationBackgroundWindow(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;I)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayPolicy;->chooseNavigationColorWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;I)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayPolicy;->clearNavBarOpaqueFlag(I)I
-HPLcom/android/server/wm/DisplayPolicy;->configureNavBarOpacity(IZZ)I
-HPLcom/android/server/wm/DisplayPolicy;->configureStatusBarOpacity(I)I
+HPLcom/android/server/wm/DisplayPolicy;->beginPostLayoutPolicyLw()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/DisplayPolicy;->chooseNavigationBackgroundWindow(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Z)Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/DisplayPolicy;->chooseNavigationColorWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Z)Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/DisplayPolicy;->drawsBarBackground(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->finishKeyguardDrawn()Z
-HPLcom/android/server/wm/DisplayPolicy;->finishPostLayoutPolicyLw()V
-PLcom/android/server/wm/DisplayPolicy;->finishScreenTurningOn()Z
-PLcom/android/server/wm/DisplayPolicy;->finishWindowsDrawn()Z
-PLcom/android/server/wm/DisplayPolicy;->focusChangedLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayPolicy;->finishPostLayoutPolicyLw()V+]Ljava/util/HashSet;Ljava/util/HashSet;
+PLcom/android/server/wm/DisplayPolicy;->getBarContentFrameForWindow(Lcom/android/server/wm/WindowState;I)Landroid/graphics/Rect;
 PLcom/android/server/wm/DisplayPolicy;->getContext()Landroid/content/Context;
 PLcom/android/server/wm/DisplayPolicy;->getCurrentUserResources()Landroid/content/res/Resources;
-PLcom/android/server/wm/DisplayPolicy;->getDecorInsetsInfo(III)Lcom/android/server/wm/DisplayPolicy$DecorInsets$Info;
-HPLcom/android/server/wm/DisplayPolicy;->getDisplayId()I
-PLcom/android/server/wm/DisplayPolicy;->getDockMode()I
-PLcom/android/server/wm/DisplayPolicy;->getImeSourceFrameProvider()Lcom/android/internal/util/function/TriFunction;
-HPLcom/android/server/wm/DisplayPolicy;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
-PLcom/android/server/wm/DisplayPolicy;->getLidState()I
-HPLcom/android/server/wm/DisplayPolicy;->getNotificationShade()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/DisplayPolicy;->getRefreshRatePolicy()Lcom/android/server/wm/RefreshRatePolicy;
-PLcom/android/server/wm/DisplayPolicy;->getScreenOnListener()Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;
-PLcom/android/server/wm/DisplayPolicy;->getStatusBar()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayPolicy;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerInternal;
-PLcom/android/server/wm/DisplayPolicy;->getSystemUiContext()Landroid/content/Context;
-PLcom/android/server/wm/DisplayPolicy;->getTopFullscreenOpaqueWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayPolicy;->getWindowCornerRadius()F
-PLcom/android/server/wm/DisplayPolicy;->hasNavigationBar()Z
-HPLcom/android/server/wm/DisplayPolicy;->intersectsAnyInsets(Landroid/graphics/Rect;Landroid/view/InsetsState;I)Z
-PLcom/android/server/wm/DisplayPolicy;->isAwake()Z
-PLcom/android/server/wm/DisplayPolicy;->isCarDockEnablesAccelerometer()Z
-PLcom/android/server/wm/DisplayPolicy;->isDeskDockEnablesAccelerometer()Z
-PLcom/android/server/wm/DisplayPolicy;->isForceShowNavigationBarEnabled()Z
+HPLcom/android/server/wm/DisplayPolicy;->getDecorInsetsInfo(III)Lcom/android/server/wm/DisplayPolicy$DecorInsets$Info;
+PLcom/android/server/wm/DisplayPolicy;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerService$1;
+HPLcom/android/server/wm/DisplayPolicy;->intersectsAnyInsets(Landroid/graphics/Rect;Landroid/view/InsetsState;I)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsState;Landroid/view/InsetsState;
 PLcom/android/server/wm/DisplayPolicy;->isFullyTransparentAllowed(Lcom/android/server/wm/WindowState;I)Z
-PLcom/android/server/wm/DisplayPolicy;->isHdmiPlugged()Z
-HPLcom/android/server/wm/DisplayPolicy;->isImmersiveMode(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->isKeyguardDrawComplete()Z
-PLcom/android/server/wm/DisplayPolicy;->isKeyguardOccluded()Z
-HPLcom/android/server/wm/DisplayPolicy;->isKeyguardShowing()Z
+HPLcom/android/server/wm/DisplayPolicy;->isImmersiveMode(Lcom/android/server/wm/WindowState;)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsState;Landroid/view/InsetsState;
 HPLcom/android/server/wm/DisplayPolicy;->isOverlappingWithNavBar(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->isPersistentVrModeEnabled()Z
-PLcom/android/server/wm/DisplayPolicy;->isRemoteInsetsControllerControllingSystemBars()Z
-PLcom/android/server/wm/DisplayPolicy;->isScreenOnEarly()Z
-PLcom/android/server/wm/DisplayPolicy;->isScreenOnFully()Z
-HPLcom/android/server/wm/DisplayPolicy;->isShowingDreamLw()Z
-PLcom/android/server/wm/DisplayPolicy;->isWindowExcludedFromContent(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->isWindowManagerDrawComplete()Z
-PLcom/android/server/wm/DisplayPolicy;->lambda$callStatusBarSafely$8(Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/DisplayPolicy;->lambda$getImeSourceFrameProvider$2(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)Ljava/lang/Integer;
-PLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemBarAttributes$7(II[Lcom/android/internal/view/AppearanceRegion;ZIILjava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;Lcom/android/server/statusbar/StatusBarManagerInternal;)V
-HPLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemBarsLw$9(Lcom/android/server/wm/Task;)Z
-HPLcom/android/server/wm/DisplayPolicy;->layoutWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;)V
-HPLcom/android/server/wm/DisplayPolicy;->onConfigurationChanged()V
-PLcom/android/server/wm/DisplayPolicy;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/DisplayPolicy;->onSystemUiSettingsChanged()Z
-PLcom/android/server/wm/DisplayPolicy;->removeRelaunchingApp(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/DisplayPolicy;->removeWindowLw(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayPolicy;->resetSystemBarAttributes()V
-PLcom/android/server/wm/DisplayPolicy;->screenTurnedOn()V
-PLcom/android/server/wm/DisplayPolicy;->screenTurningOn(Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;)V
-PLcom/android/server/wm/DisplayPolicy;->selectAnimation(Lcom/android/server/wm/WindowState;I)I
-PLcom/android/server/wm/DisplayPolicy;->setAwake(Z)V
+HPLcom/android/server/wm/DisplayPolicy;->layoutWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;)V+]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/DisplayPolicy;->onConfigurationChanged()V
+HPLcom/android/server/wm/DisplayPolicy;->removeWindowLw(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/DisplayPolicy;->requestTransientBars(Lcom/android/server/wm/WindowState;Z)V
+HPLcom/android/server/wm/DisplayPolicy;->setAwake(Z)V
 PLcom/android/server/wm/DisplayPolicy;->setDropInputModePolicy(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V
 PLcom/android/server/wm/DisplayPolicy;->setHdmiPlugged(ZZ)V
-PLcom/android/server/wm/DisplayPolicy;->setLidState(I)V
-HPLcom/android/server/wm/DisplayPolicy;->shouldBeHiddenByKeyguard(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/DisplayPolicy;->simulateLayoutDisplay(Lcom/android/server/wm/DisplayFrames;)V
 PLcom/android/server/wm/DisplayPolicy;->systemReady()V
 HPLcom/android/server/wm/DisplayPolicy;->topAppHidesSystemBar(I)Z
-HPLcom/android/server/wm/DisplayPolicy;->updateConfigurationAndScreenSizeDependentBehaviors()V
+PLcom/android/server/wm/DisplayPolicy;->updateConfigurationAndScreenSizeDependentBehaviors()V
 PLcom/android/server/wm/DisplayPolicy;->updateCurrentUserResources()V
 PLcom/android/server/wm/DisplayPolicy;->updateLightNavigationBarLw(ILcom/android/server/wm/WindowState;)I
-HPLcom/android/server/wm/DisplayPolicy;->updateSystemBarAttributes()V
-HPLcom/android/server/wm/DisplayPolicy;->updateSystemBarsLw(Lcom/android/server/wm/WindowState;I)I
-PLcom/android/server/wm/DisplayPolicy;->validateAddingWindowLw(Landroid/view/WindowManager$LayoutParams;II)I
-PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/DisplayRotation;)V
+HPLcom/android/server/wm/DisplayPolicy;->updateSystemBarAttributes()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/DisplayPolicy;->validateAddingWindowLw(Landroid/view/WindowManager$LayoutParams;II)I
+PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
 PLcom/android/server/wm/DisplayRotation$OrientationListener;-><init>(Lcom/android/server/wm/DisplayRotation;Landroid/content/Context;Landroid/os/Handler;I)V
-PLcom/android/server/wm/DisplayRotation$OrientationListener;->disable()V
 PLcom/android/server/wm/DisplayRotation$OrientationListener;->run()V
-PLcom/android/server/wm/DisplayRotation$RotationAnimationPair;-><init>()V
-PLcom/android/server/wm/DisplayRotation$RotationAnimationPair;-><init>(Lcom/android/server/wm/DisplayRotation$RotationAnimationPair-IA;)V
-PLcom/android/server/wm/DisplayRotation$RotationHistory;-><init>()V
-PLcom/android/server/wm/DisplayRotation$RotationHistory;-><init>(Lcom/android/server/wm/DisplayRotation$RotationHistory-IA;)V
+PLcom/android/server/wm/DisplayRotation$RotationHistory;-><init>(I)V
 PLcom/android/server/wm/DisplayRotation$RotationLockHistory$Record;-><init>(IILjava/lang/String;)V
-PLcom/android/server/wm/DisplayRotation$RotationLockHistory$Record;-><init>(IILjava/lang/String;Lcom/android/server/wm/DisplayRotation$RotationLockHistory$Record-IA;)V
-PLcom/android/server/wm/DisplayRotation$RotationLockHistory;-><init>()V
-PLcom/android/server/wm/DisplayRotation$RotationLockHistory;-><init>(Lcom/android/server/wm/DisplayRotation$RotationLockHistory-IA;)V
-PLcom/android/server/wm/DisplayRotation$RotationLockHistory;->addRecord(IILjava/lang/String;)V
 PLcom/android/server/wm/DisplayRotation$SettingsObserver;-><init>(Lcom/android/server/wm/DisplayRotation;Landroid/os/Handler;)V
-PLcom/android/server/wm/DisplayRotation$SettingsObserver;->observe()V
 PLcom/android/server/wm/DisplayRotation$SettingsObserver;->onChange(Z)V
-PLcom/android/server/wm/DisplayRotation;->-$$Nest$fgetmContext(Lcom/android/server/wm/DisplayRotation;)Landroid/content/Context;
 PLcom/android/server/wm/DisplayRotation;->-$$Nest$mupdateSettings(Lcom/android/server/wm/DisplayRotation;)Z
-PLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayAddress;Lcom/android/server/wm/DeviceStateController;Lcom/android/server/wm/DisplayRotationCoordinator;)V
 PLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayAddress;Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayWindowSettings;Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/wm/DeviceStateController;Lcom/android/server/wm/DisplayRotationCoordinator;)V
-HPLcom/android/server/wm/DisplayRotation;->configure(II)V
-PLcom/android/server/wm/DisplayRotation;->freezeRotation(ILjava/lang/String;)V
-PLcom/android/server/wm/DisplayRotation;->getDisplayPolicy()Lcom/android/server/wm/DisplayPolicy;
-PLcom/android/server/wm/DisplayRotation;->getRotation()I
+PLcom/android/server/wm/DisplayRotation;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
 PLcom/android/server/wm/DisplayRotation;->initImmersiveAppCompatPolicy(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayRotationImmersiveAppCompatPolicy;
-PLcom/android/server/wm/DisplayRotation;->isFixedToUserRotation()Z
-PLcom/android/server/wm/DisplayRotation;->isRotatingSeamlessly()Z
+HPLcom/android/server/wm/DisplayRotation;->isFixedToUserRotation()Z
 PLcom/android/server/wm/DisplayRotation;->isRotationFrozen()Z
 PLcom/android/server/wm/DisplayRotation;->markForSeamlessRotation(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/DisplayRotation;->needSensorRunning()Z
-PLcom/android/server/wm/DisplayRotation;->onUserSwitch()V
-PLcom/android/server/wm/DisplayRotation;->readDefaultDisplayRotation(Landroid/view/DisplayAddress;Lcom/android/server/wm/DisplayContent;)I
 PLcom/android/server/wm/DisplayRotation;->readRotation(I)I
-PLcom/android/server/wm/DisplayRotation;->resetAllowAllRotations()V
-PLcom/android/server/wm/DisplayRotation;->restoreSettings(III)V
 HPLcom/android/server/wm/DisplayRotation;->rotationForOrientation(II)I
 PLcom/android/server/wm/DisplayRotation;->setFixedToUserRotation(I)V
 PLcom/android/server/wm/DisplayRotation;->setUserRotation(IILjava/lang/String;)V
-PLcom/android/server/wm/DisplayRotation;->updateOrientation(IZ)Z
+HPLcom/android/server/wm/DisplayRotation;->updateOrientation(IZ)Z
 PLcom/android/server/wm/DisplayRotation;->updateOrientationListener()V
 HPLcom/android/server/wm/DisplayRotation;->updateOrientationListenerLw()V
 HPLcom/android/server/wm/DisplayRotation;->updateRotationUnchecked(Z)Z
-PLcom/android/server/wm/DisplayRotation;->updateSettings()Z
-PLcom/android/server/wm/DisplayRotation;->updateUserDependentConfiguration(Landroid/content/res/Resources;)V
 PLcom/android/server/wm/DisplayRotation;->useDefaultSettingsProvider()Z
-PLcom/android/server/wm/DisplayRotationCoordinator;-><init>()V
 PLcom/android/server/wm/DisplayRotationCoordinator;->isSecondaryInternalDisplay(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/DisplayRotationCoordinator;->setDefaultDisplayDefaultRotation(I)V
-PLcom/android/server/wm/DisplayRotationImmersiveAppCompatPolicy;->createIfNeeded(Lcom/android/server/wm/LetterboxConfiguration;Lcom/android/server/wm/DisplayRotation;Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayRotationImmersiveAppCompatPolicy;
 PLcom/android/server/wm/DisplayRotationReversionController;-><init>(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/DisplayRotationReversionController;->isRotationReversionEnabled()Z
 PLcom/android/server/wm/DisplayWindowListenerController$$ExternalSyntheticLambda0;-><init>(Landroid/util/IntArray;)V
 PLcom/android/server/wm/DisplayWindowListenerController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/DisplayWindowListenerController;->$r8$lambda$P8K3uBbEYTKb3aHmbBwg4TPLVDk(Landroid/util/IntArray;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/DisplayWindowListenerController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayWindowListenerController;->dispatchDisplayAdded(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayWindowListenerController;->dispatchDisplayChanged(Lcom/android/server/wm/DisplayContent;Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/DisplayWindowListenerController;->lambda$registerListener$0(Landroid/util/IntArray;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/DisplayWindowListenerController;->registerListener(Landroid/view/IDisplayWindowListener;)[I
 PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->canActivityBeLaunched(Landroid/content/pm/ActivityInfo;Landroid/content/Intent;IIZ)Z
-PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->canShowTasksInHostDeviceRecents()Z
-PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->hasController()Z
-PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->hasDisplayCategory(Landroid/content/pm/ActivityInfo;)Z
-PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->onRunningActivityChanged()V
+PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->launchAllowedByDisplayPolicy(Landroid/content/pm/ActivityInfo;)Z
 PLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;-><init>()V
 PLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;-><init>(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)V
-HPLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;->setTo(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)Z
-PLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider;)V
-PLcom/android/server/wm/DisplayWindowSettings;->applyRotationSettingsToDisplayLocked(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayWindowSettings;->applySettingsToDisplayLocked(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;->setTo(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)Z
+PLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;)V
 PLcom/android/server/wm/DisplayWindowSettings;->applySettingsToDisplayLocked(Lcom/android/server/wm/DisplayContent;Z)V
-PLcom/android/server/wm/DisplayWindowSettings;->getImePolicyLocked(Lcom/android/server/wm/DisplayContent;)I
-PLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayContent;)I
 PLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;Lcom/android/server/wm/DisplayContent;)I
-PLcom/android/server/wm/DisplayWindowSettings;->isHomeSupportedLocked(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/DisplayWindowSettings;->updateSettingsForDisplay(Lcom/android/server/wm/DisplayContent;)Z
+PLcom/android/server/wm/DisplayWindowSettingsProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/Set;)V
+PLcom/android/server/wm/DisplayWindowSettingsProvider$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/DisplayWindowSettingsProvider$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$$ExternalSyntheticLambda0;Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/DisplayWindowSettingsProvider$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage;-><init>(Landroid/util/AtomicFile;)V
-PLcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage;->openRead()Ljava/io/InputStream;
 PLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>()V
-PLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData-IA;)V
-PLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)V
-PLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;->getIdentifier(Landroid/view/DisplayInfo;)Ljava/lang/String;
-PLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;->getSettingsEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;
-PLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;->loadSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)V
+PLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)V
+PLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;->getIdentifier(Landroid/view/DisplayInfo;)Ljava/lang/String;
 PLcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettingsStorage;)V
 PLcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings;->getOrCreateSettingsEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;
-PLcom/android/server/wm/DisplayWindowSettingsProvider;->-$$Nest$smreadSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;
-PLcom/android/server/wm/DisplayWindowSettingsProvider;-><init>()V
 PLcom/android/server/wm/DisplayWindowSettingsProvider;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettingsStorage;)V
-PLcom/android/server/wm/DisplayWindowSettingsProvider;->getBooleanAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
-PLcom/android/server/wm/DisplayWindowSettingsProvider;->getIntAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;I)I
-PLcom/android/server/wm/DisplayWindowSettingsProvider;->getIntegerAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;
-PLcom/android/server/wm/DisplayWindowSettingsProvider;->getOverrideSettingsFile()Landroid/util/AtomicFile;
+PLcom/android/server/wm/DisplayWindowSettingsProvider;->getBooleanAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Boolean;
+PLcom/android/server/wm/DisplayWindowSettingsProvider;->getIntegerAttribute(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Integer;
 PLcom/android/server/wm/DisplayWindowSettingsProvider;->getSettings(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;
 PLcom/android/server/wm/DisplayWindowSettingsProvider;->getVendorSettingsFile()Landroid/util/AtomicFile;
 PLcom/android/server/wm/DisplayWindowSettingsProvider;->readConfig(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V
 PLcom/android/server/wm/DisplayWindowSettingsProvider;->readDisplay(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V
-PLcom/android/server/wm/DisplayWindowSettingsProvider;->readSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;
+PLcom/android/server/wm/DisplayWindowSettingsProvider;->removeStaleDisplaySettingsLocked(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/RootWindowContainer;)V
 PLcom/android/server/wm/DragDropController$1;-><init>(Lcom/android/server/wm/DragDropController;)V
 PLcom/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;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/Looper;)V
-HPLcom/android/server/wm/DragDropController;->dragDropActiveLocked()Z
-PLcom/android/server/wm/EmbeddedWindowController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/EmbeddedWindowController;Landroid/os/IBinder;Landroid/window/InputTransferToken;)V
+PLcom/android/server/wm/DragDropController;->dragDropActiveLocked()Z
+PLcom/android/server/wm/EmbeddedWindowController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/EmbeddedWindowController;Landroid/os/IBinder;Landroid/window/InputTransferToken;Landroid/os/IBinder;)V
 PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;-><init>(Lcom/android/server/wm/Session;Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;Lcom/android/server/wm/WindowState;IIIILandroid/window/InputTransferToken;Ljava/lang/String;Z)V
-PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getApplicationHandle()Landroid/view/InputApplicationHandle;
-PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getInputTransferToken()Landroid/window/InputTransferToken;
-PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getWindowToken()Landroid/os/IBinder;
-PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->openInputChannel(Landroid/view/InputChannel;)V
-PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->toString()Ljava/lang/String;
-PLcom/android/server/wm/EmbeddedWindowController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
+PLcom/android/server/wm/EmbeddedWindowController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/input/InputManagerService;)V
 PLcom/android/server/wm/EmbeddedWindowController;->add(Landroid/os/IBinder;Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;)V
-PLcom/android/server/wm/EmbeddedWindowController;->get(Landroid/os/IBinder;)Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;
-PLcom/android/server/wm/EmbeddedWindowController;->onWindowRemoved(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/EmbeddedWindowController;->updateProcessController(Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;)V
+PLcom/android/server/wm/EmbeddedWindowController;->remove(Landroid/os/IBinder;)V
 PLcom/android/server/wm/EnsureActivitiesVisibleHelper;-><init>(Lcom/android/server/wm/TaskFragment;)V
-PLcom/android/server/wm/EnsureActivitiesVisibleHelper;->makeVisibleAndRestartIfNeeded(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->process(Lcom/android/server/wm/ActivityRecord;Z)V
-HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->reset(Lcom/android/server/wm/ActivityRecord;Z)V
-HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->setActivityVisibilityState(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/EventLogTags;->writeWmAddToStopping(IILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmBootAnimationDone(J)V
-PLcom/android/server/wm/EventLogTags;->writeWmCreateTask(IIII)V
-PLcom/android/server/wm/EventLogTags;->writeWmPauseActivity(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmRestartActivity(IIILjava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmSetResumedActivity(ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmStopActivity(IILjava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmTaskCreated(I)V
-PLcom/android/server/wm/EventLogTags;->writeWmTaskMoved(IIIII)V
-PLcom/android/server/wm/EventLogTags;->writeWmTaskToFront(III)V
+HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->process(Lcom/android/server/wm/ActivityRecord;Z)V+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/HighRefreshRateDenylist$OnPropertiesChangedListener;-><init>(Lcom/android/server/wm/HighRefreshRateDenylist;)V
-PLcom/android/server/wm/HighRefreshRateDenylist$OnPropertiesChangedListener;-><init>(Lcom/android/server/wm/HighRefreshRateDenylist;Lcom/android/server/wm/HighRefreshRateDenylist$OnPropertiesChangedListener-IA;)V
+PLcom/android/server/wm/HighRefreshRateDenylist$OnPropertiesChangedListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/wm/HighRefreshRateDenylist;-><init>(Landroid/content/res/Resources;Landroid/provider/DeviceConfigInterface;)V
-PLcom/android/server/wm/HighRefreshRateDenylist;->create(Landroid/content/res/Resources;)Lcom/android/server/wm/HighRefreshRateDenylist;
-HPLcom/android/server/wm/HighRefreshRateDenylist;->isDenylisted(Ljava/lang/String;)Z
 PLcom/android/server/wm/HighRefreshRateDenylist;->updateDenylist(Ljava/lang/String;)V
+PLcom/android/server/wm/ImeInsetsSourceProvider$$ExternalSyntheticLambda0;-><init>(Landroid/view/inputmethod/ImeTracker$Token;Lcom/android/server/wm/WindowManagerInternal$OnImeRequestedChangedListener;Lcom/android/server/wm/InsetsTarget;)V
+HPLcom/android/server/wm/ImeInsetsSourceProvider$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/wm/ImeInsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/ImeInsetsSourceProvider;->checkShowImePostLayout()V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->getControl(Lcom/android/server/wm/InsetsControlTarget;)Landroid/view/InsetsSourceControl;
-PLcom/android/server/wm/ImeInsetsSourceProvider;->isReadyToShowIme()Z
-PLcom/android/server/wm/ImeInsetsSourceProvider;->onSourceChanged()V
+PLcom/android/server/wm/ImeInsetsSourceProvider;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/ImeInsetsSourceProvider;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->getControl(Lcom/android/server/wm/InsetsControlTarget;)Landroid/view/InsetsSourceControl;
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->invokeOnImeRequestedChangedListener(Lcom/android/server/wm/InsetsTarget;Landroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/wm/ImeInsetsSourceProvider;->isLeashReadyForDispatching()Z
+PLcom/android/server/wm/ImeInsetsSourceProvider;->isScheduledAndReadyToShowIme()Z
+PLcom/android/server/wm/ImeInsetsSourceProvider;->logIsScheduledAndReadyToShowIme(Z)V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->onPostLayout()V+]Landroid/view/inputmethod/ImeTracker;Landroid/view/inputmethod/ImeTracker$1;
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->onSourceChanged()V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;
 PLcom/android/server/wm/ImeInsetsSourceProvider;->setClientVisible(Z)V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->setFrozen(Z)V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->setServerVisible(Z)V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->updateClientVisibility(Lcom/android/server/wm/InsetsControlTarget;)Z
-PLcom/android/server/wm/ImeInsetsSourceProvider;->updateControlForTarget(Lcom/android/server/wm/InsetsControlTarget;Z)V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->setFrozen(Z)V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->setServerVisible(Z)V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->updateClientVisibility(Lcom/android/server/wm/InsetsTarget;Landroid/view/inputmethod/ImeTracker$Token;)Z
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->updateControlForTarget(Lcom/android/server/wm/InsetsControlTarget;Z)V
 PLcom/android/server/wm/ImeInsetsSourceProvider;->updateSourceFrame(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->updateVisibility()V
-PLcom/android/server/wm/ImeTargetVisibilityPolicy;-><init>()V
-PLcom/android/server/wm/ImeTargetVisibilityPolicy;->canComputeImeParent(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/InputTarget;)Z
-PLcom/android/server/wm/ImeTargetVisibilityPolicy;->shouldComputeImeParentForEmbeddedActivity(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/InputTarget;)Z
-PLcom/android/server/wm/ImmersiveModeConfirmation$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;)V
-PLcom/android/server/wm/ImmersiveModeConfirmation$H;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;Landroid/os/Looper;)V
-PLcom/android/server/wm/ImmersiveModeConfirmation;-><init>(Landroid/content/Context;Landroid/os/Looper;ZZ)V
-PLcom/android/server/wm/ImmersiveModeConfirmation;->loadSetting(ILandroid/content/Context;)Z
-PLcom/android/server/wm/ImmersiveModeConfirmation;->onSettingChanged(I)Z
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->updateVisibility()V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;
+PLcom/android/server/wm/ImmersiveModeConfirmation;->loadSetting(Landroid/content/Context;)Z
 PLcom/android/server/wm/InputConfigAdapter$FlagMapping;-><init>(IIZ)V
 PLcom/android/server/wm/InputConfigAdapter;-><clinit>()V
-HPLcom/android/server/wm/InputConfigAdapter;->applyMapping(ILjava/util/List;)I
-PLcom/android/server/wm/InputConfigAdapter;->computeMask(Ljava/util/List;)I
+HPLcom/android/server/wm/InputConfigAdapter;->applyMapping(I[Lcom/android/server/wm/InputConfigAdapter$FlagMapping;)I
 HPLcom/android/server/wm/InputConfigAdapter;->getInputConfigFromWindowParams(III)I
-HPLcom/android/server/wm/InputConfigAdapter;->getMask()I
-PLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda0;-><init>()V
 PLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/InputManagerCallback;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/InputManagerCallback;->createSurfaceForGestureMonitor(Ljava/lang/String;I)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/InputManagerCallback;->createSurfaceForGestureMonitor(ILjava/lang/String;)Landroid/view/SurfaceControl;
 PLcom/android/server/wm/InputManagerCallback;->getPointerDisplayId()I
-PLcom/android/server/wm/InputManagerCallback;->notifyConfigurationChanged()V
-PLcom/android/server/wm/InputManagerCallback;->notifyFocusChanged(Landroid/os/IBinder;Landroid/os/IBinder;)V
-PLcom/android/server/wm/InputManagerCallback;->notifyLidSwitchChanged(JZ)V
-PLcom/android/server/wm/InputManagerCallback;->notifyPointerLocationChanged(Z)V
-PLcom/android/server/wm/InputManagerCallback;->setEventDispatchingLw(Z)V
-PLcom/android/server/wm/InputManagerCallback;->updateInputDispatchModeLw()V
-PLcom/android/server/wm/InputManagerCallback;->waitForInputDevicesReady(J)Z
-PLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->-$$Nest$mupdateInputWindows(Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;Z)V
+PLcom/android/server/wm/InputManagerCallback;->interceptKeyBeforeDispatching(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J
+PLcom/android/server/wm/InputManagerCallback;->interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I
+PLcom/android/server/wm/InputManagerCallback;->interceptMotionBeforeQueueingNonInteractive(IIIJI)I
+PLcom/android/server/wm/InputManagerCallback;->interceptUnhandledKey(Landroid/view/KeyEvent;Landroid/os/IBinder;)Z
+PLcom/android/server/wm/InputManagerCallback;->notifyLidSwitchChanged(Z)V
+HPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->-$$Nest$mupdateInputWindows(Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;Z)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;)V
-PLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer-IA;)V
-HPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->accept(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->updateInputWindows(Z)V
+HPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->accept(Ljava/lang/Object;)V+]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/Map;Ljava/util/Collections$SynchronizedMap;
 PLcom/android/server/wm/InputMonitor$UpdateInputWindows;-><init>(Lcom/android/server/wm/InputMonitor;)V
-PLcom/android/server/wm/InputMonitor$UpdateInputWindows;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$UpdateInputWindows-IA;)V
 HPLcom/android/server/wm/InputMonitor$UpdateInputWindows;->run()V
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmActiveRecentsActivity(Lcom/android/server/wm/InputMonitor;)Ljava/lang/ref/WeakReference;
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmDisplayContent(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmDisplayRemoved(Lcom/android/server/wm/InputMonitor;)Z
-HPLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmInputTransaction(Lcom/android/server/wm/InputMonitor;)Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmService(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmUpdateInputForAllWindowsConsumer(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fgetmUpdateInputWindowsImmediately(Lcom/android/server/wm/InputMonitor;)Z
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fputmUpdateInputWindowsNeeded(Lcom/android/server/wm/InputMonitor;Z)V
-PLcom/android/server/wm/InputMonitor;->-$$Nest$fputmUpdateInputWindowsPending(Lcom/android/server/wm/InputMonitor;Z)V
-PLcom/android/server/wm/InputMonitor;->-$$Nest$mupdateInputFocusRequest(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputConsumerImpl;)V
-PLcom/android/server/wm/InputMonitor;->-$$Nest$smgetWeak(Ljava/lang/ref/WeakReference;)Ljava/lang/Object;
 PLcom/android/server/wm/InputMonitor;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/InputMonitor;->getInputConsumer(Ljava/lang/String;)Lcom/android/server/wm/InputConsumerImpl;
-PLcom/android/server/wm/InputMonitor;->getWeak(Ljava/lang/ref/WeakReference;)Ljava/lang/Object;
-PLcom/android/server/wm/InputMonitor;->isTrustedOverlay(I)Z
-PLcom/android/server/wm/InputMonitor;->layoutInputConsumers(II)V
-PLcom/android/server/wm/InputMonitor;->pauseDispatchingLw(Lcom/android/server/wm/WindowToken;)V
-HPLcom/android/server/wm/InputMonitor;->populateInputWindowHandle(Lcom/android/server/wm/InputWindowHandleWrapper;Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/InputMonitor;->populateOverlayInputInfo(Lcom/android/server/wm/InputWindowHandleWrapper;)V
-PLcom/android/server/wm/InputMonitor;->populateOverlayInputInfo(Lcom/android/server/wm/InputWindowHandleWrapper;Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/InputMonitor;->requestFocus(Landroid/os/IBinder;Ljava/lang/String;)V
-HPLcom/android/server/wm/InputMonitor;->resetInputConsumers(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/InputMonitor;->resumeDispatchingLw(Lcom/android/server/wm/WindowToken;)V
-HPLcom/android/server/wm/InputMonitor;->scheduleUpdateInputWindows()V
-PLcom/android/server/wm/InputMonitor;->setFocusedAppLw(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/InputMonitor;->setInputFocusLw(Lcom/android/server/wm/WindowState;Z)V
-HPLcom/android/server/wm/InputMonitor;->setInputWindowInfoIfNeeded(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;Lcom/android/server/wm/InputWindowHandleWrapper;)V
+PLcom/android/server/wm/InputMonitor;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/InputMonitor;->getInputConsumer(Ljava/lang/String;)Lcom/android/server/wm/InputConsumerImpl;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/InputMonitor;->populateInputWindowHandle(Lcom/android/server/wm/InputWindowHandleWrapper;Lcom/android/server/wm/WindowState;)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/view/IWindow;Landroid/view/IWindow$Stub$Proxy;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
+HPLcom/android/server/wm/InputMonitor;->populateOverlayInputInfo(Lcom/android/server/wm/InputWindowHandleWrapper;)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
+HPLcom/android/server/wm/InputMonitor;->requestFocus(Landroid/os/IBinder;Ljava/lang/String;)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/InputMonitor;->setInputFocusLw(Lcom/android/server/wm/WindowState;Z)V
+PLcom/android/server/wm/InputMonitor;->setInputWindowInfoIfNeeded(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;Lcom/android/server/wm/InputWindowHandleWrapper;)V
+PLcom/android/server/wm/InputMonitor;->setTrustedOverlayInputInfo(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILjava/lang/String;)V
 PLcom/android/server/wm/InputMonitor;->setUpdateInputWindowsNeededLw()V
-HPLcom/android/server/wm/InputMonitor;->updateInputFocusRequest(Lcom/android/server/wm/InputConsumerImpl;)V
 HPLcom/android/server/wm/InputMonitor;->updateInputWindowsLw(Z)V
 PLcom/android/server/wm/InputWindowHandleWrapper;-><init>(Landroid/view/InputWindowHandle;)V
-PLcom/android/server/wm/InputWindowHandleWrapper;->applyChangesToSurface(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/InputWindowHandleWrapper;->clearTouchableRegion()V
-PLcom/android/server/wm/InputWindowHandleWrapper;->forceChange()V
-PLcom/android/server/wm/InputWindowHandleWrapper;->getInputApplicationHandle()Landroid/view/InputApplicationHandle;
-HPLcom/android/server/wm/InputWindowHandleWrapper;->hasWallpaper()Z
-PLcom/android/server/wm/InputWindowHandleWrapper;->isChanged()Z
-HPLcom/android/server/wm/InputWindowHandleWrapper;->isFocusable()Z
-HPLcom/android/server/wm/InputWindowHandleWrapper;->isPaused()Z
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setDispatchingTimeoutMillis(J)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setDisplayId(I)V
 HPLcom/android/server/wm/InputWindowHandleWrapper;->setFocusable(Z)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setHasWallpaper(Z)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setInputApplicationHandle(Landroid/view/InputApplicationHandle;)V
 HPLcom/android/server/wm/InputWindowHandleWrapper;->setInputConfigMasked(II)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setLayoutParamsFlags(I)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setLayoutParamsType(I)V
 HPLcom/android/server/wm/InputWindowHandleWrapper;->setName(Ljava/lang/String;)V
-PLcom/android/server/wm/InputWindowHandleWrapper;->setOwnerPid(I)V
-PLcom/android/server/wm/InputWindowHandleWrapper;->setOwnerUid(I)V
-PLcom/android/server/wm/InputWindowHandleWrapper;->setPackageName(Ljava/lang/String;)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setPaused(Z)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setReplaceTouchableRegionWithCrop(Z)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setScaleFactor(F)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setSurfaceInset(I)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setToken(Landroid/os/IBinder;)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setTouchOcclusionMode(I)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setTouchableRegion(Landroid/graphics/Region;)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setTouchableRegionCrop(Landroid/view/SurfaceControl;)V
-HPLcom/android/server/wm/InputWindowHandleWrapper;->setWindowToken(Landroid/os/IBinder;)V
-PLcom/android/server/wm/InsetsControlTarget;->asWindowOrNull(Lcom/android/server/wm/InsetsControlTarget;)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/InputWindowHandleWrapper;->setToken(Landroid/os/IBinder;)V
 PLcom/android/server/wm/InsetsControlTarget;->getWindow()Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/InsetsControlTarget;->isRequestedVisible(I)Z
-PLcom/android/server/wm/InsetsPolicy$BarWindow;->-$$Nest$mupdateVisibility(Lcom/android/server/wm/InsetsPolicy$BarWindow;Lcom/android/server/wm/InsetsControlTarget;I)V
+HPLcom/android/server/wm/InsetsPolicy$BarWindow;->-$$Nest$mupdateVisibility(Lcom/android/server/wm/InsetsPolicy$BarWindow;Lcom/android/server/wm/InsetsControlTarget;I)V+]Lcom/android/internal/statusbar/IStatusBar;Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;]Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsPolicy$ControlTarget;,Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/InsetsPolicy$BarWindow;-><init>(Lcom/android/server/wm/InsetsPolicy;I)V
-PLcom/android/server/wm/InsetsPolicy$BarWindow;->setVisible(Z)V
-HPLcom/android/server/wm/InsetsPolicy$BarWindow;->updateVisibility(Lcom/android/server/wm/InsetsControlTarget;I)V
 PLcom/android/server/wm/InsetsPolicy$ControlTarget;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;)V
 PLcom/android/server/wm/InsetsPolicy$Host;-><init>(Landroid/os/Handler;Ljava/lang/String;)V
 PLcom/android/server/wm/InsetsPolicy$Host;->getHandler()Landroid/os/Handler;
 PLcom/android/server/wm/InsetsPolicy;-><clinit>()V
 PLcom/android/server/wm/InsetsPolicy;-><init>(Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/InsetsPolicy;->abortTransient()V
-HPLcom/android/server/wm/InsetsPolicy;->adjustInsetsForRoundedCorners(Lcom/android/server/wm/WindowToken;Landroid/view/InsetsState;Z)Landroid/view/InsetsState;
-HPLcom/android/server/wm/InsetsPolicy;->adjustInsetsForWindow(Lcom/android/server/wm/WindowState;Landroid/view/InsetsState;Z)Landroid/view/InsetsState;
-HPLcom/android/server/wm/InsetsPolicy;->adjustVisibilityForFakeControllingSources(Landroid/view/InsetsState;)Landroid/view/InsetsState;
-HPLcom/android/server/wm/InsetsPolicy;->adjustVisibilityForIme(Lcom/android/server/wm/WindowState;Landroid/view/InsetsState;Z)Landroid/view/InsetsState;
-HPLcom/android/server/wm/InsetsPolicy;->areTypesForciblyShowing(I)Z
-HPLcom/android/server/wm/InsetsPolicy;->canBeTopFullscreenOpaqueWindow(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/InsetsPolicy;->enforceInsetsPolicyForTarget(Landroid/view/WindowManager$LayoutParams;IZLandroid/view/InsetsState;)Landroid/view/InsetsState;
-HPLcom/android/server/wm/InsetsPolicy;->forceShowingNavigationBars(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/InsetsPolicy;->adjustInsetsForRoundedCorners(Lcom/android/server/wm/WindowToken;Landroid/view/InsetsState;Z)Landroid/view/InsetsState;+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
+HPLcom/android/server/wm/InsetsPolicy;->adjustInsetsForWindow(Lcom/android/server/wm/WindowState;Landroid/view/InsetsState;Z)Landroid/view/InsetsState;+]Landroid/view/InsetsState;Landroid/view/InsetsState;
+PLcom/android/server/wm/InsetsPolicy;->adjustVisibilityForFakeControllingSource(Landroid/view/InsetsState;ILandroid/view/InsetsSource;Lcom/android/server/wm/InsetsControlTarget;)Landroid/view/InsetsState;
+HPLcom/android/server/wm/InsetsPolicy;->canBeTopFullscreenOpaqueWindow(Lcom/android/server/wm/WindowState;)Z+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;
+PLcom/android/server/wm/InsetsPolicy;->getInsetsForWindowMetrics(Lcom/android/server/wm/WindowToken;Landroid/view/InsetsState;)V
 HPLcom/android/server/wm/InsetsPolicy;->getNavControlTarget(Lcom/android/server/wm/WindowState;Z)Lcom/android/server/wm/InsetsControlTarget;
 HPLcom/android/server/wm/InsetsPolicy;->getStatusControlTarget(Lcom/android/server/wm/WindowState;Z)Lcom/android/server/wm/InsetsControlTarget;
-HPLcom/android/server/wm/InsetsPolicy;->hasHiddenSources(I)Z
-PLcom/android/server/wm/InsetsPolicy;->isTransient(I)Z
+PLcom/android/server/wm/InsetsPolicy;->onRequestedVisibleTypesChanged(Lcom/android/server/wm/InputTarget;Landroid/view/inputmethod/ImeTracker$Token;)V
 HPLcom/android/server/wm/InsetsPolicy;->remoteInsetsControllerControlsSystemBars(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/InsetsPolicy;->updateSystemBars(Lcom/android/server/wm/WindowState;ZZ)V
+HPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;
 PLcom/android/server/wm/InsetsSourceProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/InsetsSourceProvider;)V
 PLcom/android/server/wm/InsetsSourceProvider$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->-$$Nest$fgetmCapturedLeash(Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;)Landroid/view/SurfaceControl;
 PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;-><init>(Lcom/android/server/wm/InsetsSourceProvider;Landroid/graphics/Point;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->dumpDebug$1(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
-PLcom/android/server/wm/InsetsSourceProvider;->$r8$lambda$Dei2KOKOm-G-kdAHiqmNNHB9JPM(Lcom/android/server/wm/InsetsSourceProvider;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/InsetsSourceProvider;->-$$Nest$fgetmAdapter(Lcom/android/server/wm/InsetsSourceProvider;)Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;
-PLcom/android/server/wm/InsetsSourceProvider;->-$$Nest$fgetmCropToProvidingInsets(Lcom/android/server/wm/InsetsSourceProvider;)Z
+HPLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 PLcom/android/server/wm/InsetsSourceProvider;-><clinit>()V
 PLcom/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;
-PLcom/android/server/wm/InsetsSourceProvider;->getControlTarget()Lcom/android/server/wm/InsetsControlTarget;
-PLcom/android/server/wm/InsetsSourceProvider;->getInsetsHint()Landroid/graphics/Insets;
-PLcom/android/server/wm/InsetsSourceProvider;->getSource()Landroid/view/InsetsSource;
+PLcom/android/server/wm/InsetsSourceProvider;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/InsetsSourceProvider;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/InsetsSourceProvider;->getControl(Lcom/android/server/wm/InsetsControlTarget;)Landroid/view/InsetsSourceControl;
+HPLcom/android/server/wm/InsetsSourceProvider;->getInsetsHint()Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;
 HPLcom/android/server/wm/InsetsSourceProvider;->getWindowFrameSurfacePosition()Landroid/graphics/Point;
-PLcom/android/server/wm/InsetsSourceProvider;->isClientVisible()Z
-PLcom/android/server/wm/InsetsSourceProvider;->isControllable()Z
-PLcom/android/server/wm/InsetsSourceProvider;->lambda$new$0(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V
-PLcom/android/server/wm/InsetsSourceProvider;->onSurfaceTransactionApplied()V
-HPLcom/android/server/wm/InsetsSourceProvider;->overridesFrame(I)Z
+HPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V+]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;
 PLcom/android/server/wm/InsetsSourceProvider;->setClientVisible(Z)V
-PLcom/android/server/wm/InsetsSourceProvider;->setFlags(II)Z
+PLcom/android/server/wm/InsetsSourceProvider;->setFlags(I)Z
 PLcom/android/server/wm/InsetsSourceProvider;->setServerVisible(Z)V
-PLcom/android/server/wm/InsetsSourceProvider;->setWindowContainer(Lcom/android/server/wm/WindowContainer;Lcom/android/internal/util/function/TriFunction;Landroid/util/SparseArray;)V
-PLcom/android/server/wm/InsetsSourceProvider;->updateClientVisibility(Lcom/android/server/wm/InsetsControlTarget;)Z
+PLcom/android/server/wm/InsetsSourceProvider;->setWindowContainer(Lcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriFunction;Landroid/util/SparseArray;)V
+PLcom/android/server/wm/InsetsSourceProvider;->updateClientVisibility(Lcom/android/server/wm/InsetsTarget;Landroid/view/inputmethod/ImeTracker$Token;)Z
 HPLcom/android/server/wm/InsetsSourceProvider;->updateControlForTarget(Lcom/android/server/wm/InsetsControlTarget;Z)V
-HPLcom/android/server/wm/InsetsSourceProvider;->updateSourceFrame(Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/InsetsSourceProvider;->updateSourceFrameForServerVisibility()V
-PLcom/android/server/wm/InsetsSourceProvider;->updateVisibility()V
-PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/InsetsStateController;)V
-PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/InsetsStateController$1$$ExternalSyntheticLambda0;-><init>(I)V
-PLcom/android/server/wm/InsetsStateController$1$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/InsetsStateController$1;->$r8$lambda$UjLlQbcGcYIO1UklJ0WxgRK60HM(I)V
+HPLcom/android/server/wm/InsetsSourceProvider;->updateInsetsControlPosition(Lcom/android/server/wm/WindowState;)Z+]Landroid/graphics/Point;Landroid/graphics/Point;
+PLcom/android/server/wm/InsetsSourceProvider;->updateSourceFrame(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/InsetsSourceProvider;->updateSourceFrameForServerVisibility()V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;
+HPLcom/android/server/wm/InsetsSourceProvider;->updateVisibility()V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;
+PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/InsetsStateController;ILandroid/util/SparseLongArray;)V
+HPLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda1;->run()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/InsetsStateController;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/InsetsStateController$1;-><init>(Lcom/android/server/wm/InsetsStateController;)V
-PLcom/android/server/wm/InsetsStateController$1;->lambda$notifyInsetsControlChanged$0(I)V
-PLcom/android/server/wm/InsetsStateController$1;->notifyInsetsControlChanged(I)V
-PLcom/android/server/wm/InsetsStateController;->$r8$lambda$MnP7XA1MDcyrUwoj0hcoT5hTO8E(Lcom/android/server/wm/InsetsStateController;)V
-PLcom/android/server/wm/InsetsStateController;->$r8$lambda$TzYyjwJniEoBgyDjbMpQVgjWyYo(Lcom/android/server/wm/InsetsControlTarget;)Ljava/util/ArrayList;
-PLcom/android/server/wm/InsetsStateController;->-$$Nest$fgetmDisplayContent(Lcom/android/server/wm/InsetsStateController;)Lcom/android/server/wm/DisplayContent;
 PLcom/android/server/wm/InsetsStateController;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/InsetsStateController;->addToControlMaps(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;Z)V
-HPLcom/android/server/wm/InsetsStateController;->getControlsForDispatch(Lcom/android/server/wm/InsetsControlTarget;)[Landroid/view/InsetsSourceControl;
+HPLcom/android/server/wm/InsetsStateController;->getControlsForDispatch(Lcom/android/server/wm/InsetsControlTarget;)[Landroid/view/InsetsSourceControl;+]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/InsetsStateController;->getImeSourceProvider()Lcom/android/server/wm/ImeInsetsSourceProvider;
-HPLcom/android/server/wm/InsetsStateController;->getOrCreateSourceProvider(II)Lcom/android/server/wm/InsetsSourceProvider;
-PLcom/android/server/wm/InsetsStateController;->getRawInsetsState()Landroid/view/InsetsState;
-HPLcom/android/server/wm/InsetsStateController;->getSourceProviders()Landroid/util/SparseArray;
-PLcom/android/server/wm/InsetsStateController;->lambda$addToControlMaps$2(Lcom/android/server/wm/InsetsControlTarget;)Ljava/util/ArrayList;
-HPLcom/android/server/wm/InsetsStateController;->lambda$notifyPendingInsetsControlChanged$3()V
-PLcom/android/server/wm/InsetsStateController;->notifyControlChanged(Lcom/android/server/wm/InsetsControlTarget;)V
-PLcom/android/server/wm/InsetsStateController;->notifyInsetsChanged()V
-HPLcom/android/server/wm/InsetsStateController;->notifyPendingInsetsControlChanged()V
-HPLcom/android/server/wm/InsetsStateController;->onBarControlTargetChanged(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsControlTarget;)V
-PLcom/android/server/wm/InsetsStateController;->onControlTargetChanged(Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/InsetsControlTarget;Z)V
-PLcom/android/server/wm/InsetsStateController;->onImeControlTargetChanged(Lcom/android/server/wm/InsetsControlTarget;)V
-HPLcom/android/server/wm/InsetsStateController;->onPostLayout()V
-PLcom/android/server/wm/InsetsStateController;->onRequestedVisibleTypesChanged(Lcom/android/server/wm/InsetsControlTarget;)V
-PLcom/android/server/wm/InsetsStateController;->removeFromControlMaps(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;Z)V
-PLcom/android/server/wm/InsetsStateController;->setForcedConsumingTypes(I)V
+HPLcom/android/server/wm/InsetsStateController;->getOrCreateSourceProvider(II)Lcom/android/server/wm/InsetsSourceProvider;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/wm/InsetsStateController;->notifyControlChanged(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;)V
+HPLcom/android/server/wm/InsetsStateController;->notifyInsetsChanged()V
+HPLcom/android/server/wm/InsetsStateController;->notifyPendingInsetsControlChanged()V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/InsetsStateController;->notifySurfaceTransactionReady(Lcom/android/server/wm/InsetsSourceProvider;JZ)V
+HPLcom/android/server/wm/InsetsStateController;->onControlTargetChanged(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;Z)V
+HPLcom/android/server/wm/InsetsStateController;->onRequestedVisibleTypesChanged(Lcom/android/server/wm/InsetsTarget;Landroid/view/inputmethod/ImeTracker$Token;)V
+HPLcom/android/server/wm/InsetsStateController;->removeFromControlMaps(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;Z)V
 HPLcom/android/server/wm/InsetsStateController;->updateAboveInsetsState(Z)V
-HSPLcom/android/server/wm/KeyguardController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/KeyguardController;)V
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState$$ExternalSyntheticLambda0;-><init>()V
+HSPLcom/android/server/wm/KeyguardController$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/wm/KeyguardController$$ExternalSyntheticLambda1;->run()V
 HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->$r8$lambda$UYxm3jSn5iwGFQ04QlWkFzJcydA(Lcom/android/server/wm/Task;)Z
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->-$$Nest$fgetmAodShowing(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->-$$Nest$fgetmKeyguardGoingAway(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->-$$Nest$fgetmKeyguardShowing(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->-$$Nest$fgetmRequestDismissKeyguard(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILcom/android/server/wm/ActivityTaskManagerInternal$SleepTokenAcquirer;)V
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->getRootTaskForControllingOccluding(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->lambda$getRootTaskForControllingOccluding$0(Lcom/android/server/wm/Task;)Z
-HPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->updateVisibility(Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/KeyguardController;->-$$Nest$fgetmService(Lcom/android/server/wm/KeyguardController;)Lcom/android/server/wm/ActivityTaskManagerService;
-HPLcom/android/server/wm/KeyguardController;->-$$Nest$fgetmWindowManager(Lcom/android/server/wm/KeyguardController;)Lcom/android/server/wm/WindowManagerService;
+PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirer;)V
+PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->writeEventLog(Ljava/lang/String;)V
 HSPLcom/android/server/wm/KeyguardController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;)V
 HPLcom/android/server/wm/KeyguardController;->checkKeyguardVisibility(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/KeyguardController;->getDisplayState(I)Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;
-HPLcom/android/server/wm/KeyguardController;->isKeyguardGoingAway(I)Z
+PLcom/android/server/wm/KeyguardController;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/KeyguardController;->getDisplayState(I)Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
 HPLcom/android/server/wm/KeyguardController;->isKeyguardLocked(I)Z
 PLcom/android/server/wm/KeyguardController;->isKeyguardOccluded(I)Z
 HPLcom/android/server/wm/KeyguardController;->isKeyguardOrAodShowing(I)Z
-PLcom/android/server/wm/KeyguardController;->setKeyguardShown(IZZ)V
+PLcom/android/server/wm/KeyguardController;->keyguardGoingAway(II)V
+PLcom/android/server/wm/KeyguardController;->scheduleGoingAwayTimeout(I)V
 PLcom/android/server/wm/KeyguardController;->setWakeTransitionReady()V
-PLcom/android/server/wm/KeyguardController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/KeyguardController;->updateDeferTransitionForAod(Z)V
-HPLcom/android/server/wm/KeyguardController;->updateVisibility()V
+PLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken()V
+PLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken(I)V
 PLcom/android/server/wm/KeyguardDisableHandler$1;-><init>(Lcom/android/server/wm/KeyguardDisableHandler;)V
 PLcom/android/server/wm/KeyguardDisableHandler$2;-><init>(Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/pm/UserManagerInternal;)V
 PLcom/android/server/wm/KeyguardDisableHandler;-><init>(Lcom/android/server/wm/KeyguardDisableHandler$Injector;Landroid/os/Handler;)V
-PLcom/android/server/wm/KeyguardDisableHandler;->create(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy;Landroid/os/Handler;)Lcom/android/server/wm/KeyguardDisableHandler;
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda6;-><init>()V
-PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->$r8$lambda$43NtWuC87LQ3fIhORDtk6FguY_c(Lcom/android/server/wm/LaunchObserverRegistryImpl;Landroid/content/Intent;J)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->$r8$lambda$F9z4OJPJG8S6kWyjlSmFdBIxGAs(Lcom/android/server/wm/LaunchObserverRegistryImpl;JJ)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->$r8$lambda$HB46khtoGy2-lvZU6F6JCBo3THQ(Lcom/android/server/wm/LaunchObserverRegistryImpl;JLandroid/content/ComponentName;II)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->$r8$lambda$K44Q-L066e13h8I3JRSoRtnlKPw(Lcom/android/server/wm/LaunchObserverRegistryImpl;JLandroid/content/ComponentName;JI)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->$r8$lambda$ic9ginTismFOXJUj86YxV2Pnmpw(Lcom/android/server/wm/LaunchObserverRegistryImpl;Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
+PLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabled(I)V
+PLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabledLocked(I)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda1;-><init>(I)V
+HPLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda2;-><init>(I)V
+HPLcom/android/server/wm/LaunchObserverRegistryImpl$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/wm/LaunchObserverRegistryImpl;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunchFinished(JLandroid/content/ComponentName;JI)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunched(JLandroid/content/ComponentName;II)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnIntentStarted(Landroid/content/Intent;J)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnReportFullyDrawn(JJ)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleRegisterLaunchObserver(Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchCancelled(J)V
 PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchFinished(JLandroid/content/ComponentName;JI)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunched(JLandroid/content/ComponentName;II)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunched(IIJLandroid/content/ComponentName;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->onIntentFailed(J)V
 PLcom/android/server/wm/LaunchObserverRegistryImpl;->onIntentStarted(Landroid/content/Intent;J)V
 PLcom/android/server/wm/LaunchObserverRegistryImpl;->onReportFullyDrawn(JJ)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->registerLaunchObserver(Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
 HSPLcom/android/server/wm/LaunchParamsController$LaunchParams;-><init>()V
-PLcom/android/server/wm/LaunchParamsController$LaunchParams;->hasPreferredTaskDisplayArea()Z
-PLcom/android/server/wm/LaunchParamsController$LaunchParams;->isEmpty()Z
 PLcom/android/server/wm/LaunchParamsController$LaunchParams;->reset()V
 HPLcom/android/server/wm/LaunchParamsController$LaunchParams;->set(Lcom/android/server/wm/LaunchParamsController$LaunchParams;)V
 HSPLcom/android/server/wm/LaunchParamsController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/LaunchParamsPersister;)V
-HPLcom/android/server/wm/LaunchParamsController;->calculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityStarter$Request;ILcom/android/server/wm/LaunchParamsController$LaunchParams;)V
-PLcom/android/server/wm/LaunchParamsController;->layoutTask(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
-HSPLcom/android/server/wm/LaunchParamsController;->registerDefaultModifiers(Lcom/android/server/wm/ActivityTaskSupervisor;)V
-HSPLcom/android/server/wm/LaunchParamsController;->registerModifier(Lcom/android/server/wm/LaunchParamsController$LaunchParamsModifier;)V
-HSPLcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;
+HPLcom/android/server/wm/LaunchParamsController;->calculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityStarter$Request;ILcom/android/server/wm/LaunchParamsController$LaunchParams;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/LaunchParamsController$LaunchParamsModifier;Lcom/android/server/wm/DesktopModeLaunchParamsModifier;,Lcom/android/server/wm/TaskLaunchParamsModifier;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;
+PLcom/android/server/wm/LaunchParamsPersister$LoadingTask;-><init>(Lcom/android/server/wm/LaunchParamsPersister;I)V
+PLcom/android/server/wm/LaunchParamsPersister$LoadingTask;->call()Ljava/lang/Object;
 PLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;-><init>(Lcom/android/server/wm/LaunchParamsPersister;)V
-PLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;-><init>(Lcom/android/server/wm/LaunchParamsPersister;Lcom/android/server/wm/LaunchParamsPersister$PackageListObserver-IA;)V
-HSPLcom/android/server/wm/LaunchParamsPersister;-><init>(Lcom/android/server/wm/PersisterQueue;Lcom/android/server/wm/ActivityTaskSupervisor;)V
+PLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;->onPackageAdded(Ljava/lang/String;I)V
 HSPLcom/android/server/wm/LaunchParamsPersister;-><init>(Lcom/android/server/wm/PersisterQueue;Lcom/android/server/wm/ActivityTaskSupervisor;Ljava/util/function/IntFunction;)V
 PLcom/android/server/wm/LaunchParamsPersister;->getLaunchParamFolder(I)Ljava/io/File;
-PLcom/android/server/wm/LaunchParamsPersister;->getLaunchParams(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)V
-PLcom/android/server/wm/LaunchParamsPersister;->loadLaunchParams(I)V
-PLcom/android/server/wm/LaunchParamsPersister;->onSystemReady()V
-PLcom/android/server/wm/LaunchParamsPersister;->onUnlockUser(I)V
+PLcom/android/server/wm/LaunchParamsPersister;->waitAndMoveResultIfLoading(I)V
 PLcom/android/server/wm/LaunchParamsUtil;-><clinit>()V
-HPLcom/android/server/wm/LaunchParamsUtil;->adjustBoundsToFitInDisplayArea(Lcom/android/server/wm/TaskDisplayArea;ILandroid/content/pm/ActivityInfo$WindowLayout;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/LaunchParamsUtil;->centerBounds(Lcom/android/server/wm/TaskDisplayArea;IILandroid/graphics/Rect;)V
-HPLcom/android/server/wm/LaunchParamsUtil;->getDefaultFreeformSize(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskDisplayArea;Landroid/content/pm/ActivityInfo$WindowLayout;ILandroid/graphics/Rect;)Landroid/util/Size;
-PLcom/android/server/wm/LegacyTransitionTracer;-><init>()V
-PLcom/android/server/wm/LegacyTransitionTracer;->dumpTransitionTargetsToProto(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/Transition;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/LegacyTransitionTracer;->logFinishedTransition(Lcom/android/server/wm/Transition;)V
-PLcom/android/server/wm/LegacyTransitionTracer;->logRemovingStartingWindow(Lcom/android/server/wm/StartingData;)V
-PLcom/android/server/wm/LegacyTransitionTracer;->logSentTransition(Lcom/android/server/wm/Transition;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda1;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda2;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda3;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/LetterboxConfiguration$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;
-PLcom/android/server/wm/LetterboxConfiguration;->$r8$lambda$2zQBjf58m1mXrJY8pdbqFLLuw2k(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->$r8$lambda$82HcSBiBrA4v7cCNKfqg6uSnw3k(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->$r8$lambda$I4U5QJpz5jHeQQ6aVj1Zi7Ry9X8(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->$r8$lambda$klhGmHsmf4_NQnUJBD-o9X_HkDk(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/wm/LetterboxConfiguration;-><init>(Landroid/content/Context;Lcom/android/server/wm/LetterboxConfigurationPersister;)V
-HPLcom/android/server/wm/LetterboxConfiguration;->getDefaultLetterboxBackgroundType()I
-PLcom/android/server/wm/LetterboxConfiguration;->getIsEducationEnabled()Z
-PLcom/android/server/wm/LetterboxConfiguration;->getIsHorizontalReachabilityEnabled()Z
-PLcom/android/server/wm/LetterboxConfiguration;->getIsVerticalReachabilityEnabled()Z
-HPLcom/android/server/wm/LetterboxConfiguration;->getLetterboxBackgroundType()I
-PLcom/android/server/wm/LetterboxConfiguration;->isCameraCompatTreatmentEnabled()Z
-PLcom/android/server/wm/LetterboxConfiguration;->isCameraCompatTreatmentEnabledAtBuildTime()Z
-PLcom/android/server/wm/LetterboxConfiguration;->isCompatFakeFocusEnabled()Z
-PLcom/android/server/wm/LetterboxConfiguration;->isDisplayRotationImmersiveAppCompatPolicyEnabledAtBuildTime()Z
-PLcom/android/server/wm/LetterboxConfiguration;->isPolicyForIgnoringRequestedOrientationEnabled()Z
-PLcom/android/server/wm/LetterboxConfiguration;->isTranslucentLetterboxingEnabled()Z
-HPLcom/android/server/wm/LetterboxConfiguration;->isUserAppAspectRatioFullscreenEnabled()Z
-HPLcom/android/server/wm/LetterboxConfiguration;->isUserAppAspectRatioSettingsEnabled()Z
-PLcom/android/server/wm/LetterboxConfiguration;->lambda$new$0(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->lambda$new$1(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->lambda$new$2(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->lambda$new$3(Landroid/content/Context;)Ljava/lang/Integer;
-PLcom/android/server/wm/LetterboxConfiguration;->readLetterboxBackgroundTypeFromConfig(Landroid/content/Context;)I
-PLcom/android/server/wm/LetterboxConfiguration;->readLetterboxHorizontalReachabilityPositionFromConfig(Landroid/content/Context;Z)I
-PLcom/android/server/wm/LetterboxConfiguration;->readLetterboxVerticalReachabilityPositionFromConfig(Landroid/content/Context;Z)I
-PLcom/android/server/wm/LetterboxConfiguration;->setDefaultMinAspectRatioForUnresizableApps(F)V
-PLcom/android/server/wm/LetterboxConfigurationPersister$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/LetterboxConfigurationPersister;)V
-PLcom/android/server/wm/LetterboxConfigurationPersister$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/LetterboxConfigurationPersister;->$r8$lambda$SeaEJhhe6Vq36TZNPw0-amAMzIo(Lcom/android/server/wm/LetterboxConfigurationPersister;)V
-PLcom/android/server/wm/LetterboxConfigurationPersister;-><init>(Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
-PLcom/android/server/wm/LetterboxConfigurationPersister;-><init>(Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/io/File;Lcom/android/server/wm/PersisterQueue;Ljava/util/function/Consumer;Ljava/lang/String;)V
-PLcom/android/server/wm/LetterboxConfigurationPersister;->readCurrentConfiguration()V
-PLcom/android/server/wm/LetterboxConfigurationPersister;->runWithDiskReadsThreadPolicy(Ljava/lang/Runnable;)V
-PLcom/android/server/wm/LetterboxConfigurationPersister;->start()V
-PLcom/android/server/wm/LetterboxConfigurationPersister;->useDefaultValue()V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda10;-><init>()V
-HPLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda10;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda15;-><init>()V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda15;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda1;-><init>()V
-HPLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda1;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/LetterboxConfiguration;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda3;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/LetterboxConfiguration;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda4;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/LetterboxUiController;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda5;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/LetterboxUiController;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda6;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/LetterboxUiController;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda7;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/LetterboxUiController;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda8;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/wm/LetterboxUiController;)V
-PLcom/android/server/wm/LetterboxUiController$$ExternalSyntheticLambda9;->getAsBoolean()Z
-PLcom/android/server/wm/LetterboxUiController;->$r8$lambda$8OuAb4WHYeErDUj6GqNmsPR-bzo()Z
-PLcom/android/server/wm/LetterboxUiController;->$r8$lambda$JuB8yLagMGFwDrrvd2UCn1C1pIY(Lcom/android/server/wm/LetterboxUiController;)Z
-PLcom/android/server/wm/LetterboxUiController;->$r8$lambda$U7dOvaWj01YWdYa2xRymir-u7iE(Lcom/android/server/wm/LetterboxUiController;)Z
-HPLcom/android/server/wm/LetterboxUiController;->$r8$lambda$_MsqrzePtlwGj7PFL530QpPbjUM()Z
-PLcom/android/server/wm/LetterboxUiController;->$r8$lambda$i72F-I0RxQu2oFPPqEHfVFbh7Yo(Lcom/android/server/wm/LetterboxUiController;)Z
-PLcom/android/server/wm/LetterboxUiController;->$r8$lambda$ps7jq1nOS9OFJPISgAx2C3dVkt8(Lcom/android/server/wm/LetterboxUiController;)Z
-HPLcom/android/server/wm/LetterboxUiController;->$r8$lambda$ueKG2MaFQ7lPhRN_jwsJxXdv0mE()Z
-PLcom/android/server/wm/LetterboxUiController;->$r8$lambda$w9WIA81i4GdEEHGpz0PCTw-RQ3w(Lcom/android/server/wm/LetterboxUiController;)Z
-PLcom/android/server/wm/LetterboxUiController;-><clinit>()V
-HPLcom/android/server/wm/LetterboxUiController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/LetterboxUiController;->findOpaqueNotFinishingActivityBelow()Ljava/util/Optional;
-HPLcom/android/server/wm/LetterboxUiController;->getCropBoundsIfNeeded(Lcom/android/server/wm/WindowState;)Landroid/graphics/Rect;
-HPLcom/android/server/wm/LetterboxUiController;->getLetterboxDetails()Lcom/android/internal/statusbar/LetterboxDetails;
-HPLcom/android/server/wm/LetterboxUiController;->getLetterboxInnerBounds(Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/LetterboxUiController;->getRoundedCornersRadius(Lcom/android/server/wm/WindowState;)I
-HPLcom/android/server/wm/LetterboxUiController;->hasInheritedLetterboxBehavior()Z
-PLcom/android/server/wm/LetterboxUiController;->hasInheritedOrientation()Z
-PLcom/android/server/wm/LetterboxUiController;->hasWallpaperBackgroundForLetterbox()Z
-HPLcom/android/server/wm/LetterboxUiController;->isCompatChangeEnabled(J)Z
-PLcom/android/server/wm/LetterboxUiController;->isFromDoubleTap()Z
-HPLcom/android/server/wm/LetterboxUiController;->isHorizontalReachabilityEnabled()Z
-PLcom/android/server/wm/LetterboxUiController;->isHorizontalReachabilityEnabled(Landroid/content/res/Configuration;)Z
-PLcom/android/server/wm/LetterboxUiController;->isLetterboxDoubleTapEducationEnabled()Z
-HPLcom/android/server/wm/LetterboxUiController;->isLetterboxedNotForDisplayCutout(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/LetterboxUiController;->isSurfaceVisible(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/LetterboxUiController;->isSystemOverrideToFullscreenEnabled()Z
-HPLcom/android/server/wm/LetterboxUiController;->isUserFullscreenOverrideEnabled()Z
-HPLcom/android/server/wm/LetterboxUiController;->isVerticalReachabilityEnabled()Z
-PLcom/android/server/wm/LetterboxUiController;->isVerticalReachabilityEnabled(Landroid/content/res/Configuration;)Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$new$0()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$new$1()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$new$2()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$new$3()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$new$4()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$shouldOverrideForceNonResizeApp$7()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$shouldOverrideForceResizeApp$6()Z
-PLcom/android/server/wm/LetterboxUiController;->lambda$shouldOverrideMinAspectRatio$5()Z
-HPLcom/android/server/wm/LetterboxUiController;->layoutLetterbox(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/LetterboxUiController;->overrideOrientationIfNeeded(I)I
-PLcom/android/server/wm/LetterboxUiController;->readComponentProperty(Landroid/content/pm/PackageManager;Ljava/lang/String;Ljava/util/function/BooleanSupplier;Ljava/lang/String;)Ljava/lang/Boolean;
-HPLcom/android/server/wm/LetterboxUiController;->requiresRoundedCorners(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldApplyUserFullscreenOverride()Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldApplyUserMinAspectRatioOverride()Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldEnableUserAspectRatioSettings()Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldEnableWithOptInOverrideAndOptOutProperty(Ljava/util/function/BooleanSupplier;ZLjava/lang/Boolean;)Z
-PLcom/android/server/wm/LetterboxUiController;->shouldEnableWithOverrideAndProperty(Ljava/util/function/BooleanSupplier;ZLjava/lang/Boolean;)Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldNotLayoutLetterbox(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldOverrideForceNonResizeApp()Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldOverrideForceResizeApp()Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldOverrideMinAspectRatio()Z
-PLcom/android/server/wm/LetterboxUiController;->shouldSendFakeFocus()Z
-HPLcom/android/server/wm/LetterboxUiController;->shouldShowLetterboxUi(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/LetterboxUiController;->updateInheritedLetterbox()V
-HPLcom/android/server/wm/LetterboxUiController;->updateLetterboxSurface(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/LetterboxUiController;->updateLetterboxSurface(Lcom/android/server/wm/WindowState;Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/LetterboxUiController;->updateRoundedCornersIfNeeded(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/LetterboxUiController;->updateWallpaperForLetterbox(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/LocalAnimationAdapter$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/LocalAnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
 PLcom/android/server/wm/LocalAnimationAdapter$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/LocalAnimationAdapter;->$r8$lambda$UaYzKKcZYGPfDd4JouVmDEKELq0(Lcom/android/server/wm/LocalAnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
 PLcom/android/server/wm/LocalAnimationAdapter;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/LocalAnimationAdapter;->lambda$startAnimation$0(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
-HSPLcom/android/server/wm/LockTaskController$LockTaskToken;-><init>()V
-HSPLcom/android/server/wm/LockTaskController$LockTaskToken;-><init>(Lcom/android/server/wm/LockTaskController$LockTaskToken-IA;)V
+PLcom/android/server/wm/LocaleOverlayHelper;->combineLocalesIfOverlayExists(Landroid/os/LocaleList;Landroid/os/LocaleList;)Landroid/os/LocaleList;
 HSPLcom/android/server/wm/LockTaskController;-><clinit>()V
 HSPLcom/android/server/wm/LockTaskController;-><init>(Landroid/content/Context;Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/os/Handler;Lcom/android/server/wm/TaskChangeNotificationController;)V
-PLcom/android/server/wm/LockTaskController;->getLockTaskAuth(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/LockTaskController;->getLockTaskFeaturesForUser(I)I
-PLcom/android/server/wm/LockTaskController;->getRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/LockTaskController;->isActivityAllowed(ILjava/lang/String;I)Z
-PLcom/android/server/wm/LockTaskController;->isKeyguardAllowed(I)Z
-PLcom/android/server/wm/LockTaskController;->isLockTaskModeViolationInternal(Lcom/android/server/wm/WindowContainer;ILandroid/content/Intent;I)Z
-PLcom/android/server/wm/LockTaskController;->isNewTaskLockTaskModeViolation(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/LockTaskController;->activityBlockedFromFinish(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/LockTaskController;->clearLockedTask(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/LockTaskController;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/LockTaskController;->getLockTaskAuth(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)I
+PLcom/android/server/wm/LockTaskController;->isLockTaskModeViolation(Lcom/android/server/wm/Task;Z)Z
+HPLcom/android/server/wm/LockTaskController;->isLockTaskModeViolationInternal(Lcom/android/server/wm/WindowContainer;ILandroid/content/Intent;I)Z
 PLcom/android/server/wm/LockTaskController;->isPackageAllowlisted(ILjava/lang/String;)Z
-PLcom/android/server/wm/LockTaskController;->isTaskAuthAllowlisted(I)Z
-PLcom/android/server/wm/LockTaskController;->isWirelessEmergencyAlert(Landroid/content/Intent;)Z
-PLcom/android/server/wm/LockTaskController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/LockTaskController;->isTaskLocked(Lcom/android/server/wm/Task;)Z
 HSPLcom/android/server/wm/MirrorActiveUids;-><init>()V
-PLcom/android/server/wm/MirrorActiveUids;->getUidState(I)I
-HPLcom/android/server/wm/MirrorActiveUids;->hasNonAppVisibleWindow(I)Z
-PLcom/android/server/wm/MirrorActiveUids;->onNonAppSurfaceVisibilityChanged(IZ)V
-HPLcom/android/server/wm/MirrorActiveUids;->onUidActive(II)V
-PLcom/android/server/wm/MirrorActiveUids;->onUidInactive(I)V
-HPLcom/android/server/wm/MirrorActiveUids;->onUidProcStateChanged(II)V
-PLcom/android/server/wm/NonAppWindowAnimationAdapter;->shouldAttachNavBarToApp(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;I)Z
-PLcom/android/server/wm/NonAppWindowAnimationAdapter;->shouldStartNonAppWindowAnimationsForKeyguardExit(I)Z
-HSPLcom/android/server/wm/PackageConfigPersister;-><clinit>()V
+PLcom/android/server/wm/MirrorActiveUids;->getNonAppVisibleWindowDetails(I)Landroid/util/SparseIntArray;
+HPLcom/android/server/wm/MirrorActiveUids;->hasNonAppVisibleWindow(I)Z+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
+PLcom/android/server/wm/MirrorActiveUids;->updateCount(IZLandroid/util/SparseIntArray;)V
+PLcom/android/server/wm/NonAppWindowAnimationAdapter;->shouldAttachNavBarToApp(Lcom/android/server/wm/DisplayContent;I)Z
+PLcom/android/server/wm/PackageConfigPersister$DeletePackageItem;-><init>(ILjava/lang/String;)V
+PLcom/android/server/wm/PackageConfigPersister$DeletePackageItem;->process()V
+PLcom/android/server/wm/PackageConfigPersister$PackageConfigRecord;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/wm/PackageConfigPersister;-><init>(Lcom/android/server/wm/PersisterQueue;Lcom/android/server/wm/ActivityTaskManagerService;)V
-HPLcom/android/server/wm/PackageConfigPersister;->findRecord(Landroid/util/SparseArray;Ljava/lang/String;I)Lcom/android/server/wm/PackageConfigPersister$PackageConfigRecord;
-PLcom/android/server/wm/PackageConfigPersister;->getUserConfigsDir(I)Ljava/io/File;
-PLcom/android/server/wm/PackageConfigPersister;->loadUserPackages(I)V
-HPLcom/android/server/wm/PackageConfigPersister;->updateConfigIfNeeded(Lcom/android/server/wm/ConfigurationContainer;ILjava/lang/String;)V
+PLcom/android/server/wm/PackageConfigPersister;->findPackageConfiguration(ILjava/lang/String;)Lcom/android/server/wm/ActivityTaskManagerInternal$PackageConfig;
+PLcom/android/server/wm/PackageConfigPersister;->findRecord(Landroid/util/SparseArray;Ljava/lang/String;I)Lcom/android/server/wm/PackageConfigPersister$PackageConfigRecord;
+PLcom/android/server/wm/PackageConfigPersister;->findRecordOrCreate(Landroid/util/SparseArray;Ljava/lang/String;I)Lcom/android/server/wm/PackageConfigPersister$PackageConfigRecord;
+PLcom/android/server/wm/PackageConfigPersister;->removePackage(ILjava/lang/String;)V
+PLcom/android/server/wm/PackageConfigPersister;->updateConfigIfNeeded(Lcom/android/server/wm/ConfigurationContainer;ILjava/lang/String;)V
+PLcom/android/server/wm/PackageConfigPersister;->updateFromImpl(Ljava/lang/String;ILcom/android/server/wm/PackageConfigurationUpdaterImpl;)Z
+PLcom/android/server/wm/PackageConfigurationUpdaterImpl;-><init>(Ljava/lang/String;ILcom/android/server/wm/ActivityTaskManagerService;)V
+PLcom/android/server/wm/PackageConfigurationUpdaterImpl;->commit()Z
+PLcom/android/server/wm/PackageConfigurationUpdaterImpl;->updateConfig(ILjava/lang/String;)V
 HSPLcom/android/server/wm/PendingRemoteAnimationRegistry;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Landroid/os/Handler;)V
-PLcom/android/server/wm/PendingRemoteAnimationRegistry;->overrideOptionsIfNeeded(Ljava/lang/String;Landroid/app/ActivityOptions;)Landroid/app/ActivityOptions;
-HSPLcom/android/server/wm/PersisterQueue$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;-><init>(Lcom/android/server/wm/PersisterQueue;Ljava/lang/String;)V
-HSPLcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;-><init>(Lcom/android/server/wm/PersisterQueue;Ljava/lang/String;Lcom/android/server/wm/PersisterQueue$LazyTaskWriterThread-IA;)V
+PLcom/android/server/wm/PerfettoTransitionTracer$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;I)V
+PLcom/android/server/wm/PerfettoTransitionTracer;-><init>()V
+HPLcom/android/server/wm/PerfettoTransitionTracer;->isTracing()Z
+PLcom/android/server/wm/PerfettoTransitionTracer;->logAbortedTransition(Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/PerfettoTransitionTracer;->logFinishedTransition(Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/PerfettoTransitionTracer;->logRemovingStartingWindow(Lcom/android/server/wm/StartingData;)V
+PLcom/android/server/wm/PerfettoTransitionTracer;->logSentTransition(Lcom/android/server/wm/Transition;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/PerfettoTransitionTracer;->saveForBugreport(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;-><init>(Lcom/android/server/wm/PersisterQueue;)V
 PLcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;->run()V
-PLcom/android/server/wm/PersisterQueue;->-$$Nest$fgetmListeners(Lcom/android/server/wm/PersisterQueue;)Ljava/util/ArrayList;
-PLcom/android/server/wm/PersisterQueue;->-$$Nest$fgetmWriteQueue(Lcom/android/server/wm/PersisterQueue;)Ljava/util/ArrayList;
 PLcom/android/server/wm/PersisterQueue;->-$$Nest$mprocessNextItem(Lcom/android/server/wm/PersisterQueue;)V
 HSPLcom/android/server/wm/PersisterQueue;-><clinit>()V
 HSPLcom/android/server/wm/PersisterQueue;-><init>()V
 HSPLcom/android/server/wm/PersisterQueue;-><init>(JJ)V
 PLcom/android/server/wm/PersisterQueue;->addItem(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;Z)V
-HSPLcom/android/server/wm/PersisterQueue;->addListener(Lcom/android/server/wm/PersisterQueue$Listener;)V
 PLcom/android/server/wm/PersisterQueue;->findLastItem(Ljava/util/function/Predicate;Ljava/lang/Class;)Lcom/android/server/wm/PersisterQueue$WriteQueueItem;
-PLcom/android/server/wm/PersisterQueue;->processNextItem()V
 PLcom/android/server/wm/PersisterQueue;->removeItems(Ljava/util/function/Predicate;Ljava/lang/Class;)V
-PLcom/android/server/wm/PersisterQueue;->startPersisting()V
 PLcom/android/server/wm/PersisterQueue;->yieldIfQueueTooDeep()V
-PLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/Context;Lcom/android/server/wm/TransitionController;)V
-PLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/TransitionController;)V
 PLcom/android/server/wm/PinnedTaskController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/PinnedTaskController;)V
 PLcom/android/server/wm/PinnedTaskController$PinnedTaskListenerDeathHandler;-><init>(Lcom/android/server/wm/PinnedTaskController;)V
-PLcom/android/server/wm/PinnedTaskController$PinnedTaskListenerDeathHandler;-><init>(Lcom/android/server/wm/PinnedTaskController;Lcom/android/server/wm/PinnedTaskController$PinnedTaskListenerDeathHandler-IA;)V
 PLcom/android/server/wm/PinnedTaskController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/PinnedTaskController;->isFreezingTaskConfig(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/PinnedTaskController;->onActivityHidden(Landroid/content/ComponentName;)V
-PLcom/android/server/wm/PinnedTaskController;->onPostDisplayConfigurationChanged()V
-PLcom/android/server/wm/PinnedTaskController;->reloadResources()V
-PLcom/android/server/wm/PinnedTaskController;->setAdjustedForIme(ZI)V
 PLcom/android/server/wm/PointerEventDispatcher;-><init>(Landroid/view/InputChannel;)V
-PLcom/android/server/wm/PointerEventDispatcher;->registerInputEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
+HPLcom/android/server/wm/PointerEventDispatcher;->onInputEvent(Landroid/view/InputEvent;)V+]Landroid/view/WindowManagerPolicyConstants$PointerEventListener;Lcom/android/server/wm/RecentTasks$1;,Lcom/android/server/wm/SystemGesturesPointerEventListener;
 PLcom/android/server/wm/PossibleDisplayInfoMapper;-><init>(Landroid/hardware/display/DisplayManagerInternal;)V
-PLcom/android/server/wm/PossibleDisplayInfoMapper;->removePossibleDisplayInfos(I)V
-PLcom/android/server/wm/ProtoLogCache$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/ProtoLogCache;-><clinit>()V
-HPLcom/android/server/wm/ProtoLogCache;->update()V
-HSPLcom/android/server/wm/RecentTasks$$ExternalSyntheticLambda0;-><init>()V
+PLcom/android/server/wm/PossibleDisplayInfoMapper;->getPossibleDisplayInfos(I)Ljava/util/List;
 HSPLcom/android/server/wm/RecentTasks$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/RecentTasks;)V
 HSPLcom/android/server/wm/RecentTasks$1;-><init>(Lcom/android/server/wm/RecentTasks;)V
+HPLcom/android/server/wm/RecentTasks$1;->onPointerEvent(Landroid/view/MotionEvent;)V
 HSPLcom/android/server/wm/RecentTasks;-><clinit>()V
 HSPLcom/android/server/wm/RecentTasks;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;)V
-PLcom/android/server/wm/RecentTasks;->add(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/RecentTasks;->add(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/RecentTasks;->cleanupDisabledPackageTasksLocked(ILjava/lang/String;Ljava/util/Set;)V
 PLcom/android/server/wm/RecentTasks;->cleanupLocked(I)V
-PLcom/android/server/wm/RecentTasks;->containsTaskId(II)Z
-PLcom/android/server/wm/RecentTasks;->createRecentTaskInfo(Lcom/android/server/wm/Task;ZZ)Landroid/app/ActivityManager$RecentTaskInfo;
+HPLcom/android/server/wm/RecentTasks;->createRecentTaskInfo(Lcom/android/server/wm/Task;ZZ)Landroid/app/ActivityManager$RecentTaskInfo;
+PLcom/android/server/wm/RecentTasks;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
 PLcom/android/server/wm/RecentTasks;->findRemoveIndexForAddTask(Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/RecentTasks;->findRemoveIndexForTask(Lcom/android/server/wm/Task;Z)I
+PLcom/android/server/wm/RecentTasks;->getAppTasksList(ILjava/lang/String;)Ljava/util/ArrayList;
 PLcom/android/server/wm/RecentTasks;->getCurrentProfileIds()[I
-PLcom/android/server/wm/RecentTasks;->getInputListener()Landroid/view/WindowManagerPolicyConstants$PointerEventListener;
-PLcom/android/server/wm/RecentTasks;->getPersistableTaskIds(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/RecentTasks;->getProfileIds(I)Ljava/util/Set;
-PLcom/android/server/wm/RecentTasks;->getRecentTasks(IIZII)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIZII)Ljava/util/ArrayList;
-PLcom/android/server/wm/RecentTasks;->getRecentsComponentUid()I
+HPLcom/android/server/wm/RecentTasks;->getProfileIds(I)Ljava/util/Set;
+HPLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIIIZ)Ljava/util/ArrayList;+]Lcom/android/server/wm/RecentTasks;Lcom/android/server/wm/RecentTasks;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Set;Landroid/util/ArraySet;
 PLcom/android/server/wm/RecentTasks;->getTask(I)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RecentTasks;->getTaskIdsForUser(I)Landroid/util/SparseBooleanArray;
 PLcom/android/server/wm/RecentTasks;->getUserInfo(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/wm/RecentTasks;->hasCompatibleActivityTypeAndWindowingMode(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)Z
 PLcom/android/server/wm/RecentTasks;->isActiveRecentTask(Lcom/android/server/wm/Task;Landroid/util/SparseBooleanArray;)Z
-HPLcom/android/server/wm/RecentTasks;->isCallerRecents(I)Z
-PLcom/android/server/wm/RecentTasks;->isInVisibleRange(Lcom/android/server/wm/Task;IIZ)Z
-PLcom/android/server/wm/RecentTasks;->isRecentsComponent(Landroid/content/ComponentName;I)Z
-PLcom/android/server/wm/RecentTasks;->isUserRunning(II)Z
-PLcom/android/server/wm/RecentTasks;->isVisibleRecentTask(Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/RecentTasks;->isInVisibleRange(Lcom/android/server/wm/Task;IIZ)Z+]Landroid/content/Intent;Landroid/content/Intent;
+PLcom/android/server/wm/RecentTasks;->isRecentsComponentHomeActivity(I)Z
+HPLcom/android/server/wm/RecentTasks;->isVisibleRecentTask(Lcom/android/server/wm/Task;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/wm/RecentTasks;->loadParametersFromResources(Landroid/content/res/Resources;)V
-PLcom/android/server/wm/RecentTasks;->loadPersistedTaskIdsForUserLocked(I)V
-PLcom/android/server/wm/RecentTasks;->loadRecentsComponent(Landroid/content/res/Resources;)V
-PLcom/android/server/wm/RecentTasks;->loadUserRecentsLocked(I)V
+HPLcom/android/server/wm/RecentTasks;->loadRecentTasksIfNeeded(I)V
 PLcom/android/server/wm/RecentTasks;->notifyTaskAdded(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RecentTasks;->notifyTaskPersisterLocked(Lcom/android/server/wm/Task;Z)V
-PLcom/android/server/wm/RecentTasks;->notifyTaskRemoved(Lcom/android/server/wm/Task;ZZ)V
-PLcom/android/server/wm/RecentTasks;->onActivityIdle(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/RecentTasks;->notifyTaskPersisterLocked(Lcom/android/server/wm/Task;Z)V
+HPLcom/android/server/wm/RecentTasks;->notifyTaskRemoved(Lcom/android/server/wm/Task;ZZZ)V
 PLcom/android/server/wm/RecentTasks;->onSystemReadyLocked()V
-PLcom/android/server/wm/RecentTasks;->processNextAffiliateChainLocked(I)I
-HSPLcom/android/server/wm/RecentTasks;->registerCallback(Lcom/android/server/wm/RecentTasks$Callbacks;)V
-PLcom/android/server/wm/RecentTasks;->removeForAddTask(Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/RecentTasks;->shouldPersistTaskLocked(Lcom/android/server/wm/Task;)Z
-HPLcom/android/server/wm/RecentTasks;->syncPersistentTaskIdsLocked()V
+PLcom/android/server/wm/RecentTasks;->remove(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/RecentTasks;->restoreRecentTasksLocked(ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/TaskPersister$RecentTaskFiles;)V
+HPLcom/android/server/wm/RecentTasks;->syncPersistentTaskIdsLocked()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/RecentTasks;->trimInactiveRecentTasks()V
 PLcom/android/server/wm/RecentTasks;->usersWithRecentsLoadedLocked()[I
-PLcom/android/server/wm/RefreshRatePolicy$FrameRateVote;-><init>()V
-HPLcom/android/server/wm/RefreshRatePolicy$FrameRateVote;->refreshRateEquals(F)Z
-HPLcom/android/server/wm/RefreshRatePolicy$FrameRateVote;->reset()Z
-HPLcom/android/server/wm/RefreshRatePolicy$FrameRateVote;->update(FII)Z
+HPLcom/android/server/wm/RefreshRatePolicy$FrameRateVote;->update(IIF)Z
 PLcom/android/server/wm/RefreshRatePolicy$PackageRefreshRate;-><init>(Lcom/android/server/wm/RefreshRatePolicy;)V
-HPLcom/android/server/wm/RefreshRatePolicy$PackageRefreshRate;->get(Ljava/lang/String;)Landroid/view/SurfaceControl$RefreshRateRange;
 PLcom/android/server/wm/RefreshRatePolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/DisplayInfo;Lcom/android/server/wm/HighRefreshRateDenylist;)V
-HPLcom/android/server/wm/RefreshRatePolicy;->calculatePriority(Lcom/android/server/wm/WindowState;)I
-PLcom/android/server/wm/RefreshRatePolicy;->findLowRefreshRateMode(Landroid/view/DisplayInfo;Landroid/view/Display$Mode;)Landroid/view/Display$Mode;
-HPLcom/android/server/wm/RefreshRatePolicy;->getPreferredMaxRefreshRate(Lcom/android/server/wm/WindowState;)F
-HPLcom/android/server/wm/RefreshRatePolicy;->getPreferredMinRefreshRate(Lcom/android/server/wm/WindowState;)F
-HPLcom/android/server/wm/RefreshRatePolicy;->getPreferredModeId(Lcom/android/server/wm/WindowState;)I
-HPLcom/android/server/wm/RefreshRatePolicy;->updateFrameRateVote(Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/RemoteDisplayChangeController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/RemoteDisplayChangeController;)V
 PLcom/android/server/wm/RemoteDisplayChangeController;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RemoteDisplayChangeController;->isWaitingForRemoteDisplayChange()Z
-PLcom/android/server/wm/ResetTargetTaskHelper;-><init>()V
+PLcom/android/server/wm/ResetTargetTaskHelper;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/ResetTargetTaskHelper;->process(Lcom/android/server/wm/Task;Z)Landroid/app/ActivityOptions;
+PLcom/android/server/wm/ResetTargetTaskHelper;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/RootDisplayArea;-><init>(Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;I)V
+PLcom/android/server/wm/RootDisplayArea;->asRootDisplayArea()Lcom/android/server/wm/RootDisplayArea;
 PLcom/android/server/wm/RootDisplayArea;->findAreaForWindowTypeInLayer(IZZ)Lcom/android/server/wm/DisplayArea$Tokens;
 PLcom/android/server/wm/RootDisplayArea;->getRootDisplayArea()Lcom/android/server/wm/RootDisplayArea;
 PLcom/android/server/wm/RootDisplayArea;->isOrientationDifferentFromDisplay()Z
 PLcom/android/server/wm/RootDisplayArea;->onHierarchyBuilt(Ljava/util/ArrayList;[Lcom/android/server/wm/DisplayArea$Tokens;Ljava/util/Map;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/wm/RootWindowContainer;ZLcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda12;-><init>([Z[ZLcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wm/RootWindowContainer;I)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V+]Landroid/view/IWindow;Landroid/view/IWindow$Stub$Proxy;
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda14;-><init>(ILjava/lang/String;Landroid/content/pm/ApplicationInfo;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/Task;[Z[I)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda17;-><init>([ILandroid/app/ActivityTaskManager$RootTaskInfo;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;-><init>([Z)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/TaskDisplayArea;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda21;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda22;-><init>()V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23;-><init>([Z)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda24;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/policy/PermissionPolicyInternal;ILjava/lang/String;[I)V
-HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda26;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda28;-><init>()V
-HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda28;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/wm/Task;[ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z+]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda1;-><init>([ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;[Z)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;I)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda22;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/wm/Task;[ZZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda24;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda25;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda25;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/wm/RootWindowContainer;I)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda27;->run()V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda28;-><init>(I[Z)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Z
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda29;-><init>(ILandroid/util/ArrayMap;)V
 PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda29;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda33;-><init>(Lcom/android/server/wm/RootWindowContainer;I)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda33;->run()V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda34;-><init>(I[Z)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda34;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/wm/RootWindowContainer;ILjava/lang/String;ZZ)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda39;-><init>(IZLjava/util/ArrayList;Ljava/lang/String;I)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda39;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda49;-><init>(Lcom/android/server/policy/PermissionPolicyInternal;)V
-HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda49;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda6;-><init>(Landroid/util/ArrayMap;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda2;-><init>([ZLjava/io/PrintWriter;Ljava/lang/String;[Z)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/wm/RootWindowContainer;ILjava/lang/String;ZZ)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda31;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda32;-><init>(IZLjava/util/ArrayList;Ljava/lang/String;I)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda32;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda37;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda3;-><init>(ILjava/io/PrintWriter;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda3;->run()V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda41;-><init>(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/TaskDisplayArea;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda41;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43;->onCollectStarted(Z)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda46;-><init>(Z[ZZ)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda46;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda50;-><init>(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZ)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda50;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda51;-><init>(Lcom/android/server/policy/PermissionPolicyService$Internal;ILjava/lang/String;[I)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda51;->test(Ljava/lang/Object;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda5;-><init>(Ljava/util/ArrayList;Lcom/android/server/wm/Task;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda6;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/util/ArrayList;I)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda9;-><init>(I)V
+HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/RootWindowContainer$1;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;-><init>(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer$AttachApplicationHelper-IA;)V
-HPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;->accept(Lcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;->process(Lcom/android/server/wm/WindowProcessController;)Z
-HPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;->reset()V
-HPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;->test(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/RootWindowContainer$FindTaskResult;-><init>()V
-PLcom/android/server/wm/RootWindowContainer$FindTaskResult;->init(ILjava/lang/String;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
-PLcom/android/server/wm/RootWindowContainer$FindTaskResult;->process(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$FindTaskResult;->test(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer$FindTaskResult;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/RootWindowContainer$FindTaskResult;->process(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/RootWindowContainer$FindTaskResult;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->process(Ljava/lang/String;Ljava/util/Set;ZZIZ)Z
-PLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->reset(Ljava/lang/String;Ljava/util/Set;ZZIZ)V
-PLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->test(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/RootWindowContainer$FinishDisabledPackageActivitiesHelper;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/RootWindowContainer$MyHandler;-><init>(Lcom/android/server/wm/RootWindowContainer;Landroid/os/Looper;)V
-HPLcom/android/server/wm/RootWindowContainer$MyHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/wm/RootWindowContainer$MyHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;
 PLcom/android/server/wm/RootWindowContainer$RankTaskLayersRunnable;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer$RankTaskLayersRunnable;-><init>(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer$RankTaskLayersRunnable-IA;)V
-PLcom/android/server/wm/RootWindowContainer$RankTaskLayersRunnable;->run()V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$1CWL2ckOwG2YY7rgrO99GUxebQw(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$1PKw-jY8iC_kT9skcjP0rNvpTMU(Lcom/android/server/wm/RootWindowContainer;Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$1y84R2j6aqQu7hhZU6_qdTFvwxk(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$DFaa7QLApF8rlf4uiy_4K0Hxf2Y(Lcom/android/server/wm/RootWindowContainer;ILjava/lang/String;ZZLcom/android/server/wm/TaskDisplayArea;Ljava/lang/Boolean;)Ljava/lang/Boolean;
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$GiNtNK8RPrGEtQpM7eTz88NTYLY(I[ZLcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$IE3IrglzO8K3AUkc78Ck4Lwua94(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$OBluQOlE0gINhfaHzjBgNIe3b4E(IZLjava/util/ArrayList;Ljava/lang/String;ILcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$R79sBJymzrWJ0ntJ8XhLsNaaEiM(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;Lcom/android/server/wm/TaskDisplayArea;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$ZWXgnb1KNcgfkLsPBW2m_vjAFaM(Lcom/android/server/wm/RootWindowContainer;I)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$c2GqB8Z3BGGFuy9XgFrzk3ZupFM(Lcom/android/server/wm/Task;[ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$cnDv250HlSET-GBlf9zK0KW0JGk(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$dBbdl9I9IH9cWk0Fetqaz9kLR_E(Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$eFO9OL6w_8O86IbHYLCIHm_G2rw(Landroid/util/ArrayMap;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$hKjOcjgxM4mtNbo193fYs2CiS30(Lcom/android/server/wm/Task;[Z[ILcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$mFYBP9S0waFMJPTAOjY-WDY8Efs(Lcom/android/server/policy/PermissionPolicyInternal;ILjava/lang/String;[ILcom/android/server/wm/TaskFragment;)Z
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$pWnnVvVtAcnTwGFZvVBYLFjOP64([ILandroid/app/ActivityTaskManager$RootTaskInfo;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$sjhjsJnrwdp8YM512XyLr3LJaA0([ZLcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$w6CXK9g_LDMiMSu03H1dcm6ZUYs([ZLcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->-$$Nest$fgetmTaskLayersChanged(Lcom/android/server/wm/RootWindowContainer;)Z
-PLcom/android/server/wm/RootWindowContainer;->-$$Nest$fputmTaskLayersChanged(Lcom/android/server/wm/RootWindowContainer;Z)V
-HPLcom/android/server/wm/RootWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/RootWindowContainer;->allPausedActivitiesComplete()Z
+HPLcom/android/server/wm/RootWindowContainer$RankTaskLayersRunnable;->run()V
+PLcom/android/server/wm/RootWindowContainer$SleepToken;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/wm/RootWindowContainer$SleepToken;->toString()Ljava/lang/String;
+PLcom/android/server/wm/RootWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/RootWindowContainer;->allPausedActivitiesComplete()Z
 HPLcom/android/server/wm/RootWindowContainer;->allResumedActivitiesIdle()Z
-PLcom/android/server/wm/RootWindowContainer;->allResumedActivitiesVisible()Z
-PLcom/android/server/wm/RootWindowContainer;->anyTaskForId(II)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RootWindowContainer;->anyTaskForId(IILandroid/app/ActivityOptions;Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RootWindowContainer;->applySleepTokens(Z)V
-HPLcom/android/server/wm/RootWindowContainer;->applySurfaceChangesTransaction()V
-HPLcom/android/server/wm/RootWindowContainer;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
-PLcom/android/server/wm/RootWindowContainer;->canLaunchOnDisplay(Lcom/android/server/wm/ActivityRecord;I)Z
-PLcom/android/server/wm/RootWindowContainer;->canStartHomeOnDisplayArea(Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/TaskDisplayArea;Z)Z
-HPLcom/android/server/wm/RootWindowContainer;->checkAppTransitionReady(Lcom/android/server/wm/WindowSurfacePlacer;)V
-PLcom/android/server/wm/RootWindowContainer;->clearDisplayInfoCaches(I)V
-HPLcom/android/server/wm/RootWindowContainer;->clearFrameChangingWindows()V
-HPLcom/android/server/wm/RootWindowContainer;->copyAnimToLayoutParams()Z
+PLcom/android/server/wm/RootWindowContainer;->anyTaskForId(I)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/RootWindowContainer;->anyTaskForId(IILandroid/app/ActivityOptions;Z)Lcom/android/server/wm/Task;+]Lcom/android/internal/util/function/pooled/PooledPredicate;Lcom/android/internal/util/function/pooled/PooledLambdaImpl;
+HPLcom/android/server/wm/RootWindowContainer;->applySleepTokens(Z)V
+HPLcom/android/server/wm/RootWindowContainer;->applySurfaceChangesTransaction$1()V+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/IWallpaperVisibilityListener;Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/LinkedList;Ljava/util/LinkedList;
+PLcom/android/server/wm/RootWindowContainer;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
+PLcom/android/server/wm/RootWindowContainer;->canLaunchOnDisplay(ILcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/RootWindowContainer;->canStartHomeOnDisplayArea(Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/TaskDisplayArea;Z)Z
+HPLcom/android/server/wm/RootWindowContainer;->checkAppTransitionReady()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/RootWindowContainer;->createSleepToken(ILjava/lang/String;)Lcom/android/server/wm/RootWindowContainer$SleepToken;
 PLcom/android/server/wm/RootWindowContainer;->dispatchConfigurationToChild(Lcom/android/server/wm/ConfigurationContainer;Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/RootWindowContainer;->dispatchConfigurationToChild(Lcom/android/server/wm/DisplayContent;Landroid/content/res/Configuration;)V
-HPLcom/android/server/wm/RootWindowContainer;->ensureActivitiesVisible()V
-HPLcom/android/server/wm/RootWindowContainer;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/RootWindowContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/RootWindowContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/RootWindowContainer;->dumpDisplayConfigs(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/RootWindowContainer;->dumpDisplayContents(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/RootWindowContainer;->ensureActivitiesVisible()V
 HPLcom/android/server/wm/RootWindowContainer;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/RootWindowContainer;->ensureVisibilityAndConfig(Lcom/android/server/wm/ActivityRecord;IZ)Z
-PLcom/android/server/wm/RootWindowContainer;->executeAppTransitionForAllDisplay()V
-PLcom/android/server/wm/RootWindowContainer;->findTask(ILjava/lang/String;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->findTask(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->finishDisabledPackageActivities(Ljava/lang/String;Ljava/util/Set;ZZIZ)Z
+HPLcom/android/server/wm/RootWindowContainer;->ensureVisibilityAndConfig(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/DisplayContent;Z)V
+PLcom/android/server/wm/RootWindowContainer;->findActivity(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Z)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/RootWindowContainer;->finishDisabledPackageActivities(ILjava/lang/String;Ljava/util/Set;ZZZ)Z
 PLcom/android/server/wm/RootWindowContainer;->forAllDisplayPolicies(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/RootWindowContainer;->forAllDisplays(Ljava/util/function/Consumer;)V
+HPLcom/android/server/wm/RootWindowContainer;->forAllDisplays(Ljava/util/function/Consumer;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Consumer;megamorphic_types
 PLcom/android/server/wm/RootWindowContainer;->getAllRootTaskInfos(I)Ljava/util/ArrayList;
 PLcom/android/server/wm/RootWindowContainer;->getCurrentInputMethodWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/RootWindowContainer;->getDefaultDisplay()Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/RootWindowContainer;->getDefaultTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
 HPLcom/android/server/wm/RootWindowContainer;->getDisplayContent(I)Lcom/android/server/wm/DisplayContent;
 PLcom/android/server/wm/RootWindowContainer;->getDisplayContentOrCreate(I)Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/RootWindowContainer;->getDisplayRotationCoordinator()Lcom/android/server/wm/DisplayRotationCoordinator;
-PLcom/android/server/wm/RootWindowContainer;->getDumpActivities(Ljava/lang/String;ZZI)Ljava/util/ArrayList;
-PLcom/android/server/wm/RootWindowContainer;->getOrCreateRootTask(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;ZLcom/android/server/wm/LaunchParamsController$LaunchParams;I)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RootWindowContainer;->getRootTaskInfo(Lcom/android/server/wm/Task;)Landroid/app/ActivityTaskManager$RootTaskInfo;
-PLcom/android/server/wm/RootWindowContainer;->getRunningTasks(ILjava/util/List;IILandroid/util/ArraySet;I)V
-HPLcom/android/server/wm/RootWindowContainer;->getTaskToShowPermissionDialogOn(Ljava/lang/String;I)I
+PLcom/android/server/wm/RootWindowContainer;->getDumpActivities(Ljava/lang/String;IZZ)Ljava/util/ArrayList;
+PLcom/android/server/wm/RootWindowContainer;->getName()Ljava/lang/String;
+HPLcom/android/server/wm/RootWindowContainer;->getNotYetIdleActivity(Lcom/android/server/wm/TaskFragment;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/RootWindowContainer;->getOrCreateRootTask(Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/RootWindowContainer;->getOrCreateRootTask(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;ZLcom/android/server/wm/LaunchParamsController$LaunchParams;I)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/RootWindowContainer;->getRootTask(I)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/RootWindowContainer;->getRootTaskInfo(Lcom/android/server/wm/Task;)Landroid/app/ActivityTaskManager$RootTaskInfo;
+HPLcom/android/server/wm/RootWindowContainer;->getRunningTasks(ILjava/util/List;IILandroid/util/ArraySet;I)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/wm/RootWindowContainer;->getTopDisplayFocusedRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RootWindowContainer;->getTopFocusedDisplayContent()Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/RootWindowContainer;->getTopResumedActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->getWindowToken(Landroid/os/IBinder;)Lcom/android/server/wm/WindowToken;
-PLcom/android/server/wm/RootWindowContainer;->getWindowTokenDisplay(Lcom/android/server/wm/WindowToken;)Lcom/android/server/wm/DisplayContent;
-HPLcom/android/server/wm/RootWindowContainer;->handleNotObscuredLocked(Lcom/android/server/wm/WindowState;ZZ)Z
-HPLcom/android/server/wm/RootWindowContainer;->handleResizingWindows()V
-PLcom/android/server/wm/RootWindowContainer;->hasAwakeDisplay()Z
-HPLcom/android/server/wm/RootWindowContainer;->hasPendingLayoutChanges(Lcom/android/server/wm/WindowAnimator;)Z
-PLcom/android/server/wm/RootWindowContainer;->hasVisibleWindowAboveButDoesNotOwnNotificationShade(I)Z
+HPLcom/android/server/wm/RootWindowContainer;->getTopFocusedDisplayContent()Lcom/android/server/wm/DisplayContent;
+HPLcom/android/server/wm/RootWindowContainer;->getTopResumedActivity()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/RootWindowContainer;->getWindowToken(Landroid/os/IBinder;)Lcom/android/server/wm/WindowToken;
 PLcom/android/server/wm/RootWindowContainer;->invalidateTaskLayers()V
 PLcom/android/server/wm/RootWindowContainer;->isAttached()Z
-HPLcom/android/server/wm/RootWindowContainer;->isLayoutNeeded()Z
+HPLcom/android/server/wm/RootWindowContainer;->isLayoutNeeded()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/RootWindowContainer;->isOnTop()Z
-PLcom/android/server/wm/RootWindowContainer;->isTopDisplayFocusedRootTask(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$allPausedActivitiesComplete$38([ZLcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$allResumedActivitiesVisible$37([ZLcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$findTask$15(Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->lambda$getAllRootTaskInfos$24(Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$getDumpActivities$44(IZLjava/util/ArrayList;Ljava/lang/String;ILcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$getRootTaskInfo$21(Lcom/android/server/wm/Task;[Z[ILcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$getRootTaskInfo$22([ILandroid/app/ActivityTaskManager$RootTaskInfo;Lcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/RootWindowContainer;->lambda$getTaskToShowPermissionDialogOn$42(Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/RootWindowContainer;->lambda$getTaskToShowPermissionDialogOn$43(Lcom/android/server/policy/PermissionPolicyInternal;ILjava/lang/String;[ILcom/android/server/wm/TaskFragment;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$hasVisibleWindowAboveButDoesNotOwnNotificationShade$33(I[ZLcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/RootWindowContainer;->lambda$onDisplayChanged$25(I)V
-HPLcom/android/server/wm/RootWindowContainer;->lambda$performSurfacePlacementNoTrace$7(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$rankTaskLayers$28(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$rankTaskLayers$29(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$resumeFocusedTasksTopActivities$17(Lcom/android/server/wm/Task;[ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$startHomeOnDisplay$11(ILjava/lang/String;ZZLcom/android/server/wm/TaskDisplayArea;Ljava/lang/Boolean;)Ljava/lang/Boolean;
-PLcom/android/server/wm/RootWindowContainer;->lambda$startHomeOnEmptyDisplays$10(Ljava/lang/String;Lcom/android/server/wm/TaskDisplayArea;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$updateDisplayImePolicyCache$26(Landroid/util/ArrayMap;Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/RootWindowContainer;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer;->onDisplayChanged(I)V
+HPLcom/android/server/wm/RootWindowContainer;->onDisplayChanged(I)V
 PLcom/android/server/wm/RootWindowContainer;->onDisplayManagerReceivedDeviceState(I)V
 PLcom/android/server/wm/RootWindowContainer;->onSettingsRetrieved()V
-HPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacement()V
-HPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacementNoTrace()V
-PLcom/android/server/wm/RootWindowContainer;->rankTaskLayers()V
+HPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacementNoTrace()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/util/MergedConfiguration;Landroid/util/MergedConfiguration;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/wm/RootWindowContainer;->rankTaskLayers()V
+HPLcom/android/server/wm/RootWindowContainer;->removeSleepToken(Lcom/android/server/wm/RootWindowContainer$SleepToken;)V
 PLcom/android/server/wm/RootWindowContainer;->resolveActivityType(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;)I
 PLcom/android/server/wm/RootWindowContainer;->resolveHomeActivity(ILandroid/content/Intent;)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/wm/RootWindowContainer;->resumeFocusedTasksTopActivities()Z
-PLcom/android/server/wm/RootWindowContainer;->resumeFocusedTasksTopActivities(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
+PLcom/android/server/wm/RootWindowContainer;->resumeFocusedTasksTopActivities()V
 HPLcom/android/server/wm/RootWindowContainer;->resumeFocusedTasksTopActivities(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)Z
+PLcom/android/server/wm/RootWindowContainer;->resumeHomeActivity(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;Lcom/android/server/wm/TaskDisplayArea;)Z
+PLcom/android/server/wm/RootWindowContainer;->sendSleepTransition(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/RootWindowContainer;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/RootWindowContainer;->shouldPlacePrimaryHomeOnDisplay(I)Z
-PLcom/android/server/wm/RootWindowContainer;->startHomeOnAllDisplays(ILjava/lang/String;)Z
-PLcom/android/server/wm/RootWindowContainer;->startHomeOnDisplay(ILjava/lang/String;I)Z
-PLcom/android/server/wm/RootWindowContainer;->startHomeOnDisplay(ILjava/lang/String;IZZ)Z
-PLcom/android/server/wm/RootWindowContainer;->startHomeOnEmptyDisplays(Ljava/lang/String;)V
-PLcom/android/server/wm/RootWindowContainer;->startHomeOnTaskDisplayArea(ILjava/lang/String;Lcom/android/server/wm/TaskDisplayArea;ZZ)Z
-PLcom/android/server/wm/RootWindowContainer;->startPowerModeLaunchIfNeeded(ZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RootWindowContainer;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootWindowContainer;->updateDisplayImePolicyCache()V
-HPLcom/android/server/wm/RootWindowContainer;->updateFocusedWindowLocked(IZ)Z
-PLcom/android/server/wm/RootWindowContainer;->updateUIDsPresentOnDisplay()V
-PLcom/android/server/wm/RootWindowContainer;->updateUserRootTask(ILcom/android/server/wm/Task;)V
+PLcom/android/server/wm/RootWindowContainer;->startHomeOnDisplay(Ljava/lang/String;IIZZ)Z
+HPLcom/android/server/wm/RootWindowContainer;->startHomeOnTaskDisplayArea(ILjava/lang/String;Lcom/android/server/wm/TaskDisplayArea;ZZ)Z
+HPLcom/android/server/wm/RootWindowContainer;->startPowerModeLaunchIfNeeded(Lcom/android/server/wm/ActivityRecord;Z)V
+HPLcom/android/server/wm/RootWindowContainer;->updateDisplayImePolicyCache()V
+HPLcom/android/server/wm/RootWindowContainer;->updateUIDsPresentOnDisplay()V
 PLcom/android/server/wm/RotationWatcherController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/RunningTasks;)V
-PLcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RunningTasks;->$r8$lambda$MfBca7mzpEqQjGaOD89UUs0nLyk(Lcom/android/server/wm/RunningTasks;Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HSPLcom/android/server/wm/RunningTasks;-><init>()V
-PLcom/android/server/wm/RunningTasks;->accept(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RunningTasks;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/RunningTasks;->createRunningTaskInfo(Lcom/android/server/wm/Task;J)Landroid/app/ActivityManager$RunningTaskInfo;
-HPLcom/android/server/wm/RunningTasks;->getTasks(ILjava/util/List;ILcom/android/server/wm/RecentTasks;Lcom/android/server/wm/WindowContainer;ILandroid/util/ArraySet;)V
-PLcom/android/server/wm/RunningTasks;->lambda$getTasks$0(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RunningTasks;->processTaskInWindowContainer(Lcom/android/server/wm/WindowContainer;)V
-HPLcom/android/server/wm/SafeActivityOptions;-><init>(Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/SafeActivityOptions;->checkPermissions(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/app/ActivityOptions;II)V
-PLcom/android/server/wm/SafeActivityOptions;->fromBundle(Landroid/os/Bundle;)Lcom/android/server/wm/SafeActivityOptions;
+HPLcom/android/server/wm/RunningTasks;->accept(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/SafeActivityOptions;-><init>(Landroid/app/ActivityOptions;II)V
+HPLcom/android/server/wm/SafeActivityOptions;->checkPermissions(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/app/ActivityOptions;II)V
+PLcom/android/server/wm/SafeActivityOptions;->fromBundle(IILandroid/os/Bundle;)Lcom/android/server/wm/SafeActivityOptions;
 PLcom/android/server/wm/SafeActivityOptions;->getLaunchTaskDisplayArea(Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityTaskSupervisor;)Lcom/android/server/wm/TaskDisplayArea;
 PLcom/android/server/wm/SafeActivityOptions;->getOptions(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityTaskSupervisor;)Landroid/app/ActivityOptions;
-PLcom/android/server/wm/SafeActivityOptions;->getOriginalOptions()Landroid/app/ActivityOptions;
-PLcom/android/server/wm/SafeActivityOptions;->isSystemOrSystemUI(II)Z
 PLcom/android/server/wm/SafeActivityOptions;->mergeActivityOptions(Landroid/app/ActivityOptions;Landroid/app/ActivityOptions;)Landroid/app/ActivityOptions;
-PLcom/android/server/wm/SafeActivityOptions;->popAppVerificationBundle()Landroid/os/Bundle;
-HPLcom/android/server/wm/SafeActivityOptions;->setCallerOptions(Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/SafeActivityOptions;->setCallingPidUidForRemoteAnimationAdapter(Landroid/app/ActivityOptions;II)V
 PLcom/android/server/wm/ScreenRecordingCallbackController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/ScreenRecordingCallbackController;->onProcessActivityVisibilityChanged(IZ)V
+PLcom/android/server/wm/ScreenRecordingCallbackController;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/wm/SensitiveContentPackages;-><init>()V
+PLcom/android/server/wm/SensitiveContentPackages;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/SensitiveContentPackages;->shouldBlockScreenCaptureForApp(ILandroid/os/IBinder;Ljava/lang/String;)Z
+PLcom/android/server/wm/Session$$ExternalSyntheticLambda1;-><init>(F)V
+HPLcom/android/server/wm/Session$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/Session$$ExternalSyntheticLambda3;-><init>(Z)V
 PLcom/android/server/wm/Session$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/Session;->$r8$lambda$71MlbzHo9XQfq1o5frufHv-e65Q(ZLcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/Session;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IWindowSessionCallback;)V
-HPLcom/android/server/wm/Session;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IWindowSessionCallback;II)V
+PLcom/android/server/wm/Session;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IWindowSessionCallback;II)V
 PLcom/android/server/wm/Session;->actionOnWallpaper(Landroid/os/IBinder;Ljava/util/function/BiConsumer;)V
 PLcom/android/server/wm/Session;->addToDisplay(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIILandroid/view/InputChannel;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/graphics/Rect;[F)I
 PLcom/android/server/wm/Session;->addToDisplayAsUser(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIILandroid/view/InputChannel;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/graphics/Rect;[F)I
-PLcom/android/server/wm/Session;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;I)V
+PLcom/android/server/wm/Session;->binderDied()V
+HPLcom/android/server/wm/Session;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;I)V
+PLcom/android/server/wm/Session;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
 PLcom/android/server/wm/Session;->grantInputChannel(ILandroid/view/SurfaceControl;Landroid/os/IBinder;Landroid/window/InputTransferToken;IIIILandroid/os/IBinder;Landroid/window/InputTransferToken;Ljava/lang/String;Landroid/view/InputChannel;)V
-PLcom/android/server/wm/Session;->hasWindow()Z
 PLcom/android/server/wm/Session;->isClientDead()Z
-PLcom/android/server/wm/Session;->lambda$setShouldZoomOutWallpaper$2(ZLcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/Session;->isSatellitePointingUiPackage()Z
+PLcom/android/server/wm/Session;->killSessionLocked()V
+PLcom/android/server/wm/Session;->notifyImeWindowVisibilityChangedFromClient(Landroid/view/IWindow;ZLandroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/wm/Session;->notifyInsetsAnimationRunningStateChanged(Landroid/view/IWindow;Z)V
 PLcom/android/server/wm/Session;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/Session;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/server/wm/Session;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HPLcom/android/server/wm/Session;->onWindowAdded(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/Session;->onWindowRemoved(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/Session;->onWindowSurfaceVisibilityChanged(Lcom/android/server/wm/WindowSurfaceController;ZI)V
-HPLcom/android/server/wm/Session;->relayout(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIIILandroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/os/Bundle;)I
+HPLcom/android/server/wm/Session;->pokeDrawLock(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/Session;->relayout(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIIILandroid/view/WindowRelayoutResult;)I+]Landroid/view/IWindow;Landroid/view/IWindow$Stub$Proxy;]Landroid/view/InsetsSourceControl$Array;Landroid/view/InsetsSourceControl$Array;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/wm/Session;->relayoutAsync(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIII)V
 PLcom/android/server/wm/Session;->remove(Landroid/os/IBinder;)V
+PLcom/android/server/wm/Session;->reportDecorViewGestureInterceptionChanged(Landroid/view/IWindow;Z)V
+PLcom/android/server/wm/Session;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
 PLcom/android/server/wm/Session;->setHasOverlayUi(Z)V
 PLcom/android/server/wm/Session;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
-PLcom/android/server/wm/Session;->setOnBackInvokedCallbackInfo(Landroid/view/IWindow;Landroid/window/OnBackInvokedCallbackInfo;)V
+HPLcom/android/server/wm/Session;->setOnBackInvokedCallbackInfo(Landroid/view/IWindow;Landroid/window/OnBackInvokedCallbackInfo;)V
 PLcom/android/server/wm/Session;->setShouldZoomOutWallpaper(Landroid/os/IBinder;Z)V
-PLcom/android/server/wm/SmoothDimmer;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/SmoothDimmer;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DimmerAnimationHelper$AnimationAdapterFactory;)V
-HPLcom/android/server/wm/SmoothDimmer;->getDimBounds()Landroid/graphics/Rect;
-HPLcom/android/server/wm/SmoothDimmer;->resetDimStates()V
-PLcom/android/server/wm/SnapshotCache;-><init>(Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;)V
-PLcom/android/server/wm/SnapshotCache;->clearRunningCache()V
-PLcom/android/server/wm/SnapshotCache;->getSnapshot(Ljava/lang/Integer;)Landroid/window/TaskSnapshot;
-PLcom/android/server/wm/SnapshotCache;->onIdRemoved(Ljava/lang/Integer;)V
-PLcom/android/server/wm/SnapshotCache;->removeRunningEntry(Ljava/lang/Integer;)V
+HPLcom/android/server/wm/Session;->setWallpaperZoomOut(Landroid/os/IBinder;F)V
+PLcom/android/server/wm/Session;->toString()Ljava/lang/String;
+PLcom/android/server/wm/Session;->updateRequestedVisibleTypes(Landroid/view/IWindow;ILandroid/view/inputmethod/ImeTracker$Token;)V
+PLcom/android/server/wm/SnapshotCache$CacheEntry;-><init>(Landroid/window/TaskSnapshot;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/SnapshotCache;-><init>(Ljava/lang/String;)V
+HPLcom/android/server/wm/SnapshotCache;->getSnapshot(Ljava/lang/Integer;)Landroid/window/TaskSnapshot;
+HPLcom/android/server/wm/SnapshotCache;->removeRunningEntry(Ljava/lang/Integer;)V
 PLcom/android/server/wm/SnapshotController$ActivitiesByTask$OpenCloseActivities;-><init>()V
-PLcom/android/server/wm/SnapshotController$ActivitiesByTask$OpenCloseActivities;->add(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/SnapshotController$ActivitiesByTask$OpenCloseActivities;->allOpensOptInOnBackInvoked()Z
-PLcom/android/server/wm/SnapshotController$ActivitiesByTask$OpenCloseActivities;->recordSnapshot(Lcom/android/server/wm/ActivitySnapshotController;)V
 PLcom/android/server/wm/SnapshotController$ActivitiesByTask;-><init>()V
-PLcom/android/server/wm/SnapshotController$ActivitiesByTask;-><init>(Lcom/android/server/wm/SnapshotController$ActivitiesByTask-IA;)V
-PLcom/android/server/wm/SnapshotController$ActivitiesByTask;->put(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/SnapshotController$ActivitiesByTask;->recordSnapshot(Lcom/android/server/wm/ActivitySnapshotController;)V
 PLcom/android/server/wm/SnapshotController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/SnapshotController;->isTransitionClose(I)Z
-PLcom/android/server/wm/SnapshotController;->isTransitionOpen(I)Z
-PLcom/android/server/wm/SnapshotController;->notifyAppVisibilityChanged(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/SnapshotController;->onTransactionReady(ILjava/util/ArrayList;)V
-PLcom/android/server/wm/SnapshotController;->onTransitionFinish(ILjava/util/ArrayList;)V
-PLcom/android/server/wm/SnapshotController;->onTransitionStarting(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/SnapshotController;->setPause(Z)V
-PLcom/android/server/wm/SnapshotController;->systemReady()V
-PLcom/android/server/wm/SnapshotPersistQueue$1;-><init>(Lcom/android/server/wm/SnapshotPersistQueue;Ljava/lang/String;)V
-PLcom/android/server/wm/SnapshotPersistQueue$1;->run()V
+HPLcom/android/server/wm/SnapshotController;->onTransactionReady(Ljava/util/ArrayList;I)V
+PLcom/android/server/wm/SnapshotPersistQueue$1;-><init>(Lcom/android/server/wm/SnapshotPersistQueue;)V
+HPLcom/android/server/wm/SnapshotPersistQueue$1;->run()V
 PLcom/android/server/wm/SnapshotPersistQueue$DeleteWriteQueueItem;-><init>(Lcom/android/server/wm/SnapshotPersistQueue;IILcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
 PLcom/android/server/wm/SnapshotPersistQueue$DeleteWriteQueueItem;->write()V
+PLcom/android/server/wm/SnapshotPersistQueue$StoreWriteQueueItem;-><init>(Lcom/android/server/wm/SnapshotPersistQueue;IILandroid/window/TaskSnapshot;Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
+PLcom/android/server/wm/SnapshotPersistQueue$StoreWriteQueueItem;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/wm/SnapshotPersistQueue$StoreWriteQueueItem;->onDequeuedLocked()V
+PLcom/android/server/wm/SnapshotPersistQueue$StoreWriteQueueItem;->onQueuedLocked()V
+HPLcom/android/server/wm/SnapshotPersistQueue$StoreWriteQueueItem;->write()V
 PLcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;-><init>(Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;I)V
 PLcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;->isReady(Lcom/android/server/pm/UserManagerInternal;)Z
 PLcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;->onDequeuedLocked()V
 PLcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;->onQueuedLocked()V
-PLcom/android/server/wm/SnapshotPersistQueue;->-$$Nest$fgetmLock(Lcom/android/server/wm/SnapshotPersistQueue;)Ljava/lang/Object;
-PLcom/android/server/wm/SnapshotPersistQueue;->-$$Nest$fgetmPaused(Lcom/android/server/wm/SnapshotPersistQueue;)Z
-PLcom/android/server/wm/SnapshotPersistQueue;->-$$Nest$fgetmUserManagerInternal(Lcom/android/server/wm/SnapshotPersistQueue;)Lcom/android/server/pm/UserManagerInternal;
-PLcom/android/server/wm/SnapshotPersistQueue;->-$$Nest$fgetmWriteQueue(Lcom/android/server/wm/SnapshotPersistQueue;)Ljava/util/ArrayDeque;
-PLcom/android/server/wm/SnapshotPersistQueue;->-$$Nest$fputmQueueIdling(Lcom/android/server/wm/SnapshotPersistQueue;Z)V
 PLcom/android/server/wm/SnapshotPersistQueue;-><init>()V
-PLcom/android/server/wm/SnapshotPersistQueue;->addToQueueInternal(Lcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;Z)V
-PLcom/android/server/wm/SnapshotPersistQueue;->createDeleteWriteQueueItem(IILcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)Lcom/android/server/wm/SnapshotPersistQueue$DeleteWriteQueueItem;
+HPLcom/android/server/wm/SnapshotPersistQueue;->addToQueueInternal(Lcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;Z)V
 PLcom/android/server/wm/SnapshotPersistQueue;->deleteSnapshot(IILcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
-PLcom/android/server/wm/SnapshotPersistQueue;->ensureStoreQueueDepthLocked()V
-PLcom/android/server/wm/SnapshotPersistQueue;->getLock()Ljava/lang/Object;
-PLcom/android/server/wm/SnapshotPersistQueue;->sendToQueueLocked(Lcom/android/server/wm/SnapshotPersistQueue$WriteQueueItem;)V
-PLcom/android/server/wm/SnapshotPersistQueue;->setPaused(Z)V
-PLcom/android/server/wm/SnapshotPersistQueue;->start()V
-PLcom/android/server/wm/SnapshotPersistQueue;->systemReady()V
+HPLcom/android/server/wm/SnapshotPersistQueue;->setPaused(Z)V
+PLcom/android/server/wm/SnapshotStartingData;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/window/TaskSnapshot;I)V
+PLcom/android/server/wm/SnapshotStartingData;->createStartingSurface(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/StartingSurfaceController$StartingSurface;
+PLcom/android/server/wm/SnapshotStartingData;->hasImeSurface()Z
+PLcom/android/server/wm/SnapshotStartingData;->needRevealAnimation()Z
 PLcom/android/server/wm/SplashScreenExceptionList$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SplashScreenExceptionList;)V
+PLcom/android/server/wm/SplashScreenExceptionList$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/wm/SplashScreenExceptionList;-><clinit>()V
 PLcom/android/server/wm/SplashScreenExceptionList;-><init>(Ljava/util/concurrent/Executor;)V
-PLcom/android/server/wm/SplashScreenExceptionList;->isException(Ljava/lang/String;ILjava/util/function/Supplier;)Z
-PLcom/android/server/wm/SplashScreenExceptionList;->parseDeviceConfigPackageList(Ljava/lang/String;)V
 PLcom/android/server/wm/SplashScreenExceptionList;->updateDeviceConfig(Ljava/lang/String;)V
 PLcom/android/server/wm/SplashScreenStartingData;-><init>(Lcom/android/server/wm/WindowManagerService;II)V
 PLcom/android/server/wm/SplashScreenStartingData;->createStartingSurface(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/StartingSurfaceController$StartingSurface;
@@ -28083,19 +22062,13 @@
 PLcom/android/server/wm/StartingData;->hasImeSurface()Z
 PLcom/android/server/wm/StartingSurfaceController$StartingSurface;-><init>(Lcom/android/server/wm/StartingSurfaceController;Lcom/android/server/wm/Task;Landroid/window/ITaskOrganizer;)V
 PLcom/android/server/wm/StartingSurfaceController$StartingSurface;->remove(ZZ)V
-PLcom/android/server/wm/StartingSurfaceController;->-$$Nest$fgetmService(Lcom/android/server/wm/StartingSurfaceController;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/StartingSurfaceController;-><clinit>()V
 PLcom/android/server/wm/StartingSurfaceController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/StartingSurfaceController;->createSplashScreenStartingSurface(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/StartingSurfaceController$StartingSurface;
-PLcom/android/server/wm/StartingSurfaceController;->isExceptionApp(Ljava/lang/String;ILjava/util/function/Supplier;)Z
-PLcom/android/server/wm/StartingSurfaceController;->makeStartingWindowTypeParameter(ZZZZZZZZIZLjava/lang/String;I)I
-PLcom/android/server/wm/StartingSurfaceController;->showStartingWindow(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;ZZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;I)V
 PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda2;->makeAnimator()Landroid/animation/ValueAnimator;
+PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda2;->makeAnimator()Lcom/android/server/wm/SurfaceAnimationRunner$SfValueAnimator;
+PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
+PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
 PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda5;->doFrame(J)V
 PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;)V
@@ -28103,2048 +22076,1409 @@
 PLcom/android/server/wm/SurfaceAnimationRunner$1;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
 PLcom/android/server/wm/SurfaceAnimationRunner$1;->onAnimationEnd(Landroid/animation/Animator;)V
 PLcom/android/server/wm/SurfaceAnimationRunner$1;->onAnimationStart(Landroid/animation/Animator;)V
-PLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;->-$$Nest$fgetmCancelled(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)Z
-PLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Ljava/lang/Runnable;)V
+PLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Lcom/android/server/wm/LocalAnimationAdapter$$ExternalSyntheticLambda0;)V
 PLcom/android/server/wm/SurfaceAnimationRunner$SfValueAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
 PLcom/android/server/wm/SurfaceAnimationRunner$SfValueAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler;
-PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$ToSJy1KwSRMhh9jEX86pHrCMpsM(Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$ZTJ0zv3TBWmm9N7PsMhXlrn1N_k(Lcom/android/server/wm/SurfaceAnimationRunner;J)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$qJwhWRhUrmZXvj8AiaQY-79qSPU(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/animation/ValueAnimator;
-PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$rSMLySCWRN8MY7ZdHCaQcDy2620(Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$tBHqgETCQ96oQUzgbS-jgwe9EfU(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmAnimationHandler(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/animation/AnimationHandler;
-PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmAnimationThreadHandler(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/os/Handler;
-PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmCancelLock(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object;
-PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmFrameTransaction(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmLock(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object;
-PLcom/android/server/wm/SurfaceAnimationRunner;-><clinit>()V
 PLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Lcom/android/server/wm/SurfaceAnimationRunner$AnimatorFactory;Landroid/view/SurfaceControl$Transaction;Landroid/os/PowerManagerInternal;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Ljava/util/function/Supplier;Landroid/os/PowerManagerInternal;)V
-HPLcom/android/server/wm/SurfaceAnimationRunner;->applyTransaction()V
-PLcom/android/server/wm/SurfaceAnimationRunner;->applyTransformation(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/view/SurfaceControl$Transaction;J)V
 PLcom/android/server/wm/SurfaceAnimationRunner;->continueStartingAnimations()V
-PLcom/android/server/wm/SurfaceAnimationRunner;->deferStartingAnimations()V
-PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$new$0()V
-PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$new$1()Landroid/animation/ValueAnimator;
-HPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$startAnimationLocked$4(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->onAnimationLeashLost(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->requiresEdgeExtension(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;)Z
-PLcom/android/server/wm/SurfaceAnimationRunner;->scheduleApplyTransaction()V
-PLcom/android/server/wm/SurfaceAnimationRunner;->startAnimation(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Ljava/lang/Runnable;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->startAnimationLocked(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->startAnimations(J)V
-PLcom/android/server/wm/SurfaceAnimationRunner;->startPendingAnimationsLocked()V
-HSPLcom/android/server/wm/SurfaceAnimationThread;-><init>()V
+PLcom/android/server/wm/SurfaceAnimationRunner;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
+HPLcom/android/server/wm/SurfaceAnimationRunner;->startAnimation(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/LocalAnimationAdapter$$ExternalSyntheticLambda0;)V
+HPLcom/android/server/wm/SurfaceAnimationRunner;->startPendingAnimationsLocked()V
 HSPLcom/android/server/wm/SurfaceAnimationThread;->ensureThreadLocked()V
-HSPLcom/android/server/wm/SurfaceAnimationThread;->get()Lcom/android/server/wm/SurfaceAnimationThread;
 HSPLcom/android/server/wm/SurfaceAnimationThread;->getHandler()Landroid/os/Handler;
-HPLcom/android/server/wm/SurfaceAnimator$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SurfaceAnimator;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
-PLcom/android/server/wm/SurfaceAnimator$$ExternalSyntheticLambda0;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+PLcom/android/server/wm/SurfaceAnimator$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SurfaceAnimator;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
+HPLcom/android/server/wm/SurfaceAnimator$$ExternalSyntheticLambda0;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 PLcom/android/server/wm/SurfaceAnimator$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/SurfaceAnimator;Lcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
 PLcom/android/server/wm/SurfaceAnimator$$ExternalSyntheticLambda1;->run()V
 PLcom/android/server/wm/SurfaceAnimator$Animatable;->onLeashAnimationStarting(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/SurfaceAnimator$Animatable;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
-PLcom/android/server/wm/SurfaceAnimator;->$r8$lambda$A_SDCtBYtLcYDAAdc6Nygk1chE0(Lcom/android/server/wm/SurfaceAnimator;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;ILcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/SurfaceAnimator;->$r8$lambda$jpWLmdZ8WD7VMOkNht1QSuwzXVM(Lcom/android/server/wm/SurfaceAnimator;Lcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
 HPLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/SurfaceAnimator;->animationTypeToString(I)Ljava/lang/String;
-PLcom/android/server/wm/SurfaceAnimator;->cancelAnimation()V
+HPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation()V
 HPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation(Landroid/view/SurfaceControl$Transaction;ZZ)V
-HPLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIIIIZLjava/util/function/Supplier;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/SurfaceAnimator;->getAnimation()Lcom/android/server/wm/AnimationAdapter;
-PLcom/android/server/wm/SurfaceAnimator;->getAnimationType()I
-HPLcom/android/server/wm/SurfaceAnimator;->getFinishedCallback(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
-HPLcom/android/server/wm/SurfaceAnimator;->hasLeash()Z
-HPLcom/android/server/wm/SurfaceAnimator;->isAnimating()Z
-PLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$0(Lcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V
-PLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$1(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;ILcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/SurfaceAnimator;->removeLeash(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Z)Z
+HPLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIIIIZ)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SurfaceAnimator;->hasLeash()Z
+PLcom/android/server/wm/SurfaceAnimator;->isAnimating()Z
+HPLcom/android/server/wm/SurfaceAnimator;->removeLeash(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Z)Z
 HPLcom/android/server/wm/SurfaceAnimator;->reset(Landroid/view/SurfaceControl$Transaction;Z)V
-HPLcom/android/server/wm/SurfaceAnimator;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
-PLcom/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;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Ljava/lang/Runnable;Lcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/SurfaceFreezer;)V
-HPLcom/android/server/wm/SurfaceFreezer;-><init>(Lcom/android/server/wm/SurfaceFreezer$Freezable;Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/wm/SurfaceFreezer;->hasLeash()Z
-PLcom/android/server/wm/SurfaceFreezer;->takeLeashForAnimation()Landroid/view/SurfaceControl;
-PLcom/android/server/wm/SurfaceFreezer;->unfreeze(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/SurfaceFreezer;->unfreezeInner(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/SurfaceFreezer;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/SurfaceFreezer;->hasLeash()Z
+HPLcom/android/server/wm/SurfaceFreezer;->unfreeze(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
 PLcom/android/server/wm/SurfaceSyncGroupController;-><init>()V
 PLcom/android/server/wm/SynchedDeviceConfig$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SynchedDeviceConfig;)V
 PLcom/android/server/wm/SynchedDeviceConfig$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;-><init>(Ljava/lang/String;Ljava/util/concurrent/Executor;)V
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;-><init>(Ljava/lang/String;Ljava/util/concurrent/Executor;Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder-IA;)V
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;->addDeviceConfigEntry(Ljava/lang/String;ZZ)Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;->build()Lcom/android/server/wm/SynchedDeviceConfig;
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->-$$Nest$fgetmDefaultValue(Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;)Z
-HPLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->-$$Nest$mgetValue(Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;)Z
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->-$$Nest$misBuildTimeFlagEnabled(Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;)Z
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->-$$Nest$mupdateValue(Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;Z)V
+PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;-><init>(Ljava/util/concurrent/Executor;)V
+PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;->addDeviceConfigEntry(Ljava/lang/String;ZZ)V
 PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;-><init>(Ljava/lang/String;ZZ)V
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;-><init>(Ljava/lang/String;ZZLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry-IA;)V
-HPLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->getValue()Z
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->isBuildTimeFlagEnabled()Z
-PLcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;->updateValue(Z)V
-PLcom/android/server/wm/SynchedDeviceConfig;->$r8$lambda$wnSiPqxpYWD7zDbmlb4cH3CKru0(Lcom/android/server/wm/SynchedDeviceConfig;Ljava/lang/String;Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;)V
-PLcom/android/server/wm/SynchedDeviceConfig;->-$$Nest$mstart(Lcom/android/server/wm/SynchedDeviceConfig;)Lcom/android/server/wm/SynchedDeviceConfig;
-PLcom/android/server/wm/SynchedDeviceConfig;->-$$Nest$mupdateFlags(Lcom/android/server/wm/SynchedDeviceConfig;)Lcom/android/server/wm/SynchedDeviceConfig;
 PLcom/android/server/wm/SynchedDeviceConfig;-><init>(Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/util/Map;)V
-PLcom/android/server/wm/SynchedDeviceConfig;-><init>(Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/util/Map;Lcom/android/server/wm/SynchedDeviceConfig-IA;)V
-PLcom/android/server/wm/SynchedDeviceConfig;->builder(Ljava/lang/String;Ljava/util/concurrent/Executor;)Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigBuilder;
-HPLcom/android/server/wm/SynchedDeviceConfig;->getFlagValue(Ljava/lang/String;)Z
+HPLcom/android/server/wm/SynchedDeviceConfig;->getFlagValue(Ljava/lang/String;)Z+]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;
 PLcom/android/server/wm/SynchedDeviceConfig;->isBuildTimeFlagEnabled(Ljava/lang/String;)Z
-PLcom/android/server/wm/SynchedDeviceConfig;->isDeviceConfigFlagEnabled(Ljava/lang/String;Z)Z
-PLcom/android/server/wm/SynchedDeviceConfig;->lambda$updateFlags$0(Ljava/lang/String;Lcom/android/server/wm/SynchedDeviceConfig$SynchedDeviceConfigEntry;)V
-PLcom/android/server/wm/SynchedDeviceConfig;->start()Lcom/android/server/wm/SynchedDeviceConfig;
-PLcom/android/server/wm/SynchedDeviceConfig;->updateFlags()Lcom/android/server/wm/SynchedDeviceConfig;
+PLcom/android/server/wm/SynchedDeviceConfig;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/wm/SystemGesturesPointerEventListener$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;)V
 PLcom/android/server/wm/SystemGesturesPointerEventListener$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/SystemGesturesPointerEventListener$1;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V
 PLcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->$r8$lambda$ny76CjJQ3d_Eeus7bZqFDsxdevk(Lcom/android/server/wm/SystemGesturesPointerEventListener;)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->-$$Nest$fgetmContext(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Landroid/content/Context;
-PLcom/android/server/wm/SystemGesturesPointerEventListener;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->checkNull(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->lambda$systemReady$0()V
+PLcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
+PLcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;->onSingleTapUp(Landroid/view/MotionEvent;)Z
+PLcom/android/server/wm/SystemGesturesPointerEventListener;-><init>(Landroid/content/Context;Lcom/android/server/wm/DisplayPolicy$PolicyHandler;Lcom/android/server/wm/DisplayPolicy$1;)V
+PLcom/android/server/wm/SystemGesturesPointerEventListener;->captureDown(ILandroid/view/MotionEvent;)V
+HPLcom/android/server/wm/SystemGesturesPointerEventListener;->detectSwipe(IJFF)I
+PLcom/android/server/wm/SystemGesturesPointerEventListener;->findIndex(I)I
 HPLcom/android/server/wm/SystemGesturesPointerEventListener;->onConfigurationChanged()V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->systemReady()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda12;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda12;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda13;-><init>()V
-HPLcom/android/server/wm/Task$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda18;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda19;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda23;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda25;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda26;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda26;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda27;-><init>([Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda27;->test(Ljava/lang/Object;)Z
-HPLcom/android/server/wm/Task$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityRecord;Z)V
-HPLcom/android/server/wm/Task$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda30;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda31;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda34;-><init>(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda38;-><init>([I)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda38;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda40;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda40;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda42;-><init>(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;[I)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda9;-><init>()V
-PLcom/android/server/wm/Task$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
+HPLcom/android/server/wm/SystemGesturesPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V+]Lcom/android/server/wm/WindowOrientationListener$OrientationJudge;Lcom/android/server/wm/WindowOrientationListener$AccelSensorJudge;
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda10;-><init>(ILcom/android/server/wm/Task;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda12;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda12;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;[I)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/Task;Z)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda17;-><init>(I)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda18;-><init>([I)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityRecord;Z)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda21;-><init>(Ljava/lang/Object;IZ)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda32;->onCollectStarted(Z)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda39;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;)V+]Ljava/util/function/Consumer;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda0;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda21;
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda3;-><init>(I)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/Task$$ExternalSyntheticLambda4;-><init>(I)V
+HPLcom/android/server/wm/Task$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
 PLcom/android/server/wm/Task$ActivityTaskHandler;-><init>(Lcom/android/server/wm/Task;Landroid/os/Looper;)V
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetAffinity(Lcom/android/server/wm/Task$Builder;Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetAffinityIntent(Lcom/android/server/wm/Task$Builder;Landroid/content/Intent;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetAutoRemoveRecents(Lcom/android/server/wm/Task$Builder;Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetCallingFeatureId(Lcom/android/server/wm/Task$Builder;Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetCallingPackage(Lcom/android/server/wm/Task$Builder;Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetCallingUid(Lcom/android/server/wm/Task$Builder;I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetLastDescription(Lcom/android/server/wm/Task$Builder;Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetLastSnapshotData(Lcom/android/server/wm/Task$Builder;Landroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetLastTaskDescription(Lcom/android/server/wm/Task$Builder;Landroid/app/ActivityManager$TaskDescription;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetLastTimeMoved(Lcom/android/server/wm/Task$Builder;J)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetNeverRelinquishIdentity(Lcom/android/server/wm/Task$Builder;Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetNextAffiliateTaskId(Lcom/android/server/wm/Task$Builder;I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetOrigActivity(Lcom/android/server/wm/Task$Builder;Landroid/content/ComponentName;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetPrevAffiliateTaskId(Lcom/android/server/wm/Task$Builder;I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetRealActivitySuspended(Lcom/android/server/wm/Task$Builder;Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetResizeMode(Lcom/android/server/wm/Task$Builder;I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetRootAffinity(Lcom/android/server/wm/Task$Builder;Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetRootWasReset(Lcom/android/server/wm/Task$Builder;Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetSupportsPictureInPicture(Lcom/android/server/wm/Task$Builder;Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetTaskAffiliation(Lcom/android/server/wm/Task$Builder;I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetUserId(Lcom/android/server/wm/Task$Builder;I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetUserSetupComplete(Lcom/android/server/wm/Task$Builder;Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->-$$Nest$msetVoiceInteractor(Lcom/android/server/wm/Task$Builder;Lcom/android/internal/app/IVoiceInteractor;)Lcom/android/server/wm/Task$Builder;
 PLcom/android/server/wm/Task$Builder;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 HPLcom/android/server/wm/Task$Builder;->build()Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task$Builder;->buildInner()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task$Builder;->setActivityInfo(Landroid/content/pm/ActivityInfo;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setActivityOptions(Landroid/app/ActivityOptions;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setActivityType(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setAffinity(Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setAffinityIntent(Landroid/content/Intent;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setAutoRemoveRecents(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setCallingFeatureId(Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setCallingPackage(Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setCallingUid(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setEffectiveUid(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setIntent(Landroid/content/Intent;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setLastDescription(Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setLastSnapshotData(Landroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setLastTaskDescription(Landroid/app/ActivityManager$TaskDescription;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setLastTimeMoved(J)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setLaunchFlags(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setMinHeight(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setMinWidth(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setNeverRelinquishIdentity(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setNextAffiliateTaskId(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setOnTop(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setOrigActivity(Landroid/content/ComponentName;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setParent(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setPrevAffiliateTaskId(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setRealActivity(Landroid/content/ComponentName;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setRealActivitySuspended(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setResizeMode(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setRootAffinity(Ljava/lang/String;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setRootWasReset(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setSourceTask(Lcom/android/server/wm/Task;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setSupportsPictureInPicture(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setTaskAffiliation(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setTaskId(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setUserId(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setUserSetupComplete(Z)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setVoiceInteractor(Lcom/android/internal/app/IVoiceInteractor;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setVoiceSession(Landroid/service/voice/IVoiceInteractionSession;)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->setWindowingMode(I)Lcom/android/server/wm/Task$Builder;
-PLcom/android/server/wm/Task$Builder;->validateRootTask(Lcom/android/server/wm/TaskDisplayArea;)V
 PLcom/android/server/wm/Task$FindRootHelper;-><init>(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/Task$FindRootHelper;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task$FindRootHelper-IA;)V
-HPLcom/android/server/wm/Task$FindRootHelper;->findRoot(ZZ)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/Task$FindRootHelper;->test(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task$FindRootHelper;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$16T_SxnYaCQXjj5Qiv_85QK8tNM([Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskFragment;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$4zsmVM6sEcyslE_Xq2B45vvi_PE(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;ZLcom/android/server/wm/TaskFragment;)V
-PLcom/android/server/wm/Task;->$r8$lambda$5TiwEo-YMpMik2pDaOLatEjRPl8(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$5kdOuobKsweeXF6gUQF93WfbSkc(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$71YccE_AQP42Bwnq_wvEDeaMask(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskDescription;)Z
-HPLcom/android/server/wm/Task;->$r8$lambda$DbhuUlekQ2cVQp1TiLmGb_W7C-g(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)V
-PLcom/android/server/wm/Task;->$r8$lambda$Hr9sWL6lAgfuIPdEeR0dqxlQnL4(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;[ILcom/android/server/wm/TaskFragment;)V
-PLcom/android/server/wm/Task;->$r8$lambda$MGdkroLlOek4EWRGZFVNRyZtNnY(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$RV6KjZIk2zFL0tBVbRRqDyUNDSM(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->$r8$lambda$Wnyj0mZCQymmNf74WH7X7NQELpQ(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$eRF5AQqEOlK-E-ZFx2bqmj1YY7o(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->$r8$lambda$mZnFDLY4z-d2CM7h_5X1sXJHhI8([ILcom/android/server/wm/Task;)V
-PLcom/android/server/wm/Task;->$r8$lambda$tVpkFMG2_bx-FznGmNjbpYswPyE(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lcom/android/modules/utils/TypedXmlSerializer;)Z
-PLcom/android/server/wm/Task;->-$$Nest$fputmHasBeenVisible(Lcom/android/server/wm/Task;Z)V
-PLcom/android/server/wm/Task;->-$$Nest$maddChild(Lcom/android/server/wm/Task;Lcom/android/server/wm/WindowContainer;IZ)V
+HPLcom/android/server/wm/Task$FindRootHelper;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/Task;-><clinit>()V
-HPLcom/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;ZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;Landroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;IIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ZLandroid/os/IBinder;ZZ)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;ZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;Landroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;IIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ZLandroid/os/IBinder;ZZLcom/android/server/wm/Task-IA;)V
+HPLcom/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;ZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ZLandroid/os/IBinder;ZZ)V
 PLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/WindowContainer;I)V
-PLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/WindowContainer;IZ)V
-PLcom/android/server/wm/Task;->adjustBoundsForDisplayChangeIfNeeded(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/Task;->adjustForMinimalTaskDimensions(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/Task;->asTask()Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/Task;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/Task;->canAffectSystemUiFlags()Z
-PLcom/android/server/wm/Task;->canBeOrganized()Z
-PLcom/android/server/wm/Task;->canReuseAsLeafTask()Z
+PLcom/android/server/wm/Task;->adjustFocusToNextFocusableTask(Ljava/lang/String;ZZ)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/Task;->asTask()Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/Task;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/Task;->canMoveTaskToBack(Lcom/android/server/wm/Task;)Z
 PLcom/android/server/wm/Task;->checkReadyForSleep()V
-HPLcom/android/server/wm/Task;->checkTranslucentActivityWaiting(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->clearRootProcess()V
-PLcom/android/server/wm/Task;->closeRecentsChain()V
-PLcom/android/server/wm/Task;->computeMinUserPosition(II)I
+HPLcom/android/server/wm/Task;->clearTopActivities(Lcom/android/server/wm/ActivityRecord;I[I)Lcom/android/server/wm/ActivityRecord;
 HPLcom/android/server/wm/Task;->cropWindowsToRootTaskBounds()Z
-PLcom/android/server/wm/Task;->dispatchTaskInfoChangedIfNeeded(Z)V
+HPLcom/android/server/wm/Task;->dispatchTaskInfoChangedIfNeeded(Z)V+]Landroid/window/ITaskOrganizer;Landroid/window/ITaskOrganizer$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/Task;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/Task;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/Task;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/Task;->dumpInner(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/wm/Task;->enableEnterPipOnTaskSwitch(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)V
 HPLcom/android/server/wm/Task;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/Task;->executeAppTransition(Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;)V
 PLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;Z)V
-HPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;ZLcom/android/server/wm/TaskDisplayArea;)V
+HPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;ZLcom/android/server/wm/TaskDisplayArea;)V+]Landroid/app/AppCompatTaskInfo;Landroid/app/AppCompatTaskInfo;]Landroid/app/TaskInfo;Landroid/app/ActivityManager$RecentTaskInfo;,Landroid/app/ActivityManager$RunningTaskInfo;,Landroid/app/ActivityTaskManager$RootTaskInfo;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/Task;->findEnterPipOnTaskSwitchCandidate(Lcom/android/server/wm/Task;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Predicate;)Z
-HPLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Consumer;Z)V
-PLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z
+HPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Consumer;megamorphic_types
+HPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda32;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda9;,Lcom/android/server/wm/RootWindowContainer$FindTaskResult;
+HPLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Consumer;Z)V+]Ljava/util/function/Consumer;megamorphic_types
+HPLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z+]Ljava/util/function/Predicate;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;
 PLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Predicate;)Z
+PLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Predicate;)Z
 PLcom/android/server/wm/Task;->fromWindowContainerToken(Landroid/window/WindowContainerToken;)Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/Task;->getAdjacentTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->getAdjustedChildPosition(Lcom/android/server/wm/WindowContainer;I)I
-PLcom/android/server/wm/Task;->getAnimatingActivityRegistry()Lcom/android/server/wm/AnimatingActivityRegistry;
-PLcom/android/server/wm/Task;->getBaseIntent()Landroid/content/Intent;
-HPLcom/android/server/wm/Task;->getBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/Task;->getDescendantTaskCount()I
-HPLcom/android/server/wm/Task;->getDimBounds(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/Task;->getAdjacentTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;
+PLcom/android/server/wm/Task;->getAdjustedChildPosition(ILcom/android/server/wm/WindowContainer;)I
+HPLcom/android/server/wm/Task;->getBaseIntent()Landroid/content/Intent;
+HPLcom/android/server/wm/Task;->getBasePackageName()Ljava/lang/String;+]Landroid/content/Intent;Landroid/content/Intent;
+PLcom/android/server/wm/Task;->getCreatedByOrganizerTask()Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task;->getDisplayCutoutInsets()Landroid/graphics/Rect;
-PLcom/android/server/wm/Task;->getDisplayInfo()Landroid/view/DisplayInfo;
-PLcom/android/server/wm/Task;->getDumpActivitiesLocked(Ljava/lang/String;I)Ljava/util/ArrayList;
-PLcom/android/server/wm/Task;->getHasBeenVisible()Z
-PLcom/android/server/wm/Task;->getLaunchBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/Task;->getName()Ljava/lang/String;
-HPLcom/android/server/wm/Task;->getOrganizedTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->getPictureInPictureParams(Lcom/android/server/wm/ActivityRecord;)Landroid/app/PictureInPictureParams;
-HPLcom/android/server/wm/Task;->getRelativePosition()Landroid/graphics/Point;
-PLcom/android/server/wm/Task;->getRootActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->getRootActivity(Z)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->getRootActivity(ZZ)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/Task;->getRootTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->getRootTaskId()I
-PLcom/android/server/wm/Task;->getStartingWindowInfo(Lcom/android/server/wm/ActivityRecord;)Landroid/window/StartingWindowInfo;
-PLcom/android/server/wm/Task;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->getTaskDescription()Landroid/app/ActivityManager$TaskDescription;
+PLcom/android/server/wm/Task;->getDumpActivitiesLocked(ILjava/lang/String;)Ljava/util/ArrayList;
+HPLcom/android/server/wm/Task;->getName()Ljava/lang/String;
+PLcom/android/server/wm/Task;->getNextFocusableTask(Z)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/Task;->getOrganizedTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+PLcom/android/server/wm/Task;->getProtoFieldId()J
+HPLcom/android/server/wm/Task;->getRootActivity(ZZ)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/Task;->getRootTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;+]Ljava/util/function/Predicate;megamorphic_types
+HPLcom/android/server/wm/Task;->getStartingWindowInfo(Lcom/android/server/wm/ActivityRecord;)Landroid/window/StartingWindowInfo;
+HPLcom/android/server/wm/Task;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;+]Ljava/util/function/Predicate;Lcom/android/internal/util/function/pooled/PooledLambdaImpl;,Lcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda6;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda14;,Lcom/android/server/wm/utils/AlwaysTruePredicate;
 PLcom/android/server/wm/Task;->getTaskInfo()Landroid/app/ActivityManager$RunningTaskInfo;
-PLcom/android/server/wm/Task;->getTopFullscreenActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/Task;->getTopLeafTask()Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/Task;->getTopPausingActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/Task;->getTopResumedActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->getTopVisibleActivity()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/Task;->getTopLeafTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Task;->getTopPausingActivity()Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Task;->getTopResumedActivity()Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/Task;->getTopVisibleAppMainWindow()Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/Task;->goToSleepIfPossible(Z)Z
 PLcom/android/server/wm/Task;->handlesOrientationChangeFromDescendant(I)Z
-HPLcom/android/server/wm/Task;->hasVisibleChildren()Z
-PLcom/android/server/wm/Task;->isAlwaysOnTop()Z
+HPLcom/android/server/wm/Task;->isAlwaysOnTop()Z
 PLcom/android/server/wm/Task;->isCompatible(II)Z
-PLcom/android/server/wm/Task;->isDragResizing()Z
-HPLcom/android/server/wm/Task;->isFocused()Z
-PLcom/android/server/wm/Task;->isForceHiddenForPinnedTask()Z
-PLcom/android/server/wm/Task;->isInTask(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/Task;->isLeafTask()Z
+PLcom/android/server/wm/Task;->isFocusedRootTaskOnDisplay()Z
+HPLcom/android/server/wm/Task;->isLeafTask()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/Task;->isOrganized()Z
 HPLcom/android/server/wm/Task;->isResizeable()Z
-HPLcom/android/server/wm/Task;->isResizeable(Z)Z
 HPLcom/android/server/wm/Task;->isRootTask()Z
-PLcom/android/server/wm/Task;->isTaskId(I)Z
 PLcom/android/server/wm/Task;->isTopRootTaskInDisplayArea()Z
-PLcom/android/server/wm/Task;->isTopRunningNonDelayed(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/Task;->lambda$ensureActivitiesVisible$19(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)V
-PLcom/android/server/wm/Task;->lambda$findEnterPipOnTaskSwitchCandidate$22([Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskFragment;)Z
-PLcom/android/server/wm/Task;->lambda$getDescendantTaskCount$5([ILcom/android/server/wm/Task;)V
-PLcom/android/server/wm/Task;->lambda$getDumpActivitiesLocked$29(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->lambda$getTopFullscreenActivity$9(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->lambda$getTopVisibleActivity$10(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->lambda$pauseActivityIfNeeded$0(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;[ILcom/android/server/wm/TaskFragment;)V
-PLcom/android/server/wm/Task;->lambda$resumeTopActivityInnerLocked$20(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;ZLcom/android/server/wm/TaskFragment;)V
-PLcom/android/server/wm/Task;->lambda$startActivityLocked$21(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->lambda$topStartingWindow$1(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/Task;->lockTaskAuthToString()Ljava/lang/String;
 PLcom/android/server/wm/Task;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/Task;->minimalResumeActivityLocked(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->moveToFront(Ljava/lang/String;)V
-PLcom/android/server/wm/Task;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/Task;->migrateToNewSurfaceControl(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Task;->moveTaskFragmentsToBottomIfNeeded(Lcom/android/server/wm/ActivityRecord;[I)V
+PLcom/android/server/wm/Task;->moveTaskToBack(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/Task;->moveTaskToBackInner(Lcom/android/server/wm/Task;Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/Task;->moveTaskToFront(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;ZLjava/lang/String;)V
+PLcom/android/server/wm/Task;->moveToBack(Ljava/lang/String;Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/Task;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/Task;->notifyActivityDrawnLocked(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->onAppFocusChanged(Z)V
+HPLcom/android/server/wm/Task;->onAppFocusChanged(Z)V
 PLcom/android/server/wm/Task;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/Task;->onChildVisibleRequestedChanged(Lcom/android/server/wm/WindowContainer;)Z
 HPLcom/android/server/wm/Task;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HPLcom/android/server/wm/Task;->onConfigurationChangedInner(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/Task;->onDescendantActivityAdded(ZILcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->onDescendantOrientationChanged(Lcom/android/server/wm/WindowContainer;)Z
 HPLcom/android/server/wm/Task;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/Task;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/Task;->pauseActivityIfNeeded(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)Z
+PLcom/android/server/wm/Task;->onResize()V
+PLcom/android/server/wm/Task;->onTaskBoundsChangedForFreeform()V
+PLcom/android/server/wm/Task;->onlyHasTaskOverlayActivities(Z)Z
+HPLcom/android/server/wm/Task;->pauseActivityIfNeeded(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)Z
+PLcom/android/server/wm/Task;->performClearTop(Lcom/android/server/wm/ActivityRecord;I[I)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/Task;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-PLcom/android/server/wm/Task;->positionChildAtTop(Lcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/Task;->prepareSurfaces()V
-PLcom/android/server/wm/Task;->removeLaunchTickMessages()V
-PLcom/android/server/wm/Task;->removedFromRecents()V
-HPLcom/android/server/wm/Task;->resolveLeafTaskOnlyOverrideConfigs(Landroid/content/res/Configuration;Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/Task;->restoreFromXml(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wm/ActivityTaskSupervisor;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->resumeTopActivityInnerLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)Z
-PLcom/android/server/wm/Task;->resumeTopActivityUncheckedLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
+HPLcom/android/server/wm/Task;->prepareSurfaces()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/Task;->removeActivities(Ljava/lang/String;Z)V
+PLcom/android/server/wm/Task;->removeChild(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/Task;->removeChild(Lcom/android/server/wm/WindowContainer;Ljava/lang/String;)V
+PLcom/android/server/wm/Task;->removeIfPossible(Ljava/lang/String;)V
+PLcom/android/server/wm/Task;->removeImmediately(Ljava/lang/String;)V
+PLcom/android/server/wm/Task;->resetTaskIfNeeded(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/Task;->restoreFromXml(Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/server/wm/ActivityTaskSupervisor;)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/Task;->resumeTopActivityInnerLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)Z
 HPLcom/android/server/wm/Task;->resumeTopActivityUncheckedLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)Z
 PLcom/android/server/wm/Task;->returnsToHomeRootTask()Z
-PLcom/android/server/wm/Task;->reuseAsLeafTask(Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;->reuseOrCreateTask(Landroid/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/Task;->saveActivityToXml(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lcom/android/modules/utils/TypedXmlSerializer;)Z
-PLcom/android/server/wm/Task;->saveLaunchingStateIfNeeded()V
+HPLcom/android/server/wm/Task;->reuseOrCreateTask(Landroid/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/Task;->saveLaunchingStateIfNeeded(Lcom/android/server/wm/DisplayContent;)V
-HPLcom/android/server/wm/Task;->saveToXml(Lcom/android/modules/utils/TypedXmlSerializer;)V
-PLcom/android/server/wm/Task;->sendTaskAppeared()V
-PLcom/android/server/wm/Task;->sendTaskFragmentParentInfoChangedIfNeeded()V
-PLcom/android/server/wm/Task;->sendTaskVanished(Landroid/window/ITaskOrganizer;)V
+HPLcom/android/server/wm/Task;->sendTaskAppeared()V
+HPLcom/android/server/wm/Task;->sendTaskFragmentParentInfoChangedIfNeeded()V
 PLcom/android/server/wm/Task;->setBounds(Landroid/graphics/Rect;)I
-PLcom/android/server/wm/Task;->setBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)I
 PLcom/android/server/wm/Task;->setBoundsUnchecked(Landroid/graphics/Rect;)I
 PLcom/android/server/wm/Task;->setDeferTaskAppear(Z)V
-PLcom/android/server/wm/Task;->setHasBeenVisible(Z)V
+PLcom/android/server/wm/Task;->setForceHidden(IZ)Z
+PLcom/android/server/wm/Task;->setHasBeenVisible()V
 PLcom/android/server/wm/Task;->setInitialSurfaceControlProperties(Landroid/view/SurfaceControl$Builder;)V
 HPLcom/android/server/wm/Task;->setIntent(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
-PLcom/android/server/wm/Task;->setIntent(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->setIntent(Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
-PLcom/android/server/wm/Task;->setLastNonFullscreenBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/Task;->setLockTaskAuth(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->setMinDimensions(Landroid/content/pm/ActivityInfo;)V
+HPLcom/android/server/wm/Task;->setLockTaskAuth(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/Task;->setNextAffiliate(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/Task;->setPrevAffiliate(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/Task;->setRootProcess(Lcom/android/server/wm/WindowProcessController;)V
 PLcom/android/server/wm/Task;->setSurfaceControl(Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/Task;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
-HPLcom/android/server/wm/Task;->setTaskDescriptionFromActivityAboveRoot(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskDescription;)Z
 PLcom/android/server/wm/Task;->setTaskOrganizer(Landroid/window/ITaskOrganizer;)Z
 PLcom/android/server/wm/Task;->setTaskOrganizer(Landroid/window/ITaskOrganizer;Z)Z
-HPLcom/android/server/wm/Task;->shouldIgnoreInput()Z
-HPLcom/android/server/wm/Task;->shouldSleepActivities()Z
-PLcom/android/server/wm/Task;->shouldStartChangeTransition(ILandroid/graphics/Rect;)Z
-PLcom/android/server/wm/Task;->showForAllUsers()Z
 PLcom/android/server/wm/Task;->showSurfaceOnCreation()Z
 PLcom/android/server/wm/Task;->showToCurrentUser()Z
-PLcom/android/server/wm/Task;->startActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->taskAppearedReady()Z
-PLcom/android/server/wm/Task;->toString()Ljava/lang/String;
-PLcom/android/server/wm/Task;->topActivityContainsStartingWindow()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/Task;->startActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/Task;->toFullString()Ljava/lang/String;
+HPLcom/android/server/wm/Task;->toString()Ljava/lang/String;
 PLcom/android/server/wm/Task;->topRunningActivityLocked()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->topRunningNonDelayedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->topStartingWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/Task;->touchActiveTime()V
+HPLcom/android/server/wm/Task;->topRunningNonDelayedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/Task;->updateAllowForceResizeOverride()V
 PLcom/android/server/wm/Task;->updateEffectiveIntent()V
-PLcom/android/server/wm/Task;->updateOverrideConfigurationFromLaunchBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/Task;->updateSurfaceBounds()V
-PLcom/android/server/wm/Task;->updateSurfaceSize(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Task;->updateOverlayInsetsState(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/Task;->updateOverrideConfigurationFromLaunchBounds()V
+HPLcom/android/server/wm/Task;->updateSurfaceSize(Landroid/view/SurfaceControl$Transaction;)V+]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
 HPLcom/android/server/wm/Task;->updateTaskDescription()V
-PLcom/android/server/wm/Task;->updateTaskMovement(ZZI)V
-PLcom/android/server/wm/Task;->updateTaskOrganizerState()Z
+HPLcom/android/server/wm/Task;->updateTaskMovement(IZZ)V
 PLcom/android/server/wm/Task;->updateTaskOrganizerState(Z)Z
-PLcom/android/server/wm/Task;->warnForNonLeafTask(Ljava/lang/String;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda10;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda11;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda11;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda12;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda12;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda13;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda14;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda15;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda16;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda17;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda18;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda18;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda19;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda19;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda1;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda20;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda21;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda22;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda23;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda24;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda2;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda3;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda4;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda5;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda6;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda7;-><init>()V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda8;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda8;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda9;-><init>()V
-PLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda9;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/Task;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V+]Landroid/app/ITaskStackListener;Landroid/app/ITaskStackListener$Stub$Proxy;,Lcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;
 HSPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;-><init>(Lcom/android/server/wm/TaskChangeNotificationController;Landroid/os/Looper;)V
-HPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$4eLcfeE5EsykOVynmzu3fgpLtiE(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$JFI_F_hpE-kLZOK3Tx2KyHgWbCk(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$NW5zZAkpJyS6Ig7DBkUclrq7o6E(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$UIO9IjTxPd3zzG6wdFibHMsY7g4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$XnL-keZKaVwst4Q0DM1DZhp59bY(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$ah1JsV-rMqKWq8lKZtNZ807zrV4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->$r8$lambda$qoDZrtY2jOJf4Ahc6jYayChKO5Q(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskCreated(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskDescriptionChanged(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskDisplayChanged(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskFocusChanged(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskListUpdated(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskMovedToFront(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$fgetmNotifyTaskStackChanged(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$mforAllRemoteListeners(Lcom/android/server/wm/TaskChangeNotificationController;Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
+HPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/window/TaskSnapshot;Landroid/window/TaskSnapshot;
+HPLcom/android/server/wm/TaskChangeNotificationController;->-$$Nest$mforAllRemoteListeners(Lcom/android/server/wm/TaskChangeNotificationController;Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;Landroid/os/Message;)V+]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList;
 HSPLcom/android/server/wm/TaskChangeNotificationController;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/os/Handler;)V
-HPLcom/android/server/wm/TaskChangeNotificationController;->forAllLocalListeners(Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
-HPLcom/android/server/wm/TaskChangeNotificationController;->forAllRemoteListeners(Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$0(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$1(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$17(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$18(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$20(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$3(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskCreated(ILandroid/content/ComponentName;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskDescriptionChanged(Landroid/app/TaskInfo;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskDisplayChanged(II)V
-PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskFocusChanged(IZ)V
+HPLcom/android/server/wm/TaskChangeNotificationController;->forAllLocalListeners(Lcom/android/server/wm/TaskChangeNotificationController$$ExternalSyntheticLambda0;Landroid/os/Message;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskListUpdated()V
-PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskMovedToFront(Landroid/app/TaskInfo;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskStackChanged()V
-PLcom/android/server/wm/TaskChangeNotificationController;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
-HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda0;-><init>(II)V
+HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskStackChanged()V
+PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda0;-><init>(II)V
 HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/TaskDisplayArea;I)V
+PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda2;-><init>(ILcom/android/server/wm/TaskDisplayArea;)V
 PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/ActivityRecord;[I)V
-PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda5;-><init>()V
-PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$-yYfdy_akJG5D9nqec8kHkxQAJQ(Lcom/android/server/wm/TaskDisplayArea;ILcom/android/server/wm/TaskDisplayArea;Ljava/lang/Integer;)Ljava/lang/Integer;
-PLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$6sIz9TvyA24gS3CFAzKz-0ley5A(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$UO54rDaQ1J_Js1LvzH8layvsInU(IILcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$udumU_p2qVGWQKVeQAzWyl3Pn00(Lcom/android/server/wm/ActivityRecord;[ILcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$yqAwegtF8wTOFBeiZ1NP5uEzU-c(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskDisplayArea;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;I)V
-PLcom/android/server/wm/TaskDisplayArea;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;IZZ)V
+HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/TaskDisplayArea;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;IZ)V
 PLcom/android/server/wm/TaskDisplayArea;->addChild(Lcom/android/server/wm/WindowContainer;I)V
-PLcom/android/server/wm/TaskDisplayArea;->addChildTask(Lcom/android/server/wm/Task;I)V
 PLcom/android/server/wm/TaskDisplayArea;->addRootTaskReferenceIfNeeded(Lcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/TaskDisplayArea;->adjustRootTaskLayer(Landroid/view/SurfaceControl$Transaction;Ljava/util/ArrayList;I)I
-HPLcom/android/server/wm/TaskDisplayArea;->allResumedActivitiesComplete()Z
-HPLcom/android/server/wm/TaskDisplayArea;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/TaskDisplayArea;->assignRootTaskOrdering(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/TaskDisplayArea;->adjustRootTaskLayer(Landroid/view/SurfaceControl$Transaction;Ljava/util/ArrayList;I)I+]Landroid/util/IntArray;Landroid/util/IntArray;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TaskDisplayArea;->allResumedActivitiesComplete()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/TaskDisplayArea;->asTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/TaskDisplayArea;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/TaskDisplayArea;->canCreateRemoteAnimationTarget()Z
 PLcom/android/server/wm/TaskDisplayArea;->canHostHomeTask()Z
-HPLcom/android/server/wm/TaskDisplayArea;->canSpecifyOrientation(I)Z
-PLcom/android/server/wm/TaskDisplayArea;->createRootTask(IIZ)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskDisplayArea;->createRootTask(IIZLandroid/app/ActivityOptions;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskDisplayArea;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/TaskDisplayArea;->findMaxPositionForRootTask(Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/TaskDisplayArea;->findMinPositionForRootTask(Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/TaskDisplayArea;->findPositionForRootTask(ILcom/android/server/wm/Task;Z)I
+PLcom/android/server/wm/TaskDisplayArea;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/TaskDisplayArea;->findPositionForRootTask(ILcom/android/server/wm/Task;Z)I
 PLcom/android/server/wm/TaskDisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Consumer;Z)V
 PLcom/android/server/wm/TaskDisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Predicate;Z)Z
-PLcom/android/server/wm/TaskDisplayArea;->getDisplayId()I
 PLcom/android/server/wm/TaskDisplayArea;->getFocusedActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/TaskDisplayArea;->getFocusedRootTask()Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/TaskDisplayArea;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;
-PLcom/android/server/wm/TaskDisplayArea;->getLastFocusedRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskDisplayArea;->getLaunchRootTask(IILandroid/app/ActivityOptions;Lcom/android/server/wm/Task;I)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskDisplayArea;->getFocusedRootTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/TaskDisplayArea;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;
 PLcom/android/server/wm/TaskDisplayArea;->getLaunchRootTask(IILandroid/app/ActivityOptions;Lcom/android/server/wm/Task;ILcom/android/server/wm/Task;)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/TaskDisplayArea;->getLaunchRootTaskDef(Lcom/android/server/wm/Task;)Lcom/android/server/wm/TaskDisplayArea$LaunchRootTaskDef;
 PLcom/android/server/wm/TaskDisplayArea;->getNextRootTaskId()I
 PLcom/android/server/wm/TaskDisplayArea;->getOrCreateRootHomeTask(Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskDisplayArea;->getOrCreateRootTask(IIZLcom/android/server/wm/Task;Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;I)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskDisplayArea;->getOrCreateRootTask(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;Lcom/android/server/wm/LaunchParamsController$LaunchParams;IIZ)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskDisplayArea;->getOrCreateRootTask(IIZLcom/android/server/wm/Task;Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;I)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/TaskDisplayArea;->getOrientation(I)I
-PLcom/android/server/wm/TaskDisplayArea;->getPriority(Lcom/android/server/wm/WindowContainer;)I
-PLcom/android/server/wm/TaskDisplayArea;->getRootHomeTask()Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskDisplayArea;->getPriority(Lcom/android/server/wm/WindowContainer;)I
 HPLcom/android/server/wm/TaskDisplayArea;->getRootTask(II)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/TaskDisplayArea;->getRootTaskAbove(Lcom/android/server/wm/Task;)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/TaskDisplayArea;->getTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
 PLcom/android/server/wm/TaskDisplayArea;->getTopRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskDisplayArea;->getTopRootTaskInWindowingMode(I)Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/TaskDisplayArea;->isRemoved()Z
-PLcom/android/server/wm/TaskDisplayArea;->isRootTaskVisible(I)Z
-PLcom/android/server/wm/TaskDisplayArea;->isTopRootTask(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/TaskDisplayArea;->isTaskDisplayArea()Z
 PLcom/android/server/wm/TaskDisplayArea;->isValidWindowingMode(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)Z
 PLcom/android/server/wm/TaskDisplayArea;->isWindowingModeSupported(IZZZ)Z
-PLcom/android/server/wm/TaskDisplayArea;->lambda$ensureActivitiesVisible$8(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskDisplayArea;->lambda$getOrientation$3(ILcom/android/server/wm/TaskDisplayArea;Ljava/lang/Integer;)Ljava/lang/Integer;
-HPLcom/android/server/wm/TaskDisplayArea;->lambda$getRootTask$0(IILcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/TaskDisplayArea;->lambda$getTopRootTask$1(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/TaskDisplayArea;->lambda$pauseBackTasks$5(Lcom/android/server/wm/ActivityRecord;[ILcom/android/server/wm/Task;)V
 PLcom/android/server/wm/TaskDisplayArea;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/TaskDisplayArea;->onLeafTaskMoved(Lcom/android/server/wm/Task;ZZ)V
-PLcom/android/server/wm/TaskDisplayArea;->onRootTaskOrderChanged(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskDisplayArea;->onRootTaskWindowingModeChanged(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskDisplayArea;->pauseBackTasks(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskDisplayArea;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-HPLcom/android/server/wm/TaskDisplayArea;->positionChildTaskAt(ILcom/android/server/wm/Task;Z)V
+HPLcom/android/server/wm/TaskDisplayArea;->onTaskMoved(Lcom/android/server/wm/Task;ZZ)V
+HPLcom/android/server/wm/TaskDisplayArea;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
 PLcom/android/server/wm/TaskDisplayArea;->reduceOnAllTaskDisplayAreas(Ljava/util/function/BiFunction;Ljava/lang/Object;Z)Ljava/lang/Object;
-PLcom/android/server/wm/TaskDisplayArea;->removeRootTaskReferenceIfNeeded(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/TaskDisplayArea;->removeChild(Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/TaskDisplayArea;->setInitialSurfaceControlProperties(Landroid/view/SurfaceControl$Builder;)V
 PLcom/android/server/wm/TaskDisplayArea;->setWindowingMode(I)V
-PLcom/android/server/wm/TaskDisplayArea;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/TaskDisplayArea;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/TaskDisplayArea;->updateLastFocusedRootTask(Lcom/android/server/wm/Task;Ljava/lang/String;)V
-PLcom/android/server/wm/TaskDisplayArea;->validateWindowingMode(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/TaskFpsCallbackController;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda2;-><init>()V
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda3;-><init>()V
-HPLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda5;-><init>()V
-PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/TaskFragment;->$r8$lambda$LfH9JXdblx4yrdmd8r4hGTdO21s(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/TaskFragment;->$r8$lambda$cCOreq8AkspWCLOBq9Dd3lEozFQ(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskFragment;->$r8$lambda$r5eGjEkD1wu6Ga_1VPus8wI2pTM(Lcom/android/server/wm/TaskFragment;)V
-PLcom/android/server/wm/TaskFragment;->$r8$lambda$um2HAmqSIS709S6Ch2gyOMoXFPA(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/TaskDisplayArea;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/TaskDisplayArea;->updateLastFocusedRootTask(Ljava/lang/String;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/TaskFpsCallbackController;-><init>()V
+PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/TaskFragment;Ljava/io/PrintWriter;Lcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda14;Ljava/lang/String;ZLjava/lang/String;)V
+PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda14;->run()V
+PLcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/TaskFragment;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/IBinder;ZZ)V
-PLcom/android/server/wm/TaskFragment;->addChild(Lcom/android/server/wm/WindowContainer;I)V
-PLcom/android/server/wm/TaskFragment;->asTaskFragment()Lcom/android/server/wm/TaskFragment;
-HPLcom/android/server/wm/TaskFragment;->calculateInsetFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayInfo;)V
+HPLcom/android/server/wm/TaskFragment;->addChild(Lcom/android/server/wm/WindowContainer;I)V
+HPLcom/android/server/wm/TaskFragment;->asTaskFragment()Lcom/android/server/wm/TaskFragment;
+HPLcom/android/server/wm/TaskFragment;->calculateInsetFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayInfo;Z)V
 HPLcom/android/server/wm/TaskFragment;->canBeResumed(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/TaskFragment;->canCreateRemoteAnimationTarget()Z
-PLcom/android/server/wm/TaskFragment;->canSpecifyOrientation()Z
 PLcom/android/server/wm/TaskFragment;->canStartChangeTransition()Z
+PLcom/android/server/wm/TaskFragment;->cleanUpActivityReferences(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/TaskFragment;->clearLastPausedActivity()V
-PLcom/android/server/wm/TaskFragment;->completePause(ZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/TaskFragment;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
-HPLcom/android/server/wm/TaskFragment;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/view/DisplayInfo;Lcom/android/server/wm/ActivityRecord$CompatDisplayInsets;)V
-HPLcom/android/server/wm/TaskFragment;->fillsParent()Z
-HPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Predicate;)Z
+HPLcom/android/server/wm/TaskFragment;->completePause(ZLcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/TaskFragment;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;Lcom/android/server/wm/TaskFragment$ConfigOverrideHint;)V
+PLcom/android/server/wm/TaskFragment;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/TaskFragment;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZZLjava/lang/String;Lcom/android/server/wm/TaskFragment$$ExternalSyntheticLambda14;)Z
+PLcom/android/server/wm/TaskFragment;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/TaskFragment;->dumpInner(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/TaskFragment;->fillsParent()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Consumer;Lcom/android/server/wm/Task$$ExternalSyntheticLambda13;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda37;
+HPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Lcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda3;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda51;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda12;
 PLcom/android/server/wm/TaskFragment;->forAllTaskFragments(Ljava/util/function/Consumer;Z)V
-PLcom/android/server/wm/TaskFragment;->fromTaskFragmentToken(Landroid/os/IBinder;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/TaskFragment;
-HPLcom/android/server/wm/TaskFragment;->getActivityType()I
-HPLcom/android/server/wm/TaskFragment;->getAdjacentTaskFragment()Lcom/android/server/wm/TaskFragment;
+HPLcom/android/server/wm/TaskFragment;->getActivityType()I+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->getDimBounds(Landroid/graphics/Rect;)V+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/TaskFragment;->getDisplayArea()Lcom/android/server/wm/DisplayArea;
 HPLcom/android/server/wm/TaskFragment;->getDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
-HPLcom/android/server/wm/TaskFragment;->getDisplayId()I
-PLcom/android/server/wm/TaskFragment;->getFragmentToken()Landroid/os/IBinder;
-HPLcom/android/server/wm/TaskFragment;->getOrganizedTaskFragment()Lcom/android/server/wm/TaskFragment;
-PLcom/android/server/wm/TaskFragment;->getOrganizerProcessIfDifferent(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/WindowProcessController;
-HPLcom/android/server/wm/TaskFragment;->getOrientation(I)I
-PLcom/android/server/wm/TaskFragment;->getPausingActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/TaskFragment;->getResumedActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/TaskFragment;->getRootTask()Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/TaskFragment;->getRootTaskFragment()Lcom/android/server/wm/TaskFragment;
-PLcom/android/server/wm/TaskFragment;->getTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskFragment;->getTaskFragment(Ljava/util/function/Predicate;)Lcom/android/server/wm/TaskFragment;
-HPLcom/android/server/wm/TaskFragment;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/TaskFragment;->getTopNonFinishingActivity(Z)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/TaskFragment;->getVisibility(Lcom/android/server/wm/ActivityRecord;)I
-HPLcom/android/server/wm/TaskFragment;->handleCompleteDeferredRemoval()Z
-PLcom/android/server/wm/TaskFragment;->hasDirectChildActivities()Z
-HPLcom/android/server/wm/TaskFragment;->hasRunningActivity(Lcom/android/server/wm/WindowContainer;)Z
+PLcom/android/server/wm/TaskFragment;->getDisplayId()I
+HPLcom/android/server/wm/TaskFragment;->getOrganizedTaskFragment()Lcom/android/server/wm/TaskFragment;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/TaskFragment;->getOrganizerProcessIfDifferent(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/WindowProcessController;
+HPLcom/android/server/wm/TaskFragment;->getOrientation(I)I+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->getOverrideOrientation()I
+HPLcom/android/server/wm/TaskFragment;->getRootTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->getRootTaskFragment()Lcom/android/server/wm/TaskFragment;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/TaskFragment;->getTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->getTaskFragment(Ljava/util/function/Predicate;)Lcom/android/server/wm/TaskFragment;+]Ljava/util/function/Predicate;Lcom/android/server/wm/Task$$ExternalSyntheticLambda0;
+HPLcom/android/server/wm/TaskFragment;->getTopNonFinishingActivity(ZZ)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->getVisibility(Lcom/android/server/wm/ActivityRecord;)I+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TaskFragment;->handleCompleteDeferredRemoval()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/TaskFragment;->intersectWithInsetsIfFits(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/TaskFragment;->isAttached()Z
-HPLcom/android/server/wm/TaskFragment;->isEmbedded()Z
 HPLcom/android/server/wm/TaskFragment;->isFocusableAndVisible()Z
 HPLcom/android/server/wm/TaskFragment;->isForceHidden()Z
-HPLcom/android/server/wm/TaskFragment;->isForceTranslucent()Z
-PLcom/android/server/wm/TaskFragment;->isLeafTaskFragment()Z
+HPLcom/android/server/wm/TaskFragment;->isLeafTaskFragment()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/TaskFragment;->isOrganizedTaskFragment()Z
 PLcom/android/server/wm/TaskFragment;->isReadyToTransit()Z
 PLcom/android/server/wm/TaskFragment;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
-HPLcom/android/server/wm/TaskFragment;->isTopActivityFocusable()Z
-HPLcom/android/server/wm/TaskFragment;->isTopActivityLaunchedBehind()Z
-HPLcom/android/server/wm/TaskFragment;->isTranslucent(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/TaskFragment;->isTranslucent(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskFragment;->isTranslucentForTransition()Z
-PLcom/android/server/wm/TaskFragment;->lambda$clearLastPausedActivity$8(Lcom/android/server/wm/TaskFragment;)V
-HPLcom/android/server/wm/TaskFragment;->lambda$getTopNonFinishingActivity$2(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskFragment;->lambda$getTopNonFinishingActivity$3(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskFragment;->lambda$topRunningActivity$4(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskFragment;->onActivityStateChanged(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord$State;Ljava/lang/String;)V
+HPLcom/android/server/wm/TaskFragment;->isTopActivityFocusable()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->isTranslucent(Lcom/android/server/wm/ActivityRecord;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->isTranslucentAndVisible()Z
+HPLcom/android/server/wm/TaskFragment;->isTranslucentForTransition()Z
+PLcom/android/server/wm/TaskFragment;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/TaskFragment;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/TaskFragment;->onChildVisibleRequestedChanged(Lcom/android/server/wm/WindowContainer;)Z
 PLcom/android/server/wm/TaskFragment;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HPLcom/android/server/wm/TaskFragment;->prepareSurfaces()V
-PLcom/android/server/wm/TaskFragment;->providesOrientation()Z
+HPLcom/android/server/wm/TaskFragment;->prepareSurfaces()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/TaskFragment;->providesOrientation()Z
+PLcom/android/server/wm/TaskFragment;->removeChild(Lcom/android/server/wm/WindowContainer;Z)V
+PLcom/android/server/wm/TaskFragment;->removeImmediately()V
+PLcom/android/server/wm/TaskFragment;->resetAdjacentTaskFragment()V
 HPLcom/android/server/wm/TaskFragment;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
 HPLcom/android/server/wm/TaskFragment;->resumeTopActivity(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)Z
-PLcom/android/server/wm/TaskFragment;->schedulePauseActivity(Lcom/android/server/wm/ActivityRecord;ZZZLjava/lang/String;)V
+HPLcom/android/server/wm/TaskFragment;->schedulePauseActivity(Lcom/android/server/wm/ActivityRecord;ZZZLjava/lang/String;)V
 PLcom/android/server/wm/TaskFragment;->sendTaskFragmentInfoChanged()V
-PLcom/android/server/wm/TaskFragment;->setClosingChangingStartBoundsIfNeeded()Z
-PLcom/android/server/wm/TaskFragment;->setResumedActivity(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)V
+PLcom/android/server/wm/TaskFragment;->setForceHidden(IZ)Z
+HPLcom/android/server/wm/TaskFragment;->setResumedActivity(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)V
 PLcom/android/server/wm/TaskFragment;->setSurfaceControl(Landroid/view/SurfaceControl;)V
-HPLcom/android/server/wm/TaskFragment;->shouldBeVisible(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/TaskFragment;->shouldDeferRemoval()Z
-PLcom/android/server/wm/TaskFragment;->shouldReportOrientationUnspecified()Z
+PLcom/android/server/wm/TaskFragment;->shouldBeVisible(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/TaskFragment;->shouldRemoveSelfOnLastChildRemoval()Z
+HPLcom/android/server/wm/TaskFragment;->shouldSleepActivities()Z
 PLcom/android/server/wm/TaskFragment;->shouldSleepOrShutDownActivities()Z
-PLcom/android/server/wm/TaskFragment;->startPausing(ZLcom/android/server/wm/ActivityRecord;Ljava/lang/String;)Z
-PLcom/android/server/wm/TaskFragment;->startPausing(ZZLcom/android/server/wm/ActivityRecord;Ljava/lang/String;)Z
+HPLcom/android/server/wm/TaskFragment;->startPausing(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;ZZ)Z
 PLcom/android/server/wm/TaskFragment;->supportsMultiWindow()Z
 HPLcom/android/server/wm/TaskFragment;->supportsMultiWindowInDisplayArea(Lcom/android/server/wm/TaskDisplayArea;)Z
-HPLcom/android/server/wm/TaskFragment;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/TaskFragment;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/TaskFragment;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/TaskFragment;->updateActivityVisibilities(Lcom/android/server/wm/ActivityRecord;Z)V
 PLcom/android/server/wm/TaskFragment;->updateOrganizedTaskFragmentSurface()V
-PLcom/android/server/wm/TaskFragment;->warnForNonLeafTaskFragment(Ljava/lang/String;)V
 HSPLcom/android/server/wm/TaskFragmentOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowOrganizerController;)V
-HPLcom/android/server/wm/TaskFragmentOrganizerController;->dispatchPendingEvents()V
 PLcom/android/server/wm/TaskLaunchParamsModifier$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/TaskLaunchParamsModifier;II)V
 PLcom/android/server/wm/TaskLaunchParamsModifier$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/TaskLaunchParamsModifier$$ExternalSyntheticLambda2;-><init>(Ljava/util/List;)V
 PLcom/android/server/wm/TaskLaunchParamsModifier$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->$r8$lambda$TjxGreTpw9xhmmPZAU-spdevuA4(Ljava/util/List;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->$r8$lambda$cOwEsqAlVxZJC8Bgaj_hUt2vkL8(Lcom/android/server/wm/TaskLaunchParamsModifier;IILcom/android/server/wm/TaskDisplayArea;)Z
 HSPLcom/android/server/wm/TaskLaunchParamsModifier;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;)V
 PLcom/android/server/wm/TaskLaunchParamsModifier;->adjustBoundsToAvoidConflict(Landroid/graphics/Rect;Ljava/util/List;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->adjustBoundsToAvoidConflictInDisplayArea(Lcom/android/server/wm/TaskDisplayArea;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->adjustBoundsToFitInDisplayArea(Lcom/android/server/wm/TaskDisplayArea;Landroid/content/pm/ActivityInfo$WindowLayout;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->appendLog(Ljava/lang/String;)V
+HPLcom/android/server/wm/TaskLaunchParamsModifier;->adjustBoundsToFitInDisplayArea(Lcom/android/server/wm/TaskDisplayArea;Landroid/content/pm/ActivityInfo$WindowLayout;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/TaskLaunchParamsModifier;->boundsConflict(Ljava/util/List;Landroid/graphics/Rect;)Z
-HPLcom/android/server/wm/TaskLaunchParamsModifier;->calculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityStarter$Request;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
-PLcom/android/server/wm/TaskLaunchParamsModifier;->canApplyFreeformWindowPolicy(Lcom/android/server/wm/TaskDisplayArea;I)Z
-PLcom/android/server/wm/TaskLaunchParamsModifier;->canCalculateBoundsForFullscreenTask(Lcom/android/server/wm/TaskDisplayArea;I)Z
-PLcom/android/server/wm/TaskLaunchParamsModifier;->canInheritWindowingModeFromSource(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskLaunchParamsModifier;->getFallbackDisplayAreaForActivity(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStarter$Request;)Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/TaskLaunchParamsModifier;->getPreferredLaunchTaskDisplayArea(Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStarter$Request;)Lcom/android/server/wm/TaskDisplayArea;
 HPLcom/android/server/wm/TaskLaunchParamsModifier;->getTaskBounds(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskDisplayArea;Landroid/content/pm/ActivityInfo$WindowLayout;IZLandroid/graphics/Rect;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->initLogBuilder(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->lambda$adjustBoundsToAvoidConflictInDisplayArea$2(Ljava/util/List;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->lambda$calculate$0(IILcom/android/server/wm/TaskDisplayArea;)Z
-PLcom/android/server/wm/TaskLaunchParamsModifier;->onCalculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityStarter$Request;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
-PLcom/android/server/wm/TaskLaunchParamsModifier;->outputLog()V
-PLcom/android/server/wm/TaskLaunchParamsModifier;->resolveOrientation(Lcom/android/server/wm/ActivityRecord;)I
+HPLcom/android/server/wm/TaskLaunchParamsModifier;->onCalculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityStarter$Request;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
 PLcom/android/server/wm/TaskLaunchParamsModifier;->resolveOrientation(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskDisplayArea;Landroid/graphics/Rect;)I
-PLcom/android/server/wm/TaskLaunchParamsModifier;->sizeMatches(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 PLcom/android/server/wm/TaskOrganizerController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/TaskOrganizerController;Landroid/window/ITaskOrganizer;ILjava/util/ArrayList;)V
 PLcom/android/server/wm/TaskOrganizerController$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/wm/TaskOrganizerController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/TaskOrganizerController$$ExternalSyntheticLambda3;-><init>(Ljava/util/ArrayList;ILjava/lang/Object;)V
 PLcom/android/server/wm/TaskOrganizerController$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/TaskOrganizerController$DeathRecipient;-><init>(Lcom/android/server/wm/TaskOrganizerController;Landroid/window/ITaskOrganizer;)V
-PLcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;-><init>(Lcom/android/server/wm/Task;I)V
-PLcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;-><init>(Lcom/android/server/wm/Task;Landroid/window/ITaskOrganizer;I)V
-PLcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;->isLifecycleEvent()Z
-PLcom/android/server/wm/TaskOrganizerController$StartingWindowAnimationAdaptor;-><init>()V
+PLcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;-><init>(ILcom/android/server/wm/Task;)V
 PLcom/android/server/wm/TaskOrganizerController$StartingWindowAnimationAdaptor;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/TaskOrganizerController$StartingWindowAnimationAdaptor;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerCallbacks;-><init>(Landroid/window/ITaskOrganizer;)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerCallbacks;->onTaskAppeared(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerCallbacks;->onTaskInfoChanged(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$RunningTaskInfo;)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerCallbacks;->prepareLeash(Lcom/android/server/wm/Task;Ljava/lang/String;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->-$$Nest$mdispatchTaskInfoChanged(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;Lcom/android/server/wm/Task;Z)V
 PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->-$$Nest$mgetPendingTaskEvent(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;Lcom/android/server/wm/Task;I)Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;
 PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;-><init>(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->addPendingTaskEvent(Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->dispatchPendingEvent(Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;)V
-HPLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->dispatchPendingEvents()V
 HPLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->dispatchTaskInfoChanged(Lcom/android/server/wm/Task;Z)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->getPendingLifecycleTaskEvent(Lcom/android/server/wm/Task;)Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->getPendingTaskEvent(Lcom/android/server/wm/Task;I)Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->numPendingTaskEvents()I
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->removePendingTaskEvent(Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->-$$Nest$fgetmOrganizer(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;)Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerCallbacks;
-HPLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->-$$Nest$fgetmPendingEventsQueue(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;)Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->-$$Nest$maddTask(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/TaskOrganizerController$TaskOrganizerPendingEventsQueue;->getPendingLifecycleTaskEvent(Lcom/android/server/wm/Task;)Lcom/android/server/wm/TaskOrganizerController$PendingTaskEvent;
 PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;-><init>(Lcom/android/server/wm/TaskOrganizerController;Landroid/window/ITaskOrganizer;I)V
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->addTask(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->addTaskWithoutCallback(Lcom/android/server/wm/Task;Ljava/lang/String;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/TaskOrganizerController;->$r8$lambda$VSKvVVPI5NKYlAdukWH1TzgUuVQ(Lcom/android/server/wm/TaskOrganizerController;Landroid/window/ITaskOrganizer;ILjava/util/ArrayList;)V
-PLcom/android/server/wm/TaskOrganizerController;->$r8$lambda$ersYTYpQCW6sGFO8mYwHFWIJ7D0(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->removeTask(Lcom/android/server/wm/Task;Z)Z
 HSPLcom/android/server/wm/TaskOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 PLcom/android/server/wm/TaskOrganizerController;->addStartingWindow(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;ILandroid/window/TaskSnapshot;)Z
 PLcom/android/server/wm/TaskOrganizerController;->applyStartingWindowAnimation(Lcom/android/server/wm/WindowState;)Landroid/view/SurfaceControl;
-HPLcom/android/server/wm/TaskOrganizerController;->dispatchPendingEvents()V
+HPLcom/android/server/wm/TaskOrganizerController;->dispatchPendingEvents()V+]Landroid/window/ITaskOrganizer;Landroid/window/ITaskOrganizer$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;
+PLcom/android/server/wm/TaskOrganizerController;->getRootTasks(I[I)Ljava/util/List;
 PLcom/android/server/wm/TaskOrganizerController;->getTaskOrganizer()Landroid/window/ITaskOrganizer;
-PLcom/android/server/wm/TaskOrganizerController;->lambda$registerTaskOrganizer$0(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskOrganizerController;->lambda$registerTaskOrganizer$1(Landroid/window/ITaskOrganizer;ILjava/util/ArrayList;)V
-PLcom/android/server/wm/TaskOrganizerController;->onTaskAppeared(Landroid/window/ITaskOrganizer;Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskOrganizerController;->onTaskInfoChanged(Lcom/android/server/wm/Task;Z)V
+PLcom/android/server/wm/TaskOrganizerController;->handleInterceptBackPressedOnTaskRoot(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/TaskOrganizerController;->onTaskVanishedInternal(Lcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/TaskOrganizerController;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/wm/TaskOrganizerController;->registerTaskOrganizer(Landroid/window/ITaskOrganizer;)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/wm/TaskOrganizerController;->removeStartingWindow(Lcom/android/server/wm/Task;Landroid/window/ITaskOrganizer;ZZ)V
-PLcom/android/server/wm/TaskPersister$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/TaskOrganizerController;->removeStartingWindow(Lcom/android/server/wm/Task;Landroid/window/ITaskOrganizer;ZZ)V
+PLcom/android/server/wm/TaskPersister$$ExternalSyntheticLambda0;-><init>(ILcom/android/server/wm/Task;)V
 PLcom/android/server/wm/TaskPersister$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/TaskPersister$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskPersister$1;-><init>(Lcom/android/server/wm/TaskPersister;)V
-PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->-$$Nest$fgetmTask(Lcom/android/server/wm/TaskPersister$TaskWriteQueueItem;)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/TaskPersister$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/wm/TaskPersister$RecentTaskFile;-><init>(Ljava/io/File;I)V
+PLcom/android/server/wm/TaskPersister$RecentTaskFiles;-><init>([Ljava/io/File;Ljava/util/ArrayList;)V
 PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityTaskManagerService;)V
 PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->process()V
-PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->saveToXml(Lcom/android/server/wm/Task;)[B
-PLcom/android/server/wm/TaskPersister;->$r8$lambda$hpGvDr585n6hexBdLZakDSAsCLU(Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskPersister$TaskWriteQueueItem;)Z
-PLcom/android/server/wm/TaskPersister;->-$$Nest$smgetUserTasksDir(I)Ljava/io/File;
+HPLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->saveToXml(Lcom/android/server/wm/Task;)[B
 HSPLcom/android/server/wm/TaskPersister;-><init>(Ljava/io/File;Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/RecentTasks;Lcom/android/server/wm/PersisterQueue;)V
-PLcom/android/server/wm/TaskPersister;->getUserImagesDir(I)Ljava/io/File;
 PLcom/android/server/wm/TaskPersister;->getUserPersistedTaskIdsFile(I)Ljava/io/File;
-PLcom/android/server/wm/TaskPersister;->getUserTasksDir(I)Ljava/io/File;
-PLcom/android/server/wm/TaskPersister;->lambda$wakeup$1(Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskPersister$TaskWriteQueueItem;)Z
-PLcom/android/server/wm/TaskPersister;->loadPersistedTaskIdsForUser(I)Landroid/util/SparseBooleanArray;
-PLcom/android/server/wm/TaskPersister;->onPreProcessItem(Z)V
-PLcom/android/server/wm/TaskPersister;->removeObsoleteFiles(Landroid/util/ArraySet;)V
+PLcom/android/server/wm/TaskPersister;->loadTasksForUser(I)Lcom/android/server/wm/TaskPersister$RecentTaskFiles;
+HPLcom/android/server/wm/TaskPersister;->onPreProcessItem(Z)V
+PLcom/android/server/wm/TaskPersister;->readPersistedTaskIdsFromFileForUser(I)Landroid/util/SparseBooleanArray;
 PLcom/android/server/wm/TaskPersister;->removeObsoleteFiles(Landroid/util/ArraySet;[Ljava/io/File;)V
-PLcom/android/server/wm/TaskPersister;->removeThumbnails(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskPersister;->restoreTasksForUserLocked(ILandroid/util/SparseBooleanArray;)Ljava/util/List;
-PLcom/android/server/wm/TaskPersister;->taskIdToTask(ILjava/util/ArrayList;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/TaskPersister;->wakeup(Lcom/android/server/wm/Task;Z)V
+PLcom/android/server/wm/TaskPersister;->taskIdToTask(Ljava/util/ArrayList;I)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/TaskPersister;->writePersistedTaskIdsForUser(Landroid/util/SparseBooleanArray;I)V
-PLcom/android/server/wm/TaskPersister;->writeTaskIdsFiles()V
-PLcom/android/server/wm/TaskPositioningController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/TaskSnapshotCache;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/AppSnapshotLoader;)V
-PLcom/android/server/wm/TaskSnapshotCache;->getSnapshot(IIZZ)Landroid/window/TaskSnapshot;
+PLcom/android/server/wm/TaskSnapshotCache;-><init>(Lcom/android/server/wm/AppSnapshotLoader;)V
+HPLcom/android/server/wm/TaskSnapshotCache;->putSnapshot(Lcom/android/server/wm/WindowContainer;Landroid/window/TaskSnapshot;)V
+PLcom/android/server/wm/TaskSnapshotController$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/TaskSnapshotController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/TaskSnapshotController;Z)V
+PLcom/android/server/wm/TaskSnapshotController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/TaskSnapshotController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/TaskSnapshotController;ILcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;)V
+PLcom/android/server/wm/TaskSnapshotController$$ExternalSyntheticLambda3;->run()V
 PLcom/android/server/wm/TaskSnapshotController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/SnapshotPersistQueue;)V
-PLcom/android/server/wm/TaskSnapshotController;->clearSnapshotCache()V
-PLcom/android/server/wm/TaskSnapshotController;->createPersistInfoProvider(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/BaseAppSnapshotPersister$DirectoryResolver;)Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;
-PLcom/android/server/wm/TaskSnapshotController;->getSnapshot(IIZZ)Landroid/window/TaskSnapshot;
-PLcom/android/server/wm/TaskSnapshotController;->handleClosingApps(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/TaskSnapshotController;->removeAndDeleteSnapshot(II)V
+PLcom/android/server/wm/TaskSnapshotController;->findAppTokenForSnapshot(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/TaskSnapshotController;->getLetterboxInsets(Lcom/android/server/wm/ActivityRecord;)Landroid/graphics/Rect;
+HPLcom/android/server/wm/TaskSnapshotController;->getSnapshot(IIZZ)Landroid/window/TaskSnapshot;
+PLcom/android/server/wm/TaskSnapshotController;->getTopActivity(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/TaskSnapshotController;->recordSnapshot(Lcom/android/server/wm/Task;)Landroid/window/TaskSnapshot;
 PLcom/android/server/wm/TaskSnapshotController;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V
+PLcom/android/server/wm/TaskSnapshotController;->snapshotForSleeping(I)V
 PLcom/android/server/wm/TaskSnapshotController;->snapshotTasks(Landroid/util/ArraySet;)V
+PLcom/android/server/wm/TaskSnapshotController;->use16BitFormat()Z
 PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Landroid/util/ArraySet;[ILcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
 PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->getTaskId(Ljava/lang/String;)I
 PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->isReady(Lcom/android/server/pm/UserManagerInternal;)Z
 PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->write()V
-PLcom/android/server/wm/TaskSnapshotPersister;->-$$Nest$fgetmPersistedTaskIdsSinceLastRemoveObsolete(Lcom/android/server/wm/TaskSnapshotPersister;)Landroid/util/ArraySet;
 PLcom/android/server/wm/TaskSnapshotPersister;-><init>(Lcom/android/server/wm/SnapshotPersistQueue;Lcom/android/server/wm/BaseAppSnapshotPersister$PersistInfoProvider;)V
-PLcom/android/server/wm/TaskSnapshotPersister;->removeObsoleteFiles(Landroid/util/ArraySet;[I)V
+HPLcom/android/server/wm/TaskSnapshotPersister;->persistSnapshot(IILandroid/window/TaskSnapshot;)V
 PLcom/android/server/wm/TaskSnapshotPersister;->removeSnapshot(II)V
 PLcom/android/server/wm/TaskSystemBarsListenerController;-><init>()V
-PLcom/android/server/wm/Transition$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/TransitionController$Logger;)V
-PLcom/android/server/wm/Transition$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/Transition$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/Transition$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
-HPLcom/android/server/wm/Transition$ChangeInfo;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Transition$ChangeInfo;->getChangeFlags(Lcom/android/server/wm/WindowContainer;)I
-PLcom/android/server/wm/Transition$ChangeInfo;->getTransitMode(Lcom/android/server/wm/WindowContainer;)I
-PLcom/android/server/wm/Transition$ChangeInfo;->hasChanged()Z
+PLcom/android/server/wm/Transition$$ExternalSyntheticLambda0;-><init>(I)V
+HPLcom/android/server/wm/Transition$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/Transition$$ExternalSyntheticLambda1;-><init>(ILandroid/util/ArraySet;)V
+PLcom/android/server/wm/Transition$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/Transition$$ExternalSyntheticLambda4;-><init>(ILjava/lang/Object;)V
+HPLcom/android/server/wm/Transition$$ExternalSyntheticLambda4;->run()V
+HPLcom/android/server/wm/Transition$ChangeInfo;-><init>(Lcom/android/server/wm/WindowContainer;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/Transition$ChangeInfo;->getTransitMode(Lcom/android/server/wm/WindowContainer;)I
+HPLcom/android/server/wm/Transition$ChangeInfo;->hasChanged()Z+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/Transition$ReadyCondition;-><init>(Ljava/lang/String;)V
+PLcom/android/server/wm/Transition$ReadyCondition;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
+PLcom/android/server/wm/Transition$ReadyCondition;->meet()V
 PLcom/android/server/wm/Transition$ReadyTracker;-><clinit>()V
-PLcom/android/server/wm/Transition$ReadyTracker;-><init>(Lcom/android/server/wm/Transition;)V
-PLcom/android/server/wm/Transition$ReadyTrackerOld;-><init>()V
-PLcom/android/server/wm/Transition$ReadyTrackerOld;-><init>(Lcom/android/server/wm/Transition$ReadyTrackerOld-IA;)V
-PLcom/android/server/wm/Transition$ReadyTrackerOld;->addGroup(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Transition$ReadyTrackerOld;->allReady()Z
-PLcom/android/server/wm/Transition$ReadyTrackerOld;->setReadyFrom(Lcom/android/server/wm/WindowContainer;Z)V
+HPLcom/android/server/wm/Transition$ReadyTracker;-><init>(Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/Transition$ReadyTracker;->add(Lcom/android/server/wm/Transition$ReadyCondition;)V
+HPLcom/android/server/wm/Transition$ReadyTrackerOld;-><init>()V
+HPLcom/android/server/wm/Transition$ReadyTrackerOld;->allReady()Z
+PLcom/android/server/wm/Transition$ScreenshotFreezer;-><init>(Lcom/android/server/wm/Transition;)V
 PLcom/android/server/wm/Transition$Targets;-><init>()V
-PLcom/android/server/wm/Transition$Targets;-><init>(Lcom/android/server/wm/Transition$Targets-IA;)V
-PLcom/android/server/wm/Transition$Targets;->add(Lcom/android/server/wm/Transition$ChangeInfo;)V
-PLcom/android/server/wm/Transition$Targets;->getListSortedByZ()Ljava/util/ArrayList;
-PLcom/android/server/wm/Transition$Targets;->remove(I)V
+HPLcom/android/server/wm/Transition$Targets;->add(Lcom/android/server/wm/Transition$ChangeInfo;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/WallpaperWindowToken;
 PLcom/android/server/wm/Transition$Token;-><init>(Lcom/android/server/wm/Transition;)V
-PLcom/android/server/wm/Transition;->$r8$lambda$ae2rOBsvLNpO5hISqyOOeQUaP48(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/Transition;->-$$Nest$smgetDisplayId(Lcom/android/server/wm/WindowContainer;)I
-PLcom/android/server/wm/Transition;->-$$Nest$smisInputMethod(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->-$$Nest$smisReadyGroup(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->-$$Nest$smisTranslucent(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->-$$Nest$smisWallpaper(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;-><init>(IILcom/android/server/wm/TransitionController;Lcom/android/server/wm/BLASTSyncEngine;)V
-PLcom/android/server/wm/Transition;->addOnTopTasks(Lcom/android/server/wm/DisplayContent;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/Transition;->addOnTopTasks(Lcom/android/server/wm/Task;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/Transition;->applyDisplayChangeIfNeeded(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/Transition;->applyReady()V
-PLcom/android/server/wm/Transition;->asyncTraceBegin(Ljava/lang/String;I)V
-PLcom/android/server/wm/Transition;->asyncTraceEnd(I)V
-PLcom/android/server/wm/Transition;->buildCleanupTransaction(Landroid/view/SurfaceControl$Transaction;Landroid/window/TransitionInfo;)V
-PLcom/android/server/wm/Transition;->buildFinishTransaction(Landroid/view/SurfaceControl$Transaction;Landroid/window/TransitionInfo;)V
-PLcom/android/server/wm/Transition;->calculateTargets(Landroid/util/ArraySet;Landroid/util/ArrayMap;)Ljava/util/ArrayList;
-HPLcom/android/server/wm/Transition;->calculateTransitionInfo(IILjava/util/ArrayList;Landroid/view/SurfaceControl$Transaction;)Landroid/window/TransitionInfo;
-PLcom/android/server/wm/Transition;->calculateTransitionRoots(Landroid/window/TransitionInfo;Ljava/util/ArrayList;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/Transition;->canPromote(Lcom/android/server/wm/Transition$ChangeInfo;Lcom/android/server/wm/Transition$Targets;Landroid/util/ArrayMap;)Z
-PLcom/android/server/wm/Transition;->checkEnterPipOnFinish(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Transition;->cleanUpInternal()V
-HPLcom/android/server/wm/Transition;->collect(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Transition;->collectExistenceChange(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Transition;->collectOrderChanges(Z)V
-PLcom/android/server/wm/Transition;->commitConfigAtEndActivities()V
-PLcom/android/server/wm/Transition;->commitVisibleActivities(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/Transition;->commitVisibleWallpapers()V
+HPLcom/android/server/wm/Transition;-><init>(IILcom/android/server/wm/TransitionController;Lcom/android/server/wm/BLASTSyncEngine;)V
+PLcom/android/server/wm/Transition;->abort()V
+PLcom/android/server/wm/Transition;->addCustomActivityTransition(Lcom/android/server/wm/ActivityRecord;ZLandroid/window/TransitionInfo$AnimationOptions;)Landroid/window/TransitionInfo$AnimationOptions;
+HPLcom/android/server/wm/Transition;->addOnTopTasks(Lcom/android/server/wm/DisplayContent;Ljava/util/ArrayList;)V
+HPLcom/android/server/wm/Transition;->addOnTopTasks(Lcom/android/server/wm/Task;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/Transition;->addToTopChange(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/Transition;->applyDisplayChangeIfNeeded(Landroid/util/ArraySet;)V
+HPLcom/android/server/wm/Transition;->applyReady()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Transition;->assignLayers(Lcom/android/server/wm/DisplayArea;Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Transition;->calcParallelCollectType(Landroid/window/WindowContainerTransaction;)V
+HPLcom/android/server/wm/Transition;->calculateTargets(Landroid/util/ArraySet;Landroid/util/ArrayMap;)Ljava/util/ArrayList;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Transition;->calculateTransitionInfo(IILjava/util/ArrayList;Landroid/view/SurfaceControl$Transaction;)Landroid/window/TransitionInfo;+]Landroid/app/ActivityManager$TaskDescription;Landroid/app/ActivityManager$TaskDescription;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types]Lcom/android/server/wm/StartingData;Lcom/android/server/wm/SnapshotStartingData;,Lcom/android/server/wm/SplashScreenStartingData;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Transition;->calculateTransitionRoots(Landroid/window/TransitionInfo;Ljava/util/ArrayList;Landroid/view/SurfaceControl$Transaction;)V+]Landroid/view/SurfaceControl$Builder;Landroid/view/SurfaceControl$Builder;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/RootWindowContainer;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Transition;->cleanUpInternal()V
+HPLcom/android/server/wm/Transition;->collect(Lcom/android/server/wm/WindowContainer;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/Transition;->collectClose(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/Transition;->collectExistenceChange(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/Transition;->collectOrderChanges(Z)V
+PLcom/android/server/wm/Transition;->collectVisibleChange(Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/Transition;->containsChangeFor(Lcom/android/server/wm/WindowContainer;Ljava/util/ArrayList;)Z
-PLcom/android/server/wm/Transition;->findCommonAncestor(Ljava/util/ArrayList;Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/WindowContainer;
-HPLcom/android/server/wm/Transition;->finishTransition()V
-PLcom/android/server/wm/Transition;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/Transition;
-PLcom/android/server/wm/Transition;->getAnimatableParent(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/WindowContainer;
-PLcom/android/server/wm/Transition;->getDisplayId(Lcom/android/server/wm/WindowContainer;)I
-PLcom/android/server/wm/Transition;->getFinishTransaction()Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/Transition;->getFlags()I
-PLcom/android/server/wm/Transition;->getLayoutParamsForAnimationsStyle(ILjava/util/ArrayList;)Landroid/view/WindowManager$LayoutParams;
-PLcom/android/server/wm/Transition;->getLeashSurface(Lcom/android/server/wm/WindowContainer;Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/Transition;->getOrigParentSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/Transition;->getPipActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Transition;->getStartTransaction()Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/Transition;->getSyncId()I
-PLcom/android/server/wm/Transition;->getTaskRotationAnimation(Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/Transition;->getToken()Landroid/os/IBinder;
-PLcom/android/server/wm/Transition;->handleLegacyRecentsStartBehavior(Lcom/android/server/wm/DisplayContent;Landroid/window/TransitionInfo;)V
-PLcom/android/server/wm/Transition;->isAborted()Z
+HPLcom/android/server/wm/Transition;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/Transition;
+HPLcom/android/server/wm/Transition;->getAnimatableParent(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/WindowContainer;+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/Transition;->getDisplayId(Lcom/android/server/wm/WindowContainer;)I
+HPLcom/android/server/wm/Transition;->getLeashSurface(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/Transition;->hasTransientLaunch()Z
+PLcom/android/server/wm/Transition;->invokeTransitionEndedListeners()V
 PLcom/android/server/wm/Transition;->isCollecting()Z
-PLcom/android/server/wm/Transition;->isInTransientHide(Lcom/android/server/wm/WindowContainer;)Z
+HPLcom/android/server/wm/Transition;->isInTransientHide(Lcom/android/server/wm/WindowContainer;)Z
 HPLcom/android/server/wm/Transition;->isInTransition(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->isInputMethod(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->isReadyGroup(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->isStarted()Z
 PLcom/android/server/wm/Transition;->isTransientLaunch(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Transition;->isTransientVisible(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/Transition;->isTranslucent(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->isWallpaper(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->lambda$addOnTopTasks$2(Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/Transition;->isTransientVisible(Lcom/android/server/wm/Task;)Z
 PLcom/android/server/wm/Transition;->legacyRestoreNavigationBarFromApp()V
-HPLcom/android/server/wm/Transition;->onTransactionReady(ILandroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/Transition;->populateParentChanges(Lcom/android/server/wm/Transition$Targets;Landroid/util/ArrayMap;)V
-PLcom/android/server/wm/Transition;->recordDisplay(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/Transition;->recordTaskOrder(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Transition;->reportIfNotTop(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/Transition;->reportStartReasonsToLogger()V
-PLcom/android/server/wm/Transition;->resetSurfaceTransform(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/Transition;->lookForTopWindowWithFilter(Ljava/util/List;Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/Transition;->onReadyTimeout()V
+HPLcom/android/server/wm/Transition;->onTransactionReady(Landroid/view/SurfaceControl$Transaction;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/window/ITransitionPlayer;Landroid/window/ITransitionPlayer$Stub$Proxy;]Lcom/android/server/wm/Transition;Lcom/android/server/wm/Transition;]Lcom/android/server/wm/TransitionTracer;Lcom/android/server/wm/PerfettoTransitionTracer;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;Lcom/android/server/policy/PhoneWindowManager$5;,Lcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;,Lcom/android/server/wm/DisplayPolicy$2;,Lcom/android/server/wm/WindowManagerService$4;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/function/Supplier;Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda25;
+PLcom/android/server/wm/Transition;->overrideAnimationOptionsToInfoIfNecessary(Landroid/window/TransitionInfo;)V
+HPLcom/android/server/wm/Transition;->recordDisplay(Lcom/android/server/wm/DisplayContent;)V+]Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;Lcom/android/server/policy/PhoneWindowManager$5;,Lcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;,Lcom/android/server/wm/DisplayPolicy$2;,Lcom/android/server/wm/WindowManagerService$4;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/Transition;->resetSurfaceTransform(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/Transition;->sendRemoteCallback(Landroid/os/IRemoteCallback;)V
-PLcom/android/server/wm/Transition;->setEndFixedRotationIfNeeded(Landroid/window/TransitionInfo$Change;Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Transition;->setReady(Lcom/android/server/wm/WindowContainer;Z)V
-PLcom/android/server/wm/Transition;->shouldApplyOnDisplayThread()Z
+PLcom/android/server/wm/Transition;->setAllReady()V
+PLcom/android/server/wm/Transition;->setOverrideAnimation(Landroid/window/TransitionInfo$AnimationOptions;Lcom/android/server/wm/ActivityRecord;Landroid/os/IRemoteCallback;Landroid/os/IRemoteCallback;)V
+HPLcom/android/server/wm/Transition;->setReady(Lcom/android/server/wm/WindowContainer;Z)V
+HPLcom/android/server/wm/Transition;->shouldApplyOnDisplayThread()Z
 PLcom/android/server/wm/Transition;->shouldUsePerfHint(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/Transition;->shouldWallpaperBeVisible()Z
-PLcom/android/server/wm/Transition;->snapshotStartState(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Transition;->start()V
-PLcom/android/server/wm/Transition;->startCollecting(J)V
-PLcom/android/server/wm/Transition;->tryPromote(Lcom/android/server/wm/Transition$Targets;Landroid/util/ArrayMap;)V
-PLcom/android/server/wm/Transition;->updateDisplayLayers(Lcom/android/server/wm/DisplayContent;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/Transition;->updateTransientFlags(Lcom/android/server/wm/Transition$ChangeInfo;)V
-PLcom/android/server/wm/Transition;->validateKeyguardOcclusion()V
+HPLcom/android/server/wm/Transition;->start()V
+PLcom/android/server/wm/Transition;->toString()Ljava/lang/String;
+HPLcom/android/server/wm/Transition;->updateTransientFlags(Lcom/android/server/wm/Transition$ChangeInfo;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/TransitionController;Ljava/lang/Object;I)V
+PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda0;->run()V
+PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/TransitionController;ZLcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/TransitionController;)V
 PLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda3;->run()V
-HSPLcom/android/server/wm/TransitionController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/TransitionController;)V
 HSPLcom/android/server/wm/TransitionController$Lock;-><init>(Lcom/android/server/wm/TransitionController;)V
-PLcom/android/server/wm/TransitionController$Lock;->doNotifyLocked()V
-PLcom/android/server/wm/TransitionController$Logger;-><init>()V
-PLcom/android/server/wm/TransitionController$Logger;->buildOnFinishLog()Ljava/lang/String;
-PLcom/android/server/wm/TransitionController$Logger;->buildOnSendLog()Ljava/lang/String;
-PLcom/android/server/wm/TransitionController$Logger;->logOnFinish()V
-PLcom/android/server/wm/TransitionController$Logger;->logOnSend()V
-PLcom/android/server/wm/TransitionController$Logger;->logOnSendAsync(Landroid/os/Handler;)V
+HPLcom/android/server/wm/TransitionController$Logger;->logOnSend()V
 PLcom/android/server/wm/TransitionController$Logger;->run()V
-PLcom/android/server/wm/TransitionController$Logger;->toMsString(J)Ljava/lang/String;
+HPLcom/android/server/wm/TransitionController$Logger;->toMsString(J)Ljava/lang/String;
+PLcom/android/server/wm/TransitionController$QueuedTransition;-><init>(Lcom/android/server/wm/Transition;Lcom/android/server/wm/TransitionController$OnStartCollect;)V
 HSPLcom/android/server/wm/TransitionController$RemotePlayer;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/TransitionController$RemotePlayer;->clear()V
+HPLcom/android/server/wm/TransitionController$RemotePlayer;->clear()V
 HSPLcom/android/server/wm/TransitionController$TransitionMetricsReporter;-><init>()V
 PLcom/android/server/wm/TransitionController$TransitionMetricsReporter;->reportAnimationStart(Landroid/os/IBinder;J)V
+PLcom/android/server/wm/TransitionController$TransitionPlayerRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/TransitionController$TransitionPlayerRecord;)V
+PLcom/android/server/wm/TransitionController$TransitionPlayerRecord;-><init>(Lcom/android/server/wm/TransitionController;Landroid/window/ITransitionPlayer;Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/TransitionController;-><clinit>()V
 HSPLcom/android/server/wm/TransitionController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/TransitionController;->assignTrack(Lcom/android/server/wm/Transition;Landroid/window/TransitionInfo;)V
-HPLcom/android/server/wm/TransitionController;->canAssignLayers(Lcom/android/server/wm/WindowContainer;)Z
+PLcom/android/server/wm/TransitionController;->canStartCollectingNow(Lcom/android/server/wm/Transition;)Z
 PLcom/android/server/wm/TransitionController;->collect(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/TransitionController;->collectExistenceChange(Lcom/android/server/wm/WindowContainer;)V
-HPLcom/android/server/wm/TransitionController;->collectForDisplayAreaChange(Lcom/android/server/wm/DisplayArea;)V
-PLcom/android/server/wm/TransitionController;->createAndStartCollecting(I)Lcom/android/server/wm/Transition;
-PLcom/android/server/wm/TransitionController;->dispatchLegacyAppTransitionFinished(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/TransitionController;->dispatchLegacyAppTransitionPending()V
-PLcom/android/server/wm/TransitionController;->dispatchLegacyAppTransitionStarting(Landroid/window/TransitionInfo;J)V
-PLcom/android/server/wm/TransitionController;->finishTransition(Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/TransitionController;->continueTransitionReady()V
+PLcom/android/server/wm/TransitionController;->createTransition(II)Lcom/android/server/wm/Transition;
+PLcom/android/server/wm/TransitionController;->deferTransitionReady()V
+HPLcom/android/server/wm/TransitionController;->finishTransition(Lcom/android/server/wm/ActionChain;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/TransitionTracer;Lcom/android/server/wm/PerfettoTransitionTracer;]Lcom/android/server/wm/WindowContainer;megamorphic_types]Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;Lcom/android/server/policy/PhoneWindowManager$5;,Lcom/android/server/wm/DisplayContent$FixedRotationTransitionListener;,Lcom/android/server/wm/DisplayPolicy$2;,Lcom/android/server/wm/WindowManagerService$4;]Ljava/lang/Runnable;Lcom/android/server/wm/KeyguardController$$ExternalSyntheticLambda1;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Supplier;Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda25;
+PLcom/android/server/wm/TransitionController;->getCanBeIndependent(Lcom/android/server/wm/Transition;Lcom/android/server/wm/Transition;)Z
+PLcom/android/server/wm/TransitionController;->getCollectingTransition()Lcom/android/server/wm/Transition;
 PLcom/android/server/wm/TransitionController;->getCollectingTransitionId()I
-PLcom/android/server/wm/TransitionController;->getCollectingTransitionType()I
-PLcom/android/server/wm/TransitionController;->getTransitionPlayer()Landroid/window/ITransitionPlayer;
-HPLcom/android/server/wm/TransitionController;->inCollectingTransition(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/TransitionController;->inFinishingTransition(Lcom/android/server/wm/WindowContainer;)Z
-HPLcom/android/server/wm/TransitionController;->inPlayingTransition(Lcom/android/server/wm/WindowContainer;)Z
-HPLcom/android/server/wm/TransitionController;->inTransition()Z
+HPLcom/android/server/wm/TransitionController;->getTransitionPlayer()Landroid/window/ITransitionPlayer;
+HPLcom/android/server/wm/TransitionController;->hasTransientLaunch(Lcom/android/server/wm/DisplayContent;)Z
+HPLcom/android/server/wm/TransitionController;->inCollectingTransition(Lcom/android/server/wm/WindowContainer;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TransitionController;->inPlayingTransition(Lcom/android/server/wm/WindowContainer;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TransitionController;->inTransition()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/TransitionController;->inTransition(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/TransitionController;->isAnimating()Z
 HPLcom/android/server/wm/TransitionController;->isCollecting()Z
-PLcom/android/server/wm/TransitionController;->isCollecting(Lcom/android/server/wm/WindowContainer;)Z
-HPLcom/android/server/wm/TransitionController;->isPlaying()Z
-HPLcom/android/server/wm/TransitionController;->isShellTransitionsEnabled()Z
-PLcom/android/server/wm/TransitionController;->isTransientCollect(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TransitionController;->isTransientLaunch(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/TransitionController;->isTransientVisible(Lcom/android/server/wm/Task;)Z
-HPLcom/android/server/wm/TransitionController;->isTransitionOnDisplay(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/TransitionController;->moveToCollecting(Lcom/android/server/wm/Transition;)V
-PLcom/android/server/wm/TransitionController;->moveToPlaying(Lcom/android/server/wm/Transition;)V
-PLcom/android/server/wm/TransitionController;->onCommittedInvisibles()V
-PLcom/android/server/wm/TransitionController;->onTransitionPopulated(Lcom/android/server/wm/Transition;)V
-PLcom/android/server/wm/TransitionController;->recordTaskOrder(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/TransitionController;->registerLegacyListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
+HPLcom/android/server/wm/TransitionController;->isCollecting(Lcom/android/server/wm/WindowContainer;)Z
+HPLcom/android/server/wm/TransitionController;->isShellTransitionsEnabled()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TransitionController;->isTransientHide(Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/TransitionController;->isTransientLaunch(Lcom/android/server/wm/ActivityRecord;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TransitionController;->moveToCollecting(Lcom/android/server/wm/Transition;)V
+PLcom/android/server/wm/TransitionController;->queueTransition(Lcom/android/server/wm/Transition;Lcom/android/server/wm/TransitionController$OnStartCollect;)V
 PLcom/android/server/wm/TransitionController;->registerTransitionPlayer(Landroid/window/ITransitionPlayer;Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/TransitionController;->requestStartTransition(Lcom/android/server/wm/Transition;Lcom/android/server/wm/Task;Landroid/window/RemoteTransition;Landroid/window/TransitionRequestInfo$DisplayChange;)Lcom/android/server/wm/Transition;
-PLcom/android/server/wm/TransitionController;->setReady(Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/TransitionController;->requestCloseTransitionIfNeeded(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/Transition;
+HPLcom/android/server/wm/TransitionController;->requestStartTransition(Lcom/android/server/wm/Transition;Lcom/android/server/wm/Task;Landroid/window/RemoteTransition;Landroid/window/TransitionRequestInfo$DisplayChange;)Lcom/android/server/wm/Transition;
+PLcom/android/server/wm/TransitionController;->requestTransitionIfNeeded(IILcom/android/server/wm/Task;Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/Transition;
 PLcom/android/server/wm/TransitionController;->setReady(Lcom/android/server/wm/WindowContainer;Z)V
 PLcom/android/server/wm/TransitionController;->setSyncEngine(Lcom/android/server/wm/BLASTSyncEngine;)V
-PLcom/android/server/wm/TransitionController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/wm/TransitionController;->shouldKeepFocus(Lcom/android/server/wm/WindowContainer;)Z
+PLcom/android/server/wm/TransitionController;->shouldDispatchLegacyListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;I)Z
+HPLcom/android/server/wm/TransitionController;->shouldKeepFocus(Lcom/android/server/wm/WindowContainer;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/TransitionController;->startCollectOrQueue(Lcom/android/server/wm/Transition;Lcom/android/server/wm/TransitionController$OnStartCollect;)V
 PLcom/android/server/wm/TransitionController;->tryStartCollectFromQueue()V
-PLcom/android/server/wm/TransitionController;->updateAnimatingState()V
-PLcom/android/server/wm/TransitionController;->updateRunningRemoteAnimation(Lcom/android/server/wm/Transition;Z)V
-PLcom/android/server/wm/TransitionController;->useFullReadyTracking()Z
+HPLcom/android/server/wm/TransitionController;->updateAnimatingState()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/TransitionController;->updateRunningRemoteAnimation(Z)V
 HPLcom/android/server/wm/TransitionController;->useShellTransitionsRotation()Z
-PLcom/android/server/wm/TransitionController;->validateStates()V
+PLcom/android/server/wm/TransitionController;->waitFor(Lcom/android/server/wm/Transition$ReadyCondition;)V
+PLcom/android/server/wm/TransparentPolicy$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/AppCompatConfiguration;)V
+PLcom/android/server/wm/TransparentPolicy$TransparentPolicyState;->-$$Nest$mreset(Lcom/android/server/wm/TransparentPolicy$TransparentPolicyState;)V
+PLcom/android/server/wm/TransparentPolicy$TransparentPolicyState;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/TransparentPolicy$TransparentPolicyState;->findOpaqueNotFinishingActivityBelow()Ljava/util/Optional;
+PLcom/android/server/wm/TransparentPolicy$TransparentPolicyState;->isRunning()Z
+PLcom/android/server/wm/TransparentPolicy;-><clinit>()V
+HPLcom/android/server/wm/TransparentPolicy;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/AppCompatConfiguration;)V
+PLcom/android/server/wm/TransparentPolicy;->start()V
 PLcom/android/server/wm/TrustedPresentationListenerController$Listeners;-><init>(Lcom/android/server/wm/TrustedPresentationListenerController;)V
-PLcom/android/server/wm/TrustedPresentationListenerController$Listeners;-><init>(Lcom/android/server/wm/TrustedPresentationListenerController;Lcom/android/server/wm/TrustedPresentationListenerController$Listeners-IA;)V
 PLcom/android/server/wm/TrustedPresentationListenerController;-><init>()V
+PLcom/android/server/wm/TrustedPresentationListenerController;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/wm/UnknownAppVisibilityController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/UnknownAppVisibilityController;->allResolved()Z
 PLcom/android/server/wm/UnknownAppVisibilityController;->appRemovedOrHidden(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/UnknownAppVisibilityController;->clear()V
-PLcom/android/server/wm/UnknownAppVisibilityController;->isVisibilityUnknown(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/UnknownAppVisibilityController;->notifyAppResumedFinished(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/UnknownAppVisibilityController;->notifyRelayouted(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/UnknownAppVisibilityController;->notifyRelayouted(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/VisibleActivityProcessTracker$CpuTimeRecord;-><init>(Lcom/android/server/wm/VisibleActivityProcessTracker;Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/VisibleActivityProcessTracker$CpuTimeRecord;->run()V
+HPLcom/android/server/wm/VisibleActivityProcessTracker$CpuTimeRecord;->run()V
 HSPLcom/android/server/wm/VisibleActivityProcessTracker;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-HPLcom/android/server/wm/VisibleActivityProcessTracker;->hasVisibleActivity(I)Z
-HPLcom/android/server/wm/VisibleActivityProcessTracker;->match(ILjava/util/function/Predicate;)Z
-PLcom/android/server/wm/VisibleActivityProcessTracker;->onActivityResumedWhileVisible(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/VisibleActivityProcessTracker;->onAllActivitiesInvisible(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/VisibleActivityProcessTracker;->onAnyActivityVisible(Lcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/VisibleActivityProcessTracker;->removeProcess(Lcom/android/server/wm/WindowProcessController;)Lcom/android/server/wm/VisibleActivityProcessTracker$CpuTimeRecord;
+HPLcom/android/server/wm/VisibleActivityProcessTracker;->match(ILcom/android/server/wm/VisibleActivityProcessTracker$$ExternalSyntheticLambda0;)Z
 HSPLcom/android/server/wm/VrController$1;-><init>(Lcom/android/server/wm/VrController;)V
 HSPLcom/android/server/wm/VrController;-><clinit>()V
 HSPLcom/android/server/wm/VrController;-><init>(Ljava/lang/Object;)V
-PLcom/android/server/wm/VrController;->isInterestingToSchedGroup()Z
-PLcom/android/server/wm/VrController;->onSystemReady()V
-PLcom/android/server/wm/WallpaperAnimationAdapter;->shouldStartWallpaperAnimation(Lcom/android/server/wm/DisplayContent;)Z
+PLcom/android/server/wm/VrController;->toString()Ljava/lang/String;
 PLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WallpaperController;)V
-PLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Z+]Lcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/BackNavigationController$AnimationHandler$BackWindowAnimationAdaptor;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;
 PLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/WallpaperController;)V
-PLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/WallpaperController;)V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult$TopWallpaper;-><init>()V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult$TopWallpaper;->reset()V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;-><init>()V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;-><init>(Lcom/android/server/wm/WallpaperController$FindWallpaperTargetResult-IA;)V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->getTopWallpaper(Z)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->hasTopHideWhenLockedWallpaper()Z
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->hasTopShowWhenLockedWallpaper()Z
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->reset()V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->setIsWallpaperTargetForLetterbox(Z)V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->setTopShowWhenLockedWallpaper(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->setWallpaperTarget(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WallpaperController;->$r8$lambda$P67TWw1sKQnPyyNd8sIWPsJ8xts(Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/WallpaperController;->$r8$lambda$weWYh946v1vMY5HxrZ0ItBnQ548(Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WallpaperController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/WallpaperController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/WallpaperController;->addWallpaperToken(Lcom/android/server/wm/WallpaperWindowToken;)V
-HPLcom/android/server/wm/WallpaperController;->adjustWallpaperWindows()V
-PLcom/android/server/wm/WallpaperController;->adjustWallpaperWindowsForAppTransitionIfNeeded(Landroid/util/ArraySet;)V
+HPLcom/android/server/wm/WallpaperController;->adjustWallpaperWindows()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WallpaperWindowToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WallpaperController;->clearLastWallpaperTimeoutTime()V
-HPLcom/android/server/wm/WallpaperController;->findWallpaperTarget()V
-PLcom/android/server/wm/WallpaperController;->getAllTopWallpapers()Ljava/util/List;
-PLcom/android/server/wm/WallpaperController;->getDisplayWidthOffset(ILandroid/graphics/Rect;Z)I
+PLcom/android/server/wm/WallpaperController;->dumpValue(Ljava/io/PrintWriter;Ljava/lang/String;F)V
 PLcom/android/server/wm/WallpaperController;->getTokenForTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/WallpaperWindowToken;
-PLcom/android/server/wm/WallpaperController;->getWallpaperTarget()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/WallpaperController;->hideDeferredWallpapersIfNeededLegacy()V
 HPLcom/android/server/wm/WallpaperController;->hideWallpapers(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WallpaperController;->isBackNavigationTarget(Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/WallpaperController;->isBelowWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/WallpaperController;->isRecentsTransitionTarget(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/WallpaperController;->isWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/WallpaperController;->isWallpaperTargetAnimating()Z
-HPLcom/android/server/wm/WallpaperController;->isWallpaperVisible()Z
-PLcom/android/server/wm/WallpaperController;->lambda$new$0(Lcom/android/server/wm/WindowState;)V
-HPLcom/android/server/wm/WallpaperController;->lambda$new$1(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/WallpaperController;->onDisplaySwitchFinished()V
-PLcom/android/server/wm/WallpaperController;->resetLargestDisplay(Landroid/view/Display;)V
-PLcom/android/server/wm/WallpaperController;->setShouldZoomOutWallpaper(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/WallpaperController;->setWallpaperCropUtils(Lcom/android/server/wallpaper/WallpaperCropper$WallpaperCropUtils;)V
-HPLcom/android/server/wm/WallpaperController;->updateWallpaperOffset(Lcom/android/server/wm/WindowState;Z)Z
-PLcom/android/server/wm/WallpaperController;->updateWallpaperOffsetLocked(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/WallpaperController;->updateWallpaperTokens(ZZ)V
-PLcom/android/server/wm/WallpaperController;->updateWallpaperWindowsTarget(Lcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;)V
+PLcom/android/server/wm/WallpaperController;->isWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/WallpaperController;->isWallpaperVisible()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WallpaperController;->updateWallpaperOffset(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/WallpaperController;->updateWallpaperOffsetLocked(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/WallpaperController;->wallpaperTransitionReady()Z
 PLcom/android/server/wm/WallpaperVisibilityListeners;-><init>()V
-PLcom/android/server/wm/WallpaperVisibilityListeners;->notifyWallpaperVisibilityChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/WallpaperVisibilityListeners;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)V
-PLcom/android/server/wm/WallpaperWindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;ZLcom/android/server/wm/DisplayContent;ZLandroid/os/Bundle;)V
+PLcom/android/server/wm/WallpaperWindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;Lcom/android/server/wm/DisplayContent;Landroid/os/Bundle;)V
 PLcom/android/server/wm/WallpaperWindowToken;->asWallpaperToken()Lcom/android/server/wm/WallpaperWindowToken;
-PLcom/android/server/wm/WallpaperWindowToken;->canShowWhenLocked()Z
-HPLcom/android/server/wm/WallpaperWindowToken;->commitVisibility(Z)V
+PLcom/android/server/wm/WallpaperWindowToken;->commitVisibility(Z)V
+HPLcom/android/server/wm/WallpaperWindowToken;->hasVisibleNotDrawnWallpaper()Z
+PLcom/android/server/wm/WallpaperWindowToken;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
 HPLcom/android/server/wm/WallpaperWindowToken;->isVisible()Z
 PLcom/android/server/wm/WallpaperWindowToken;->onChildVisibleRequestedChanged(Lcom/android/server/wm/WindowContainer;)Z
-PLcom/android/server/wm/WallpaperWindowToken;->setCropHints(Landroid/util/SparseArray;)V
-PLcom/android/server/wm/WallpaperWindowToken;->setShowWhenLocked(Z)V
+HPLcom/android/server/wm/WallpaperWindowToken;->prepareSurfaces()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/WallpaperWindowToken;->setExiting(Z)V
 HPLcom/android/server/wm/WallpaperWindowToken;->setVisibility(Z)V
-PLcom/android/server/wm/WallpaperWindowToken;->setVisible(Z)V
+PLcom/android/server/wm/WallpaperWindowToken;->setVisible$1(Z)V
 PLcom/android/server/wm/WallpaperWindowToken;->setVisibleRequested(Z)Z
 PLcom/android/server/wm/WallpaperWindowToken;->showWallpaper()Z
 PLcom/android/server/wm/WallpaperWindowToken;->toString()Ljava/lang/String;
-PLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperOffset(Z)V
-PLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperWindows(Z)V
-PLcom/android/server/wm/WindowAnimationSpec$$ExternalSyntheticLambda0;-><init>()V
+HPLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperOffset()V
 PLcom/android/server/wm/WindowAnimationSpec$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-PLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>()V
-PLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>(Lcom/android/server/wm/WindowAnimationSpec$TmpValues-IA;)V
-PLcom/android/server/wm/WindowAnimationSpec;->$r8$lambda$O4wc4-tRjiP9nCMbsYU_dS1zsf4()Lcom/android/server/wm/WindowAnimationSpec$TmpValues;
-PLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;Landroid/graphics/Rect;ZIZF)V
+HPLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>()V
+HPLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;Landroid/graphics/Rect;ZIF)V
 PLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;ZF)V
-HPLcom/android/server/wm/WindowAnimationSpec;->apply(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;J)V
+HPLcom/android/server/wm/WindowAnimationSpec;->apply(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;J)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/animation/Animation;Landroid/view/animation/AlphaAnimation;,Landroid/view/animation/AnimationSet;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;
 PLcom/android/server/wm/WindowAnimationSpec;->asWindowAnimationSpec()Lcom/android/server/wm/WindowAnimationSpec;
 PLcom/android/server/wm/WindowAnimationSpec;->canSkipFirstFrame()Z
 PLcom/android/server/wm/WindowAnimationSpec;->getDuration()J
-PLcom/android/server/wm/WindowAnimationSpec;->hasExtension()Z
 PLcom/android/server/wm/WindowAnimator$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowAnimator;)V
 PLcom/android/server/wm/WindowAnimator$$ExternalSyntheticLambda0;->run()V
 PLcom/android/server/wm/WindowAnimator$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/WindowAnimator;)V
 HPLcom/android/server/wm/WindowAnimator$$ExternalSyntheticLambda1;->doFrame(J)V
-HPLcom/android/server/wm/WindowAnimator;->$r8$lambda$AS_wbK9i-bc6ocCFop7s9PnXP80(Lcom/android/server/wm/WindowAnimator;J)V
-PLcom/android/server/wm/WindowAnimator;->$r8$lambda$W57Ag5fzVY7lre5WxW-Fd7sotY8(Lcom/android/server/wm/WindowAnimator;)V
+PLcom/android/server/wm/WindowAnimator$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/WindowAnimator;Ljava/util/ArrayList;)V
+HPLcom/android/server/wm/WindowAnimator$$ExternalSyntheticLambda2;->onTransactionCommitted()V
 PLcom/android/server/wm/WindowAnimator;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowAnimator;->addAfterPrepareSurfacesRunnable(Ljava/lang/Runnable;)V
-HPLcom/android/server/wm/WindowAnimator;->animate(J)V
-HPLcom/android/server/wm/WindowAnimator;->cancelAnimation()V
-HPLcom/android/server/wm/WindowAnimator;->executeAfterPrepareSurfacesRunnables()V
-PLcom/android/server/wm/WindowAnimator;->lambda$new$0()V
-HPLcom/android/server/wm/WindowAnimator;->lambda$new$1(J)V
-PLcom/android/server/wm/WindowAnimator;->ready()V
-HPLcom/android/server/wm/WindowAnimator;->scheduleAnimation()V
-HPLcom/android/server/wm/WindowAnimator;->updateRunningExpensiveAnimationsLegacy()V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda10;-><init>()V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda13;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda14;-><init>()V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda3;-><init>()V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda5;-><init>()V
-PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/WindowAnimator;->animate(J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda0;-><init>(I)V
+PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda5;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 PLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper-IA;)V
-HPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->apply(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->apply(Ljava/lang/Object;)Z
-HPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->release()V
-PLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->setConsumer(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/WindowContainer$RemoteToken;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer$RemoteToken;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/WindowContainer$RemoteToken;
-PLcom/android/server/wm/WindowContainer$RemoteToken;->getContainer()Lcom/android/server/wm/WindowContainer;
-PLcom/android/server/wm/WindowContainer$RemoteToken;->toString()Ljava/lang/String;
-HPLcom/android/server/wm/WindowContainer$RemoteToken;->toWindowContainerToken()Landroid/window/WindowContainerToken;
-PLcom/android/server/wm/WindowContainer;->$r8$lambda$P9uMBneLM2Si1UANWoV5uQ4DSY8(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->$r8$lambda$U6J3FM52jcz63vJUvQI_Psg5VIc(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->$r8$lambda$WCX56CLXmDYVEESH4qAkWTB4kQ4(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->$r8$lambda$XL8lUmIHE8kzhQRm7NA0j1UqJ8E(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/WindowContainer;->$r8$lambda$ggkMLWSQVBUcbk3w7M1d4KAgVVA(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->$r8$lambda$mgkrQnQJbqksG7kwkWi3ZEb0Xsc(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowContainer;->-$$Nest$fgetmConsumerWrapperPool(Lcom/android/server/wm/WindowContainer;)Landroid/util/Pools$SynchronizedPool;
+HPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->apply(Ljava/lang/Object;)Z+]Ljava/util/function/Consumer;megamorphic_types
+PLcom/android/server/wm/WindowContainer$RemoteToken;-><init>(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/WindowContainer$RemoteToken;->toString()Ljava/lang/String;
+PLcom/android/server/wm/WindowContainer$RemoteToken;->toWindowContainerToken()Landroid/window/WindowContainerToken;
 HPLcom/android/server/wm/WindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 HPLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;I)V
 HPLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;Ljava/util/Comparator;)V
-PLcom/android/server/wm/WindowContainer;->allSyncFinished()Z
+HPLcom/android/server/wm/WindowContainer;->adjustDims()V
+HPLcom/android/server/wm/WindowContainer;->allSyncFinished()Z
+PLcom/android/server/wm/WindowContainer;->alwaysTruePredicate()Ljava/util/function/Predicate;
 PLcom/android/server/wm/WindowContainer;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/WindowContainer;->asDisplayArea()Lcom/android/server/wm/DisplayArea;
+HPLcom/android/server/wm/WindowContainer;->asDisplayArea()Lcom/android/server/wm/DisplayArea;
 PLcom/android/server/wm/WindowContainer;->asDisplayContent()Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/WindowContainer;->asTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/WindowContainer;->asTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/WindowContainer;->asTaskFragment()Lcom/android/server/wm/TaskFragment;
-PLcom/android/server/wm/WindowContainer;->asWallpaperToken()Lcom/android/server/wm/WallpaperWindowToken;
-PLcom/android/server/wm/WindowContainer;->asWindowState()Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/WindowContainer;->asRootDisplayArea()Lcom/android/server/wm/RootDisplayArea;
+HPLcom/android/server/wm/WindowContainer;->asTask()Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/WindowContainer;->asTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/WindowContainer;->asTaskFragment()Lcom/android/server/wm/TaskFragment;
+HPLcom/android/server/wm/WindowContainer;->asWallpaperToken()Lcom/android/server/wm/WallpaperWindowToken;
+HPLcom/android/server/wm/WindowContainer;->asWindowState()Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/WindowContainer;->asWindowToken()Lcom/android/server/wm/WindowToken;
 HPLcom/android/server/wm/WindowContainer;->assignChildLayers()V
-HPLcom/android/server/wm/WindowContainer;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/WindowContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
-PLcom/android/server/wm/WindowContainer;->assignRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IZ)V
+HPLcom/android/server/wm/WindowContainer;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->assignRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IZ)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayContent$ImeContainer;
 PLcom/android/server/wm/WindowContainer;->canCreateRemoteAnimationTarget()Z
 PLcom/android/server/wm/WindowContainer;->canStartChangeTransition()Z
-PLcom/android/server/wm/WindowContainer;->cancelAnimation()V
-HPLcom/android/server/wm/WindowContainer;->checkAppWindowsReadyToShow()V
+HPLcom/android/server/wm/WindowContainer;->cancelAnimation()V
+PLcom/android/server/wm/WindowContainer;->checkAppWindowsReadyToShow()V
+PLcom/android/server/wm/WindowContainer;->clearMagnificationSpec(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/WindowContainer;->commitPendingTransaction()V
-PLcom/android/server/wm/WindowContainer;->compareTo(Lcom/android/server/wm/WindowContainer;)I
+HPLcom/android/server/wm/WindowContainer;->compareTo(Lcom/android/server/wm/WindowContainer;)I+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/LinkedList;Ljava/util/LinkedList;
 PLcom/android/server/wm/WindowContainer;->computeScreenLayout(III)I
-HPLcom/android/server/wm/WindowContainer;->createMergedSparseArray(Landroid/util/SparseArray;Landroid/util/SparseArray;)Landroid/util/SparseArray;
-HPLcom/android/server/wm/WindowContainer;->createSurfaceControl(Z)V
-PLcom/android/server/wm/WindowContainer;->doAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/WindowContainer;->finishSync(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Z)V
+HPLcom/android/server/wm/WindowContainer;->createMergedSparseArray(Landroid/util/SparseArray;Landroid/util/SparseArray;)Landroid/util/SparseArray;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
+PLcom/android/server/wm/WindowContainer;->createSurfaceControl(Z)V
+HPLcom/android/server/wm/WindowContainer;->doAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+PLcom/android/server/wm/WindowContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/WindowContainer;->enforceSurfaceVisible(Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/WindowContainer;->fillsParent()Z
+HPLcom/android/server/wm/WindowContainer;->finishSync(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Z)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Predicate;)Z
-HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Predicate;Z)Z
+HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Predicate;)Z
+HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->forAllDisplayAreas(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/WindowContainer;->forAllLeafTaskFragments(Ljava/util/function/Predicate;)Z
-HPLcom/android/server/wm/WindowContainer;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/WindowContainer;->forAllLeafTasks(Ljava/util/function/Predicate;)Z
-HPLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Consumer;Z)V
+HPLcom/android/server/wm/WindowContainer;->forAllLeafTaskFragments(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->forAllLeafTasks(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Consumer;)V
+HPLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Predicate;)Z
-HPLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z
+HPLcom/android/server/wm/WindowContainer;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->forAllTaskDisplayAreas(Ljava/util/function/Consumer;)V
 PLcom/android/server/wm/WindowContainer;->forAllTaskDisplayAreas(Ljava/util/function/Consumer;Z)V
 PLcom/android/server/wm/WindowContainer;->forAllTaskDisplayAreas(Ljava/util/function/Predicate;)Z
 PLcom/android/server/wm/WindowContainer;->forAllTaskFragments(Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/WindowContainer;->forAllTaskFragments(Ljava/util/function/Consumer;Z)V
+HPLcom/android/server/wm/WindowContainer;->forAllTaskFragments(Ljava/util/function/Consumer;Z)V
 PLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;)V
 PLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Predicate;)Z
-HPLcom/android/server/wm/WindowContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-HPLcom/android/server/wm/WindowContainer;->forAllWindows(Ljava/util/function/Consumer;Z)V
+PLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Predicate;)Z
+HPLcom/android/server/wm/WindowContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->forAllWindows(Ljava/util/function/Consumer;Z)V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool;]Lcom/android/server/wm/WindowContainer;megamorphic_types
 PLcom/android/server/wm/WindowContainer;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/WindowContainer;
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ[Z)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;ZLcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getActivityBelow(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/RootWindowContainer;,Lcom/android/server/wm/Task;
+PLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ[Z)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/RootWindowContainer;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;ZLcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer;->getActivityAbove(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/WindowContainer;->getActivityBelow(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/WindowContainer;->getAnimatingContainer()Lcom/android/server/wm/WindowContainer;
-HPLcom/android/server/wm/WindowContainer;->getAnimatingContainer(II)Lcom/android/server/wm/WindowContainer;
+HPLcom/android/server/wm/WindowContainer;->getAnimatingContainer(II)Lcom/android/server/wm/WindowContainer;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer;->getAnimation()Lcom/android/server/wm/AnimationAdapter;
 PLcom/android/server/wm/WindowContainer;->getAnimationLeash()Landroid/view/SurfaceControl;
 PLcom/android/server/wm/WindowContainer;->getAnimationLeashParent()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/WindowContainer;->getBottomChild()Lcom/android/server/wm/WindowContainer;
 PLcom/android/server/wm/WindowContainer;->getBottomMostActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;
-HPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/WindowContainer;
-HPLcom/android/server/wm/WindowContainer;->getChildCount()I
+PLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;
+HPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/WindowContainer;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->getChildCount()I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->getControllableInsetProvider()Lcom/android/server/wm/InsetsSourceProvider;
-HPLcom/android/server/wm/WindowContainer;->getDisplayArea()Lcom/android/server/wm/DisplayArea;
-PLcom/android/server/wm/WindowContainer;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/WindowContainer;->getInsetsSourceProviders()Landroid/util/SparseArray;
+HPLcom/android/server/wm/WindowContainer;->getDisplayArea()Lcom/android/server/wm/DisplayArea;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/WindowContainer;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
+HPLcom/android/server/wm/WindowContainer;->getInsetsSourceProviders()Landroid/util/SparseArray;
 PLcom/android/server/wm/WindowContainer;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;)Ljava/lang/Object;
 PLcom/android/server/wm/WindowContainer;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;
 PLcom/android/server/wm/WindowContainer;->getLastLayer()I
-PLcom/android/server/wm/WindowContainer;->getLastOrientationSource()Lcom/android/server/wm/WindowContainer;
+HPLcom/android/server/wm/WindowContainer;->getLastOrientationSource()Lcom/android/server/wm/WindowContainer;
+PLcom/android/server/wm/WindowContainer;->getLastRelativeLayer()Landroid/view/SurfaceControl;
 PLcom/android/server/wm/WindowContainer;->getOrientation()I
-HPLcom/android/server/wm/WindowContainer;->getOrientation(I)I
-PLcom/android/server/wm/WindowContainer;->getOverrideOrientation()I
-HPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/ConfigurationContainer;
+HPLcom/android/server/wm/WindowContainer;->getOrientation(I)I+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->getOverrideOrientation()I
+PLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/ConfigurationContainer;
 HPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/WindowContainer;
 PLcom/android/server/wm/WindowContainer;->getParentSurfaceControl()Landroid/view/SurfaceControl;
 HPLcom/android/server/wm/WindowContainer;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
 PLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex()I
-PLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex(Lcom/android/server/wm/WindowContainer;)I
+HPLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex(Lcom/android/server/wm/WindowContainer;)I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowContainer;->getRelativeDisplayRotation()I
 HPLcom/android/server/wm/WindowContainer;->getRelativePosition(Landroid/graphics/Point;)V
-HPLcom/android/server/wm/WindowContainer;->getRelativePosition(Landroid/graphics/Rect;Landroid/graphics/Point;)V
+HPLcom/android/server/wm/WindowContainer;->getRelativePosition(Landroid/graphics/Rect;Landroid/graphics/Point;)V+]Landroid/graphics/Point;Landroid/graphics/Point;]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types
 PLcom/android/server/wm/WindowContainer;->getRequestedConfigurationOrientation()I
-PLcom/android/server/wm/WindowContainer;->getRequestedConfigurationOrientation(ZI)I
-PLcom/android/server/wm/WindowContainer;->getRootDisplayArea()Lcom/android/server/wm/RootDisplayArea;
-HPLcom/android/server/wm/WindowContainer;->getRootTask(Ljava/util/function/Predicate;)Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/WindowContainer;->getRootTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/WindowContainer;->getSession()Landroid/view/SurfaceSession;
+HPLcom/android/server/wm/WindowContainer;->getRequestedConfigurationOrientation(ZI)I
+HPLcom/android/server/wm/WindowContainer;->getRootDisplayArea()Lcom/android/server/wm/RootDisplayArea;+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/WindowContainer;->getRootTask(Ljava/util/function/Predicate;)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/WindowContainer;->getRootTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowContainer;->getSurfaceControl()Landroid/view/SurfaceControl;
 PLcom/android/server/wm/WindowContainer;->getSurfaceHeight()I
 PLcom/android/server/wm/WindowContainer;->getSurfaceWidth()I
-PLcom/android/server/wm/WindowContainer;->getSyncGroup()Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;
-HPLcom/android/server/wm/WindowContainer;->getSyncTransaction()Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/WindowContainer;->getSyncGroup()Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;
+HPLcom/android/server/wm/WindowContainer;->getSyncTransaction()Landroid/view/SurfaceControl$Transaction;+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/WindowContainer;->getSyncTransactionCommitCallbackDepth()I
 PLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;)Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/WindowContainer;->getTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
-PLcom/android/server/wm/WindowContainer;->getTaskFragment(Ljava/util/function/Predicate;)Lcom/android/server/wm/TaskFragment;
-HPLcom/android/server/wm/WindowContainer;->getTopChild()Lcom/android/server/wm/WindowContainer;
+PLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ[Z)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->getTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
+HPLcom/android/server/wm/WindowContainer;->getTaskFragment(Ljava/util/function/Predicate;)Lcom/android/server/wm/TaskFragment;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->getTopChild()Lcom/android/server/wm/WindowContainer;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->getTopMostActivity()Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/WindowContainer;->getTopMostTask()Lcom/android/server/wm/Task;
 PLcom/android/server/wm/WindowContainer;->getTreeWeight()I
-HPLcom/android/server/wm/WindowContainer;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/WindowContainer;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->getWindowType()I
-HPLcom/android/server/wm/WindowContainer;->handleCompleteDeferredRemoval()Z
+HPLcom/android/server/wm/WindowContainer;->handleCompleteDeferredRemoval()Z+]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->handlesOrientationChangeFromDescendant(I)Z
 PLcom/android/server/wm/WindowContainer;->hasActivity()Z
-HPLcom/android/server/wm/WindowContainer;->hasChild(Lcom/android/server/wm/WindowContainer;)Z
-HPLcom/android/server/wm/WindowContainer;->hasInsetsSourceProvider()Z
+HPLcom/android/server/wm/WindowContainer;->hasChild(Lcom/android/server/wm/WindowContainer;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer;->hasWallpaper()Z
 HPLcom/android/server/wm/WindowContainer;->inTransition()Z
-HPLcom/android/server/wm/WindowContainer;->inTransitionSelfOrParent()Z
+HPLcom/android/server/wm/WindowContainer;->inTransitionSelfOrParent()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/WindowContainer;->isAnimating()Z
-HPLcom/android/server/wm/WindowContainer;->isAnimating(I)Z
-HPLcom/android/server/wm/WindowContainer;->isAnimating(II)Z
+PLcom/android/server/wm/WindowContainer;->isAnimating(I)Z
+HPLcom/android/server/wm/WindowContainer;->isAnimating(II)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/WindowContainer;->isAppTransitioning()Z
-HPLcom/android/server/wm/WindowContainer;->isAttached()Z
-HPLcom/android/server/wm/WindowContainer;->isClosingWhenResizing()Z
-PLcom/android/server/wm/WindowContainer;->isDescendantOf(Lcom/android/server/wm/WindowContainer;)Z
-HPLcom/android/server/wm/WindowContainer;->isExitAnimationRunningSelfOrChild()Z
-HPLcom/android/server/wm/WindowContainer;->isFocusable()Z
-HPLcom/android/server/wm/WindowContainer;->isOnTop()Z
+HPLcom/android/server/wm/WindowContainer;->isAttached()Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/WindowContainer;->isClosingWhenResizing()Z
+HPLcom/android/server/wm/WindowContainer;->isDescendantOf(Lcom/android/server/wm/WindowContainer;)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+PLcom/android/server/wm/WindowContainer;->isDifferentSyncGroup(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
+HPLcom/android/server/wm/WindowContainer;->isExitAnimationRunningSelfOrChild()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->isFocusable()Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/WindowContainer;->isOnTop()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/RootWindowContainer;
 PLcom/android/server/wm/WindowContainer;->isOrganized()Z
-HPLcom/android/server/wm/WindowContainer;->isSelfAnimating(II)Z
-PLcom/android/server/wm/WindowContainer;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
-HPLcom/android/server/wm/WindowContainer;->isVisible()Z
+HPLcom/android/server/wm/WindowContainer;->isSelfAnimating(II)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/WindowContainer;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->isVisible()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/WindowToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowContainer;->isVisibleRequested()Z
-PLcom/android/server/wm/WindowContainer;->isWaitingForTransitionStart()Z
-PLcom/android/server/wm/WindowContainer;->lambda$getActivityBelow$2(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostActivity$3(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$getTopMostTask$12(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$isAppTransitioning$0(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$13(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowContainer;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
-HPLcom/android/server/wm/WindowContainer;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/WindowContainer;->isWaitingForTransitionStart()Z
+HPLcom/android/server/wm/WindowContainer;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/WindowContainer;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;+]Landroid/view/SurfaceControl$Builder;Landroid/view/SurfaceControl$Builder;]Lcom/android/server/wm/WindowContainer;megamorphic_types
 HPLcom/android/server/wm/WindowContainer;->makeSurface()Landroid/view/SurfaceControl$Builder;
-HPLcom/android/server/wm/WindowContainer;->needsZBoost()Z
-HPLcom/android/server/wm/WindowContainer;->obtainConsumerWrapper(Ljava/util/function/Consumer;)Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;
+HPLcom/android/server/wm/WindowContainer;->mergeExcludeInsetsTypesAndNotifyInsetsChanged(I)V
+PLcom/android/server/wm/WindowContainer;->migrateToNewSurfaceControl(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/WindowContainer;->needsZBoost()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->okToAnimate()Z
-PLcom/android/server/wm/WindowContainer;->okToAnimate(ZZ)Z
+HPLcom/android/server/wm/WindowContainer;->okToAnimate(ZZ)Z
 PLcom/android/server/wm/WindowContainer;->okToDisplay()Z
 PLcom/android/server/wm/WindowContainer;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/WindowContainer;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/WindowContainer;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/WindowContainer;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+HPLcom/android/server/wm/WindowContainer;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/WindowContainer;->onAppTransitionDone()V
-HPLcom/android/server/wm/WindowContainer;->onChildAdded(Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/WindowContainer;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer;->onChildRemoved(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer;->onChildVisibilityRequested(Z)V
-HPLcom/android/server/wm/WindowContainer;->onChildVisibleRequestedChanged(Lcom/android/server/wm/WindowContainer;)Z
+HPLcom/android/server/wm/WindowContainer;->onChildRemoved(Lcom/android/server/wm/WindowContainer;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/WindowContainer;->onChildVisibilityRequested(Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/WindowContainer;->onChildVisibleRequestedChanged(Lcom/android/server/wm/WindowContainer;)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/WindowContainer;->onDescendantOrientationChanged(Lcom/android/server/wm/WindowContainer;)Z
 PLcom/android/server/wm/WindowContainer;->onDescendantOverrideConfigurationChanged()V
-HPLcom/android/server/wm/WindowContainer;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/WindowContainer;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Lcom/android/server/wm/WindowContainerListener;Lcom/android/server/wm/DisplayContent$2;,Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
 PLcom/android/server/wm/WindowContainer;->onParentResize()V
 PLcom/android/server/wm/WindowContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/WindowContainer;->onResize()V
 PLcom/android/server/wm/WindowContainer;->onSyncFinishedDrawing()Z
 HPLcom/android/server/wm/WindowContainer;->onSyncReparent(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer;->onSyncTransactionCommitted(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowContainer;->onUnfrozen()V
-PLcom/android/server/wm/WindowContainer;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-HPLcom/android/server/wm/WindowContainer;->prepareSurfaces()V
-PLcom/android/server/wm/WindowContainer;->prepareSync()Z
-PLcom/android/server/wm/WindowContainer;->processGetActivityWithBoundary(Ljava/util/function/Predicate;Lcom/android/server/wm/WindowContainer;ZZ[ZLcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/WindowContainer;->providesOrientation()Z
+HPLcom/android/server/wm/WindowContainer;->onSyncTransactionCommitted(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/WindowContainer;->onUnfrozen()V
+HPLcom/android/server/wm/WindowContainer;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->prepareSurfaces()V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->prepareSync()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/WindowContainer;->providesOrientation()Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types
 PLcom/android/server/wm/WindowContainer;->reassignLayer(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/WindowContainer;->reduceOnAllTaskDisplayAreas(Ljava/util/function/BiFunction;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/WindowContainer;->registerWindowContainerListener(Lcom/android/server/wm/WindowContainerListener;)V
-PLcom/android/server/wm/WindowContainer;->registerWindowContainerListener(Lcom/android/server/wm/WindowContainerListener;Z)V
-PLcom/android/server/wm/WindowContainer;->removeChild(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/WindowContainer;->registerWindowContainerListener(Lcom/android/server/wm/WindowContainerListener;Z)V
+HPLcom/android/server/wm/WindowContainer;->removeChild(Lcom/android/server/wm/WindowContainer;)V
 HPLcom/android/server/wm/WindowContainer;->removeImmediately()V
-PLcom/android/server/wm/WindowContainer;->resetSurfacePositionForAnimationLeash(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/WindowContainer;->reparent(Lcom/android/server/wm/WindowContainer;I)V
+PLcom/android/server/wm/WindowContainer;->reparentSurfaceControl(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+HPLcom/android/server/wm/WindowContainer;->resetSurfacePositionForAnimationLeash(Landroid/view/SurfaceControl$Transaction;)V
 HPLcom/android/server/wm/WindowContainer;->scheduleAnimation()V
-PLcom/android/server/wm/WindowContainer;->sendAppVisibilityToClients()V
+HPLcom/android/server/wm/WindowContainer;->sendAppVisibilityToClients()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->setCanScreenshot(Landroid/view/SurfaceControl$Transaction;Z)Z
 PLcom/android/server/wm/WindowContainer;->setControllableInsetProvider(Lcom/android/server/wm/InsetsSourceProvider;)V
 HPLcom/android/server/wm/WindowContainer;->setInitialSurfaceControlProperties(Landroid/view/SurfaceControl$Builder;)V
 HPLcom/android/server/wm/WindowContainer;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
-PLcom/android/server/wm/WindowContainer;->setOrientation(I)V
-PLcom/android/server/wm/WindowContainer;->setOrientation(ILcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/WindowContainer;->setOverrideOrientation(I)V
-HPLcom/android/server/wm/WindowContainer;->setParent(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer;->setRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
+HPLcom/android/server/wm/WindowContainer;->setParent(Lcom/android/server/wm/WindowContainer;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
+HPLcom/android/server/wm/WindowContainer;->setRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
 PLcom/android/server/wm/WindowContainer;->setSurfaceControl(Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/WindowContainer;->setSyncGroup(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)V
-HPLcom/android/server/wm/WindowContainer;->setVisibleRequested(Z)Z
+HPLcom/android/server/wm/WindowContainer;->setSyncGroup(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)V
+HPLcom/android/server/wm/WindowContainer;->setVisibleRequested(Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Lcom/android/server/wm/WindowContainerListener;Lcom/android/server/wm/DisplayContent$2;,Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;]Ljava/util/List;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->showSurfaceOnCreation()Z
-HPLcom/android/server/wm/WindowContainer;->showWallpaper()Z
+HPLcom/android/server/wm/WindowContainer;->showWallpaper()Z+]Lcom/android/server/wm/ConfigurationContainer;megamorphic_types]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZI)V
 PLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
-PLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Ljava/lang/Runnable;Lcom/android/server/wm/AnimationAdapter;)V
+HPLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Ljava/lang/Runnable;Lcom/android/server/wm/AnimationAdapter;)V
 PLcom/android/server/wm/WindowContainer;->syncNextBuffer()Z
 PLcom/android/server/wm/WindowContainer;->unregisterWindowContainerListener(Lcom/android/server/wm/WindowContainerListener;)V
-HPLcom/android/server/wm/WindowContainer;->updateAboveInsetsState(Landroid/view/InsetsState;Landroid/util/SparseArray;Landroid/util/ArraySet;)V
+HPLcom/android/server/wm/WindowContainer;->updateAboveInsetsState(Landroid/view/InsetsState;Landroid/util/SparseArray;Landroid/util/ArraySet;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowContainer;->updateMergedExcludeInsetsTypes(ILandroid/util/ArraySet;)V
+PLcom/android/server/wm/WindowContainer;->updateOverlayInsetsState(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/WindowContainer;->updateSurfacePosition(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/WindowContainer;->updateSurfacePositionNonOrganized()V
+HPLcom/android/server/wm/WindowContainer;->updateSurfacePositionNonOrganized()V+]Lcom/android/server/wm/WindowContainer;megamorphic_types
 PLcom/android/server/wm/WindowContainer;->waitForAllWindowsDrawn()V
-PLcom/android/server/wm/WindowContainer;->waitForSyncTransactionCommit(Landroid/util/ArraySet;)V
+HPLcom/android/server/wm/WindowContainer;->waitForSyncTransactionCommit(Landroid/util/ArraySet;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/WindowState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowContainer;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
 PLcom/android/server/wm/WindowContainerListener;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/WindowContainerListener;->onRemoved()V
 PLcom/android/server/wm/WindowContainerListener;->onVisibleRequestedChanged(Z)V
 PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl$DeathRecipient;-><init>(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;)V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl$DeathRecipient;-><init>(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl$DeathRecipient-IA;)V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl$DeathRecipient;->linkToDeath()V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->-$$Nest$fgetmClientToken(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;)Landroid/os/IBinder;
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->-$$Nest$fgetmOptions(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;)Landroid/os/Bundle;
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->-$$Nest$fgetmType(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;)I
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->-$$Nest$mregister(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;Z)V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->-$$Nest$mupdateContainer(Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl$DeathRecipient;->binderDied()V
 PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;-><init>(Lcom/android/server/wm/WindowContextListenerController;Lcom/android/server/wm/WindowProcessController;Landroid/os/IBinder;Lcom/android/server/wm/WindowContainer;ILandroid/os/Bundle;)V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;-><init>(Lcom/android/server/wm/WindowContextListenerController;Lcom/android/server/wm/WindowProcessController;Landroid/os/IBinder;Lcom/android/server/wm/WindowContainer;ILandroid/os/Bundle;Lcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl-IA;)V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->clear()V
-HPLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->dispatchWindowContextInfoChange()V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->getUid()I
+HPLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->dispatchWindowContextInfoChange()V+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/WindowToken;
+PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->getWindowContainer()Lcom/android/server/wm/WindowContainer;
 PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->onMergedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->register()V
+PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->onRemoved()V
 PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->register(Z)V
+PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->unregister()V
 PLcom/android/server/wm/WindowContextListenerController$WindowContextListenerImpl;->updateContainer(Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/WindowContextListenerController;-><init>()V
-PLcom/android/server/wm/WindowContextListenerController;->assertCallerCanModifyListener(Landroid/os/IBinder;ZI)Z
-PLcom/android/server/wm/WindowContextListenerController;->getOptions(Landroid/os/IBinder;)Landroid/os/Bundle;
-PLcom/android/server/wm/WindowContextListenerController;->getWindowType(Landroid/os/IBinder;)I
-PLcom/android/server/wm/WindowContextListenerController;->hasListener(Landroid/os/IBinder;)Z
-PLcom/android/server/wm/WindowContextListenerController;->registerWindowContainerListener(Lcom/android/server/wm/WindowProcessController;Landroid/os/IBinder;Lcom/android/server/wm/WindowContainer;ILandroid/os/Bundle;)V
+PLcom/android/server/wm/WindowContextListenerController;->assertCallerCanModifyListener(IZLandroid/os/IBinder;)Z
 PLcom/android/server/wm/WindowContextListenerController;->registerWindowContainerListener(Lcom/android/server/wm/WindowProcessController;Landroid/os/IBinder;Lcom/android/server/wm/WindowContainer;ILandroid/os/Bundle;Z)V
 PLcom/android/server/wm/WindowContextListenerController;->updateContainerForWindowContextListener(Landroid/os/IBinder;Lcom/android/server/wm/WindowContainer;)V
 PLcom/android/server/wm/WindowFrames;-><clinit>()V
 HPLcom/android/server/wm/WindowFrames;-><init>()V
 HPLcom/android/server/wm/WindowFrames;->didFrameSizeChange()Z
-PLcom/android/server/wm/WindowFrames;->hasContentChanged()Z
-PLcom/android/server/wm/WindowFrames;->hasInsetsChanged()Z
-PLcom/android/server/wm/WindowFrames;->isFrameSizeChangeReported()Z
-PLcom/android/server/wm/WindowFrames;->onResizeHandled()V
-HPLcom/android/server/wm/WindowFrames;->parentFrameWasClippedByDisplayCutout()Z
-PLcom/android/server/wm/WindowFrames;->setContentChanged(Z)V
-PLcom/android/server/wm/WindowFrames;->setParentFrameWasClippedByDisplayCutout(Z)V
-HPLcom/android/server/wm/WindowFrames;->setReportResizeHints()Z
-PLcom/android/server/wm/WindowList;-><init>()V
-PLcom/android/server/wm/WindowList;->peekFirst()Ljava/lang/Object;
-HPLcom/android/server/wm/WindowList;->peekLast()Ljava/lang/Object;
-PLcom/android/server/wm/WindowManagerConstants$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
-PLcom/android/server/wm/WindowManagerConstants$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
+PLcom/android/server/wm/WindowManagerConstants$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerConstants;I)V
+PLcom/android/server/wm/WindowManagerConstants$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/wm/WindowManagerConstants$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Ljava/lang/Runnable;Landroid/provider/DeviceConfigInterface;)V
-PLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/provider/DeviceConfigInterface;)V
-PLcom/android/server/wm/WindowManagerConstants;->start(Ljava/util/concurrent/Executor;)V
-PLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExcludedByPreQStickyImmersive()V
-PLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExclusionLimitDp()V
-PLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExclusionLogDebounceMillis()V
+PLcom/android/server/wm/WindowManagerConstants;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerConstants;->updateIgnoreActivityOrientationRequest()V
+PLcom/android/server/wm/WindowManagerConstants;->updateOptOutIgnoreActivityOrientationRequestList()V
 PLcom/android/server/wm/WindowManagerFlags;-><init>()V
-HSPLcom/android/server/wm/WindowManagerGlobalLock;-><init>()V
-PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;-><init>()V
+PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;-><init>(I)V
 PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionPendingLocked()V
-PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionStartingLocked(JJ)I
+PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionStartingLocked(J)I
+PLcom/android/server/wm/WindowManagerInternal$ImeTargetInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/WindowManagerInternal;-><init>()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda0;-><init>([Lcom/android/server/wm/WindowManagerService;Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+PLcom/android/server/wm/WindowManagerInternal;->removeWindowToken(Landroid/os/IBinder;ZI)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda0;-><init>([Lcom/android/server/wm/WindowManagerService;Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Lcom/android/server/wm/AppCompatConfiguration;)V
 PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda16;-><init>()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda18;-><init>()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda21;-><init>()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/wm/WindowManagerService$SettingsObserver;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda22;->run()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda23;-><init>()V
-HPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda23;->get()Ljava/lang/Object;
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda24;-><init>()V
-HPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda24;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;ZZ)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda30;->run()V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda4;->getRootForDisplay(I)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda15;-><init>(IZ)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda19;-><init>(I)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda22;-><init>(Ljava/util/ArrayList;I)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda22;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda25;-><init>(I)V
+HPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda25;->get()Ljava/lang/Object;
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda29;-><init>(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda30;-><init>(ILjava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/InputTarget;I)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda32;->run()V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda4;-><init>(IZLandroid/os/IBinder;)V
+HPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda4;->run()V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda5;-><init>(IZ)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda7;->getRootForDisplay(I)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda8;-><init>(ILjava/lang/Object;)V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda8;->run()V
+PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda9;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda9;->run()V
 PLcom/android/server/wm/WindowManagerService$1;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$2;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$2;-><init>(Lcom/android/server/wm/WindowManagerService;I)V
+PLcom/android/server/wm/WindowManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/wm/WindowManagerService$3;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$3;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowManagerService$3;->dumpHigh(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 PLcom/android/server/wm/WindowManagerService$4;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$4;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
+PLcom/android/server/wm/WindowManagerService$4;->onAppTransitionCancelledLocked(Z)V
+HPLcom/android/server/wm/WindowManagerService$4;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
 PLcom/android/server/wm/WindowManagerService$5;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/WindowManagerService$5;->run()V
 PLcom/android/server/wm/WindowManagerService$6;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/WindowManagerService$7;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$8;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$7;->onOpChanged(ILjava/lang/String;)V
 PLcom/android/server/wm/WindowManagerService$H;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-HPLcom/android/server/wm/WindowManagerService$H;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/wm/WindowManagerService$H;->handleMessage(Landroid/os/Message;)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;
 PLcom/android/server/wm/WindowManagerService$ImeTargetVisibilityPolicyImpl;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$ImeTargetVisibilityPolicyImpl;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService$ImeTargetVisibilityPolicyImpl-IA;)V
 PLcom/android/server/wm/WindowManagerService$LocalService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerService$LocalService;I)V
 PLcom/android/server/wm/WindowManagerService$LocalService$$ExternalSyntheticLambda0;->run()V
-PLcom/android/server/wm/WindowManagerService$LocalService;->$r8$lambda$lk-ezvC20UqC557MIWFnPJCqHrs(Lcom/android/server/wm/WindowManagerService$LocalService;I)V
 PLcom/android/server/wm/WindowManagerService$LocalService;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$LocalService;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService$LocalService-IA;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->addWindowToken(Landroid/os/IBinder;IILandroid/os/Bundle;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->clearSnapshotCache()V
+PLcom/android/server/wm/WindowManagerService$LocalService;->computeWindowsForAccessibility(I)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->getAccessibilityController()Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal;
-PLcom/android/server/wm/WindowManagerService$LocalService;->getDisplayIdForWindow(Landroid/os/IBinder;)I
+HPLcom/android/server/wm/WindowManagerService$LocalService;->getDisplayIdForWindow(Landroid/os/IBinder;)I
 PLcom/android/server/wm/WindowManagerService$LocalService;->getFocusedWindowTokenFromWindowStates()Landroid/os/IBinder;
+PLcom/android/server/wm/WindowManagerService$LocalService;->getKeyInterceptionInfoFromToken(Landroid/os/IBinder;)Lcom/android/internal/policy/KeyInterceptionInfo;
+PLcom/android/server/wm/WindowManagerService$LocalService;->getMagnificationRegion(ILandroid/graphics/Region;)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->getTopFocusedDisplayId()I
+PLcom/android/server/wm/WindowManagerService$LocalService;->getWindowName(Landroid/os/IBinder;)Ljava/lang/String;
+PLcom/android/server/wm/WindowManagerService$LocalService;->getWindowTransformationMatrixAndMagnificationSpec(Landroid/os/IBinder;)Landroid/util/Pair;
 HPLcom/android/server/wm/WindowManagerService$LocalService;->hasInputMethodClientFocus(Landroid/os/IBinder;III)I
 PLcom/android/server/wm/WindowManagerService$LocalService;->hasNavigationBar(I)Z
-PLcom/android/server/wm/WindowManagerService$LocalService;->lambda$onDisplayManagerReceivedDeviceState$0(I)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z
 PLcom/android/server/wm/WindowManagerService$LocalService;->onDisplayManagerReceivedDeviceState(I)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->onToggleImeRequested(ZLandroid/os/IBinder;Landroid/os/IBinder;I)Lcom/android/server/wm/WindowManagerInternal$ImeTargetInfo;
 PLcom/android/server/wm/WindowManagerService$LocalService;->registerAppTransitionListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->registerOnWindowRemovedListener(Lcom/android/server/wm/WindowManagerInternal$OnWindowRemovedListener;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->removeWindowToken(Landroid/os/IBinder;ZZI)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->reportPasswordChanged(I)V
 HPLcom/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;->requestWindowFocus(Landroid/os/IBinder;)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->setAccessibilityIdToSurfaceMetadata(Landroid/os/IBinder;I)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setDismissImeOnBackKeyPressed(Z)V
-PLcom/android/server/wm/WindowManagerService$LocalService;->setInputMethodTargetChangeListener(Lcom/android/server/wm/ImeTargetChangeListener;)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
+PLcom/android/server/wm/WindowManagerService$LocalService;->setOnImeRequestedChangedListener(Lcom/android/server/wm/WindowManagerInternal$OnImeRequestedChangedListener;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setWallpaperCropHints(Landroid/os/IBinder;Landroid/util/SparseArray;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setWallpaperCropUtils(Lcom/android/server/wallpaper/WallpaperCropper$WallpaperCropUtils;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setWallpaperShowWhenLocked(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setWindowsForAccessibilityCallback(ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)V
-PLcom/android/server/wm/WindowManagerService$LocalService;->updateInputMethodTargetWindow(Landroid/os/IBinder;Landroid/os/IBinder;)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->shouldRestoreImeVisibility(Landroid/os/IBinder;)Z
+HPLcom/android/server/wm/WindowManagerService$LocalService;->updateInputMethodTargetWindow(Landroid/os/IBinder;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->waitForAllWindowsDrawn(Landroid/os/Message;JI)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->waitForAllWindowsDrawnLocked(Landroid/os/Message;JI)Z
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$SettingsObserver;->loadSettings()V
+PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateDisableSecureWindows()V
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateMaximumObscuringOpacityForTouch()V
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateSystemUiSettings(Z)V
-PLcom/android/server/wm/WindowManagerService;->$r8$lambda$-03A0KzACDP8viIeBR6fHGPyC3E(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService;->$r8$lambda$5NrEVxBS-ypo1Qb5HZIOjzN6KD0(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;ZZ)V
-PLcom/android/server/wm/WindowManagerService;->$r8$lambda$mwBTKetH1qw0F1b0kyWqrfq23P8([Lcom/android/server/wm/WindowManagerService;Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
-PLcom/android/server/wm/WindowManagerService;->$r8$lambda$q098u3YRqNN-dXhSIeNTldOKDX4(Lcom/android/server/wm/WindowManagerService;I)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/WindowManagerService;->-$$Nest$fgetmTransaction(Lcom/android/server/wm/WindowManagerService;)Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/WindowManagerService;->-$$Nest$mcheckBootAnimationCompleteLocked(Lcom/android/server/wm/WindowManagerService;)Z
-PLcom/android/server/wm/WindowManagerService;->-$$Nest$mperformEnableScreen(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService;->-$$Nest$mdoDump(Lcom/android/server/wm/WindowManagerService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowManagerService;->-$$Nest$monPointerDownOutsideFocusLocked(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/InputTarget;Z)V
 HSPLcom/android/server/wm/WindowManagerService;-><clinit>()V
-HPLcom/android/server/wm/WindowManagerService;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+PLcom/android/server/wm/WindowManagerService;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Lcom/android/server/wm/AppCompatConfiguration;)V
 PLcom/android/server/wm/WindowManagerService;->addKeyguardLockedStateListener(Lcom/android/internal/policy/IKeyguardLockedStateListener;)V
 HPLcom/android/server/wm/WindowManagerService;->addWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIILandroid/view/InputChannel;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/graphics/Rect;[F)I
 PLcom/android/server/wm/WindowManagerService;->addWindowToken(Landroid/os/IBinder;IILandroid/os/Bundle;)V
-PLcom/android/server/wm/WindowManagerService;->applyForcedPropertiesForDefaultDisplay()Z
-HPLcom/android/server/wm/WindowManagerService;->attachWindowContextToDisplayArea(Landroid/app/IApplicationThread;Landroid/os/IBinder;IILandroid/os/Bundle;)Landroid/window/WindowContextInfo;
+PLcom/android/server/wm/WindowManagerService;->applyForcedPropertiesForDefaultDisplay()V
+PLcom/android/server/wm/WindowManagerService;->attachWindowContextToDisplayArea(Landroid/app/IApplicationThread;Landroid/os/IBinder;IILandroid/os/Bundle;)Landroid/window/WindowContextInfo;
+PLcom/android/server/wm/WindowManagerService;->attachWindowContextToDisplayContent(Landroid/app/IApplicationThread;Landroid/os/IBinder;I)Landroid/window/WindowContextInfo;
 PLcom/android/server/wm/WindowManagerService;->attachWindowContextToWindowToken(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/os/IBinder;)Landroid/window/WindowContextInfo;
 HSPLcom/android/server/wm/WindowManagerService;->boostPriorityForLockedSection()V
 PLcom/android/server/wm/WindowManagerService;->checkBootAnimationCompleteLocked()Z
-PLcom/android/server/wm/WindowManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/wm/WindowManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;Z)Z
-HPLcom/android/server/wm/WindowManagerService;->checkDrawnWindowsLocked()V
+PLcom/android/server/wm/WindowManagerService;->checkCallingPermission$1(Ljava/lang/String;Ljava/lang/String;Z)Z
+HPLcom/android/server/wm/WindowManagerService;->checkDrawnWindowsLocked()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowManagerService;->closeSystemDialogs(Ljava/lang/String;)V
 PLcom/android/server/wm/WindowManagerService;->computeNewConfiguration(I)Landroid/content/res/Configuration;
-PLcom/android/server/wm/WindowManagerService;->computeNewConfigurationLocked(I)Landroid/content/res/Configuration;
-PLcom/android/server/wm/WindowManagerService;->createSurfaceControl(Landroid/view/SurfaceControl;ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)I
-PLcom/android/server/wm/WindowManagerService;->createWatermark()V
+HPLcom/android/server/wm/WindowManagerService;->createSurfaceControl(Landroid/view/SurfaceControl;ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)I
+PLcom/android/server/wm/WindowManagerService;->detachWindowContext(Landroid/os/IBinder;)V
 PLcom/android/server/wm/WindowManagerService;->detectSafeMode()Z
-PLcom/android/server/wm/WindowManagerService;->dispatchImeInputTargetVisibilityChanged(Landroid/os/IBinder;ZZ)V
-PLcom/android/server/wm/WindowManagerService;->dispatchKeyguardLockedState()V
+HPLcom/android/server/wm/WindowManagerService;->dispatchImeInputTargetVisibilityChanged(Landroid/os/IBinder;ZZI)V
+PLcom/android/server/wm/WindowManagerService;->dispatchImeTargetOverlayVisibilityChanged(IIZZ)V
 PLcom/android/server/wm/WindowManagerService;->displayReady()V
-PLcom/android/server/wm/WindowManagerService;->enableScreenAfterBoot()V
-PLcom/android/server/wm/WindowManagerService;->enableScreenIfNeeded()V
+PLcom/android/server/wm/WindowManagerService;->doesAddToastWindowRequireToken(Ljava/lang/String;ILcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/WindowManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/wm/WindowManagerService;->dumpAccessibilityController(Ljava/io/PrintWriter;Z)V
+PLcom/android/server/wm/WindowManagerService;->dumpAnimatorLocked(Ljava/io/PrintWriter;Z)V
+PLcom/android/server/wm/WindowManagerService;->dumpDebugLocked(ILandroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/WindowManagerService;->dumpHighRefreshRateBlacklist(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerService;->dumpSessionsLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerService;->dumpTokensLocked(Ljava/io/PrintWriter;Z)V
+PLcom/android/server/wm/WindowManagerService;->dumpTraceStatus(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerService;->dumpWindowsLocked(Ljava/io/PrintWriter;ZLjava/util/ArrayList;)V
 HPLcom/android/server/wm/WindowManagerService;->enableScreenIfNeededLocked()V
-PLcom/android/server/wm/WindowManagerService;->enforceSubscribeToKeyguardLockedStatePermission()V
-PLcom/android/server/wm/WindowManagerService;->excludeWindowTypeFromTapOutTask(I)Z
-HPLcom/android/server/wm/WindowManagerService;->finishDrawingWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;I)V
+PLcom/android/server/wm/WindowManagerService;->executeAppTransition()V
 PLcom/android/server/wm/WindowManagerService;->freezeDisplayRotation(IILjava/lang/String;)V
 PLcom/android/server/wm/WindowManagerService;->freezeRotation(ILjava/lang/String;)V
-PLcom/android/server/wm/WindowManagerService;->getAnimatorDurationScaleSetting()F
 PLcom/android/server/wm/WindowManagerService;->getBaseDisplaySize(ILandroid/graphics/Point;)V
-PLcom/android/server/wm/WindowManagerService;->getCameraLensCoverState()I
-HPLcom/android/server/wm/WindowManagerService;->getCurrentAnimatorScale()F
+PLcom/android/server/wm/WindowManagerService;->getCurrentAnimatorScale()F
 HPLcom/android/server/wm/WindowManagerService;->getDefaultDisplayContentLocked()Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/WindowManagerService;->getDefaultDisplayRotation()I
-PLcom/android/server/wm/WindowManagerService;->getDisplayAreaPolicyProvider()Lcom/android/server/wm/DisplayAreaPolicy$Provider;
 PLcom/android/server/wm/WindowManagerService;->getDisplayContentOrCreate(ILandroid/os/IBinder;)Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/WindowManagerService;->getFocusedWindowLocked()Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/WindowManagerService;->getFocusedWindow()Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/WindowManagerService;->getForcedDisplayDensityForUserLocked(I)I
 PLcom/android/server/wm/WindowManagerService;->getImeDisplayId()I
 PLcom/android/server/wm/WindowManagerService;->getInputManagerCallback()Lcom/android/server/wm/InputManagerCallback;
-PLcom/android/server/wm/WindowManagerService;->getInputTargetFromToken(Landroid/os/IBinder;)Lcom/android/server/wm/InputTarget;
-PLcom/android/server/wm/WindowManagerService;->getInputTargetFromWindowTokenLocked(Landroid/os/IBinder;)Lcom/android/server/wm/InputTarget;
-HPLcom/android/server/wm/WindowManagerService;->getInsetsSourceControls(Lcom/android/server/wm/WindowState;Landroid/view/InsetsSourceControl$Array;)V
-PLcom/android/server/wm/WindowManagerService;->getLidState()I
-HPLcom/android/server/wm/WindowManagerService;->getRecentsAnimationController()Lcom/android/server/wm/RecentsAnimationController;
-PLcom/android/server/wm/WindowManagerService;->getTaskSnapshot(IIZZ)Landroid/window/TaskSnapshot;
-PLcom/android/server/wm/WindowManagerService;->getTransitionAnimationScaleSetting()F
-PLcom/android/server/wm/WindowManagerService;->getWindowAnimationScaleLocked()F
-PLcom/android/server/wm/WindowManagerService;->getWindowAnimationScaleSetting()F
-PLcom/android/server/wm/WindowManagerService;->getWindowManagerLock()Ljava/lang/Object;
+HPLcom/android/server/wm/WindowManagerService;->getInputTargetFromToken(Landroid/os/IBinder;)Lcom/android/server/wm/InputTarget;+]Ljava/util/HashMap;Ljava/util/HashMap;
+HPLcom/android/server/wm/WindowManagerService;->getInputTargetFromWindowTokenLocked(Landroid/os/IBinder;)Lcom/android/server/wm/InputTarget;
+PLcom/android/server/wm/WindowManagerService;->getMostRecentActivityInAdjacent(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/WindowManagerService;->getPossibleDisplayInfo(I)Ljava/util/List;
+PLcom/android/server/wm/WindowManagerService;->getWindowInsets(ILandroid/os/IBinder;Landroid/view/InsetsState;)Z
 PLcom/android/server/wm/WindowManagerService;->grantInputChannel(Lcom/android/server/wm/Session;IIILandroid/view/SurfaceControl;Landroid/os/IBinder;Landroid/window/InputTransferToken;IIIILandroid/os/IBinder;Landroid/window/InputTransferToken;Ljava/lang/String;Landroid/view/InputChannel;)V
+PLcom/android/server/wm/WindowManagerService;->handlePointerDownOutsideFocus(Lcom/android/server/wm/InputTarget;)V
+PLcom/android/server/wm/WindowManagerService;->handleTaskFocusChange(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/WindowManagerService;->hasNavigationBar(I)Z
 PLcom/android/server/wm/WindowManagerService;->hideBootMessagesLocked()V
-PLcom/android/server/wm/WindowManagerService;->initPolicy()V
-PLcom/android/server/wm/WindowManagerService;->isDisplayRotationFrozen(I)Z
+PLcom/android/server/wm/WindowManagerService;->isCallerVirtualDeviceOwner(II)Z
 PLcom/android/server/wm/WindowManagerService;->isInTouchMode(I)Z
-PLcom/android/server/wm/WindowManagerService;->isKeyguardLocked()Z
+HPLcom/android/server/wm/WindowManagerService;->isKeyguardLocked()Z
 HPLcom/android/server/wm/WindowManagerService;->isKeyguardSecure(I)Z
-PLcom/android/server/wm/WindowManagerService;->isRecentsAnimationTarget(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowManagerService;->isRotationFrozen()Z
 PLcom/android/server/wm/WindowManagerService;->isSafeModeEnabled()Z
-HPLcom/android/server/wm/WindowManagerService;->isUserVisible(I)Z
-PLcom/android/server/wm/WindowManagerService;->lambda$dispatchImeInputTargetVisibilityChanged$7(Landroid/os/IBinder;ZZ)V
-PLcom/android/server/wm/WindowManagerService;->lambda$dispatchKeyguardLockedState$5()V
-PLcom/android/server/wm/WindowManagerService;->lambda$main$1([Lcom/android/server/wm/WindowManagerService;Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
-PLcom/android/server/wm/WindowManagerService;->lambda$new$2(I)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)Lcom/android/server/wm/WindowManagerService;
-HPLcom/android/server/wm/WindowManagerService;->makeSurfaceBuilder(Landroid/view/SurfaceSession;)Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/PhoneWindowManager;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/WindowManagerService;
+PLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Lcom/android/server/wm/AppCompatConfiguration;)Lcom/android/server/wm/WindowManagerService;
+PLcom/android/server/wm/WindowManagerService;->makeSurfaceBuilder()Landroid/view/SurfaceControl$Builder;
 PLcom/android/server/wm/WindowManagerService;->makeWindowFreezingScreenIfNeededLocked(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowManagerService;->mapOrientationRequest(I)I
-HPLcom/android/server/wm/WindowManagerService;->monitor()V
-PLcom/android/server/wm/WindowManagerService;->notifyFocusChanged()V
-PLcom/android/server/wm/WindowManagerService;->onAnimationFinished()V
+PLcom/android/server/wm/WindowManagerService;->monitor()V
+PLcom/android/server/wm/WindowManagerService;->moveDisplayToTopInternal(I)V
+HPLcom/android/server/wm/WindowManagerService;->onAnimationFinished()V
 PLcom/android/server/wm/WindowManagerService;->onInitReady()V
-PLcom/android/server/wm/WindowManagerService;->onKeyguardShowingAndNotOccludedChanged()V
 PLcom/android/server/wm/WindowManagerService;->onProcessActivityVisibilityChanged(IZ)V
 PLcom/android/server/wm/WindowManagerService;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/WindowManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 PLcom/android/server/wm/WindowManagerService;->onSystemUiStarted()V
 PLcom/android/server/wm/WindowManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/wm/WindowManagerService;->onUserSwitched()V
 PLcom/android/server/wm/WindowManagerService;->openSession(Landroid/view/IWindowSessionCallback;)Landroid/view/IWindowSession;
 PLcom/android/server/wm/WindowManagerService;->performBootTimeout()V
-HPLcom/android/server/wm/WindowManagerService;->performEnableScreen()V
-HPLcom/android/server/wm/WindowManagerService;->postWindowRemoveCleanupLocked(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowManagerService;->queryHdrSupport()Z
-PLcom/android/server/wm/WindowManagerService;->queryWideColorGamutSupport()Z
+PLcom/android/server/wm/WindowManagerService;->performEnableScreen()V
 PLcom/android/server/wm/WindowManagerService;->registerDecorViewGestureListener(Landroid/view/IDecorViewGestureListener;I)V
 PLcom/android/server/wm/WindowManagerService;->registerDisplayWindowListener(Landroid/view/IDisplayWindowListener;)[I
 PLcom/android/server/wm/WindowManagerService;->registerSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;I)V
 PLcom/android/server/wm/WindowManagerService;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z
-HPLcom/android/server/wm/WindowManagerService;->relayoutWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIIILandroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/os/Bundle;)I
-PLcom/android/server/wm/WindowManagerService;->removeClientToken(Lcom/android/server/wm/Session;Landroid/os/IBinder;)V
-PLcom/android/server/wm/WindowManagerService;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V
+PLcom/android/server/wm/WindowManagerService;->removeKeyguardLockedStateListener(Lcom/android/internal/policy/IKeyguardLockedStateListener;)V
+PLcom/android/server/wm/WindowManagerService;->removeWindowToken(Landroid/os/IBinder;I)V
 PLcom/android/server/wm/WindowManagerService;->removeWindowToken(Landroid/os/IBinder;ZZI)V
-HPLcom/android/server/wm/WindowManagerService;->reportFocusChanged(Landroid/os/IBinder;Landroid/os/IBinder;)V
+PLcom/android/server/wm/WindowManagerService;->reportDecorViewGestureChanged(Lcom/android/server/wm/Session;Landroid/view/IWindow;Z)V
+PLcom/android/server/wm/WindowManagerService;->reportSystemGestureExclusionChanged(Lcom/android/server/wm/Session;Landroid/view/IWindow;Ljava/util/List;)V
+PLcom/android/server/wm/WindowManagerService;->requestAssistScreenshot(Landroid/app/IAssistDataReceiver;)Z
 PLcom/android/server/wm/WindowManagerService;->requestTraversal()V
 HSPLcom/android/server/wm/WindowManagerService;->resetPriorityAfterLockedSection()V
-PLcom/android/server/wm/WindowManagerService;->sanitizeFlagSlippery(ILjava/lang/String;II)I
-PLcom/android/server/wm/WindowManagerService;->sanitizeSpyWindow(ILjava/lang/String;II)I
-PLcom/android/server/wm/WindowManagerService;->sanitizeWindowType(Lcom/android/server/wm/Session;ILandroid/os/IBinder;I)I
+PLcom/android/server/wm/WindowManagerService;->sanitizeFlagSlippery(IIILjava/lang/String;)I
+PLcom/android/server/wm/WindowManagerService;->sanitizeInputFeatures(IILjava/lang/String;IZ)I
 HPLcom/android/server/wm/WindowManagerService;->scheduleAnimationLocked()V
-PLcom/android/server/wm/WindowManagerService;->setAnimatorDurationScale(F)V
 PLcom/android/server/wm/WindowManagerService;->setDisplayChangeWindowController(Landroid/view/IDisplayChangeWindowController;)V
 PLcom/android/server/wm/WindowManagerService;->setDisplayWindowInsetsController(ILandroid/view/IDisplayWindowInsetsController;)V
 PLcom/android/server/wm/WindowManagerService;->setEventDispatching(Z)V
 PLcom/android/server/wm/WindowManagerService;->setFixedToUserRotation(II)V
-PLcom/android/server/wm/WindowManagerService;->setGlobalShadowSettings()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
-PLcom/android/server/wm/WindowManagerService;->showEmulatorDisplayOverlayIfNeeded()V
-PLcom/android/server/wm/WindowManagerService;->stopFreezingDisplayLocked()V
-PLcom/android/server/wm/WindowManagerService;->systemReady()V
-PLcom/android/server/wm/WindowManagerService;->tryStartExitingAnimation(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)V
+HPLcom/android/server/wm/WindowManagerService;->showToastIfBlockingScreenCapture(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WindowManagerService;->stopFreezingDisplayLocked()V
+PLcom/android/server/wm/WindowManagerService;->systemReady$1()V
+PLcom/android/server/wm/WindowManagerService;->takeAssistScreenshot(Ljava/util/Set;)Landroid/window/ScreenCapture$ScreenshotHardwareBuffer;
+HPLcom/android/server/wm/WindowManagerService;->tryStartExitingAnimation(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)V
 PLcom/android/server/wm/WindowManagerService;->unprivilegedAppCanCreateTokenWith(Lcom/android/server/wm/WindowState;IIILandroid/os/IBinder;Ljava/lang/String;)Z
-HPLcom/android/server/wm/WindowManagerService;->updateFocusedWindowLocked(IZ)Z
+PLcom/android/server/wm/WindowManagerService;->updateDisplayWindowRequestedVisibleTypes(IILandroid/view/inputmethod/ImeTracker$Token;)V
+HPLcom/android/server/wm/WindowManagerService;->updateFocusedWindowLocked(IZ)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowManagerService;->updateInputChannel(Landroid/os/IBinder;IIILandroid/view/SurfaceControl;Ljava/lang/String;Landroid/view/InputApplicationHandle;IIIILandroid/graphics/Region;Landroid/os/IBinder;)V
-PLcom/android/server/wm/WindowManagerService;->updateNonSystemOverlayWindowsVisibilityIfNeeded(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/WindowManagerService;->updateRotation(ZZ)V
-HPLcom/android/server/wm/WindowManagerService;->updateRotationUnchecked(ZZ)V
-HPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/os/IBinder;Z)Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/view/IWindow;Z)Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/WindowManagerService;->updateNonSystemOverlayWindowsVisibilityIfNeeded(Lcom/android/server/wm/WindowState;Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+PLcom/android/server/wm/WindowManagerService;->updateRotationUnchecked(ZZ)V
+HPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/os/IBinder;Z)Lcom/android/server/wm/WindowState;+]Ljava/util/HashMap;Ljava/util/HashMap;
+HPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/view/IWindow;)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/WindowManagerShellCommand$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowManagerShellCommand;ILjava/util/ArrayList;)V
+PLcom/android/server/wm/WindowManagerShellCommand$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowManagerShellCommand;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerShellCommand;->onCommand(Ljava/lang/String;)I
+PLcom/android/server/wm/WindowManagerShellCommand;->runDumpVisibleWindowViews(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/WindowManagerShellCommand;->runWmShellCommand(Ljava/io/PrintWriter;)I
 HSPLcom/android/server/wm/WindowManagerThreadPriorityBooster;-><init>()V
 HSPLcom/android/server/wm/WindowManagerThreadPriorityBooster;->boost()V
 HSPLcom/android/server/wm/WindowManagerThreadPriorityBooster;->reset()V
-PLcom/android/server/wm/WindowManagerThreadPriorityBooster;->setAppTransitionRunning(Z)V
-PLcom/android/server/wm/WindowManagerThreadPriorityBooster;->updatePriorityLocked()V
-PLcom/android/server/wm/WindowOrganizerController$CallerInfo;-><init>()V
+PLcom/android/server/wm/WindowOrganizerController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/WindowOrganizerController;Lcom/android/server/wm/Transition;Landroid/window/WindowContainerTransaction;Lcom/android/server/wm/WindowOrganizerController$CallerInfo;Lcom/android/server/wm/Transition$ReadyCondition;Z)V
+PLcom/android/server/wm/WindowOrganizerController$$ExternalSyntheticLambda5;->onCollectStarted(Z)V
+HPLcom/android/server/wm/WindowOrganizerController$CallerInfo;-><init>()V
 HSPLcom/android/server/wm/WindowOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/window/WindowContainerTransaction;ILcom/android/server/wm/Transition;Lcom/android/server/wm/WindowOrganizerController$CallerInfo;)I
-PLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/window/WindowContainerTransaction;ILcom/android/server/wm/Transition;Lcom/android/server/wm/WindowOrganizerController$CallerInfo;Lcom/android/server/wm/Transition;)I
-PLcom/android/server/wm/WindowOrganizerController;->finishTransition(Landroid/os/IBinder;Landroid/window/WindowContainerTransaction;)V
+PLcom/android/server/wm/WindowOrganizerController;->applyHierarchyOp(Landroid/window/WindowContainerTransaction$HierarchyOp;IILcom/android/server/wm/ActionChain;ZLcom/android/server/wm/WindowOrganizerController$CallerInfo;Landroid/os/IBinder;Landroid/window/ITaskFragmentOrganizer;)I
+PLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/window/WindowContainerTransaction;)V
+HPLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/window/WindowContainerTransaction;ILcom/android/server/wm/ActionChain;Lcom/android/server/wm/WindowOrganizerController$CallerInfo;)I
+PLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/window/WindowContainerTransaction;ILcom/android/server/wm/ActionChain;Lcom/android/server/wm/WindowOrganizerController$CallerInfo;Z)I
+PLcom/android/server/wm/WindowOrganizerController;->configurationsAreEqualForOrganizer(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z
+HPLcom/android/server/wm/WindowOrganizerController;->finishTransition(Landroid/os/IBinder;Landroid/window/WindowContainerTransaction;)V
 PLcom/android/server/wm/WindowOrganizerController;->getApplyToken()Landroid/os/IBinder;
 PLcom/android/server/wm/WindowOrganizerController;->getDisplayAreaOrganizerController()Landroid/window/IDisplayAreaOrganizerController;
 PLcom/android/server/wm/WindowOrganizerController;->getTaskOrganizerController()Landroid/window/ITaskOrganizerController;
-PLcom/android/server/wm/WindowOrganizerController;->getTransitionController()Lcom/android/server/wm/TransitionController;
 PLcom/android/server/wm/WindowOrganizerController;->getTransitionMetricsReporter()Landroid/window/ITransitionMetricsReporter;
+PLcom/android/server/wm/WindowOrganizerController;->isLockTaskModeViolation(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;Z)Z
 PLcom/android/server/wm/WindowOrganizerController;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/wm/WindowOrganizerController;->registerTransitionPlayer(Landroid/window/ITransitionPlayer;)V
-PLcom/android/server/wm/WindowOrganizerController;->startTransition(ILandroid/os/IBinder;Landroid/window/WindowContainerTransaction;)Landroid/os/IBinder;
+PLcom/android/server/wm/WindowOrganizerController;->sanitizeAndApplyHierarchyOpForTask(Lcom/android/server/wm/Task;Landroid/window/WindowContainerTransaction$HierarchyOp;)I
+PLcom/android/server/wm/WindowOrganizerController;->setAllReadyIfNeeded(Lcom/android/server/wm/Transition;Landroid/window/WindowContainerTransaction;)V
+PLcom/android/server/wm/WindowOrganizerController;->startNewTransition(ILandroid/window/WindowContainerTransaction;)Landroid/os/IBinder;
+HPLcom/android/server/wm/WindowOrganizerController;->startTransition(ILandroid/os/IBinder;Landroid/window/WindowContainerTransaction;)Lcom/android/server/wm/Transition$Token;
 PLcom/android/server/wm/WindowOrganizerController;->startTransition(Landroid/os/IBinder;Landroid/window/WindowContainerTransaction;)V
 PLcom/android/server/wm/WindowOrientationListener$AccelSensorJudge;-><init>(Lcom/android/server/wm/WindowOrientationListener;Landroid/content/Context;)V
-PLcom/android/server/wm/WindowOrientationListener$OrientationJudge;-><init>(Lcom/android/server/wm/WindowOrientationListener;)V
+PLcom/android/server/wm/WindowOrientationListener$AccelSensorJudge;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/WindowOrientationListener$AccelSensorJudge;->nextTiltHistoryIndexLocked(I)I
+PLcom/android/server/wm/WindowOrientationListener$AccelSensorJudge;->onTouchEndLocked(J)V
+PLcom/android/server/wm/WindowOrientationListener$AccelSensorJudge;->onTouchStartLocked()V
 PLcom/android/server/wm/WindowOrientationListener;-><clinit>()V
 PLcom/android/server/wm/WindowOrientationListener;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
-PLcom/android/server/wm/WindowOrientationListener;-><init>(Landroid/content/Context;Landroid/os/Handler;II)V
-PLcom/android/server/wm/WindowOrientationListener;->canDetectOrientation()Z
-PLcom/android/server/wm/WindowOrientationListener;->disable()V
-PLcom/android/server/wm/WindowOrientationListener;->getHandler()Landroid/os/Handler;
 PLcom/android/server/wm/WindowOrientationListener;->getProposedRotation()I
-PLcom/android/server/wm/WindowOrientationListener;->setCurrentRotation(I)V
-PLcom/android/server/wm/WindowOrientationListener;->shouldStayEnabledWhileDreaming()Z
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda10;-><init>()V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda1;-><init>()V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/WindowProcessController;Z)V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda2;->run()V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda4;-><init>()V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;-><init>()V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda8;->test(I)Z
-PLcom/android/server/wm/WindowProcessController;->$r8$lambda$MrxcMrQULT9udb0_Bvq5Va6C48k(Lcom/android/server/wm/WindowProcessController;Z)V
-HPLcom/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
-PLcom/android/server/wm/WindowProcessController;->addActivityIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/WindowProcessController;->addAnimatingReason(I)V
-HPLcom/android/server/wm/WindowProcessController;->addBoundClientUid(ILjava/lang/String;J)V
-PLcom/android/server/wm/WindowProcessController;->addOrUpdateBackgroundStartPrivileges(Landroid/os/Binder;Landroid/app/BackgroundStartPrivileges;)V
-HPLcom/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$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/WindowProcessController;Z)V
+HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda1;->run()V
+HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda4;-><init>(I)V
+HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda5;-><init>(ILcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda5;->run()V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;-><init>(I)V
+PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowProcessController;-><clinit>()V
+HPLcom/android/server/wm/WindowProcessController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;IILcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/wm/WindowProcessController;->addBoundClientUid(ILjava/lang/String;J)V+]Landroid/util/IntArray;Landroid/util/IntArray;
 PLcom/android/server/wm/WindowProcessController;->addToPendingTop()V
-PLcom/android/server/wm/WindowProcessController;->appEarlyNotResponding(Ljava/lang/String;Ljava/lang/Runnable;)V
-PLcom/android/server/wm/WindowProcessController;->appNotResponding(Ljava/lang/String;Ljava/lang/Runnable;Ljava/lang/Runnable;)Z
-HPLcom/android/server/wm/WindowProcessController;->areBackgroundActivityStartsAllowed(IZ)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;
-HPLcom/android/server/wm/WindowProcessController;->areBackgroundFgsStartsAllowed()Z
-HPLcom/android/server/wm/WindowProcessController;->clearActivities()V
-HPLcom/android/server/wm/WindowProcessController;->clearBoundClientUids()V
-PLcom/android/server/wm/WindowProcessController;->clearPackageList()V
-HPLcom/android/server/wm/WindowProcessController;->clearRecentTasks()V
-HPLcom/android/server/wm/WindowProcessController;->computeOomAdjFromActivities(Lcom/android/server/wm/WindowProcessController$ComputeOomAdjCallback;)I
-HPLcom/android/server/wm/WindowProcessController;->computeProcessActivityState()V
+HPLcom/android/server/wm/WindowProcessController;->applyConfigGenderOverride(Landroid/content/res/Configuration;ILcom/android/server/grammaticalinflection/GrammaticalInflectionService$GrammaticalInflectionManagerInternalImpl;I)Z
+HPLcom/android/server/wm/WindowProcessController;->areBackgroundActivityStartsAllowed(ILcom/android/server/wm/BackgroundLaunchProcessController$BalCheckConfiguration;)Lcom/android/server/wm/BackgroundActivityStartController$BalVerdict;+]Landroid/app/BackgroundStartPrivileges;Landroid/app/BackgroundStartPrivileges;]Landroid/util/IntArray;Landroid/util/IntArray;]Ljava/util/List;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowProcessController;->computeProcessActivityState()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/Executor;Landroid/os/HandlerExecutor;
 PLcom/android/server/wm/WindowProcessController;->createProfilerInfoIfNeeded()Landroid/app/ProfilerInfo;
-PLcom/android/server/wm/WindowProcessController;->destroy()V
 HPLcom/android/server/wm/WindowProcessController;->dispatchConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/WindowProcessController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/wm/WindowProcessController;->getChildCount()I
-PLcom/android/server/wm/WindowProcessController;->getCpuTime()J
-PLcom/android/server/wm/WindowProcessController;->getCurrentAdj()I
-PLcom/android/server/wm/WindowProcessController;->getCurrentProcState()I
 PLcom/android/server/wm/WindowProcessController;->getInputDispatchingTimeoutMillis()J
-PLcom/android/server/wm/WindowProcessController;->getPackageList()Ljava/util/List;
-HPLcom/android/server/wm/WindowProcessController;->getParent()Lcom/android/server/wm/ConfigurationContainer;
-PLcom/android/server/wm/WindowProcessController;->getPid()I
-PLcom/android/server/wm/WindowProcessController;->getReportedProcState()I
-PLcom/android/server/wm/WindowProcessController;->getRequiredAbi()Ljava/lang/String;
-PLcom/android/server/wm/WindowProcessController;->getThread()Landroid/app/IApplicationThread;
-HPLcom/android/server/wm/WindowProcessController;->getTopActivityDeviceId()I
+PLcom/android/server/wm/WindowProcessController;->getParent()Lcom/android/server/wm/ConfigurationContainer;
 PLcom/android/server/wm/WindowProcessController;->getTopActivityDisplayArea()Lcom/android/server/wm/TaskDisplayArea;
-HPLcom/android/server/wm/WindowProcessController;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowProcessController;->handleAppDied()Z
-HPLcom/android/server/wm/WindowProcessController;->hasActivities()Z
-HPLcom/android/server/wm/WindowProcessController;->hasActivitiesOrRecentTasks()Z
-HPLcom/android/server/wm/WindowProcessController;->hasActivityInVisibleTask()Z
-PLcom/android/server/wm/WindowProcessController;->hasEmbeddedWindow()Z
-PLcom/android/server/wm/WindowProcessController;->hasEverLaunchedActivity()Z
-HPLcom/android/server/wm/WindowProcessController;->hasRecentTasks()Z
+HPLcom/android/server/wm/WindowProcessController;->handleAppDied$1()Z
+PLcom/android/server/wm/WindowProcessController;->hasActivityInVisibleTask()Z
 PLcom/android/server/wm/WindowProcessController;->hasResumedActivity()Z
-PLcom/android/server/wm/WindowProcessController;->hasStartedActivity(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/WindowProcessController;->hasThread()Z
-HPLcom/android/server/wm/WindowProcessController;->hasVisibleActivities()Z
-HPLcom/android/server/wm/WindowProcessController;->isFactoryTestProcess()Z
-HPLcom/android/server/wm/WindowProcessController;->isHeavyWeightProcess()Z
-HPLcom/android/server/wm/WindowProcessController;->isHomeProcess()Z
-PLcom/android/server/wm/WindowProcessController;->isInstrumenting()Z
-PLcom/android/server/wm/WindowProcessController;->isInterestingToUser()Z
-HPLcom/android/server/wm/WindowProcessController;->isPreviousProcess()Z
-HPLcom/android/server/wm/WindowProcessController;->isRemoved()Z
-PLcom/android/server/wm/WindowProcessController;->isUsingWrapper()Z
-PLcom/android/server/wm/WindowProcessController;->lambda$setAnimating$3(Z)V
+PLcom/android/server/wm/WindowProcessController;->hasThread()Z
 PLcom/android/server/wm/WindowProcessController;->onConfigurationChangePreScheduled(Landroid/content/res/Configuration;)V
 HPLcom/android/server/wm/WindowProcessController;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowProcessController;->onMergedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
-HPLcom/android/server/wm/WindowProcessController;->onServiceStarted(Landroid/content/pm/ServiceInfo;)V
-PLcom/android/server/wm/WindowProcessController;->onStartActivity(ILandroid/content/pm/ActivityInfo;)V
 PLcom/android/server/wm/WindowProcessController;->onTopProcChanged()V
-PLcom/android/server/wm/WindowProcessController;->pauseConfigurationDispatch()V
-PLcom/android/server/wm/WindowProcessController;->postPendingUiCleanMsg(Z)V
-PLcom/android/server/wm/WindowProcessController;->prepareConfigurationForLaunchingActivity()Landroid/content/res/Configuration;
-PLcom/android/server/wm/WindowProcessController;->prepareOomAdjustment()V
 PLcom/android/server/wm/WindowProcessController;->registerActivityConfigurationListener(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/WindowProcessController;->registerDisplayAreaConfigurationListener(Lcom/android/server/wm/DisplayArea;)V
-HPLcom/android/server/wm/WindowProcessController;->registeredForDisplayAreaConfigChanges()Z
-PLcom/android/server/wm/WindowProcessController;->removeAnimatingReason(I)V
-HPLcom/android/server/wm/WindowProcessController;->removeBackgroundStartPrivileges(Landroid/os/Binder;)V
+HPLcom/android/server/wm/WindowProcessController;->removeActivity(Lcom/android/server/wm/ActivityRecord;Z)V
+HPLcom/android/server/wm/WindowProcessController;->removeAnimatingReason(I)V
 HPLcom/android/server/wm/WindowProcessController;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/WindowProcessController;->resumeConfigurationDispatch()Z
-PLcom/android/server/wm/WindowProcessController;->scheduleClientTransactionItem(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
+HPLcom/android/server/wm/WindowProcessController;->scheduleClientTransactionItem(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
 PLcom/android/server/wm/WindowProcessController;->scheduleClientTransactionItem(Landroid/app/servertransaction/ClientTransactionItem;)V
-PLcom/android/server/wm/WindowProcessController;->setAnimating(Z)V
-PLcom/android/server/wm/WindowProcessController;->setCrashing(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setCurrentAdj(I)V
-HPLcom/android/server/wm/WindowProcessController;->setCurrentProcState(I)V
-HPLcom/android/server/wm/WindowProcessController;->setCurrentSchedulingGroup(I)V
-HPLcom/android/server/wm/WindowProcessController;->setDebugging(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setFgInteractionTime(J)V
-HPLcom/android/server/wm/WindowProcessController;->setHasClientActivities(Z)V
-PLcom/android/server/wm/WindowProcessController;->setHasForegroundServices(Z)V
-PLcom/android/server/wm/WindowProcessController;->setHasOverlayUi(Z)V
-PLcom/android/server/wm/WindowProcessController;->setInstrumenting(ZIZ)V
-HPLcom/android/server/wm/WindowProcessController;->setInteractionEventTime(J)V
-PLcom/android/server/wm/WindowProcessController;->setLastActivityLaunchTime(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/WindowProcessController;->setLastReportedConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowProcessController;->setNotResponding(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setPendingUiClean(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setPerceptible(Z)V
-PLcom/android/server/wm/WindowProcessController;->setPersistent(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setPid(I)V
-HPLcom/android/server/wm/WindowProcessController;->setReportedProcState(I)V
-HPLcom/android/server/wm/WindowProcessController;->setRequiredAbi(Ljava/lang/String;)V
-PLcom/android/server/wm/WindowProcessController;->setRunningRemoteAnimation(Z)V
+PLcom/android/server/wm/WindowProcessController;->setLastReportedConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/WindowProcessController;->setOverrideGender(Landroid/content/res/Configuration;I)Z
 HPLcom/android/server/wm/WindowProcessController;->setThread(Landroid/app/IApplicationThread;)V
-HPLcom/android/server/wm/WindowProcessController;->setUsingWrapper(Z)V
-HPLcom/android/server/wm/WindowProcessController;->setWhenUnimportant(J)V
-PLcom/android/server/wm/WindowProcessController;->shouldSetProfileProc()Z
-PLcom/android/server/wm/WindowProcessController;->unregisterActivityConfigurationListener()V
-HPLcom/android/server/wm/WindowProcessController;->unregisterConfigurationListeners()V
+PLcom/android/server/wm/WindowProcessController;->toString()Ljava/lang/String;
+PLcom/android/server/wm/WindowProcessController;->unregisterConfigurationListeners()V
 PLcom/android/server/wm/WindowProcessController;->unregisterDisplayAreaConfigurationListener()V
 HPLcom/android/server/wm/WindowProcessController;->updateActivityConfigurationListener()V
-PLcom/android/server/wm/WindowProcessController;->updateProcessInfo(ZZZZ)V
-PLcom/android/server/wm/WindowProcessController;->updateRapidActivityLaunch(Lcom/android/server/wm/ActivityRecord;JJ)V
-PLcom/android/server/wm/WindowProcessController;->updateServiceConnectionActivities()V
-HPLcom/android/server/wm/WindowProcessController;->updateTopResumingActivityInProcessIfNeeded(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/WindowProcessController;->updateAssetConfiguration(I)V
+HPLcom/android/server/wm/WindowProcessController;->updateProcessInfo(ZZZZ)V
 HSPLcom/android/server/wm/WindowProcessControllerMap;-><init>()V
-PLcom/android/server/wm/WindowProcessControllerMap;->getPidMap()Landroid/util/SparseArray;
-HPLcom/android/server/wm/WindowProcessControllerMap;->getProcess(I)Lcom/android/server/wm/WindowProcessController;
-HPLcom/android/server/wm/WindowProcessControllerMap;->put(ILcom/android/server/wm/WindowProcessController;)V
-HPLcom/android/server/wm/WindowProcessControllerMap;->remove(I)V
-HPLcom/android/server/wm/WindowProcessControllerMap;->removeProcessFromUidMap(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/wm/WindowState$$ExternalSyntheticLambda2;-><init>(Landroid/view/InsetsState;Landroid/util/ArraySet;Landroid/util/SparseArray;)V
-HPLcom/android/server/wm/WindowState$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda3;-><init>()V
+PLcom/android/server/wm/WindowProcessControllerMap;->getProcess(I)Lcom/android/server/wm/WindowProcessController;
+PLcom/android/server/wm/WindowProcessControllerMap;->put(ILcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/WindowProcessControllerMap;->removeProcessFromUidMap(Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowState;I)V
+HPLcom/android/server/wm/WindowState$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda2;-><init>(Landroid/view/InsetsState;Landroid/util/SparseArray;Landroid/util/ArraySet;)V
+HPLcom/android/server/wm/WindowState$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsState;Landroid/view/InsetsState;
 PLcom/android/server/wm/WindowState$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/WindowState$1;-><init>()V
-PLcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;-><init>()V
-HPLcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;->reset()V
 PLcom/android/server/wm/WindowState$WindowId;-><init>(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowState$WindowId;-><init>(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState$WindowId-IA;)V
-PLcom/android/server/wm/WindowState;->$r8$lambda$ZpBAxyV_EYA5etsArmi-qkwlhf0(Landroid/view/InsetsState;Landroid/util/ArraySet;Landroid/util/SparseArray;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowState;->$r8$lambda$fef2KYzxiyPlqMk0JTPv9yWQXp0(Lcom/android/server/wm/WindowState;Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowState;->$r8$lambda$qWwwoLu0LTUue2Ex5efd6I7CVfs(Lcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/WindowState;-><clinit>()V
 HPLcom/android/server/wm/WindowState;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/Session;Landroid/view/IWindow;Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/WindowState;ILandroid/view/WindowManager$LayoutParams;IIIZ)V
-HPLcom/android/server/wm/WindowState;->adjustRegionInFreefromWindowMode(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowState;->adjustStartingWindowFlags()V
+PLcom/android/server/wm/WindowState;->adjustDims()V
 HPLcom/android/server/wm/WindowState;->applyDims()V
-HPLcom/android/server/wm/WindowState;->applyImeWindowsIfNeeded(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-HPLcom/android/server/wm/WindowState;->applyInOrderWithImeWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+HPLcom/android/server/wm/WindowState;->applyInOrderWithImeWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z+]Lcom/android/internal/util/ToBooleanFunction;megamorphic_types
 HPLcom/android/server/wm/WindowState;->areAppWindowBoundsLetterboxed()Z
-PLcom/android/server/wm/WindowState;->asWindowState()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowState;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/WindowState;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
-HPLcom/android/server/wm/WindowState;->canAddInternalSystemWindow()Z
-HPLcom/android/server/wm/WindowState;->canAffectSystemUiFlags()Z
+HPLcom/android/server/wm/WindowState;->asWindowState()Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/WindowState;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowState;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
 HPLcom/android/server/wm/WindowState;->canBeHiddenByKeyguard()Z
 HPLcom/android/server/wm/WindowState;->canBeImeTarget()Z
-HPLcom/android/server/wm/WindowState;->canReceiveKeys()Z
+PLcom/android/server/wm/WindowState;->canReceiveKeys()Z
 HPLcom/android/server/wm/WindowState;->canReceiveKeys(Z)Z
 HPLcom/android/server/wm/WindowState;->canReceiveTouchInput()Z
 PLcom/android/server/wm/WindowState;->canScreenshotIme()Z
 PLcom/android/server/wm/WindowState;->canShowWhenLocked()Z
-PLcom/android/server/wm/WindowState;->cancelAndRedraw()Z
-PLcom/android/server/wm/WindowState;->checkPolicyVisibilityChange()V
-PLcom/android/server/wm/WindowState;->cleanupAnimatingExitWindow()V
-PLcom/android/server/wm/WindowState;->clearFrozenInsetsState()V
 PLcom/android/server/wm/WindowState;->clearPolicyVisibilityFlag(I)V
-PLcom/android/server/wm/WindowState;->commitFinishDrawing(Landroid/view/SurfaceControl$Transaction;)Z
+HPLcom/android/server/wm/WindowState;->commitFinishDrawing(Landroid/view/SurfaceControl$Transaction;)Z
 HPLcom/android/server/wm/WindowState;->computeDragResizing()Z
 PLcom/android/server/wm/WindowState;->consumeInsetsChange()V
-HPLcom/android/server/wm/WindowState;->cropRegionToRootTaskBoundsIfNeeded(Landroid/graphics/Region;)V
-PLcom/android/server/wm/WindowState;->destroySurface(ZZ)Z
-PLcom/android/server/wm/WindowState;->destroySurfaceUnchecked()V
-PLcom/android/server/wm/WindowState;->disposeInputChannel()V
-PLcom/android/server/wm/WindowState;->executeDrawHandlers(Landroid/view/SurfaceControl$Transaction;I)Z
-HPLcom/android/server/wm/WindowState;->fillClientWindowFramesAndConfiguration(Landroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;ZZ)V
-HPLcom/android/server/wm/WindowState;->fillsDisplay()Z
+HPLcom/android/server/wm/WindowState;->cropRegionToRootTaskBoundsIfNeeded(Landroid/graphics/Region;)V+]Landroid/graphics/Region;Landroid/graphics/Region;
+HPLcom/android/server/wm/WindowState;->destroySurface(ZZ)Z
+HPLcom/android/server/wm/WindowState;->destroySurfaceUnchecked()V
+HPLcom/android/server/wm/WindowState;->disposeInputChannel()V
+HPLcom/android/server/wm/WindowState;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/WindowState;->dumpProto(ILandroid/util/proto/ProtoOutputStream;)V
+HPLcom/android/server/wm/WindowState;->fillClientWindowFramesAndConfiguration(Landroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;Landroid/window/ActivityWindowInfo;ZZ)V+]Landroid/util/MergedConfiguration;Landroid/util/MergedConfiguration;]Landroid/window/ClientWindowFrames;Landroid/window/ClientWindowFrames;]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
+HPLcom/android/server/wm/WindowState;->fillInsetsSourceControls(Landroid/view/InsetsSourceControl$Array;Z)V+]Landroid/view/InsetsSourceControl$Array;Landroid/view/InsetsSourceControl$Array;
+HPLcom/android/server/wm/WindowState;->fillInsetsState(Landroid/view/InsetsState;Z)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;
 PLcom/android/server/wm/WindowState;->fillsParent()Z
 HPLcom/android/server/wm/WindowState;->finishDrawing(Landroid/view/SurfaceControl$Transaction;I)Z
 PLcom/android/server/wm/WindowState;->finishSync(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;Z)V
-HPLcom/android/server/wm/WindowState;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-PLcom/android/server/wm/WindowState;->freezeInsetsState()V
+HPLcom/android/server/wm/WindowState;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 PLcom/android/server/wm/WindowState;->getActivityRecord()Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/WindowState;->getAnimationLeashParent()Landroid/view/SurfaceControl;
-HPLcom/android/server/wm/WindowState;->getAttrs()Landroid/view/WindowManager$LayoutParams;
-HPLcom/android/server/wm/WindowState;->getBaseType()I
-HPLcom/android/server/wm/WindowState;->getBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/WindowState;->getCompatInsetsState()Landroid/view/InsetsState;
-HPLcom/android/server/wm/WindowState;->getCompatScaleForClient()F
+PLcom/android/server/wm/WindowState;->getAttrs()Landroid/view/WindowManager$LayoutParams;
+HPLcom/android/server/wm/WindowState;->getBounds()Landroid/graphics/Rect;+]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
 HPLcom/android/server/wm/WindowState;->getConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/WindowState;->getDisableFlags()I
-HPLcom/android/server/wm/WindowState;->getDisplayFrames(Lcom/android/server/wm/DisplayFrames;)Lcom/android/server/wm/DisplayFrames;
-PLcom/android/server/wm/WindowState;->getDisplayId()I
-HPLcom/android/server/wm/WindowState;->getDisplayInfo()Landroid/view/DisplayInfo;
-PLcom/android/server/wm/WindowState;->getDrawnStateEvaluated()Z
-HPLcom/android/server/wm/WindowState;->getEffectiveTouchableRegion(Landroid/graphics/Region;)V
-HPLcom/android/server/wm/WindowState;->getFrame()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowState;->getDimController()Lcom/android/server/wm/Dimmer;
+HPLcom/android/server/wm/WindowState;->getDisplayId()I
+HPLcom/android/server/wm/WindowState;->getEffectiveTouchableRegion(Landroid/graphics/Region;)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;
 PLcom/android/server/wm/WindowState;->getImeControlTarget()Lcom/android/server/wm/InsetsControlTarget;
-HPLcom/android/server/wm/WindowState;->getImeInputTarget()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowState;->getInputDispatchingTimeoutMillis()J
-HPLcom/android/server/wm/WindowState;->getInsetsState()Landroid/view/InsetsState;
-HPLcom/android/server/wm/WindowState;->getInsetsState(Z)Landroid/view/InsetsState;
-HPLcom/android/server/wm/WindowState;->getKeepClearAreas(Ljava/util/Collection;Ljava/util/Collection;Landroid/graphics/Matrix;[F)V
-HPLcom/android/server/wm/WindowState;->getKeyInterceptionInfo()Lcom/android/internal/policy/KeyInterceptionInfo;
-PLcom/android/server/wm/WindowState;->getLastReportedConfiguration()Landroid/content/res/Configuration;
-HPLcom/android/server/wm/WindowState;->getMergedInsetsState()Landroid/view/InsetsState;
+HPLcom/android/server/wm/WindowState;->getInsetsState(Z)Landroid/view/InsetsState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;
+HPLcom/android/server/wm/WindowState;->getInsetsStateWithVisibilityOverride()Landroid/view/InsetsState;
 HPLcom/android/server/wm/WindowState;->getName()Ljava/lang/String;
 HPLcom/android/server/wm/WindowState;->getOrientationChanging()Z
-HPLcom/android/server/wm/WindowState;->getOwningPackage()Ljava/lang/String;
-HPLcom/android/server/wm/WindowState;->getOwningUid()I
-PLcom/android/server/wm/WindowState;->getParentFrame()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowState;->getOwningPackage()Ljava/lang/String;
+PLcom/android/server/wm/WindowState;->getOwningUid()I
 HPLcom/android/server/wm/WindowState;->getParentWindow()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowState;->getProcessGlobalConfiguration()Landroid/content/res/Configuration;
-HPLcom/android/server/wm/WindowState;->getRectsInScreenSpace(Ljava/util/List;Landroid/graphics/Matrix;[F)Ljava/util/List;
-PLcom/android/server/wm/WindowState;->getRelativeFrame()Landroid/graphics/Rect;
-HPLcom/android/server/wm/WindowState;->getRequestedVisibleTypes()I
-PLcom/android/server/wm/WindowState;->getRootTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/WindowState;->getSession()Landroid/view/SurfaceSession;
-HPLcom/android/server/wm/WindowState;->getSurfaceTouchableRegion(Landroid/graphics/Region;Landroid/view/WindowManager$LayoutParams;)V
-PLcom/android/server/wm/WindowState;->getSyncMethod()I
-PLcom/android/server/wm/WindowState;->getSystemGestureExclusion()Ljava/util/List;
+PLcom/android/server/wm/WindowState;->getProtoFieldId()J
+HPLcom/android/server/wm/WindowState;->getRectsInScreenSpace(Ljava/util/List;Landroid/graphics/Matrix;[F)Ljava/util/List;+]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowState;->getTask()Lcom/android/server/wm/Task;
-HPLcom/android/server/wm/WindowState;->getTaskFragment()Lcom/android/server/wm/TaskFragment;
-HPLcom/android/server/wm/WindowState;->getTopParentWindow()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowState;->getTouchOcclusionMode()I
-HPLcom/android/server/wm/WindowState;->getTouchableRegion(Landroid/graphics/Region;)V
-HPLcom/android/server/wm/WindowState;->getTransformationMatrix([FLandroid/graphics/Matrix;)V
+HPLcom/android/server/wm/WindowState;->getTouchableRegion(Landroid/graphics/Region;)V+]Landroid/graphics/Region;Landroid/graphics/Region;
+HPLcom/android/server/wm/WindowState;->getTransformationMatrix([FLandroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
 PLcom/android/server/wm/WindowState;->getWindow()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowState;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/WindowState;->getWindowFrames()Lcom/android/server/wm/WindowFrames;
-PLcom/android/server/wm/WindowState;->getWindowInfo()Landroid/view/WindowInfo;
+HPLcom/android/server/wm/WindowState;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;megamorphic_types
 PLcom/android/server/wm/WindowState;->getWindowState()Lcom/android/server/wm/WindowState;
-HPLcom/android/server/wm/WindowState;->getWindowTag()Ljava/lang/CharSequence;
+HPLcom/android/server/wm/WindowState;->getWindowTag()Ljava/lang/CharSequence;+]Ljava/lang/CharSequence;Ljava/lang/String;
 PLcom/android/server/wm/WindowState;->getWindowToken()Landroid/os/IBinder;
-HPLcom/android/server/wm/WindowState;->getWindowType()I
 HPLcom/android/server/wm/WindowState;->handleCompleteDeferredRemoval()Z
-HPLcom/android/server/wm/WindowState;->handleWindowMovedIfNeeded()V
-PLcom/android/server/wm/WindowState;->hasAppShownWindows()Z
+PLcom/android/server/wm/WindowState;->handleTapOutsideFocusInsideSelf()V
 HPLcom/android/server/wm/WindowState;->hasCompatScale()Z
 HPLcom/android/server/wm/WindowState;->hasMoved()Z
 HPLcom/android/server/wm/WindowState;->hasWallpaper()Z
-PLcom/android/server/wm/WindowState;->hasWallpaperForLetterboxBackground()Z
-PLcom/android/server/wm/WindowState;->hide(ZZ)Z
-PLcom/android/server/wm/WindowState;->hideNonSystemOverlayWindowsWhenVisible()Z
-PLcom/android/server/wm/WindowState;->inRelaunchingActivity()Z
+PLcom/android/server/wm/WindowState;->hide(ZZ)V
 PLcom/android/server/wm/WindowState;->initAppOpsState()V
-PLcom/android/server/wm/WindowState;->initExclusionRestrictions()V
 HPLcom/android/server/wm/WindowState;->isAnimationRunningSelfOrParent()Z
-HPLcom/android/server/wm/WindowState;->isChildWindow()Z
-HPLcom/android/server/wm/WindowState;->isDimming()Z
+PLcom/android/server/wm/WindowState;->isChildWindow()Z
 HPLcom/android/server/wm/WindowState;->isDisplayed()Z
-HPLcom/android/server/wm/WindowState;->isDragResizeChanged()Z
-PLcom/android/server/wm/WindowState;->isDrawFinishedLw()Z
 HPLcom/android/server/wm/WindowState;->isDrawn()Z
-HPLcom/android/server/wm/WindowState;->isDreamWindow()Z
-HPLcom/android/server/wm/WindowState;->isFocused()Z
-HPLcom/android/server/wm/WindowState;->isFullyTransparent()Z
+PLcom/android/server/wm/WindowState;->isFocused()Z
 HPLcom/android/server/wm/WindowState;->isGoneForLayout()Z
 HPLcom/android/server/wm/WindowState;->isImeLayeringTarget()Z
-PLcom/android/server/wm/WindowState;->isImeOverlayLayeringTarget()Z
-HPLcom/android/server/wm/WindowState;->isImplicitlyExcludingAllSystemGestures()Z
+HPLcom/android/server/wm/WindowState;->isImeOverlayLayeringTarget()Z
 PLcom/android/server/wm/WindowState;->isInputMethodClientFocus(II)Z
-PLcom/android/server/wm/WindowState;->isInteresting()Z
-PLcom/android/server/wm/WindowState;->isLaidOut()Z
-PLcom/android/server/wm/WindowState;->isLastConfigReportedToClient()Z
-PLcom/android/server/wm/WindowState;->isLegacyPolicyVisibility()Z
 HPLcom/android/server/wm/WindowState;->isLetterboxedForDisplayCutout()Z
-HPLcom/android/server/wm/WindowState;->isObscuringDisplay()Z
-HPLcom/android/server/wm/WindowState;->isOnScreen()Z
-HPLcom/android/server/wm/WindowState;->isOpaqueDrawn()Z
-HPLcom/android/server/wm/WindowState;->isParentWindowGoneForLayout()Z
-HPLcom/android/server/wm/WindowState;->isParentWindowHidden()Z
+HPLcom/android/server/wm/WindowState;->isOnScreen()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
+PLcom/android/server/wm/WindowState;->isParentWindowHidden()Z
 HPLcom/android/server/wm/WindowState;->isReadyForDisplay()Z
 HPLcom/android/server/wm/WindowState;->isRequestedVisible(I)Z
 PLcom/android/server/wm/WindowState;->isRtl()Z
-PLcom/android/server/wm/WindowState;->isSecureLocked()Z
+HPLcom/android/server/wm/WindowState;->isSecureLocked()Z
 HPLcom/android/server/wm/WindowState;->isSelfAnimating(II)Z
 PLcom/android/server/wm/WindowState;->isSelfOrAncestorWindowAnimatingExit()Z
-HPLcom/android/server/wm/WindowState;->isStartingWindowAssociatedToTask()Z
-PLcom/android/server/wm/WindowState;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
-PLcom/android/server/wm/WindowState;->isTrustedOverlay()Z
+PLcom/android/server/wm/WindowState;->isStartingWindowAssociatedToTask()Z
+HPLcom/android/server/wm/WindowState;->isSyncFinished(Lcom/android/server/wm/BLASTSyncEngine$SyncGroup;)Z
+HPLcom/android/server/wm/WindowState;->isTrustedOverlay()Z
 HPLcom/android/server/wm/WindowState;->isVisible()Z
-HPLcom/android/server/wm/WindowState;->isVisibleByPolicy()Z
-HPLcom/android/server/wm/WindowState;->isVisibleByPolicyOrInsets()Z
-PLcom/android/server/wm/WindowState;->isVisibleNow()Z
-HPLcom/android/server/wm/WindowState;->isVisibleRequested()Z
+PLcom/android/server/wm/WindowState;->isVisibleByPolicy()Z
+HPLcom/android/server/wm/WindowState;->isVisibleNow()Z
+HPLcom/android/server/wm/WindowState;->isVisibleRequested()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
 HPLcom/android/server/wm/WindowState;->isVisibleRequestedOrAdding()Z
 HPLcom/android/server/wm/WindowState;->isWindowTrustedOverlay()Z
-PLcom/android/server/wm/WindowState;->lambda$new$1(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowState;->lambda$removeIfPossible$2(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/WindowState;->lambda$updateAboveInsetsState$3(Landroid/view/InsetsState;Landroid/util/ArraySet;Landroid/util/SparseArray;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowState;->logExclusionRestrictions(I)V
-PLcom/android/server/wm/WindowState;->logPerformShow(Ljava/lang/String;)V
-PLcom/android/server/wm/WindowState;->markRedrawForSyncReported()V
-PLcom/android/server/wm/WindowState;->matchesDisplayAreaBounds()Z
+HPLcom/android/server/wm/WindowState;->logExclusionRestrictions(I)V
 HPLcom/android/server/wm/WindowState;->mightAffectAllDrawn()Z
-HPLcom/android/server/wm/WindowState;->needsRelativeLayeringToIme()Z
 HPLcom/android/server/wm/WindowState;->needsZBoost()Z
-PLcom/android/server/wm/WindowState;->notifyInsetsControlChanged(I)V
-PLcom/android/server/wm/WindowState;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+HPLcom/android/server/wm/WindowState;->notifyInsetsChanged()V
+HPLcom/android/server/wm/WindowState;->notifyInsetsControlChanged(I)V
+HPLcom/android/server/wm/WindowState;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 PLcom/android/server/wm/WindowState;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
-PLcom/android/server/wm/WindowState;->onAppVisibilityChanged(ZZ)V
+HPLcom/android/server/wm/WindowState;->onAppVisibilityChanged(ZZ)V
 HPLcom/android/server/wm/WindowState;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowState;->onExitAnimationDone()V
-PLcom/android/server/wm/WindowState;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/WindowState;->onResizeHandled()V
-HPLcom/android/server/wm/WindowState;->onSurfaceShownChanged(Z)V
+HPLcom/android/server/wm/WindowState;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/WindowState;->onExitAnimationDone()V
+HPLcom/android/server/wm/WindowState;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+PLcom/android/server/wm/WindowState;->onSetAppExiting(Z)Z
 HPLcom/android/server/wm/WindowState;->openInputChannel(Landroid/view/InputChannel;)V
 HPLcom/android/server/wm/WindowState;->performShowLocked()Z
-HPLcom/android/server/wm/WindowState;->prepareSurfaces()V
-PLcom/android/server/wm/WindowState;->prepareSync()Z
-PLcom/android/server/wm/WindowState;->prepareWindowToDisplayDuringRelayout(Z)V
+PLcom/android/server/wm/WindowState;->pokeDrawLockLw(J)V
+HPLcom/android/server/wm/WindowState;->prepareSurfaces()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WallpaperWindowToken;
+HPLcom/android/server/wm/WindowState;->prepareSync()Z
+HPLcom/android/server/wm/WindowState;->prepareWindowToDisplayDuringRelayout(Z)V
 PLcom/android/server/wm/WindowState;->providesDisplayDecorInsets()Z
-HPLcom/android/server/wm/WindowState;->registeredForDisplayAreaConfigChanges()Z
+PLcom/android/server/wm/WindowState;->receiveFocusFromTapOutside()Z
 HPLcom/android/server/wm/WindowState;->relayoutVisibleWindow(I)I
 HPLcom/android/server/wm/WindowState;->removeIfPossible()V
-PLcom/android/server/wm/WindowState;->removeImmediately()V
+HPLcom/android/server/wm/WindowState;->removeImmediately()V
+PLcom/android/server/wm/WindowState;->reparentSurfaceControl(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 PLcom/android/server/wm/WindowState;->reportFocusChangedSerialized(Z)V
-PLcom/android/server/wm/WindowState;->requestDrawIfNeeded(Ljava/util/List;)V
-PLcom/android/server/wm/WindowState;->requestRedrawForSync()V
-PLcom/android/server/wm/WindowState;->requestUpdateWallpaperIfNeeded()V
-PLcom/android/server/wm/WindowState;->resetAppOpsState()V
-HPLcom/android/server/wm/WindowState;->resetContentChanged()V
-PLcom/android/server/wm/WindowState;->sendAppVisibilityToClients()V
+HPLcom/android/server/wm/WindowState;->requestUpdateWallpaperIfNeeded()V
+HPLcom/android/server/wm/WindowState;->sendAppVisibilityToClients()V
 HPLcom/android/server/wm/WindowState;->setDisplayLayoutNeeded()V
-PLcom/android/server/wm/WindowState;->setDrawnStateEvaluated(Z)V
-PLcom/android/server/wm/WindowState;->setForceHideNonSystemOverlayWindowIfNeeded(Z)V
-HPLcom/android/server/wm/WindowState;->setFrames(Landroid/window/ClientWindowFrames;II)V
-PLcom/android/server/wm/WindowState;->setHasSurface(Z)V
+HPLcom/android/server/wm/WindowState;->setForceHideNonSystemOverlayWindowIfNeeded(Z)V
 PLcom/android/server/wm/WindowState;->setHiddenWhileSuspended(Z)V
 HPLcom/android/server/wm/WindowState;->setInitialSurfaceControlProperties(Landroid/view/SurfaceControl$Builder;)V
-PLcom/android/server/wm/WindowState;->setLastExclusionHeights(III)V
-PLcom/android/server/wm/WindowState;->setOnBackInvokedCallbackInfo(Landroid/window/OnBackInvokedCallbackInfo;)V
-PLcom/android/server/wm/WindowState;->setPolicyVisibilityFlag(I)V
-HPLcom/android/server/wm/WindowState;->setReportResizeHints()Z
-PLcom/android/server/wm/WindowState;->setRequestedSize(II)V
-PLcom/android/server/wm/WindowState;->setRequestedVisibleTypes(I)V
-PLcom/android/server/wm/WindowState;->setViewVisibility(I)V
-PLcom/android/server/wm/WindowState;->setWallpaperOffset(IIF)Z
-HPLcom/android/server/wm/WindowState;->setWindowScale(II)V
-PLcom/android/server/wm/WindowState;->setupWindowForRemoveOnExit()V
-HPLcom/android/server/wm/WindowState;->shouldCheckTokenVisibleRequested()Z
-PLcom/android/server/wm/WindowState;->shouldControlIme()Z
-HPLcom/android/server/wm/WindowState;->shouldDrawBlurBehind()Z
+HPLcom/android/server/wm/WindowState;->shouldControlIme()Z
 PLcom/android/server/wm/WindowState;->shouldMagnify()Z
-PLcom/android/server/wm/WindowState;->shouldSendRedrawForSync()Z
-PLcom/android/server/wm/WindowState;->shouldSyncWithBuffers()Z
-HPLcom/android/server/wm/WindowState;->show(ZZ)Z
+HPLcom/android/server/wm/WindowState;->shouldSendRedrawForSync()Z
+PLcom/android/server/wm/WindowState;->shouldUpdateSyncOnReparent()Z
+HPLcom/android/server/wm/WindowState;->show(Z)V
 HPLcom/android/server/wm/WindowState;->showForAllUsers()Z
 HPLcom/android/server/wm/WindowState;->showToCurrentUser()Z
-PLcom/android/server/wm/WindowState;->showWallpaper()Z
-HPLcom/android/server/wm/WindowState;->skipLayout()Z
-PLcom/android/server/wm/WindowState;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/WindowState;->startAnimation(Landroid/view/animation/Animation;)V
-HPLcom/android/server/wm/WindowState;->subtractTouchExcludeRegionIfNeeded(Landroid/graphics/Region;)V
-PLcom/android/server/wm/WindowState;->surfaceInsetsChanging()Z
-HPLcom/android/server/wm/WindowState;->syncNextBuffer()Z
+HPLcom/android/server/wm/WindowState;->showWallpaper()Z
+HPLcom/android/server/wm/WindowState;->subtractTouchExcludeRegionIfNeeded(Landroid/graphics/Region;)V+]Landroid/graphics/Region;Landroid/graphics/Region;
+HPLcom/android/server/wm/WindowState;->syncNextBuffer()Z+]Ljava/util/List;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowState;->toString()Ljava/lang/String;
-HPLcom/android/server/wm/WindowState;->transformFrameToSurfacePosition(IILandroid/graphics/Point;)V
-HPLcom/android/server/wm/WindowState;->transformSurfaceInsetsPosition(Landroid/graphics/Point;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->transformFrameToSurfacePosition(IILandroid/graphics/Point;)V+]Landroid/graphics/Point;Landroid/graphics/Point;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
+HPLcom/android/server/wm/WindowState;->transformSurfaceInsetsPosition(Landroid/graphics/Rect;Landroid/graphics/Point;)V
 HPLcom/android/server/wm/WindowState;->updateAboveInsetsState(Landroid/view/InsetsState;Landroid/util/SparseArray;Landroid/util/ArraySet;)V
-HPLcom/android/server/wm/WindowState;->updateFrameRateSelectionPriorityIfNeeded()V
+HPLcom/android/server/wm/WindowState;->updateFrameRateSelectionPriorityIfNeeded()V+]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
 PLcom/android/server/wm/WindowState;->updateGlobalScale()V
-HPLcom/android/server/wm/WindowState;->updateLastFrames()V
-HPLcom/android/server/wm/WindowState;->updateRegionForModalActivityWindow(Landroid/graphics/Region;)V
-HPLcom/android/server/wm/WindowState;->updateReportedVisibility(Lcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;)V
-HPLcom/android/server/wm/WindowState;->updateResizingWindowIfNeeded()V
-HPLcom/android/server/wm/WindowState;->updateScaleIfNeeded()V
-HPLcom/android/server/wm/WindowState;->updateSourceFrame(Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/WindowState;->updateSurfacePosition(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/WindowState;->wouldBeVisibleIfPolicyIgnored()Z
-HPLcom/android/server/wm/WindowState;->wouldBeVisibleRequestedIfPolicyIgnored()Z
+HPLcom/android/server/wm/WindowState;->updateReportedVisibility(Lcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
+HPLcom/android/server/wm/WindowState;->updateSourceFrame(Landroid/graphics/Rect;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;
+HPLcom/android/server/wm/WindowState;->updateSurfacePosition(Landroid/view/SurfaceControl$Transaction;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Point;Landroid/graphics/Point;
+HPLcom/android/server/wm/WindowState;->wouldBeVisibleIfPolicyIgnored()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;
+PLcom/android/server/wm/WindowState;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
 HPLcom/android/server/wm/WindowStateAnimator;-><init>(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/WindowStateAnimator;->applyAnimationLocked(IZ)Z
-PLcom/android/server/wm/WindowStateAnimator;->applyEnterAnimationLocked()V
+HPLcom/android/server/wm/WindowStateAnimator;->applyEnterAnimationLocked()V
 HPLcom/android/server/wm/WindowStateAnimator;->commitFinishDrawingLocked()Z
-HPLcom/android/server/wm/WindowStateAnimator;->computeShownFrameLocked()V
-HPLcom/android/server/wm/WindowStateAnimator;->createSurfaceLocked()Lcom/android/server/wm/WindowSurfaceController;
-PLcom/android/server/wm/WindowStateAnimator;->destroySurface(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowStateAnimator;->destroySurfaceLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowStateAnimator;->finishDrawingLocked(Landroid/view/SurfaceControl$Transaction;)Z
+HPLcom/android/server/wm/WindowStateAnimator;->createSurfaceLocked()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/WindowStateAnimator;->destroySurface(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/WindowStateAnimator;->destroySurfaceLocked(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/WindowStateAnimator;->drawStateToString()Ljava/lang/String;
 HPLcom/android/server/wm/WindowStateAnimator;->getShown()Z
-HPLcom/android/server/wm/WindowStateAnimator;->hasSurface()Z
-HPLcom/android/server/wm/WindowStateAnimator;->hide(Landroid/view/SurfaceControl$Transaction;Ljava/lang/String;)V
-PLcom/android/server/wm/WindowStateAnimator;->onAnimationFinished()V
-HPLcom/android/server/wm/WindowStateAnimator;->prepareSurfaceLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowStateAnimator;->resetDrawState()V
-PLcom/android/server/wm/WindowStateAnimator;->setColorSpaceAgnosticLocked(Z)V
-HPLcom/android/server/wm/WindowSurfaceController;-><init>(Ljava/lang/String;IILcom/android/server/wm/WindowStateAnimator;I)V
-PLcom/android/server/wm/WindowSurfaceController;->destroy(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowSurfaceController;->getShown()Z
-PLcom/android/server/wm/WindowSurfaceController;->getSurfaceControl(Landroid/view/SurfaceControl;)V
-HPLcom/android/server/wm/WindowSurfaceController;->hasSurface()Z
-PLcom/android/server/wm/WindowSurfaceController;->hide(Landroid/view/SurfaceControl$Transaction;Ljava/lang/String;)V
-PLcom/android/server/wm/WindowSurfaceController;->hideSurface(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowSurfaceController;->prepareToShowInTransaction(Landroid/view/SurfaceControl$Transaction;F)Z
-PLcom/android/server/wm/WindowSurfaceController;->setColorSpaceAgnostic(Landroid/view/SurfaceControl$Transaction;Z)V
-HPLcom/android/server/wm/WindowSurfaceController;->setShown(Z)V
-PLcom/android/server/wm/WindowSurfaceController;->showRobustly(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/WindowStateAnimator;->hasSurface()Z
+HPLcom/android/server/wm/WindowStateAnimator;->hide(Landroid/view/SurfaceControl$Transaction;Ljava/lang/String;)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/WindowStateAnimator;->prepareSurfaceLocked(Landroid/view/SurfaceControl$Transaction;)V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/WindowStateAnimator;->resetDrawState()V
+HPLcom/android/server/wm/WindowStateAnimator;->setColorSpaceAgnosticLocked(Z)V
+PLcom/android/server/wm/WindowStateAnimator;->setOpaqueLocked(Z)V
+HPLcom/android/server/wm/WindowStateAnimator;->setShown(Z)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/Session;Lcom/android/server/wm/Session;
+PLcom/android/server/wm/WindowStateAnimator;->toString()Ljava/lang/String;
 PLcom/android/server/wm/WindowSurfacePlacer$Traverser;-><init>(Lcom/android/server/wm/WindowSurfacePlacer;)V
-PLcom/android/server/wm/WindowSurfacePlacer$Traverser;-><init>(Lcom/android/server/wm/WindowSurfacePlacer;Lcom/android/server/wm/WindowSurfacePlacer$Traverser-IA;)V
 HPLcom/android/server/wm/WindowSurfacePlacer$Traverser;->run()V
-PLcom/android/server/wm/WindowSurfacePlacer;->-$$Nest$fgetmService(Lcom/android/server/wm/WindowSurfacePlacer;)Lcom/android/server/wm/WindowManagerService;
 PLcom/android/server/wm/WindowSurfacePlacer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowSurfacePlacer;->continueLayout(Z)V
-PLcom/android/server/wm/WindowSurfacePlacer;->deferLayout()V
-PLcom/android/server/wm/WindowSurfacePlacer;->isInLayout()Z
-HPLcom/android/server/wm/WindowSurfacePlacer;->isLayoutDeferred()Z
-PLcom/android/server/wm/WindowSurfacePlacer;->isTraversalScheduled()Z
-PLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement()V
-HPLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement(Z)V
-HPLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacementLoop()V
+HPLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement(Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
 HPLcom/android/server/wm/WindowSurfacePlacer;->requestTraversal()V
 PLcom/android/server/wm/WindowToken$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowToken;)V
 PLcom/android/server/wm/WindowToken$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/wm/WindowToken$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/WindowToken;Z)V
-PLcom/android/server/wm/WindowToken$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/WindowToken$Builder;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;I)V
-HPLcom/android/server/wm/WindowToken$Builder;->build()Lcom/android/server/wm/WindowToken;
-PLcom/android/server/wm/WindowToken$Builder;->setDisplayContent(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/WindowToken$Builder;
-PLcom/android/server/wm/WindowToken$Builder;->setFromClientToken(Z)Lcom/android/server/wm/WindowToken$Builder;
-PLcom/android/server/wm/WindowToken$Builder;->setOptions(Landroid/os/Bundle;)Lcom/android/server/wm/WindowToken$Builder;
-PLcom/android/server/wm/WindowToken$Builder;->setOwnerCanManageAppTokens(Z)Lcom/android/server/wm/WindowToken$Builder;
-PLcom/android/server/wm/WindowToken$Builder;->setPersistOnEmpty(Z)Lcom/android/server/wm/WindowToken$Builder;
-PLcom/android/server/wm/WindowToken$Builder;->setRoundedCornerOverlay(Z)Lcom/android/server/wm/WindowToken$Builder;
-PLcom/android/server/wm/WindowToken;->$r8$lambda$-pSQy6fdr3VlGcmvSVCsObZoXyQ(Lcom/android/server/wm/WindowToken;ZLcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowToken;->$r8$lambda$nGO-xASDAxBQTRuMNfGImeCJxk0(Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
-PLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;Z)V
+HPLcom/android/server/wm/WindowToken$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;ZZZLandroid/os/Bundle;)V
 HPLcom/android/server/wm/WindowToken;->addWindow(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/WindowToken;->asWindowToken()Lcom/android/server/wm/WindowToken;
-PLcom/android/server/wm/WindowToken;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
+HPLcom/android/server/wm/WindowToken;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
 PLcom/android/server/wm/WindowToken;->createSurfaceControl(Z)V
-PLcom/android/server/wm/WindowToken;->finishFixedRotationTransform()V
-PLcom/android/server/wm/WindowToken;->finishFixedRotationTransform(Ljava/lang/Runnable;)V
-PLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayFrames()Lcom/android/server/wm/DisplayFrames;
-PLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayInfo()Landroid/view/DisplayInfo;
-HPLcom/android/server/wm/WindowToken;->getFixedRotationTransformInsetsState()Landroid/view/InsetsState;
+PLcom/android/server/wm/WindowToken;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowToken;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/WindowToken;->finishFixedRotationTransform(Lcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda6;)V
+HPLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayBounds()Landroid/graphics/Rect;
 PLcom/android/server/wm/WindowToken;->getName()Ljava/lang/String;
+PLcom/android/server/wm/WindowToken;->getOrCreateFixedRotationLeash(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/WindowToken;->getProtoFieldId()J
 PLcom/android/server/wm/WindowToken;->getWindowLayerFromType()I
-PLcom/android/server/wm/WindowToken;->getWindowType()I
+HPLcom/android/server/wm/WindowToken;->handleCompleteDeferredRemoval()Z
 PLcom/android/server/wm/WindowToken;->hasFixedRotationTransform()Z
 PLcom/android/server/wm/WindowToken;->hasSizeCompatBounds()Z
-HPLcom/android/server/wm/WindowToken;->isClientVisible()Z
-PLcom/android/server/wm/WindowToken;->isEmpty()Z
-PLcom/android/server/wm/WindowToken;->isFinishingFixedRotationTransform()Z
 HPLcom/android/server/wm/WindowToken;->isFixedRotationTransforming()Z
-PLcom/android/server/wm/WindowToken;->lambda$new$0(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
-PLcom/android/server/wm/WindowToken;->lambda$setInsetsFrozen$1(ZLcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/WindowToken;->makeSurface()Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/WindowToken;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/WindowToken;->prepareSync()Z
+HPLcom/android/server/wm/WindowToken;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/WindowToken;->prepareSync()Z
+PLcom/android/server/wm/WindowToken;->removeAllWindowsIfPossible()V
+PLcom/android/server/wm/WindowToken;->removeIfPossible()V
 PLcom/android/server/wm/WindowToken;->removeImmediately()V
 PLcom/android/server/wm/WindowToken;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowToken;->setClientVisible(Z)V
+HPLcom/android/server/wm/WindowToken;->setClientVisible(Z)V
 PLcom/android/server/wm/WindowToken;->setExiting(Z)V
-PLcom/android/server/wm/WindowToken;->setInsetsFrozen(Z)V
-HPLcom/android/server/wm/WindowToken;->toString()Ljava/lang/String;
-HPLcom/android/server/wm/WindowToken;->updateSurfacePosition(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/WindowToken;->toString()Ljava/lang/String;
+PLcom/android/server/wm/WindowToken;->updateSurfacePosition(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/WindowToken;->windowsCanBeWallpaperTarget()Z
-PLcom/android/server/wm/WindowTracing$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowTracing;)V
-PLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;I)V
-PLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;Lcom/android/server/wm/WindowManagerGlobalLock;I)V
-PLcom/android/server/wm/WindowTracing;->createDefaultAndStartLooper(Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;)Lcom/android/server/wm/WindowTracing;
-HPLcom/android/server/wm/WindowTracing;->isEnabled()Z
-PLcom/android/server/wm/WindowTracing;->logAndPrintln(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HPLcom/android/server/wm/WindowTracing;->logState(Ljava/lang/String;)V
-PLcom/android/server/wm/WindowTracing;->setBufferCapacity(ILjava/io/PrintWriter;)V
-PLcom/android/server/wm/WindowTracing;->setLogLevel(ILjava/io/PrintWriter;)V
-HSPLcom/android/server/wm/utils/DisplayInfoOverrides$$ExternalSyntheticLambda0;-><init>()V
-PLcom/android/server/wm/utils/DisplayInfoOverrides$$ExternalSyntheticLambda0;->setFields(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/utils/DisplayInfoOverrides;->$r8$lambda$jgt4-o-_IMdp6knRL61iyTsmoLA(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
-HSPLcom/android/server/wm/utils/DisplayInfoOverrides;-><clinit>()V
-HSPLcom/android/server/wm/utils/DisplayInfoOverrides;->copyDisplayInfoFields(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;Lcom/android/server/wm/utils/DisplayInfoOverrides$DisplayInfoFieldsUpdater;)V
-HPLcom/android/server/wm/utils/DisplayInfoOverrides;->lambda$static$0(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/utils/InsetUtils;->rotateInsets(Landroid/graphics/Rect;I)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/RotationCache;-><init>(Lcom/android/server/wm/utils/RotationCache$RotationDependentComputation;)V
-HPLcom/android/server/wm/utils/RotationCache;->getOrCompute(Ljava/lang/Object;I)Ljava/lang/Object;
+PLcom/android/server/wm/WindowTracing$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/WindowTracingPerfetto;)V
+PLcom/android/server/wm/WindowTracingDataSource$Config;-><init>(II)V
+PLcom/android/server/wm/WindowTracingDataSource;-><clinit>()V
+PLcom/android/server/wm/WindowTracingDataSource;-><init>(Lcom/android/server/wm/WindowTracingPerfetto;Ljava/lang/String;)V
+PLcom/android/server/wm/WindowTracingPerfetto;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;Lcom/android/server/wm/WindowManagerGlobalLock;Ljava/lang/String;)V
+PLcom/android/server/wm/WindowTracingPerfetto;->getStatus()Ljava/lang/String;
+HPLcom/android/server/wm/WindowTracingPerfetto;->isEnabled()Z
+PLcom/android/server/wm/utils/AlwaysTruePredicate;-><clinit>()V
+PLcom/android/server/wm/utils/AlwaysTruePredicate;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/utils/DimenPxIntSupplier;-><init>(Landroid/content/Context;I)V
+HPLcom/android/server/wm/utils/InsetUtils;->addInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/utils/OptPropFactory$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/utils/OptPropFactory;Ljava/lang/String;I)V
+PLcom/android/server/wm/utils/OptPropFactory$OptProp$$ExternalSyntheticLambda0;->getAsBoolean()Z
+PLcom/android/server/wm/utils/OptPropFactory$OptProp;-><init>(Lcom/android/server/wm/utils/OptPropFactory$$ExternalSyntheticLambda0;Ljava/lang/String;Ljava/util/function/BooleanSupplier;)V
+HPLcom/android/server/wm/utils/OptPropFactory$OptProp;->getValue()I+]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
+HPLcom/android/server/wm/utils/OptPropFactory$OptProp;->isFalse()Z+]Ljava/util/function/BooleanSupplier;Lcom/android/server/wm/AppCompatAspectRatioOverrides$$ExternalSyntheticLambda0;,Lcom/android/server/wm/utils/OptPropFactory$OptProp$$ExternalSyntheticLambda0;
+HPLcom/android/server/wm/utils/OptPropFactory$OptProp;->shouldEnableWithOptInOverrideAndOptOutProperty(Z)Z+]Ljava/util/function/BooleanSupplier;Lcom/android/server/wm/AppCompatUtils$1;,Lcom/android/server/wm/utils/OptPropFactory$OptProp$$ExternalSyntheticLambda0;
+PLcom/android/server/wm/utils/OptPropFactory$OptProp;->shouldEnableWithOverrideAndProperty(Z)Z
+PLcom/android/server/wm/utils/OptPropFactory;-><init>(Landroid/content/pm/PackageManager;Ljava/lang/String;)V
+HPLcom/android/server/wm/utils/OptPropFactory;->create(Ljava/lang/String;)Lcom/android/server/wm/utils/OptPropFactory$OptProp;
+PLcom/android/server/wm/utils/OptPropFactory;->create(Ljava/lang/String;Ljava/util/function/BooleanSupplier;)Lcom/android/server/wm/utils/OptPropFactory$OptProp;
+PLcom/android/server/wm/utils/RegionUtils;->forEachRect(Landroid/graphics/Region;Ljava/util/function/Consumer;)V
+PLcom/android/server/wm/utils/RotationCache;-><init>(Lcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda32;)V
+HPLcom/android/server/wm/utils/RotationCache;->getOrCompute(ILjava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/wm/utils/WmDisplayCutout;-><clinit>()V
 PLcom/android/server/wm/utils/WmDisplayCutout;-><init>(Landroid/view/DisplayCutout;Landroid/util/Size;)V
-PLcom/android/server/wm/utils/WmDisplayCutout;->getDisplayCutout()Landroid/view/DisplayCutout;
-PLcom/android/systemui/shared/FeatureFlagsImpl;-><clinit>()V
-PLcom/android/systemui/shared/FeatureFlagsImpl;-><init>()V
-PLcom/android/systemui/shared/FeatureFlagsImpl;->enableHomeDelay()Z
-PLcom/android/systemui/shared/FeatureFlagsImpl;->load_overrides_systemui()V
 PLcom/android/systemui/shared/Flags;-><clinit>()V
 PLcom/android/systemui/shared/Flags;->enableHomeDelay()Z
-HSPLcom/android/wm/shell/FeatureFlagsImpl;-><clinit>()V
-HSPLcom/android/wm/shell/FeatureFlagsImpl;-><init>()V
-HSPLcom/android/wm/shell/FeatureFlagsImpl;->enableDesktopWindowing()Z
-PLcom/android/wm/shell/FeatureFlagsImpl;->enablePip2Implementation()Z
-HSPLcom/android/wm/shell/Flags;-><clinit>()V
-HSPLcom/android/wm/shell/Flags;->enableDesktopWindowing()Z
-PLcom/android/wm/shell/Flags;->enablePip2Implementation()Z
+PLcom/android/wm/shell/FeatureFlagsImpl;->init()V
+PLcom/android/wm/shell/Flags;-><clinit>()V
+PLcom/android/wm/shell/Flags;->enablePip2()Z
+PLcom/android/wm/shell/Flags;->onlyReuseBubbledTaskWhenLaunchedFromBubble()Z
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index 414db37..05301fd 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -588,10 +588,10 @@
         @Override
         @EnforcePermission(DELIVER_COMPANION_MESSAGES)
         public void attachSystemDataTransport(String packageName, int userId, int associationId,
-                ParcelFileDescriptor fd) {
+                                              ParcelFileDescriptor fd, int flags) {
             attachSystemDataTransport_enforcePermission();
 
-            mTransportManager.attachSystemDataTransport(associationId, fd);
+            mTransportManager.attachSystemDataTransport(associationId, fd, flags);
         }
 
         @Override
diff --git a/services/companion/java/com/android/server/companion/securechannel/AttestationVerifier.java b/services/companion/java/com/android/server/companion/securechannel/AttestationVerifier.java
index df3071e..42af059 100644
--- a/services/companion/java/com/android/server/companion/securechannel/AttestationVerifier.java
+++ b/services/companion/java/com/android/server/companion/securechannel/AttestationVerifier.java
@@ -16,7 +16,9 @@
 
 package com.android.server.companion.securechannel;
 
+import static android.companion.CompanionDeviceManager.TRANSPORT_FLAG_EXTEND_PATCH_DIFF;
 import static android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE;
+import static android.security.attestationverification.AttestationVerificationManager.PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS;
 import static android.security.attestationverification.AttestationVerificationManager.PROFILE_PEER_DEVICE;
 import static android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE;
 
@@ -34,15 +36,21 @@
 
 /**
  * Helper class to perform attestation verification synchronously.
+ *
+ * @hide
  */
 public class AttestationVerifier {
     private static final long ATTESTATION_VERIFICATION_TIMEOUT_SECONDS = 10; // 10 seconds
     private static final String PARAM_OWNED_BY_SYSTEM = "android.key_owned_by_system";
 
-    private final Context mContext;
+    private static final int EXTENDED_PATCH_LEVEL_DIFF_MONTHS = 24; // 2 years
 
-    AttestationVerifier(Context context) {
+    private final Context mContext;
+    private final int mFlags;
+
+    AttestationVerifier(Context context, int flags) {
         this.mContext = context;
+        this.mFlags = flags;
     }
 
     /**
@@ -59,10 +67,13 @@
             @NonNull byte[] remoteAttestation,
             @NonNull byte[] attestationChallenge
     ) throws SecureChannelException {
-        Bundle requirements = new Bundle();
+        final Bundle requirements = new Bundle();
         requirements.putByteArray(PARAM_CHALLENGE, attestationChallenge);
         requirements.putBoolean(PARAM_OWNED_BY_SYSTEM, true); // Custom parameter for CDM
 
+        // Apply flags to verifier requirements
+        updateRequirements(requirements);
+
         // Synchronously execute attestation verification.
         AtomicInteger verificationResult = new AtomicInteger(0);
         CountDownLatch verificationFinished = new CountDownLatch(1);
@@ -96,4 +107,15 @@
 
         return verificationResult.get();
     }
+
+    private void updateRequirements(Bundle requirements) {
+        if (mFlags == 0) {
+            return;
+        }
+
+        if ((mFlags & TRANSPORT_FLAG_EXTEND_PATCH_DIFF) > 0) {
+            requirements.putInt(PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS,
+                    EXTENDED_PATCH_LEVEL_DIFF_MONTHS);
+        }
+    }
 }
diff --git a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
index 2d3782f..6c7c9b3 100644
--- a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
+++ b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
@@ -59,6 +59,7 @@
     private final Callback mCallback;
     private final byte[] mPreSharedKey;
     private final AttestationVerifier mVerifier;
+    private final int mFlags;
 
     private volatile boolean mStopped;
     private volatile boolean mInProgress;
@@ -89,7 +90,7 @@
             @NonNull Callback callback,
             @NonNull byte[] preSharedKey
     ) {
-        this(in, out, callback, preSharedKey, null);
+        this(in, out, callback, preSharedKey, null, 0);
     }
 
     /**
@@ -100,14 +101,16 @@
      * @param out output stream from which data is sent out
      * @param callback subscription to received messages from the channel
      * @param context context for fetching the Attestation Verifier Framework system service
+     * @param flags flags for custom security settings on the channel
      */
     public SecureChannel(
             @NonNull final InputStream in,
             @NonNull final OutputStream out,
             @NonNull Callback callback,
-            @NonNull Context context
+            @NonNull Context context,
+            int flags
     ) {
-        this(in, out, callback, null, new AttestationVerifier(context));
+        this(in, out, callback, null, new AttestationVerifier(context, flags), flags);
     }
 
     public SecureChannel(
@@ -115,13 +118,15 @@
             final OutputStream out,
             Callback callback,
             byte[] preSharedKey,
-            AttestationVerifier verifier
+            AttestationVerifier verifier,
+            int flags
     ) {
         this.mInput = in;
         this.mOutput = out;
         this.mCallback = callback;
         this.mPreSharedKey = preSharedKey;
         this.mVerifier = verifier;
+        this.mFlags = flags;
     }
 
     /**
diff --git a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java
index 3608360..92d9fb0 100644
--- a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java
+++ b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java
@@ -16,7 +16,11 @@
 
 package com.android.server.companion.transport;
 
+import static android.companion.AssociationRequest.DEVICE_PROFILE_WEARABLE_SENSING;
 import static android.companion.CompanionDeviceManager.MESSAGE_REQUEST_PERMISSION_RESTORE;
+import static android.companion.CompanionDeviceManager.TRANSPORT_FLAG_EXTEND_PATCH_DIFF;
+
+import static com.android.server.companion.transport.TransportUtils.enforceAssociationCanUseTransportFlags;
 
 import android.annotation.NonNull;
 import android.annotation.SuppressLint;
@@ -152,10 +156,14 @@
     /**
      * Attach transport.
      */
-    public void attachSystemDataTransport(int associationId, ParcelFileDescriptor fd) {
+    public void attachSystemDataTransport(int associationId, ParcelFileDescriptor fd,
+                                          int flags) {
         Slog.i(TAG, "Attaching transport for association id=[" + associationId + "]...");
 
-        mAssociationStore.getAssociationWithCallerChecks(associationId);
+        AssociationInfo association =
+                mAssociationStore.getAssociationWithCallerChecks(associationId);
+
+        enforceAssociationCanUseTransportFlags(association, flags);
 
         synchronized (mTransports) {
             if (mTransports.contains(associationId)) {
@@ -163,7 +171,7 @@
             }
 
             // TODO: Implement new API to pass a PSK
-            initializeTransport(associationId, fd, null);
+            initializeTransport(association, fd, null, flags);
 
             notifyOnTransportsChanged();
         }
@@ -217,10 +225,12 @@
         }
     }
 
-    private void initializeTransport(int associationId,
+    private void initializeTransport(AssociationInfo association,
                                      ParcelFileDescriptor fd,
-                                     byte[] preSharedKey) {
+                                     byte[] preSharedKey,
+                                     int flags) {
         Slog.i(TAG, "Initializing transport");
+        int associationId = association.getId();
         Transport transport;
         if (!isSecureTransportEnabled()) {
             // If secure transport is explicitly disabled for testing, use raw transport
@@ -230,15 +240,21 @@
             // If device is debug build, use hardcoded test key for authentication
             Slog.d(TAG, "Creating an unauthenticated secure channel");
             final byte[] testKey = "CDM".getBytes(StandardCharsets.UTF_8);
-            transport = new SecureTransport(associationId, fd, mContext, testKey, null);
+            transport = new SecureTransport(associationId, fd, mContext, testKey, null, 0);
         } else if (preSharedKey != null) {
             // If either device is not Android, then use app-specific pre-shared key
             Slog.d(TAG, "Creating a PSK-authenticated secure channel");
-            transport = new SecureTransport(associationId, fd, mContext, preSharedKey, null);
+            transport = new SecureTransport(associationId, fd, mContext, preSharedKey, null, 0);
+        } else if (DEVICE_PROFILE_WEARABLE_SENSING.equals(association.getDeviceProfile())) {
+            // If device is glasses with WEARABLE_SENSING profile, extend the allowed patch
+            // difference to 2 years instead of 1.
+            Slog.d(TAG, "Creating a secure channel with extended patch difference allowance");
+            transport = new SecureTransport(associationId, fd, mContext,
+                    TRANSPORT_FLAG_EXTEND_PATCH_DIFF);
         } else {
             // If none of the above applies, then use secure channel with attestation verification
             Slog.d(TAG, "Creating a secure channel");
-            transport = new SecureTransport(associationId, fd, mContext);
+            transport = new SecureTransport(associationId, fd, mContext, flags);
         }
 
         addMessageListenersToTransport(transport);
diff --git a/services/companion/java/com/android/server/companion/transport/SecureTransport.java b/services/companion/java/com/android/server/companion/transport/SecureTransport.java
index 1e95e65..77dc809 100644
--- a/services/companion/java/com/android/server/companion/transport/SecureTransport.java
+++ b/services/companion/java/com/android/server/companion/transport/SecureTransport.java
@@ -36,15 +36,22 @@
 
     private final BlockingQueue<byte[]> mRequestQueue = new ArrayBlockingQueue<>(500);
 
-    SecureTransport(int associationId, ParcelFileDescriptor fd, Context context) {
+    SecureTransport(int associationId, ParcelFileDescriptor fd, Context context, int flags) {
         super(associationId, fd, context);
-        mSecureChannel = new SecureChannel(mRemoteIn, mRemoteOut, this, context);
+        mSecureChannel = new SecureChannel(mRemoteIn, mRemoteOut, this, context, flags);
     }
 
     SecureTransport(int associationId, ParcelFileDescriptor fd, Context context,
-            byte[] preSharedKey, AttestationVerifier verifier) {
+            byte[] preSharedKey, AttestationVerifier verifier, int flags) {
         super(associationId, fd, context);
-        mSecureChannel = new SecureChannel(mRemoteIn, mRemoteOut, this, preSharedKey, verifier);
+        mSecureChannel = new SecureChannel(
+                mRemoteIn,
+                mRemoteOut,
+                this,
+                preSharedKey,
+                verifier,
+                flags
+        );
     }
 
     @Override
diff --git a/services/companion/java/com/android/server/companion/transport/TransportUtils.java b/services/companion/java/com/android/server/companion/transport/TransportUtils.java
new file mode 100644
index 0000000..7a15c11
--- /dev/null
+++ b/services/companion/java/com/android/server/companion/transport/TransportUtils.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.companion.transport;
+
+import static android.companion.AssociationRequest.DEVICE_PROFILE_WEARABLE_SENSING;
+import static android.companion.CompanionDeviceManager.TRANSPORT_FLAG_EXTEND_PATCH_DIFF;
+
+import static java.util.Collections.unmodifiableMap;
+
+import android.companion.AssociationInfo;
+import android.util.ArrayMap;
+
+import java.util.Map;
+
+/**
+ * Utility class for transport manager.
+ * @hide
+ */
+public final class TransportUtils {
+
+    /**
+     * Device profile -> Union of allowlisted transport flags
+     */
+    private static final Map<String, Integer> DEVICE_PROFILE_TRANSPORT_FLAGS_ALLOWLIST;
+    static {
+        final Map<String, Integer> map = new ArrayMap<>();
+        map.put(DEVICE_PROFILE_WEARABLE_SENSING,
+                TRANSPORT_FLAG_EXTEND_PATCH_DIFF);
+        DEVICE_PROFILE_TRANSPORT_FLAGS_ALLOWLIST = unmodifiableMap(map);
+    }
+
+    /**
+     * Enforce that the association that is trying to attach a transport with provided flags has
+     * one of the allowlisted device profiles that may apply the flagged features.
+     *
+     * @param association Association for which transport is being attached
+     * @param flags Flags for features being applied to the transport
+     */
+    public static void enforceAssociationCanUseTransportFlags(
+            AssociationInfo association, int flags) {
+        if (flags == 0) {
+            return;
+        }
+
+        final String deviceProfile = association.getDeviceProfile();
+        if (!DEVICE_PROFILE_TRANSPORT_FLAGS_ALLOWLIST.containsKey(deviceProfile)) {
+            throw new IllegalArgumentException("Association (id=" + association.getId()
+                    + ") with device profile " + deviceProfile + " does not support the "
+                    + "usage of transport flags.");
+        }
+
+        int allowedFlags = DEVICE_PROFILE_TRANSPORT_FLAGS_ALLOWLIST.get(deviceProfile);
+
+        // Ensure that every non-zero bits in flags are also present in allowed flags
+        if ((allowedFlags & flags) != flags) {
+            throw new IllegalArgumentException("Association (id=" + association.getId()
+                    + ") does not have the device profile required to use at least "
+                    + "one of the flags in this transport.");
+        }
+    }
+
+    private TransportUtils() {}
+}
diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
index c385fba..f03e8c7 100644
--- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
+++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
@@ -30,7 +30,6 @@
 import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_CAMERA;
 import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_CLIPBOARD;
 import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;
-import static android.companion.virtualdevice.flags.Flags.virtualCameraServiceDiscovery;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -55,9 +54,9 @@
 import android.companion.virtual.audio.IAudioConfigChangedCallback;
 import android.companion.virtual.audio.IAudioRoutingCallback;
 import android.companion.virtual.camera.VirtualCameraConfig;
-import android.companion.virtual.flags.Flags;
 import android.companion.virtual.sensor.VirtualSensor;
 import android.companion.virtual.sensor.VirtualSensorEvent;
+import android.companion.virtualdevice.flags.Flags;
 import android.compat.annotation.ChangeId;
 import android.compat.annotation.EnabledAfter;
 import android.content.AttributionSource;
@@ -111,6 +110,7 @@
 import android.view.Display;
 import android.view.WindowManager;
 import android.widget.Toast;
+import android.window.DisplayWindowPolicyController;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
@@ -265,7 +265,7 @@
                         UserHandle.SYSTEM);
             }
 
-            if (android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+            if (Flags.activityControlApi()) {
                 try {
                     mActivityListener.onActivityLaunchBlocked(
                             displayId,
@@ -280,7 +280,7 @@
 
         @Override
         public void onSecureWindowShown(int displayId, @NonNull ActivityInfo activityInfo) {
-            if (android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+            if (Flags.activityControlApi()) {
                 try {
                     mActivityListener.onSecureWindowShown(
                             displayId,
@@ -318,7 +318,7 @@
 
         @Override
         public void onSecureWindowHidden(int displayId) {
-            if (android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+            if (Flags.activityControlApi()) {
                 try {
                     mActivityListener.onSecureWindowHidden(displayId);
                 } catch (RemoteException e) {
@@ -682,7 +682,7 @@
         checkCallerIsDeviceOwner();
         final int displayId = exemption.getDisplayId();
         if (exemption.getComponentName() == null || displayId != Display.INVALID_DISPLAY) {
-            if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+            if (!Flags.activityControlApi()) {
                 return;
             }
         }
@@ -719,7 +719,7 @@
         checkCallerIsDeviceOwner();
         final int displayId = exemption.getDisplayId();
         if (exemption.getComponentName() == null || displayId != Display.INVALID_DISPLAY) {
-            if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+            if (!Flags.activityControlApi()) {
                 return;
             }
         }
@@ -921,7 +921,7 @@
                 }
                 break;
             case POLICY_TYPE_BLOCKED_ACTIVITY:
-                if (android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+                if (Flags.activityControlApi()) {
                     synchronized (mVirtualDeviceLock) {
                         mDevicePolicies.put(policyType, devicePolicy);
                     }
@@ -938,7 +938,7 @@
             @VirtualDeviceParams.DynamicDisplayPolicyType int policyType,
             @VirtualDeviceParams.DevicePolicy int devicePolicy) {
         checkCallerIsDeviceOwner();
-        if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+        if (!Flags.activityControlApi()) {
             return;
         }
         synchronized (mVirtualDeviceLock) {
@@ -1412,8 +1412,7 @@
         return mirroredDisplayId == Display.INVALID_DISPLAY ? displayId : mirroredDisplayId;
     }
 
-    @GuardedBy("mVirtualDeviceLock")
-    private GenericWindowPolicyController createWindowPolicyControllerLocked(
+    private GenericWindowPolicyController createWindowPolicyController(
             @NonNull Set<String> displayCategories) {
         final boolean activityLaunchAllowedByDefault =
                 getDevicePolicy(POLICY_TYPE_ACTIVITY) == DEVICE_POLICY_DEFAULT;
@@ -1422,28 +1421,28 @@
         final boolean showTasksInHostDeviceRecents =
                 getDevicePolicy(POLICY_TYPE_RECENTS) == DEVICE_POLICY_DEFAULT;
 
-        if (mActivityListenerAdapter == null) {
-            mActivityListenerAdapter = new GwpcActivityListener();
-        }
+        synchronized (mVirtualDeviceLock) {
+            if (mActivityListenerAdapter == null) {
+                mActivityListenerAdapter = new GwpcActivityListener();
+            }
 
-        final GenericWindowPolicyController gwpc = new GenericWindowPolicyController(
-                WindowManager.LayoutParams.FLAG_SECURE,
-                WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS,
-                mAttributionSource,
-                getAllowedUserHandles(),
-                activityLaunchAllowedByDefault,
-                mActivityPolicyExemptions,
-                mActivityPolicyPackageExemptions,
-                crossTaskNavigationAllowedByDefault,
-                /* crossTaskNavigationExemptions= */crossTaskNavigationAllowedByDefault
-                        ? mParams.getBlockedCrossTaskNavigations()
-                        : mParams.getAllowedCrossTaskNavigations(),
-                mActivityListenerAdapter,
-                displayCategories,
-                showTasksInHostDeviceRecents,
-                mParams.getHomeComponent());
-        gwpc.registerRunningAppsChangedListener(/* listener= */ this);
-        return gwpc;
+            return new GenericWindowPolicyController(
+                    WindowManager.LayoutParams.FLAG_SECURE,
+                    WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS,
+                    mAttributionSource,
+                    getAllowedUserHandles(),
+                    activityLaunchAllowedByDefault,
+                    mActivityPolicyExemptions,
+                    mActivityPolicyPackageExemptions,
+                    crossTaskNavigationAllowedByDefault,
+                    /* crossTaskNavigationExemptions= */crossTaskNavigationAllowedByDefault
+                            ? mParams.getBlockedCrossTaskNavigations()
+                            : mParams.getAllowedCrossTaskNavigations(),
+                    mActivityListenerAdapter,
+                    displayCategories,
+                    showTasksInHostDeviceRecents,
+                    mParams.getHomeComponent());
+        }
     }
 
     @Override // Binder call
@@ -1451,55 +1450,54 @@
             @NonNull IVirtualDisplayCallback callback) {
         checkCallerIsDeviceOwner();
 
-        int displayId;
-        boolean showPointer;
-        boolean isTrustedDisplay;
-        GenericWindowPolicyController gwpc;
-        synchronized (mVirtualDeviceLock) {
-            gwpc = createWindowPolicyControllerLocked(virtualDisplayConfig.getDisplayCategories());
-            displayId = mDisplayManagerInternal.createVirtualDisplay(virtualDisplayConfig,
-                    callback, this, gwpc, mOwnerPackageName);
-            boolean isMirrorDisplay =
-                    mDisplayManagerInternal.getDisplayIdToMirror(displayId)
-                            != Display.INVALID_DISPLAY;
-            gwpc.setDisplayId(displayId, isMirrorDisplay);
-            isTrustedDisplay =
-                    (mDisplayManagerInternal.getDisplayInfo(displayId).flags & Display.FLAG_TRUSTED)
-                            == Display.FLAG_TRUSTED;
-            if (!isTrustedDisplay
-                    && getDevicePolicy(POLICY_TYPE_CLIPBOARD) != DEVICE_POLICY_DEFAULT) {
-                throw new SecurityException("All displays must be trusted for devices with "
-                        + "custom clipboard policy.");
-            }
-
-            if (mVirtualDisplays.contains(displayId)) {
-                gwpc.unregisterRunningAppsChangedListener(this);
-                throw new IllegalStateException(
-                        "Virtual device already has a virtual display with ID " + displayId);
-            }
-
-            PowerManager.WakeLock wakeLock =
-                    isTrustedDisplay ? createAndAcquireWakeLockForDisplay(displayId) : null;
-            mVirtualDisplays.put(displayId, new VirtualDisplayWrapper(callback, gwpc, wakeLock,
-                    isTrustedDisplay, isMirrorDisplay));
-            showPointer = mDefaultShowPointerIcon;
+        final boolean isTrustedDisplay =
+                (virtualDisplayConfig.getFlags() & DisplayManager.VIRTUAL_DISPLAY_FLAG_TRUSTED)
+                        == DisplayManager.VIRTUAL_DISPLAY_FLAG_TRUSTED;
+        if (!isTrustedDisplay && getDevicePolicy(POLICY_TYPE_CLIPBOARD) != DEVICE_POLICY_DEFAULT) {
+            throw new SecurityException(
+                "All displays must be trusted for devices with custom clipboard policy.");
         }
 
-        final long token = Binder.clearCallingIdentity();
-        try {
+        GenericWindowPolicyController gwpc =
+                createWindowPolicyController(virtualDisplayConfig.getDisplayCategories());
+
+        // Create the display outside of the lock to avoid deadlock. DisplayManagerService will
+        // acquire the global WM lock while creating the display. At the same time, WM may query
+        // VDM and this virtual device to get policies, display ownership, etc.
+        int displayId = mDisplayManagerInternal.createVirtualDisplay(virtualDisplayConfig,
+                    callback, this, gwpc, mOwnerPackageName);
+        if (displayId == Display.INVALID_DISPLAY) {
+            return displayId;
+        }
+
+        // DisplayManagerService will call onVirtualDisplayCreated() after the display is created,
+        // while holding its own lock to ensure that this device knows about the display before any
+        // other display listeners are notified about the display creation.
+        VirtualDisplayWrapper displayWrapper;
+        boolean showPointer;
+        synchronized (mVirtualDeviceLock) {
+            if (!mVirtualDisplays.contains(displayId)) {
+                throw new IllegalStateException("Virtual device was not notified about the "
+                        + "creation of display with ID " + displayId);
+            }
+            displayWrapper = mVirtualDisplays.get(displayId);
+            showPointer = mDefaultShowPointerIcon;
+        }
+        displayWrapper.acquireWakeLock();
+        gwpc.registerRunningAppsChangedListener(/* listener= */ this);
+
+        Binder.withCleanCallingIdentity(() -> {
             mInputController.setMouseScalingEnabled(false, displayId);
             mInputController.setDisplayEligibilityForPointerCapture(/* isEligible= */ false,
                     displayId);
-            if (isTrustedDisplay) {
+            if (displayWrapper.isTrusted()) {
                 mInputController.setShowPointerIcon(showPointer, displayId);
                 mInputController.setDisplayImePolicy(displayId,
                         WindowManager.DISPLAY_IME_POLICY_LOCAL);
             } else {
                 gwpc.setShowInHostDeviceRecents(true);
             }
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
+        });
 
         Counter.logIncrementWithUid(
                 "virtual_devices.value_virtual_display_created_count",
@@ -1507,8 +1505,8 @@
         return displayId;
     }
 
-    private PowerManager.WakeLock createAndAcquireWakeLockForDisplay(int displayId) {
-        if (android.companion.virtualdevice.flags.Flags.deviceAwareDisplayPower()) {
+    private PowerManager.WakeLock createWakeLockForDisplay(int displayId) {
+        if (Flags.deviceAwareDisplayPower()) {
             return null;
         }
         final long token = Binder.clearCallingIdentity();
@@ -1517,7 +1515,6 @@
             PowerManager.WakeLock wakeLock = powerManager.newWakeLock(
                     PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
                     TAG + ":" + displayId, displayId);
-            wakeLock.acquire();
             return wakeLock;
         } finally {
             Binder.restoreCallingIdentity(token);
@@ -1531,7 +1528,7 @@
             // infinite blocking loop.
             return false;
         }
-        if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
+        if (!Flags.activityControlApi()) {
             return true;
         }
         // Do not show the dialog if disabled by policy.
@@ -1562,17 +1559,47 @@
         return result;
     }
 
+    /**
+     * DisplayManagerService is notifying this virtual device about the display creation. This
+     * should happen before the DisplayManagerInternal#createVirtualDisplay() call above
+     * returns.
+     * This is called while holding the DisplayManagerService lock, so no heavy-weight work must
+     * be done here and especially *** no calls to WindowManager! ***
+     */
+    public void onVirtualDisplayCreated(int displayId, IVirtualDisplayCallback callback,
+            DisplayWindowPolicyController dwpc) {
+        final boolean isMirrorDisplay =
+                mDisplayManagerInternal.getDisplayIdToMirror(displayId) != Display.INVALID_DISPLAY;
+        final boolean isTrustedDisplay =
+                (mDisplayManagerInternal.getDisplayInfo(displayId).flags & Display.FLAG_TRUSTED)
+                        == Display.FLAG_TRUSTED;
+
+        GenericWindowPolicyController gwpc = (GenericWindowPolicyController) dwpc;
+        gwpc.setDisplayId(displayId, isMirrorDisplay);
+        PowerManager.WakeLock wakeLock =
+                isTrustedDisplay ? createWakeLockForDisplay(displayId) : null;
+        synchronized (mVirtualDeviceLock) {
+            if (mVirtualDisplays.contains(displayId)) {
+                Slog.wtf(TAG, "Virtual device already has a virtual display with ID " + displayId);
+                return;
+            }
+            mVirtualDisplays.put(displayId, new VirtualDisplayWrapper(callback, gwpc, wakeLock,
+                    isTrustedDisplay, isMirrorDisplay));
+        }
+    }
+
+    /**
+     * This is callback invoked by VirtualDeviceManagerService when VirtualDisplay was released
+     * by DisplayManager (most probably caused by someone calling VirtualDisplay.close()).
+     * At this point, the display is already released, but we still need to release the
+     * corresponding wakeLock and unregister the RunningAppsChangedListener from corresponding
+     * WindowPolicyController.
+     *
+     * Note that when the display is destroyed during VirtualDeviceImpl.close() call,
+     * this callback won't be invoked because the display is removed from
+     * VirtualDeviceManagerService before any resources are released.
+     */
     void onVirtualDisplayRemoved(int displayId) {
-        /* This is callback invoked by VirtualDeviceManagerService when VirtualDisplay was released
-         * by DisplayManager (most probably caused by someone calling VirtualDisplay.close()).
-         * At this point, the display is already released, but we still need to release the
-         * corresponding wakeLock and unregister the RunningAppsChangedListener from corresponding
-         * WindowPolicyController.
-         *
-         * Note that when the display is destroyed during VirtualDeviceImpl.close() call,
-         * this callback won't be invoked because the display is removed from
-         * VirtualDeviceManagerService before any resources are released.
-         */
         VirtualDisplayWrapper virtualDisplayWrapper;
         synchronized (mVirtualDeviceLock) {
             virtualDisplayWrapper = mVirtualDisplays.removeReturnOld(displayId);
@@ -1848,6 +1875,12 @@
             return mWindowPolicyController;
         }
 
+        void acquireWakeLock() {
+            if (mWakeLock != null && !mWakeLock.isHeld()) {
+                mWakeLock.acquire();
+            }
+        }
+
         void releaseWakeLock() {
             if (mWakeLock != null && mWakeLock.isHeld()) {
                 mWakeLock.release();
@@ -1868,8 +1901,7 @@
     }
 
     private static boolean isVirtualCameraEnabled() {
-        return Flags.virtualCamera() && virtualCameraServiceDiscovery()
-                && nativeVirtualCameraServiceBuildFlagEnabled();
+        return nativeVirtualCameraServiceBuildFlagEnabled();
     }
 
     // Returns true if virtual_camera service is enabled in this build.
diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java
index 8a0b8585..ff82ca0 100644
--- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java
@@ -40,7 +40,6 @@
 import android.companion.virtual.VirtualDevice;
 import android.companion.virtual.VirtualDeviceManager;
 import android.companion.virtual.VirtualDeviceParams;
-import android.companion.virtual.flags.Flags;
 import android.companion.virtual.sensor.VirtualSensor;
 import android.companion.virtualnative.IVirtualDeviceManagerNative;
 import android.compat.annotation.ChangeId;
@@ -49,6 +48,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.hardware.display.DisplayManagerInternal;
+import android.hardware.display.IVirtualDisplayCallback;
 import android.os.Binder;
 import android.os.Build;
 import android.os.Handler;
@@ -67,6 +67,7 @@
 import android.util.SparseArray;
 import android.view.Display;
 import android.widget.Toast;
+import android.window.DisplayWindowPolicyController;
 
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
@@ -751,6 +752,16 @@
         }
 
         @Override
+        public void onVirtualDisplayCreated(IVirtualDevice virtualDevice, int displayId,
+                IVirtualDisplayCallback callback, DisplayWindowPolicyController dwpc) {
+            VirtualDeviceImpl virtualDeviceImpl = getVirtualDeviceForId(
+                    ((VirtualDeviceImpl) virtualDevice).getDeviceId());
+            if (virtualDeviceImpl != null) {
+                virtualDeviceImpl.onVirtualDisplayCreated(displayId, callback, dwpc);
+            }
+        }
+
+        @Override
         public void onVirtualDisplayRemoved(IVirtualDevice virtualDevice, int displayId) {
             VirtualDeviceImpl virtualDeviceImpl = getVirtualDeviceForId(
                     ((VirtualDeviceImpl) virtualDevice).getDeviceId());
diff --git a/services/core/Android.bp b/services/core/Android.bp
index f98076a..2aaf6a9 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -292,9 +292,15 @@
     out: ["services.core.priorityboosted.jar"],
 }
 
+java_genrule_combiner {
+    name: "services.core.combined",
+    static_libs: ["services.core.priorityboosted"],
+    headers: ["services.core.unboosted"],
+}
+
 java_library {
     name: "services.core",
-    static_libs: ["services.core.priorityboosted"],
+    static_libs: ["services.core.combined"],
 }
 
 java_library_host {
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 350ecab..d2a5734 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -163,6 +163,10 @@
 import com.android.server.storage.AppFuseBridge;
 import com.android.server.storage.StorageSessionController;
 import com.android.server.storage.StorageSessionController.ExternalStorageServiceException;
+import com.android.server.storage.WatchedVolumeInfo;
+import com.android.server.utils.Watchable;
+import com.android.server.utils.WatchedArrayMap;
+import com.android.server.utils.Watcher;
 import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.ActivityTaskManagerInternal.ScreenObserver;
 
@@ -452,7 +456,7 @@
     private ArrayMap<String, DiskInfo> mDisks = new ArrayMap<>();
     /** Map from volume ID to disk */
     @GuardedBy("mLock")
-    private final ArrayMap<String, VolumeInfo> mVolumes = new ArrayMap<>();
+    private final WatchedArrayMap<String, WatchedVolumeInfo> mVolumes = new WatchedArrayMap<>();
 
     /** Map from UUID to record */
     @GuardedBy("mLock")
@@ -503,9 +507,9 @@
             "(?i)(^/storage/[^/]+/(?:([0-9]+)/)?Android/(?:data|media|obb|sandbox)/)([^/]+)(/.*)?");
 
 
-    private VolumeInfo findVolumeByIdOrThrow(String id) {
+    private WatchedVolumeInfo findVolumeByIdOrThrow(String id) {
         synchronized (mLock) {
-            final VolumeInfo vol = mVolumes.get(id);
+            final WatchedVolumeInfo vol = mVolumes.get(id);
             if (vol != null) {
                 return vol;
             }
@@ -516,9 +520,9 @@
     private VolumeRecord findRecordForPath(String path) {
         synchronized (mLock) {
             for (int i = 0; i < mVolumes.size(); i++) {
-                final VolumeInfo vol = mVolumes.valueAt(i);
-                if (vol.path != null && path.startsWith(vol.path)) {
-                    return mRecords.get(vol.fsUuid);
+                final WatchedVolumeInfo vol = mVolumes.valueAt(i);
+                if (vol.getFsPath() != null && path.startsWith(vol.getFsPath())) {
+                    return mRecords.get(vol.getFsUuid());
                 }
             }
         }
@@ -764,7 +768,7 @@
                     break;
                 }
                 case H_VOLUME_MOUNT: {
-                    final VolumeInfo vol = (VolumeInfo) msg.obj;
+                    final WatchedVolumeInfo vol = (WatchedVolumeInfo) msg.obj;
                     if (isMountDisallowed(vol)) {
                         Slog.i(TAG, "Ignoring mount " + vol.getId() + " due to policy");
                         break;
@@ -774,7 +778,7 @@
                     break;
                 }
                 case H_VOLUME_UNMOUNT: {
-                    final VolumeInfo vol = (VolumeInfo) msg.obj;
+                    final WatchedVolumeInfo vol = (WatchedVolumeInfo) msg.obj;
                     unmount(vol);
                     break;
                 }
@@ -828,7 +832,8 @@
                 }
                 case H_VOLUME_STATE_CHANGED: {
                     final SomeArgs args = (SomeArgs) msg.obj;
-                    onVolumeStateChangedAsync((VolumeInfo) args.arg1, args.argi1, args.argi2);
+                    onVolumeStateChangedAsync((WatchedVolumeInfo) args.arg1, args.argi1,
+                            args.argi2);
                     args.recycle();
                     break;
                 }
@@ -892,9 +897,9 @@
                     synchronized (mLock) {
                         final int size = mVolumes.size();
                         for (int i = 0; i < size; i++) {
-                            final VolumeInfo vol = mVolumes.valueAt(i);
-                            if (vol.mountUserId == userId) {
-                                vol.mountUserId = UserHandle.USER_NULL;
+                            final WatchedVolumeInfo vol = mVolumes.valueAt(i);
+                            if (vol.getMountUserId() == userId) {
+                                vol.setMountUserId(UserHandle.USER_NULL);
                                 mHandler.obtainMessage(H_VOLUME_UNMOUNT, vol).sendToTarget();
                             }
                         }
@@ -1084,7 +1089,7 @@
                 VolumeInfo.TYPE_PRIVATE, null, null);
         internal.state = VolumeInfo.STATE_MOUNTED;
         internal.path = Environment.getDataDirectory().getAbsolutePath();
-        mVolumes.put(internal.id, internal);
+        mVolumes.put(internal.id, WatchedVolumeInfo.fromVolumeInfo(internal));
     }
 
     private void resetIfBootedAndConnected() {
@@ -1242,7 +1247,7 @@
                 }
             }
             for (int i = 0; i < mVolumes.size(); i++) {
-                final VolumeInfo vol = mVolumes.valueAt(i);
+                final WatchedVolumeInfo vol = mVolumes.valueAt(i);
                 if (vol.isVisibleForUser(userId) && vol.isMountedReadable()) {
                     final StorageVolume userVol = vol.buildStorageVolume(mContext, userId, false);
                     mHandler.obtainMessage(H_VOLUME_BROADCAST, userVol).sendToTarget();
@@ -1291,21 +1296,21 @@
     }
 
     private void maybeRemountVolumes(int userId) {
-        List<VolumeInfo> volumesToRemount = new ArrayList<>();
+        List<WatchedVolumeInfo> volumesToRemount = new ArrayList<>();
         synchronized (mLock) {
             for (int i = 0; i < mVolumes.size(); i++) {
-                final VolumeInfo vol = mVolumes.valueAt(i);
+                final WatchedVolumeInfo vol = mVolumes.valueAt(i);
                 if (!vol.isPrimary() && vol.isMountedWritable() && vol.isVisible()
                         && vol.getMountUserId() != mCurrentUserId) {
                     // If there's a visible secondary volume mounted,
                     // we need to update the currentUserId and remount
-                    vol.mountUserId = mCurrentUserId;
+                    vol.setMountUserId(mCurrentUserId);
                     volumesToRemount.add(vol);
                 }
             }
         }
 
-        for (VolumeInfo vol : volumesToRemount) {
+        for (WatchedVolumeInfo vol : volumesToRemount) {
             Slog.i(TAG, "Remounting volume for user: " + userId + ". Volume: " + vol);
             mHandler.obtainMessage(H_VOLUME_UNMOUNT, vol).sendToTarget();
             mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
@@ -1317,12 +1322,12 @@
      * trying to mount doesn't have the same mount user id as the current user being maintained by
      * StorageManagerService and change the mount Id. The checks are same as
      * {@link StorageManagerService#maybeRemountVolumes(int)}
-     * @param VolumeInfo object to consider for changing the mountId
+     * @param vol {@link WatchedVolumeInfo} object to consider for changing the mountId
      */
-    private void updateVolumeMountIdIfRequired(VolumeInfo vol) {
+    private void updateVolumeMountIdIfRequired(WatchedVolumeInfo vol) {
         synchronized (mLock) {
             if (!vol.isPrimary() && vol.isVisible() && vol.getMountUserId() != mCurrentUserId) {
-                vol.mountUserId = mCurrentUserId;
+                vol.setMountUserId(mCurrentUserId);
             }
         }
     }
@@ -1485,20 +1490,21 @@
                 final DiskInfo disk = mDisks.get(diskId);
                 final VolumeInfo vol = new VolumeInfo(volId, type, disk, partGuid);
                 vol.mountUserId = userId;
-                mVolumes.put(volId, vol);
-                onVolumeCreatedLocked(vol);
+                WatchedVolumeInfo watchedVol = WatchedVolumeInfo.fromVolumeInfo(vol);
+                mVolumes.put(volId, watchedVol);
+                onVolumeCreatedLocked(watchedVol);
             }
         }
 
         @Override
         public void onVolumeStateChanged(String volId, final int newState, final int userId) {
             synchronized (mLock) {
-                final VolumeInfo vol = mVolumes.get(volId);
+                final WatchedVolumeInfo vol = mVolumes.get(volId);
                 if (vol != null) {
-                    final int oldState = vol.state;
-                    vol.state = newState;
-                    final VolumeInfo vInfo = new VolumeInfo(vol);
-                    vInfo.mountUserId = userId;
+                    final int oldState = vol.getState();
+                    vol.setState(newState);
+                    final WatchedVolumeInfo vInfo = new WatchedVolumeInfo(vol);
+                    vInfo.setMountUserId(userId);
                     final SomeArgs args = SomeArgs.obtain();
                     args.arg1 = vInfo;
                     args.argi1 = oldState;
@@ -1513,11 +1519,11 @@
         public void onVolumeMetadataChanged(String volId, String fsType, String fsUuid,
                 String fsLabel) {
             synchronized (mLock) {
-                final VolumeInfo vol = mVolumes.get(volId);
+                final WatchedVolumeInfo vol = mVolumes.get(volId);
                 if (vol != null) {
-                    vol.fsType = fsType;
-                    vol.fsUuid = fsUuid;
-                    vol.fsLabel = fsLabel;
+                    vol.setFsType(fsType);
+                    vol.setFsUuid(fsUuid);
+                    vol.setFsLabel(fsLabel);
                 }
             }
         }
@@ -1525,9 +1531,9 @@
         @Override
         public void onVolumePathChanged(String volId, String path) {
             synchronized (mLock) {
-                final VolumeInfo vol = mVolumes.get(volId);
+                final WatchedVolumeInfo vol = mVolumes.get(volId);
                 if (vol != null) {
-                    vol.path = path;
+                    vol.setFsPath(path);
                 }
             }
         }
@@ -1535,24 +1541,24 @@
         @Override
         public void onVolumeInternalPathChanged(String volId, String internalPath) {
             synchronized (mLock) {
-                final VolumeInfo vol = mVolumes.get(volId);
+                final WatchedVolumeInfo vol = mVolumes.get(volId);
                 if (vol != null) {
-                    vol.internalPath = internalPath;
+                    vol.setInternalPath(internalPath);
                 }
             }
         }
 
         @Override
         public void onVolumeDestroyed(String volId) {
-            VolumeInfo vol = null;
+            WatchedVolumeInfo vol = null;
             synchronized (mLock) {
                 vol = mVolumes.remove(volId);
             }
 
             if (vol != null) {
-                mStorageSessionController.onVolumeRemove(vol);
+                mStorageSessionController.onVolumeRemove(vol.getImmutableVolumeInfo());
                 try {
-                    if (vol.type == VolumeInfo.TYPE_PRIVATE) {
+                    if (vol.getType() == VolumeInfo.TYPE_PRIVATE) {
                         mInstaller.onPrivateVolumeRemoved(vol.getFsUuid());
                     }
                 } catch (Installer.InstallerException e) {
@@ -1566,7 +1572,7 @@
     private void onDiskScannedLocked(DiskInfo disk) {
         int volumeCount = 0;
         for (int i = 0; i < mVolumes.size(); i++) {
-            final VolumeInfo vol = mVolumes.valueAt(i);
+            final WatchedVolumeInfo vol = mVolumes.valueAt(i);
             if (Objects.equals(disk.id, vol.getDiskId())) {
                 volumeCount++;
             }
@@ -1589,19 +1595,19 @@
     }
 
     @GuardedBy("mLock")
-    private void onVolumeCreatedLocked(VolumeInfo vol) {
+    private void onVolumeCreatedLocked(WatchedVolumeInfo vol) {
         final ActivityManagerInternal amInternal =
                 LocalServices.getService(ActivityManagerInternal.class);
 
-        if (vol.mountUserId >= 0 && !amInternal.isUserRunning(vol.mountUserId, 0)) {
+        if (vol.getMountUserId() >= 0 && !amInternal.isUserRunning(vol.getMountUserId(), 0)) {
             Slog.d(TAG, "Ignoring volume " + vol.getId() + " because user "
-                    + Integer.toString(vol.mountUserId) + " is no longer running.");
+                    + Integer.toString(vol.getMountUserId()) + " is no longer running.");
             return;
         }
 
-        if (vol.type == VolumeInfo.TYPE_EMULATED) {
+        if (vol.getType() == VolumeInfo.TYPE_EMULATED) {
             final Context volumeUserContext = mContext.createContextAsUser(
-                    UserHandle.of(vol.mountUserId), 0);
+                    UserHandle.of(vol.getMountUserId()), 0);
 
             boolean isMediaSharedWithParent =
                     (volumeUserContext != null) ? volumeUserContext.getSystemService(
@@ -1611,60 +1617,60 @@
             // should not be skipped even if media provider instance is not running in that user
             // space
             if (!isMediaSharedWithParent
-                    && !mStorageSessionController.supportsExternalStorage(vol.mountUserId)) {
+                    && !mStorageSessionController.supportsExternalStorage(vol.getMountUserId())) {
                 Slog.d(TAG, "Ignoring volume " + vol.getId() + " because user "
-                        + Integer.toString(vol.mountUserId)
+                        + Integer.toString(vol.getMountUserId())
                         + " does not support external storage.");
                 return;
             }
 
             final StorageManager storage = mContext.getSystemService(StorageManager.class);
-            final VolumeInfo privateVol = storage.findPrivateForEmulated(vol);
+            final VolumeInfo privateVol = storage.findPrivateForEmulated(vol.getVolumeInfo());
 
             if ((Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, mPrimaryStorageUuid)
                     && VolumeInfo.ID_PRIVATE_INTERNAL.equals(privateVol.id))
-                    || Objects.equals(privateVol.fsUuid, mPrimaryStorageUuid)) {
+                    || Objects.equals(privateVol.getFsUuid(), mPrimaryStorageUuid)) {
                 Slog.v(TAG, "Found primary storage at " + vol);
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_PRIMARY;
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE;
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_PRIMARY);
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE);
                 mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
             }
 
-        } else if (vol.type == VolumeInfo.TYPE_PUBLIC) {
+        } else if (vol.getType() == VolumeInfo.TYPE_PUBLIC) {
             // TODO: only look at first public partition
             if (Objects.equals(StorageManager.UUID_PRIMARY_PHYSICAL, mPrimaryStorageUuid)
-                    && vol.disk.isDefaultPrimary()) {
+                    && vol.getDisk().isDefaultPrimary()) {
                 Slog.v(TAG, "Found primary storage at " + vol);
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_PRIMARY;
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE;
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_PRIMARY);
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE);
             }
 
             // Adoptable public disks are visible to apps, since they meet
             // public API requirement of being in a stable location.
-            if (vol.disk.isAdoptable()) {
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE;
+            if (vol.getDisk().isAdoptable()) {
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE);
             }
 
-            vol.mountUserId = mCurrentUserId;
+            vol.setMountUserId(mCurrentUserId);
             mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
 
-        } else if (vol.type == VolumeInfo.TYPE_PRIVATE) {
+        } else if (vol.getType() == VolumeInfo.TYPE_PRIVATE) {
             mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
 
-        } else if (vol.type == VolumeInfo.TYPE_STUB) {
-            if (vol.disk.isStubVisible()) {
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE;
+        } else if (vol.getType() == VolumeInfo.TYPE_STUB) {
+            if (vol.getDisk().isStubVisible()) {
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_WRITE);
             } else {
-                vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_READ;
+                vol.setMountFlags(vol.getMountFlags() | VolumeInfo.MOUNT_FLAG_VISIBLE_FOR_READ);
             }
-            vol.mountUserId = mCurrentUserId;
+            vol.setMountUserId(mCurrentUserId);
             mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
         } else {
             Slog.d(TAG, "Skipping automatic mounting of " + vol);
         }
     }
 
-    private boolean isBroadcastWorthy(VolumeInfo vol) {
+    private boolean isBroadcastWorthy(WatchedVolumeInfo vol) {
         switch (vol.getType()) {
             case VolumeInfo.TYPE_PRIVATE:
             case VolumeInfo.TYPE_PUBLIC:
@@ -1691,8 +1697,8 @@
     }
 
     @GuardedBy("mLock")
-    private void onVolumeStateChangedLocked(VolumeInfo vol, int newState) {
-        if (vol.type == VolumeInfo.TYPE_EMULATED) {
+    private void onVolumeStateChangedLocked(WatchedVolumeInfo vol, int newState) {
+        if (vol.getType() == VolumeInfo.TYPE_EMULATED) {
             if (newState != VolumeInfo.STATE_MOUNTED) {
                 mFuseMountedUser.remove(vol.getMountUserId());
             } else if (mVoldAppDataIsolationEnabled){
@@ -1741,7 +1747,7 @@
         }
     }
 
-    private void onVolumeStateChangedAsync(VolumeInfo vol, int oldState, int newState) {
+    private void onVolumeStateChangedAsync(WatchedVolumeInfo vol, int oldState, int newState) {
         if (newState == VolumeInfo.STATE_MOUNTED) {
             // Private volumes can be unmounted and re-mounted even after a user has
             // been unlocked; on devices that support encryption keys tied to the filesystem,
@@ -1751,7 +1757,7 @@
             } catch (Exception e) {
                 // Unusable partition, unmount.
                 try {
-                    mVold.unmount(vol.id);
+                    mVold.unmount(vol.getId());
                 } catch (Exception ee) {
                     Slog.wtf(TAG, ee);
                 }
@@ -1762,20 +1768,20 @@
         synchronized (mLock) {
             // Remember that we saw this volume so we're ready to accept user
             // metadata, or so we can annoy them when a private volume is ejected
-            if (!TextUtils.isEmpty(vol.fsUuid)) {
-                VolumeRecord rec = mRecords.get(vol.fsUuid);
+            if (!TextUtils.isEmpty(vol.getFsUuid())) {
+                VolumeRecord rec = mRecords.get(vol.getFsUuid());
                 if (rec == null) {
-                    rec = new VolumeRecord(vol.type, vol.fsUuid);
-                    rec.partGuid = vol.partGuid;
+                    rec = new VolumeRecord(vol.getType(), vol.getFsUuid());
+                    rec.partGuid = vol.getPartGuid();
                     rec.createdMillis = System.currentTimeMillis();
-                    if (vol.type == VolumeInfo.TYPE_PRIVATE) {
-                        rec.nickname = vol.disk.getDescription();
+                    if (vol.getType() == VolumeInfo.TYPE_PRIVATE) {
+                        rec.nickname = vol.getDisk().getDescription();
                     }
                     mRecords.put(rec.fsUuid, rec);
                 } else {
                     // Handle upgrade case where we didn't store partition GUID
                     if (TextUtils.isEmpty(rec.partGuid)) {
-                        rec.partGuid = vol.partGuid;
+                        rec.partGuid = vol.getPartGuid();
                     }
                 }
 
@@ -1788,7 +1794,7 @@
         // before notifying other listeners.
         // Intentionally called without the mLock to avoid deadlocking from the Storage Service.
         try {
-            mStorageSessionController.notifyVolumeStateChanged(vol);
+            mStorageSessionController.notifyVolumeStateChanged(vol.getImmutableVolumeInfo());
         } catch (ExternalStorageServiceException e) {
             Log.e(TAG, "Failed to notify volume state changed to the Storage Service", e);
         }
@@ -1799,9 +1805,9 @@
             // processes that receive the intent unnecessarily.
             if (mBootCompleted && isBroadcastWorthy(vol)) {
                 final Intent intent = new Intent(VolumeInfo.ACTION_VOLUME_STATE_CHANGED);
-                intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.id);
+                intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
                 intent.putExtra(VolumeInfo.EXTRA_VOLUME_STATE, newState);
-                intent.putExtra(VolumeRecord.EXTRA_FS_UUID, vol.fsUuid);
+                intent.putExtra(VolumeRecord.EXTRA_FS_UUID, vol.getFsUuid());
                 intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT
                         | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
                 mHandler.obtainMessage(H_INTERNAL_BROADCAST, intent).sendToTarget();
@@ -1826,8 +1832,8 @@
                 }
             }
 
-            if ((vol.type == VolumeInfo.TYPE_PUBLIC || vol.type == VolumeInfo.TYPE_STUB)
-                    && vol.state == VolumeInfo.STATE_EJECTING) {
+            if ((vol.getType() == VolumeInfo.TYPE_PUBLIC || vol.getType() == VolumeInfo.TYPE_STUB)
+                    && vol.getState() == VolumeInfo.STATE_EJECTING) {
                 // TODO: this should eventually be handled by new ObbVolume state changes
                 /*
                  * Some OBBs might have been unmounted when this volume was
@@ -1835,7 +1841,7 @@
                  * remove those from the list of mounted OBBS.
                  */
                 mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(
-                        OBB_FLUSH_MOUNT_STATE, vol.path));
+                        OBB_FLUSH_MOUNT_STATE, vol.getFsPath()));
             }
             maybeLogMediaMount(vol, newState);
         }
@@ -1860,7 +1866,7 @@
         }
     }
 
-    private void maybeLogMediaMount(VolumeInfo vol, int newState) {
+    private void maybeLogMediaMount(WatchedVolumeInfo vol, int newState) {
         if (!SecurityLog.isLoggingEnabled()) {
             return;
         }
@@ -1875,10 +1881,10 @@
 
         if (newState == VolumeInfo.STATE_MOUNTED
                 || newState == VolumeInfo.STATE_MOUNTED_READ_ONLY) {
-            SecurityLog.writeEvent(SecurityLog.TAG_MEDIA_MOUNT, vol.path, label);
+            SecurityLog.writeEvent(SecurityLog.TAG_MEDIA_MOUNT, vol.getFsPath(), label);
         } else if (newState == VolumeInfo.STATE_UNMOUNTED
                 || newState == VolumeInfo.STATE_BAD_REMOVAL) {
-            SecurityLog.writeEvent(SecurityLog.TAG_MEDIA_UNMOUNT, vol.path, label);
+            SecurityLog.writeEvent(SecurityLog.TAG_MEDIA_UNMOUNT, vol.getFsPath(), label);
         }
     }
 
@@ -1920,18 +1926,18 @@
     /**
      * Decide if volume is mountable per device policies.
      */
-    private boolean isMountDisallowed(VolumeInfo vol) {
+    private boolean isMountDisallowed(WatchedVolumeInfo vol) {
         UserManager userManager = mContext.getSystemService(UserManager.class);
 
         boolean isUsbRestricted = false;
-        if (vol.disk != null && vol.disk.isUsb()) {
+        if (vol.getDisk() != null && vol.getDisk().isUsb()) {
             isUsbRestricted = userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER,
                     Binder.getCallingUserHandle());
         }
 
         boolean isTypeRestricted = false;
-        if (vol.type == VolumeInfo.TYPE_PUBLIC || vol.type == VolumeInfo.TYPE_PRIVATE
-                || vol.type == VolumeInfo.TYPE_STUB) {
+        if (vol.getType() == VolumeInfo.TYPE_PUBLIC || vol.getType() == VolumeInfo.TYPE_PRIVATE
+                || vol.getType() == VolumeInfo.TYPE_STUB) {
             isTypeRestricted = userManager
                     .hasUserRestriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,
                     Binder.getCallingUserHandle());
@@ -1967,6 +1973,13 @@
         mContext = context;
         mCallbacks = new Callbacks(FgThread.get().getLooper());
 
+        mVolumes.registerObserver(new Watcher() {
+            @Override
+            public void onChange(Watchable what) {
+                // When we change the list or any volume contained in it, invalidate the cache
+                StorageManager.invalidateVolumeListCache();
+            }
+        });
         HandlerThread hthread = new HandlerThread(TAG);
         hthread.start();
         mHandler = new StorageManagerServiceHandler(hthread.getLooper());
@@ -2339,7 +2352,7 @@
 
         super.mount_enforcePermission();
 
-        final VolumeInfo vol = findVolumeByIdOrThrow(volId);
+        final WatchedVolumeInfo vol = findVolumeByIdOrThrow(volId);
         if (isMountDisallowed(vol)) {
             throw new SecurityException("Mounting " + volId + " restricted by policy");
         }
@@ -2365,23 +2378,24 @@
         }
     }
 
-    private void mount(VolumeInfo vol) {
+    private void mount(WatchedVolumeInfo vol) {
         try {
-            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "SMS.mount: " + vol.id);
+            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "SMS.mount: " + vol.getId());
             // TODO(b/135341433): Remove cautious logging when FUSE is stable
             Slog.i(TAG, "Mounting volume " + vol);
             extendWatchdogTimeout("#mount might be slow");
-            mVold.mount(vol.id, vol.mountFlags, vol.mountUserId, new IVoldMountCallback.Stub() {
+            mVold.mount(vol.getId(), vol.getMountFlags(), vol.getMountUserId(),
+                    new IVoldMountCallback.Stub() {
                 @Override
                 public boolean onVolumeChecking(FileDescriptor fd, String path,
                         String internalPath) {
-                    vol.path = path;
-                    vol.internalPath = internalPath;
+                    vol.setFsPath(path);
+                    vol.setInternalPath(internalPath);
                     ParcelFileDescriptor pfd = new ParcelFileDescriptor(fd);
                     try {
                         Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER,
-                                "SMS.startFuseFileSystem: " + vol.id);
-                        mStorageSessionController.onVolumeMount(pfd, vol);
+                                "SMS.startFuseFileSystem: " + vol.getId());
+                        mStorageSessionController.onVolumeMount(pfd, vol.getImmutableVolumeInfo());
                         return true;
                     } catch (ExternalStorageServiceException e) {
                         Slog.e(TAG, "Failed to mount volume " + vol, e);
@@ -2416,21 +2430,21 @@
 
         super.unmount_enforcePermission();
 
-        final VolumeInfo vol = findVolumeByIdOrThrow(volId);
+        final WatchedVolumeInfo vol = findVolumeByIdOrThrow(volId);
         unmount(vol);
     }
 
-    private void unmount(VolumeInfo vol) {
+    private void unmount(WatchedVolumeInfo vol) {
         try {
             try {
-                if (vol.type == VolumeInfo.TYPE_PRIVATE) {
+                if (vol.getType() == VolumeInfo.TYPE_PRIVATE) {
                     mInstaller.onPrivateVolumeRemoved(vol.getFsUuid());
                 }
             } catch (Installer.InstallerException e) {
                 Slog.e(TAG, "Failed unmount mirror data", e);
             }
-            mVold.unmount(vol.id);
-            mStorageSessionController.onVolumeUnmount(vol);
+            mVold.unmount(vol.getId());
+            mStorageSessionController.onVolumeUnmount(vol.getImmutableVolumeInfo());
         } catch (Exception e) {
             Slog.wtf(TAG, e);
         }
@@ -2442,10 +2456,10 @@
 
         super.format_enforcePermission();
 
-        final VolumeInfo vol = findVolumeByIdOrThrow(volId);
-        final String fsUuid = vol.fsUuid;
+        final WatchedVolumeInfo vol = findVolumeByIdOrThrow(volId);
+        final String fsUuid = vol.getFsUuid();
         try {
-            mVold.format(vol.id, "auto");
+            mVold.format(vol.getId(), "auto");
 
             // After a successful format above, we should forget about any
             // records for the old partition, since it'll never appear again
@@ -3105,7 +3119,7 @@
     private void warnOnNotMounted() {
         synchronized (mLock) {
             for (int i = 0; i < mVolumes.size(); i++) {
-                final VolumeInfo vol = mVolumes.valueAt(i);
+                final WatchedVolumeInfo vol = mVolumes.valueAt(i);
                 if (vol.isPrimary() && vol.isMountedWritable()) {
                     // Cool beans, we have a mounted primary volume
                     return;
@@ -3392,8 +3406,8 @@
         }
     }
 
-    private void prepareUserStorageIfNeeded(VolumeInfo vol) throws Exception {
-        if (vol.type != VolumeInfo.TYPE_PRIVATE) {
+    private void prepareUserStorageIfNeeded(WatchedVolumeInfo vol) throws Exception {
+        if (vol.getType() != VolumeInfo.TYPE_PRIVATE) {
             return;
         }
 
@@ -3411,7 +3425,7 @@
                 continue;
             }
 
-            prepareUserStorageInternal(vol.fsUuid, user.id, flags);
+            prepareUserStorageInternal(vol.getFsUuid(), user.id, flags);
         }
     }
 
@@ -3960,7 +3974,7 @@
         synchronized (mLock) {
             for (int i = 0; i < mVolumes.size(); i++) {
                 final String volId = mVolumes.keyAt(i);
-                final VolumeInfo vol = mVolumes.valueAt(i);
+                final WatchedVolumeInfo vol = mVolumes.valueAt(i);
                 switch (vol.getType()) {
                     case VolumeInfo.TYPE_PUBLIC:
                     case VolumeInfo.TYPE_STUB:
@@ -4112,7 +4126,7 @@
         synchronized (mLock) {
             final VolumeInfo[] res = new VolumeInfo[mVolumes.size()];
             for (int i = 0; i < mVolumes.size(); i++) {
-                res[i] = mVolumes.valueAt(i);
+                res[i] = mVolumes.valueAt(i).getVolumeInfo();
             }
             return res;
         }
@@ -4708,7 +4722,8 @@
                     break;
                 }
                 case MSG_VOLUME_STATE_CHANGED: {
-                    callback.onVolumeStateChanged((VolumeInfo) args.arg1, args.argi2, args.argi3);
+                    VolumeInfo volInfo = ((WatchedVolumeInfo) args.arg1).getVolumeInfo();
+                    callback.onVolumeStateChanged(volInfo, args.argi2, args.argi3);
                     break;
                 }
                 case MSG_VOLUME_RECORD_CHANGED: {
@@ -4738,7 +4753,7 @@
             obtainMessage(MSG_STORAGE_STATE_CHANGED, args).sendToTarget();
         }
 
-        private void notifyVolumeStateChanged(VolumeInfo vol, int oldState, int newState) {
+        private void notifyVolumeStateChanged(WatchedVolumeInfo vol, int oldState, int newState) {
             final SomeArgs args = SomeArgs.obtain();
             args.arg1 = vol.clone();
             args.argi2 = oldState;
@@ -4790,8 +4805,8 @@
             pw.println("Volumes:");
             pw.increaseIndent();
             for (int i = 0; i < mVolumes.size(); i++) {
-                final VolumeInfo vol = mVolumes.valueAt(i);
-                if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.id)) continue;
+                final WatchedVolumeInfo vol = mVolumes.valueAt(i);
+                if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.getId())) continue;
                 vol.dump(pw);
             }
             pw.decreaseIndent();
@@ -5088,7 +5103,7 @@
             final List<String> primaryVolumeIds = new ArrayList<>();
             synchronized (mLock) {
                 for (int i = 0; i < mVolumes.size(); i++) {
-                    final VolumeInfo vol = mVolumes.valueAt(i);
+                    final WatchedVolumeInfo vol = mVolumes.valueAt(i);
                     if (vol.isPrimary()) {
                         primaryVolumeIds.add(vol.getId());
                     }
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index c65981b..4976a63 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -1410,10 +1410,10 @@
     @GuardedBy("mLock")
     @ForceInvertType
     private int getForceInvertStateLocked() {
-        if (mForceInvertStates.indexOfKey(mCurrentUser) < 0) {
+        if (mForceInvertStates.indexOfKey(mCurrentUser) < 0 && mSystemReady) {
             updateForceInvertStateLocked();
         }
-        return mForceInvertStates.get(mCurrentUser);
+        return mForceInvertStates.get(mCurrentUser, FORCE_INVERT_TYPE_OFF);
     }
 
     /**
@@ -1423,7 +1423,7 @@
     @GuardedBy("mLock")
     private boolean updateForceInvertStateLocked() {
         int forceInvertState = getForceInvertStateInternal();
-        if (mForceInvertStates.get(mCurrentUser) != forceInvertState) {
+        if (mForceInvertStates.get(mCurrentUser, Integer.MIN_VALUE) != forceInvertState) {
             mForceInvertStates.put(mCurrentUser, forceInvertState);
             return true;
         }
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index 6cca7d1..cce2959 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -8302,8 +8302,6 @@
         if ((allowWiu == REASON_DENIED) || (allowStart == REASON_DENIED)) {
             @ReasonCode final int allowWhileInUse = shouldAllowFgsWhileInUsePermissionLocked(
                     callingPackage, callingPid, callingUid, r.app, backgroundStartPrivileges);
-            // We store them to compare the old and new while-in-use logics to each other.
-            // (They're not used for any other purposes.)
             if (allowWiu == REASON_DENIED) {
                 allowWiu = allowWhileInUse;
             }
@@ -8706,6 +8704,7 @@
                                         + ",duration:" + tempAllowListReason.mDuration
                                         + ",callingUid:" + tempAllowListReason.mCallingUid))
                         + ">"
+                        + "; allowWiu:" + allowWhileInUse
                         + "; targetSdkVersion:" + r.appInfo.targetSdkVersion
                         + "; callerTargetSdkVersion:" + callerTargetSdkVersion
                         + "; startForegroundCount:" + r.mStartForegroundCount
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 6ece265..f340169 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -10430,9 +10430,7 @@
 
         synchronized(this) {
             mConstants.dump(pw);
-            synchronized (mProcLock) {
-                mOomAdjuster.dumpCachedAppOptimizerSettings(pw);
-            }
+            mOomAdjuster.dumpCachedAppOptimizerSettings(pw);
             mOomAdjuster.dumpCacheOomRankerSettings(pw);
             pw.println();
             if (dumpAll) {
@@ -10806,7 +10804,7 @@
                     || DUMP_RECENTS_CMD.equals(cmd) || DUMP_RECENTS_SHORT_CMD.equals(cmd)
                     || DUMP_TOP_RESUMED_ACTIVITY.equals(cmd)
                     || DUMP_VISIBLE_ACTIVITIES.equals(cmd)) {
-                mAtmInternal.dump(cmd, fd, pw, args, opti, /* dumpAll= */ true , dumpClient,
+                mAtmInternal.dump(cmd, fd, pw, args, opti, /* dumpAll= */ true, dumpClient,
                         dumpPackage, dumpDisplayId);
             } else if ("binder-proxies".equals(cmd)) {
                 if (opti >= args.length) {
@@ -10896,7 +10894,8 @@
                     name = args[opti];
                     opti++;
                     newArgs = new String[args.length - opti];
-                    if (args.length > 2) System.arraycopy(args, opti, newArgs, 0, args.length - opti);
+                    if (args.length > 2) System.arraycopy(args, opti, newArgs, 0,
+                            args.length - opti);
                 }
                 if (!mCpHelper.dumpProvider(fd, pw, name, newArgs, 0, dumpAll)) {
                     pw.println("No providers match: " + name);
@@ -10919,7 +10918,7 @@
                     if (args.length > 2) System.arraycopy(args, opti, newArgs, 0,
                             args.length - opti);
                 }
-                int[] users = dumpUserId == UserHandle.USER_ALL ? null : new int[] { dumpUserId };
+                int[] users = dumpUserId == UserHandle.USER_ALL ? null : new int[]{dumpUserId};
                 if (!mServices.dumpService(fd, pw, name, users, newArgs, 0, dumpAll)) {
                     pw.println("No services match: " + name);
                     pw.println("Use -h for help.");
@@ -10948,9 +10947,10 @@
                     mConstants.dump(pw);
                 }
                 synchronized (mProcLock) {
-                    mOomAdjuster.dumpCachedAppOptimizerSettings(pw);
                     mOomAdjuster.dumpCacheOomRankerSettings(pw);
                 }
+            } else if ("cao".equals(cmd)) {
+                mOomAdjuster.dumpCachedAppOptimizerSettings(pw);
             } else if ("timers".equals(cmd)) {
                 AnrTimer.dump(pw, true);
             } else if ("services".equals(cmd) || "s".equals(cmd)) {
@@ -15113,10 +15113,24 @@
         }
     }
 
-    void noteUidProcessState(final int uid, final int state,
-                final @ProcessCapability int capability) {
-        mBatteryStatsService.noteUidProcessState(uid, state);
+    /**
+     * Called by {@link OomAdjuster} whenever either the ProcessState or Capability of a uid has
+     * changed.
+     * NOTE: Use {@link #noteUidProcessState(int, int)} instead of this method for listeners
+     * interested in only ProcessState changes.
+     */
+    void noteUidProcessStateAndCapability(final int uid, final int state,
+            final @ProcessCapability int capability) {
         mAppOpsService.updateUidProcState(uid, state, capability);
+    }
+
+    /**
+     * Called by {@link OomAdjuster} whenever either the ProcessState of a uid has changed.
+     * NOTE: Use {@link #noteUidProcessStateAndCapability(int, int, int)} instead of this method
+     * for listeners interested in both ProcessState and Capability changes.
+     */
+    void noteUidProcessState(final int uid, final int state) {
+        mBatteryStatsService.noteUidProcessState(uid, state);
         if (StatsPullAtomService.ENABLE_MOBILE_DATA_STATS_AGGREGATED_PULLER) {
             try {
                 if (mStatsPullAtomServiceInternal == null) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index c237897..5c2bd0a 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -4344,6 +4344,7 @@
             pw.println("    lru: raw LRU process list");
             pw.println("    binder-proxies: stats on binder objects and IPCs");
             pw.println("    settings: currently applied config settings");
+            pw.println("    cao: cached app optimizer state");
             pw.println("    timers: the current ANR timer state");
             pw.println("    service [COMP_SPEC]: service client-side state");
             pw.println("    package [PACKAGE_NAME]: all state related to given package");
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index c8b0a57..5ff6999 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -3705,8 +3705,14 @@
     @Override
     public void takeUidSnapshotsAsync(int[] requestUids, ResultReceiver resultReceiver) {
         if (!onlyCaller(requestUids)) {
-            mContext.enforceCallingOrSelfPermission(
-                    android.Manifest.permission.BATTERY_STATS, null);
+            try {
+                mContext.enforceCallingOrSelfPermission(
+                        android.Manifest.permission.BATTERY_STATS, null);
+            } catch (SecurityException ex) {
+                resultReceiver.send(IBatteryStats.RESULT_SECURITY_EXCEPTION,
+                        Bundle.forPair(IBatteryStats.KEY_EXCEPTION_MESSAGE, ex.getMessage()));
+                return;
+            }
         }
 
         if (shouldCollectExternalStats()) {
@@ -3727,13 +3733,14 @@
                 }
                 Bundle resultData = new Bundle(1);
                 resultData.putParcelableArray(IBatteryStats.KEY_UID_SNAPSHOTS, results);
-                resultReceiver.send(0, resultData);
+                resultReceiver.send(IBatteryStats.RESULT_OK, resultData);
             } catch (Exception ex) {
                 if (DBG) {
                     Slog.d(TAG, "Crashed while returning results for takeUidSnapshots("
                             + Arrays.toString(requestUids) + ") i=" + i, ex);
                 }
-                throw ex;
+                resultReceiver.send(IBatteryStats.RESULT_RUNTIME_EXCEPTION,
+                        Bundle.forPair(IBatteryStats.KEY_EXCEPTION_MESSAGE, ex.getMessage()));
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java
index ce526e5..b677297 100644
--- a/services/core/java/com/android/server/am/CachedAppOptimizer.java
+++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java
@@ -85,6 +85,8 @@
 import com.android.internal.os.ProcLocksReader;
 import com.android.internal.util.FrameworkStatsLog;
 import com.android.server.ServiceThread;
+import com.android.server.am.compaction.CompactionStatsManager;
+import com.android.server.am.compaction.SingleCompactionStats;
 
 import dalvik.annotation.optimization.NeverCompile;
 
@@ -94,11 +96,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.EnumMap;
 import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.Executor;
@@ -343,12 +341,6 @@
     // on swap resources as file.
     static final double COMPACT_DOWNGRADE_FREE_SWAP_THRESHOLD = 0.2;
 
-    // Size of history for the last 20 compactions for any process
-    static final int LAST_COMPACTED_ANY_PROCESS_STATS_HISTORY_SIZE = 20;
-
-    // Amount of processes supported to record for their last compaction.
-    static final int LAST_COMPACTION_FOR_PROCESS_STATS_SIZE = 256;
-
     static final int DO_FREEZE = 1;
     static final int REPORT_UNFREEZE = 2;
 
@@ -521,6 +513,9 @@
     // Handler on which compaction runs.
     @VisibleForTesting
     Handler mCompactionHandler;
+    @VisibleForTesting
+    CompactionStatsManager mCompactStatsManager;
+
     private Handler mFreezeHandler;
     @GuardedBy("mProcLock")
     private boolean mFreezerOverride = false;
@@ -529,156 +524,6 @@
     @VisibleForTesting volatile long mFreezerDebounceTimeout = DEFAULT_FREEZER_DEBOUNCE_TIMEOUT;
     @VisibleForTesting volatile boolean mFreezerExemptInstPkg = DEFAULT_FREEZER_EXEMPT_INST_PKG;
 
-    // Maps process ID to last compaction statistics for processes that we've fully compacted. Used
-    // when evaluating throttles that we only consider for "full" compaction, so we don't store
-    // data for "some" compactions. Uses LinkedHashMap to ensure insertion order is kept and
-    // facilitate removal of the oldest entry.
-    @VisibleForTesting
-    @GuardedBy("mProcLock")
-    LinkedHashMap<Integer, SingleCompactionStats> mLastCompactionStats =
-            new LinkedHashMap<Integer, SingleCompactionStats>() {
-                @Override
-                protected boolean removeEldestEntry(Map.Entry eldest) {
-                    return size() > LAST_COMPACTION_FOR_PROCESS_STATS_SIZE;
-                }
-            };
-
-    LinkedList<SingleCompactionStats> mCompactionStatsHistory =
-            new LinkedList<SingleCompactionStats>() {
-                @Override
-                public boolean add(SingleCompactionStats e) {
-                    if (size() >= LAST_COMPACTED_ANY_PROCESS_STATS_HISTORY_SIZE) {
-                        this.remove();
-                    }
-                    return super.add(e);
-                }
-            };
-
-    class AggregatedCompactionStats {
-        // Throttling stats
-        public long mFullCompactRequested;
-        public long mSomeCompactRequested;
-        public long mFullCompactPerformed;
-        public long mSomeCompactPerformed;
-        public long mProcCompactionsNoPidThrottled;
-        public long mProcCompactionsOomAdjThrottled;
-        public long mProcCompactionsTimeThrottled;
-        public long mProcCompactionsRSSThrottled;
-        public long mProcCompactionsMiscThrottled;
-
-        // Memory stats
-        public long mTotalDeltaAnonRssKBs;
-        public long mTotalZramConsumedKBs;
-        public long mTotalAnonMemFreedKBs;
-        public long mSumOrigAnonRss;
-        public double mMaxCompactEfficiency;
-        public double mMaxSwapEfficiency;
-
-        // Cpu time
-        public long mTotalCpuTimeMillis;
-
-        public long getThrottledSome() { return mSomeCompactRequested - mSomeCompactPerformed; }
-
-        public long getThrottledFull() { return mFullCompactRequested - mFullCompactPerformed; }
-
-        public void addMemStats(long anonRssSaved, long zramConsumed, long memFreed,
-                long origAnonRss, long totalCpuTimeMillis) {
-            final double compactEfficiency = memFreed / (double) origAnonRss;
-            if (compactEfficiency > mMaxCompactEfficiency) {
-                mMaxCompactEfficiency = compactEfficiency;
-            }
-            final double swapEfficiency = anonRssSaved / (double) origAnonRss;
-            if (swapEfficiency > mMaxSwapEfficiency) {
-                mMaxSwapEfficiency = swapEfficiency;
-            }
-            mTotalDeltaAnonRssKBs += anonRssSaved;
-            mTotalZramConsumedKBs += zramConsumed;
-            mTotalAnonMemFreedKBs += memFreed;
-            mSumOrigAnonRss += origAnonRss;
-            mTotalCpuTimeMillis += totalCpuTimeMillis;
-        }
-
-        @NeverCompile
-        public void dump(PrintWriter pw) {
-            long totalCompactRequested = mSomeCompactRequested + mFullCompactRequested;
-            long totalCompactPerformed = mSomeCompactPerformed + mFullCompactPerformed;
-            pw.println("    Performed / Requested:");
-            pw.println("      Some: (" + mSomeCompactPerformed + "/" + mSomeCompactRequested + ")");
-            pw.println("      Full: (" + mFullCompactPerformed + "/" + mFullCompactRequested + ")");
-
-            long throttledSome = getThrottledSome();
-            long throttledFull = getThrottledFull();
-
-            if (throttledSome > 0 || throttledFull > 0) {
-                pw.println("    Throttled:");
-                pw.println("       Some: " + throttledSome + " Full: " + throttledFull);
-                pw.println("    Throttled by Type:");
-                final long compactionsThrottled = totalCompactRequested - totalCompactPerformed;
-                // Any throttle that was not part of the previous categories
-                final long unaccountedThrottled = compactionsThrottled
-                        - mProcCompactionsNoPidThrottled - mProcCompactionsOomAdjThrottled
-                        - mProcCompactionsTimeThrottled - mProcCompactionsRSSThrottled
-                        - mProcCompactionsMiscThrottled;
-                pw.println("       NoPid: " + mProcCompactionsNoPidThrottled
-                        + " OomAdj: " + mProcCompactionsOomAdjThrottled + " Time: "
-                        + mProcCompactionsTimeThrottled + " RSS: " + mProcCompactionsRSSThrottled
-                        + " Misc: " + mProcCompactionsMiscThrottled
-                        + " Unaccounted: " + unaccountedThrottled);
-                final double compactThrottlePercentage =
-                        (compactionsThrottled / (double) totalCompactRequested) * 100.0;
-                pw.println("    Throttle Percentage: " + compactThrottlePercentage);
-            }
-
-            if (mFullCompactPerformed > 0) {
-                pw.println("    -----Memory Stats----");
-                pw.println("    Total Delta Anon RSS (KB) : " + mTotalDeltaAnonRssKBs);
-                pw.println("    Total Physical ZRAM Consumed (KB): " + mTotalZramConsumedKBs);
-                // Anon Mem Freed = Delta Anon RSS - ZRAM Consumed
-                pw.println("    Total Anon Memory Freed (KB): " + mTotalAnonMemFreedKBs);
-                pw.println("    Avg Swap Efficiency (KB) (Delta Anon RSS/Orig Anon RSS): "
-                        + (mTotalDeltaAnonRssKBs / (double) mSumOrigAnonRss));
-                pw.println("    Max Swap Efficiency: " + mMaxSwapEfficiency);
-                // This tells us how much anon memory we were able to free thanks to running
-                // compaction
-                pw.println("    Avg Compaction Efficiency (Anon Freed/Anon RSS): "
-                        + (mTotalAnonMemFreedKBs / (double) mSumOrigAnonRss));
-                pw.println("    Max Compaction Efficiency: " + mMaxCompactEfficiency);
-                // This tells us how effective is the compression algorithm in physical memory
-                pw.println("    Avg Compression Ratio (1 - ZRAM Consumed/DeltaAnonRSS): "
-                        + (1.0 - mTotalZramConsumedKBs / (double) mTotalDeltaAnonRssKBs));
-                long avgKBsPerProcCompact = mFullCompactPerformed > 0
-                        ? (mTotalAnonMemFreedKBs / mFullCompactPerformed)
-                        : 0;
-                pw.println("    Avg Anon Mem Freed/Compaction (KB) : " + avgKBsPerProcCompact);
-                double compactionCost =
-                        mTotalCpuTimeMillis / (mTotalAnonMemFreedKBs / 1024.0); // ms/MB
-                pw.println("    Compaction Cost (ms/MB): " + compactionCost);
-            }
-        }
-    }
-
-    class AggregatedProcessCompactionStats extends AggregatedCompactionStats {
-        public final String processName;
-
-        AggregatedProcessCompactionStats(String processName) { this.processName = processName; }
-    }
-
-    class AggregatedSourceCompactionStats extends AggregatedCompactionStats {
-        public final CompactSource sourceType;
-
-        AggregatedSourceCompactionStats(CompactSource sourceType) { this.sourceType = sourceType; }
-    }
-
-    private final LinkedHashMap<String, AggregatedProcessCompactionStats> mPerProcessCompactStats =
-            new LinkedHashMap<>(256);
-    private final EnumMap<CompactSource, AggregatedSourceCompactionStats> mPerSourceCompactStats =
-            new EnumMap<>(CompactSource.class);
-    private long mTotalCompactionDowngrades;
-    private long mSystemCompactionsPerformed;
-    private long mSystemTotalMemFreed;
-    private EnumMap<CancelCompactReason, Integer> mTotalCompactionsCancelled =
-            new EnumMap<>(CancelCompactReason.class);
-
     private final ProcessDependencies mProcessDependencies;
     private final ProcLocksReader mProcLocksReader;
 
@@ -758,10 +603,15 @@
         }
     }
 
-    @GuardedBy("mProcLock")
     @NeverCompile
     void dump(PrintWriter pw) {
-        pw.println("CachedAppOptimizer settings");
+        dumpCompact(pw);
+        dumpFreezer(pw);
+    }
+
+    @NeverCompile
+    void dumpCompact(PrintWriter pw) {
+        pw.println("Compaction settings");
         synchronized (mPhenotypeFlagLock) {
             pw.println("  " + KEY_USE_COMPACTION + "=" + mUseCompaction);
             pw.println("  " + KEY_COMPACT_THROTTLE_1 + "=" + mCompactThrottleSomeSome);
@@ -775,66 +625,30 @@
                     + mFullAnonRssThrottleKb);
             pw.println("  " + KEY_COMPACT_FULL_DELTA_RSS_THROTTLE_KB + "="
                     + mFullDeltaRssThrottleKb);
-            pw.println("  "  + KEY_COMPACT_PROC_STATE_THROTTLE + "="
+            pw.println("  " + KEY_COMPACT_PROC_STATE_THROTTLE + "="
                     + Arrays.toString(mProcStateThrottle.toArray(new Integer[0])));
+        }
 
-            pw.println(" Per-Process Compaction Stats");
-            long totalCompactPerformedSome = 0;
-            long totalCompactPerformedFull = 0;
-            for (AggregatedProcessCompactionStats stats : mPerProcessCompactStats.values()) {
-                pw.println("-----" + stats.processName + "-----");
-                totalCompactPerformedSome += stats.mSomeCompactPerformed;
-                totalCompactPerformedFull += stats.mFullCompactPerformed;
-                stats.dump(pw);
-                pw.println();
-            }
-            pw.println();
-            pw.println(" Per-Source Compaction Stats");
-            for (AggregatedSourceCompactionStats stats : mPerSourceCompactStats.values()) {
-                pw.println("-----" + stats.sourceType + "-----");
-                stats.dump(pw);
-                pw.println();
-            }
-            pw.println();
+        mCompactStatsManager.dump(pw);
 
-            pw.println("Total Compactions Performed by profile: " + totalCompactPerformedSome
-                    + " some, " + totalCompactPerformedFull + " full");
-            pw.println("Total compactions downgraded: " + mTotalCompactionDowngrades);
-            pw.println("Total compactions cancelled by reason: ");
-            for (CancelCompactReason reason : mTotalCompactionsCancelled.keySet()) {
-                pw.println("    " + reason + ": " + mTotalCompactionsCancelled.get(reason));
+        synchronized (mProcLock) {
+            if (!mPendingCompactionProcesses.isEmpty()) {
+                pw.println("  Pending compactions:");
+                int size = mPendingCompactionProcesses.size();
+                for (int i = 0; i < size; i++) {
+                    ProcessRecord app = mPendingCompactionProcesses.get(i);
+                    pw.println("    pid: " + app.getPid() + ". name: " + app.processName
+                            + ". hasPendingCompact: " + app.mOptRecord.hasPendingCompact());
+                }
             }
-            pw.println();
+        }
+        pw.println();
+    }
 
-            pw.println(" System Compaction Memory Stats");
-            pw.println("    Compactions Performed: " + mSystemCompactionsPerformed);
-            pw.println("    Total Memory Freed (KB): " + mSystemTotalMemFreed);
-            double avgKBsPerSystemCompact = mSystemCompactionsPerformed > 0
-                    ? mSystemTotalMemFreed / mSystemCompactionsPerformed
-                    : 0;
-            pw.println("    Avg Mem Freed per Compact (KB): " + avgKBsPerSystemCompact);
-            pw.println();
-            pw.println("  Tracking last compaction stats for " + mLastCompactionStats.size()
-                    + " processes.");
-            pw.println("Last Compaction per process stats:");
-            pw.println("    (ProcessName,Source,DeltaAnonRssKBs,ZramConsumedKBs,AnonMemFreedKBs"
-                    + ",SwapEfficiency,CompactEfficiency,CompactCost(ms/MB),procState,oomAdj,"
-                    + "oomAdjReason)");
-            for (Map.Entry<Integer, SingleCompactionStats> entry :
-                    mLastCompactionStats.entrySet()) {
-                SingleCompactionStats stats = entry.getValue();
-                stats.dump(pw);
-            }
-            pw.println();
-            pw.println("Last 20 Compactions Stats:");
-            pw.println("    (ProcessName,Source,DeltaAnonRssKBs,ZramConsumedKBs,AnonMemFreedKBs,"
-                    + "SwapEfficiency,CompactEfficiency,CompactCost(ms/MB),procState,oomAdj,"
-                    + "oomAdjReason)");
-            for (SingleCompactionStats stats : mCompactionStatsHistory) {
-                stats.dump(pw);
-            }
-            pw.println();
-
+    @NeverCompile
+    void dumpFreezer(PrintWriter pw) {
+        pw.println("Freezer settings");
+        synchronized (mPhenotypeFlagLock) {
             pw.println("  " + KEY_USE_FREEZER + "=" + mUseFreezer);
             pw.println("  " + KEY_FREEZER_STATSD_SAMPLE_RATE + "=" + mFreezerStatsdSampleRate);
             pw.println("  " + KEY_FREEZER_DEBOUNCE_TIMEOUT + "=" + mFreezerDebounceTimeout);
@@ -858,16 +672,6 @@
                             + " " + app.processName
                             + (app.mOptRecord.isFreezeSticky() ? " (sticky)" : ""));
                 }
-
-                if (!mPendingCompactionProcesses.isEmpty()) {
-                    pw.println("  Pending compactions:");
-                    size = mPendingCompactionProcesses.size();
-                    for (int i = 0; i < size; i++) {
-                        ProcessRecord app = mPendingCompactionProcesses.get(i);
-                        pw.println("    pid: " + app.getPid() + ". name: " + app.processName
-                                + ". hasPendingCompact: " + app.mOptRecord.hasPendingCompact());
-                    }
-                }
             }
         }
     }
@@ -877,26 +681,14 @@
             ProcessRecord app, CompactProfile compactProfile, CompactSource source, boolean force) {
         app.mOptRecord.setReqCompactSource(source);
         app.mOptRecord.setReqCompactProfile(compactProfile);
-        AggregatedSourceCompactionStats perSourceStats = getPerSourceAggregatedCompactStat(source);
-        AggregatedCompactionStats perProcStats =
-                getPerProcessAggregatedCompactStat(app.processName);
-        switch (compactProfile) {
-            case SOME:
-                ++perProcStats.mSomeCompactRequested;
-                ++perSourceStats.mSomeCompactRequested;
-                break;
-            case FULL:
-                ++perProcStats.mFullCompactRequested;
-                ++perSourceStats.mFullCompactRequested;
-                break;
-            default:
-                Slog.e(TAG_AM,
-                        "Unimplemented compaction type, consider adding it.");
-                return false;
+
+        if(compactProfile == null || compactProfile.equals(CompactProfile.NONE)) {
+            return false;
         }
+        final String processName = (app.processName != null ? app.processName : "");
+        mCompactStatsManager.logCompactionRequested(source, compactProfile, processName);
 
         if (!app.mOptRecord.hasPendingCompact()) {
-            final String processName = (app.processName != null ? app.processName : "");
             if (DEBUG_COMPACTION) {
                 Slog.d(TAG_AM,
                         "compactApp " + app.mOptRecord.getReqCompactSource().name() + " "
@@ -925,29 +717,6 @@
                 COMPACT_NATIVE_MSG, pid, compactProfile.ordinal()));
     }
 
-    private AggregatedProcessCompactionStats getPerProcessAggregatedCompactStat(
-            String processName) {
-        if (processName == null) {
-            processName = "";
-        }
-        AggregatedProcessCompactionStats stats = mPerProcessCompactStats.get(processName);
-        if (stats == null) {
-            stats = new AggregatedProcessCompactionStats(processName);
-            mPerProcessCompactStats.put(processName, stats);
-        }
-        return stats;
-    }
-
-    private AggregatedSourceCompactionStats getPerSourceAggregatedCompactStat(
-            CompactSource source) {
-        AggregatedSourceCompactionStats stats = mPerSourceCompactStats.get(source);
-        if (stats == null) {
-            stats = new AggregatedSourceCompactionStats(source);
-            mPerSourceCompactStats.put(source, stats);
-        }
-        return stats;
-    }
-
     void compactAllSystem() {
         if (useCompaction()) {
             if (DEBUG_COMPACTION) {
@@ -1008,6 +777,7 @@
             }
 
             mCompactionHandler = new MemCompactionHandler();
+            mCompactStatsManager = CompactionStatsManager.getInstance();
 
             Process.setThreadGroupAndCpuset(mCachedAppOptimizerThread.getThreadId(),
                     Process.THREAD_GROUP_SYSTEM);
@@ -1667,12 +1437,7 @@
             cancelled = true;
         }
         if (cancelled) {
-            if (mTotalCompactionsCancelled.containsKey(cancelReason)) {
-                int count = mTotalCompactionsCancelled.get(cancelReason);
-                mTotalCompactionsCancelled.put(cancelReason, count + 1);
-            } else {
-                mTotalCompactionsCancelled.put(cancelReason, 1);
-            }
+            mCompactStatsManager.logCompactionCancelled(cancelReason);
             if (DEBUG_COMPACTION) {
                 Slog.d(TAG_AM,
                         "Cancelled pending or running compactions for process: " +
@@ -1722,8 +1487,7 @@
             // Downgrade compaction under swap memory pressure
             if (swapFreePercent < COMPACT_DOWNGRADE_FREE_SWAP_THRESHOLD) {
                 profile = CompactProfile.SOME;
-
-                ++mTotalCompactionDowngrades;
+                mCompactStatsManager.logCompactionDowngrade();
                 if (DEBUG_COMPACTION) {
                     Slog.d(TAG_AM,
                             "Downgraded compaction to "+ profile +" due to low swap."
@@ -1753,72 +1517,6 @@
         }
     }
 
-    @VisibleForTesting
-    static final class SingleCompactionStats {
-        private static final float STATSD_SAMPLE_RATE = 0.1f;
-        private static final Random mRandom = new Random();
-        private final long[] mRssAfterCompaction;
-        public CompactSource mSourceType;
-        public String mProcessName;
-        public final int mUid;
-        public long mDeltaAnonRssKBs;
-        public long mZramConsumedKBs;
-        public long mAnonMemFreedKBs;
-        public float mCpuTimeMillis;
-        public long mOrigAnonRss;
-        public int mProcState;
-        public int mOomAdj;
-        public @OomAdjReason int mOomAdjReason;
-
-        SingleCompactionStats(long[] rss, CompactSource source, String processName,
-                long deltaAnonRss, long zramConsumed, long anonMemFreed, long origAnonRss,
-                long cpuTimeMillis, int procState, int oomAdj,
-                @OomAdjReason int oomAdjReason, int uid) {
-            mRssAfterCompaction = rss;
-            mSourceType = source;
-            mProcessName = processName;
-            mUid = uid;
-            mDeltaAnonRssKBs = deltaAnonRss;
-            mZramConsumedKBs = zramConsumed;
-            mAnonMemFreedKBs = anonMemFreed;
-            mCpuTimeMillis = cpuTimeMillis;
-            mOrigAnonRss = origAnonRss;
-            mProcState = procState;
-            mOomAdj = oomAdj;
-            mOomAdjReason = oomAdjReason;
-        }
-
-        double getCompactEfficiency() { return mAnonMemFreedKBs / (double) mOrigAnonRss; }
-
-        double getSwapEfficiency() { return mDeltaAnonRssKBs / (double) mOrigAnonRss; }
-
-        double getCompactCost() {
-            // mCpuTimeMillis / (anonMemFreedKBs/1024) and metric is in (ms/MB)
-            return mCpuTimeMillis / (double) mAnonMemFreedKBs * 1024;
-        }
-
-        long[] getRssAfterCompaction() {
-            return mRssAfterCompaction;
-        }
-
-        @NeverCompile
-        void dump(PrintWriter pw) {
-            pw.println("    (" + mProcessName + "," + mSourceType.name() + "," + mDeltaAnonRssKBs
-                    + "," + mZramConsumedKBs + "," + mAnonMemFreedKBs + ","
-                    + getSwapEfficiency() + "," + getCompactEfficiency()
-                    + "," + getCompactCost() + "," + mProcState + "," + mOomAdj + ","
-                    + OomAdjuster.oomAdjReasonToString(mOomAdjReason) + ")");
-        }
-
-        void sendStat() {
-            if (mRandom.nextFloat() < STATSD_SAMPLE_RATE) {
-                FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPACTED_V2, mUid, mProcState,
-                        mOomAdj, mDeltaAnonRssKBs, mZramConsumedKBs, mCpuTimeMillis, mOrigAnonRss,
-                        mOomAdjReason);
-            }
-        }
-    }
-
     private final class MemCompactionHandler extends Handler {
         private MemCompactionHandler() {
             super(mCachedAppOptimizerThread.getLooper());
@@ -1909,7 +1607,8 @@
         private boolean shouldRssThrottleCompaction(
                 CompactProfile profile, int pid, String name, long[] rssBefore) {
             long anonRssBefore = rssBefore[RSS_ANON_INDEX];
-            SingleCompactionStats lastCompactionStats = mLastCompactionStats.get(pid);
+            SingleCompactionStats lastCompactionStats =
+                    mCompactStatsManager.getLastCompactionStats(pid);
 
             if (rssBefore[RSS_TOTAL_INDEX] == 0 && rssBefore[RSS_FILE_INDEX] == 0
                     && rssBefore[RSS_ANON_INDEX] == 0 && rssBefore[RSS_SWAP_INDEX] == 0) {
@@ -1988,43 +1687,43 @@
                         oomAdjReason = opt.getLastOomAdjChangeReason();
                     }
 
-                    AggregatedSourceCompactionStats perSourceStats =
-                            getPerSourceAggregatedCompactStat(opt.getReqCompactSource());
-                    AggregatedProcessCompactionStats perProcessStats =
-                            getPerProcessAggregatedCompactStat(name);
-
                     long[] rssBefore;
                     if (pid == 0) {
                         // not a real process, either one being launched or one being killed
                         if (DEBUG_COMPACTION) {
                             Slog.d(TAG_AM, "Compaction failed, pid is 0");
                         }
-                        ++perSourceStats.mProcCompactionsNoPidThrottled;
-                        ++perProcessStats.mProcCompactionsNoPidThrottled;
+                        mCompactStatsManager.logCompactionThrottled(
+                                CompactionStatsManager.COMPACT_THROTTLE_REASON_NO_PID,
+                                compactSource, name);
                         return;
                     }
 
                     if (!forceCompaction) {
                         if (shouldOomAdjThrottleCompaction(proc)) {
-                            ++perProcessStats.mProcCompactionsOomAdjThrottled;
-                            ++perSourceStats.mProcCompactionsOomAdjThrottled;
+                            mCompactStatsManager.logCompactionThrottled(
+                                    CompactionStatsManager.COMPACT_THROTTLE_REASON_OOM_ADJ,
+                                    compactSource, name);
                             return;
                         }
                         if (shouldTimeThrottleCompaction(
                                     proc, start, requestedProfile, compactSource)) {
-                            ++perProcessStats.mProcCompactionsTimeThrottled;
-                            ++perSourceStats.mProcCompactionsTimeThrottled;
+                            mCompactStatsManager.logCompactionThrottled(
+                                    CompactionStatsManager.COMPACT_THROTTLE_REASON_TIME_TOO_SOON,
+                                    compactSource, name);
                             return;
                         }
                         if (shouldThrottleMiscCompaction(proc, procState)) {
-                            ++perProcessStats.mProcCompactionsMiscThrottled;
-                            ++perSourceStats.mProcCompactionsMiscThrottled;
+                            mCompactStatsManager.logCompactionThrottled(
+                                    CompactionStatsManager.COMPACT_THROTTLE_REASON_PROC_STATE,
+                                    compactSource, name);
                             return;
                         }
                         rssBefore = mProcessDependencies.getRss(pid);
                         if (shouldRssThrottleCompaction(requestedProfile, pid, name, rssBefore)) {
-                            ++perProcessStats.mProcCompactionsRSSThrottled;
-                            ++perSourceStats.mProcCompactionsRSSThrottled;
+                            mCompactStatsManager.logCompactionThrottled(
+                                    CompactionStatsManager.COMPACT_THROTTLE_REASON_DELTA_RSS,
+                                    compactSource, name);
                             return;
                         }
                     } else {
@@ -2065,40 +1764,19 @@
                         long deltaSwapRss = rssAfter[RSS_SWAP_INDEX] - rssBefore[RSS_SWAP_INDEX];
                         switch (opt.getReqCompactProfile()) {
                             case SOME:
-                                ++perSourceStats.mSomeCompactPerformed;
-                                ++perProcessStats.mSomeCompactPerformed;
+                                mCompactStatsManager.logSomeCompactionPerformed(compactSource,
+                                    name);
                                 break;
                             case FULL:
-                                ++perSourceStats.mFullCompactPerformed;
-                                ++perProcessStats.mFullCompactPerformed;
                                 long anonRssSavings = -deltaAnonRss;
                                 long zramConsumed = zramUsedKbAfter - zramUsedKbBefore;
                                 long memFreed = anonRssSavings - zramConsumed;
                                 long totalCpuTimeMillis = deltaCpuTimeNanos / 1000000;
                                 long origAnonRss = rssBefore[RSS_ANON_INDEX];
-
-                                // Negative stats would skew averages and will likely be due to
-                                // noise of system doing other things so we put a floor at 0 to
-                                // avoid negative values.
-                                anonRssSavings = anonRssSavings > 0 ? anonRssSavings : 0;
-                                zramConsumed = zramConsumed > 0 ? zramConsumed : 0;
-                                memFreed = memFreed > 0 ? memFreed : 0;
-
-                                perProcessStats.addMemStats(anonRssSavings, zramConsumed, memFreed,
-                                        origAnonRss, totalCpuTimeMillis);
-                                perSourceStats.addMemStats(anonRssSavings, zramConsumed, memFreed,
-                                        origAnonRss, totalCpuTimeMillis);
-                                SingleCompactionStats memStats = new SingleCompactionStats(rssAfter,
-                                        compactSource, name, anonRssSavings, zramConsumed, memFreed,
-                                        origAnonRss, totalCpuTimeMillis, procState, newOomAdj,
-                                        oomAdjReason, proc.uid);
-                                mLastCompactionStats.remove(pid);
-                                mLastCompactionStats.put(pid, memStats);
-                                mCompactionStatsHistory.add(memStats);
-                                if (!forceCompaction) {
-                                    // Avoid polluting field metrics with forced compactions.
-                                    memStats.sendStat();
-                                }
+                                mCompactStatsManager.logFullCompactionPerformed(compactSource, name,
+                                        anonRssSavings, zramConsumed, memFreed, origAnonRss,
+                                        totalCpuTimeMillis, rssAfter, procState, newOomAdj,
+                                        oomAdjReason, proc.uid, pid, !forceCompaction);
                                 break;
                             default:
                                 // We likely missed adding this category, it needs to be added
@@ -2129,12 +1807,12 @@
                     break;
                 }
                 case COMPACT_SYSTEM_MSG: {
-                    ++mSystemCompactionsPerformed;
                     Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "compactSystem");
                     long memFreedBefore = getMemoryFreedCompaction();
                     compactSystem();
                     long memFreedAfter = getMemoryFreedCompaction();
-                    mSystemTotalMemFreed += memFreedAfter - memFreedBefore;
+                    long memFreed = memFreedAfter - memFreedBefore;
+                    mCompactStatsManager.logSystemCompactionPerformed(memFreed);
                     Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                     break;
                 }
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 87f843b..cd40905 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -1681,8 +1681,11 @@
                     }
                     if ((uidChange & UidRecord.CHANGE_PROCSTATE) != 0
                             || (uidChange & UidRecord.CHANGE_CAPABILITY) != 0) {
-                        mService.noteUidProcessState(uidRec.getUid(), uidRec.getCurProcState(),
-                                uidRec.getCurCapability());
+                        mService.noteUidProcessStateAndCapability(uidRec.getUid(),
+                                uidRec.getCurProcState(), uidRec.getCurCapability());
+                    }
+                    if ((uidChange & UidRecord.CHANGE_PROCSTATE) != 0) {
+                        mService.noteUidProcessState(uidRec.getUid(), uidRec.getCurProcState());
                     }
                     if (uidRec.hasForegroundServices()) {
                         mService.mServices.foregroundServiceProcStateChangedLocked(uidRec);
@@ -4054,7 +4057,6 @@
                 + " mNewNumServiceProcs=" + mNewNumServiceProcs);
     }
 
-    @GuardedBy("mProcLock")
     void dumpCachedAppOptimizerSettings(PrintWriter pw) {
         mCachedAppOptimizer.dump(pw);
     }
@@ -4104,6 +4106,7 @@
             return;
         }
 
+        final boolean freezePolicy = getFreezePolicy(app);
         final ProcessCachedOptimizerRecord opt = app.mOptRecord;
         final ProcessStateRecord state = app.mState;
         if (Flags.traceUpdateAppFreezeStateLsp()) {
@@ -4120,6 +4123,21 @@
             if ((oomAdjChanged || shouldNotFreezeChanged || cpuCapabilityChanged)
                     && Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
                 Trace.instantForTrack(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                        "FreezeLite",
+                        (opt.isFrozen() ? "F" : "-")
+                        + (opt.isPendingFreeze() ? "P" : "-")
+                        + (opt.isFreezeExempt() ? "E" : "-")
+                        + (opt.shouldNotFreeze() ? "N" : "-")
+                        + (hasCpuCapability ? "T" : "-")
+                        + (immediate ? "I" : "-")
+                        + (freezePolicy ? "Z" : "-")
+                        + (Flags.useCpuTimeCapability() ? "t" : "-")
+                        + (Flags.prototypeAggressiveFreezing() ? "a" : "-")
+                        + "/" + app.getPid()
+                        + "/" + state.getCurAdj()
+                        + "/" + oldOomAdj
+                        + "/" + opt.shouldNotFreezeReason());
+                Trace.instantForTrack(Trace.TRACE_TAG_ACTIVITY_MANAGER,
                         CachedAppOptimizer.ATRACE_FREEZER_TRACK,
                         "updateAppFreezeStateLSP " + app.processName
                         + " pid: " + app.getPid()
@@ -4134,7 +4152,7 @@
             }
         }
 
-        if (getFreezePolicy(app)) {
+        if (freezePolicy) {
             // This process should be frozen.
             if (immediate && !opt.isFrozen()) {
                 // And it will be frozen immediately.
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index f7eaa15..b8babe6 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -3286,8 +3286,9 @@
                 uidRec.updateHasInternetPermission();
                 mActiveUids.put(proc.uid, uidRec);
                 EventLogTags.writeAmUidRunning(uidRec.getUid());
-                mService.noteUidProcessState(uidRec.getUid(), uidRec.getCurProcState(),
+                mService.noteUidProcessStateAndCapability(uidRec.getUid(), uidRec.getCurProcState(),
                         uidRec.getCurCapability());
+                mService.noteUidProcessState(uidRec.getUid(), uidRec.getCurProcState());
             }
             proc.setUidRecord(uidRec);
             uidRec.addProcess(proc);
@@ -3489,8 +3490,11 @@
                         EventLogTags.writeAmUidStopped(uid);
                         mActiveUids.remove(uid);
                         mService.mFgsStartTempAllowList.removeUid(record.info.uid);
-                        mService.noteUidProcessState(uid, ActivityManager.PROCESS_STATE_NONEXISTENT,
+                        mService.noteUidProcessStateAndCapability(uid,
+                                ActivityManager.PROCESS_STATE_NONEXISTENT,
                                 ActivityManager.PROCESS_CAPABILITY_NONE);
+                        mService.noteUidProcessState(uid, ActivityManager.PROCESS_STATE_NONEXISTENT
+                        );
                     }
                     record.setUidRecord(null);
                 }
diff --git a/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java b/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java
index c633830..f1007e7 100644
--- a/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java
+++ b/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java
@@ -186,9 +186,28 @@
         "core_libraries",
         "crumpet",
         "dck_framework",
+        "desktop_apps",
+        "desktop_better_together",
+        "desktop_bsp",
+        "desktop_camera",
         "desktop_connectivity",
+        "desktop_display",
+        "desktop_commercial",
+        "desktop_firmware",
+        "desktop_graphics",
         "desktop_hwsec",
+        "desktop_input",
+        "desktop_kernel",
+        "desktop_ml",
+        "desktop_serviceability",
+        "desktop_oobe",
+        "desktop_peripherals",
+        "desktop_pnp",
+        "desktop_security",
         "desktop_stats",
+        "desktop_sysui",
+        "desktop_users_and_accounts",
+        "desktop_video",
         "desktop_wifi",
         "devoptions_settings",
         "game",
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index e0fbaf4..27e9e44 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -31,7 +31,6 @@
 import static android.app.ActivityManagerInternal.ALLOW_NON_FULL;
 import static android.app.ActivityManagerInternal.ALLOW_NON_FULL_IN_PROFILE;
 import static android.app.ActivityManagerInternal.ALLOW_PROFILES_OR_NON_FULL;
-import static android.app.KeyguardManager.LOCK_ON_USER_SWITCH_CALLBACK;
 import static android.os.PowerWhitelistManager.REASON_BOOT_COMPLETED;
 import static android.os.PowerWhitelistManager.REASON_LOCKED_BOOT_COMPLETED;
 import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
@@ -3905,6 +3904,10 @@
             return mService.mWindowManager;
         }
 
+        ActivityTaskManagerInternal getActivityTaskManagerInternal() {
+            return mService.mAtmInternal;
+        }
+
         void activityManagerOnUserStopped(@UserIdInt int userId) {
             LocalServices.getService(ActivityTaskManagerInternal.class).onUserStopped(userId);
         }
@@ -4119,25 +4122,40 @@
         }
 
         void lockDeviceNowAndWaitForKeyguardShown() {
+            if (getWindowManager().isKeyguardLocked()) {
+                Slogf.w(TAG, "Not locking the device since the keyguard is already locked");
+                return;
+            }
+
             final TimingsTraceAndSlog t = new TimingsTraceAndSlog();
             t.traceBegin("lockDeviceNowAndWaitForKeyguardShown");
 
             final CountDownLatch latch = new CountDownLatch(1);
-            Bundle bundle = new Bundle();
-            bundle.putBinder(LOCK_ON_USER_SWITCH_CALLBACK, new IRemoteCallback.Stub() {
-                public void sendResult(Bundle data) {
-                    latch.countDown();
-                }
-            });
-            getWindowManager().lockNow(bundle);
+            ActivityTaskManagerInternal.ScreenObserver screenObserver =
+                    new ActivityTaskManagerInternal.ScreenObserver() {
+                        @Override
+                        public void onAwakeStateChanged(boolean isAwake) {
+
+                        }
+
+                        @Override
+                        public void onKeyguardStateChanged(boolean isShowing) {
+                            if (isShowing) {
+                                latch.countDown();
+                            }
+                        }
+                    };
+
+            getActivityTaskManagerInternal().registerScreenObserver(screenObserver);
+            getWindowManager().lockDeviceNow();
             try {
                 if (!latch.await(20, TimeUnit.SECONDS)) {
-                    throw new RuntimeException("User controller expected a callback while waiting "
-                            + "to show the keyguard. Timed out after 20 seconds.");
+                    throw new RuntimeException("Keyguard is not shown in 20 seconds");
                 }
             } catch (InterruptedException e) {
                 throw new RuntimeException(e);
             } finally {
+                getActivityTaskManagerInternal().unregisterScreenObserver(screenObserver);
                 t.traceEnd();
             }
         }
diff --git a/services/core/java/com/android/server/am/compaction/AggregatedCompactionStats.java b/services/core/java/com/android/server/am/compaction/AggregatedCompactionStats.java
new file mode 100644
index 0000000..836670c
--- /dev/null
+++ b/services/core/java/com/android/server/am/compaction/AggregatedCompactionStats.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.am.compaction;
+
+import dalvik.annotation.optimization.NeverCompile;
+
+import java.io.PrintWriter;
+
+class AggregatedCompactionStats {
+    // Throttling stats
+    public long mFullCompactRequested;
+    public long mSomeCompactRequested;
+    public long mFullCompactPerformed;
+    public long mSomeCompactPerformed;
+    public long mProcCompactionsNoPidThrottled;
+    public long mProcCompactionsOomAdjThrottled;
+    public long mProcCompactionsTimeThrottled;
+    public long mProcCompactionsRSSThrottled;
+    public long mProcCompactionsMiscThrottled;
+
+    // Memory stats
+    public long mTotalDeltaAnonRssKBs;
+    public long mTotalZramConsumedKBs;
+    public long mTotalAnonMemFreedKBs;
+    public long mSumOrigAnonRss;
+    public double mMaxCompactEfficiency;
+    public double mMaxSwapEfficiency;
+
+    // Cpu time
+    public long mTotalCpuTimeMillis;
+
+    public long getThrottledSome() { return mSomeCompactRequested - mSomeCompactPerformed; }
+
+    public long getThrottledFull() { return mFullCompactRequested - mFullCompactPerformed; }
+
+    public void addMemStats(long anonRssSaved, long zramConsumed, long memFreed,
+            long origAnonRss, long totalCpuTimeMillis) {
+        final double compactEfficiency = memFreed / (double) origAnonRss;
+        if (compactEfficiency > mMaxCompactEfficiency) {
+            mMaxCompactEfficiency = compactEfficiency;
+        }
+        final double swapEfficiency = anonRssSaved / (double) origAnonRss;
+        if (swapEfficiency > mMaxSwapEfficiency) {
+            mMaxSwapEfficiency = swapEfficiency;
+        }
+        mTotalDeltaAnonRssKBs += anonRssSaved;
+        mTotalZramConsumedKBs += zramConsumed;
+        mTotalAnonMemFreedKBs += memFreed;
+        mSumOrigAnonRss += origAnonRss;
+        mTotalCpuTimeMillis += totalCpuTimeMillis;
+    }
+
+    @NeverCompile
+    public void dump(PrintWriter pw) {
+        long totalCompactRequested = mSomeCompactRequested + mFullCompactRequested;
+        long totalCompactPerformed = mSomeCompactPerformed + mFullCompactPerformed;
+        pw.println("    Performed / Requested:");
+        pw.println("      Some: (" + mSomeCompactPerformed + "/" + mSomeCompactRequested + ")");
+        pw.println("      Full: (" + mFullCompactPerformed + "/" + mFullCompactRequested + ")");
+
+        long throttledSome = getThrottledSome();
+        long throttledFull = getThrottledFull();
+
+        if (throttledSome > 0 || throttledFull > 0) {
+            pw.println("    Throttled:");
+            pw.println("       Some: " + throttledSome + " Full: " + throttledFull);
+            pw.println("    Throttled by Type:");
+            final long compactionsThrottled = totalCompactRequested - totalCompactPerformed;
+            // Any throttle that was not part of the previous categories
+            final long unaccountedThrottled = compactionsThrottled
+                    - mProcCompactionsNoPidThrottled - mProcCompactionsOomAdjThrottled
+                    - mProcCompactionsTimeThrottled - mProcCompactionsRSSThrottled
+                    - mProcCompactionsMiscThrottled;
+            pw.println("       NoPid: " + mProcCompactionsNoPidThrottled
+                    + " OomAdj: " + mProcCompactionsOomAdjThrottled + " Time: "
+                    + mProcCompactionsTimeThrottled + " RSS: " + mProcCompactionsRSSThrottled
+                    + " Misc: " + mProcCompactionsMiscThrottled
+                    + " Unaccounted: " + unaccountedThrottled);
+            final double compactThrottlePercentage =
+                    (compactionsThrottled / (double) totalCompactRequested) * 100.0;
+            pw.println("    Throttle Percentage: " + compactThrottlePercentage);
+        }
+
+        if (mFullCompactPerformed > 0) {
+            pw.println("    -----Memory Stats----");
+            pw.println("    Total Delta Anon RSS (KB) : " + mTotalDeltaAnonRssKBs);
+            pw.println("    Total Physical ZRAM Consumed (KB): " + mTotalZramConsumedKBs);
+            // Anon Mem Freed = Delta Anon RSS - ZRAM Consumed
+            pw.println("    Total Anon Memory Freed (KB): " + mTotalAnonMemFreedKBs);
+            pw.println("    Avg Swap Efficiency (KB) (Delta Anon RSS/Orig Anon RSS): "
+                    + (mTotalDeltaAnonRssKBs / (double) mSumOrigAnonRss));
+            pw.println("    Max Swap Efficiency: " + mMaxSwapEfficiency);
+            // This tells us how much anon memory we were able to free thanks to running
+            // compaction
+            pw.println("    Avg Compaction Efficiency (Anon Freed/Anon RSS): "
+                    + (mTotalAnonMemFreedKBs / (double) mSumOrigAnonRss));
+            pw.println("    Max Compaction Efficiency: " + mMaxCompactEfficiency);
+            // This tells us how effective is the compression algorithm in physical memory
+            pw.println("    Avg Compression Ratio (1 - ZRAM Consumed/DeltaAnonRSS): "
+                    + (1.0 - mTotalZramConsumedKBs / (double) mTotalDeltaAnonRssKBs));
+            long avgKBsPerProcCompact = mFullCompactPerformed > 0
+                    ? (mTotalAnonMemFreedKBs / mFullCompactPerformed)
+                    : 0;
+            pw.println("    Avg Anon Mem Freed/Compaction (KB) : " + avgKBsPerProcCompact);
+            double compactionCost =
+                    mTotalCpuTimeMillis / (mTotalAnonMemFreedKBs / 1024.0); // ms/MB
+            pw.println("    Compaction Cost (ms/MB): " + compactionCost);
+        }
+    }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/services/core/java/com/android/server/am/compaction/AggregatedProcessCompactionStats.java
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to services/core/java/com/android/server/am/compaction/AggregatedProcessCompactionStats.java
index 29335c5..53019f9 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/services/core/java/com/android/server/am/compaction/AggregatedProcessCompactionStats.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.server.am.compaction;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+final class AggregatedProcessCompactionStats extends AggregatedCompactionStats {
+    public final String mProcessName;
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+    public AggregatedProcessCompactionStats(String processName) { this.mProcessName = processName; }
+}
diff --git a/services/core/java/com/android/server/am/compaction/AggregatedSourceCompactionStats.java b/services/core/java/com/android/server/am/compaction/AggregatedSourceCompactionStats.java
new file mode 100644
index 0000000..39a10d5
--- /dev/null
+++ b/services/core/java/com/android/server/am/compaction/AggregatedSourceCompactionStats.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.am.compaction;
+
+import com.android.server.am.CachedAppOptimizer;
+
+final class AggregatedSourceCompactionStats extends AggregatedCompactionStats {
+    public final CachedAppOptimizer.CompactSource mSourceType;
+
+    public AggregatedSourceCompactionStats(CachedAppOptimizer.CompactSource sourceType) {
+        this.mSourceType = sourceType;
+    }
+}
\ No newline at end of file
diff --git a/services/core/java/com/android/server/am/compaction/CompactionStatsManager.java b/services/core/java/com/android/server/am/compaction/CompactionStatsManager.java
new file mode 100644
index 0000000..98368da
--- /dev/null
+++ b/services/core/java/com/android/server/am/compaction/CompactionStatsManager.java
@@ -0,0 +1,320 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.am.compaction;
+
+import android.annotation.IntDef;
+import android.app.ActivityManagerInternal;
+import android.util.Slog;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.am.CachedAppOptimizer;
+
+import dalvik.annotation.optimization.NeverCompile;
+
+import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.EnumMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+public final class CompactionStatsManager {
+    private static CompactionStatsManager sInstance;
+
+    private static String TAG = "CompactionStatsManager";
+
+    // Size of history for the last 20 compactions for any process
+    static final int LAST_COMPACTED_ANY_PROCESS_STATS_HISTORY_SIZE = 20;
+
+    // Amount of processes supported to record for their last compaction.
+    static final int LAST_COMPACTION_FOR_PROCESS_STATS_SIZE = 256;
+
+    public static final int COMPACT_THROTTLE_REASON_NO_PID = 0;
+    public static final int COMPACT_THROTTLE_REASON_OOM_ADJ = 1;
+    public static final int COMPACT_THROTTLE_REASON_TIME_TOO_SOON = 2;
+    public static final int COMPACT_THROTTLE_REASON_PROC_STATE = 3;
+    public static final int COMPACT_THROTTLE_REASON_DELTA_RSS = 4;
+    @IntDef(value = {
+            COMPACT_THROTTLE_REASON_NO_PID, COMPACT_THROTTLE_REASON_OOM_ADJ,
+            COMPACT_THROTTLE_REASON_TIME_TOO_SOON, COMPACT_THROTTLE_REASON_PROC_STATE,
+            COMPACT_THROTTLE_REASON_DELTA_RSS
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface CompactThrottleReason {}
+
+    private final LinkedHashMap<String, AggregatedProcessCompactionStats> mPerProcessCompactStats =
+            new LinkedHashMap<>(256);
+    private final EnumMap<CachedAppOptimizer.CompactSource, AggregatedSourceCompactionStats>
+            mPerSourceCompactStats =
+            new EnumMap<>(CachedAppOptimizer.CompactSource.class);
+
+    private long mTotalCompactionDowngrades;
+    private long mSystemCompactionsPerformed;
+    private long mSystemTotalMemFreed;
+    private EnumMap<CachedAppOptimizer.CancelCompactReason, Integer> mTotalCompactionsCancelled =
+            new EnumMap<>(CachedAppOptimizer.CancelCompactReason.class);
+
+    // Maps process ID to last compaction statistics for processes that we've fully compacted. Used
+    // when evaluating throttles that we only consider for "full" compaction, so we don't store
+    // data for "some" compactions. Uses LinkedHashMap to ensure insertion order is kept and
+    // facilitate removal of the oldest entry.
+    @VisibleForTesting
+    @GuardedBy("mProcLock")
+    LinkedHashMap<Integer, SingleCompactionStats> mLastCompactionStats =
+            new LinkedHashMap<Integer, SingleCompactionStats>() {
+                @Override
+                protected boolean removeEldestEntry(Map.Entry eldest) {
+                    return size() > LAST_COMPACTION_FOR_PROCESS_STATS_SIZE;
+                }
+            };
+
+    LinkedList<SingleCompactionStats> mCompactionStatsHistory =
+            new LinkedList<SingleCompactionStats>() {
+                @Override
+                public boolean add(SingleCompactionStats e) {
+                    if (size() >= LAST_COMPACTED_ANY_PROCESS_STATS_HISTORY_SIZE) {
+                        this.remove();
+                    }
+                    return super.add(e);
+                }
+            };
+
+    public static CompactionStatsManager getInstance() {
+        if (sInstance == null) {
+            sInstance = new CompactionStatsManager();
+        }
+        return sInstance;
+    }
+
+    public SingleCompactionStats getLastCompactionStats(int pid) {
+        return mLastCompactionStats.get(pid);
+    }
+
+    @VisibleForTesting
+    public LinkedHashMap<Integer, SingleCompactionStats> getLastCompactionStats() {
+        return mLastCompactionStats;
+    }
+
+    @VisibleForTesting
+    public void reinit() {
+        sInstance = new CompactionStatsManager();
+    }
+
+
+    public void logCompactionRequested(CachedAppOptimizer.CompactSource source,
+            CachedAppOptimizer.CompactProfile compactProfile, String processName) {
+        AggregatedSourceCompactionStats perSourceStats = getPerSourceAggregatedCompactStat(source);
+        AggregatedCompactionStats perProcStats =
+                getPerProcessAggregatedCompactStat(processName);
+
+        switch (compactProfile) {
+            case SOME:
+                ++perProcStats.mSomeCompactRequested;
+                ++perSourceStats.mSomeCompactRequested;
+                break;
+            case FULL:
+                ++perProcStats.mFullCompactRequested;
+                ++perSourceStats.mFullCompactRequested;
+                break;
+            default:
+                Slog.e(TAG,
+                        "Stats cannot be logged for compaction type."+compactProfile);
+        }
+    }
+    public void logCompactionThrottled(@CompactThrottleReason int reason,
+            CachedAppOptimizer.CompactSource source, String processName) {
+        AggregatedSourceCompactionStats perSourceStats =
+                getPerSourceAggregatedCompactStat(source);
+        AggregatedProcessCompactionStats perProcessStats =
+                getPerProcessAggregatedCompactStat(processName);
+
+        switch(reason) {
+            case COMPACT_THROTTLE_REASON_NO_PID:
+                ++perSourceStats.mProcCompactionsNoPidThrottled;
+                ++perProcessStats.mProcCompactionsNoPidThrottled;
+                break;
+            case COMPACT_THROTTLE_REASON_OOM_ADJ:
+                ++perProcessStats.mProcCompactionsOomAdjThrottled;
+                ++perSourceStats.mProcCompactionsOomAdjThrottled;
+                break;
+            case COMPACT_THROTTLE_REASON_TIME_TOO_SOON:
+                ++perProcessStats.mProcCompactionsTimeThrottled;
+                ++perSourceStats.mProcCompactionsTimeThrottled;
+                break;
+            case COMPACT_THROTTLE_REASON_PROC_STATE:
+                ++perProcessStats.mProcCompactionsMiscThrottled;
+                ++perSourceStats.mProcCompactionsMiscThrottled;
+                break;
+            case COMPACT_THROTTLE_REASON_DELTA_RSS:
+                ++perProcessStats.mProcCompactionsRSSThrottled;
+                ++perSourceStats.mProcCompactionsRSSThrottled;
+                break;
+            default:
+                break;
+        }
+    }
+
+    public void logSomeCompactionPerformed(CachedAppOptimizer.CompactSource source,
+            String processName) {
+        AggregatedSourceCompactionStats perSourceStats =
+                getPerSourceAggregatedCompactStat(source);
+        AggregatedProcessCompactionStats perProcessStats =
+                getPerProcessAggregatedCompactStat(processName);
+
+        ++perSourceStats.mSomeCompactPerformed;
+        ++perProcessStats.mSomeCompactPerformed;
+    }
+
+    public void logFullCompactionPerformed(
+            CachedAppOptimizer.CompactSource source, String processName, long anonRssSavings,
+            long zramConsumed, long memFreed, long origAnonRss, long totalCpuTimeMillis,
+            long[] rssAfterCompact, int procState, int newOomAdj,
+            @ActivityManagerInternal.OomAdjReason int oomAdjReason, int uid, int pid,
+            boolean logFieldMetric) {
+        AggregatedSourceCompactionStats perSourceStats =
+                getPerSourceAggregatedCompactStat(source);
+        AggregatedProcessCompactionStats perProcessStats =
+                getPerProcessAggregatedCompactStat(processName);
+
+        ++perSourceStats.mFullCompactPerformed;
+        ++perProcessStats.mFullCompactPerformed;
+
+        // Negative stats would skew averages and will likely be due to
+        // noise of system doing other things so we put a floor at 0 to
+        // avoid negative values.
+        anonRssSavings = anonRssSavings > 0 ? anonRssSavings : 0;
+        zramConsumed = zramConsumed > 0 ? zramConsumed : 0;
+        memFreed = memFreed > 0 ? memFreed : 0;
+
+        perProcessStats.addMemStats(anonRssSavings, zramConsumed, memFreed,
+                origAnonRss, totalCpuTimeMillis);
+        perSourceStats.addMemStats(anonRssSavings, zramConsumed, memFreed,
+                origAnonRss, totalCpuTimeMillis);
+        SingleCompactionStats memStats = new SingleCompactionStats(rssAfterCompact,
+                source, processName, anonRssSavings, zramConsumed, memFreed,
+                origAnonRss, totalCpuTimeMillis, procState, newOomAdj,
+                oomAdjReason, uid);
+        mLastCompactionStats.remove(pid);
+        mLastCompactionStats.put(pid, memStats);
+        mCompactionStatsHistory.add(memStats);
+        if (!logFieldMetric) {
+            memStats.sendStat();
+        }
+    }
+
+    public void logCompactionDowngrade() {
+        ++mTotalCompactionDowngrades;
+    }
+
+    public void logSystemCompactionPerformed(long memFreed) {
+        ++mSystemCompactionsPerformed;
+        mSystemTotalMemFreed += memFreed;
+    }
+
+    public void logCompactionCancelled(CachedAppOptimizer.CancelCompactReason cancelReason) {
+        if (mTotalCompactionsCancelled.containsKey(cancelReason)) {
+            int count = mTotalCompactionsCancelled.get(cancelReason);
+            mTotalCompactionsCancelled.put(cancelReason, count + 1);
+        } else {
+            mTotalCompactionsCancelled.put(cancelReason, 1);
+        }
+    }
+
+    private AggregatedProcessCompactionStats getPerProcessAggregatedCompactStat(
+            String processName) {
+        if (processName == null) {
+            processName = "";
+        }
+        AggregatedProcessCompactionStats stats = mPerProcessCompactStats.get(processName);
+        if (stats == null) {
+            stats = new AggregatedProcessCompactionStats(processName);
+            mPerProcessCompactStats.put(processName, stats);
+        }
+        return stats;
+    }
+
+    private AggregatedSourceCompactionStats getPerSourceAggregatedCompactStat(
+            CachedAppOptimizer.CompactSource source) {
+        AggregatedSourceCompactionStats stats = mPerSourceCompactStats.get(source);
+        if (stats == null) {
+            stats = new AggregatedSourceCompactionStats(source);
+            mPerSourceCompactStats.put(source, stats);
+        }
+        return stats;
+    }
+
+    @NeverCompile
+    public void dump(PrintWriter pw) {
+        pw.println(" Per-Process Compaction Stats");
+        long totalCompactPerformedSome = 0;
+        long totalCompactPerformedFull = 0;
+        for (AggregatedProcessCompactionStats stats : mPerProcessCompactStats.values()) {
+            pw.println("-----" + stats.mProcessName + "-----");
+            totalCompactPerformedSome += stats.mSomeCompactPerformed;
+            totalCompactPerformedFull += stats.mFullCompactPerformed;
+            stats.dump(pw);
+            pw.println();
+        }
+        pw.println();
+        pw.println(" Per-Source Compaction Stats");
+        for (AggregatedSourceCompactionStats stats : mPerSourceCompactStats.values()) {
+            pw.println("-----" + stats.mSourceType + "-----");
+            stats.dump(pw);
+            pw.println();
+        }
+        pw.println();
+
+        pw.println("Total Compactions Performed by profile: " + totalCompactPerformedSome
+                + " some, " + totalCompactPerformedFull + " full");
+        pw.println("Total compactions downgraded: " + mTotalCompactionDowngrades);
+        pw.println("Total compactions cancelled by reason: ");
+        for (CachedAppOptimizer.CancelCompactReason reason : mTotalCompactionsCancelled.keySet()) {
+            pw.println("    " + reason + ": " + mTotalCompactionsCancelled.get(reason));
+        }
+        pw.println();
+
+        pw.println(" System Compaction Memory Stats");
+        pw.println("    Compactions Performed: " + mSystemCompactionsPerformed);
+        pw.println("    Total Memory Freed (KB): " + mSystemTotalMemFreed);
+        double avgKBsPerSystemCompact = mSystemCompactionsPerformed > 0
+                ? mSystemTotalMemFreed / mSystemCompactionsPerformed
+                : 0;
+        pw.println("    Avg Mem Freed per Compact (KB): " + avgKBsPerSystemCompact);
+        pw.println();
+        pw.println("  Tracking last compaction stats for " + mLastCompactionStats.size()
+                + " processes.");
+        pw.println("Last Compaction per process stats:");
+        pw.println("    (ProcessName,Source,DeltaAnonRssKBs,ZramConsumedKBs,AnonMemFreedKBs"
+                + ",SwapEfficiency,CompactEfficiency,CompactCost(ms/MB),procState,oomAdj,"
+                + "oomAdjReason)");
+        for (Map.Entry<Integer, SingleCompactionStats> entry :
+                mLastCompactionStats.entrySet()) {
+            SingleCompactionStats stats = entry.getValue();
+            stats.dump(pw);
+        }
+        pw.println();
+        pw.println("Last 20 Compactions Stats:");
+        pw.println("    (ProcessName,Source,DeltaAnonRssKBs,ZramConsumedKBs,AnonMemFreedKBs,"
+                + "SwapEfficiency,CompactEfficiency,CompactCost(ms/MB),procState,oomAdj,"
+                + "oomAdjReason)");
+        for (SingleCompactionStats stats : mCompactionStatsHistory) {
+            stats.dump(pw);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/am/compaction/OWNERS b/services/core/java/com/android/server/am/compaction/OWNERS
new file mode 100644
index 0000000..54253b4
--- /dev/null
+++ b/services/core/java/com/android/server/am/compaction/OWNERS
@@ -0,0 +1,5 @@
+edgararriaga@google.com
+shayba@google.com
+
+# Fallback
+include /PERFORMANCE_OWNERS
diff --git a/services/core/java/com/android/server/am/compaction/SingleCompactionStats.java b/services/core/java/com/android/server/am/compaction/SingleCompactionStats.java
new file mode 100644
index 0000000..c20087a
--- /dev/null
+++ b/services/core/java/com/android/server/am/compaction/SingleCompactionStats.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.am.compaction;
+
+import android.app.ActivityManagerInternal;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
+import com.android.server.am.CachedAppOptimizer;
+import com.android.server.am.OomAdjuster;
+
+import dalvik.annotation.optimization.NeverCompile;
+
+import java.io.PrintWriter;
+import java.util.Random;
+
+public final class SingleCompactionStats {
+    private static final float STATSD_SAMPLE_RATE = 0.1f;
+    private static final Random mRandom = new Random();
+    private final long[] mRssAfterCompaction;
+    public CachedAppOptimizer.CompactSource mSourceType;
+    public String mProcessName;
+    public final int mUid;
+    public long mDeltaAnonRssKBs;
+    public long mZramConsumedKBs;
+    public long mAnonMemFreedKBs;
+    public float mCpuTimeMillis;
+    public long mOrigAnonRss;
+    public int mProcState;
+    public int mOomAdj;
+    public @ActivityManagerInternal.OomAdjReason int mOomAdjReason;
+
+    SingleCompactionStats(long[] rss, CachedAppOptimizer.CompactSource source, String processName,
+            long deltaAnonRss, long zramConsumed, long anonMemFreed, long origAnonRss,
+            long cpuTimeMillis, int procState, int oomAdj,
+            @ActivityManagerInternal.OomAdjReason int oomAdjReason, int uid) {
+        mRssAfterCompaction = rss;
+        mSourceType = source;
+        mProcessName = processName;
+        mUid = uid;
+        mDeltaAnonRssKBs = deltaAnonRss;
+        mZramConsumedKBs = zramConsumed;
+        mAnonMemFreedKBs = anonMemFreed;
+        mCpuTimeMillis = cpuTimeMillis;
+        mOrigAnonRss = origAnonRss;
+        mProcState = procState;
+        mOomAdj = oomAdj;
+        mOomAdjReason = oomAdjReason;
+    }
+
+    double getCompactEfficiency() { return mAnonMemFreedKBs / (double) mOrigAnonRss; }
+
+    double getSwapEfficiency() { return mDeltaAnonRssKBs / (double) mOrigAnonRss; }
+
+    double getCompactCost() {
+        // mCpuTimeMillis / (anonMemFreedKBs/1024) and metric is in (ms/MB)
+        return mCpuTimeMillis / (double) mAnonMemFreedKBs * 1024;
+    }
+
+    public long[] getRssAfterCompaction() {
+        return mRssAfterCompaction;
+    }
+
+    @NeverCompile
+    void dump(PrintWriter pw) {
+        pw.println("    (" + mProcessName + "," + mSourceType.name() + "," + mDeltaAnonRssKBs
+                + "," + mZramConsumedKBs + "," + mAnonMemFreedKBs + ","
+                + getSwapEfficiency() + "," + getCompactEfficiency()
+                + "," + getCompactCost() + "," + mProcState + "," + mOomAdj + ","
+                + OomAdjuster.oomAdjReasonToString(mOomAdjReason) + ")");
+    }
+
+    void sendStat() {
+        if (mRandom.nextFloat() < STATSD_SAMPLE_RATE) {
+            FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPACTED_V2, mUid, mProcState,
+                    mOomAdj, mDeltaAnonRssKBs, mZramConsumedKBs, mCpuTimeMillis, mOrigAnonRss,
+                    mOomAdjReason);
+        }
+    }
+}
\ No newline at end of file
diff --git a/services/core/java/com/android/server/app/GameManagerService.java b/services/core/java/com/android/server/app/GameManagerService.java
index c0a97db..7672011 100644
--- a/services/core/java/com/android/server/app/GameManagerService.java
+++ b/services/core/java/com/android/server/app/GameManagerService.java
@@ -361,6 +361,14 @@
                 case POPULATE_GAME_MODE_SETTINGS: {
                     removeEqualMessages(POPULATE_GAME_MODE_SETTINGS, msg.obj);
                     final int userId = (int) msg.obj;
+                    synchronized (mLock) {
+                        if (!mSettings.containsKey(userId)) {
+                            GameManagerSettings userSettings = new GameManagerSettings(
+                                    Environment.getDataSystemDeDirectory(userId));
+                            mSettings.put(userId, userSettings);
+                            userSettings.readPersistentDataLocked();
+                        }
+                    }
                     final String[] packageNames = getInstalledGamePackageNames(userId);
                     updateConfigsForUser(userId, false /*checkGamePackage*/, packageNames);
                     break;
@@ -990,8 +998,7 @@
         @Override
         public void onUserStarting(@NonNull TargetUser user) {
             Slog.d(TAG, "Starting user " + user.getUserIdentifier());
-            mService.onUserStarting(user,
-                    Environment.getDataSystemDeDirectory(user.getUserIdentifier()));
+            mService.onUserStarting(user, /*settingDataDirOverride*/ null);
         }
 
         @Override
@@ -1596,13 +1603,16 @@
         }
     }
 
-    void onUserStarting(@NonNull TargetUser user, File settingDataDir) {
+    void onUserStarting(@NonNull TargetUser user, File settingDataDirOverride) {
         final int userId = user.getUserIdentifier();
-        synchronized (mLock) {
-            if (!mSettings.containsKey(userId)) {
-                GameManagerSettings userSettings = new GameManagerSettings(settingDataDir);
-                mSettings.put(userId, userSettings);
-                userSettings.readPersistentDataLocked();
+        if (settingDataDirOverride != null) {
+            synchronized (mLock) {
+                if (!mSettings.containsKey(userId)) {
+                    GameManagerSettings userSettings = new GameManagerSettings(
+                            settingDataDirOverride);
+                    mSettings.put(userId, userSettings);
+                    userSettings.readPersistentDataLocked();
+                }
             }
         }
         sendUserMessage(userId, POPULATE_GAME_MODE_SETTINGS, EVENT_ON_USER_STARTING,
diff --git a/services/core/java/com/android/server/app/GameManagerSettings.java b/services/core/java/com/android/server/app/GameManagerSettings.java
index c57a1f7..fd4bf2f 100644
--- a/services/core/java/com/android/server/app/GameManagerSettings.java
+++ b/services/core/java/com/android/server/app/GameManagerSettings.java
@@ -221,9 +221,7 @@
             return false;
         }
 
-        try {
-            final FileInputStream str = mSettingsFile.openRead();
-
+        try (FileInputStream str = mSettingsFile.openRead()) {
             final TypedXmlPullParser parser = Xml.resolvePullParser(str);
             int type;
             while ((type = parser.next()) != XmlPullParser.START_TAG
@@ -251,7 +249,6 @@
                             + type);
                 }
             }
-            str.close();
         } catch (XmlPullParserException | java.io.IOException e) {
             Slog.wtf(TAG, "Error reading game manager settings", e);
             return false;
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 32c4e9b..2a9762c 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -72,6 +72,7 @@
 import static android.content.pm.PermissionInfo.PROTECTION_DANGEROUS;
 import static android.content.pm.PermissionInfo.PROTECTION_FLAG_APPOP;
 import static android.os.Flags.binderFrozenStateChangeCallback;
+import static android.permission.flags.Flags.appOpsServiceHandlerFix;
 import static android.permission.flags.Flags.checkOpValidatePackage;
 import static android.permission.flags.Flags.deviceAwareAppOpNewSchemaEnabled;
 import static android.permission.flags.Flags.useFrozenAwareRemoteCallbackList;
@@ -174,6 +175,7 @@
 import com.android.internal.util.function.pooled.PooledLambda;
 import com.android.modules.utils.TypedXmlPullParser;
 import com.android.modules.utils.TypedXmlSerializer;
+import com.android.server.IoThread;
 import com.android.server.LocalManagerRegistry;
 import com.android.server.LocalServices;
 import com.android.server.LockGuard;
@@ -277,6 +279,7 @@
     final AtomicFile mStorageFile;
     final AtomicFile mRecentAccessesFile;
     private final @Nullable File mNoteOpCallerStacktracesFile;
+    /* AMS handler, this shouldn't be used for IO */
     final Handler mHandler;
 
     private final AppOpsRecentAccessPersistence mRecentAccessPersistence;
@@ -1411,7 +1414,7 @@
 
     @GuardedBy("this")
     private void packageRemovedLocked(int uid, String packageName) {
-        mHandler.post(PooledLambda.obtainRunnable(HistoricalRegistry::clearHistory,
+        getIoHandler().post(PooledLambda.obtainRunnable(HistoricalRegistry::clearHistory,
                 mHistoricalRegistry, uid, packageName));
 
         UidState uidState = mUidStates.get(uid);
@@ -1693,7 +1696,7 @@
             if (mWriteScheduled) {
                 mWriteScheduled = false;
                 mFastWriteScheduled = false;
-                mHandler.removeCallbacks(mWriteRunner);
+                getIoHandler().removeCallbacks(mWriteRunner);
                 doWrite = true;
             }
         }
@@ -1979,7 +1982,7 @@
                         new String[attributionChainExemptPackages.size()]) : null;
 
         // Must not hold the appops lock
-        mHandler.post(PooledLambda.obtainRunnable(HistoricalRegistry::getHistoricalOps,
+        getIoHandler().post(PooledLambda.obtainRunnable(HistoricalRegistry::getHistoricalOps,
                 mHistoricalRegistry, uid, packageName, attributionTag, opNamesArray, dataType,
                 filter, beginTimeMillis, endTimeMillis, flags, chainExemptPkgArray,
                 callback).recycleOnUse());
@@ -2010,7 +2013,8 @@
                 new String[attributionChainExemptPackages.size()]) : null;
 
         // Must not hold the appops lock
-        mHandler.post(PooledLambda.obtainRunnable(HistoricalRegistry::getHistoricalOpsFromDiskRaw,
+        getIoHandler().post(PooledLambda.obtainRunnable(
+                HistoricalRegistry::getHistoricalOpsFromDiskRaw,
                 mHistoricalRegistry, uid, packageName, attributionTag, opNamesArray, dataType,
                 filter, beginTimeMillis, endTimeMillis, flags, chainExemptPkgArray,
                 callback).recycleOnUse());
@@ -5074,7 +5078,7 @@
     private void scheduleWriteLocked() {
         if (!mWriteScheduled) {
             mWriteScheduled = true;
-            mHandler.postDelayed(mWriteRunner, WRITE_DELAY);
+            getIoHandler().postDelayed(mWriteRunner, WRITE_DELAY);
         }
     }
 
@@ -5082,8 +5086,8 @@
         if (!mFastWriteScheduled) {
             mWriteScheduled = true;
             mFastWriteScheduled = true;
-            mHandler.removeCallbacks(mWriteRunner);
-            mHandler.postDelayed(mWriteRunner, 10*1000);
+            getIoHandler().removeCallbacks(mWriteRunner);
+            getIoHandler().postDelayed(mWriteRunner, 10 * 1000);
         }
     }
 
@@ -5957,7 +5961,8 @@
                     final long token = Binder.clearCallingIdentity();
                     try {
                         synchronized (shell.mInternal) {
-                            shell.mInternal.mHandler.removeCallbacks(shell.mInternal.mWriteRunner);
+                            shell.mInternal.getIoHandler().removeCallbacks(
+                                    shell.mInternal.mWriteRunner);
                         }
                         shell.mInternal.writeRecentAccesses();
                         shell.mInternal.mAppOpsCheckingService.writeState();
@@ -7884,4 +7889,12 @@
             return null;
         }
     }
+
+    private Handler getIoHandler() {
+        if (appOpsServiceHandlerFix()) {
+            return IoThread.getHandler();
+        } else {
+            return mHandler;
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/appop/HistoricalRegistry.java b/services/core/java/com/android/server/appop/HistoricalRegistry.java
index 5aa2a6b..928a4b2 100644
--- a/services/core/java/com/android/server/appop/HistoricalRegistry.java
+++ b/services/core/java/com/android/server/appop/HistoricalRegistry.java
@@ -206,7 +206,7 @@
         if (Flags.enableSqliteAppopsAccesses()) {
             mDiscreteRegistry = new DiscreteOpsSqlRegistry(context);
         } else {
-            mDiscreteRegistry = new DiscreteOpsXmlRegistry(context);
+            mDiscreteRegistry = new DiscreteOpsXmlRegistry(lock);
         }
     }
 
diff --git a/services/core/java/com/android/server/audio/AdiDeviceState.java b/services/core/java/com/android/server/audio/AdiDeviceState.java
index 9ae43a0..2a8ce0d 100644
--- a/services/core/java/com/android/server/audio/AdiDeviceState.java
+++ b/services/core/java/com/android/server/audio/AdiDeviceState.java
@@ -19,7 +19,6 @@
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
 import static android.media.AudioSystem.DEVICE_NONE;
 import static android.media.AudioSystem.isBluetoothDevice;
-import static android.media.audio.Flags.automaticBtDeviceType;
 
 import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
 
@@ -146,20 +145,11 @@
     }
 
     public synchronized boolean isBtDeviceCategoryFixed() {
-        if (!automaticBtDeviceType()) {
-            // do nothing
-            return false;
-        }
-
         updateAudioDeviceCategory();
         return mAutoBtCategorySet;
     }
 
     public synchronized boolean updateAudioDeviceCategory() {
-        if (!automaticBtDeviceType()) {
-            // do nothing
-            return false;
-        }
         if (!isBluetoothDevice(mInternalDeviceType)) {
             return false;
         }
diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
index acb46d9..37ef9a0 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
@@ -28,7 +28,6 @@
 import static android.media.AudioSystem.isBluetoothLeOutDevice;
 import static android.media.AudioSystem.isBluetoothOutDevice;
 import static android.media.AudioSystem.isBluetoothScoOutDevice;
-import static android.media.audio.Flags.automaticBtDeviceType;
 
 import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
 import static com.android.media.audio.Flags.asDeviceConnectionFailure;
@@ -206,11 +205,10 @@
             AdiDeviceState deviceState, boolean syncInventory) {
         AtomicBoolean updatedCategory = new AtomicBoolean(false);
         synchronized (mDeviceInventoryLock) {
-            if (automaticBtDeviceType()) {
-                if (deviceState.updateAudioDeviceCategory()) {
-                    updatedCategory.set(true);
-                }
+            if (deviceState.updateAudioDeviceCategory()) {
+                updatedCategory.set(true);
             }
+
             deviceState = mDeviceInventory.merge(deviceState.getDeviceId(),
                     deviceState, (oldState, newState) -> {
                         if (oldState.getAudioDeviceCategory()
@@ -305,12 +303,8 @@
      */
     @GuardedBy({"mDevicesLock", "mDeviceInventoryLock"})
     void onSynchronizeAdiDeviceInInventory_l(AdiDeviceState updatedDevice) {
-        boolean found = false;
-        found |= synchronizeBleDeviceInInventory(updatedDevice);
-        if (automaticBtDeviceType()) {
-            found |= synchronizeDeviceProfilesInInventory(updatedDevice);
-        }
-        if (found) {
+        if (synchronizeBleDeviceInInventory(updatedDevice)
+                || synchronizeDeviceProfilesInInventory(updatedDevice)) {
             mDeviceBroker.postPersistAudioDeviceSettings();
         }
     }
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 99ecd8e..86871ea 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -35,20 +35,13 @@
 import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 import static android.content.Intent.EXTRA_ARCHIVAL;
 import static android.content.Intent.EXTRA_REPLACING;
-import static android.media.AudioDeviceInfo.TYPE_BLE_HEADSET;
-import static android.media.AudioDeviceInfo.TYPE_BLE_SPEAKER;
 import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_A2DP;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES;
-import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
-import static android.media.AudioManager.DEVICE_OUT_BLE_HEADSET;
-import static android.media.AudioManager.DEVICE_OUT_BLE_SPEAKER;
-import static android.media.AudioManager.DEVICE_OUT_BLUETOOTH_A2DP;
 import static android.media.AudioManager.RINGER_MODE_NORMAL;
 import static android.media.AudioManager.RINGER_MODE_SILENT;
 import static android.media.AudioManager.RINGER_MODE_VIBRATE;
 import static android.media.AudioManager.STREAM_SYSTEM;
 import static android.media.audio.Flags.autoPublicVolumeApiHardening;
-import static android.media.audio.Flags.automaticBtDeviceType;
 import static android.media.audio.Flags.cacheGetStreamMinMaxVolume;
 import static android.media.audio.Flags.cacheGetStreamVolume;
 import static android.media.audio.Flags.concurrentAudioRecordBypassPermission;
@@ -64,7 +57,6 @@
 import static android.provider.Settings.Secure.VOLUME_HUSH_VIBRATE;
 
 import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
-import static com.android.media.audio.Flags.absVolumeIndexFix;
 import static com.android.media.audio.Flags.alarmMinVolumeZero;
 import static com.android.media.audio.Flags.asDeviceConnectionFailure;
 import static com.android.media.audio.Flags.audioserverPermissions;
@@ -74,8 +66,6 @@
 import static com.android.media.audio.Flags.replaceStreamBtSco;
 import static com.android.media.audio.Flags.ringMyCar;
 import static com.android.media.audio.Flags.ringerModeAffectsAlarm;
-import static com.android.media.audio.Flags.setStreamVolumeOrder;
-import static com.android.media.audio.Flags.vgsVssSyncMuteOrder;
 import static com.android.media.flags.Flags.enableAudioInputDeviceRoutingAndVolumeControl;
 import static com.android.server.audio.SoundDoseHelper.ACTION_CHECK_MUSIC_ACTIVE;
 import static com.android.server.utils.EventLogger.Event.ALOGE;
@@ -4126,10 +4116,8 @@
 
             int newIndex = getVssForStreamOrDefault(streamType).getIndex(device);
 
-            int streamToDriveAbsVol = absVolumeIndexFix() ? getBluetoothContextualVolumeStream() :
-                    AudioSystem.STREAM_MUSIC;
             // Check if volume update should be send to AVRCP
-            if (streamTypeAlias == streamToDriveAbsVol
+            if (streamTypeAlias == getBluetoothContextualVolumeStream()
                     && AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(device)
                     && (flags & AudioManager.FLAG_BLUETOOTH_ABS_VOLUME) == 0) {
                 if (DEBUG_VOL) {
@@ -4974,8 +4962,7 @@
                 + asDeviceConnectionFailure());
         pw.println("\tandroid.media.audio.autoPublicVolumeApiHardening:"
                 + autoPublicVolumeApiHardening());
-        pw.println("\tandroid.media.audio.automaticBtDeviceType:"
-                + automaticBtDeviceType());
+        pw.println("\tandroid.media.audio.automaticBtDeviceType - EOL");
         pw.println("\tandroid.media.audio.featureSpatialAudioHeadtrackingLowLatency:"
                 + featureSpatialAudioHeadtrackingLowLatency());
         pw.println("\tandroid.media.audio.focusFreezeTestApi:"
@@ -4984,16 +4971,13 @@
                 + audioserverPermissions());
         pw.println("\tcom.android.media.audio.disablePrescaleAbsoluteVolume:"
                 + disablePrescaleAbsoluteVolume());
-        pw.println("\tcom.android.media.audio.setStreamVolumeOrder:"
-                + setStreamVolumeOrder());
+        pw.println("\tcom.android.media.audio.setStreamVolumeOrder - EOL");
         pw.println("\tandroid.media.audio.roForegroundAudioControl:"
                 + roForegroundAudioControl());
         pw.println("\tandroid.media.audio.scoManagedByAudio:"
                 + scoManagedByAudio());
-        pw.println("\tcom.android.media.audio.vgsVssSyncMuteOrder:"
-                + vgsVssSyncMuteOrder());
-        pw.println("\tcom.android.media.audio.absVolumeIndexFix:"
-                + absVolumeIndexFix());
+        pw.println("\tcom.android.media.audio.absVolumeIndexFix - EOL");
+        pw.println("\tcom.android.media.audio.vgsVssSyncMuteOrder - EOL");
         pw.println("\tcom.android.media.audio.replaceStreamBtSco:"
                 + replaceStreamBtSco());
         pw.println("\tcom.android.media.audio.equalScoLeaVcIndexRange:"
@@ -5178,33 +5162,29 @@
 
         index = rescaleIndex(index * 10, streamType, streamTypeAlias);
 
-        if (setStreamVolumeOrder()) {
-            flags &= ~AudioManager.FLAG_FIXED_VOLUME;
-            if (streamTypeAlias == AudioSystem.STREAM_MUSIC && isFixedVolumeDevice(device)) {
-                flags |= AudioManager.FLAG_FIXED_VOLUME;
+        flags &= ~AudioManager.FLAG_FIXED_VOLUME;
+        if (streamTypeAlias == AudioSystem.STREAM_MUSIC && isFixedVolumeDevice(device)) {
+            flags |= AudioManager.FLAG_FIXED_VOLUME;
 
-                // volume is either 0 or max allowed for fixed volume devices
-                if (index != 0) {
-                    index = mSoundDoseHelper.getSafeMediaVolumeIndex(device);
-                    if (index < 0) {
-                        index = streamState.getMaxIndex();
-                    }
+            // volume is either 0 or max allowed for fixed volume devices
+            if (index != 0) {
+                index = mSoundDoseHelper.getSafeMediaVolumeIndex(device);
+                if (index < 0) {
+                    index = streamState.getMaxIndex();
                 }
             }
-
-            if (!mSoundDoseHelper.willDisplayWarningAfterCheckVolume(streamType, index, device,
-                    flags)) {
-                onSetStreamVolume(streamType, index, flags, device, caller, hasModifyAudioSettings,
-                        // ada is non-null when called from setDeviceVolume,
-                        // which shouldn't update the mute state
-                        canChangeMuteAndUpdateController /*canChangeMute*/);
-                index = getVssForStreamOrDefault(streamType).getIndex(device);
-            }
         }
 
-        int streamToDriveAbsVol = absVolumeIndexFix() ? getBluetoothContextualVolumeStream() :
-                AudioSystem.STREAM_MUSIC;
-        if (streamTypeAlias == streamToDriveAbsVol
+        if (!mSoundDoseHelper.willDisplayWarningAfterCheckVolume(streamType, index, device,
+                flags)) {
+            onSetStreamVolume(streamType, index, flags, device, caller, hasModifyAudioSettings,
+                    // ada is non-null when called from setDeviceVolume,
+                    // which shouldn't update the mute state
+                    canChangeMuteAndUpdateController /*canChangeMute*/);
+            index = getVssForStreamOrDefault(streamType).getIndex(device);
+        }
+
+        if (streamTypeAlias == getBluetoothContextualVolumeStream()
                 && AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(device)
                 && (flags & AudioManager.FLAG_BLUETOOTH_ABS_VOLUME) == 0) {
             if (DEBUG_VOL) {
@@ -5237,30 +5217,6 @@
             mDeviceBroker.postSetHearingAidVolumeIndex(index, streamType);
         }
 
-        if (!setStreamVolumeOrder()) {
-            flags &= ~AudioManager.FLAG_FIXED_VOLUME;
-            if (streamTypeAlias == AudioSystem.STREAM_MUSIC && isFixedVolumeDevice(device)) {
-                flags |= AudioManager.FLAG_FIXED_VOLUME;
-
-                // volume is either 0 or max allowed for fixed volume devices
-                if (index != 0) {
-                    index = mSoundDoseHelper.getSafeMediaVolumeIndex(device);
-                    if (index < 0) {
-                        index = streamState.getMaxIndex();
-                    }
-                }
-            }
-
-            if (!mSoundDoseHelper.willDisplayWarningAfterCheckVolume(streamType, index, device,
-                    flags)) {
-                onSetStreamVolume(streamType, index, flags, device, caller, hasModifyAudioSettings,
-                        // ada is non-null when called from setDeviceVolume,
-                        // which shouldn't update the mute state
-                        canChangeMuteAndUpdateController /*canChangeMute*/);
-                index = getVssForStreamOrDefault(streamType).getIndex(device);
-            }
-        }
-
         synchronized (mHdmiClientLock) {
             if (streamTypeAlias == AudioSystem.STREAM_MUSIC
                     && (oldIndex != index)) {
@@ -9052,22 +9008,13 @@
                                         synced = true;
                                         continue;
                                     }
-                                    if (vgsVssSyncMuteOrder()) {
-                                        if ((isMuted() != streamMuted) && isVssMuteBijective(
-                                                stream)) {
-                                            vss.mute(isMuted(), "VGS.applyAllVolumes#1");
-                                        }
+                                    if ((isMuted() != streamMuted) && isVssMuteBijective(stream)) {
+                                        vss.mute(isMuted(), "VGS.applyAllVolumes#1");
                                     }
                                     if (indexForStream != index) {
                                         vss.setIndex(index * 10, device,
                                                 caller, true /*hasModifyAudioSettings*/);
                                     }
-                                    if (!vgsVssSyncMuteOrder()) {
-                                        if ((isMuted() != streamMuted) && isVssMuteBijective(
-                                                stream)) {
-                                            vss.mute(isMuted(), "VGS.applyAllVolumes#1");
-                                        }
-                                    }
                                 }
                             }
                         }
@@ -9594,33 +9541,6 @@
             }
         }
 
-        private int getAbsoluteVolumeIndex(int index) {
-            if (absVolumeIndexFix()) {
-                // The attenuation is applied in the APM. No need to manipulate the index here
-                return index;
-            } else {
-                /* Special handling for Bluetooth Absolute Volume scenario
-                 * If we send full audio gain, some accessories are too loud even at its lowest
-                 * volume. We are not able to enumerate all such accessories, so here is the
-                 * workaround from phone side.
-                 * Pre-scale volume at lowest volume steps 1 2 and 3.
-                 * For volume step 0, set audio gain to 0 as some accessories won't mute on their
-                 * end.
-                 */
-                if (index == 0) {
-                    // 0% for volume 0
-                    index = 0;
-                } else if (!disablePrescaleAbsoluteVolume() && index > 0 && index <= 3) {
-                    // Pre-scale for volume steps 1 2 and 3
-                    index = (int) (mIndexMax * mPrescaleAbsoluteVolume[index - 1]) / 10;
-                } else {
-                    // otherwise, full gain
-                    index = (mIndexMax + 5) / 10;
-                }
-                return index;
-            }
-        }
-
         /**
          * Sends the new volume index on the given device to native.
          *
@@ -9660,19 +9580,15 @@
                     || isA2dpAbsoluteVolumeDevice(device)
                     || AudioSystem.isLeAudioDeviceType(device)) {
                 // do not change the volume logic for dynamic abs behavior devices like HDMI
-                if (absVolumeIndexFix() && isAbsoluteVolumeDevice(device)) {
-                    index = getAbsoluteVolumeIndex((mIndexMax + 5) / 10);
+                if (isAbsoluteVolumeDevice(device)) {
+                    index = (mIndexMax + 5) / 10;
                 } else {
-                    index = getAbsoluteVolumeIndex((getIndex(device) + 5) / 10);
+                    index = (getIndex(device) + 5) / 10;
                 }
             } else if (isFullVolumeDevice(device)) {
                 index = (mIndexMax + 5)/10;
             } else if (device == AudioSystem.DEVICE_OUT_HEARING_AID) {
-                if (absVolumeIndexFix()) {
-                    index = getAbsoluteVolumeIndex((getIndex(device) + 5) / 10);
-                } else {
-                    index = (mIndexMax + 5) / 10;
-                }
+                index = (getIndex(device) + 5) / 10;
             } else {
                 index = (getIndex(device) + 5)/10;
             }
@@ -9696,20 +9612,16 @@
                             isAbsoluteVolume = true;
                             // do not change the volume logic for dynamic abs behavior devices
                             // like HDMI
-                            if (absVolumeIndexFix() && isAbsoluteVolumeDevice(device)) {
-                                index = getAbsoluteVolumeIndex((mIndexMax + 5) / 10);
+                            if (isAbsoluteVolumeDevice(device)) {
+                                index = (mIndexMax + 5) / 10;
                             } else {
-                                index = getAbsoluteVolumeIndex((getIndex(device) + 5) / 10);
+                                index = (getIndex(device) + 5) / 10;
                             }
                         } else if (isFullVolumeDevice(device)) {
                             index = (mIndexMax + 5)/10;
                         } else if (device == AudioSystem.DEVICE_OUT_HEARING_AID) {
-                            if (absVolumeIndexFix()) {
-                                isAbsoluteVolume = true;
-                                index = getAbsoluteVolumeIndex((getIndex(device) + 5) / 10);
-                            } else {
-                                index = (mIndexMax + 5) / 10;
-                            }
+                            isAbsoluteVolume = true;
+                            index = (getIndex(device) + 5) / 10;
                         } else {
                             index = (mIndexMap.valueAt(i) + 5)/10;
                         }
@@ -10779,39 +10691,37 @@
         Log.i(TAG, "setAvrcpAbsoluteVolumeSupported support " + support);
         synchronized (mCachedAbsVolDrivingStreamsLock) {
             mAvrcpAbsVolSupported = support;
-            if (absVolumeIndexFix()) {
-                int a2dpDev = AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
-                mCachedAbsVolDrivingStreams.compute(a2dpDev, (dev, stream) -> {
-                    if (!mAvrcpAbsVolSupported) {
-                        final int result = mAudioSystem.setDeviceAbsoluteVolumeEnabled(
-                                a2dpDev, /*address=*/"", /*enabled*/false,
-                                AudioSystem.STREAM_DEFAULT);
-                        if (result != AudioSystem.AUDIO_STATUS_OK) {
-                            sVolumeLogger.enqueueAndSlog(
-                                    new VolumeEvent(VolumeEvent.VOL_ABS_DEVICE_ENABLED_ERROR,
-                                            result, a2dpDev, /*enabled=*/false,
-                                            AudioSystem.STREAM_DEFAULT).eventToString(), ALOGE,
-                                    TAG);
-                        }
-                        return null;
+            int a2dpDev = AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
+            mCachedAbsVolDrivingStreams.compute(a2dpDev, (dev, stream) -> {
+                if (!mAvrcpAbsVolSupported) {
+                    final int result = mAudioSystem.setDeviceAbsoluteVolumeEnabled(
+                            a2dpDev, /*address=*/"", /*enabled*/false,
+                            AudioSystem.STREAM_DEFAULT);
+                    if (result != AudioSystem.AUDIO_STATUS_OK) {
+                        sVolumeLogger.enqueueAndSlog(
+                                new VolumeEvent(VolumeEvent.VOL_ABS_DEVICE_ENABLED_ERROR,
+                                        result, a2dpDev, /*enabled=*/false,
+                                        AudioSystem.STREAM_DEFAULT).eventToString(), ALOGE,
+                                TAG);
                     }
-                    // For A2DP and AVRCP we need to set the driving stream based on the
-                    // BT contextual stream. Hence, we need to make sure in adjustStreamVolume
-                    // and setStreamVolume that the driving abs volume stream is consistent.
-                    int streamToDriveAbs = getBluetoothContextualVolumeStream();
-                    if (stream == null || stream != streamToDriveAbs) {
-                        final int result = mAudioSystem.setDeviceAbsoluteVolumeEnabled(a2dpDev,
-                                /*address=*/"", /*enabled*/true, streamToDriveAbs);
-                        if (result != AudioSystem.AUDIO_STATUS_OK) {
-                            sVolumeLogger.enqueueAndSlog(
-                                    new VolumeEvent(VolumeEvent.VOL_ABS_DEVICE_ENABLED_ERROR,
-                                            result, a2dpDev, /*enabled=*/true,
-                                            streamToDriveAbs).eventToString(), ALOGE, TAG);
-                        }
+                    return null;
+                }
+                // For A2DP and AVRCP we need to set the driving stream based on the
+                // BT contextual stream. Hence, we need to make sure in adjustStreamVolume
+                // and setStreamVolume that the driving abs volume stream is consistent.
+                int streamToDriveAbs = getBluetoothContextualVolumeStream();
+                if (stream == null || stream != streamToDriveAbs) {
+                    final int result = mAudioSystem.setDeviceAbsoluteVolumeEnabled(a2dpDev,
+                            /*address=*/"", /*enabled*/true, streamToDriveAbs);
+                    if (result != AudioSystem.AUDIO_STATUS_OK) {
+                        sVolumeLogger.enqueueAndSlog(
+                                new VolumeEvent(VolumeEvent.VOL_ABS_DEVICE_ENABLED_ERROR,
+                                        result, a2dpDev, /*enabled=*/true,
+                                        streamToDriveAbs).eventToString(), ALOGE, TAG);
                     }
-                    return streamToDriveAbs;
-                });
-            }
+                }
+                return streamToDriveAbs;
+            });
         }
         sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE,
                     AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0,
@@ -12428,70 +12338,9 @@
 
     @Override
     @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED)
-    public void setBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle,
-            @AudioDeviceCategory int btAudioDeviceCategory) {
-        super.setBluetoothAudioDeviceCategory_legacy_enforcePermission();
-        if (automaticBtDeviceType()) {
-            // do nothing
-            return;
-        }
-
-        final String addr = Objects.requireNonNull(address);
-
-        AdiDeviceState deviceState = mDeviceBroker.findBtDeviceStateForAddress(addr,
-                (isBle ? AudioSystem.DEVICE_OUT_BLE_HEADSET
-                        : AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP));
-
-        int internalType = !isBle ? DEVICE_OUT_BLUETOOTH_A2DP
-                : ((btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES)
-                        ? DEVICE_OUT_BLE_HEADSET : DEVICE_OUT_BLE_SPEAKER);
-        int deviceType = !isBle ? TYPE_BLUETOOTH_A2DP
-                : ((btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES) ? TYPE_BLE_HEADSET
-                        : TYPE_BLE_SPEAKER);
-
-        if (deviceState == null) {
-            deviceState = new AdiDeviceState(deviceType, internalType, addr);
-        }
-
-        deviceState.setAudioDeviceCategory(btAudioDeviceCategory);
-
-        mDeviceBroker.addOrUpdateBtAudioDeviceCategoryInInventory(
-                deviceState, true /*syncInventory*/);
-        mDeviceBroker.postPersistAudioDeviceSettings();
-
-        mSpatializerHelper.refreshDevice(deviceState.getAudioDeviceAttributes(),
-                false /* initState */);
-        mSoundDoseHelper.setAudioDeviceCategory(addr, internalType,
-                btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES);
-    }
-
-    @Override
-    @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED)
-    @AudioDeviceCategory
-    public int getBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle) {
-        super.getBluetoothAudioDeviceCategory_legacy_enforcePermission();
-        if (automaticBtDeviceType()) {
-            return AUDIO_DEVICE_CATEGORY_UNKNOWN;
-        }
-
-        final AdiDeviceState deviceState = mDeviceBroker.findBtDeviceStateForAddress(
-                Objects.requireNonNull(address), (isBle ? AudioSystem.DEVICE_OUT_BLE_HEADSET
-                        : AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP));
-        if (deviceState == null) {
-            return AUDIO_DEVICE_CATEGORY_UNKNOWN;
-        }
-
-        return deviceState.getAudioDeviceCategory();
-    }
-
-    @Override
-    @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED)
     public boolean setBluetoothAudioDeviceCategory(@NonNull String address,
             @AudioDeviceCategory int btAudioDeviceCategory) {
         super.setBluetoothAudioDeviceCategory_enforcePermission();
-        if (!automaticBtDeviceType()) {
-            return false;
-        }
 
         final String addr = Objects.requireNonNull(address);
         if (isBluetoothAudioDeviceCategoryFixed(addr)) {
@@ -12510,9 +12359,6 @@
     @AudioDeviceCategory
     public int getBluetoothAudioDeviceCategory(@NonNull String address) {
         super.getBluetoothAudioDeviceCategory_enforcePermission();
-        if (!automaticBtDeviceType()) {
-            return AUDIO_DEVICE_CATEGORY_UNKNOWN;
-        }
 
         return mDeviceBroker.getAndUpdateBtAdiDeviceStateCategoryForAddress(address);
     }
@@ -12521,9 +12367,6 @@
     @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED)
     public boolean isBluetoothAudioDeviceCategoryFixed(@NonNull String address) {
         super.isBluetoothAudioDeviceCategoryFixed_enforcePermission();
-        if (!automaticBtDeviceType()) {
-            return false;
-        }
 
         return mDeviceBroker.isBluetoothAudioDeviceCategoryFixed(address);
     }
@@ -12755,7 +12598,7 @@
     //==========================================================================================
     static final int LOG_NB_EVENTS_LIFECYCLE = 20;
     static final int LOG_NB_EVENTS_PHONE_STATE = 20;
-    static final int LOG_NB_EVENTS_DEVICE_CONNECTION = 50;
+    static final int LOG_NB_EVENTS_DEVICE_CONNECTION = 200;
     static final int LOG_NB_EVENTS_FORCE_USE = 20;
     static final int LOG_NB_EVENTS_VOLUME = 100;
     static final int LOG_NB_EVENTS_DYN_POLICY = 10;
@@ -15239,11 +15082,13 @@
         final String key = "additional_output_device_delay";
         final String reply = AudioSystem.getParameters(
                 key + "=" + device.getInternalType() + "," + device.getAddress());
-        long delayMillis;
-        try {
-            delayMillis = Long.parseLong(reply.substring(key.length() + 1));
-        } catch (NullPointerException e) {
-            delayMillis = 0;
+        long delayMillis = 0;
+        if (reply.contains(key)) {
+            try {
+                delayMillis = Long.parseLong(reply.substring(key.length() + 1));
+            } catch (NullPointerException e) {
+                delayMillis = 0;
+            }
         }
         return delayMillis;
     }
@@ -15269,11 +15114,13 @@
         final String key = "max_additional_output_device_delay";
         final String reply = AudioSystem.getParameters(
                 key + "=" + device.getInternalType() + "," + device.getAddress());
-        long delayMillis;
-        try {
-            delayMillis = Long.parseLong(reply.substring(key.length() + 1));
-        } catch (NullPointerException e) {
-            delayMillis = 0;
+        long delayMillis = 0;
+        if (reply.contains(key)) {
+            try {
+                delayMillis = Long.parseLong(reply.substring(key.length() + 1));
+            } catch (NullPointerException e) {
+                delayMillis = 0;
+            }
         }
         return delayMillis;
     }
diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java
index b421264..0479c70 100644
--- a/services/core/java/com/android/server/audio/BtHelper.java
+++ b/services/core/java/com/android/server/audio/BtHelper.java
@@ -25,7 +25,6 @@
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_WATCH;
-import static android.media.audio.Flags.automaticBtDeviceType;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -1309,10 +1308,6 @@
 
     @AudioDeviceCategory
     /*package*/ static int getBtDeviceCategory(String address) {
-        if (!automaticBtDeviceType()) {
-            return AUDIO_DEVICE_CATEGORY_UNKNOWN;
-        }
-
         BluetoothDevice device = BtHelper.getBluetoothDevice(address);
         if (device == null) {
             return AUDIO_DEVICE_CATEGORY_UNKNOWN;
diff --git a/services/core/java/com/android/server/audio/LoudnessCodecHelper.java b/services/core/java/com/android/server/audio/LoudnessCodecHelper.java
index 9fa5da4..a706a67 100644
--- a/services/core/java/com/android/server/audio/LoudnessCodecHelper.java
+++ b/services/core/java/com/android/server/audio/LoudnessCodecHelper.java
@@ -26,7 +26,6 @@
 import static android.media.MediaFormat.KEY_AAC_DRC_EFFECT_TYPE;
 import static android.media.MediaFormat.KEY_AAC_DRC_HEAVY_COMPRESSION;
 import static android.media.MediaFormat.KEY_AAC_DRC_TARGET_REFERENCE_LEVEL;
-import static android.media.audio.Flags.automaticBtDeviceType;
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
@@ -686,12 +685,7 @@
     private int getDeviceSplRange(int internalDeviceType, String address) {
         @AudioDeviceCategory int deviceCategory;
         try (SafeCloseable ignored = ClearCallingIdentityContext.create()) {
-            if (automaticBtDeviceType()) {
-                deviceCategory = mAudioService.getBluetoothAudioDeviceCategory(address);
-            } else {
-                deviceCategory = mAudioService.getBluetoothAudioDeviceCategory_legacy(
-                        address, AudioSystem.isBluetoothLeDevice(internalDeviceType));
-            }
+            deviceCategory = mAudioService.getBluetoothAudioDeviceCategory(address);
         }
         if (internalDeviceType == AudioSystem.DEVICE_OUT_SPEAKER) {
             final String splRange = SystemProperties.get(
diff --git a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
index 57b5feb..64b933a 100644
--- a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
+++ b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
@@ -16,7 +16,6 @@
 
 package com.android.server.audio;
 
-import static android.media.AudioPlaybackConfiguration.EXTRA_PLAYER_EVENT_MUTE;
 import static android.media.AudioPlaybackConfiguration.MUTED_BY_OP_PLAY_AUDIO;
 import static android.media.AudioPlaybackConfiguration.MUTED_BY_CLIENT_VOLUME;
 import static android.media.AudioPlaybackConfiguration.MUTED_BY_MASTER;
@@ -28,8 +27,6 @@
 import static android.media.AudioPlaybackConfiguration.PLAYER_PIID_INVALID;
 import static android.media.AudioPlaybackConfiguration.PLAYER_UPDATE_MUTED;
 
-import static com.android.media.audio.Flags.portToPiidSimplification;
-
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.Context;
@@ -158,8 +155,6 @@
 
     @GuardedBy("mPlayerLock")
     private final SparseIntArray mPiidToPortId = new SparseIntArray();
-    @GuardedBy("mPlayerLock")
-    private final SparseIntArray mPortIdToPiid = new SparseIntArray();
 
     private final Context mContext;
     private int mSavedAlarmVolume = -1;
@@ -387,11 +382,7 @@
             sEventLogger.enqueue(new PlayerEvent(piid, event, eventValues));
 
             if (event == AudioPlaybackConfiguration.PLAYER_UPDATE_PORT_ID) {
-                if (portToPiidSimplification()) {
-                    mPiidToPortId.put(piid, eventValues[0]);
-                } else {
-                    mPortIdToPiid.put(eventValues[0], piid);
-                }
+                mPiidToPortId.put(piid, eventValues[0]);
                 return;
             } else if (event == AudioPlaybackConfiguration.PLAYER_STATE_STARTED) {
                 for (Integer uidInteger: mBannedUids) {
@@ -446,20 +437,12 @@
 
         synchronized (mPlayerLock) {
             int piid;
-            if (portToPiidSimplification()) {
-                int idxOfPiid = mPiidToPortId.indexOfValue(portId);
-                if (idxOfPiid < 0) {
-                    Log.w(TAG, "No piid assigned for invalid/internal port id " + portId);
-                    return;
-                }
-                piid = mPiidToPortId.keyAt(idxOfPiid);
-            } else {
-                piid = mPortIdToPiid.get(portId, PLAYER_PIID_INVALID);
-                if (piid == PLAYER_PIID_INVALID) {
-                    Log.w(TAG, "No piid assigned for invalid/internal port id " + portId);
-                    return;
-                }
+            int idxOfPiid = mPiidToPortId.indexOfValue(portId);
+            if (idxOfPiid < 0) {
+                Log.w(TAG, "No piid assigned for invalid/internal port id " + portId);
+                return;
             }
+            piid = mPiidToPortId.keyAt(idxOfPiid);
             final AudioPlaybackConfiguration apc = mPlayers.get(piid);
             if (apc == null) {
                 Log.w(TAG, "No AudioPlaybackConfiguration assigned for piid " + piid);
@@ -496,20 +479,13 @@
 
         synchronized (mPlayerLock) {
             int piid;
-            if (portToPiidSimplification()) {
-                int idxOfPiid = mPiidToPortId.indexOfValue(portId);
-                if (idxOfPiid < 0) {
-                    Log.w(TAG, "No piid assigned for invalid/internal port id " + portId);
-                    return;
-                }
-                piid = mPiidToPortId.keyAt(idxOfPiid);
-            } else {
-                piid = mPortIdToPiid.get(portId, PLAYER_PIID_INVALID);
-                if (piid == PLAYER_PIID_INVALID) {
-                    Log.w(TAG, "No piid assigned for invalid/internal port id " + portId);
-                    return;
-                }
+            int idxOfPiid = mPiidToPortId.indexOfValue(portId);
+            if (idxOfPiid < 0) {
+                Log.w(TAG, "No piid assigned for invalid/internal port id " + portId);
+                return;
             }
+            piid = mPiidToPortId.keyAt(idxOfPiid);
+
             final AudioPlaybackConfiguration apc = mPlayers.get(piid);
             if (apc == null) {
                 Log.w(TAG, "No AudioPlaybackConfiguration assigned for piid " + piid);
@@ -559,15 +535,7 @@
                 change = apc.handleStateEvent(AudioPlaybackConfiguration.PLAYER_STATE_RELEASED,
                         AudioPlaybackConfiguration.PLAYER_DEVICEIDS_INVALID);
 
-                if (portToPiidSimplification()) {
-                    mPiidToPortId.delete(piid);
-                } else {
-                    // remove all port ids mapped to the released player
-                    int portIdx;
-                    while ((portIdx = mPortIdToPiid.indexOfValue(piid)) >= 0) {
-                        mPortIdToPiid.removeAt(portIdx);
-                    }
-                }
+                mPiidToPortId.delete(piid);
 
                 if (change && mDoNotLogPiidList.contains(piid)) {
                     // do not dispatch a change for a "do not log" player
@@ -585,17 +553,10 @@
                 new EventLogger.StringEvent(
                         "clear port id to piid map"));
         synchronized (mPlayerLock) {
-            if (portToPiidSimplification()) {
-                if (DEBUG) {
-                    Log.v(TAG, "clear piid to portId map:\n" + mPiidToPortId);
-                }
-                mPiidToPortId.clear();
-            } else {
-                if (DEBUG) {
-                    Log.v(TAG, "clear port id to piid map:\n" + mPortIdToPiid);
-                }
-                mPortIdToPiid.clear();
+            if (DEBUG) {
+                Log.v(TAG, "clear piid to portId map:\n" + mPiidToPortId);
             }
+            mPiidToPortId.clear();
         }
     }
 
@@ -754,21 +715,12 @@
                 pw.print(" " + piid);
             }
             pw.println("\n");
-            if (portToPiidSimplification()) {
-                // portId to piid mappings:
-                pw.println("\n  current piid to portId map:");
-                for (int i = 0; i < mPiidToPortId.size(); ++i) {
-                    pw.println(
-                            "  piid: " + mPiidToPortId.keyAt(i) + " portId: "
-                                    + mPiidToPortId.valueAt(i));
-                }
-            } else {
-                // portId to piid mappings:
-                pw.println("\n  current portId to piid map:");
-                for (int i = 0; i < mPortIdToPiid.size(); ++i) {
-                    pw.println("  portId: " + mPortIdToPiid.keyAt(i) + " piid: "
-                            + mPortIdToPiid.valueAt(i));
-                }
+            // portId to piid mappings:
+            pw.println("\n  current piid to portId map:");
+            for (int i = 0; i < mPiidToPortId.size(); ++i) {
+                pw.println(
+                        "  piid: " + mPiidToPortId.keyAt(i) + " portId: "
+                                + mPiidToPortId.valueAt(i));
             }
             pw.println("\n");
             // log
diff --git a/services/core/java/com/android/server/backup/InputBackupHelper.java b/services/core/java/com/android/server/backup/InputBackupHelper.java
new file mode 100644
index 0000000..af9606c
--- /dev/null
+++ b/services/core/java/com/android/server/backup/InputBackupHelper.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.backup;
+
+import static com.android.server.input.InputManagerInternal.BACKUP_CATEGORY_INPUT_GESTURES;
+
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
+import android.app.backup.BlobBackupHelper;
+import android.util.Slog;
+
+import com.android.server.LocalServices;
+import com.android.server.input.InputManagerInternal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class InputBackupHelper extends BlobBackupHelper {
+    private static final String TAG = "InputBackupHelper";   // must be < 23 chars
+
+    // Current version of the blob schema
+    private static final int BLOB_VERSION = 1;
+
+    // Key under which the payload blob is stored
+    private static final String KEY_INPUT_GESTURES = "input_gestures";
+
+    private final @UserIdInt int mUserId;
+
+    private final @NonNull InputManagerInternal mInputManagerInternal;
+
+    public InputBackupHelper(int userId) {
+        super(BLOB_VERSION, KEY_INPUT_GESTURES);
+        mUserId = userId;
+        mInputManagerInternal = LocalServices.getService(InputManagerInternal.class);
+    }
+
+    @Override
+    protected byte[] getBackupPayload(String key) {
+        Map<Integer, byte[]> payloads;
+        try {
+            payloads = mInputManagerInternal.getBackupPayload(mUserId);
+        } catch (Exception exception) {
+            Slog.e(TAG, "Failed to get backup payload for input gestures", exception);
+            return null;
+        }
+
+        if (KEY_INPUT_GESTURES.equals(key)) {
+            return payloads.getOrDefault(BACKUP_CATEGORY_INPUT_GESTURES, null);
+        }
+
+        return null;
+    }
+
+    @Override
+    protected void applyRestoredPayload(String key, byte[] payload) {
+        Map<Integer, byte[]> payloads = new HashMap<>();
+        if (KEY_INPUT_GESTURES.equals(key)) {
+            payloads.put(BACKUP_CATEGORY_INPUT_GESTURES, payload);
+        }
+
+        try {
+            mInputManagerInternal.applyBackupPayload(payloads, mUserId);
+        } catch (Exception exception) {
+            Slog.e(TAG, "Failed to apply input backup payload", exception);
+        }
+    }
+
+}
diff --git a/services/core/java/com/android/server/backup/SystemBackupAgent.java b/services/core/java/com/android/server/backup/SystemBackupAgent.java
index 677e0c0..b11267e 100644
--- a/services/core/java/com/android/server/backup/SystemBackupAgent.java
+++ b/services/core/java/com/android/server/backup/SystemBackupAgent.java
@@ -68,6 +68,7 @@
     private static final String COMPANION_HELPER = "companion";
     private static final String SYSTEM_GENDER_HELPER = "system_gender";
     private static final String DISPLAY_HELPER = "display";
+    private static final String INPUT_HELPER = "input";
 
     // These paths must match what the WallpaperManagerService uses.  The leaf *_FILENAME
     // are also used in the full-backup file format, so must not change unless steps are
@@ -112,7 +113,7 @@
     private static final Set<String> sEligibleHelpersForNonSystemUser =
             SetUtils.union(sEligibleHelpersForProfileUser,
                     Sets.newArraySet(ACCOUNT_MANAGER_HELPER, USAGE_STATS_HELPER, PREFERRED_HELPER,
-                            SHORTCUT_MANAGER_HELPER));
+                            SHORTCUT_MANAGER_HELPER, INPUT_HELPER));
 
     private int mUserId = UserHandle.USER_SYSTEM;
     private boolean mIsProfileUser = false;
@@ -149,6 +150,9 @@
         addHelperIfEligibleForUser(SYSTEM_GENDER_HELPER,
                 new SystemGrammaticalGenderBackupHelper(mUserId));
         addHelperIfEligibleForUser(DISPLAY_HELPER, new DisplayBackupHelper(mUserId));
+        if (com.android.hardware.input.Flags.enableBackupAndRestoreForInputGestures()) {
+            addHelperIfEligibleForUser(INPUT_HELPER, new InputBackupHelper(mUserId));
+        }
     }
 
     @Override
diff --git a/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java b/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java
index 471b7b4..d412277 100644
--- a/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java
+++ b/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java
@@ -24,8 +24,10 @@
 import android.companion.virtual.VirtualDeviceParams;
 import android.companion.virtual.sensor.VirtualSensor;
 import android.content.Context;
+import android.hardware.display.IVirtualDisplayCallback;
 import android.os.LocaleList;
 import android.util.ArraySet;
+import android.window.DisplayWindowPolicyController;
 
 import java.util.Set;
 import java.util.function.Consumer;
@@ -104,6 +106,17 @@
     public abstract @NonNull ArraySet<Integer> getDeviceIdsForUid(int uid);
 
     /**
+     * Notifies that a virtual display was created.
+     *
+     * @param virtualDevice The virtual device that owns the virtual display.
+     * @param displayId     The display id of the created virtual display.
+     * @param callback      The callback of the virtual display.
+     * @param dwpc          The DisplayWindowPolicyController of the created virtual display.
+     */
+    public abstract void onVirtualDisplayCreated(IVirtualDevice virtualDevice, int displayId,
+            IVirtualDisplayCallback callback, DisplayWindowPolicyController dwpc);
+
+    /**
      * Notifies that a virtual display is removed.
      *
      * @param virtualDevice The virtual device where the virtual display located.
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index e83efc5..854b0dd 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -2041,6 +2041,7 @@
                                 packageName,
                                 displayUniqueId,
                                 virtualDevice,
+                                dwpc,
                                 surface,
                                 flags,
                                 virtualDisplayConfig);
@@ -2135,6 +2136,7 @@
             String packageName,
             String uniqueId,
             IVirtualDevice virtualDevice,
+            DisplayWindowPolicyController dwpc,
             Surface surface,
             int flags,
             VirtualDisplayConfig virtualDisplayConfig) {
@@ -2188,6 +2190,16 @@
 
         final LogicalDisplay display = mLogicalDisplayMapper.getDisplayLocked(device);
         if (display != null) {
+            // Notify the virtual device that the display has been created. This needs to be called
+            // in this locked section before the repository had the chance to notify any listeners
+            // to ensure that the device is aware of the new display before others know about it.
+            if (virtualDevice != null) {
+                final VirtualDeviceManagerInternal vdm =
+                        getLocalService(VirtualDeviceManagerInternal.class);
+                vdm.onVirtualDisplayCreated(
+                        virtualDevice, display.getDisplayIdLocked(), callback, dwpc);
+            }
+
             return display.getDisplayIdLocked();
         }
 
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index b49c01b..83ca563 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -781,6 +781,11 @@
                     if (isDisplayPrivate(physicalAddress)) {
                         mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE;
                     }
+
+                    if (isDisplayStealTopFocusDisabled(physicalAddress)) {
+                        mInfo.flags |= DisplayDeviceInfo.FLAG_OWN_FOCUS;
+                        mInfo.flags |= DisplayDeviceInfo.FLAG_STEAL_TOP_FOCUS_DISABLED;
+                    }
                 }
 
                 if (DisplayCutout.getMaskBuiltInDisplayCutout(res, mInfo.uniqueId)) {
@@ -1467,6 +1472,23 @@
             }
             return false;
         }
+
+        private boolean isDisplayStealTopFocusDisabled(DisplayAddress.Physical physicalAddress) {
+            if (physicalAddress == null) {
+                return false;
+            }
+            final Resources res = getOverlayContext().getResources();
+            int[] ports = res.getIntArray(R.array.config_localNotStealTopFocusDisplayPorts);
+            if (ports != null) {
+                int port = physicalAddress.getPort();
+                for (int p : ports) {
+                    if (p == port) {
+                        return true;
+                    }
+                }
+            }
+            return false;
+        }
     }
 
     private boolean hdrTypesEqual(int[] modeHdrTypes, int[] recordHdrTypes) {
diff --git a/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java b/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java
index a1e8f08..aab2760 100644
--- a/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java
+++ b/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java
@@ -122,11 +122,6 @@
             Flags.FLAG_ALWAYS_ROTATE_DISPLAY_DEVICE,
             Flags::alwaysRotateDisplayDevice);
 
-    private final FlagState mRefreshRateVotingTelemetry = new FlagState(
-            Flags.FLAG_REFRESH_RATE_VOTING_TELEMETRY,
-            Flags::refreshRateVotingTelemetry
-    );
-
     private final FlagState mPixelAnisotropyCorrectionEnabled = new FlagState(
             Flags.FLAG_ENABLE_PIXEL_ANISOTROPY_CORRECTION,
             Flags::enablePixelAnisotropyCorrection
@@ -403,10 +398,6 @@
         return mAlwaysRotateDisplayDevice.isEnabled();
     }
 
-    public boolean isRefreshRateVotingTelemetryEnabled() {
-        return mRefreshRateVotingTelemetry.isEnabled();
-    }
-
     public boolean isPixelAnisotropyCorrectionInLogicalDisplayEnabled() {
         return mPixelAnisotropyCorrectionEnabled.isEnabled();
     }
@@ -626,7 +617,6 @@
         pw.println(" " + mAutoBrightnessModesFlagState);
         pw.println(" " + mFastHdrTransitions);
         pw.println(" " + mAlwaysRotateDisplayDevice);
-        pw.println(" " + mRefreshRateVotingTelemetry);
         pw.println(" " + mPixelAnisotropyCorrectionEnabled);
         pw.println(" " + mSensorBasedBrightnessThrottling);
         pw.println(" " + mIdleScreenRefreshRateTimeout);
diff --git a/services/core/java/com/android/server/display/feature/display_flags.aconfig b/services/core/java/com/android/server/display/feature/display_flags.aconfig
index 7890db1..8211feb 100644
--- a/services/core/java/com/android/server/display/feature/display_flags.aconfig
+++ b/services/core/java/com/android/server/display/feature/display_flags.aconfig
@@ -191,14 +191,6 @@
 }
 
 flag {
-    name: "refresh_rate_voting_telemetry"
-    namespace: "display_manager"
-    description: "Feature flag for enabling telemetry for refresh rate voting in DisplayManager"
-    bug: "310029108"
-    is_fixed_read_only: true
-}
-
-flag {
     name: "enable_pixel_anisotropy_correction"
     namespace: "display_manager"
     description: "Feature flag for enabling display anisotropy correction through LogicalDisplay upscaling"
@@ -512,7 +504,7 @@
 
 flag {
     name: "display_category_built_in"
-    namespace: "display_manager"
+    namespace: "windowing_sdk"
     description: "Add a new category to get the built in displays."
     bug: "293651324"
     is_fixed_read_only: false
diff --git a/services/core/java/com/android/server/display/mode/DisplayModeDirector.java b/services/core/java/com/android/server/display/mode/DisplayModeDirector.java
index 1dd4a9b..c37733b 100644
--- a/services/core/java/com/android/server/display/mode/DisplayModeDirector.java
+++ b/services/core/java/com/android/server/display/mode/DisplayModeDirector.java
@@ -229,8 +229,7 @@
         mContext = context;
         mHandler = new DisplayModeDirectorHandler(handler.getLooper());
         mInjector = injector;
-        mVotesStatsReporter = injector.getVotesStatsReporter(
-                displayManagerFlags.isRefreshRateVotingTelemetryEnabled());
+        mVotesStatsReporter = injector.getVotesStatsReporter();
         mSupportedModesByDisplay = new SparseArray<>();
         mAppSupportedModesByDisplay = new SparseArray<>();
         mDefaultModeByDisplay = new SparseArray<>();
@@ -3141,7 +3140,7 @@
         SensorManagerInternal getSensorManagerInternal();
 
         @Nullable
-        VotesStatsReporter getVotesStatsReporter(boolean refreshRateVotingTelemetryEnabled);
+        VotesStatsReporter getVotesStatsReporter();
     }
 
     @VisibleForTesting
@@ -3281,10 +3280,9 @@
         }
 
         @Override
-        public VotesStatsReporter getVotesStatsReporter(boolean refreshRateVotingTelemetryEnabled) {
+        public VotesStatsReporter getVotesStatsReporter() {
             // if frame rate override supported, renderRates will be ignored in mode selection
-            return new VotesStatsReporter(supportsFrameRateOverride(),
-                    refreshRateVotingTelemetryEnabled);
+            return new VotesStatsReporter(supportsFrameRateOverride());
         }
 
         private DisplayManager getDisplayManager() {
diff --git a/services/core/java/com/android/server/display/mode/VotesStatsReporter.java b/services/core/java/com/android/server/display/mode/VotesStatsReporter.java
index 7562a52..7b579c0 100644
--- a/services/core/java/com/android/server/display/mode/VotesStatsReporter.java
+++ b/services/core/java/com/android/server/display/mode/VotesStatsReporter.java
@@ -25,6 +25,7 @@
 import android.annotation.Nullable;
 import android.os.Trace;
 import android.util.SparseArray;
+import android.util.SparseIntArray;
 import android.view.Display;
 
 import com.android.internal.util.FrameworkStatsLog;
@@ -36,13 +37,11 @@
     private static final String TAG = "VotesStatsReporter";
     private static final int REFRESH_RATE_NOT_LIMITED = 1000;
     private final boolean mIgnoredRenderRate;
-    private final boolean mFrameworkStatsLogReportingEnabled;
 
-    private int mLastMinPriorityReported = Vote.MAX_PRIORITY + 1;
+    private final SparseIntArray mLastMinPriorityByDisplay = new SparseIntArray();
 
-    public VotesStatsReporter(boolean ignoreRenderRate, boolean refreshRateVotingTelemetryEnabled) {
+    VotesStatsReporter(boolean ignoreRenderRate) {
         mIgnoredRenderRate = ignoreRenderRate;
-        mFrameworkStatsLogReportingEnabled = refreshRateVotingTelemetryEnabled;
     }
 
     void reportVoteChanged(int displayId, int priority,  @Nullable Vote vote) {
@@ -57,32 +56,27 @@
         int maxRefreshRate = getMaxRefreshRate(vote, mIgnoredRenderRate);
         Trace.traceCounter(Trace.TRACE_TAG_POWER,
                 TAG + "." + displayId + ":" + Vote.priorityToString(priority), maxRefreshRate);
-        if (mFrameworkStatsLogReportingEnabled) {
-            FrameworkStatsLog.write(
-                    DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
-                    DISPLAY_MODE_DIRECTOR_VOTE_CHANGED__VOTE_STATUS__STATUS_ADDED,
-                    maxRefreshRate, -1);
-        }
+        FrameworkStatsLog.write(
+                DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
+                DISPLAY_MODE_DIRECTOR_VOTE_CHANGED__VOTE_STATUS__STATUS_ADDED,
+                maxRefreshRate, -1);
     }
 
     private void reportVoteRemoved(int displayId, int priority) {
         Trace.traceCounter(Trace.TRACE_TAG_POWER,
                 TAG + "." + displayId + ":" + Vote.priorityToString(priority), -1);
-        if (mFrameworkStatsLogReportingEnabled) {
-            FrameworkStatsLog.write(
-                    DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
-                    DISPLAY_MODE_DIRECTOR_VOTE_CHANGED__VOTE_STATUS__STATUS_REMOVED, -1, -1);
-        }
+        FrameworkStatsLog.write(
+                DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
+                DISPLAY_MODE_DIRECTOR_VOTE_CHANGED__VOTE_STATUS__STATUS_REMOVED, -1, -1);
     }
 
     void reportVotesActivated(int displayId, int minPriority, @Nullable Display.Mode baseMode,
             SparseArray<Vote> votes) {
-        if (!mFrameworkStatsLogReportingEnabled) {
-            return;
-        }
+        int lastMinPriorityReported = mLastMinPriorityByDisplay.get(
+                displayId, Vote.MAX_PRIORITY + 1);
         int selectedRefreshRate = baseMode != null ? (int) baseMode.getRefreshRate() : -1;
         for (int priority = Vote.MIN_PRIORITY; priority <= Vote.MAX_PRIORITY; priority++) {
-            if (priority < mLastMinPriorityReported && priority < minPriority) {
+            if (priority < lastMinPriorityReported && priority < minPriority) {
                 continue;
             }
             Vote vote = votes.get(priority);
@@ -91,7 +85,7 @@
             }
 
             // Was previously reported ACTIVE, changed to ADDED
-            if (priority >= mLastMinPriorityReported && priority < minPriority) {
+            if (priority >= lastMinPriorityReported && priority < minPriority) {
                 int maxRefreshRate = getMaxRefreshRate(vote, mIgnoredRenderRate);
                 FrameworkStatsLog.write(
                         DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
@@ -99,7 +93,7 @@
                         maxRefreshRate, selectedRefreshRate);
             }
             // Was previously reported ADDED, changed to ACTIVE
-            if (priority >= minPriority && priority < mLastMinPriorityReported) {
+            if (priority >= minPriority && priority < lastMinPriorityReported) {
                 int maxRefreshRate = getMaxRefreshRate(vote, mIgnoredRenderRate);
                 FrameworkStatsLog.write(
                         DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
@@ -107,7 +101,7 @@
                         maxRefreshRate, selectedRefreshRate);
             }
 
-            mLastMinPriorityReported = minPriority;
+            mLastMinPriorityByDisplay.put(displayId, minPriority);
         }
     }
 
diff --git a/services/core/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java
index 67b1ec3..7e8bb28 100644
--- a/services/core/java/com/android/server/dreams/DreamManagerService.java
+++ b/services/core/java/com/android/server/dreams/DreamManagerService.java
@@ -495,6 +495,34 @@
         }
     }
 
+    @VisibleForTesting
+    boolean dreamConditionActiveInternal() {
+        synchronized (mLock) {
+            return dreamConditionActiveInternalLocked();
+        }
+    }
+
+    private boolean dreamConditionActiveInternalLocked() {
+        if ((mWhenToDream & DREAM_ON_CHARGE) == DREAM_ON_CHARGE) {
+            return mIsCharging;
+        }
+
+        if ((mWhenToDream & DREAM_ON_DOCK) == DREAM_ON_DOCK) {
+            return mIsDocked;
+        }
+
+        if ((mWhenToDream & DREAM_ON_POSTURED) == DREAM_ON_POSTURED) {
+            return mIsPostured;
+        }
+
+        return false;
+    }
+
+    @VisibleForTesting
+    boolean dreamsEnabled() {
+        return mDreamsEnabledSetting;
+    }
+
     /** Whether dreaming can start given user settings and the current dock/charge state. */
     private boolean canStartDreamingInternal(boolean isScreenOn) {
         synchronized (mLock) {
@@ -524,19 +552,9 @@
                 return false;
             }
 
-            if ((mWhenToDream & DREAM_ON_CHARGE) == DREAM_ON_CHARGE) {
-                return mIsCharging;
-            }
-
-            if ((mWhenToDream & DREAM_ON_DOCK) == DREAM_ON_DOCK) {
-                return mIsDocked;
-            }
-
-            if ((mWhenToDream & DREAM_ON_POSTURED) == DREAM_ON_POSTURED) {
-                return mIsPostured;
-            }
-
-            return false;
+            // All dream prerequisites fulfilled, check if device state matches "when to dream"
+            // setting.
+            return dreamConditionActiveInternalLocked();
         }
     }
 
@@ -674,7 +692,8 @@
         }
     }
 
-    private void setDevicePosturedInternal(boolean isPostured) {
+    @VisibleForTesting
+    void setDevicePosturedInternal(boolean isPostured) {
         Slog.d(TAG, "Device postured: " + isPostured);
         synchronized (mLock) {
             mIsPostured = isPostured;
@@ -1390,6 +1409,11 @@
         }
 
         @Override
+        public boolean dreamConditionActive() {
+            return dreamConditionActiveInternal();
+        }
+
+        @Override
         public void requestDream() {
             requestDreamInternal();
         }
diff --git a/services/core/java/com/android/server/flags/people.aconfig b/services/core/java/com/android/server/flags/people.aconfig
new file mode 100644
index 0000000..532e958
--- /dev/null
+++ b/services/core/java/com/android/server/flags/people.aconfig
@@ -0,0 +1,12 @@
+package: "com.android.server.flags"
+container: "system"
+
+flag {
+    name: "early_data_manager_init"
+    namespace: "system_performance"
+    description: "Initialize DataManager earlier in boot"
+    bug: "394601872"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/services/core/java/com/android/server/flags/services.aconfig b/services/core/java/com/android/server/flags/services.aconfig
index 4505d0e..7e5c1bc 100644
--- a/services/core/java/com/android/server/flags/services.aconfig
+++ b/services/core/java/com/android/server/flags/services.aconfig
@@ -86,3 +86,10 @@
     description: "Enable the time notifications feature, a toggle to enable/disable time-related notifications in Date & Time Settings"
     bug: "283267917"
 }
+
+flag {
+    name: "certpininstaller_removal"
+    namespace: "network_security"
+    description: "Remove CertPinInstallReceiver from the platform"
+    bug: "391205997"
+}
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java b/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java
index 310f592..b298d1c 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java
@@ -390,6 +390,9 @@
 
     private static boolean isValidPhysicalAddress(byte[] params, int offset) {
         int physicalAddress = HdmiUtils.twoBytesToInt(params, offset);
+        if (physicalAddress == 0xFFFF) {
+            return false;
+        }
         while (physicalAddress != 0) {
             int maskedAddress = physicalAddress & 0xF000;
             physicalAddress = (physicalAddress << 4) & 0xFFFF;
diff --git a/services/core/java/com/android/server/input/InputDataStore.java b/services/core/java/com/android/server/input/InputDataStore.java
index e8f21fe..834f815 100644
--- a/services/core/java/com/android/server/input/InputDataStore.java
+++ b/services/core/java/com/android/server/input/InputDataStore.java
@@ -125,8 +125,20 @@
         }
     }
 
-    @VisibleForTesting
-    List<InputGestureData> readInputGesturesXml(InputStream stream, boolean utf8Encoded)
+    /**
+     * Parses the given input stream and returns the list of {@link InputGestureData} objects.
+     * This parsing happens on a best effort basis. If invalid data exists in the given payload
+     * it will be skipped. An example of this would be a keycode that does not exist in the
+     * present version of Android.  If the payload is malformed, instead this will throw an
+     * exception and require the caller to handel this appropriately for its situation.
+     *
+     * @param stream stream of the input payload of XML data
+     * @param utf8Encoded whether or not the input data is UTF-8 encoded
+     * @return list of {@link InputGestureData} objects pulled from the payload
+     * @throws XmlPullParserException
+     * @throws IOException
+     */
+    public List<InputGestureData> readInputGesturesXml(InputStream stream, boolean utf8Encoded)
             throws XmlPullParserException, IOException {
         List<InputGestureData> inputGestureDataList = new ArrayList<>();
         TypedXmlPullParser parser;
@@ -153,6 +165,31 @@
         return inputGestureDataList;
     }
 
+    /**
+     * Serializes the given list of {@link InputGestureData} objects to XML in the provided output
+     * stream.
+     *
+     * @param stream               output stream to put serialized data.
+     * @param utf8Encoded          whether or not to encode the serialized data in UTF-8 format.
+     * @param inputGestureDataList the list of {@link InputGestureData} objects to serialize.
+     */
+    public void writeInputGestureXml(OutputStream stream, boolean utf8Encoded,
+            List<InputGestureData> inputGestureDataList) throws IOException {
+        final TypedXmlSerializer serializer;
+        if (utf8Encoded) {
+            serializer = Xml.newFastSerializer();
+            serializer.setOutput(stream, StandardCharsets.UTF_8.name());
+        } else {
+            serializer = Xml.resolveSerializer(stream);
+        }
+
+        serializer.startDocument(null, true);
+        serializer.startTag(null, TAG_ROOT);
+        writeInputGestureListToXml(serializer, inputGestureDataList);
+        serializer.endTag(null, TAG_ROOT);
+        serializer.endDocument();
+    }
+
     private InputGestureData readInputGestureFromXml(TypedXmlPullParser parser)
             throws XmlPullParserException, IOException, IllegalArgumentException {
         InputGestureData.Builder builder = new InputGestureData.Builder();
@@ -239,24 +276,6 @@
         return inputGestureDataList;
     }
 
-    @VisibleForTesting
-    void writeInputGestureXml(OutputStream stream, boolean utf8Encoded,
-            List<InputGestureData> inputGestureDataList) throws IOException {
-        final TypedXmlSerializer serializer;
-        if (utf8Encoded) {
-            serializer = Xml.newFastSerializer();
-            serializer.setOutput(stream, StandardCharsets.UTF_8.name());
-        } else {
-            serializer = Xml.resolveSerializer(stream);
-        }
-
-        serializer.startDocument(null, true);
-        serializer.startTag(null, TAG_ROOT);
-        writeInputGestureListToXml(serializer, inputGestureDataList);
-        serializer.endTag(null, TAG_ROOT);
-        serializer.endDocument();
-    }
-
     private void writeInputGestureToXml(TypedXmlSerializer serializer,
             InputGestureData inputGestureData) throws IOException {
         serializer.startTag(null, TAG_INPUT_GESTURE);
diff --git a/services/core/java/com/android/server/input/InputGestureManager.java b/services/core/java/com/android/server/input/InputGestureManager.java
index 108afba..977c029 100644
--- a/services/core/java/com/android/server/input/InputGestureManager.java
+++ b/services/core/java/com/android/server/input/InputGestureManager.java
@@ -256,13 +256,11 @@
             ));
         }
         if (keyboardA11yShortcutControl()) {
-            if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
-                systemShortcuts.add(createKeyGesture(
-                        KeyEvent.KEYCODE_3,
-                        KeyEvent.META_META_ON | KeyEvent.META_ALT_ON,
-                        KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_BOUNCE_KEYS
-                ));
-            }
+            systemShortcuts.add(createKeyGesture(
+                    KeyEvent.KEYCODE_3,
+                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON,
+                    KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_BOUNCE_KEYS
+            ));
             if (InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
                 systemShortcuts.add(createKeyGesture(
                         KeyEvent.KEYCODE_4,
@@ -270,20 +268,16 @@
                         KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_MOUSE_KEYS
                 ));
             }
-            if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
-                systemShortcuts.add(createKeyGesture(
-                        KeyEvent.KEYCODE_5,
-                        KeyEvent.META_META_ON | KeyEvent.META_ALT_ON,
-                        KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_STICKY_KEYS
-                ));
-            }
-            if (InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
-                systemShortcuts.add(createKeyGesture(
-                        KeyEvent.KEYCODE_6,
-                        KeyEvent.META_META_ON | KeyEvent.META_ALT_ON,
-                        KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SLOW_KEYS
-                ));
-            }
+            systemShortcuts.add(createKeyGesture(
+                    KeyEvent.KEYCODE_5,
+                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON,
+                    KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_STICKY_KEYS
+            ));
+            systemShortcuts.add(createKeyGesture(
+                    KeyEvent.KEYCODE_6,
+                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON,
+                    KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SLOW_KEYS
+            ));
         }
         synchronized (mGestureLock) {
             for (InputGestureData systemShortcut : systemShortcuts) {
diff --git a/services/core/java/com/android/server/input/InputManagerInternal.java b/services/core/java/com/android/server/input/InputManagerInternal.java
index d2486fe..87f693c 100644
--- a/services/core/java/com/android/server/input/InputManagerInternal.java
+++ b/services/core/java/com/android/server/input/InputManagerInternal.java
@@ -16,6 +16,7 @@
 
 package com.android.server.input;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
@@ -32,7 +33,11 @@
 import com.android.internal.inputmethod.InputMethodSubtypeHandle;
 import com.android.internal.policy.IShortcutService;
 
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Input manager local system service interface.
@@ -41,6 +46,15 @@
  */
 public abstract class InputManagerInternal {
 
+    // Backup and restore information for custom input gestures.
+    public static final int BACKUP_CATEGORY_INPUT_GESTURES = 0;
+
+    // Backup and Restore categories for sending map of data back and forth to backup and restore
+    // infrastructure.
+    @IntDef({BACKUP_CATEGORY_INPUT_GESTURES})
+    public @interface BackupCategory {
+    }
+
     /**
      * Called by the display manager to set information about the displays as needed
      * by the input system.  The input system must copy this information to retain it.
@@ -312,4 +326,22 @@
      * @return true if setting power wakeup was successful.
      */
     public abstract boolean setKernelWakeEnabled(int deviceId, boolean enabled);
+
+    /**
+     * Retrieves the input gestures backup payload data.
+     *
+     * @param userId the user ID of the backup data.
+     * @return byte array of UTF-8 encoded backup data.
+     */
+    public abstract Map<Integer, byte[]> getBackupPayload(int userId) throws IOException;
+
+    /**
+     * Applies the given UTF-8 encoded byte array payload to the given user's input data
+     * on a best effort basis.
+     *
+     * @param payload UTF-8 encoded map of byte arrays of restored data
+     * @param userId the user ID for which to apply the payload data
+     */
+    public abstract void applyBackupPayload(Map<Integer, byte[]> payload, int userId)
+            throws XmlPullParserException, IOException;
 }
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index af021e5..8624f42 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -24,7 +24,9 @@
 import static android.view.KeyEvent.KEYCODE_UNKNOWN;
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
 
+import static com.android.hardware.input.Flags.enableCustomizableInputGestures;
 import static com.android.hardware.input.Flags.touchpadVisualizer;
+import static com.android.hardware.input.Flags.keyEventActivityDetection;
 import static com.android.hardware.input.Flags.useKeyGestureEventHandler;
 import static com.android.server.policy.WindowManagerPolicy.ACTION_PASS_TO_USER;
 
@@ -61,6 +63,7 @@
 import android.hardware.input.IInputDevicesChangedListener;
 import android.hardware.input.IInputManager;
 import android.hardware.input.IInputSensorEventListener;
+import android.hardware.input.IKeyEventActivityListener;
 import android.hardware.input.IKeyGestureEventListener;
 import android.hardware.input.IKeyGestureHandler;
 import android.hardware.input.IKeyboardBacklightListener;
@@ -89,11 +92,13 @@
 import android.os.InputEventInjectionSync;
 import android.os.Looper;
 import android.os.Message;
+import android.os.PermissionEnforcer;
 import android.os.Process;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
 import android.os.ShellCallback;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.VibrationEffect;
 import android.os.vibrator.StepSegment;
@@ -149,6 +154,8 @@
 
 import libcore.io.IoUtils;
 
+import org.xmlpull.v1.XmlPullParserException;
+
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
@@ -280,6 +287,16 @@
     @GuardedBy("mAssociationsLock")
     private final Map<String, Integer> mRuntimeAssociations = new ArrayMap<>();
 
+    final Object mKeyEventActivityLock = new Object();
+    @GuardedBy("mKeyEventActivityLock")
+    private List<IKeyEventActivityListener> mKeyEventActivityListenersToNotify =
+            new ArrayList<>();
+
+    // Rate limit for key event activity detection. Prevent the listener from being notified
+    // too frequently.
+    private static final long KEY_EVENT_ACTIVITY_RATE_LIMIT_INTERVAL_MS = 1000;
+    private long mLastKeyEventActivityTimeMs = 0;
+
     // The associations of input devices to displays by port. Maps from {InputDevice#mName} (String)
     // to {DisplayInfo#uniqueId} (String) so that events from the Input Device go to a
     // specific display.
@@ -484,13 +501,16 @@
     }
 
     public InputManagerService(Context context) {
-        this(new Injector(context, DisplayThread.get().getLooper(), new UEventManager() {}));
+        this(new Injector(context, DisplayThread.get().getLooper(), new UEventManager() {}),
+                context.getSystemService(PermissionEnforcer.class));
     }
 
     @VisibleForTesting
-    InputManagerService(Injector injector) {
+    InputManagerService(Injector injector, PermissionEnforcer permissionEnforcer) {
         // The static association map is accessed by both java and native code, so it must be
         // initialized before initializing the native service.
+        super(permissionEnforcer);
+
         mStaticAssociations = loadStaticInputPortAssociations();
 
         mContext = injector.getContext();
@@ -2509,9 +2529,73 @@
         return true;
     }
 
+    @EnforcePermission(android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY)
+    @Override // Binder Call
+    public boolean registerKeyEventActivityListener(@NonNull IKeyEventActivityListener listener) {
+        super.registerKeyEventActivityListener_enforcePermission();
+        Objects.requireNonNull(listener, "listener must not be null");
+        return InputManagerService.this.registerKeyEventActivityListenerInternal(listener);
+    }
+
+    @EnforcePermission(android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY)
+    @Override // Binder Call
+    public boolean unregisterKeyEventActivityListener(@NonNull IKeyEventActivityListener listener) {
+        super.unregisterKeyEventActivityListener_enforcePermission();
+        Objects.requireNonNull(listener, "listener must not be null");
+        return InputManagerService.this.unregisterKeyEventActivityListenerInternal(listener);
+    }
+
+    /**
+     * Registers a listener for updates to key event activeness
+     */
+    private boolean registerKeyEventActivityListenerInternal(IKeyEventActivityListener listener) {
+        synchronized (mKeyEventActivityLock) {
+            if (!mKeyEventActivityListenersToNotify.contains(listener)) {
+                mKeyEventActivityListenersToNotify.add(listener);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Unregisters a listener for updates to key event activeness
+     */
+    private boolean unregisterKeyEventActivityListenerInternal(IKeyEventActivityListener listener) {
+        synchronized (mKeyEventActivityLock) {
+            return mKeyEventActivityListenersToNotify.removeIf(existingListener ->
+                    existingListener.asBinder() == listener.asBinder());
+        }
+    }
+
+    private void notifyKeyActivityListeners(KeyEvent event) {
+        long currentTimeMs = SystemClock.uptimeMillis();
+        if (keyEventActivityDetection()
+                && event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0
+                && currentTimeMs - mLastKeyEventActivityTimeMs
+                >= KEY_EVENT_ACTIVITY_RATE_LIMIT_INTERVAL_MS) {
+            List<IKeyEventActivityListener> keyEventActivityListeners;
+            synchronized (mKeyEventActivityLock) {
+                keyEventActivityListeners = List.copyOf(mKeyEventActivityListenersToNotify);
+            }
+            for (IKeyEventActivityListener listener : keyEventActivityListeners) {
+                try {
+                    listener.onKeyEventActivity();
+                } catch (RemoteException e) {
+                    Slog.i(TAG,
+                            "Could Not Notify Listener due to Remote Exception: " + e);
+                    unregisterKeyEventActivityListener(listener);
+                }
+            }
+            mLastKeyEventActivityTimeMs = currentTimeMs;
+        }
+    }
+
     // Native callback.
     @SuppressWarnings("unused")
-    private int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
+    @VisibleForTesting
+    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
+        notifyKeyActivityListeners(event);
         synchronized (mFocusEventDebugViewLock) {
             if (mFocusEventDebugView != null) {
                 mFocusEventDebugView.reportKeyEvent(event);
@@ -2691,7 +2775,7 @@
                 }
                 return true;
             case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_BOUNCE_KEYS:
-                if (complete && InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
+                if (complete) {
                     final boolean bounceKeysEnabled =
                             InputSettings.isAccessibilityBounceKeysEnabled(mContext);
                     InputSettings.setAccessibilityBounceKeysThreshold(mContext,
@@ -2709,7 +2793,7 @@
                 }
                 break;
             case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_STICKY_KEYS:
-                if (complete && InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
+                if (complete) {
                     final boolean stickyKeysEnabled =
                             InputSettings.isAccessibilityStickyKeysEnabled(mContext);
                     InputSettings.setAccessibilityStickyKeysEnabled(mContext, !stickyKeysEnabled);
@@ -2717,7 +2801,7 @@
                 }
                 break;
             case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SLOW_KEYS:
-                if (complete && InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+                if (complete) {
                     final boolean slowKeysEnabled =
                             InputSettings.isAccessibilitySlowKeysEnabled(mContext);
                     InputSettings.setAccessibilitySlowKeysThreshold(mContext,
@@ -3724,6 +3808,26 @@
         public boolean setKernelWakeEnabled(int deviceId, boolean enabled) {
             return mNative.setKernelWakeEnabled(deviceId, enabled);
         }
+
+        @Override
+        public Map<Integer, byte[]> getBackupPayload(int userId) throws IOException {
+            final Map<Integer, byte[]> payload = new HashMap<>();
+            if (enableCustomizableInputGestures()) {
+                payload.put(BACKUP_CATEGORY_INPUT_GESTURES,
+                        mKeyGestureController.getInputGestureBackupPayload(userId));
+            }
+            return payload;
+        }
+
+        @Override
+        public void applyBackupPayload(Map<Integer, byte[]> payload, int userId)
+                throws XmlPullParserException, IOException {
+            if (enableCustomizableInputGestures() && payload.containsKey(
+                    BACKUP_CATEGORY_INPUT_GESTURES)) {
+                mKeyGestureController.applyInputGesturesBackupPayload(
+                        payload.get(BACKUP_CATEGORY_INPUT_GESTURES), userId);
+            }
+        }
     }
 
     @Override
diff --git a/services/core/java/com/android/server/input/KeyGestureController.java b/services/core/java/com/android/server/input/KeyGestureController.java
index 41f58ae..5770a09 100644
--- a/services/core/java/com/android/server/input/KeyGestureController.java
+++ b/services/core/java/com/android/server/input/KeyGestureController.java
@@ -69,6 +69,11 @@
 import com.android.server.pm.UserManagerInternal;
 import com.android.server.policy.KeyCombinationManager;
 
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.util.ArrayDeque;
 import java.util.HashSet;
 import java.util.List;
@@ -1191,6 +1196,29 @@
         }
     }
 
+    byte[] getInputGestureBackupPayload(int userId) throws IOException {
+        final List<InputGestureData> inputGestureDataList =
+                mInputGestureManager.getCustomInputGestures(userId, null);
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        synchronized (mInputDataStore) {
+            mInputDataStore.writeInputGestureXml(byteArrayOutputStream, true, inputGestureDataList);
+        }
+        return byteArrayOutputStream.toByteArray();
+    }
+
+    void applyInputGesturesBackupPayload(byte[] payload, int userId)
+            throws XmlPullParserException, IOException {
+        final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(payload);
+        List<InputGestureData> inputGestureDataList;
+        synchronized (mInputDataStore) {
+            inputGestureDataList = mInputDataStore.readInputGesturesXml(byteArrayInputStream, true);
+        }
+        for (final InputGestureData inputGestureData : inputGestureDataList) {
+            mInputGestureManager.addCustomInputGesture(userId, inputGestureData);
+        }
+        mHandler.obtainMessage(MSG_PERSIST_CUSTOM_GESTURES, userId).sendToTarget();
+    }
+
     // A record of a registered key gesture event listener from one process.
     private class KeyGestureEventListenerRecord implements IBinder.DeathRecipient {
         public final int mPid;
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java
index ddace17..2ea6117 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java
@@ -43,7 +43,6 @@
 
 import java.util.Collection;
 import java.util.Optional;
-import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * A class that represents a broker for the endpoint registered by the client app. This class
@@ -89,8 +88,11 @@
     /** The remote callback interface for this endpoint. */
     private final IContextHubEndpointCallback mContextHubEndpointCallback;
 
-    /** True if this endpoint is registered with the service. */
-    private AtomicBoolean mIsRegistered = new AtomicBoolean(true);
+    /** True if this endpoint is registered with the service/HAL. */
+    @GuardedBy("mRegistrationLock")
+    private boolean mIsRegistered = false;
+
+    private final Object mRegistrationLock = new Object();
 
     private final Object mOpenSessionLock = new Object();
 
@@ -192,7 +194,7 @@
     public int openSession(HubEndpointInfo destination, String serviceDescriptor)
             throws RemoteException {
         super.openSession_enforcePermission();
-        if (!mIsRegistered.get()) throw new IllegalStateException("Endpoint is not registered");
+        if (!isRegistered()) throw new IllegalStateException("Endpoint is not registered");
         if (!hasEndpointPermissions(destination)) {
             throw new SecurityException(
                     "Insufficient permission to open a session with endpoint: " + destination);
@@ -223,7 +225,7 @@
     @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_CONTEXT_HUB)
     public void closeSession(int sessionId, int reason) throws RemoteException {
         super.closeSession_enforcePermission();
-        if (!mIsRegistered.get()) throw new IllegalStateException("Endpoint is not registered");
+        if (!isRegistered()) throw new IllegalStateException("Endpoint is not registered");
         if (!cleanupSessionResources(sessionId)) {
             throw new IllegalArgumentException(
                     "Unknown session ID in closeSession: id=" + sessionId);
@@ -235,19 +237,26 @@
     @android.annotation.EnforcePermission(android.Manifest.permission.ACCESS_CONTEXT_HUB)
     public void unregister() {
         super.unregister_enforcePermission();
-        mIsRegistered.set(false);
-        try {
-            mHubInterface.unregisterEndpoint(mHalEndpointInfo);
-        } catch (RemoteException e) {
-            Log.e(TAG, "RemoteException while calling HAL unregisterEndpoint", e);
-        }
         synchronized (mOpenSessionLock) {
             // Iterate in reverse since cleanupSessionResources will remove the entry
             for (int i = mSessionInfoMap.size() - 1; i >= 0; i--) {
                 int id = mSessionInfoMap.keyAt(i);
+                halCloseEndpointSessionNoThrow(id, Reason.ENDPOINT_GONE);
                 cleanupSessionResources(id);
             }
         }
+        synchronized (mRegistrationLock) {
+            if (!isRegistered()) {
+                Log.w(TAG, "Attempting to unregister when already unregistered");
+                return;
+            }
+            mIsRegistered = false;
+            try {
+                mHubInterface.unregisterEndpoint(mHalEndpointInfo);
+            } catch (RemoteException e) {
+                Log.e(TAG, "RemoteException while calling HAL unregisterEndpoint", e);
+            }
+        }
         mEndpointManager.unregisterEndpoint(mEndpointInfo.getIdentifier().getEndpoint());
         releaseWakeLockOnExit();
     }
@@ -335,7 +344,7 @@
     /** Invoked when the underlying binder of this broker has died at the client process. */
     @Override
     public void binderDied() {
-        if (mIsRegistered.get()) {
+        if (isRegistered()) {
             unregister();
         }
     }
@@ -365,6 +374,22 @@
         }
     }
 
+    /**
+     * Registers this endpoints with the Context Hub HAL.
+     *
+     * @throws RemoteException if the registrations fails with a RemoteException
+     */
+    /* package */ void register() throws RemoteException {
+        synchronized (mRegistrationLock) {
+            if (isRegistered()) {
+                Log.w(TAG, "Attempting to register when already registered");
+            } else {
+                mHubInterface.registerEndpoint(mHalEndpointInfo);
+                mIsRegistered = true;
+            }
+        }
+    }
+
     /* package */ void attachDeathRecipient() throws RemoteException {
         if (mContextHubEndpointCallback != null) {
             mContextHubEndpointCallback.asBinder().linkToDeath(this, 0 /* flags */);
@@ -425,6 +450,24 @@
         }
     }
 
+    /* package */ void onHalRestart() {
+        synchronized (mRegistrationLock) {
+            mIsRegistered = false;
+            try {
+                register();
+            } catch (RemoteException e) {
+                Log.e(TAG, "RemoteException while calling HAL registerEndpoint", e);
+            }
+        }
+        synchronized (mOpenSessionLock) {
+            for (int i = mSessionInfoMap.size() - 1; i >= 0; i--) {
+                int id = mSessionInfoMap.keyAt(i);
+                onCloseEndpointSession(id, Reason.HUB_RESET);
+            }
+        }
+        // TODO(b/390029594): Cancel any ongoing reliable communication transactions
+    }
+
     private Optional<Byte> onEndpointSessionOpenRequestInternal(
             int sessionId, HubEndpointInfo initiator, String serviceDescriptor) {
         if (!hasEndpointPermissions(initiator)) {
@@ -465,24 +508,21 @@
             }
             remote = mSessionInfoMap.get(sessionId).getRemoteEndpointInfo();
         }
-        if (!ContextHubServiceUtil.notePermissions(
-                mAppOpsManager,
-                mUid,
-                mPackageName,
-                mAttributionTag,
-                remote.getRequiredPermissions(),
-                RECEIVE_MSG_NOTE
-                        + "-0x"
-                        + Long.toHexString(remote.getIdentifier().getHub())
-                        + "-0x"
-                        + Long.toHexString(remote.getIdentifier().getEndpoint()))) {
-            Log.e(
-                    TAG,
-                    "Dropping message from "
-                            + remote
-                            + ". "
-                            + mPackageName
-                            + " doesn't have permission");
+
+        try {
+            Binder.withCleanCallingIdentity(
+                    () -> {
+                        if (!notePermissions(remote)) {
+                            throw new RuntimeException(
+                                    "Dropping message from "
+                                            + remote
+                                            + ". "
+                                            + mPackageName
+                                            + " doesn't have permission");
+                        }
+                    });
+        } catch (RuntimeException e) {
+            Log.e(TAG, e.getMessage());
             return ErrorCode.PERMISSION_DENIED;
         }
 
@@ -553,7 +593,7 @@
     private void acquireWakeLock() {
         Binder.withCleanCallingIdentity(
                 () -> {
-                    if (mIsRegistered.get()) {
+                    if (isRegistered()) {
                         mWakeLock.acquire(WAKELOCK_TIMEOUT_MILLIS);
                     }
                 });
@@ -608,4 +648,30 @@
         }
         return true;
     }
+
+    private boolean isRegistered() {
+        synchronized (mRegistrationLock) {
+            return mIsRegistered;
+        }
+    }
+
+    /**
+     * Utility to call notePermissions for e.g. when processing a message from a given endpoint for
+     * this broker.
+     *
+     * @param endpoint The endpoint to check permissions for this broker.
+     */
+    private boolean notePermissions(HubEndpointInfo endpoint) {
+        return ContextHubServiceUtil.notePermissions(
+                mAppOpsManager,
+                mUid,
+                mPackageName,
+                mAttributionTag,
+                endpoint.getRequiredPermissions(),
+                RECEIVE_MSG_NOTE
+                        + "-0x"
+                        + Long.toHexString(endpoint.getIdentifier().getHub())
+                        + "-0x"
+                        + Long.toHexString(endpoint.getIdentifier().getEndpoint()));
+    }
 }
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java
index 4389dd0..06aeb62 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java
@@ -19,12 +19,14 @@
 import android.content.Context;
 import android.hardware.contexthub.ContextHubInfo;
 import android.hardware.contexthub.EndpointInfo;
+import android.hardware.contexthub.ErrorCode;
 import android.hardware.contexthub.HubEndpointInfo;
 import android.hardware.contexthub.HubInfo;
 import android.hardware.contexthub.HubMessage;
 import android.hardware.contexthub.IContextHubEndpoint;
 import android.hardware.contexthub.IContextHubEndpointCallback;
 import android.hardware.contexthub.IEndpointCommunication;
+import android.hardware.contexthub.MessageDeliveryStatus;
 import android.os.RemoteException;
 import android.os.ServiceSpecificException;
 import android.util.Log;
@@ -204,12 +206,6 @@
         EndpointInfo halEndpointInfo =
                 ContextHubServiceUtil.createHalEndpointInfo(
                         pendingEndpointInfo, endpointId, SERVICE_HUB_ID);
-        try {
-            mHubInterface.registerEndpoint(halEndpointInfo);
-        } catch (RemoteException e) {
-            Log.e(TAG, "RemoteException while calling HAL registerEndpoint", e);
-            throw e;
-        }
         broker =
                 new ContextHubEndpointBroker(
                         mContext,
@@ -220,6 +216,7 @@
                         packageName,
                         attributionTag,
                         mTransactionManager);
+        broker.register();
         mEndpointMap.put(endpointId, broker);
 
         try {
@@ -280,6 +277,14 @@
         mEndpointMap.remove(endpointId);
     }
 
+    /** Invoked by the service when the Context Hub HAL restarts. */
+    /* package */ void onHalRestart() {
+        for (ContextHubEndpointBroker broker : mEndpointMap.values()) {
+            // The broker will close existing sessions and re-register itself
+            broker.onHalRestart();
+        }
+    }
+
     @Override
     public void onEndpointSessionOpenRequest(
             int sessionId,
@@ -339,6 +344,12 @@
                         sessionId, (broker) -> broker.onMessageReceived(sessionId, message));
         if (!callbackInvoked) {
             Log.w(TAG, "onMessageReceived: unknown session ID " + sessionId);
+            if (message.isResponseRequired()) {
+                sendMessageDeliveryStatus(
+                        sessionId,
+                        message.getMessageSequenceNumber(),
+                        ErrorCode.DESTINATION_NOT_FOUND);
+            }
         }
     }
 
@@ -402,6 +413,21 @@
         return (minId <= maxId) && (minId >= 0) && (maxId >= 0);
     }
 
+    private void sendMessageDeliveryStatus(
+            int sessionId, int messageSequenceNumber, byte errorCode) {
+        MessageDeliveryStatus status = new MessageDeliveryStatus();
+        status.messageSequenceNumber = messageSequenceNumber;
+        status.errorCode = errorCode;
+        try {
+            mHubInterface.sendMessageDeliveryStatusToEndpoint(sessionId, status);
+        } catch (RemoteException e) {
+            Log.w(
+                    TAG,
+                    "Exception while sending message delivery status on session " + sessionId,
+                    e);
+        }
+    }
+
     @VisibleForTesting
     /* package */ int getNumAvailableSessions() {
         synchronized (mSessionIdLock) {
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubHalEndpointCallback.java b/services/core/java/com/android/server/location/contexthub/ContextHubHalEndpointCallback.java
index 88764b6..a3d9429 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubHalEndpointCallback.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubHalEndpointCallback.java
@@ -21,9 +21,6 @@
 import android.hardware.contexthub.IEndpointCallback;
 import android.hardware.contexthub.Message;
 import android.hardware.contexthub.MessageDeliveryStatus;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Process;
 import android.os.RemoteException;
 
 /** IEndpointCallback implementation. */
@@ -32,11 +29,6 @@
     private final IEndpointLifecycleCallback mEndpointLifecycleCallback;
     private final IEndpointSessionCallback mEndpointSessionCallback;
 
-    // Use this thread in case where the execution requires to be on an async service thread.
-    private final HandlerThread mHandlerThread =
-            new HandlerThread("Context Hub endpoint callback", Process.THREAD_PRIORITY_BACKGROUND);
-    private Handler mHandler;
-
     /** Interface for listening for endpoint start and stop events. */
     public interface IEndpointLifecycleCallback {
         /** Called when a batch of endpoints started. */
@@ -73,9 +65,6 @@
             IEndpointSessionCallback endpointSessionCallback) {
         mEndpointLifecycleCallback = endpointLifecycleCallback;
         mEndpointSessionCallback = endpointSessionCallback;
-
-        mHandlerThread.start();
-        mHandler = new Handler(mHandlerThread.getLooper());
     }
 
     @Override
@@ -88,7 +77,7 @@
         for (int i = 0; i < halEndpointInfos.length; i++) {
             endpointInfos[i] = new HubEndpointInfo(halEndpointInfos[i]);
         }
-        mHandler.post(() -> mEndpointLifecycleCallback.onEndpointStarted(endpointInfos));
+        mEndpointLifecycleCallback.onEndpointStarted(endpointInfos);
     }
 
     @Override
@@ -98,7 +87,7 @@
         for (int i = 0; i < halEndpointIds.length; i++) {
             endpointIds[i] = new HubEndpointInfo.HubEndpointIdentifier(halEndpointIds[i]);
         }
-        mHandler.post(() -> mEndpointLifecycleCallback.onEndpointStopped(endpointIds, reason));
+        mEndpointLifecycleCallback.onEndpointStopped(endpointIds, reason);
     }
 
     @Override
@@ -109,37 +98,33 @@
                 new HubEndpointInfo.HubEndpointIdentifier(destination.hubId, destination.id);
         HubEndpointInfo.HubEndpointIdentifier initiatorId =
                 new HubEndpointInfo.HubEndpointIdentifier(initiator.hubId, initiator.id);
-        mHandler.post(
-                () ->
-                        mEndpointSessionCallback.onEndpointSessionOpenRequest(
-                                sessionId, destinationId, initiatorId, serviceDescriptor));
+        mEndpointSessionCallback.onEndpointSessionOpenRequest(
+                sessionId, destinationId, initiatorId, serviceDescriptor);
     }
 
     @Override
     public void onCloseEndpointSession(int sessionId, byte reason) throws RemoteException {
-        mHandler.post(() -> mEndpointSessionCallback.onCloseEndpointSession(sessionId, reason));
+        mEndpointSessionCallback.onCloseEndpointSession(sessionId, reason);
     }
 
     @Override
     public void onEndpointSessionOpenComplete(int sessionId) throws RemoteException {
-        mHandler.post(() -> mEndpointSessionCallback.onEndpointSessionOpenComplete(sessionId));
+        mEndpointSessionCallback.onEndpointSessionOpenComplete(sessionId);
     }
 
     @Override
     public void onMessageReceived(int sessionId, Message message) throws RemoteException {
         HubMessage hubMessage = ContextHubServiceUtil.createHubMessage(message);
-        mHandler.post(() -> mEndpointSessionCallback.onMessageReceived(sessionId, hubMessage));
+        mEndpointSessionCallback.onMessageReceived(sessionId, hubMessage);
     }
 
     @Override
     public void onMessageDeliveryStatusReceived(
             int sessionId, MessageDeliveryStatus messageDeliveryStatus) throws RemoteException {
-        mHandler.post(
-                () ->
-                        mEndpointSessionCallback.onMessageDeliveryStatusReceived(
-                                sessionId,
-                                messageDeliveryStatus.messageSequenceNumber,
-                                messageDeliveryStatus.errorCode));
+        mEndpointSessionCallback.onMessageDeliveryStatusReceived(
+                sessionId,
+                messageDeliveryStatus.messageSequenceNumber,
+                messageDeliveryStatus.errorCode);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubService.java b/services/core/java/com/android/server/location/contexthub/ContextHubService.java
index 2b0ca14..502a7ae 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubService.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubService.java
@@ -259,6 +259,9 @@
             if (mHubInfoRegistry != null) {
                 mHubInfoRegistry.onHalRestart();
             }
+            if (mEndpointManager != null) {
+                mEndpointManager.onHalRestart();
+            }
             resetSettings();
             if (Flags.reconnectHostEndpointsAfterHalRestart()) {
                 mClientManager.forEachClientOfHub(mContextHubId,
diff --git a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
index 12495bb..d7d0eb4 100644
--- a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
+++ b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
@@ -612,25 +612,23 @@
         networkRequestBuilder.addCapability(getNetworkCapability(mAGpsType));
         networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
 
-        if (com.android.internal.telephony.flags.Flags.satelliteInternet()) {
-            // Add transport type NetworkCapabilities.TRANSPORT_SATELLITE on satellite network.
-            TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
-            if (telephonyManager != null) {
-                ServiceState state = telephonyManager.getServiceState();
-                if (state != null && state.isUsingNonTerrestrialNetwork()) {
-                    networkRequestBuilder.removeCapability(NET_CAPABILITY_NOT_RESTRICTED);
-                    try {
-                        networkRequestBuilder.addTransportType(NetworkCapabilities
-                                .TRANSPORT_SATELLITE);
-                        networkRequestBuilder.removeCapability(NetworkCapabilities
-                                .NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED);
-                    } catch (IllegalArgumentException ignored) {
-                        // In case TRANSPORT_SATELLITE or NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
-                        // are not recognized, meaning an old connectivity module runs on new
-                        // android in which case no network with such capabilities will be brought
-                        // up, so it's safe to ignore the exception.
-                        // TODO: Can remove the try-catch in next quarter release.
-                    }
+        // Add transport type NetworkCapabilities.TRANSPORT_SATELLITE on satellite network.
+        TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+        if (telephonyManager != null) {
+            ServiceState state = telephonyManager.getServiceState();
+            if (state != null && state.isUsingNonTerrestrialNetwork()) {
+                networkRequestBuilder.removeCapability(NET_CAPABILITY_NOT_RESTRICTED);
+                try {
+                    networkRequestBuilder.addTransportType(NetworkCapabilities
+                            .TRANSPORT_SATELLITE);
+                    networkRequestBuilder.removeCapability(NetworkCapabilities
+                            .NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED);
+                } catch (IllegalArgumentException ignored) {
+                    // In case TRANSPORT_SATELLITE or NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
+                    // are not recognized, meaning an old connectivity module runs on new
+                    // android in which case no network with such capabilities will be brought
+                    // up, so it's safe to ignore the exception.
+                    // TODO: Can remove the try-catch in next quarter release.
                 }
             }
         }
diff --git a/services/core/java/com/android/server/logcat/OWNERS b/services/core/java/com/android/server/logcat/OWNERS
index 33e1873..2913cc9 100644
--- a/services/core/java/com/android/server/logcat/OWNERS
+++ b/services/core/java/com/android/server/logcat/OWNERS
@@ -3,6 +3,5 @@
 cbrubaker@google.com
 eunjeongshin@google.com
 georgechan@google.com
-jsharkey@google.com
 wenhaowang@google.com
 xiaozhenl@google.com
diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java
index b529853..058bbc0 100644
--- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java
+++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java
@@ -267,6 +267,50 @@
         notifyRequestFailed(requestId, MediaRoute2ProviderService.REASON_ROUTE_NOT_AVAILABLE);
     }
 
+    @Override
+    public void selectRoute(long requestId, String sessionId, String routeId) {
+        if (SYSTEM_SESSION_ID.equals(sessionId)) {
+            super.selectRoute(requestId, sessionId, routeId);
+            return;
+        }
+        synchronized (mLock) {
+            var sessionRecord = getSessionRecordByOriginalId(sessionId);
+            var proxyRecord = sessionRecord != null ? sessionRecord.getProxyRecord() : null;
+            if (proxyRecord != null) {
+                var targetSourceRouteId =
+                        proxyRecord.mNewOriginalIdToSourceOriginalIdMap.get(routeId);
+                if (targetSourceRouteId != null) {
+                    proxyRecord.mProxy.selectRoute(
+                            requestId, sessionRecord.getServiceSessionId(), targetSourceRouteId);
+                }
+                return;
+            }
+        }
+        notifyRequestFailed(requestId, MediaRoute2ProviderService.REASON_ROUTE_NOT_AVAILABLE);
+    }
+
+    @Override
+    public void deselectRoute(long requestId, String sessionId, String routeId) {
+        if (SYSTEM_SESSION_ID.equals(sessionId)) {
+            super.selectRoute(requestId, sessionId, routeId);
+            return;
+        }
+        synchronized (mLock) {
+            var sessionRecord = getSessionRecordByOriginalId(sessionId);
+            var proxyRecord = sessionRecord != null ? sessionRecord.getProxyRecord() : null;
+            if (proxyRecord != null) {
+                var targetSourceRouteId =
+                        proxyRecord.mNewOriginalIdToSourceOriginalIdMap.get(routeId);
+                if (targetSourceRouteId != null) {
+                    proxyRecord.mProxy.deselectRoute(
+                            requestId, sessionRecord.getServiceSessionId(), targetSourceRouteId);
+                }
+                return;
+            }
+        }
+        notifyRequestFailed(requestId, MediaRoute2ProviderService.REASON_ROUTE_NOT_AVAILABLE);
+    }
+
     @GuardedBy("mLock")
     private SystemMediaSessionRecord getSessionRecordByOriginalId(String sessionOriginalId) {
         if (FORCE_GLOBAL_ROUTING_SESSION) {
diff --git a/services/core/java/com/android/server/media/quality/MediaQualityUtils.java b/services/core/java/com/android/server/media/quality/MediaQualityUtils.java
index d021a27..88d3f1f 100644
--- a/services/core/java/com/android/server/media/quality/MediaQualityUtils.java
+++ b/services/core/java/com/android/server/media/quality/MediaQualityUtils.java
@@ -1035,6 +1035,7 @@
          * - PICTURE_QUALITY_EVENT_TYPE
          * - PANEL_INIT_MAX_LUMINCE_NITS
          */
+        if (names == null) return null;
 
         HashSet<String> nameMap = new HashSet<>(names);
 
diff --git a/services/core/java/com/android/server/notification/NotificationChannelExtractor.java b/services/core/java/com/android/server/notification/NotificationChannelExtractor.java
index e2889fa..18bccd8 100644
--- a/services/core/java/com/android/server/notification/NotificationChannelExtractor.java
+++ b/services/core/java/com/android/server/notification/NotificationChannelExtractor.java
@@ -91,7 +91,7 @@
                 updateAttributes = true;
             }
             if (restrictAudioAttributesAlarm()
-                    && record.getNotification().category != CATEGORY_ALARM
+                    && !CATEGORY_ALARM.equals(record.getNotification().category)
                     && attributes.getUsage() == AudioAttributes.USAGE_ALARM) {
                 updateAttributes = true;
             }
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index b16b766..3a3deb0 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -4994,6 +4994,16 @@
         }
 
         @Override
+        public ParceledListSlice<NotificationChannelGroup>
+                getNotificationChannelGroupsWithoutChannels(String pkg) {
+            checkCallerIsSystemOrSameApp(pkg);
+            List<NotificationChannelGroup> groups = new ArrayList<>();
+            groups.addAll(mPreferencesHelper.getNotificationChannelGroupsWithoutChannels(pkg,
+                    Binder.getCallingUid()));
+            return new ParceledListSlice<>(groups);
+        }
+
+        @Override
         public void deleteNotificationChannelGroup(String pkg, String groupId) {
             checkCallerIsSystemOrSameApp(pkg);
 
@@ -7136,7 +7146,7 @@
             verifyPrivilegedListener(token, user, true);
 
             List<NotificationChannelGroup> groups = new ArrayList<>();
-            groups.addAll(mPreferencesHelper.getNotificationChannelGroups(
+            groups.addAll(mPreferencesHelper.getNotificationChannelGroupsWithoutChannels(
                     pkg, getUidForPackageAndUser(pkg, user)));
             return new ParceledListSlice<>(groups);
         }
diff --git a/services/core/java/com/android/server/notification/OWNERS b/services/core/java/com/android/server/notification/OWNERS
index 9f16662..43c68d1 100644
--- a/services/core/java/com/android/server/notification/OWNERS
+++ b/services/core/java/com/android/server/notification/OWNERS
@@ -2,8 +2,7 @@
 
 juliacr@google.com
 yurilin@google.com
-aroederer@google.com
 matiashe@google.com
 valiiftime@google.com
 jeffdq@google.com
-dsandler@android.com
\ No newline at end of file
+dsandler@android.com
diff --git a/services/core/java/com/android/server/notification/PreferencesHelper.java b/services/core/java/com/android/server/notification/PreferencesHelper.java
index 46c99cd..a171ffc 100644
--- a/services/core/java/com/android/server/notification/PreferencesHelper.java
+++ b/services/core/java/com/android/server/notification/PreferencesHelper.java
@@ -276,6 +276,7 @@
         // notification channels.
         if (android.app.Flags.nmBinderPerfCacheChannels()) {
             invalidateNotificationChannelCache();
+            invalidateNotificationChannelGroupCache();
         }
     }
 
@@ -1022,6 +1023,7 @@
             throw new IllegalArgumentException("group.getName() can't be empty");
         }
         boolean needsDndChange = false;
+        boolean changed = false;
         synchronized (mLock) {
             PackagePreferences r = getOrCreatePackagePreferencesLocked(pkg, uid);
             if (r == null) {
@@ -1052,6 +1054,7 @@
             }
             if (!group.equals(oldGroup)) {
                 // will log for new entries as well as name/description changes
+                changed = true;
                 MetricsLogger.action(getChannelGroupLog(group.getId(), pkg));
                 mNotificationChannelLogger.logNotificationChannelGroup(group, uid, pkg,
                         oldGroup == null,
@@ -1062,6 +1065,9 @@
         if (needsDndChange) {
             updateCurrentUserHasChannelsBypassingDnd(callingUid, fromSystemOrSystemUi);
         }
+        if (android.app.Flags.nmBinderPerfCacheChannels() && changed) {
+            invalidateNotificationChannelGroupCache();
+        }
     }
 
     @Override
@@ -1714,6 +1720,7 @@
             String groupId, int callingUid, boolean fromSystemOrSystemUi) {
         List<NotificationChannel> deletedChannels = new ArrayList<>();
         boolean groupBypassedDnd = false;
+        boolean deleted = false;
         synchronized (mLock) {
             PackagePreferences r = getPackagePreferencesLocked(pkg, uid);
             if (r == null || TextUtils.isEmpty(groupId)) {
@@ -1722,6 +1729,7 @@
 
             NotificationChannelGroup channelGroup = r.groups.remove(groupId);
             if (channelGroup != null) {
+                deleted = true;
                 mNotificationChannelLogger.logNotificationChannelGroupDeleted(channelGroup, uid,
                         pkg);
             }
@@ -1739,15 +1747,25 @@
         if (groupBypassedDnd) {
             updateCurrentUserHasChannelsBypassingDnd(callingUid, fromSystemOrSystemUi);
         }
-        if (android.app.Flags.nmBinderPerfCacheChannels() && deletedChannels.size() > 0) {
-            invalidateNotificationChannelCache();
+        if (android.app.Flags.nmBinderPerfCacheChannels()) {
+            if (deletedChannels.size() > 0) {
+                invalidateNotificationChannelCache();
+            }
+            if (deleted) {
+                invalidateNotificationChannelGroupCache();
+            }
         }
         return deletedChannels;
     }
 
+    /**
+     * Returns all notification channel groups for the provided package and uid, without channel
+     * information included. Note that this method returns the object instances from the internal
+     * structure; do not modify the returned groups before copying or parceling.
+     */
     @Override
-    public Collection<NotificationChannelGroup> getNotificationChannelGroups(String pkg,
-            int uid) {
+    public Collection<NotificationChannelGroup> getNotificationChannelGroupsWithoutChannels(
+            String pkg, int uid) {
         List<NotificationChannelGroup> groups = new ArrayList<>();
         synchronized (mLock) {
             PackagePreferences r = getPackagePreferencesLocked(pkg, uid);
@@ -2896,6 +2914,7 @@
             }
             if (android.app.Flags.nmBinderPerfCacheChannels() && removed) {
                 invalidateNotificationChannelCache();
+                invalidateNotificationChannelGroupCache();
             }
         }
     }
@@ -3008,6 +3027,7 @@
             updateConfig();
             if (android.app.Flags.nmBinderPerfCacheChannels()) {
                 invalidateNotificationChannelCache();
+                invalidateNotificationChannelGroupCache();
             }
         }
         return updated;
@@ -3028,6 +3048,7 @@
                 p.showBadge = DEFAULT_SHOW_BADGE;
                 if (android.app.Flags.nmBinderPerfCacheChannels()) {
                     invalidateNotificationChannelCache();
+                    invalidateNotificationChannelGroupCache();
                 }
             }
         }
@@ -3253,6 +3274,11 @@
         NotificationManager.invalidateNotificationChannelCache();
     }
 
+    @VisibleForTesting
+    protected void invalidateNotificationChannelGroupCache() {
+        NotificationManager.invalidateNotificationChannelGroupCache();
+    }
+
     private static String packagePreferencesKey(String pkg, int uid) {
         return pkg + "|" + uid;
     }
diff --git a/services/core/java/com/android/server/notification/RankingConfig.java b/services/core/java/com/android/server/notification/RankingConfig.java
index 001e91c..d5b8147 100644
--- a/services/core/java/com/android/server/notification/RankingConfig.java
+++ b/services/core/java/com/android/server/notification/RankingConfig.java
@@ -36,7 +36,7 @@
     boolean canShowNotificationsOnLockscreen(int userId);
     boolean canShowPrivateNotificationsOnLockScreen(int userId);
 
-    Collection<NotificationChannelGroup> getNotificationChannelGroups(String pkg,
+    Collection<NotificationChannelGroup> getNotificationChannelGroupsWithoutChannels(String pkg,
             int uid);
     void createNotificationChannelGroup(String pkg, int uid, NotificationChannelGroup group,
             boolean fromTargetApp, int callingUid, boolean isSystemOrSystemUi);
diff --git a/services/core/java/com/android/server/om/IdmapDaemon.java b/services/core/java/com/android/server/om/IdmapDaemon.java
index d33c860..9e31151 100644
--- a/services/core/java/com/android/server/om/IdmapDaemon.java
+++ b/services/core/java/com/android/server/om/IdmapDaemon.java
@@ -26,6 +26,7 @@
 import android.os.FabricatedOverlayInternal;
 import android.os.IBinder;
 import android.os.IIdmap2;
+import android.os.OverlayConstraint;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.StrictMode;
@@ -135,8 +136,8 @@
     }
 
     String createIdmap(@NonNull String targetPath, @NonNull String overlayPath,
-            @Nullable String overlayName, int policies, boolean enforce, int userId)
-            throws TimeoutException, RemoteException {
+            @Nullable String overlayName, int policies, boolean enforce, int userId,
+            @NonNull OverlayConstraint[] constraints) throws TimeoutException, RemoteException {
         try (Connection c = connect()) {
             final IIdmap2 idmap2 = c.getIdmap2();
             if (idmap2 == null) {
@@ -147,7 +148,7 @@
             }
 
             return idmap2.createIdmap(targetPath, overlayPath, TextUtils.emptyIfNull(overlayName),
-                    policies, enforce, userId);
+                    policies, enforce, userId, constraints);
         }
     }
 
@@ -165,8 +166,8 @@
     }
 
     boolean verifyIdmap(@NonNull String targetPath, @NonNull String overlayPath,
-            @Nullable String overlayName, int policies, boolean enforce, int userId)
-            throws Exception {
+            @Nullable String overlayName, int policies, boolean enforce, int userId,
+            @NonNull OverlayConstraint[] constraints) throws Exception {
         try (Connection c = connect()) {
             final IIdmap2 idmap2 = c.getIdmap2();
             if (idmap2 == null) {
@@ -177,7 +178,7 @@
             }
 
             return idmap2.verifyIdmap(targetPath, overlayPath, TextUtils.emptyIfNull(overlayName),
-                    policies, enforce, userId);
+                    policies, enforce, userId, constraints);
         }
     }
 
diff --git a/services/core/java/com/android/server/om/IdmapManager.java b/services/core/java/com/android/server/om/IdmapManager.java
index 86d05d9..4e86aa0 100644
--- a/services/core/java/com/android/server/om/IdmapManager.java
+++ b/services/core/java/com/android/server/om/IdmapManager.java
@@ -22,6 +22,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.UserIdInt;
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayInfo;
 import android.content.om.OverlayableInfo;
 import android.os.Build.VERSION_CODES;
@@ -102,7 +103,8 @@
      */
     @IdmapStatus int createIdmap(@NonNull final AndroidPackage targetPackage,
             @NonNull PackageState overlayPackageState, @NonNull final AndroidPackage overlayPackage,
-            String overlayBasePath, String overlayName, @UserIdInt int userId) {
+            String overlayBasePath, String overlayName, @UserIdInt int userId,
+            @NonNull final List<OverlayConstraint> constraints) {
         if (DEBUG) {
             Slog.d(TAG, "create idmap for " + targetPackage.getPackageName() + " and "
                     + overlayPackage.getPackageName());
@@ -112,12 +114,13 @@
             int policies = calculateFulfilledPolicies(targetPackage, overlayPackageState,
                     overlayPackage, userId);
             boolean enforce = enforceOverlayable(overlayPackageState, overlayPackage);
+            android.os.OverlayConstraint[] idmapConstraints = toIdmapConstraints(constraints);
             if (mIdmapDaemon.verifyIdmap(targetPath, overlayBasePath, overlayName, policies,
-                    enforce, userId)) {
+                    enforce, userId, idmapConstraints)) {
                 return IDMAP_IS_VERIFIED;
             }
             final boolean idmapCreated = mIdmapDaemon.createIdmap(targetPath, overlayBasePath,
-                    overlayName, policies, enforce, userId) != null;
+                    overlayName, policies, enforce, userId, idmapConstraints) != null;
             return (idmapCreated) ? IDMAP_IS_MODIFIED | IDMAP_IS_VERIFIED : IDMAP_NOT_EXIST;
         } catch (Exception e) {
             Slog.w(TAG, "failed to generate idmap for " + targetPath + " and "
@@ -275,4 +278,19 @@
 
         return false;
     }
+
+    @NonNull
+    private static android.os.OverlayConstraint[] toIdmapConstraints(
+            @NonNull final List<OverlayConstraint> constraints) {
+        android.os.OverlayConstraint[] idmapConstraints =
+                new android.os.OverlayConstraint[constraints.size()];
+        int index = 0;
+        for (OverlayConstraint constraint : constraints) {
+            android.os.OverlayConstraint idmapConstraint = new android.os.OverlayConstraint();
+            idmapConstraint.type = constraint.getType();
+            idmapConstraint.value = constraint.getValue();
+            idmapConstraints[index++] = idmapConstraint;
+        }
+        return idmapConstraints;
+    }
 }
diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java
index d6b587b..e613700 100644
--- a/services/core/java/com/android/server/om/OverlayManagerService.java
+++ b/services/core/java/com/android/server/om/OverlayManagerService.java
@@ -46,6 +46,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.om.IOverlayManager;
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayIdentifier;
 import android.content.om.OverlayInfo;
 import android.content.om.OverlayManagerTransaction;
@@ -674,6 +675,18 @@
         @Override
         public boolean setEnabled(@Nullable final String packageName, final boolean enable,
                 int userIdArg) {
+            return setEnabled(packageName, enable, userIdArg,
+                    Collections.emptyList() /* constraints */);
+        }
+
+        @Override
+        public boolean enableWithConstraints(@Nullable final String packageName, int userIdArg,
+                @NonNull final List<OverlayConstraint> constraints) {
+            return setEnabled(packageName, true /* enable */, userIdArg, constraints);
+        }
+
+        private boolean setEnabled(@Nullable final String packageName, final boolean enable,
+                int userIdArg, @NonNull final List<OverlayConstraint> constraints) {
             if (packageName == null) {
                 return false;
             }
@@ -690,7 +703,7 @@
                     synchronized (mLock) {
                         try {
                             updateTargetPackagesLocked(
-                                    mImpl.setEnabled(overlay, enable, realUserId));
+                                    mImpl.setEnabled(overlay, enable, realUserId, constraints));
                             return true;
                         } catch (OperationFailedException e) {
                             return false;
@@ -989,13 +1002,15 @@
                     case TYPE_SET_ENABLED:
                         Set<UserPackage> result = null;
                         result = CollectionUtils.addAll(result,
-                                mImpl.setEnabled(request.overlay, true, realUserId));
+                                mImpl.setEnabled(request.overlay, true /* enable */, realUserId,
+                                        request.constraints));
                         result = CollectionUtils.addAll(result,
                                 mImpl.setHighestPriority(request.overlay, realUserId));
                         return CollectionUtils.emptyIfNull(result);
 
                     case TYPE_SET_DISABLED:
-                        return mImpl.setEnabled(request.overlay, false, realUserId);
+                        return mImpl.setEnabled(request.overlay, false /* enable */, realUserId,
+                                request.constraints);
 
                     case TYPE_REGISTER_FABRICATED:
                         final FabricatedOverlayInternal fabricated =
diff --git a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
index 02c0190..ee29849 100644
--- a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
+++ b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java
@@ -34,11 +34,13 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.om.CriticalOverlayInfo;
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayIdentifier;
 import android.content.om.OverlayInfo;
 import android.content.pm.UserPackage;
 import android.content.pm.overlay.OverlayPaths;
 import android.content.pm.parsing.FrameworkParsingPackageUtils;
+import android.content.res.Flags;
 import android.os.FabricatedOverlayInfo;
 import android.os.FabricatedOverlayInternal;
 import android.text.TextUtils;
@@ -246,7 +248,7 @@
                             + oi.targetPackageName + "' in category '" + oi.category + "' for user "
                             + newUserId);
                     mSettings.setEnabled(overlay, newUserId, true);
-                    if (updateState(oi, newUserId, 0)) {
+                    if (updateState(oi, newUserId, 0, oi.constraints)) {
                         CollectionUtils.add(updatedTargets,
                                 UserPackage.of(oi.userId, oi.targetPackageName));
                     }
@@ -338,7 +340,7 @@
         for (int i = 0, n = overlays.size(); i < n; i++) {
             final OverlayInfo oi = overlays.get(i);
             try {
-                modified |= updateState(oi, userId, flags);
+                modified |= updateState(oi, userId, flags, oi.constraints);
             } catch (OverlayManagerSettings.BadKeyException e) {
                 Slog.e(TAG, "failed to update settings", e);
                 modified |= mSettings.remove(oi.getOverlayIdentifier(), userId);
@@ -386,7 +388,7 @@
             }
 
             // Update the enabled state of the overlay.
-            if (updateState(currentInfo, userId, flags)) {
+            if (updateState(currentInfo, userId, flags, currentInfo.constraints)) {
                 updatedTargets = CollectionUtils.add(updatedTargets,
                         UserPackage.of(userId, currentInfo.targetPackageName));
             }
@@ -440,10 +442,22 @@
 
     @NonNull
     Set<UserPackage> setEnabled(@NonNull final OverlayIdentifier overlay,
-            final boolean enable, final int userId) throws OperationFailedException {
+            final boolean enable, final int userId,
+            @NonNull final List<OverlayConstraint> constraints)
+            throws OperationFailedException {
         if (DEBUG) {
-            Slog.d(TAG, String.format("setEnabled overlay=%s enable=%s userId=%d",
-                    overlay, enable, userId));
+            Slog.d(TAG, TextUtils.formatSimple(
+                    "setEnabled overlay=%s enable=%s userId=%d constraints=%s",
+                    overlay, enable, userId, OverlayConstraint.constraintsToString(constraints)));
+        }
+
+        boolean hasConstraints = constraints != null && !constraints.isEmpty();
+        if (!Flags.rroConstraints() && hasConstraints) {
+            throw new OperationFailedException("RRO constraints are not supported");
+        }
+        if (!enable && hasConstraints) {
+            throw new OperationFailedException(
+                    "Constraints can only be set when enabling an overlay");
         }
 
         try {
@@ -455,7 +469,7 @@
             }
 
             boolean modified = mSettings.setEnabled(overlay, userId, enable);
-            modified |= updateState(oi, userId, 0);
+            modified |= updateState(oi, userId, 0, constraints);
 
             if (modified) {
                 return Set.of(UserPackage.of(userId, oi.targetPackageName));
@@ -469,7 +483,7 @@
     Optional<UserPackage> setEnabledExclusive(@NonNull final OverlayIdentifier overlay,
             boolean withinCategory, final int userId) throws OperationFailedException {
         if (DEBUG) {
-            Slog.d(TAG, String.format("setEnabledExclusive overlay=%s"
+            Slog.d(TAG, TextUtils.formatSimple("setEnabledExclusive overlay=%s"
                     + " withinCategory=%s userId=%d", overlay, withinCategory, userId));
         }
 
@@ -501,12 +515,16 @@
 
                 // Disable the overlay.
                 modified |= mSettings.setEnabled(disabledOverlay, userId, false);
-                modified |= updateState(disabledInfo, userId, 0);
+                modified |= updateState(disabledInfo, userId, 0 /* flags */,
+                        Collections.emptyList() /* constraints */);
             }
 
             // Enable the selected overlay.
             modified |= mSettings.setEnabled(overlay, userId, true);
-            modified |= updateState(enabledInfo, userId, 0);
+            // No constraints should be applied when exclusively enabling an overlay within
+            // a category.
+            modified |= updateState(enabledInfo, userId, 0 /* flags */,
+                    Collections.emptyList() /* constraints */);
 
             if (modified) {
                 return Optional.of(UserPackage.of(userId, enabledInfo.targetPackageName));
@@ -569,7 +587,8 @@
                 // overlay.
                 mSettings.setBaseCodePath(overlayIdentifier, userId, info.path);
             }
-            if (updateState(oi, userId, 0)) {
+            // No constraints should be applied when registering a fabricated overlay.
+            if (updateState(oi, userId, 0 /* flags */, Collections.emptyList() /* constraints */)) {
                 updatedTargets.add(UserPackage.of(userId, oi.targetPackageName));
             }
         } catch (OverlayManagerSettings.BadKeyException e) {
@@ -670,7 +689,7 @@
 
     Set<UserPackage> setHighestPriority(@NonNull final OverlayIdentifier overlay,
             final int userId) throws OperationFailedException {
-        try{
+        try {
             if (DEBUG) {
                 Slog.d(TAG, "setHighestPriority overlay=" + overlay + " userId=" + userId);
             }
@@ -693,7 +712,7 @@
 
     Optional<UserPackage> setLowestPriority(@NonNull final OverlayIdentifier overlay,
             final int userId) throws OperationFailedException {
-        try{
+        try {
             if (DEBUG) {
                 Slog.d(TAG, "setLowestPriority packageName=" + overlay + " userId=" + userId);
             }
@@ -784,7 +803,8 @@
      * Returns true if the settings/state was modified, false otherwise.
      */
     private boolean updateState(@NonNull final CriticalOverlayInfo info,
-            final int userId, final int flags) throws OverlayManagerSettings.BadKeyException {
+            final int userId, final int flags, @NonNull final List<OverlayConstraint> constraints)
+            throws OverlayManagerSettings.BadKeyException {
         final OverlayIdentifier overlay = info.getOverlayIdentifier();
         var targetPackageState =
                 mPackageManager.getPackageStateForUser(info.getTargetPackageName(), userId);
@@ -803,6 +823,7 @@
         }
 
         modified |= mSettings.setCategory(overlay, userId, overlayPackage.getOverlayCategory());
+        modified |= mSettings.setConstraints(overlay, userId, constraints);
         if (!info.isFabricated()) {
             modified |= mSettings.setBaseCodePath(overlay, userId,
                     overlayPackage.getSplits().get(0).getPath());
@@ -817,7 +838,7 @@
                 && !isPackageConfiguredMutable(overlayPackage))) {
             idmapStatus = mIdmapManager.createIdmap(targetPackage, overlayPackageState,
                     overlayPackage, updatedOverlayInfo.baseCodePath, overlay.getOverlayName(),
-                    userId);
+                    userId, updatedOverlayInfo.constraints);
             modified |= (idmapStatus & IDMAP_IS_MODIFIED) != 0;
         }
 
@@ -826,7 +847,7 @@
                 userId, flags, idmapStatus);
         if (currentState != newState) {
             if (DEBUG) {
-                Slog.d(TAG, String.format("%s:%d: %s -> %s",
+                Slog.d(TAG, TextUtils.formatSimple("%s:%d: %s -> %s",
                         overlay, userId,
                         OverlayInfo.stateToString(currentState),
                         OverlayInfo.stateToString(newState)));
diff --git a/services/core/java/com/android/server/om/OverlayManagerSettings.java b/services/core/java/com/android/server/om/OverlayManagerSettings.java
index e6b1c5f..cb01727 100644
--- a/services/core/java/com/android/server/om/OverlayManagerSettings.java
+++ b/services/core/java/com/android/server/om/OverlayManagerSettings.java
@@ -21,6 +21,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayIdentifier;
 import android.content.om.OverlayInfo;
 import android.os.UserHandle;
@@ -44,6 +45,7 @@
 import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
@@ -78,7 +80,8 @@
         remove(overlay, userId);
         final SettingsItem item = new SettingsItem(overlay, userId, targetPackageName,
                 targetOverlayableName, baseCodePath, OverlayInfo.STATE_UNKNOWN, isEnabled,
-                isMutable, priority, overlayCategory, isFabricated);
+                isMutable, priority, overlayCategory, isFabricated,
+                Collections.emptyList() /* constraints */);
         insert(item);
         return item.getOverlayInfo();
     }
@@ -155,6 +158,15 @@
         return mItems.get(idx).setEnabled(enable);
     }
 
+    boolean setConstraints(@NonNull final OverlayIdentifier overlay, final int userId,
+            @NonNull final List<OverlayConstraint> constraints) throws BadKeyException {
+        final int idx = select(overlay, userId);
+        if (idx < 0) {
+            throw new BadKeyException(overlay, userId);
+        }
+        return mItems.get(idx).setConstraints(constraints);
+    }
+
     @OverlayInfo.State int getState(@NonNull final OverlayIdentifier overlay, final int userId)
             throws BadKeyException {
         final int idx = select(overlay, userId);
@@ -424,6 +436,8 @@
         pw.println("mPriority..............: " + item.mPriority);
         pw.println("mCategory..............: " + item.mCategory);
         pw.println("mIsFabricated..........: " + item.mIsFabricated);
+        pw.println("mConstraints...........: "
+                + OverlayConstraint.constraintsToString(item.mConstraints));
 
         pw.decreaseIndent();
         pw.println("}");
@@ -480,6 +494,7 @@
     static final class Serializer {
         private static final String TAG_OVERLAYS = "overlays";
         private static final String TAG_ITEM = "item";
+        private static final String TAG_CONSTRAINT = "constraint";
 
         private static final String ATTR_BASE_CODE_PATH = "baseCodePath";
         private static final String ATTR_IS_ENABLED = "isEnabled";
@@ -495,8 +510,11 @@
         private static final String ATTR_VERSION = "version";
         private static final String ATTR_IS_FABRICATED = "fabricated";
 
+        private static final String ATTR_CONSTRAINT_TYPE = "type";
+        private static final String ATTR_CONSTRAINT_VALUE = "value";
+
         @VisibleForTesting
-        static final int CURRENT_VERSION = 4;
+        static final int CURRENT_VERSION = 5;
 
         public static void restore(@NonNull final ArrayList<SettingsItem> table,
                 @NonNull final InputStream is) throws IOException, XmlPullParserException {
@@ -526,7 +544,7 @@
                     // and overwritten.
                     throw new XmlPullParserException("old version " + oldVersion + "; ignoring");
                 case 3:
-                    // Upgrading from version 3 to 4 is not a breaking change so do not ignore the
+                    // Upgrading from version 3 to 5 is not a breaking change so do not ignore the
                     // overlay file.
                     return;
                 default:
@@ -553,12 +571,23 @@
             final boolean isFabricated = parser.getAttributeBoolean(null, ATTR_IS_FABRICATED,
                     false);
 
+            final List<OverlayConstraint> constraints = new ArrayList<>();
+            while (XmlUtils.nextElementWithin(parser, depth)) {
+                if (TAG_CONSTRAINT.equals(parser.getName())) {
+                    final OverlayConstraint constraint = new OverlayConstraint(
+                            parser.getAttributeInt(null, ATTR_CONSTRAINT_TYPE),
+                            parser.getAttributeInt(null, ATTR_CONSTRAINT_VALUE));
+                    constraints.add(constraint);
+                }
+            }
+
             return new SettingsItem(overlay, userId, targetPackageName, targetOverlayableName,
-                    baseCodePath, state, isEnabled, !isStatic, priority, category, isFabricated);
+                    baseCodePath, state, isEnabled, !isStatic, priority, category, isFabricated,
+                    constraints);
         }
 
         public static void persist(@NonNull final ArrayList<SettingsItem> table,
-                @NonNull final OutputStream os) throws IOException, XmlPullParserException {
+                @NonNull final OutputStream os) throws IOException {
             final TypedXmlSerializer xml = Xml.resolveSerializer(os);
             xml.startDocument(null, true);
             xml.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
@@ -590,6 +619,14 @@
             xml.attributeInt(null, ATTR_PRIORITY, item.mPriority);
             XmlUtils.writeStringAttribute(xml, ATTR_CATEGORY, item.mCategory);
             XmlUtils.writeBooleanAttribute(xml, ATTR_IS_FABRICATED, item.mIsFabricated);
+
+            for (OverlayConstraint constraint : item.mConstraints) {
+                xml.startTag(null, TAG_CONSTRAINT);
+                xml.attributeInt(null, ATTR_CONSTRAINT_TYPE, constraint.getType());
+                xml.attributeInt(null, ATTR_CONSTRAINT_VALUE, constraint.getValue());
+                xml.endTag(null, TAG_CONSTRAINT);
+            }
+
             xml.endTag(null, TAG_ITEM);
         }
     }
@@ -603,17 +640,19 @@
         private @OverlayInfo.State int mState;
         private boolean mIsEnabled;
         private OverlayInfo mCache;
-        private boolean mIsMutable;
+        private final boolean mIsMutable;
         private int mPriority;
         private String mCategory;
-        private boolean mIsFabricated;
+        private final boolean mIsFabricated;
+        @NonNull
+        private List<OverlayConstraint> mConstraints;
 
         SettingsItem(@NonNull final OverlayIdentifier overlay, final int userId,
                 @NonNull final String targetPackageName,
                 @Nullable final String targetOverlayableName, @NonNull final String baseCodePath,
                 final @OverlayInfo.State int state, final boolean isEnabled,
                 final boolean isMutable, final int priority,  @Nullable String category,
-                final boolean isFabricated) {
+                final boolean isFabricated, @NonNull final List<OverlayConstraint> constraints) {
             mOverlay = overlay;
             mUserId = userId;
             mTargetPackageName = targetPackageName;
@@ -626,6 +665,8 @@
             mIsMutable = isMutable;
             mPriority = priority;
             mIsFabricated = isFabricated;
+            Objects.requireNonNull(constraints);
+            mConstraints = constraints;
         }
 
         private String getTargetPackageName() {
@@ -692,11 +733,26 @@
             return false;
         }
 
+        private boolean setConstraints(@NonNull List<OverlayConstraint> constraints) {
+            Objects.requireNonNull(constraints);
+
+            if (!mIsMutable) {
+                return false;
+            }
+
+            if (!Objects.equals(mConstraints, constraints)) {
+                mConstraints = constraints;
+                invalidateCache();
+                return true;
+            }
+            return false;
+        }
+
         private OverlayInfo getOverlayInfo() {
             if (mCache == null) {
                 mCache = new OverlayInfo(mOverlay.getPackageName(), mOverlay.getOverlayName(),
                         mTargetPackageName, mTargetOverlayableName, mCategory, mBaseCodePath,
-                        mState, mUserId, mPriority, mIsMutable, mIsFabricated);
+                        mState, mUserId, mPriority, mIsMutable, mIsFabricated, mConstraints);
             }
             return mCache;
         }
diff --git a/services/core/java/com/android/server/pm/AppsFilterImpl.java b/services/core/java/com/android/server/pm/AppsFilterImpl.java
index cc4c2b5..068d68d 100644
--- a/services/core/java/com/android/server/pm/AppsFilterImpl.java
+++ b/services/core/java/com/android/server/pm/AppsFilterImpl.java
@@ -40,6 +40,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
+import android.app.ApplicationPackageManager;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManagerInternal;
 import android.content.pm.SigningDetails;
@@ -173,6 +174,10 @@
      * Report a change to observers.
      */
     private void onChanged() {
+        // App visibility may have changed, which means that earlier fetches from these caches may
+        // be invalid.
+        PackageManager.invalidatePackageInfoCache();
+        ApplicationPackageManager.invalidateGetPackagesForUidCache();
         dispatchChange(this);
     }
 
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java
index 476ba7b..55d2508 100644
--- a/services/core/java/com/android/server/pm/InstallPackageHelper.java
+++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java
@@ -3044,20 +3044,11 @@
 
             // Set the OP_ACCESS_RESTRICTED_SETTINGS op, which is used by ECM (see {@link
             // EnhancedConfirmationManager}) as a persistent state denoting whether an app is
-            // currently guarded by ECM, not guarded by ECM, or (in Android V+) that this should
-            // be decided later.
-            if (android.permission.flags.Flags.enhancedConfirmationModeApisEnabled()
-                    && android.security.Flags.extendEcmToAllSettings()) {
-                final int appId = request.getAppId();
-                // TODO: b/388960315 - Implement a long-term solution to race condition
-                mPm.mHandler.postDelayed(() -> {
-                    for (int userId : firstUserIds) {
-                        // MODE_DEFAULT means that the app's guardedness will be decided lazily
-                        setAccessRestrictedSettingsMode(packageName, appId, userId,
-                                AppOpsManager.MODE_DEFAULT);
-                    }
-                }, 1000L);
-            } else {
+            // currently guarded by ECM, not guarded by ECM or (in Android V+) that this should
+            // be decided later. In Android B, the op's default mode was updated to the
+            // "should be decided later" case, and so this step is now unnecessary.
+            if (!android.permission.flags.Flags.enhancedConfirmationModeApisEnabled()
+                    || !android.security.Flags.extendEcmToAllSettings()) {
                 // Apply restricted settings on potentially dangerous packages. Needs to happen
                 // after appOpsManager is notified of the new package
                 if (request.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index 4c959fa..2dd6798 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -35,6 +35,7 @@
 import static android.content.pm.LauncherApps.FLAG_CACHE_BUBBLE_SHORTCUTS;
 import static android.content.pm.LauncherApps.FLAG_CACHE_NOTIFICATION_SHORTCUTS;
 import static android.content.pm.LauncherApps.FLAG_CACHE_PEOPLE_TILE_SHORTCUTS;
+import static android.view.WindowManager.PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI;
 
 import static com.android.server.pm.PackageArchiver.isArchivingEnabled;
 
@@ -118,7 +119,6 @@
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.content.PackageMonitor;
-import com.android.internal.infra.AndroidFuture;
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.CollectionUtils;
@@ -850,7 +850,9 @@
                     // package does not exist; should not happen
                     return null;
                 }
-                return new LauncherActivityInfoInternal(activityInfo, incrementalStatesInfo, user);
+                return new LauncherActivityInfoInternal(activityInfo, incrementalStatesInfo, user,
+                        supportsMultiInstance(mIPM, activityInfo.getComponentName(),
+                                user.getIdentifier()));
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -941,7 +943,7 @@
                         archiveState.getActivityInfos();
                 for (int j = 0; j < archiveActivityInfoList.size(); j++) {
                     launcherActivityList.add(
-                            constructLauncherActivityInfoForArchivedApp(
+                            constructLauncherActivityInfoForArchivedApp(mIPM,
                                     user, applicationInfo, archiveActivityInfoList.get(j)));
                 }
             }
@@ -949,6 +951,7 @@
         }
 
         private static LauncherActivityInfoInternal constructLauncherActivityInfoForArchivedApp(
+                IPackageManager pm,
                 UserHandle user,
                 ApplicationInfo applicationInfo,
                 ArchiveState.ArchiveActivityInfo archiveActivityInfo) {
@@ -964,7 +967,9 @@
                     activityInfo,
                     new IncrementalStatesInfo(
                             false /* isLoading */, 0 /* progress */, 0 /* loadingCompletedTime */),
-                    user);
+                    user,
+                    supportsMultiInstance(pm, activityInfo.getComponentName(),
+                            user.getIdentifier()));
         }
 
         @NonNull
@@ -1025,7 +1030,9 @@
                     continue;
                 }
                 results.add(new LauncherActivityInfoInternal(ri.activityInfo,
-                        incrementalStatesInfo, user));
+                        incrementalStatesInfo, user,
+                        supportsMultiInstance(mIPM, ri.activityInfo.getComponentName(),
+                                user.getIdentifier())));
             }
             return results;
         }
@@ -1660,6 +1667,29 @@
             }
         }
 
+        /**
+         * Returns whether the specified activity info has the multi-instance property declared.
+         */
+        @VisibleForTesting
+        static boolean supportsMultiInstance(@NonNull IPackageManager pm,
+                @NonNull ComponentName component, int userId) {
+            try {
+                // Try to get the property for the component
+                return pm.getPropertyAsUser(
+                        PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, component.getPackageName(),
+                        component.getClassName(), userId).getBoolean();
+            } catch (Exception e) {
+                try {
+                    // Fallback to the property for the app
+                    return pm.getPropertyAsUser(
+                            PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, component.getPackageName(),
+                            null, userId).getBoolean();
+                } catch (Exception e2) {
+                    return false;
+                }
+            }
+        }
+
         @Override
         public @Nullable LauncherUserInfo getLauncherUserInfo(@NonNull UserHandle user) {
             if (!canAccessProfile(user.getIdentifier(),
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 1b41c36..352985d 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -189,6 +189,7 @@
 import com.android.internal.util.Preconditions;
 import com.android.modules.utils.TypedXmlPullParser;
 import com.android.modules.utils.TypedXmlSerializer;
+import com.android.server.IoThread;
 import com.android.server.LocalServices;
 import com.android.server.art.ArtManagedInstallFileHelper;
 import com.android.server.pm.Installer.InstallerException;
@@ -236,6 +237,8 @@
     private static final int MSG_SESSION_VALIDATION_FAILURE = 5;
     private static final int MSG_PRE_APPROVAL_REQUEST = 6;
 
+    private static final int MSG_ON_NATIVE_LIBS_EXTRACTED = 7;
+
     /** XML constants used for persisting a session */
     static final String TAG_SESSION = "session";
     static final String TAG_CHILD_SESSION = "childSession";
@@ -943,6 +946,8 @@
                 case MSG_PRE_APPROVAL_REQUEST:
                     handlePreapprovalRequest();
                     break;
+                case MSG_ON_NATIVE_LIBS_EXTRACTED:
+                    handleOnNativeLibsExtracted();
             }
 
             return true;
@@ -2908,15 +2913,13 @@
     }
 
     private void verify() {
+        // Extract native libraries on the IO thread before proceeding to the verification
+        runExtractNativeLibraries();
+    }
+
+    @WorkerThread
+    private void handleOnNativeLibsExtracted() {
         try {
-            List<PackageInstallerSession> children = getChildSessions();
-            if (isMultiPackage()) {
-                for (PackageInstallerSession child : children) {
-                    child.extractNativeLibraries();
-                }
-            } else {
-                extractNativeLibraries();
-            }
             verifyNonStaged();
         } catch (PackageManagerException e) {
             final String completeMsg = ExceptionUtils.getCompleteMessage(e);
@@ -2926,6 +2929,27 @@
         }
     }
 
+    private void runExtractNativeLibraries() {
+        IoThread.getHandler().post(() -> {
+            try {
+                List<PackageInstallerSession> children = getChildSessions();
+                if (isMultiPackage()) {
+                    for (PackageInstallerSession child : children) {
+                        child.extractNativeLibraries();
+                    }
+                } else {
+                    extractNativeLibraries();
+                }
+                mHandler.obtainMessage(MSG_ON_NATIVE_LIBS_EXTRACTED).sendToTarget();
+            } catch (PackageManagerException e) {
+                final String completeMsg = ExceptionUtils.getCompleteMessage(e);
+                final String errorMsg = PackageManager.installStatusToString(e.error, completeMsg);
+                setSessionFailed(e.error, errorMsg);
+                onSessionVerificationFailure(e.error, errorMsg);
+            }
+        });
+    }
+
     private IntentSender getRemoteStatusReceiver() {
         synchronized (mLock) {
             return mRemoteStatusReceiver;
@@ -3072,6 +3096,7 @@
         }
     }
 
+    @WorkerThread
     private void extractNativeLibraries() throws PackageManagerException {
         synchronized (mLock) {
             if (mPackageLite != null) {
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 61429a4..8343935 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1477,7 +1477,7 @@
         ArchiveState archiveState;
         synchronized (mLock) {
             PackageSetting ps = mSettings.getPackageLPr(packageName);
-            if (ps == null) {
+            if (ps == null || snapshot.shouldFilterApplication(ps, binderUid, userId)) {
                 return null;
             }
             var psi = ps.getUserStateOrDefault(userId);
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 4860b7cd..76c5240 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -231,6 +231,7 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.internal.os.RoSystemProperties;
 import com.android.internal.policy.IKeyguardDismissCallback;
+import com.android.internal.policy.IKeyguardService;
 import com.android.internal.policy.IShortcutService;
 import com.android.internal.policy.KeyInterceptionInfo;
 import com.android.internal.policy.LogDecelerateInterpolator;
@@ -309,6 +310,7 @@
     static final int SHORT_PRESS_POWER_CLOSE_IME_OR_GO_HOME = 5;
     static final int SHORT_PRESS_POWER_LOCK_OR_SLEEP = 6;
     static final int SHORT_PRESS_POWER_DREAM_OR_SLEEP = 7;
+    static final int SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP = 8;
 
     // must match: config_LongPressOnPowerBehavior in config.xml
     // The config value can be overridden using Settings.Global.POWER_BUTTON_LONG_PRESS
@@ -403,6 +405,13 @@
 
     public static final String TRACE_WAIT_FOR_ALL_WINDOWS_DRAWN_METHOD = "waitForAllWindowsDrawn";
 
+    /**
+     * String extra key passed in the bundle of {@link IKeyguardService#doKeyguardTimeout(Bundle)}
+     * if the value is {@code true}, indicates to keyguard that the device should show the
+     * glanceable hub upon locking. If the hub is already visible, the device should go to sleep.
+     */
+    public static final String EXTRA_TRIGGER_HUB = "extra_trigger_hub";
+
     private static final int POWER_BUTTON_SUPPRESSION_DELAY_DEFAULT_MILLIS = 800;
 
     /**
@@ -1154,7 +1163,8 @@
         }
     }
 
-    private void powerPress(long eventTime, int count, int displayId) {
+    @VisibleForTesting
+    void powerPress(long eventTime, int count, int displayId) {
         // SideFPS still needs to know about suppressed power buttons, in case it needs to block
         // an auth attempt.
         if (count == 1) {
@@ -1229,6 +1239,43 @@
                             () -> sleepDefaultDisplayFromPowerButton(eventTime, 0));
                     break;
                 }
+                case SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP: {
+                    // With this power button behavior, the following behavior is expected from each
+                    // system space on a power button short press:
+                    // - Unlocked: go to hub if available, dream if not, screen off if neither
+                    // - Lock screen, hub, or dream: go to screen off
+                    // - Screen off: go to hub if available, dream if not, lock screen if enabled,
+                    //               unlocked if lockscreen is disabled
+                    // TODO(b/394657933): consolidate policy into SysUI
+                    final boolean hubEnabled = Settings.Secure.getIntForUser(
+                            mContext.getContentResolver(), Settings.Secure.GLANCEABLE_HUB_ENABLED,
+                            1, mCurrentUserId) == 1;
+
+                    if (mDreamManagerInternal.isDreaming() || isKeyguardShowing()) {
+                        // If the device is already dreaming or on keyguard, go to sleep.
+                        sleepDefaultDisplayFromPowerButton(eventTime, 0);
+                        break;
+                    }
+
+                    // Check isLockScreenDisabled to exclude NONE lock screen option, which cannot
+                    // show hub.
+                    boolean keyguardAvailable = !mLockPatternUtils.isLockScreenDisabled(
+                            mCurrentUserId);
+                    if (mUserManagerInternal.isUserUnlocked(mCurrentUserId) && hubEnabled
+                            && keyguardAvailable && mDreamManagerInternal.dreamConditionActive()) {
+                        // If the hub can be launched, send a message to keyguard.
+                        Bundle options = new Bundle();
+                        options.putBoolean(EXTRA_TRIGGER_HUB, true);
+                        lockNow(options);
+                    } else {
+                        // If the hub cannot be run, attempt to dream instead.
+                        attemptToDreamFromShortPowerButtonPress(
+                                /* isScreenOn */ true,
+                                /* noDreamAction */
+                                () -> sleepDefaultDisplayFromPowerButton(eventTime, 0));
+                    }
+                    break;
+                }
             }
         }
     }
@@ -1279,7 +1326,10 @@
      */
     private void attemptToDreamFromShortPowerButtonPress(
             boolean isScreenOn, Runnable noDreamAction) {
-        if (mShortPressOnPowerBehavior != SHORT_PRESS_POWER_DREAM_OR_SLEEP) {
+        if (mShortPressOnPowerBehavior != SHORT_PRESS_POWER_DREAM_OR_SLEEP
+                && mShortPressOnPowerBehavior != SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP) {
+            // If the power button behavior isn't one that should be able to trigger the dream, give
+            // up.
             noDreamAction.run();
             return;
         }
@@ -3683,8 +3733,7 @@
                 }
                 break;
             case KeyEvent.KEYCODE_3:
-                if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
-                        && keyboardA11yShortcutControl()) {
+                if (keyboardA11yShortcutControl()) {
                     if (firstDown && event.isMetaPressed()
                             && event.isAltPressed()) {
                         final boolean bounceKeysEnabled =
@@ -3715,8 +3764,7 @@
                 }
                 break;
             case KeyEvent.KEYCODE_5:
-                if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()
-                        && keyboardA11yShortcutControl()) {
+                if (keyboardA11yShortcutControl()) {
                     if (firstDown && event.isMetaPressed() && event.isAltPressed()) {
                         final boolean stickyKeysEnabled =
                                 InputSettings.isAccessibilityStickyKeysEnabled(
@@ -3730,8 +3778,7 @@
                 }
                 break;
             case KeyEvent.KEYCODE_6:
-                if (InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()
-                        && keyboardA11yShortcutControl()) {
+                if (keyboardA11yShortcutControl()) {
                     if (firstDown && event.isMetaPressed() && event.isAltPressed()) {
                         final boolean slowKeysEnabled =
                                 InputSettings.isAccessibilitySlowKeysEnabled(mContext);
@@ -5132,8 +5179,7 @@
     }
 
     /**
-     * Updates the occluded state of the Keyguard immediately via
-     * {@link com.android.internal.policy.IKeyguardService}.
+     * Updates the occluded state of the Keyguard immediately via {@link IKeyguardService}.
      *
      * @param isOccluded Whether the Keyguard is occluded by another window.
      * @return Whether the flags have changed and we have to redo the layout.
diff --git a/services/core/java/com/android/server/power/ThermalManagerService.java b/services/core/java/com/android/server/power/ThermalManagerService.java
index f46fa44..5ee9b7d 100644
--- a/services/core/java/com/android/server/power/ThermalManagerService.java
+++ b/services/core/java/com/android/server/power/ThermalManagerService.java
@@ -2096,11 +2096,16 @@
                 }
 
                 if (mCachedHeadrooms.contains(forecastSeconds)) {
-                    // TODO(b/360486877): replace with metrics
-                    Slog.d(TAG,
-                            "Headroom forecast in " + forecastSeconds + "s served from cache: "
-                                    + mCachedHeadrooms.get(forecastSeconds));
-                    return mCachedHeadrooms.get(forecastSeconds);
+                    float headroom = mCachedHeadrooms.get(forecastSeconds);
+                    // TODO(b/360486877): add new API status enum or a new atom field to
+                    //                    differentiate success from reading cache or not
+                    FrameworkStatsLog.write(FrameworkStatsLog.THERMAL_HEADROOM_CALLED,
+                            Binder.getCallingUid(),
+                            FrameworkStatsLog.THERMAL_HEADROOM_CALLED__API_STATUS__SUCCESS,
+                            headroom, forecastSeconds);
+                    Slog.d(TAG, "Headroom forecast in " + forecastSeconds + "s served from cache: "
+                            + headroom);
+                    return headroom;
                 }
 
                 float maxNormalized = Float.NaN;
@@ -2121,9 +2126,15 @@
                     if (samples.size() < MINIMUM_SAMPLE_COUNT) {
                         if (mSamples.size() == 1 && mCachedHeadrooms.contains(0)) {
                             // if only one sensor name exists, then try reading the cache
-                            // TODO(b/360486877): replace with metrics
-                            Slog.d(TAG, "Headroom forecast cached: " + mCachedHeadrooms.get(0));
-                            return mCachedHeadrooms.get(0);
+                            // TODO(b/360486877): add new API status enum or a new atom field to
+                            //                    differentiate success from reading cache or not
+                            float headroom = mCachedHeadrooms.get(0);
+                            FrameworkStatsLog.write(FrameworkStatsLog.THERMAL_HEADROOM_CALLED,
+                                    Binder.getCallingUid(),
+                                    FrameworkStatsLog.THERMAL_HEADROOM_CALLED__API_STATUS__SUCCESS,
+                                    headroom, 0);
+                            Slog.d(TAG, "Headroom forecast in 0s served from cache: " + headroom);
+                            return headroom;
                         }
                         // Don't try to forecast, just use the latest one we have
                         float normalized = normalizeTemperature(currentTemperature, threshold);
diff --git a/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java b/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java
index cc05630..f29d5b2 100644
--- a/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java
+++ b/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java
@@ -35,7 +35,7 @@
     @Override
     public void calculate(BatteryUsageStats.Builder builder, BatteryStats batteryStats,
             long rawRealtimeUs, long rawUptimeUs, BatteryUsageStatsQuery query) {
-        builder.setDischargePercentage(
+        builder.addDischargePercentage(
                 batteryStats.getDischargeAmount(BatteryStats.STATS_SINCE_CHARGED));
 
         int batteryCapacityMah = batteryStats.getBatteryCapacity();
@@ -45,11 +45,9 @@
                 batteryStats.getLowDischargeAmountSinceCharge() * batteryCapacityMah / 100.0;
         final double dischargedPowerUpperBoundMah =
                 batteryStats.getHighDischargeAmountSinceCharge() * batteryCapacityMah / 100.0;
-        builder.setDischargePercentage(
-                batteryStats.getDischargeAmount(BatteryStats.STATS_SINCE_CHARGED))
-                .setDischargedPowerRange(dischargedPowerLowerBoundMah,
-                        dischargedPowerUpperBoundMah)
-                .setDischargeDurationMs(batteryStats.getBatteryRealtime(rawRealtimeUs) / 1000);
+        builder
+                .addDischargedPowerRange(dischargedPowerLowerBoundMah, dischargedPowerUpperBoundMah)
+                .addDischargeDurationMs(batteryStats.getBatteryRealtime(rawRealtimeUs) / 1000);
 
         final long batteryTimeRemainingMs = batteryStats.computeBatteryTimeRemaining(rawRealtimeUs);
         if (batteryTimeRemainingMs != -1) {
diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
index 90bc54b..1d62087 100644
--- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
+++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
@@ -15276,13 +15276,10 @@
 
     @GuardedBy("this")
     public void setBatteryStateLocked(final int status, final int health, final int plugType,
-            final int level, /* not final */ int temp, final int voltageMv, final int chargeUah,
+            final int level, final int temp, final int voltageMv, final int chargeUah,
             final int chargeFullUah, final long chargeTimeToFullSeconds,
             final long elapsedRealtimeMs, final long uptimeMs, final long currentTimeMs) {
 
-        // Temperature is encoded without the signed bit, so clamp any negative temperatures to 0.
-        temp = Math.max(0, temp);
-
         reportChangesToStatsLog(status, plugType, level);
 
         final boolean onBattery = isOnBattery(plugType, status);
diff --git a/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java
index 1459ff5..d24ea83 100644
--- a/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java
@@ -24,12 +24,12 @@
 
 import android.os.BatteryConsumer;
 import android.os.PersistableBundle;
-import android.util.SparseLongArray;
 
 import com.android.internal.os.PowerStats;
 import com.android.server.power.stats.format.BasePowerStatsLayout;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.function.DoubleSupplier;
 
@@ -37,9 +37,9 @@
     private final DoubleSupplier mBatteryCapacitySupplier;
     private PowerEstimationPlan mPlan;
     private long mStartTimestamp;
-    private final SparseLongArray mUidStartTimestamps = new SparseLongArray();
     private static final BasePowerStatsLayout sStatsLayout = new BasePowerStatsLayout();
     private final PowerStats.Descriptor mPowerStatsDescriptor;
+    private final PowerStats mPowerStats;
     private final long[] mTmpUidStatsArray;
     private double mBatteryCapacityUah;
     private int mBatteryLevel;
@@ -59,12 +59,12 @@
                 sStatsLayout.getDeviceStatsArrayLength(), null, 0,
                 sStatsLayout.getUidStatsArrayLength(), extras);
         mTmpUidStatsArray = new long[sStatsLayout.getUidStatsArrayLength()];
+        mPowerStats = new PowerStats(mPowerStatsDescriptor);
     }
 
     @Override
     void start(PowerComponentAggregatedPowerStats stats, long timestampMs) {
         mStartTimestamp = timestampMs;
-        mUidStartTimestamps.clear();
         stats.setPowerStatsDescriptor(mPowerStatsDescriptor);
         mBatteryCapacityUah = mBatteryCapacitySupplier.getAsDouble() * 1000;
         mBatteryLevel = UNSPECIFIED;
@@ -73,6 +73,9 @@
         mCumulativeDischargeUah = 0;
         mCumulativeDischargePct = 0;
         mCumulativeDischargeDurationMs = 0;
+
+        // Establish a baseline
+        stats.addProcessedPowerStats(mPowerStats, timestampMs);
     }
 
     @Override
@@ -101,32 +104,23 @@
     }
 
     @Override
-    public void setUidState(PowerComponentAggregatedPowerStats stats, int uid,
-            @AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) {
-        super.setUidState(stats, uid, stateId, state, timestampMs);
-        if (stateId == STATE_PROCESS_STATE && mUidStartTimestamps.indexOfKey(uid) < 0) {
-            mUidStartTimestamps.put(uid, timestampMs);
-        }
-    }
-
-    @Override
     void finish(PowerComponentAggregatedPowerStats stats, long timestampMs) {
         if (mPlan == null) {
             mPlan = new PowerEstimationPlan(stats.getConfig());
         }
 
-        PowerStats powerStats = new PowerStats(mPowerStatsDescriptor);
-        sStatsLayout.setUsageDuration(powerStats.stats, timestampMs - mStartTimestamp);
+        sStatsLayout.setUsageDuration(mPowerStats.stats, timestampMs - mStartTimestamp);
 
-        sStatsLayout.addBatteryDischargePercent(powerStats.stats, mCumulativeDischargePct);
+        sStatsLayout.addBatteryDischargePercent(mPowerStats.stats, mCumulativeDischargePct);
         if (mCumulativeDischargeUah != 0) {
-            sStatsLayout.addBatteryDischargeUah(powerStats.stats,
+            sStatsLayout.addBatteryDischargeUah(mPowerStats.stats,
                     mCumulativeDischargeUah);
         } else {
-            sStatsLayout.addBatteryDischargeUah(powerStats.stats,
+            sStatsLayout.addBatteryDischargeUah(mPowerStats.stats,
                     (long) (mCumulativeDischargePct * mBatteryCapacityUah / 100.0));
         }
-        sStatsLayout.addBatteryDischargeDuration(powerStats.stats, mCumulativeDischargeDurationMs);
+        sStatsLayout.addBatteryDischargeDuration(mPowerStats.stats, mCumulativeDischargeDurationMs);
+
         mCumulativeDischargePct = 0;
         mCumulativeDischargeUah = 0;
         mCumulativeDischargeDurationMs = 0;
@@ -134,19 +128,16 @@
         List<Integer> uids = new ArrayList<>();
         stats.collectUids(uids);
 
+        long durationMs = timestampMs - mStartTimestamp;
         if (!uids.isEmpty()) {
             for (int i = uids.size() - 1; i >= 0; i--) {
-                Integer uid = uids.get(i);
-                long durationMs = timestampMs - mUidStartTimestamps.get(uid, mStartTimestamp);
-                mUidStartTimestamps.put(uid, timestampMs);
-
                 long[] uidStats = new long[sStatsLayout.getUidStatsArrayLength()];
                 sStatsLayout.setUidUsageDuration(uidStats, durationMs);
-                powerStats.uidStats.put(uid, uidStats);
+                mPowerStats.uidStats.put(uids.get(i), uidStats);
             }
         }
 
-        stats.addPowerStats(powerStats, timestampMs);
+        stats.addPowerStats(mPowerStats, timestampMs);
 
         for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) {
             UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i);
@@ -169,5 +160,7 @@
         }
 
         mStartTimestamp = timestampMs;
+        Arrays.fill(mPowerStats.stats, 0);
+        mPowerStats.uidStats.clear();
     }
 }
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java
index 1b864bb..8461a54 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java
@@ -110,7 +110,8 @@
 
                     lastTime = item.time;
 
-                    if (item.batteryLevel != lastBatteryLevel) {
+                    if (item.cmd == BatteryStats.HistoryItem.CMD_UPDATE
+                            && item.batteryLevel != lastBatteryLevel) {
                         mStats.noteBatteryLevel(item.batteryLevel, item.batteryChargeUah,
                                 item.time);
                         lastBatteryLevel = item.batteryLevel;
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java
index ef0e63b..177d129 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java
@@ -245,13 +245,13 @@
 
     private void populateBatteryLevelInfo(BatteryUsageStats.Builder builder,
             BatteryLevelInfo batteryLevelInfo) {
-        builder.setDischargePercentage((int) Math.round(batteryLevelInfo.batteryDischargePct))
-                .setDischargedPowerRange(batteryLevelInfo.batteryDischargeMah,
+        builder.addDischargePercentage((int) Math.round(batteryLevelInfo.batteryDischargePct))
+                .addDischargedPowerRange(batteryLevelInfo.batteryDischargeMah,
                         batteryLevelInfo.batteryDischargeMah)
-                .setDischargeDurationMs(batteryLevelInfo.batteryDischargeDurationMs)
+                .addDischargeDurationMs(batteryLevelInfo.batteryDischargeDurationMs)
                 .getAggregateBatteryConsumerBuilder(
                         BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE)
-                .setConsumedPower(batteryLevelInfo.batteryDischargeMah);
+                .addConsumedPower(batteryLevelInfo.batteryDischargeMah);
     }
 
     private void populateBatteryConsumers(
diff --git a/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java b/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
index dc1f936..f060e4d 100644
--- a/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
+++ b/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
@@ -17,8 +17,8 @@
 package com.android.server.security;
 
 import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_BOOT_STATE;
-import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
 import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
 import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
 import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_PATCH_LEVEL_DIFF;
 import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNKNOWN;
@@ -47,12 +47,8 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.security.AttestationVerificationManagerService.DumpLogger;
 
-import org.json.JSONObject;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.cert.CertPath;
 import java.security.cert.CertPathValidator;
@@ -60,7 +56,6 @@
 import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
-import java.security.cert.PKIXCertPathChecker;
 import java.security.cert.PKIXParameters;
 import java.security.cert.TrustAnchor;
 import java.security.cert.X509Certificate;
@@ -69,7 +64,6 @@
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -126,6 +120,7 @@
     private final LocalDate mTestLocalPatchDate;
     private final CertificateFactory mCertificateFactory;
     private final CertPathValidator mCertPathValidator;
+    private final CertificateRevocationStatusManager mCertificateRevocationStatusManager;
     private final DumpLogger mDumpLogger;
 
     AttestationVerificationPeerDeviceVerifier(@NonNull Context context,
@@ -135,6 +130,7 @@
         mCertificateFactory = CertificateFactory.getInstance("X.509");
         mCertPathValidator = CertPathValidator.getInstance("PKIX");
         mTrustAnchors = getTrustAnchors();
+        mCertificateRevocationStatusManager = new CertificateRevocationStatusManager(mContext);
         mRevocationEnabled = true;
         mTestSystemDate = null;
         mTestLocalPatchDate = null;
@@ -150,6 +146,7 @@
         mCertificateFactory = CertificateFactory.getInstance("X.509");
         mCertPathValidator = CertPathValidator.getInstance("PKIX");
         mTrustAnchors = trustAnchors;
+        mCertificateRevocationStatusManager = new CertificateRevocationStatusManager(mContext);
         mRevocationEnabled = revocationEnabled;
         mTestSystemDate = systemDate;
         mTestLocalPatchDate = localPatchDate;
@@ -300,15 +297,14 @@
 
         CertPath certificatePath = mCertificateFactory.generateCertPath(certificates);
         PKIXParameters validationParams = new PKIXParameters(mTrustAnchors);
-        if (mRevocationEnabled) {
-            // Checks Revocation Status List based on
-            // https://developer.android.com/training/articles/security-key-attestation#certificate_status
-            PKIXCertPathChecker checker = new AndroidRevocationStatusListChecker();
-            validationParams.addCertPathChecker(checker);
-        }
         // Do not use built-in revocation status checker.
         validationParams.setRevocationEnabled(false);
         mCertPathValidator.validate(certificatePath, validationParams);
+        if (mRevocationEnabled) {
+            // Checks Revocation Status List based on
+            // https://developer.android.com/training/articles/security-key-attestation#certificate_status
+            mCertificateRevocationStatusManager.checkRevocationStatus(certificates);
+        }
     }
 
     private Set<TrustAnchor> getTrustAnchors() throws CertPathValidatorException {
@@ -574,96 +570,6 @@
                 <= maxPatchLevelDiffMonths;
     }
 
-    /**
-     * Checks certificate revocation status.
-     *
-     * Queries status list from android.googleapis.com/attestation/status and checks for
-     * the existence of certificate's serial number. If serial number exists in map, then fail.
-     */
-    private final class AndroidRevocationStatusListChecker extends PKIXCertPathChecker {
-        private static final String TOP_LEVEL_JSON_PROPERTY_KEY = "entries";
-        private static final String STATUS_PROPERTY_KEY = "status";
-        private static final String REASON_PROPERTY_KEY = "reason";
-        private String mStatusUrl;
-        private JSONObject mJsonStatusMap;
-
-        @Override
-        public void init(boolean forward) throws CertPathValidatorException {
-            mStatusUrl = getRevocationListUrl();
-            if (mStatusUrl == null || mStatusUrl.isEmpty()) {
-                throw new CertPathValidatorException(
-                        "R.string.vendor_required_attestation_revocation_list_url is empty.");
-            }
-            // TODO(b/221067843): Update to only pull status map on non critical path and if
-            // out of date (24hrs).
-            mJsonStatusMap = getStatusMap(mStatusUrl);
-        }
-
-        @Override
-        public boolean isForwardCheckingSupported() {
-            return false;
-        }
-
-        @Override
-        public Set<String> getSupportedExtensions() {
-            return null;
-        }
-
-        @Override
-        public void check(Certificate cert, Collection<String> unresolvedCritExts)
-                throws CertPathValidatorException {
-            X509Certificate x509Certificate = (X509Certificate) cert;
-            // The json key is the certificate's serial number converted to lowercase hex.
-            String serialNumber = x509Certificate.getSerialNumber().toString(16);
-
-            if (serialNumber == null) {
-                throw new CertPathValidatorException("Certificate serial number can not be null.");
-            }
-
-            if (mJsonStatusMap.has(serialNumber)) {
-                JSONObject revocationStatus;
-                String status;
-                String reason;
-                try {
-                    revocationStatus = mJsonStatusMap.getJSONObject(serialNumber);
-                    status = revocationStatus.getString(STATUS_PROPERTY_KEY);
-                    reason = revocationStatus.getString(REASON_PROPERTY_KEY);
-                } catch (Throwable t) {
-                    throw new CertPathValidatorException("Unable get properties for certificate "
-                            + "with serial number " + serialNumber);
-                }
-                throw new CertPathValidatorException(
-                        "Invalid certificate with serial number " + serialNumber
-                                + " has status " + status
-                                + " because reason " + reason);
-            }
-        }
-
-        private JSONObject getStatusMap(String stringUrl) throws CertPathValidatorException {
-            URL url;
-            try {
-                url = new URL(stringUrl);
-            } catch (Throwable t) {
-                throw new CertPathValidatorException(
-                        "Unable to get revocation status from " + mStatusUrl, t);
-            }
-
-            try (InputStream inputStream = url.openStream()) {
-                JSONObject statusListJson = new JSONObject(
-                        new String(inputStream.readAllBytes(), UTF_8));
-                return statusListJson.getJSONObject(TOP_LEVEL_JSON_PROPERTY_KEY);
-            } catch (Throwable t) {
-                throw new CertPathValidatorException(
-                        "Unable to parse revocation status from " + mStatusUrl, t);
-            }
-        }
-
-        private String getRevocationListUrl() {
-            return mContext.getResources().getString(
-                    R.string.vendor_required_attestation_revocation_list_url);
-        }
-    }
-
     /* Mutable data class for tracking dump data from verifications. */
     private static class MyDumpData extends AttestationVerificationManagerService.DumpData {
 
diff --git a/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java b/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java
new file mode 100644
index 0000000..d36d9f5
--- /dev/null
+++ b/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java
@@ -0,0 +1,366 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.security;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+import android.app.job.JobInfo;
+import android.app.job.JobScheduler;
+import android.content.ComponentName;
+import android.content.Context;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.os.Environment;
+import android.os.PersistableBundle;
+import android.util.Slog;
+
+import com.android.internal.R;
+import com.android.internal.annotations.VisibleForTesting;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.cert.CertPathValidatorException;
+import java.security.cert.X509Certificate;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeParseException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/** Manages the revocation status of certificates used in remote attestation. */
+class CertificateRevocationStatusManager {
+    private static final String TAG = "AVF_CRL";
+    // Must be unique within system server
+    private static final int JOB_ID = 1737671340;
+    private static final String REVOCATION_STATUS_FILE_NAME = "certificate_revocation_status.txt";
+    private static final String REVOCATION_STATUS_FILE_FIELD_DELIMITER = ",";
+
+    /**
+     * The number of days since last update for which a stored revocation status can be accepted.
+     */
+    @VisibleForTesting static final int MAX_DAYS_SINCE_LAST_CHECK = 30;
+
+    /**
+     * The number of days since issue date for an intermediary certificate to be considered fresh
+     * and not require a revocation list check.
+     */
+    private static final int FRESH_INTERMEDIARY_CERT_DAYS = 70;
+
+    /**
+     * The expected number of days between a certificate's issue date and notBefore date. Used to
+     * infer a certificate's issue date from its notBefore date.
+     */
+    private static final int DAYS_BETWEEN_ISSUE_AND_NOT_BEFORE_DATES = 2;
+
+    private static final String TOP_LEVEL_JSON_PROPERTY_KEY = "entries";
+    private static final Object sFileLock = new Object();
+
+    private final Context mContext;
+    private final String mTestRemoteRevocationListUrl;
+    private final File mTestRevocationStatusFile;
+    private final boolean mShouldScheduleJob;
+
+    CertificateRevocationStatusManager(Context context) {
+        this(context, null, null, true);
+    }
+
+    @VisibleForTesting
+    CertificateRevocationStatusManager(
+            Context context,
+            String testRemoteRevocationListUrl,
+            File testRevocationStatusFile,
+            boolean shouldScheduleJob) {
+        mContext = context;
+        mTestRemoteRevocationListUrl = testRemoteRevocationListUrl;
+        mTestRevocationStatusFile = testRevocationStatusFile;
+        mShouldScheduleJob = shouldScheduleJob;
+    }
+
+    /**
+     * Check the revocation status of the provided {@link X509Certificate}s.
+     *
+     * <p>The provided certificates should have been validated and ordered from leaf to a
+     * certificate issued by the trust anchor, per the convention specified in the javadoc of {@link
+     * java.security.cert.CertPath}.
+     *
+     * @param certificates List of certificates to be checked
+     * @throws CertPathValidatorException if the check failed
+     */
+    void checkRevocationStatus(List<X509Certificate> certificates)
+            throws CertPathValidatorException {
+        if (!needToCheckRevocationStatus(certificates)) {
+            return;
+        }
+        List<String> serialNumbers = new ArrayList<>();
+        for (X509Certificate certificate : certificates) {
+            String serialNumber = certificate.getSerialNumber().toString(16);
+            if (serialNumber == null) {
+                throw new CertPathValidatorException("Certificate serial number cannot be null.");
+            }
+            serialNumbers.add(serialNumber);
+        }
+        try {
+            JSONObject revocationList = fetchRemoteRevocationList();
+            Map<String, Boolean> areCertificatesRevoked = new HashMap<>();
+            for (String serialNumber : serialNumbers) {
+                areCertificatesRevoked.put(serialNumber, revocationList.has(serialNumber));
+            }
+            updateLastRevocationCheckData(areCertificatesRevoked);
+            for (Map.Entry<String, Boolean> entry : areCertificatesRevoked.entrySet()) {
+                if (entry.getValue()) {
+                    throw new CertPathValidatorException(
+                            "Certificate " + entry.getKey() + " has been revoked.");
+                }
+            }
+        } catch (IOException | JSONException ex) {
+            Slog.d(TAG, "Fallback to check stored revocation status", ex);
+            if (ex instanceof IOException && mShouldScheduleJob) {
+                scheduleJobToUpdateStoredDataWithRemoteRevocationList(serialNumbers);
+            }
+            for (X509Certificate certificate : certificates) {
+                // Assume recently issued certificates are not revoked.
+                if (isIssuedWithinDays(certificate, MAX_DAYS_SINCE_LAST_CHECK)) {
+                    String serialNumber = certificate.getSerialNumber().toString(16);
+                    serialNumbers.remove(serialNumber);
+                }
+            }
+            Map<String, LocalDateTime> lastRevocationCheckData;
+            try {
+                lastRevocationCheckData = getLastRevocationCheckData();
+            } catch (IOException ex2) {
+                throw new CertPathValidatorException(
+                        "Unable to load stored revocation status", ex2);
+            }
+            for (String serialNumber : serialNumbers) {
+                if (!lastRevocationCheckData.containsKey(serialNumber)
+                        || lastRevocationCheckData
+                                .get(serialNumber)
+                                .isBefore(
+                                        LocalDateTime.now().minusDays(MAX_DAYS_SINCE_LAST_CHECK))) {
+                    throw new CertPathValidatorException(
+                            "Unable to verify the revocation status of certificate "
+                                    + serialNumber);
+                }
+            }
+        }
+    }
+
+    private static boolean needToCheckRevocationStatus(
+            List<X509Certificate> certificatesOrderedLeafFirst) {
+        if (certificatesOrderedLeafFirst.isEmpty()) {
+            return false;
+        }
+        // A certificate isn't revoked when it is first issued, so we treat it as checked on its
+        // issue date.
+        if (!isIssuedWithinDays(certificatesOrderedLeafFirst.get(0), MAX_DAYS_SINCE_LAST_CHECK)) {
+            return true;
+        }
+        for (int i = 1; i < certificatesOrderedLeafFirst.size(); i++) {
+            if (!isIssuedWithinDays(
+                    certificatesOrderedLeafFirst.get(i), FRESH_INTERMEDIARY_CERT_DAYS)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static boolean isIssuedWithinDays(X509Certificate certificate, int days) {
+        LocalDate notBeforeDate =
+                LocalDate.ofInstant(certificate.getNotBefore().toInstant(), ZoneId.systemDefault());
+        LocalDate expectedIssueData =
+                notBeforeDate.plusDays(DAYS_BETWEEN_ISSUE_AND_NOT_BEFORE_DATES);
+        return LocalDate.now().minusDays(days + 1).isBefore(expectedIssueData);
+    }
+
+    void updateLastRevocationCheckDataForAllPreviouslySeenCertificates(
+            JSONObject revocationList, Collection<String> otherCertificatesToCheck) {
+        Set<String> allCertificatesToCheck = new HashSet<>(otherCertificatesToCheck);
+        try {
+            allCertificatesToCheck.addAll(getLastRevocationCheckData().keySet());
+        } catch (IOException ex) {
+            Slog.e(TAG, "Unable to update last check date of stored data.", ex);
+        }
+        Map<String, Boolean> areCertificatesRevoked = new HashMap<>();
+        for (String serialNumber : allCertificatesToCheck) {
+            areCertificatesRevoked.put(serialNumber, revocationList.has(serialNumber));
+        }
+        updateLastRevocationCheckData(areCertificatesRevoked);
+    }
+
+    /**
+     * Update the last revocation check data stored on this device.
+     *
+     * @param areCertificatesRevoked A Map whose keys are certificate serial numbers and values are
+     *     whether that certificate has been revoked
+     */
+    void updateLastRevocationCheckData(Map<String, Boolean> areCertificatesRevoked) {
+        LocalDateTime now = LocalDateTime.now();
+        synchronized (sFileLock) {
+            Map<String, LocalDateTime> lastRevocationCheckData;
+            try {
+                lastRevocationCheckData = getLastRevocationCheckData();
+            } catch (IOException ex) {
+                Slog.e(TAG, "Unable to updateLastRevocationCheckData", ex);
+                return;
+            }
+            for (Map.Entry<String, Boolean> entry : areCertificatesRevoked.entrySet()) {
+                if (entry.getValue()) {
+                    lastRevocationCheckData.remove(entry.getKey());
+                } else {
+                    lastRevocationCheckData.put(entry.getKey(), now);
+                }
+            }
+            storeLastRevocationCheckData(lastRevocationCheckData);
+        }
+    }
+
+    Map<String, LocalDateTime> getLastRevocationCheckData() throws IOException {
+        Map<String, LocalDateTime> data = new HashMap<>();
+        File dataFile = getLastRevocationCheckDataFile();
+        synchronized (sFileLock) {
+            if (!dataFile.exists()) {
+                return data;
+            }
+            String dataString;
+            try (FileInputStream in = new FileInputStream(dataFile)) {
+                dataString = new String(in.readAllBytes(), UTF_8);
+            }
+            for (String line : dataString.split(System.lineSeparator())) {
+                String[] elements = line.split(REVOCATION_STATUS_FILE_FIELD_DELIMITER);
+                if (elements.length != 2) {
+                    continue;
+                }
+                try {
+                    data.put(elements[0], LocalDateTime.parse(elements[1]));
+                } catch (DateTimeParseException ex) {
+                    Slog.e(
+                            TAG,
+                            "Unable to parse last checked LocalDateTime from file. Deleting the"
+                                    + " potentially corrupted file.",
+                            ex);
+                    dataFile.delete();
+                    return data;
+                }
+            }
+        }
+        return data;
+    }
+
+    @VisibleForTesting
+    void storeLastRevocationCheckData(Map<String, LocalDateTime> lastRevocationCheckData) {
+        StringBuilder dataStringBuilder = new StringBuilder();
+        for (Map.Entry<String, LocalDateTime> entry : lastRevocationCheckData.entrySet()) {
+            dataStringBuilder
+                    .append(entry.getKey())
+                    .append(REVOCATION_STATUS_FILE_FIELD_DELIMITER)
+                    .append(entry.getValue())
+                    .append(System.lineSeparator());
+        }
+        synchronized (sFileLock) {
+            try (FileOutputStream fileOutputStream =
+                    new FileOutputStream(getLastRevocationCheckDataFile())) {
+                fileOutputStream.write(dataStringBuilder.toString().getBytes(UTF_8));
+                Slog.d(TAG, "Successfully stored revocation status data.");
+            } catch (IOException ex) {
+                Slog.e(TAG, "Failed to store revocation status data.", ex);
+            }
+        }
+    }
+
+    private File getLastRevocationCheckDataFile() {
+        if (mTestRevocationStatusFile != null) {
+            return mTestRevocationStatusFile;
+        }
+        return new File(Environment.getDataSystemDirectory(), REVOCATION_STATUS_FILE_NAME);
+    }
+
+    private void scheduleJobToUpdateStoredDataWithRemoteRevocationList(List<String> serialNumbers) {
+        JobScheduler jobScheduler = mContext.getSystemService(JobScheduler.class);
+        if (jobScheduler == null) {
+            Slog.e(TAG, "Unable to get job scheduler.");
+            return;
+        }
+        Slog.d(TAG, "Scheduling job to fetch remote CRL.");
+        PersistableBundle extras = new PersistableBundle();
+        extras.putStringArray(
+                UpdateCertificateRevocationStatusJobService.EXTRA_KEY_CERTIFICATES_TO_CHECK,
+                serialNumbers.toArray(new String[0]));
+        jobScheduler.schedule(
+                new JobInfo.Builder(
+                                JOB_ID,
+                                new ComponentName(
+                                        mContext,
+                                        UpdateCertificateRevocationStatusJobService.class))
+                        .setExtras(extras)
+                        .setRequiredNetwork(
+                                new NetworkRequest.Builder()
+                                        .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+                                        .build())
+                        .build());
+    }
+
+    /**
+     * Fetches the revocation list from the URL specified in
+     * R.string.vendor_required_attestation_revocation_list_url
+     *
+     * @return The remote revocation list entries in a JSONObject
+     * @throws CertPathValidatorException if the URL is not defined or is malformed.
+     * @throws IOException if the URL is valid but the fetch failed.
+     * @throws JSONException if the revocation list content cannot be parsed
+     */
+    JSONObject fetchRemoteRevocationList()
+            throws CertPathValidatorException, IOException, JSONException {
+        String urlString = getRemoteRevocationListUrl();
+        if (urlString == null || urlString.isEmpty()) {
+            throw new CertPathValidatorException(
+                    "R.string.vendor_required_attestation_revocation_list_url is empty.");
+        }
+        URL url;
+        try {
+            url = new URL(urlString);
+        } catch (MalformedURLException ex) {
+            throw new CertPathValidatorException("Unable to parse the URL " + urlString, ex);
+        }
+        byte[] revocationListBytes;
+        try (InputStream inputStream = url.openStream()) {
+            revocationListBytes = inputStream.readAllBytes();
+        }
+        JSONObject revocationListJson = new JSONObject(new String(revocationListBytes, UTF_8));
+        return revocationListJson.getJSONObject(TOP_LEVEL_JSON_PROPERTY_KEY);
+    }
+
+    private String getRemoteRevocationListUrl() {
+        if (mTestRemoteRevocationListUrl != null) {
+            return mTestRemoteRevocationListUrl;
+        }
+        return mContext.getResources()
+                .getString(R.string.vendor_required_attestation_revocation_list_url);
+    }
+}
diff --git a/services/core/java/com/android/server/security/OWNERS b/services/core/java/com/android/server/security/OWNERS
index fa4bf22..7a31a00 100644
--- a/services/core/java/com/android/server/security/OWNERS
+++ b/services/core/java/com/android/server/security/OWNERS
@@ -3,5 +3,6 @@
 include /core/java/android/security/OWNERS
 
 per-file *AttestationVerification* = file:/core/java/android/security/attestationverification/OWNERS
+per-file *CertificateRevocationStatus* = file:/core/java/android/security/attestationverification/OWNERS
 per-file FileIntegrity*.java = victorhsieh@google.com
 per-file KeyChainSystemService.java = file:platform/packages/apps/KeyChain:/OWNERS
diff --git a/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java b/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java
new file mode 100644
index 0000000..768c812
--- /dev/null
+++ b/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.security;
+
+import android.app.job.JobParameters;
+import android.app.job.JobService;
+import android.util.Slog;
+
+import org.json.JSONObject;
+
+import java.util.Arrays;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/** A {@link JobService} that fetches the certificate revocation list from a remote location. */
+public class UpdateCertificateRevocationStatusJobService extends JobService {
+
+    static final String EXTRA_KEY_CERTIFICATES_TO_CHECK =
+            "com.android.server.security.extra.CERTIFICATES_TO_CHECK";
+    private static final String TAG = "AVF_CRL";
+    private ExecutorService mExecutorService;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mExecutorService = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public boolean onStartJob(JobParameters params) {
+        mExecutorService.execute(
+                () -> {
+                    try {
+                        CertificateRevocationStatusManager certificateRevocationStatusManager =
+                                new CertificateRevocationStatusManager(this);
+                        Slog.d(TAG, "Starting to fetch remote CRL from job service.");
+                        JSONObject revocationList =
+                                certificateRevocationStatusManager.fetchRemoteRevocationList();
+                        String[] certificatesToCheckFromJobParams =
+                                params.getExtras().getStringArray(EXTRA_KEY_CERTIFICATES_TO_CHECK);
+                        if (certificatesToCheckFromJobParams == null) {
+                            Slog.e(TAG, "Extras not found: " + EXTRA_KEY_CERTIFICATES_TO_CHECK);
+                            return;
+                        }
+                        certificateRevocationStatusManager
+                                .updateLastRevocationCheckDataForAllPreviouslySeenCertificates(
+                                        revocationList,
+                                        Arrays.asList(certificatesToCheckFromJobParams));
+                    } catch (Throwable t) {
+                        Slog.e(TAG, "Unable to update the stored revocation status.", t);
+                    }
+                    jobFinished(params, false);
+                });
+        return true;
+    }
+
+    @Override
+    public boolean onStopJob(JobParameters params) {
+        return false;
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        mExecutorService.shutdown();
+    }
+}
diff --git a/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java b/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java
new file mode 100644
index 0000000..9d60a57
--- /dev/null
+++ b/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.storage;
+
+import android.content.Context;
+import android.os.storage.DiskInfo;
+import android.os.storage.StorageVolume;
+import android.os.storage.VolumeInfo;
+
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.File;
+
+/**
+ * An immutable version of {@link VolumeInfo} with only getters.
+ *
+ * @hide
+ */
+public final class ImmutableVolumeInfo {
+    private final VolumeInfo mVolumeInfo;
+
+    private ImmutableVolumeInfo(VolumeInfo volumeInfo) {
+        mVolumeInfo = new VolumeInfo(volumeInfo);
+    }
+
+    public static ImmutableVolumeInfo fromVolumeInfo(VolumeInfo info) {
+        return new ImmutableVolumeInfo(info);
+    }
+
+    public ImmutableVolumeInfo clone() {
+        return fromVolumeInfo(mVolumeInfo.clone());
+    }
+
+    public StorageVolume buildStorageVolume(Context context, int userId, boolean reportUnmounted) {
+        return mVolumeInfo.buildStorageVolume(context, userId, reportUnmounted);
+    }
+
+    public void dump(IndentingPrintWriter pw) {
+        mVolumeInfo.dump(pw);
+    }
+
+    public DiskInfo getDisk() {
+        return mVolumeInfo.getDisk();
+    }
+
+    public String getDiskId() {
+        return mVolumeInfo.getDiskId();
+    }
+
+    public String getFsLabel() {
+        return mVolumeInfo.fsLabel;
+    }
+
+    public String getFsPath() {
+        return mVolumeInfo.path;
+    }
+
+    public String getFsType() {
+        return mVolumeInfo.fsType;
+    }
+
+    public String getFsUuid() {
+        return mVolumeInfo.fsUuid;
+    }
+
+    public String getId() {
+        return mVolumeInfo.id;
+    }
+
+    public File getInternalPath() {
+        return mVolumeInfo.getInternalPath();
+    }
+
+    public int getMountFlags() {
+        return mVolumeInfo.mountFlags;
+    }
+
+    public int getMountUserId() {
+        return mVolumeInfo.mountUserId;
+    }
+
+    public String getPartGuid() {
+        return mVolumeInfo.partGuid;
+    }
+
+    public File getPath() {
+        return mVolumeInfo.getPath();
+    }
+
+    public int getState() {
+        return mVolumeInfo.state;
+    }
+
+    public int getType() {
+        return mVolumeInfo.type;
+    }
+
+    public VolumeInfo getVolumeInfo() {
+        return new VolumeInfo(mVolumeInfo); // Return a copy, not the original
+    }
+
+    public boolean isMountedReadable() {
+        return mVolumeInfo.isMountedReadable();
+    }
+
+    public boolean isMountedWritable() {
+        return mVolumeInfo.isMountedWritable();
+    }
+
+    public boolean isPrimary() {
+        return mVolumeInfo.isPrimary();
+    }
+
+    public boolean isVisible() {
+        return mVolumeInfo.isVisible();
+    }
+
+    public boolean isVisibleForUser(int userId) {
+        return mVolumeInfo.isVisibleForUser(userId);
+    }
+
+    public boolean isVisibleForWrite(int userId) {
+        return mVolumeInfo.isVisibleForWrite(userId);
+    }
+}
diff --git a/services/core/java/com/android/server/storage/StorageSessionController.java b/services/core/java/com/android/server/storage/StorageSessionController.java
index b9c9b64..342b864 100644
--- a/services/core/java/com/android/server/storage/StorageSessionController.java
+++ b/services/core/java/com/android/server/storage/StorageSessionController.java
@@ -45,6 +45,7 @@
 import android.util.SparseArray;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.server.storage.ImmutableVolumeInfo;
 
 import java.util.Objects;
 
@@ -79,18 +80,18 @@
      * @param vol for which the storage session has to be started
      * @return userId for connection for this volume
      */
-    public int getConnectionUserIdForVolume(VolumeInfo vol) {
+    public int getConnectionUserIdForVolume(ImmutableVolumeInfo vol) {
         final Context volumeUserContext = mContext.createContextAsUser(
-                UserHandle.of(vol.mountUserId), 0);
+                UserHandle.of(vol.getMountUserId()), 0);
         boolean isMediaSharedWithParent = volumeUserContext.getSystemService(
                 UserManager.class).isMediaSharedWithParent();
 
-        UserInfo userInfo = mUserManager.getUserInfo(vol.mountUserId);
+        UserInfo userInfo = mUserManager.getUserInfo(vol.getMountUserId());
         if (userInfo != null && isMediaSharedWithParent) {
             // Clones use the same connection as their parent
             return userInfo.profileGroupId;
         } else {
-            return vol.mountUserId;
+            return vol.getMountUserId();
         }
     }
 
@@ -108,7 +109,7 @@
      * @throws ExternalStorageServiceException if the session fails to start
      * @throws IllegalStateException if a session has already been created for {@code vol}
      */
-    public void onVolumeMount(ParcelFileDescriptor deviceFd, VolumeInfo vol)
+    public void onVolumeMount(ParcelFileDescriptor deviceFd, ImmutableVolumeInfo vol)
             throws ExternalStorageServiceException {
         if (!shouldHandle(vol)) {
             return;
@@ -144,7 +145,8 @@
      *
      * @throws ExternalStorageServiceException if it fails to connect to ExternalStorageService
      */
-    public void notifyVolumeStateChanged(VolumeInfo vol) throws ExternalStorageServiceException {
+    public void notifyVolumeStateChanged(ImmutableVolumeInfo vol)
+            throws ExternalStorageServiceException {
         if (!shouldHandle(vol)) {
             return;
         }
@@ -214,7 +216,7 @@
      * @return the connection that was removed or {@code null} if nothing was removed
      */
     @Nullable
-    public StorageUserConnection onVolumeRemove(VolumeInfo vol) {
+    public StorageUserConnection onVolumeRemove(ImmutableVolumeInfo vol) {
         if (!shouldHandle(vol)) {
             return null;
         }
@@ -246,7 +248,7 @@
      *
      * Call {@link #onVolumeRemove} to remove the connection without waiting for exit
      */
-    public void onVolumeUnmount(VolumeInfo vol) {
+    public void onVolumeUnmount(ImmutableVolumeInfo vol) {
         String sessionId = vol.getId();
         final long token = Binder.clearCallingIdentity();
         try {
@@ -457,9 +459,9 @@
      * Returns {@code true} if {@code vol} is an emulated or visible public volume,
      * {@code false} otherwise
      **/
-    public static boolean isEmulatedOrPublic(VolumeInfo vol) {
-        return vol.type == VolumeInfo.TYPE_EMULATED
-                || (vol.type == VolumeInfo.TYPE_PUBLIC && vol.isVisible());
+    public static boolean isEmulatedOrPublic(ImmutableVolumeInfo vol) {
+        return vol.getType() == VolumeInfo.TYPE_EMULATED
+                || (vol.getType() == VolumeInfo.TYPE_PUBLIC && vol.isVisible());
     }
 
     /** Exception thrown when communication with the {@link ExternalStorageService} fails. */
@@ -477,11 +479,11 @@
         }
     }
 
-    private static boolean isSupportedVolume(VolumeInfo vol) {
-        return isEmulatedOrPublic(vol) || vol.type == VolumeInfo.TYPE_STUB;
+    private static boolean isSupportedVolume(ImmutableVolumeInfo vol) {
+        return isEmulatedOrPublic(vol) || vol.getType() == VolumeInfo.TYPE_STUB;
     }
 
-    private boolean shouldHandle(@Nullable VolumeInfo vol) {
+    private boolean shouldHandle(@Nullable ImmutableVolumeInfo vol) {
         return !mIsResetting && (vol == null || isSupportedVolume(vol));
     }
 
diff --git a/services/core/java/com/android/server/storage/WatchedVolumeInfo.java b/services/core/java/com/android/server/storage/WatchedVolumeInfo.java
new file mode 100644
index 0000000..4124cfb
--- /dev/null
+++ b/services/core/java/com/android/server/storage/WatchedVolumeInfo.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.storage;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.content.Context;
+import android.os.storage.DiskInfo;
+import android.os.storage.StorageVolume;
+import android.os.storage.VolumeInfo;
+
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.utils.Watchable;
+import com.android.server.utils.WatchableImpl;
+
+import java.io.File;
+
+/**
+ * A wrapper for {@link VolumeInfo}  implementing the {@link Watchable} interface.
+ *
+ * The {@link VolumeInfo} class itself cannot safely implement Watchable, because it has several
+ * UnsupportedAppUsage annotations and public fields, which allow it to be modified without
+ * notifying watchers.
+ *
+ * @hide
+ */
+public class WatchedVolumeInfo extends WatchableImpl {
+    private final VolumeInfo mVolumeInfo;
+
+    private WatchedVolumeInfo(VolumeInfo volumeInfo) {
+        mVolumeInfo = volumeInfo;
+    }
+
+    public WatchedVolumeInfo(WatchedVolumeInfo watchedVolumeInfo) {
+        mVolumeInfo = new VolumeInfo(watchedVolumeInfo.mVolumeInfo);
+    }
+
+    public static WatchedVolumeInfo fromVolumeInfo(VolumeInfo info) {
+        return new WatchedVolumeInfo(info);
+    }
+
+    /**
+     * Returns a copy of the embedded VolumeInfo object, to be used by components
+     * that just need it for retrieving some state from it.
+     *
+     * @return A copy of the embedded VolumeInfo object
+     */
+
+    public WatchedVolumeInfo clone() {
+        return fromVolumeInfo(mVolumeInfo.clone());
+    }
+
+    public ImmutableVolumeInfo getImmutableVolumeInfo() {
+        return ImmutableVolumeInfo.fromVolumeInfo(mVolumeInfo);
+    }
+
+    public StorageVolume buildStorageVolume(Context context, int userId, boolean reportUnmounted) {
+        return mVolumeInfo.buildStorageVolume(context, userId, reportUnmounted);
+    }
+
+    public void dump(IndentingPrintWriter pw) {
+        mVolumeInfo.dump(pw);
+    }
+
+    public DiskInfo getDisk() {
+        return mVolumeInfo.getDisk();
+    }
+
+    public String getDiskId() {
+        return mVolumeInfo.getDiskId();
+    }
+
+    public String getFsLabel() {
+        return mVolumeInfo.fsLabel;
+    }
+
+    public void setFsLabel(String fsLabel) {
+        mVolumeInfo.fsLabel = fsLabel;
+        dispatchChange(this);
+    }
+
+    public String getFsPath() {
+        return mVolumeInfo.path;
+    }
+
+    public void setFsPath(String path) {
+        mVolumeInfo.path = path;
+        dispatchChange(this);
+    }
+
+    public String getFsType() {
+        return mVolumeInfo.fsType;
+    }
+
+    public void setFsType(String fsType) {
+        mVolumeInfo.fsType = fsType;
+        dispatchChange(this);
+    }
+
+    public @Nullable String getFsUuid() {
+        return mVolumeInfo.fsUuid;
+    }
+
+    public void setFsUuid(String fsUuid) {
+        mVolumeInfo.fsUuid = fsUuid;
+        dispatchChange(this);
+    }
+
+    public @NonNull String getId() {
+        return mVolumeInfo.id;
+    }
+
+    public File getInternalPath() {
+        return mVolumeInfo.getInternalPath();
+    }
+
+    public void setInternalPath(String internalPath) {
+        mVolumeInfo.internalPath = internalPath;
+        dispatchChange(this);
+    }
+
+    public int getMountFlags() {
+        return mVolumeInfo.mountFlags;
+    }
+
+    public void setMountFlags(int mountFlags) {
+        mVolumeInfo.mountFlags = mountFlags;
+        dispatchChange(this);
+    }
+
+    public int getMountUserId() {
+        return mVolumeInfo.mountUserId;
+    }
+
+    public void setMountUserId(int mountUserId) {
+        mVolumeInfo.mountUserId = mountUserId;
+        dispatchChange(this);
+    }
+
+    public String getPartGuid() {
+        return mVolumeInfo.partGuid;
+    }
+
+    public File getPath() {
+        return mVolumeInfo.getPath();
+    }
+
+    public int getState() {
+        return mVolumeInfo.state;
+    }
+
+    public int getState(int state) {
+        return mVolumeInfo.state;
+    }
+
+    public void setState(int state) {
+        mVolumeInfo.state = state;
+        dispatchChange(this);
+    }
+
+    public int getType() {
+        return mVolumeInfo.type;
+    }
+
+    public VolumeInfo getVolumeInfo() {
+        return new VolumeInfo(mVolumeInfo);
+    }
+
+    public boolean isMountedReadable() {
+        return mVolumeInfo.isMountedReadable();
+    }
+
+    public boolean isMountedWritable() {
+        return mVolumeInfo.isMountedWritable();
+    }
+
+    public boolean isPrimary() {
+        return mVolumeInfo.isPrimary();
+    }
+
+    public boolean isVisible() {
+        return mVolumeInfo.isVisible();
+    }
+
+    public boolean isVisibleForUser(int userId) {
+        return mVolumeInfo.isVisibleForUser(userId);
+    }
+
+    public boolean isVisibleForWrite(int userId) {
+        return mVolumeInfo.isVisibleForWrite(userId);
+    }
+}
\ No newline at end of file
diff --git a/services/core/java/com/android/server/updates/CertPinInstallReceiver.java b/services/core/java/com/android/server/updates/CertPinInstallReceiver.java
index c03fbc3..250e99b 100644
--- a/services/core/java/com/android/server/updates/CertPinInstallReceiver.java
+++ b/services/core/java/com/android/server/updates/CertPinInstallReceiver.java
@@ -16,9 +16,19 @@
 
 package com.android.server.updates;
 
+import android.content.Context;
+import android.content.Intent;
+
 public class CertPinInstallReceiver extends ConfigUpdateInstallReceiver {
 
     public CertPinInstallReceiver() {
         super("/data/misc/keychain/", "pins", "metadata/", "version");
     }
+
+    @Override
+    public void onReceive(final Context context, final Intent intent) {
+        if (!com.android.server.flags.Flags.certpininstallerRemoval()) {
+            super.onReceive(context, intent);
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index d9c79b5..69b2b9b 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -20,7 +20,6 @@
 import static android.Manifest.permission.MANAGE_EXTERNAL_STORAGE;
 import static android.Manifest.permission.READ_WALLPAPER_INTERNAL;
 import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
-import static android.app.Flags.enableConnectedDisplaysWallpaper;
 import static android.app.Flags.fixWallpaperChanged;
 import static android.app.Flags.liveWallpaperContentHandling;
 import static android.app.Flags.removeNextWallpaperComponent;
@@ -46,6 +45,7 @@
 import static com.android.server.wallpaper.WallpaperUtils.WALLPAPER_LOCK_ORIG;
 import static com.android.server.wallpaper.WallpaperUtils.getWallpaperDir;
 import static com.android.server.wallpaper.WallpaperUtils.makeWallpaperIdLocked;
+import static com.android.server.wm.DesktopModeHelper.isDeviceEligibleForDesktopExperienceWallpaper;
 import static com.android.window.flags.Flags.avoidRebindingIntentionallyDisconnectedWallpaper;
 import static com.android.window.flags.Flags.multiCrop;
 import static com.android.window.flags.Flags.offloadColorExtraction;
@@ -756,7 +756,7 @@
         }
 
         // Image wallpaper
-        if (enableConnectedDisplaysWallpaper()) {
+        if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
             // TODO(b/384519749): check display's resolution and image wallpaper cropped image
             //  aspect ratio.
             return displayId == DEFAULT_DISPLAY
@@ -777,7 +777,7 @@
         mWallpaperCompatibleDisplaysForTest.remove(displayId);
     }
 
-    private void updateFallbackConnection() {
+    private void updateFallbackConnection(int clientUid) {
         if (mLastWallpaper == null || mFallbackWallpaper == null) return;
         final WallpaperConnection systemConnection = mLastWallpaper.connection;
         final WallpaperConnection fallbackConnection = mFallbackWallpaper.connection;
@@ -792,9 +792,13 @@
             return;
         }
 
-        if (enableConnectedDisplaysWallpaper()) {
-            mWallpaperDisplayHelper.forEachDisplayData(displayData -> {
-                int displayId = displayData.mDisplayId;
+        if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
+            Display[] displays = mWallpaperDisplayHelper.getDisplays();
+            for (int i = displays.length - 1; i >= 0; i--) {
+                int displayId = displays[i].getDisplayId();
+                if (!mWallpaperDisplayHelper.isUsableDisplay(displayId, clientUid)) {
+                    continue;
+                }
                 // If the display is already connected to the desired wallpaper(s), either the
                 // same wallpaper for both lock and system, or different wallpapers for each,
                 // any existing fallback wallpaper connection will be removed.
@@ -802,11 +806,13 @@
                         && (lockConnection == null || lockConnection.containsDisplay(displayId))) {
                     DisplayConnector fallbackConnector =
                             mFallbackWallpaper.connection.mDisplayConnector.get(displayId);
-                    if (fallbackConnector != null && fallbackConnector.mEngine != null) {
-                        fallbackConnector.disconnectLocked(mFallbackWallpaper.connection);
+                    if (fallbackConnector != null) {
+                        if (fallbackConnector.mEngine != null) {
+                            fallbackConnector.disconnectLocked(mFallbackWallpaper.connection);
+                        }
                         mFallbackWallpaper.connection.mDisplayConnector.remove(displayId);
                     }
-                    return;
+                    continue;
                 }
 
                 // Identify if the fallback wallpaper should be use for lock or system or both.
@@ -844,7 +850,7 @@
                                 mFallbackWallpaper);
                     }
                 }
-            });
+            }
         } else if (isWallpaperCompatibleForDisplay(DEFAULT_DISPLAY, systemConnection)) {
             if (fallbackConnection.mDisplayConnector.size() != 0) {
                 fallbackConnection.forEachDisplayConnector(connector -> {
@@ -914,7 +920,7 @@
                 return;
             }
             int which = wallpaper.mWhich;
-            if (enableConnectedDisplaysWallpaper()) {
+            if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
                 which = mWhich;
             }
             TimingsTraceAndSlog t = new TimingsTraceAndSlog(TAG);
@@ -1438,7 +1444,7 @@
                             // changes to currentSystem.mWhich alone won't update the corresponding
                             // flag in currentSystem.connection.mWallpaper.mWhich. Let's point
                             // currentSystem.connection.mWallpaper back to currentSystem.
-                            if (enableConnectedDisplaysWallpaper()
+                            if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)
                                     && currentSystem.connection != null) {
                                 currentSystem.connection.mWallpaper = currentSystem;
                             }
@@ -1464,7 +1470,7 @@
                     WallpaperData currentSystem = mWallpaperMap.get(mNewWallpaper.userId);
                     if (currentSystem.wallpaperId == mOriginalSystem.wallpaperId) {
                         // Fixing the reference, see above for more details.
-                        if (enableConnectedDisplaysWallpaper()
+                        if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)
                                 && currentSystem.connection != null) {
                             currentSystem.connection.mWallpaper = currentSystem;
                         }
@@ -1654,7 +1660,7 @@
         mShuttingDown = false;
         mImageWallpaper = ComponentName.unflattenFromString(
                 context.getResources().getString(R.string.image_wallpaper_component));
-        if (enableConnectedDisplaysWallpaper()) {
+        if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
             mFallbackWallpaperComponent = ComponentName.unflattenFromString(
                     context.getResources().getString(R.string.fallback_wallpaper_component));
         } else {
@@ -3787,7 +3793,7 @@
             wallpaper.connection = newConn;
             newConn.mReply = reply;
             updateCurrentWallpapers(wallpaper);
-            updateFallbackConnection();
+            updateFallbackConnection(componentUid);
         } catch (RemoteException e) {
             String msg = "Remote exception for " + componentName + "\n" + e;
             if (fromUser) {
@@ -4034,7 +4040,7 @@
                 return;
             }
             int useFallbackWallpaperWhich = 0;
-            if (enableConnectedDisplaysWallpaper()) {
+            if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
                 List<WallpaperData> wallpapers = new ArrayList<>();
                 wallpapers.add(mLastWallpaper);
                 // If the system and the lock wallpapers are not the same, we should also
@@ -4095,7 +4101,7 @@
     // removed to start mirroring.
     private void onDisplayRemovedInternal(int displayId) {
         synchronized (mLock) {
-            if (enableConnectedDisplaysWallpaper()) {
+            if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
                 // There could be at most 2 wallpaper connections per display:
                 // 1. system & lock are the same: mLastWallpaper
                 // 2. system, lock are different: mLastWallpaper, mLastLockWallpaper
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index 6f308aa..6cc17d4 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -769,6 +769,11 @@
             // As abort for no process switch.
             launchObserverNotifyIntentFailed(newInfo.mLaunchingState.mStartUptimeNs);
         }
+        if (Intent.ACTION_PROCESS_TEXT.equals(newInfo.mLastLaunchedActivity.intent.getAction())) {
+            mLoggerHandler.post(PooledLambda.obtainRunnable(FrameworkStatsLog::write,
+                    FrameworkStatsLog.PROCESS_TEXT_ACTION_LAUNCHED_REPORTED,
+                    launchedActivity.launchedFromUid, launchedActivity.getUid()));
+        }
         scheduleCheckActivityToBeDrawnIfSleeping(launchedActivity);
 
         // If the previous transitions are no longer visible, abort them to avoid counting the
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index b17eef8..cf9c57a 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -113,7 +113,6 @@
 import static android.view.WindowManager.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED;
 import static android.view.WindowManager.PROPERTY_ALLOW_UNTRUSTED_ACTIVITY_EMBEDDING_STATE_SHARING;
 import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND;
 import static android.view.WindowManager.TRANSIT_OLD_UNSET;
 import static android.view.WindowManager.TRANSIT_RELAUNCH;
 import static android.view.WindowManager.hasWindowExtensionsEnabled;
@@ -246,9 +245,7 @@
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_NORMAL;
 import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_PLACE_SURFACES;
-import static com.android.server.wm.WindowManagerService.sEnableShellTransitions;
 import static com.android.server.wm.WindowState.LEGACY_POLICY_VISIBILITY;
-import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
 
 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
 import static org.xmlpull.v1.XmlPullParser.END_TAG;
@@ -660,8 +657,6 @@
 
     private RemoteAnimationDefinition mRemoteAnimationDefinition;
 
-    AnimatingActivityRegistry mAnimatingActivityRegistry;
-
     // Set to the previous Task parent of the ActivityRecord when it is reparented to a new Task
     // due to picture-in-picture. This gets cleared whenever this activity or the Task
     // it references to gets removed. This should also be cleared when we move out of pip.
@@ -764,13 +759,6 @@
     boolean mLastImeShown;
 
     /**
-     * When set to true, the IME insets will be frozen until the next app becomes IME input target.
-     * @see InsetsPolicy#adjustVisibilityForIme
-     * @see ImeInsetsSourceProvider#updateClientVisibility
-     */
-    boolean mImeInsetsFrozenUntilStartInput;
-
-    /**
      * A flag to determine if this AR is in the process of closing or entering PIP. This is needed
      * to help AR know that the app is in the process of closing but hasn't yet started closing on
      * the WM side.
@@ -865,12 +853,6 @@
     })
     @interface SplashScreenBehavior { }
 
-    // Force an app transition to be ran in the case the visibility of the app did not change.
-    // We use this for the case of moving a Root Task to the back with multiple activities, and the
-    // top activity enters PIP; the bottom activity's visibility stays the same, but we need to
-    // run the transition.
-    boolean mRequestForceTransition;
-
     boolean mEnteringAnimation;
     boolean mOverrideTaskTransition;
     boolean mDismissKeyguardIfInsecure;
@@ -1175,8 +1157,6 @@
                 pw.print(" launchMode="); pw.println(launchMode);
         pw.print(prefix); pw.print("mActivityType=");
                 pw.println(activityTypeToString(getActivityType()));
-        pw.print(prefix); pw.print("mImeInsetsFrozenUntilStartInput=");
-                pw.println(mImeInsetsFrozenUntilStartInput);
         if (requestedVrComponent != null) {
             pw.print(prefix);
             pw.print("requestedVrComponent=");
@@ -1597,9 +1577,6 @@
             }
         }
         final Task rootTask = getRootTask();
-
-        updateAnimatingActivityRegistry();
-
         if (task == mLastParentBeforePip && task != null) {
             // Notify the TaskFragmentOrganizer that the activity is reparented back from pip.
             mAtmService.mWindowOrganizerController.mTaskFragmentOrganizerController
@@ -1701,20 +1678,6 @@
         return !organizedTaskFragment.isAllowedToEmbedActivityInTrustedMode(this);
     }
 
-    void updateAnimatingActivityRegistry() {
-        final Task rootTask = getRootTask();
-        final AnimatingActivityRegistry registry = rootTask != null
-                ? rootTask.getAnimatingActivityRegistry()
-                : null;
-
-        // If we reparent, make sure to remove ourselves from the old animation registry.
-        if (mAnimatingActivityRegistry != null && mAnimatingActivityRegistry != registry) {
-            mAnimatingActivityRegistry.notifyFinished(this);
-        }
-
-        mAnimatingActivityRegistry = registry;
-    }
-
     boolean canAutoEnterPip() {
         // beforeStopping=false since the actual pip-ing will take place after startPausing()
         final boolean activityCanPip = checkEnterPictureInPictureState(
@@ -1799,7 +1762,6 @@
         if (prevDc.mOpeningApps.remove(this)) {
             // Transfer opening transition to new display.
             mDisplayContent.mOpeningApps.add(this);
-            mDisplayContent.transferAppTransitionFrom(prevDc);
             mDisplayContent.executeAppTransition();
         }
 
@@ -4642,12 +4604,6 @@
                 }
             }
 
-            // In this case, the starting icon has already been displayed, so start
-            // letting windows get shown immediately without any more transitions.
-            if (fromActivity.mVisible) {
-                mDisplayContent.mSkipAppTransitionAnimation = true;
-            }
-
             ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Moving existing starting %s"
                     + " from %s to %s", tStartingWindow, fromActivity, this);
 
@@ -5239,7 +5195,8 @@
                         pendingOptions.getWidth(), pendingOptions.getHeight());
                 options = AnimationOptions.makeScaleUpAnimOptions(
                         pendingOptions.getStartX(), pendingOptions.getStartY(),
-                        pendingOptions.getWidth(), pendingOptions.getHeight());
+                        pendingOptions.getWidth(), pendingOptions.getHeight(),
+                        pendingOptions.getOverrideTaskTransition());
                 if (intent.getSourceBounds() == null) {
                     intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
                             pendingOptions.getStartY(),
@@ -5677,76 +5634,17 @@
             mTransitionController.mValidateCommitVis.add(this);
             return;
         }
-        // If we are preparing an app transition, then delay changing
-        // the visibility of this token until we execute that transition.
-        if (deferCommitVisibilityChange(visible)) {
-            return;
-        }
 
         commitVisibility(visible, true /* performLayout */);
         updateReportedVisibilityLocked();
     }
 
-    /**
-     * Returns {@code true} if this activity is either added to opening-apps or closing-apps.
-     * Then its visibility will be committed until the transition is ready.
-     */
-    private boolean deferCommitVisibilityChange(boolean visible) {
-        if (mTransitionController.isShellTransitionsEnabled()) {
-            // Shell transition doesn't use opening/closing sets.
-            return false;
-        }
-        if (!mDisplayContent.mAppTransition.isTransitionSet()) {
-            return false;
-        }
-        if (mWaitForEnteringPinnedMode && mVisible == visible) {
-            // If the visibility is not changed during enter PIP, we don't want to include it in
-            // app transition to affect the animation theme, because the Pip organizer will
-            // animate the entering PIP instead.
-            return false;
-        }
-
-        // The animation will be visible soon so do not skip by screen off.
-        final boolean ignoreScreenOn = canTurnScreenOn() || mTaskSupervisor.getKeyguardController()
-                .isKeyguardGoingAway(mDisplayContent.mDisplayId);
-        // Ignore display frozen so the opening / closing transition type can be updated correctly
-        // even if the display is frozen. And it's safe since in applyAnimation will still check
-        // DC#okToAnimate again if the transition animation is fine to apply.
-        if (!okToAnimate(true /* ignoreFrozen */, ignoreScreenOn)) {
-            return false;
-        }
-        if (visible) {
-            mDisplayContent.mOpeningApps.add(this);
-            mEnteringAnimation = true;
-        } else if (mVisible) {
-            mDisplayContent.mClosingApps.add(this);
-            mEnteringAnimation = false;
-        }
-        if ((mDisplayContent.mAppTransition.getTransitFlags() & TRANSIT_FLAG_OPEN_BEHIND) != 0) {
-            // Add the launching-behind activity to mOpeningApps.
-            final WindowState win = mDisplayContent.findFocusedWindow();
-            if (win != null) {
-                final ActivityRecord focusedActivity = win.mActivityRecord;
-                if (focusedActivity != null) {
-                    ProtoLog.d(WM_DEBUG_APP_TRANSITIONS,
-                            "TRANSIT_FLAG_OPEN_BEHIND,  adding %s to mOpeningApps",
-                            focusedActivity);
-                    // Force animation to be loaded.
-                    mDisplayContent.mOpeningApps.add(focusedActivity);
-                }
-            }
-        }
-        return true;
-    }
-
     @Override
     boolean applyAnimation(LayoutParams lp, @TransitionOldType int transit, boolean enter,
             boolean isVoiceInteraction, @Nullable ArrayList<WindowContainer> sources) {
         if ((mTransitionChangeFlags & FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT) != 0) {
             return false;
         }
-        // If it was set to true, reset the last request to force the transition.
-        mRequestForceTransition = false;
         return super.applyAnimation(lp, transit, enter, isVoiceInteraction, sources);
     }
 
@@ -5771,19 +5669,16 @@
             return;
         }
 
-        final int windowsCount = mChildren.size();
-        // With Shell-Transition, the activity will running a transition when it is visible.
-        // It won't be included when fromTransition is true means the call from finishTransition.
-        final boolean runningAnimation = sEnableShellTransitions ? visible
-                : isAnimating(PARENTS, ANIMATION_TYPE_APP_TRANSITION);
-        for (int i = 0; i < windowsCount; i++) {
-            mChildren.get(i).onAppVisibilityChanged(visible, runningAnimation);
+        if (!visible) {
+            for (int i = mChildren.size() - 1; i >= 0; --i) {
+                mChildren.get(i).onAppCommitInvisible();
+            }
         }
         setVisible(visible);
         setVisibleRequested(visible);
         ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "commitVisibility: %s: visible=%b"
-                        + " visibleRequested=%b, isInTransition=%b, runningAnimation=%b, caller=%s",
-                this, isVisible(), mVisibleRequested, isInTransition(), runningAnimation,
+                        + " visibleRequested=%b, inTransition=%b, caller=%s",
+                this, visible, mVisibleRequested, inTransition(),
                 Debug.getCallers(5));
         if (visible) {
             // If we are being set visible, and the starting window is not yet displayed,
@@ -5873,10 +5768,6 @@
         }
 
         final DisplayContent displayContent = getDisplayContent();
-        if (!visible) {
-            mImeInsetsFrozenUntilStartInput = true;
-        }
-
         if (!displayContent.mClosingApps.contains(this)
                 && !displayContent.mOpeningApps.contains(this)
                 && !fromTransition) {
@@ -5916,27 +5807,6 @@
     }
 
     /**
-     * Check if visibility of this {@link ActivityRecord} should be updated as part of an app
-     * transition.
-     *
-     * <p class="note><strong>Note:</strong> If the visibility of this {@link ActivityRecord} is
-     * already set to {@link #mVisible}, we don't need to update the visibility. So {@code false} is
-     * returned.</p>
-     *
-     * @param visible {@code true} if this {@link ActivityRecord} should become visible,
-     *                {@code false} if this should become invisible.
-     * @return {@code true} if visibility of this {@link ActivityRecord} should be updated, and
-     *         an app transition animation should be run.
-     */
-    boolean shouldApplyAnimation(boolean visible) {
-        // Allow for state update and animation to be applied if:
-        // * activity is transitioning visibility state
-        // * or the activity was marked as hidden and is exiting before we had a chance to play the
-        // transition animation
-        return isVisible() != visible || mRequestForceTransition || (!isVisible() && mIsExiting);
-    }
-
-    /**
      * See {@link Activity#setRecentsScreenshotEnabled}.
      */
     void setRecentsScreenshotEnabled(boolean enabled) {
@@ -6224,13 +6094,8 @@
             return false;
         }
 
-        // Hide all activities on the presenting display so that malicious apps can't do tap
-        // jacking (b/391466268).
-        // For now, this should only be applied to external displays because presentations can only
-        // be shown on them.
-        // TODO(b/390481621): Disallow a presentation from covering its controlling activity so that
-        // the presentation won't stop its controlling activity.
-        if (enablePresentationForConnectedDisplays() && mDisplayContent.mIsPresenting) {
+        // A presentation stopps all activities behind on the same display.
+        if (mWmService.mPresentationController.shouldOccludeActivities(getDisplayId())) {
             return false;
         }
 
@@ -6952,14 +6817,6 @@
             // closing activity having to wait until idle timeout to be stopped or destroyed if the
             // next activity won't report idle (e.g. repeated view animation).
             mTaskSupervisor.scheduleProcessStoppingAndFinishingActivitiesIfNeeded();
-
-            // If the activity is visible, but no windows are eligible to start input, unfreeze
-            // to avoid permanently frozen IME insets.
-            if (mImeInsetsFrozenUntilStartInput && getWindow(
-                    win -> WindowManager.LayoutParams.mayUseInputMethod(win.mAttrs.flags))
-                    == null) {
-                mImeInsetsFrozenUntilStartInput = false;
-            }
         }
     }
 
@@ -7659,13 +7516,6 @@
     }
 
     @Override
-    public boolean shouldDeferAnimationFinish(Runnable endDeferFinishCallback) {
-        return mAnimatingActivityRegistry != null
-                && mAnimatingActivityRegistry.notifyAboutToFinish(
-                this, endDeferFinishCallback);
-    }
-
-    @Override
     boolean isWaitingForTransitionStart() {
         final DisplayContent dc = getDisplayContent();
         return dc != null && dc.mAppTransition.isTransitionSet()
@@ -7686,10 +7536,6 @@
 
     @Override
     public void onLeashAnimationStarting(Transaction t, SurfaceControl leash) {
-        if (mAnimatingActivityRegistry != null) {
-            mAnimatingActivityRegistry.notifyStarting(this);
-        }
-
         if (mNeedsLetterboxedAnimation) {
             updateLetterboxSurfaceIfNeeded(findMainWindow(), t);
             mNeedsAnimationBoundsLayer = true;
@@ -7700,17 +7546,7 @@
         // new layer.
         if (mNeedsAnimationBoundsLayer) {
             mTmpRect.setEmpty();
-            if (getDisplayContent().mAppTransitionController.isTransitWithinTask(
-                    getTransit(), task)) {
-                task.getBounds(mTmpRect);
-            } else {
-                final Task rootTask = getRootTask();
-                if (rootTask == null) {
-                    return;
-                }
-                // Set clip rect to root task bounds.
-                rootTask.getBounds(mTmpRect);
-            }
+            task.getBounds(mTmpRect);
             mAnimationBoundsLayer = createAnimationBoundsLayer(t);
 
             // Crop to root task bounds.
@@ -7866,10 +7702,6 @@
             mNeedsLetterboxedAnimation = false;
             updateLetterboxSurfaceIfNeeded(findMainWindow(), t);
         }
-
-        if (mAnimatingActivityRegistry != null) {
-            mAnimatingActivityRegistry.notifyFinished(this);
-        }
     }
 
     @Override
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index ddb9f17..819e117 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -4128,22 +4128,7 @@
     @Override
     public void registerRemoteAnimationsForDisplay(int displayId,
             RemoteAnimationDefinition definition) {
-        mAmInternal.enforceCallingPermission(CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS,
-                "registerRemoteAnimations");
-        definition.setCallingPidUid(Binder.getCallingPid(), Binder.getCallingUid());
-        synchronized (mGlobalLock) {
-            final DisplayContent display = mRootWindowContainer.getDisplayContent(displayId);
-            if (display == null) {
-                Slog.e(TAG, "Couldn't find display with id: " + displayId);
-                return;
-            }
-            final long origId = Binder.clearCallingIdentity();
-            try {
-                display.registerRemoteAnimations(definition);
-            } finally {
-                Binder.restoreCallingIdentity(origId);
-            }
-        }
+        // TODO(b/365884835): Remove callers.
     }
 
     /** @see android.app.ActivityManager#alwaysShowUnsupportedCompileSdkWarning */
@@ -4324,10 +4309,12 @@
                 task = mRootWindowContainer.getDefaultTaskDisplayArea().getRootTask(
                         t -> t.isActivityTypeStandard());
             }
-            if (task != null && task.getTopMostActivity() != null
-                    && !task.getTopMostActivity().isState(FINISHING, DESTROYING, DESTROYED)) {
+            final ActivityRecord topActivity = task != null
+                    ? task.getTopMostActivity()
+                    : null;
+            if (topActivity != null && !topActivity.isState(FINISHING, DESTROYING, DESTROYED)) {
                 mWindowManager.mAtmService.mActivityClientController
-                        .onPictureInPictureUiStateChanged(task.getTopMostActivity(), pipState);
+                        .onPictureInPictureUiStateChanged(topActivity, pipState);
             }
         }
     }
diff --git a/services/core/java/com/android/server/wm/AnimatingActivityRegistry.java b/services/core/java/com/android/server/wm/AnimatingActivityRegistry.java
deleted file mode 100644
index 18ec96c..0000000
--- a/services/core/java/com/android/server/wm/AnimatingActivityRegistry.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.server.wm;
-
-import android.util.ArrayMap;
-import android.util.ArraySet;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-/**
- * Keeps track of all {@link ActivityRecord} that are animating and makes sure all animations are
- * finished at the same time such that we don't run into issues with z-ordering: An activity A
- * that has a shorter animation that is above another activity B with a longer animation in the same
- * task, the animation layer would put the B on top of A, but from the hierarchy, A needs to be on
- * top of B. Thus, we defer reparenting A to the original hierarchy such that it stays on top of B
- * until B finishes animating.
- */
-class AnimatingActivityRegistry {
-
-    private ArraySet<ActivityRecord> mAnimatingActivities = new ArraySet<>();
-    private ArrayMap<ActivityRecord, Runnable> mFinishedTokens = new ArrayMap<>();
-
-    private ArrayList<Runnable> mTmpRunnableList = new ArrayList<>();
-
-    private boolean mEndingDeferredFinish;
-
-    /**
-     * Notifies that an {@link ActivityRecord} has started animating.
-     */
-    void notifyStarting(ActivityRecord token) {
-        mAnimatingActivities.add(token);
-    }
-
-    /**
-     * Notifies that an {@link ActivityRecord} has finished animating.
-     */
-    void notifyFinished(ActivityRecord activity) {
-        mAnimatingActivities.remove(activity);
-        mFinishedTokens.remove(activity);
-
-        // If we were the last activity, make sure the end all deferred finishes.
-        if (mAnimatingActivities.isEmpty()) {
-            endDeferringFinished();
-        }
-    }
-
-    /**
-     * Called when an {@link ActivityRecord} is about to finish animating.
-     *
-     * @param endDeferFinishCallback Callback to run when defer finish should be ended.
-     * @return {@code true} if finishing the animation should be deferred, {@code false} otherwise.
-     */
-    boolean notifyAboutToFinish(ActivityRecord activity, Runnable endDeferFinishCallback) {
-        final boolean removed = mAnimatingActivities.remove(activity);
-        if (!removed) {
-            return false;
-        }
-
-        if (mAnimatingActivities.isEmpty()) {
-
-            // If no animations are animating anymore, finish all others.
-            endDeferringFinished();
-            return false;
-        } else {
-
-            // Otherwise let's put it into the pending list of to be finished animations.
-            mFinishedTokens.put(activity, endDeferFinishCallback);
-            return true;
-        }
-    }
-
-    private void endDeferringFinished() {
-
-        // Don't start recursing. Running the finished listener invokes notifyFinished, which may
-        // invoked us again.
-        if (mEndingDeferredFinish) {
-            return;
-        }
-        try {
-            mEndingDeferredFinish = true;
-
-            // Copy it into a separate temp list to avoid modifying the collection while iterating
-            // as calling the callback may call back into notifyFinished.
-            for (int i = mFinishedTokens.size() - 1; i >= 0; i--) {
-                mTmpRunnableList.add(mFinishedTokens.valueAt(i));
-            }
-            mFinishedTokens.clear();
-            for (int i = mTmpRunnableList.size() - 1; i >= 0; i--) {
-                mTmpRunnableList.get(i).run();
-            }
-            mTmpRunnableList.clear();
-        } finally {
-            mEndingDeferredFinish = false;
-        }
-    }
-
-    void dump(PrintWriter pw, String header, String prefix) {
-        if (!mAnimatingActivities.isEmpty() || !mFinishedTokens.isEmpty()) {
-            pw.print(prefix); pw.println(header);
-            prefix = prefix + "  ";
-            pw.print(prefix); pw.print("mAnimatingActivities="); pw.println(mAnimatingActivities);
-            pw.print(prefix); pw.print("mFinishedTokens="); pw.println(mFinishedTokens);
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/wm/AnimationAdapter.java b/services/core/java/com/android/server/wm/AnimationAdapter.java
index 3dc377d..4458ed7 100644
--- a/services/core/java/com/android/server/wm/AnimationAdapter.java
+++ b/services/core/java/com/android/server/wm/AnimationAdapter.java
@@ -109,15 +109,6 @@
      * Gets called when the animation is about to finish and gives the client the opportunity to
      * defer finishing the animation, i.e. it keeps the leash around until the client calls
      * endDeferFinishCallback.
-     * <p>
-     * This has the same effect as
-     * {@link com.android.server.wm.SurfaceAnimator.Animatable#shouldDeferAnimationFinish(Runnable)}
-     * . The later will be evaluated first and has precedence over this method if it returns true,
-     * which means that if the {@link com.android.server.wm.SurfaceAnimator.Animatable} requests to
-     * defer its finish, this method won't be called so this adapter will never have access to the
-     * finish callback. On the other hand, if the
-     * {@link com.android.server.wm.SurfaceAnimator.Animatable}, doesn't request to defer, this
-     * {@link AnimationAdapter} is responsible for ending the animation.
      *
      * @param endDeferFinishCallback The callback to call when defer finishing should be ended.
      * @return Whether the client would like to defer the animation finish.
diff --git a/services/core/java/com/android/server/wm/AppCompatSizeCompatModePolicy.java b/services/core/java/com/android/server/wm/AppCompatSizeCompatModePolicy.java
index c683188..bbc3300 100644
--- a/services/core/java/com/android/server/wm/AppCompatSizeCompatModePolicy.java
+++ b/services/core/java/com/android/server/wm/AppCompatSizeCompatModePolicy.java
@@ -228,10 +228,11 @@
         int rotation = newParentConfiguration.windowConfiguration.getRotation();
         final boolean isFixedToUserRotation = mActivityRecord.mDisplayContent == null
                 || mActivityRecord.mDisplayContent.getDisplayRotation().isFixedToUserRotation();
+        final boolean tasksAreFloating =
+                newParentConfiguration.windowConfiguration.tasksAreFloating();
         // Ignore parent rotation for floating tasks as window rotation is independent of its parent
         // and thus will remain, and so should be reconfigured, in its original rotation.
-        if (!isFixedToUserRotation
-                && !newParentConfiguration.windowConfiguration.tasksAreFloating()) {
+        if (!isFixedToUserRotation && !tasksAreFloating) {
             // Use parent rotation because the original display can be rotated.
             resolvedConfig.windowConfiguration.setRotation(rotation);
         } else {
@@ -297,7 +298,9 @@
         final float lastSizeCompatScale = mSizeCompatScale;
         updateSizeCompatScale(resolvedAppBounds, containerAppBounds, newParentConfiguration);
 
-        final int containerTopInset = containerAppBounds.top - containerBounds.top;
+        // Container top inset when floating is not included in height of bounds.
+        final int containerTopInset = tasksAreFloating ? 0
+                : containerAppBounds.top - containerBounds.top;
         final boolean topNotAligned =
                 containerTopInset != resolvedAppBounds.top - resolvedBounds.top;
         if (mSizeCompatScale != 1f || topNotAligned) {
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index 932f268..9c4b722 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -1462,7 +1462,7 @@
     }
 
     boolean prepareAppTransition(@TransitionType int transit, @TransitionFlags int flags) {
-        if (mDisplayContent.mTransitionController.isShellTransitionsEnabled()) {
+        if (WindowManagerService.sEnableShellTransitions) {
             return false;
         }
         mNextAppTransitionRequests.add(transit);
diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java
deleted file mode 100644
index d5fe056..0000000
--- a/services/core/java/com/android/server/wm/AppTransitionController.java
+++ /dev/null
@@ -1,1352 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.server.wm;
-
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
-import static android.view.WindowManager.TRANSIT_CHANGE;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED;
-import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_OCCLUDE;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
-import static android.view.WindowManager.TRANSIT_NONE;
-import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_RELAUNCH;
-import static android.view.WindowManager.TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_DREAM_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_DREAM_ACTIVITY_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY_ON_WALLPAPER;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_OCCLUDE;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_OCCLUDE_BY_DREAM;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_UNOCCLUDE;
-import static android.view.WindowManager.TRANSIT_OLD_NONE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_CHANGE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN_BEHIND;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_BACK;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_FRONT;
-import static android.view.WindowManager.TRANSIT_OLD_TRANSLUCENT_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TRANSLUCENT_ACTIVITY_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_WALLPAPER_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_WALLPAPER_INTRA_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_WALLPAPER_INTRA_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_WALLPAPER_OPEN;
-import static android.view.WindowManager.TRANSIT_OPEN;
-import static android.view.WindowManager.TRANSIT_RELAUNCH;
-import static android.view.WindowManager.TRANSIT_TO_BACK;
-import static android.view.WindowManager.TRANSIT_TO_FRONT;
-
-import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM;
-import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;
-import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
-import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_SNAPSHOT;
-import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_SPLASH_SCREEN;
-import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_WINDOWS_DRAWN;
-import static com.android.server.wm.AppTransition.isNormalTransit;
-import static com.android.server.wm.NonAppWindowAnimationAdapter.shouldAttachNavBarToApp;
-import static com.android.server.wm.NonAppWindowAnimationAdapter.shouldStartNonAppWindowAnimationsForKeyguardExit;
-import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
-import static com.android.server.wm.WallpaperAnimationAdapter.shouldStartWallpaperAnimation;
-import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
-
-import android.annotation.IntDef;
-import android.annotation.Nullable;
-import android.graphics.Rect;
-import android.os.Trace;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import android.util.Pair;
-import android.view.RemoteAnimationAdapter;
-import android.view.RemoteAnimationDefinition;
-import android.view.WindowManager;
-import android.view.WindowManager.LayoutParams;
-import android.view.WindowManager.TransitionFlags;
-import android.view.WindowManager.TransitionOldType;
-import android.view.WindowManager.TransitionType;
-import android.window.ITaskFragmentOrganizer;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.protolog.ProtoLog;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.ArrayDeque;
-import java.util.ArrayList;
-import java.util.function.Consumer;
-import java.util.function.Predicate;
-
-/**
- * Checks for app transition readiness, resolves animation attributes and performs visibility
- * change for apps that animate as part of an app transition.
- */
-public class AppTransitionController {
-    private static final String TAG = TAG_WITH_CLASS_NAME ? "AppTransitionController" : TAG_WM;
-    private final WindowManagerService mService;
-    private final DisplayContent mDisplayContent;
-    private final WallpaperController mWallpaperControllerLocked;
-    private RemoteAnimationDefinition mRemoteAnimationDefinition = null;
-
-    private static final int TYPE_NONE = 0;
-    private static final int TYPE_ACTIVITY = 1;
-    private static final int TYPE_TASK_FRAGMENT = 2;
-    private static final int TYPE_TASK = 3;
-
-    @IntDef(prefix = { "TYPE_" }, value = {
-            TYPE_NONE,
-            TYPE_ACTIVITY,
-            TYPE_TASK_FRAGMENT,
-            TYPE_TASK
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface TransitContainerType {}
-
-    private final ArrayMap<WindowContainer, Integer> mTempTransitionReasons = new ArrayMap<>();
-    private final ArrayList<WindowContainer> mTempTransitionWindows = new ArrayList<>();
-
-    AppTransitionController(WindowManagerService service, DisplayContent displayContent) {
-        mService = service;
-        mDisplayContent = displayContent;
-        mWallpaperControllerLocked = mDisplayContent.mWallpaperController;
-    }
-
-    void registerRemoteAnimations(RemoteAnimationDefinition definition) {
-        mRemoteAnimationDefinition = definition;
-    }
-
-    /**
-     * Returns the currently visible window that is associated with the wallpaper in case we are
-     * transitioning from an activity with a wallpaper to one without.
-     */
-    @Nullable
-    private WindowState getOldWallpaper() {
-        final WindowState wallpaperTarget = mWallpaperControllerLocked.getWallpaperTarget();
-        final @TransitionType int firstTransit =
-                mDisplayContent.mAppTransition.getFirstAppTransition();
-
-        final ArraySet<WindowContainer> openingWcs = getAnimationTargets(
-                mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps, true /* visible */);
-        final boolean showWallpaper = wallpaperTarget != null
-                && (wallpaperTarget.hasWallpaper()
-                // Update task open transition to wallpaper transition when wallpaper is visible.
-                // (i.e.launching app info activity from recent tasks)
-                || ((firstTransit == TRANSIT_OPEN || firstTransit == TRANSIT_TO_FRONT)
-                && (!openingWcs.isEmpty() && openingWcs.valueAt(0).asTask() != null)
-                && mWallpaperControllerLocked.isWallpaperVisible()));
-        // If wallpaper is animating or wallpaperTarget doesn't have SHOW_WALLPAPER flag set,
-        // don't consider upgrading to wallpaper transition.
-        return (mWallpaperControllerLocked.isWallpaperTargetAnimating() || !showWallpaper)
-                ? null : wallpaperTarget;
-    }
-
-    /**
-     * Handle application transition for given display.
-     */
-    void handleAppTransitionReady() {
-        mTempTransitionReasons.clear();
-        if (!transitionGoodToGo(mDisplayContent.mOpeningApps, mTempTransitionReasons)
-                || !transitionGoodToGo(mDisplayContent.mChangingContainers, mTempTransitionReasons)
-                || !transitionGoodToGoForTaskFragments()) {
-            return;
-        }
-
-        Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "AppTransitionReady");
-
-        ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "**** GOOD TO GO");
-        // TODO(b/205335975): Remove window which stuck in animatingExit status. Find actual cause.
-        mDisplayContent.forAllWindows(WindowState::cleanupAnimatingExitWindow,
-                true /* traverseTopToBottom */);
-        // TODO(new-app-transition): Remove code using appTransition.getAppTransition()
-        final AppTransition appTransition = mDisplayContent.mAppTransition;
-
-        mDisplayContent.mNoAnimationNotifyOnTransitionFinished.clear();
-
-        appTransition.removeAppTransitionTimeoutCallbacks();
-
-        mDisplayContent.mWallpaperMayChange = false;
-
-        int appCount = mDisplayContent.mOpeningApps.size();
-        for (int i = 0; i < appCount; ++i) {
-            // Clearing the mAnimatingExit flag before entering animation. It's set to true if app
-            // window is removed, or window relayout to invisible. This also affects window
-            // visibility. We need to clear it *before* maybeUpdateTransitToWallpaper() as the
-            // transition selection depends on wallpaper target visibility.
-            mDisplayContent.mOpeningApps.valueAtUnchecked(i).clearAnimatingFlags();
-        }
-        appCount = mDisplayContent.mChangingContainers.size();
-        for (int i = 0; i < appCount; ++i) {
-            // Clearing for same reason as above.
-            final ActivityRecord activity = getAppFromContainer(
-                    mDisplayContent.mChangingContainers.valueAtUnchecked(i));
-            if (activity != null) {
-                activity.clearAnimatingFlags();
-            }
-        }
-
-        // Adjust wallpaper before we pull the lower/upper target, since pending changes
-        // (like the clearAnimatingFlags() above) might affect wallpaper target result.
-        // Or, the opening app window should be a wallpaper target.
-        mWallpaperControllerLocked.adjustWallpaperWindowsForAppTransitionIfNeeded(
-                mDisplayContent.mOpeningApps);
-
-        ArraySet<ActivityRecord> tmpOpenApps = mDisplayContent.mOpeningApps;
-        ArraySet<ActivityRecord> tmpCloseApps = mDisplayContent.mClosingApps;
-        if (mDisplayContent.mAtmService.mBackNavigationController.isMonitoringFinishTransition()) {
-            tmpOpenApps = new ArraySet<>(mDisplayContent.mOpeningApps);
-            tmpCloseApps = new ArraySet<>(mDisplayContent.mClosingApps);
-        }
-
-        @TransitionOldType final int transit = getTransitCompatType(
-                mDisplayContent.mAppTransition, tmpOpenApps,
-                tmpCloseApps, mDisplayContent.mChangingContainers,
-                mWallpaperControllerLocked.getWallpaperTarget(), getOldWallpaper(),
-                mDisplayContent.mSkipAppTransitionAnimation);
-        mDisplayContent.mSkipAppTransitionAnimation = false;
-
-        ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
-                "handleAppTransitionReady: displayId=%d appTransition={%s}"
-                + " openingApps=[%s] closingApps=[%s] transit=%s",
-                mDisplayContent.mDisplayId, appTransition.toString(), tmpOpenApps,
-                tmpCloseApps, AppTransition.appTransitionOldToString(transit));
-
-        // Find the layout params of the top-most application window in the tokens, which is
-        // what will control the animation theme. If all closing windows are obscured, then there is
-        // no need to do an animation. This is the case, for example, when this transition is being
-        // done behind a dream window.
-        final ArraySet<Integer> activityTypes = collectActivityTypes(tmpOpenApps,
-                tmpCloseApps, mDisplayContent.mChangingContainers);
-        final ActivityRecord animLpActivity = findAnimLayoutParamsToken(transit, activityTypes,
-                tmpOpenApps, tmpCloseApps, mDisplayContent.mChangingContainers);
-        final ActivityRecord topOpeningApp =
-                getTopApp(tmpOpenApps, false /* ignoreHidden */);
-        final ActivityRecord topClosingApp =
-                getTopApp(tmpCloseApps, false /* ignoreHidden */);
-        final ActivityRecord topChangingApp =
-                getTopApp(mDisplayContent.mChangingContainers, false /* ignoreHidden */);
-        final WindowManager.LayoutParams animLp = getAnimLp(animLpActivity);
-
-        // Check if there is any override
-        if (!overrideWithTaskFragmentRemoteAnimation(transit, activityTypes)) {
-            // Unfreeze the windows that were previously frozen for TaskFragment animation.
-            overrideWithRemoteAnimationIfSet(animLpActivity, transit, activityTypes);
-        }
-
-        final boolean voiceInteraction = containsVoiceInteraction(mDisplayContent.mClosingApps)
-                || containsVoiceInteraction(mDisplayContent.mOpeningApps);
-
-        final int layoutRedo;
-        mService.mSurfaceAnimationRunner.deferStartingAnimations();
-        try {
-            applyAnimations(tmpOpenApps, tmpCloseApps, transit, animLp, voiceInteraction);
-            handleClosingApps();
-            handleOpeningApps();
-            handleChangingApps(transit);
-            handleClosingChangingContainers();
-
-            appTransition.setLastAppTransition(transit, topOpeningApp,
-                    topClosingApp, topChangingApp);
-
-            final int flags = appTransition.getTransitFlags();
-            layoutRedo = appTransition.goodToGo(transit, topOpeningApp);
-            appTransition.postAnimationCallback();
-        } finally {
-            appTransition.clear();
-            mService.mSurfaceAnimationRunner.continueStartingAnimations();
-        }
-
-        mService.mSnapshotController.onTransitionStarting(mDisplayContent);
-
-        mDisplayContent.mOpeningApps.clear();
-        mDisplayContent.mClosingApps.clear();
-        mDisplayContent.mChangingContainers.clear();
-        mDisplayContent.mUnknownAppVisibilityController.clear();
-        mDisplayContent.mClosingChangingContainers.clear();
-
-        // This has changed the visibility of windows, so perform
-        // a new layout to get them all up-to-date.
-        mDisplayContent.setLayoutNeeded();
-
-        mDisplayContent.computeImeTarget(true /* updateImeTarget */);
-
-        mService.mAtmService.mTaskSupervisor.getActivityMetricsLogger().notifyTransitionStarting(
-                mTempTransitionReasons);
-
-        Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
-
-        mDisplayContent.pendingLayoutChanges |=
-                layoutRedo | FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_CONFIG;
-    }
-
-    /**
-     * Get old transit type based on the current transit requests.
-     *
-     * @param appTransition {@link AppTransition} for managing app transition state.
-     * @param openingApps {@link ActivityRecord}s which are becoming visible.
-     * @param closingApps {@link ActivityRecord}s which are becoming invisible.
-     * @param changingContainers {@link WindowContainer}s which are changed in configuration.
-     * @param wallpaperTarget If non-null, this is the currently visible window that is associated
-     *                        with the wallpaper.
-     * @param oldWallpaper The currently visible window that is associated with the wallpaper in
-     *                     case we are transitioning from an activity with a wallpaper to one
-     *                     without. Otherwise null.
-     */
-    @TransitionOldType static int getTransitCompatType(AppTransition appTransition,
-            ArraySet<ActivityRecord> openingApps, ArraySet<ActivityRecord> closingApps,
-            ArraySet<WindowContainer> changingContainers, @Nullable WindowState wallpaperTarget,
-            @Nullable WindowState oldWallpaper, boolean skipAppTransitionAnimation) {
-
-        final ActivityRecord topOpeningApp = getTopApp(openingApps, false /* ignoreHidden */);
-        final ActivityRecord topClosingApp = getTopApp(closingApps, true /* ignoreHidden */);
-
-        // Determine if closing and opening app token sets are wallpaper targets, in which case
-        // special animations are needed.
-        final boolean openingAppHasWallpaper = canBeWallpaperTarget(openingApps)
-                && wallpaperTarget != null;
-        final boolean closingAppHasWallpaper = canBeWallpaperTarget(closingApps)
-                && wallpaperTarget != null;
-
-        // Keyguard transit has high priority.
-        switch (appTransition.getKeyguardTransition()) {
-            case TRANSIT_KEYGUARD_GOING_AWAY:
-                return openingAppHasWallpaper ? TRANSIT_OLD_KEYGUARD_GOING_AWAY_ON_WALLPAPER
-                        : TRANSIT_OLD_KEYGUARD_GOING_AWAY;
-            case TRANSIT_KEYGUARD_OCCLUDE:
-                // When there is a closing app, the keyguard has already been occluded by an
-                // activity, and another activity has started on top of that activity, so normal
-                // app transition animation should be used.
-                if (!closingApps.isEmpty()) {
-                    return TRANSIT_OLD_ACTIVITY_OPEN;
-                }
-                if (!openingApps.isEmpty() && openingApps.valueAt(0).getActivityType()
-                        == ACTIVITY_TYPE_DREAM) {
-                    return TRANSIT_OLD_KEYGUARD_OCCLUDE_BY_DREAM;
-                }
-                return TRANSIT_OLD_KEYGUARD_OCCLUDE;
-            case TRANSIT_KEYGUARD_UNOCCLUDE:
-                return TRANSIT_OLD_KEYGUARD_UNOCCLUDE;
-        }
-
-        // Determine whether the top opening and closing activity is a dream activity. If so, this
-        // has higher priority than others except keyguard transit.
-        if (topOpeningApp != null && topOpeningApp.getActivityType() == ACTIVITY_TYPE_DREAM) {
-            return TRANSIT_OLD_DREAM_ACTIVITY_OPEN;
-        } else if (topClosingApp != null
-                && topClosingApp.getActivityType() == ACTIVITY_TYPE_DREAM) {
-            return TRANSIT_OLD_DREAM_ACTIVITY_CLOSE;
-        }
-
-        // This is not keyguard transition and one of the app has request to skip app transition.
-        if (skipAppTransitionAnimation) {
-            return WindowManager.TRANSIT_OLD_UNSET;
-        }
-        @TransitionFlags final int flags = appTransition.getTransitFlags();
-        @TransitionType final int firstTransit = appTransition.getFirstAppTransition();
-
-        // Special transitions
-        // TODO(new-app-transitions): Revisit if those can be rewritten by using flags.
-        if (appTransition.containsTransitRequest(TRANSIT_CHANGE) && !changingContainers.isEmpty()) {
-            @TransitContainerType int changingType =
-                    getTransitContainerType(changingContainers.valueAt(0));
-            switch (changingType) {
-                case TYPE_TASK:
-                    return TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE;
-                case TYPE_TASK_FRAGMENT:
-                    return TRANSIT_OLD_TASK_FRAGMENT_CHANGE;
-                default:
-                    throw new IllegalStateException(
-                            "TRANSIT_CHANGE with unrecognized changing type=" + changingType);
-            }
-        }
-        if ((flags & TRANSIT_FLAG_APP_CRASHED) != 0) {
-            return TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE;
-        }
-        if (firstTransit == TRANSIT_NONE) {
-            return TRANSIT_OLD_NONE;
-        }
-
-        /*
-         * There are cases where we open/close a new task/activity, but in reality only a
-         * translucent activity on top of existing activities is opening/closing. For that one, we
-         * have a different animation because non of the task/activity animations actually work well
-         * with translucent apps.
-         */
-        if (isNormalTransit(firstTransit)) {
-            boolean allOpeningVisible = true;
-            boolean allTranslucentOpeningApps = !openingApps.isEmpty();
-            for (int i = openingApps.size() - 1; i >= 0; i--) {
-                final ActivityRecord activity = openingApps.valueAt(i);
-                if (!activity.isVisible()) {
-                    allOpeningVisible = false;
-                    if (activity.fillsParent()) {
-                        allTranslucentOpeningApps = false;
-                    }
-                }
-            }
-            boolean allTranslucentClosingApps = !closingApps.isEmpty();
-            for (int i = closingApps.size() - 1; i >= 0; i--) {
-                if (closingApps.valueAt(i).fillsParent()) {
-                    allTranslucentClosingApps = false;
-                    break;
-                }
-            }
-
-            if (allTranslucentClosingApps && allOpeningVisible) {
-                return TRANSIT_OLD_TRANSLUCENT_ACTIVITY_CLOSE;
-            }
-            if (allTranslucentOpeningApps && closingApps.isEmpty()) {
-                return TRANSIT_OLD_TRANSLUCENT_ACTIVITY_OPEN;
-            }
-        }
-
-        if (closingAppHasWallpaper && openingAppHasWallpaper) {
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Wallpaper animation!");
-            switch (firstTransit) {
-                case TRANSIT_OPEN:
-                case TRANSIT_TO_FRONT:
-                    return TRANSIT_OLD_WALLPAPER_INTRA_OPEN;
-                case TRANSIT_CLOSE:
-                case TRANSIT_TO_BACK:
-                    return TRANSIT_OLD_WALLPAPER_INTRA_CLOSE;
-            }
-        } else if (oldWallpaper != null && !openingApps.isEmpty()
-                && !openingApps.contains(oldWallpaper.mActivityRecord)
-                && closingApps.contains(oldWallpaper.mActivityRecord)
-                && topClosingApp == oldWallpaper.mActivityRecord) {
-            // We are transitioning from an activity with a wallpaper to one without.
-            return TRANSIT_OLD_WALLPAPER_CLOSE;
-        } else if (wallpaperTarget != null && wallpaperTarget.isVisible()
-                && openingApps.contains(wallpaperTarget.mActivityRecord)
-                && topOpeningApp == wallpaperTarget.mActivityRecord
-                /* && transit != TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE */) {
-            // We are transitioning from an activity without
-            // a wallpaper to now showing the wallpaper
-            return TRANSIT_OLD_WALLPAPER_OPEN;
-        }
-
-        final ArraySet<WindowContainer> openingWcs = getAnimationTargets(
-                openingApps, closingApps, true /* visible */);
-        final ArraySet<WindowContainer> closingWcs = getAnimationTargets(
-                openingApps, closingApps, false /* visible */);
-        final WindowContainer<?> openingContainer = !openingWcs.isEmpty()
-                ? openingWcs.valueAt(0) : null;
-        final WindowContainer<?> closingContainer = !closingWcs.isEmpty()
-                ? closingWcs.valueAt(0) : null;
-        @TransitContainerType int openingType = getTransitContainerType(openingContainer);
-        @TransitContainerType int closingType = getTransitContainerType(closingContainer);
-        if (appTransition.containsTransitRequest(TRANSIT_TO_FRONT) && openingType == TYPE_TASK) {
-            if (topOpeningApp != null && topOpeningApp.isActivityTypeHome()) {
-                // If we are opening the home task, we want to play an animation as if
-                // the task on top is being brought to back.
-                return TRANSIT_OLD_TASK_TO_BACK;
-            }
-            return TRANSIT_OLD_TASK_TO_FRONT;
-        }
-        if (appTransition.containsTransitRequest(TRANSIT_TO_BACK) && closingType == TYPE_TASK) {
-            return TRANSIT_OLD_TASK_TO_BACK;
-        }
-        if (appTransition.containsTransitRequest(TRANSIT_OPEN)) {
-            if (openingType == TYPE_TASK) {
-                return (appTransition.getTransitFlags() & TRANSIT_FLAG_OPEN_BEHIND) != 0
-                        ? TRANSIT_OLD_TASK_OPEN_BEHIND : TRANSIT_OLD_TASK_OPEN;
-            }
-            if (openingType == TYPE_ACTIVITY) {
-                return TRANSIT_OLD_ACTIVITY_OPEN;
-            }
-            if (openingType == TYPE_TASK_FRAGMENT) {
-                return TRANSIT_OLD_TASK_FRAGMENT_OPEN;
-            }
-        }
-        if (appTransition.containsTransitRequest(TRANSIT_CLOSE)) {
-            if (closingType == TYPE_TASK) {
-                return TRANSIT_OLD_TASK_CLOSE;
-            }
-            if (closingType == TYPE_TASK_FRAGMENT) {
-                return TRANSIT_OLD_TASK_FRAGMENT_CLOSE;
-            }
-            if (closingType == TYPE_ACTIVITY) {
-                for (int i = closingApps.size() - 1; i >= 0; i--) {
-                    if (closingApps.valueAt(i).visibleIgnoringKeyguard) {
-                        return TRANSIT_OLD_ACTIVITY_CLOSE;
-                    }
-                }
-                // Skip close activity transition since no closing app can be visible
-                return WindowManager.TRANSIT_OLD_UNSET;
-            }
-        }
-        if (appTransition.containsTransitRequest(TRANSIT_RELAUNCH)
-                && !openingWcs.isEmpty() && !openingApps.isEmpty()) {
-            return TRANSIT_OLD_ACTIVITY_RELAUNCH;
-        }
-        return TRANSIT_OLD_NONE;
-    }
-
-    @TransitContainerType
-    private static int getTransitContainerType(@Nullable WindowContainer<?> container) {
-        if (container == null) {
-            return TYPE_NONE;
-        }
-        if (container.asTask() != null) {
-            return TYPE_TASK;
-        }
-        if (container.asTaskFragment() != null) {
-            return TYPE_TASK_FRAGMENT;
-        }
-        if (container.asActivityRecord() != null) {
-            return TYPE_ACTIVITY;
-        }
-        return TYPE_NONE;
-    }
-
-    @Nullable
-    private static WindowManager.LayoutParams getAnimLp(ActivityRecord activity) {
-        final WindowState mainWindow = activity != null ? activity.findMainWindow() : null;
-        return mainWindow != null ? mainWindow.mAttrs : null;
-    }
-
-    RemoteAnimationAdapter getRemoteAnimationOverride(@Nullable WindowContainer container,
-            @TransitionOldType int transit, ArraySet<Integer> activityTypes) {
-        if (container != null) {
-            final RemoteAnimationDefinition definition = container.getRemoteAnimationDefinition();
-            if (definition != null) {
-                final RemoteAnimationAdapter adapter = definition.getAdapter(transit,
-                        activityTypes);
-                if (adapter != null) {
-                    return adapter;
-                }
-            }
-        }
-        return mRemoteAnimationDefinition != null
-                ? mRemoteAnimationDefinition.getAdapter(transit, activityTypes)
-                : null;
-    }
-
-    private boolean transitionMayContainNonAppWindows(@TransitionOldType int transit) {
-        // We don't want to have the client to animate any non-app windows.
-        // Having {@code transit} of those types doesn't mean it will contain non-app windows, but
-        // non-app windows will only be included with those transition types. And we don't currently
-        // have any use case of those for TaskFragment transition.
-        return shouldStartNonAppWindowAnimationsForKeyguardExit(transit)
-                || shouldAttachNavBarToApp(mService, mDisplayContent, transit)
-                || shouldStartWallpaperAnimation(mDisplayContent);
-    }
-
-    /**
-     * Whether the transition contains any embedded {@link TaskFragment} that does not fill the
-     * parent {@link Task} before or after the transition.
-     */
-    private boolean transitionContainsTaskFragmentWithBoundsOverride() {
-        for (int i = mDisplayContent.mChangingContainers.size() - 1; i >= 0; i--) {
-            final WindowContainer wc = mDisplayContent.mChangingContainers.valueAt(i);
-            if (wc.isEmbedded()) {
-                // Contains embedded TaskFragment with bounds changed.
-                return true;
-            }
-        }
-        mTempTransitionWindows.clear();
-        mTempTransitionWindows.addAll(mDisplayContent.mClosingApps);
-        mTempTransitionWindows.addAll(mDisplayContent.mOpeningApps);
-        boolean containsTaskFragmentWithBoundsOverride = false;
-        for (int i = mTempTransitionWindows.size() - 1; i >= 0; i--) {
-            final ActivityRecord r = mTempTransitionWindows.get(i).asActivityRecord();
-            final TaskFragment tf = r.getTaskFragment();
-            if (tf != null && tf.isEmbeddedWithBoundsOverride()) {
-                containsTaskFragmentWithBoundsOverride = true;
-                break;
-            }
-        }
-        mTempTransitionWindows.clear();
-        return containsTaskFragmentWithBoundsOverride;
-    }
-
-    /**
-     * Finds the common parent {@link Task} that is parent of all embedded app windows in the
-     * current transition.
-     * @return {@code null} if app windows in the transition are not children of the same Task, or
-     *         if none of the app windows is embedded.
-     */
-    @Nullable
-    private Task findParentTaskForAllEmbeddedWindows() {
-        mTempTransitionWindows.clear();
-        mTempTransitionWindows.addAll(mDisplayContent.mClosingApps);
-        mTempTransitionWindows.addAll(mDisplayContent.mOpeningApps);
-        mTempTransitionWindows.addAll(mDisplayContent.mChangingContainers);
-
-        // It should only animated by the organizer if all windows are below the same leaf Task.
-        Task leafTask = null;
-        for (int i = mTempTransitionWindows.size() - 1; i >= 0; i--) {
-            final ActivityRecord r = getAppFromContainer(mTempTransitionWindows.get(i));
-            if (r == null) {
-                leafTask = null;
-                break;
-            }
-            // There are also cases where the Task contains non-embedded activity, such as launching
-            // split TaskFragments from a non-embedded activity.
-            // The hierarchy may looks like this:
-            // - Task
-            //    - Activity
-            //    - TaskFragment
-            //       - Activity
-            //    - TaskFragment
-            //       - Activity
-            // We also want to have the organizer handle the transition for such case.
-            final Task task = r.getTask();
-            // We don't support embedding in PiP, leave the animation to the PipTaskOrganizer.
-            if (task == null || task.inPinnedWindowingMode()) {
-                leafTask = null;
-                break;
-            }
-            // We don't want the organizer to handle transition of other non-embedded Task.
-            if (leafTask != null && leafTask != task) {
-                leafTask = null;
-                break;
-            }
-            final ActivityRecord rootActivity = task.getRootActivity();
-            // We don't want the organizer to handle transition when the whole app is closing.
-            if (rootActivity == null) {
-                leafTask = null;
-                break;
-            }
-            // We don't want the organizer to handle transition of non-embedded activity of other
-            // app.
-            if (r.getUid() != task.effectiveUid && !r.isEmbedded()) {
-                leafTask = null;
-                break;
-            }
-            leafTask = task;
-        }
-        mTempTransitionWindows.clear();
-        return leafTask;
-    }
-
-    /**
-     * Finds the common {@link android.window.TaskFragmentOrganizer} that organizes all embedded
-     * {@link TaskFragment} belong to the given {@link Task}.
-     * @return {@code null} if there is no such organizer, or if there are more than one.
-     */
-    @Nullable
-    private ITaskFragmentOrganizer findTaskFragmentOrganizer(@Nullable Task task) {
-        if (task == null) {
-            return null;
-        }
-        // We don't support remote animation for Task with multiple TaskFragmentOrganizers.
-        final ITaskFragmentOrganizer[] organizer = new ITaskFragmentOrganizer[1];
-        final boolean hasMultipleOrganizers = task.forAllLeafTaskFragments(taskFragment -> {
-            final ITaskFragmentOrganizer tfOrganizer = taskFragment.getTaskFragmentOrganizer();
-            if (tfOrganizer == null) {
-                return false;
-            }
-            if (organizer[0] != null && !organizer[0].asBinder().equals(tfOrganizer.asBinder())) {
-                return true;
-            }
-            organizer[0] = tfOrganizer;
-            return false;
-        });
-        if (hasMultipleOrganizers) {
-            ProtoLog.e(WM_DEBUG_APP_TRANSITIONS, "We don't support remote animation for"
-                    + " Task with multiple TaskFragmentOrganizers.");
-            return null;
-        }
-        return organizer[0];
-    }
-
-    /**
-     * Overrides the pending transition with the remote animation defined by the
-     * {@link ITaskFragmentOrganizer} if all windows in the transition are children of
-     * {@link TaskFragment} that are organized by the same organizer.
-     *
-     * @return {@code true} if the transition is overridden.
-     */
-    private boolean overrideWithTaskFragmentRemoteAnimation(@TransitionOldType int transit,
-            ArraySet<Integer> activityTypes) {
-        if (transitionMayContainNonAppWindows(transit)) {
-            return false;
-        }
-        if (!transitionContainsTaskFragmentWithBoundsOverride()) {
-            // No need to play TaskFragment remote animation if all embedded TaskFragment in the
-            // transition fill the Task.
-            return false;
-        }
-
-        final Task task = findParentTaskForAllEmbeddedWindows();
-        final ITaskFragmentOrganizer organizer = findTaskFragmentOrganizer(task);
-        final RemoteAnimationDefinition definition = organizer != null
-                ? mDisplayContent.mAtmService.mTaskFragmentOrganizerController
-                    .getRemoteAnimationDefinition(organizer)
-                : null;
-        final RemoteAnimationAdapter adapter = definition != null
-                ? definition.getAdapter(transit, activityTypes)
-                : null;
-        if (adapter == null) {
-            return false;
-        }
-        mDisplayContent.mAppTransition.overridePendingAppTransitionRemote(
-                adapter, false /* sync */, true /*isActivityEmbedding*/);
-        ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
-                "Override with TaskFragment remote animation for transit=%s",
-                AppTransition.appTransitionOldToString(transit));
-
-        final int organizerUid = mDisplayContent.mAtmService.mTaskFragmentOrganizerController
-                .getTaskFragmentOrganizerUid(organizer);
-        final boolean shouldDisableInputForRemoteAnimation = !task.isFullyTrustedEmbedding(
-                organizerUid);
-        final RemoteAnimationController remoteAnimationController =
-                mDisplayContent.mAppTransition.getRemoteAnimationController();
-        if (shouldDisableInputForRemoteAnimation && remoteAnimationController != null) {
-            // We are going to use client-driven animation, Disable all input on activity windows
-            // during the animation (unless it is fully trusted) to ensure it is safe to allow
-            // client to animate the surfaces.
-            // This is needed for all activity windows in the animation Task.
-            remoteAnimationController.setOnRemoteAnimationReady(() -> {
-                final Consumer<ActivityRecord> updateActivities =
-                        activity -> activity.setDropInputForAnimation(true);
-                task.forAllActivities(updateActivities);
-            });
-            ProtoLog.d(WM_DEBUG_APP_TRANSITIONS, "Task=%d contains embedded TaskFragment."
-                    + " Disabled all input during TaskFragment remote animation.", task.mTaskId);
-        }
-        return true;
-    }
-
-    /**
-     * Overrides the pending transition with the remote animation defined for the transition in the
-     * set of defined remote animations in the app window token.
-     */
-    private void overrideWithRemoteAnimationIfSet(@Nullable ActivityRecord animLpActivity,
-            @TransitionOldType int transit, ArraySet<Integer> activityTypes) {
-        RemoteAnimationAdapter adapter = null;
-        if (transit == TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE) {
-            // The crash transition has higher priority than any involved remote animations.
-        } else if (AppTransition.isKeyguardGoingAwayTransitOld(transit)) {
-            adapter = mRemoteAnimationDefinition != null
-                    ? mRemoteAnimationDefinition.getAdapter(transit, activityTypes)
-                    : null;
-        } else if (mDisplayContent.mAppTransition.getRemoteAnimationController() == null) {
-            adapter = getRemoteAnimationOverride(animLpActivity, transit, activityTypes);
-        }
-        if (adapter != null) {
-            mDisplayContent.mAppTransition.overridePendingAppTransitionRemote(adapter);
-        }
-    }
-
-    @Nullable
-    static Task findRootTaskFromContainer(WindowContainer wc) {
-        return wc.asTaskFragment() != null ? wc.asTaskFragment().getRootTask()
-                : wc.asActivityRecord().getRootTask();
-    }
-
-    @Nullable
-    static ActivityRecord getAppFromContainer(WindowContainer wc) {
-        return wc.asTaskFragment() != null ? wc.asTaskFragment().getTopNonFinishingActivity()
-                : wc.asActivityRecord();
-    }
-
-    /**
-     * @return The window token that determines the animation theme.
-     */
-    @Nullable
-    private ActivityRecord findAnimLayoutParamsToken(@TransitionOldType int transit,
-            ArraySet<Integer> activityTypes, ArraySet<ActivityRecord> openingApps,
-            ArraySet<ActivityRecord> closingApps, ArraySet<WindowContainer> changingApps) {
-        ActivityRecord result;
-
-        // Remote animations always win, but fullscreen tokens override non-fullscreen tokens.
-        result = lookForHighestTokenWithFilter(closingApps, openingApps, changingApps,
-                w -> w.getRemoteAnimationDefinition() != null
-                        && w.getRemoteAnimationDefinition().hasTransition(transit, activityTypes));
-        if (result != null) {
-            return result;
-        }
-        result = lookForHighestTokenWithFilter(closingApps, openingApps, changingApps,
-                w -> w.fillsParent() && w.findMainWindow() != null);
-        if (result != null) {
-            return result;
-        }
-        return lookForHighestTokenWithFilter(closingApps, openingApps, changingApps,
-                w -> w.findMainWindow() != null);
-    }
-
-    /**
-     * @return The set of {@link android.app.WindowConfiguration.ActivityType}s contained in the set
-     *         of apps in {@code array1}, {@code array2}, and {@code array3}.
-     */
-    private static ArraySet<Integer> collectActivityTypes(ArraySet<ActivityRecord> array1,
-            ArraySet<ActivityRecord> array2, ArraySet<WindowContainer> array3) {
-        final ArraySet<Integer> result = new ArraySet<>();
-        for (int i = array1.size() - 1; i >= 0; i--) {
-            result.add(array1.valueAt(i).getActivityType());
-        }
-        for (int i = array2.size() - 1; i >= 0; i--) {
-            result.add(array2.valueAt(i).getActivityType());
-        }
-        for (int i = array3.size() - 1; i >= 0; i--) {
-            result.add(array3.valueAt(i).getActivityType());
-        }
-        return result;
-    }
-
-    private static ActivityRecord lookForHighestTokenWithFilter(ArraySet<ActivityRecord> array1,
-            ArraySet<ActivityRecord> array2, ArraySet<WindowContainer> array3,
-            Predicate<ActivityRecord> filter) {
-        final int array2base = array1.size();
-        final int array3base = array2.size() + array2base;
-        final int count = array3base + array3.size();
-        int bestPrefixOrderIndex = Integer.MIN_VALUE;
-        ActivityRecord bestToken = null;
-        for (int i = 0; i < count; i++) {
-            final WindowContainer wtoken = i < array2base
-                    ? array1.valueAt(i)
-                    : (i < array3base
-                            ? array2.valueAt(i - array2base)
-                            : array3.valueAt(i - array3base));
-            final int prefixOrderIndex = wtoken.getPrefixOrderIndex();
-            final ActivityRecord r = getAppFromContainer(wtoken);
-            if (r != null && filter.test(r) && prefixOrderIndex > bestPrefixOrderIndex) {
-                bestPrefixOrderIndex = prefixOrderIndex;
-                bestToken = r;
-            }
-        }
-        return bestToken;
-    }
-
-    private boolean containsVoiceInteraction(ArraySet<ActivityRecord> apps) {
-        for (int i = apps.size() - 1; i >= 0; i--) {
-            if (apps.valueAt(i).mVoiceInteraction) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Apply animation to the set of window containers.
-     *
-     * @param wcs The list of {@link WindowContainer}s to which an app transition animation applies.
-     * @param apps The list of {@link ActivityRecord}s being transitioning.
-     * @param transit The current transition type.
-     * @param visible {@code true} if the apps becomes visible, {@code false} if the apps becomes
-     *                invisible.
-     * @param animLp Layout parameters in which an app transition animation runs.
-     * @param voiceInteraction {@code true} if one of the apps in this transition belongs to a voice
-     *                         interaction session driving task.
-     */
-    private void applyAnimations(ArraySet<WindowContainer> wcs, ArraySet<ActivityRecord> apps,
-            @TransitionOldType int transit, boolean visible, LayoutParams animLp,
-            boolean voiceInteraction) {
-        final int wcsCount = wcs.size();
-        for (int i = 0; i < wcsCount; i++) {
-            final WindowContainer wc = wcs.valueAt(i);
-            // If app transition animation target is promoted to higher level, SurfaceAnimator
-            // triggers WC#onAnimationFinished only on the promoted target. So we need to take care
-            // of triggering AR#onAnimationFinished on each ActivityRecord which is a part of the
-            // app transition.
-            final ArrayList<ActivityRecord> transitioningDescendants = new ArrayList<>();
-            for (int j = 0; j < apps.size(); ++j) {
-                final ActivityRecord app = apps.valueAt(j);
-                if (app.isDescendantOf(wc)) {
-                    transitioningDescendants.add(app);
-                }
-            }
-            wc.applyAnimation(animLp, transit, visible, voiceInteraction, transitioningDescendants);
-        }
-    }
-
-    /**
-     * Returns {@code true} if a given {@link WindowContainer} is an embedded Task in
-     * {@link TaskView}.
-     *
-     * Note that this is a short term workaround to support Android Auto until it migrate to
-     * ShellTransition. This should only be used by {@link #getAnimationTargets}.
-     *
-     * TODO(b/213312721): Remove this predicate and its callers once ShellTransition is enabled.
-     */
-    static boolean isTaskViewTask(WindowContainer wc) {
-        // Use Task#mRemoveWithTaskOrganizer to identify an embedded Task, but this is a hack and
-        // it is not guaranteed to work this logic in the future version.
-        boolean isTaskViewTask =  wc instanceof Task && ((Task) wc).mRemoveWithTaskOrganizer;
-        if (isTaskViewTask) {
-            return true;
-        }
-
-        WindowContainer parent = wc.getParent();
-        boolean isParentATaskViewTask = parent != null
-                && parent instanceof Task
-                && ((Task) parent).mRemoveWithTaskOrganizer;
-        return isParentATaskViewTask;
-    }
-
-    /**
-     * Find WindowContainers to be animated from a set of opening and closing apps. We will promote
-     * animation targets to higher level in the window hierarchy if possible.
-     *
-     * @param visible {@code true} to get animation targets for opening apps, {@code false} to get
-     *                            animation targets for closing apps.
-     * @return {@link WindowContainer}s to be animated.
-     */
-    @VisibleForTesting
-    static ArraySet<WindowContainer> getAnimationTargets(
-            ArraySet<ActivityRecord> openingApps, ArraySet<ActivityRecord> closingApps,
-            boolean visible) {
-
-        // The candidates of animation targets, which might be able to promote to higher level.
-        final ArrayDeque<WindowContainer> candidates = new ArrayDeque<>();
-        final ArraySet<ActivityRecord> apps = visible ? openingApps : closingApps;
-        for (int i = 0; i < apps.size(); ++i) {
-            final ActivityRecord app = apps.valueAt(i);
-            if (app.shouldApplyAnimation(visible)) {
-                candidates.add(app);
-                ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
-                        "Changing app %s visible=%b performLayout=%b",
-                        app, app.isVisible(), false);
-            }
-        }
-
-        final ArraySet<ActivityRecord> otherApps = visible ? closingApps : openingApps;
-        // Ancestors of closing apps while finding animation targets for opening apps, or ancestors
-        // of opening apps while finding animation targets for closing apps.
-        final ArraySet<WindowContainer> otherAncestors = new ArraySet<>();
-        for (int i = 0; i < otherApps.size(); ++i) {
-            for (WindowContainer wc = otherApps.valueAt(i); wc != null; wc = wc.getParent()) {
-                otherAncestors.add(wc);
-            }
-        }
-
-        // The final animation targets which cannot promote to higher level anymore.
-        final ArraySet<WindowContainer> targets = new ArraySet<>();
-        final ArrayList<WindowContainer> siblings = new ArrayList<>();
-        while (!candidates.isEmpty()) {
-            final WindowContainer current = candidates.removeFirst();
-            final WindowContainer parent = current.getParent();
-            siblings.clear();
-            siblings.add(current);
-            boolean canPromote = true;
-
-            if (isTaskViewTask(current)) {
-                // Don't animate an embedded Task in app transition. This is a short term workaround
-                // to prevent conflict of surface hierarchy changes between legacy app transition
-                // and TaskView (b/205189147).
-                // TODO(b/213312721): Remove this once ShellTransition is enabled.
-                continue;
-            } else if (parent == null || !parent.canCreateRemoteAnimationTarget()
-                    // We cannot promote the animation on Task's parent when the task is in
-                    // clearing task in case the animating get stuck when performing the opening
-                    // task that behind it.
-                    || (current.asTask() != null && current.asTask().mInRemoveTask)
-                    // We cannot promote the animation to changing window. This may happen when an
-                    // activity is open in a TaskFragment that is resizing, while the existing
-                    // activity in the TaskFragment is reparented to another TaskFragment.
-                    || parent.isChangingAppTransition()) {
-                canPromote = false;
-            } else {
-                // In case a descendant of the parent belongs to the other group, we cannot promote
-                // the animation target from "current" to the parent.
-                //
-                // Example: Imagine we're checking if we can animate a Task instead of a set of
-                // ActivityRecords. In case an activity starts a new activity within a same Task,
-                // an ActivityRecord of an existing activity belongs to the opening apps, at the
-                // same time, the other ActivityRecord of a new activity belongs to the closing
-                // apps. In this case, we cannot promote the animation target to Task level, but
-                // need to animate each individual activity.
-                //
-                // [Task] +- [ActivityRecord1] (in opening apps)
-                //        +- [ActivityRecord2] (in closing apps)
-                if (otherAncestors.contains(parent)) {
-                    canPromote = false;
-                }
-
-                // If the current window container is a task with adjacent task set, the both
-                // adjacent tasks will be opened or closed together. To get their opening or
-                // closing animation target independently, skip promoting their animation targets.
-                if (current.asTask() != null && current.asTask().hasAdjacentTask()) {
-                    canPromote = false;
-                }
-
-                // Find all siblings of the current WindowContainer in "candidates", move them into
-                // a separate list "siblings", and checks if an animation target can be promoted
-                // to its parent.
-                //
-                // We can promote an animation target to its parent if and only if all visible
-                // siblings will be animating.
-                //
-                // Example: Imagine that a Task contains two visible activity record, but only one
-                // of them is included in the opening apps and the other belongs to neither opening
-                // or closing apps. This happens when an activity launches another translucent
-                // activity in the same Task. In this case, we cannot animate Task, but have to
-                // animate each activity, otherwise an activity behind the translucent activity also
-                // animates.
-                //
-                // [Task] +- [ActivityRecord1] (visible, in opening apps)
-                //        +- [ActivityRecord2] (visible, not in opening apps)
-                for (int j = 0; j < parent.getChildCount(); ++j) {
-                    final WindowContainer sibling = parent.getChildAt(j);
-                    if (candidates.remove(sibling)) {
-                        if (!isTaskViewTask(sibling)) {
-                            // Don't animate an embedded Task in app transition. This is a short
-                            // term workaround to prevent conflict of surface hierarchy changes
-                            // between legacy app transition and TaskView (b/205189147).
-                            // TODO(b/213312721): Remove this once ShellTransition is enabled.
-                            siblings.add(sibling);
-                        }
-                    } else if (sibling != current && sibling.isVisible()) {
-                        canPromote = false;
-                    }
-                }
-            }
-
-            if (canPromote) {
-                candidates.add(parent);
-            } else {
-                targets.addAll(siblings);
-            }
-        }
-        ProtoLog.v(WM_DEBUG_APP_TRANSITIONS_ANIM, "getAnimationTarget in=%s, out=%s",
-                apps, targets);
-        return targets;
-    }
-
-    /**
-     * Apply an app transition animation based on a set of {@link ActivityRecord}
-     *
-     * @param openingApps The list of opening apps to which an app transition animation applies.
-     * @param closingApps The list of closing apps to which an app transition animation applies.
-     * @param transit The current transition type.
-     * @param animLp Layout parameters in which an app transition animation runs.
-     * @param voiceInteraction {@code true} if one of the apps in this transition belongs to a voice
-     *                         interaction session driving task.
-     */
-    private void applyAnimations(ArraySet<ActivityRecord> openingApps,
-            ArraySet<ActivityRecord> closingApps, @TransitionOldType int transit,
-            LayoutParams animLp, boolean voiceInteraction) {
-        if (transit == WindowManager.TRANSIT_OLD_UNSET
-                || (openingApps.isEmpty() && closingApps.isEmpty())) {
-            return;
-        }
-
-        if (AppTransition.isActivityTransitOld(transit)) {
-            final ArrayList<Pair<ActivityRecord, Rect>> closingLetterboxes = new ArrayList();
-            for (int i = 0; i < closingApps.size(); ++i) {
-                ActivityRecord closingApp = closingApps.valueAt(i);
-                if (closingApp.areBoundsLetterboxed()) {
-                    final Rect insets = closingApp.getLetterboxInsets();
-                    closingLetterboxes.add(new Pair(closingApp, insets));
-                }
-            }
-
-            for (int i = 0; i < openingApps.size(); ++i) {
-                ActivityRecord openingApp = openingApps.valueAt(i);
-                if (openingApp.areBoundsLetterboxed()) {
-                    final Rect openingInsets = openingApp.getLetterboxInsets();
-                    for (Pair<ActivityRecord, Rect> closingLetterbox : closingLetterboxes) {
-                        final Rect closingInsets = closingLetterbox.second;
-                        if (openingInsets.equals(closingInsets)) {
-                            ActivityRecord closingApp = closingLetterbox.first;
-                            openingApp.setNeedsLetterboxedAnimation(true);
-                            closingApp.setNeedsLetterboxedAnimation(true);
-                        }
-                    }
-                }
-            }
-        }
-
-        final ArraySet<WindowContainer> openingWcs = getAnimationTargets(
-                openingApps, closingApps, true /* visible */);
-        final ArraySet<WindowContainer> closingWcs = getAnimationTargets(
-                openingApps, closingApps, false /* visible */);
-        applyAnimations(openingWcs, openingApps, transit, true /* visible */, animLp,
-                voiceInteraction);
-        applyAnimations(closingWcs, closingApps, transit, false /* visible */, animLp,
-                voiceInteraction);
-
-        for (int i = 0; i < openingApps.size(); ++i) {
-            openingApps.valueAtUnchecked(i).mOverrideTaskTransition = false;
-        }
-        for (int i = 0; i < closingApps.size(); ++i) {
-            closingApps.valueAtUnchecked(i).mOverrideTaskTransition = false;
-        }
-
-        final AccessibilityController accessibilityController =
-                mDisplayContent.mWmService.mAccessibilityController;
-        if (accessibilityController.hasCallbacks()) {
-            accessibilityController.onAppWindowTransition(mDisplayContent.getDisplayId(), transit);
-        }
-    }
-
-    private void handleOpeningApps() {
-        final ArraySet<ActivityRecord> openingApps = mDisplayContent.mOpeningApps;
-        final int appsCount = openingApps.size();
-
-        for (int i = 0; i < appsCount; i++) {
-            final ActivityRecord app = openingApps.valueAt(i);
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Now opening app %s", app);
-
-            app.commitVisibility(true /* visible */, false /* performLayout */);
-
-            // In case a trampoline activity is used, it can happen that a new ActivityRecord is
-            // added and a new app transition starts before the previous app transition animation
-            // ends. So we cannot simply use app.isAnimating(PARENTS) to determine if the app must
-            // to be added to the list of tokens to be notified of app transition complete.
-            final WindowContainer wc = app.getAnimatingContainer(PARENTS,
-                    ANIMATION_TYPE_APP_TRANSITION);
-            if (wc == null || !wc.getAnimationSources().contains(app)) {
-                // This token isn't going to be animating. Add it to the list of tokens to
-                // be notified of app transition complete since the notification will not be
-                // sent be the app window animator.
-                mDisplayContent.mNoAnimationNotifyOnTransitionFinished.add(app.token);
-            }
-            app.updateReportedVisibilityLocked();
-            app.showAllWindowsLocked();
-
-            if (mDisplayContent.mAppTransition.isNextAppTransitionThumbnailUp()) {
-                app.attachThumbnailAnimation();
-            } else if (mDisplayContent.mAppTransition.isNextAppTransitionOpenCrossProfileApps()) {
-                app.attachCrossProfileAppsThumbnailAnimation();
-            }
-        }
-    }
-
-    private void handleClosingApps() {
-        final ArraySet<ActivityRecord> closingApps = mDisplayContent.mClosingApps;
-        final int appsCount = closingApps.size();
-
-        for (int i = 0; i < appsCount; i++) {
-            final ActivityRecord app = closingApps.valueAt(i);
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Now closing app %s", app);
-
-            app.commitVisibility(false /* visible */, false /* performLayout */);
-            app.updateReportedVisibilityLocked();
-            // Force the allDrawn flag, because we want to start
-            // this guy's animations regardless of whether it's
-            // gotten drawn.
-            app.allDrawn = true;
-            // Ensure that apps that are mid-starting are also scheduled to have their
-            // starting windows removed after the animation is complete
-            if (app.mStartingWindow != null && !app.mStartingWindow.mAnimatingExit) {
-                app.removeStartingWindow();
-            }
-
-            if (mDisplayContent.mAppTransition.isNextAppTransitionThumbnailDown()) {
-                app.attachThumbnailAnimation();
-            }
-        }
-    }
-
-    private void handleClosingChangingContainers() {
-        final ArrayMap<WindowContainer, Rect> containers =
-                mDisplayContent.mClosingChangingContainers;
-        while (!containers.isEmpty()) {
-            final WindowContainer container = containers.keyAt(0);
-            containers.remove(container);
-
-            // For closing changing windows that are part of the transition, they should have been
-            // removed from mClosingChangingContainers in WindowContainer#getAnimationAdapter()
-            // If the closing changing TaskFragment is not part of the transition, update its
-            // surface after removing it from mClosingChangingContainers.
-            final TaskFragment taskFragment = container.asTaskFragment();
-            if (taskFragment != null) {
-                taskFragment.updateOrganizedTaskFragmentSurface();
-            }
-        }
-    }
-
-    private void handleChangingApps(@TransitionOldType int transit) {
-        final ArraySet<WindowContainer> apps = mDisplayContent.mChangingContainers;
-        final int appsCount = apps.size();
-        for (int i = 0; i < appsCount; i++) {
-            WindowContainer wc = apps.valueAt(i);
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Now changing app %s", wc);
-            wc.applyAnimation(null, transit, true, false, null /* sources */);
-        }
-    }
-
-    private boolean transitionGoodToGo(ArraySet<? extends WindowContainer> apps,
-            ArrayMap<WindowContainer, Integer> outReasons) {
-        ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
-                "Checking %d opening apps (timeout=%b)...", apps.size(),
-                mDisplayContent.mAppTransition.isTimeout());
-        if (mDisplayContent.mAppTransition.isTimeout()) {
-            return true;
-        }
-
-        for (int i = 0; i < apps.size(); i++) {
-            WindowContainer wc = apps.valueAt(i);
-            final ActivityRecord activity = getAppFromContainer(wc);
-            if (activity == null) {
-                continue;
-            }
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
-                    "Check opening app=%s: allDrawn=%b startingDisplayed=%b "
-                            + "startingMoved=%b isRelaunching()=%b startingWindow=%s",
-                    activity, activity.allDrawn, activity.isStartingWindowDisplayed(),
-                    activity.startingMoved, activity.isRelaunching(),
-                    activity.mStartingWindow);
-            final boolean allDrawn = activity.allDrawn && !activity.isRelaunching();
-            if (!allDrawn && !activity.isStartingWindowDisplayed() && !activity.startingMoved) {
-                return false;
-            }
-            if (allDrawn) {
-                outReasons.put(activity, APP_TRANSITION_WINDOWS_DRAWN);
-            } else {
-                outReasons.put(activity,
-                        activity.mStartingData instanceof SplashScreenStartingData
-                                ? APP_TRANSITION_SPLASH_SCREEN
-                                : APP_TRANSITION_SNAPSHOT);
-            }
-        }
-
-        // We also need to wait for the specs to be fetched, if needed.
-        if (mDisplayContent.mAppTransition.isFetchingAppTransitionsSpecs()) {
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "isFetchingAppTransitionSpecs=true");
-            return false;
-        }
-
-        if (!mDisplayContent.mUnknownAppVisibilityController.allResolved()) {
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "unknownApps is not empty: %s",
-                    mDisplayContent.mUnknownAppVisibilityController.getDebugMessage());
-            return false;
-        }
-
-        // If the wallpaper is visible, we need to check it's ready too.
-        return !mWallpaperControllerLocked.isWallpaperVisible()
-                || mWallpaperControllerLocked.wallpaperTransitionReady();
-    }
-
-    private boolean transitionGoodToGoForTaskFragments() {
-        if (mDisplayContent.mAppTransition.isTimeout()) {
-            return true;
-        }
-
-        // Check all Tasks in this transition. This is needed because new TaskFragment created for
-        // launching activity may not be in the tracking lists, but we still want to wait for the
-        // activity launch to start the transition.
-        final ArraySet<Task> rootTasks = new ArraySet<>();
-        for (int i = mDisplayContent.mOpeningApps.size() - 1; i >= 0; i--) {
-            rootTasks.add(mDisplayContent.mOpeningApps.valueAt(i).getRootTask());
-        }
-        for (int i = mDisplayContent.mClosingApps.size() - 1; i >= 0; i--) {
-            rootTasks.add(mDisplayContent.mClosingApps.valueAt(i).getRootTask());
-        }
-        for (int i = mDisplayContent.mChangingContainers.size() - 1; i >= 0; i--) {
-            rootTasks.add(
-                    findRootTaskFromContainer(mDisplayContent.mChangingContainers.valueAt(i)));
-        }
-
-        // Organized TaskFragment can be empty for two situations:
-        // 1. New created and is waiting for Activity launch. In this case, we want to wait for
-        //    the Activity launch to trigger the transition.
-        // 2. Last Activity is just removed. In this case, we want to wait for organizer to
-        //    remove the TaskFragment because it may also want to change other TaskFragments in
-        //    the same transition.
-        for (int i = rootTasks.size() - 1; i >= 0; i--) {
-            final Task rootTask = rootTasks.valueAt(i);
-            if (rootTask == null) {
-                // It is possible that one activity may have been removed from the hierarchy. No
-                // need to check for this case.
-                continue;
-            }
-            final boolean notReady = rootTask.forAllLeafTaskFragments(taskFragment -> {
-                if (!taskFragment.isReadyToTransit()) {
-                    ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Organized TaskFragment is not ready= %s",
-                            taskFragment);
-                    return true;
-                }
-                return false;
-            });
-            if (notReady) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Identifies whether the current transition occurs within a single task or not. This is used
-     * to determine whether animations should be clipped to the task bounds instead of root task
-     * bounds.
-     */
-    @VisibleForTesting
-    boolean isTransitWithinTask(@TransitionOldType int transit, Task task) {
-        if (task == null
-                || !mDisplayContent.mChangingContainers.isEmpty()) {
-            // if there is no task, then we can't constrain to the task.
-            // if anything is changing, it can animate outside its task.
-            return false;
-        }
-        if (!(transit == TRANSIT_OLD_ACTIVITY_OPEN
-                || transit == TRANSIT_OLD_ACTIVITY_CLOSE
-                || transit == TRANSIT_OLD_ACTIVITY_RELAUNCH)) {
-            // only activity-level transitions will be within-task.
-            return false;
-        }
-        // check that all components are in the task.
-        for (ActivityRecord activity : mDisplayContent.mOpeningApps) {
-            Task activityTask = activity.getTask();
-            if (activityTask != task) {
-                return false;
-            }
-        }
-        for (ActivityRecord activity : mDisplayContent.mClosingApps) {
-            if (activity.getTask() != task) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private static boolean canBeWallpaperTarget(ArraySet<ActivityRecord> apps) {
-        for (int i = apps.size() - 1; i >= 0; i--) {
-            if (apps.valueAt(i).windowsCanBeWallpaperTarget()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Finds the top app in a list of apps, using its {@link ActivityRecord#getPrefixOrderIndex} to
-     * compare z-order.
-     *
-     * @param apps The list of apps to search.
-     * @param ignoreInvisible If set to true, ignores apps that are not
-     *                        {@link ActivityRecord#isVisible}.
-     * @return The top {@link ActivityRecord}.
-     */
-    private static ActivityRecord getTopApp(ArraySet<? extends WindowContainer> apps,
-            boolean ignoreInvisible) {
-        int topPrefixOrderIndex = Integer.MIN_VALUE;
-        ActivityRecord topApp = null;
-        for (int i = apps.size() - 1; i >= 0; i--) {
-            final ActivityRecord app = getAppFromContainer(apps.valueAt(i));
-            if (app == null || ignoreInvisible && !app.isVisible()) {
-                continue;
-            }
-            final int prefixOrderIndex = app.getPrefixOrderIndex();
-            if (prefixOrderIndex > topPrefixOrderIndex) {
-                topPrefixOrderIndex = prefixOrderIndex;
-                topApp = app;
-            }
-        }
-        return topApp;
-    }
-}
diff --git a/services/core/java/com/android/server/wm/AppWarnings.java b/services/core/java/com/android/server/wm/AppWarnings.java
index 576e5d5..439b503 100644
--- a/services/core/java/com/android/server/wm/AppWarnings.java
+++ b/services/core/java/com/android/server/wm/AppWarnings.java
@@ -506,6 +506,10 @@
             context =  new ContextThemeWrapper(context, context.getThemeResId()) {
                 @Override
                 public void startActivity(Intent intent) {
+                    // PageSizeMismatch dialog stays on top of the browser even after opening link
+                    // set broadcast to close the dialog when link has been clicked.
+                    sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+
                     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                     super.startActivity(intent);
                 }
diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java
index 79bed3d..e76a834 100644
--- a/services/core/java/com/android/server/wm/BackNavigationController.java
+++ b/services/core/java/com/android/server/wm/BackNavigationController.java
@@ -388,8 +388,7 @@
                                 removedWindowContainer);
                 mBackAnimationInProgress = builder != null;
                 if (mBackAnimationInProgress) {
-                    if (removedWindowContainer.mTransitionController.inTransition()
-                            || mWindowManagerService.mSyncEngine.hasPendingSyncSets()) {
+                    if (removedWindowContainer.mTransitionController.inTransition()) {
                         ProtoLog.w(WM_DEBUG_BACK_PREVIEW,
                                 "Pending back animation due to another animation is running");
                         mPendingAnimationBuilder = builder;
@@ -817,6 +816,8 @@
         if (openingTransition && !visible && mAnimationHandler.isTarget(ar, false /* open */)
                 && ar.mTransitionController.isCollecting(ar)) {
             final TransitionController controller = ar.mTransitionController;
+            final Transition transition = controller.getCollectingTransition();
+            final int switchType = mAnimationHandler.mOpenAnimAdaptor.mAdaptors[0].mSwitchType;
             boolean collectTask = false;
             ActivityRecord changedActivity = null;
             for (int i = mAnimationHandler.mOpenActivities.length - 1; i >= 0; --i) {
@@ -829,8 +830,16 @@
                     changedActivity = next;
                 }
             }
-            if (collectTask && mAnimationHandler.mOpenAnimAdaptor.mAdaptors[0].mSwitchType
-                    == AnimationHandler.TASK_SWITCH) {
+            if (Flags.unifyBackNavigationTransition()) {
+                for (int i = mAnimationHandler.mOpenAnimAdaptor.mAdaptors.length - 1; i >= 0; --i) {
+                    collectAnimatableTarget(transition, switchType,
+                            mAnimationHandler.mOpenAnimAdaptor.mAdaptors[i].mTarget,
+                            false /* isTop */);
+                }
+                collectAnimatableTarget(transition, switchType,
+                        mAnimationHandler.mCloseAdaptor.mTarget, true /* isTop */);
+            }
+            if (collectTask && switchType == AnimationHandler.TASK_SWITCH) {
                 final Task topTask = mAnimationHandler.mOpenAnimAdaptor.mAdaptors[0].getTopTask();
                 if (topTask != null) {
                     WindowContainer parent = mAnimationHandler.mOpenActivities[0].getParent();
@@ -848,6 +857,18 @@
         }
     }
 
+    private static void collectAnimatableTarget(Transition transition, int switchType,
+            WindowContainer animatingTarget, boolean isTop) {
+        if ((switchType == AnimationHandler.ACTIVITY_SWITCH
+                && (animatingTarget.asActivityRecord() != null
+                        || animatingTarget.asTaskFragment() != null))
+                || (switchType == AnimationHandler.TASK_SWITCH
+                        && animatingTarget.asTask() != null)) {
+            transition.collect(animatingTarget);
+            transition.setBackGestureAnimation(animatingTarget, isTop);
+        }
+    }
+
     // For shell transition
     /**
      * Check whether the transition targets was animated by back gesture animation.
@@ -992,8 +1013,8 @@
             return;
         }
 
-        if (mWindowManagerService.mRoot.mTransitionController.isCollecting()) {
-            Slog.v(TAG, "Skip predictive back transition, another transition is collecting");
+        if (mWindowManagerService.mRoot.mTransitionController.inTransition()) {
+            Slog.v(TAG, "Skip predictive back transition, another transition is playing");
             cancelPendingAnimation();
             return;
         }
@@ -1098,7 +1119,7 @@
             }
 
             final Transition prepareTransition = builder.prepareTransitionIfNeeded(
-                    openingActivities);
+                    openingActivities, close, open);
             final SurfaceControl.Transaction st = openingActivities[0].getSyncTransaction();
             final SurfaceControl.Transaction ct = prepareTransition != null
                     ? st : close.getPendingTransaction();
@@ -1790,7 +1811,8 @@
                 return wc == mCloseTarget || mCloseTarget.hasChild(wc) || wc.hasChild(mCloseTarget);
             }
 
-            private Transition prepareTransitionIfNeeded(ActivityRecord[] visibleOpenActivities) {
+            private Transition prepareTransitionIfNeeded(ActivityRecord[] visibleOpenActivities,
+                    WindowContainer promoteToClose, WindowContainer[] promoteToOpen) {
                 if (Flags.unifyBackNavigationTransition()) {
                     if (mCloseTarget.asWindowState() != null) {
                         return null;
@@ -1806,11 +1828,11 @@
                     final TransitionController tc = visibleOpenActivities[0].mTransitionController;
                     final Transition prepareOpen = tc.createTransition(
                             TRANSIT_PREPARE_BACK_NAVIGATION);
-                    tc.collect(mCloseTarget);
-                    prepareOpen.setBackGestureAnimation(mCloseTarget, true /* isTop */);
-                    for (int i = mOpenTargets.length - 1; i >= 0; --i) {
-                        tc.collect(mOpenTargets[i]);
-                        prepareOpen.setBackGestureAnimation(mOpenTargets[i], false /* isTop */);
+                    tc.collect(promoteToClose);
+                    prepareOpen.setBackGestureAnimation(promoteToClose, true /* isTop */);
+                    for (int i = promoteToOpen.length - 1; i >= 0; --i) {
+                        tc.collect(promoteToOpen[i]);
+                        prepareOpen.setBackGestureAnimation(promoteToOpen[i], false /* isTop */);
                     }
                     if (!makeVisibles.isEmpty()) {
                         setLaunchBehind(visibleOpenActivities);
diff --git a/services/core/java/com/android/server/wm/DesktopModeHelper.java b/services/core/java/com/android/server/wm/DesktopModeHelper.java
index 0eea30a..f359307 100644
--- a/services/core/java/com/android/server/wm/DesktopModeHelper.java
+++ b/services/core/java/com/android/server/wm/DesktopModeHelper.java
@@ -16,6 +16,8 @@
 
 package com.android.server.wm;
 
+import static android.app.Flags.enableConnectedDisplaysWallpaper;
+
 import android.annotation.NonNull;
 import android.content.Context;
 import android.os.SystemProperties;
@@ -49,8 +51,13 @@
     }
 
     /**
-     * Return {@code true} if the current device supports desktop mode.
+     * Return {@code true} if the current device can hosts desktop sessions on its internal display.
      */
+    @VisibleForTesting
+    static boolean canInternalDisplayHostDesktops(@NonNull Context context) {
+        return context.getResources().getBoolean(R.bool.config_canInternalDisplayHostDesktops);
+    }
+
     // TODO(b/337819319): use a companion object instead.
     private static boolean isDesktopModeSupported(@NonNull Context context) {
         return context.getResources().getBoolean(R.bool.config_isDesktopModeSupported);
@@ -65,12 +72,12 @@
      */
     private static boolean isDesktopModeEnabledByDevOption(@NonNull Context context) {
         return DesktopModeFlags.isDesktopModeForcedEnabled() && (isDesktopModeDevOptionsSupported(
-                context) || isDeviceEligibleForDesktopMode(context));
+                context) || isInternalDisplayEligibleToHostDesktops(context));
     }
 
     @VisibleForTesting
-    static boolean isDeviceEligibleForDesktopMode(@NonNull Context context) {
-        return !shouldEnforceDeviceRestrictions() || isDesktopModeSupported(context)  || (
+    static boolean isInternalDisplayEligibleToHostDesktops(@NonNull Context context) {
+        return !shouldEnforceDeviceRestrictions() || canInternalDisplayHostDesktops(context) || (
                 Flags.enableDesktopModeThroughDevOption() && isDesktopModeDevOptionsSupported(
                         context));
     }
@@ -79,7 +86,14 @@
      * Return {@code true} if desktop mode can be entered on the current device.
      */
     static boolean canEnterDesktopMode(@NonNull Context context) {
-        return (isDesktopModeEnabled() && isDeviceEligibleForDesktopMode(context))
+        return (isInternalDisplayEligibleToHostDesktops(context)
+                && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODE.isTrue()
+                && (isDesktopModeSupported(context) || !shouldEnforceDeviceRestrictions()))
                 || isDesktopModeEnabledByDevOption(context);
     }
+
+    /** Returns {@code true} if desktop experience wallpaper is supported on this device. */
+    public static boolean isDeviceEligibleForDesktopExperienceWallpaper(@NonNull Context context) {
+        return enableConnectedDisplaysWallpaper() && canEnterDesktopMode(context);
+    }
 }
diff --git a/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java b/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java
new file mode 100644
index 0000000..f42d60d
--- /dev/null
+++ b/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.provider.Settings;
+
+import com.android.window.flags.Flags;
+
+/**
+ * Syncs ACCELEROMETER_ROTATION and DEVICE_STATE_ROTATION_LOCK setting to consistent values.
+ * <ul>
+ * <li>On device state change: Reads value of DEVICE_STATE_ROTATION_LOCK for new device state and
+ * writes into ACCELEROMETER_ROTATION.</li>
+ * <li>On ACCELEROMETER_ROTATION setting change: Write updated ACCELEROMETER_ROTATION value into
+ * DEVICE_STATE_ROTATION_LOCK setting for current device state.</li>
+ * <li>On DEVICE_STATE_ROTATION_LOCK setting change: If the key for the changed value matches
+ * current device state, write updated auto rotate value to ACCELEROMETER_ROTATION.</li>
+ * </ul>
+ *
+ * @see Settings.System#ACCELEROMETER_ROTATION
+ * @see Settings.Secure#DEVICE_STATE_ROTATION_LOCK
+ */
+
+public class DeviceStateAutoRotateSettingController {
+    private final DeviceStateAutoRotateSettingIssueLogger mDeviceStateAutoRotateSettingIssueLogger;
+    private final Context mContext;
+    private final Handler mHandler;
+
+    public DeviceStateAutoRotateSettingController(Context context,
+            DeviceStateAutoRotateSettingIssueLogger deviceStateAutoRotateSettingIssueLogger,
+            Handler handler) {
+        // TODO(b/350946537) Refactor implementation
+        mDeviceStateAutoRotateSettingIssueLogger = deviceStateAutoRotateSettingIssueLogger;
+        mContext = context;
+        mHandler = handler;
+        registerDeviceStateAutoRotateSettingObserver();
+    }
+
+    /** Notify controller device state has changed */
+    public void onDeviceStateChange(DeviceStateController.DeviceState deviceState) {
+        if (Flags.enableDeviceStateAutoRotateSettingLogging()) {
+            mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateChange();
+        }
+    }
+
+    private void registerDeviceStateAutoRotateSettingObserver() {
+        mContext.getContentResolver().registerContentObserver(
+                Settings.Secure.getUriFor(Settings.Secure.DEVICE_STATE_ROTATION_LOCK),
+                false,
+                new ContentObserver(mHandler) {
+                    @Override
+                    public void onChange(boolean selfChange) {
+                        if (Flags.enableDeviceStateAutoRotateSettingLogging()) {
+                            mDeviceStateAutoRotateSettingIssueLogger
+                                    .onDeviceStateAutoRotateSettingChange();
+                        }
+                    }
+                });
+    }
+}
diff --git a/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingIssueLogger.java b/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingIssueLogger.java
new file mode 100644
index 0000000..937039d
--- /dev/null
+++ b/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingIssueLogger.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.util.MathUtils.abs;
+
+import android.annotation.ElapsedRealtimeLong;
+import android.annotation.NonNull;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
+
+import java.util.function.LongSupplier;
+
+/**
+ * Logs potential race conditions that lead to incorrect auto-rotate setting.
+ *
+ * Before go/auto-rotate-refactor, there is a race condition that happen during device state
+ * changes, as a result, incorrect auto-rotate setting are written for a device state in
+ * DEVICE_STATE_ROTATION_LOCK. Realistically, users shouldn’t be able to change
+ * DEVICE_STATE_ROTATION_LOCK while the device folds/unfolds.
+ *
+ * This class monitors the time between a device state change and a subsequent change to the device
+ * state based auto-rotate setting.  If the duration is less than a threshold
+ * (DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_THRESHOLD), a potential issue is logged. The logging of
+ * the atom is not expected to occur often, realistically estimated once a month on few devices.
+ * But the number could be bigger, as that's what this metric is set to reveal.
+ *
+ * @see #DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_THRESHOLD_MILLIS
+ */
+public class DeviceStateAutoRotateSettingIssueLogger {
+    @VisibleForTesting
+    static final long DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_THRESHOLD_MILLIS = 1500;
+    private static final long TIME_NOT_SET = -1;
+
+    private final LongSupplier mElapsedTimeMillisSupplier;
+
+    @ElapsedRealtimeLong
+    private long mLastDeviceStateChangeTime = TIME_NOT_SET;
+    @ElapsedRealtimeLong
+    private long mLastDeviceStateAutoRotateSettingChangeTime = TIME_NOT_SET;
+
+    public DeviceStateAutoRotateSettingIssueLogger(
+            @NonNull LongSupplier elapsedTimeMillisSupplier) {
+        mElapsedTimeMillisSupplier = elapsedTimeMillisSupplier;
+    }
+
+    /** Notify logger that device state has changed. */
+    public void onDeviceStateChange() {
+        mLastDeviceStateChangeTime = mElapsedTimeMillisSupplier.getAsLong();
+        onStateChange();
+    }
+
+    /** Notify logger that device state based auto rotate setting has changed. */
+    public void onDeviceStateAutoRotateSettingChange() {
+        mLastDeviceStateAutoRotateSettingChangeTime = mElapsedTimeMillisSupplier.getAsLong();
+        onStateChange();
+    }
+
+    private void onStateChange() {
+        // Only move forward if both of the events have occurred already
+        if (mLastDeviceStateChangeTime != TIME_NOT_SET
+                && mLastDeviceStateAutoRotateSettingChangeTime != TIME_NOT_SET) {
+            final long duration =
+                    mLastDeviceStateAutoRotateSettingChangeTime - mLastDeviceStateChangeTime;
+            boolean isDeviceStateChangeFirst = duration > 0;
+
+            if (abs(duration)
+                    < DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_THRESHOLD_MILLIS) {
+                FrameworkStatsLog.write(
+                        FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED,
+                        (int) abs(duration),
+                        isDeviceStateChangeFirst);
+            }
+
+            mLastDeviceStateAutoRotateSettingChangeTime = TIME_NOT_SET;
+            mLastDeviceStateChangeTime = TIME_NOT_SET;
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
index afeeaf7..d757929 100644
--- a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
+++ b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
@@ -366,10 +366,10 @@
         taskDisplayArea.setOrganizer(null);
         mService.mRootWindowContainer.mTaskSupervisor.beginDeferResume();
 
-        // TaskDisplayArea#remove() move the stacks to the default TaskDisplayArea.
+        // TaskDisplayArea#remove() moves the stacks to the default TaskDisplayArea.
         Task lastReparentedRootTask;
         try {
-            lastReparentedRootTask = taskDisplayArea.remove();
+            lastReparentedRootTask = taskDisplayArea.prepareForRemoval();
         } finally {
             mService.mRootWindowContainer.mTaskSupervisor.endDeferResume();
         }
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 19f2fd9..682f3d8 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -226,7 +226,6 @@
 import android.view.InsetsState;
 import android.view.MagnificationSpec;
 import android.view.PrivacyIndicatorBounds;
-import android.view.RemoteAnimationDefinition;
 import android.view.RoundedCorners;
 import android.view.Surface;
 import android.view.Surface.Rotation;
@@ -367,8 +366,6 @@
     private int mMaxUiWidth = 0;
 
     final AppTransition mAppTransition;
-    final AppTransitionController mAppTransitionController;
-    boolean mSkipAppTransitionAnimation = false;
 
     final ArraySet<ActivityRecord> mOpeningApps = new ArraySet<>();
     final ArraySet<ActivityRecord> mClosingApps = new ArraySet<>();
@@ -547,9 +544,6 @@
     // TODO(multi-display): remove some of the usages.
     boolean isDefaultDisplay;
 
-    /** Indicates whether any presentation is shown on this display. */
-    boolean mIsPresenting;
-
     /** Save allocating when calculating rects */
     private final Rect mTmpRect = new Rect();
     private final Region mTmpRegion = new Region();
@@ -1164,7 +1158,6 @@
         mAppTransition = new AppTransition(mWmService.mContext, mWmService, this);
         mAppTransition.registerListenerLocked(mWmService.mActivityManagerAppTransitionNotifier);
         mAppTransition.registerListenerLocked(mFixedRotationTransitionListener);
-        mAppTransitionController = new AppTransitionController(mWmService, this);
         mTransitionController.registerLegacyListener(mFixedRotationTransitionListener);
         mUnknownAppVisibilityController = new UnknownAppVisibilityController(mWmService, this);
         mRemoteDisplayChangeController = new RemoteDisplayChangeController(this);
@@ -1556,10 +1549,6 @@
         return mInputMethodSurfaceParentWindow;
     }
 
-    void registerRemoteAnimations(RemoteAnimationDefinition definition) {
-        mAppTransitionController.registerRemoteAnimations(definition);
-    }
-
     void reconfigureDisplayLocked() {
         if (!isReady()) {
             return;
@@ -3265,7 +3254,7 @@
         mWmService.mDisplayWindowSettings.setShouldShowSystemDecorsLocked(this, shouldShow);
 
         if (!shouldShow) {
-            clearAllTasksOnDisplay(null);
+            clearAllTasksOnDisplay(null /* clearTasksCallback */, false /* isRemovingDisplay */);
         }
     }
 
@@ -4661,35 +4650,6 @@
         }
     }
 
-    /**
-     * Callback from {@link ImeInsetsSourceProvider#updateClientVisibility} for the system to
-     * judge whether or not to notify the IME insets provider to dispatch this reported IME client
-     * visibility state to the app clients when needed.
-     */
-    boolean onImeInsetsClientVisibilityUpdate() {
-        boolean[] changed = new boolean[1];
-
-        // Unlike the IME layering target or the control target can be updated during the layout
-        // change, the IME input target requires to be changed after gaining the input focus.
-        // In case unfreezing IME insets state may too early during IME focus switching, we unfreeze
-        // when activities going to be visible until the input target changed, or the
-        // activity was the current input target that has to unfreeze after updating the IME
-        // client visibility.
-        final ActivityRecord inputTargetActivity =
-                mImeInputTarget != null ? mImeInputTarget.getActivityRecord() : null;
-        final boolean targetChanged = mImeInputTarget != mLastImeInputTarget;
-        if (targetChanged || inputTargetActivity != null && inputTargetActivity.isVisibleRequested()
-                && inputTargetActivity.mImeInsetsFrozenUntilStartInput) {
-            forAllActivities(r -> {
-                if (r.mImeInsetsFrozenUntilStartInput && r.isVisibleRequested()) {
-                    r.mImeInsetsFrozenUntilStartInput = false;
-                    changed[0] = true;
-                }
-            });
-        }
-        return changed[0];
-    }
-
     void updateImeControlTarget() {
         updateImeControlTarget(false /* forceUpdateImeParent */);
     }
@@ -5636,20 +5596,6 @@
     }
 
     /**
-     * Transfer app transition from other display to this display.
-     *
-     * @param from Display from where the app transition is transferred.
-     *
-     * TODO(new-app-transition): Remove this once the shell handles app transition.
-     */
-    void transferAppTransitionFrom(DisplayContent from) {
-        final boolean prepared = mAppTransition.transferFrom(from.mAppTransition);
-        if (prepared && okToAnimate()) {
-            mSkipAppTransitionAnimation = false;
-        }
-    }
-
-    /**
      * @deprecated new transition should use {@link #requestTransitionAndLegacyPrepare(int, int)}
      */
     @Deprecated
@@ -5663,10 +5609,7 @@
     @Deprecated
     void prepareAppTransition(@WindowManager.TransitionType int transit,
             @WindowManager.TransitionFlags int flags) {
-        final boolean prepared = mAppTransition.prepareAppTransition(transit, flags);
-        if (prepared && okToAnimate() && transit != TRANSIT_NONE) {
-            mSkipAppTransitionAnimation = false;
-        }
+        mAppTransition.prepareAppTransition(transit, flags);
     }
 
     /**
@@ -6471,12 +6414,15 @@
         return mRemoving;
     }
 
-    void clearAllTasksOnDisplay(@Nullable Runnable clearTasksCallback) {
+    private void clearAllTasksOnDisplay(@Nullable Runnable clearTasksCallback,
+            boolean isRemovingDisplay) {
         Task lastReparentedRootTask;
         mRootWindowContainer.mTaskSupervisor.beginDeferResume();
         try {
             lastReparentedRootTask = reduceOnAllTaskDisplayAreas((taskDisplayArea, rootTask) -> {
-                final Task lastReparentedRootTaskFromArea = taskDisplayArea.remove();
+                final Task lastReparentedRootTaskFromArea = isRemovingDisplay
+                        ? taskDisplayArea.prepareForRemoval()
+                        : taskDisplayArea.setShouldKeepNoTask(true);
                 if (lastReparentedRootTaskFromArea != null) {
                     return lastReparentedRootTaskFromArea;
                 }
@@ -6506,7 +6452,7 @@
             if (mContentRecorder != null) {
                 mContentRecorder.stopRecording();
             }
-        });
+        }, true /* isRemovingDisplay */);
 
         releaseSelfIfNeeded();
         mDisplayPolicy.release();
@@ -6632,6 +6578,22 @@
                 .getKeyguardController().isKeyguardLocked(mDisplayId);
     }
 
+    boolean isKeyguardLockedOrAodShowing() {
+        return isKeyguardLocked() || isAodShowing();
+    }
+
+    /**
+     * @return whether aod is showing for this display
+     */
+    boolean isAodShowing() {
+        final boolean isAodShowing = mRootWindowContainer.mTaskSupervisor
+                .getKeyguardController().isAodShowing(mDisplayId);
+        if (mDisplayId == DEFAULT_DISPLAY && isAodShowing) {
+            return !isKeyguardGoingAway();
+        }
+        return isAodShowing;
+    }
+
     /**
      * @return whether keyguard is going away on this display
      */
@@ -7122,14 +7084,19 @@
         }
 
         /**
+         * @return an integer as the changed requested visible insets types.
          * @see #getRequestedVisibleTypes()
          */
-        void updateRequestedVisibleTypes(@InsetsType int visibleTypes, @InsetsType int mask) {
-            int newRequestedVisibleTypes =
+        @InsetsType int updateRequestedVisibleTypes(
+                @InsetsType int visibleTypes, @InsetsType int mask) {
+            final int newRequestedVisibleTypes =
                     (mRequestedVisibleTypes & ~mask) | (visibleTypes & mask);
             if (mRequestedVisibleTypes != newRequestedVisibleTypes) {
+                final int changedTypes = mRequestedVisibleTypes ^ newRequestedVisibleTypes;
                 mRequestedVisibleTypes = newRequestedVisibleTypes;
+                return changedTypes;
             }
+            return 0;
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index f8c1755..786161c 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -77,6 +77,7 @@
 import com.android.server.UiThread;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.statusbar.StatusBarManagerInternal;
+import com.android.window.flags.Flags;
 
 import java.io.PrintWriter;
 import java.lang.annotation.Retention;
@@ -108,6 +109,8 @@
     private final Object mLock;
     @Nullable
     private final DisplayRotationImmersiveAppCompatPolicy mCompatPolicyForImmersiveApps;
+    @Nullable
+    private DeviceStateAutoRotateSettingController mDeviceStateAutoRotateSettingController;
 
     public final boolean isDefaultDisplay;
     private final boolean mSupportAutoRotation;
@@ -298,6 +301,14 @@
         } else {
             mFoldController = null;
         }
+
+        if (mFoldController != null && (Flags.enableDeviceStateAutoRotateSettingLogging()
+                || Flags.enableDeviceStateAutoRotateSettingRefactor())) {
+            mDeviceStateAutoRotateSettingController =
+                    new DeviceStateAutoRotateSettingController(mContext,
+                            new DeviceStateAutoRotateSettingIssueLogger(
+                                    SystemClock::elapsedRealtime), mService.mH);
+        }
     }
 
     private static boolean isFoldable(Context context) {
@@ -1667,6 +1678,9 @@
         if (mFoldController != null) {
             synchronized (mLock) {
                 mFoldController.foldStateChanged(deviceState);
+                if (mDeviceStateAutoRotateSettingController != null) {
+                    mDeviceStateAutoRotateSettingController.onDeviceStateChange(deviceState);
+                }
             }
         }
     }
diff --git a/services/core/java/com/android/server/wm/EmbeddedWindowController.java b/services/core/java/com/android/server/wm/EmbeddedWindowController.java
index 907d0dc..7b6fc9e 100644
--- a/services/core/java/com/android/server/wm/EmbeddedWindowController.java
+++ b/services/core/java/com/android/server/wm/EmbeddedWindowController.java
@@ -34,6 +34,7 @@
 import android.view.InputApplicationHandle;
 import android.view.InputChannel;
 import android.view.WindowInsets;
+import android.view.WindowInsets.Type.InsetsType;
 import android.window.InputTransferToken;
 
 import com.android.internal.protolog.ProtoLog;
@@ -260,7 +261,7 @@
 
         // The EmbeddedWindow can only request the IME. All other insets types are requested by
         // the host window.
-        private @WindowInsets.Type.InsetsType int mRequestedVisibleTypes = 0;
+        private @InsetsType int mRequestedVisibleTypes = 0;
 
         /** Whether the gesture is transferred to embedded window. */
         boolean mGestureToEmbedded = false;
@@ -354,24 +355,28 @@
         }
 
         @Override
-        public boolean isRequestedVisible(@WindowInsets.Type.InsetsType int types) {
+        public boolean isRequestedVisible(@InsetsType int types) {
             return (mRequestedVisibleTypes & types) != 0;
         }
 
         @Override
-        public @WindowInsets.Type.InsetsType int getRequestedVisibleTypes() {
+        public @InsetsType int getRequestedVisibleTypes() {
             return mRequestedVisibleTypes;
         }
 
         /**
          * Only the IME can be requested from the EmbeddedWindow.
-         * @param requestedVisibleTypes other types than {@link WindowInsets.Type.IME} are
+         * @param requestedVisibleTypes other types than {@link WindowInsets.Type#ime()} are
          *                              not sent to system server via WindowlessWindowManager.
+         * @return an integer as the changed requested visible insets types.
          */
-        void setRequestedVisibleTypes(@WindowInsets.Type.InsetsType int requestedVisibleTypes) {
+        @InsetsType int setRequestedVisibleTypes(@InsetsType int requestedVisibleTypes) {
             if (mRequestedVisibleTypes != requestedVisibleTypes) {
+                final int changedTypes = mRequestedVisibleTypes ^ requestedVisibleTypes;
                 mRequestedVisibleTypes = requestedVisibleTypes;
+                return changedTypes;
             }
+            return 0;
         }
 
         @Override
diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
index cf16204..f52446f 100644
--- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
@@ -282,7 +282,14 @@
             // TODO(b/353463205) investigate if we should fail the statsToken, or if it's only
             //  temporary null.
             if (target != null) {
-                invokeOnImeRequestedChangedListener(target.getWindow(), statsToken);
+                // If insets target is not available (e.g. RemoteInsetsControlTarget), use current
+                // IME input target to update IME request state. For example, switch from a task
+                // with showing IME to a split-screen task without showing IME.
+                InsetsTarget insetsTarget = target.getWindow();
+                if (insetsTarget == null && mServerVisible) {
+                    insetsTarget = mDisplayContent.getImeInputTarget();
+                }
+                invokeOnImeRequestedChangedListener(insetsTarget, statsToken);
             }
         }
     }
@@ -314,7 +321,6 @@
                 reportImeDrawnForOrganizerIfNeeded((InsetsControlTarget) caller);
             }
         }
-        changed |= mDisplayContent.onImeInsetsClientVisibilityUpdate();
         if (Flags.refactorInsetsController()) {
             if (changed) {
                 ImeTracker.forLogging().onProgress(statsToken,
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java
index 4bcba13..b4d55a1 100644
--- a/services/core/java/com/android/server/wm/InsetsPolicy.java
+++ b/services/core/java/com/android/server/wm/InsetsPolicy.java
@@ -387,22 +387,6 @@
                 state.addSource(navSource);
             }
             return state;
-        } else if (w.mActivityRecord != null && w.mActivityRecord.mImeInsetsFrozenUntilStartInput) {
-            // During switching tasks with gestural navigation, before the next IME input target
-            // starts the input, we should adjust and freeze the last IME visibility of the window
-            // in case delivering obsoleted IME insets state during transitioning.
-            final InsetsSource originalImeSource = originalState.peekSource(ID_IME);
-
-            if (originalImeSource != null) {
-                final boolean imeVisibility = w.isRequestedVisible(Type.ime());
-                final InsetsState state = copyState
-                        ? new InsetsState(originalState)
-                        : originalState;
-                final InsetsSource imeSource = new InsetsSource(originalImeSource);
-                imeSource.setVisible(imeVisibility);
-                state.addSource(imeSource);
-                return state;
-            }
         } else if (w.mImeInsetsConsumed) {
             // Set the IME source (if there is one) to be invisible if it has been consumed.
             final InsetsSource originalImeSource = originalState.peekSource(ID_IME);
@@ -453,9 +437,9 @@
         return originalState;
     }
 
-    void onRequestedVisibleTypesChanged(InsetsTarget caller,
+    void onRequestedVisibleTypesChanged(InsetsTarget caller, @InsetsType int changedTypes,
             @Nullable ImeTracker.Token statsToken) {
-        mStateController.onRequestedVisibleTypesChanged(caller, statsToken);
+        mStateController.onRequestedVisibleTypesChanged(caller, changedTypes, statsToken);
         checkAbortTransient(caller);
         updateBarControlTarget(mFocusedWin);
     }
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index 9202cf2..164abab 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -219,14 +219,20 @@
         }
     }
 
-    void onRequestedVisibleTypesChanged(InsetsTarget caller,
+    void onRequestedVisibleTypesChanged(InsetsTarget caller, @InsetsType int changedTypes,
             @Nullable ImeTracker.Token statsToken) {
         boolean changed = false;
         for (int i = mProviders.size() - 1; i >= 0; i--) {
             final InsetsSourceProvider provider = mProviders.valueAt(i);
-            final boolean isImeProvider = provider.getSource().getType() == WindowInsets.Type.ime();
-            changed |= provider.updateClientVisibility(caller,
-                    isImeProvider ? statsToken : null);
+            final @InsetsType int type = provider.getSource().getType();
+            if ((type & changedTypes) != 0) {
+                final boolean isImeProvider = type == WindowInsets.Type.ime();
+                changed |= provider.updateClientVisibility(
+                                caller, isImeProvider ? statsToken : null)
+                        // Fake control target cannot change the client visibility, but it should
+                        // change the insets with its newly requested visibility.
+                        || (caller == provider.getFakeControlTarget());
+            }
         }
         if (changed) {
             notifyInsetsChanged();
@@ -435,7 +441,8 @@
             for (int i = newControlTargets.size() - 1; i >= 0; i--) {
                 // TODO(b/353463205) the statsToken shouldn't be null as it is used later in the
                 //  IME provider. Check if we have to create a new request here
-                onRequestedVisibleTypesChanged(newControlTargets.valueAt(i), null /* statsToken */);
+                onRequestedVisibleTypesChanged(newControlTargets.valueAt(i),
+                        WindowInsets.Type.all(), null /* statsToken */);
             }
             newControlTargets.clear();
             if (!android.view.inputmethod.Flags.refactorInsetsController()) {
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index 6091b83..dd2f49e1 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -18,6 +18,7 @@
 
 import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManager.TRANSIT_FLAG_AOD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION;
@@ -216,6 +217,9 @@
                 } else if (keyguardShowing && !state.mKeyguardShowing) {
                     transition.addFlag(TRANSIT_FLAG_KEYGUARD_APPEARING);
                 }
+                if (mWindowManager.mFlags.mAodTransition && aodShowing && !state.mAodShowing) {
+                    transition.addFlag(TRANSIT_FLAG_AOD_APPEARING);
+                }
             }
         }
         // Update the task snapshot if the screen will not be turned off. To make sure that the
@@ -238,19 +242,27 @@
         state.mAodShowing = aodShowing;
         state.writeEventLog("setKeyguardShown");
 
-        if (keyguardChanged) {
-            // Irrelevant to AOD.
-            state.mKeyguardGoingAway = false;
-            if (keyguardShowing) {
-                state.mDismissalRequested = false;
+        if (keyguardChanged || aodChanged) {
+            if (keyguardChanged) {
+                // Irrelevant to AOD.
+                state.mKeyguardGoingAway = false;
+                if (keyguardShowing) {
+                    state.mDismissalRequested = false;
+                }
             }
             if (goingAwayRemoved
-                    || (keyguardShowing && !Display.isOffState(dc.getDisplayInfo().state))) {
+                    || (keyguardShowing && !Display.isOffState(dc.getDisplayInfo().state))
+                    || (mWindowManager.mFlags.mAodTransition && aodShowing)) {
                 // Keyguard decided to show or stopped going away. Send a transition to animate back
                 // to the locked state before holding the sleep token again
                 if (!ENABLE_NEW_KEYGUARD_SHELL_TRANSITIONS) {
                     dc.requestTransitionAndLegacyPrepare(
                             TRANSIT_TO_FRONT, TRANSIT_FLAG_KEYGUARD_APPEARING);
+                    if (mWindowManager.mFlags.mAodTransition && aodShowing
+                            && dc.mTransitionController.isCollecting()) {
+                        dc.mTransitionController.getCollectingTransition().addFlag(
+                                TRANSIT_FLAG_AOD_APPEARING);
+                    }
                 }
                 dc.mWallpaperController.adjustWallpaperWindows();
                 dc.executeAppTransition();
diff --git a/services/core/java/com/android/server/wm/PresentationController.java b/services/core/java/com/android/server/wm/PresentationController.java
new file mode 100644
index 0000000..6946343
--- /dev/null
+++ b/services/core/java/com/android/server/wm/PresentationController.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
+
+import android.annotation.NonNull;
+import android.util.IntArray;
+
+import com.android.internal.protolog.ProtoLog;
+import com.android.internal.protolog.WmProtoLogGroups;
+
+/**
+ * Manages presentation windows.
+ */
+class PresentationController {
+
+    // TODO(b/395475549): Add support for display add/remove, and activity move across displays.
+    private final IntArray mPresentingDisplayIds = new IntArray();
+
+    PresentationController() {}
+
+    private boolean isPresenting(int displayId) {
+        return mPresentingDisplayIds.contains(displayId);
+    }
+
+    boolean shouldOccludeActivities(int displayId) {
+        // All activities on the presenting display must be hidden so that malicious apps can't do
+        // tap jacking (b/391466268).
+        // For now, this should only be applied to external displays because presentations can only
+        // be shown on them.
+        // TODO(b/390481621): Disallow a presentation from covering its controlling activity so that
+        // the presentation won't stop its controlling activity.
+        return enablePresentationForConnectedDisplays() && isPresenting(displayId);
+    }
+
+    void onPresentationAdded(@NonNull WindowState win) {
+        final int displayId = win.getDisplayId();
+        if (isPresenting(displayId)) {
+            return;
+        }
+        ProtoLog.v(WmProtoLogGroups.WM_DEBUG_PRESENTATION, "Presentation added to display %d: %s",
+                win.getDisplayId(), win);
+        mPresentingDisplayIds.add(win.getDisplayId());
+        if (enablePresentationForConnectedDisplays()) {
+            // A presentation hides all activities behind on the same display.
+            win.mDisplayContent.ensureActivitiesVisible(/*starting=*/ null,
+                    /*notifyClients=*/ true);
+        }
+        win.mWmService.mDisplayManagerInternal.onPresentation(displayId, /*isShown=*/ true);
+    }
+
+    void onPresentationRemoved(@NonNull WindowState win) {
+        final int displayId = win.getDisplayId();
+        if (!isPresenting(displayId)) {
+            return;
+        }
+        ProtoLog.v(WmProtoLogGroups.WM_DEBUG_PRESENTATION,
+                "Presentation removed from display %d: %s", win.getDisplayId(), win);
+        // TODO(b/393945496): Make sure that there's one presentation at most per display.
+        final int displayIdIndex = mPresentingDisplayIds.indexOf(displayId);
+        if (displayIdIndex != -1) {
+            mPresentingDisplayIds.remove(displayIdIndex);
+        }
+        if (enablePresentationForConnectedDisplays()) {
+            // A presentation hides all activities behind on the same display.
+            win.mDisplayContent.ensureActivitiesVisible(/*starting=*/ null,
+                    /*notifyClients=*/ true);
+        }
+        win.mWmService.mDisplayManagerInternal.onPresentation(displayId, /*isShown=*/ false);
+    }
+}
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 1fe6ad6..c93efd3 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -35,7 +35,6 @@
 import static android.view.WindowManager.TRANSIT_NONE;
 import static android.view.WindowManager.TRANSIT_PIP;
 import static android.view.WindowManager.TRANSIT_SLEEP;
-import static android.view.WindowManager.TRANSIT_TO_BACK;
 import static android.view.WindowManager.TRANSIT_WAKE;
 
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
@@ -68,7 +67,6 @@
 import static com.android.server.wm.ActivityTaskSupervisor.ON_TOP;
 import static com.android.server.wm.ActivityTaskSupervisor.dumpHistoryList;
 import static com.android.server.wm.ActivityTaskSupervisor.printThisActivity;
-import static com.android.server.wm.KeyguardController.KEYGUARD_SLEEP_TOKEN_TAG;
 import static com.android.server.wm.RootWindowContainerProto.IS_HOME_RECENTS_COMPONENT;
 import static com.android.server.wm.RootWindowContainerProto.KEYGUARD_CONTROLLER;
 import static com.android.server.wm.RootWindowContainerProto.WINDOW_CONTAINER;
@@ -803,8 +801,6 @@
         mWmService.mAtmService.mTaskFragmentOrganizerController.dispatchPendingEvents();
         mWmService.mSyncEngine.onSurfacePlacement();
 
-        checkAppTransitionReady(surfacePlacer);
-
         mWmService.mAtmService.mBackNavigationController
                 .checkAnimationReady(defaultDisplay.mWallpaperController);
 
@@ -898,38 +894,6 @@
         if (DEBUG_WINDOW_TRACE) Slog.e(TAG, "performSurfacePlacementInner exit");
     }
 
-    private void checkAppTransitionReady(WindowSurfacePlacer surfacePlacer) {
-        // Trace all displays app transition by Z-order for pending layout change.
-        for (int i = mChildren.size() - 1; i >= 0; --i) {
-            final DisplayContent curDisplay = mChildren.get(i);
-
-            // If we are ready to perform an app transition, check through all of the app tokens
-            // to be shown and see if they are ready to go.
-            if (curDisplay.mAppTransition.isReady()) {
-                // handleAppTransitionReady may modify curDisplay.pendingLayoutChanges.
-                curDisplay.mAppTransitionController.handleAppTransitionReady();
-                if (DEBUG_LAYOUT_REPEATS) {
-                    surfacePlacer.debugLayoutRepeats("after handleAppTransitionReady",
-                            curDisplay.pendingLayoutChanges);
-                }
-            }
-
-            if (curDisplay.mAppTransition.isRunning() && !curDisplay.isAppTransitioning()) {
-                // We have finished the animation of an app transition. To do this, we have
-                // delayed a lot of operations like showing and hiding apps, moving apps in
-                // Z-order, etc.
-                // The app token list reflects the correct Z-order, but the window list may now
-                // be out of sync with it. So here we will just rebuild the entire app window
-                // list. Fun!
-                curDisplay.handleAnimatingStoppedAndTransition();
-                if (DEBUG_LAYOUT_REPEATS) {
-                    surfacePlacer.debugLayoutRepeats("after handleAnimStopAndXitionLock",
-                            curDisplay.pendingLayoutChanges);
-                }
-            }
-        }
-    }
-
     private void applySurfaceChangesTransaction() {
         // TODO(multi-display): Support these features on secondary screens.
         final DisplayContent defaultDc = mDefaultDisplay;
@@ -1407,8 +1371,8 @@
         // When display content mode management flag is enabled, the task display area is marked as
         // removed when switching from extended display to mirroring display. We need to restart the
         // task display area before starting the home.
-        if (enableDisplayContentModeManagement() && taskDisplayArea.isRemoved()) {
-            taskDisplayArea.restart();
+        if (enableDisplayContentModeManagement() && taskDisplayArea.shouldKeepNoTask()) {
+            taskDisplayArea.setShouldKeepNoTask(false);
         }
 
         Intent homeIntent = null;
@@ -2266,20 +2230,6 @@
 
                 // Ensure the leash of new task is in sync with its current bounds after reparent.
                 rootTask.maybeApplyLastRecentsAnimationTransaction();
-
-                // In the case of this activity entering PIP due to it being moved to the back,
-                // the old activity would have a TRANSIT_TASK_TO_BACK transition that needs to be
-                // ran. But, since its visibility did not change (note how it was STOPPED/not
-                // visible, and with it now at the back stack, it remains not visible), the logic to
-                // add the transition is automatically skipped. We then add this activity manually
-                // to the list of apps being closed, and request its transition to be ran.
-                final ActivityRecord oldTopActivity = task.getTopMostActivity();
-                if (oldTopActivity != null && oldTopActivity.isState(STOPPED)
-                        && task.getDisplayContent().mAppTransition.containsTransitRequest(
-                        TRANSIT_TO_BACK)) {
-                    task.getDisplayContent().mClosingApps.add(oldTopActivity);
-                    oldTopActivity.mRequestForceTransition = true;
-                }
             }
 
             // TODO(remove-legacy-transit): Move this to the `singleActivity` case when removing
@@ -2958,20 +2908,6 @@
         display.mAllSleepTokens.remove(token);
         if (display.mAllSleepTokens.isEmpty()) {
             mService.updateSleepIfNeededLocked();
-            // Assuming no lock screen is set and a user launches an activity, turns off the screen
-            // and turn on the screen again, then the launched activity should be displayed on the
-            // screen without app transition animation. When the screen turns on, both keyguard
-            // sleep token and display off sleep token are removed, but the order is
-            // non-deterministic.
-            // Note: Display#mSkipAppTransitionAnimation will be ignored when keyguard related
-            // transition exists, so this affects only when no lock screen is set. Otherwise
-            // keyguard going away animation will be played.
-            // See also AppTransitionController#getTransitCompatType for more details.
-            if ((!mTaskSupervisor.getKeyguardController().isKeyguardOccluded(display.mDisplayId)
-                    && token.mTag.equals(KEYGUARD_SLEEP_TOKEN_TAG))
-                    || token.mTag.equals(DISPLAY_OFF_SLEEP_TOKEN_TAG)) {
-                display.mSkipAppTransitionAnimation = true;
-            }
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index 07de489..8d198b2 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -35,6 +35,7 @@
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
 import static android.view.WindowManager.LayoutParams.isSystemAlertWindowType;
 
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME;
@@ -703,9 +704,10 @@
                     ImeTracker.forLogging().onProgress(imeStatsToken,
                             ImeTracker.PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES);
                 }
-                win.setRequestedVisibleTypes(requestedVisibleTypes);
+                final @InsetsType int changedTypes =
+                        win.setRequestedVisibleTypes(requestedVisibleTypes);
                 win.getDisplayContent().getInsetsPolicy().onRequestedVisibleTypesChanged(win,
-                        imeStatsToken);
+                        changedTypes, imeStatsToken);
                 final Task task = win.getTask();
                 if (task != null) {
                     task.dispatchTaskInfoChangedIfNeeded(/* forced= */ true);
@@ -722,10 +724,11 @@
                     // TODO(b/353463205) Use different phase here
                     ImeTracker.forLogging().onProgress(imeStatsToken,
                             ImeTracker.PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES);
-                    embeddedWindow.setRequestedVisibleTypes(
+                    final @InsetsType int changedTypes = embeddedWindow.setRequestedVisibleTypes(
                             requestedVisibleTypes & WindowInsets.Type.ime());
                     embeddedWindow.getDisplayContent().getInsetsPolicy()
-                            .onRequestedVisibleTypesChanged(embeddedWindow, imeStatsToken);
+                            .onRequestedVisibleTypesChanged(
+                                    embeddedWindow, changedTypes, imeStatsToken);
                 } else {
                     ImeTracker.forLogging().onFailed(imeStatsToken,
                             ImeTracker.PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES);
@@ -765,7 +768,7 @@
 
     void onWindowSurfaceVisibilityChanged(WindowState window, boolean visible) {
         final int type = window.mAttrs.type;
-        if (!isSystemAlertWindowType(type)) {
+        if (!isSystemAlertWindowType(type) && type != TYPE_SYSTEM_DIALOG) {
             return;
         }
 
diff --git a/services/core/java/com/android/server/wm/SnapshotController.java b/services/core/java/com/android/server/wm/SnapshotController.java
index dcdffa4..2664dcd 100644
--- a/services/core/java/com/android/server/wm/SnapshotController.java
+++ b/services/core/java/com/android/server/wm/SnapshotController.java
@@ -72,11 +72,6 @@
         mActivitySnapshotController.notifyAppVisibilityChanged(appWindowToken, visible);
     }
 
-    // For legacy transition, which won't support activity snapshot
-    void onTransitionStarting(DisplayContent displayContent) {
-        mTaskSnapshotController.handleClosingApps(displayContent.mClosingApps);
-    }
-
     // For shell transition, record snapshots before transaction start.
     void onTransactionReady(@WindowManager.TransitionType int type,
             ArrayList<Transition.ChangeInfo> changeInfos) {
diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java
index 3dfff39..c5425fe 100644
--- a/services/core/java/com/android/server/wm/SurfaceAnimator.java
+++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java
@@ -132,10 +132,7 @@
                         animationFinishCallback.onAnimationFinished(type, anim);
                     }
                 };
-                // If both the Animatable and AnimationAdapter requests to be deferred, only the
-                // first one will be called.
-                if (!(mAnimatable.shouldDeferAnimationFinish(resetAndInvokeFinish)
-                        || anim.shouldDeferAnimationFinish(resetAndInvokeFinish))) {
+                if (!anim.shouldDeferAnimationFinish(resetAndInvokeFinish)) {
                     resetAndInvokeFinish.run();
                 }
                 mAnimationFinished = true;
@@ -639,23 +636,5 @@
          * @return The height of the surface to be animated.
          */
         int getSurfaceHeight();
-
-        /**
-         * Gets called when the animation is about to finish and gives the client the opportunity to
-         * defer finishing the animation, i.e. it keeps the leash around until the client calls
-         * {@link #cancelAnimation}.
-         * <p>
-         * {@link AnimationAdapter} has a similar method which is called only if this method returns
-         * false. This mean that if both this {@link Animatable} and the {@link AnimationAdapter}
-         * request to be deferred, this method is the sole responsible to call
-         * endDeferFinishCallback. On the other hand, the animation finish might still be deferred
-         * if this method return false and the one from the {@link AnimationAdapter} returns true.
-         *
-         * @param endDeferFinishCallback The callback to call when defer finishing should be ended.
-         * @return Whether the client would like to defer the animation finish.
-         */
-        default boolean shouldDeferAnimationFinish(Runnable endDeferFinishCallback) {
-            return false;
-        }
     }
 }
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index f75e717..3abab8b 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -508,9 +508,6 @@
      */
     boolean mAllowForceResizeOverride = true;
 
-    private final AnimatingActivityRegistry mAnimatingActivityRegistry =
-            new AnimatingActivityRegistry();
-
     private static final int TRANSLUCENT_TIMEOUT_MSG = FIRST_ACTIVITY_TASK_MSG + 1;
 
     private final Handler mHandler;
@@ -1122,17 +1119,6 @@
         // already ran fully within super.onParentChanged
         updateTaskOrganizerState();
 
-        // TODO(b/168037178): The check for null display content and setting it to null doesn't
-        //                    really make sense here...
-
-        // TODO(b/168037178): This is mostly taking care of the case where the stask is removing
-        //                    from the display, so we should probably consolidate it there instead.
-
-        if (getParent() == null && mDisplayContent != null) {
-            mDisplayContent = null;
-            mWmService.mWindowPlacerLocked.requestTraversal();
-        }
-
         if (oldParent != null) {
             final Task oldParentTask = oldParent.asTask();
             if (oldParentTask != null) {
@@ -1185,9 +1171,6 @@
         }
 
         mRootWindowContainer.updateUIDsPresentOnDisplay();
-
-        // Ensure all animations are finished at same time in split-screen mode.
-        forAllActivities(ActivityRecord::updateAnimatingActivityRegistry);
     }
 
     @Override
@@ -2770,6 +2753,7 @@
         }
 
         super.removeImmediately();
+        mDisplayContent = null;
         mRemoving = false;
     }
 
@@ -3345,13 +3329,6 @@
         mLastSurfaceShowing = show;
     }
 
-    @Override
-    void dump(PrintWriter pw, String prefix, boolean dumpAll) {
-        super.dump(pw, prefix, dumpAll);
-        mAnimatingActivityRegistry.dump(pw, "AnimatingApps:", prefix);
-    }
-
-
     /**
      * 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.
@@ -6313,10 +6290,6 @@
         return mDisplayContent.getDisplayInfo();
     }
 
-    AnimatingActivityRegistry getAnimatingActivityRegistry() {
-        return mAnimatingActivityRegistry;
-    }
-
     private Rect getRawBounds() {
         return super.getBounds();
     }
diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java
index d962b6b..ae3a015 100644
--- a/services/core/java/com/android/server/wm/TaskDisplayArea.java
+++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java
@@ -155,6 +155,14 @@
     private boolean mRemoved;
 
     /**
+     * Whether the TaskDisplayArea has root tasks.
+     * If {@code true}, the TaskDisplayArea cannot have a new task.
+     *
+     * TODO(b/394466501): Prevent a Task being added to the TaskDisplayArea that shouldKeepNoTask.
+     */
+    private boolean mShouldKeepNoTask;
+
+    /**
      * The id of a leaf task that most recently being moved to front.
      */
     private int mLastLeafTaskToFrontId;
@@ -452,7 +460,7 @@
 
                 // If the previous front-most task is moved to the back, then notify of the new
                 // front-most task.
-                final ActivityRecord topMost = getTopMostActivity();
+                final ActivityRecord topMost = getTopNonFinishingActivity();
                 if (topMost != null) {
                     mAtmService.getTaskChangeNotificationController().notifyTaskMovedToFront(
                             topMost.getTask().getTaskInfo());
@@ -1787,6 +1795,10 @@
         return mRemoved;
     }
 
+    boolean shouldKeepNoTask() {
+        return mShouldKeepNoTask;
+    }
+
     @Override
     boolean canCreateRemoteAnimationTarget() {
         // In the legacy transition system, promoting animation target from TaskFragment to
@@ -1812,12 +1824,31 @@
         }
     }
 
+    @Nullable
+    Task prepareForRemoval() {
+        mShouldKeepNoTask = true;
+        final Task lastReparentedTask = removeAllTasks();
+        mRemoved = true;
+        return lastReparentedTask;
+    }
+
+    @Nullable
+    Task setShouldKeepNoTask(boolean shouldKeepNoTask) {
+        if (mShouldKeepNoTask == shouldKeepNoTask) {
+            return null;
+        }
+
+        mShouldKeepNoTask = shouldKeepNoTask;
+        return shouldKeepNoTask ? removeAllTasks() : null;
+    }
+
     /**
      * Removes the root tasks in the node applying the content removal node from the display.
      *
      * @return last reparented root task, or {@code null} if the root tasks had to be destroyed.
      */
-    Task remove() {
+    @Nullable
+    private Task removeAllTasks() {
         final TaskDisplayArea toDisplayArea = getReparentToTaskDisplayArea(getFocusedRootTask());
         mPreferredTopFocusableRootTask = null;
         // TODO(b/153090332): Allow setting content removal mode per task display area
@@ -1835,7 +1866,7 @@
         for (int i = 0; i < numRootTasks; i++) {
             final WindowContainer child = mChildren.get(i);
             if (child.asTaskDisplayArea() != null) {
-                lastReparentedRootTask = child.asTaskDisplayArea().remove();
+                lastReparentedRootTask = child.asTaskDisplayArea().removeAllTasks();
                 continue;
             }
             final Task task = mChildren.get(i).asTask();
@@ -1882,16 +1913,9 @@
             lastReparentedRootTask.getRootTask().moveToFront("display-removed");
         }
 
-        mRemoved = true;
-
         return lastReparentedRootTask;
     }
 
-    // TODO(b/385263090): Remove this method
-    void restart() {
-        mRemoved = false;
-    }
-
     /**
      * Returns the {@link TaskDisplayArea} to which root tasks should be reparented.
      *
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index ba48fdc..97a1a34 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -394,6 +394,12 @@
      */
     private boolean mAllowTransitionWhenEmpty;
 
+    /**
+     * Specifies which configuration changes should trigger TaskFragment info changed callbacks.
+     * Only system TaskFragment organizers are allowed to set this value.
+     */
+    private @ActivityInfo.Config int mConfigurationChangeMaskForOrganizer;
+
     /** When set, will force the task to report as invisible. */
     static final int FLAG_FORCE_HIDDEN_FOR_PINNED_TASK = 1;
     static final int FLAG_FORCE_HIDDEN_FOR_TASK_ORG = 1 << 1;
@@ -656,6 +662,17 @@
         mAllowTransitionWhenEmpty = allowTransitionWhenEmpty;
     }
 
+    void setConfigurationChangeMaskForOrganizer(@ActivityInfo.Config int mask) {
+        // Only system organizers are allowed to set configuration change mask.
+        if (mTaskFragmentOrganizerController.isSystemOrganizer(mTaskFragmentOrganizer.asBinder())) {
+            mConfigurationChangeMaskForOrganizer = mask;
+        }
+    }
+
+    @ActivityInfo.Config int getConfigurationChangeMaskForOrganizer() {
+        return mConfigurationChangeMaskForOrganizer;
+    }
+
     /** @see #mIsolatedNav */
     boolean isIsolatedNav() {
         return isEmbedded() && mIsolatedNav;
@@ -1224,6 +1241,7 @@
                 false /* ignoringKeyguard */, true /* ignoringInvisibleActivity */);
     }
 
+    @Override
     ActivityRecord getTopNonFinishingActivity() {
         return getTopNonFinishingActivity(
                 true /* includeOverlays */, true /* includeLaunchedFromBubble */);
@@ -1407,14 +1425,22 @@
 
             final TaskFragment otherTaskFrag = other.asTaskFragment();
             if (otherTaskFrag != null && otherTaskFrag.hasAdjacentTaskFragment()) {
+                // For adjacent TaskFragments, we have assumptions that:
+                // 1. A set of adjacent TaskFragments always cover the entire Task window, so that
+                // if this TaskFragment is behind a set of opaque TaskFragments, then this
+                // TaskFragment is invisible.
+                // 2. Adjacent TaskFragments do not overlap, so that if this TaskFragment is behind
+                // any translucent TaskFragment in the adjacent set, then this TaskFragment is
+                // visible behind translucent.
                 if (Flags.allowMultipleAdjacentTaskFragments()) {
                     final boolean hasTraversedAdj = otherTaskFrag.forOtherAdjacentTaskFragments(
                             adjacentTaskFragments::contains);
                     if (hasTraversedAdj) {
-                        final boolean isTranslucent = otherTaskFrag.isTranslucent(starting)
-                                || otherTaskFrag.forOtherAdjacentTaskFragments(adjacentTf -> {
-                                    return adjacentTf.isTranslucent(starting);
-                                });
+                        final boolean isTranslucent =
+                                isBehindTransparentTaskFragment(otherTaskFrag, starting)
+                                || otherTaskFrag.forOtherAdjacentTaskFragments(
+                                        (Predicate<TaskFragment>) tf ->
+                                                isBehindTransparentTaskFragment(tf, starting));
                         if (isTranslucent) {
                             // Can be visible behind a translucent adjacent TaskFragments.
                             gotTranslucentFullscreen = true;
@@ -1426,8 +1452,9 @@
                     }
                 } else {
                     if (adjacentTaskFragments.contains(otherTaskFrag.mAdjacentTaskFragment)) {
-                        if (otherTaskFrag.isTranslucent(starting)
-                                || otherTaskFrag.mAdjacentTaskFragment.isTranslucent(starting)) {
+                        if (isBehindTransparentTaskFragment(otherTaskFrag, starting)
+                                || isBehindTransparentTaskFragment(
+                                        otherTaskFrag.mAdjacentTaskFragment, starting)) {
                             // Can be visible behind a translucent adjacent TaskFragments.
                             gotTranslucentFullscreen = true;
                             gotTranslucentAdjacent = true;
@@ -1439,7 +1466,6 @@
                 }
                 adjacentTaskFragments.add(otherTaskFrag);
             }
-
         }
 
         if (!shouldBeVisible) {
@@ -1452,6 +1478,11 @@
                 : TASK_FRAGMENT_VISIBILITY_VISIBLE;
     }
 
+    private boolean isBehindTransparentTaskFragment(
+            @NonNull TaskFragment otherTf, @Nullable ActivityRecord starting) {
+        return otherTf.isTranslucent(starting) && getBounds().intersect(otherTf.getBounds());
+    }
+
     private static boolean hasRunningActivity(WindowContainer wc) {
         if (wc.asTaskFragment() != null) {
             return wc.asTaskFragment().topRunningActivity() != null;
diff --git a/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java b/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java
index e63107c..ae329d7 100644
--- a/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java
@@ -349,8 +349,10 @@
             // Check if the info is different from the last reported info.
             final TaskFragmentInfo info = tf.getTaskFragmentInfo();
             final TaskFragmentInfo lastInfo = mLastSentTaskFragmentInfos.get(tf);
-            if (info.equalsForTaskFragmentOrganizer(lastInfo) && configurationsAreEqualForOrganizer(
-                    info.getConfiguration(), lastInfo.getConfiguration())) {
+            final int configurationChangeMask = tf.getConfigurationChangeMaskForOrganizer();
+            if (info.equalsForTaskFragmentOrganizer(lastInfo)
+                    && configurationsAreEqualForOrganizer(info.getConfiguration(),
+                            lastInfo.getConfiguration(), configurationChangeMask)) {
                 return null;
             }
 
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotController.java b/services/core/java/com/android/server/wm/TaskSnapshotController.java
index 432ed1d..8a93772 100644
--- a/services/core/java/com/android/server/wm/TaskSnapshotController.java
+++ b/services/core/java/com/android/server/wm/TaskSnapshotController.java
@@ -113,27 +113,6 @@
                 enableLowResSnapshots, lowResScaleFactor, use16BitFormat);
     }
 
-    // Still needed for legacy transition.(AppTransitionControllerTest)
-    void handleClosingApps(ArraySet<ActivityRecord> closingApps) {
-        if (shouldDisableSnapshots()) {
-            return;
-        }
-        // We need to take a snapshot of the task if and only if all activities of the task are
-        // either closing or hidden.
-        mTmpTasks.clear();
-        for (int i = closingApps.size() - 1; i >= 0; i--) {
-            final ActivityRecord activity = closingApps.valueAt(i);
-            if (activity.isActivityTypeHome()) continue;
-            final Task task = activity.getTask();
-            if (task == null) continue;
-
-            getClosingTasksInner(task, mTmpTasks);
-        }
-        snapshotTasks(mTmpTasks);
-        mTmpTasks.clear();
-        mSkipClosingAppSnapshotTasks.clear();
-    }
-
     /**
      * Adds the given {@param tasks} to the list of tasks which should not have their snapshots
      * taken upon the next processing of the set of closing apps. The caller is responsible for
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 5217a75..fe653e4 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -36,6 +36,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.TRANSIT_CHANGE;
 import static android.view.WindowManager.TRANSIT_CLOSE;
+import static android.view.WindowManager.TRANSIT_FLAG_AOD_APPEARING;
 import static android.view.WindowManager.TRANSIT_FLAG_IS_RECENTS;
 import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_LOCKED;
 import static android.view.WindowManager.TRANSIT_OPEN;
@@ -973,6 +974,10 @@
         return false;
     }
 
+    boolean isInAodAppearTransition() {
+        return (mFlags & TRANSIT_FLAG_AOD_APPEARING) != 0;
+    }
+
     /**
      * Specifies configuration change explicitly for the window container, so it can be chosen as
      * transition target. This is usually used with transition mode
diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java
index ff9e5a2..25b513d 100644
--- a/services/core/java/com/android/server/wm/TransitionController.java
+++ b/services/core/java/com/android/server/wm/TransitionController.java
@@ -525,6 +525,19 @@
         return false;
     }
 
+    boolean isInAodAppearTransition() {
+        if (mCollectingTransition != null && mCollectingTransition.isInAodAppearTransition()) {
+            return true;
+        }
+        for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) {
+            if (mWaitingTransitions.get(i).isInAodAppearTransition()) return true;
+        }
+        for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) {
+            if (mPlayingTransitions.get(i).isInAodAppearTransition()) return true;
+        }
+        return false;
+    }
+
     /**
      * @return A pair of the transition and restore-behind target for the given {@param container}.
      * @param container An ancestor of a transient-launch activity
@@ -542,6 +555,23 @@
         return null;
     }
 
+    /**
+     * @return The playing transition that is transiently-hiding the given {@param container}, or
+     *         null if there isn't one
+     * @param container A participant of a transient-hide transition
+     */
+    @Nullable
+    Transition getTransientHideTransitionForContainer(
+            @NonNull WindowContainer container) {
+        for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) {
+            final Transition transition = mPlayingTransitions.get(i);
+            if (transition.isInTransientHide(container)) {
+                return transition;
+            }
+        }
+        return null;
+    }
+
     /** Returns {@code true} if the display contains a transient-launch transition. */
     boolean hasTransientLaunch(@NonNull DisplayContent dc) {
         if (mCollectingTransition != null && mCollectingTransition.hasTransientLaunch()
diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java
index c1ef208..70948e1 100644
--- a/services/core/java/com/android/server/wm/WallpaperController.java
+++ b/services/core/java/com/android/server/wm/WallpaperController.java
@@ -166,6 +166,14 @@
                 mFindResults.setWallpaperTarget(w);
                 return false;
             }
+        } else if (mService.mFlags.mAodTransition
+                && mDisplayContent.isKeyguardLockedOrAodShowing()) {
+            if (mService.mPolicy.isKeyguardHostWindow(w.mAttrs)
+                    && w.mTransitionController.isInAodAppearTransition()) {
+                if (DEBUG_WALLPAPER) Slog.v(TAG, "Found aod transition wallpaper target: " + w);
+                mFindResults.setWallpaperTarget(w);
+                return true;
+            }
         }
 
         final boolean animationWallpaper = animatingContainer != null
@@ -684,7 +692,8 @@
     private WallpaperWindowToken getTokenForTarget(WindowState target) {
         if (target == null) return null;
         WindowState window = mFindResults.getTopWallpaper(
-                target.canShowWhenLocked() && mService.isKeyguardLocked());
+                (target.canShowWhenLocked() && mService.isKeyguardLocked())
+                        || (mService.mFlags.mAodTransition && mDisplayContent.isAodShowing()));
         return window == null ? null : window.mToken.asWallpaperToken();
     }
 
@@ -727,7 +736,9 @@
 
         if (mFindResults.wallpaperTarget == null && mFindResults.useTopWallpaperAsTarget) {
             mFindResults.setWallpaperTarget(
-                    mFindResults.getTopWallpaper(mDisplayContent.isKeyguardLocked()));
+                    mFindResults.getTopWallpaper(mService.mFlags.mAodTransition
+                            ? mDisplayContent.isKeyguardLockedOrAodShowing()
+                            : mDisplayContent.isKeyguardLocked()));
         }
     }
 
@@ -899,11 +910,17 @@
         if (mDisplayContent.mWmService.mFlags.mEnsureWallpaperInTransitions) {
             visibleRequested = mWallpaperTarget != null && mWallpaperTarget.isVisibleRequested();
         }
-        updateWallpaperTokens(visibleRequested, mDisplayContent.isKeyguardLocked());
+        updateWallpaperTokens(visibleRequested,
+                mService.mFlags.mAodTransition
+                        ? mDisplayContent.isKeyguardLockedOrAodShowing()
+                        : mDisplayContent.isKeyguardLocked());
 
         ProtoLog.v(WM_DEBUG_WALLPAPER,
                 "Wallpaper at display %d - visibility: %b, keyguardLocked: %b",
-                mDisplayContent.getDisplayId(), visible, mDisplayContent.isKeyguardLocked());
+                mDisplayContent.getDisplayId(), visible,
+                mService.mFlags.mAodTransition
+                        ? mDisplayContent.isKeyguardLockedOrAodShowing()
+                        : mDisplayContent.isKeyguardLocked());
 
         if (visible && mLastFrozen != mFindResults.isWallpaperTargetForLetterbox) {
             mLastFrozen = mFindResults.isWallpaperTargetForLetterbox;
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 225951d..7af542f 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -2079,6 +2079,10 @@
         return getActivity(alwaysTruePredicate(), true /* traverseTopToBottom */);
     }
 
+    ActivityRecord getTopNonFinishingActivity() {
+        return getActivity(r -> !r.finishing, true /* traverseTopToBottom */);
+    }
+
     ActivityRecord getTopActivity(boolean includeFinishing, boolean includeOverlays) {
         // Break down into 4 calls to avoid object creation due to capturing input params.
         if (includeFinishing) {
@@ -3355,7 +3359,7 @@
 
     private Animation loadAnimation(WindowManager.LayoutParams lp, int transit, boolean enter,
                                     boolean isVoiceInteraction) {
-        if (AppTransitionController.isTaskViewTask(this) || (isOrganized()
+        if ((isOrganized()
                 // TODO(b/161711458): Clean-up when moved to shell.
                 && getWindowingMode() != WINDOWING_MODE_FULLSCREEN
                 && getWindowingMode() != WINDOWING_MODE_FREEFORM
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 9d499e6..d699a68 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -157,7 +157,6 @@
 import static com.android.server.wm.WindowManagerServiceDumpProto.ROOT_WINDOW_CONTAINER;
 import static com.android.server.wm.WindowManagerServiceDumpProto.WINDOW_FRAMES_VALID;
 import static com.android.window.flags.Flags.enableDisplayFocusInShellTransitions;
-import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
 import static com.android.window.flags.Flags.multiCrop;
 import static com.android.window.flags.Flags.setScPropertiesInClient;
 
@@ -326,7 +325,6 @@
 import android.window.WindowContextInfo;
 
 import com.android.internal.R;
-import com.android.internal.util.ToBooleanFunction;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.annotations.VisibleForTesting.Visibility;
@@ -343,12 +341,12 @@
 import com.android.internal.util.FastPrintWriter;
 import com.android.internal.util.FrameworkStatsLog;
 import com.android.internal.util.LatencyTracker;
+import com.android.internal.util.ToBooleanFunction;
 import com.android.internal.view.WindowManagerPolicyThread;
 import com.android.server.AnimationThread;
 import com.android.server.DisplayThread;
 import com.android.server.FgThread;
 import com.android.server.LocalServices;
-import com.android.server.SystemConfig;
 import com.android.server.UiThread;
 import com.android.server.Watchdog;
 import com.android.server.input.InputManagerService;
@@ -388,7 +386,6 @@
 import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Supplier;
@@ -451,11 +448,6 @@
     /**
      * Use WMShell for app transition.
      */
-    private static final String ENABLE_SHELL_TRANSITIONS = "persist.wm.debug.shell_transit";
-
-    /**
-     * @see #ENABLE_SHELL_TRANSITIONS
-     */
     public static final boolean sEnableShellTransitions = getShellTransitEnabled();
 
     /**
@@ -504,6 +496,8 @@
 
     final StartingSurfaceController mStartingSurfaceController;
 
+    final PresentationController mPresentationController;
+
     private final IVrStateCallbacks mVrStateCallbacks = new IVrStateCallbacks.Stub() {
         @Override
         public void onVrStateChanged(boolean enabled) {
@@ -673,6 +667,14 @@
     private ArrayList<WindowState> mHidingNonSystemOverlayWindows = new ArrayList<>();
 
     /**
+     * A map that tracks uid/count of windows that cause non-system overlay windows to be hidden.
+     * The key is the window's uid and the value is the number of windows with that uid that are
+     * requesting hiding non-system overlay
+     */
+    private final ArrayMap<Integer, Integer> mHidingNonSystemOverlayWindowsCountPerUid =
+            new ArrayMap<>();
+
+    /**
      * In some cases (e.g. when {@link R.bool.config_reverseDefaultRotation} has value
      * {@value true}) we need to map some orientation to others. This {@link SparseIntArray}
      * contains the relation between the source orientation and the one to use.
@@ -725,8 +727,14 @@
             new WallpaperVisibilityListeners();
 
     IDisplayChangeWindowController mDisplayChangeController = null;
-    private final DeathRecipient mDisplayChangeControllerDeath =
-            () -> mDisplayChangeController = null;
+    private final DeathRecipient mDisplayChangeControllerDeath = new DeathRecipient() {
+        @Override
+        public void binderDied() {
+            synchronized (mGlobalLock) {
+                mDisplayChangeController = null;
+            }
+        }
+    };
 
     final DisplayWindowListenerController mDisplayNotificationController;
     final TaskSystemBarsListenerController mTaskSystemBarsListenerController;
@@ -1420,6 +1428,7 @@
         setGlobalShadowSettings();
         mAnrController = new AnrController(this);
         mStartingSurfaceController = new StartingSurfaceController(this);
+        mPresentationController = new PresentationController();
 
         mBlurController = new BlurController(mContext, mPowerManager);
         mTaskFpsCallbackController = new TaskFpsCallbackController(mContext);
@@ -1808,7 +1817,7 @@
                     UserHandle.getUserId(win.getOwningUid()));
             win.setHiddenWhileSuspended(suspended);
 
-            final boolean hideSystemAlertWindows = !mHidingNonSystemOverlayWindows.isEmpty();
+            final boolean hideSystemAlertWindows = shouldHideNonSystemOverlayWindow(win);
             win.setForceHideNonSystemOverlayWindowIfNeeded(hideSystemAlertWindows);
 
             boolean imMayMove = true;
@@ -1924,16 +1933,8 @@
             }
             outSizeCompatScale[0] = win.getCompatScaleForClient();
 
-            if (res >= ADD_OKAY
-                    && (type == TYPE_PRESENTATION || type == TYPE_PRIVATE_PRESENTATION)) {
-                displayContent.mIsPresenting = true;
-                if (enablePresentationForConnectedDisplays()) {
-                    // A presentation hides all activities behind on the same display.
-                    displayContent.ensureActivitiesVisible(/*starting=*/ null,
-                            /*notifyClients=*/ true);
-                }
-                mDisplayManagerInternal.onPresentation(displayContent.getDisplay().getDisplayId(),
-                        /*isShown=*/ true);
+            if (res >= ADD_OKAY && win.isPresentation()) {
+                mPresentationController.onPresentationAdded(win);
             }
         }
 
@@ -2032,6 +2033,22 @@
         }
     }
 
+    private boolean shouldHideNonSystemOverlayWindow(WindowState win) {
+        if (!Flags.fixHideOverlayApi()) {
+            return !mHidingNonSystemOverlayWindows.isEmpty();
+        }
+
+        if (mHidingNonSystemOverlayWindows.isEmpty()) {
+            return false;
+        }
+
+        if (mHidingNonSystemOverlayWindowsCountPerUid.size() == 1
+                && mHidingNonSystemOverlayWindowsCountPerUid.containsKey(win.getOwningUid())) {
+            return false;
+        }
+        return true;
+    }
+
     /**
      * Set whether screen capture is disabled for all windows of a specific user from
      * the device policy cache, or specific windows based on sensitive content protections.
@@ -4703,11 +4720,13 @@
                 }
                 ImeTracker.forLogging().onProgress(statsToken,
                         ImeTracker.PHASE_WM_UPDATE_DISPLAY_WINDOW_REQUESTED_VISIBLE_TYPES);
-                dc.mRemoteInsetsControlTarget.updateRequestedVisibleTypes(visibleTypes, mask);
+                final @InsetsType int changedTypes =
+                        dc.mRemoteInsetsControlTarget.updateRequestedVisibleTypes(
+                                visibleTypes, mask);
                 // TODO(b/353463205) the statsToken shouldn't be null as it is used later in the
                 //  IME provider. Check if we have to create a new request here, if null.
                 dc.getInsetsStateController().onRequestedVisibleTypesChanged(
-                        dc.mRemoteInsetsControlTarget, statsToken);
+                        dc.mRemoteInsetsControlTarget, changedTypes, statsToken);
             }
         } finally {
             Binder.restoreCallingIdentity(origId);
@@ -6948,12 +6967,12 @@
 
     @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
         PriorityDump.dump(mPriorityDumper, fd, pw, args);
     }
 
     @NeverCompile // Avoid size overhead of debugging code.
     private void doDump(FileDescriptor fd, PrintWriter pw, String[] args, boolean useProto) {
-        if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
         boolean dumpAll = false;
 
         int opti = 0;
@@ -8733,22 +8752,42 @@
             return;
         }
         final boolean systemAlertWindowsHidden = !mHidingNonSystemOverlayWindows.isEmpty();
+        final int numUIDsRequestHidingPreUpdate = mHidingNonSystemOverlayWindowsCountPerUid.size();
         if (surfaceShown && win.hideNonSystemOverlayWindowsWhenVisible()) {
             if (!mHidingNonSystemOverlayWindows.contains(win)) {
                 mHidingNonSystemOverlayWindows.add(win);
+                int uid = win.getOwningUid();
+                int count = mHidingNonSystemOverlayWindowsCountPerUid.getOrDefault(uid, 0);
+                mHidingNonSystemOverlayWindowsCountPerUid.put(uid, count + 1);
             }
         } else {
             mHidingNonSystemOverlayWindows.remove(win);
+            int uid = win.getOwningUid();
+            int count = mHidingNonSystemOverlayWindowsCountPerUid.getOrDefault(uid, 0);
+            if (count <= 1) {
+                mHidingNonSystemOverlayWindowsCountPerUid.remove(win.getOwningUid());
+            } else {
+                mHidingNonSystemOverlayWindowsCountPerUid.put(uid, count - 1);
+            }
         }
-
         final boolean hideSystemAlertWindows = !mHidingNonSystemOverlayWindows.isEmpty();
-
-        if (systemAlertWindowsHidden == hideSystemAlertWindows) {
-            return;
+        final int numUIDSRequestHidingPostUpdate = mHidingNonSystemOverlayWindowsCountPerUid.size();
+        if (Flags.fixHideOverlayApi()) {
+            if (numUIDSRequestHidingPostUpdate == numUIDsRequestHidingPreUpdate) {
+                return;
+            }
+            // The visibility of SAWs needs to be refreshed only when the number of uids that
+            // request hiding SAWs changes 0->1, 1->0, 1->2 or 2->1.
+            if (numUIDSRequestHidingPostUpdate != 1 && numUIDsRequestHidingPreUpdate != 1) {
+                return;
+            }
+        } else {
+            if (systemAlertWindowsHidden == hideSystemAlertWindows) {
+                return;
+            }
         }
-
         mRoot.forAllWindows((w) -> {
-            w.setForceHideNonSystemOverlayWindowIfNeeded(hideSystemAlertWindows);
+            w.setForceHideNonSystemOverlayWindowIfNeeded(shouldHideNonSystemOverlayWindow(w));
         }, false /* traverseTopToBottom */);
     }
 
@@ -10266,11 +10305,6 @@
     }
 
     private static boolean getShellTransitEnabled() {
-        android.content.pm.FeatureInfo autoFeature = SystemConfig.getInstance()
-                .getAvailableFeatures().get(PackageManager.FEATURE_AUTOMOTIVE);
-        if (autoFeature != null && autoFeature.version >= 0) {
-            return SystemProperties.getBoolean(ENABLE_SHELL_TRANSITIONS, true);
-        }
         return true;
     }
 
diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java
index a11f4b1..3b6a4dc 100644
--- a/services/core/java/com/android/server/wm/WindowOrganizerController.java
+++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java
@@ -702,9 +702,23 @@
 
                 if ((entry.getValue().getChangeMask()
                         & WindowContainerTransaction.Change.CHANGE_FORCE_NO_PIP) != 0) {
-                    // Disable entering pip (eg. when recents pretends to finish itself)
-                    if (chain.mTransition != null) {
-                        chain.mTransition.setCanPipOnFinish(false /* canPipOnFinish */);
+                    if (com.android.wm.shell.Flags.enableRecentsBookendTransition()) {
+                        // If we are using a bookend transition, then the transition that we need
+                        // to disable pip on finish is the original transient transition, not the
+                        // bookend transition
+                        final Transition transientHideTransition =
+                                mTransitionController.getTransientHideTransitionForContainer(wc);
+                        if (transientHideTransition != null) {
+                            transientHideTransition.setCanPipOnFinish(false);
+                        } else {
+                            ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+                                    "Set do-not-pip: no task");
+                        }
+                    } else {
+                        // Disable entering pip (eg. when recents pretends to finish itself)
+                        if (chain.mTransition != null) {
+                            chain.mTransition.setCanPipOnFinish(false /* canPipOnFinish */);
+                        }
                     }
                 }
                 // A bit hacky, but we need to detect "remove PiP" so that we can "wrap" the
@@ -2441,10 +2455,28 @@
     /** Whether the configuration changes are important to report back to an organizer. */
     static boolean configurationsAreEqualForOrganizer(
             Configuration newConfig, @Nullable Configuration oldConfig) {
+        return configurationsAreEqualForOrganizer(newConfig, oldConfig, 0 /* additionalMask */);
+    }
+
+    /**
+     * Whether the configuration changes are important to report back to an organizer.
+     *
+     * @param newConfig the new configuration
+     * @param oldConfig the old configuration
+     * @param additionalMask specifies additional configuration changes that the organizer is
+     *                       interested in. If the configuration change matches any bit in the mask,
+     *                       {@code false} is returned.
+     */
+    static boolean configurationsAreEqualForOrganizer(
+            Configuration newConfig, @Nullable Configuration oldConfig,
+            @ActivityInfo.Config int additionalMask) {
         if (oldConfig == null) {
             return false;
         }
         int cfgChanges = newConfig.diff(oldConfig);
+        if ((cfgChanges & additionalMask) != 0) {
+            return false;
+        }
         final int winCfgChanges = (cfgChanges & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0
                 ? (int) newConfig.windowConfiguration.diff(oldConfig.windowConfiguration,
                 true /* compareUndefined */) : 0;
@@ -2651,6 +2683,8 @@
                 ownerActivity.getUid(), ownerActivity.info.processName);
         if (mTaskFragmentOrganizerController.isSystemOrganizer(organizerToken.asBinder())) {
             taskFragment.setOverrideOrientation(creationParams.getOverrideOrientation());
+            taskFragment.setConfigurationChangeMaskForOrganizer(
+                    creationParams.getConfigurationChangeMask());
         }
         final int position;
         if (creationParams.getPairedPrimaryFragmentToken() != null) {
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 84d8f84..5897241 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -182,7 +182,6 @@
 import static com.android.server.wm.WindowStateProto.VIEW_VISIBILITY;
 import static com.android.server.wm.WindowStateProto.WINDOW_CONTAINER;
 import static com.android.server.wm.WindowStateProto.WINDOW_FRAMES;
-import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
 import static com.android.window.flags.Flags.surfaceTrustedOverlay;
 
 import android.annotation.CallSuper;
@@ -822,17 +821,23 @@
     }
 
     /**
+     * @return an integer as the changed requested visible insets types.
      * @see #getRequestedVisibleTypes()
      */
-    void setRequestedVisibleTypes(@InsetsType int requestedVisibleTypes) {
+    @InsetsType int setRequestedVisibleTypes(@InsetsType int requestedVisibleTypes) {
         if (mRequestedVisibleTypes != requestedVisibleTypes) {
+            final int changedTypes = mRequestedVisibleTypes ^ requestedVisibleTypes;
             mRequestedVisibleTypes = requestedVisibleTypes;
+            return changedTypes;
         }
+        return 0;
     }
 
     @VisibleForTesting
-    void setRequestedVisibleTypes(@InsetsType int requestedVisibleTypes, @InsetsType int mask) {
-        setRequestedVisibleTypes(mRequestedVisibleTypes & ~mask | requestedVisibleTypes & mask);
+    @InsetsType int setRequestedVisibleTypes(
+            @InsetsType int requestedVisibleTypes, @InsetsType int mask) {
+        return setRequestedVisibleTypes(
+                mRequestedVisibleTypes & ~mask | requestedVisibleTypes & mask);
     }
 
     /**
@@ -2069,38 +2074,15 @@
         super.onMovedByResize();
     }
 
-    void onAppVisibilityChanged(boolean visible, boolean runningAppAnimation) {
+    void onAppCommitInvisible() {
         for (int i = mChildren.size() - 1; i >= 0; --i) {
-            mChildren.get(i).onAppVisibilityChanged(visible, runningAppAnimation);
+            mChildren.get(i).onAppCommitInvisible();
         }
-
-        final boolean isVisibleNow = isVisibleNow();
-        if (mAttrs.type == TYPE_APPLICATION_STARTING) {
-            // Starting window that's exiting will be removed when the animation finishes.
-            // Mark all relevant flags for that onExitAnimationDone will proceed all the way
-            // to actually remove it.
-            if (!visible && isVisibleNow && mActivityRecord.isAnimating(PARENTS | TRANSITION)) {
-                ProtoLog.d(WM_DEBUG_ANIM,
-                        "Set animatingExit: reason=onAppVisibilityChanged win=%s", this);
-                mAnimatingExit = true;
-                mRemoveOnExit = true;
-                mWindowRemovalAllowed = true;
-            }
-        } else if (visible != isVisibleNow) {
-            // Run exit animation if:
-            // 1. App visibility and WS visibility are different
-            // 2. App is not running an animation
-            // 3. WS is currently visible
-            if (!runningAppAnimation && isVisibleNow) {
-                final AccessibilityController accessibilityController =
-                        mWmService.mAccessibilityController;
-                final int winTransit = TRANSIT_EXIT;
-                mWinAnimator.applyAnimationLocked(winTransit, false /* isEntrance */);
-                if (accessibilityController.hasCallbacks()) {
-                    accessibilityController.onWindowTransition(this, winTransit);
-                }
-            }
-            setDisplayLayoutNeeded();
+        if (mAttrs.type != TYPE_APPLICATION_STARTING
+                && mWmService.mAccessibilityController.hasCallbacks()
+                // It is a change only if App visibility and WS visibility are different.
+                && isVisible()) {
+            mWmService.mAccessibilityController.onWindowTransition(this, TRANSIT_EXIT);
         }
     }
 
@@ -2317,15 +2299,8 @@
 
         final int type = mAttrs.type;
 
-        if (type == TYPE_PRESENTATION || type == TYPE_PRIVATE_PRESENTATION) {
-            // TODO(b/393945496): Make sure that there's one presentation at most per display.
-            dc.mIsPresenting = false;
-            if (enablePresentationForConnectedDisplays()) {
-                // A presentation hides all activities behind on the same display.
-                dc.ensureActivitiesVisible(/*starting=*/ null, /*notifyClients=*/ true);
-            }
-            mWmService.mDisplayManagerInternal.onPresentation(dc.getDisplay().getDisplayId(),
-                    /*isShown=*/ false);
+        if (isPresentation()) {
+            mWmService.mPresentationController.onPresentationRemoved(this);
         }
         // Check if window provides non decor insets before clearing its provided insets.
         final boolean windowProvidesDisplayDecorInsets = providesDisplayDecorInsets();
@@ -3354,6 +3329,10 @@
         }
     }
 
+    boolean isPresentation() {
+        return mAttrs.type == TYPE_PRESENTATION || mAttrs.type == TYPE_PRIVATE_PRESENTATION;
+    }
+
     private boolean isOnVirtualDisplay() {
         return getDisplayContent().mDisplay.getType() == Display.TYPE_VIRTUAL;
     }
diff --git a/services/core/jni/com_android_server_display_DisplayControl.cpp b/services/core/jni/com_android_server_display_DisplayControl.cpp
index 6613a25..aeae13d 100644
--- a/services/core/jni/com_android_server_display_DisplayControl.cpp
+++ b/services/core/jni/com_android_server_display_DisplayControl.cpp
@@ -172,9 +172,9 @@
 }
 
 static jobject nativeGetPhysicalDisplayToken(JNIEnv* env, jclass clazz, jlong physicalDisplayId) {
-    const auto id = DisplayId::fromValue<PhysicalDisplayId>(physicalDisplayId);
-    if (!id) return nullptr;
-    sp<IBinder> token = SurfaceComposerClient::getPhysicalDisplayToken(*id);
+    const PhysicalDisplayId id = PhysicalDisplayId::fromValue(physicalDisplayId);
+    sp<IBinder> token = SurfaceComposerClient::getPhysicalDisplayToken(id);
+    if (!token) return nullptr;
     return javaObjectForIBinder(env, token);
 }
 
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index 883cab0..f07e672 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -668,8 +668,10 @@
     }
 
     // TODO(b/383092013): Add topology validation
-    mInputManager->getChoreographer().setDisplayTopology(
-            android_hardware_display_DisplayTopologyGraph_toNative(env, topologyGraph));
+    const DisplayTopologyGraph displayTopology =
+            android_hardware_display_DisplayTopologyGraph_toNative(env, topologyGraph);
+    mInputManager->getDispatcher().setDisplayTopology(displayTopology);
+    mInputManager->getChoreographer().setDisplayTopology(displayTopology);
 }
 
 base::Result<std::unique_ptr<InputChannel>> NativeInputManager::createInputChannel(
diff --git a/services/credentials/java/com/android/server/credentials/RequestSession.java b/services/credentials/java/com/android/server/credentials/RequestSession.java
index 2aa0c6b..440eae5 100644
--- a/services/credentials/java/com/android/server/credentials/RequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/RequestSession.java
@@ -446,7 +446,7 @@
         @Override
         public void binderDied() {
             Slog.d(TAG, "Client binder died - clearing session");
-            finishSession(isUiWaitingForData(), ApiStatus.CLIENT_CANCELED.getMetricCode());
+            finishSession(isUiWaitingForData(), ApiStatus.BINDER_DIED.getMetricCode());
         }
     }
 
diff --git a/services/credentials/java/com/android/server/credentials/metrics/ApiStatus.java b/services/credentials/java/com/android/server/credentials/metrics/ApiStatus.java
index ece729f..c21e645 100644
--- a/services/credentials/java/com/android/server/credentials/metrics/ApiStatus.java
+++ b/services/credentials/java/com/android/server/credentials/metrics/ApiStatus.java
@@ -16,6 +16,7 @@
 
 package com.android.server.credentials.metrics;
 
+import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_BINDER_DIED;
 import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_CLIENT_CANCELED;
 import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_FAILURE;
 import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_SUCCESS;
@@ -27,7 +28,9 @@
     CLIENT_CANCELED(
             CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_CLIENT_CANCELED),
     USER_CANCELED(
-            CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_USER_CANCELED);
+            CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_USER_CANCELED),
+    BINDER_DIED(
+            CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED__API_STATUS__API_STATUS_BINDER_DIED);
 
     private final int mInnerMetricCode;
 
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
index 1c8d06e..bbbfe0b 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
@@ -403,22 +403,23 @@
      */
     private <V> void applyToInheritableProfiles(PolicyDefinition<V> policyDefinition,
             EnforcingAdmin enforcingAdmin, @Nullable PolicyValue<V> value, int userId) {
-        if (policyDefinition.isInheritable()) {
-            Binder.withCleanCallingIdentity(() -> {
-                List<UserInfo> userInfos = mUserManager.getProfiles(userId);
-                for (UserInfo childUserInfo : userInfos) {
-                    int childUserId = childUserInfo.getUserHandle().getIdentifier();
-                    if (isProfileOfUser(childUserId, userId)
-                            && isInheritDevicePolicyFromParent(childUserInfo)) {
-                        if (value != null) {
-                            setLocalPolicy(policyDefinition, enforcingAdmin, value, childUserId);
-                        } else {
-                            removeLocalPolicy(policyDefinition, enforcingAdmin, childUserId);
-                        }
+        if (!policyDefinition.isInheritable()) {
+            return;
+        }
+        Binder.withCleanCallingIdentity(() -> {
+            List<UserInfo> userInfos = mUserManager.getProfiles(userId);
+            for (UserInfo childUserInfo : userInfos) {
+                int childUserId = childUserInfo.getUserHandle().getIdentifier();
+                if (isProfileOfUser(childUserId, userId)
+                        && isInheritDevicePolicyFromParent(childUserInfo)) {
+                    if (value != null) {
+                        setLocalPolicy(policyDefinition, enforcingAdmin, value, childUserId);
+                    } else {
+                        removeLocalPolicy(policyDefinition, enforcingAdmin, childUserId);
                     }
                 }
-            });
-        }
+            }
+        });
     }
 
     /**
@@ -1868,7 +1869,7 @@
      * of the resolved policy. This method controls which policies should use this special logic.
      */
     private <V> boolean shouldApplyPackageSetUnionPolicyHack(PolicyDefinition<V> policy) {
-        String policyKey =  policy.getPolicyKey().getIdentifier();
+        String policyKey = policy.getPolicyKey().getIdentifier();
         return policyKey.equals(USER_CONTROL_DISABLED_PACKAGES_POLICY)
                 || policyKey.equals(PACKAGES_SUSPENDED_POLICY);
     }
@@ -1894,6 +1895,7 @@
         private static File getFileName() {
             return new File(Environment.getDataSystemDirectory(), DEVICE_POLICIES_XML);
         }
+
         private DevicePoliciesReaderWriter() {
             mFile = getFileName();
         }
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index e7b168a..191c21e 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -3285,15 +3285,8 @@
                 .setDeliveryGroupPolicy(BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT)
                 .setDeferralPolicy(BroadcastOptions.DEFERRAL_POLICY_UNTIL_ACTIVE)
                 .toBundle();
-        mInjector.binderWithCleanCallingIdentity(() -> {
-            try {
-                mContext.sendBroadcastAsUser(intent, new UserHandle(userHandle), null, options);
-            } catch (SecurityException e) {
-                // TODO(b/387259698) remove debug logging.
-                Slog.d(LOG_TAG, "Exception broadcasting as UID " + Binder.getCallingUid(), e);
-                throw e;
-            }
-        });
+        mInjector.binderWithCleanCallingIdentity(() ->
+                mContext.sendBroadcastAsUser(intent, new UserHandle(userHandle), null, options));
     }
 
     private void loadSettingsLocked(DevicePolicyData policy, int userHandle) {
@@ -8295,8 +8288,11 @@
         Preconditions.checkCallAuthorization(isSystemUid(caller));
         // Managed Profile password can only be changed when it has a separate challenge.
         if (!isSeparateProfileChallengeEnabled(userId)) {
-            Preconditions.checkCallAuthorization(!isManagedProfile(userId), "You can "
-                    + "not set the active password for a managed profile, userId = %d", userId);
+            if (isManagedProfile(userId)) {
+                Slogf.i(LOG_TAG, "You can not set the active password for a managed profile,"
+                        + " userId = %d", userId);
+                return;
+            }
         }
 
         DevicePolicyData policy = getUserData(userId);
@@ -16000,8 +15996,6 @@
         @Override
         public void notifyUnsafeOperationStateChanged(DevicePolicySafetyChecker checker, int reason,
                 boolean isSafe) {
-            // TODO(b/178494483): use EventLog instead
-            // TODO(b/178494483): log metrics?
             if (VERBOSE_LOG) {
                 Slogf.v(LOG_TAG, "notifyUnsafeOperationStateChanged(): %s=%b",
                         DevicePolicyManager.operationSafetyReasonToString(reason), isSafe);
@@ -16013,16 +16007,20 @@
             extras.putInt(DeviceAdminReceiver.EXTRA_OPERATION_SAFETY_REASON, reason);
             extras.putBoolean(DeviceAdminReceiver.EXTRA_OPERATION_SAFETY_STATE, isSafe);
 
-            if (mOwners.hasDeviceOwner()) {
-                if (VERBOSE_LOG) Slogf.v(LOG_TAG, "Notifying DO");
-                sendDeviceOwnerCommand(DeviceAdminReceiver.ACTION_OPERATION_SAFETY_STATE_CHANGED,
-                        extras);
-            }
-            for (int profileOwnerId : mOwners.getProfileOwnerKeys()) {
-                if (VERBOSE_LOG) Slogf.v(LOG_TAG, "Notifying PO for user " + profileOwnerId);
-                sendProfileOwnerCommand(DeviceAdminReceiver.ACTION_OPERATION_SAFETY_STATE_CHANGED,
-                        extras, profileOwnerId);
-            }
+            mInjector.binderWithCleanCallingIdentity(() -> {
+                if (mOwners.hasDeviceOwner()) {
+                    if (VERBOSE_LOG) Slogf.v(LOG_TAG, "Notifying DO");
+                    sendDeviceOwnerCommand(
+                            DeviceAdminReceiver.ACTION_OPERATION_SAFETY_STATE_CHANGED,
+                            extras);
+                }
+                for (int profileOwnerId : mOwners.getProfileOwnerKeys()) {
+                    if (VERBOSE_LOG) Slogf.v(LOG_TAG, "Notifying PO for user " + profileOwnerId);
+                    sendProfileOwnerCommand(
+                            DeviceAdminReceiver.ACTION_OPERATION_SAFETY_STATE_CHANGED,
+                            extras, profileOwnerId);
+                }
+            });
         }
 
         private @Mode int findInteractAcrossProfilesResetMode(String packageName) {
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/EnterpriseSpecificIdCalculator.java b/services/devicepolicy/java/com/android/server/devicepolicy/EnterpriseSpecificIdCalculator.java
index 6e038f9..ba02122 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/EnterpriseSpecificIdCalculator.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/EnterpriseSpecificIdCalculator.java
@@ -54,17 +54,7 @@
         TelephonyManager telephonyService = context.getSystemService(TelephonyManager.class);
         Preconditions.checkState(telephonyService != null, "Unable to access telephony service");
 
-        String imei;
-        try {
-            imei = telephonyService.getImei(0);
-        } catch (UnsupportedOperationException doesNotSupportGms) {
-            // Instead of catching the exception, we could check for FEATURE_TELEPHONY_GSM.
-            // However that runs the risk of changing a device's existing ESID if on these devices
-            // telephonyService.getImei() actually returns non-null even when the device does not
-            // declare FEATURE_TELEPHONY_GSM.
-            imei = null;
-        }
-        mImei = imei;
+        mImei = telephonyService.getImei(0);
         String meid;
         try {
             meid = telephonyService.getMeid(0);
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index dae481a..36947a2 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -3198,8 +3198,10 @@
     dprintf(fd, "    }\n");
 }
 
-void IncrementalService::AppOpsListener::opChanged(int32_t, const String16&) {
+binder::Status IncrementalService::AppOpsListener::opChanged(int32_t, int32_t,
+                                                             const String16&, const String16&) {
     incrementalService.onAppOpChanged(packageName);
+    return binder::Status::ok();
 }
 
 binder::Status IncrementalService::IncrementalServiceConnector::setStorageParams(
diff --git a/services/incremental/IncrementalService.h b/services/incremental/IncrementalService.h
index b81e1b1..4ee1a70 100644
--- a/services/incremental/IncrementalService.h
+++ b/services/incremental/IncrementalService.h
@@ -26,7 +26,7 @@
 #include <android/os/incremental/BnStorageLoadingProgressListener.h>
 #include <android/os/incremental/PerUidReadTimeouts.h>
 #include <android/os/incremental/StorageHealthCheckParams.h>
-#include <binder/IAppOpsCallback.h>
+#include <binder/AppOpsManager.h>
 #include <binder/PersistableBundle.h>
 #include <utils/String16.h>
 #include <utils/StrongPointer.h>
@@ -200,11 +200,12 @@
 
     void getMetrics(int32_t storageId, android::os::PersistableBundle* _aidl_return);
 
-    class AppOpsListener : public android::BnAppOpsCallback {
+    class AppOpsListener : public com::android::internal::app::BnAppOpsCallback {
     public:
         AppOpsListener(IncrementalService& incrementalService, std::string packageName)
               : incrementalService(incrementalService), packageName(std::move(packageName)) {}
-        void opChanged(int32_t op, const String16& packageName) final;
+        binder::Status opChanged(int32_t op, int32_t uid, const String16& packageName,
+                                 const String16& persistentDeviceId) final;
 
     private:
         IncrementalService& incrementalService;
diff --git a/services/incremental/ServiceWrappers.h b/services/incremental/ServiceWrappers.h
index 39e2ee3..36a5b7f 100644
--- a/services/incremental/ServiceWrappers.h
+++ b/services/incremental/ServiceWrappers.h
@@ -23,7 +23,7 @@
 #include <android/content/pm/IDataLoader.h>
 #include <android/content/pm/IDataLoaderStatusListener.h>
 #include <android/os/incremental/PerUidReadTimeouts.h>
-#include <binder/IAppOpsCallback.h>
+#include <binder/AppOpsManager.h>
 #include <binder/IServiceManager.h>
 #include <binder/Status.h>
 #include <incfs.h>
@@ -133,6 +133,7 @@
 
 class AppOpsManagerWrapper {
 public:
+    using IAppOpsCallback = ::com::android::internal::app::IAppOpsCallback;
     virtual ~AppOpsManagerWrapper() = default;
     virtual binder::Status checkPermission(const char* permission, const char* operation,
                                            const char* package) const = 0;
diff --git a/services/incremental/test/IncrementalServiceTest.cpp b/services/incremental/test/IncrementalServiceTest.cpp
index d9d3d62..73849a3 100644
--- a/services/incremental/test/IncrementalServiceTest.cpp
+++ b/services/incremental/test/IncrementalServiceTest.cpp
@@ -1678,7 +1678,7 @@
                                                   {}, {}));
     ASSERT_GE(mDataLoader->setStorageParams(true), 0);
     ASSERT_NE(nullptr, mAppOpsManager->mStoredCallback.get());
-    mAppOpsManager->mStoredCallback->opChanged(0, {});
+    mAppOpsManager->mStoredCallback->opChanged(0, 0, {}, {});
 }
 
 TEST_F(IncrementalServiceTest, testSetIncFsMountOptionsCheckPermissionFails) {
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index c974d9e..2bbd69c 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -894,6 +894,17 @@
 
             SystemServiceRegistry.sEnableServiceNotFoundWtf = true;
 
+            // Prepare the thread pool for init tasks that can be parallelized
+            SystemServerInitThreadPool tp = SystemServerInitThreadPool.start();
+            mDumper.addDumpable(tp);
+
+            if (android.server.Flags.earlySystemConfigInit()) {
+                // SystemConfig init is expensive, so enqueue the work as early as possible to allow
+                // concurrent execution before it's needed (typically by ActivityManagerService).
+                // As native library loading is also expensive, this is a good place to start.
+                startSystemConfigInit(t);
+            }
+
             // Initialize native services.
             System.loadLibrary("android_servers");
 
@@ -926,9 +937,6 @@
             mDumper.addDumpable(mSystemServiceManager);
 
             LocalServices.addService(SystemServiceManager.class, mSystemServiceManager);
-            // Prepare the thread pool for init tasks that can be parallelized
-            SystemServerInitThreadPool tp = SystemServerInitThreadPool.start();
-            mDumper.addDumpable(tp);
 
             // Lazily load the pre-installed system font map in SystemServer only if we're not doing
             // the optimized font loading in the FontManagerService.
@@ -1093,6 +1101,14 @@
         }
     }
 
+    private void startSystemConfigInit(TimingsTraceAndSlog t) {
+        Slog.i(TAG, "Reading configuration...");
+        final String tagSystemConfig = "ReadingSystemConfig";
+        t.traceBegin(tagSystemConfig);
+        SystemServerInitThreadPool.submit(SystemConfig::getInstance, tagSystemConfig);
+        t.traceEnd();
+    }
+
     private void createSystemContext() {
         ActivityThread activityThread = ActivityThread.systemMain();
         mSystemContext = activityThread.getSystemContext();
@@ -1131,11 +1147,11 @@
         mDumper.addDumpable(watchdog);
         t.traceEnd();
 
-        Slog.i(TAG, "Reading configuration...");
-        final String TAG_SYSTEM_CONFIG = "ReadingSystemConfig";
-        t.traceBegin(TAG_SYSTEM_CONFIG);
-        SystemServerInitThreadPool.submit(SystemConfig::getInstance, TAG_SYSTEM_CONFIG);
-        t.traceEnd();
+        // Legacy entry point for starting SystemConfig init, only needed if the early init flag is
+        // disabled and we haven't already triggered init before bootstrap services.
+        if (!android.server.Flags.earlySystemConfigInit()) {
+            startSystemConfigInit(t);
+        }
 
         // Orchestrates some ProtoLogging functionality.
         if (android.tracing.Flags.clientSideProtoLogging()) {
diff --git a/services/java/com/android/server/flags.aconfig b/services/java/com/android/server/flags.aconfig
index 4d021ec..86ccd87 100644
--- a/services/java/com/android/server/flags.aconfig
+++ b/services/java/com/android/server/flags.aconfig
@@ -10,6 +10,13 @@
 }
 
 flag {
+     namespace: "system_performance"
+     name: "early_system_config_init"
+     description: "Perform earlier initialization of SystemConfig in system server startup."
+     bug: "383869534"
+}
+
+flag {
      name: "remove_text_service"
      namespace: "wear_frameworks"
      description: "Remove TextServiceManagerService on Wear"
diff --git a/services/people/java/com/android/server/people/PeopleService.java b/services/people/java/com/android/server/people/PeopleService.java
index b9f00d7..44a8354 100644
--- a/services/people/java/com/android/server/people/PeopleService.java
+++ b/services/people/java/com/android/server/people/PeopleService.java
@@ -16,6 +16,8 @@
 
 package com.android.server.people;
 
+import static com.android.server.flags.Flags.earlyDataManagerInit;
+
 import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -117,6 +119,18 @@
     }
 
     @Override
+    public void onBootPhase(int phase) {
+        if (phase == PHASE_BOOT_COMPLETED) {
+            if (earlyDataManagerInit()) {
+                // Force initialization of DataManager before onUserUnlocked
+                // to avoid blocking the ActivityManagerService on
+                // shortcutHandleUnlockUser.
+                getDataManager();
+            }
+        }
+    }
+
+    @Override
     public void onUserUnlocked(@NonNull TargetUser user) {
         getDataManager().onUserUnlocked(user.getUserIdentifier());
     }
diff --git a/services/permission/java/com/android/server/permission/access/AccessPolicy.kt b/services/permission/java/com/android/server/permission/access/AccessPolicy.kt
index 69a88e9..1bb39544 100644
--- a/services/permission/java/com/android/server/permission/access/AccessPolicy.kt
+++ b/services/permission/java/com/android/server/permission/access/AccessPolicy.kt
@@ -431,7 +431,7 @@
     companion object {
         private val LOG_TAG = AccessPolicy::class.java.simpleName
 
-        internal const val VERSION_LATEST = 15
+        internal const val VERSION_LATEST = 16
 
         private const val TAG_ACCESS = "access"
         private const val TAG_DEFAULT_PERMISSION_GRANT = "default-permission-grant"
diff --git a/services/permission/java/com/android/server/permission/access/appop/AppIdAppOpUpgrade.kt b/services/permission/java/com/android/server/permission/access/appop/AppIdAppOpUpgrade.kt
index 10c7764..0f7175c 100644
--- a/services/permission/java/com/android/server/permission/access/appop/AppIdAppOpUpgrade.kt
+++ b/services/permission/java/com/android/server/permission/access/appop/AppIdAppOpUpgrade.kt
@@ -61,5 +61,21 @@
                 }
             }
         }
+        if (version <= 15) {
+            with(policy) {
+                val appOpModes = getAppOpModes(packageState.appId, userId)
+                if (
+                    appOpModes != null &&
+                        AppOpsManager.OPSTR_ACCESS_RESTRICTED_SETTINGS !in appOpModes
+                ) {
+                    setAppOpMode(
+                        packageState.appId,
+                        userId,
+                        AppOpsManager.OPSTR_ACCESS_RESTRICTED_SETTINGS,
+                        AppOpsManager.MODE_ALLOWED,
+                    )
+                }
+            }
+        }
     }
 }
diff --git a/services/proguard.flags b/services/proguard.flags
index 0e1f68e..8d8b418 100644
--- a/services/proguard.flags
+++ b/services/proguard.flags
@@ -15,7 +15,10 @@
 
 # APIs referenced by dependent JAR files and modules
 # TODO(b/300514883): Pull @SystemApi keep rules from system-api.pro.
--keep interface android.annotation.SystemApi
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep interface android.annotation.SystemApi {
+  void <init>();
+}
 -keep @android.annotation.SystemApi class * {
   public protected *;
 }
diff --git a/services/tests/InputMethodSystemServerTests/Android.bp b/services/tests/InputMethodSystemServerTests/Android.bp
index da58aa1..ae9a34e 100644
--- a/services/tests/InputMethodSystemServerTests/Android.bp
+++ b/services/tests/InputMethodSystemServerTests/Android.bp
@@ -34,24 +34,24 @@
 
     static_libs: [
         "androidx.test.core",
-        "androidx.test.runner",
-        "androidx.test.espresso.core",
         "androidx.test.espresso.contrib",
+        "androidx.test.espresso.core",
         "androidx.test.ext.truth",
+        "androidx.test.runner",
         "frameworks-base-testutils",
         "mockito-target-extended-minus-junit4",
         "platform-test-annotations",
         "ravenwood-junit",
-        "services.core",
         "service-permission.stubs.system_server",
+        "services.core",
         "servicestests-core-utils",
         "servicestests-utils-mockito-extended",
         "truth",
     ],
 
     libs: [
-        "android.test.mock.stubs.system",
         "android.test.base.stubs.system",
+        "android.test.mock.stubs.system",
         "android.test.runner.stubs.system",
     ],
 
@@ -103,27 +103,29 @@
     test_config: "src/com/android/inputmethodservice/AndroidTest.xml",
 
     static_libs: [
+        "SimpleImeImsLib",
+        "SimpleImeTestingLib",
         "androidx.test.core",
-        "androidx.test.runner",
-        "androidx.test.espresso.core",
         "androidx.test.espresso.contrib",
+        "androidx.test.espresso.core",
         "androidx.test.ext.truth",
+        "androidx.test.runner",
+        "cts-input-lib",
+        "cts-wm-util",
         "frameworks-base-testutils",
         "mockito-target-extended-minus-junit4",
         "platform-test-annotations",
         "ravenwood-junit",
-        "services.core",
         "service-permission.stubs.system_server",
+        "services.core",
         "servicestests-core-utils",
         "servicestests-utils-mockito-extended",
         "truth",
-        "SimpleImeTestingLib",
-        "SimpleImeImsLib",
     ],
 
     libs: [
-        "android.test.mock.stubs.system",
         "android.test.base.stubs.system",
+        "android.test.mock.stubs.system",
         "android.test.runner.stubs.system",
     ],
 
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java
index c954b18..72e9cc5 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java
@@ -18,18 +18,23 @@
 
 import static android.view.WindowInsets.Type.captionBar;
 
+import static com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper.EVENT_CONFIG;
+import static com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper.EVENT_HIDE;
+import static com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper.EVENT_SHOW;
+import static com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper.eventToString;
 import static com.android.compatibility.common.util.SystemUtil.eventually;
+import static com.android.cts.input.injectinputinprocess.InjectInputInProcessKt.clickOnViewCenter;
+import static com.android.internal.inputmethod.InputMethodNavButtonFlags.IME_DRAWS_IME_NAV_BAR;
+import static com.android.internal.inputmethod.InputMethodNavButtonFlags.SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeFalse;
 import static org.junit.Assume.assumeTrue;
 
 import android.app.Instrumentation;
-import android.content.Context;
 import android.content.res.Configuration;
 import android.graphics.Insets;
 import android.os.RemoteException;
@@ -37,9 +42,9 @@
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
+import android.server.wm.WindowManagerStateHelper;
 import android.util.Log;
 import android.view.WindowManagerGlobal;
-import android.view.WindowManagerPolicyConstants;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.Flags;
 import android.view.inputmethod.InputMethodManager;
@@ -49,22 +54,24 @@
 import androidx.test.filters.MediumTest;
 import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
 import androidx.test.uiautomator.UiDevice;
 import androidx.test.uiautomator.UiObject2;
 import androidx.test.uiautomator.Until;
 
 import com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper;
+import com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper.Event;
 import com.android.apps.inputmethod.simpleime.testing.TestActivity;
+import com.android.compatibility.common.util.GestureNavSwitchHelper;
 import com.android.compatibility.common.util.SystemUtil;
-import com.android.internal.inputmethod.InputMethodNavButtonFlags;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestName;
 import org.junit.runner.RunWith;
 
-import java.io.IOException;
 import java.util.Objects;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -72,9 +79,9 @@
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public class InputMethodServiceTest {
+
     private static final String TAG = "SimpleIMSTest";
     private static final String INPUT_METHOD_SERVICE_NAME = ".SimpleInputMethodService";
-    private static final String EDIT_TEXT_DESC = "Input box";
     private static final String INPUT_METHOD_NAV_BACK_ID =
             "android:id/input_method_nav_back";
     private static final String INPUT_METHOD_NAV_IME_SWITCHER_ID =
@@ -85,62 +92,71 @@
     private static final String DISABLE_SHOW_IME_WITH_HARD_KEYBOARD_CMD =
             "settings put secure " + Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD + " 0";
 
-    private final DeviceFlagsValueProvider mFlagsValueProvider = new DeviceFlagsValueProvider();
+    private final WindowManagerStateHelper mWmState =  new WindowManagerStateHelper();
 
-    private Instrumentation mInstrumentation;
-    private UiDevice mUiDevice;
-    private Context mContext;
-    private String mTargetPackageName;
-    private TestActivity mActivity;
-    private InputMethodServiceWrapper mInputMethodService;
-    private String mInputMethodId;
-    private boolean mShowImeWithHardKeyboardEnabled;
+    private final GestureNavSwitchHelper mGestureNavSwitchHelper = new GestureNavSwitchHelper();
+
+    private final DeviceFlagsValueProvider mFlagsValueProvider = new DeviceFlagsValueProvider();
 
     @Rule
     public final CheckFlagsRule mCheckFlagsRule = new CheckFlagsRule(mFlagsValueProvider);
 
+    @Rule
+    public final TestName mName = new TestName();
+
+    private Instrumentation mInstrumentation;
+    private UiDevice mUiDevice;
+    private InputMethodManager mImm;
+    private String mTargetPackageName;
+    private String mInputMethodId;
+    private TestActivity mActivity;
+    private InputMethodServiceWrapper mInputMethodService;
+    private boolean mShowImeWithHardKeyboardEnabled;
+
     @Before
     public void setUp() throws Exception {
         mInstrumentation = InstrumentationRegistry.getInstrumentation();
         mUiDevice = UiDevice.getInstance(mInstrumentation);
-        mContext = mInstrumentation.getContext();
+        mImm = mInstrumentation.getContext().getSystemService(InputMethodManager.class);
         mTargetPackageName = mInstrumentation.getTargetContext().getPackageName();
         mInputMethodId = getInputMethodId();
         prepareIme();
-        prepareEditor();
+        prepareActivity();
         mInstrumentation.waitForIdleSync();
         mUiDevice.freezeRotation();
         mUiDevice.setOrientationNatural();
         // Waits for input binding ready.
         eventually(() -> {
-            mInputMethodService =
-                    InputMethodServiceWrapper.getInputMethodServiceWrapperForTesting();
-            assertThat(mInputMethodService).isNotNull();
+            mInputMethodService = InputMethodServiceWrapper.getInstance();
+            assertWithMessage("IME is not null").that(mInputMethodService).isNotNull();
 
             // The activity gets focus.
-            assertThat(mActivity.hasWindowFocus()).isTrue();
-            assertThat(mInputMethodService.getCurrentInputEditorInfo()).isNotNull();
-            assertThat(mInputMethodService.getCurrentInputEditorInfo().packageName)
-                    .isEqualTo(mTargetPackageName);
+            assertWithMessage("Activity window has input focus")
+                    .that(mActivity.hasWindowFocus()).isTrue();
+            final var editorInfo = mInputMethodService.getCurrentInputEditorInfo();
+            assertWithMessage("EditorInfo is not null").that(editorInfo).isNotNull();
+            assertWithMessage("EditorInfo package matches target package")
+                    .that(editorInfo.packageName).isEqualTo(mTargetPackageName);
 
-            // The editor won't bring up keyboard by default.
-            assertThat(mInputMethodService.getCurrentInputStarted()).isTrue();
-            assertThat(mInputMethodService.getCurrentInputViewStarted()).isFalse();
+            assertWithMessage("Input connection is started")
+                    .that(mInputMethodService.getCurrentInputStarted()).isTrue();
+            // The editor won't bring up the IME by default.
+            assertWithMessage("IME is not shown during setup")
+                    .that(mInputMethodService.getCurrentInputViewStarted()).isFalse();
         });
         // Save the original value of show_ime_with_hard_keyboard from Settings.
-        mShowImeWithHardKeyboardEnabled = Settings.Secure.getInt(
-                mInputMethodService.getContentResolver(),
-                Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0;
+        mShowImeWithHardKeyboardEnabled =
+                mInputMethodService.getShouldShowImeWithHardKeyboardForTesting();
     }
 
     @After
     public void tearDown() throws Exception {
         mUiDevice.unfreezeRotation();
-        executeShellCommand("ime disable " + mInputMethodId);
         // Change back the original value of show_ime_with_hard_keyboard in Settings.
         executeShellCommand(mShowImeWithHardKeyboardEnabled
                 ? ENABLE_SHOW_IME_WITH_HARD_KEYBOARD_CMD
                 : DISABLE_SHOW_IME_WITH_HARD_KEYBOARD_CMD);
+        executeShellCommand("ime disable " + mInputMethodId);
     }
 
     /**
@@ -148,30 +164,69 @@
      * (i.e. tapping on an EditText, tapping the Home button).
      */
     @Test
-    public void testShowHideKeyboard_byUserAction() throws Exception {
+    public void testShowHideKeyboard_byUserAction() {
+        waitUntilActivityReadyForInputInjection(mActivity);
+
         setShowImeWithHardKeyboard(true /* enabled */);
 
-        // Performs click on editor box to bring up the soft keyboard.
-        Log.i(TAG, "Click on EditText.");
+        // Performs click on EditText to bring up the IME.
+        Log.i(TAG, "Click on EditText");
         verifyInputViewStatus(
-                () -> clickOnEditorText(),
+                () -> clickOnViewCenter(mActivity.getEditText()),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        // Press home key to hide soft keyboard.
+        // Press home key to hide IME.
         Log.i(TAG, "Press home");
         if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
-            assertThat(mUiDevice.pressHome()).isTrue();
+            assertWithMessage("Home key press was handled").that(mUiDevice.pressHome()).isTrue();
             // The IME visibility is only sent at the end of the animation. Therefore, we have to
             // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
+            eventually(() -> assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse());
         } else {
             verifyInputViewStatus(
-                    () -> assertThat(mUiDevice.pressHome()).isTrue(),
+                    () -> assertWithMessage("Home key press was handled")
+                            .that(mUiDevice.pressHome()).isTrue(),
+                    EVENT_HIDE,
                     true /* expected */,
                     false /* inputViewStarted */);
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
+        }
+    }
+
+    /**
+     * This checks that the IME can be shown and hidden using the InputMethodManager APIs.
+     */
+    @Test
+    public void testShowHideKeyboard_byInputMethodManager() {
+        setShowImeWithHardKeyboard(true /* enabled */);
+
+        // Triggers to show IME via public API.
+        verifyInputViewStatusOnMainSync(
+                () -> assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                EVENT_SHOW,
+                true /* expected */,
+                true /* inputViewStarted */);
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
+
+        // Triggers to hide IME via public API.
+        verifyInputViewStatusOnMainSync(
+                () -> assertThat(mActivity.hideImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                EVENT_HIDE,
+                true /* expected */,
+                false /* inputViewStarted */);
+        if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
+            // The IME visibility is only sent at the end of the animation. Therefore, we have to
+            // wait until the visibility was sent to the server and the IME window hidden.
+            eventually(() -> assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse());
+        } else {
+            assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
         }
     }
 
@@ -179,48 +234,53 @@
      * This checks that the IME can be shown and hidden using the WindowInsetsController APIs.
      */
     @Test
-    public void testShowHideKeyboard_byApi() throws Exception {
+    public void testShowHideKeyboard_byInsetsController() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // Triggers to show IME via public API.
         verifyInputViewStatusOnMainSync(
-                () -> assertThat(mActivity.showImeWithWindowInsetsController()).isTrue(),
+                () -> mActivity.showImeWithWindowInsetsController(),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
         // Triggers to hide IME via public API.
         verifyInputViewStatusOnMainSync(
-                () -> assertThat(mActivity.hideImeWithWindowInsetsController()).isTrue(),
+                () -> mActivity.hideImeWithWindowInsetsController(),
+                EVENT_HIDE,
                 true /* expected */,
                 false /* inputViewStarted */);
         if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
             // The IME visibility is only sent at the end of the animation. Therefore, we have to
             // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
+            eventually(() -> assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse());
         } else {
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
         }
     }
 
     /**
      * This checks the result of calling IMS#requestShowSelf and IMS#requestHideSelf.
      *
-     * With the refactor in b/298172246, all calls to IMMS#{show,hide}MySoftInputLocked
+     * <p>With the refactor in b/298172246, all calls to IMMS#{show,hide}MySoftInputLocked
      * will be just apply the requested visibility (by using the callback). Therefore, we will
      * lose flags like HIDE_IMPLICIT_ONLY.
      */
     @Test
-    public void testShowHideSelf() throws Exception {
+    public void testShowHideSelf() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // IME request to show itself without any flags, expect shown.
         Log.i(TAG, "Call IMS#requestShowSelf(0)");
         verifyInputViewStatusOnMainSync(
                 () -> mInputMethodService.requestShowSelf(0 /* flags */),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
         if (!mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
             // IME request to hide itself with flag HIDE_IMPLICIT_ONLY, expect not hide (shown).
@@ -228,23 +288,28 @@
             verifyInputViewStatusOnMainSync(
                     () -> mInputMethodService.requestHideSelf(
                             InputMethodManager.HIDE_IMPLICIT_ONLY),
+                    EVENT_HIDE,
                     false /* expected */,
                     true /* inputViewStarted */);
-            assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            assertWithMessage("IME is still shown after HIDE_IMPLICIT_ONLY")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
         }
 
         // IME request to hide itself without any flags, expect hidden.
         Log.i(TAG, "Call IMS#requestHideSelf(0)");
         verifyInputViewStatusOnMainSync(
                 () -> mInputMethodService.requestHideSelf(0 /* flags */),
+                EVENT_HIDE,
                 true /* expected */,
                 false /* inputViewStarted */);
         if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
             // The IME visibility is only sent at the end of the animation. Therefore, we have to
             // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
+            eventually(() -> assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse());
         } else {
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
         }
 
         if (!mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
@@ -252,18 +317,22 @@
             Log.i(TAG, "Call IMS#requestShowSelf(InputMethodManager.SHOW_IMPLICIT)");
             verifyInputViewStatusOnMainSync(
                     () -> mInputMethodService.requestShowSelf(InputMethodManager.SHOW_IMPLICIT),
+                    EVENT_SHOW,
                     true /* expected */,
                     true /* inputViewStarted */);
-            assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            assertWithMessage("IME is shown with SHOW_IMPLICIT")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
 
             // IME request to hide itself with flag HIDE_IMPLICIT_ONLY, expect hidden.
             Log.i(TAG, "Call IMS#requestHideSelf(InputMethodManager.HIDE_IMPLICIT_ONLY)");
             verifyInputViewStatusOnMainSync(
                     () -> mInputMethodService.requestHideSelf(
                             InputMethodManager.HIDE_IMPLICIT_ONLY),
+                    EVENT_HIDE,
                     true /* expected */,
                     false /* inputViewStarted */);
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            assertWithMessage("IME is not shown after HIDE_IMPLICIT_ONLY")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
         }
     }
 
@@ -272,53 +341,67 @@
      * when show_ime_with_hard_keyboard is enabled.
      */
     @Test
-    public void testOnEvaluateInputViewShown_showImeWithHardKeyboard() throws Exception {
+    public void testOnEvaluateInputViewShown_showImeWithHardKeyboard() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_NO;
-        eventually(() -> assertThat(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_NO;
+            eventually(() ->
+                    assertWithMessage("InputView should show with visible hardware keyboard")
+                            .that(mInputMethodService.onEvaluateInputViewShown()).isTrue());
 
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_NOKEYS;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_NO;
-        eventually(() -> assertThat(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+            config.keyboard = Configuration.KEYBOARD_NOKEYS;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_NO;
+            eventually(() ->
+                    assertWithMessage("InputView should show without hardware keyboard")
+                            .that(mInputMethodService.onEvaluateInputViewShown()).isTrue());
 
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
-        eventually(() -> assertThat(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
+            eventually(() ->
+                    assertWithMessage("InputView should show with hidden hardware keyboard")
+                         .that(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
-     * This checks the return value of IMSonEvaluateInputViewShown,
+     * This checks the return value of IMS#onEvaluateInputViewShown,
      * when show_ime_with_hard_keyboard is disabled.
      */
     @Test
-    public void testOnEvaluateInputViewShown_disableShowImeWithHardKeyboard() throws Exception {
+    public void testOnEvaluateInputViewShown_disableShowImeWithHardKeyboard() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_NO;
-        eventually(() -> assertThat(mInputMethodService.onEvaluateInputViewShown()).isFalse());
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_NO;
+            eventually(() ->
+                    assertWithMessage("InputView should not show with visible hardware keyboard")
+                            .that(mInputMethodService.onEvaluateInputViewShown()).isFalse());
 
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_NOKEYS;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_NO;
-        eventually(() -> assertThat(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+            config.keyboard = Configuration.KEYBOARD_NOKEYS;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_NO;
+            eventually(() ->
+                    assertWithMessage("InputView should show without hardware keyboard")
+                            .that(mInputMethodService.onEvaluateInputViewShown()).isTrue());
 
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
-        eventually(() -> assertThat(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
+            eventually(() ->
+                    assertWithMessage("InputView should show with hidden hardware keyboard")
+                            .that(mInputMethodService.onEvaluateInputViewShown()).isTrue());
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
@@ -326,60 +409,73 @@
      * when IMS#onEvaluateInputViewShown returns false, results in the IME not being shown.
      */
     @Test
-    public void testShowSoftInput_disableShowImeWithHardKeyboard() throws Exception {
+    public void testShowSoftInput_disableShowImeWithHardKeyboard() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        // Simulate connecting a hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_NO;
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            // Simulate connecting a hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_NO;
 
-        // When InputMethodService#onEvaluateInputViewShown() returns false, the Ime should not be
-        // shown no matter what the show flag is.
-        verifyInputViewStatusOnMainSync(() -> assertThat(
-                mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT)).isTrue(),
-                false /* expected */,
-                false /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            // When InputMethodService#onEvaluateInputViewShown() returns false, the IME should
+            // not be shown no matter what the show flag is.
+            verifyInputViewStatusOnMainSync(() -> assertThat(
+                            mActivity.showImeWithInputMethodManager(
+                                    InputMethodManager.SHOW_IMPLICIT)).isTrue(),
+                    EVENT_SHOW,
+                    false /* expected */,
+                    false /* inputViewStarted */);
+            assertWithMessage("IME is not shown after SHOW_IMPLICIT")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
 
-        verifyInputViewStatusOnMainSync(
-                () -> assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
-                false /* expected */,
-                false /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            verifyInputViewStatusOnMainSync(
+                    () -> assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */))
+                            .isTrue(),
+                    EVENT_SHOW,
+                    false /* expected */,
+                    false /* inputViewStarted */);
+            assertWithMessage("IME is not shown after SHOW_EXPLICIT")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
      * This checks that an explicit show request results in the IME being shown.
      */
     @Test
-    public void testShowSoftInputExplicitly() throws Exception {
+    public void testShowSoftInputExplicitly() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // When InputMethodService#onEvaluateInputViewShown() returns true and flag is EXPLICIT, the
-        // Ime should be shown.
+        // IME should be shown.
         verifyInputViewStatusOnMainSync(
                 () -> assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
     }
 
     /**
      * This checks that an implicit show request results in the IME being shown.
      */
     @Test
-    public void testShowSoftInputImplicitly() throws Exception {
+    public void testShowSoftInputImplicitly() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // When InputMethodService#onEvaluateInputViewShown() returns true and flag is IMPLICIT,
         // the IME should be shown.
         verifyInputViewStatusOnMainSync(() -> assertThat(
                 mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT)).isTrue(),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
     }
 
     /**
@@ -387,194 +483,224 @@
      * and it should be shown in fullscreen mode, results in the IME being shown.
      */
     @Test
-    public void testShowSoftInputExplicitly_fullScreenMode() throws Exception {
+    public void testShowSoftInputExplicitly_fullScreenMode() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // Set orientation landscape to enable fullscreen mode.
         setOrientation(2);
-        eventually(() -> assertThat(mUiDevice.isNaturalOrientation()).isFalse());
+        eventually(() -> assertWithMessage("No longer in natural orientation")
+                .that(mUiDevice.isNaturalOrientation()).isFalse());
         // Wait for the TestActivity to be recreated.
-        eventually(() ->
-                assertThat(TestActivity.getLastCreatedInstance()).isNotEqualTo(mActivity));
+        eventually(() -> assertWithMessage("Activity was re-created after rotation")
+                .that(TestActivity.getLastCreatedInstance()).isNotEqualTo(mActivity));
         // Get the new TestActivity.
         mActivity = TestActivity.getLastCreatedInstance();
-        assertThat(mActivity).isNotNull();
-        InputMethodManager imm = mContext.getSystemService(InputMethodManager.class);
+        assertWithMessage("Re-created activity is not null").that(mActivity).isNotNull();
         // Wait for the new EditText to be served by InputMethodManager.
-        eventually(() -> assertThat(
-                imm.hasActiveInputConnection(mActivity.getEditText())).isTrue());
+        eventually(() -> assertWithMessage("Has an input connection to the re-created Activity")
+                .that(mImm.hasActiveInputConnection(mActivity.getEditText())).isTrue());
 
         verifyInputViewStatusOnMainSync(() -> assertThat(
                         mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
     }
 
     /**
      * This checks that an implicit show request when the IME is not previously shown,
      * and it should be shown in fullscreen mode, results in the IME not being shown.
      *
-     * With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
+     * <p>With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
      * will be redirected to InsetsController#{show,hide}. Therefore, we will lose flags like
      * SHOW_IMPLICIT.
      */
     @Test
     @RequiresFlagsDisabled(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)
-    public void testShowSoftInputImplicitly_fullScreenMode() throws Exception {
+    public void testShowSoftInputImplicitly_fullScreenMode() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // Set orientation landscape to enable fullscreen mode.
         setOrientation(2);
-        eventually(() -> assertThat(mUiDevice.isNaturalOrientation()).isFalse());
+        eventually(() -> assertWithMessage("No longer in natural orientation")
+                .that(mUiDevice.isNaturalOrientation()).isFalse());
         // Wait for the TestActivity to be recreated.
-        eventually(() ->
-                assertThat(TestActivity.getLastCreatedInstance()).isNotEqualTo(mActivity));
+        eventually(() -> assertWithMessage("Activity was re-created after rotation")
+                .that(TestActivity.getLastCreatedInstance()).isNotEqualTo(mActivity));
         // Get the new TestActivity.
         mActivity = TestActivity.getLastCreatedInstance();
-        assertThat(mActivity).isNotNull();
-        InputMethodManager imm = mContext.getSystemService(InputMethodManager.class);
+        assertWithMessage("Re-created activity is not null").that(mActivity).isNotNull();
         // Wait for the new EditText to be served by InputMethodManager.
-        eventually(() -> assertThat(
-                imm.hasActiveInputConnection(mActivity.getEditText())).isTrue());
+        eventually(() -> assertWithMessage("Has an input connection to the re-created Activity")
+                .that(mImm.hasActiveInputConnection(mActivity.getEditText())).isTrue());
 
         verifyInputViewStatusOnMainSync(() -> assertThat(
                 mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT)).isTrue(),
+                EVENT_SHOW,
                 false /* expected */,
                 false /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isFalse();
+        assertWithMessage("IME is not shown")
+                .that(mInputMethodService.isInputViewShown()).isFalse();
     }
 
     /**
-     * This checks that an explicit show request when a hard keyboard is connected,
+     * This checks that an explicit show request when a hardware keyboard is connected,
      * results in the IME being shown.
      */
     @Test
-    public void testShowSoftInputExplicitly_withHardKeyboard() throws Exception {
+    public void testShowSoftInputExplicitly_withHardKeyboard() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        // Simulate connecting a hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            // Simulate connecting a hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        verifyInputViewStatusOnMainSync(() -> assertThat(
-                mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            verifyInputViewStatusOnMainSync(() -> assertThat(
+                            mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
-     * This checks that an implicit show request when a hard keyboard is connected,
+     * This checks that an implicit show request when a hardware keyboard is connected,
      * results in the IME not being shown.
      *
-     * With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
+     * <p>With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
      * will be redirected to InsetsController#{show,hide}. Therefore, we will lose flags like
      * SHOW_IMPLICIT.
      */
     @Test
     @RequiresFlagsDisabled(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)
-    public void testShowSoftInputImplicitly_withHardKeyboard() throws Exception {
+    public void testShowSoftInputImplicitly_withHardKeyboard() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        // Simulate connecting a hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            // Simulate connecting a hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        verifyInputViewStatusOnMainSync(() -> assertThat(
-                mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT)).isTrue(),
-                false /* expected */,
-                false /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            verifyInputViewStatusOnMainSync(() ->assertThat(
+                    mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT))
+                            .isTrue(),
+                    EVENT_SHOW,
+                    false /* expected */,
+                    false /* inputViewStarted */);
+            assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
-     * This checks that an explicit show request followed by connecting a hard keyboard
+     * This checks that an explicit show request followed by connecting a hardware keyboard
      * and a configuration change, still results in the IME being shown.
      */
     @Test
-    public void testShowSoftInputExplicitly_thenConfigurationChanged() throws Exception {
+    public void testShowSoftInputExplicitly_thenConfigurationChanged() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        // Start with no hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_NOKEYS;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            // Start with no hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_NOKEYS;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        verifyInputViewStatusOnMainSync(
-                () -> assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            verifyInputViewStatusOnMainSync(
+                    () -> assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */))
+                            .isTrue(),
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        // Simulate connecting a hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+            // Simulate connecting a hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        // Simulate a fake configuration change to avoid triggering the recreation of TestActivity.
-        mInputMethodService.getResources().getConfiguration().orientation =
-                Configuration.ORIENTATION_LANDSCAPE;
+            // Simulate a fake configuration change to avoid the recreation of TestActivity.
+            config.orientation = Configuration.ORIENTATION_LANDSCAPE;
 
-        verifyInputViewStatusOnMainSync(() -> mInputMethodService.onConfigurationChanged(
-                mInputMethodService.getResources().getConfiguration()),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            verifyInputViewStatusOnMainSync(
+                    () -> mInputMethodService.onConfigurationChanged(config),
+                    EVENT_CONFIG,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is still shown after a configuration change")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
-     * This checks that an implicit show request followed by connecting a hard keyboard
+     * This checks that an implicit show request followed by connecting a hardware keyboard
      * and a configuration change, does not trigger IMS#onFinishInputView,
      * but results in the IME being hidden.
      *
-     * With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
+     * <p>With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
      * will be redirected to InsetsController#{show,hide}. Therefore, we will lose flags like
      * SHOW_IMPLICIT.
      */
     @Test
     @RequiresFlagsDisabled(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)
-    public void testShowSoftInputImplicitly_thenConfigurationChanged() throws Exception {
+    public void testShowSoftInputImplicitly_thenConfigurationChanged() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        // Start with no hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_NOKEYS;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            // Start with no hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_NOKEYS;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        verifyInputViewStatusOnMainSync(() -> assertThat(
-                mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT)).isTrue(),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            verifyInputViewStatusOnMainSync(() -> assertThat(
+                            mActivity.showImeWithInputMethodManager(
+                                    InputMethodManager.SHOW_IMPLICIT)).isTrue(),
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        // Simulate connecting a hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+            // Simulate connecting a hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        // Simulate a fake configuration change to avoid triggering the recreation of TestActivity.
-        mInputMethodService.getResources().getConfiguration().orientation =
-                Configuration.ORIENTATION_LANDSCAPE;
+            // Simulate a fake configuration change to avoid the recreation of TestActivity.
+            config.orientation = Configuration.ORIENTATION_LANDSCAPE;
 
-        // Normally, IMS#onFinishInputView will be called when finishing the input view by the user.
-        // But if IMS#hideWindow is called when receiving a new configuration change, we don't
-        // expect that it's user-driven to finish the lifecycle of input view with
-        // IMS#onFinishInputView, because the input view will be re-initialized according to the
-        // last #mShowInputRequested state. So in this case we treat the input view as still alive.
-        verifyInputViewStatusOnMainSync(() -> mInputMethodService.onConfigurationChanged(
-                mInputMethodService.getResources().getConfiguration()),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            // Normally, IMS#onFinishInputView will be called when finishing the input view by
+            // the user. But if IMS#hideWindow is called when receiving a new configuration change,
+            // we don't expect that it's user-driven to finish the lifecycle of input view with
+            // IMS#onFinishInputView, because the input view will be re-initialized according
+            // to the last #mShowInputRequested state. So in this case we treat the input view as
+            // still alive.
+            verifyInputViewStatusOnMainSync(
+                    () -> mInputMethodService.onConfigurationChanged(config),
+                    EVENT_CONFIG,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is not shown after a configuration change")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
@@ -583,38 +709,48 @@
      * (i.e. the implicit show request is treated as explicit).
      */
     @Test
-    public void testShowSoftInputExplicitly_thenShowSoftInputImplicitly_withHardKeyboard()
-            throws Exception {
+    public void testShowSoftInputExplicitly_thenShowSoftInputImplicitly_withHardKeyboard() {
         setShowImeWithHardKeyboard(false /* enabled */);
 
-        // Simulate connecting a hard keyboard.
-        mInputMethodService.getResources().getConfiguration().keyboard =
-                Configuration.KEYBOARD_QWERTY;
-        mInputMethodService.getResources().getConfiguration().hardKeyboardHidden =
-                Configuration.HARDKEYBOARDHIDDEN_YES;
+        final var config = mInputMethodService.getResources().getConfiguration();
+        final var initialConfig = new Configuration(config);
+        try {
+            // Simulate connecting a hardware keyboard.
+            config.keyboard = Configuration.KEYBOARD_QWERTY;
+            config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
 
-        // Explicit show request.
-        verifyInputViewStatusOnMainSync(() -> assertThat(
-                        mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            // Explicit show request.
+            verifyInputViewStatusOnMainSync(() -> assertThat(
+                            mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        // Implicit show request.
-        verifyInputViewStatusOnMainSync(() -> assertThat(
-                mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_IMPLICIT)).isTrue(),
-                false /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            // Implicit show request.
+            verifyInputViewStatusOnMainSync(() -> assertThat(
+                            mActivity.showImeWithInputMethodManager(
+                                    InputMethodManager.SHOW_IMPLICIT)).isTrue(),
+                    EVENT_SHOW,
+                    false /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is still shown")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
 
-        // Simulate a fake configuration change to avoid triggering the recreation of TestActivity.
-        // This should now consider the implicit show request, but keep the state from the
-        // explicit show request, and thus not hide the keyboard.
-        verifyInputViewStatusOnMainSync(() -> mInputMethodService.onConfigurationChanged(
-                        mInputMethodService.getResources().getConfiguration()),
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            // Simulate a fake configuration change to avoid the recreation of TestActivity.
+            // This should now consider the implicit show request, but keep the state from the
+            // explicit show request, and thus not hide the IME.
+            verifyInputViewStatusOnMainSync(
+                    () -> mInputMethodService.onConfigurationChanged(config),
+                    EVENT_CONFIG,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is still shown after a configuration change")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
+        } finally {
+            mInputMethodService.getResources()
+                    .updateConfiguration(initialConfig, null /* metrics */, null /* compat */);
+        }
     }
 
     /**
@@ -622,40 +758,45 @@
      * and then a hide not always request, still results in the IME being shown
      * (i.e. the explicit show request retains the forced state).
      *
-     * With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
+     * <p>With the refactor in b/298172246, all calls from InputMethodManager#{show,hide}SoftInput
      * will be redirected to InsetsController#{show,hide}. Therefore, we will lose flags like
      * HIDE_NOT_ALWAYS.
      */
     @Test
     @RequiresFlagsDisabled(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)
-    public void testShowSoftInputForced_testShowSoftInputExplicitly_thenHideSoftInputNotAlways()
-            throws Exception {
+    public void testShowSoftInputForced_testShowSoftInputExplicitly_thenHideSoftInputNotAlways() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         verifyInputViewStatusOnMainSync(() -> assertThat(
                 mActivity.showImeWithInputMethodManager(InputMethodManager.SHOW_FORCED)).isTrue(),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
         verifyInputViewStatusOnMainSync(() -> assertThat(
                         mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue(),
+                EVENT_SHOW,
                 false /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is still shown")
+                .that(mInputMethodService.isInputViewShown()).isTrue();
 
-        verifyInputViewStatusOnMainSync(() ->
-                        mActivity.hideImeWithInputMethodManager(InputMethodManager.HIDE_NOT_ALWAYS),
+        verifyInputViewStatusOnMainSync(() -> assertThat(
+                        mActivity.hideImeWithInputMethodManager(InputMethodManager.HIDE_NOT_ALWAYS))
+                        .isTrue(),
+                EVENT_HIDE,
                 false /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is still shown after HIDE_NOT_ALWAYS")
+                .that(mInputMethodService.isInputViewShown()).isTrue();
     }
 
     /**
      * This checks that the IME fullscreen mode state is updated after changing orientation.
      */
     @Test
-    public void testFullScreenMode() throws Exception {
+    public void testFullScreenMode() {
         setShowImeWithHardKeyboard(true /* enabled */);
 
         Log.i(TAG, "Set orientation natural");
@@ -679,13 +820,13 @@
      * then the IME caption bar is also not created.
      */
     @Test
-    public void testNoNavigationBar_thenImeNoCaptionBar() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeFalse("Must not have a navigation bar", hasNavigationBar);
+    public void testNoNavigationBar_thenImeNoCaptionBar() {
+        assumeFalse("Must not have a navigation bar", hasNavigationBar());
 
-        assertEquals(Insets.NONE, mInputMethodService.getWindow().getWindow().getDecorView()
-                .getRootWindowInsets().getInsetsIgnoringVisibility(captionBar()));
+        assertWithMessage("No IME caption bar insets")
+                .that(mInputMethodService.getWindow().getWindow().getDecorView()
+                        .getRootWindowInsets().getInsetsIgnoringVisibility(captionBar()))
+                .isEqualTo(Insets.NONE);
     }
 
     /**
@@ -693,75 +834,73 @@
      * when the IME does draw the IME navigation bar.
      */
     @Test
-    public void testShowHideImeNavigationBar_doesDrawImeNavBar() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeTrue("Must have a navigation bar", hasNavigationBar);
+    public void testShowHideImeNavigationBar_doesDrawImeNavBar() {
+        assumeTrue("Must have a navigation bar", hasNavigationBar());
 
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // Show IME
         verifyInputViewStatusOnMainSync(
                 () -> {
-                    mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(
-                            InputMethodNavButtonFlags.IME_DRAWS_IME_NAV_BAR
-                                    | InputMethodNavButtonFlags.SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN
-                    );
-                    assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue();
+                    setDrawsImeNavBarAndSwitcherButton(true /* enabled */);
+                    mActivity.showImeWithWindowInsetsController();
                 },
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
-        assertThat(mInputMethodService.isImeNavigationBarShownForTesting()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME navigation bar is initially shown")
+                .that(mInputMethodService.isImeNavigationBarShownForTesting()).isTrue();
 
         // Try to hide IME nav bar
-        mInstrumentation.runOnMainSync(() -> mInputMethodService.getWindow().getWindow()
-                .getInsetsController().hide(captionBar()));
+        mInstrumentation.runOnMainSync(() -> setShowImeNavigationBar(false /* show */));
         mInstrumentation.waitForIdleSync();
-        assertThat(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
+        assertWithMessage("IME navigation bar is not shown after hide request")
+                .that(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
 
         // Try to show IME nav bar
-        mInstrumentation.runOnMainSync(() -> mInputMethodService.getWindow().getWindow()
-                .getInsetsController().show(captionBar()));
+        mInstrumentation.runOnMainSync(() -> setShowImeNavigationBar(true /* show */));
         mInstrumentation.waitForIdleSync();
-        assertThat(mInputMethodService.isImeNavigationBarShownForTesting()).isTrue();
+        assertWithMessage("IME navigation bar is shown after show request")
+                .that(mInputMethodService.isImeNavigationBarShownForTesting()).isTrue();
     }
+
     /**
      * This checks that trying to show and hide the navigation bar has no effect
      * when the IME does not draw the IME navigation bar.
      *
-     * Note: The IME navigation bar is *never* visible in 3 button navigation mode.
+     * <p>Note: The IME navigation bar is *never* visible in 3 button navigation mode.
      */
     @Test
-    public void testShowHideImeNavigationBar_doesNotDrawImeNavBar() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeTrue("Must have a navigation bar", hasNavigationBar);
+    public void testShowHideImeNavigationBar_doesNotDrawImeNavBar() {
+        assumeTrue("Must have a navigation bar", hasNavigationBar());
 
         setShowImeWithHardKeyboard(true /* enabled */);
 
         // Show IME
-        verifyInputViewStatusOnMainSync(() -> {
-            mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(
-                    0 /* navButtonFlags */);
-            assertThat(mActivity.showImeWithInputMethodManager(0 /* flags */)).isTrue();
-        },
+        verifyInputViewStatusOnMainSync(
+                () -> {
+                    setDrawsImeNavBarAndSwitcherButton(false /* enabled */);
+                    mActivity.showImeWithWindowInsetsController();
+                },
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
-        assertThat(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME navigation bar is initially not shown")
+                .that(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
 
         // Try to hide IME nav bar
-        mInstrumentation.runOnMainSync(() -> mInputMethodService.getWindow().getWindow()
-                .getInsetsController().hide(captionBar()));
+        mInstrumentation.runOnMainSync(() -> setShowImeNavigationBar(false /* show */));
         mInstrumentation.waitForIdleSync();
-        assertThat(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
+        assertWithMessage("IME navigation bar is not shown after hide request")
+                .that(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
 
         // Try to show IME nav bar
-        mInstrumentation.runOnMainSync(() -> mInputMethodService.getWindow().getWindow()
-                .getInsetsController().show(captionBar()));
+        mInstrumentation.runOnMainSync(() -> setShowImeNavigationBar(true /* show */));
         mInstrumentation.waitForIdleSync();
-        assertThat(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
+        assertWithMessage("IME navigation bar is not shown after show request")
+                .that(mInputMethodService.isImeNavigationBarShownForTesting()).isFalse();
     }
 
     /**
@@ -769,36 +908,33 @@
      */
     @Test
     public void testBackButtonClick() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeTrue("Must have a navigation bar", hasNavigationBar);
-        assumeTrue("Must be in gesture navigation mode", isGestureNavEnabled());
+        assumeTrue("Must have a navigation bar", hasNavigationBar());
+
+        waitUntilActivityReadyForInputInjection(mActivity);
 
         setShowImeWithHardKeyboard(true /* enabled */);
 
-        verifyInputViewStatusOnMainSync(
-                () -> {
-                    // Ensure the IME navigation bar and the IME switch button are drawn.
-                    mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(
-                            InputMethodNavButtonFlags.IME_DRAWS_IME_NAV_BAR
-                                    | InputMethodNavButtonFlags.SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN
-                    );
-                    assertThat(mActivity.showImeWithWindowInsetsController()).isTrue();
-                },
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        try (var ignored = mGestureNavSwitchHelper.withGestureNavigationMode()) {
+            verifyInputViewStatusOnMainSync(
+                    () -> mActivity.showImeWithWindowInsetsController(),
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        final var backButtonUiObject = getUiObjectById(INPUT_METHOD_NAV_BACK_ID);
-        backButtonUiObject.click();
-        mInstrumentation.waitForIdleSync();
+            final var backButton = getUiObject(By.res(INPUT_METHOD_NAV_BACK_ID));
+            backButton.click();
+            mInstrumentation.waitForIdleSync();
 
-        if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
-            // The IME visibility is only sent at the end of the animation. Therefore, we have to
-            // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
-        } else {
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
+                // The IME visibility is only sent at the end of the animation. Therefore, we have
+                // to wait until the visibility was sent to the server and the IME window hidden.
+                eventually(() -> assertWithMessage("IME is not shown")
+                        .that(mInputMethodService.isInputViewShown()).isFalse());
+            } else {
+                assertWithMessage("IME is not shown")
+                        .that(mInputMethodService.isInputViewShown()).isFalse();
+            }
         }
     }
 
@@ -807,36 +943,33 @@
      */
     @Test
     public void testBackButtonLongClick() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeTrue("Must have a navigation bar", hasNavigationBar);
-        assumeTrue("Must be in gesture navigation mode", isGestureNavEnabled());
+        assumeTrue("Must have a navigation bar", hasNavigationBar());
+
+        waitUntilActivityReadyForInputInjection(mActivity);
 
         setShowImeWithHardKeyboard(true /* enabled */);
 
-        verifyInputViewStatusOnMainSync(
-                () -> {
-                    // Ensure the IME navigation bar and the IME switch button are drawn.
-                    mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(
-                            InputMethodNavButtonFlags.IME_DRAWS_IME_NAV_BAR
-                                    | InputMethodNavButtonFlags.SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN
-                    );
-                    assertThat(mActivity.showImeWithWindowInsetsController()).isTrue();
-                },
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        try (var ignored = mGestureNavSwitchHelper.withGestureNavigationMode()) {
+            verifyInputViewStatusOnMainSync(
+                    () -> mActivity.showImeWithWindowInsetsController(),
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        final var backButtonUiObject = getUiObjectById(INPUT_METHOD_NAV_BACK_ID);
-        backButtonUiObject.longClick();
-        mInstrumentation.waitForIdleSync();
+            final var backButton = getUiObject(By.res(INPUT_METHOD_NAV_BACK_ID));
+            backButton.longClick();
+            mInstrumentation.waitForIdleSync();
 
-        if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
-            // The IME visibility is only sent at the end of the animation. Therefore, we have to
-            // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
-        } else {
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
+                // The IME visibility is only sent at the end of the animation. Therefore, we have
+                // to wait until the visibility was sent to the server and the IME window hidden.
+                eventually(() -> assertWithMessage("IME is not shown")
+                        .that(mInputMethodService.isInputViewShown()).isFalse());
+            } else {
+                assertWithMessage("IME is not shown")
+                        .that(mInputMethodService.isInputViewShown()).isFalse();
+            }
         }
     }
 
@@ -846,43 +979,41 @@
      */
     @Test
     public void testImeSwitchButtonClick() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeTrue("Must have a navigation bar", hasNavigationBar);
-        assumeTrue("Must be in gesture navigation mode", isGestureNavEnabled());
+        assumeTrue("Must have a navigation bar", hasNavigationBar());
+
+        waitUntilActivityReadyForInputInjection(mActivity);
 
         setShowImeWithHardKeyboard(true /* enabled */);
 
-        verifyInputViewStatusOnMainSync(
-                () -> {
-                    // Ensure the IME navigation bar and the IME switch button are drawn.
-                    mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(
-                            InputMethodNavButtonFlags.IME_DRAWS_IME_NAV_BAR
-                                    | InputMethodNavButtonFlags.SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN
-                    );
-                    assertThat(mActivity.showImeWithWindowInsetsController()).isTrue();
-                },
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        try (var ignored = mGestureNavSwitchHelper.withGestureNavigationMode()) {
+            verifyInputViewStatusOnMainSync(
+                    () -> {
+                        setDrawsImeNavBarAndSwitcherButton(true /* enabled */);
+                        mActivity.showImeWithWindowInsetsController();
+                    },
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        final var imm = mContext.getSystemService(InputMethodManager.class);
-        final var initialInfo = imm.getCurrentInputMethodInfo();
+            final var initialInfo = mImm.getCurrentInputMethodInfo();
 
-        final var imeSwitchButtonUiObject = getUiObjectById(INPUT_METHOD_NAV_IME_SWITCHER_ID);
-        imeSwitchButtonUiObject.click();
-        mInstrumentation.waitForIdleSync();
+            final var imeSwitcherButton = getUiObject(By.res(INPUT_METHOD_NAV_IME_SWITCHER_ID));
+            imeSwitcherButton.click();
+            mInstrumentation.waitForIdleSync();
 
-        final var newInfo = imm.getCurrentInputMethodInfo();
+            final var newInfo = mImm.getCurrentInputMethodInfo();
 
-        assertWithMessage("Input Method Switcher Menu is shown or input method was switched")
-                .that(isInputMethodPickerShown(imm) || !Objects.equals(initialInfo, newInfo))
-                .isTrue();
+            assertWithMessage("Input Method Switcher Menu is shown or input method was switched")
+                    .that(isInputMethodPickerShown(mImm) || !Objects.equals(initialInfo, newInfo))
+                    .isTrue();
 
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            assertWithMessage("IME is still shown after IME Switcher button was clicked")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
 
-        // Hide the Picker menu before finishing.
-        mUiDevice.pressBack();
+            // Hide the IME Switcher Menu before finishing.
+            mUiDevice.pressBack();
+        }
     }
 
     /**
@@ -890,92 +1021,89 @@
      */
     @Test
     public void testImeSwitchButtonLongClick() throws Exception {
-        boolean hasNavigationBar = WindowManagerGlobal.getWindowManagerService()
-                .hasNavigationBar(mInputMethodService.getDisplayId());
-        assumeTrue("Must have a navigation bar", hasNavigationBar);
-        assumeTrue("Must be in gesture navigation mode", isGestureNavEnabled());
+        assumeTrue("Must have a navigation bar", hasNavigationBar());
+
+        waitUntilActivityReadyForInputInjection(mActivity);
 
         setShowImeWithHardKeyboard(true /* enabled */);
 
-        verifyInputViewStatusOnMainSync(
-                () -> {
-                    // Ensure the IME navigation bar and the IME switch button are drawn.
-                    mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(
-                            InputMethodNavButtonFlags.IME_DRAWS_IME_NAV_BAR
-                                    | InputMethodNavButtonFlags.SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN
-                    );
-                    assertThat(mActivity.showImeWithWindowInsetsController()).isTrue();
-                },
-                true /* expected */,
-                true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        try (var ignored = mGestureNavSwitchHelper.withGestureNavigationMode()) {
+            verifyInputViewStatusOnMainSync(
+                    () -> {
+                        setDrawsImeNavBarAndSwitcherButton(true /* enabled */);
+                        mActivity.showImeWithWindowInsetsController();
+                    },
+                    EVENT_SHOW,
+                    true /* expected */,
+                    true /* inputViewStarted */);
+            assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        final var imm = mContext.getSystemService(InputMethodManager.class);
+            final var imeSwitcherButton = getUiObject(By.res(INPUT_METHOD_NAV_IME_SWITCHER_ID));
+            imeSwitcherButton.longClick();
+            mInstrumentation.waitForIdleSync();
 
-        final var imeSwitchButtonUiObject = getUiObjectById(INPUT_METHOD_NAV_IME_SWITCHER_ID);
-        imeSwitchButtonUiObject.longClick();
-        mInstrumentation.waitForIdleSync();
+            assertWithMessage("Input Method Switcher Menu is shown")
+                    .that(isInputMethodPickerShown(mImm)).isTrue();
+            assertWithMessage("IME is still shown after IME Switcher button was long clicked")
+                    .that(mInputMethodService.isInputViewShown()).isTrue();
 
-        assertWithMessage("Input Method Switcher Menu is shown")
-                .that(isInputMethodPickerShown(imm))
-                .isTrue();
-        if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
-            // The IME visibility is only sent at the end of the animation. Therefore, we have to
-            // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
-        } else {
-            assertThat(mInputMethodService.isInputViewShown()).isTrue();
+            // Hide the IME Switcher Menu before finishing.
+            mUiDevice.pressBack();
         }
-
-        // Hide the Picker menu before finishing.
-        mUiDevice.pressBack();
     }
 
-    private void verifyInputViewStatus(
-            Runnable runnable, boolean expected, boolean inputViewStarted)
-            throws InterruptedException {
-        verifyInputViewStatusInternal(runnable, expected, inputViewStarted,
+    private void verifyInputViewStatus(@NonNull Runnable runnable, @Event int event,
+            boolean expected, boolean inputViewStarted) {
+        verifyInputViewStatusInternal(runnable, event, expected, inputViewStarted,
                 false /* runOnMainSync */);
     }
 
-    private void verifyInputViewStatusOnMainSync(
-            Runnable runnable, boolean expected, boolean inputViewStarted)
-            throws InterruptedException {
-        verifyInputViewStatusInternal(runnable, expected, inputViewStarted,
+    private void verifyInputViewStatusOnMainSync(@NonNull Runnable runnable, @Event int event,
+            boolean expected, boolean inputViewStarted) {
+        verifyInputViewStatusInternal(runnable, event, expected, inputViewStarted,
                 true /* runOnMainSync */);
     }
 
     /**
-     * Verifies the status of the Input View after executing the given runnable.
+     * Verifies the status of the Input View after executing the given runnable, and waiting that
+     * the event was either triggered or not, based on the given expectation.
      *
-     * @param runnable the runnable to execute for showing or hiding the IME.
-     * @param expected whether the runnable is expected to trigger the signal.
+     * @param runnable         the runnable to trigger the event
+     * @param event            the event to await.
+     * @param expected         whether the event is expected to be triggered.
      * @param inputViewStarted the expected state of the Input View after executing the runnable.
-     * @param runOnMainSync whether to execute the runnable on the main thread.
+     * @param runOnMainSync    whether to execute the runnable on the main thread.
      */
-    private void verifyInputViewStatusInternal(
-            Runnable runnable, boolean expected, boolean inputViewStarted, boolean runOnMainSync)
-            throws InterruptedException {
-        CountDownLatch signal = new CountDownLatch(1);
-        mInputMethodService.setCountDownLatchForTesting(signal);
-        // Runnable to trigger onStartInputView() / onFinishInputView() / onConfigurationChanged()
-        if (runOnMainSync) {
-            mInstrumentation.runOnMainSync(runnable);
-        } else {
-            runnable.run();
+    private void verifyInputViewStatusInternal(@NonNull Runnable runnable, @Event int event,
+            boolean expected, boolean inputViewStarted, boolean runOnMainSync) {
+        final boolean completed;
+        try {
+            final var latch = new CountDownLatch(1);
+            mInputMethodService.setCountDownLatchForTesting(latch, event);
+            if (runOnMainSync) {
+                mInstrumentation.runOnMainSync(runnable);
+            } else {
+                runnable.run();
+            }
+            mInstrumentation.waitForIdleSync();
+            completed = latch.await(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS);
+        } catch (InterruptedException e) {
+            fail("Interrupted while waiting for latch: " + e.getMessage());
+            return;
+        } finally {
+            mInputMethodService.setCountDownLatchForTesting(null /* latch */, event);
         }
-        mInstrumentation.waitForIdleSync();
-        boolean completed = signal.await(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS);
+
         if (expected && !completed) {
-            fail("Timed out waiting for"
-                    + " onStartInputView() / onFinishInputView() / onConfigurationChanged()");
+            fail("Timed out waiting for " + eventToString(event));
         } else if (!expected && completed) {
-            fail("Unexpected call"
-                    + " onStartInputView() / onFinishInputView() / onConfigurationChanged()");
+            fail("Unexpected call " + eventToString(event));
         }
         // Input is not finished.
-        assertThat(mInputMethodService.getCurrentInputStarted()).isTrue();
-        assertThat(mInputMethodService.getCurrentInputViewStarted()).isEqualTo(inputViewStarted);
+        assertWithMessage("Input connection is still started")
+                .that(mInputMethodService.getCurrentInputStarted()).isTrue();
+        assertWithMessage("IME visibility matches expected")
+                .that(mInputMethodService.getCurrentInputViewStarted()).isEqualTo(inputViewStarted);
     }
 
     private void setOrientation(int orientation) {
@@ -999,86 +1127,116 @@
     /**
      * Verifies the IME fullscreen mode state after executing the given runnable.
      *
-     * @param runnable the runnable to execute for setting the orientation.
-     * @param expected whether the runnable is expected to trigger the signal.
+     * @param runnable            the runnable to execute for setting the orientation.
+     * @param expected            whether the runnable is expected to trigger the signal.
      * @param orientationPortrait whether the orientation is expected to be portrait.
      */
     private void verifyFullscreenMode(@NonNull Runnable runnable, boolean expected,
-            boolean orientationPortrait) throws InterruptedException {
-        verifyInputViewStatus(runnable, expected, false /* inputViewStarted */);
+            boolean orientationPortrait) {
+        verifyInputViewStatus(runnable, EVENT_CONFIG, expected, false /* inputViewStarted */);
         if (expected) {
             // Wait for the TestActivity to be recreated.
-            eventually(() ->
-                    assertThat(TestActivity.getLastCreatedInstance()).isNotEqualTo(mActivity));
+            eventually(() -> assertWithMessage("Activity was re-created after rotation")
+                    .that(TestActivity.getLastCreatedInstance()).isNotEqualTo(mActivity));
             // Get the new TestActivity.
             mActivity = TestActivity.getLastCreatedInstance();
+            assertWithMessage("Re-created activity is not null").that(mActivity).isNotNull();
+            // Wait for the new EditText to be served by InputMethodManager.
+            eventually(() -> assertWithMessage("Has an input connection to the re-created Activity")
+                    .that(mImm.hasActiveInputConnection(mActivity.getEditText())).isTrue());
         }
 
         verifyInputViewStatusOnMainSync(
                 () -> mActivity.showImeWithWindowInsetsController(),
+                EVENT_SHOW,
                 true /* expected */,
                 true /* inputViewStarted */);
-        assertThat(mInputMethodService.isInputViewShown()).isTrue();
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
 
-        assertThat(mInputMethodService.getResources().getConfiguration().orientation)
+        assertWithMessage("IME orientation matches expected")
+                .that(mInputMethodService.getResources().getConfiguration().orientation)
                 .isEqualTo(orientationPortrait
                         ? Configuration.ORIENTATION_PORTRAIT : Configuration.ORIENTATION_LANDSCAPE);
-        EditorInfo editorInfo = mInputMethodService.getCurrentInputEditorInfo();
-        assertThat(editorInfo.imeOptions & EditorInfo.IME_FLAG_NO_FULLSCREEN).isEqualTo(0);
-        assertThat(editorInfo.internalImeOptions & EditorInfo.IME_INTERNAL_FLAG_APP_WINDOW_PORTRAIT)
+        final var editorInfo = mInputMethodService.getCurrentInputEditorInfo();
+        assertWithMessage("IME_FLAG_NO_FULLSCREEN not set")
+                .that(editorInfo.imeOptions & EditorInfo.IME_FLAG_NO_FULLSCREEN).isEqualTo(0);
+        assertWithMessage("IME_INTERNAL_FLAG_APP_WINDOW_PORTRAIT matches expected")
+                .that(editorInfo.internalImeOptions
+                        & EditorInfo.IME_INTERNAL_FLAG_APP_WINDOW_PORTRAIT)
                 .isEqualTo(
                         orientationPortrait ? EditorInfo.IME_INTERNAL_FLAG_APP_WINDOW_PORTRAIT : 0);
-        assertThat(mInputMethodService.onEvaluateFullscreenMode()).isEqualTo(!orientationPortrait);
-        assertThat(mInputMethodService.isFullscreenMode()).isEqualTo(!orientationPortrait);
+        assertWithMessage("onEvaluateFullscreenMode matches orientation")
+                .that(mInputMethodService.onEvaluateFullscreenMode())
+                .isEqualTo(!orientationPortrait);
+        assertWithMessage("isFullscreenMode matches orientation")
+                .that(mInputMethodService.isFullscreenMode()).isEqualTo(!orientationPortrait);
 
         // Hide IME before finishing the run.
         verifyInputViewStatusOnMainSync(
                 () -> mActivity.hideImeWithWindowInsetsController(),
+                EVENT_HIDE,
                 true /* expected */,
                 false /* inputViewStarted */);
 
         if (mFlagsValueProvider.getBoolean(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)) {
             // The IME visibility is only sent at the end of the animation. Therefore, we have to
             // wait until the visibility was sent to the server and the IME window hidden.
-            eventually(() -> assertThat(mInputMethodService.isInputViewShown()).isFalse());
+            eventually(() -> assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse());
         } else {
-            assertThat(mInputMethodService.isInputViewShown()).isFalse();
+            assertWithMessage("IME is not shown")
+                    .that(mInputMethodService.isInputViewShown()).isFalse();
         }
     }
 
-    private void prepareIme() throws Exception {
+    private void prepareIme() {
         executeShellCommand("ime enable " + mInputMethodId);
         executeShellCommand("ime set " + mInputMethodId);
         mInstrumentation.waitForIdleSync();
         Log.i(TAG, "Finish preparing IME");
     }
 
-    private void prepareEditor() {
-        mActivity = TestActivity.start(mInstrumentation);
+    private void prepareActivity() {
+        mActivity = TestActivity.startSync(mInstrumentation);
         Log.i(TAG, "Finish preparing activity with editor.");
     }
 
+    private void waitUntilActivityReadyForInputInjection(@NonNull TestActivity activity) {
+        try {
+            mWmState.waitUntilActivityReadyForInputInjection(activity, mInstrumentation, TAG,
+                    "test: " + mName.getMethodName());
+        } catch (InterruptedException e) {
+            fail("Interrupted while waiting for activity to be ready: " + e.getMessage());
+        }
+    }
+
+    @NonNull
     private String getInputMethodId() {
         return mTargetPackageName + "/" + INPUT_METHOD_SERVICE_NAME;
     }
 
     /**
-     * Sets the value of show_ime_with_hard_keyboard, only if it is different to the default value.
+     * Sets the value of {@link Settings.Secure#SHOW_IME_WITH_HARD_KEYBOARD}, only if it is
+     * different to the current value, and waits for the update to take effect.
      *
-     * @param enabled the value to be set.
+     * @param enable the value to be set.
      */
-    private void setShowImeWithHardKeyboard(boolean enabled) throws IOException {
-        if (mShowImeWithHardKeyboardEnabled != enabled) {
-            executeShellCommand(enabled
+    private void setShowImeWithHardKeyboard(boolean enable) {
+        final boolean currentEnabled =
+                mInputMethodService.getShouldShowImeWithHardKeyboardForTesting();
+        if (currentEnabled != enable) {
+            executeShellCommand(enable
                     ? ENABLE_SHOW_IME_WITH_HARD_KEYBOARD_CMD
                     : DISABLE_SHOW_IME_WITH_HARD_KEYBOARD_CMD);
-            mInstrumentation.waitForIdleSync();
+            eventually(() -> assertWithMessage("showImeWithHardKeyboard updated")
+                    .that(mInputMethodService.getShouldShowImeWithHardKeyboardForTesting())
+                    .isEqualTo(enable));
         }
     }
 
-    private String executeShellCommand(String cmd) throws IOException {
+    private static void executeShellCommand(@NonNull String cmd) {
         Log.i(TAG, "Run command: " + cmd);
-        return SystemUtil.runShellCommandOrThrow(cmd);
+        SystemUtil.runShellCommandOrThrow(cmd);
     }
 
     /**
@@ -1090,31 +1248,51 @@
     }
 
     @NonNull
-    private UiObject2 getUiObjectById(@NonNull String id) {
-        final var uiObject = mUiDevice.wait(
-                Until.findObject(By.res(id)),
+    private UiObject2 getUiObject(@NonNull BySelector bySelector) {
+        final var uiObject = mUiDevice.wait(Until.findObject(bySelector),
                 TimeUnit.SECONDS.toMillis(TIMEOUT_IN_SECONDS));
-        assertThat(uiObject).isNotNull();
+        assertWithMessage("UiObject with " + bySelector + " was found").that(uiObject).isNotNull();
         return uiObject;
     }
 
-    /**
-     * Returns {@code true} if the navigation mode is gesture nav, and {@code false} otherwise.
-     */
-    private boolean isGestureNavEnabled() {
-        return mContext.getResources().getInteger(
-                com.android.internal.R.integer.config_navBarInteractionMode)
-                == WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
+    /** Checks whether the device has a navigation bar on the IME's display. */
+    private boolean hasNavigationBar() {
+        try {
+            return WindowManagerGlobal.getWindowManagerService()
+                    .hasNavigationBar(mInputMethodService.getDisplayId())
+                    && mGestureNavSwitchHelper.hasNavigationBar();
+        } catch (RemoteException e) {
+            fail("Failed to check whether the device has a navigation bar: " + e.getMessage());
+            return false;
+        }
     }
 
-    private void clickOnEditorText() {
-        // Find the editText and click it.
-        UiObject2 editTextUiObject =
-                mUiDevice.wait(
-                        Until.findObject(By.desc(EDIT_TEXT_DESC)),
-                        TimeUnit.SECONDS.toMillis(TIMEOUT_IN_SECONDS));
-        assertThat(editTextUiObject).isNotNull();
-        editTextUiObject.click();
-        mInstrumentation.waitForIdleSync();
+    /**
+     * Manually sets whether the IME draws the IME navigation bar and IME Switcher button,
+     * regardless of the current navigation bar mode.
+     *
+     * <p>Note, neither of these are normally drawn when in three button navigation mode.
+     *
+     * @param enabled whether the IME nav bar and IME Switcher button are drawn.
+     */
+    private void setDrawsImeNavBarAndSwitcherButton(boolean enabled) {
+        final int flags = enabled ? IME_DRAWS_IME_NAV_BAR | SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN : 0;
+        mInputMethodService.getInputMethodInternal().onNavButtonFlagsChanged(flags);
+    }
+
+    /**
+     * Set whether the IME navigation bar should be shown or not.
+     *
+     * <p>Note, this has no effect when the IME does not draw the IME navigation bar.
+     *
+     * @param show whether the IME navigation bar should be shown.
+     */
+    private void setShowImeNavigationBar(boolean show) {
+        final var controller = mInputMethodService.getWindow().getWindow().getInsetsController();
+        if (show) {
+            controller.show(captionBar());
+        } else {
+            controller.hide(captionBar());
+        }
     }
 }
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
index 3af5db9..6af4064 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
@@ -66,6 +66,7 @@
 import com.android.internal.inputmethod.IRemoteAccessibilityInputConnection;
 import com.android.internal.inputmethod.IRemoteInputConnection;
 import com.android.internal.inputmethod.InputBindResult;
+import com.android.internal.protolog.IProtoLogConfigurationService;
 import com.android.internal.view.IInputMethodManager;
 import com.android.server.LocalServices;
 import com.android.server.ServiceThread;
@@ -124,6 +125,7 @@
     @Mock protected IBinder mMockInputMethodBinder;
     @Mock protected IInputManager mMockIInputManager;
     @Mock protected ImeTargetVisibilityPolicy mMockImeTargetVisibilityPolicy;
+    @Mock protected IProtoLogConfigurationService.Stub mMockProtoLogConfigurationService;
 
     protected Context mContext;
     protected MockitoSession mMockingSession;
@@ -186,6 +188,9 @@
                 .when(() -> ServiceManager.getServiceOrThrow(Context.INPUT_METHOD_SERVICE));
         doReturn(mMockIPlatformCompat)
                 .when(() -> ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+        doReturn(mMockProtoLogConfigurationService)
+                .when(() -> ServiceManager.getServiceOrThrow(
+                        Context.PROTOLOG_CONFIGURATION_SERVICE));
 
         // Stubbing out context related methods to avoid the system holding strong references to
         // InputMethodManagerService.
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/Android.bp b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/Android.bp
index 8a12dcd..e2362f7 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/Android.bp
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/Android.bp
@@ -53,6 +53,9 @@
     srcs: [
         "src/com/android/apps/inputmethod/simpleime/ims/*.java",
     ],
+    static_libs: [
+        "androidx.annotation_annotation",
+    ],
     sdk_version: "current",
 }
 
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/AndroidManifest.xml b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/AndroidManifest.xml
index cf7d660..00873de 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/AndroidManifest.xml
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/AndroidManifest.xml
@@ -42,6 +42,7 @@
         <activity android:name="com.android.apps.inputmethod.simpleime.testing.TestActivity"
                   android:exported="false"
                   android:label="TestActivity"
+                  android:configChanges="assetsPaths"
                   android:launchMode="singleInstance"
                   android:excludeFromRecents="true"
                   android:noHistory="true"
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/KeyCodeConstants.java b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/KeyCodeConstants.java
index 990fa24..428ce1f 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/KeyCodeConstants.java
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/KeyCodeConstants.java
@@ -18,51 +18,58 @@
 
 import android.view.KeyEvent;
 
-import java.util.HashMap;
+import androidx.annotation.NonNull;
 
 /** Holder of key codes and their name. */
-public final class KeyCodeConstants {
-    private KeyCodeConstants() {}
+final class KeyCodeConstants {
 
-    static final HashMap<String, Integer> KEY_NAME_TO_CODE_MAP = new HashMap<>();
-
-    static {
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_A", KeyEvent.KEYCODE_A);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_B", KeyEvent.KEYCODE_B);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_C", KeyEvent.KEYCODE_C);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_D", KeyEvent.KEYCODE_D);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_E", KeyEvent.KEYCODE_E);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_F", KeyEvent.KEYCODE_F);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_G", KeyEvent.KEYCODE_G);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_H", KeyEvent.KEYCODE_H);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_I", KeyEvent.KEYCODE_I);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_J", KeyEvent.KEYCODE_J);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_K", KeyEvent.KEYCODE_K);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_L", KeyEvent.KEYCODE_L);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_M", KeyEvent.KEYCODE_M);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_N", KeyEvent.KEYCODE_N);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_O", KeyEvent.KEYCODE_O);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_P", KeyEvent.KEYCODE_P);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_Q", KeyEvent.KEYCODE_Q);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_R", KeyEvent.KEYCODE_R);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_S", KeyEvent.KEYCODE_S);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_T", KeyEvent.KEYCODE_T);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_U", KeyEvent.KEYCODE_U);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_V", KeyEvent.KEYCODE_V);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_W", KeyEvent.KEYCODE_W);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_X", KeyEvent.KEYCODE_X);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_Y", KeyEvent.KEYCODE_Y);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_Z", KeyEvent.KEYCODE_Z);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_SHIFT", KeyEvent.KEYCODE_SHIFT_LEFT);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_DEL", KeyEvent.KEYCODE_DEL);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_SPACE", KeyEvent.KEYCODE_SPACE);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_ENTER", KeyEvent.KEYCODE_ENTER);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_COMMA", KeyEvent.KEYCODE_COMMA);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_PERIOD", KeyEvent.KEYCODE_PERIOD);
-        KEY_NAME_TO_CODE_MAP.put("KEYCODE_TAB", KeyEvent.KEYCODE_TAB);
+    private KeyCodeConstants() {
     }
 
-    public static boolean isAlphaKeyCode(int keyCode) {
+    /**
+     * Returns the keyCode value corresponding to the given keyCode name.
+     *
+     * @param keyCodeName the keyCode name.
+     */
+    static int getKeyCode(@NonNull String keyCodeName) {
+        return switch (keyCodeName) {
+            case "KEYCODE_A" -> KeyEvent.KEYCODE_A;
+            case "KEYCODE_B" -> KeyEvent.KEYCODE_B;
+            case "KEYCODE_C" -> KeyEvent.KEYCODE_C;
+            case "KEYCODE_D" -> KeyEvent.KEYCODE_D;
+            case "KEYCODE_E" -> KeyEvent.KEYCODE_E;
+            case "KEYCODE_F" -> KeyEvent.KEYCODE_F;
+            case "KEYCODE_G" -> KeyEvent.KEYCODE_G;
+            case "KEYCODE_H" -> KeyEvent.KEYCODE_H;
+            case "KEYCODE_I" -> KeyEvent.KEYCODE_I;
+            case "KEYCODE_J" -> KeyEvent.KEYCODE_J;
+            case "KEYCODE_K" -> KeyEvent.KEYCODE_K;
+            case "KEYCODE_L" -> KeyEvent.KEYCODE_L;
+            case "KEYCODE_M" -> KeyEvent.KEYCODE_M;
+            case "KEYCODE_N" -> KeyEvent.KEYCODE_N;
+            case "KEYCODE_O" -> KeyEvent.KEYCODE_O;
+            case "KEYCODE_P" -> KeyEvent.KEYCODE_P;
+            case "KEYCODE_Q" -> KeyEvent.KEYCODE_Q;
+            case "KEYCODE_R" -> KeyEvent.KEYCODE_R;
+            case "KEYCODE_S" -> KeyEvent.KEYCODE_S;
+            case "KEYCODE_T" -> KeyEvent.KEYCODE_T;
+            case "KEYCODE_U" -> KeyEvent.KEYCODE_U;
+            case "KEYCODE_V" -> KeyEvent.KEYCODE_V;
+            case "KEYCODE_W" -> KeyEvent.KEYCODE_W;
+            case "KEYCODE_X" -> KeyEvent.KEYCODE_X;
+            case "KEYCODE_Y" -> KeyEvent.KEYCODE_Y;
+            case "KEYCODE_Z" -> KeyEvent.KEYCODE_Z;
+            case "KEYCODE_SHIFT" -> KeyEvent.KEYCODE_SHIFT_LEFT;
+            case "KEYCODE_DEL" -> KeyEvent.KEYCODE_DEL;
+            case "KEYCODE_SPACE" -> KeyEvent.KEYCODE_SPACE;
+            case "KEYCODE_ENTER" -> KeyEvent.KEYCODE_ENTER;
+            case "KEYCODE_COMMA" -> KeyEvent.KEYCODE_COMMA;
+            case "KEYCODE_PERIOD" -> KeyEvent.KEYCODE_PERIOD;
+            default -> KeyEvent.KEYCODE_UNKNOWN;
+        };
+    }
+
+    static boolean isAlphaKeyCode(int keyCode) {
         return keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z;
     }
 }
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleInputMethodService.java b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleInputMethodService.java
index 48942a3..de9b528 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleInputMethodService.java
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleInputMethodService.java
@@ -20,48 +20,41 @@
 import android.os.SystemClock;
 import android.util.Log;
 import android.view.KeyEvent;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputConnection;
-import android.widget.FrameLayout;
+
+import androidx.annotation.NonNull;
 
 import com.android.apps.inputmethod.simpleime.ims.InputMethodServiceWrapper;
 
-/** The {@link InputMethodService} implementation for SimpeTestIme app. */
-public class SimpleInputMethodService extends InputMethodServiceWrapper {
-    private static final String TAG = "SimpleIMS";
+/** A simple implementation of an {@link InputMethodService}. */
+public final class SimpleInputMethodService extends InputMethodServiceWrapper {
 
-    private FrameLayout mInputView;
+    private static final String TAG = "SimpleIMS";
 
     @Override
     public View onCreateInputView() {
         Log.i(TAG, "onCreateInputView()");
-        mInputView = (FrameLayout) LayoutInflater.from(this).inflate(R.layout.input_view, null);
-        return mInputView;
+        final var simpleKeyboard = new SimpleKeyboardView(this);
+        simpleKeyboard.setKeyPressListener(this::onKeyPress);
+        return simpleKeyboard;
     }
 
-    @Override
-    public void onStartInputView(EditorInfo info, boolean restarting) {
-        super.onStartInputView(info, restarting);
-        mInputView.removeAllViews();
-        SimpleKeyboard keyboard = new SimpleKeyboard(this, R.layout.qwerty_10_9_9);
-        mInputView.addView(keyboard.inflateKeyboardView(LayoutInflater.from(this), mInputView));
-    }
-
-    void handle(String data, int keyboardState) {
-        InputConnection inputConnection = getCurrentInputConnection();
-        Integer keyCode = KeyCodeConstants.KEY_NAME_TO_CODE_MAP.get(data);
-        Log.v(TAG, "keyCode: " + keyCode);
-        if (keyCode != null) {
-            inputConnection.sendKeyEvent(
-                    new KeyEvent(
-                            SystemClock.uptimeMillis(),
-                            SystemClock.uptimeMillis(),
-                            KeyEvent.ACTION_DOWN,
-                            keyCode,
-                            0,
-                            KeyCodeConstants.isAlphaKeyCode(keyCode) ? keyboardState : 0));
+    /**
+     * Called when a key is pressed.
+     *
+     * @param keyCodeName the keycode of the key, as a string.
+     * @param metaState   the flags indicating which meta keys are currently pressed.
+     */
+    private void onKeyPress(@NonNull String keyCodeName, int metaState) {
+        final int keyCode = KeyCodeConstants.getKeyCode(keyCodeName);
+        Log.v(TAG, "onKeyPress: " + keyCode);
+        if (keyCode != KeyEvent.KEYCODE_UNKNOWN) {
+            final var ic = getCurrentInputConnection();
+            if (ic != null) {
+                final var downTime = SystemClock.uptimeMillis();
+                ic.sendKeyEvent(new KeyEvent(downTime, downTime, KeyEvent.ACTION_DOWN, keyCode,
+                        0 /* repeat */, KeyCodeConstants.isAlphaKeyCode(keyCode) ? metaState : 0));
+            }
         }
     }
 }
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleKeyboard.java b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleKeyboard.java
deleted file mode 100644
index b16ec9eb..0000000
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleKeyboard.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2022 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.apps.inputmethod.simpleime;
-
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.SparseArray;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-/** Controls the visible virtual keyboard view. */
-final class SimpleKeyboard {
-    private static final String TAG = "SimpleKeyboard";
-
-    private static final int[] SOFT_KEY_IDS =
-            new int[] {
-                R.id.key_pos_0_0,
-                R.id.key_pos_0_1,
-                R.id.key_pos_0_2,
-                R.id.key_pos_0_3,
-                R.id.key_pos_0_4,
-                R.id.key_pos_0_5,
-                R.id.key_pos_0_6,
-                R.id.key_pos_0_7,
-                R.id.key_pos_0_8,
-                R.id.key_pos_0_9,
-                R.id.key_pos_1_0,
-                R.id.key_pos_1_1,
-                R.id.key_pos_1_2,
-                R.id.key_pos_1_3,
-                R.id.key_pos_1_4,
-                R.id.key_pos_1_5,
-                R.id.key_pos_1_6,
-                R.id.key_pos_1_7,
-                R.id.key_pos_1_8,
-                R.id.key_pos_2_0,
-                R.id.key_pos_2_1,
-                R.id.key_pos_2_2,
-                R.id.key_pos_2_3,
-                R.id.key_pos_2_4,
-                R.id.key_pos_2_5,
-                R.id.key_pos_2_6,
-                R.id.key_pos_shift,
-                R.id.key_pos_del,
-                R.id.key_pos_symbol,
-                R.id.key_pos_comma,
-                R.id.key_pos_space,
-                R.id.key_pos_period,
-                R.id.key_pos_enter,
-            };
-
-    private final SimpleInputMethodService mSimpleInputMethodService;
-    private final int mViewResId;
-    private final SparseArray<TextView> mSoftKeyViews = new SparseArray<>();
-    private View mKeyboardView;
-    private int mKeyboardState;
-
-    SimpleKeyboard(SimpleInputMethodService simpleInputMethodService, int viewResId) {
-        this.mSimpleInputMethodService = simpleInputMethodService;
-        this.mViewResId = viewResId;
-        this.mKeyboardState = 0;
-    }
-
-    View inflateKeyboardView(LayoutInflater inflater, ViewGroup inputView) {
-        mKeyboardView = inflater.inflate(mViewResId, inputView, false);
-        mapSoftKeys();
-        return mKeyboardView;
-    }
-
-    private void mapSoftKeys() {
-        for (int id : SOFT_KEY_IDS) {
-            TextView softKeyView = mKeyboardView.findViewById(id);
-            mSoftKeyViews.put(id, softKeyView);
-            String tagData = softKeyView.getTag() != null ? softKeyView.getTag().toString() : null;
-            softKeyView.setOnClickListener(v -> handle(tagData));
-        }
-    }
-
-    private void handle(String data) {
-        Log.i(TAG, "handle(): " + data);
-        if (TextUtils.isEmpty(data)) {
-            return;
-        }
-        if ("KEYCODE_SHIFT".equals(data)) {
-            handleShift();
-            return;
-        }
-
-        mSimpleInputMethodService.handle(data, mKeyboardState);
-    }
-
-    private void handleShift() {
-        mKeyboardState = toggleShiftState(mKeyboardState);
-        Log.v(TAG, "currentKeyboardState: " + mKeyboardState);
-        boolean isShiftOn = isShiftOn(mKeyboardState);
-        for (int i = 0; i < mSoftKeyViews.size(); i++) {
-            TextView softKeyView = mSoftKeyViews.valueAt(i);
-            softKeyView.setAllCaps(isShiftOn);
-        }
-    }
-
-    private static boolean isShiftOn(int state) {
-        return (state & KeyEvent.META_SHIFT_ON) == KeyEvent.META_SHIFT_ON;
-    }
-
-    private static int toggleShiftState(int state) {
-        return state ^ KeyEvent.META_SHIFT_ON;
-    }
-}
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleKeyboardView.java b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleKeyboardView.java
new file mode 100644
index 0000000..55d1b45
--- /dev/null
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/SimpleKeyboardView.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2022 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.apps.inputmethod.simpleime;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.SparseArray;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import androidx.annotation.AttrRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+/** A simple implementation of a software keyboard view. */
+final class SimpleKeyboardView extends FrameLayout {
+
+    private static final String TAG = "SimpleKeyboard";
+
+    private static final int[] SOFT_KEY_IDS = new int[]{
+            R.id.key_pos_0_0,
+            R.id.key_pos_0_1,
+            R.id.key_pos_0_2,
+            R.id.key_pos_0_3,
+            R.id.key_pos_0_4,
+            R.id.key_pos_0_5,
+            R.id.key_pos_0_6,
+            R.id.key_pos_0_7,
+            R.id.key_pos_0_8,
+            R.id.key_pos_0_9,
+            R.id.key_pos_1_0,
+            R.id.key_pos_1_1,
+            R.id.key_pos_1_2,
+            R.id.key_pos_1_3,
+            R.id.key_pos_1_4,
+            R.id.key_pos_1_5,
+            R.id.key_pos_1_6,
+            R.id.key_pos_1_7,
+            R.id.key_pos_1_8,
+            R.id.key_pos_2_0,
+            R.id.key_pos_2_1,
+            R.id.key_pos_2_2,
+            R.id.key_pos_2_3,
+            R.id.key_pos_2_4,
+            R.id.key_pos_2_5,
+            R.id.key_pos_2_6,
+            R.id.key_pos_shift,
+            R.id.key_pos_del,
+            R.id.key_pos_symbol,
+            R.id.key_pos_comma,
+            R.id.key_pos_space,
+            R.id.key_pos_period,
+            R.id.key_pos_enter,
+    };
+
+    private final SparseArray<TextView> mSoftKeyViews = new SparseArray<>();
+
+    @FunctionalInterface
+    interface KeyPressListener {
+
+        /**
+         * Called when a key is pressed.
+         *
+         * @param keyCodeName the keycode of the key, as a string.
+         * @param metaState   the flags indicating which meta keys are currently pressed.
+         */
+        void onKeyPress(@NonNull String keyCodeName, int metaState);
+    }
+
+    /** A listener to react to key presses. */
+    @Nullable
+    private KeyPressListener mKeyPressListener;
+
+    /** The flags indicating which meta keys are currently pressed. */
+    private int mMetaState;
+
+    SimpleKeyboardView(@NonNull Context context) {
+        this(context, null);
+    }
+
+    SimpleKeyboardView(@NonNull Context context, @Nullable AttributeSet attrs) {
+        this(context, attrs, 0 /* defStyleAttr */);
+    }
+
+    SimpleKeyboardView(@NonNull Context context, @Nullable AttributeSet attrs,
+            @AttrRes int defStyleAttr) {
+        super(context, attrs, defStyleAttr, 0 /* defStyleRes */);
+        LayoutInflater.from(context).inflate(R.layout.qwerty_10_9_9, this, true);
+        mapSoftKeys();
+    }
+
+    /**
+     * Sets the key press listener.
+     *
+     * @param listener the listener to set.
+     */
+    void setKeyPressListener(@NonNull KeyPressListener listener) {
+        mKeyPressListener = listener;
+    }
+
+    /** Maps the soft key ids to their corresponding views, and sets their on click listener. */
+    private void mapSoftKeys() {
+        for (final int id : SOFT_KEY_IDS) {
+            final TextView softKeyView = requireViewById(id);
+            mSoftKeyViews.put(id, softKeyView);
+            final var keyCodeName = softKeyView.getTag() != null
+                    ? softKeyView.getTag().toString() : null;
+            softKeyView.setOnClickListener(v -> onKeyPress(keyCodeName));
+        }
+    }
+
+    /**
+     * Called when a key is pressed.
+     *
+     * @param keyCodeName the keycode of the key, as a string.
+     */
+    private void onKeyPress(@Nullable String keyCodeName) {
+        Log.i(TAG, "onKeyPress: " + keyCodeName);
+        if (TextUtils.isEmpty(keyCodeName)) {
+            return;
+        }
+        if ("KEYCODE_SHIFT".equals(keyCodeName)) {
+            onShiftPress();
+            return;
+        }
+
+        if (mKeyPressListener != null) {
+            mKeyPressListener.onKeyPress(keyCodeName, mMetaState);
+        }
+    }
+
+    /**
+     * Called when the shift key is pressed. This will toggle the capitalization of all the keys.
+     */
+    private void onShiftPress() {
+        mMetaState = toggleShiftState(mMetaState);
+        Log.v(TAG, "onShiftPress, new metaState: " + mMetaState);
+        final boolean isShiftOn = isShiftOn(mMetaState);
+        for (int i = 0; i < mSoftKeyViews.size(); i++) {
+            final TextView softKeyView = mSoftKeyViews.valueAt(i);
+            softKeyView.setAllCaps(isShiftOn);
+        }
+    }
+
+    /**
+     * Checks whether the shift meta key is pressed.
+     *
+     * @param state the flags indicating which meta keys are currently pressed.
+     */
+    private static boolean isShiftOn(int state) {
+        return (state & KeyEvent.META_SHIFT_ON) == KeyEvent.META_SHIFT_ON;
+    }
+
+    /**
+     * Toggles the value of the shift meta key being pressed.
+     *
+     * @param state the flags indicating which meta keys are currently pressed.
+     * @return a new flag state, with the shift meta key value flipped.
+     */
+    private static int toggleShiftState(int state) {
+        return state ^ KeyEvent.META_SHIFT_ON;
+    }
+}
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/ims/InputMethodServiceWrapper.java b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/ims/InputMethodServiceWrapper.java
index 67212b6..3a7abbb 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/ims/InputMethodServiceWrapper.java
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/ims/InputMethodServiceWrapper.java
@@ -21,34 +21,79 @@
 import android.util.Log;
 import android.view.inputmethod.EditorInfo;
 
+import androidx.annotation.IntDef;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.concurrent.CountDownLatch;
 
 /** Wrapper of {@link InputMethodService} to expose interfaces for testing purpose. */
 public class InputMethodServiceWrapper extends InputMethodService {
+
     private static final String TAG = "InputMethodServiceWrapper";
 
-    private static InputMethodServiceWrapper sInputMethodServiceWrapper;
+    /** Last created instance of this wrapper. */
+    @Nullable
+    private static InputMethodServiceWrapper sInstance;
 
-    public static InputMethodServiceWrapper getInputMethodServiceWrapperForTesting() {
-        return sInputMethodServiceWrapper;
-    }
+    /** IME show event ({@link #onStartInputView}). */
+    public static final int EVENT_SHOW = 0;
+
+    /** IME hide event ({@link #onFinishInputView}). */
+    public static final int EVENT_HIDE = 1;
+
+    /** IME configuration change event ({@link #onConfigurationChanged}). */
+    public static final int EVENT_CONFIG = 2;
+
+    /** The type of event that can be waited with a latch. */
+    @IntDef(value = {
+            EVENT_SHOW,
+            EVENT_HIDE,
+            EVENT_CONFIG,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Event {}
+
+    /** The IME event type that the current latch, if any, waits on. */
+    @Event
+    private int mLatchEvent;
 
     private boolean mInputViewStarted;
-    private CountDownLatch mCountDownLatchForTesting;
+
+    /**
+     * @see #setCountDownLatchForTesting
+     */
+    @Nullable
+    private CountDownLatch mCountDownLatch;
+
+    /** Gets the last created instance of this wrapper, if available. */
+    @Nullable
+    public static InputMethodServiceWrapper getInstance() {
+        return sInstance;
+    }
 
     public boolean getCurrentInputViewStarted() {
         return mInputViewStarted;
     }
 
-    public void setCountDownLatchForTesting(CountDownLatch countDownLatchForTesting) {
-        mCountDownLatchForTesting = countDownLatchForTesting;
+    /**
+     * Sets the latch used to wait for the IME event.
+     *
+     * @param latch      the latch to wait on.
+     * @param latchEvent the event to set the latch on.
+     */
+    public void setCountDownLatchForTesting(@Nullable CountDownLatch latch, @Event int latchEvent) {
+        mCountDownLatch = latch;
+        mLatchEvent = latchEvent;
     }
 
     @Override
     public void onCreate() {
         Log.i(TAG, "onCreate()");
         super.onCreate();
-        sInputMethodServiceWrapper = this;
+        sInstance = this;
     }
 
     @Override
@@ -63,8 +108,8 @@
                 + ", restarting=" + restarting);
         super.onStartInputView(info, restarting);
         mInputViewStarted = true;
-        if (mCountDownLatchForTesting != null) {
-            mCountDownLatchForTesting.countDown();
+        if (mCountDownLatch != null && mLatchEvent == EVENT_SHOW) {
+            mCountDownLatch.countDown();
         }
     }
 
@@ -80,8 +125,8 @@
         super.onFinishInputView(finishingInput);
         mInputViewStarted = false;
 
-        if (mCountDownLatchForTesting != null) {
-            mCountDownLatchForTesting.countDown();
+        if (mCountDownLatch != null && mLatchEvent == EVENT_HIDE) {
+            mCountDownLatch.countDown();
         }
     }
 
@@ -96,18 +141,35 @@
         Log.i(TAG, "onConfigurationChanged() " + newConfig);
         super.onConfigurationChanged(newConfig);
 
-        if (mCountDownLatchForTesting != null) {
-            mCountDownLatchForTesting.countDown();
+        if (mCountDownLatch != null && mLatchEvent == EVENT_CONFIG) {
+            mCountDownLatch.countDown();
         }
     }
 
+    /**
+     * Gets the string representation of the IME event that is being waited on.
+     *
+     * @param event the IME event.
+     */
+    @NonNull
+    public static String eventToString(@Event int event) {
+        return switch (event) {
+            case EVENT_SHOW -> "onStartInputView";
+            case EVENT_HIDE -> "onFinishInputView";
+            case EVENT_CONFIG -> "onConfigurationChanged";
+            default -> "unknownEvent";
+        };
+    }
+
+    @NonNull
     private String dumpEditorInfo(EditorInfo info) {
-        var sb = new StringBuilder();
-        sb.append("EditorInfo{packageName=").append(info.packageName);
-        sb.append(" fieldId=").append(info.fieldId);
-        sb.append(" hintText=").append(info.hintText);
-        sb.append(" privateImeOptions=").append(info.privateImeOptions);
-        sb.append("}");
-        return sb.toString();
+        if (info == null) {
+            return "null";
+        }
+        return "EditorInfo{packageName=" + info.packageName
+                + " fieldId=" + info.fieldId
+                + " hintText=" + info.hintText
+                + " privateImeOptions=" + info.privateImeOptions
+                + "}";
     }
 }
diff --git a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/testing/TestActivity.java b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/testing/TestActivity.java
index 37b05ff..eadbac3 100644
--- a/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/testing/TestActivity.java
+++ b/services/tests/InputMethodSystemServerTests/test-apps/SimpleTestIme/src/com/android/apps/inputmethod/simpleime/testing/TestActivity.java
@@ -25,12 +25,12 @@
 import android.os.Bundle;
 import android.util.Log;
 import android.view.WindowInsets;
-import android.view.WindowInsetsController;
 import android.view.WindowManager;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import java.lang.ref.WeakReference;
@@ -42,10 +42,10 @@
  * in the instruments package. More details see {@link
  * Instrumentation#startActivitySync(Intent)}.</>
  */
-public class TestActivity extends Activity {
+public final class TestActivity extends Activity {
+
     private static final String TAG = "TestActivity";
-    private static WeakReference<TestActivity> sLastCreatedInstance =
-            new WeakReference<>(null);
+    private static WeakReference<TestActivity> sLastCreatedInstance = new WeakReference<>(null);
 
     /**
      * Start a new test activity with an editor and wait for it to begin running before returning.
@@ -53,13 +53,13 @@
      * @param instrumentation application instrumentation
      * @return the newly started activity
      */
-    public static TestActivity start(Instrumentation instrumentation) {
-        Intent intent =
-                new Intent()
-                        .setAction(Intent.ACTION_MAIN)
-                        .setClass(instrumentation.getTargetContext(), TestActivity.class)
-                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
-                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+    @NonNull
+    public static TestActivity startSync(@NonNull Instrumentation instrumentation) {
+        final var intent = new Intent()
+                .setAction(Intent.ACTION_MAIN)
+                .setClass(instrumentation.getTargetContext(), TestActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         return (TestActivity) instrumentation.startActivitySync(intent);
     }
 
@@ -70,12 +70,12 @@
     }
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
-        LinearLayout rootView = new LinearLayout(this);
+        final var rootView = new LinearLayout(this);
         mEditText = new EditText(this);
-        mEditText.setContentDescription("Input box");
+        mEditText.setHint("editText");
         rootView.addView(mEditText, new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT));
         rootView.setFitsSystemWindows(true);
         setContentView(rootView);
@@ -83,40 +83,39 @@
         sLastCreatedInstance = new WeakReference<>(this);
     }
 
-    /** Get the last created TestActivity instance. */
-    public static @Nullable TestActivity getLastCreatedInstance() {
+    /** Get the last created TestActivity instance, if available. */
+    @Nullable
+    public static TestActivity getLastCreatedInstance() {
         return sLastCreatedInstance.get();
     }
 
     /** Shows soft keyboard via InputMethodManager. */
     public boolean showImeWithInputMethodManager(int flags) {
-        InputMethodManager imm = getSystemService(InputMethodManager.class);
-        boolean result = imm.showSoftInput(mEditText, flags);
+        final var imm = getSystemService(InputMethodManager.class);
+        final boolean result = imm.showSoftInput(mEditText, flags);
         Log.i(TAG, "showIme() via InputMethodManager, result=" + result);
         return result;
     }
 
     /** Shows soft keyboard via WindowInsetsController. */
-    public boolean showImeWithWindowInsetsController() {
-        WindowInsetsController windowInsetsController = mEditText.getWindowInsetsController();
-        windowInsetsController.show(WindowInsets.Type.ime());
+    public void showImeWithWindowInsetsController() {
+        final var controller = mEditText.getWindowInsetsController();
+        controller.show(WindowInsets.Type.ime());
         Log.i(TAG, "showIme() via WindowInsetsController");
-        return true;
     }
 
     /** Hides soft keyboard via InputMethodManager. */
     public boolean hideImeWithInputMethodManager(int flags) {
-        InputMethodManager imm = getSystemService(InputMethodManager.class);
-        boolean result = imm.hideSoftInputFromWindow(mEditText.getWindowToken(), flags);
+        final var imm = getSystemService(InputMethodManager.class);
+        final boolean result = imm.hideSoftInputFromWindow(mEditText.getWindowToken(), flags);
         Log.i(TAG, "hideIme() via InputMethodManager, result=" + result);
         return result;
     }
 
     /** Hides soft keyboard via WindowInsetsController. */
-    public boolean hideImeWithWindowInsetsController() {
-        WindowInsetsController windowInsetsController = mEditText.getWindowInsetsController();
-        windowInsetsController.hide(WindowInsets.Type.ime());
+    public void hideImeWithWindowInsetsController() {
+        final var controller = mEditText.getWindowInsetsController();
+        controller.hide(WindowInsets.Type.ime());
         Log.i(TAG, "hideIme() via WindowInsetsController");
-        return true;
     }
 }
diff --git a/services/tests/PackageManagerServiceTests/server/src/com/android/server/pm/AppsFilterImplTest.java b/services/tests/PackageManagerServiceTests/server/src/com/android/server/pm/AppsFilterImplTest.java
index 66aaa562..a01df8b 100644
--- a/services/tests/PackageManagerServiceTests/server/src/com/android/server/pm/AppsFilterImplTest.java
+++ b/services/tests/PackageManagerServiceTests/server/src/com/android/server/pm/AppsFilterImplTest.java
@@ -37,6 +37,7 @@
 import android.content.pm.Signature;
 import android.content.pm.SigningDetails;
 import android.content.pm.UserInfo;
+import android.app.PropertyInvalidatedCache;
 import android.os.Build;
 import android.os.Handler;
 import android.os.Message;
@@ -50,6 +51,8 @@
 
 import androidx.annotation.NonNull;
 
+import android.app.ApplicationPackageManager;
+import android.content.pm.PackageManager;
 import com.android.internal.pm.parsing.pkg.PackageImpl;
 import com.android.internal.pm.parsing.pkg.ParsedPackage;
 import com.android.internal.pm.pkg.component.ParsedActivity;
@@ -64,8 +67,10 @@
 import com.android.internal.pm.pkg.parsing.ParsingPackage;
 import com.android.server.om.OverlayReferenceMapper;
 import com.android.server.pm.pkg.AndroidPackage;
+import com.android.server.utils.Watchable;
 import com.android.server.utils.WatchableTester;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -244,6 +249,55 @@
                 (Answer<Boolean>) invocation ->
                         ((AndroidPackage) invocation.getArgument(SYSTEM_USER)).getTargetSdkVersion()
                                 >= Build.VERSION_CODES.R);
+        PropertyInvalidatedCache.setTestMode(true);
+        PackageManager.sApplicationInfoCache.testPropertyName();
+        ApplicationPackageManager.sGetPackagesForUidCache.testPropertyName();
+    }
+
+    @After
+    public void tearDown() {
+        PropertyInvalidatedCache.setTestMode(false);
+    }
+
+    /**
+     * A class to make it easier to verify that PM caches are properly invalidated by
+     * AppsFilterImpl operations.  This extends WatchableTester to test the cache nonces along
+     * with change reporting.
+     */
+    private static class NonceTester extends WatchableTester {
+        // The nonces from caches under consideration.  The no-parameter constructor fetches the
+        // values from the cacches.
+        private static record Nonces(long applicationInfo, long packageInfo) {
+            Nonces() {
+                this(ApplicationPackageManager.sGetPackagesForUidCache.getNonce(),
+                        PackageManager.sApplicationInfoCache.getNonce());
+            }
+        }
+
+        // Track the latest cache nonces.
+        private Nonces mNonces;
+
+        NonceTester(Watchable w, String k) {
+            super(w, k);
+            mNonces = new Nonces();
+        }
+
+        @Override
+        public void verifyChangeReported(String msg) {
+            super.verifyChangeReported(msg);
+            Nonces update = new Nonces();
+            assertTrue(msg, update.applicationInfo != mNonces.applicationInfo);
+            assertTrue(msg, update.packageInfo != mNonces.packageInfo);
+            mNonces = update;
+        }
+
+        @Override
+        public void verifyNoChangeReported(String msg) {
+            super.verifyNoChangeReported(msg);
+            Nonces update = new Nonces();
+            assertTrue(msg, update.applicationInfo == mNonces.applicationInfo);
+            assertTrue(msg, update.packageInfo == mNonces.packageInfo);
+        }
     }
 
     @Test
@@ -1167,7 +1221,7 @@
         final AppsFilterImpl appsFilter =
                 new AppsFilterImpl(mFeatureConfigMock, new String[]{}, /* systemAppsQueryable */
                         false, /* overlayProvider */ null, mMockHandler);
-        final WatchableTester watcher = new WatchableTester(appsFilter, "onChange");
+        final WatchableTester watcher = new NonceTester(appsFilter, "onChange");
         watcher.register();
         simulateAddBasicAndroid(appsFilter);
         watcher.verifyChangeReported("addBasicAndroid");
diff --git a/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java b/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java
index 5393e20..b9cea0c 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java
@@ -388,6 +388,34 @@
                 PORT_C, false);
     }
 
+    /**
+     * Confirm that display is marked as trusted, has own focus, disables steal top focus when it
+     * is listed in com.android.internal.R.array.config_localNotStealTopFocusDisplayPorts.
+     */
+    @Test
+    public void testStealTopFocusDisabledDisplay() throws Exception {
+        setUpDisplay(new FakeDisplay(PORT_A));
+        setUpDisplay(new FakeDisplay(PORT_B));
+        setUpDisplay(new FakeDisplay(PORT_C));
+        updateAvailableDisplays();
+
+        doReturn(new int[]{ PORT_B }).when(mMockedResources).getIntArray(
+                com.android.internal.R.array.config_localNotStealTopFocusDisplayPorts);
+        mAdapter.registerLocked();
+
+        waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS);
+
+        // This should not have the flags
+        assertNotStealTopFocusFlag(mListener.addedDisplays.get(0).getDisplayDeviceInfoLocked(),
+                PORT_A, false);
+        // This should have the flags
+        assertNotStealTopFocusFlag(mListener.addedDisplays.get(1).getDisplayDeviceInfoLocked(),
+                PORT_B, true);
+        // This should not have the flags
+        assertNotStealTopFocusFlag(mListener.addedDisplays.get(2).getDisplayDeviceInfoLocked(),
+                PORT_C, false);
+    }
+
     @Test
     public void testSupportedDisplayModesGetOverriddenWhenDisplayIsUpdated()
             throws InterruptedException {
@@ -452,6 +480,42 @@
     }
 
     /**
+     * Confirm that all local displays are not trusted, do not have their own focus, and do not
+     * steal top focus when config_localNotStealTopFocusDisplayPorts is empty:
+     */
+    @Test
+    public void testDisplayFlagsForNoConfigLocalNotStealTopFocusDisplayPorts() throws Exception {
+        setUpDisplay(new FakeDisplay(PORT_A));
+        setUpDisplay(new FakeDisplay(PORT_C));
+        updateAvailableDisplays();
+
+        // config_localNotStealTopFocusDisplayPorts is null
+        mAdapter.registerLocked();
+
+        waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS);
+
+        // This should not have the flags
+        assertNotStealTopFocusFlag(mListener.addedDisplays.get(0).getDisplayDeviceInfoLocked(),
+                PORT_A, false);
+        // This should not have the flags
+        assertNotStealTopFocusFlag(mListener.addedDisplays.get(1).getDisplayDeviceInfoLocked(),
+                PORT_C, false);
+    }
+
+    private static void assertNotStealTopFocusFlag(
+            DisplayDeviceInfo info, int expectedPort, boolean shouldHaveFlags) {
+        final DisplayAddress.Physical address = (DisplayAddress.Physical) info.address;
+        assertNotNull(address);
+        assertEquals(expectedPort, address.getPort());
+        assertEquals(DISPLAY_MODEL, address.getModel());
+        assertEquals(shouldHaveFlags,
+                (info.flags & DisplayDeviceInfo.FLAG_STEAL_TOP_FOCUS_DISABLED) != 0);
+        assertEquals(shouldHaveFlags, (info.flags & DisplayDeviceInfo.FLAG_OWN_FOCUS) != 0);
+        // display is always trusted since it is created by the system
+        assertEquals(true, (info.flags & DisplayDeviceInfo.FLAG_TRUSTED) != 0);
+    }
+
+    /**
      * Confirm that external display uses physical density.
      */
     @Test
diff --git a/services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java b/services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java
index f154dbc..09ce263 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/mode/DisplayModeDirectorTest.java
@@ -3962,7 +3962,7 @@
         }
 
         @Override
-        public VotesStatsReporter getVotesStatsReporter(boolean refreshRateVotingTelemetryEnabled) {
+        public VotesStatsReporter getVotesStatsReporter() {
             return null;
         }
 
diff --git a/services/tests/dreamservicetests/src/com/android/server/dreams/DreamManagerServiceMockingTest.java b/services/tests/dreamservicetests/src/com/android/server/dreams/DreamManagerServiceMockingTest.java
deleted file mode 100644
index 992b853..0000000
--- a/services/tests/dreamservicetests/src/com/android/server/dreams/DreamManagerServiceMockingTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * 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.dreams;
-
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.app.ActivityManagerInternal;
-import android.content.ContextWrapper;
-import android.content.pm.UserInfo;
-import android.content.res.Resources;
-import android.os.PowerManagerInternal;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-
-import androidx.test.InstrumentationRegistry;
-
-import com.android.internal.util.test.LocalServiceKeeperRule;
-import com.android.server.SystemService;
-import com.android.server.testutils.TestHandler;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
-
-/**
- * Collection of tests for exercising the {@link DreamManagerService} lifecycle.
- */
-public class DreamManagerServiceMockingTest {
-    private ContextWrapper mContextSpy;
-    private Resources mResourcesSpy;
-
-    @Mock
-    private ActivityManagerInternal mActivityManagerInternalMock;
-
-    @Mock
-    private PowerManagerInternal mPowerManagerInternalMock;
-
-    @Mock
-    private UserManager mUserManagerMock;
-
-    @Rule
-    public LocalServiceKeeperRule mLocalServiceKeeperRule = new LocalServiceKeeperRule();
-
-    private TestHandler mTestHandler;
-    private MockitoSession mMockitoSession;
-
-    @Before
-    public void setUp() throws Exception {
-        mTestHandler = new TestHandler(/* callback= */ null);
-        MockitoAnnotations.initMocks(this);
-        mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext()));
-        mResourcesSpy = spy(mContextSpy.getResources());
-        when(mContextSpy.getResources()).thenReturn(mResourcesSpy);
-
-        mLocalServiceKeeperRule.overrideLocalService(
-                ActivityManagerInternal.class, mActivityManagerInternalMock);
-        mLocalServiceKeeperRule.overrideLocalService(
-                PowerManagerInternal.class, mPowerManagerInternalMock);
-
-        when(mContextSpy.getSystemService(UserManager.class)).thenReturn(mUserManagerMock);
-        mMockitoSession = mockitoSession()
-                .initMocks(this)
-                .strictness(Strictness.LENIENT)
-                .mockStatic(Settings.Secure.class)
-                .startMocking();
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        mMockitoSession.finishMocking();
-    }
-
-    private DreamManagerService createService() {
-        return new DreamManagerService(mContextSpy, mTestHandler);
-    }
-
-    @Test
-    public void testSettingsQueryUserChange() {
-        final DreamManagerService service = createService();
-        final SystemService.TargetUser from =
-                new SystemService.TargetUser(mock(UserInfo.class));
-        final SystemService.TargetUser to =
-                new SystemService.TargetUser(mock(UserInfo.class));
-        service.onUserSwitching(from, to);
-        verify(() -> Settings.Secure.getIntForUser(any(),
-                eq(Settings.Secure.SCREENSAVER_ENABLED),
-                anyInt(),
-                eq(UserHandle.USER_CURRENT)));
-    }
-}
diff --git a/services/tests/dreamservicetests/src/com/android/server/dreams/DreamManagerServiceTest.java b/services/tests/dreamservicetests/src/com/android/server/dreams/DreamManagerServiceTest.java
new file mode 100644
index 0000000..4efc258
--- /dev/null
+++ b/services/tests/dreamservicetests/src/com/android/server/dreams/DreamManagerServiceTest.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.dreams;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.ActivityManagerInternal;
+import android.content.BroadcastReceiver;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.os.BatteryManager;
+import android.os.BatteryManagerInternal;
+import android.os.PowerManagerInternal;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.testing.TestableContext;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.internal.util.test.LocalServiceKeeperRule;
+import com.android.server.SystemService;
+import com.android.server.input.InputManagerInternal;
+import com.android.server.testutils.TestHandler;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Test class for {@link DreamManagerService}.
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class DreamManagerServiceTest {
+    private ContextWrapper mContextSpy;
+
+    @Mock
+    private ActivityManagerInternal mActivityManagerInternalMock;
+    @Mock
+    private BatteryManagerInternal mBatteryManagerInternal;
+
+    @Mock
+    private InputManagerInternal mInputManagerInternal;
+    @Mock
+    private PowerManagerInternal mPowerManagerInternalMock;
+
+    @Mock
+    private BatteryManager mBatteryManager;
+    @Mock
+    private UserManager mUserManagerMock;
+
+    @Rule
+    public LocalServiceKeeperRule mLocalServiceKeeperRule = new LocalServiceKeeperRule();
+
+
+    @Rule
+    public final TestableContext mContext = new TestableContext(
+            getInstrumentation().getContext());
+
+    private TestHandler mTestHandler;
+
+    @Before
+    public void setUp() throws Exception {
+        mTestHandler = new TestHandler(/* callback= */ null);
+        MockitoAnnotations.initMocks(this);
+        mContextSpy = spy(mContext);
+
+        mLocalServiceKeeperRule.overrideLocalService(
+                ActivityManagerInternal.class, mActivityManagerInternalMock);
+        mLocalServiceKeeperRule.overrideLocalService(
+                BatteryManagerInternal.class, mBatteryManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(
+                InputManagerInternal.class, mInputManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(
+                PowerManagerInternal.class, mPowerManagerInternalMock);
+
+        when(mContextSpy.getSystemService(BatteryManager.class)).thenReturn(mBatteryManager);
+        when(mContextSpy.getSystemService(UserManager.class)).thenReturn(mUserManagerMock);
+    }
+
+    private DreamManagerService createService() {
+        return new DreamManagerService(mContextSpy, mTestHandler);
+    }
+
+    @Test
+    public void testSettingsQueryUserChange() {
+        // Enable dreams.
+        Settings.Secure.putIntForUser(mContextSpy.getContentResolver(),
+                Settings.Secure.SCREENSAVER_ENABLED, 1,
+                UserHandle.USER_CURRENT);
+
+        // Initialize dream service so settings are read.
+        final DreamManagerService service = createService();
+        service.onBootPhase(SystemService.PHASE_THIRD_PARTY_APPS_CAN_START);
+
+        // Dreams are enabled.
+        assertThat(service.dreamsEnabled()).isTrue();
+
+        // Disable dreams.
+        Settings.Secure.putIntForUser(mContextSpy.getContentResolver(),
+                Settings.Secure.SCREENSAVER_ENABLED, 0,
+                UserHandle.USER_CURRENT);
+
+        // Switch users, dreams are disabled.
+        service.onUserSwitching(null, null);
+        assertThat(service.dreamsEnabled()).isFalse();
+    }
+
+    @Test
+    public void testDreamConditionActive_onDock() {
+        // Enable dreaming on dock.
+        Settings.Secure.putIntForUser(mContextSpy.getContentResolver(),
+                Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1,
+                UserHandle.USER_CURRENT);
+
+        // Initialize service so settings are read.
+        final DreamManagerService service = createService();
+        service.onBootPhase(SystemService.PHASE_THIRD_PARTY_APPS_CAN_START);
+        assertThat(service.dreamConditionActiveInternal()).isFalse();
+
+        // Dock event receiver is registered.
+        ArgumentCaptor<BroadcastReceiver> receiverCaptor = ArgumentCaptor.forClass(
+                BroadcastReceiver.class);
+        verify(mContextSpy).registerReceiver(receiverCaptor.capture(),
+                argThat((arg) -> arg.hasAction(Intent.ACTION_DOCK_EVENT)));
+
+        // Device is docked.
+        Intent dockIntent = new Intent(Intent.ACTION_DOCK_EVENT);
+        dockIntent.putExtra(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_HE_DESK);
+        receiverCaptor.getValue().onReceive(null, dockIntent);
+
+        // Dream condition is active.
+        assertThat(service.dreamConditionActiveInternal()).isTrue();
+    }
+
+    @Test
+    public void testDreamConditionActive_postured() {
+        // Enable dreaming while postured.
+        Settings.Secure.putIntForUser(mContextSpy.getContentResolver(),
+                Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 0,
+                UserHandle.USER_CURRENT);
+        Settings.Secure.putIntForUser(mContextSpy.getContentResolver(),
+                Settings.Secure.SCREENSAVER_ACTIVATE_ON_POSTURED, 1,
+                UserHandle.USER_CURRENT);
+
+        // Initialize service so settings are read.
+        final DreamManagerService service = createService();
+        service.onBootPhase(SystemService.PHASE_THIRD_PARTY_APPS_CAN_START);
+        assertThat(service.dreamConditionActiveInternal()).isFalse();
+
+        // Device is postured.
+        service.setDevicePosturedInternal(true);
+
+        // Dream condition is active.
+        assertThat(service.dreamConditionActiveInternal()).isTrue();
+    }
+
+    @Test
+    public void testDreamConditionActive_charging() {
+        // Enable dreaming while charging only.
+        Settings.Secure.putIntForUser(mContextSpy.getContentResolver(),
+                Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP, 1,
+                UserHandle.USER_CURRENT);
+
+        // Device is charging.
+        when(mBatteryManager.isCharging()).thenReturn(true);
+
+        // Initialize service so settings are read.
+        final DreamManagerService service = createService();
+        service.onBootPhase(SystemService.PHASE_THIRD_PARTY_APPS_CAN_START);
+
+        // Dream condition is active.
+        assertThat(service.dreamConditionActiveInternal()).isTrue();
+    }
+}
diff --git a/services/tests/mockingservicestests/AndroidManifest.xml b/services/tests/mockingservicestests/AndroidManifest.xml
index aa3930a..b509b0f 100644
--- a/services/tests/mockingservicestests/AndroidManifest.xml
+++ b/services/tests/mockingservicestests/AndroidManifest.xml
@@ -52,6 +52,16 @@
         <uses-library android:name="android.test.runner" />
         <activity
             android:name="android.service.games.GameSessionTrampolineActivityTest$TestActivity" />
+        <service android:name="com.android.server.wallpaper.TestWallpaperService"
+            android:label="Test Wallpaper Service"
+            android:exported="true"
+            android:permission="android.permission.BIND_WALLPAPER">
+          <intent-filter>
+            <action android:name="android.service.wallpaper.WallpaperService"/>
+          </intent-filter>
+          <meta-data android:name="android.service.wallpaper"
+              android:resource="@xml/test_wallpaper"/>
+        </service>
     </application>
 
     <instrumentation
diff --git a/services/tests/mockingservicestests/res/xml/test_wallpaper.xml b/services/tests/mockingservicestests/res/xml/test_wallpaper.xml
new file mode 100644
index 0000000..4eed477
--- /dev/null
+++ b/services/tests/mockingservicestests/res/xml/test_wallpaper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2025 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+<wallpaper xmlns:android="http://schemas.android.com/apk/res/android"
+    android:label="Test Wallpaper"
+    android:supportsMultipleDisplays="true" />
diff --git a/services/tests/mockingservicestests/src/com/android/server/StorageManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/StorageManagerServiceTest.java
index 2e4b97e..371b0c9 100644
--- a/services/tests/mockingservicestests/src/com/android/server/StorageManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/StorageManagerServiceTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.spy;
 
+import android.app.PropertyInvalidatedCache;
 import android.content.Context;
 import android.multiuser.Flags;
 import android.os.UserManager;
@@ -75,6 +76,8 @@
 
     @Before
     public void setFixtures() {
+        PropertyInvalidatedCache.disableForTestMode();
+
         // Called when WatchedUserStates is constructed
         doNothing().when(() -> UserManager.invalidateIsUserUnlockedCache());
 
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java
index 1e665c2..409706b 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java
@@ -1550,6 +1550,118 @@
         verifyPendingRecords(queue, List.of(closeSystemDialogs1, closeSystemDialogs2));
     }
 
+    @SuppressWarnings("GuardedBy")
+    @Test
+    public void testDeliveryGroupPolicy_sameAction_multiplePolicies() {
+        // Create a PACKAGE_CHANGED broadcast corresponding to a change in the whole PACKAGE_GREEN
+        // package.
+        final Intent greenPackageChangedIntent = createPackageChangedIntent(
+                getUidForPackage(PACKAGE_GREEN), List.of(PACKAGE_GREEN));
+        // Create delivery group policy such that when there are multiple broadcasts within the
+        // delivery group identified by "com.example.green/10002", only the most recent one
+        // gets delivered and the rest get discarded.
+        final BroadcastOptions optionsMostRecentPolicyForPackageGreen =
+                BroadcastOptions.makeBasic();
+        optionsMostRecentPolicyForPackageGreen.setDeliveryGroupMatchingKey("package_changed",
+                PACKAGE_GREEN + "/" + getUidForPackage(PACKAGE_GREEN));
+        optionsMostRecentPolicyForPackageGreen.setDeliveryGroupPolicy(
+                BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT);
+
+        // Create a PACKAGE_CHANGED broadcast corresponding to a change in the whole PACKAGE_RED
+        // package.
+        final Intent redPackageChangedIntent = createPackageChangedIntent(
+                getUidForPackage(PACKAGE_RED), List.of(PACKAGE_RED));
+        // Create delivery group policy such that when there are multiple broadcasts within the
+        // delivery group identified by "com.example.red/10001", only the most recent one
+        // gets delivered and the rest get discarded.
+        final BroadcastOptions optionsMostRecentPolicyForPackageRed =
+                BroadcastOptions.makeBasic();
+        optionsMostRecentPolicyForPackageRed.setDeliveryGroupMatchingKey("package_changed",
+                PACKAGE_RED + "/" + getUidForPackage(PACKAGE_RED));
+        optionsMostRecentPolicyForPackageRed.setDeliveryGroupPolicy(
+                BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT);
+
+        // Create a PACKAGE_CHANGED broadcast corresponding to a change in some components of
+        // PACKAGE_GREEN package.
+        final Intent greenPackageComponentsChangedIntent1 = createPackageChangedIntent(
+                getUidForPackage(PACKAGE_GREEN),
+                List.of(PACKAGE_GREEN + ".comp1", PACKAGE_GREEN + ".comp2"));
+        final Intent greenPackageComponentsChangedIntent2 = createPackageChangedIntent(
+                getUidForPackage(PACKAGE_GREEN),
+                List.of(PACKAGE_GREEN + ".comp3"));
+        // Create delivery group policy such that when there are multiple broadcasts within the
+        // delivery group identified by "components-com.example.green/10002", merge the extras
+        // within these broadcasts such that only one broadcast is sent and the rest are
+        // discarded. Couple of things to note here:
+        // 1. We are intentionally using a different policy group
+        //    "components-com.example.green/10002" (as opposed to "com.example.green/10002" used
+        //    earlier), because this is corresponding to a change in some particular components,
+        //    rather than a change to the whole package and we want to keep these two types of
+        //    broadcasts independent.
+        // 2. We are using 'extrasMerger' to indicate how we want the extras to be merged. This
+        //    assumes that broadcasts belonging to the group 'components-com.example.green/10002'
+        //    will have the same values for all the extras, except for the one extra
+        //    'EXTRA_CHANGED_COMPONENT_NAME_LIST'. So, we explicitly specify how to merge this
+        //    extra by using 'STRATEGY_ARRAY_APPEND' strategy, which basically indicates that
+        //    the extra values which are arrays should be concatenated.
+        final BundleMerger extrasMerger = new BundleMerger();
+        extrasMerger.setMergeStrategy(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST,
+                BundleMerger.STRATEGY_ARRAY_APPEND);
+        final BroadcastOptions optionsMergedPolicyForPackageGreen = BroadcastOptions.makeBasic();
+        optionsMergedPolicyForPackageGreen.setDeliveryGroupMatchingKey("package_changed",
+                "components-" + PACKAGE_GREEN + "/" + getUidForPackage(PACKAGE_GREEN));
+        optionsMergedPolicyForPackageGreen.setDeliveryGroupPolicy(
+                BroadcastOptions.DELIVERY_GROUP_POLICY_MERGED);
+        optionsMergedPolicyForPackageGreen.setDeliveryGroupExtrasMerger(extrasMerger);
+
+        // Create a PACKAGE_CHANGED broadcast corresponding to a change in some components of
+        // PACKAGE_RED package.
+        final Intent redPackageComponentsChangedIntent = createPackageChangedIntent(
+                getUidForPackage(PACKAGE_RED),
+                List.of(PACKAGE_RED + ".comp1", PACKAGE_RED + ".comp2"));
+        // Create delivery group policy such that when there are multiple broadcasts within the
+        // delivery group identified by "components-com.example.red/10001", merge the extras
+        // within these broadcasts such that only one broadcast is sent and the rest are
+        // discarded.
+        final BroadcastOptions optionsMergedPolicyForPackageRed = BroadcastOptions.makeBasic();
+        optionsMergedPolicyForPackageGreen.setDeliveryGroupMatchingKey("package_changed",
+                "components-" + PACKAGE_RED + "/" + getUidForPackage(PACKAGE_RED));
+        optionsMergedPolicyForPackageRed.setDeliveryGroupPolicy(
+                BroadcastOptions.DELIVERY_GROUP_POLICY_MERGED);
+        optionsMergedPolicyForPackageRed.setDeliveryGroupExtrasMerger(extrasMerger);
+
+        mImpl.enqueueBroadcastLocked(makeBroadcastRecord(greenPackageChangedIntent,
+                optionsMostRecentPolicyForPackageGreen));
+        mImpl.enqueueBroadcastLocked(makeBroadcastRecord(redPackageChangedIntent,
+                optionsMostRecentPolicyForPackageRed));
+        mImpl.enqueueBroadcastLocked(makeBroadcastRecord(greenPackageComponentsChangedIntent1,
+                optionsMergedPolicyForPackageGreen));
+        mImpl.enqueueBroadcastLocked(makeBroadcastRecord(redPackageComponentsChangedIntent,
+                optionsMergedPolicyForPackageRed));
+        // Since this broadcast has DELIVERY_GROUP_MOST_RECENT policy set, the earlier
+        // greenPackageChangedIntent broadcast with the same policy will be discarded.
+        mImpl.enqueueBroadcastLocked(makeBroadcastRecord(greenPackageChangedIntent,
+                optionsMostRecentPolicyForPackageGreen));
+        // Since this broadcast has DELIVERY_GROUP_MERGED policy set, the earlier
+        // greenPackageComponentsChangedIntent1 broadcast with the same policy will be merged
+        // with this one and then will be discarded.
+        mImpl.enqueueBroadcastLocked(makeBroadcastRecord(greenPackageComponentsChangedIntent2,
+                optionsMergedPolicyForPackageGreen));
+
+        final BroadcastProcessQueue queue = mImpl.getProcessQueue(PACKAGE_GREEN,
+                getUidForPackage(PACKAGE_GREEN));
+        // The extra EXTRA_CHANGED_COMPONENT_NAME_LIST values from
+        // greenPackageComponentsChangedIntent1 and
+        // greenPackageComponentsChangedIntent2 broadcasts would be merged, since
+        // STRATEGY_ARRAY_APPEND was used for this extra.
+        final Intent expectedGreenPackageComponentsChangedIntent = createPackageChangedIntent(
+                getUidForPackage(PACKAGE_GREEN), List.of(PACKAGE_GREEN + ".comp3",
+                        PACKAGE_GREEN + ".comp1", PACKAGE_GREEN + ".comp2"));
+        verifyPendingRecords(queue, List.of(redPackageChangedIntent,
+                redPackageComponentsChangedIntent, greenPackageChangedIntent,
+                expectedGreenPackageComponentsChangedIntent));
+    }
+
     private Pair<Intent, BroadcastOptions> createDropboxBroadcast(String tag, long timestampMs,
             int droppedCount) {
         final Intent dropboxEntryAdded = new Intent(DropBoxManager.ACTION_DROPBOX_ENTRY_ADDED);
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
index d203de5..fa58475 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
@@ -142,6 +142,9 @@
                 }, mProcessDependencies);
         LocalServices.removeServiceForTest(PackageManagerInternal.class);
         LocalServices.addService(PackageManagerInternal.class, mPackageManagerInt);
+
+        mCachedAppOptimizerUnderTest.init();
+        mCachedAppOptimizerUnderTest.mCompactStatsManager.reinit();
     }
 
     @After
@@ -168,7 +171,6 @@
 
     @Test
     public void init_setsDefaults() {
-        mCachedAppOptimizerUnderTest.init();
         synchronized (mCachedAppOptimizerUnderTest.mPhenotypeFlagLock) {
             assertThat(mCachedAppOptimizerUnderTest.useCompaction()).isEqualTo(
                     CachedAppOptimizer.DEFAULT_USE_COMPACTION);
@@ -304,7 +306,6 @@
         assertThat(mCachedAppOptimizerUnderTest.useCompaction()).isEqualTo(
                 CachedAppOptimizer.DEFAULT_USE_COMPACTION);
         // When we call init and change some the flag value...
-        mCachedAppOptimizerUnderTest.init();
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                 CachedAppOptimizer.KEY_USE_COMPACTION, "true", false);
@@ -331,7 +332,6 @@
         // The freezer DeviceConfig property is read at boot only
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER_NATIVE_BOOT,
                 CachedAppOptimizer.KEY_USE_FREEZER, "true", false);
-        mCachedAppOptimizerUnderTest.init();
         assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isTrue();
         mCountDown = new CountDownLatch(1);
 
@@ -363,7 +363,6 @@
     public void useCompaction_listensToDeviceConfigChangesBadValues() throws InterruptedException {
         assertThat(mCachedAppOptimizerUnderTest.useCompaction()).isEqualTo(
                 CachedAppOptimizer.DEFAULT_USE_COMPACTION);
-        mCachedAppOptimizerUnderTest.init();
 
         // When we push an invalid flag value...
         mCountDown = new CountDownLatch(1);
@@ -392,8 +391,6 @@
 
     @Test
     public void compactThrottle_listensToDeviceConfigChanges() throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override new reasonable throttle values after init...
         mCountDown = new CountDownLatch(8);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -440,8 +437,6 @@
     @Test
     public void compactThrottle_listensToDeviceConfigChangesBadValues()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When one of the throttles is overridden with a bad value...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -526,8 +521,6 @@
 
     @Test
     public void statsdSampleRate_listensToDeviceConfigChanges() throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mCompactStatsdSampleRate with a reasonable value ...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -554,8 +547,6 @@
     @Test
     public void statsdSampleRate_listensToDeviceConfigChangesBadValues()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mCompactStatsdSampleRate with an unreasonable value ...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -580,8 +571,6 @@
     @Test
     public void statsdSampleRate_listensToDeviceConfigChangesOutOfRangeValues()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mCompactStatsdSampleRate with an value outside of [0..1]...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -624,8 +613,6 @@
     @Test
     public void fullCompactionRssThrottleKb_listensToDeviceConfigChanges()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mStatsdSampleRate with a reasonable value ...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -641,8 +628,6 @@
     @Test
     public void fullCompactionRssThrottleKb_listensToDeviceConfigChangesBadValues()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mStatsdSampleRate with an unreasonable value ...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -666,8 +651,6 @@
     @Test
     public void fullCompactionDeltaRssThrottleKb_listensToDeviceConfigChanges()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mStatsdSampleRate with a reasonable value ...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -684,8 +667,6 @@
     @Test
     public void fullCompactionDeltaRssThrottleKb_listensToDeviceConfigChangesBadValues()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
-
         // When we override mStatsdSampleRate with an unreasonable value ...
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -709,7 +690,6 @@
     @Test
     public void procStateThrottle_listensToDeviceConfigChanges()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
         mCountDown = new CountDownLatch(1);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                 CachedAppOptimizer.KEY_COMPACT_PROC_STATE_THROTTLE, "1,2,3", false);
@@ -726,7 +706,6 @@
     @Test
     public void procStateThrottle_listensToDeviceConfigChangesBadValues()
             throws InterruptedException {
-        mCachedAppOptimizerUnderTest.init();
 
         Set<Integer> expected = new HashSet<>();
         for (String s : TextUtils.split(
@@ -774,7 +753,6 @@
     public void processWithDeltaRSSTooSmall_notFullCompacted() throws Exception {
         // Initialize CachedAppOptimizer and set flags to (1) enable compaction, (2) set RSS
         // throttle to 12000.
-        mCachedAppOptimizerUnderTest.init();
         setFlag(CachedAppOptimizer.KEY_USE_COMPACTION, "true", true);
         setFlag(CachedAppOptimizer.KEY_COMPACT_FULL_DELTA_RSS_THROTTLE_KB, "12000", false);
         initActivityManagerService();
@@ -810,9 +788,10 @@
                 false);
         waitForHandler();
         // THEN process IS compacted.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();
-        valuesAfter = mCachedAppOptimizerUnderTest.mLastCompactionStats.get(
-                pid).getRssAfterCompaction();
+        assertThat(mCachedAppOptimizerUnderTest.mCompactStatsManager.getLastCompactionStats(pid))
+                .isNotNull();
+        valuesAfter = mCachedAppOptimizerUnderTest.mCompactStatsManager.getLastCompactionStats(pid)
+                .getRssAfterCompaction();
         assertThat(valuesAfter).isEqualTo(rssAfter1);
 
         // WHEN delta is below threshold (500).
@@ -828,9 +807,10 @@
         waitForHandler();
         // THEN process IS NOT compacted - values after compaction for process 1 should remain the
         // same as from the last compaction.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();
-        valuesAfter = mCachedAppOptimizerUnderTest.mLastCompactionStats.get(
-                pid).getRssAfterCompaction();
+        assertThat(mCachedAppOptimizerUnderTest.mCompactStatsManager.
+                getLastCompactionStats(pid)).isNotNull();
+        valuesAfter = mCachedAppOptimizerUnderTest.mCompactStatsManager.
+                getLastCompactionStats(pid).getRssAfterCompaction();
         assertThat(valuesAfter).isEqualTo(rssAfter1);
 
         // WHEN delta is above threshold (13000).
@@ -845,9 +825,10 @@
                 false);
         waitForHandler();
         // THEN process IS compacted - values after compaction for process 1 should be updated.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();
-        valuesAfter = mCachedAppOptimizerUnderTest.mLastCompactionStats.get(
-                pid).getRssAfterCompaction();
+        assertThat(mCachedAppOptimizerUnderTest.
+                mCompactStatsManager.getLastCompactionStats(pid)).isNotNull();
+        valuesAfter = mCachedAppOptimizerUnderTest.
+                mCompactStatsManager.getLastCompactionStats(pid).getRssAfterCompaction();
         assertThat(valuesAfter).isEqualTo(rssAfter3);
     }
 
@@ -856,7 +837,7 @@
     public void processWithAnonRSSTooSmall_notFullCompacted() throws Exception {
         // Initialize CachedAppOptimizer and set flags to (1) enable compaction, (2) set RSS
         // throttle to 8000.
-        mCachedAppOptimizerUnderTest.init();
+
         setFlag(CachedAppOptimizer.KEY_USE_COMPACTION, "true", true);
         setFlag(CachedAppOptimizer.KEY_COMPACT_FULL_RSS_THROTTLE_KB, "8000", false);
         initActivityManagerService();
@@ -888,7 +869,8 @@
                 false);
         waitForHandler();
         // THEN process IS NOT compacted.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNull();
+        assertThat(mCachedAppOptimizerUnderTest.
+                mCompactStatsManager.getLastCompactionStats(pid)).isNull();
 
         // GIVEN we simulate RSS memory before above threshold.
         mProcessDependencies.setRss(rssAboveThreshold);
@@ -899,9 +881,10 @@
                 false);
         waitForHandler();
         // THEN process IS compacted.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();
-        long[] valuesAfter = mCachedAppOptimizerUnderTest.mLastCompactionStats.get(
-                pid).getRssAfterCompaction();
+        assertThat(mCachedAppOptimizerUnderTest.
+                mCompactStatsManager.getLastCompactionStats(pid)).isNotNull();
+        long[] valuesAfter = mCachedAppOptimizerUnderTest.mCompactStatsManager.
+                getLastCompactionStats(pid).getRssAfterCompaction();
         assertThat(valuesAfter).isEqualTo(rssAboveThresholdAfter);
     }
 
@@ -910,7 +893,6 @@
     public void processWithOomAdjTooSmall_notFullCompacted() throws Exception {
         // Initialize CachedAppOptimizer and set flags to (1) enable compaction, (2) set Min and
         // Max OOM_Adj throttles.
-        mCachedAppOptimizerUnderTest.init();
         setFlag(CachedAppOptimizer.KEY_USE_COMPACTION, "true", true);
         setFlag(CachedAppOptimizer.KEY_COMPACT_THROTTLE_MIN_OOM_ADJ, Long.toString(920), true);
         setFlag(CachedAppOptimizer.KEY_COMPACT_THROTTLE_MAX_OOM_ADJ, Long.toString(950), true);
@@ -934,9 +916,10 @@
         mCachedAppOptimizerUnderTest.onProcessFrozen(processRecord);
         waitForHandler();
         // THEN process IS compacted.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();
-        long[] valuesAfter = mCachedAppOptimizerUnderTest.mLastCompactionStats
-                .get(pid)
+        assertThat(mCachedAppOptimizerUnderTest.mCompactStatsManager
+                .getLastCompactionStats(pid)).isNotNull();
+        long[] valuesAfter = mCachedAppOptimizerUnderTest.mCompactStatsManager
+                .getLastCompactionStats(pid)
                 .getRssAfterCompaction();
         assertThat(valuesAfter).isEqualTo(rssAfter);
     }
@@ -944,7 +927,7 @@
     @SuppressWarnings("GuardedBy")
     @Test
     public void process_forceCompacted() throws Exception {
-        mCachedAppOptimizerUnderTest.init();
+
         setFlag(CachedAppOptimizer.KEY_USE_COMPACTION, "true", true);
         setFlag(CachedAppOptimizer.KEY_COMPACT_THROTTLE_MIN_OOM_ADJ, Long.toString(920), true);
         setFlag(CachedAppOptimizer.KEY_COMPACT_THROTTLE_MAX_OOM_ADJ, Long.toString(950), true);
@@ -970,7 +953,8 @@
                 false);
         waitForHandler();
         // the process is not compacted
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNull();
+        assertThat(mCachedAppOptimizerUnderTest.mCompactStatsManager.
+                getLastCompactionStats(pid)).isNull();
 
         // Compact process some
         mCachedAppOptimizerUnderTest.compactApp(processRecord,
@@ -978,7 +962,8 @@
                 false);
         waitForHandler();
         // the process is not compacted
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNull();
+        assertThat(mCachedAppOptimizerUnderTest.mCompactStatsManager
+                .getLastCompactionStats(pid)).isNull();
 
         processRecord.mState.setSetAdj(100);
         processRecord.mState.setCurAdj(100);
@@ -989,9 +974,10 @@
                 true);
         waitForHandler();
         // then process is compacted.
-        assertThat(mCachedAppOptimizerUnderTest.mLastCompactionStats.get(pid)).isNotNull();
+        assertThat(mCachedAppOptimizerUnderTest
+                .mCompactStatsManager.getLastCompactionStats(pid)).isNotNull();
 
-        mCachedAppOptimizerUnderTest.mLastCompactionStats.clear();
+        mCachedAppOptimizerUnderTest.mCompactStatsManager.getLastCompactionStats().clear();
 
         if (CachedAppOptimizer.ENABLE_SHARED_AND_CODE_COMPACT) {
             // We force a some compaction
diff --git a/services/tests/mockingservicestests/src/com/android/server/backup/SystemBackupAgentTest.java b/services/tests/mockingservicestests/src/com/android/server/backup/SystemBackupAgentTest.java
index 86bf203..409b114 100644
--- a/services/tests/mockingservicestests/src/com/android/server/backup/SystemBackupAgentTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/backup/SystemBackupAgentTest.java
@@ -27,6 +27,7 @@
 import android.content.pm.PackageManager;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.ArraySet;
@@ -73,6 +74,7 @@
     }
 
     @Test
+    @EnableFlags(com.android.hardware.input.Flags.FLAG_ENABLE_BACKUP_AND_RESTORE_FOR_INPUT_GESTURES)
     public void onCreate_systemUser_addsAllHelpers() {
         UserHandle userHandle = new UserHandle(UserHandle.USER_SYSTEM);
         when(mUserManagerMock.isProfile()).thenReturn(false);
@@ -94,10 +96,12 @@
                         "app_gender",
                         "companion",
                         "system_gender",
-                        "display");
+                        "display",
+                        "input");
     }
 
     @Test
+    @EnableFlags(com.android.hardware.input.Flags.FLAG_ENABLE_BACKUP_AND_RESTORE_FOR_INPUT_GESTURES)
     public void onCreate_systemUser_slicesDisabled_addsAllNonSlicesHelpers() {
         UserHandle userHandle = new UserHandle(UserHandle.USER_SYSTEM);
         when(mUserManagerMock.isProfile()).thenReturn(false);
@@ -120,10 +124,12 @@
                         "app_gender",
                         "companion",
                         "system_gender",
-                        "display");
+                        "display",
+                        "input");
     }
 
     @Test
+    @EnableFlags(com.android.hardware.input.Flags.FLAG_ENABLE_BACKUP_AND_RESTORE_FOR_INPUT_GESTURES)
     public void onCreate_profileUser_addsProfileEligibleHelpers() {
         UserHandle userHandle = new UserHandle(NON_SYSTEM_USER_ID);
         when(mUserManagerMock.isProfile()).thenReturn(true);
@@ -143,6 +149,7 @@
     }
 
     @Test
+    @EnableFlags(com.android.hardware.input.Flags.FLAG_ENABLE_BACKUP_AND_RESTORE_FOR_INPUT_GESTURES)
     public void onCreate_nonSystemUser_addsNonSystemEligibleHelpers() {
         UserHandle userHandle = new UserHandle(NON_SYSTEM_USER_ID);
         when(mUserManagerMock.isProfile()).thenReturn(false);
@@ -162,7 +169,8 @@
                         "companion",
                         "app_gender",
                         "system_gender",
-                        "display");
+                        "display",
+                        "input");
     }
 
     @Test
diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/JobStatusTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/JobStatusTest.java
index 86101cf..2cd105b 100644
--- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/JobStatusTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/JobStatusTest.java
@@ -86,6 +86,8 @@
     private static final double DELTA = 0.00001;
     private static final String TEST_PACKAGE = "job.test.package";
     private static final ComponentName TEST_JOB_COMPONENT = new ComponentName(TEST_PACKAGE, "test");
+    private static final String SOURCE_PACKAGE = "com.android.frameworks.mockingservicestests";
+    private static final int SOURCE_USER_ID = 0;
 
     private static final Uri IMAGES_MEDIA_URI = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
     private static final Uri VIDEO_MEDIA_URI = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
@@ -1342,6 +1344,35 @@
         assertFalse(job.readinessStatusWithConstraint(CONSTRAINT_FLEXIBLE, false));
     }
 
+    @Test
+    public void testJobName_NoTagNoNamespace() {
+        final JobInfo jobInfo = new JobInfo.Builder(101, new ComponentName("foo", "bar")).build();
+        JobStatus jobStatus = createJobStatus(jobInfo, null, -1, null, null);
+        assertEquals("foo/bar", jobStatus.getBatteryName());
+    }
+
+    @Test
+    public void testJobName_NoTagWithNamespace() {
+        final JobInfo jobInfo = new JobInfo.Builder(101, new ComponentName("foo", "bar")).build();
+        JobStatus jobStatus = createJobStatus(jobInfo, null, -1, "TestNamespace", null);
+        assertEquals("@TestNamespace@foo/bar", jobStatus.getBatteryName());
+    }
+
+    @Test
+    public void testJobName_WithTagNoNamespace() {
+        final JobInfo jobInfo = new JobInfo.Builder(101, new ComponentName("foo", "bar")).build();
+        JobStatus jobStatus = createJobStatus(jobInfo, SOURCE_PACKAGE, 0, null, "TestTag");
+        assertEquals("TestTag:foo", jobStatus.getBatteryName());
+    }
+
+    @Test
+    public void testJobName_WithTagAndNamespace() {
+        final JobInfo jobInfo = new JobInfo.Builder(101, new ComponentName("foo", "bar")).build();
+        JobStatus jobStatus = createJobStatus(jobInfo, SOURCE_PACKAGE, 0,
+                "TestNamespace", "TestTag");
+        assertEquals("@TestNamespace@TestTag:foo", jobStatus.getBatteryName());
+    }
+
     private void markExpeditedQuotaApproved(JobStatus job, boolean isApproved) {
         if (job.isRequestedExpeditedJob()) {
             job.setExpeditedJobQuotaApproved(sElapsedRealtimeClock.millis(), isApproved);
@@ -1369,4 +1400,12 @@
         jobStatus.serviceProcessName = "testProcess";
         return jobStatus;
     }
+
+    private static JobStatus createJobStatus(
+            JobInfo job, String packageName, int callingUid, String namespace, String tag) {
+        JobStatus jobStatus = JobStatus.createFromJobInfo(
+                        job, callingUid, packageName, SOURCE_USER_ID, namespace, tag);
+        jobStatus.serviceProcessName = "testProcess";
+        return jobStatus;
+    }
 }
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
index f79cb11..360d6eb 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
@@ -19,6 +19,11 @@
 import static android.content.pm.PackageManager.FEATURE_EMBEDDED;
 import static android.content.pm.PackageManager.FEATURE_LEANBACK;
 import static android.content.pm.PackageManager.FEATURE_WATCH;
+import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION;
+import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES;
+import static android.multiuser.Flags.FLAG_LOGOUT_USER_API;
+import static android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE;
+import static android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE;
 import static android.os.UserManager.DISALLOW_OUTGOING_CALLS;
 import static android.os.UserManager.DISALLOW_SMS;
 import static android.os.UserManager.DISALLOW_USER_SWITCH;
@@ -54,7 +59,6 @@
 import android.content.pm.PackageManagerInternal;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
-import android.multiuser.Flags;
 import android.os.PowerManager;
 import android.os.ServiceSpecificException;
 import android.os.SystemProperties;
@@ -401,15 +405,27 @@
     }
 
     @Test
-    public void testGetBootUser_Headless_ThrowsIfOnlySystemUserExists() throws Exception {
+    public void testGetBootUser_CannotSwitchToHeadlessSystemUser_ThrowsIfOnlySystemUserExists()
+            throws Exception {
         setSystemUserHeadless(true);
         removeNonSystemUsers();
+        mockCanSwitchToHeadlessSystemUser(false);
 
         assertThrows(UserManager.CheckedUserOperationException.class,
                 () -> mUmi.getBootUser(/* waitUntilSet= */ false));
     }
 
     @Test
+    public void testGetBootUser_CanSwitchToHeadlessSystemUser_NoThrowIfOnlySystemUserExists()
+            throws Exception {
+        setSystemUserHeadless(true);
+        removeNonSystemUsers();
+        mockCanSwitchToHeadlessSystemUser(true);
+
+        assertThat(mUmi.getBootUser(/* waitUntilSet= */ false)).isEqualTo(UserHandle.USER_SYSTEM);
+    }
+
+    @Test
     public void testGetPreviousFullUserToEnterForeground() throws Exception {
         addUser(USER_ID);
         setLastForegroundTime(USER_ID, 1_000_000L);
@@ -601,9 +617,8 @@
     }
 
     @Test
+    @EnableFlags({FLAG_ALLOW_PRIVATE_PROFILE, FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
     public void testAutoLockPrivateProfile() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
         int mainUser = mUms.getMainUserId();
         assumeTrue(mUms.canAddPrivateProfile(mainUser));
         UserManagerService mSpiedUms = spy(mUms);
@@ -622,10 +637,12 @@
     }
 
     @Test
+    @EnableFlags({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
+        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
+    })
     public void testAutoLockOnDeviceLockForPrivateProfile() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
         int mainUser = mUms.getMainUserId();
         assumeTrue(mUms.canAddPrivateProfile(mainUser));
         UserManagerService mSpiedUms = spy(mUms);
@@ -645,10 +662,12 @@
     }
 
     @Test
+    @EnableFlags({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
+        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
+    })
     public void testAutoLockOnDeviceLockForPrivateProfile_keyguardUnlocked() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
         assumeTrue(mUms.canAddPrivateProfile(0));
         UserManagerService mSpiedUms = spy(mUms);
         UserInfo privateProfileUser =
@@ -665,10 +684,9 @@
     }
 
     @Test
+    @EnableFlags({FLAG_ALLOW_PRIVATE_PROFILE, FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @DisableFlags(FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE)
     public void testAutoLockOnDeviceLockForPrivateProfile_flagDisabled() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.disableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
         int mainUser = mUms.getMainUserId();
         assumeTrue(mUms.canAddPrivateProfile(mainUser));
         UserManagerService mSpiedUms = spy(mUms);
@@ -687,10 +705,12 @@
     }
 
     @Test
+    @EnableFlags({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
+        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
+    })
     public void testAutoLockAfterInactityForPrivateProfile() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
         int mainUser = mUms.getMainUserId();
         assumeTrue(mUms.canAddPrivateProfile(mainUser));
         UserManagerService mSpiedUms = spy(mUms);
@@ -711,11 +731,12 @@
     }
 
     @Test
+    @EnableFlags({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
+        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
+    })
     public void testSetOrUpdateAutoLockPreference_noPrivateProfile() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
-
         mUms.setOrUpdateAutoLockPreferenceForPrivateProfile(
                 Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY);
 
@@ -726,10 +747,12 @@
     }
 
     @Test
+    @EnableFlags({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
+        FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE
+    })
     public void testSetOrUpdateAutoLockPreference() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
         int mainUser = mUms.getMainUserId();
         assumeTrue(mUms.canAddPrivateProfile(mainUser));
         mUms.createProfileForUserEvenWhenDisallowedWithThrow(PRIVATE_PROFILE_NAME,
@@ -780,10 +803,12 @@
     }
 
     @Test
+    @EnableFlags({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES,
+        android.multiuser.Flags.FLAG_ENABLE_HIDING_PROFILES
+    })
     public void testGetProfileIdsExcludingHidden() {
-        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
-        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_HIDING_PROFILES);
         assumeTrue(mUms.canAddPrivateProfile(0));
         UserInfo privateProfileUser =
                 mUms.createProfileForUserEvenWhenDisallowedWithThrow("TestPrivateProfile",
@@ -794,8 +819,11 @@
     }
 
     @Test
-    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @RequiresFlagsEnabled({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
+    })
     public void testCreatePrivateProfileOnHeadlessSystemUser_shouldAllowCreation() {
         UserManagerService mSpiedUms = spy(mUms);
         assumeTrue(mUms.isHeadlessSystemUserMode());
@@ -807,8 +835,11 @@
     }
 
     @Test
-    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @RequiresFlagsEnabled({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
+    })
     public void testCreatePrivateProfileOnSecondaryUser_shouldNotAllowCreation() {
         assumeTrue(mUms.canAddMoreUsersOfType(USER_TYPE_FULL_SECONDARY));
         UserInfo user = mUms.createUserWithThrow(generateLongString(), USER_TYPE_FULL_SECONDARY, 0);
@@ -819,8 +850,11 @@
     }
 
     @Test
-    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @RequiresFlagsEnabled({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
+    })
     public void testCreatePrivateProfileOnAutoDevices_shouldNotAllowCreation() {
         doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_AUTOMOTIVE), anyInt());
         int mainUser = mUms.getMainUserId();
@@ -831,8 +865,11 @@
     }
 
     @Test
-    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @RequiresFlagsEnabled({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
+    })
     public void testCreatePrivateProfileOnTV_shouldNotAllowCreation() {
         doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_LEANBACK), anyInt());
         int mainUser = mUms.getMainUserId();
@@ -843,8 +880,11 @@
     }
 
     @Test
-    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @RequiresFlagsEnabled({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
+    })
     public void testCreatePrivateProfileOnEmbedded_shouldNotAllowCreation() {
         doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_EMBEDDED), anyInt());
         int mainUser = mUms.getMainUserId();
@@ -855,8 +895,11 @@
     }
 
     @Test
-    @RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
-            Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
+    @RequiresFlagsEnabled({
+        FLAG_ALLOW_PRIVATE_PROFILE,
+        FLAG_BLOCK_PRIVATE_SPACE_CREATION,
+        FLAG_ENABLE_PRIVATE_SPACE_FEATURES
+    })
     public void testCreatePrivateProfileOnWatch_shouldNotAllowCreation() {
         doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_WATCH), anyInt());
         int mainUser = mUms.getMainUserId();
@@ -910,7 +953,7 @@
     }
 
     @Test
-    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
+    @EnableFlags(FLAG_LOGOUT_USER_API)
     public void testGetUserLogoutability_HsumAndInteractiveHeadlessSystem_UserCanLogout()
             throws Exception {
         setSystemUserHeadless(true);
@@ -926,7 +969,7 @@
     }
 
     @Test
-    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
+    @EnableFlags(FLAG_LOGOUT_USER_API)
     public void testGetUserLogoutability_HsumAndNonInteractiveHeadlessSystem_UserCannotLogout()
             throws Exception {
         setSystemUserHeadless(true);
@@ -941,7 +984,7 @@
     }
 
     @Test
-    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
+    @EnableFlags(FLAG_LOGOUT_USER_API)
     public void testGetUserLogoutability_Hsum_SystemUserCannotLogout() throws Exception {
         setSystemUserHeadless(true);
         mockCurrentUser(UserHandle.USER_SYSTEM);
@@ -950,7 +993,7 @@
     }
 
     @Test
-    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
+    @EnableFlags(FLAG_LOGOUT_USER_API)
     public void testGetUserLogoutability_NonHsum_SystemUserCannotLogout() throws Exception {
         setSystemUserHeadless(false);
         mockCurrentUser(UserHandle.USER_SYSTEM);
@@ -960,7 +1003,7 @@
     }
 
     @Test
-    @EnableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
+    @EnableFlags(FLAG_LOGOUT_USER_API)
     public void testGetUserLogoutability_CannotSwitch_CannotLogout() throws Exception {
         setSystemUserHeadless(true);
         addUser(USER_ID);
@@ -973,7 +1016,7 @@
     }
 
     @Test
-    @DisableFlags(android.multiuser.Flags.FLAG_LOGOUT_USER_API)
+    @DisableFlags(FLAG_LOGOUT_USER_API)
     public void testGetUserLogoutability_LogoutDisabled() throws Exception {
         assertThrows(UnsupportedOperationException.class, () -> mUms.getUserLogoutability(USER_ID));
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt b/services/tests/mockingservicestests/src/com/android/server/wallpaper/TestWallpaperService.java
similarity index 62%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
copy to services/tests/mockingservicestests/src/com/android/server/wallpaper/TestWallpaperService.java
index 29335c5..85ea5a0 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardServiceLockNowInteractor.kt
+++ b/services/tests/mockingservicestests/src/com/android/server/wallpaper/TestWallpaperService.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,13 @@
  * limitations under the License.
  */
 
-package com.android.systemui.keyguard.domain.interactor
+package com.android.server.wallpaper;
 
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import android.service.wallpaper.WallpaperService;
 
-val Kosmos.keyguardServiceLockNowInteractor by
-    Kosmos.Fixture { KeyguardServiceLockNowInteractor(backgroundScope = testScope) }
+public final class TestWallpaperService extends WallpaperService {
+    @Override
+    public Engine onCreateEngine() {
+        return new Engine();
+    }
+}
diff --git a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
index ef77a0e..bc04fd9 100644
--- a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
+++ b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
@@ -64,6 +64,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ParceledListSlice;
 import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
 import android.graphics.Color;
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManager.DisplayListener;
@@ -135,6 +136,10 @@
 
     private static final String TAG = "WallpaperManagerServiceTests";
     private static final int DISPLAY_SIZE_DIMENSION = 100;
+
+    private static final ComponentName TEST_WALLPAPER_COMPONENT = ComponentName.createRelative(
+            "com.android.frameworks.mockingservicestests",
+            "com.android.server.wallpaper.TestWallpaperService");
     private static StaticMockitoSession sMockitoSession;
 
     @ClassRule
@@ -143,11 +148,14 @@
 
     private static ComponentName sImageWallpaperComponentName;
     private static ComponentName sDefaultWallpaperComponent;
+    private static WallpaperDescription sDefaultWallpaperDescription;
 
     private static ComponentName sFallbackWallpaperComponentName;
 
     private IPackageManager mIpm = AppGlobals.getPackageManager();
 
+    private Resources mResources = sContext.getResources();
+
     @Mock
     private DisplayManager mDisplayManager;
 
@@ -207,8 +215,11 @@
         } else {
             sContext.addMockService(sDefaultWallpaperComponent, sWallpaperService);
         }
+        sDefaultWallpaperDescription = new WallpaperDescription.Builder().setComponent(
+                sDefaultWallpaperComponent).build();
 
         sContext.addMockService(sImageWallpaperComponentName, sWallpaperService);
+        sContext.addMockService(TEST_WALLPAPER_COMPONENT, sWallpaperService);
         if (sFallbackWallpaperComponentName != null) {
             sContext.addMockService(sFallbackWallpaperComponentName, sWallpaperService);
         }
@@ -245,6 +256,8 @@
         doReturn(displays).when(mDisplayManager).getDisplays();
 
         spyOn(mIpm);
+        spyOn(mResources);
+        doReturn(true).when(mResources).getBoolean(eq(R.bool.config_isDesktopModeSupported));
         mService = new TestWallpaperManagerService(sContext);
         spyOn(mService);
         mService.systemReady();
@@ -479,11 +492,12 @@
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_REMOVE_NEXT_WALLPAPER_COMPONENT)
+    @EnableFlags({Flags.FLAG_REMOVE_NEXT_WALLPAPER_COMPONENT,
+            Flags.FLAG_LIVE_WALLPAPER_CONTENT_HANDLING})
     public void testSaveLoadSettings_withoutWallpaperDescription()
             throws IOException, XmlPullParserException {
         WallpaperData expectedData = mService.getCurrentWallpaperData(FLAG_SYSTEM, 0);
-        expectedData.setComponent(sDefaultWallpaperComponent);
+        expectedData.setDescription(sDefaultWallpaperDescription);
         expectedData.primaryColors = new WallpaperColors(Color.valueOf(Color.RED),
                 Color.valueOf(Color.BLUE), null);
         expectedData.mWallpaperDimAmount = 0.5f;
@@ -519,11 +533,12 @@
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_REMOVE_NEXT_WALLPAPER_COMPONENT)
+    @EnableFlags({Flags.FLAG_REMOVE_NEXT_WALLPAPER_COMPONENT,
+            Flags.FLAG_LIVE_WALLPAPER_CONTENT_HANDLING})
     public void testSaveLoadSettings_withWallpaperDescription()
             throws IOException, XmlPullParserException {
         WallpaperData expectedData = mService.getCurrentWallpaperData(FLAG_SYSTEM, 0);
-        expectedData.setComponent(sDefaultWallpaperComponent);
+        expectedData.setDescription(sDefaultWallpaperDescription);
         PersistableBundle content = new PersistableBundle();
         content.putString("ckey", "cvalue");
         WallpaperDescription description = new WallpaperDescription.Builder()
@@ -551,7 +566,8 @@
     }
 
     @Test
-    @DisableFlags(Flags.FLAG_REMOVE_NEXT_WALLPAPER_COMPONENT)
+    @DisableFlags({Flags.FLAG_REMOVE_NEXT_WALLPAPER_COMPONENT,
+            Flags.FLAG_LIVE_WALLPAPER_CONTENT_HANDLING})
     public void testSaveLoadSettings_legacyNextComponent()
             throws IOException, XmlPullParserException {
         WallpaperData systemWallpaperData = mService.getCurrentWallpaperData(FLAG_SYSTEM, 0);
@@ -1028,35 +1044,33 @@
     }
     // Verify a secondary display removes system decorations ended
 
-    // Test setWallpaperComponent on multiple displays.
-    // GIVEN 3 displays, 0, 2, 3, the new wallpaper is only compatible for display 0 and 3 but not
-    // 2.
-    // WHEN the new wallpaper is set for system and lock via setWallpaperComponent.
+    // Test fallback connection is correctly established for multiple displays after reboot.
+    // GIVEN 3 displays, 0, 2, 3, the wallpaper is only compatible for display 0 and 3 but not 2.
+    // WHEN the device is booted.
     // THEN there are 2 connections in mLastWallpaper and 1 connection in mFallbackWallpaper.
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER)
-    public void setWallpaperComponent_multiDisplays_shouldHaveExpectedConnections() {
-        // Skip if there is no pre-defined default wallpaper component.
-        assumeThat(sDefaultWallpaperComponent,
-                not(CoreMatchers.equalTo(sImageWallpaperComponentName)));
-
-        final int testUserId = USER_SYSTEM;
-        mService.switchUser(testUserId, null);
+    public void deviceBooted_multiDisplays_shouldHaveExpectedConnections() {
         final int incompatibleDisplayId = 2;
         final int compatibleDisplayId = 3;
         setUpDisplays(List.of(DEFAULT_DISPLAY, incompatibleDisplayId, compatibleDisplayId));
         mService.removeWallpaperCompatibleDisplayForTest(incompatibleDisplayId);
 
-        mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
-                FLAG_SYSTEM | FLAG_LOCK, testUserId);
+        final int testUserId = USER_SYSTEM;
+        // After reboot, a switch user triggers the wallpapers initialization.
+        mService.switchUser(testUserId, null);
 
         verifyLastWallpaperData(testUserId, sImageWallpaperComponentName);
         verifyCurrentSystemData(testUserId);
-        assertThat(mService.mLastWallpaper.connection.getConnectedEngineSize()).isEqualTo(2);
         assertThat(mService.mLastWallpaper.connection.containsDisplay(DEFAULT_DISPLAY)).isTrue();
         assertThat(mService.mLastWallpaper.connection.containsDisplay(compatibleDisplayId))
                 .isTrue();
-        assertThat(mService.mFallbackWallpaper.connection.getConnectedEngineSize()).isEqualTo(1);
+        assertThat(mService.mLastWallpaper.connection.containsDisplay(incompatibleDisplayId))
+                .isFalse();
+        assertThat(mService.mFallbackWallpaper.connection.containsDisplay(DEFAULT_DISPLAY))
+                .isFalse();
+        assertThat(mService.mFallbackWallpaper.connection.containsDisplay(compatibleDisplayId))
+                .isFalse();
         assertThat(mService.mFallbackWallpaper.connection.containsDisplay(incompatibleDisplayId))
                 .isTrue();
         assertThat(mService.mLastLockWallpaper).isNull();
@@ -1071,30 +1085,31 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER)
     public void setWallpaperComponent_multiDisplays_displayBecomeCompatible_shouldHaveExpectedConnections() {
-        // Skip if there is no pre-defined default wallpaper component.
-        assumeThat(sDefaultWallpaperComponent,
-                not(CoreMatchers.equalTo(sImageWallpaperComponentName)));
-
-        final int testUserId = USER_SYSTEM;
-        mService.switchUser(testUserId, null);
         final int display2 = 2;
         final int display3 = 3;
         setUpDisplays(List.of(DEFAULT_DISPLAY, display2, display3));
         mService.removeWallpaperCompatibleDisplayForTest(display2);
-        mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
+        final int testUserId = USER_SYSTEM;
+        mService.switchUser(testUserId, null);
+        // Switch to a test wallpaper and then image wallpaper later to simulate a wallpaper change.
+        mService.setWallpaperComponent(TEST_WALLPAPER_COMPONENT, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
-
         mService.addWallpaperCompatibleDisplayForTest(display2);
+
         mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
 
         verifyLastWallpaperData(testUserId, sImageWallpaperComponentName);
         verifyCurrentSystemData(testUserId);
-        assertThat(mService.mLastWallpaper.connection.getConnectedEngineSize()).isEqualTo(3);
         assertThat(mService.mLastWallpaper.connection.containsDisplay(DEFAULT_DISPLAY)).isTrue();
         assertThat(mService.mLastWallpaper.connection.containsDisplay(display2)).isTrue();
         assertThat(mService.mLastWallpaper.connection.containsDisplay(display3)).isTrue();
-        assertThat(mService.mFallbackWallpaper.connection.getConnectedEngineSize()).isEqualTo(0);
+        assertThat(
+                mService.mFallbackWallpaper.connection.containsDisplay(DEFAULT_DISPLAY)).isFalse();
+        assertThat(
+                mService.mFallbackWallpaper.connection.containsDisplay(display2)).isFalse();
+        assertThat(
+                mService.mFallbackWallpaper.connection.containsDisplay(display3)).isFalse();
         assertThat(mService.mLastLockWallpaper).isNull();
     }
 
@@ -1107,28 +1122,27 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER)
     public void setWallpaperComponent_multiDisplays_displayBecomeIncompatible_shouldHaveExpectedConnections() {
-        // Skip if there is no pre-defined default wallpaper component.
-        assumeThat(sDefaultWallpaperComponent,
-                not(CoreMatchers.equalTo(sImageWallpaperComponentName)));
-
-        final int testUserId = USER_SYSTEM;
-        mService.switchUser(testUserId, null);
         final int display2 = 2;
         final int display3 = 3;
         setUpDisplays(List.of(DEFAULT_DISPLAY, display2, display3));
         mService.removeWallpaperCompatibleDisplayForTest(display2);
-        mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
+        final int testUserId = USER_SYSTEM;
+        mService.switchUser(testUserId, null);
+        // Switch to a test wallpaper and then image wallpaper later to simulate a wallpaper change.
+        mService.setWallpaperComponent(TEST_WALLPAPER_COMPONENT, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
-
         mService.removeWallpaperCompatibleDisplayForTest(display3);
+
         mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
 
         verifyLastWallpaperData(testUserId, sImageWallpaperComponentName);
         verifyCurrentSystemData(testUserId);
-        assertThat(mService.mLastWallpaper.connection.getConnectedEngineSize()).isEqualTo(1);
         assertThat(mService.mLastWallpaper.connection.containsDisplay(DEFAULT_DISPLAY)).isTrue();
-        assertThat(mService.mFallbackWallpaper.connection.getConnectedEngineSize()).isEqualTo(2);
+        assertThat(mService.mLastWallpaper.connection.containsDisplay(display2)).isFalse();
+        assertThat(mService.mLastWallpaper.connection.containsDisplay(display3)).isFalse();
+        assertThat(
+                mService.mFallbackWallpaper.connection.containsDisplay(DEFAULT_DISPLAY)).isFalse();
         assertThat(mService.mFallbackWallpaper.connection.containsDisplay(display2)).isTrue();
         assertThat(mService.mFallbackWallpaper.connection.containsDisplay(display3)).isTrue();
         assertThat(mService.mLastLockWallpaper).isNull();
@@ -1143,35 +1157,40 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER)
     public void setWallpaperComponent_systemAndLockWallpapers_multiDisplays_shouldHaveExpectedConnections() {
-        // Skip if there is no pre-defined default wallpaper component.
-        assumeThat(sDefaultWallpaperComponent,
-                not(CoreMatchers.equalTo(sImageWallpaperComponentName)));
-
-        final int testUserId = USER_SYSTEM;
-        mService.switchUser(testUserId, null);
         final int incompatibleDisplayId = 2;
         final int compatibleDisplayId = 3;
         setUpDisplays(List.of(DEFAULT_DISPLAY, incompatibleDisplayId, compatibleDisplayId));
+        final int testUserId = USER_SYSTEM;
+        mService.switchUser(testUserId, null);
+        // Switch to a test wallpaper and then image wallpaper later to simulate a wallpaper change.
+        mService.setWallpaperComponent(TEST_WALLPAPER_COMPONENT, sContext.getOpPackageName(),
+                FLAG_SYSTEM | FLAG_LOCK, testUserId);
         mService.removeWallpaperCompatibleDisplayForTest(incompatibleDisplayId);
 
         mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
                 FLAG_SYSTEM, testUserId);
-        mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
-                FLAG_LOCK, testUserId);
 
         verifyLastWallpaperData(testUserId, sImageWallpaperComponentName);
-        verifyLastLockWallpaperData(testUserId, sImageWallpaperComponentName);
+        verifyLastLockWallpaperData(testUserId, TEST_WALLPAPER_COMPONENT);
         verifyCurrentSystemData(testUserId);
-        assertThat(mService.mLastWallpaper.connection.getConnectedEngineSize()).isEqualTo(2);
+
         assertThat(mService.mLastWallpaper.connection.containsDisplay(DEFAULT_DISPLAY)).isTrue();
         assertThat(mService.mLastWallpaper.connection.containsDisplay(compatibleDisplayId))
                 .isTrue();
-        assertThat(mService.mLastLockWallpaper.connection.getConnectedEngineSize()).isEqualTo(2);
+        assertThat(mService.mLastWallpaper.connection.containsDisplay(incompatibleDisplayId))
+                .isFalse();
+        // mLastLockWallpaper is TEST_WALLPAPER_COMPONENT, which declares external displays support
+        // in the wallpaper metadata.
         assertThat(mService.mLastLockWallpaper.connection.containsDisplay(DEFAULT_DISPLAY))
                 .isTrue();
         assertThat(mService.mLastLockWallpaper.connection.containsDisplay(compatibleDisplayId))
                 .isTrue();
-        assertThat(mService.mFallbackWallpaper.connection.getConnectedEngineSize()).isEqualTo(1);
+        assertThat(mService.mLastLockWallpaper.connection.containsDisplay(incompatibleDisplayId))
+                .isTrue();
+        assertThat(mService.mFallbackWallpaper.connection.containsDisplay(DEFAULT_DISPLAY))
+                .isFalse();
+        assertThat(mService.mFallbackWallpaper.connection.containsDisplay(compatibleDisplayId))
+                .isFalse();
         assertThat(mService.mFallbackWallpaper.connection.containsDisplay(incompatibleDisplayId))
                 .isTrue();
     }
@@ -1276,4 +1295,6 @@
             assertEquals(pfdContents, fileContents);
         }
     }
+
+
 }
diff --git a/services/tests/ondeviceintelligencetests/OWNERS b/services/tests/ondeviceintelligencetests/OWNERS
index a4fc758..d08d34a 100644
--- a/services/tests/ondeviceintelligencetests/OWNERS
+++ b/services/tests/ondeviceintelligencetests/OWNERS
@@ -1,3 +1,2 @@
 shiqing@google.com
 sandeepbandaru@google.com
-shivanker@google.com
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryStatsHistoryIteratorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryStatsHistoryIteratorTest.java
index d6f5036..7e40e6b 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryStatsHistoryIteratorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryStatsHistoryIteratorTest.java
@@ -17,6 +17,7 @@
 package com.android.server.power.stats;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
 import android.os.BatteryManager;
 import android.os.BatteryStats;
@@ -301,6 +302,88 @@
         assertThat(item = iterator.next()).isNull();
     }
 
+    @Test
+    public void batteryLevelAccuracy() {
+        // Check that battery values are recorded correctly throughout their valid ranges:
+        // - Battery level range: [0, 100]
+        // - Voltage and temperature range: [-2**15, 2**15-1] (note: exceeds physical requirements)
+
+        int i16Min = Short.MIN_VALUE;
+        int i16Max = Short.MAX_VALUE;
+        int[][] testValues = {
+                // { level, temperature, voltage }
+
+                // Min/max values
+                {   0,      0,      0 },
+                {   0, i16Min, i16Min },
+                { 100, i16Max, i16Max },
+
+                // Level changes
+                {  0, 0, 0 },
+                { 12, 0, 0 },
+                { 90, 0, 0 },
+                { 34, 0, 0 },
+                { 78, 0, 0 },
+                { 56, 0, 0 },
+
+                // Temperature changes
+                { 0,           0, 0 },
+                { 0, i16Max,      0 }, // Large change to max
+                { 0, i16Max - 12, 0 }, // Small change near max
+                { 0, i16Max - 56, 0 }, // Small change near max
+                { 0, i16Max - 34, 0 }, // Small change near max
+                { 0,           0, 0 }, // Large change to 0
+                { 0,          12, 0 }, // Small change near 0
+                { 0,         -34, 0 }, // Small change near 0
+                { 0,          56, 0 }, // Small change near 0
+                { 0,         -78, 0 }, // Small change near 0
+                { 0, i16Min,      0 }, // Large change to min
+                { 0, i16Min + 12, 0 }, // Small change near min
+                { 0, i16Min + 56, 0 }, // Small change near min
+                { 0, i16Min + 34, 0 }, // Small change near min
+
+                // Voltage changes
+                { 0, 0,            0 },
+                { 0, 0, i16Max       }, // Large change to max
+                { 0, 0, i16Max - 120 }, // Small change near max
+                { 0, 0, i16Max - 560 }, // Small change near max
+                { 0, 0, i16Max - 340 }, // Small change near max
+                { 0, 0,            0 }, // Large change to 0
+                { 0, 0,          120 }, // Small change near 0
+                { 0, 0,         -340 }, // Small change near 0
+                { 0, 0,          560 }, // Small change near 0
+                { 0, 0,         -780 }, // Small change near 0
+                { 0, 0, i16Min       }, // Large change to min
+                { 0, 0, i16Min + 120 }, // Small change near min
+                { 0, 0, i16Min + 560 }, // Small change near min
+                { 0, 0, i16Min + 340 }, // Small change near min
+        };
+
+        for (int[] val : testValues) {
+            mBatteryStats.setBatteryStateLocked(
+                    BatteryManager.BATTERY_STATUS_DISCHARGING,
+                    100, 0, val[0], val[1], val[2], 1000_000, 1000_000, 0, 0, 0, 0);
+        }
+
+        final BatteryStatsHistoryIterator iterator =
+                mBatteryStats.iterateBatteryStatsHistory(0, MonotonicClock.UNDEFINED);
+
+        BatteryStats.HistoryItem item;
+        assertThat(item = iterator.next()).isNotNull();
+        assertThat(item.cmd).isEqualTo((int) BatteryStats.HistoryItem.CMD_RESET);
+
+        for (int i = 0; i < testValues.length; i++) {
+            int[] val = testValues[i];
+            String msg = String.format("Incorrect battery value returned at index %d:", i);
+            assertThat(item = iterator.next()).isNotNull();
+            assertWithMessage(msg).that(item.batteryLevel).isEqualTo(val[0]);
+            assertWithMessage(msg).that(item.batteryTemperature).isEqualTo(val[1]);
+            assertWithMessage(msg).that(item.batteryVoltage).isEqualTo(val[2]);
+        }
+
+        assertThat(item = iterator.next()).isNull();
+    }
+
     private void assertHistoryItem(BatteryStats.HistoryItem item, int command, int eventCode,
             String tag, int uid, int voltageMv, int batteryChargeUah, int batteryLevel,
             long elapsedTimeMs) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java
index 9da89fc..0da7184c 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java
@@ -458,9 +458,9 @@
                         /* includeScreenStateData */ false,
                         /* includePowerStateData */ false,
                         /* minConsumedPowerThreshold */ 0)
-                        .setDischargePercentage(20)
-                        .setDischargedPowerRange(1000, 2000)
-                        .setDischargeDurationMs(1234)
+                        .addDischargePercentage(20)
+                        .addDischargedPowerRange(1000, 2000)
+                        .addDischargeDurationMs(1234)
                         .setStatsStartTimestamp(1000)
                         .setStatsEndTimestamp(20000)
                         .setStatsDuration(10000);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java
index 31ff50f..93fe8d3 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java
@@ -580,7 +580,7 @@
         accumulateBatteryUsageStats(batteryStats, 10000000, 0);
         // Accumulate every 200 bytes of battery history
         accumulateBatteryUsageStats(batteryStats, 200, 2);
-        accumulateBatteryUsageStats(batteryStats, 50, 4);
+        accumulateBatteryUsageStats(batteryStats, 50, 5);
         // Accumulate on every invocation of accumulateBatteryUsageStats
         accumulateBatteryUsageStats(batteryStats, 0, 7);
     }
@@ -617,6 +617,9 @@
 
         assertThat(stats.getStatsStartTimestamp()).isEqualTo(5 * MINUTE_IN_MS);
         assertThat(stats.getStatsEndTimestamp()).isEqualTo(115 * MINUTE_IN_MS);
+        assertThat(stats.getAggregateBatteryConsumer(
+                BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE)
+                .getConsumedPower()).isEqualTo(1200);    // 1_200_000 uAh converted to mAh
         assertBatteryConsumer(stats, 360.0, 60 * MINUTE_IN_MS);
         assertBatteryConsumer(stats, APP_UID, 360.0, 60 * MINUTE_IN_MS);
 
@@ -655,6 +658,9 @@
 
         setTime(10 * MINUTE_IN_MS);
         synchronized (batteryStats) {
+            batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100,
+                    /* plugType */ 0, 90, 72, 3700, 3_600_000, 4_000_000, 0,
+                    10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
             batteryStats.noteFlashlightOnLocked(APP_UID,
                     10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
         }
@@ -663,6 +669,9 @@
 
         setTime(20 * MINUTE_IN_MS);
         synchronized (batteryStats) {
+            batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100,
+                    /* plugType */ 0, 85, 72, 3700, 3_000_000, 4_000_000, 0,
+                    20 * MINUTE_IN_MS, 20 * MINUTE_IN_MS, 20 * MINUTE_IN_MS);
             batteryStats.noteFlashlightOffLocked(APP_UID,
                     20 * MINUTE_IN_MS, 20 * MINUTE_IN_MS);
         }
@@ -682,6 +691,9 @@
 
         setTime(50 * MINUTE_IN_MS);
         synchronized (batteryStats) {
+            batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100,
+                    /* plugType */ 0, 80, 72, 3700, 2_400_000, 4_000_000, 0,
+                    50 * MINUTE_IN_MS, 50 * MINUTE_IN_MS, 50 * MINUTE_IN_MS);
             batteryStats.noteFlashlightOffLocked(APP_UID,
                     50 * MINUTE_IN_MS, 50 * MINUTE_IN_MS);
         }
@@ -719,6 +731,10 @@
         assertThat(stats.getChargeTimeRemainingMs()).isEqualTo(777);
         assertThat(stats.getBatteryCapacity()).isEqualTo(4000);  // from PowerProfile
 
+        assertThat(stats.getAggregateBatteryConsumer(
+                        BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE)
+                .getConsumedPower()).isEqualTo(1200);    // 3_600_000-2_400_000 uAh converted to mAh
+
         // Total: 10 + 20 + 30 = 60
         assertBatteryConsumer(stats, 360.0, 60 * MINUTE_IN_MS);
         assertBatteryConsumer(stats, APP_UID, 360.0, 60 * MINUTE_IN_MS);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
index dd50431..097a60e 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
@@ -327,9 +327,9 @@
                 new BatteryUsageStats.Builder(new String[]{"FOO"}, true,
                         includeScreenState, includePowerState, 0)
                         .setBatteryCapacity(4000)
-                        .setDischargePercentage(20)
-                        .setDischargedPowerRange(1000, 2000)
-                        .setDischargeDurationMs(1234)
+                        .addDischargePercentage(20)
+                        .addDischargedPowerRange(1000, 2000)
+                        .addDischargeDurationMs(1234)
                         .setStatsStartTimestamp(1000)
                         .setStatsEndTimestamp(3000);
 
@@ -371,8 +371,8 @@
         final BatteryUsageStats.Builder builder =
                 new BatteryUsageStats.Builder(customPowerComponentNames,
                         includeProcessStateData, true, true, 0);
-        builder.setDischargePercentage(30)
-                .setDischargedPowerRange(1234, 2345)
+        builder.addDischargePercentage(30)
+                .addDischargedPowerRange(1234, 2345)
                 .setStatsStartTimestamp(2000)
                 .setStatsEndTimestamp(5000);
 
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java b/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java
index d2d8c68..c75cfe6 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/MotionEventInjectorTest.java
@@ -274,7 +274,10 @@
     }
 
     @Test
-    @DisableFlags(FLAG_PREVENT_A11Y_NONTOOL_FROM_INJECTING_INTO_SENSITIVE_VIEWS)
+    @DisableFlags({
+            FLAG_PREVENT_A11Y_NONTOOL_FROM_INJECTING_INTO_SENSITIVE_VIEWS,
+            Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX
+    })
     public void testRegularEvent_afterGestureComplete_shouldPassToNext_withFlagInjectedFromA11y() {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
         injectEventsSync(mLineList, mServiceInterface, LINE_SEQUENCE);
@@ -286,7 +289,10 @@
     }
 
     @Test
-    @EnableFlags(FLAG_PREVENT_A11Y_NONTOOL_FROM_INJECTING_INTO_SENSITIVE_VIEWS)
+    @EnableFlags({
+            FLAG_PREVENT_A11Y_NONTOOL_FROM_INJECTING_INTO_SENSITIVE_VIEWS,
+            Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX
+    })
     public void testRegularEvent_afterGestureComplete_shouldPassToNext_withNoPolicyFlagChanges() {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
         injectEventsSync(mLineList, mServiceInterface, LINE_SEQUENCE);
@@ -299,6 +305,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
     public void testInjectEvents_withRealGestureUnderway_shouldCancelRealAndPassInjected() {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
         mMotionEventInjector.onMotionEvent(mClickDownEvent, mClickDownEvent, 0);
@@ -317,6 +324,24 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
+    public void testInjectEvents_withRealGestureUnderway_shouldNotCancelReal_ShouldPassInjected() {
+        EventStreamTransformation next = attachMockNext(mMotionEventInjector);
+        mMotionEventInjector.onMotionEvent(mClickDownEvent, mClickDownEvent, 0);
+        injectEventsSync(mLineList, mServiceInterface, LINE_SEQUENCE);
+
+        verify(next, times(1)).onMotionEvent(mCaptor1.capture(), mCaptor2.capture(), anyInt());
+        assertThat(mCaptor1.getAllValues().get(0), mIsClickDown);
+        reset(next);
+
+        mMessageCapturingHandler.sendOneMessage(); // Send a motion event
+        verify(next).onMotionEvent(
+                argThat(mIsLineStart), argThat(mIsLineStart),
+                eq(WindowManagerPolicyConstants.FLAG_PASS_TO_USER
+                        | WindowManagerPolicyConstants.FLAG_INJECTED_FROM_ACCESSIBILITY));
+    }
+
+    @Test
     public void testInjectEvents_withRealMouseGestureUnderway_shouldContinueRealAndPassInjected() {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
         MotionEvent mouseEvent = MotionEvent.obtain(mClickDownEvent);
@@ -354,6 +379,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
     public void testOnMotionEvents_openInjectedGestureInProgress_shouldCancelAndNotifyAndPassReal()
             throws RemoteException {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
@@ -369,6 +395,24 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
+    public void testOnMotionEvents_openInjectedGestureInProgress_shouldNotCancel_shouldPassReal()
+            throws RemoteException {
+        EventStreamTransformation next = attachMockNext(mMotionEventInjector);
+        injectEventsSync(mLineList, mServiceInterface, LINE_SEQUENCE);
+        mMessageCapturingHandler.sendOneMessage(); // Send a motion event
+        mMotionEventInjector.onMotionEvent(mClickDownEvent, mClickDownEvent, 0);
+        mMessageCapturingHandler.sendAllMessages();
+
+        verify(next, times(4)).onMotionEvent(mCaptor1.capture(), mCaptor2.capture(), anyInt());
+        assertThat(mCaptor1.getAllValues().get(0), mIsLineStart);
+        assertThat(mCaptor1.getAllValues().get(1), mIsClickDown);
+        assertThat(mCaptor1.getAllValues().get(2), mIsLineMiddle);
+        assertThat(mCaptor1.getAllValues().get(3), mIsLineEnd);
+        verify(mServiceInterface).onPerformGestureResult(LINE_SEQUENCE, true);
+    }
+
+    @Test
     public void
             testOnMotionEvents_fromMouseWithInjectedGestureInProgress_shouldNotCancelAndPassReal()
             throws RemoteException {
@@ -386,6 +430,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
     public void testOnMotionEvents_closedInjectedGestureInProgress_shouldOnlyNotifyAndPassReal()
             throws RemoteException {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
@@ -676,6 +721,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
     public void testContinuedGesture_realGestureArrivesInBetween_getsCanceled()
             throws Exception {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
@@ -710,6 +756,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
     public void testClearEventsOnOtherSource_realGestureInProgress_shouldNotForgetAboutGesture() {
         EventStreamTransformation next = attachMockNext(mMotionEventInjector);
         mMotionEventInjector.onMotionEvent(mClickDownEvent, mClickDownEvent, 0);
@@ -724,6 +771,22 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MOTION_EVENT_INJECTOR_CANCEL_FIX)
+    public void testClearEventsOnOtherSource_shouldNotCancelRealOrInjectedGesture() {
+        EventStreamTransformation next = attachMockNext(mMotionEventInjector);
+        mMotionEventInjector.onMotionEvent(mClickDownEvent, mClickDownEvent, 0);
+        mMotionEventInjector.clearEvents(OTHER_EVENT_SOURCE);
+        injectEventsSync(mLineList, mServiceInterface, LINE_SEQUENCE);
+        mMessageCapturingHandler.sendAllMessages();
+
+        verify(next, times(4)).onMotionEvent(mCaptor1.capture(), mCaptor2.capture(), anyInt());
+        assertThat(mCaptor1.getAllValues().get(0), mIsClickDown);
+        assertThat(mCaptor1.getAllValues().get(1), mIsLineStart);
+        assertThat(mCaptor1.getAllValues().get(2), mIsLineMiddle);
+        assertThat(mCaptor1.getAllValues().get(3), mIsLineEnd);
+    }
+
+    @Test
     public void testOnDestroy_shouldCancelGestures() throws RemoteException {
         mMotionEventInjector.onDestroy();
         injectEventsSync(mLineList, mServiceInterface, LINE_SEQUENCE);
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/OWNERS b/services/tests/servicestests/src/com/android/server/accessibility/OWNERS
index c824c39..c7c23f0 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/OWNERS
+++ b/services/tests/servicestests/src/com/android/server/accessibility/OWNERS
@@ -1,3 +1,6 @@
-# Bug component: 44215
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 44215.
 
 include /core/java/android/view/accessibility/OWNERS
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java
index 457fde8d..0227ef1 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java
@@ -85,7 +85,7 @@
     public void onMotionEvent_lazyInitClickScheduler() {
         assertThat(mController.mClickScheduler).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mClickScheduler).isNotNull();
     }
@@ -94,7 +94,7 @@
     public void onMotionEvent_nonMouseSource_notInitClickScheduler() {
         assertThat(mController.mClickScheduler).isNull();
 
-        injectFakeNonMouseActionDownEvent();
+        injectFakeNonMouseActionHoverMoveEvent();
 
         assertThat(mController.mClickScheduler).isNull();
     }
@@ -103,7 +103,7 @@
     public void onMotionEvent_lazyInitAutoclickSettingsObserver() {
         assertThat(mController.mAutoclickSettingsObserver).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickSettingsObserver).isNotNull();
     }
@@ -113,7 +113,7 @@
     public void onMotionEvent_flagOn_lazyInitAutoclickIndicatorScheduler() {
         assertThat(mController.mAutoclickIndicatorScheduler).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickIndicatorScheduler).isNotNull();
     }
@@ -123,7 +123,7 @@
     public void onMotionEvent_flagOff_notInitAutoclickIndicatorScheduler() {
         assertThat(mController.mAutoclickIndicatorScheduler).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickIndicatorScheduler).isNull();
     }
@@ -133,7 +133,7 @@
     public void onMotionEvent_flagOn_lazyInitAutoclickIndicatorView() {
         assertThat(mController.mAutoclickIndicatorView).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickIndicatorView).isNotNull();
     }
@@ -143,7 +143,7 @@
     public void onMotionEvent_flagOff_notInitAutoclickIndicatorView() {
         assertThat(mController.mAutoclickIndicatorView).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickIndicatorView).isNull();
     }
@@ -153,7 +153,7 @@
     public void onMotionEvent_flagOn_lazyInitAutoclickTypePanelView() {
         assertThat(mController.mAutoclickTypePanel).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickTypePanel).isNotNull();
     }
@@ -163,7 +163,7 @@
     public void onMotionEvent_flagOff_notInitAutoclickTypePanelView() {
         assertThat(mController.mAutoclickTypePanel).isNull();
 
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         assertThat(mController.mAutoclickTypePanel).isNull();
     }
@@ -171,7 +171,7 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onMotionEvent_flagOn_addAutoclickIndicatorViewToWindowManager() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         verify(mMockWindowManager).addView(eq(mController.mAutoclickIndicatorView), any());
     }
@@ -179,7 +179,7 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onDestroy_flagOn_removeAutoclickIndicatorViewToWindowManager() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         mController.onDestroy();
 
@@ -189,7 +189,7 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onDestroy_flagOn_removeAutoclickTypePanelViewToWindowManager() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
         AutoclickTypePanel mockAutoclickTypePanel = mock(AutoclickTypePanel.class);
         mController.mAutoclickTypePanel = mockAutoclickTypePanel;
 
@@ -200,7 +200,7 @@
 
     @Test
     public void onMotionEvent_initClickSchedulerDelayFromSetting() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         int delay =
                 Settings.Secure.getIntForUser(
@@ -214,7 +214,7 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onMotionEvent_flagOn_initCursorAreaSizeFromSetting() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         int size =
                 Settings.Secure.getIntForUser(
@@ -238,7 +238,7 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onKeyEvent_modifierKey_updateMetaStateWhenControllerNotNull() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         int metaState = KeyEvent.META_ALT_ON | KeyEvent.META_META_ON;
         injectFakeKeyEvent(KeyEvent.KEYCODE_ALT_LEFT, metaState);
@@ -250,7 +250,7 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onKeyEvent_modifierKey_cancelAutoClickWhenAdditionalRegularKeyPresssed() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         injectFakeKeyEvent(KeyEvent.KEYCODE_J, KeyEvent.META_ALT_ON);
 
@@ -260,7 +260,7 @@
 
     @Test
     public void onDestroy_clearClickScheduler() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         mController.onDestroy();
 
@@ -269,7 +269,7 @@
 
     @Test
     public void onDestroy_clearAutoclickSettingsObserver() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         mController.onDestroy();
 
@@ -279,21 +279,61 @@
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void onDestroy_flagOn_clearAutoclickIndicatorScheduler() {
-        injectFakeMouseActionDownEvent();
+        injectFakeMouseActionHoverMoveEvent();
 
         mController.onDestroy();
 
         assertThat(mController.mAutoclickIndicatorScheduler).isNull();
     }
 
-    private void injectFakeMouseActionDownEvent() {
-        MotionEvent event = getFakeMotionDownEvent();
+    @Test
+    @DisableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
+    public void onMotionEvent_hoverEnter_doesNotScheduleClick() {
+        injectFakeMouseActionHoverMoveEvent();
+
+        // Send hover enter event.
+        MotionEvent hoverEnter = MotionEvent.obtain(
+                /* downTime= */ 0,
+                /* eventTime= */ 100,
+                /* action= */ MotionEvent.ACTION_HOVER_ENTER,
+                /* x= */ 30f,
+                /* y= */ 0f,
+                /* metaState= */ 0);
+        hoverEnter.setSource(InputDevice.SOURCE_MOUSE);
+        mController.onMotionEvent(hoverEnter, hoverEnter, /* policyFlags= */ 0);
+
+        // Verify there is no pending click.
+        assertThat(mController.mClickScheduler.getIsActiveForTesting()).isFalse();
+    }
+
+    @Test
+    @DisableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
+    public void onMotionEvent_hoverMove_scheduleClick() {
+        injectFakeMouseActionHoverMoveEvent();
+
+        // Send hover move event.
+        MotionEvent hoverMove = MotionEvent.obtain(
+                /* downTime= */ 0,
+                /* eventTime= */ 100,
+                /* action= */ MotionEvent.ACTION_HOVER_MOVE,
+                /* x= */ 30f,
+                /* y= */ 0f,
+                /* metaState= */ 0);
+        hoverMove.setSource(InputDevice.SOURCE_MOUSE);
+        mController.onMotionEvent(hoverMove, hoverMove, /* policyFlags= */ 0);
+
+        // Verify there is a pending click.
+        assertThat(mController.mClickScheduler.getIsActiveForTesting()).isTrue();
+    }
+
+    private void injectFakeMouseActionHoverMoveEvent() {
+        MotionEvent event = getFakeMotionHoverMoveEvent();
         event.setSource(InputDevice.SOURCE_MOUSE);
         mController.onMotionEvent(event, event, /* policyFlags= */ 0);
     }
 
-    private void injectFakeNonMouseActionDownEvent() {
-        MotionEvent event = getFakeMotionDownEvent();
+    private void injectFakeNonMouseActionHoverMoveEvent() {
+        MotionEvent event = getFakeMotionHoverMoveEvent();
         event.setSource(InputDevice.SOURCE_KEYBOARD);
         mController.onMotionEvent(event, event, /* policyFlags= */ 0);
     }
@@ -309,11 +349,11 @@
         mController.onKeyEvent(keyEvent, /* policyFlags= */ 0);
     }
 
-    private MotionEvent getFakeMotionDownEvent() {
+    private MotionEvent getFakeMotionHoverMoveEvent() {
         return MotionEvent.obtain(
                 /* downTime= */ 0,
                 /* eventTime= */ 0,
-                /* action= */ MotionEvent.ACTION_DOWN,
+                /* action= */ MotionEvent.ACTION_HOVER_MOVE,
                 /* x= */ 0,
                 /* y= */ 0,
                 /* metaState= */ 0);
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java
index f033459..00cc726 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java
@@ -18,9 +18,15 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AUTOCLICK_TYPE_LEFT_CLICK;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AUTOCLICK_TYPE_SCROLL;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AutoclickType;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.ClickPanelControllerInterface;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.graphics.drawable.GradientDrawable;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableContext;
 import android.testing.TestableLooper;
@@ -28,6 +34,8 @@
 import android.view.WindowManager;
 import android.widget.LinearLayout;
 
+import androidx.annotation.NonNull;
+
 import com.android.internal.R;
 
 import org.junit.Before;
@@ -56,11 +64,25 @@
     private LinearLayout mDragButton;
     private LinearLayout mScrollButton;
 
+    private @AutoclickType int mActiveClickType = AUTOCLICK_TYPE_LEFT_CLICK;
+
+    private final ClickPanelControllerInterface clickPanelController =
+            new ClickPanelControllerInterface() {
+                @Override
+                public void handleAutoclickTypeChange(@AutoclickType int clickType) {
+                    mActiveClickType = clickType;
+                }
+
+                @Override
+                public void toggleAutoclickPause() {}
+            };
+
     @Before
     public void setUp() {
         mTestableContext.addMockSystemService(Context.WINDOW_SERVICE, mMockWindowManager);
 
-        mAutoclickTypePanel = new AutoclickTypePanel(mTestableContext, mMockWindowManager);
+        mAutoclickTypePanel =
+                new AutoclickTypePanel(mTestableContext, mMockWindowManager, clickPanelController);
         View contentView = mAutoclickTypePanel.getContentViewForTesting();
         mLeftClickButton = contentView.findViewById(R.id.accessibility_autoclick_left_click_layout);
         mRightClickButton =
@@ -87,6 +109,11 @@
     }
 
     @Test
+    public void AutoclickTypePanel_initialState_correctButtonStyle() {
+        verifyButtonHasSelectedStyle(mLeftClickButton);
+    }
+
+    @Test
     public void togglePanelExpansion_onClick_expandedTrue() {
         // On clicking left click button, the panel is expanded and all buttons are visible.
         mLeftClickButton.callOnClick();
@@ -116,4 +143,32 @@
         assertThat(mDoubleClickButton.getVisibility()).isEqualTo(View.GONE);
         assertThat(mDragButton.getVisibility()).isEqualTo(View.GONE);
     }
+
+    @Test
+    public void togglePanelExpansion_selectButton_correctStyle() {
+        // By first click, the panel is expanded.
+        mLeftClickButton.callOnClick();
+
+        // Clicks any button in the expanded state to select a type button.
+        mScrollButton.callOnClick();
+
+        verifyButtonHasSelectedStyle(mScrollButton);
+    }
+
+    @Test
+    public void togglePanelExpansion_selectButton_correctActiveClickType() {
+        // By first click, the panel is expanded.
+        mLeftClickButton.callOnClick();
+
+        // Clicks any button in the expanded state to select a type button.
+        mScrollButton.callOnClick();
+
+        assertThat(mActiveClickType).isEqualTo(AUTOCLICK_TYPE_SCROLL);
+    }
+
+    private void verifyButtonHasSelectedStyle(@NonNull LinearLayout button) {
+        GradientDrawable gradientDrawable = (GradientDrawable) button.getBackground();
+        assertThat(gradientDrawable.getColor().getDefaultColor())
+                .isEqualTo(mTestableContext.getColor(R.color.materialColorPrimary));
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
index cd6b36d..6607054 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
@@ -18,6 +18,7 @@
 
 import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
 import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
+import static android.util.MathUtils.sqrt;
 
 import static com.android.internal.accessibility.common.MagnificationConstants.SCALE_MAX_VALUE;
 import static com.android.internal.accessibility.common.MagnificationConstants.SCALE_MIN_VALUE;
@@ -175,6 +176,20 @@
 
     private TestLooper mTestLooper;
 
+    private static class FakeSystemClock implements MagnificationController.SystemClock {
+        private long mUptimeMillis = 1984;
+
+        @Override
+        public long uptimeMillis() {
+            return mUptimeMillis;
+        }
+
+        public void advanceTime(long ms) {
+            mUptimeMillis += ms;
+        }
+    }
+    private FakeSystemClock mSystemClock;
+
     // To mock package-private class
     @Rule
     public final DexmakerShareClassLoaderRule mDexmakerShareClassLoaderRule =
@@ -201,6 +216,7 @@
 
         mMockResolver = new MockContentResolver();
         mMockResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
+        mSystemClock = new FakeSystemClock();
         mTestLooper = new TestLooper();
         when(mContext.getMainLooper()).thenReturn(
                 InstrumentationRegistry.getContext().getMainLooper());
@@ -255,7 +271,7 @@
 
         mMagnificationController = spy(new MagnificationController(mService, globalLock, mContext,
                 mScreenMagnificationController, mMagnificationConnectionManager, mScaleProvider,
-                ConcurrentUtils.DIRECT_EXECUTOR, mTestLooper.getLooper()));
+                ConcurrentUtils.DIRECT_EXECUTOR, mTestLooper.getLooper(), mSystemClock));
         mMagnificationController.setMagnificationCapabilities(
                 Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL);
 
@@ -680,7 +696,7 @@
     }
 
     @Test
-    public void scaleMagnificationByStep_fullscreenMode_stepInAndOut() throws RemoteException {
+    public void scaleMagnificationStep_fullscreenMode_stepInAndOut() throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 1.0f, false);
         reset(mScreenMagnificationController);
@@ -689,67 +705,79 @@
         // {@code MagnificationController.DefaultMagnificationScaleStepProvider
         // .ZOOM_STEP_SCALE_FACTOR} and the center coordinates are
         // unchanged (Float.NaN as values denotes unchanged center).
-        mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                 MagnificationController.ZOOM_DIRECTION_IN);
         verify(mScreenMagnificationController).setScaleAndCenter(eq(TEST_DISPLAY),
                 eq(MagnificationController
                         .DefaultMagnificationScaleStepProvider.ZOOM_STEP_SCALE_FACTOR),
                 eq(Float.NaN), eq(Float.NaN), anyBoolean(), anyInt());
+        mMagnificationController.onScaleMagnificationStop(
+                MagnificationController.ZOOM_DIRECTION_IN);
 
-        mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                 MagnificationController.ZOOM_DIRECTION_OUT);
         verify(mScreenMagnificationController).setScaleAndCenter(eq(TEST_DISPLAY),
                 eq(SCALE_MIN_VALUE), eq(Float.NaN), eq(Float.NaN), anyBoolean(), anyInt());
+        mMagnificationController.onScaleMagnificationStop(
+                MagnificationController.ZOOM_DIRECTION_OUT);
     }
 
     @Test
-    public void scaleMagnificationByStep_testMaxScaling() throws RemoteException {
+    public void scaleMagnificationStep_testMaxScaling() throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, SCALE_MIN_VALUE, false);
         reset(mScreenMagnificationController);
 
         float currentScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
         while (currentScale < SCALE_MAX_VALUE) {
-            mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+            mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                     MagnificationController.ZOOM_DIRECTION_IN);
             final float nextScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
             assertThat(nextScale).isGreaterThan(currentScale);
             currentScale = nextScale;
+            mMagnificationController.onScaleMagnificationStop(
+                    MagnificationController.ZOOM_DIRECTION_IN);
         }
 
         assertThat(currentScale).isEqualTo(SCALE_MAX_VALUE);
         // Trying to scale further does not change the scale.
-        mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                 MagnificationController.ZOOM_DIRECTION_IN);
         final float finalScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
         assertThat(finalScale).isEqualTo(currentScale);
+        mMagnificationController.onScaleMagnificationStop(
+                MagnificationController.ZOOM_DIRECTION_IN);
     }
 
     @Test
-    public void scaleMagnificationByStep_testMinScaling() throws RemoteException {
+    public void scaleMagnificationStep_testMinScaling() throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, SCALE_MAX_VALUE, false);
         reset(mScreenMagnificationController);
 
         float currentScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
         while (currentScale > SCALE_MIN_VALUE) {
-            mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+            mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                     MagnificationController.ZOOM_DIRECTION_OUT);
             final float nextScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
             assertThat(nextScale).isLessThan(currentScale);
             currentScale = nextScale;
+            mMagnificationController.onScaleMagnificationStop(
+                    MagnificationController.ZOOM_DIRECTION_OUT);
         }
 
         assertThat(currentScale).isEqualTo(SCALE_MIN_VALUE);
         // Trying to scale further does not change the scale.
-        mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                 MagnificationController.ZOOM_DIRECTION_OUT);
         final float finalScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
         assertThat(finalScale).isEqualTo(currentScale);
+        mMagnificationController.onScaleMagnificationStop(
+                MagnificationController.ZOOM_DIRECTION_OUT);
     }
 
     @Test
-    public void scaleMagnificationByStep_windowedMode_stepInAndOut() throws RemoteException {
+    public void scaleMagnificationStep_windowedMode_stepInAndOut() throws RemoteException {
         setMagnificationEnabled(MODE_WINDOW);
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, SCALE_MIN_VALUE, false);
         reset(mMagnificationConnectionManager);
@@ -757,22 +785,26 @@
         // Verify the zoom scale factor increases by
         // {@code MagnificationController.DefaultMagnificationScaleStepProvider
         // .ZOOM_STEP_SCALE_FACTOR}.
-        mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                 MagnificationController.ZOOM_DIRECTION_IN);
         verify(mMagnificationConnectionManager).setScale(eq(TEST_DISPLAY),
                 eq(MagnificationController
                         .DefaultMagnificationScaleStepProvider.ZOOM_STEP_SCALE_FACTOR));
+        mMagnificationController.onScaleMagnificationStop(
+                MagnificationController.ZOOM_DIRECTION_IN);
 
-        mMagnificationController.scaleMagnificationByStep(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStart(TEST_DISPLAY,
                 MagnificationController.ZOOM_DIRECTION_OUT);
         verify(mMagnificationConnectionManager).setScale(eq(TEST_DISPLAY),
                 eq(SCALE_MIN_VALUE));
+        mMagnificationController.onScaleMagnificationStop(
+                MagnificationController.ZOOM_DIRECTION_OUT);
     }
 
     @Test
-    public void panMagnificationByStep_fullscreenMode_stepSizeAtScale2() throws RemoteException {
+    public void panMagnificationStep_fullscreenMode_stepSizeAtScale2() throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
-        // At scale 2.0f, each step should be about 40 dpi.
+        // At scale 8.0f, each step should be about 27 dip.
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 2.0f, false);
         reset(mScreenMagnificationController);
 
@@ -780,9 +812,9 @@
     }
 
     @Test
-    public void panMagnificationByStep_fullscreenMode_stepSizeAtScale8() throws RemoteException {
+    public void panMagnificationStep_fullscreenMode_stepSizeAtScale8() throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
-        // At scale 8.0f, each step should be about 27 dpi.
+        // At scale 8.0f, each step should be about 27 dip.
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 8.0f, false);
         reset(mScreenMagnificationController);
 
@@ -790,16 +822,16 @@
     }
 
     @Test
-    public void panMagnificationByStep_windowMode_stepSizeAtScale2() throws RemoteException {
+    public void panMagnificationStep_windowMode_stepSizeAtScale2() throws RemoteException {
         mMagnificationConnectionManager.enableWindowMagnification(TEST_DISPLAY, 2.0f, 100f, 200f);
 
         testWindowMagnificationPanWithStepSize(40.0f);
     }
 
     @Test
-    public void panMagnificationByStep_windowMode_stepSizeAtScale8() throws RemoteException {
+    public void panMagnificationStep_windowMode_stepSizeAtScale8() throws RemoteException {
         setMagnificationEnabled(MODE_WINDOW);
-        // At scale 8.0f, each step should be about 27.
+        // At scale 8.0f, each step should be about 27 dip.
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 8.0f, false);
         reset(mMagnificationConnectionManager);
 
@@ -807,10 +839,10 @@
     }
 
     @Test
-    public void panMagnificationByStep_fullscreenMode_reachesRightEdgeOfScreen()
+    public void panMagnificationStep_fullscreenMode_reachesRightEdgeOfScreen()
             throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
-        // At scale 2.0f, each step should be about 40.
+        // At scale 2.0f, each step should be about 40 dip.
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, DEFAULT_SCALE, false);
         reset(mScreenMagnificationController);
 
@@ -825,7 +857,9 @@
         int maxNumSteps = (int) (metrics.widthPixels / expectedStep) + 1;
         int numSteps = 0;
         while (numSteps < maxNumSteps) {
-            mMagnificationController.panMagnificationByStep(TEST_DISPLAY,
+            mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                    MagnificationController.PAN_DIRECTION_RIGHT);
+            mMagnificationController.onPanMagnificationStop(
                     MagnificationController.PAN_DIRECTION_RIGHT);
             float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
             float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
@@ -846,10 +880,10 @@
     }
 
     @Test
-    public void panMagnificationByStep_fullscreenMode_reachesBottomEdgeOfScreen()
+    public void panMagnificationStep_fullscreenMode_reachesBottomEdgeOfScreen()
             throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
-        // At scale 2.0f, each step should be about 40.
+        // At scale 2.0f, each step should be about 40 dip.
         mMagnificationController.onPerformScaleAction(TEST_DISPLAY, DEFAULT_SCALE, false);
         reset(mScreenMagnificationController);
 
@@ -864,7 +898,9 @@
         int maxNumSteps = (int) (metrics.heightPixels / expectedStep) + 1;
         int numSteps = 0;
         while (numSteps < maxNumSteps) {
-            mMagnificationController.panMagnificationByStep(TEST_DISPLAY,
+            mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                    MagnificationController.PAN_DIRECTION_DOWN);
+            mMagnificationController.onPanMagnificationStop(
                     MagnificationController.PAN_DIRECTION_DOWN);
             float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
             float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
@@ -885,6 +921,47 @@
     }
 
     @Test
+    public void panMagnificationStep_windowMode_reachesRightEdgeOfScreen()
+            throws RemoteException {
+        setMagnificationEnabled(MODE_WINDOW);
+        // At scale 8.0f, each step should be about 27 dip.
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 8.0f, false);
+        reset(mMagnificationConnectionManager);
+
+        float currentCenterX = mMagnificationConnectionManager.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mMagnificationConnectionManager.getCenterY(TEST_DISPLAY);
+
+        DisplayMetrics metrics = new DisplayMetrics();
+        mDisplay.getMetrics(metrics);
+        float expectedStep = 40.0f * metrics.density;
+
+        // Move right, eventually we should reach the edge.
+        int maxNumSteps = (int) (metrics.widthPixels / expectedStep) + 1;
+        int numSteps = 0;
+        while (numSteps < maxNumSteps) {
+            mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                    MagnificationController.PAN_DIRECTION_RIGHT);
+            mMagnificationController.onPanMagnificationStop(
+                    MagnificationController.PAN_DIRECTION_RIGHT);
+            float newCenterX = mMagnificationConnectionManager.getCenterX(TEST_DISPLAY);
+            float newCenterY = mMagnificationConnectionManager.getCenterY(TEST_DISPLAY);
+            assertThat(currentCenterY).isEqualTo(newCenterY);
+
+            assertThat(newCenterX).isAtLeast(currentCenterX);
+            if (newCenterX == currentCenterX) {
+                break;
+            }
+
+            currentCenterX = newCenterX;
+            currentCenterY = newCenterY;
+            numSteps++;
+        }
+        assertWithMessage("Still not at edge after panning right " + numSteps
+                + " steps. Current position: " + currentCenterX + "," + currentCenterY)
+                .that(numSteps).isLessThan(maxNumSteps);
+    }
+
+    @Test
     public void magnificationCallbacks_scaleMagnificationContinuous() throws RemoteException {
         setMagnificationEnabled(MODE_FULLSCREEN);
         float currentScale = 2.0f;
@@ -910,7 +987,8 @@
         currentScale = newScale;
 
         // Wait for the initial delay to occur.
-        advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs() + 1);
+        int initialMs = mMagnificationController.getInitialKeyboardRepeatIntervalMs() + 1;
+        advanceTime(initialMs);
 
         // It should have scaled again after the handler was triggered.
         newScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
@@ -928,7 +1006,7 @@
         }
 
         // Stop magnification scale.
-        mMagnificationController.onScaleMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStop(
                 MagnificationController.ZOOM_DIRECTION_IN);
 
         // It should not scale again, even after the appropriate delay.
@@ -975,10 +1053,10 @@
         currentCenterX = newCenterX;
         currentCenterY = newCenterY;
 
-        for (int i = 0; i < 3; i++) {
-            // Wait for the initial delay to occur.
-            advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs() + 1);
+        // Wait for the initial delay to occur.
+        advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs() + 1);
 
+        for (int i = 0; i < 3; i++) {
             // It should not have moved again because repeat keys is disabled.
             newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
             newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
@@ -986,9 +1064,13 @@
             expect.that(currentCenterY).isEqualTo(newCenterY);
             currentCenterX = newCenterX;
             currentCenterY = newCenterY;
+
+            // Try waiting even longer. Nothing should ever happen.
+            advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs()
+                    + MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
         }
 
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_DOWN);
     }
 
@@ -1010,20 +1092,457 @@
 
         currentScale = newScale;
 
-        for (int i = 0; i < 3; i++) {
-            // Wait for the initial delay to occur.
-            advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs() + 1);
+        // Wait for the initial delay to occur.
+        advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs() + 1);
 
+        for (int i = 0; i < 3; i++) {
             // It should not have scaled again because repeat keys is disabled.
             newScale = mScreenMagnificationController.getScale(TEST_DISPLAY);
             expect.that(currentScale).isEqualTo(newScale);
+
+            // Try waiting even longer. Nothing should ever happen.
+            advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs()
+                    + MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
         }
 
-        mMagnificationController.onScaleMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onScaleMagnificationStop(
                 MagnificationController.ZOOM_DIRECTION_OUT);
     }
 
     @Test
+    public void panMagnification_continuousDiagonalPanning_rightDown() throws RemoteException {
+        setMagnificationEnabled(MODE_FULLSCREEN);
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 8.0f, false);
+        reset(mScreenMagnificationController);
+
+        // At scale 8.0f, each step should be about 27 dip.
+        float expectedStep = 27.0f;
+
+        DisplayMetrics metrics = new DisplayMetrics();
+        mDisplay.getMetrics(metrics);
+        expectedStep *= metrics.density;
+
+        float expectedDiagonalStep = expectedStep / sqrt(2);
+
+        float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+
+        // Start panning right.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_RIGHT);
+
+        // A step right should be taken immediately.
+        float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isLessThan(newCenterX);
+        expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedStep);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Start panning down.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_DOWN);
+
+        // The diagonal step should be taken immediately.
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isLessThan(newCenterX);
+        expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedDiagonalStep);
+        expect.that(newCenterY).isGreaterThan(currentCenterY);
+        expect.that(newCenterY - currentCenterY).isWithin(0.01f).of(expectedDiagonalStep);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // If we wait for the timeout from the initial pan start, we will move diagonally again.
+        advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs());
+
+        for (int i = 0; i < 3; i++) {
+            newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+            newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+            expect.that(currentCenterX).isLessThan(newCenterX);
+            expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedDiagonalStep);
+            expect.that(newCenterY).isGreaterThan(currentCenterY);
+            expect.that(newCenterY - currentCenterY).isWithin(0.01f).of(expectedDiagonalStep);
+
+            currentCenterX = newCenterX;
+            currentCenterY = newCenterY;
+
+            // Wait for next animation step.
+            if (i < 2) {
+                advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+            }
+        }
+
+        // Release the "right" key. Should continue panning down only at the full step size.
+        mMagnificationController.onPanMagnificationStop(
+                MagnificationController.PAN_DIRECTION_RIGHT);
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(newCenterY).isGreaterThan(currentCenterY);
+        expect.that(newCenterY - currentCenterY).isWithin(0.01f).of(expectedStep);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Release the "down" key. No more panning.
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_DOWN);
+
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+    }
+
+    @Test
+    public void panMagnification_continuousDiagonalPanning_rightThenDown() throws RemoteException {
+        setMagnificationEnabled(MODE_FULLSCREEN);
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 8.0f, false);
+        reset(mScreenMagnificationController);
+
+        // At scale 8.0f, each step should be about 27 dip.
+        float expectedStep = 27.0f;
+
+        DisplayMetrics metrics = new DisplayMetrics();
+        mDisplay.getMetrics(metrics);
+        expectedStep *= metrics.density;
+
+        float expectedDiagonalStep = expectedStep / sqrt(2);
+
+        float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+
+        // Start panning right.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_RIGHT);
+
+        // A step right should be taken immediately.
+        float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isLessThan(newCenterX);
+        expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedStep);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // If we wait for the timeout from the initial pan start, we will move right again.
+        advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs());
+
+        for (int i = 0; i < 2; i++) {
+            newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+            newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+            expect.that(currentCenterX).isLessThan(newCenterX);
+            expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedStep);
+            expect.that(currentCenterY).isEqualTo(newCenterY);
+
+            currentCenterX = newCenterX;
+            currentCenterY = newCenterY;
+
+            // Wait for next animation step.
+            if (i == 0) {
+                advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+            }
+        }
+
+        // Wait halfway through the next repeat interval.
+        int halfTimeStep = (int) (MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS / 2.0);
+        advanceTime(halfTimeStep);
+
+        // Start panning down.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_DOWN);
+
+        // The diagonal step should be taken immediately.
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isLessThan(newCenterX);
+        expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedDiagonalStep);
+        expect.that(newCenterY).isGreaterThan(currentCenterY);
+        expect.that(newCenterY - currentCenterY).isWithin(0.01f).of(expectedDiagonalStep);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Wait for the rest of the original interval.
+        advanceTime(halfTimeStep);
+
+        // It has not advanced yet because it hasn't been enough time since we last panned.
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(newCenterY).isEqualTo(currentCenterY);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Now it moves diagonally automatically.
+        for (int i = 0; i < 2; i++) {
+            advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+            newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+            newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+            expect.that(currentCenterX).isLessThan(newCenterX);
+            expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedDiagonalStep);
+            expect.that(newCenterY).isGreaterThan(currentCenterY);
+            expect.that(newCenterY - currentCenterY).isWithin(0.01f).of(expectedDiagonalStep);
+
+            currentCenterX = newCenterX;
+            currentCenterY = newCenterY;
+        }
+
+
+        // Release the "right" key. Should continue panning down only at the full step size.
+        mMagnificationController.onPanMagnificationStop(
+                MagnificationController.PAN_DIRECTION_RIGHT);
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(newCenterY).isGreaterThan(currentCenterY);
+        expect.that(newCenterY - currentCenterY).isWithin(0.01f).of(expectedStep);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Release the "down" key. No more panning.
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_DOWN);
+
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+    }
+
+    @Test
+    public void panMagnification_continuousDiagonalPanning_upLeft() throws RemoteException {
+        DisplayMetrics metrics = new DisplayMetrics();
+        mDisplay.getMetrics(metrics);
+
+        setMagnificationEnabled(MODE_FULLSCREEN);
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 8.0f, false);
+        reset(mScreenMagnificationController);
+        mScreenMagnificationController.setCenter(TEST_DISPLAY, metrics.widthPixels,
+                metrics.heightPixels, false, 0);
+
+        // At scale 8.0f, each step should be about 27 dip.
+        float expectedStep = 27.0f;
+        expectedStep *= metrics.density;
+        float expectedDiagonalStep = expectedStep / sqrt(2);
+
+        float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+
+        // Start panning left.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_LEFT);
+
+        // A step left should be taken immediately.
+        float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isGreaterThan(newCenterX);
+        expect.that(currentCenterX - newCenterX).isWithin(0.01f).of(expectedStep);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Start panning up after a moment.
+        advanceTime(10);
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_UP);
+
+        // The diagonal step should be taken immediately.
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isGreaterThan(newCenterX);
+        expect.that(currentCenterX - newCenterX).isWithin(0.01f).of(expectedDiagonalStep);
+        expect.that(newCenterY).isLessThan(currentCenterY);
+        expect.that(currentCenterY - newCenterY).isWithin(0.01f).of(expectedDiagonalStep);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // If we wait for the timeout from the initial pan start, we will move diagonally again.
+        advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs() - 10);
+
+        for (int i = 0; i < 3; i++) {
+            newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+            newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+            expect.that(currentCenterX).isGreaterThan(newCenterX);
+            expect.that(currentCenterX - newCenterX).isWithin(0.01f).of(expectedDiagonalStep);
+            expect.that(newCenterY).isLessThan(currentCenterY);
+            expect.that(currentCenterY - newCenterY).isWithin(0.01f).of(expectedDiagonalStep);
+
+            currentCenterX = newCenterX;
+            currentCenterY = newCenterY;
+
+            if (i < 2) {
+                advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+            }
+        }
+
+        // Release the "left" key. Should continue panning up only at the full step size.
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_LEFT);
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(newCenterY).isLessThan(currentCenterY);
+        expect.that(currentCenterY - newCenterY).isWithin(0.01f).of(expectedStep);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Release the "up" key. No more panning.
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_UP);
+
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+    }
+
+    @Test
+    public void panMagnification_directionsCancel_leftRight() throws RemoteException {
+        setMagnificationEnabled(MODE_FULLSCREEN);
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 2.0f, false);
+        reset(mScreenMagnificationController);
+
+        float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+
+        // Start panning right.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_RIGHT);
+
+        // A step right should be taken immediately.
+        float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isLessThan(newCenterX);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Start panning left. Nothing should happen as the two directions cancel.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_LEFT);
+
+        for (int i = 0; i < 3; i++) {
+            newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+            newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+            expect.that(currentCenterX).isEqualTo(newCenterX);
+            expect.that(currentCenterY).isEqualTo(newCenterY);
+            advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs());
+        }
+
+        // Now stop going right.
+        mMagnificationController.onPanMagnificationStop(
+                MagnificationController.PAN_DIRECTION_RIGHT);
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        // After the timeout, we've gone left since it is still held down.
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isGreaterThan(newCenterX);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+
+        mMagnificationController.onPanMagnificationStop(
+                MagnificationController.PAN_DIRECTION_RIGHT);
+    }
+
+    @Test
+    public void panMagnification_directionsCancel_upDown() throws RemoteException {
+        setMagnificationEnabled(MODE_FULLSCREEN);
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 2.0f, false);
+        reset(mScreenMagnificationController);
+
+        float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+
+        // Start panning down.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_DOWN);
+
+        // A step down should be taken immediately.
+        float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(currentCenterY).isLessThan(newCenterY);
+
+        currentCenterX = newCenterX;
+        currentCenterY = newCenterY;
+
+        // Start panning up. Nothing should happen no matter how long we wait,
+        // as the two directions cancel.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_UP);
+
+        for (int i = 0; i < 3; i++) {
+            newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+            newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+            expect.that(currentCenterX).isEqualTo(newCenterX);
+            expect.that(currentCenterY).isEqualTo(newCenterY);
+            advanceTime(mMagnificationController.getInitialKeyboardRepeatIntervalMs());
+        }
+
+        // Now stop going up.
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_UP);
+        advanceTime(MagnificationController.KEYBOARD_REPEAT_INTERVAL_MS + 1);
+
+        // After the timeout, we've gone down again since it is still held down.
+        newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isEqualTo(newCenterX);
+        expect.that(currentCenterY).isLessThan(newCenterY);
+
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_DOWN);
+    }
+
+    @Test
+    public void panMagnification_directionsCancel_upDownRight() throws RemoteException {
+        setMagnificationEnabled(MODE_FULLSCREEN);
+        mMagnificationController.onPerformScaleAction(TEST_DISPLAY, 2.0f, false);
+        reset(mScreenMagnificationController);
+
+        // Start panning down and up.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_DOWN);
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_UP);
+
+        float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float currentCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+
+        // Start panning right. Only the x direction should change, not y, which cancel out.
+        mMagnificationController.onPanMagnificationStart(TEST_DISPLAY,
+                MagnificationController.PAN_DIRECTION_RIGHT);
+        float newCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
+        float newCenterY = mScreenMagnificationController.getCenterY(TEST_DISPLAY);
+        expect.that(currentCenterX).isLessThan(newCenterX);
+        expect.that(currentCenterY).isEqualTo(newCenterY);
+
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_UP);
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_DOWN);
+        mMagnificationController.onPanMagnificationStop(
+                MagnificationController.PAN_DIRECTION_RIGHT);
+    }
+
+    @Test
     public void enableWindowMode_notifyMagnificationChanged() throws RemoteException {
         setMagnificationEnabled(MODE_WINDOW);
 
@@ -1727,7 +2246,7 @@
         expect.that(newCenterX - currentCenterX).isWithin(0.01f).of(expectedStep);
         expect.that(currentCenterY).isEqualTo(newCenterY);
 
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_RIGHT);
         currentCenterX = newCenterX;
         currentCenterY = newCenterY;
@@ -1741,8 +2260,7 @@
         expect.that(currentCenterX - newCenterX).isWithin(0.01f).of(expectedStep);
         expect.that(currentCenterY).isEqualTo(newCenterY);
 
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
-                MagnificationController.PAN_DIRECTION_LEFT);
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_LEFT);
         currentCenterX = newCenterX;
         currentCenterY = newCenterY;
 
@@ -1755,8 +2273,7 @@
         expect.that(currentCenterY).isLessThan(newCenterY);
         expect.that(newCenterY - currentCenterY).isWithin(0.1f).of(expectedStep);
 
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
-                MagnificationController.PAN_DIRECTION_DOWN);
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_DOWN);
         currentCenterX = newCenterX;
         currentCenterY = newCenterY;
 
@@ -1769,8 +2286,7 @@
         expect.that(currentCenterY).isGreaterThan(newCenterY);
         expect.that(currentCenterY - newCenterY).isWithin(0.01f).of(expectedStep);
 
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
-                MagnificationController.PAN_DIRECTION_UP);
+        mMagnificationController.onPanMagnificationStop(MagnificationController.PAN_DIRECTION_UP);
     }
 
     private void testWindowMagnificationPanWithStepSize(float expectedStepDip)
@@ -1784,7 +2300,7 @@
                 MagnificationController.PAN_DIRECTION_RIGHT);
         verify(mMockConnection.getConnection()).moveWindowMagnifier(eq(TEST_DISPLAY),
                 floatThat(step -> Math.abs(step - expectedStep) < 0.0001), eq(0.0f));
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_RIGHT);
 
         // Move left.
@@ -1792,7 +2308,7 @@
                 MagnificationController.PAN_DIRECTION_LEFT);
         verify(mMockConnection.getConnection()).moveWindowMagnifier(eq(TEST_DISPLAY),
                 floatThat(step -> Math.abs(expectedStep - step) < 0.0001), eq(0.0f));
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_LEFT);
 
         // Move down.
@@ -1800,7 +2316,7 @@
                 MagnificationController.PAN_DIRECTION_DOWN);
         verify(mMockConnection.getConnection()).moveWindowMagnifier(eq(TEST_DISPLAY),
                 eq(0.0f), floatThat(step -> Math.abs(expectedStep - step) < 0.0001));
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_DOWN);
 
         // Move up.
@@ -1808,7 +2324,7 @@
                 MagnificationController.PAN_DIRECTION_UP);
         verify(mMockConnection.getConnection()).moveWindowMagnifier(eq(TEST_DISPLAY),
                 eq(0.0f), floatThat(step -> Math.abs(expectedStep - step) < 0.0001));
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_UP);
     }
 
@@ -1824,6 +2340,7 @@
 
         DisplayMetrics metrics = new DisplayMetrics();
         mDisplay.getMetrics(metrics);
+        // At scale 8.0f, each step should be about 27 dip.
         float expectedStep = 27 * metrics.density;
 
         float currentCenterX = mScreenMagnificationController.getCenterX(TEST_DISPLAY);
@@ -1869,7 +2386,7 @@
         }
 
         // Stop magnification pan.
-        mMagnificationController.onPanMagnificationStop(TEST_DISPLAY,
+        mMagnificationController.onPanMagnificationStop(
                 MagnificationController.PAN_DIRECTION_RIGHT);
 
         // It should not move again, even after the appropriate delay.
@@ -1882,6 +2399,7 @@
     }
 
     private void advanceTime(long timeMs) {
+        mSystemClock.advanceTime(timeMs);
         mTestLooper.moveTimeForward(timeMs);
         mTestLooper.dispatchAll();
     }
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationKeyHandlerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationKeyHandlerTest.java
index 1c85086..2a623fb 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationKeyHandlerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationKeyHandlerTest.java
@@ -44,6 +44,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
 /**
@@ -78,9 +79,10 @@
 
         // No callbacks were called.
         verify(mCallback, times(0)).onPanMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
         verify(mCallback, times(0)).onScaleMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt());
+        verify(mCallback, times(0)).onKeyboardInteractionStop();
 
         // The event was passed on.
         verify(mNextHandler, times(1)).onKeyEvent(event, 0);
@@ -95,9 +97,10 @@
 
         // No callbacks were called.
         verify(mCallback, times(0)).onPanMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
         verify(mCallback, times(0)).onScaleMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt());
+        verify(mCallback, times(0)).onKeyboardInteractionStop();
 
         // The event was passed on.
         verify(mNextHandler, times(1)).onKeyEvent(event, 0);
@@ -112,9 +115,10 @@
 
         // No callbacks were called.
         verify(mCallback, times(0)).onPanMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
         verify(mCallback, times(0)).onScaleMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt());
+        verify(mCallback, times(0)).onKeyboardInteractionStop();
 
         // The event was passed on.
         verify(mNextHandler, times(1)).onKeyEvent(event, 0);
@@ -157,48 +161,79 @@
         mMkh.onKeyEvent(downLeftEvent, 0);
         verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_LEFT);
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
+
+        Mockito.clearInvocations(mCallback);
 
         // Also press the down arrow key.
         final KeyEvent downDownEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
                 KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
         mMkh.onKeyEvent(downDownEvent, 0);
-        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_LEFT);
         verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_DOWN);
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
+
+        Mockito.clearInvocations(mCallback);
 
         // Lift the left arrow key.
         final KeyEvent upLeftEvent = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
                 KeyEvent.KEYCODE_DPAD_LEFT, 0, KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
         mMkh.onKeyEvent(upLeftEvent, 0);
-        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_LEFT);
-        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_DOWN);
-        verify(mCallback, times(1)).onPanMagnificationStop(Display.DEFAULT_DISPLAY,
-                PAN_DIRECTION_LEFT);
-        verify(mCallback, times(0)).onPanMagnificationStop(Display.DEFAULT_DISPLAY,
-                PAN_DIRECTION_DOWN);
+        verify(mCallback, times(1)).onPanMagnificationStop(PAN_DIRECTION_LEFT);
+        verify(mCallback, times(0)).onPanMagnificationStop(PAN_DIRECTION_DOWN);
+
+        Mockito.clearInvocations(mCallback);
 
         // Lift the down arrow key.
         final KeyEvent upDownEvent = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
                 KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
         mMkh.onKeyEvent(upDownEvent, 0);
-        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_LEFT);
-        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
                 PAN_DIRECTION_DOWN);
-        verify(mCallback, times(1)).onPanMagnificationStop(Display.DEFAULT_DISPLAY,
-                PAN_DIRECTION_LEFT);
-        verify(mCallback, times(1)).onPanMagnificationStop(Display.DEFAULT_DISPLAY,
-                PAN_DIRECTION_DOWN);
+        verify(mCallback, times(0)).onPanMagnificationStop(PAN_DIRECTION_LEFT);
+        verify(mCallback, times(1)).onPanMagnificationStop(PAN_DIRECTION_DOWN);
 
         // The event was not passed on.
         verify(mNextHandler, times(0)).onKeyEvent(any(), anyInt());
     }
 
+    @Test
+    public void testPanMagnification_modifiersReleasedBeforeArrows() {
+        final KeyEvent downEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
+                KeyEvent.KEYCODE_DPAD_DOWN, 0,
+                KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
+        mMkh.onKeyEvent(downEvent, 0);
+
+        // Pan started.
+        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+                PAN_DIRECTION_DOWN);
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
+        verify(mCallback, times(0)).onKeyboardInteractionStop();
+
+        Mockito.clearInvocations(mCallback);
+
+        // Lift the "meta" key.
+        final KeyEvent upEvent = new KeyEvent(0, 0, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_META_LEFT,
+                0,
+                KeyEvent.META_ALT_ON);
+        mMkh.onKeyEvent(upEvent, 0);
+
+        // Pan ended.
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY,
+                PAN_DIRECTION_DOWN);
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
+        verify(mCallback, times(1)).onKeyboardInteractionStop();
+
+    }
+
     private void testPanMagnification(int keyCode, int panDirection) {
         final KeyEvent downEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 0,
                 KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
@@ -206,19 +241,21 @@
 
         // Pan started.
         verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY, panDirection);
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
+
+        Mockito.clearInvocations(mCallback);
 
         final KeyEvent upEvent = new KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 0,
                 KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
         mMkh.onKeyEvent(upEvent, 0);
 
         // Pan ended.
-        verify(mCallback, times(1)).onPanMagnificationStart(Display.DEFAULT_DISPLAY, panDirection);
-        verify(mCallback, times(1)).onPanMagnificationStop(Display.DEFAULT_DISPLAY, panDirection);
+        verify(mCallback, times(0)).onPanMagnificationStart(Display.DEFAULT_DISPLAY, panDirection);
+        verify(mCallback, times(1)).onPanMagnificationStop(panDirection);
 
         // Scale callbacks were not called.
         verify(mCallback, times(0)).onScaleMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt());
 
         // The events were not passed on.
         verify(mNextHandler, times(0)).onKeyEvent(any(), anyInt());
@@ -232,25 +269,25 @@
         // Scale started.
         verify(mCallback, times(1)).onScaleMagnificationStart(Display.DEFAULT_DISPLAY,
                 zoomDirection);
-        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onScaleMagnificationStop(anyInt());
+
+        Mockito.clearInvocations(mCallback);
 
         final KeyEvent upEvent = new KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 0,
                 KeyEvent.META_META_ON | KeyEvent.META_ALT_ON);
         mMkh.onKeyEvent(upEvent, 0);
 
         // Scale ended.
-        verify(mCallback, times(1)).onScaleMagnificationStart(Display.DEFAULT_DISPLAY,
+        verify(mCallback, times(0)).onScaleMagnificationStart(Display.DEFAULT_DISPLAY,
                 zoomDirection);
-        verify(mCallback, times(1)).onScaleMagnificationStop(Display.DEFAULT_DISPLAY,
-                zoomDirection);
+        verify(mCallback, times(1)).onScaleMagnificationStop(zoomDirection);
 
         // Pan callbacks were not called.
         verify(mCallback, times(0)).onPanMagnificationStart(anyInt(), anyInt());
-        verify(mCallback, times(0)).onPanMagnificationStop(anyInt(), anyInt());
+        verify(mCallback, times(0)).onPanMagnificationStop(anyInt());
 
         // The events were not passed on.
         verify(mNextHandler, times(0)).onKeyEvent(any(), anyInt());
-
     }
 
 }
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/OWNERS b/services/tests/servicestests/src/com/android/server/accessibility/magnification/OWNERS
new file mode 100644
index 0000000..9592bfd
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/OWNERS
@@ -0,0 +1,6 @@
+# Bug component: 1530954
+#
+# The above component is for automated test bugs. If you are a human looking to report
+# a bug in this codebase then please use component 770744.
+
+include /services/accessibility/java/com/android/server/accessibility/magnification/OWNERS
diff --git a/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java b/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java
index 1627f68..06958b8 100644
--- a/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java
@@ -25,7 +25,6 @@
 import static android.app.ActivityManagerInternal.ALLOW_NON_FULL;
 import static android.app.ActivityManagerInternal.ALLOW_NON_FULL_IN_PROFILE;
 import static android.app.ActivityManagerInternal.ALLOW_PROFILES_OR_NON_FULL;
-import static android.app.KeyguardManager.LOCK_ON_USER_SWITCH_CALLBACK;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.testing.DexmakerShareClassLoaderRule.runWithDexmakerShareClassLoader;
 
@@ -116,6 +115,7 @@
 import com.android.server.pm.UserManagerService;
 import com.android.server.pm.UserTypeDetails;
 import com.android.server.pm.UserTypeFactory;
+import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.WindowManagerService;
 
 import com.google.common.collect.Range;
@@ -1563,11 +1563,11 @@
         // and the thread is still alive
         assertTrue(threadStartUser.isAlive());
 
-        // mock the binder response for the user switch completion
-        ArgumentCaptor<Bundle> captor = ArgumentCaptor.forClass(Bundle.class);
-        verify(mInjector.mWindowManagerMock).lockNow(captor.capture());
-        IRemoteCallback.Stub.asInterface(captor.getValue().getBinder(
-                LOCK_ON_USER_SWITCH_CALLBACK)).sendResult(null);
+        // mock send the keyguard shown event
+        ArgumentCaptor<ActivityTaskManagerInternal.ScreenObserver> captor = ArgumentCaptor.forClass(
+                ActivityTaskManagerInternal.ScreenObserver.class);
+        verify(mInjector.mActivityTaskManagerInternal).registerScreenObserver(captor.capture());
+        captor.getValue().onKeyguardStateChanged(true);
 
         // verify the switch now moves on...
         Thread.sleep(1000);
@@ -1757,6 +1757,7 @@
         private final IStorageManager mStorageManagerMock;
         private final UserManagerInternal mUserManagerInternalMock;
         private final WindowManagerService mWindowManagerMock;
+        private final ActivityTaskManagerInternal mActivityTaskManagerInternal;
         private final PowerManagerInternal mPowerManagerInternal;
         private final AlarmManagerInternal mAlarmManagerInternal;
         private final KeyguardManager mKeyguardManagerMock;
@@ -1778,6 +1779,7 @@
             mUserManagerMock = mock(UserManagerService.class);
             mUserManagerInternalMock = mock(UserManagerInternal.class);
             mWindowManagerMock = mock(WindowManagerService.class);
+            mActivityTaskManagerInternal = mock(ActivityTaskManagerInternal.class);
             mStorageManagerMock = mock(IStorageManager.class);
             mPowerManagerInternal = mock(PowerManagerInternal.class);
             mAlarmManagerInternal = mock(AlarmManagerInternal.class);
@@ -1841,6 +1843,11 @@
         }
 
         @Override
+        ActivityTaskManagerInternal getActivityTaskManagerInternal() {
+            return mActivityTaskManagerInternal;
+        }
+
+        @Override
         PowerManagerInternal getPowerManagerInternal() {
             return mPowerManagerInternal;
         }
diff --git a/services/tests/servicestests/src/com/android/server/app/GameManagerServiceSettingsTests.java b/services/tests/servicestests/src/com/android/server/app/GameManagerServiceSettingsTests.java
index 17f5ebb..7349c5f4 100644
--- a/services/tests/servicestests/src/com/android/server/app/GameManagerServiceSettingsTests.java
+++ b/services/tests/servicestests/src/com/android/server/app/GameManagerServiceSettingsTests.java
@@ -116,6 +116,10 @@
         deleteFolder(InstrumentationRegistry.getTargetContext().getFilesDir());
     }
 
+    static {
+        System.loadLibrary("servicestestjni");
+    }
+
     @Test
     public void testReadGameServiceSettings() {
         writeOldFiles();
diff --git a/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java b/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java
index 59f4d56b..11b23c5 100644
--- a/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/AudioDeviceBrokerTest.java
@@ -17,7 +17,6 @@
 
 import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_DEFAULT;
 import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_HEADSET;
-import static android.media.audio.Flags.automaticBtDeviceType;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -251,11 +250,6 @@
     public void testIsBluetoothAudioDeviceCategoryFixed() throws Exception {
         Log.i(TAG, "starting testIsBluetoothAudioDeviceCategoryFixed");
 
-        if (!automaticBtDeviceType()) {
-            Log.i(TAG, "Enable automaticBtDeviceType flag to run the test "
-                    + "testIsBluetoothAudioDeviceCategoryFixed");
-            return;
-        }
         assertNotNull("invalid null BT device", mFakeBtDevice);
 
         final AdiDeviceState devState = new AdiDeviceState(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
@@ -292,11 +286,6 @@
     public void testGetAndUpdateBtAdiDeviceStateCategoryForAddress() throws Exception {
         Log.i(TAG, "starting testGetAndUpdateBtAdiDeviceStateCategoryForAddress");
 
-        if (!automaticBtDeviceType()) {
-            Log.i(TAG, "Enable automaticBtDeviceType flag to run the test "
-                    + "testGetAndUpdateBtAdiDeviceStateCategoryForAddress");
-            return;
-        }
         assertNotNull("invalid null BT device", mFakeBtDevice);
 
         final AdiDeviceState devState = new AdiDeviceState(AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
@@ -342,11 +331,6 @@
     public void testAddAudioDeviceWithCategoryInInventoryIfNeeded() throws Exception {
         Log.i(TAG, "starting testAddAudioDeviceWithCategoryInInventoryIfNeeded");
 
-        if (!automaticBtDeviceType()) {
-            Log.i(TAG, "Enable automaticBtDeviceType flag to run the test "
-                    + "testAddAudioDeviceWithCategoryInInventoryIfNeeded");
-            return;
-        }
         assertNotNull("invalid null BT device", mFakeBtDevice);
 
         mAudioDeviceBroker.addAudioDeviceWithCategoryInInventoryIfNeeded(
diff --git a/services/tests/servicestests/src/com/android/server/audio/AudioDeviceVolumeManagerTest.java b/services/tests/servicestests/src/com/android/server/audio/AudioDeviceVolumeManagerTest.java
index de5564c..f573add 100644
--- a/services/tests/servicestests/src/com/android/server/audio/AudioDeviceVolumeManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/AudioDeviceVolumeManagerTest.java
@@ -16,9 +16,7 @@
 
 package com.android.server.audio;
 
-import static com.android.media.audio.Flags.FLAG_ABS_VOLUME_INDEX_FIX;
 import static com.android.media.audio.Flags.FLAG_DISABLE_PRESCALE_ABSOLUTE_VOLUME;
-import static com.android.media.audio.Flags.absVolumeIndexFix;
 
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
@@ -34,9 +32,9 @@
 import android.media.AudioManager;
 import android.media.AudioSystem;
 import android.media.VolumeInfo;
+import android.os.IpcDataCache;
 import android.os.PermissionEnforcer;
 import android.os.test.TestLooper;
-import android.platform.test.annotations.RequiresFlagsDisabled;
 import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
@@ -71,6 +69,8 @@
 
     @Before
     public void setUp() throws Exception {
+        IpcDataCache.disableForTestMode();
+
         mTestLooper = new TestLooper();
         mContext = InstrumentationRegistry.getTargetContext();
         mPackageName = mContext.getOpPackageName();
@@ -121,55 +121,6 @@
     }
 
     @Test
-    @RequiresFlagsDisabled({FLAG_DISABLE_PRESCALE_ABSOLUTE_VOLUME, FLAG_ABS_VOLUME_INDEX_FIX})
-    public void configurablePreScaleAbsoluteVolume_checkIndex() throws Exception {
-        AudioManager am = mContext.getSystemService(AudioManager.class);
-        final int minIndex = am.getStreamMinVolume(AudioManager.STREAM_MUSIC);
-        final int maxIndex = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
-        final VolumeInfo volMedia = new VolumeInfo.Builder(AudioManager.STREAM_MUSIC)
-                .setMinVolumeIndex(minIndex)
-                .setMaxVolumeIndex(maxIndex)
-                .build();
-        final AudioDeviceAttributes bleDevice = new AudioDeviceAttributes(
-                /*native type*/ AudioSystem.DEVICE_OUT_BLE_HEADSET, /*address*/ "fake_ble");
-        final int maxPreScaleIndex = 3;
-        final float[] preScale = new float[3];
-        preScale[0] = mContext.getResources().getFraction(
-                com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index1,
-                1, 1);
-        preScale[1] = mContext.getResources().getFraction(
-                com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index2,
-                1, 1);
-        preScale[2] = mContext.getResources().getFraction(
-                com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index3,
-                1, 1);
-
-        for (int i = 0; i < maxPreScaleIndex; i++) {
-            final int targetIndex = (int) (preScale[i] * maxIndex);
-            final VolumeInfo volCur = new VolumeInfo.Builder(volMedia)
-                    .setVolumeIndex(i + 1).build();
-            // Adjust stream volume with FLAG_ABSOLUTE_VOLUME set (index:1~3)
-            mAudioService.setDeviceVolume(volCur, bleDevice, mPackageName);
-            mTestLooper.dispatchAll();
-
-            // Stream volume changes
-            verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                            AudioManager.STREAM_MUSIC, targetIndex, false,
-                            AudioSystem.DEVICE_OUT_BLE_HEADSET);
-        }
-
-        // Adjust stream volume with FLAG_ABSOLUTE_VOLUME set (index:4)
-        final VolumeInfo volIndex4 = new VolumeInfo.Builder(volMedia)
-                .setVolumeIndex(4).build();
-        mAudioService.setDeviceVolume(volIndex4, bleDevice, mPackageName);
-        mTestLooper.dispatchAll();
-
-        verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                        AudioManager.STREAM_MUSIC, maxIndex, false,
-                        AudioSystem.DEVICE_OUT_BLE_HEADSET);
-    }
-
-    @Test
     @RequiresFlagsEnabled(FLAG_DISABLE_PRESCALE_ABSOLUTE_VOLUME)
     public void disablePreScaleAbsoluteVolume_checkIndex() throws Exception {
         AudioManager am = mContext.getSystemService(AudioManager.class);
@@ -182,7 +133,6 @@
         final AudioDeviceAttributes bleDevice = new AudioDeviceAttributes(
                 /*native type*/ AudioSystem.DEVICE_OUT_BLE_HEADSET, /*address*/ "bla");
         final int maxPreScaleIndex = 3;
-        int passedIndex = maxIndex;
 
         for (int i = 0; i < maxPreScaleIndex; i++) {
             final VolumeInfo volCur = new VolumeInfo.Builder(volMedia)
@@ -191,12 +141,9 @@
             mAudioService.setDeviceVolume(volCur, bleDevice, mPackageName);
             mTestLooper.dispatchAll();
 
-            if (absVolumeIndexFix()) {
-                passedIndex = i + 1;
-            }
             // Stream volume changes
             verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                    AudioManager.STREAM_MUSIC, passedIndex, false,
+                    AudioManager.STREAM_MUSIC, /*index=*/i + 1, false,
                     AudioSystem.DEVICE_OUT_BLE_HEADSET);
         }
 
@@ -206,11 +153,8 @@
         mAudioService.setDeviceVolume(volIndex4, bleDevice, mPackageName);
         mTestLooper.dispatchAll();
 
-        if (absVolumeIndexFix()) {
-            passedIndex = 4;
-        }
         verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                AudioManager.STREAM_MUSIC, passedIndex, false,
+                AudioManager.STREAM_MUSIC, /*index=*/4, false,
                 AudioSystem.DEVICE_OUT_BLE_HEADSET);
     }
 }
diff --git a/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java b/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
index 96c6cbc..aa9d205 100644
--- a/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
@@ -32,6 +32,7 @@
 import android.content.Context;
 import android.media.AudioDeviceAttributes;
 import android.media.AudioSystem;
+import android.os.IpcDataCache;
 import android.os.Looper;
 import android.os.PermissionEnforcer;
 import android.os.UserHandle;
@@ -87,6 +88,8 @@
 
     @Before
     public void setUp() throws Exception {
+        IpcDataCache.disableForTestMode();
+
         if (!sLooperPrepared) {
             Looper.prepare();
             sLooperPrepared = true;
diff --git a/services/tests/servicestests/src/com/android/server/audio/VolumeHelperTest.java b/services/tests/servicestests/src/com/android/server/audio/VolumeHelperTest.java
index 2d81f72..9cf4564 100644
--- a/services/tests/servicestests/src/com/android/server/audio/VolumeHelperTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/VolumeHelperTest.java
@@ -40,10 +40,8 @@
 import static android.view.KeyEvent.ACTION_DOWN;
 import static android.view.KeyEvent.KEYCODE_VOLUME_UP;
 
-import static com.android.media.audio.Flags.FLAG_ABS_VOLUME_INDEX_FIX;
 import static com.android.media.audio.Flags.FLAG_DISABLE_PRESCALE_ABSOLUTE_VOLUME;
 import static com.android.media.audio.Flags.FLAG_RING_MY_CAR;
-import static com.android.media.audio.Flags.absVolumeIndexFix;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
@@ -85,7 +83,6 @@
 import android.os.PermissionEnforcer;
 import android.os.test.TestLooper;
 import android.platform.test.annotations.Presubmit;
-import android.platform.test.annotations.RequiresFlagsDisabled;
 import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
@@ -675,56 +672,6 @@
     }
 
     @Test
-    @RequiresFlagsDisabled({FLAG_DISABLE_PRESCALE_ABSOLUTE_VOLUME, FLAG_ABS_VOLUME_INDEX_FIX})
-    public void configurablePreScaleAbsoluteVolume_checkIndex() throws Exception {
-        final int minIndex = mAm.getStreamMinVolume(STREAM_MUSIC);
-        final int maxIndex = mAm.getStreamMaxVolume(STREAM_MUSIC);
-        final VolumeInfo volMedia = new VolumeInfo.Builder(STREAM_MUSIC)
-                .setMinVolumeIndex(minIndex)
-                .setMaxVolumeIndex(maxIndex)
-                .build();
-        final AudioDeviceAttributes bleDevice = new AudioDeviceAttributes(
-                /*native type*/ AudioSystem.DEVICE_OUT_BLE_HEADSET, /*address*/ "fake_ble");
-        final int maxPreScaleIndex = 3;
-        final float[] preScale = new float[maxPreScaleIndex];
-        preScale[0] = mContext.getResources().getFraction(
-                com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index1,
-                1, 1);
-        preScale[1] = mContext.getResources().getFraction(
-                com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index2,
-                1, 1);
-        preScale[2] = mContext.getResources().getFraction(
-                com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index3,
-                1, 1);
-
-        for (int i = 0; i < maxPreScaleIndex; i++) {
-            final int targetIndex = (int) (preScale[i] * maxIndex);
-            final VolumeInfo volCur = new VolumeInfo.Builder(volMedia)
-                    .setVolumeIndex(i + 1).build();
-            // Adjust stream volume with FLAG_ABSOLUTE_VOLUME set (index:1~3)
-            mAudioService.setDeviceVolume(volCur, bleDevice, mContext.getOpPackageName());
-            mTestLooper.dispatchAll();
-
-            assertEquals(volCur,
-                    mAudioService.getDeviceVolume(volCur, bleDevice, mContext.getOpPackageName()));
-            // Stream volume changes
-            verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                    STREAM_MUSIC, targetIndex, false, AudioSystem.DEVICE_OUT_BLE_HEADSET);
-        }
-
-        // Adjust stream volume with FLAG_ABSOLUTE_VOLUME set (index:4)
-        final VolumeInfo volIndex4 = new VolumeInfo.Builder(volMedia)
-                .setVolumeIndex(4).build();
-        mAudioService.setDeviceVolume(volIndex4, bleDevice, mContext.getOpPackageName());
-        mTestLooper.dispatchAll();
-
-        assertEquals(volIndex4,
-                mAudioService.getDeviceVolume(volIndex4, bleDevice, mContext.getOpPackageName()));
-        verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                STREAM_MUSIC, maxIndex, false, AudioSystem.DEVICE_OUT_BLE_HEADSET);
-    }
-
-    @Test
     @RequiresFlagsEnabled(FLAG_DISABLE_PRESCALE_ABSOLUTE_VOLUME)
     public void disablePreScaleAbsoluteVolume_checkIndex() throws Exception {
         final int minIndex = mAm.getStreamMinVolume(STREAM_MUSIC);
@@ -736,7 +683,6 @@
         final AudioDeviceAttributes bleDevice = new AudioDeviceAttributes(
                 /*native type*/ AudioSystem.DEVICE_OUT_BLE_HEADSET, /*address*/ "bla");
         final int maxPreScaleIndex = 3;
-        int passedIndex = maxIndex;
 
         for (int i = 0; i < maxPreScaleIndex; i++) {
             final VolumeInfo volCur = new VolumeInfo.Builder(volMedia)
@@ -745,12 +691,9 @@
             mAudioService.setDeviceVolume(volCur, bleDevice, mContext.getOpPackageName());
             mTestLooper.dispatchAll();
 
-            if (absVolumeIndexFix()) {
-                passedIndex = i + 1;
-            }
             // Stream volume changes
             verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                    STREAM_MUSIC, passedIndex, false, AudioSystem.DEVICE_OUT_BLE_HEADSET);
+                    STREAM_MUSIC, /*index=*/i + 1, false, AudioSystem.DEVICE_OUT_BLE_HEADSET);
         }
 
         // Adjust stream volume with FLAG_ABSOLUTE_VOLUME set (index:4)
@@ -759,11 +702,8 @@
         mAudioService.setDeviceVolume(volIndex4, bleDevice, mContext.getOpPackageName());
         mTestLooper.dispatchAll();
 
-        if (absVolumeIndexFix()) {
-            passedIndex = 4;
-        }
         verify(mSpyAudioSystem, atLeast(1)).setStreamVolumeIndexAS(
-                STREAM_MUSIC, passedIndex, false, AudioSystem.DEVICE_OUT_BLE_HEADSET);
+                STREAM_MUSIC, /*index=*/4, false, AudioSystem.DEVICE_OUT_BLE_HEADSET);
     }
 
     // ---------------- DeviceVolumeBehaviorTest ----------------
diff --git a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
index bdbb495..ab7b4da 100644
--- a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
@@ -24,7 +24,6 @@
 import static android.content.Context.DEVICE_ID_INVALID;
 import static android.content.Intent.ACTION_VIEW;
 import static android.content.pm.ActivityInfo.FLAG_CAN_DISPLAY_ON_REMOTE_DEVICES;
-import static android.content.pm.PackageManager.ACTION_REQUEST_PERMISSIONS;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
@@ -73,8 +72,8 @@
 import android.content.IntentFilter;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
 import android.hardware.Sensor;
+import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManagerGlobal;
 import android.hardware.display.DisplayManagerInternal;
 import android.hardware.display.IDisplayManager;
@@ -148,14 +147,9 @@
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 public class VirtualDeviceManagerServiceTest {
 
-    private static final String NONBLOCKED_APP_PACKAGE_NAME = "com.someapp";
-    private static final String PERMISSION_CONTROLLER_PACKAGE_NAME =
-            "com.android.permissioncontroller";
+    private static final String NONBLOCKED_APP_PACKAGE_NAME = "com.nonblocked.app";
+    private static final String BLOCKED_APP_PACKAGE_NAME = "com.blocked.app";
     private static final String VIRTUAL_DEVICE_OWNER_PACKAGE = "com.android.virtualdevice.test";
-    private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
-    private static final String VENDING_PACKAGE_NAME = "com.android.vending";
-    private static final String GOOGLE_DIALER_PACKAGE_NAME = "com.google.android.dialer";
-    private static final String GOOGLE_MAPS_PACKAGE_NAME = "com.google.android.apps.maps";
     private static final String DEVICE_NAME_1 = "device name 1";
     private static final String DEVICE_NAME_2 = "device name 2";
     private static final String DEVICE_NAME_3 = "device name 3";
@@ -180,8 +174,7 @@
     private static final int FLAG_CANNOT_DISPLAY_ON_REMOTE_DEVICES = 0x00000;
     private static final int VIRTUAL_DEVICE_ID_1 = 42;
     private static final int VIRTUAL_DEVICE_ID_2 = 43;
-    private static final VirtualDisplayConfig VIRTUAL_DISPLAY_CONFIG =
-            new VirtualDisplayConfig.Builder("virtual_display", 640, 480, 400).build();
+
     private static final VirtualDpadConfig DPAD_CONFIG =
             new VirtualDpadConfig.Builder()
                     .setVendorId(VENDOR_ID)
@@ -219,6 +212,10 @@
                     .setInputDeviceName(DEVICE_NAME_1)
                     .setAssociatedDisplayId(DISPLAY_ID_1)
                     .build();
+
+    private static final Set<ComponentName> BLOCKED_ACTIVITIES = Set.of(
+            new ComponentName(BLOCKED_APP_PACKAGE_NAME, BLOCKED_APP_PACKAGE_NAME));
+
     private static final String TEST_SITE = "http://test";
 
     @Rule
@@ -284,21 +281,15 @@
     @Mock
     IInputManager mIInputManagerMock;
 
-    private ArraySet<ComponentName> getBlockedActivities() {
-        ArraySet<ComponentName> blockedActivities = new ArraySet<>();
-        blockedActivities.add(new ComponentName(SETTINGS_PACKAGE_NAME, SETTINGS_PACKAGE_NAME));
-        blockedActivities.add(new ComponentName(VENDING_PACKAGE_NAME, VENDING_PACKAGE_NAME));
-        blockedActivities.add(
-                new ComponentName(GOOGLE_DIALER_PACKAGE_NAME, GOOGLE_DIALER_PACKAGE_NAME));
-        blockedActivities.add(
-                new ComponentName(GOOGLE_MAPS_PACKAGE_NAME, GOOGLE_MAPS_PACKAGE_NAME));
-        return blockedActivities;
-    }
-
     private Intent createRestrictedActivityBlockedIntent(Set<String> displayCategories,
             String targetDisplayCategory) {
         when(mDisplayManagerInternalMock.createVirtualDisplay(any(), any(), any(), any(),
-                eq(VIRTUAL_DEVICE_OWNER_PACKAGE))).thenReturn(DISPLAY_ID_1);
+                eq(VIRTUAL_DEVICE_OWNER_PACKAGE)))
+                .thenAnswer(inv -> {
+                    mLocalService.onVirtualDisplayCreated(
+                            mDeviceImpl, DISPLAY_ID_1, inv.getArgument(1), inv.getArgument(3));
+                    return DISPLAY_ID_1;
+                });
         VirtualDisplayConfig config = new VirtualDisplayConfig.Builder("display", 640, 480,
                 420).setDisplayCategories(displayCategories).build();
         mDeviceImpl.createVirtualDisplay(config, mVirtualDisplayCallback);
@@ -358,7 +349,7 @@
 
         mContext = Mockito.spy(new ContextWrapper(
                 InstrumentationRegistry.getInstrumentation().getTargetContext()));
-        doReturn(mContext).when(mContext).createContextAsUser(eq(Process.myUserHandle()), anyInt());
+        doReturn(mContext).when(mContext).createContextAsUser(any(), anyInt());
         doNothing().when(mContext).sendBroadcastAsUser(any(), any());
         when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(
                 mDevicePolicyManagerMock);
@@ -500,9 +491,7 @@
 
     @Test
     public void getDevicePolicy_returnsCustom() {
-        VirtualDeviceParams params = new VirtualDeviceParams
-                .Builder()
-                .setBlockedActivities(getBlockedActivities())
+        VirtualDeviceParams params = new VirtualDeviceParams.Builder()
                 .setDevicePolicy(POLICY_TYPE_SENSORS, DEVICE_POLICY_CUSTOM)
                 .build();
         mDeviceImpl.close();
@@ -516,9 +505,7 @@
 
     @Test
     public void getDevicePolicy_defaultRecentsPolicy_gwpcCanShowRecentsOnHostDevice() {
-        VirtualDeviceParams params = new VirtualDeviceParams
-                .Builder()
-                .build();
+        VirtualDeviceParams params = new VirtualDeviceParams.Builder().build();
         mDeviceImpl.close();
         mDeviceImpl = createVirtualDevice(VIRTUAL_DEVICE_ID_1, DEVICE_OWNER_UID_1, params);
         addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
@@ -530,8 +517,7 @@
 
     @Test
     public void getDevicePolicy_customRecentsPolicy_gwpcCannotShowRecentsOnHostDevice() {
-        VirtualDeviceParams params = new VirtualDeviceParams
-                .Builder()
+        VirtualDeviceParams params = new VirtualDeviceParams.Builder()
                 .setDevicePolicy(POLICY_TYPE_RECENTS, DEVICE_POLICY_CUSTOM)
                 .build();
         mDeviceImpl.close();
@@ -545,8 +531,7 @@
 
     @Test
     public void getDevicePolicy_customRecentsPolicy_untrustedDisplaygwpcShowsRecentsOnHostDevice() {
-        VirtualDeviceParams params = new VirtualDeviceParams
-                .Builder()
+        VirtualDeviceParams params = new VirtualDeviceParams.Builder()
                 .setDevicePolicy(POLICY_TYPE_RECENTS, DEVICE_POLICY_CUSTOM)
                 .build();
         mDeviceImpl.close();
@@ -1017,8 +1002,7 @@
     public void onVirtualDisplayCreatedLocked_duplicateCalls_onlyOneWakeLockIsAcquired()
             throws RemoteException {
         addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1, Display.FLAG_TRUSTED);
-        assertThrows(IllegalStateException.class,
-                () -> addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1));
+        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1, Display.FLAG_TRUSTED);
         TestableLooper.get(this).processAllMessages();
         verify(mIPowerManagerMock).acquireWakeLock(any(Binder.class), anyInt(),
                 nullable(String.class), nullable(String.class), nullable(WorkSource.class),
@@ -1582,7 +1566,7 @@
     }
 
     @Test
-    public void openNonBlockedAppOnVirtualDisplay_doesNotStartBlockedAlertActivity() {
+    public void openNonBlockedAppOnVirtualDisplay_succeeds() {
         addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
         GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
                 DISPLAY_ID_1);
@@ -1604,163 +1588,7 @@
     }
 
     @Test
-    public void openPermissionControllerOnVirtualDisplay_startBlockedAlertActivity() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                PERMISSION_CONTROLLER_PACKAGE_NAME,
-                PERMISSION_CONTROLLER_PACKAGE_NAME,
-                /* displayOnRemoteDevices */  false,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openPermissionControllerOnVirtualDisplay_displayOnRemoteDevices_starts() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                PERMISSION_CONTROLLER_PACKAGE_NAME,
-                PERMISSION_CONTROLLER_PACKAGE_NAME,
-                /* displayOnRemoveDevices */ true,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext, never()).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openPermissionControllerOnVirtualDisplay_dontDisplayOnRemoteDevices_starts() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                PERMISSION_CONTROLLER_PACKAGE_NAME,
-                PERMISSION_CONTROLLER_PACKAGE_NAME,
-                /* displayOnRemoveDevices */ false,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openSettingsOnVirtualDisplay_startBlockedAlertActivity() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                SETTINGS_PACKAGE_NAME,
-                SETTINGS_PACKAGE_NAME,
-                /* displayOnRemoteDevices */ true,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openVendingOnVirtualDisplay_startBlockedAlertActivity() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                VENDING_PACKAGE_NAME,
-                VENDING_PACKAGE_NAME,
-                /* displayOnRemoteDevices */ true,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openGoogleDialerOnVirtualDisplay_startBlockedAlertActivity() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                GOOGLE_DIALER_PACKAGE_NAME,
-                GOOGLE_DIALER_PACKAGE_NAME,
-                /* displayOnRemoteDevices */ true,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openGoogleMapsOnVirtualDisplay_startBlockedAlertActivity() {
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
-        ActivityInfo activityInfo = getActivityInfo(
-                GOOGLE_MAPS_PACKAGE_NAME,
-                GOOGLE_MAPS_PACKAGE_NAME,
-                /* displayOnRemoteDevices */ true,
-                /* targetDisplayCategory */ null);
-        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
-                activityInfo, mAssociationInfo.getDisplayName());
-        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null);
-
-        verify(mContext).startActivityAsUser(argThat(intent ->
-                intent.filterEquals(blockedAppIntent)), any(), any());
-    }
-
-    @Test
-    public void openNonBlockedAppOnMirrorDisplay_flagEnabled_cannotBeLaunched() {
-        when(mDisplayManagerInternalMock.getDisplayIdToMirror(anyInt()))
-                .thenReturn(Display.DEFAULT_DISPLAY);
+    public void openNonBlockedAppOnVirtualDisplay_cannotDisplayOnRemoteDevices_blocked() {
         addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
         GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
                 DISPLAY_ID_1);
@@ -1769,16 +1597,37 @@
         ActivityInfo activityInfo = getActivityInfo(
                 NONBLOCKED_APP_PACKAGE_NAME,
                 NONBLOCKED_APP_PACKAGE_NAME,
-                /* displayOnRemoteDevices */ true,
+                /* displayOnRemoteDevices */ false,
                 /* targetDisplayCategory */ null);
-        assertThat(gwpc.canActivityBeLaunched(activityInfo, null,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null))
-                .isFalse();
-        // Verify that BlockedAppStreamingActivity also doesn't launch for mirror displays.
         Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
                 activityInfo, mAssociationInfo.getDisplayName());
-        verify(mContext, never()).startActivityAsUser(argThat(intent ->
+        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
+                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
+                /* isResultExpected = */ false, /* intentSender= */ null);
+
+        verify(mContext).startActivityAsUser(argThat(intent ->
+                intent.filterEquals(blockedAppIntent)), any(), any());
+    }
+
+    @Test
+    public void openBlockedAppOnVirtualDisplay_blocked() {
+        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
+        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
+                DISPLAY_ID_1);
+        doNothing().when(mContext).startActivityAsUser(any(), any(), any());
+
+        ActivityInfo activityInfo = getActivityInfo(
+                BLOCKED_APP_PACKAGE_NAME,
+                BLOCKED_APP_PACKAGE_NAME,
+                /* displayOnRemoteDevices */ true,
+                /* targetDisplayCategory */ null);
+        Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
+                activityInfo, mAssociationInfo.getDisplayName());
+        gwpc.canActivityBeLaunched(activityInfo, blockedAppIntent,
+                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
+                /* isResultExpected = */ false, /* intentSender= */ null);
+
+        verify(mContext).startActivityAsUser(argThat(intent ->
                 intent.filterEquals(blockedAppIntent)), any(), any());
     }
 
@@ -1811,27 +1660,6 @@
     }
 
     @Test
-    public void canActivityBeLaunched_permissionDialog_isStreamed() {
-        VirtualDeviceParams params = new VirtualDeviceParams.Builder().build();
-        mDeviceImpl.close();
-        mDeviceImpl = createVirtualDevice(VIRTUAL_DEVICE_ID_1, DEVICE_OWNER_UID_1, params);
-
-        addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
-        GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
-                DISPLAY_ID_1);
-        ComponentName permissionComponent = getPermissionDialogComponent();
-        ActivityInfo activityInfo = getActivityInfo(
-                permissionComponent.getPackageName(),
-                permissionComponent.getClassName(),
-                /* displayOnRemoteDevices */ true,
-                /* targetDisplayCategory */ null);
-        assertThat(gwpc.canActivityBeLaunched(activityInfo, null,
-                WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
-                /* isResultExpected = */ false, /* intentSender= */ null))
-                .isTrue();
-    }
-
-    @Test
     public void canActivityBeLaunched_activityCanLaunch() {
         Intent intent = new Intent(ACTION_VIEW, Uri.parse(TEST_SITE));
         addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
@@ -2009,7 +1837,7 @@
 
     private VirtualDeviceImpl createVirtualDevice(int virtualDeviceId, int ownerUid) {
         VirtualDeviceParams params = new VirtualDeviceParams.Builder()
-                .setBlockedActivities(getBlockedActivities())
+                .setBlockedActivities(BLOCKED_ACTIVITIES)
                 .build();
         return createVirtualDevice(virtualDeviceId, ownerUid, params);
     }
@@ -2047,8 +1875,6 @@
     }
 
     private void addVirtualDisplay(VirtualDeviceImpl virtualDevice, int displayId, int flags) {
-        when(mDisplayManagerInternalMock.createVirtualDisplay(any(), eq(mVirtualDisplayCallback),
-                eq(virtualDevice), any(), any())).thenReturn(displayId);
         final String uniqueId = UNIQUE_ID + displayId;
         doAnswer(inv -> {
             final DisplayInfo displayInfo = new DisplayInfo();
@@ -2056,15 +1882,23 @@
             displayInfo.flags = flags;
             return displayInfo;
         }).when(mDisplayManagerInternalMock).getDisplayInfo(eq(displayId));
-        virtualDevice.createVirtualDisplay(VIRTUAL_DISPLAY_CONFIG, mVirtualDisplayCallback);
-        mInputManagerMockHelper.addDisplayIdMapping(uniqueId, displayId);
-    }
 
-    private ComponentName getPermissionDialogComponent() {
-        Intent intent = new Intent(ACTION_REQUEST_PERMISSIONS);
-        PackageManager packageManager = mContext.getPackageManager();
-        intent.setPackage(packageManager.getPermissionControllerPackageName());
-        return intent.resolveActivity(packageManager);
+        when(mDisplayManagerInternalMock.createVirtualDisplay(any(), eq(mVirtualDisplayCallback),
+                eq(virtualDevice), any(), any())).thenAnswer(inv -> {
+                    mLocalService.onVirtualDisplayCreated(
+                            virtualDevice, displayId, mVirtualDisplayCallback, inv.getArgument(3));
+                    return displayId;
+                });
+
+        final int virtualDisplayFlags = (flags & Display.FLAG_TRUSTED) == 0
+                ? 0
+                : DisplayManager.VIRTUAL_DISPLAY_FLAG_TRUSTED;
+        VirtualDisplayConfig virtualDisplayConfig =
+                new VirtualDisplayConfig.Builder("virtual_display", 640, 480, 400)
+                        .setFlags(virtualDisplayFlags)
+                        .build();
+        virtualDevice.createVirtualDisplay(virtualDisplayConfig, mVirtualDisplayCallback);
+        mInputManagerMockHelper.addDisplayIdMapping(uniqueId, displayId);
     }
 
     private AssociationInfo createAssociationInfo(int associationId, String deviceProfile) {
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java
index 587f437..108cd67 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java
@@ -627,6 +627,7 @@
         assertMessageValidity("4F:81:13:05").isEqualTo(ERROR_PARAMETER);
         assertMessageValidity("4F:86:10:14").isEqualTo(ERROR_PARAMETER);
         assertMessageValidity("0F:86:10:24").isEqualTo(ERROR_PARAMETER);
+        assertMessageValidity("8F:86:FF:FF").isEqualTo(ERROR_PARAMETER);
     }
 
     @Test
diff --git a/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java b/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java
index 2e489a8..a4e77c0 100644
--- a/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java
+++ b/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java
@@ -19,17 +19,25 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.hardware.contexthub.EndpointInfo;
+import android.hardware.contexthub.ErrorCode;
 import android.hardware.contexthub.HubEndpointInfo;
 import android.hardware.contexthub.HubEndpointInfo.HubEndpointIdentifier;
+import android.hardware.contexthub.HubMessage;
 import android.hardware.contexthub.IContextHubEndpoint;
 import android.hardware.contexthub.IContextHubEndpointCallback;
 import android.hardware.contexthub.IEndpointCommunication;
+import android.hardware.contexthub.MessageDeliveryStatus;
+import android.hardware.contexthub.Reason;
 import android.os.Binder;
 import android.os.RemoteException;
-import android.platform.test.annotations.Postsubmit;
+import android.platform.test.annotations.Presubmit;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
@@ -38,6 +46,7 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -45,8 +54,7 @@
 import java.util.Collections;
 
 @RunWith(AndroidJUnit4.class)
-@Postsubmit
-// TODO(b/378944402): Enable test in presubmit
+@Presubmit
 public class ContextHubEndpointTest {
     private static final int SESSION_ID_RANGE = ContextHubEndpointManager.SERVICE_SESSION_RANGE;
     private static final int MIN_SESSION_ID = 0;
@@ -56,6 +64,9 @@
     private static final int ENDPOINT_ID = 1;
     private static final String ENDPOINT_PACKAGE_NAME = "com.android.server.location.contexthub";
 
+    private static final String TARGET_ENDPOINT_NAME = "Example target endpoint";
+    private static final int TARGET_ENDPOINT_ID = 1;
+
     private ContextHubClientManager mClientManager;
     private ContextHubEndpointManager mEndpointManager;
     private HubInfoRegistry mHubInfoRegistry;
@@ -90,23 +101,8 @@
 
     @Test
     public void testRegisterEndpoint() throws RemoteException {
-        // Register an endpoint and confirm we can get a valid IContextHubEndoint reference
-        HubEndpointInfo info =
-                new HubEndpointInfo(
-                        ENDPOINT_NAME, ENDPOINT_ID, ENDPOINT_PACKAGE_NAME, Collections.emptyList());
-        IContextHubEndpoint endpoint =
-                mEndpointManager.registerEndpoint(
-                        info, mMockCallback, ENDPOINT_PACKAGE_NAME, /* attributionTag= */ null);
-        assertThat(mEndpointManager.getNumRegisteredClients()).isEqualTo(1);
-        assertThat(endpoint).isNotNull();
-        HubEndpointInfo assignedInfo = endpoint.getAssignedHubEndpointInfo();
-        assertThat(assignedInfo).isNotNull();
-        HubEndpointIdentifier assignedIdentifier = assignedInfo.getIdentifier();
-        assertThat(assignedIdentifier).isNotNull();
-
-        // Unregister the endpoint and confirm proper clean-up
-        mEndpointManager.unregisterEndpoint(assignedIdentifier.getEndpoint());
-        assertThat(mEndpointManager.getNumRegisteredClients()).isEqualTo(0);
+        IContextHubEndpoint endpoint = registerExampleEndpoint();
+        unregisterExampleEndpoint(endpoint);
     }
 
     @Test
@@ -121,4 +117,127 @@
         mEndpointManager.returnSessionId(sessionId);
         assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE);
     }
+
+    @Test
+    public void testInvalidMessageReceivedCallback() throws RemoteException {
+        // Send an invalid call to onMessageReceived (no sessions created)
+        final int messageType = 1234;
+        final int sessionId = 4321;
+        final int sequenceNumber = 5678;
+        HubMessage message =
+                new HubMessage.Builder(messageType, new byte[0]).setResponseRequired(true).build();
+        message.setMessageSequenceNumber(sequenceNumber);
+        mEndpointManager.onMessageReceived(sessionId, message);
+
+        // Confirm that we can get a delivery status with DESTINATION_NOT_FOUND error
+        ArgumentCaptor<MessageDeliveryStatus> statusCaptor =
+                ArgumentCaptor.forClass(MessageDeliveryStatus.class);
+        verify(mMockEndpointCommunications)
+                .sendMessageDeliveryStatusToEndpoint(eq(sessionId), statusCaptor.capture());
+        assertThat(statusCaptor.getValue().messageSequenceNumber).isEqualTo(sequenceNumber);
+        assertThat(statusCaptor.getValue().errorCode).isEqualTo(ErrorCode.DESTINATION_NOT_FOUND);
+    }
+
+    @Test
+    public void testHalRestart() throws RemoteException {
+        IContextHubEndpoint endpoint = registerExampleEndpoint();
+
+        // Verify that the endpoint is still registered after a HAL restart
+        HubEndpointInfo assignedInfo = endpoint.getAssignedHubEndpointInfo();
+        HubEndpointIdentifier assignedIdentifier = assignedInfo.getIdentifier();
+        mEndpointManager.onHalRestart();
+        ArgumentCaptor<EndpointInfo> statusCaptor = ArgumentCaptor.forClass(EndpointInfo.class);
+        verify(mMockEndpointCommunications, times(2)).registerEndpoint(statusCaptor.capture());
+        assertThat(statusCaptor.getValue().id.id).isEqualTo(assignedIdentifier.getEndpoint());
+        assertThat(statusCaptor.getValue().id.hubId).isEqualTo(assignedIdentifier.getHub());
+
+        unregisterExampleEndpoint(endpoint);
+    }
+
+    @Test
+    public void testHalRestartOnOpenSession() throws RemoteException {
+        assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE);
+        IContextHubEndpoint endpoint = registerExampleEndpoint();
+
+        HubEndpointInfo targetInfo =
+                new HubEndpointInfo(
+                        TARGET_ENDPOINT_NAME,
+                        TARGET_ENDPOINT_ID,
+                        ENDPOINT_PACKAGE_NAME,
+                        Collections.emptyList());
+        int sessionId = endpoint.openSession(targetInfo, /* serviceDescriptor= */ null);
+        mEndpointManager.onEndpointSessionOpenComplete(sessionId);
+        assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE - 1);
+
+        mEndpointManager.onHalRestart();
+
+        HubEndpointInfo assignedInfo = endpoint.getAssignedHubEndpointInfo();
+        HubEndpointIdentifier assignedIdentifier = assignedInfo.getIdentifier();
+        ArgumentCaptor<EndpointInfo> statusCaptor = ArgumentCaptor.forClass(EndpointInfo.class);
+        verify(mMockEndpointCommunications, times(2)).registerEndpoint(statusCaptor.capture());
+        assertThat(statusCaptor.getValue().id.id).isEqualTo(assignedIdentifier.getEndpoint());
+        assertThat(statusCaptor.getValue().id.hubId).isEqualTo(assignedIdentifier.getHub());
+
+        verify(mMockCallback)
+                .onSessionClosed(
+                        sessionId, ContextHubServiceUtil.toAppHubEndpointReason(Reason.HUB_RESET));
+
+        unregisterExampleEndpoint(endpoint);
+        assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE);
+    }
+
+    @Test
+    public void testOpenSessionOnUnregistration() throws RemoteException {
+        assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE);
+        IContextHubEndpoint endpoint = registerExampleEndpoint();
+
+        HubEndpointInfo targetInfo =
+                new HubEndpointInfo(
+                        TARGET_ENDPOINT_NAME,
+                        TARGET_ENDPOINT_ID,
+                        ENDPOINT_PACKAGE_NAME,
+                        Collections.emptyList());
+        int sessionId = endpoint.openSession(targetInfo, /* serviceDescriptor= */ null);
+        mEndpointManager.onEndpointSessionOpenComplete(sessionId);
+        assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE - 1);
+
+        unregisterExampleEndpoint(endpoint);
+        verify(mMockEndpointCommunications).closeEndpointSession(sessionId, Reason.ENDPOINT_GONE);
+        assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE);
+    }
+
+    private IContextHubEndpoint registerExampleEndpoint() throws RemoteException {
+        HubEndpointInfo info =
+                new HubEndpointInfo(
+                        ENDPOINT_NAME, ENDPOINT_ID, ENDPOINT_PACKAGE_NAME, Collections.emptyList());
+        IContextHubEndpoint endpoint =
+                mEndpointManager.registerEndpoint(
+                        info, mMockCallback, ENDPOINT_PACKAGE_NAME, /* attributionTag= */ null);
+        assertThat(endpoint).isNotNull();
+        HubEndpointInfo assignedInfo = endpoint.getAssignedHubEndpointInfo();
+        assertThat(assignedInfo).isNotNull();
+        HubEndpointIdentifier assignedIdentifier = assignedInfo.getIdentifier();
+        assertThat(assignedIdentifier).isNotNull();
+
+        // Confirm registerEndpoint was called with the right contents
+        ArgumentCaptor<EndpointInfo> statusCaptor = ArgumentCaptor.forClass(EndpointInfo.class);
+        verify(mMockEndpointCommunications).registerEndpoint(statusCaptor.capture());
+        assertThat(statusCaptor.getValue().id.id).isEqualTo(assignedIdentifier.getEndpoint());
+        assertThat(statusCaptor.getValue().id.hubId).isEqualTo(assignedIdentifier.getHub());
+        assertThat(mEndpointManager.getNumRegisteredClients()).isEqualTo(1);
+
+        return endpoint;
+    }
+
+    private void unregisterExampleEndpoint(IContextHubEndpoint endpoint) throws RemoteException {
+        HubEndpointInfo expectedInfo = endpoint.getAssignedHubEndpointInfo();
+        endpoint.unregister();
+        ArgumentCaptor<EndpointInfo> statusCaptor = ArgumentCaptor.forClass(EndpointInfo.class);
+        verify(mMockEndpointCommunications).unregisterEndpoint(statusCaptor.capture());
+        assertThat(statusCaptor.getValue().id.id)
+                .isEqualTo(expectedInfo.getIdentifier().getEndpoint());
+        assertThat(statusCaptor.getValue().id.hubId)
+                .isEqualTo(expectedInfo.getIdentifier().getHub());
+        assertThat(mEndpointManager.getNumRegisteredClients()).isEqualTo(0);
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayConstraintsTests.java b/services/tests/servicestests/src/com/android/server/om/OverlayConstraintsTests.java
new file mode 100644
index 0000000..b2e296a
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayConstraintsTests.java
@@ -0,0 +1,195 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.om;
+
+import static android.content.Context.DEVICE_ID_DEFAULT;
+import static android.content.om.OverlayConstraint.TYPE_DEVICE_ID;
+import static android.content.om.OverlayConstraint.TYPE_DISPLAY_ID;
+import static android.view.Display.DEFAULT_DISPLAY;
+
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
+
+import static org.testng.Assert.assertThrows;
+
+import android.content.om.FabricatedOverlay;
+import android.content.om.OverlayConstraint;
+import android.content.om.OverlayIdentifier;
+import android.content.om.OverlayInfo;
+import android.content.om.OverlayManager;
+import android.content.om.OverlayManagerTransaction;
+import android.content.res.Flags;
+import android.os.UserHandle;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.util.TypedValue;
+
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Collections;
+import java.util.List;
+
+@RunWith(JUnitParamsRunner.class)
+public class OverlayConstraintsTests {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private OverlayManager mOverlayManager;
+    private UserHandle mUserHandle;
+    private OverlayIdentifier mOverlayIdentifier = null;
+
+    @Before
+    public void setUp() throws Exception {
+        mOverlayManager = getApplicationContext().getSystemService(OverlayManager.class);
+        mUserHandle = UserHandle.of(UserHandle.myUserId());
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        if (mOverlayIdentifier != null) {
+            OverlayManagerTransaction transaction =
+                    new OverlayManagerTransaction.Builder()
+                            .unregisterFabricatedOverlay(mOverlayIdentifier)
+                            .build();
+            mOverlayManager.commit(transaction);
+            mOverlayIdentifier = null;
+        }
+    }
+
+    @Test
+    public void createOverlayConstraint_withInvalidType_fails() {
+        assertThrows(IllegalArgumentException.class,
+                () -> new OverlayConstraint(500 /* type */, 1 /* value */));
+    }
+
+    @Test
+    public void createOverlayConstraint_withInvalidValue_fails() {
+        assertThrows(IllegalArgumentException.class,
+                () -> new OverlayConstraint(TYPE_DEVICE_ID, -1 /* value */));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_RRO_CONSTRAINTS)
+    public void enableOverlayWithNullConstraints_fails() {
+        FabricatedOverlay fabricatedOverlay = createFabricatedOverlay();
+        assertThrows(NullPointerException.class,
+                () -> mOverlayManager.commit(new OverlayManagerTransaction.Builder()
+                        .registerFabricatedOverlay(fabricatedOverlay)
+                        .setEnabled(fabricatedOverlay.getIdentifier(), true /* enable */,
+                                null /* constraints */)
+                        .build()));
+    }
+
+    @Test
+    @Parameters(method = "getAllConstraintLists")
+    @RequiresFlagsEnabled(Flags.FLAG_RRO_CONSTRAINTS)
+    public void enableOverlayWithConstraints_writesConstraintsIntoOverlayInfo(
+            List<OverlayConstraint> constraints) throws Exception {
+        enableOverlay(constraints);
+
+        OverlayInfo overlayInfo = mOverlayManager.getOverlayInfo(mOverlayIdentifier, mUserHandle);
+        assertNotNull(overlayInfo);
+        assertEquals(constraints, overlayInfo.getConstraints());
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_RRO_CONSTRAINTS)
+    public void disableOverlayWithConstraints_fails() throws Exception {
+        FabricatedOverlay fabricatedOverlay = createFabricatedOverlay();
+        assertThrows(SecurityException.class,
+                () -> mOverlayManager.commit(new OverlayManagerTransaction.Builder()
+                        .registerFabricatedOverlay(fabricatedOverlay)
+                        .setEnabled(fabricatedOverlay.getIdentifier(), false /* enable */,
+                                List.of(new OverlayConstraint(TYPE_DISPLAY_ID, DEFAULT_DISPLAY)))
+                        .build()));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_RRO_CONSTRAINTS)
+    public void enableOverlayWithNewConstraints_updatesConstraintsIntoOverlayInfo()
+            throws Exception {
+        List<OverlayConstraint> constraints1 =
+                List.of(new OverlayConstraint(TYPE_DISPLAY_ID, 1 /* value*/));
+        enableOverlay(constraints1);
+
+        OverlayInfo overlayInfo1 = mOverlayManager.getOverlayInfo(mOverlayIdentifier, mUserHandle);
+        assertNotNull(overlayInfo1);
+        assertEquals(constraints1, overlayInfo1.getConstraints());
+
+        List<OverlayConstraint> constraints2 = List.of(
+                new OverlayConstraint(TYPE_DISPLAY_ID, 2 /* value */));
+        enableOverlay(constraints2);
+
+        OverlayInfo overlayInfo2 = mOverlayManager.getOverlayInfo(mOverlayIdentifier, mUserHandle);
+        assertNotNull(overlayInfo2);
+        assertEquals(overlayInfo1.overlayName, overlayInfo2.overlayName);
+        assertEquals(overlayInfo1.targetPackageName, overlayInfo2.targetPackageName);
+        assertEquals(overlayInfo1.packageName, overlayInfo2.packageName);
+        assertEquals(constraints2, overlayInfo2.getConstraints());
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_RRO_CONSTRAINTS)
+    public void enableOverlayWithConstraints_fails() throws Exception {
+        assertThrows(SecurityException.class, () -> enableOverlay(
+                List.of(new OverlayConstraint(TYPE_DISPLAY_ID, DEFAULT_DISPLAY))));
+    }
+
+    private FabricatedOverlay createFabricatedOverlay() {
+        String packageName = getApplicationContext().getPackageName();
+        FabricatedOverlay fabricatedOverlay = new FabricatedOverlay.Builder(
+                packageName, "testOverlay" /* name */, packageName)
+                .build();
+        fabricatedOverlay.setResourceValue("string/module_2_name" /* resourceName */,
+                TypedValue.TYPE_STRING, "hello" /* value */, null /* configuration */);
+        return fabricatedOverlay;
+    }
+
+    private void enableOverlay(List<OverlayConstraint> constraints) {
+        FabricatedOverlay fabricatedOverlay = createFabricatedOverlay();
+        OverlayManagerTransaction transaction =
+                new OverlayManagerTransaction.Builder()
+                        .registerFabricatedOverlay(fabricatedOverlay)
+                        .setEnabled(fabricatedOverlay.getIdentifier(), true /* enable */,
+                                constraints)
+                        .build();
+        mOverlayManager.commit(transaction);
+        mOverlayIdentifier = fabricatedOverlay.getIdentifier();
+    }
+
+    private static List<OverlayConstraint>[] getAllConstraintLists() {
+        return new List[]{
+                Collections.emptyList(),
+                List.of(new OverlayConstraint(TYPE_DISPLAY_ID, DEFAULT_DISPLAY)),
+                List.of(new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID_DEFAULT)),
+                List.of(new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID_DEFAULT),
+                        new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID_DEFAULT))
+        };
+    }
+}
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 ec61b87..0818db1 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 org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.Collections;
 import java.util.Set;
 import java.util.function.Consumer;
 
@@ -203,7 +204,7 @@
 
         // Overlay priority changing between reboots should not affect enable state of mutable
         // overlays.
-        impl.setEnabled(IDENTIFIER, true, USER);
+        impl.setEnabled(IDENTIFIER, true, USER, Collections.emptyList() /* constraints */);
 
         // Reorder the overlays
         configureSystemOverlay(OVERLAY, ConfigState.MUTABLE_DISABLED, 1 /* priority */);
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTests.java b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTests.java
index 578b888..e46a806 100644
--- a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTests.java
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTests.java
@@ -16,10 +16,14 @@
 
 package com.android.server.om;
 
+import static android.content.Context.DEVICE_ID_DEFAULT;
+import static android.content.om.OverlayConstraint.TYPE_DEVICE_ID;
+import static android.content.om.OverlayConstraint.TYPE_DISPLAY_ID;
 import static android.content.om.OverlayInfo.STATE_DISABLED;
 import static android.content.om.OverlayInfo.STATE_ENABLED;
 import static android.content.om.OverlayInfo.STATE_MISSING_TARGET;
 import static android.os.OverlayablePolicy.CONFIG_SIGNATURE;
+import static android.view.Display.DEFAULT_DISPLAY;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -27,21 +31,30 @@
 import static org.junit.Assert.assertTrue;
 import static org.testng.Assert.assertThrows;
 
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayIdentifier;
 import android.content.om.OverlayInfo;
 import android.content.pm.UserPackage;
+import android.content.res.Flags;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
-import androidx.test.runner.AndroidJUnit4;
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
 
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(JUnitParamsRunner.class)
 public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTestsBase {
 
     private static final String OVERLAY = "com.test.overlay";
@@ -62,6 +75,9 @@
     private static final String CERT_CONFIG_OK = "config_certificate_ok";
     private static final String CERT_CONFIG_NOK = "config_certificate_nok";
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Test
     public void testGetOverlayInfo() throws Exception {
         installAndAssert(overlay(OVERLAY, TARGET), USER,
@@ -176,7 +192,8 @@
                 Set.of(UserPackage.of(USER, TARGET)));
         assertState(STATE_DISABLED, IDENTIFIER, USER);
 
-        assertEquals(impl.setEnabled(IDENTIFIER, true, USER),
+        assertEquals(impl.setEnabled(IDENTIFIER, true /* enable */, USER,
+                        Collections.emptyList() /* constraints */),
                 Set.of(UserPackage.of(USER, TARGET)));
         assertState(STATE_ENABLED, IDENTIFIER, USER);
 
@@ -213,22 +230,17 @@
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_RRO_CONSTRAINTS)
     public void testSetEnabledAtVariousConditions() throws Exception {
-        final OverlayManagerServiceImpl impl = getImpl();
-        assertThrows(OverlayManagerServiceImpl.OperationFailedException.class,
-                () -> impl.setEnabled(IDENTIFIER, true, USER));
+        testSetEnabledAtVariousConditions(Collections.emptyList());
+    }
 
-        // request succeeded, and there was a change that needs to be
-        // propagated to the rest of the system
-        installAndAssert(target(TARGET), USER,
-                Set.of(UserPackage.of(USER, TARGET)));
-        installAndAssert(overlay(OVERLAY, TARGET), USER,
-                Set.of(UserPackage.of(USER, OVERLAY), UserPackage.of(USER, TARGET)));
-        assertEquals(Set.of(UserPackage.of(USER, TARGET)),
-                impl.setEnabled(IDENTIFIER, true, USER));
-
-        // request succeeded, but nothing changed
-        assertEquals(Set.of(), impl.setEnabled(IDENTIFIER, true, USER));
+    @Test
+    @Parameters(method = "getConstraintLists")
+    @RequiresFlagsEnabled(Flags.FLAG_RRO_CONSTRAINTS)
+    public void testSetEnabledAtVariousConditionsWithConstraints(
+            List<OverlayConstraint> constraints) throws Exception {
+        testSetEnabledAtVariousConditions(constraints);
     }
 
     @Test
@@ -338,4 +350,33 @@
                 Set.of(UserPackage.of(USER, TARGET)),
                 Set.of(UserPackage.of(USER, TARGET)));
     }
+
+    private void testSetEnabledAtVariousConditions(final List<OverlayConstraint> constraints)
+            throws Exception {
+        final OverlayManagerServiceImpl impl = getImpl();
+        assertThrows(OverlayManagerServiceImpl.OperationFailedException.class,
+                () -> impl.setEnabled(IDENTIFIER, true /* enable */, USER, constraints));
+
+        // request succeeded, and there was a change that needs to be
+        // propagated to the rest of the system
+        installAndAssert(target(TARGET), USER,
+                Set.of(UserPackage.of(USER, TARGET)));
+        installAndAssert(overlay(OVERLAY, TARGET), USER,
+                Set.of(UserPackage.of(USER, OVERLAY), UserPackage.of(USER, TARGET)));
+        assertEquals(Set.of(UserPackage.of(USER, TARGET)),
+                impl.setEnabled(IDENTIFIER, true /* enable */, USER, constraints));
+
+        // request succeeded, but nothing changed
+        assertEquals(Set.of(), impl.setEnabled(IDENTIFIER, true /* enable */, USER, constraints));
+    }
+
+    private static List<OverlayConstraint>[] getConstraintLists() {
+        return new List[]{
+                Collections.emptyList(),
+                List.of(new OverlayConstraint(TYPE_DISPLAY_ID, DEFAULT_DISPLAY)),
+                List.of(new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID_DEFAULT)),
+                List.of(new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID_DEFAULT),
+                        new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID_DEFAULT))
+        };
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTestsBase.java b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTestsBase.java
index 3e82d45..c69de8d 100644
--- a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTestsBase.java
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTestsBase.java
@@ -32,6 +32,7 @@
 import android.content.pm.UserPackage;
 import android.os.FabricatedOverlayInfo;
 import android.os.FabricatedOverlayInternal;
+import android.os.OverlayConstraint;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -480,7 +481,7 @@
 
         @Override
         String createIdmap(String targetPath, String overlayPath, String overlayName,
-                int policies, boolean enforce, int userId) {
+                int policies, boolean enforce, int userId, OverlayConstraint[] constraints) {
             mIdmapFiles.put(overlayPath, new IdmapHeader(getCrc(targetPath),
                     getCrc(overlayPath), targetPath, overlayName, policies, enforce));
             return overlayPath;
@@ -493,7 +494,7 @@
 
         @Override
         boolean verifyIdmap(String targetPath, String overlayPath, String overlayName, int policies,
-                boolean enforce, int userId) {
+                boolean enforce, int userId, OverlayConstraint[] constraints) {
             final IdmapHeader idmap = mIdmapFiles.get(overlayPath);
             if (idmap == null) {
                 return false;
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java b/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java
index 3f7eac7..ad3855f 100644
--- a/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java
@@ -16,6 +16,8 @@
 
 package com.android.server.om;
 
+import static android.content.om.OverlayConstraint.TYPE_DEVICE_ID;
+import static android.content.om.OverlayConstraint.TYPE_DISPLAY_ID;
 import static android.content.om.OverlayInfo.STATE_DISABLED;
 import static android.content.om.OverlayInfo.STATE_ENABLED;
 
@@ -26,6 +28,9 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+import android.content.om.OverlayConstraint;
 import android.content.om.OverlayIdentifier;
 import android.content.om.OverlayInfo;
 import android.text.TextUtils;
@@ -44,25 +49,32 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.stream.IntStream;
 
 import javax.annotation.Nullable;
 
 @RunWith(AndroidJUnit4.class)
 public class OverlayManagerSettingsTests {
     private OverlayManagerSettings mSettings;
-    private static int USER_0 = 0;
-    private static int USER_1 = 1;
+    private static final int USER_0 = 0;
+    private static final int USER_1 = 1;
 
-    private static OverlayIdentifier OVERLAY_A = new OverlayIdentifier("com.test.overlay_a",
+    private static final int DISPLAY_ID = 1;
+    private static final int DEVICE_ID = 2;
+
+    private static final OverlayConstraint CONSTRAINT_0 =
+            new OverlayConstraint(TYPE_DISPLAY_ID, DISPLAY_ID);
+    private static final OverlayConstraint CONSTRAINT_1 =
+            new OverlayConstraint(TYPE_DEVICE_ID, DEVICE_ID);
+
+    private static final OverlayIdentifier OVERLAY_A = new OverlayIdentifier("com.test.overlay_a",
             null /* overlayName */);
-    private static OverlayIdentifier OVERLAY_B = new OverlayIdentifier("com.test.overlay_b",
+    private static final OverlayIdentifier OVERLAY_B = new OverlayIdentifier("com.test.overlay_b",
             null /* overlayName */);
-    private static OverlayIdentifier OVERLAY_C = new OverlayIdentifier("com.test.overlay_c",
+    private static final OverlayIdentifier OVERLAY_C = new OverlayIdentifier("com.test.overlay_c",
             null /* overlayName */);
 
     private static final OverlayInfo OVERLAY_A_USER0 = createInfo(OVERLAY_A, USER_0);
@@ -72,6 +84,13 @@
     private static final OverlayInfo OVERLAY_A_USER1 = createInfo(OVERLAY_A, USER_1);
     private static final OverlayInfo OVERLAY_B_USER1 = createInfo(OVERLAY_B, USER_1);
 
+    private static final OverlayInfo OVERLAY_A_USER0_WITH_CONSTRAINTS =
+            createInfo(OVERLAY_A, USER_0, List.of(CONSTRAINT_0, CONSTRAINT_1));
+    private static final OverlayInfo OVERLAY_B_USER0_WITH_CONSTRAINTS =
+            createInfo(OVERLAY_B, USER_0, List.of(CONSTRAINT_1));
+    private static final OverlayInfo OVERLAY_B_USER1_WITH_CONSTRAINTS =
+            createInfo(OVERLAY_B, USER_1, List.of(CONSTRAINT_1));
+
     private static final String TARGET_PACKAGE = "com.test.target";
 
     @Before
@@ -228,6 +247,22 @@
                 mSettings.getOverlaysForTarget(OVERLAY_A_USER0.targetPackageName, USER_0));
     }
 
+    @Test
+    public void testSetConstraints() throws Exception {
+        insertSetting(OVERLAY_A_USER0);
+        insertSetting(OVERLAY_B_USER0);
+        assertListsAreEqual(List.of(OVERLAY_A_USER0, OVERLAY_B_USER0),
+                mSettings.getOverlaysForTarget(TARGET_PACKAGE, USER_0));
+
+        assertTrue(mSettings.setConstraints(OVERLAY_A, USER_0,
+                List.of(CONSTRAINT_0, CONSTRAINT_1)));
+        assertTrue(mSettings.setConstraints(OVERLAY_B, USER_0, List.of(CONSTRAINT_1)));
+
+        assertListsAreEqual(
+                List.of(OVERLAY_A_USER0_WITH_CONSTRAINTS, OVERLAY_B_USER0_WITH_CONSTRAINTS),
+                mSettings.getOverlaysForTarget(TARGET_PACKAGE, USER_0));
+    }
+
     // tests: persist and restore
 
     @Test
@@ -291,12 +326,42 @@
     }
 
     @Test
+    public void testPersistWithConstraints() throws Exception {
+        insertSetting(OVERLAY_A_USER0_WITH_CONSTRAINTS);
+        insertSetting(OVERLAY_B_USER1_WITH_CONSTRAINTS);
+
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        mSettings.persist(os);
+        ByteArrayInputStream xml = new ByteArrayInputStream(os.toByteArray());
+
+        assertEquals(1, countXmlTags(xml, "overlays"));
+        assertEquals(2, countXmlTags(xml, "item"));
+        assertEquals(3, countXmlTags(xml, "constraint"));
+        assertEquals(1, countXmlAttributesWhere(xml, "item", "packageName",
+                OVERLAY_A.getPackageName()));
+        assertEquals(1, countXmlAttributesWhere(xml, "item", "packageName",
+                OVERLAY_B.getPackageName()));
+        assertEquals(1, countXmlAttributesWhere(xml, "item", "userId",
+                Integer.toString(USER_0)));
+        assertEquals(1, countXmlAttributesWhere(xml, "item", "userId",
+                Integer.toString(USER_1)));
+        assertEquals(1, countXmlAttributesWhere(xml, "constraint", "type",
+                TYPE_DISPLAY_ID));
+        assertEquals(2, countXmlAttributesWhere(xml, "constraint", "type",
+                TYPE_DEVICE_ID));
+        assertEquals(1, countXmlAttributesWhere(xml, "constraint", "value",
+                DISPLAY_ID));
+        assertEquals(2, countXmlAttributesWhere(xml, "constraint", "value",
+                DEVICE_ID));
+    }
+
+    @Test
     public void testRestoreEmpty() throws Exception {
         final int version = OverlayManagerSettings.Serializer.CURRENT_VERSION;
         final String xml =
                 "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n"
                 + "<overlays version=\"" + version + "\" />\n";
-        ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
+        ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes(UTF_8));
 
         mSettings.restore(is);
         assertDoesNotContain(mSettings, new OverlayIdentifier("com.test.overlay"), 0);
@@ -319,7 +384,7 @@
                 + "      isStatic='false'\n"
                 + "      priority='0' />\n"
                 + "</overlays>\n";
-        ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
+        ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes(UTF_8));
 
         mSettings.restore(is);
         final OverlayIdentifier identifier = new OverlayIdentifier("com.test.overlay", "test");
@@ -332,6 +397,45 @@
         assertEquals(1234, oi.userId);
         assertEquals(STATE_DISABLED, oi.state);
         assertFalse(mSettings.getEnabled(identifier, 1234));
+        assertTrue(oi.constraints.isEmpty());
+    }
+
+    @Test
+    public void testRestoreSingleUserSingleOverlayWithConstraints() throws Exception {
+        final int version = OverlayManagerSettings.Serializer.CURRENT_VERSION;
+        final String xml =
+                "<?xml version='1.0' encoding='utf-8' standalone='yes'?>\n"
+                        + "<overlays version='" + version + "'>\n"
+                        + "<item packageName='com.test.overlay'\n"
+                        + "      overlayName='test'\n"
+                        + "      userId='1234'\n"
+                        + "      targetPackageName='com.test.target'\n"
+                        + "      baseCodePath='/data/app/com.test.overlay-1/base.apk'\n"
+                        + "      state='" + STATE_DISABLED + "'\n"
+                        + "      isEnabled='false'\n"
+                        + "      category='test-category'\n"
+                        + "      isStatic='false'\n"
+                        + "      priority='0' >\n"
+                        + "<constraint type='" + TYPE_DISPLAY_ID + "'\n"
+                        + "      value = '" + DISPLAY_ID + "' />\n"
+                        + "<constraint type='" + TYPE_DEVICE_ID + "'\n"
+                        + "      value = '" + DEVICE_ID + "' />\n"
+                        + "</item>\n"
+                        + "</overlays>\n";
+        ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes(UTF_8));
+
+        mSettings.restore(is);
+        final OverlayIdentifier identifier = new OverlayIdentifier("com.test.overlay", "test");
+        OverlayInfo oi = mSettings.getOverlayInfo(identifier, 1234);
+        assertNotNull(oi);
+        assertEquals("com.test.overlay", oi.packageName);
+        assertEquals("test", oi.overlayName);
+        assertEquals("com.test.target", oi.targetPackageName);
+        assertEquals("/data/app/com.test.overlay-1/base.apk", oi.baseCodePath);
+        assertEquals(1234, oi.userId);
+        assertEquals(STATE_DISABLED, oi.state);
+        assertFalse(mSettings.getEnabled(identifier, 1234));
+        assertListsAreEqual(List.of(CONSTRAINT_0, CONSTRAINT_1), oi.constraints);
     }
 
     @Test
@@ -352,6 +456,24 @@
         assertEquals(OVERLAY_B_USER1, b);
     }
 
+    @Test
+    public void testPersistAndRestoreWithConstraints() throws Exception {
+        insertSetting(OVERLAY_A_USER0_WITH_CONSTRAINTS);
+        insertSetting(OVERLAY_B_USER1_WITH_CONSTRAINTS);
+
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        mSettings.persist(os);
+        ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
+        OverlayManagerSettings newSettings = new OverlayManagerSettings();
+        newSettings.restore(is);
+
+        OverlayInfo a = newSettings.getOverlayInfo(OVERLAY_A, USER_0);
+        assertEquals(OVERLAY_A_USER0_WITH_CONSTRAINTS, a);
+
+        OverlayInfo b = newSettings.getOverlayInfo(OVERLAY_B, USER_1);
+        assertEquals(OVERLAY_B_USER1_WITH_CONSTRAINTS, b);
+    }
+
     private int countXmlTags(InputStream in, String tagToLookFor) throws Exception {
         in.reset();
         int count = 0;
@@ -384,11 +506,30 @@
         return count;
     }
 
+    private int countXmlAttributesWhere(InputStream in, String tag, String attr, int value)
+            throws Exception {
+        in.reset();
+        int count = 0;
+        TypedXmlPullParser parser = Xml.resolvePullParser(in);
+        int event = parser.getEventType();
+        while (event != XmlPullParser.END_DOCUMENT) {
+            if (event == XmlPullParser.START_TAG && tag.equals(parser.getName())) {
+                int v = parser.getAttributeInt(null, attr);
+                if (value == v) {
+                    count++;
+                }
+            }
+            event = parser.next();
+        }
+        return count;
+    }
+
     private void insertSetting(OverlayInfo oi) throws Exception {
         mSettings.init(oi.getOverlayIdentifier(), oi.userId, oi.targetPackageName, null,
                 oi.baseCodePath, true, false,0, oi.category, oi.isFabricated);
         mSettings.setState(oi.getOverlayIdentifier(), oi.userId, oi.state);
         mSettings.setEnabled(oi.getOverlayIdentifier(), oi.userId, false);
+        mSettings.setConstraints(oi.getOverlayIdentifier(), oi.userId, oi.constraints);
     }
 
     private static void assertContains(final OverlayManagerSettings settings,
@@ -417,42 +558,28 @@
     }
 
     private static OverlayInfo createInfo(@NonNull OverlayIdentifier identifier, int userId) {
+        return createInfo(identifier, userId, Collections.emptyList());
+    }
+
+    private static OverlayInfo createInfo(@NonNull OverlayIdentifier identifier, int userId,
+            @NonNull List<OverlayConstraint> constraints) {
         return new OverlayInfo(
                 identifier.getPackageName(),
                 identifier.getOverlayName(),
                 "com.test.target",
-                null,
-                "some-category",
-                "/data/app/" + identifier + "/base.apk",
+                null /* targetOverlayableName */,
+                "some-category" /* category */,
+                "/data/app/" + identifier + "/base.apk" /* baseCodePath */,
                 STATE_DISABLED,
                 userId,
-                0,
-                true,
-                false);
+                0 /* priority */,
+                true /* isMutable */,
+                false /* isFabricated */,
+                constraints);
     }
 
-    private static void assertContains(int[] haystack, int needle) {
-        List<Integer> list = IntStream.of(haystack)
-                .boxed()
-                .collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
-        if (!list.contains(needle)) {
-            fail(String.format("integer array [%s] does not contain value %s",
-                        TextUtils.join(",", list), needle));
-        }
-    }
-
-    private static void assertDoesNotContain(int[] haystack, int needle) {
-        List<Integer> list = IntStream.of(haystack)
-                .boxed()
-                .collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
-        if (list.contains(needle)) {
-            fail(String.format("integer array [%s] contains value %s",
-                        TextUtils.join(",", list), needle));
-        }
-    }
-
-    private static void assertListsAreEqual(
-            @NonNull List<OverlayInfo> expected, @Nullable List<OverlayInfo> actual) {
+    private static <T> void assertListsAreEqual(
+            @NonNull List<T> expected, @Nullable List<T> actual) {
         if (!expected.equals(actual)) {
             fail(String.format("lists [%s] and [%s] differ",
                         TextUtils.join(",", expected), TextUtils.join(",", actual)));
diff --git a/services/tests/servicestests/src/com/android/server/pm/LauncherAppsServiceTest.kt b/services/tests/servicestests/src/com/android/server/pm/LauncherAppsServiceTest.kt
new file mode 100644
index 0000000..aa1487b
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/LauncherAppsServiceTest.kt
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.pm
+
+import android.app.ActivityTaskManager
+import android.content.ComponentName
+import android.content.pm.IPackageManager
+import android.content.pm.PackageManager
+import android.os.RemoteException
+import android.platform.test.annotations.Postsubmit
+import android.view.WindowManager.PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import com.android.server.pm.LauncherAppsService.LauncherAppsImpl.supportsMultiInstance
+import org.junit.Assert.assertEquals
+import org.junit.Assume.assumeTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+
+/**
+ * Unit tests for LauncherAppsService
+ * Run: atest LauncherAppsServiceTest
+ */
+@Postsubmit
+@RunWith(AndroidJUnit4::class)
+class LauncherAppsServiceTest {
+
+    val pm = mock<IPackageManager>()
+
+    @Before
+    fun setup() {
+        assumeTrue(ActivityTaskManager.supportsSplitScreenMultiWindow(
+            InstrumentationRegistry.getInstrumentation().getTargetContext()))
+    }
+
+    @Test
+    @Throws(RemoteException::class)
+    fun supportsMultiInstanceSplit_activityPropertyTrue() {
+        val component = ComponentName(TEST_PACKAGE, TEST_ACTIVITY)
+        val activityProp = PackageManager.Property("", true, "", "")
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(component.className), eq(TEST_OTHER_USER)))
+            .thenReturn(activityProp)
+        val appProp = PackageManager.Property("", false, "", "")
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(null), eq(TEST_OTHER_USER)))
+            .thenReturn(appProp)
+
+        // Expect activity property to override application property
+        assertEquals(true, supportsMultiInstance(pm, component, TEST_OTHER_USER))
+    }
+
+    @Test
+    @Throws(RemoteException::class)
+    fun supportsMultiInstanceSplit_activityPropertyFalseApplicationPropertyTrue() {
+        val component = ComponentName(TEST_PACKAGE, TEST_ACTIVITY)
+        val activityProp = PackageManager.Property("", false, "", "")
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(component.className), eq(TEST_OTHER_USER)))
+            .thenReturn(activityProp)
+        val appProp = PackageManager.Property("", true, "", "")
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(null), eq(TEST_OTHER_USER)))
+            .thenReturn(appProp)
+
+        // Expect activity property to override application property
+        assertEquals(false, supportsMultiInstance(pm, component, TEST_OTHER_USER))
+    }
+
+    @Test
+    @Throws(RemoteException::class)
+    fun supportsMultiInstanceSplit_noActivityPropertyApplicationPropertyTrue() {
+        val component = ComponentName(TEST_PACKAGE, TEST_ACTIVITY)
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(component.className), eq(TEST_OTHER_USER)))
+            .thenThrow(RemoteException())
+        val appProp = PackageManager.Property("", true, "", "")
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(null), eq(TEST_OTHER_USER)))
+            .thenReturn(appProp)
+
+        // Expect fall through to app property
+        assertEquals(true, supportsMultiInstance(pm, component, TEST_OTHER_USER))
+    }
+
+    @Test
+    @Throws(RemoteException::class)
+    fun supportsMultiInstanceSplit_noActivityOrAppProperty() {
+        val component = ComponentName(TEST_PACKAGE, TEST_ACTIVITY)
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(component.className), eq(TEST_OTHER_USER)))
+            .thenThrow(RemoteException())
+        whenever(pm.getPropertyAsUser(eq(PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI),
+            eq(component.packageName), eq(null), eq(TEST_OTHER_USER)))
+            .thenThrow(RemoteException())
+
+        assertEquals(false, supportsMultiInstance(pm, component, TEST_OTHER_USER))
+    }
+
+    companion object {
+        val TEST_PACKAGE = "com.android.server.pm"
+        val TEST_ACTIVITY = "TestActivity"
+        val TEST_OTHER_USER = 1234
+    }
+}
\ No newline at end of file
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java
index 770712a..4101192 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java
@@ -204,7 +204,7 @@
                 .build());
         final Notification n = new Notification.Builder(getContext())
                 .setContentTitle("foo")
-                .setCategory(CATEGORY_ALARM)
+                .setCategory(new String("alarm"))
                 .setSmallIcon(android.R.drawable.sym_def_app_icon)
                 .build();
         NotificationRecord r = getRecord(channel, n);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 03a6ab1..0373eb6 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -24,7 +24,6 @@
 import static android.app.ActivityManagerInternal.ServiceNotificationPolicy.SHOW_IMMEDIATELY;
 import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.Flags.FLAG_KEYGUARD_PRIVATE_NOTIFICATIONS;
-import static android.app.Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS;
 import static android.app.Flags.FLAG_SORT_SECTION_BY_TIME;
 import static android.app.Notification.EXTRA_ALLOW_DURING_SETUP;
 import static android.app.Notification.EXTRA_PICTURE;
@@ -816,6 +815,7 @@
         // make sure PreferencesHelper doesn't try to interact with any real caches
         PreferencesHelper prefHelper = spy(mService.mPreferencesHelper);
         doNothing().when(prefHelper).invalidateNotificationChannelCache();
+        doNothing().when(prefHelper).invalidateNotificationChannelGroupCache();
         mService.setPreferencesHelper(prefHelper);
 
         // Return first true for RoleObserver main-thread check
@@ -5339,7 +5339,8 @@
         mBinderService.getNotificationChannelGroupsFromPrivilegedListener(
                 null, mPkg, Process.myUserHandle());
 
-        verify(mPreferencesHelper, times(1)).getNotificationChannelGroups(anyString(), anyInt());
+        verify(mPreferencesHelper, times(1)).getNotificationChannelGroupsWithoutChannels(
+                anyString(), anyInt());
     }
 
     @Test
@@ -5356,7 +5357,8 @@
             // pass
         }
 
-        verify(mPreferencesHelper, never()).getNotificationChannelGroups(anyString(), anyInt());
+        verify(mPreferencesHelper, never()).getNotificationChannelGroupsWithoutChannels(anyString(),
+                anyInt());
     }
 
     @Test
@@ -5376,7 +5378,8 @@
             // pass
         }
 
-        verify(mPreferencesHelper, never()).getNotificationChannelGroups(anyString(), anyInt());
+        verify(mPreferencesHelper, never()).getNotificationChannelGroupsWithoutChannels(anyString(),
+                anyInt());
     }
 
     @Test
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 e42e10c..3f26cd9 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
@@ -3314,7 +3314,8 @@
                 PKG_N_MR1, UID_N_MR1, nonGroupedNonDeletedChannel.getId(), false));
 
         // notDeleted
-        assertEquals(1, mHelper.getNotificationChannelGroups(PKG_N_MR1, UID_N_MR1).size());
+        assertEquals(1, mHelper.getNotificationChannelGroups(PKG_N_MR1, UID_N_MR1,
+                NotificationChannelGroupsHelper.Params.forAllGroups()).getList().size());
 
         verify(mHandler, never()).requestSort();
 
@@ -3474,7 +3475,7 @@
         assertNull(mHelper.getNotificationDelegate(PKG_O, UID_O));
         assertEquals(0, mHelper.getAppLockedFields(PKG_O, UID_O));
         assertEquals(0, mHelper.getRemovedPkgNotificationChannels(PKG_O, UID_O).size());
-        assertEquals(0, mHelper.getNotificationChannelGroups(PKG_O, UID_O).size());
+        assertEquals(0, mHelper.getNotificationChannelGroupsWithoutChannels(PKG_O, UID_O).size());
 
         NotificationChannel channel = getChannel();
         mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false,
@@ -3496,8 +3497,8 @@
         NotificationChannelGroup ncg = new NotificationChannelGroup("group1", "name1");
         mHelper.createNotificationChannelGroup(PKG_N_MR1, UID_N_MR1, ncg, true,
                 UID_N_MR1, false);
-        assertEquals(ncg,
-                mHelper.getNotificationChannelGroups(PKG_N_MR1, UID_N_MR1).iterator().next());
+        assertEquals(ncg, mHelper.getNotificationChannelGroupsWithoutChannels(PKG_N_MR1,
+                UID_N_MR1).iterator().next());
         verify(mHandler, never()).requestSort();
         assertEquals(1, mLogger.getCalls().size());
         assertEquals(
@@ -6668,7 +6669,7 @@
                 false);
 
         // new channel should invalidate the cache.
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
 
         // when the channel data is updated, should invalidate the cache again after that.
         mHelper.resetCacheInvalidation();
@@ -6676,7 +6677,7 @@
         newChannel.setName("new name");
         newChannel.setImportance(IMPORTANCE_HIGH);
         mHelper.updateNotificationChannel(PKG_N_MR1, UID_N_MR1, newChannel, true, UID_N_MR1, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
 
         // also for conversations
         mHelper.resetCacheInvalidation();
@@ -6688,13 +6689,13 @@
         conv.setConversationId(parentId, convId);
         mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, conv, true, false, UID_N_MR1,
                 false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
 
         mHelper.resetCacheInvalidation();
         NotificationChannel newConv = conv.copy();
         newConv.setName("changed");
         mHelper.updateNotificationChannel(PKG_N_MR1, UID_N_MR1, newConv, true, UID_N_MR1, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
     }
 
     @Test
@@ -6708,14 +6709,14 @@
         mHelper.resetCacheInvalidation();
 
         mHelper.deleteNotificationChannel(PKG_N_MR1, UID_N_MR1, "id", UID_N_MR1, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
 
         // recreate channel and now permanently delete
         mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, channel, true, false, UID_N_MR1,
                 false);
         mHelper.resetCacheInvalidation();
         mHelper.permanentlyDeleteNotificationChannel(PKG_N_MR1, UID_N_MR1, "id");
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
     }
 
     @Test
@@ -6735,12 +6736,12 @@
         mHelper.updateNotificationChannel(PKG_N_MR1, UID_N_MR1, newChannel, true, UID_N_MR1, false);
 
         // because there were no effective changes, we should not see any cache invalidations
-        assertThat(mHelper.hasCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
 
         // deletions of a nonexistent channel also don't change anything
         mHelper.resetCacheInvalidation();
         mHelper.deleteNotificationChannel(PKG_N_MR1, UID_N_MR1, "nonexistent", UID_N_MR1, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
     }
 
     @Test
@@ -6773,24 +6774,24 @@
         NotificationChannel p1u1New = p1u1.copy();
         p1u1New.setName("p1u1 new");
         mHelper.updateNotificationChannel(PKG_O, UID_O, p1u1New, true, UID_O, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
 
         // Do it again, but no change for this user
         mHelper.resetCacheInvalidation();
         mHelper.updateNotificationChannel(PKG_O, UID_O, p1u1New.copy(), true, UID_O, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
 
         // Delete conversations, but for a package without those conversations
         mHelper.resetCacheInvalidation();
         mHelper.deleteConversations(PKG_O, UID_O, Set.of(p2u1Conv.getConversationId()), UID_O,
                 false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
 
         // Now delete conversations for the right package
         mHelper.resetCacheInvalidation();
         mHelper.deleteConversations(PKG_N_MR1, UID_N_MR1, Set.of(p2u1Conv.getConversationId()),
                 UID_N_MR1, false);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
     }
 
     @Test
@@ -6804,7 +6805,8 @@
 
         // delete user 1; should invalidate cache
         mHelper.onUserRemoved(1);
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isTrue();
     }
 
     @Test
@@ -6819,32 +6821,39 @@
         mHelper.resetCacheInvalidation();
         mHelper.onPackagesChanged(true, USER_SYSTEM, new String[]{PKG_N_MR1},
                 new int[]{UID_N_MR1});
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isTrue();
 
-        // re-created: expect cache invalidation again
+        // re-created: expect cache invalidation again, but only specifically for the channel cache,
+        // as creating package preferences wouldn't necessarily affect groups
         mHelper.resetCacheInvalidation();
+        mHelper.onPackagesChanged(false, UID_N_MR1, new String[]{PKG_N_MR1},
+                new int[]{UID_N_MR1});
         mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, channel1, true, false,
                 UID_N_MR1, false);
-        mHelper.onPackagesChanged(false, USER_SYSTEM, new String[]{PKG_N_MR1},
-                new int[]{UID_N_MR1});
-        assertThat(mHelper.hasCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
     }
 
     @Test
     @DisableFlags(android.app.Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
-    public void testInvalidateCache_flagOff_neverTouchesCache() {
+    public void testInvalidateCache_flagOff_neverTouchesCaches() {
         // Do a bunch of channel-changing operations.
         NotificationChannel channel =
                 new NotificationChannel("id", "name1", NotificationManager.IMPORTANCE_HIGH);
         mHelper.createNotificationChannel(PKG_N_MR1, UID_N_MR1, channel, true, false,
                 UID_N_MR1, false);
 
+        // and also a group
+        NotificationChannelGroup ncg = new NotificationChannelGroup("1", "group1");
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg, true, UID_O, false);
+
         NotificationChannel copy = channel.copy();
         copy.setName("name2");
         mHelper.updateNotificationChannel(PKG_N_MR1, UID_N_MR1, copy, true, UID_N_MR1, false);
         mHelper.deleteNotificationChannel(PKG_N_MR1, UID_N_MR1, "id", UID_N_MR1, false);
 
-        assertThat(mHelper.hasCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isFalse();
     }
 
     @Test
@@ -6855,6 +6864,98 @@
         assertThat(channels.getList().size()).isEqualTo(0);
     }
 
+    @Test
+    @EnableFlags(android.app.Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
+    public void testInvalidateGroupCache_onlyChannelsChanged() {
+        // Channels change, but groups don't change; we should invalidate the channel cache, but
+        // not the group cache.
+        NotificationChannelGroup ncg = new NotificationChannelGroup("1", "group1");
+        NotificationChannelGroup ncg2 = new NotificationChannelGroup("2", "group2");
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg, true, UID_O, false);
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg2, true, UID_O, false);
+
+        NotificationChannel channel = new NotificationChannel("id", "name", IMPORTANCE_DEFAULT);
+        channel.setGroup("1");
+        mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false,
+                UID_O, false);
+        mHelper.resetCacheInvalidation();
+
+        // change channel to group 2
+        NotificationChannel copy = channel.copy();
+        copy.setGroup("2");
+        mHelper.updateNotificationChannel(PKG_O, UID_O, copy, true, UID_O, false);
+
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isFalse();
+    }
+
+    @Test
+    @EnableFlags(android.app.Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
+    public void testInvalidateGroupCache_onlyGroupsChanged() {
+        // Group info changes, but the channels associated with the group do not
+        NotificationChannelGroup ncg = new NotificationChannelGroup("1", "group1");
+        NotificationChannelGroup ncg2 = new NotificationChannelGroup("2", "group2");
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg, true, UID_O, false);
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg2, true, UID_O, false);
+
+        NotificationChannel channel = new NotificationChannel("id", "name", IMPORTANCE_DEFAULT);
+        channel.setGroup("1");
+        mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false,
+                UID_O, false);
+        mHelper.resetCacheInvalidation();
+
+        NotificationChannelGroup copy = ncg2.clone();
+        copy.setDescription("hello world");
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, copy, true, UID_O, false);
+
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isTrue();
+    }
+
+    @Test
+    @EnableFlags(android.app.Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
+    public void testInvalidateGroupCache_groupUnchanged() {
+        NotificationChannelGroup ncg = new NotificationChannelGroup("1", "group1");
+        NotificationChannelGroup ncg2 = new NotificationChannelGroup("2", "group2");
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg, true, UID_O, false);
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg2, true, UID_O, false);
+
+        mHelper.resetCacheInvalidation();
+
+        NotificationChannelGroup copy = ncg.clone();
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, copy, true, UID_O, false);
+
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isFalse();
+    }
+
+    @Test
+    @EnableFlags(android.app.Flags.FLAG_NM_BINDER_PERF_CACHE_CHANNELS)
+    public void testInvalidateGroupCache_deletedGroups() {
+        NotificationChannelGroup ncg = new NotificationChannelGroup("1", "group1");
+        NotificationChannelGroup ncg2 = new NotificationChannelGroup("2", "group2");
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg, true, UID_O, false);
+        mHelper.createNotificationChannelGroup(PKG_O, UID_O, ncg2, true, UID_O, false);
+
+        NotificationChannel channel = new NotificationChannel("id", "name", IMPORTANCE_DEFAULT);
+        channel.setGroup("1");
+        mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false,
+                UID_O, false);
+        mHelper.resetCacheInvalidation();
+
+        // delete group 2: group cache should be cleared but not channel cache
+        // (doesn't change channel information)
+        mHelper.deleteNotificationChannelGroup(PKG_O, UID_O, "2", UID_O, false);
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isFalse();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isTrue();
+
+        mHelper.resetCacheInvalidation();
+
+        // Now delete group 1: there is a channel associated, which will also be deleted
+        mHelper.deleteNotificationChannelGroup(PKG_O, UID_O, "1", UID_O, false);
+        assertThat(mHelper.hasChannelCacheBeenInvalidated()).isTrue();
+        assertThat(mHelper.hasGroupCacheBeenInvalidated()).isTrue();
+    }
+
     private static String dumpToString(PreferencesHelper helper) {
         StringWriter sw = new StringWriter();
         try (PrintWriter pw = new PrintWriter(sw)) {
@@ -6868,7 +6969,8 @@
     // interact with the real IpcDataCache, and instead tracks whether or not the cache has been
     // invalidated since creation or the last reset.
     private static class TestPreferencesHelper extends PreferencesHelper {
-        private boolean mCacheInvalidated = false;
+        private boolean mChannelCacheInvalidated = false;
+        private boolean mGroupCacheInvalidated = false;
 
         TestPreferencesHelper(Context context, PackageManager pm, RankingHandler rankingHandler,
                 ZenModeHelper zenHelper, PermissionHelper permHelper, PermissionManager permManager,
@@ -6883,15 +6985,25 @@
 
         @Override
         protected void invalidateNotificationChannelCache() {
-            mCacheInvalidated = true;
+            mChannelCacheInvalidated = true;
         }
 
-        boolean hasCacheBeenInvalidated() {
-            return mCacheInvalidated;
+        @Override
+        protected void invalidateNotificationChannelGroupCache() {
+            mGroupCacheInvalidated = true;
+        }
+
+        boolean hasChannelCacheBeenInvalidated() {
+            return mChannelCacheInvalidated;
+        }
+
+        boolean hasGroupCacheBeenInvalidated() {
+            return mGroupCacheInvalidated;
         }
 
         void resetCacheInvalidation() {
-            mCacheInvalidated = false;
+            mChannelCacheInvalidated = false;
+            mGroupCacheInvalidated = false;
         }
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/policy/KeyGestureEventTests.java b/services/tests/wmtests/src/com/android/server/policy/KeyGestureEventTests.java
index c6b431c..8e2cea7 100644
--- a/services/tests/wmtests/src/com/android/server/policy/KeyGestureEventTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/KeyGestureEventTests.java
@@ -402,9 +402,6 @@
 
     @Test
     @EnableFlags({com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL,
-            com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG,
-            com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG,
-            com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG,
             com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_MOUSE_KEYS})
     @DisableFlags(com.android.hardware.input.Flags.FLAG_USE_KEY_GESTURE_EVENT_HANDLER)
     public void testKeyboardAccessibilityToggleShortcutPress() {
diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java
index c73ce23..32a3b7f 100644
--- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java
@@ -16,6 +16,7 @@
 
 package com.android.server.policy;
 
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
@@ -33,6 +34,8 @@
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+import static com.android.server.policy.PhoneWindowManager.EXTRA_TRIGGER_HUB;
+import static com.android.server.policy.PhoneWindowManager.SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -47,13 +50,20 @@
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.hardware.input.InputManager;
+import android.os.Bundle;
 import android.os.PowerManager;
+import android.os.PowerManagerInternal;
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+import android.service.dreams.DreamManagerInternal;
+import android.testing.TestableContext;
+import android.view.contentprotection.flags.Flags;
 
 import androidx.test.filters.SmallTest;
 
-import com.android.server.LocalServices;
+import com.android.internal.util.test.LocalServiceKeeperRule;
+import com.android.server.input.InputManagerInternal;
 import com.android.server.pm.UserManagerInternal;
 import com.android.server.policy.keyguard.KeyguardServiceDelegate;
 import com.android.server.statusbar.StatusBarManagerInternal;
@@ -66,6 +76,9 @@
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 
 /**
  * Test class for {@link PhoneWindowManager}.
@@ -76,28 +89,62 @@
 @Presubmit
 @SmallTest
 public class PhoneWindowManagerTests {
-
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
+    @Rule
+    public LocalServiceKeeperRule mLocalServiceKeeperRule = new LocalServiceKeeperRule();
+
+    @Rule
+    public final TestableContext mContext = spy(
+            new TestableContext(getInstrumentation().getContext()));
+
     PhoneWindowManager mPhoneWindowManager;
+    @Mock
     private ActivityTaskManagerInternal mAtmInternal;
+    @Mock
+    private DreamManagerInternal mDreamManagerInternal;
+    @Mock
+    private InputManagerInternal mInputManagerInternal;
+    @Mock
+    private PowerManagerInternal mPowerManagerInternal;
+    @Mock
     private StatusBarManagerInternal mStatusBarManagerInternal;
-    private Context mContext;
+    @Mock
+    private UserManagerInternal mUserManagerInternal;
+
+    @Mock
+    private PowerManager mPowerManager;
+    @Mock
+    private DisplayPolicy mDisplayPolicy;
+    @Mock
+    private KeyguardServiceDelegate mKeyguardServiceDelegate;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.POWER_SERVICE)).thenReturn(mPowerManager);
+
         mPhoneWindowManager = spy(new PhoneWindowManager());
         spyOn(ActivityManager.getService());
-        mContext = getInstrumentation().getTargetContext();
-        spyOn(mContext);
-        mAtmInternal = mock(ActivityTaskManagerInternal.class);
-        LocalServices.addService(ActivityTaskManagerInternal.class, mAtmInternal);
+
+        mLocalServiceKeeperRule.overrideLocalService(ActivityTaskManagerInternal.class,
+                mAtmInternal);
         mPhoneWindowManager.mActivityTaskManagerInternal = mAtmInternal;
-        LocalServices.addService(WindowManagerInternal.class, mock(WindowManagerInternal.class));
-        mStatusBarManagerInternal = mock(StatusBarManagerInternal.class);
-        LocalServices.addService(StatusBarManagerInternal.class, mStatusBarManagerInternal);
-        mPhoneWindowManager.mKeyguardDelegate = mock(KeyguardServiceDelegate.class);
+        mLocalServiceKeeperRule.overrideLocalService(DreamManagerInternal.class,
+                mDreamManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(InputManagerInternal.class,
+                mInputManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(PowerManagerInternal.class,
+                mPowerManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(StatusBarManagerInternal.class,
+                mStatusBarManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(UserManagerInternal.class,
+                mUserManagerInternal);
+        mLocalServiceKeeperRule.overrideLocalService(WindowManagerInternal.class,
+                mock(WindowManagerInternal.class));
+
+        mPhoneWindowManager.mKeyguardDelegate = mKeyguardServiceDelegate;
         final InputManager im = mock(InputManager.class);
         doNothing().when(im).registerKeyGestureEventHandler(any());
         doReturn(im).when(mContext).getSystemService(eq(Context.INPUT_SERVICE));
@@ -107,9 +154,6 @@
     public void tearDown() {
         reset(ActivityManager.getService());
         reset(mContext);
-        LocalServices.removeServiceForTest(ActivityTaskManagerInternal.class);
-        LocalServices.removeServiceForTest(WindowManagerInternal.class);
-        LocalServices.removeServiceForTest(StatusBarManagerInternal.class);
     }
 
     @Test
@@ -138,28 +182,20 @@
     public void testScreenTurnedOff() {
         doNothing().when(mPhoneWindowManager).updateSettings(any());
         doNothing().when(mPhoneWindowManager).initializeHdmiState();
-        final boolean[] isScreenTurnedOff = { false };
-        final DisplayPolicy displayPolicy = mock(DisplayPolicy.class);
-        doAnswer(invocation -> isScreenTurnedOff[0] = true).when(displayPolicy).screenTurnedOff(
+        final boolean[] isScreenTurnedOff = {false};
+        doAnswer(invocation -> isScreenTurnedOff[0] = true).when(mDisplayPolicy).screenTurnedOff(
                 anyBoolean());
-        doAnswer(invocation -> !isScreenTurnedOff[0]).when(displayPolicy).isScreenOnEarly();
-        doAnswer(invocation -> !isScreenTurnedOff[0]).when(displayPolicy).isScreenOnFully();
+        doAnswer(invocation -> !isScreenTurnedOff[0]).when(mDisplayPolicy).isScreenOnEarly();
+        doAnswer(invocation -> !isScreenTurnedOff[0]).when(mDisplayPolicy).isScreenOnFully();
 
-        mPhoneWindowManager.mDefaultDisplayPolicy = displayPolicy;
-        mPhoneWindowManager.mDefaultDisplayRotation = mock(DisplayRotation.class);
-        final PowerManager pm = mock(PowerManager.class);
-        doReturn(true).when(pm).isInteractive();
-        doReturn(pm).when(mContext).getSystemService(eq(Context.POWER_SERVICE));
-
-        mContext.getMainThreadHandler().runWithScissors(() -> mPhoneWindowManager.init(
-                new PhoneWindowManager.Injector(mContext,
-                        mock(WindowManagerPolicy.WindowManagerFuncs.class))), 0);
+        when(mPowerManager.isInteractive()).thenReturn(true);
+        initPhoneWindowManager();
         assertThat(isScreenTurnedOff[0]).isFalse();
         assertThat(mPhoneWindowManager.mIsGoingToSleepDefaultDisplay).isFalse();
 
         // Skip sleep-token for non-sleep-screen-off.
         mPhoneWindowManager.screenTurnedOff(DEFAULT_DISPLAY, true /* isSwappingDisplay */);
-        verify(displayPolicy).screenTurnedOff(false /* acquireSleepToken */);
+        verify(mDisplayPolicy).screenTurnedOff(false /* acquireSleepToken */);
         assertThat(isScreenTurnedOff[0]).isTrue();
 
         // Apply sleep-token for sleep-screen-off.
@@ -167,7 +203,7 @@
         mPhoneWindowManager.startedGoingToSleep(DEFAULT_DISPLAY, 0 /* reason */);
         assertThat(mPhoneWindowManager.mIsGoingToSleepDefaultDisplay).isTrue();
         mPhoneWindowManager.screenTurnedOff(DEFAULT_DISPLAY, true /* isSwappingDisplay */);
-        verify(displayPolicy).screenTurnedOff(true /* acquireSleepToken */);
+        verify(mDisplayPolicy).screenTurnedOff(true /* acquireSleepToken */);
 
         mPhoneWindowManager.finishedGoingToSleep(DEFAULT_DISPLAY, 0 /* reason */);
         assertThat(mPhoneWindowManager.mIsGoingToSleepDefaultDisplay).isFalse();
@@ -175,8 +211,7 @@
 
     @Test
     public void testCheckAddPermission_withoutAccessibilityOverlay_noAccessibilityAppOpLogged() {
-        mSetFlagsRule.enableFlags(android.view.contentprotection.flags.Flags
-                .FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED);
+        mSetFlagsRule.enableFlags(Flags.FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED);
         int[] outAppOp = new int[1];
         assertEquals(ADD_OKAY, mPhoneWindowManager.checkAddPermission(TYPE_WALLPAPER,
                 /* isRoundedCornerOverlay= */ false, "test.pkg", outAppOp, DEFAULT_DISPLAY));
@@ -185,8 +220,7 @@
 
     @Test
     public void testCheckAddPermission_withAccessibilityOverlay() {
-        mSetFlagsRule.enableFlags(android.view.contentprotection.flags.Flags
-                .FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED);
+        mSetFlagsRule.enableFlags(Flags.FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED);
         int[] outAppOp = new int[1];
         assertEquals(ADD_OKAY, mPhoneWindowManager.checkAddPermission(TYPE_ACCESSIBILITY_OVERLAY,
                 /* isRoundedCornerOverlay= */ false, "test.pkg", outAppOp, DEFAULT_DISPLAY));
@@ -195,8 +229,7 @@
 
     @Test
     public void testCheckAddPermission_withAccessibilityOverlay_flagDisabled() {
-        mSetFlagsRule.disableFlags(android.view.contentprotection.flags.Flags
-                .FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED);
+        mSetFlagsRule.disableFlags(Flags.FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED);
         int[] outAppOp = new int[1];
         assertEquals(ADD_OKAY, mPhoneWindowManager.checkAddPermission(TYPE_ACCESSIBILITY_OVERLAY,
                 /* isRoundedCornerOverlay= */ false, "test.pkg", outAppOp, DEFAULT_DISPLAY));
@@ -217,10 +250,107 @@
         verify(mStatusBarManagerInternal, never()).dismissKeyboardShortcutsMenu();
     }
 
+    @Test
+    public void powerPress_hubOrDreamOrSleep_goesToSleepFromDream() {
+        when(mDisplayPolicy.isAwake()).thenReturn(true);
+        initPhoneWindowManager();
+
+        // Set power button behavior.
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.POWER_BUTTON_SHORT_PRESS, SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP);
+        mPhoneWindowManager.updateSettings(null);
+
+        // Device is dreaming.
+        when(mDreamManagerInternal.isDreaming()).thenReturn(true);
+
+        // Power button pressed.
+        int eventTime = 0;
+        mPhoneWindowManager.powerPress(eventTime, 1, 0);
+
+        // Device goes to sleep.
+        verify(mPowerManager).goToSleep(eventTime, PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
+    }
+
+    @Test
+    public void powerPress_hubOrDreamOrSleep_hubAvailableLocks() {
+        when(mDisplayPolicy.isAwake()).thenReturn(true);
+        mContext.getTestablePermissions().setPermission(android.Manifest.permission.DEVICE_POWER,
+                PERMISSION_GRANTED);
+        initPhoneWindowManager();
+
+        // Set power button behavior.
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.POWER_BUTTON_SHORT_PRESS, SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP);
+        mPhoneWindowManager.updateSettings(null);
+
+        // Set up hub prerequisites.
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.GLANCEABLE_HUB_ENABLED, 1);
+        when(mUserManagerInternal.isUserUnlocked(any(Integer.class))).thenReturn(true);
+        when(mDreamManagerInternal.dreamConditionActive()).thenReturn(true);
+
+        // Power button pressed.
+        int eventTime = 0;
+        mPhoneWindowManager.powerPress(eventTime, 1, 0);
+
+        // Lock requested with the proper bundle options.
+        ArgumentCaptor<Bundle> bundleCaptor = ArgumentCaptor.forClass(Bundle.class);
+        verify(mPhoneWindowManager).lockNow(bundleCaptor.capture());
+        assertThat(bundleCaptor.getValue().getBoolean(EXTRA_TRIGGER_HUB)).isTrue();
+    }
+
+    @Test
+    public void powerPress_hubOrDreamOrSleep_hubNotAvailableDreams() {
+        when(mDisplayPolicy.isAwake()).thenReturn(true);
+        initPhoneWindowManager();
+
+        // Set power button behavior.
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.POWER_BUTTON_SHORT_PRESS, SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP);
+        mPhoneWindowManager.updateSettings(null);
+
+        // Hub is not available.
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.GLANCEABLE_HUB_ENABLED, 0);
+        when(mDreamManagerInternal.canStartDreaming(any(Boolean.class))).thenReturn(true);
+
+        // Power button pressed.
+        int eventTime = 0;
+        mPhoneWindowManager.powerPress(eventTime, 1, 0);
+
+        // Dream is requested.
+        verify(mDreamManagerInternal).requestDream();
+    }
+
+    private void initPhoneWindowManager() {
+        mPhoneWindowManager.mDefaultDisplayPolicy = mDisplayPolicy;
+        mPhoneWindowManager.mDefaultDisplayRotation = mock(DisplayRotation.class);
+        mContext.getMainThreadHandler().runWithScissors(() -> mPhoneWindowManager.init(
+                new TestInjector(mContext, mock(WindowManagerPolicy.WindowManagerFuncs.class))), 0);
+    }
+
     private void mockStartDockOrHome() throws Exception {
         doNothing().when(ActivityManager.getService()).stopAppSwitches();
         when(mAtmInternal.startHomeOnDisplay(
                 anyInt(), anyString(), anyInt(), anyBoolean(), anyBoolean())).thenReturn(false);
         mPhoneWindowManager.mUserManagerInternal = mock(UserManagerInternal.class);
     }
+
+    private class TestInjector extends PhoneWindowManager.Injector {
+        TestInjector(Context context, WindowManagerPolicy.WindowManagerFuncs funcs) {
+            super(context, funcs);
+        }
+
+        KeyguardServiceDelegate getKeyguardServiceDelegate() {
+            return mKeyguardServiceDelegate;
+        }
+
+        /**
+         * {@code WindowWakeUpPolicy} registers a local service in its constructor, easier to just
+         * mock it out so we don't have to unregister it after every test.
+         */
+        WindowWakeUpPolicy getWindowWakeUpPolicy() {
+            return mock(WindowWakeUpPolicy.class);
+        }
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index 65150e7..bb29614 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -49,17 +49,13 @@
 import static android.os.InputConstants.DEFAULT_DISPATCHING_TIMEOUT_MILLIS;
 import static android.os.Process.NOBODY_UID;
 import static android.view.Display.DEFAULT_DISPLAY;
-import static android.view.InsetsSource.ID_IME;
-import static android.view.WindowInsets.Type.ime;
 import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
 import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
-import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
 import static android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
-import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN;
 import static android.view.WindowManager.TRANSIT_PIP;
@@ -125,7 +121,6 @@
 import android.app.servertransaction.ClientTransactionItem;
 import android.app.servertransaction.DestroyActivityItem;
 import android.app.servertransaction.PauseActivityItem;
-import android.app.servertransaction.WindowStateResizeItem;
 import android.compat.testing.PlatformCompatChangeRule;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -149,8 +144,6 @@
 import android.view.IRemoteAnimationFinishedCallback;
 import android.view.IRemoteAnimationRunner.Stub;
 import android.view.IWindowManager;
-import android.view.InsetsSource;
-import android.view.InsetsState;
 import android.view.RemoteAnimationAdapter;
 import android.view.RemoteAnimationTarget;
 import android.view.Surface;
@@ -171,7 +164,6 @@
 import org.junit.Test;
 import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
 import org.mockito.invocation.InvocationOnMock;
 
 import java.util.ArrayList;
@@ -2889,7 +2881,6 @@
         activity2.addStartingWindow(mPackageName, android.R.style.Theme, activity1, true, true,
                 false, true, false, false, false);
         waitUntilHandlersIdle();
-        assertFalse(mDisplayContent.mSkipAppTransitionAnimation);
         assertNoStartingWindow(activity1);
         assertHasStartingWindow(activity2);
     }
@@ -2973,7 +2964,6 @@
                 false /* newTask */, false /* isTaskSwitch */, null /* options */,
                 null /* sourceRecord */);
 
-        assertTrue(mDisplayContent.mSkipAppTransitionAnimation);
         assertNull(middle.mStartingWindow);
         assertHasStartingWindow(top);
         assertTrue(top.isVisible());
@@ -3273,26 +3263,6 @@
                 > activity.getConfiguration().windowConfiguration.getAppBounds().height());
     }
 
-    @Test
-    public void testSetVisibility_visibleToVisible() {
-        final ActivityRecord activity = new ActivityBuilder(mAtm)
-                .setCreateTask(true).build();
-        // By default, activity is visible.
-        assertTrue(activity.isVisible());
-        assertTrue(activity.isVisibleRequested());
-        assertFalse(activity.mDisplayContent.mClosingApps.contains(activity));
-
-        // Request the activity to be visible. Although the activity is already visible, app
-        // transition animation should be applied on this activity. This might be unnecessary, but
-        // until we verify no logic relies on this behavior, we'll keep this as is.
-        mDisplayContent.prepareAppTransition(0);
-        activity.setVisibility(true);
-        assertTrue(activity.isVisible());
-        assertTrue(activity.isVisibleRequested());
-        assertTrue(activity.mDisplayContent.mOpeningApps.contains(activity));
-        assertFalse(activity.mDisplayContent.mClosingApps.contains(activity));
-    }
-
     @SetupWindows(addWindows = W_ACTIVITY)
     @Test
     public void testSetVisibility_visibleToInvisible() {
@@ -3324,222 +3294,30 @@
     public void testSetVisibility_invisibleToVisible() {
         final ActivityRecord activity = new ActivityBuilder(mAtm)
                 .setCreateTask(true).setVisible(false).build();
-        // Activiby is invisible. However ATMS requests it to become visible, since this is a top
-        // activity.
         assertFalse(activity.isVisible());
-        assertTrue(activity.isVisibleRequested());
-        assertFalse(activity.mDisplayContent.mClosingApps.contains(activity));
+        assertFalse(activity.isVisibleRequested());
 
         // Request the activity to be visible. Since the visibility changes, app transition
         // animation should be applied on this activity.
-        activity.setVisibility(true);
+        requestTransition(activity, WindowManager.TRANSIT_OPEN);
+        mWm.mRoot.resumeFocusedTasksTopActivities();
         assertFalse(activity.isVisible());
         assertTrue(activity.isVisibleRequested());
-        assertTrue(activity.mDisplayContent.mOpeningApps.contains(activity));
-        assertFalse(activity.mDisplayContent.mClosingApps.contains(activity));
-
-        // There should still be animation (add to opening) if keyguard is going away while the
-        // screen is off because it will be visible after screen is turned on by unlocking.
-        mDisplayContent.mOpeningApps.remove(activity);
-        mDisplayContent.mClosingApps.remove(activity);
-        activity.commitVisibility(false /* visible */, false /* performLayout */);
-        mDisplayContent.getDisplayPolicy().screenTurnedOff(false /* acquireSleepToken */);
-        final KeyguardController controller = mSupervisor.getKeyguardController();
-        doReturn(true).when(controller).isKeyguardGoingAway(anyInt());
-        activity.setVisibility(true);
-        assertTrue(mDisplayContent.mOpeningApps.contains(activity));
+        assertTrue(activity.inTransition());
     }
 
     @Test
     public void testSetVisibility_invisibleToInvisible() {
         final ActivityRecord activity = new ActivityBuilder(mAtm)
                 .setCreateTask(true).setVisible(false).build();
-        // Activiby is invisible. However ATMS requests it to become visible, since this is a top
-        // activity.
-        assertFalse(activity.isVisible());
-        assertTrue(activity.isVisibleRequested());
-        assertTrue(activity.mDisplayContent.mOpeningApps.contains(activity));
-        assertFalse(activity.mDisplayContent.mClosingApps.contains(activity));
+        requestTransition(activity, WindowManager.TRANSIT_CLOSE);
 
         // Request the activity to be invisible. Since the activity is already invisible, no app
         // transition should be applied on this activity.
         activity.setVisibility(false);
         assertFalse(activity.isVisible());
         assertFalse(activity.isVisibleRequested());
-        assertFalse(activity.mDisplayContent.mOpeningApps.contains(activity));
-        assertFalse(activity.mDisplayContent.mClosingApps.contains(activity));
-    }
-
-    @SetupWindows(addWindows = W_INPUT_METHOD)
-    @Test
-    public void testImeInsetsFrozenFlag_resetWhenNoImeFocusableInActivity() {
-        final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build();
-        makeWindowVisibleAndDrawn(app, mImeWindow);
-        mDisplayContent.setImeLayeringTarget(app);
-        mDisplayContent.setImeInputTarget(app);
-
-        // Simulate app is closing and expect the last IME is shown and IME insets is frozen.
-        mDisplayContent.mOpeningApps.clear();
-        app.mActivityRecord.commitVisibility(false, false);
-        app.mActivityRecord.onWindowsGone();
-
-        assertTrue(app.mActivityRecord.mLastImeShown);
-        assertTrue(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
-
-        // Expect IME insets frozen state will reset when the activity has no IME focusable window.
-        app.mActivityRecord.forAllWindows(w -> {
-            w.mAttrs.flags |= FLAG_ALT_FOCUSABLE_IM;
-            return true;
-        }, true);
-
-        app.mActivityRecord.commitVisibility(true, false);
-        app.mActivityRecord.onWindowsVisible();
-
-        assertFalse(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
-    }
-
-    @SetupWindows(addWindows = W_INPUT_METHOD)
-    @Test
-    public void testImeInsetsFrozenFlag_resetWhenReportedToBeImeInputTarget() {
-        final WindowState app = newWindowBuilder("app", TYPE_APPLICATION).build();
-
-        mDisplayContent.getInsetsStateController().getImeSourceProvider().setWindowContainer(
-                mImeWindow, null, null);
-        mImeWindow.getControllableInsetProvider().setServerVisible(true);
-
-        InsetsSource imeSource = new InsetsSource(ID_IME, ime());
-        app.mAboveInsetsState.addSource(imeSource);
-        mDisplayContent.setImeLayeringTarget(app);
-        mDisplayContent.updateImeInputAndControlTarget(app);
-
-        InsetsState state = app.getInsetsState();
-        assertFalse(state.getOrCreateSource(imeSource.getId(), ime()).isVisible());
-        assertTrue(state.getOrCreateSource(imeSource.getId(), ime()).getFrame().isEmpty());
-
-        // Simulate app is closing and expect IME insets is frozen.
-        mDisplayContent.mOpeningApps.clear();
-        app.mActivityRecord.commitVisibility(false, false);
-        app.mActivityRecord.onWindowsGone();
-        assertTrue(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
-
-        // Simulate app re-start input or turning screen off/on then unlocked by un-secure
-        // keyguard to back to the app, expect IME insets is not frozen
-        app.mActivityRecord.commitVisibility(true, false);
-        mDisplayContent.updateImeInputAndControlTarget(app);
-        performSurfacePlacementAndWaitForWindowAnimator();
-
-        assertFalse(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
-
-        imeSource.setVisible(true);
-        imeSource.setFrame(new Rect(100, 400, 500, 500));
-        app.mAboveInsetsState.addSource(imeSource);
-
-        // Verify when IME is visible and the app can receive the right IME insets from policy.
-        makeWindowVisibleAndDrawn(app, mImeWindow);
-        state = app.getInsetsState();
-        assertTrue(state.peekSource(ID_IME).isVisible());
-        assertEquals(state.peekSource(ID_IME).getFrame(), imeSource.getFrame());
-    }
-
-    @SetupWindows(addWindows = { W_ACTIVITY, W_INPUT_METHOD })
-    @Test
-    public void testImeInsetsFrozenFlag_noDispatchVisibleInsetsWhenAppNotRequest()
-            throws RemoteException {
-        final WindowState app1 = newWindowBuilder("app1", TYPE_APPLICATION).build();
-        final WindowState app2 = newWindowBuilder("app2", TYPE_APPLICATION).build();
-
-        mDisplayContent.getInsetsStateController().getImeSourceProvider().setWindowContainer(
-                mImeWindow, null, null);
-        mImeWindow.getControllableInsetProvider().setServerVisible(true);
-
-        // Simulate app2 is closing and let app1 is visible to be IME targets.
-        makeWindowVisibleAndDrawn(app1, mImeWindow);
-        mDisplayContent.setImeLayeringTarget(app1);
-        mDisplayContent.updateImeInputAndControlTarget(app1);
-        app2.mActivityRecord.commitVisibility(false, false);
-
-        // app1 requests IME visible.
-        app1.setRequestedVisibleTypes(ime(), ime());
-        mDisplayContent.getInsetsStateController().onRequestedVisibleTypesChanged(app1,
-                null /* statsToken */);
-
-        // Verify app1's IME insets is visible and app2's IME insets frozen flag set.
-        assertTrue(app1.getInsetsState().peekSource(ID_IME).isVisible());
-        assertTrue(app2.mActivityRecord.mImeInsetsFrozenUntilStartInput);
-
-        // Simulate switching to app2 to make it visible to be IME targets.
-        spyOn(app2);
-        spyOn(app2.mClient);
-        spyOn(app2.getProcess());
-        ArgumentCaptor<InsetsState> insetsStateCaptor = ArgumentCaptor.forClass(InsetsState.class);
-        doReturn(true).when(app2).isReadyToDispatchInsetsState();
-        mDisplayContent.setImeLayeringTarget(app2);
-        app2.mActivityRecord.commitVisibility(true, false);
-        mDisplayContent.updateImeInputAndControlTarget(app2);
-        performSurfacePlacementAndWaitForWindowAnimator();
-
-        // Verify after unfreezing app2's IME insets state, we won't dispatch visible IME insets
-        // to client if the app didn't request IME visible.
-        assertFalse(app2.mActivityRecord.mImeInsetsFrozenUntilStartInput);
-
-        verify(app2.getProcess(), atLeastOnce()).scheduleClientTransactionItem(
-                isA(WindowStateResizeItem.class));
-        assertFalse(app2.getInsetsState().isSourceOrDefaultVisible(ID_IME, ime()));
-    }
-
-    @Test
-    public void testImeInsetsFrozenFlag_multiWindowActivities() {
-        final WindowToken imeToken = createTestWindowToken(TYPE_INPUT_METHOD, mDisplayContent);
-        final WindowState ime = newWindowBuilder("ime", TYPE_INPUT_METHOD).setWindowToken(
-                imeToken).build();
-        makeWindowVisibleAndDrawn(ime);
-
-        // Create a split-screen root task with activity1 and activity 2.
-        final Task task = new TaskBuilder(mSupervisor)
-                .setCreateParentTask(true).setCreateActivity(true).build();
-        task.getRootTask().setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        final ActivityRecord activity1 = task.getTopNonFinishingActivity();
-        activity1.getTask().setResumedActivity(activity1, "testApp1");
-
-        final ActivityRecord activity2 = new TaskBuilder(mSupervisor)
-                .setWindowingMode(WINDOWING_MODE_MULTI_WINDOW)
-                .setCreateActivity(true).build().getTopMostActivity();
-        activity2.getTask().setResumedActivity(activity2, "testApp2");
-        activity2.getTask().setParent(task.getRootTask());
-
-        // Simulate activity1 and activity2 both have set mImeInsetsFrozenUntilStartInput when
-        // invisible to user.
-        activity1.mImeInsetsFrozenUntilStartInput = true;
-        activity2.mImeInsetsFrozenUntilStartInput = true;
-
-        final WindowState app1 = newWindowBuilder("app1", TYPE_APPLICATION).setWindowToken(
-                activity1).build();
-        final WindowState app2 = newWindowBuilder("app2", TYPE_APPLICATION).setWindowToken(
-                activity2).build();
-        makeWindowVisibleAndDrawn(app1, app2);
-
-        final InsetsStateController controller = mDisplayContent.getInsetsStateController();
-        controller.getImeSourceProvider().setWindowContainer(
-                ime, null, null);
-        ime.getControllableInsetProvider().setServerVisible(true);
-
-        // app1 starts input and expect IME insets for all activities in split-screen will be
-        // frozen until the input started.
-        mDisplayContent.setImeLayeringTarget(app1);
-        mDisplayContent.updateImeInputAndControlTarget(app1);
-        mDisplayContent.computeImeTarget(true /* updateImeTarget */);
-        performSurfacePlacementAndWaitForWindowAnimator();
-
-        assertEquals(app1, mDisplayContent.getImeInputTarget());
-        assertFalse(activity1.mImeInsetsFrozenUntilStartInput);
-        assertFalse(activity2.mImeInsetsFrozenUntilStartInput);
-
-        app1.setRequestedVisibleTypes(ime());
-        controller.onRequestedVisibleTypesChanged(app1, null /* statsToken */);
-
-        // Expect all activities in split-screen will get IME insets visible state
-        assertTrue(app1.getInsetsState().peekSource(ID_IME).isVisible());
-        assertTrue(app2.getInsetsState().peekSource(ID_IME).isVisible());
+        assertFalse(activity.inTransition());
     }
 
     @Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java b/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java
deleted file mode 100644
index 8871056..0000000
--- a/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.wm;
-
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
-
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyZeroInteractions;
-import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
-import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import android.platform.test.annotations.Presubmit;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-/**
- * Tests for the {@link ActivityStack} class.
- *
- * Build/Install/Run:
- *  atest WmTests:AnimatingActivityRegistryTest
- */
-@SmallTest
-@Presubmit
-@RunWith(WindowTestRunner.class)
-public class AnimatingActivityRegistryTest extends WindowTestsBase {
-
-    @Mock
-    AnimationAdapter mAdapter;
-
-    @Mock
-    Runnable mMockEndDeferFinishCallback1;
-    @Mock
-    Runnable mMockEndDeferFinishCallback2;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    public void testDeferring() {
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        final ActivityRecord activity2 = createAppWindow(activity1.getTask(), ACTIVITY_TYPE_STANDARD,
-                "activity2").mActivityRecord;
-        final AnimatingActivityRegistry registry =
-                activity1.getRootTask().getAnimatingActivityRegistry();
-
-        activity1.startAnimation(activity1.getPendingTransaction(), mAdapter, false /* hidden */,
-                ANIMATION_TYPE_APP_TRANSITION);
-        activity2.startAnimation(activity1.getPendingTransaction(), mAdapter, false /* hidden */,
-                ANIMATION_TYPE_APP_TRANSITION);
-        assertTrue(activity1.isAnimating(TRANSITION));
-        assertTrue(activity2.isAnimating(TRANSITION));
-
-        // Make sure that first animation finish is deferred, second one is not deferred, and first
-        // one gets cancelled.
-        assertTrue(registry.notifyAboutToFinish(activity1, mMockEndDeferFinishCallback1));
-        assertFalse(registry.notifyAboutToFinish(activity2, mMockEndDeferFinishCallback2));
-        verify(mMockEndDeferFinishCallback1).run();
-        verifyZeroInteractions(mMockEndDeferFinishCallback2);
-    }
-
-    @Test
-    public void testContainerRemoved() {
-        final ActivityRecord window1 = createActivityRecord(mDisplayContent);
-        final ActivityRecord window2 = createAppWindow(window1.getTask(), ACTIVITY_TYPE_STANDARD,
-                "window2").mActivityRecord;
-        final AnimatingActivityRegistry registry =
-                window1.getRootTask().getAnimatingActivityRegistry();
-
-        window1.startAnimation(window1.getPendingTransaction(), mAdapter, false /* hidden */,
-                ANIMATION_TYPE_APP_TRANSITION);
-        window2.startAnimation(window1.getPendingTransaction(), mAdapter, false /* hidden */,
-                ANIMATION_TYPE_APP_TRANSITION);
-        assertTrue(window1.isAnimating(TRANSITION));
-        assertTrue(window2.isAnimating(TRANSITION));
-
-        // Make sure that first animation finish is deferred, and removing the second window stops
-        // finishes all pending deferred finishings.
-        registry.notifyAboutToFinish(window1, mMockEndDeferFinishCallback1);
-        window2.setParent(null);
-        verify(mMockEndDeferFinishCallback1).run();
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java
deleted file mode 100644
index c294bc6..0000000
--- a/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java
+++ /dev/null
@@ -1,1306 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.wm;
-
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
-import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
-import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
-import static android.view.WindowManager.TRANSIT_CHANGE;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_DREAM_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_DREAM_ACTIVITY_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_UNOCCLUDE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_CHANGE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN;
-import static android.view.WindowManager.TRANSIT_OPEN;
-import static android.view.WindowManager.TRANSIT_TO_FRONT;
-
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
-import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.junit.Assume.assumeFalse;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.clearInvocations;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
-import android.annotation.Nullable;
-import android.graphics.Rect;
-import android.gui.DropInputMode;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.platform.test.annotations.Presubmit;
-import android.util.ArraySet;
-import android.view.IRemoteAnimationFinishedCallback;
-import android.view.IRemoteAnimationRunner;
-import android.view.RemoteAnimationAdapter;
-import android.view.RemoteAnimationDefinition;
-import android.view.RemoteAnimationTarget;
-import android.view.WindowManager;
-import android.window.ITaskFragmentOrganizer;
-import android.window.TaskFragmentOrganizer;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Build/Install/Run:
- *  atest WmTests:AppTransitionControllerTest
- */
-@SmallTest
-@Presubmit
-@RunWith(WindowTestRunner.class)
-public class AppTransitionControllerTest extends WindowTestsBase {
-
-    private AppTransitionController mAppTransitionController;
-
-    @Before
-    public void setUp() throws Exception {
-        assumeFalse(WindowManagerService.sEnableShellTransitions);
-        mAppTransitionController = new AppTransitionController(mWm, mDisplayContent);
-        mWm.mAnimator.ready();
-    }
-
-    @Test
-    public void testSkipOccludedActivityCloseTransition() {
-        final ActivityRecord behind = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final ActivityRecord topOpening = createActivityRecord(behind.getTask());
-        topOpening.setOccludesParent(true);
-        topOpening.setVisible(true);
-
-        mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
-        mDisplayContent.prepareAppTransition(TRANSIT_CLOSE);
-        mDisplayContent.mClosingApps.add(behind);
-
-        assertEquals(WindowManager.TRANSIT_OLD_UNSET,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null, null, false));
-    }
-
-    @Test
-    public void testClearTaskSkipAppExecuteTransition() {
-        final ActivityRecord behind = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final Task task = behind.getTask();
-        final ActivityRecord top = createActivityRecord(task);
-        top.setState(ActivityRecord.State.RESUMED, "test");
-        behind.setState(ActivityRecord.State.STARTED, "test");
-        behind.setVisibleRequested(true);
-
-        task.removeActivities("test", false /* excludingTaskOverlay */);
-        assertFalse(mDisplayContent.mAppTransition.isReady());
-    }
-
-    @Test
-    public void testTranslucentOpen() {
-        final ActivityRecord behind = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final ActivityRecord translucentOpening = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        doReturn(false).when(translucentOpening).fillsParent();
-        translucentOpening.setVisible(false);
-        mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
-        mDisplayContent.mOpeningApps.add(behind);
-        mDisplayContent.mOpeningApps.add(translucentOpening);
-
-        assertEquals(WindowManager.TRANSIT_OLD_TRANSLUCENT_ACTIVITY_OPEN,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null, null, false));
-    }
-
-    @Test
-    public void testTranslucentClose() {
-        final ActivityRecord behind = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final ActivityRecord translucentClosing = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        doReturn(false).when(translucentClosing).fillsParent();
-        mDisplayContent.prepareAppTransition(TRANSIT_CLOSE);
-        mDisplayContent.mClosingApps.add(translucentClosing);
-        assertEquals(WindowManager.TRANSIT_OLD_TRANSLUCENT_ACTIVITY_CLOSE,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null, null, false));
-    }
-
-    @Test
-    public void testDreamActivityOpenTransition() {
-        final ActivityRecord dreamActivity = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_DREAM);
-        mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
-        mDisplayContent.mOpeningApps.add(dreamActivity);
-
-        assertEquals(TRANSIT_OLD_DREAM_ACTIVITY_OPEN,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null, null, false));
-    }
-
-    @Test
-    public void testDreamActivityCloseTransition() {
-        final ActivityRecord dreamActivity = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_DREAM);
-        mDisplayContent.prepareAppTransition(TRANSIT_CLOSE);
-        mDisplayContent.mClosingApps.add(dreamActivity);
-
-        assertEquals(TRANSIT_OLD_DREAM_ACTIVITY_CLOSE,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null, null, false));
-    }
-
-    @Test
-    public void testChangeIsNotOverwritten() {
-        final ActivityRecord behind = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final ActivityRecord translucentOpening = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        translucentOpening.setOccludesParent(false);
-        translucentOpening.setVisible(false);
-        mDisplayContent.prepareAppTransition(TRANSIT_CHANGE);
-        mDisplayContent.mOpeningApps.add(behind);
-        mDisplayContent.mOpeningApps.add(translucentOpening);
-        mDisplayContent.mChangingContainers.add(translucentOpening.getTask());
-        assertEquals(TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null, null, false));
-    }
-
-    @Test
-    public void testTransitWithinTask() {
-        final ActivityRecord opening = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD);
-        opening.setOccludesParent(false);
-        final ActivityRecord closing = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD);
-        closing.setOccludesParent(false);
-        final Task task = opening.getTask();
-        mDisplayContent.mOpeningApps.add(opening);
-        mDisplayContent.mClosingApps.add(closing);
-        assertFalse(mAppTransitionController.isTransitWithinTask(TRANSIT_OLD_ACTIVITY_OPEN, task));
-        closing.getTask().removeChild(closing);
-        task.addChild(closing, 0);
-        assertTrue(mAppTransitionController.isTransitWithinTask(TRANSIT_OLD_ACTIVITY_OPEN, task));
-        assertFalse(mAppTransitionController.isTransitWithinTask(TRANSIT_OLD_TASK_OPEN, task));
-    }
-
-
-    @Test
-    public void testIntraWallpaper_open() {
-        final ActivityRecord opening = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        opening.setVisible(false);
-        final WindowManager.LayoutParams attrOpening = new WindowManager.LayoutParams(
-                TYPE_BASE_APPLICATION);
-        attrOpening.setTitle("WallpaperOpening");
-        attrOpening.flags |= FLAG_SHOW_WALLPAPER;
-        final TestWindowState appWindowOpening = createWindowState(attrOpening, opening);
-        opening.addWindow(appWindowOpening);
-
-        final ActivityRecord closing = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final WindowManager.LayoutParams attrClosing = new WindowManager.LayoutParams(
-                TYPE_BASE_APPLICATION);
-        attrOpening.setTitle("WallpaperClosing");
-        attrClosing.flags |= FLAG_SHOW_WALLPAPER;
-        final TestWindowState appWindowClosing = createWindowState(attrClosing, closing);
-        closing.addWindow(appWindowClosing);
-
-        mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
-        mDisplayContent.mOpeningApps.add(opening);
-        mDisplayContent.mClosingApps.add(closing);
-
-        assertEquals(WindowManager.TRANSIT_OLD_WALLPAPER_INTRA_OPEN,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, appWindowClosing, null, false));
-    }
-
-    @Test
-    public void testIntraWallpaper_toFront() {
-        final ActivityRecord opening = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        opening.setVisible(false);
-        final WindowManager.LayoutParams attrOpening = new WindowManager.LayoutParams(
-                TYPE_BASE_APPLICATION);
-        attrOpening.setTitle("WallpaperOpening");
-        attrOpening.flags |= FLAG_SHOW_WALLPAPER;
-        final TestWindowState appWindowOpening = createWindowState(attrOpening, opening);
-        opening.addWindow(appWindowOpening);
-
-        final ActivityRecord closing = createActivityRecord(mDisplayContent,
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        final WindowManager.LayoutParams attrClosing = new WindowManager.LayoutParams(
-                TYPE_BASE_APPLICATION);
-        attrOpening.setTitle("WallpaperClosing");
-        attrClosing.flags |= FLAG_SHOW_WALLPAPER;
-        final TestWindowState appWindowClosing = createWindowState(attrClosing, closing);
-        closing.addWindow(appWindowClosing);
-
-        mDisplayContent.prepareAppTransition(TRANSIT_TO_FRONT);
-        mDisplayContent.mOpeningApps.add(opening);
-        mDisplayContent.mClosingApps.add(closing);
-
-        assertEquals(WindowManager.TRANSIT_OLD_WALLPAPER_INTRA_OPEN,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, appWindowClosing, null, false));
-    }
-
-    @Test
-    public void testGetAnimationTargets_visibilityAlreadyUpdated() {
-        // [DisplayContent] -+- [Task1] - [ActivityRecord1] (opening, visible)
-        //                   +- [Task2] - [ActivityRecord2] (closing, invisible)
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent);
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(false);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // No animation, since visibility of the opening and closing apps are already updated
-        // outside of AppTransition framework.
-        assertEquals(
-                new ArraySet<>(),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_visibilityAlreadyUpdated_butForcedTransitionRequested() {
-        // [DisplayContent] -+- [Task1] - [ActivityRecord1] (closing, invisible)
-        //                   +- [Task2] - [ActivityRecord2] (opening, visible)
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        activity1.setVisible(true);
-        activity1.setVisibleRequested(true);
-        activity1.mRequestForceTransition = true;
-
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent);
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(false);
-        activity2.mRequestForceTransition = true;
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // The visibility are already updated, but since forced transition is requested, it will
-        // be included.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity2.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_exitingBeforeTransition() {
-        // Create another non-empty task so the animation target won't promote to task display area.
-        createActivityRecord(mDisplayContent);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent);
-        activity.setVisible(false);
-        activity.mIsExiting = true;
-
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity);
-
-        // Animate closing apps even if it's not visible when it is exiting before we had a chance
-        // to play the transition animation.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        new ArraySet<>(), closing, false /* visible */));
-    }
-
-    @Test
-    public void testExitAnimationDone_beforeAppTransition() {
-        final Task task = createTask(mDisplayContent);
-        final WindowState win = createAppWindow(task, ACTIVITY_TYPE_STANDARD, "Win");
-        spyOn(win);
-        win.mAnimatingExit = true;
-        mDisplayContent.mAppTransition.setTimeout();
-        mDisplayContent.mAppTransitionController.handleAppTransitionReady();
-
-        verify(win).onExitAnimationDone();
-    }
-
-    @Test
-    public void testGetAnimationTargets_openingClosingInDifferentTask() {
-        // [DisplayContent] -+- [Task1] -+- [ActivityRecord1] (opening, invisible)
-        //                   |           +- [ActivityRecord2] (invisible)
-        //                   |
-        //                   +- [Task2] -+- [ActivityRecord3] (closing, visible)
-        //                               +- [ActivityRecord4] (invisible)
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent,
-                activity1.getTask());
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(false);
-
-        final ActivityRecord activity3 = createActivityRecord(mDisplayContent);
-        final ActivityRecord activity4 = createActivityRecord(mDisplayContent,
-                activity3.getTask());
-        activity4.setVisible(false);
-        activity4.setVisibleRequested(false);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity3);
-
-        // Promote animation targets to root Task level. Invisible ActivityRecords don't affect
-        // promotion decision.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity3.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_openingClosingInSameTask() {
-        // [DisplayContent] - [Task] -+- [ActivityRecord1] (opening, invisible)
-        //                            +- [ActivityRecord2] (closing, visible)
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent,
-                activity1.getTask());
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // Don't promote an animation target to Task level, since the same task contains both
-        // opening and closing app.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity2}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_animateOnlyTranslucentApp() {
-        // [DisplayContent] -+- [Task1] -+- [ActivityRecord1] (opening, invisible)
-        //                   |           +- [ActivityRecord2] (visible)
-        //                   |
-        //                   +- [Task2] -+- [ActivityRecord3] (closing, visible)
-        //                               +- [ActivityRecord4] (visible)
-
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        activity1.setOccludesParent(false);
-
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent,
-                activity1.getTask());
-
-        final ActivityRecord activity3 = createActivityRecord(mDisplayContent);
-        activity3.setOccludesParent(false);
-        final ActivityRecord activity4 = createActivityRecord(mDisplayContent,
-                activity3.getTask());
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity3);
-
-        // Don't promote an animation target to Task level, since opening (closing) app is
-        // translucent and is displayed over other non-animating app.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity3}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_animateTranslucentAndOpaqueApps() {
-        // [DisplayContent] -+- [Task1] -+- [ActivityRecord1] (opening, invisible)
-        //                   |           +- [ActivityRecord2] (opening, invisible)
-        //                   |
-        //                   +- [Task2] -+- [ActivityRecord3] (closing, visible)
-        //                               +- [ActivityRecord4] (closing, visible)
-
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        activity1.setOccludesParent(false);
-
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent,
-                activity1.getTask());
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(true);
-
-        final ActivityRecord activity3 = createActivityRecord(mDisplayContent);
-        activity3.setOccludesParent(false);
-        final ActivityRecord activity4 = createActivityRecord(mDisplayContent,
-                activity3.getTask());
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        opening.add(activity2);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity3);
-        closing.add(activity4);
-
-        // Promote animation targets to TaskStack level even though opening (closing) app is
-        // translucent as long as all visible siblings animate at the same time.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity3.getRootTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_taskContainsMultipleTasks() {
-        // [DisplayContent] - [Task] -+- [Task1] - [ActivityRecord1] (opening, invisible)
-        //                            +- [Task2] - [ActivityRecord2] (closing, visible)
-        final Task parentTask = createTask(mDisplayContent);
-        final ActivityRecord activity1 = createActivityRecordWithParentTask(parentTask);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        final ActivityRecord activity2 = createActivityRecordWithParentTask(parentTask);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // Promote animation targets up to Task level, not beyond.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1.getTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity2.getTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_splitScreenOpening() {
-        // [DisplayContent] - [Task] -+- [split task 1] -+- [Task1] - [AR1] (opening, invisible)
-        //                            +- [split task 2] -+- [Task2] - [AR2] (opening, invisible)
-        final Task singleTopRoot = createTask(mDisplayContent);
-        final TaskBuilder builder = new TaskBuilder(mSupervisor)
-                .setWindowingMode(WINDOWING_MODE_MULTI_WINDOW)
-                .setParentTask(singleTopRoot)
-                .setCreatedByOrganizer(true);
-        final Task splitRoot1 = builder.build();
-        final Task splitRoot2 = builder.build();
-        splitRoot1.setAdjacentTaskFragment(splitRoot2);
-        final ActivityRecord activity1 = createActivityRecordWithParentTask(splitRoot1);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        final ActivityRecord activity2 = createActivityRecordWithParentTask(splitRoot2);
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(true);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        opening.add(activity2);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-
-        // Promote animation targets up to Task level, not beyond.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{splitRoot1, splitRoot2}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_openingClosingTaskFragment() {
-        // [DefaultTDA] - [Task] -+- [TaskFragment1] - [ActivityRecord1] (opening, invisible)
-        //                        +- [TaskFragment2] - [ActivityRecord2] (closing, visible)
-        final Task parentTask = createTask(mDisplayContent);
-        final TaskFragment taskFragment1 = createTaskFragmentWithActivity(parentTask);
-        final ActivityRecord activity1 = taskFragment1.getTopMostActivity();
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-
-        final TaskFragment taskFragment2 = createTaskFragmentWithActivity(parentTask);
-        final ActivityRecord activity2 = taskFragment2.getTopMostActivity();
-        activity2.setVisible(true);
-        activity2.setVisibleRequested(false);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // Promote animation targets up to TaskFragment level, not beyond.
-        assertEquals(new ArraySet<>(new WindowContainer[]{taskFragment1}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(new ArraySet<>(new WindowContainer[]{taskFragment2}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_openingTheOnlyTaskFragmentInTask() {
-        // [DefaultTDA] -+- [Task1] - [TaskFragment1] - [ActivityRecord1] (opening, invisible)
-        //               +- [Task2] - [ActivityRecord2] (closing, visible)
-        final Task task1 = createTask(mDisplayContent);
-        final TaskFragment taskFragment1 = createTaskFragmentWithActivity(task1);
-        final ActivityRecord activity1 = taskFragment1.getTopMostActivity();
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent);
-        activity2.setVisible(true);
-        activity2.setVisibleRequested(false);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // Promote animation targets up to leaf Task level because there's only one TaskFragment in
-        // the Task.
-        assertEquals(new ArraySet<>(new WindowContainer[]{task1}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(new ArraySet<>(new WindowContainer[]{activity2.getTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_closingTheOnlyTaskFragmentInTask() {
-        // [DefaultTDA] -+- [Task1] - [TaskFragment1] - [ActivityRecord1] (closing, visible)
-        //               +- [Task2] - [ActivityRecord2] (opening, invisible)
-        final Task task1 = createTask(mDisplayContent);
-        final TaskFragment taskFragment1 = createTaskFragmentWithActivity(task1);
-        final ActivityRecord activity1 = taskFragment1.getTopMostActivity();
-        activity1.setVisible(true);
-        activity1.setVisibleRequested(false);
-
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent);
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(true);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity2);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity1);
-
-        // Promote animation targets up to leaf Task level because there's only one TaskFragment in
-        // the Task.
-        assertEquals(new ArraySet<>(new WindowContainer[]{activity2.getTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(new ArraySet<>(new WindowContainer[]{task1}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    @Test
-    public void testGetAnimationTargets_embeddedTask() {
-        // [DisplayContent] -+- [Task1] -            [ActivityRecord1] (opening, invisible)
-        //                   +- [Task2] (embedded) - [ActivityRecord2] (opening, invisible)
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-
-        final Task task2 = createTask(mDisplayContent);
-        task2.mRemoveWithTaskOrganizer = true;
-        final ActivityRecord activity2 = createActivityRecord(task2);
-        activity2.setVisible(false);
-        activity2.setVisibleRequested(true);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        opening.add(activity2);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-
-        // No animation on the embedded task.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1.getTask()}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-
-    @Test
-    public void testGetAnimationTargets_activityInEmbeddedTask() {
-        // [DisplayContent] - [Task] (embedded)-+- [ActivityRecord1] (opening, invisible)
-        //                                      +- [ActivityRecord2] (closing, visible)
-        final Task task = createTask(mDisplayContent);
-        task.mRemoveWithTaskOrganizer = true;
-
-        final ActivityRecord activity1 = createActivityRecord(task);
-        activity1.setVisible(false);
-        activity1.setVisibleRequested(true);
-        final ActivityRecord activity2 = createActivityRecord(task);
-
-        final ArraySet<ActivityRecord> opening = new ArraySet<>();
-        opening.add(activity1);
-        final ArraySet<ActivityRecord> closing = new ArraySet<>();
-        closing.add(activity2);
-
-        // Even though embedded task itself doesn't animate, activities in an embedded task
-        // animate.
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity1}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, true /* visible */));
-        assertEquals(
-                new ArraySet<>(new WindowContainer[]{activity2}),
-                AppTransitionController.getAnimationTargets(
-                        opening, closing, false /* visible */));
-    }
-
-    static class TestRemoteAnimationRunner implements IRemoteAnimationRunner {
-        private IRemoteAnimationFinishedCallback mFinishedCallback;
-
-        @Override
-        public void onAnimationStart(int transit, RemoteAnimationTarget[] apps,
-                RemoteAnimationTarget[] wallpapers, RemoteAnimationTarget[] nonApps,
-                IRemoteAnimationFinishedCallback finishedCallback) throws RemoteException {
-            mFinishedCallback = finishedCallback;
-        }
-
-        @Override
-        public void onAnimationCancelled() throws RemoteException {
-            mFinishedCallback = null;
-        }
-
-        @Override
-        public IBinder asBinder() {
-            return new Binder();
-        }
-
-        boolean isAnimationStarted() {
-            return mFinishedCallback != null;
-        }
-
-        void finishAnimation() {
-            try {
-                mFinishedCallback.onAnimationFinished();
-            } catch (RemoteException e) {
-                fail();
-            }
-        }
-    }
-
-    @Test
-    public void testGetRemoteAnimationOverrideEmpty() {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent);
-        assertNull(mAppTransitionController.getRemoteAnimationOverride(activity,
-                TRANSIT_OLD_ACTIVITY_OPEN, new ArraySet<Integer>()));
-    }
-
-    @Test
-    public void testGetRemoteAnimationOverrideWindowContainer() {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent);
-        final RemoteAnimationDefinition definition = new RemoteAnimationDefinition();
-        final RemoteAnimationAdapter adapter = new RemoteAnimationAdapter(
-                new TestRemoteAnimationRunner(), 10, 1);
-        definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter);
-        activity.registerRemoteAnimations(definition);
-
-        assertEquals(adapter,
-                mAppTransitionController.getRemoteAnimationOverride(
-                        activity, TRANSIT_OLD_ACTIVITY_OPEN, new ArraySet<Integer>()));
-        assertNull(mAppTransitionController.getRemoteAnimationOverride(
-                        null, TRANSIT_OLD_ACTIVITY_OPEN, new ArraySet<Integer>()));
-    }
-
-    @Test
-    public void testGetRemoteAnimationOverrideTransitionController() {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent);
-        final RemoteAnimationDefinition definition = new RemoteAnimationDefinition();
-        final RemoteAnimationAdapter adapter = new RemoteAnimationAdapter(
-                new TestRemoteAnimationRunner(), 10, 1);
-        definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter);
-        mAppTransitionController.registerRemoteAnimations(definition);
-
-        assertEquals(adapter,
-                mAppTransitionController.getRemoteAnimationOverride(
-                        activity, TRANSIT_OLD_ACTIVITY_OPEN, new ArraySet<Integer>()));
-        assertEquals(adapter,
-                mAppTransitionController.getRemoteAnimationOverride(
-                        null, TRANSIT_OLD_ACTIVITY_OPEN, new ArraySet<Integer>()));
-    }
-
-    @Test
-    public void testGetRemoteAnimationOverrideBoth() {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent);
-        final RemoteAnimationDefinition definition1 = new RemoteAnimationDefinition();
-        final RemoteAnimationAdapter adapter1 = new RemoteAnimationAdapter(
-                new TestRemoteAnimationRunner(), 10, 1);
-        definition1.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter1);
-        activity.registerRemoteAnimations(definition1);
-
-        final RemoteAnimationDefinition definition2 = new RemoteAnimationDefinition();
-        final RemoteAnimationAdapter adapter2 = new RemoteAnimationAdapter(
-                new TestRemoteAnimationRunner(), 10, 1);
-        definition2.addRemoteAnimation(TRANSIT_OLD_KEYGUARD_UNOCCLUDE, adapter2);
-        mAppTransitionController.registerRemoteAnimations(definition2);
-
-        assertEquals(adapter2,
-                mAppTransitionController.getRemoteAnimationOverride(
-                        activity, TRANSIT_OLD_KEYGUARD_UNOCCLUDE, new ArraySet<Integer>()));
-        assertEquals(adapter2,
-                mAppTransitionController.getRemoteAnimationOverride(
-                        null, TRANSIT_OLD_KEYGUARD_UNOCCLUDE, new ArraySet<Integer>()));
-    }
-
-    @Test
-    public void testGetRemoteAnimationOverrideWindowContainerHasPriority() {
-        final ActivityRecord activity = createActivityRecord(mDisplayContent);
-        final RemoteAnimationDefinition definition1 = new RemoteAnimationDefinition();
-        final RemoteAnimationAdapter adapter1 = new RemoteAnimationAdapter(
-                new TestRemoteAnimationRunner(), 10, 1);
-        definition1.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter1);
-        activity.registerRemoteAnimations(definition1);
-
-        final RemoteAnimationDefinition definition2 = new RemoteAnimationDefinition();
-        final RemoteAnimationAdapter adapter2 = new RemoteAnimationAdapter(
-                new TestRemoteAnimationRunner(), 10, 1);
-        definition2.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter2);
-        mAppTransitionController.registerRemoteAnimations(definition2);
-
-        assertEquals(adapter1,
-                mAppTransitionController.getRemoteAnimationOverride(
-                        activity, TRANSIT_OLD_ACTIVITY_OPEN, new ArraySet<Integer>()));
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_overrideWithEmbeddedActivity() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with embedded activity.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord activity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(activity);
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(activity, null /* closingActivity */, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation run by the remote handler.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_noOverrideWithOnlyTaskFragmentFillingTask() {
-        final Task task = createTask(mDisplayContent);
-        final ActivityRecord closingActivity = createActivityRecord(task);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with embedded activity.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-
-        // Make sure the TaskFragment is not embedded.
-        assertFalse(taskFragment.isEmbeddedWithBoundsOverride());
-        final ActivityRecord openingActivity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(closingActivity);
-        prepareActivityForAppTransition(openingActivity);
-        final int uid = 12345;
-        closingActivity.info.applicationInfo.uid = uid;
-        openingActivity.info.applicationInfo.uid = uid;
-        task.effectiveUid = uid;
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(openingActivity, closingActivity,
-                null /* changingTaskFragment */);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation is not run by the remote handler because the activity is filling the Task.
-        assertFalse(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_overrideWithTaskFragmentNotFillingTask() {
-        final Task task = createTask(mDisplayContent);
-        final ActivityRecord closingActivity = createActivityRecord(task);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with embedded activity.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-
-        // Make sure the TaskFragment is embedded.
-        taskFragment.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        final Rect embeddedBounds = new Rect(task.getBounds());
-        embeddedBounds.right = embeddedBounds.left + embeddedBounds.width() / 2;
-        taskFragment.setBounds(embeddedBounds);
-        assertTrue(taskFragment.isEmbeddedWithBoundsOverride());
-        final ActivityRecord openingActivity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(closingActivity);
-        prepareActivityForAppTransition(openingActivity);
-        final int uid = 12345;
-        closingActivity.info.applicationInfo.uid = uid;
-        openingActivity.info.applicationInfo.uid = uid;
-        task.effectiveUid = uid;
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(openingActivity, closingActivity,
-                null /* changingTaskFragment */);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation run by the remote handler.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_overrideWithNonEmbeddedActivity() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Closing non-embedded activity.
-        final ActivityRecord closingActivity = createActivityRecord(task);
-        prepareActivityForAppTransition(closingActivity);
-        // Opening TaskFragment with embedded activity.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord openingActivity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(openingActivity);
-        task.effectiveUid = openingActivity.getUid();
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(openingActivity, closingActivity, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation run by the remote handler.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_overrideEmbeddedActivityWithDiffUid() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Closing TaskFragment with embedded activity.
-        final TaskFragment taskFragment1 = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord closingActivity = taskFragment1.getTopMostActivity();
-        prepareActivityForAppTransition(closingActivity);
-        closingActivity.info.applicationInfo.uid = 12345;
-        // Opening TaskFragment with embedded activity with different UID.
-        final TaskFragment taskFragment2 = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord openingActivity = taskFragment2.getTopMostActivity();
-        prepareActivityForAppTransition(openingActivity);
-        openingActivity.info.applicationInfo.uid = 54321;
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(openingActivity, closingActivity, taskFragment1);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation run by the remote handler.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_noOverrideWithTwoApps() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Closing activity in Task1.
-        final ActivityRecord closingActivity = createActivityRecord(mDisplayContent);
-        prepareActivityForAppTransition(closingActivity);
-        // Opening TaskFragment with embedded activity in Task2.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord openingActivity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(openingActivity);
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(openingActivity, closingActivity, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation not run by the remote handler.
-        assertFalse(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_noOverrideNonEmbeddedActivityWithDiffUid() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Closing TaskFragment with embedded activity.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord closingActivity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(closingActivity);
-        closingActivity.info.applicationInfo.uid = 12345;
-        task.effectiveUid = closingActivity.getUid();
-        // Opening non-embedded activity with different UID.
-        final ActivityRecord openingActivity = createActivityRecord(task);
-        prepareActivityForAppTransition(openingActivity);
-        openingActivity.info.applicationInfo.uid = 54321;
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(openingActivity, closingActivity, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation should not run by the remote handler when there are non-embedded activities of
-        // different UID.
-        assertFalse(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_noOverrideWithWallpaper() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with embedded activity.
-        final TaskFragment taskFragment = createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final ActivityRecord activity = taskFragment.getTopMostActivity();
-        prepareActivityForAppTransition(activity);
-        // Set wallpaper as visible.
-        final WallpaperWindowToken wallpaperWindowToken = new WallpaperWindowToken(mWm,
-                mock(IBinder.class), true, mDisplayContent, true /* ownerCanManageAppTokens */);
-        spyOn(mDisplayContent.mWallpaperController);
-        doReturn(true).when(mDisplayContent.mWallpaperController).isWallpaperVisible();
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(activity, null /* closingActivity */, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // Animation should not run by the remote handler when there is wallpaper in the transition.
-        assertFalse(remoteAnimationRunner.isAnimationStarted());
-    }
-
-    @Test
-    public void testOverrideTaskFragmentAdapter_inputProtectedForUntrustedAnimation() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with embedded activities, one is trusted embedded, and the other
-        // one is untrusted embedded.
-        final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm)
-                .setParentTask(task)
-                .createActivityCount(2)
-                .setOrganizer(organizer)
-                .build();
-        final ActivityRecord activity0 = taskFragment.getChildAt(0).asActivityRecord();
-        final ActivityRecord activity1 = taskFragment.getChildAt(1).asActivityRecord();
-        // Also create a non-embedded activity in the Task.
-        final ActivityRecord activity2 = new ActivityBuilder(mAtm).build();
-        task.addChild(activity2, POSITION_BOTTOM);
-        prepareActivityForAppTransition(activity0);
-        prepareActivityForAppTransition(activity1);
-        prepareActivityForAppTransition(activity2);
-        doReturn(false).when(taskFragment).isAllowedToEmbedActivityInTrustedMode(activity0);
-        doReturn(true).when(taskFragment).isAllowedToEmbedActivityInTrustedMode(activity1);
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(activity1, null /* closingActivity */, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // The animation will be animated remotely by client and all activities are input disabled
-        // for untrusted animation.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-        verify(activity0).setDropInputForAnimation(true);
-        verify(activity1).setDropInputForAnimation(true);
-        verify(activity2).setDropInputForAnimation(true);
-        verify(activity0).setDropInputMode(DropInputMode.ALL);
-        verify(activity1).setDropInputMode(DropInputMode.ALL);
-        verify(activity2).setDropInputMode(DropInputMode.ALL);
-
-        // Reset input after animation is finished.
-        clearInvocations(activity0);
-        clearInvocations(activity1);
-        clearInvocations(activity2);
-        remoteAnimationRunner.finishAnimation();
-
-        verify(activity0).setDropInputForAnimation(false);
-        verify(activity1).setDropInputForAnimation(false);
-        verify(activity2).setDropInputForAnimation(false);
-        verify(activity0).setDropInputMode(DropInputMode.OBSCURED);
-        verify(activity1).setDropInputMode(DropInputMode.NONE);
-        verify(activity2).setDropInputMode(DropInputMode.NONE);
-    }
-
-    /**
-     * Since we don't have any use case to rely on handling input during animation, disable it even
-     * if it is trusted embedding so that it could cover some edge-cases when a previously trusted
-     * host starts doing something bad.
-     */
-    @Test
-    public void testOverrideTaskFragmentAdapter_inputProtectedForTrustedAnimation() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with only trusted embedded activity
-        final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm)
-                .setParentTask(task)
-                .createActivityCount(1)
-                .setOrganizer(organizer)
-                .build();
-        final ActivityRecord activity = taskFragment.getChildAt(0).asActivityRecord();
-        prepareActivityForAppTransition(activity);
-        doReturn(true).when(taskFragment).isAllowedToEmbedActivityInTrustedMode(activity);
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(activity, null /* closingActivity */, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // The animation will be animated remotely by client and all activities are input disabled
-        // for untrusted animation.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-        verify(activity).setDropInputForAnimation(true);
-        verify(activity).setDropInputMode(DropInputMode.ALL);
-
-        // Reset input after animation is finished.
-        clearInvocations(activity);
-        remoteAnimationRunner.finishAnimation();
-
-        verify(activity).setDropInputForAnimation(false);
-        verify(activity).setDropInputMode(DropInputMode.NONE);
-    }
-
-    /**
-     * We don't need to drop input for fully trusted embedding (system app, and embedding in the
-     * same app). This will allow users to do fast tapping.
-     */
-    @Test
-    public void testOverrideTaskFragmentAdapter_noInputProtectedForFullyTrustedAnimation() {
-        final Task task = createTask(mDisplayContent);
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final TestRemoteAnimationRunner remoteAnimationRunner = new TestRemoteAnimationRunner();
-        setupTaskFragmentRemoteAnimation(organizer, remoteAnimationRunner);
-
-        // Create a TaskFragment with only trusted embedded activity
-        final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm)
-                .setParentTask(task)
-                .createActivityCount(1)
-                .setOrganizer(organizer)
-                .build();
-        final ActivityRecord activity = taskFragment.getChildAt(0).asActivityRecord();
-        prepareActivityForAppTransition(activity);
-        final int uid = mAtm.mTaskFragmentOrganizerController.getTaskFragmentOrganizerUid(
-                getITaskFragmentOrganizer(organizer));
-        doReturn(true).when(task).isFullyTrustedEmbedding(uid);
-        spyOn(mDisplayContent.mAppTransition);
-
-        // Prepare and start transition.
-        prepareAndTriggerAppTransition(activity, null /* closingActivity */, taskFragment);
-        waitUntilWindowAnimatorIdle();
-
-        // The animation will be animated remotely by client, but input should not be dropped for
-        // fully trusted.
-        assertTrue(remoteAnimationRunner.isAnimationStarted());
-        verify(activity, never()).setDropInputForAnimation(true);
-        verify(activity, never()).setDropInputMode(DropInputMode.ALL);
-    }
-
-    @Test
-    public void testTransitionGoodToGoForTaskFragments() {
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final Task task = createTask(mDisplayContent);
-        final TaskFragment changeTaskFragment =
-                createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final TaskFragment emptyTaskFragment = new TaskFragmentBuilder(mAtm)
-                .setParentTask(task)
-                .setOrganizer(organizer)
-                .build();
-        prepareActivityForAppTransition(changeTaskFragment.getTopMostActivity());
-        spyOn(mDisplayContent.mAppTransition);
-        spyOn(emptyTaskFragment);
-
-        prepareAndTriggerAppTransition(
-                null /* openingActivity */, null /* closingActivity*/, changeTaskFragment);
-
-        // Transition not ready because there is an empty non-finishing TaskFragment.
-        verify(mDisplayContent.mAppTransition, never()).goodToGo(anyInt(), any());
-
-        doReturn(true).when(emptyTaskFragment).hasChild();
-        emptyTaskFragment.remove(false /* withTransition */, "test");
-
-        mDisplayContent.mAppTransitionController.handleAppTransitionReady();
-
-        // Transition ready because the empty (no running activity) TaskFragment is requested to be
-        // removed.
-        verify(mDisplayContent.mAppTransition).goodToGo(anyInt(), any());
-    }
-
-    @Test
-    public void testTransitionGoodToGoForTaskFragments_detachedApp() {
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final ITaskFragmentOrganizer iOrganizer = getITaskFragmentOrganizer(organizer);
-        registerTaskFragmentOrganizer(iOrganizer);
-        final Task task = createTask(mDisplayContent);
-        final TaskFragment changeTaskFragment =
-                createTaskFragmentWithEmbeddedActivity(task, organizer);
-        final TaskFragment emptyTaskFragment = new TaskFragmentBuilder(mAtm)
-                .setParentTask(task)
-                .setOrganizer(organizer)
-                .build();
-        prepareActivityForAppTransition(changeTaskFragment.getTopMostActivity());
-        // To make sure that having a detached activity won't cause any issue.
-        final ActivityRecord detachedActivity = createActivityRecord(task);
-        detachedActivity.removeImmediately();
-        assertNull(detachedActivity.getRootTask());
-        spyOn(mDisplayContent.mAppTransition);
-        spyOn(emptyTaskFragment);
-
-        prepareAndTriggerAppTransition(
-                null /* openingActivity */, detachedActivity, changeTaskFragment);
-
-        // Transition not ready because there is an empty non-finishing TaskFragment.
-        verify(mDisplayContent.mAppTransition, never()).goodToGo(anyInt(), any());
-
-        doReturn(true).when(emptyTaskFragment).hasChild();
-        emptyTaskFragment.remove(false /* withTransition */, "test");
-
-        mDisplayContent.mAppTransitionController.handleAppTransitionReady();
-
-        // Transition ready because the empty (no running activity) TaskFragment is requested to be
-        // removed.
-        verify(mDisplayContent.mAppTransition).goodToGo(anyInt(), any());
-    }
-
-    /** Registers remote animation for the organizer. */
-    private void setupTaskFragmentRemoteAnimation(TaskFragmentOrganizer organizer,
-            TestRemoteAnimationRunner remoteAnimationRunner) {
-        final RemoteAnimationAdapter adapter = new RemoteAnimationAdapter(
-                remoteAnimationRunner, 10, 1);
-        final ITaskFragmentOrganizer iOrganizer = getITaskFragmentOrganizer(organizer);
-        final RemoteAnimationDefinition definition = new RemoteAnimationDefinition();
-        definition.addRemoteAnimation(TRANSIT_OLD_TASK_FRAGMENT_CHANGE, adapter);
-        definition.addRemoteAnimation(TRANSIT_OLD_TASK_FRAGMENT_OPEN, adapter);
-        definition.addRemoteAnimation(TRANSIT_OLD_TASK_FRAGMENT_CLOSE, adapter);
-        definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_OPEN, adapter);
-        definition.addRemoteAnimation(TRANSIT_OLD_ACTIVITY_CLOSE, adapter);
-        registerTaskFragmentOrganizer(iOrganizer);
-        mAtm.mTaskFragmentOrganizerController.registerRemoteAnimations(iOrganizer, definition);
-    }
-
-    private static ITaskFragmentOrganizer getITaskFragmentOrganizer(
-            TaskFragmentOrganizer organizer) {
-        return ITaskFragmentOrganizer.Stub.asInterface(organizer.getOrganizerToken().asBinder());
-    }
-
-    private void prepareAndTriggerAppTransition(@Nullable ActivityRecord openingActivity,
-            @Nullable ActivityRecord closingActivity, @Nullable TaskFragment changingTaskFragment) {
-        if (openingActivity != null) {
-            mDisplayContent.mAppTransition.prepareAppTransition(TRANSIT_OPEN, 0);
-            mDisplayContent.mOpeningApps.add(openingActivity);
-        }
-        if (closingActivity != null) {
-            mDisplayContent.mAppTransition.prepareAppTransition(TRANSIT_CLOSE, 0);
-            mDisplayContent.mClosingApps.add(closingActivity);
-        }
-        if (changingTaskFragment != null) {
-            mDisplayContent.mAppTransition.prepareAppTransition(TRANSIT_CHANGE, 0);
-            mDisplayContent.mChangingContainers.add(changingTaskFragment);
-        }
-        mDisplayContent.mAppTransitionController.handleAppTransitionReady();
-    }
-
-    private static void prepareActivityForAppTransition(ActivityRecord activity) {
-        // Transition will wait until all participated activities to be drawn.
-        activity.allDrawn = true;
-        // Skip manipulate the SurfaceControl.
-        doNothing().when(activity).setDropInputMode(anyInt());
-        // Assume the activity contains a window.
-        doReturn(true).when(activity).hasChild();
-        // Make sure activity can create remote animation target.
-        doReturn(mock(RemoteAnimationTarget.class)).when(activity).createRemoteAnimationTarget(
-                any());
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
deleted file mode 100644
index 8553fbd..0000000
--- a/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- * Copyright (C) 2016 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.TYPE_APPLICATION_STARTING;
-import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
-import static android.view.WindowManager.TRANSIT_CHANGE;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_OCCLUDE;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
-import static android.view.WindowManager.TRANSIT_NONE;
-import static android.view.WindowManager.TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_CHANGE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_FRAGMENT_OPEN;
-import static android.view.WindowManager.TRANSIT_OLD_UNSET;
-import static android.view.WindowManager.TRANSIT_OPEN;
-
-import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
-
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.server.wm.WindowContainer.POSITION_TOP;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeFalse;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-
-import android.graphics.Rect;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.platform.test.annotations.Presubmit;
-import android.util.ArraySet;
-import android.view.Display;
-import android.view.IRemoteAnimationFinishedCallback;
-import android.view.IRemoteAnimationRunner;
-import android.view.RemoteAnimationAdapter;
-import android.view.RemoteAnimationTarget;
-import android.view.SurfaceControl;
-import android.view.WindowManager;
-import android.view.animation.Animation;
-import android.window.ITaskFragmentOrganizer;
-import android.window.TaskFragmentOrganizer;
-
-import androidx.test.filters.SmallTest;
-
-import com.android.internal.policy.TransitionAnimation;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Test class for {@link AppTransition}.
- *
- * Build/Install/Run:
- *  atest WmTests:AppTransitionTests
- */
-@SmallTest
-@Presubmit
-@RunWith(WindowTestRunner.class)
-public class AppTransitionTests extends WindowTestsBase {
-    private DisplayContent mDc;
-
-    @Before
-    public void setUp() throws Exception {
-        doNothing().when(mWm.mRoot).performSurfacePlacement();
-        mDc = mWm.getDefaultDisplayContentLocked();
-    }
-
-    @Test
-    public void testKeyguardOverride() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        final ActivityRecord activity = createActivityRecord(dc);
-
-        mDc.prepareAppTransition(TRANSIT_OPEN);
-        mDc.prepareAppTransition(TRANSIT_KEYGUARD_OCCLUDE);
-        mDc.prepareAppTransition(TRANSIT_KEYGUARD_GOING_AWAY);
-        mDc.mOpeningApps.add(activity);
-        assertEquals(TRANSIT_OLD_KEYGUARD_GOING_AWAY,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testKeyguardUnoccludeOcclude() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        final ActivityRecord activity = createActivityRecord(dc);
-
-        mDc.prepareAppTransition(TRANSIT_KEYGUARD_UNOCCLUDE);
-        mDc.prepareAppTransition(TRANSIT_KEYGUARD_OCCLUDE);
-        mDc.mOpeningApps.add(activity);
-        assertEquals(TRANSIT_NONE,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-
-    }
-
-    @Test
-    public void testKeyguardKeep() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        final ActivityRecord activity = createActivityRecord(dc);
-
-        mDc.prepareAppTransition(TRANSIT_KEYGUARD_GOING_AWAY);
-        mDc.prepareAppTransition(TRANSIT_OPEN);
-        mDc.mOpeningApps.add(activity);
-        assertEquals(TRANSIT_OLD_KEYGUARD_GOING_AWAY,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testCrashing() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        final ActivityRecord activity = createActivityRecord(dc);
-
-        mDc.prepareAppTransition(TRANSIT_OPEN);
-        mDc.prepareAppTransition(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED);
-        mDc.mClosingApps.add(activity);
-        assertEquals(TRANSIT_OLD_CRASHING_ACTIVITY_CLOSE,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testKeepKeyguard_withCrashing() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        final ActivityRecord activity = createActivityRecord(dc);
-
-        mDc.prepareAppTransition(TRANSIT_KEYGUARD_GOING_AWAY);
-        mDc.prepareAppTransition(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED);
-        mDc.mClosingApps.add(activity);
-        assertEquals(TRANSIT_OLD_KEYGUARD_GOING_AWAY,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testSkipTransitionAnimation() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        final ActivityRecord activity = createActivityRecord(dc);
-
-        mDc.prepareAppTransition(TRANSIT_OPEN);
-        mDc.prepareAppTransition(TRANSIT_CLOSE);
-        mDc.mClosingApps.add(activity);
-        assertEquals(TRANSIT_OLD_UNSET,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, true /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testTaskChangeWindowingMode() {
-        final ActivityRecord activity = createActivityRecord(mDc);
-
-        mDc.prepareAppTransition(TRANSIT_OPEN);
-        mDc.prepareAppTransition(TRANSIT_CHANGE);
-        mDc.mOpeningApps.add(activity); // Make sure TRANSIT_CHANGE has the priority
-        mDc.mChangingContainers.add(activity.getTask());
-
-        assertEquals(TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testTaskFragmentChange() {
-        final ActivityRecord activity = createActivityRecord(mDc);
-        final TaskFragment taskFragment = new TaskFragment(mAtm, new Binder(),
-                true /* createdByOrganizer */, true /* isEmbedded */);
-        activity.getTask().addChild(taskFragment, POSITION_TOP);
-        activity.reparent(taskFragment, POSITION_TOP);
-
-        mDc.prepareAppTransition(TRANSIT_OPEN);
-        mDc.prepareAppTransition(TRANSIT_CHANGE);
-        mDc.mOpeningApps.add(activity); // Make sure TRANSIT_CHANGE has the priority
-        mDc.mChangingContainers.add(taskFragment);
-
-        assertEquals(TRANSIT_OLD_TASK_FRAGMENT_CHANGE,
-                AppTransitionController.getTransitCompatType(mDc.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /*skipAppTransitionAnimation*/));
-    }
-
-    @Test
-    public void testTaskFragmentOpeningTransition() {
-        final ActivityRecord activity = createHierarchyForTaskFragmentTest();
-        activity.setVisible(false);
-
-        mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
-        mDisplayContent.mOpeningApps.add(activity);
-        assertEquals(TRANSIT_OLD_TASK_FRAGMENT_OPEN,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /* skipAppTransitionAnimation */));
-    }
-
-    @Test
-    public void testTaskFragmentClosingTransition() {
-        final ActivityRecord activity = createHierarchyForTaskFragmentTest();
-        activity.setVisible(true);
-
-        mDisplayContent.prepareAppTransition(TRANSIT_CLOSE);
-        mDisplayContent.mClosingApps.add(activity);
-        assertEquals(TRANSIT_OLD_TASK_FRAGMENT_CLOSE,
-                AppTransitionController.getTransitCompatType(mDisplayContent.mAppTransition,
-                        mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps,
-                        mDisplayContent.mChangingContainers, null /* wallpaperTarget */,
-                        null /* oldWallpaper */, false /* skipAppTransitionAnimation */));
-    }
-
-    /**
-     * Creates a {@link Task} with two {@link TaskFragment TaskFragments}.
-     * The bottom TaskFragment is to prevent
-     * {@link AppTransitionController#getAnimationTargets(ArraySet, ArraySet, boolean) the animation
-     * target} to promote to Task or above.
-     *
-     * @return The Activity to be put in either opening or closing Activity
-     */
-    private ActivityRecord createHierarchyForTaskFragmentTest() {
-        final Task parentTask = createTask(mDisplayContent);
-        final TaskFragment bottomTaskFragment = createTaskFragmentWithActivity(parentTask);
-        final ActivityRecord bottomActivity = bottomTaskFragment.getTopMostActivity();
-        bottomActivity.setOccludesParent(true);
-        bottomActivity.setVisible(true);
-
-        final TaskFragment verifiedTaskFragment = createTaskFragmentWithActivity(parentTask);
-        final ActivityRecord activity = verifiedTaskFragment.getTopMostActivity();
-        activity.setOccludesParent(true);
-
-        return activity;
-    }
-
-    @Test
-    public void testAppTransitionStateForMultiDisplay() {
-        // Create 2 displays & presume both display the state is ON for ready to display & animate.
-        final DisplayContent dc1 = createNewDisplay(Display.STATE_ON);
-        final DisplayContent dc2 = createNewDisplay(Display.STATE_ON);
-
-        // Create 2 app window tokens to represent 2 activity window.
-        final ActivityRecord activity1 = createActivityRecord(dc1);
-        final ActivityRecord activity2 = createActivityRecord(dc2);
-
-        activity1.allDrawn = true;
-        activity1.startingMoved = true;
-
-        // Simulate activity resume / finish flows to prepare app transition & set visibility,
-        // make sure transition is set as expected for each display.
-        dc1.prepareAppTransition(TRANSIT_OPEN);
-        dc2.prepareAppTransition(TRANSIT_CLOSE);
-        // One activity window is visible for resuming & the other activity window is invisible
-        // for finishing in different display.
-        activity1.setVisibility(true);
-        activity2.setVisibility(false);
-
-        // Make sure each display is in animating stage.
-        assertTrue(dc1.mOpeningApps.size() > 0);
-        assertTrue(dc2.mClosingApps.size() > 0);
-        assertTrue(dc1.isAppTransitioning());
-        assertTrue(dc2.isAppTransitioning());
-    }
-
-    @Test
-    public void testCleanAppTransitionWhenRootTaskReparent() {
-        // Create 2 displays & presume both display the state is ON for ready to display & animate.
-        final DisplayContent dc1 = createNewDisplay(Display.STATE_ON);
-        final DisplayContent dc2 = createNewDisplay(Display.STATE_ON);
-
-        final Task rootTask1 = createTask(dc1);
-        final Task task1 = createTaskInRootTask(rootTask1, 0 /* userId */);
-        final ActivityRecord activity1 = createNonAttachedActivityRecord(dc1);
-        task1.addChild(activity1, 0);
-
-        // Simulate same app is during opening / closing transition set stage.
-        dc1.mClosingApps.add(activity1);
-        assertTrue(dc1.mClosingApps.size() > 0);
-
-        dc1.prepareAppTransition(TRANSIT_OPEN);
-        assertTrue(dc1.mAppTransition.containsTransitRequest(TRANSIT_OPEN));
-        assertTrue(dc1.mAppTransition.isTransitionSet());
-
-        dc1.mOpeningApps.add(activity1);
-        assertTrue(dc1.mOpeningApps.size() > 0);
-
-        // Move root task to another display.
-        rootTask1.reparent(dc2.getDefaultTaskDisplayArea(), true);
-
-        // Verify if token are cleared from both pending transition list in former display.
-        assertFalse(dc1.mOpeningApps.contains(activity1));
-        assertFalse(dc1.mOpeningApps.contains(activity1));
-    }
-
-    @Test
-    public void testLoadAnimationSafely() {
-        DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        assertNull(dc.mAppTransition.loadAnimationSafely(
-                getInstrumentation().getTargetContext(), -1));
-    }
-
-    @Test
-    public void testCancelRemoteAnimationWhenFreeze() {
-        final DisplayContent dc = createNewDisplay(Display.STATE_ON);
-        doReturn(false).when(dc).onDescendantOrientationChanged(any());
-        final WindowState exitingAppWindow = newWindowBuilder("exiting app",
-                TYPE_BASE_APPLICATION).setDisplay(dc).build();
-        final ActivityRecord exitingActivity = exitingAppWindow.mActivityRecord;
-        // Wait until everything in animation handler get executed to prevent the exiting window
-        // from being removed during WindowSurfacePlacer Traversal.
-        waitUntilHandlersIdle();
-
-        // Set a remote animator.
-        final TestRemoteAnimationRunner runner = new TestRemoteAnimationRunner();
-        final RemoteAnimationAdapter adapter = new RemoteAnimationAdapter(
-                runner, 100, 50, true /* changeNeedsSnapshot */);
-        // RemoteAnimationController will tracking RemoteAnimationAdapter's caller with calling pid.
-        adapter.setCallingPidUid(123, 456);
-
-        // Simulate activity finish flows to prepare app transition & set visibility,
-        // make sure transition is set as expected.
-        dc.prepareAppTransition(TRANSIT_CLOSE);
-        assertTrue(dc.mAppTransition.containsTransitRequest(TRANSIT_CLOSE));
-        dc.mAppTransition.overridePendingAppTransitionRemote(adapter);
-        exitingActivity.setVisibility(false);
-        assertTrue(dc.mClosingApps.size() > 0);
-
-        // Make sure window is in animating stage before freeze, and cancel after freeze.
-        assertTrue(dc.isAppTransitioning());
-        assertFalse(runner.mCancelled);
-        dc.mAppTransition.freeze();
-        assertFalse(dc.isAppTransitioning());
-        assertTrue(runner.mCancelled);
-    }
-
-    @Test
-    public void testGetAnimationStyleResId() {
-        // Verify getAnimationStyleResId will return as LayoutParams.windowAnimations when without
-        // specifying window type.
-        final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams();
-        attrs.windowAnimations = 0x12345678;
-        assertEquals(attrs.windowAnimations, mDc.mAppTransition.getAnimationStyleResId(attrs));
-
-        // Verify getAnimationStyleResId will return system resource Id when the window type is
-        // starting window.
-        attrs.type = TYPE_APPLICATION_STARTING;
-        assertEquals(mDc.mAppTransition.getDefaultWindowAnimationStyleResId(),
-                mDc.mAppTransition.getAnimationStyleResId(attrs));
-    }
-
-    @Test
-    public void testActivityRecordReparentedToTaskFragment() {
-        final ActivityRecord activity = createActivityRecord(mDc);
-        final SurfaceControl activityLeash = mock(SurfaceControl.class);
-        doNothing().when(activity).setDropInputMode(anyInt());
-        activity.setVisibility(true);
-        activity.setSurfaceControl(activityLeash);
-        final Task task = activity.getTask();
-
-        // Add a TaskFragment of half of the Task size.
-        final TaskFragmentOrganizer organizer = new TaskFragmentOrganizer(Runnable::run);
-        final ITaskFragmentOrganizer iOrganizer =
-                ITaskFragmentOrganizer.Stub.asInterface(organizer.getOrganizerToken().asBinder());
-        registerTaskFragmentOrganizer(iOrganizer);
-        final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm)
-                .setParentTask(task)
-                .setOrganizer(organizer)
-                .build();
-        final Rect taskBounds = new Rect();
-        task.getBounds(taskBounds);
-        taskFragment.setBounds(0, 0, taskBounds.right / 2, taskBounds.bottom);
-        spyOn(taskFragment);
-
-        assertTrue(mDc.mChangingContainers.isEmpty());
-        assertFalse(mDc.mAppTransition.isTransitionSet());
-
-        // Schedule app transition when reparent activity to a TaskFragment of different size.
-        final Rect startBounds = new Rect(activity.getBounds());
-        activity.reparent(taskFragment, POSITION_TOP);
-
-        // It should transit at TaskFragment level with snapshot on the activity surface.
-        verify(taskFragment).initializeChangeTransition(activity.getBounds(), activityLeash);
-        assertTrue(mDc.mChangingContainers.contains(taskFragment));
-        assertTrue(mDc.mAppTransition.containsTransitRequest(TRANSIT_CHANGE));
-    }
-
-    @Test
-    public void testGetNextAppTransitionBackgroundColor() {
-        assumeFalse(WindowManagerService.sEnableShellTransitions);
-
-        // No override by default.
-        assertEquals(0, mDc.mAppTransition.getNextAppTransitionBackgroundColor());
-
-        // Override with a custom color.
-        mDc.mAppTransition.prepareAppTransition(TRANSIT_OPEN, 0);
-        final int testColor = 123;
-        mDc.mAppTransition.overridePendingAppTransition("testPackage", 0 /* enterAnim */,
-                0 /* exitAnim */, testColor, null /* startedCallback */, null /* endedCallback */,
-                false /* overrideTaskTransaction */);
-
-        assertEquals(testColor, mDc.mAppTransition.getNextAppTransitionBackgroundColor());
-        assertTrue(mDc.mAppTransition.isNextAppTransitionOverrideRequested());
-
-        // Override with ActivityEmbedding remote animation. Background color should be kept.
-        mDc.mAppTransition.overridePendingAppTransitionRemote(mock(RemoteAnimationAdapter.class),
-                false /* sync */, true /* isActivityEmbedding */);
-
-        assertEquals(testColor, mDc.mAppTransition.getNextAppTransitionBackgroundColor());
-        assertFalse(mDc.mAppTransition.isNextAppTransitionOverrideRequested());
-
-        // Background color should not be cleared anymore after #clear().
-        mDc.mAppTransition.clear();
-        assertEquals(0, mDc.mAppTransition.getNextAppTransitionBackgroundColor());
-        assertFalse(mDc.mAppTransition.isNextAppTransitionOverrideRequested());
-    }
-
-    @Test
-    public void testGetNextAppRequestedAnimation() {
-        assumeFalse(WindowManagerService.sEnableShellTransitions);
-        final String packageName = "testPackage";
-        final int enterAnimResId = 1;
-        final int exitAnimResId = 2;
-        final int testColor = 123;
-        final Animation enterAnim = mock(Animation.class);
-        final Animation exitAnim = mock(Animation.class);
-        final TransitionAnimation transitionAnimation = mDc.mAppTransition.mTransitionAnimation;
-        spyOn(transitionAnimation);
-        doReturn(enterAnim).when(transitionAnimation)
-                .loadAppTransitionAnimation(packageName, enterAnimResId);
-        doReturn(exitAnim).when(transitionAnimation)
-                .loadAppTransitionAnimation(packageName, exitAnimResId);
-
-        // No override by default.
-        assertNull(mDc.mAppTransition.getNextAppRequestedAnimation(true /* enter */));
-        assertNull(mDc.mAppTransition.getNextAppRequestedAnimation(false /* enter */));
-
-        // Override with a custom animation.
-        mDc.mAppTransition.prepareAppTransition(TRANSIT_OPEN, 0);
-        mDc.mAppTransition.overridePendingAppTransition(packageName, enterAnimResId, exitAnimResId,
-                testColor, null /* startedCallback */, null /* endedCallback */,
-                false /* overrideTaskTransaction */);
-
-        assertEquals(enterAnim, mDc.mAppTransition.getNextAppRequestedAnimation(true /* enter */));
-        assertEquals(exitAnim, mDc.mAppTransition.getNextAppRequestedAnimation(false /* enter */));
-        assertTrue(mDc.mAppTransition.isNextAppTransitionOverrideRequested());
-
-        // Override with ActivityEmbedding remote animation. Custom animation should be kept.
-        mDc.mAppTransition.overridePendingAppTransitionRemote(mock(RemoteAnimationAdapter.class),
-                false /* sync */, true /* isActivityEmbedding */);
-
-        assertEquals(enterAnim, mDc.mAppTransition.getNextAppRequestedAnimation(true /* enter */));
-        assertEquals(exitAnim, mDc.mAppTransition.getNextAppRequestedAnimation(false /* enter */));
-        assertFalse(mDc.mAppTransition.isNextAppTransitionOverrideRequested());
-
-        // Custom animation should not be cleared anymore after #clear().
-        mDc.mAppTransition.clear();
-        assertNull(mDc.mAppTransition.getNextAppRequestedAnimation(true /* enter */));
-        assertNull(mDc.mAppTransition.getNextAppRequestedAnimation(false /* enter */));
-    }
-
-    private class TestRemoteAnimationRunner implements IRemoteAnimationRunner {
-        boolean mCancelled = false;
-        @Override
-        public void onAnimationStart(@WindowManager.TransitionOldType int transit,
-                RemoteAnimationTarget[] apps,
-                RemoteAnimationTarget[] wallpapers,
-                RemoteAnimationTarget[] nonApps,
-                IRemoteAnimationFinishedCallback finishedCallback) throws RemoteException {
-        }
-
-        @Override
-        public void onAnimationCancelled() {
-            mCancelled = true;
-        }
-
-        @Override
-        public IBinder asBinder() {
-            return null;
-        }
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/wm/BackgroundActivityStartControllerExemptionTests.java b/services/tests/wmtests/src/com/android/server/wm/BackgroundActivityStartControllerExemptionTests.java
index da010ae..c934c55 100644
--- a/services/tests/wmtests/src/com/android/server/wm/BackgroundActivityStartControllerExemptionTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/BackgroundActivityStartControllerExemptionTests.java
@@ -907,7 +907,6 @@
         int realCallingUid = REGULAR_UID_2;
         int realCallingPid = REGULAR_PID_2;
 
-        mDeviceConfig.set("system_exempt_from_activity_bg_start_restriction_enabled", "true");
         AppOpsManager appOpsManager = mock(AppOpsManager.class);
         when(mService.getAppOpsManager()).thenReturn(appOpsManager);
         when(appOpsManager.checkOpNoThrow(eq(
diff --git a/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java b/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java
index e0b700a..eaffc48 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java
@@ -97,6 +97,7 @@
     public void canEnterDesktopMode_DWFlagDisabled_configsOn_disableDeviceCheck_returnsFalse()
             throws Exception {
         doReturn(true).when(mMockResources).getBoolean(eq(R.bool.config_isDesktopModeSupported));
+        doReturn(true).when(mMockResources).getBoolean(eq(R.bool.config_canInternalDisplayHostDesktops));
         doReturn(true).when(mMockResources).getBoolean(
                 eq(R.bool.config_isDesktopModeDevOptionSupported));
         disableEnforceDeviceRestriction();
@@ -148,6 +149,7 @@
     @Test
     public void canEnterDesktopMode_DWFlagEnabled_configDesktopModeOn_returnsTrue() {
         doReturn(true).when(mMockResources).getBoolean(eq(R.bool.config_isDesktopModeSupported));
+        doReturn(true).when(mMockResources).getBoolean(eq(R.bool.config_canInternalDisplayHostDesktops));
 
         assertThat(DesktopModeHelper.canEnterDesktopMode(mMockContext)).isTrue();
     }
@@ -176,21 +178,21 @@
 
     @Test
     public void isDeviceEligibleForDesktopMode_configDEModeOn_returnsTrue() {
-        doReturn(true).when(mMockResources).getBoolean(eq(R.bool.config_isDesktopModeSupported));
+        doReturn(true).when(mMockResources).getBoolean(eq(R.bool.config_canInternalDisplayHostDesktops));
 
-        assertThat(DesktopModeHelper.isDeviceEligibleForDesktopMode(mMockContext)).isTrue();
+        assertThat(DesktopModeHelper.isInternalDisplayEligibleToHostDesktops(mMockContext)).isTrue();
     }
 
     @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
     @Test
     public void isDeviceEligibleForDesktopMode_supportFlagOff_returnsFalse() {
-        assertThat(DesktopModeHelper.isDeviceEligibleForDesktopMode(mMockContext)).isFalse();
+        assertThat(DesktopModeHelper.isInternalDisplayEligibleToHostDesktops(mMockContext)).isFalse();
     }
 
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
     @Test
     public void isDeviceEligibleForDesktopMode_supportFlagOn_returnsFalse() {
-        assertThat(DesktopModeHelper.isDeviceEligibleForDesktopMode(mMockContext)).isFalse();
+        assertThat(DesktopModeHelper.isInternalDisplayEligibleToHostDesktops(mMockContext)).isFalse();
     }
 
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
@@ -200,7 +202,7 @@
                 eq(R.bool.config_isDesktopModeDevOptionSupported)
         );
 
-        assertThat(DesktopModeHelper.isDeviceEligibleForDesktopMode(mMockContext)).isTrue();
+        assertThat(DesktopModeHelper.isInternalDisplayEligibleToHostDesktops(mMockContext)).isTrue();
     }
 
     private void resetEnforceDeviceRestriction() throws Exception {
@@ -234,4 +236,4 @@
         Settings.Global.putInt(mContext.getContentResolver(),
                 DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, override.getSetting());
     }
-}
+}
\ No newline at end of file
diff --git a/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java b/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java
index fdde3b3..d305c2f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java
@@ -1345,7 +1345,7 @@
     private void setupDesktopModeLaunchParamsModifier(boolean isDesktopModeSupported,
             boolean enforceDeviceRestrictions) {
         doReturn(isDesktopModeSupported)
-                .when(() -> DesktopModeHelper.isDeviceEligibleForDesktopMode(any()));
+                .when(() -> DesktopModeHelper.canEnterDesktopMode(any()));
         doReturn(enforceDeviceRestrictions)
                 .when(DesktopModeHelper::shouldEnforceDeviceRestrictions);
     }
diff --git a/services/tests/wmtests/src/com/android/server/wm/DesktopWindowingRobot.java b/services/tests/wmtests/src/com/android/server/wm/DesktopWindowingRobot.java
index 285a5e2..ea21bb3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DesktopWindowingRobot.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DesktopWindowingRobot.java
@@ -23,6 +23,7 @@
 /** Robot for changing desktop windowing properties. */
 class DesktopWindowingRobot {
     void allowEnterDesktopMode(boolean isAllowed) {
-        doReturn(isAllowed).when(() -> DesktopModeHelper.canEnterDesktopMode(any()));
+        doReturn(isAllowed).when(() ->
+                DesktopModeHelper.canEnterDesktopMode(any()));
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/DeviceStateAutoRotateSettingControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/DeviceStateAutoRotateSettingControllerTests.java
new file mode 100644
index 0000000..0ddce72
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DeviceStateAutoRotateSettingControllerTests.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.annotations.Presubmit;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.server.testutils.OffsettableClock;
+import com.android.server.testutils.TestHandler;
+import com.android.window.flags.Flags;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Test class for {@link DeviceStateAutoRotateSettingController}.
+ *
+ * <p>Build/Install/Run: atest WmTests:DeviceStateAutoRotateSettingControllerTests
+ */
+@SmallTest
+@Presubmit
+public class DeviceStateAutoRotateSettingControllerTests {
+    private static final OffsettableClock sClock = new OffsettableClock.Stopped();
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private DeviceStateAutoRotateSettingController mDeviceStateAutoRotateSettingController;
+    @Mock
+    private DeviceStateAutoRotateSettingIssueLogger mMockLogger;
+    @Mock
+    private Context mMockContext;
+    @Mock
+    private ContentResolver mMockContentResolver;
+    @Captor
+    private ArgumentCaptor<ContentObserver> mContentObserverCaptor;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        when(mMockContext.getContentResolver()).thenReturn(mMockContentResolver);
+        mDeviceStateAutoRotateSettingController = new DeviceStateAutoRotateSettingController(
+                mMockContext, mMockLogger, new TestHandler(null, sClock));
+        verify(mMockContentResolver)
+                .registerContentObserver(
+                        eq(Settings.Secure.getUriFor(Settings.Secure.DEVICE_STATE_ROTATION_LOCK)),
+                        anyBoolean(),
+                        mContentObserverCaptor.capture());
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_LOGGING)
+    public void loggingFlagEnabled_onDeviceStateChanged_loggerNotified() {
+        mDeviceStateAutoRotateSettingController.onDeviceStateChange(
+                DeviceStateController.DeviceState.FOLDED);
+
+        verify(mMockLogger, times(1)).onDeviceStateChange();
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_LOGGING)
+    public void loggingFlagDisabled_onDeviceStateChanged_loggerNotNotified() {
+        mDeviceStateAutoRotateSettingController.onDeviceStateChange(
+                DeviceStateController.DeviceState.FOLDED);
+
+        verify(mMockLogger, never()).onDeviceStateChange();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_LOGGING)
+    public void loggingFlagEnabled_settingChanged_loggerNotified() {
+        mContentObserverCaptor.getValue().onChange(false);
+
+        verify(mMockLogger, times(1)).onDeviceStateAutoRotateSettingChange();
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_LOGGING)
+    public void loggingFlagDisabled_settingChanged_loggerNotNotified() {
+        mContentObserverCaptor.getValue().onChange(false);
+
+        verify(mMockLogger, never()).onDeviceStateAutoRotateSettingChange();
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DeviceStateAutoRotateSettingIssueLoggerTests.java b/services/tests/wmtests/src/com/android/server/wm/DeviceStateAutoRotateSettingIssueLoggerTests.java
new file mode 100644
index 0000000..f76a9cd
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DeviceStateAutoRotateSettingIssueLoggerTests.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.server.wm.DeviceStateAutoRotateSettingIssueLogger.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_THRESHOLD_MILLIS;
+
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+
+import android.platform.test.annotations.Presubmit;
+
+import androidx.annotation.NonNull;
+import androidx.test.filters.SmallTest;
+
+import com.android.dx.mockito.inline.extended.StaticMockitoSession;
+import com.android.internal.util.FrameworkStatsLog;
+import com.android.server.wm.utils.CurrentTimeMillisSupplierFake;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Test class for {@link DeviceStateAutoRotateSettingIssueLogger}.
+ *
+ * <p>Build/Install/Run: atest WmTests:DeviceStateAutoRotateSettingIssueLoggerTests
+ */
+@SmallTest
+@Presubmit
+public class DeviceStateAutoRotateSettingIssueLoggerTests {
+    private static final int DELAY = 500;
+
+    private DeviceStateAutoRotateSettingIssueLogger mDeviceStateAutoRotateSettingIssueLogger;
+    private StaticMockitoSession mStaticMockitoSession;
+    @NonNull
+    private CurrentTimeMillisSupplierFake mTestTimeSupplier;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mStaticMockitoSession = mockitoSession().mockStatic(
+                FrameworkStatsLog.class).startMocking();
+        mTestTimeSupplier = new CurrentTimeMillisSupplierFake();
+        mDeviceStateAutoRotateSettingIssueLogger =
+                new DeviceStateAutoRotateSettingIssueLogger(mTestTimeSupplier);
+    }
+
+    @After
+    public void teardown() {
+        mStaticMockitoSession.finishMocking();
+    }
+
+    @Test
+    public void onStateChange_deviceStateChangedFirst_isDeviceStateFirstTrue() {
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateChange();
+        mTestTimeSupplier.delay(DELAY);
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateAutoRotateSettingChange();
+
+        verify(() ->
+                FrameworkStatsLog.write(
+                        eq(FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED),
+                        anyInt(),
+                        eq(true)));
+    }
+
+    @Test
+    public void onStateChange_autoRotateSettingChangedFirst_isDeviceStateFirstFalse() {
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateAutoRotateSettingChange();
+        mTestTimeSupplier.delay(DELAY);
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateChange();
+
+        verify(() ->
+                FrameworkStatsLog.write(
+                        eq(FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED),
+                        anyInt(),
+                        eq(false)));
+    }
+
+    @Test
+    public void onStateChange_deviceStateDidNotChange_doNotReport() {
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateAutoRotateSettingChange();
+
+        verify(() ->
+                FrameworkStatsLog.write(
+                        eq(FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED),
+                        anyInt(),
+                        anyBoolean()), never());
+    }
+
+    @Test
+    public void onStateChange_autoRotateSettingDidNotChange_doNotReport() {
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateChange();
+
+        verify(() ->
+                FrameworkStatsLog.write(
+                        eq(FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED),
+                        anyInt(),
+                        anyBoolean()), never());
+    }
+
+    @Test
+    public void onStateChange_issueOccurred_correctDurationReported() {
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateChange();
+        mTestTimeSupplier.delay(DELAY);
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateAutoRotateSettingChange();
+
+        verify(() ->
+                FrameworkStatsLog.write(
+                        eq(FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED),
+                        eq(DELAY),
+                        anyBoolean()));
+    }
+
+    @Test
+    public void onStateChange_durationLongerThanThreshold_doNotReport() {
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateChange();
+        mTestTimeSupplier.delay(
+                DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_THRESHOLD_MILLIS + DELAY);
+        mDeviceStateAutoRotateSettingIssueLogger.onDeviceStateAutoRotateSettingChange();
+
+        verify(() ->
+                FrameworkStatsLog.write(
+                        eq(FrameworkStatsLog.DEVICE_STATE_AUTO_ROTATE_SETTING_ISSUE_REPORTED),
+                        anyInt(),
+                        anyBoolean()), never());
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaOrganizerTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaOrganizerTest.java
index d2f0385..7f94c0e 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaOrganizerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaOrganizerTest.java
@@ -223,9 +223,10 @@
 
         mOrganizerController.deleteTaskDisplayArea(newTda.mRemoteToken.toWindowContainerToken());
 
-        verify(newTda).remove();
+        verify(newTda).prepareForRemoval();
         verify(newTda).removeImmediately();
         assertThat(newTda.mOrganizer).isNull();
+        assertThat(newTda.shouldKeepNoTask()).isTrue();
         assertThat(newTda.isRemoved()).isTrue();
 
         final TaskDisplayArea curTda = mDisplayContent.getItemFromDisplayAreas(
@@ -248,9 +249,10 @@
 
         mOrganizerController.unregisterOrganizer(organizer);
 
-        verify(newTda).remove();
+        verify(newTda).prepareForRemoval();
         verify(newTda).removeImmediately();
         assertThat(newTda.mOrganizer).isNull();
+        assertThat(newTda.shouldKeepNoTask()).isTrue();
         assertThat(newTda.isRemoved()).isTrue();
 
         final TaskDisplayArea curTda = mDisplayContent.getItemFromDisplayAreas(
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index 0964ebe..82435b2 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -1172,11 +1172,12 @@
                 .setScreenOrientation(getRotatedOrientation(mDisplayContent)).build();
         prev.setVisibleRequested(false);
         final ActivityRecord top = new ActivityBuilder(mAtm).setCreateTask(true)
+                .setVisible(false)
                 .setScreenOrientation(SCREEN_ORIENTATION_BEHIND).build();
         assertNotEquals(WindowConfiguration.ROTATION_UNDEFINED,
                 mDisplayContent.rotationForActivityInDifferentOrientation(top));
 
-        mDisplayContent.requestTransitionAndLegacyPrepare(WindowManager.TRANSIT_OPEN, 0);
+        requestTransition(top, WindowManager.TRANSIT_OPEN);
         top.setVisibility(true);
         mDisplayContent.updateOrientation();
         // The top uses "behind", so the orientation is decided by the previous.
@@ -1609,8 +1610,7 @@
         final ActivityRecord app = mAppWindow.mActivityRecord;
         app.setVisible(false);
         app.setVisibleRequested(false);
-        registerTestTransitionPlayer();
-        mDisplayContent.requestTransitionAndLegacyPrepare(WindowManager.TRANSIT_OPEN, 0);
+        requestTransition(app, WindowManager.TRANSIT_OPEN);
         app.setVisibility(true);
         final int newOrientation = getRotatedOrientation(mDisplayContent);
         app.setRequestedOrientation(newOrientation);
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 6c5fe1d..71e34ef 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
@@ -53,6 +53,7 @@
 import android.view.InsetsSourceControl;
 import android.view.InsetsState;
 import android.view.WindowInsets;
+import android.view.WindowInsets.Type.InsetsType;
 
 import androidx.test.filters.SmallTest;
 
@@ -400,9 +401,9 @@
         assertTrue(state.isSourceOrDefaultVisible(statusBarSource.getId(), statusBars()));
         assertTrue(state.isSourceOrDefaultVisible(navBarSource.getId(), navigationBars()));
 
-        mAppWindow.setRequestedVisibleTypes(
+        final @InsetsType int changedTypes = mAppWindow.setRequestedVisibleTypes(
                 navigationBars() | statusBars(), navigationBars() | statusBars());
-        policy.onRequestedVisibleTypesChanged(mAppWindow, null /* statsToken */);
+        policy.onRequestedVisibleTypesChanged(mAppWindow, changedTypes, null /* statsToken */);
         waitUntilWindowAnimatorIdle();
 
         controls = mDisplayContent.getInsetsStateController().getControlsForDispatch(mAppWindow);
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
index 973c8d0..5525bae 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
@@ -52,6 +52,7 @@
 import android.view.InsetsSource;
 import android.view.InsetsSourceControl;
 import android.view.InsetsState;
+import android.view.WindowInsets.Type.InsetsType;
 
 import androidx.test.filters.SmallTest;
 
@@ -201,8 +202,8 @@
         getController().getOrCreateSourceProvider(ID_IME, ime())
                 .setWindowContainer(mImeWindow, null, null);
         getController().onImeControlTargetChanged(base);
-        base.setRequestedVisibleTypes(ime(), ime());
-        getController().onRequestedVisibleTypesChanged(base, null /* statsToken */);
+        final @InsetsType int changedTypes = base.setRequestedVisibleTypes(ime(), ime());
+        getController().onRequestedVisibleTypesChanged(base, changedTypes, null /* statsToken */);
         if (android.view.inputmethod.Flags.refactorInsetsController()) {
             // to set the serverVisibility, the IME needs to be drawn and onPostLayout be called.
             mImeWindow.mWinAnimator.mDrawState = HAS_DRAWN;
@@ -509,8 +510,8 @@
         mDisplayContent.setImeLayeringTarget(app);
         mDisplayContent.updateImeInputAndControlTarget(app);
 
-        app.setRequestedVisibleTypes(ime(), ime());
-        getController().onRequestedVisibleTypesChanged(app, null /* statsToken */);
+        final @InsetsType int changedTypes = app.setRequestedVisibleTypes(ime(), ime());
+        getController().onRequestedVisibleTypesChanged(app, changedTypes, null /* statsToken */);
         assertTrue(ime.getControllableInsetProvider().getSource().isVisible());
 
         if (android.view.inputmethod.Flags.refactorInsetsController()) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java
new file mode 100644
index 0000000..db90c28
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.view.Display.FLAG_PRESENTATION;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.window.flags.Flags.FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.eq;
+
+import android.graphics.Rect;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.annotations.Presubmit;
+import android.view.DisplayInfo;
+import android.view.IWindow;
+import android.view.InsetsSourceControl;
+import android.view.InsetsState;
+import android.view.View;
+import android.view.WindowInsets;
+import android.view.WindowManager;
+import android.view.WindowManagerGlobal;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Build/Install/Run:
+ * atest WmTests:PresentationControllerTests
+ */
+@SmallTest
+@Presubmit
+@RunWith(WindowTestRunner.class)
+public class PresentationControllerTests extends WindowTestsBase {
+
+    @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testPresentationHidesActivitiesBehind() {
+        final DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.copyFrom(mDisplayInfo);
+        displayInfo.flags = FLAG_PRESENTATION;
+        final DisplayContent dc = createNewDisplay(displayInfo);
+        final int displayId = dc.getDisplayId();
+        doReturn(dc).when(mWm.mRoot).getDisplayContentOrCreate(displayId);
+        final ActivityRecord activity = createActivityRecord(createTask(dc));
+        assertTrue(activity.isVisible());
+
+        doReturn(true).when(() -> UserManager.isVisibleBackgroundUsersEnabled());
+        final int uid = 100000; // uid for non-system user
+        final Session session = createTestSession(mAtm, 1234 /* pid */, uid);
+        final int userId = UserHandle.getUserId(uid);
+        doReturn(false).when(mWm.mUmInternal).isUserVisible(eq(userId), eq(displayId));
+        final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
+                WindowManager.LayoutParams.TYPE_PRESENTATION);
+
+        final IWindow clientWindow = new TestIWindow();
+        final int result = mWm.addWindow(session, clientWindow, params, View.VISIBLE, displayId,
+                userId, WindowInsets.Type.defaultVisible(), null, new InsetsState(),
+                new InsetsSourceControl.Array(), new Rect(), new float[1]);
+        assertTrue(result >= WindowManagerGlobal.ADD_OKAY);
+        assertFalse(activity.isVisible());
+
+        final WindowState window = mWm.windowForClientLocked(session, clientWindow, false);
+        window.removeImmediately();
+        assertTrue(activity.isVisible());
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java
index fc4f54a..e4a1bf6 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java
@@ -454,31 +454,6 @@
     }
 
     @Test
-    public void testMovingBottomMostRootTaskActivityToPinnedRootTask() {
-        final Task fullscreenTask = mRootWindowContainer.getDefaultTaskDisplayArea().createRootTask(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
-        final ActivityRecord firstActivity = new ActivityBuilder(mAtm)
-                .setTask(fullscreenTask).build();
-        final Task task = firstActivity.getTask();
-
-        final ActivityRecord secondActivity = new ActivityBuilder(mAtm)
-                .setTask(fullscreenTask).build();
-
-        fullscreenTask.moveTaskToBack(task);
-
-        // Ensure full screen task has both tasks.
-        ensureTaskPlacement(fullscreenTask, firstActivity, secondActivity);
-        assertEquals(task.getTopMostActivity(), secondActivity);
-        firstActivity.setState(STOPPED, "testMovingBottomMostRootTaskActivityToPinnedRootTask");
-
-
-        // Move first activity to pinned root task.
-        mRootWindowContainer.moveActivityToPinnedRootTask(secondActivity, "initialMove");
-
-        assertTrue(firstActivity.mRequestForceTransition);
-    }
-
-    @Test
     public void testMultipleActivitiesTaskEnterPip() {
         // Enable shell transition because the order of setting windowing mode is different.
         registerTestTransitionPlayer();
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 dba463a..95bca2b 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -1811,9 +1811,9 @@
         }
         addStatusBar(mActivity.mDisplayContent);
 
-        mActivity.setVisible(false);
-        mActivity.mDisplayContent.prepareAppTransition(WindowManager.TRANSIT_OPEN);
-        mActivity.mDisplayContent.mOpeningApps.add(mActivity);
+        mActivity.setVisibleRequested(false);
+        requestTransition(mActivity, WindowManager.TRANSIT_OPEN);
+        mActivity.setVisibility(true);
         final float maxAspect = 1.8f;
         prepareUnresizable(mActivity, maxAspect, SCREEN_ORIENTATION_LANDSCAPE);
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/SplashScreenExceptionListTest.java b/services/tests/wmtests/src/com/android/server/wm/SplashScreenExceptionListTest.java
index 2ea5dc4..727cd86 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SplashScreenExceptionListTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SplashScreenExceptionListTest.java
@@ -71,7 +71,8 @@
     @Before
     public void setUp() throws Exception {
         mInitialWindowManagerProperties = DeviceConfig.getProperties(
-                DeviceConfig.NAMESPACE_WINDOW_MANAGER);
+                DeviceConfig.NAMESPACE_WINDOW_MANAGER,
+                KEY_SPLASH_SCREEN_EXCEPTION_LIST);
         clearConstrainDisplayApisFlags();
     }
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java b/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java
index 7dba142..2544550 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java
@@ -22,6 +22,7 @@
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -69,7 +70,6 @@
 
     private MyAnimatable mAnimatable;
     private MyAnimatable mAnimatable2;
-    private DeferFinishAnimatable mDeferFinishAnimatable;
 
     @Before
     public void setUp() throws Exception {
@@ -77,14 +77,12 @@
 
         mAnimatable = new MyAnimatable(mWm, mTransaction);
         mAnimatable2 = new MyAnimatable(mWm, mTransaction);
-        mDeferFinishAnimatable = new DeferFinishAnimatable(mWm, mTransaction);
     }
 
     @After
     public void tearDown() {
         mAnimatable = null;
         mAnimatable2 = null;
-        mDeferFinishAnimatable = null;
     }
 
     @Test
@@ -202,41 +200,33 @@
     }
 
     @Test
-    public void testDeferFinish() {
-
-        // Start animation
-        final OnAnimationFinishedCallback onFinishedCallback = startDeferFinishAnimatable(mSpec);
-
-        // Finish the animation but then make sure we are deferring.
-        onFinishedCallback.onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, mSpec);
-        assertAnimating(mDeferFinishAnimatable);
-
-        // Now end defer finishing.
-        mDeferFinishAnimatable.mEndDeferFinishCallback.run();
-        assertNotAnimating(mAnimatable2);
-        assertTrue(mDeferFinishAnimatable.mFinishedCallbackCalled);
-        assertEquals(ANIMATION_TYPE_APP_TRANSITION, mDeferFinishAnimatable.mFinishedAnimationType);
-        verify(mTransaction).remove(eq(mDeferFinishAnimatable.mLeash));
-    }
-
-    @Test
     public void testDeferFinishDoNotFinishNextAnimation() {
+        final DeferredFinishAdapter deferredFinishAdapter = new DeferredFinishAdapter();
+        spyOn(deferredFinishAdapter);
         // Start the first animation.
-        final OnAnimationFinishedCallback onFinishedCallback = startDeferFinishAnimatable(mSpec);
-        onFinishedCallback.onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, mSpec);
+        mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, deferredFinishAdapter,
+                true /* hidden */, ANIMATION_TYPE_WINDOW_ANIMATION);
+        assertAnimating(mAnimatable);
+        final ArgumentCaptor<OnAnimationFinishedCallback> callbackCaptor = ArgumentCaptor.forClass(
+                OnAnimationFinishedCallback.class);
+        verify(deferredFinishAdapter).startAnimation(any(), any(),
+                eq(ANIMATION_TYPE_WINDOW_ANIMATION), callbackCaptor.capture());
+        final OnAnimationFinishedCallback onFinishedCallback = callbackCaptor.getValue();
+        onFinishedCallback.onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION,
+                deferredFinishAdapter);
         // The callback is the resetAndInvokeFinish in {@link SurfaceAnimator#getFinishedCallback}.
-        final Runnable firstDeferFinishCallback = mDeferFinishAnimatable.mEndDeferFinishCallback;
+        final Runnable firstDeferFinishCallback = deferredFinishAdapter.mEndDeferFinishCallback;
 
         // Start the second animation.
-        mDeferFinishAnimatable.mSurfaceAnimator.cancelAnimation();
-        startDeferFinishAnimatable(mSpec2);
-        mDeferFinishAnimatable.mFinishedCallbackCalled = false;
+        mAnimatable.mSurfaceAnimator.cancelAnimation();
+        mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec2,
+                true /* hidden */, ANIMATION_TYPE_WINDOW_ANIMATION);
+        mAnimatable.mFinishedCallbackCalled = false;
 
-        // Simulate the first deferred callback is executed from
-        // {@link AnimatingActivityRegistry#endDeferringFinished}.
+        // Simulate the first deferred callback is executed.
         firstDeferFinishCallback.run();
         // The second animation should not be finished.
-        assertFalse(mDeferFinishAnimatable.mFinishedCallbackCalled);
+        assertFalse(mAnimatable.mFinishedCallbackCalled);
     }
 
     @Test
@@ -260,17 +250,6 @@
         verify(mTransaction).remove(eq(deferredFinishAdapter.mAnimationLeash));
     }
 
-    private OnAnimationFinishedCallback startDeferFinishAnimatable(AnimationAdapter anim) {
-        mDeferFinishAnimatable.mSurfaceAnimator.startAnimation(mTransaction, anim,
-                true /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
-        final ArgumentCaptor<OnAnimationFinishedCallback> callbackCaptor = ArgumentCaptor.forClass(
-                OnAnimationFinishedCallback.class);
-        assertAnimating(mDeferFinishAnimatable);
-        verify(anim).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION),
-                callbackCaptor.capture());
-        return callbackCaptor.getValue();
-    }
-
     private void assertAnimating(MyAnimatable animatable) {
         assertTrue(animatable.mSurfaceAnimator.isAnimating());
         assertNotNull(animatable.mSurfaceAnimator.getAnimation());
@@ -370,21 +349,6 @@
         };
     }
 
-    private static class DeferFinishAnimatable extends MyAnimatable {
-
-        Runnable mEndDeferFinishCallback;
-
-        DeferFinishAnimatable(WindowManagerService wm, Transaction transaction) {
-            super(wm, transaction);
-        }
-
-        @Override
-        public boolean shouldDeferAnimationFinish(Runnable endDeferFinishCallback) {
-            mEndDeferFinishCallback = endDeferFinishCallback;
-            return true;
-        }
-    }
-
     private static class DeferredFinishAdapter implements AnimationAdapter {
 
         private Runnable mEndDeferFinishCallback;
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskDisplayAreaTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskDisplayAreaTests.java
index f795d93..986532c 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskDisplayAreaTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskDisplayAreaTests.java
@@ -550,10 +550,11 @@
 
     @Test
     @UseTestDisplay
-    public void testRemove_reparentToDefault() {
+    public void testPrepareForRemoval_reparentToDefault() {
         final Task task = createTask(mDisplayContent);
         final TaskDisplayArea displayArea = task.getDisplayArea();
-        displayArea.remove();
+        displayArea.prepareForRemoval();
+        assertTrue(displayArea.shouldKeepNoTask());
         assertTrue(displayArea.isRemoved());
         assertFalse(displayArea.hasChild());
 
@@ -565,11 +566,12 @@
 
     @Test
     @UseTestDisplay
-    public void testRemove_rootTaskCreatedByOrganizer() {
+    public void testPrepareForRemoval_rootTaskCreatedByOrganizer() {
         final Task task = createTask(mDisplayContent);
         task.mCreatedByOrganizer = true;
         final TaskDisplayArea displayArea = task.getDisplayArea();
-        displayArea.remove();
+        displayArea.prepareForRemoval();
+        assertTrue(displayArea.shouldKeepNoTask());
         assertTrue(displayArea.isRemoved());
         assertFalse(displayArea.hasChild());
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java
index ee8d730..7ab55bf 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java
@@ -45,6 +45,9 @@
 import static com.android.server.wm.TaskFragment.EMBEDDED_DIM_AREA_TASK_FRAGMENT;
 import static com.android.server.wm.TaskFragment.EMBEDDING_DISALLOWED_MIN_DIMENSION_VIOLATION;
 import static com.android.server.wm.TaskFragment.EMBEDDING_DISALLOWED_UNTRUSTED_HOST;
+import static com.android.server.wm.TaskFragment.TASK_FRAGMENT_VISIBILITY_INVISIBLE;
+import static com.android.server.wm.TaskFragment.TASK_FRAGMENT_VISIBILITY_VISIBLE;
+import static com.android.server.wm.TaskFragment.TASK_FRAGMENT_VISIBILITY_VISIBLE_BEHIND_TRANSLUCENT;
 import static com.android.server.wm.WindowContainer.POSITION_TOP;
 
 import static org.junit.Assert.assertEquals;
@@ -255,6 +258,74 @@
     }
 
     @Test
+    public void testVisibilityBehindOpaqueTaskFragment_withTranslucentTaskFragmentInTask() {
+        final Task topTask = createTask(mDisplayContent);
+        final Rect top = new Rect();
+        final Rect bottom = new Rect();
+        topTask.getBounds().splitVertically(top, bottom);
+
+        final TaskFragment taskFragmentA = createTaskFragmentWithActivity(topTask);
+        final TaskFragment taskFragmentB = createTaskFragmentWithActivity(topTask);
+        final TaskFragment taskFragmentC = createTaskFragmentWithActivity(topTask);
+
+        // B and C split the task window. A is behind B. C is translucent.
+        taskFragmentA.setBounds(top);
+        taskFragmentB.setBounds(top);
+        taskFragmentC.setBounds(bottom);
+        taskFragmentA.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        taskFragmentB.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        taskFragmentC.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        taskFragmentB.setAdjacentTaskFragments(
+                new TaskFragment.AdjacentSet(taskFragmentB, taskFragmentC));
+        doReturn(true).when(taskFragmentC).isTranslucent(any());
+
+        // Ensure the activity below is visible
+        topTask.ensureActivitiesVisible(null /* starting */);
+
+        // B and C should be visible. A should be invisible.
+        assertEquals(TASK_FRAGMENT_VISIBILITY_INVISIBLE,
+                taskFragmentA.getVisibility(null /* starting */));
+        assertEquals(TASK_FRAGMENT_VISIBILITY_VISIBLE,
+                taskFragmentB.getVisibility(null /* starting */));
+        assertEquals(TASK_FRAGMENT_VISIBILITY_VISIBLE,
+                taskFragmentC.getVisibility(null /* starting */));
+    }
+
+    @Test
+    public void testVisibilityBehindTranslucentTaskFragment() {
+        final Task topTask = createTask(mDisplayContent);
+        final Rect top = new Rect();
+        final Rect bottom = new Rect();
+        topTask.getBounds().splitVertically(top, bottom);
+
+        final TaskFragment taskFragmentA = createTaskFragmentWithActivity(topTask);
+        final TaskFragment taskFragmentB = createTaskFragmentWithActivity(topTask);
+        final TaskFragment taskFragmentC = createTaskFragmentWithActivity(topTask);
+
+        // B and C split the task window. A is behind B. B is translucent.
+        taskFragmentA.setBounds(top);
+        taskFragmentB.setBounds(top);
+        taskFragmentC.setBounds(bottom);
+        taskFragmentA.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        taskFragmentB.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        taskFragmentC.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        taskFragmentB.setAdjacentTaskFragments(
+                new TaskFragment.AdjacentSet(taskFragmentB, taskFragmentC));
+        doReturn(true).when(taskFragmentB).isTranslucent(any());
+
+        // Ensure the activity below is visible
+        topTask.ensureActivitiesVisible(null /* starting */);
+
+        // A, B and C should be visible.
+        assertEquals(TASK_FRAGMENT_VISIBILITY_VISIBLE,
+                taskFragmentC.getVisibility(null /* starting */));
+        assertEquals(TASK_FRAGMENT_VISIBILITY_VISIBLE,
+                taskFragmentB.getVisibility(null /* starting */));
+        assertEquals(TASK_FRAGMENT_VISIBILITY_VISIBLE_BEHIND_TRANSLUCENT,
+                taskFragmentA.getVisibility(null /* starting */));
+    }
+
+    @Test
     public void testFindTopNonFinishingActivity_ignoresLaunchedFromBubbleActivities() {
         final ActivityOptions opts = ActivityOptions.makeBasic();
         opts.setTaskAlwaysOnTop(true);
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
index 0014465..edffab8 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
@@ -32,8 +32,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_OLD_TASK_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN;
-import static android.view.WindowManager.TRANSIT_OPEN;
 import static android.window.DisplayAreaOrganizer.FEATURE_DEFAULT_TASK_CONTAINER;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
@@ -85,12 +83,8 @@
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.util.ArraySet;
-import android.view.IRemoteAnimationFinishedCallback;
-import android.view.IRemoteAnimationRunner;
 import android.view.InsetsFrameProvider;
 import android.view.InsetsSource;
-import android.view.RemoteAnimationAdapter;
-import android.view.RemoteAnimationTarget;
 import android.view.SurfaceControl;
 import android.view.SurfaceSession;
 import android.view.WindowInsets;
@@ -1055,25 +1049,6 @@
     }
 
     @Test
-    public void testTaskCanApplyAnimation() {
-        final Task rootTask = createTask(mDisplayContent);
-        final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent, task);
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent, task);
-        verifyWindowContainerApplyAnimation(task, activity1, activity2);
-    }
-
-    @Test
-    public void testRootTaskCanApplyAnimation() {
-        final Task rootTask = createTask(mDisplayContent);
-        final ActivityRecord activity2 = createActivityRecord(mDisplayContent,
-                createTaskInRootTask(rootTask, 0 /* userId */));
-        final ActivityRecord activity1 = createActivityRecord(mDisplayContent,
-                createTaskInRootTask(rootTask, 0 /* userId */));
-        verifyWindowContainerApplyAnimation(rootTask, activity1, activity2);
-    }
-
-    @Test
     public void testGetDisplayArea() {
         // WindowContainer
         final WindowContainer windowContainer = new WindowContainer(mWm);
@@ -1103,59 +1078,6 @@
         assertEquals(displayArea, displayArea.getDisplayArea());
     }
 
-    private void verifyWindowContainerApplyAnimation(WindowContainer wc, ActivityRecord act,
-            ActivityRecord act2) {
-        // Initial remote animation for app transition.
-        final RemoteAnimationAdapter adapter = new RemoteAnimationAdapter(
-                new IRemoteAnimationRunner.Stub() {
-                    @Override
-                    public void onAnimationStart(@WindowManager.TransitionOldType int transit,
-                            RemoteAnimationTarget[] apps,
-                            RemoteAnimationTarget[] wallpapers,
-                            RemoteAnimationTarget[] nonApps,
-                            IRemoteAnimationFinishedCallback finishedCallback) {
-                        try {
-                            finishedCallback.onAnimationFinished();
-                        } catch (RemoteException e) {
-                            e.printStackTrace();
-                        }
-                    }
-
-                    @Override
-                    public void onAnimationCancelled() {
-                    }
-                }, 0, 0, false);
-        adapter.setCallingPidUid(123, 456);
-        wc.getDisplayContent().prepareAppTransition(TRANSIT_OPEN);
-        wc.getDisplayContent().mAppTransition.overridePendingAppTransitionRemote(adapter);
-        spyOn(wc);
-        doReturn(true).when(wc).okToAnimate();
-
-        // Make sure animating state is as expected after applied animation.
-
-        // Animation target is promoted from act to wc. act2 is a descendant of wc, but not a source
-        // of the animation.
-        ArrayList<WindowContainer<WindowState>> sources = new ArrayList<>();
-        sources.add(act);
-        assertTrue(wc.applyAnimation(null, TRANSIT_OLD_TASK_OPEN, true, false, sources));
-
-        assertEquals(act, wc.getTopMostActivity());
-        assertTrue(wc.isAnimating());
-        assertTrue(wc.isAnimating(0, ANIMATION_TYPE_APP_TRANSITION));
-        assertTrue(wc.getAnimationSources().contains(act));
-        assertFalse(wc.getAnimationSources().contains(act2));
-        assertTrue(act.isAnimating(PARENTS));
-        assertTrue(act.isAnimating(PARENTS, ANIMATION_TYPE_APP_TRANSITION));
-        assertEquals(wc, act.getAnimatingContainer(PARENTS, ANIMATION_TYPE_APP_TRANSITION));
-
-        // Make sure animation finish callback will be received and reset animating state after
-        // animation finish.
-        wc.getDisplayContent().mAppTransition.goodToGo(TRANSIT_OLD_TASK_OPEN, act);
-        verify(wc).onAnimationFinished(eq(ANIMATION_TYPE_APP_TRANSITION), any());
-        assertFalse(wc.isAnimating());
-        assertFalse(act.isAnimating(PARENTS));
-    }
-
     @Test
     public void testRegisterWindowContainerListener() {
         final WindowContainer container = new WindowContainer(mWm);
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
index 7bc2c47..71e84c0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
@@ -26,7 +26,6 @@
 import static android.permission.flags.Flags.FLAG_SENSITIVE_NOTIFICATION_APP_PROTECTION;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.FLAG_OWN_FOCUS;
-import static android.view.Display.FLAG_PRESENTATION;
 import static android.view.Display.INVALID_DISPLAY;
 import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
 import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
@@ -37,6 +36,7 @@
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
@@ -54,7 +54,6 @@
 import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND_FLOATING;
 import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_SOLID_COLOR;
 import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_WALLPAPER;
-import static com.android.window.flags.Flags.FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -101,7 +100,6 @@
 import android.util.ArraySet;
 import android.util.MergedConfiguration;
 import android.view.ContentRecordingSession;
-import android.view.DisplayInfo;
 import android.view.IWindow;
 import android.view.InputChannel;
 import android.view.InputDevice;
@@ -1408,38 +1406,6 @@
         assertEquals(activityWindowInfo2, activityWindowInfo3);
     }
 
-    @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
-    @Test
-    public void testPresentationHidesActivitiesBehind() {
-        DisplayInfo displayInfo = new DisplayInfo();
-        displayInfo.copyFrom(mDisplayInfo);
-        displayInfo.flags = FLAG_PRESENTATION;
-        DisplayContent dc = createNewDisplay(displayInfo);
-        int displayId = dc.getDisplayId();
-        doReturn(dc).when(mWm.mRoot).getDisplayContentOrCreate(displayId);
-        ActivityRecord activity = createActivityRecord(createTask(dc));
-        assertTrue(activity.isVisible());
-
-        doReturn(true).when(() -> UserManager.isVisibleBackgroundUsersEnabled());
-        int uid = 100000; // uid for non-system user
-        Session session = createTestSession(mAtm, 1234 /* pid */, uid);
-        int userId = UserHandle.getUserId(uid);
-        doReturn(false).when(mWm.mUmInternal).isUserVisible(eq(userId), eq(displayId));
-        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
-                LayoutParams.TYPE_PRESENTATION);
-
-        final IWindow clientWindow = new TestIWindow();
-        int result = mWm.addWindow(session, clientWindow, params, View.VISIBLE, displayId,
-                userId, WindowInsets.Type.defaultVisible(), null, new InsetsState(),
-                new InsetsSourceControl.Array(), new Rect(), new float[1]);
-        assertTrue(result >= WindowManagerGlobal.ADD_OKAY);
-        assertFalse(activity.isVisible());
-
-        final WindowState window = mWm.windowForClientLocked(session, clientWindow, false);
-        window.removeImmediately();
-        assertTrue(activity.isVisible());
-    }
-
     @Test
     public void testAddOverlayWindowToUnassignedDisplay_notAllowed_ForVisibleBackgroundUsers() {
         doReturn(true).when(() -> UserManager.isVisibleBackgroundUsersEnabled());
@@ -1471,6 +1437,52 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_FIX_HIDE_OVERLAY_API)
+    public void testUpdateOverlayWindows_singleWindowRequestsHiding_doNotHideOverlayWithSameUid() {
+        WindowState overlayWindow = newWindowBuilder("overlay_window",
+                TYPE_APPLICATION_OVERLAY).build();
+        WindowState appWindow = newWindowBuilder("app_window", TYPE_APPLICATION).build();
+        makeWindowVisible(appWindow, overlayWindow);
+
+        int uid = 100000;
+        spyOn(appWindow);
+        spyOn(overlayWindow);
+        doReturn(true).when(appWindow).hideNonSystemOverlayWindowsWhenVisible();
+        doReturn(uid).when(appWindow).getOwningUid();
+        doReturn(uid).when(overlayWindow).getOwningUid();
+
+        mWm.updateNonSystemOverlayWindowsVisibilityIfNeeded(appWindow, true);
+
+        verify(overlayWindow).setForceHideNonSystemOverlayWindowIfNeeded(false);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_HIDE_OVERLAY_API)
+    public void testUpdateOverlayWindows_multipleWindowsRequestHiding_hideOverlaysWithAnyUids() {
+        WindowState overlayWindow = newWindowBuilder("overlay_window",
+                TYPE_APPLICATION_OVERLAY).build();
+        WindowState appWindow1 = newWindowBuilder("app_window_1", TYPE_APPLICATION).build();
+        WindowState appWindow2 = newWindowBuilder("app_window_2", TYPE_APPLICATION).build();
+        makeWindowVisible(appWindow1, appWindow2, overlayWindow);
+
+        int uid1 = 100000;
+        int uid2 = 100001;
+        spyOn(appWindow1);
+        spyOn(appWindow2);
+        spyOn(overlayWindow);
+        doReturn(true).when(appWindow1).hideNonSystemOverlayWindowsWhenVisible();
+        doReturn(true).when(appWindow2).hideNonSystemOverlayWindowsWhenVisible();
+        doReturn(uid1).when(appWindow1).getOwningUid();
+        doReturn(uid1).when(overlayWindow).getOwningUid();
+        doReturn(uid2).when(appWindow2).getOwningUid();
+
+        mWm.updateNonSystemOverlayWindowsVisibilityIfNeeded(appWindow1, true);
+        mWm.updateNonSystemOverlayWindowsVisibilityIfNeeded(appWindow2, true);
+
+        verify(overlayWindow).setForceHideNonSystemOverlayWindowIfNeeded(true);
+    }
+
+    @Test
     @EnableFlags(Flags.FLAG_REPARENT_WINDOW_TOKEN_API)
     public void reparentWindowContextToDisplayArea_newDisplay_reparented() {
         final WindowToken windowToken = createTestClientWindowToken(TYPE_NOTIFICATION_SHADE,
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java
index 1281be51..7030d986 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java
@@ -26,6 +26,7 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+import static android.content.pm.ActivityInfo.CONFIG_UI_MODE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
@@ -33,6 +34,8 @@
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.content.res.Configuration.SCREEN_HEIGHT_DP_UNDEFINED;
 import static android.content.res.Configuration.SCREEN_WIDTH_DP_UNDEFINED;
+import static android.content.res.Configuration.UI_MODE_NIGHT_NO;
+import static android.content.res.Configuration.UI_MODE_NIGHT_YES;
 import static android.view.InsetsSource.FLAG_FORCE_CONSUMING;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.window.DisplayAreaOrganizer.FEATURE_VENDOR_FIRST;
@@ -1983,6 +1986,30 @@
         testSetAlwaysOnTop(displayArea);
     }
 
+    @Test
+    public void testConfigurationsAreEqualForOrganizer() {
+        Configuration config1 = new Configuration();
+        config1.smallestScreenWidthDp = 300;
+        config1.uiMode = UI_MODE_NIGHT_YES;
+
+        Configuration config2 = new Configuration(config1);
+        config2.uiMode = UI_MODE_NIGHT_NO;
+
+        Configuration config3 = new Configuration(config1);
+        config3.smallestScreenWidthDp = 500;
+
+        // Should be equal for non-controllable configuration changes.
+        assertTrue(WindowOrganizerController.configurationsAreEqualForOrganizer(config1, config2));
+
+        // Should be unequal for non-controllable configuration changes if the organizer is
+        // interested in that change.
+        assertFalse(WindowOrganizerController.configurationsAreEqualForOrganizer(
+                config1, config2, CONFIG_UI_MODE));
+
+        // Should be unequal for controllable configuration changes.
+        assertFalse(WindowOrganizerController.configurationsAreEqualForOrganizer(config1, config3));
+    }
+
     private void testSetAlwaysOnTop(WindowContainer wc) {
         final WindowContainerTransaction t = new WindowContainerTransaction();
         t.setAlwaysOnTop(wc.mRemoteToken.toWindowContainerToken(), true);
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
index cff172f..a718c06 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
@@ -1282,7 +1282,6 @@
         // Simulate app plays closing transition to app2.
         app.mActivityRecord.commitVisibility(false, false);
         assertTrue(app.mActivityRecord.mLastImeShown);
-        assertTrue(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
 
         // Verify the IME insets is visible on app, but not for app2 during app task switching.
         assertTrue(app.getInsetsState().isSourceOrDefaultVisible(ID_IME, ime()));
@@ -1305,7 +1304,7 @@
 
         // Simulate app2 in multi-window mode is going to background to switch to the fullscreen
         // app which requests IME with updating all windows Insets State when IME is above app.
-        app2.mActivityRecord.mImeInsetsFrozenUntilStartInput = true;
+        app2.mActivityRecord.setVisibleRequested(false);
         mDisplayContent.setImeLayeringTarget(app);
         mDisplayContent.setImeInputTarget(app);
         app.setRequestedVisibleTypes(ime(), ime());
@@ -1324,7 +1323,6 @@
         mDisplayContent.setImeLayeringTarget(app2);
         app.mActivityRecord.commitVisibility(false, false);
         assertTrue(app.mActivityRecord.mLastImeShown);
-        assertTrue(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
 
         // Verify the IME insets is still visible on app, but not for app2 during task switching.
         assertTrue(app.getInsetsState().isSourceOrDefaultVisible(ID_IME, ime()));
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
index b16f528..7f9e591 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
@@ -961,6 +961,15 @@
         return testPlayer;
     }
 
+    void requestTransition(WindowContainer<?> wc, int transit) {
+        final TransitionController controller = mRootWindowContainer.mTransitionController;
+        if (controller.getTransitionPlayer() == null) {
+            registerTestTransitionPlayer();
+        }
+        controller.requestTransitionIfNeeded(transit, 0 /* flags */, null /* trigger */,
+                wc.mDisplayContent);
+    }
+
     /** Overrides the behavior of config_reverseDefaultRotation for the given display. */
     void setReverseDefaultRotation(DisplayContent dc, boolean reverse) {
         final DisplayRotation displayRotation = dc.getDisplayRotation();
@@ -1417,7 +1426,9 @@
             activity.setProcess(wpc);
 
             // Resume top activities to make sure all other signals in the system are connected.
-            mService.mRootWindowContainer.resumeFocusedTasksTopActivities();
+            if (mVisible) {
+                mService.mRootWindowContainer.resumeFocusedTasksTopActivities();
+            }
             return activity;
         }
     }
diff --git a/services/usb/java/com/android/server/usb/UsbPortManager.java b/services/usb/java/com/android/server/usb/UsbPortManager.java
index 55a8923..86468b0 100644
--- a/services/usb/java/com/android/server/usb/UsbPortManager.java
+++ b/services/usb/java/com/android/server/usb/UsbPortManager.java
@@ -200,7 +200,11 @@
         mHandler.sendEmptyMessage(MSG_SYSTEM_READY);
     }
 
-    private void updateContaminantNotification() {
+    private void updateContaminantNotificationLocked() {
+        if (mNotificationManager == null) {
+            return;
+        }
+
         PortInfo currentPortInfo = null;
         Resources r = mContext.getResources();
         int contaminantStatus = UsbPortStatus.CONTAMINANT_DETECTION_NOT_DETECTED;
@@ -1171,7 +1175,7 @@
     private void handlePortLocked(PortInfo portInfo, IndentingPrintWriter pw) {
         sendPortChangedBroadcastLocked(portInfo);
         logToStatsd(portInfo, pw);
-        updateContaminantNotification();
+        updateContaminantNotificationLocked();
     }
 
     private void handlePortAddedLocked(PortInfo portInfo, IndentingPrintWriter pw) {
@@ -1433,6 +1437,9 @@
                 case MSG_SYSTEM_READY: {
                     mNotificationManager = (NotificationManager)
                             mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+                    synchronized (mLock) {
+                        updateContaminantNotificationLocked();
+                    }
                     break;
                 }
             }
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index e0af223..d2741ac 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -4821,10 +4821,14 @@
                     + "Invalid subscriptionId: " + subscriptionId);
         }
 
+        String contextPkg = mContext != null ? mContext.getOpPackageName() : "<unknown>";
+        String contextAttributionTag = mContext != null ? mContext.getAttributionTag() : null;
+
         try {
             ISub iSub = TelephonyManager.getSubscriptionService();
             if (iSub != null) {
-                return iSub.isSubscriptionAssociatedWithCallingUser(subscriptionId);
+                return iSub.isSubscriptionAssociatedWithCallingUser(subscriptionId, contextPkg,
+                        contextAttributionTag);
             } else {
                 throw new IllegalStateException("subscription service unavailable.");
             }
diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java
index 5daa29b..22624e2 100644
--- a/telephony/java/android/telephony/data/ApnSetting.java
+++ b/telephony/java/android/telephony/data/ApnSetting.java
@@ -994,7 +994,6 @@
      *
      * @return True if the PDU session for this APN should always be on and false otherwise
      */
-    @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
     public boolean isAlwaysOn() {
         return mAlwaysOn;
     }
@@ -2349,7 +2348,6 @@
          *
          * @param alwaysOn the always on status to set for this APN
          */
-        @FlaggedApi(Flags.FLAG_APN_SETTING_FIELD_SUPPORT_FLAG)
         public @NonNull Builder setAlwaysOn(boolean alwaysOn) {
             this.mAlwaysOn = alwaysOn;
             return this;
diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl
index 1bfec29..a974c61 100644
--- a/telephony/java/com/android/internal/telephony/ISub.aidl
+++ b/telephony/java/com/android/internal/telephony/ISub.aidl
@@ -347,13 +347,17 @@
      * Returns whether the given subscription is associated with the calling user.
      *
      * @param subscriptionId the subscription ID of the subscription
+     * @param callingPackage The package maing the call
+     * @param callingFeatureId The feature in the package
+
      * @return {@code true} if the subscription is associated with the user that the current process
      *         is running in; {@code false} otherwise.
      *
      * @throws IllegalArgumentException if subscription doesn't exist.
      * @throws SecurityException if the caller doesn't have permissions required.
      */
-    boolean isSubscriptionAssociatedWithCallingUser(int subscriptionId);
+    boolean isSubscriptionAssociatedWithCallingUser(int subscriptionId, String callingPackage,
+            String callingFeatureId);
 
     /**
      * Check if subscription and user are associated with each other.
diff --git a/tests/AttestationVerificationTest/AndroidManifest.xml b/tests/AttestationVerificationTest/AndroidManifest.xml
index 37321ad8..758852b 100644
--- a/tests/AttestationVerificationTest/AndroidManifest.xml
+++ b/tests/AttestationVerificationTest/AndroidManifest.xml
@@ -18,7 +18,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="android.security.attestationverification">
 
-    <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="30" />
+    <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="34" />
     <uses-permission android:name="android.permission.USE_ATTESTATION_VERIFICATION_SERVICE" />
 
     <application>
diff --git a/tests/AttestationVerificationTest/assets/test_revocation_list_no_test_certs.json b/tests/AttestationVerificationTest/assets/test_revocation_list_no_test_certs.json
new file mode 100644
index 0000000..2a3ba5e
--- /dev/null
+++ b/tests/AttestationVerificationTest/assets/test_revocation_list_no_test_certs.json
@@ -0,0 +1,12 @@
+{
+  "entries": {
+    "6681152659205225093" : {
+      "status": "REVOKED",
+      "reason": "KEY_COMPROMISE"
+    },
+    "8350192447815228107" : {
+      "status": "REVOKED",
+      "reason": "KEY_COMPROMISE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/tests/AttestationVerificationTest/assets/test_revocation_list_with_test_certs.json b/tests/AttestationVerificationTest/assets/test_revocation_list_with_test_certs.json
new file mode 100644
index 0000000..e22a834
--- /dev/null
+++ b/tests/AttestationVerificationTest/assets/test_revocation_list_with_test_certs.json
@@ -0,0 +1,16 @@
+{
+  "entries": {
+    "6681152659205225093" : {
+      "status": "REVOKED",
+      "reason": "KEY_COMPROMISE"
+    },
+    "353017e73dc205a73a9c3de142230370" : {
+      "status": "REVOKED",
+      "reason": "KEY_COMPROMISE"
+    },
+    "8350192447815228107" : {
+      "status": "REVOKED",
+      "reason": "KEY_COMPROMISE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java b/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java
new file mode 100644
index 0000000..c38517a
--- /dev/null
+++ b/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.security;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertThrows;
+
+import android.content.Context;
+import android.os.SystemClock;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.json.JSONObject;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.security.cert.CertPathValidatorException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RunWith(AndroidJUnit4.class)
+public class CertificateRevocationStatusManagerTest {
+
+    private static final String TEST_CERTIFICATE_FILE_1 = "test_attestation_with_root_certs.pem";
+    private static final String TEST_CERTIFICATE_FILE_2 = "test_attestation_wrong_root_certs.pem";
+    private static final String TEST_REVOCATION_LIST_FILE_NAME = "test_revocation_list.json";
+    private static final String REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST =
+            "test_revocation_list_no_test_certs.json";
+    private static final String REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST =
+            "test_revocation_list_with_test_certs.json";
+    private static final String TEST_REVOCATION_STATUS_FILE_NAME = "test_revocation_status.txt";
+    private static final String FILE_URL_PREFIX = "file://";
+    private final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
+
+    private CertificateFactory mFactory;
+    private List<X509Certificate> mCertificates1;
+    private List<X509Certificate> mCertificates2;
+    private File mRevocationListFile;
+    private String mRevocationListUrl;
+    private String mNonExistentRevocationListUrl;
+    private File mRevocationStatusFile;
+    private CertificateRevocationStatusManager mCertificateRevocationStatusManager;
+
+    @Before
+    public void setUp() throws Exception {
+        mFactory = CertificateFactory.getInstance("X.509");
+        mCertificates1 = getCertificateChain(TEST_CERTIFICATE_FILE_1);
+        mCertificates2 = getCertificateChain(TEST_CERTIFICATE_FILE_2);
+        mRevocationListFile = new File(mContext.getFilesDir(), TEST_REVOCATION_LIST_FILE_NAME);
+        mRevocationListUrl = FILE_URL_PREFIX + mRevocationListFile.getAbsolutePath();
+        File noSuchFile = new File(mContext.getFilesDir(), "file_does_not_exist");
+        mNonExistentRevocationListUrl = FILE_URL_PREFIX + noSuchFile.getAbsolutePath();
+        mRevocationStatusFile = new File(mContext.getFilesDir(), TEST_REVOCATION_STATUS_FILE_NAME);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        mRevocationListFile.delete();
+        mRevocationStatusFile.delete();
+    }
+
+    @Test
+    public void checkRevocationStatus_doesNotExistOnRemoteRevocationList_noException()
+            throws Exception {
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+    }
+
+    @Test
+    public void checkRevocationStatus_existsOnRemoteRevocationList_throwsException()
+            throws Exception {
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+    }
+
+    @Test
+    public void
+            checkRevocationStatus_cannotReachRemoteRevocationList_noStoredStatus_throwsException()
+                    throws Exception {
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+    }
+
+    @Test
+    public void checkRevocationStatus_savesRevocationStatus() throws Exception {
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+
+        assertThat(mRevocationStatusFile.length()).isGreaterThan(0);
+    }
+
+    @Test
+    public void checkRevocationStatus_cannotReachRemoteList_certsSaved_noException()
+            throws Exception {
+        // call checkRevocationStatus once to save the revocation status
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // call checkRevocationStatus again with mNonExistentRevocationListUrl
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+    }
+
+    @Test
+    public void checkRevocationStatus_cannotReachRemoteList_someCertsNotSaved_exception()
+            throws Exception {
+        // call checkRevocationStatus once to save the revocation status for mCertificates2
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates2);
+        // call checkRevocationStatus again with mNonExistentRevocationListUrl, this time for
+        // mCertificates1
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+    }
+
+    @Test
+    public void checkRevocationStatus_cannotReachRemoteList_someCertsStatusTooOld_exception()
+            throws Exception {
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime expiredStatusDate =
+                now.minusDays(CertificateRevocationStatusManager.MAX_DAYS_SINCE_LAST_CHECK + 1);
+        Map<String, LocalDateTime> lastRevocationCheckData = new HashMap<>();
+        lastRevocationCheckData.put(getSerialNumber(mCertificates1.get(0)), expiredStatusDate);
+        for (int i = 1; i < mCertificates1.size(); i++) {
+            lastRevocationCheckData.put(getSerialNumber(mCertificates1.get(i)), now);
+        }
+        mCertificateRevocationStatusManager.storeLastRevocationCheckData(lastRevocationCheckData);
+
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+    }
+
+    @Test
+    public void checkRevocationStatus_cannotReachRemoteList_allCertResultsFresh_noException()
+            throws Exception {
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+        LocalDateTime bearlyNotExpiredStatusDate =
+                LocalDateTime.now()
+                        .minusDays(
+                                CertificateRevocationStatusManager.MAX_DAYS_SINCE_LAST_CHECK - 1);
+        Map<String, LocalDateTime> lastRevocationCheckData = new HashMap<>();
+        for (X509Certificate certificate : mCertificates1) {
+            lastRevocationCheckData.put(getSerialNumber(certificate), bearlyNotExpiredStatusDate);
+        }
+        mCertificateRevocationStatusManager.storeLastRevocationCheckData(lastRevocationCheckData);
+
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+    }
+
+    @Test
+    public void updateLastRevocationCheckData_correctlySavesStatus() throws Exception {
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+        Map<String, Boolean> areCertificatesRevoked = new HashMap<>();
+        for (X509Certificate certificate : mCertificates1) {
+            areCertificatesRevoked.put(getSerialNumber(certificate), false);
+        }
+
+        mCertificateRevocationStatusManager.updateLastRevocationCheckData(areCertificatesRevoked);
+
+        // no exception
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // revoke one certificate and try again
+        areCertificatesRevoked.put(getSerialNumber(mCertificates1.getLast()), true);
+        mCertificateRevocationStatusManager.updateLastRevocationCheckData(areCertificatesRevoked);
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+    }
+
+    @Test
+    public void updateLastRevocationCheckDataForAllPreviouslySeenCertificates_updatesCorrectly()
+            throws Exception {
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+        // populate the revocation status file
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // Sleep for 2 second so that the current time changes
+        SystemClock.sleep(2000);
+        LocalDateTime timestampBeforeUpdate = LocalDateTime.now();
+        JSONObject revocationList = mCertificateRevocationStatusManager.fetchRemoteRevocationList();
+        List<String> otherCertificatesToCheck = new ArrayList<>();
+        String serialNumber1 = "1234567"; // not revoked
+        String serialNumber2 = "8350192447815228107"; // revoked
+        String serialNumber3 = "987654"; // not revoked
+        otherCertificatesToCheck.add(serialNumber1);
+        otherCertificatesToCheck.add(serialNumber2);
+        otherCertificatesToCheck.add(serialNumber3);
+
+        mCertificateRevocationStatusManager
+                .updateLastRevocationCheckDataForAllPreviouslySeenCertificates(
+                        revocationList, otherCertificatesToCheck);
+
+        Map<String, LocalDateTime> lastRevocationCheckData =
+                mCertificateRevocationStatusManager.getLastRevocationCheckData();
+        assertThat(lastRevocationCheckData.get(serialNumber1)).isAtLeast(timestampBeforeUpdate);
+        assertThat(lastRevocationCheckData).doesNotContainKey(serialNumber2); // revoked
+        assertThat(lastRevocationCheckData.get(serialNumber3)).isAtLeast(timestampBeforeUpdate);
+        // validate that the existing certificates on the file got updated too
+        for (X509Certificate certificate : mCertificates1) {
+            assertThat(lastRevocationCheckData.get(getSerialNumber(certificate)))
+                    .isAtLeast(timestampBeforeUpdate);
+        }
+    }
+
+    private List<X509Certificate> getCertificateChain(String fileName) throws Exception {
+        Collection<? extends Certificate> certificates =
+                mFactory.generateCertificates(mContext.getResources().getAssets().open(fileName));
+        ArrayList<X509Certificate> x509Certs = new ArrayList<>();
+        for (Certificate cert : certificates) {
+            x509Certs.add((X509Certificate) cert);
+        }
+        return x509Certs;
+    }
+
+    private void copyFromAssetToFile(String assetFileName, File targetFile) throws Exception {
+        byte[] data;
+        try (InputStream in = mContext.getResources().getAssets().open(assetFileName)) {
+            data = in.readAllBytes();
+        }
+        try (FileOutputStream fileOutputStream = new FileOutputStream(targetFile)) {
+            fileOutputStream.write(data);
+        }
+    }
+
+    private String getSerialNumber(X509Certificate certificate) {
+        return certificate.getSerialNumber().toString(16);
+    }
+}
diff --git a/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java b/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java
index 6d818d7..779676e 100644
--- a/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java
+++ b/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java
@@ -161,8 +161,8 @@
         final BatteryUsageStats.Builder builder =
                 new BatteryUsageStats.Builder(new String[]{"FOO"}, false, false, false, 0)
                         .setBatteryCapacity(4000)
-                        .setDischargePercentage(20)
-                        .setDischargedPowerRange(1000, 2000)
+                        .addDischargePercentage(20)
+                        .addDischargedPowerRange(1000, 2000)
                         .setStatsStartTimestamp(1000)
                         .setStatsEndTimestamp(3000);
 
diff --git a/tests/FlickerTests/IME/AndroidTestTemplate.xml b/tests/FlickerTests/IME/AndroidTestTemplate.xml
index 12670cd..ac704e5 100644
--- a/tests/FlickerTests/IME/AndroidTestTemplate.xml
+++ b/tests/FlickerTests/IME/AndroidTestTemplate.xml
@@ -52,10 +52,12 @@
         <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/>
         <option name="run-command" value="settings put system show_touches 1"/>
         <option name="run-command" value="settings put system pointer_location 1"/>
+        <option name="run-command" value="settings put secure glanceable_hub_enabled 0"/>
         <option name="teardown-command"
                 value="settings delete secure show_ime_with_hard_keyboard"/>
         <option name="teardown-command" value="settings delete system show_touches"/>
         <option name="teardown-command" value="settings delete system pointer_location"/>
+        <option name="teardown-command" value="settings delete secure glanceable_hub_enabled"/>
         <option name="teardown-command"
                 value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/>
     </target_preparer>
diff --git a/tests/FlickerTests/Rotation/AndroidTestTemplate.xml b/tests/FlickerTests/Rotation/AndroidTestTemplate.xml
index 481a8bb..1b2007d 100644
--- a/tests/FlickerTests/Rotation/AndroidTestTemplate.xml
+++ b/tests/FlickerTests/Rotation/AndroidTestTemplate.xml
@@ -50,10 +50,12 @@
         <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/>
         <option name="run-command" value="settings put system show_touches 1"/>
         <option name="run-command" value="settings put system pointer_location 1"/>
+        <option name="run-command" value="settings put secure glanceable_hub_enabled 0"/>
         <option name="teardown-command"
                 value="settings delete secure show_ime_with_hard_keyboard"/>
         <option name="teardown-command" value="settings delete system show_touches"/>
         <option name="teardown-command" value="settings delete system pointer_location"/>
+        <option name="teardown-command" value="settings delete secure glanceable_hub_enabled"/>
         <option name="teardown-command"
                 value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/>
     </target_preparer>
diff --git a/tests/Input/src/android/hardware/input/KeyboardLayoutPreviewTests.kt b/tests/Input/src/android/hardware/input/KeyboardLayoutPreviewTests.kt
index ae32bda..bcff2fc 100644
--- a/tests/Input/src/android/hardware/input/KeyboardLayoutPreviewTests.kt
+++ b/tests/Input/src/android/hardware/input/KeyboardLayoutPreviewTests.kt
@@ -16,17 +16,11 @@
 
 package android.hardware.input
 
-import android.platform.test.annotations.DisableFlags
-import android.platform.test.annotations.EnableFlags
 import android.content.ContextWrapper
 import android.graphics.drawable.Drawable
 import android.platform.test.annotations.Presubmit
-import android.platform.test.flag.junit.SetFlagsRule
 import androidx.test.platform.app.InstrumentationRegistry
-import com.android.hardware.input.Flags
 import org.junit.Assert.assertEquals
-import org.junit.Assert.assertNull
-import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.junit.MockitoJUnitRunner
@@ -46,9 +40,6 @@
         const val HEIGHT = 100
     }
 
-    @get:Rule
-    val setFlagsRule = SetFlagsRule()
-
     private fun createDrawable(): Drawable? {
         val context = ContextWrapper(InstrumentationRegistry.getInstrumentation().getContext())
         val inputManager = context.getSystemService(InputManager::class.java)!!
@@ -56,16 +47,9 @@
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_KEYBOARD_LAYOUT_PREVIEW_FLAG)
     fun testKeyboardLayoutDrawable_hasCorrectDimensions() {
         val drawable = createDrawable()!!
         assertEquals(WIDTH, drawable.intrinsicWidth)
         assertEquals(HEIGHT, drawable.intrinsicHeight)
     }
-
-    @Test
-    @DisableFlags(Flags.FLAG_KEYBOARD_LAYOUT_PREVIEW_FLAG)
-    fun testKeyboardLayoutDrawable_isNull_ifFlagOff() {
-        assertNull(createDrawable())
-    }
 }
\ No newline at end of file
diff --git a/tests/Input/src/android/hardware/input/StickyModifierStateListenerTest.kt b/tests/Input/src/android/hardware/input/StickyModifierStateListenerTest.kt
index c2f9adf..cc58bbc 100644
--- a/tests/Input/src/android/hardware/input/StickyModifierStateListenerTest.kt
+++ b/tests/Input/src/android/hardware/input/StickyModifierStateListenerTest.kt
@@ -21,9 +21,7 @@
 import android.os.Handler
 import android.os.HandlerExecutor
 import android.os.test.TestLooper
-import android.platform.test.annotations.EnableFlags
 import android.platform.test.annotations.Presubmit
-import android.platform.test.flag.junit.SetFlagsRule
 import android.view.KeyEvent
 import androidx.test.core.app.ApplicationProvider
 import com.android.server.testutils.any
@@ -50,12 +48,9 @@
  */
 @Presubmit
 @RunWith(MockitoJUnitRunner::class)
-@EnableFlags(com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG)
 class StickyModifierStateListenerTest {
 
     @get:Rule
-    val rule = SetFlagsRule()
-    @get:Rule
     val inputManagerRule = MockInputManagerRule()
 
     private val testLooper = TestLooper()
diff --git a/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt b/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt
index 40f4f1a..b22e42d 100644
--- a/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt
+++ b/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt
@@ -31,9 +31,12 @@
 import android.hardware.input.InputSettings
 import android.hardware.input.KeyGestureEvent
 import android.os.InputEventInjectionSync
+import android.os.PermissionEnforcer
 import android.os.SystemClock
+import android.os.test.FakePermissionEnforcer
 import android.os.test.TestLooper
 import android.platform.test.annotations.Presubmit
+import android.platform.test.annotations.EnableFlags
 import android.platform.test.flag.junit.SetFlagsRule
 import android.provider.Settings
 import android.view.View.OnKeyListener
@@ -66,11 +69,13 @@
 import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mock
+import org.mockito.Mockito.doReturn
 import org.mockito.Mockito.mock
 import org.mockito.Mockito.never
 import org.mockito.Mockito.spy
 import org.mockito.Mockito.times
 import org.mockito.Mockito.verify
+import org.mockito.Mockito.verifyNoMoreInteractions
 import org.mockito.Mockito.verifyZeroInteractions
 import org.mockito.Mockito.`when`
 import org.mockito.stubbing.OngoingStubbing
@@ -136,10 +141,19 @@
     private lateinit var testLooper: TestLooper
     private lateinit var contentResolver: MockContentResolver
     private lateinit var inputManagerGlobalSession: InputManagerGlobal.TestSession
+    private lateinit var fakePermissionEnforcer: FakePermissionEnforcer
 
     @Before
     fun setup() {
         context = spy(ContextWrapper(InstrumentationRegistry.getInstrumentation().getContext()))
+        fakePermissionEnforcer = FakePermissionEnforcer()
+        doReturn(Context.PERMISSION_ENFORCER_SERVICE).`when`(context).getSystemServiceName(
+            eq(PermissionEnforcer::class.java)
+        )
+        doReturn(fakePermissionEnforcer).`when`(context).getSystemService(
+            eq(Context.PERMISSION_ENFORCER_SERVICE)
+        )
+
         contentResolver = MockContentResolver(context)
         contentResolver.addProvider(Settings.AUTHORITY, FakeSettingsProvider())
         whenever(context.contentResolver).thenReturn(contentResolver)
@@ -162,7 +176,7 @@
                 ): InputManagerService.KeyboardBacklightControllerInterface {
                     return kbdController
                 }
-            })
+            }, fakePermissionEnforcer)
         inputManagerGlobalSession = InputManagerGlobal.createTestSession(service)
         val inputManager = InputManager(context)
         whenever(context.getSystemService(InputManager::class.java)).thenReturn(inputManager)
@@ -314,6 +328,36 @@
         }
     }
 
+    @Test
+    @EnableFlags(com.android.hardware.input.Flags.FLAG_KEY_EVENT_ACTIVITY_DETECTION)
+    fun testKeyActivenessNotifyEventsLifecycle() {
+        service.systemRunning()
+
+        fakePermissionEnforcer.grant(android.Manifest.permission.LISTEN_FOR_KEY_ACTIVITY);
+
+        val inputManager = context.getSystemService(InputManager::class.java)
+
+        /* register for key event activeness */
+        var listener = mock(InputManager.KeyEventActivityListener::class.java)
+        assertEquals(true, inputManager.registerKeyEventActivityListener(listener))
+
+        /* mimic key event pressed */
+        val event = createKeycodeAEvent(createInputDevice(), KeyEvent.ACTION_DOWN)
+        service.interceptKeyBeforeQueueing(event, 0)
+
+        /* verify onKeyEventActivity callback called */
+        verify(listener, times(1)).onKeyEventActivity()
+
+        /* unregister for key event activeness */
+        assertEquals(true, inputManager.unregisterKeyEventActivityListener(listener))
+
+        /* mimic key event pressed */
+        service.interceptKeyBeforeQueueing(event, /* policyFlags */ 0)
+
+        /* verify onKeyEventActivity callback not called */
+        verifyNoMoreInteractions(listener)
+    }
+
     private class AutoClosingVirtualDisplays(val displays: List<VirtualDisplay>) : AutoCloseable {
         operator fun get(i: Int): VirtualDisplay = displays[i]
 
@@ -515,9 +559,6 @@
 
     @Test
     fun handleKeyGestures_a11yBounceKeysShortcut() {
-        ExtendedMockito.doReturn(true).`when` {
-            InputSettings.isAccessibilityBounceKeysFeatureEnabled()
-        }
         val toggleBounceKeysEvent =
             KeyGestureEvent.Builder()
                 .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_BOUNCE_KEYS)
@@ -550,9 +591,6 @@
 
     @Test
     fun handleKeyGestures_a11yStickyKeysShortcut() {
-        ExtendedMockito.doReturn(true).`when` {
-            InputSettings.isAccessibilityStickyKeysFeatureEnabled()
-        }
         val toggleStickyKeysEvent =
             KeyGestureEvent.Builder()
                 .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_STICKY_KEYS)
@@ -566,9 +604,6 @@
 
     @Test
     fun handleKeyGestures_a11ySlowKeysShortcut() {
-        ExtendedMockito.doReturn(true).`when` {
-            InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()
-        }
         val toggleSlowKeysEvent =
             KeyGestureEvent.Builder()
                 .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SLOW_KEYS)
diff --git a/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt
index 37bdf6b..88e8496 100644
--- a/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt
+++ b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt
@@ -754,9 +754,6 @@
     @EnableFlags(
         com.android.server.flags.Flags.FLAG_NEW_BUGREPORT_KEYBOARD_SHORTCUT,
         com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL,
-        com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG,
-        com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG,
-        com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG,
         com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_MOUSE_KEYS,
         com.android.hardware.input.Flags.FLAG_ENABLE_TALKBACK_AND_MAGNIFIER_KEY_GESTURES,
         com.android.hardware.input.Flags.FLAG_ENABLE_VOICE_ACCESS_KEY_GESTURES,
@@ -773,9 +770,6 @@
     @EnableFlags(
         com.android.server.flags.Flags.FLAG_NEW_BUGREPORT_KEYBOARD_SHORTCUT,
         com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SHORTCUT_CONTROL,
-        com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_BOUNCE_KEYS_FLAG,
-        com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_SLOW_KEYS_FLAG,
-        com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_STICKY_KEYS_FLAG,
         com.android.hardware.input.Flags.FLAG_KEYBOARD_A11Y_MOUSE_KEYS,
         com.android.hardware.input.Flags.FLAG_ENABLE_TALKBACK_AND_MAGNIFIER_KEY_GESTURES,
         com.android.hardware.input.Flags.FLAG_ENABLE_VOICE_ACCESS_KEY_GESTURES,
@@ -1438,6 +1432,58 @@
         )
     }
 
+    @Test
+    @Parameters(method = "customInputGesturesTestArguments")
+    fun testCustomKeyGestureRestoredFromBackup(test: TestData) {
+        val userId = 10
+        setupKeyGestureController()
+        val builder = InputGestureData.Builder()
+            .setKeyGestureType(test.expectedKeyGestureType)
+            .setTrigger(
+                InputGestureData.createKeyTrigger(
+                    test.expectedKeys[0],
+                    test.expectedModifierState
+                )
+            )
+        if (test.expectedAppLaunchData != null) {
+            builder.setAppLaunchData(test.expectedAppLaunchData)
+        }
+        val inputGestureData = builder.build()
+
+        keyGestureController.setCurrentUserId(userId)
+        testLooper.dispatchAll()
+        keyGestureController.addCustomInputGesture(userId, inputGestureData.aidlData)
+        testLooper.dispatchAll()
+        val backupData = keyGestureController.getInputGestureBackupPayload(userId)
+
+        // Delete the old data and reinitialize the controller simulating a "fresh" install.
+        tempFile.delete()
+        setupKeyGestureController()
+        keyGestureController.setCurrentUserId(userId)
+        testLooper.dispatchAll()
+
+        // Initially there should be no gestures registered.
+        var savedInputGestures = keyGestureController.getCustomInputGestures(userId, null)
+        assertEquals(
+            "Test: $test doesn't produce correct number of saved input gestures",
+            0,
+            savedInputGestures.size
+        )
+
+        // After the restore, there should be the original gesture re-registered.
+        keyGestureController.applyInputGesturesBackupPayload(backupData, userId)
+        savedInputGestures = keyGestureController.getCustomInputGestures(userId, null)
+        assertEquals(
+            "Test: $test doesn't produce correct number of saved input gestures",
+            1,
+            savedInputGestures.size
+        )
+        assertEquals(
+            "Test: $test doesn't produce correct input gesture data", inputGestureData,
+            InputGestureData(savedInputGestures[0])
+        )
+    }
+
     class TouchpadTestData(
         val name: String,
         val touchpadGestureType: Int,
@@ -1549,6 +1595,53 @@
         )
     }
 
+
+    @Test
+    @Parameters(method = "customTouchpadGesturesTestArguments")
+    fun testCustomTouchpadGesturesRestoredFromBackup(test: TouchpadTestData) {
+        val userId = 10
+        setupKeyGestureController()
+        val builder = InputGestureData.Builder()
+            .setKeyGestureType(test.expectedKeyGestureType)
+            .setTrigger(InputGestureData.createTouchpadTrigger(test.touchpadGestureType))
+        if (test.expectedAppLaunchData != null) {
+            builder.setAppLaunchData(test.expectedAppLaunchData)
+        }
+        val inputGestureData = builder.build()
+        keyGestureController.setCurrentUserId(userId)
+        testLooper.dispatchAll()
+        keyGestureController.addCustomInputGesture(userId, inputGestureData.aidlData)
+        testLooper.dispatchAll()
+        val backupData = keyGestureController.getInputGestureBackupPayload(userId)
+
+        // Delete the old data and reinitialize the controller simulating a "fresh" install.
+        tempFile.delete()
+        setupKeyGestureController()
+        keyGestureController.setCurrentUserId(userId)
+        testLooper.dispatchAll()
+
+        // Initially there should be no gestures registered.
+        var savedInputGestures = keyGestureController.getCustomInputGestures(userId, null)
+        assertEquals(
+            "Test: $test doesn't produce correct number of saved input gestures",
+            0,
+            savedInputGestures.size
+        )
+
+        // After the restore, there should be the original gesture re-registered.
+        keyGestureController.applyInputGesturesBackupPayload(backupData, userId)
+        savedInputGestures = keyGestureController.getCustomInputGestures(userId, null)
+        assertEquals(
+            "Test: $test doesn't produce correct number of saved input gestures",
+            1,
+            savedInputGestures.size
+        )
+        assertEquals(
+            "Test: $test doesn't produce correct input gesture data", inputGestureData,
+            InputGestureData(savedInputGestures[0])
+        )
+    }
+
     private fun testKeyGestureInternal(test: TestData) {
         val handledEvents = mutableListOf<KeyGestureEvent>()
         val handler = KeyGestureHandler { event, _ ->
diff --git a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
index bc0b7a5..1a0837b 100644
--- a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
+++ b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
@@ -15,21 +15,19 @@
  */
 package com.android.test.input
 
-import android.Manifest.permission.ASSOCIATE_INPUT_DEVICE_TO_DISPLAY
 import android.app.Instrumentation
 import android.cts.input.EventVerifier
 import android.graphics.PointF
-import android.hardware.input.InputManager
-import android.os.ParcelFileDescriptor
-import android.server.wm.CtsWindowInfoUtils.waitForWindowOnTop
 import android.util.Log
 import android.util.Size
+import android.view.InputDevice
 import android.view.InputEvent
 import android.view.MotionEvent
 import androidx.test.platform.app.InstrumentationRegistry
 import com.android.cts.input.BatchedEventSplitter
 import com.android.cts.input.CaptureEventActivity
 import com.android.cts.input.DebugInputRule
+import com.android.cts.input.EvemuDevice
 import com.android.cts.input.InputJsonParser
 import com.android.cts.input.VirtualDisplayActivityScenario
 import com.android.cts.input.inputeventmatchers.isResampled
@@ -69,9 +67,13 @@
         fun data(): Iterable<Any> =
             listOf(
                 TestData(
-                    "GooglePixelTabletTouchscreen", R.raw.google_pixel_tablet_touchscreen,
-                    R.raw.google_pixel_tablet_touchscreen_events, Size(1600, 2560),
-                    vendorId = 0x0603, productId = 0x7806
+                    "GooglePixelTabletTouchscreen",
+                    R.raw.google_pixel_tablet_touchscreen,
+                    R.raw.google_pixel_tablet_touchscreen_events,
+                    Size(1600, 2560),
+                    vendorId = 0x0603,
+                    productId = 0x7806,
+                    deviceSources = InputDevice.SOURCE_TOUCHSCREEN,
                 ),
             )
 
@@ -91,6 +93,7 @@
         val displaySize: Size,
         val vendorId: Int,
         val productId: Int,
+        val deviceSources: Int,
     ) {
         override fun toString(): String = name
     }
@@ -98,7 +101,6 @@
     private lateinit var instrumentation: Instrumentation
     private lateinit var parser: InputJsonParser
 
-
     @get:Rule
     val debugInputRule = DebugInputRule()
 
@@ -121,40 +123,29 @@
             testName,
             size = testData.displaySize
         ).use { scenario ->
-            waitForWindowOnTop(scenario.activity.window)
             scenario.activity.window.decorView.requestUnbufferedDispatch(INPUT_DEVICE_SOURCE_ALL)
 
-            try {
-                instrumentation.uiAutomation.adoptShellPermissionIdentity(
-                    ASSOCIATE_INPUT_DEVICE_TO_DISPLAY,
-                )
+            EvemuDevice(
+                instrumentation,
+                testData.deviceSources,
+                testData.vendorId,
+                testData.productId,
+                testData.uinputRecordingResource,
+                scenario.virtualDisplay.display
+            ).use { evemuDevice ->
 
-                val inputPort = "uinput:1:${testData.vendorId}:${testData.productId}"
-                val inputManager =
-                    instrumentation.context.getSystemService(InputManager::class.java)!!
-                try {
-                    inputManager.addUniqueIdAssociationByPort(
-                        inputPort,
-                        scenario.virtualDisplay.display.uniqueId!!,
-                    )
+                evemuDevice.injectEvents()
 
-                    injectUinputEvents().use {
-                        if (DEBUG_RECEIVED_EVENTS) {
-                            printReceivedEventsToLogcat(scenario.activity)
-                            fail("Test cannot pass in debug mode!")
-                        }
-
-                        val verifier = EventVerifier(
-                            BatchedEventSplitter { scenario.activity.getInputEvent() }
-                        )
-                        verifyEvents(verifier)
-                        scenario.activity.assertNoEvents()
-                    }
-                } finally {
-                    inputManager.removeUniqueIdAssociationByPort(inputPort)
+                if (DEBUG_RECEIVED_EVENTS) {
+                    printReceivedEventsToLogcat(scenario.activity)
+                    fail("Test cannot pass in debug mode!")
                 }
-            } finally {
-                instrumentation.uiAutomation.dropShellPermissionIdentity()
+
+                val verifier = EventVerifier(
+                    BatchedEventSplitter { scenario.activity.getInputEvent() }
+                )
+                verifyEvents(verifier)
+                scenario.activity.assertNoEvents()
             }
         }
     }
@@ -171,35 +162,6 @@
         }
     }
 
-    /**
-     * Plays back the evemu recording associated with the current test case by injecting it via
-     * the `uinput` shell command in interactive mode. The recording playback will begin
-     * immediately, and the shell command (and the associated input device) will remain alive
-     * until the returned [AutoCloseable] is closed.
-     */
-    private fun injectUinputEvents(): AutoCloseable {
-        val fds = instrumentation.uiAutomation!!.executeShellCommandRw("uinput -")
-        // We do not need to use stdout in this test.
-        fds[0].close()
-
-        return ParcelFileDescriptor.AutoCloseOutputStream(fds[1]).also { stdin ->
-            instrumentation.context.resources.openRawResource(
-                testData.uinputRecordingResource,
-            ).use { inputStream ->
-                stdin.write(inputStream.readBytes())
-
-                // TODO(b/367419268): Remove extra event injection when uinput parsing is fixed.
-                // Inject an extra sync event with an arbitrarily large timestamp, because the
-                // uinput command will not process the last event until either the next event is
-                // parsed, or fd is closed. Injecting this sync allows us complete injection of
-                // the evemu recording and extend the lifetime of the input device by keeping this
-                // fd open.
-                stdin.write("\nE: 9999.99 0 0 0\n".toByteArray())
-                stdin.flush()
-            }
-        }
-    }
-
     private fun verifyEvents(verifier: EventVerifier) {
         val uinputTestData = parser.getUinputTestData(testData.expectedEventsResource)
         for (test in uinputTestData) {
diff --git a/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewAnsiScreenshotTest.kt b/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewAnsiScreenshotTest.kt
index e855786..e1294b1 100644
--- a/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewAnsiScreenshotTest.kt
+++ b/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewAnsiScreenshotTest.kt
@@ -19,12 +19,9 @@
 import android.content.Context
 import android.hardware.input.KeyboardLayout
 import android.os.LocaleList
-import android.platform.test.flag.junit.SetFlagsRule
-import com.android.hardware.input.Flags
 import java.util.Locale
 import org.junit.Rule
 import org.junit.Test
-import org.junit.rules.RuleChain
 import org.junit.runner.RunWith
 import org.junit.runners.Parameterized
 import platform.test.screenshot.DeviceEmulationSpec
@@ -38,18 +35,14 @@
         fun getTestSpecs() = DeviceEmulationSpec.PhoneMinimal
     }
 
-    val setFlagsRule = SetFlagsRule()
+    @get:Rule
     val screenshotRule = InputScreenshotTestRule(
             emulationSpec,
             "frameworks/base/tests/InputScreenshotTest/assets"
     )
 
-    @get:Rule
-    val ruleChain = RuleChain.outerRule(screenshotRule).around(setFlagsRule)
-
     @Test
     fun test() {
-        setFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_LAYOUT_PREVIEW_FLAG)
         screenshotRule.screenshotTest("layout-preview-ansi") {
             context: Context -> LayoutPreview.createLayoutPreview(
                 context,
@@ -66,5 +59,4 @@
             )
         }
     }
-
 }
\ No newline at end of file
diff --git a/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewIsoScreenshotTest.kt b/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewIsoScreenshotTest.kt
index ab7bb4e..ddad6de 100644
--- a/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewIsoScreenshotTest.kt
+++ b/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewIsoScreenshotTest.kt
@@ -17,14 +17,8 @@
 package com.android.input.screenshot
 
 import android.content.Context
-import android.hardware.input.KeyboardLayout
-import android.os.LocaleList
-import android.platform.test.flag.junit.SetFlagsRule
-import com.android.hardware.input.Flags
-import java.util.Locale
 import org.junit.Rule
 import org.junit.Test
-import org.junit.rules.RuleChain
 import org.junit.runner.RunWith
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4
 import platform.test.runner.parameterized.Parameters
@@ -39,21 +33,16 @@
         fun getTestSpecs() = DeviceEmulationSpec.PhoneAndTabletMinimal
     }
 
-    val setFlagsRule = SetFlagsRule()
+    @get:Rule
     val screenshotRule = InputScreenshotTestRule(
             emulationSpec,
             "frameworks/base/tests/InputScreenshotTest/assets"
     )
 
-    @get:Rule
-    val ruleChain = RuleChain.outerRule(screenshotRule).around(setFlagsRule)
-
     @Test
     fun test() {
-        setFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_LAYOUT_PREVIEW_FLAG)
         screenshotRule.screenshotTest("layout-preview") {
             context: Context -> LayoutPreview.createLayoutPreview(context, null)
         }
     }
-
 }
diff --git a/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewJisScreenshotTest.kt b/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewJisScreenshotTest.kt
index 5231c14..8a8e4f0 100644
--- a/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewJisScreenshotTest.kt
+++ b/tests/InputScreenshotTest/src/android/input/screenshot/KeyboardLayoutPreviewJisScreenshotTest.kt
@@ -19,12 +19,9 @@
 import android.content.Context
 import android.hardware.input.KeyboardLayout
 import android.os.LocaleList
-import android.platform.test.flag.junit.SetFlagsRule
-import com.android.hardware.input.Flags
 import java.util.Locale
 import org.junit.Rule
 import org.junit.Test
-import org.junit.rules.RuleChain
 import org.junit.runner.RunWith
 import org.junit.runners.Parameterized
 import platform.test.screenshot.DeviceEmulationSpec
@@ -38,18 +35,14 @@
         fun getTestSpecs() = DeviceEmulationSpec.PhoneMinimal
     }
 
-    val setFlagsRule = SetFlagsRule()
+    @get:Rule
     val screenshotRule = InputScreenshotTestRule(
             emulationSpec,
             "frameworks/base/tests/InputScreenshotTest/assets"
     )
 
-    @get:Rule
-    val ruleChain = RuleChain.outerRule(screenshotRule).around(setFlagsRule)
-
     @Test
     fun test() {
-        setFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_LAYOUT_PREVIEW_FLAG)
         screenshotRule.screenshotTest("layout-preview-jis") {
             context: Context -> LayoutPreview.createLayoutPreview(
                 context,
@@ -66,5 +59,4 @@
             )
         }
     }
-
 }
\ No newline at end of file
diff --git a/tests/SharedLibrary/lib/Android.bp b/tests/SharedLibrary/lib/Android.bp
index 0595cb1..abfd0e8 100644
--- a/tests/SharedLibrary/lib/Android.bp
+++ b/tests/SharedLibrary/lib/Android.bp
@@ -15,6 +15,7 @@
     export_package_resources: true,
     privileged: true,
     optimize: {
+        keep_runtime_invisible_annotations: true,
         proguard_flags_files: ["proguard.proguard"],
     },
 }
diff --git a/tests/SharedLibrary/lib/proguard.proguard b/tests/SharedLibrary/lib/proguard.proguard
index e5dfbe1..699fbda 100644
--- a/tests/SharedLibrary/lib/proguard.proguard
+++ b/tests/SharedLibrary/lib/proguard.proguard
@@ -1,6 +1,8 @@
 -keepparameternames
 -keepattributes Exceptions,InnerClasses,Signature,Deprecated,
-                SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
+                SourceFile,LineNumberTable,EnclosingMethod,
+                RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,
+                RuntimeVisibleTypeAnnotations,AnnotationDefault
 
 -keep public class * {
     public protected *;
diff --git a/tests/Tracing/src/com/android/internal/protolog/ProtoLogConfigurationServiceTest.java b/tests/Tracing/src/com/android/internal/protolog/ProtoLogConfigurationServiceTest.java
index a3d03a8..3be7251 100644
--- a/tests/Tracing/src/com/android/internal/protolog/ProtoLogConfigurationServiceTest.java
+++ b/tests/Tracing/src/com/android/internal/protolog/ProtoLogConfigurationServiceTest.java
@@ -38,6 +38,8 @@
 import android.tools.traces.io.ResultWriter;
 import android.tools.traces.monitors.PerfettoTraceMonitor;
 
+import com.android.internal.protolog.IProtoLogConfigurationService.RegisterClientArgs;
+
 import com.google.common.truth.Truth;
 import com.google.protobuf.InvalidProtocolBufferException;
 
@@ -152,10 +154,9 @@
     public void canRegisterClientWithGroupsOnly() throws RemoteException {
         final ProtoLogConfigurationService service = new ProtoLogConfigurationServiceImpl();
 
-        final ProtoLogConfigurationServiceImpl.RegisterClientArgs args =
-                new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                        .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                                .GroupConfig(TEST_GROUP, true));
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { true };
         service.registerClient(mMockClient, args);
 
         Truth.assertThat(service.isLoggingToLogcat(TEST_GROUP)).isTrue();
@@ -167,11 +168,11 @@
             throws RemoteException, InvalidProtocolBufferException {
         final ProtoLogConfigurationService service = new ProtoLogConfigurationServiceImpl();
 
-        final ProtoLogConfigurationServiceImpl.RegisterClientArgs args =
-                new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                        .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                                .GroupConfig(TEST_GROUP, true))
-                        .setViewerConfigFile(mViewerConfigFile.getAbsolutePath());
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { true };
+        args.viewerConfigFile = mViewerConfigFile.getAbsolutePath();
+
         service.registerClient(mMockClient, args);
         service.registerClient(mSecondMockClient, args);
 
@@ -204,11 +205,11 @@
                 Mockito.mock(ProtoLogConfigurationServiceImpl.ViewerConfigFileTracer.class);
         final ProtoLogConfigurationService service = new ProtoLogConfigurationServiceImpl(tracer);
 
-        final ProtoLogConfigurationServiceImpl.RegisterClientArgs args =
-                new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                        .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                                .GroupConfig(TEST_GROUP, true))
-                        .setViewerConfigFile(mViewerConfigFile.getAbsolutePath());
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { true };
+        args.viewerConfigFile = mViewerConfigFile.getAbsolutePath();
+
         service.registerClient(mMockClient, args);
         service.registerClient(mSecondMockClient, args);
 
@@ -227,9 +228,9 @@
     public void sendEnableLoggingToLogcatToClient() throws RemoteException {
         final var service = new ProtoLogConfigurationServiceImpl();
 
-        final var args = new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                        .GroupConfig(TEST_GROUP, false));
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { false };
         service.registerClient(mMockClient, args);
 
         Truth.assertThat(service.isLoggingToLogcat(TEST_GROUP)).isFalse();
@@ -244,10 +245,9 @@
     public void sendDisableLoggingToLogcatToClient() throws RemoteException {
         final ProtoLogConfigurationService service = new ProtoLogConfigurationServiceImpl();
 
-        final ProtoLogConfigurationServiceImpl.RegisterClientArgs args =
-                new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                        .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                                .GroupConfig(TEST_GROUP, true));
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { true };
         service.registerClient(mMockClient, args);
 
         Truth.assertThat(service.isLoggingToLogcat(TEST_GROUP)).isTrue();
@@ -262,10 +262,10 @@
     public void doNotSendLoggingToLogcatToClientWithoutRegisteredGroup() throws RemoteException {
         final ProtoLogConfigurationService service = new ProtoLogConfigurationServiceImpl();
 
-        final ProtoLogConfigurationServiceImpl.RegisterClientArgs args =
-                new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                        .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                                .GroupConfig(TEST_GROUP, false));
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { false };
+
         service.registerClient(mMockClient, args);
 
         Truth.assertThat(service.isLoggingToLogcat(TEST_GROUP)).isFalse();
@@ -283,10 +283,10 @@
         service.enableProtoLogToLogcat(TEST_GROUP);
         Truth.assertThat(service.isLoggingToLogcat(TEST_GROUP)).isTrue();
 
-        final ProtoLogConfigurationServiceImpl.RegisterClientArgs args =
-                new ProtoLogConfigurationServiceImpl.RegisterClientArgs()
-                        .setGroups(new ProtoLogConfigurationServiceImpl.RegisterClientArgs
-                                .GroupConfig(TEST_GROUP, false));
+        final RegisterClientArgs args = new RegisterClientArgs();
+        args.groups = new String[] { TEST_GROUP };
+        args.groupsDefaultLogcatStatus = new boolean[] { false };
+
         service.registerClient(mMockClient, args);
 
         Mockito.verify(mMockClient).toggleLogcat(eq(true),
diff --git a/tests/testables/src/android/testing/TestableLooper.java b/tests/testables/src/android/testing/TestableLooper.java
index 3ee6dc4..1273826 100644
--- a/tests/testables/src/android/testing/TestableLooper.java
+++ b/tests/testables/src/android/testing/TestableLooper.java
@@ -16,6 +16,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.os.Build;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Looper;
@@ -24,7 +25,7 @@
 import android.os.TestLooperManager;
 import android.util.ArrayMap;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.runners.model.FrameworkMethod;
 
@@ -33,8 +34,11 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayDeque;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Queue;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -67,16 +71,38 @@
     private Handler mHandler;
     private TestLooperManager mQueueWrapper;
 
+    /**
+     * Baklava introduces new {@link TestLooperManager} APIs that we can use instead of reflection.
+     */
+    private static boolean isAtLeastBaklava() {
+        Method[] methods = TestLooperManager.class.getMethods();
+        for (Method method : methods) {
+            if (method.getName().equals("peekWhen")) {
+                return true;
+            }
+        }
+        return false;
+        // TODO(shayba): delete the above, uncomment the below.
+        // SDK_INT has not yet ramped to Baklava in all 25Q2 builds.
+        // return Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA;
+    }
+
     static {
-        try {
-            MESSAGE_QUEUE_MESSAGES_FIELD = MessageQueue.class.getDeclaredField("mMessages");
-            MESSAGE_QUEUE_MESSAGES_FIELD.setAccessible(true);
-            MESSAGE_NEXT_FIELD = Message.class.getDeclaredField("next");
-            MESSAGE_NEXT_FIELD.setAccessible(true);
-            MESSAGE_WHEN_FIELD = Message.class.getDeclaredField("when");
-            MESSAGE_WHEN_FIELD.setAccessible(true);
-        } catch (NoSuchFieldException e) {
-            throw new RuntimeException("Failed to initialize TestableLooper", e);
+        if (isAtLeastBaklava()) {
+            MESSAGE_QUEUE_MESSAGES_FIELD = null;
+            MESSAGE_NEXT_FIELD = null;
+            MESSAGE_WHEN_FIELD = null;
+        } else {
+            try {
+                MESSAGE_QUEUE_MESSAGES_FIELD = MessageQueue.class.getDeclaredField("mMessages");
+                MESSAGE_QUEUE_MESSAGES_FIELD.setAccessible(true);
+                MESSAGE_NEXT_FIELD = Message.class.getDeclaredField("next");
+                MESSAGE_NEXT_FIELD.setAccessible(true);
+                MESSAGE_WHEN_FIELD = Message.class.getDeclaredField("when");
+                MESSAGE_WHEN_FIELD.setAccessible(true);
+            } catch (NoSuchFieldException e) {
+                throw new RuntimeException("Failed to initialize TestableLooper", e);
+            }
         }
     }
 
@@ -222,8 +248,61 @@
     }
 
     public void moveTimeForward(long milliSeconds) {
+        if (isAtLeastBaklava()) {
+            moveTimeForwardBaklava(milliSeconds);
+        } else {
+            moveTimeForwardLegacy(milliSeconds);
+        }
+    }
+
+    private void moveTimeForwardBaklava(long milliSeconds) {
+        // Drain all Messages from the queue.
+        Queue<Message> messages = new ArrayDeque<>();
+        while (true) {
+            Message message = mQueueWrapper.poll();
+            if (message == null) {
+                break;
+            }
+
+            // Adjust the Message's delivery time.
+            long newWhen = message.when - milliSeconds;
+            if (newWhen < 0) {
+                newWhen = 0;
+            }
+            message.when = newWhen;
+            messages.add(message);
+        }
+
+        // Repost all Messages back to the queuewith a new time.
+        while (true) {
+            Message message = messages.poll();
+            if (message == null) {
+                break;
+            }
+
+            Runnable callback = message.getCallback();
+            Handler handler = message.getTarget();
+            long when = message.getWhen();
+
+            // The Message cannot be re-enqueued because it is marked in use.
+            // Make a copy of the Message and recycle the original.
+            // This resets {@link Message#isInUse()} but retains all other content.
+            {
+                Message newMessage = Message.obtain();
+                newMessage.copyFrom(message);
+                newMessage.setCallback(callback);
+                mQueueWrapper.recycle(message);
+                message = newMessage;
+            }
+
+            // Send the Message back to its Handler to be re-enqueued.
+            handler.sendMessageAtTime(message, when);
+        }
+    }
+
+    private void moveTimeForwardLegacy(long milliSeconds) {
         try {
-            Message msg = getMessageLinkedList();
+            Message msg = (Message) MESSAGE_QUEUE_MESSAGES_FIELD.get(mLooper.getQueue());
             while (msg != null) {
                 long updatedWhen = msg.getWhen() - milliSeconds;
                 if (updatedWhen < 0) {
@@ -237,17 +316,6 @@
         }
     }
 
-    private Message getMessageLinkedList() {
-        try {
-            MessageQueue queue = mLooper.getQueue();
-            return (Message) MESSAGE_QUEUE_MESSAGES_FIELD.get(queue);
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException(
-                    "Access failed in TestableLooper: get - MessageQueue.mMessages",
-                    e);
-        }
-    }
-
     private int processQueuedMessages() {
         int count = 0;
         Runnable barrierRunnable = () -> { };
diff --git a/tools/aapt2/cmd/Command.cpp b/tools/aapt2/cmd/Command.cpp
index f00a6ca..2031556 100644
--- a/tools/aapt2/cmd/Command.cpp
+++ b/tools/aapt2/cmd/Command.cpp
@@ -54,9 +54,7 @@
 void Command::AddRequiredFlag(StringPiece name, StringPiece description, std::string* value,
                               uint32_t flags) {
   auto func = [value, flags](StringPiece arg, std::ostream*) -> bool {
-    if (value) {
-      *value = (flags & Command::kPath) ? GetSafePath(arg) : std::string(arg);
-    }
+    *value = (flags & Command::kPath) ? GetSafePath(arg) : std::string(arg);
     return true;
   };
 
@@ -67,9 +65,7 @@
 void Command::AddRequiredFlagList(StringPiece name, StringPiece description,
                                   std::vector<std::string>* value, uint32_t flags) {
   auto func = [value, flags](StringPiece arg, std::ostream*) -> bool {
-    if (value) {
-      value->push_back((flags & Command::kPath) ? GetSafePath(arg) : std::string(arg));
-    }
+    value->push_back((flags & Command::kPath) ? GetSafePath(arg) : std::string(arg));
     return true;
   };
 
@@ -80,9 +76,7 @@
 void Command::AddOptionalFlag(StringPiece name, StringPiece description,
                               std::optional<std::string>* value, uint32_t flags) {
   auto func = [value, flags](StringPiece arg, std::ostream*) -> bool {
-    if (value) {
-      *value = (flags & Command::kPath) ? GetSafePath(arg) : std::string(arg);
-    }
+    *value = (flags & Command::kPath) ? GetSafePath(arg) : std::string(arg);
     return true;
   };
 
@@ -93,9 +87,7 @@
 void Command::AddOptionalFlagList(StringPiece name, StringPiece description,
                                   std::vector<std::string>* value, uint32_t flags) {
   auto func = [value, flags](StringPiece arg, std::ostream*) -> bool {
-    if (value) {
-      value->push_back((flags & Command::kPath) ? GetSafePath(arg) : std::string(arg));
-    }
+    value->push_back((flags & Command::kPath) ? GetSafePath(arg) : std::string(arg));
     return true;
   };
 
@@ -106,9 +98,7 @@
 void Command::AddOptionalFlagList(StringPiece name, StringPiece description,
                                   std::unordered_set<std::string>* value) {
   auto func = [value](StringPiece arg, std::ostream* out_error) -> bool {
-    if (value) {
-      value->emplace(arg);
-    }
+    value->emplace(arg);
     return true;
   };
 
@@ -118,9 +108,7 @@
 
 void Command::AddOptionalSwitch(StringPiece name, StringPiece description, bool* value) {
   auto func = [value](StringPiece arg, std::ostream* out_error) -> bool {
-    if (value) {
-      *value = true;
-    }
+    *value = true;
     return true;
   };
 
diff --git a/tools/aapt2/cmd/Command_test.cpp b/tools/aapt2/cmd/Command_test.cpp
index ad167c9..2a3cb2a 100644
--- a/tools/aapt2/cmd/Command_test.cpp
+++ b/tools/aapt2/cmd/Command_test.cpp
@@ -159,22 +159,4 @@
   ASSERT_NE(0, command.Execute({"-w"s, "2"s}, &std::cerr));
 }
 
-TEST(CommandTest, OptionsWithNullptrToAcceptValues) {
-  TestCommand command;
-  command.AddRequiredFlag("--rflag", "", nullptr);
-  command.AddRequiredFlagList("--rlflag", "", nullptr);
-  command.AddOptionalFlag("--oflag", "", nullptr);
-  command.AddOptionalFlagList("--olflag", "", (std::vector<std::string>*)nullptr);
-  command.AddOptionalFlagList("--olflag2", "", (std::unordered_set<std::string>*)nullptr);
-  command.AddOptionalSwitch("--switch", "", nullptr);
-
-  ASSERT_EQ(0, command.Execute({
-    "--rflag"s, "1"s,
-    "--rlflag"s, "1"s,
-    "--oflag"s, "1"s,
-    "--olflag"s, "1"s,
-    "--olflag2"s, "1"s,
-    "--switch"s}, &std::cerr));
-}
-
 }  // namespace aapt
\ No newline at end of file
diff --git a/tools/aapt2/cmd/Convert.cpp b/tools/aapt2/cmd/Convert.cpp
index 060bc5f..6c3eae1 100644
--- a/tools/aapt2/cmd/Convert.cpp
+++ b/tools/aapt2/cmd/Convert.cpp
@@ -425,6 +425,9 @@
                                     << output_format_.value());
     return 1;
   }
+  if (enable_sparse_encoding_) {
+    table_flattener_options_.sparse_entries = SparseEntriesMode::Enabled;
+  }
   if (force_sparse_encoding_) {
     table_flattener_options_.sparse_entries = SparseEntriesMode::Forced;
   }
diff --git a/tools/aapt2/cmd/Convert.h b/tools/aapt2/cmd/Convert.h
index 98c8f5f..9452e58 100644
--- a/tools/aapt2/cmd/Convert.h
+++ b/tools/aapt2/cmd/Convert.h
@@ -36,9 +36,11 @@
         kOutputFormatProto, kOutputFormatBinary, kOutputFormatBinary), &output_format_);
     AddOptionalSwitch(
         "--enable-sparse-encoding",
-        "[DEPRECATED] This flag is a no-op as of aapt2 v2.20. Sparse encoding is always\n"
-        "enabled if minSdk of the APK is >= 32.",
-        nullptr);
+        "Enables encoding sparse entries using a binary search tree.\n"
+        "This decreases APK size at the cost of resource retrieval performance.\n"
+        "Only applies sparse encoding to Android O+ resources or all resources if minSdk of "
+        "the APK is O+",
+        &enable_sparse_encoding_);
     AddOptionalSwitch("--force-sparse-encoding",
                       "Enables encoding sparse entries using a binary search tree.\n"
                       "This decreases APK size at the cost of resource retrieval performance.\n"
@@ -85,6 +87,7 @@
   std::string output_path_;
   std::optional<std::string> output_format_;
   bool verbose_ = false;
+  bool enable_sparse_encoding_ = false;
   bool force_sparse_encoding_ = false;
   bool enable_compact_entries_ = false;
   std::optional<std::string> resources_config_path_;
diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp
index eb71189..ff4d8ef 100644
--- a/tools/aapt2/cmd/Link.cpp
+++ b/tools/aapt2/cmd/Link.cpp
@@ -674,7 +674,8 @@
             }
 
             FeatureFlagsFilterOptions flags_filter_options;
-            flags_filter_options.flags_must_be_readonly = true;
+            flags_filter_options.fail_on_unrecognized_flags = false;
+            flags_filter_options.flags_must_have_value = false;
             FeatureFlagsFilter flags_filter(options_.feature_flag_values, flags_filter_options);
             if (!flags_filter.Consume(context_, doc.get())) {
               return 1;
@@ -2504,6 +2505,9 @@
                 << "the --merge-only flag can be only used when building a static library");
     return 1;
   }
+  if (options_.use_sparse_encoding) {
+    options_.table_flattener_options.sparse_entries = SparseEntriesMode::Enabled;
+  }
 
   // The default build type.
   context.SetPackageType(PackageType::kApp);
diff --git a/tools/aapt2/cmd/Link.h b/tools/aapt2/cmd/Link.h
index b5bd905..2f17853 100644
--- a/tools/aapt2/cmd/Link.h
+++ b/tools/aapt2/cmd/Link.h
@@ -75,6 +75,7 @@
   bool no_resource_removal = false;
   bool no_xml_namespaces = false;
   bool do_not_compress_anything = false;
+  bool use_sparse_encoding = false;
   std::unordered_set<std::string> extensions_to_not_compress;
   std::optional<std::regex> regex_to_not_compress;
   FeatureFlagValues feature_flag_values;
@@ -162,11 +163,9 @@
     AddOptionalSwitch("--no-resource-removal", "Disables automatic removal of resources without\n"
             "defaults. Use this only when building runtime resource overlay packages.",
         &options_.no_resource_removal);
-    AddOptionalSwitch(
-        "--enable-sparse-encoding",
-        "[DEPRECATED] This flag is a no-op as of aapt2 v2.20. Sparse encoding is always\n"
-        "enabled if minSdk of the APK is >= 32.",
-        nullptr);
+    AddOptionalSwitch("--enable-sparse-encoding",
+                      "This decreases APK size at the cost of resource retrieval performance.",
+                      &options_.use_sparse_encoding);
     AddOptionalSwitch("--enable-compact-entries",
         "This decreases APK size by using compact resource entries for simple data types.",
         &options_.table_flattener_options.use_compact_entries);
diff --git a/tools/aapt2/cmd/Link_test.cpp b/tools/aapt2/cmd/Link_test.cpp
index 6cc42f1..a2dc8f8 100644
--- a/tools/aapt2/cmd/Link_test.cpp
+++ b/tools/aapt2/cmd/Link_test.cpp
@@ -1026,7 +1026,7 @@
                            .SetManifestFile(app_manifest)
                            .AddParameter("-I", android_apk)
                            .AddParameter("--java", app_java)
-                           .AddParameter("--feature-flags", "flag=false");
+                           .AddParameter("--feature-flags", "flag:ro=false");
 
   const std::string app_apk = GetTestPath("app.apk");
   BuildApk({}, app_apk, std::move(app_link_args), this, &diag);
diff --git a/tools/aapt2/cmd/Optimize.cpp b/tools/aapt2/cmd/Optimize.cpp
index f218307..762441e 100644
--- a/tools/aapt2/cmd/Optimize.cpp
+++ b/tools/aapt2/cmd/Optimize.cpp
@@ -406,6 +406,9 @@
     return 1;
   }
 
+  if (options_.enable_sparse_encoding) {
+    options_.table_flattener_options.sparse_entries = SparseEntriesMode::Enabled;
+  }
   if (options_.force_sparse_encoding) {
     options_.table_flattener_options.sparse_entries = SparseEntriesMode::Forced;
   }
diff --git a/tools/aapt2/cmd/Optimize.h b/tools/aapt2/cmd/Optimize.h
index e3af584..012b0f2 100644
--- a/tools/aapt2/cmd/Optimize.h
+++ b/tools/aapt2/cmd/Optimize.h
@@ -61,6 +61,9 @@
   // TODO(b/246489170): keep the old option and format until transform to the new one
   std::optional<std::string> shortened_paths_map_path;
 
+  // Whether sparse encoding should be used for O+ resources.
+  bool enable_sparse_encoding = false;
+
   // Whether sparse encoding should be used for all resources.
   bool force_sparse_encoding = false;
 
@@ -103,9 +106,11 @@
         &kept_artifacts_);
     AddOptionalSwitch(
         "--enable-sparse-encoding",
-        "[DEPRECATED] This flag is a no-op as of aapt2 v2.20. Sparse encoding is always\n"
-        "enabled if minSdk of the APK is >= 32.",
-        nullptr);
+        "Enables encoding sparse entries using a binary search tree.\n"
+        "This decreases APK size at the cost of resource retrieval performance.\n"
+        "Only applies sparse encoding to Android O+ resources or all resources if minSdk of "
+        "the APK is O+",
+        &options_.enable_sparse_encoding);
     AddOptionalSwitch("--force-sparse-encoding",
                       "Enables encoding sparse entries using a binary search tree.\n"
                       "This decreases APK size at the cost of resource retrieval performance.\n"
diff --git a/tools/aapt2/format/binary/TableFlattener.cpp b/tools/aapt2/format/binary/TableFlattener.cpp
index b8ac792..1a82021 100644
--- a/tools/aapt2/format/binary/TableFlattener.cpp
+++ b/tools/aapt2/format/binary/TableFlattener.cpp
@@ -201,7 +201,7 @@
         (context_->GetMinSdkVersion() == 0 && config.sdkVersion == 0)) {
       // Sparse encode if forced or sdk version is not set in context and config.
     } else {
-      // Otherwise, only sparse encode if the entries will be read on platforms S_V2+ (32).
+      // Otherwise, only sparse encode if the entries will be read on platforms S_V2+.
       sparse_encode = sparse_encode && (context_->GetMinSdkVersion() >= SDK_S_V2);
     }
 
diff --git a/tools/aapt2/format/binary/TableFlattener.h b/tools/aapt2/format/binary/TableFlattener.h
index f1c4c35..0633bc81 100644
--- a/tools/aapt2/format/binary/TableFlattener.h
+++ b/tools/aapt2/format/binary/TableFlattener.h
@@ -37,7 +37,8 @@
 enum class SparseEntriesMode {
   // Disables sparse encoding for entries.
   Disabled,
-  // Enables sparse encoding for all entries for APKs with minSdk >= 32 (S_V2).
+  // Enables sparse encoding for all entries for APKs with O+ minSdk. For APKs with minSdk less
+  // than O only applies sparse encoding for resource configuration available on O+.
   Enabled,
   // Enables sparse encoding for all entries regardless of minSdk.
   Forced,
@@ -46,7 +47,7 @@
 struct TableFlattenerOptions {
   // When enabled, types for configurations with a sparse set of entries are encoded
   // as a sparse map of entry ID and offset to actual data.
-  SparseEntriesMode sparse_entries = SparseEntriesMode::Enabled;
+  SparseEntriesMode sparse_entries = SparseEntriesMode::Disabled;
 
   // When true, use compact entries for simple data
   bool use_compact_entries = false;
diff --git a/tools/aapt2/format/binary/TableFlattener_test.cpp b/tools/aapt2/format/binary/TableFlattener_test.cpp
index e3d589e..0f11685 100644
--- a/tools/aapt2/format/binary/TableFlattener_test.cpp
+++ b/tools/aapt2/format/binary/TableFlattener_test.cpp
@@ -337,13 +337,13 @@
   auto table_in = BuildTableWithSparseEntries(context.get(), sparse_config, 0.25f);
 
   TableFlattenerOptions options;
-  options.sparse_entries = SparseEntriesMode::Disabled;
+  options.sparse_entries = SparseEntriesMode::Enabled;
 
   std::string no_sparse_contents;
-  ASSERT_TRUE(Flatten(context.get(), options, table_in.get(), &no_sparse_contents));
+  ASSERT_TRUE(Flatten(context.get(), {}, table_in.get(), &no_sparse_contents));
 
   std::string sparse_contents;
-  ASSERT_TRUE(Flatten(context.get(), {}, table_in.get(), &sparse_contents));
+  ASSERT_TRUE(Flatten(context.get(), options, table_in.get(), &sparse_contents));
 
   EXPECT_GT(no_sparse_contents.size(), sparse_contents.size());
 
@@ -421,13 +421,13 @@
   auto table_in = BuildTableWithSparseEntries(context.get(), sparse_config, 0.25f);
 
   TableFlattenerOptions options;
-  options.sparse_entries = SparseEntriesMode::Disabled;
+  options.sparse_entries = SparseEntriesMode::Enabled;
 
   std::string no_sparse_contents;
-  ASSERT_TRUE(Flatten(context.get(), options, table_in.get(), &no_sparse_contents));
+  ASSERT_TRUE(Flatten(context.get(), {}, table_in.get(), &no_sparse_contents));
 
   std::string sparse_contents;
-  ASSERT_TRUE(Flatten(context.get(), {}, table_in.get(), &sparse_contents));
+  ASSERT_TRUE(Flatten(context.get(), options, table_in.get(), &sparse_contents));
 
   EXPECT_GT(no_sparse_contents.size(), sparse_contents.size());
 
diff --git a/tools/aapt2/integration-tests/FlaggedResourcesTest/res/layout/layout1.xml b/tools/aapt2/integration-tests/FlaggedResourcesTest/res/layout/layout1.xml
index 8b9ce13..c595cdc 100644
--- a/tools/aapt2/integration-tests/FlaggedResourcesTest/res/layout/layout1.xml
+++ b/tools/aapt2/integration-tests/FlaggedResourcesTest/res/layout/layout1.xml
@@ -6,12 +6,14 @@
 
     <TextView android:id="@+id/text1"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
+        android:layout_height="wrap_content"
+        android:featureFlag="test.package.readWriteFlag"/>
     <TextView android:id="@+id/disabled_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:featureFlag="test.package.falseFlag" />
     <TextView android:id="@+id/text2"
+        android:text="FIND_ME"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:featureFlag="test.package.trueFlag" />
diff --git a/tools/aapt2/link/FeatureFlagsFilter.cpp b/tools/aapt2/link/FeatureFlagsFilter.cpp
index 4e7c1b4..23f7838 100644
--- a/tools/aapt2/link/FeatureFlagsFilter.cpp
+++ b/tools/aapt2/link/FeatureFlagsFilter.cpp
@@ -50,7 +50,7 @@
 
  private:
   bool ShouldRemove(std::unique_ptr<xml::Node>& node) {
-    if (const auto* el = NodeCast<Element>(node.get())) {
+    if (auto* el = NodeCast<Element>(node.get())) {
       auto* attr = el->FindAttribute(xml::kSchemaAndroid, "featureFlag");
       if (attr == nullptr) {
         return false;
@@ -72,9 +72,13 @@
             has_error_ = true;
             return false;
           }
-          if (options_.remove_disabled_elements) {
+          if (options_.remove_disabled_elements && it->second.read_only) {
             // Remove if flag==true && attr=="!flag" (negated) OR flag==false && attr=="flag"
-            return *it->second.enabled == negated;
+            bool remove = *it->second.enabled == negated;
+            if (!remove) {
+              el->RemoveAttribute(xml::kSchemaAndroid, "featureFlag");
+            }
+            return remove;
           }
         } else if (options_.flags_must_have_value) {
           diagnostics_->Error(android::DiagMessage(node->line_number)
diff --git a/tools/aapt2/link/FeatureFlagsFilter_test.cpp b/tools/aapt2/link/FeatureFlagsFilter_test.cpp
index 2db2899..7440455 100644
--- a/tools/aapt2/link/FeatureFlagsFilter_test.cpp
+++ b/tools/aapt2/link/FeatureFlagsFilter_test.cpp
@@ -48,7 +48,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, false}}});
+                    {{"flag", FeatureFlagProperties{true, false}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -60,7 +60,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="flag" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, false}}});
+                    {{"flag", FeatureFlagProperties{true, false}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -73,7 +73,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="!flag" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, true}}});
+                    {{"flag", FeatureFlagProperties{true, true}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -86,7 +86,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="flag" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, true}}});
+                    {{"flag", FeatureFlagProperties{true, true}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -102,7 +102,7 @@
       <permission android:name="FOO" android:featureFlag="flag"
                   android:protectionLevel="dangerous" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, true}}});
+                    {{"flag", FeatureFlagProperties{true, true}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -123,7 +123,7 @@
         </activity>
       </application>
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, true}}});
+                    {{"flag", FeatureFlagProperties{true, true}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -145,7 +145,7 @@
         </activity>
       </application>
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, true}}});
+                    {{"flag", FeatureFlagProperties{true, true}}});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
   ASSERT_THAT(root, NotNull());
@@ -162,7 +162,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag=" " />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, false}}});
+                    {{"flag", FeatureFlagProperties{true, false}}});
   ASSERT_THAT(doc, IsNull());
 }
 
@@ -171,7 +171,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="flag" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, std::nullopt}}});
+                    {{"flag", FeatureFlagProperties{true, std::nullopt}}});
   ASSERT_THAT(doc, IsNull());
 }
 
@@ -180,7 +180,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="unrecognized" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, true}}});
+                    {{"flag", FeatureFlagProperties{true, true}}});
   ASSERT_THAT(doc, IsNull());
 }
 
@@ -190,7 +190,7 @@
       <permission android:name="FOO" android:featureFlag="bar" />
       <permission android:name="FOO" android:featureFlag="unrecognized" />
     </manifest>)EOF",
-                    {{"flag", FeatureFlagProperties{false, std::nullopt}}});
+                    {{"flag", FeatureFlagProperties{true, std::nullopt}}});
   ASSERT_THAT(doc, IsNull());
 }
 
@@ -199,7 +199,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="flag" />
     </manifest>)EOF",
-                               {{"flag", FeatureFlagProperties{false, false}}},
+                               {{"flag", FeatureFlagProperties{true, false}}},
                                {.remove_disabled_elements = false});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
@@ -213,7 +213,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="flag" />
     </manifest>)EOF",
-                               {{"flag", FeatureFlagProperties{false, std::nullopt}}},
+                               {{"flag", FeatureFlagProperties{true, std::nullopt}}},
                                {.flags_must_have_value = false});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
@@ -227,7 +227,7 @@
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android">
       <permission android:name="FOO" android:featureFlag="unrecognized" />
     </manifest>)EOF",
-                               {{"flag", FeatureFlagProperties{false, true}}},
+                               {{"flag", FeatureFlagProperties{true, true}}},
                                {.fail_on_unrecognized_flags = false});
   ASSERT_THAT(doc, NotNull());
   auto root = doc->root.get();
diff --git a/tools/aapt2/link/FlaggedResources_test.cpp b/tools/aapt2/link/FlaggedResources_test.cpp
index 6293008..adf711e 100644
--- a/tools/aapt2/link/FlaggedResources_test.cpp
+++ b/tools/aapt2/link/FlaggedResources_test.cpp
@@ -59,6 +59,16 @@
   output_stream.Flush();
 }
 
+void DumpXmlTreeToString(LoadedApk* loaded_apk, std::string file, std::string* output) {
+  StringOutputStream output_stream(output);
+  Printer printer(&output_stream);
+
+  auto xml = loaded_apk->LoadXml(file, &noop_diag);
+  ASSERT_NE(xml, nullptr);
+  Debug::DumpXml(*xml, &printer);
+  output_stream.Flush();
+}
+
 TEST_F(FlaggedResourcesTest, DisabledStringRemovedFromPool) {
   auto apk_path = file::BuildPath({android::base::GetExecutableDirectory(), "resapp.apk"});
   auto loaded_apk = LoadedApk::LoadApkFromPath(apk_path, &noop_diag);
@@ -148,4 +158,15 @@
   ASSERT_TRUE(diag.GetLog().contains("duplicate value for resource 'bool1'"));
 }
 
+TEST_F(FlaggedResourcesTest, EnabledXmlELementAttributeRemoved) {
+  auto apk_path = file::BuildPath({android::base::GetExecutableDirectory(), "resapp.apk"});
+  auto loaded_apk = LoadedApk::LoadApkFromPath(apk_path, &noop_diag);
+
+  std::string output;
+  DumpXmlTreeToString(loaded_apk.get(), "res/layout-v22/layout1.xml", &output);
+  ASSERT_FALSE(output.contains("test.package.trueFlag"));
+  ASSERT_TRUE(output.contains("FIND_ME"));
+  ASSERT_TRUE(output.contains("test.package.readWriteFlag"));
+}
+
 }  // namespace aapt
diff --git a/tools/aapt2/readme.md b/tools/aapt2/readme.md
index 664d841..5c3dfdc 100644
--- a/tools/aapt2/readme.md
+++ b/tools/aapt2/readme.md
@@ -3,8 +3,6 @@
 ## Version 2.20
 - Too many features, bug fixes, and improvements to list since the last minor version update in
   2017. This README will be updated more frequently in the future.
-- Sparse encoding is now always enabled by default if the minSdkVersion is >= 32 (S_V2). The
-  `--enable-sparse-encoding` flag still exists, but is a no-op.
 
 ## Version 2.19
 - Added navigation resource type.
diff --git a/tools/aosp/upload_aosp.sh b/tools/aosp/upload_aosp.sh
new file mode 100755
index 0000000..c36057b
--- /dev/null
+++ b/tools/aosp/upload_aosp.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+set -eu
+
+DRYRUN=false
+VERBOSE=false
+DEST_BRANCH_NAME="main"
+AOSP_URL=""
+
+function log_info() {
+  echo -e "\033[32m$1\033[m"
+}
+
+function log_warn() {
+  echo -e "\033[33m$1\033[m"
+}
+
+function log_fatal() {
+  echo -e "\033[31mERROR: $1\033[m" > /dev/stderr
+  exit 1
+}
+
+while [[ $# -gt 0 ]]; do
+  case $1 in
+    -b|--branch)
+      DEST_BRANCH_NAME=$2
+      shift
+      shift
+      ;;
+    -v|--verbose)
+      set -x
+      VERBOSE=true
+      shift
+      ;;
+    -n|--dryrun)
+      DRYRUN=true
+      shift
+      ;;
+    -u|--url)
+      AOSP_URL=$2
+      shift
+      shift
+      ;;
+    --help)
+      echo "$0 <options>"
+      echo
+      echo "Options:"
+      echo "    -b, --branch <branch> : destination AOSP branch, default is $DEST_BRANCH_NAME"
+      echo "    -n, --dryrun          : do not upload CL"
+      echo "    -u, --url             : AOSP repo URL. Default is to use existing 'aosp' remote or guess the URL."
+      echo "    -v, --verbose         : show verbose output"
+      echo
+      exit 0
+      ;;
+    -*|--*)
+      echo "Unknown option $i"
+      exit 1
+      ;;
+    *)
+      ;;
+  esac
+done
+
+if $VERBOSE; then
+  log_info "DRYRUN=$DRYRUN"
+  log_info "DEST_BRANCH_NAME=$DEST_BRANCH_NAME"
+fi
+
+current_branch=$(git branch --no-color --show-current)
+if [ -z "$current_branch" ]; then
+  log_fatal "use 'repo start' first"
+fi
+
+tmp_branch="aosp_$current_branch"
+
+if [ -z "$AOSP_URL" ]; then
+  AOSP_URL=$(git config --get remote.goog.url | sed 's/googleplex-//')
+fi
+
+if $VERBOSE; then
+  log_info "AOSP_URL=$AOSP_URL"
+  log_info "current_branch=$current_branch"
+  log_info "tmp_branch=$tmp_branch"
+fi
+
+log_info "Running repo hooks..."
+repo upload -c . -n -y
+
+log_info "Setting up AOSP repo..."
+existing_aosp_url=$(git config --get remote.aosp.url 2>/dev/null || true)
+if [ -z "$existing_aosp_url" ]; then
+  git remote add aosp $AOSP_URL
+elif [ "$existing_aosp_url" != "$AOSP_URL"]; then
+  log_warn "Remote 'aosp' uses $existing_aosp_url. Expected $AOSP_URL"
+fi
+
+log_info "Fetching '$DEST_BRANCH_NAME'"
+git fetch aosp $DEST_BRANCH_NAME
+
+log_info "Creating $tmp_branch and cherry-picking..."
+git branch -D $tmp_branch 2>/dev/null || true
+git checkout -b $tmp_branch
+git branch --set-upstream-to aosp/$DEST_BRANCH_NAME
+git reset --hard aosp/$DEST_BRANCH_NAME
+git cherry-pick goog/$DEST_BRANCH_NAME..$current_branch
+
+if $DRYRUN; then
+  log_info "Dryrun specified, skipping CL upload"
+else
+  log_info "Pushing to AOSP..."
+  git push aosp HEAD:refs/for/$DEST_BRANCH_NAME
+fi
+
+log_info "Cleaning up..."
+git checkout $current_branch
+git branch -D $tmp_branch
\ No newline at end of file